From 9d97300f8a1259d44418f8a02c3783601d63eddf Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Tue, 28 Mar 2023 16:58:22 +0800
Subject: [PATCH] 初始提交

---
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/DevelopApplication.java                                                    |   36 
 skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/AttachVO.java                                                 |   35 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteRound.java                         |   39 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/AuthApplication.java                                                                             |   39 
 skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application.yml                                                                           |   10 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff2       |    0 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/jquery/jquery.validate.min.js                                        |    4 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/user.index.1.js                                                           |  328 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/UserController.java                                      |  172 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/BasicSecure.java                                                                  |   37 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/I18nUtil.java                                             |   80 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/wrapper/SmsWrapper.java                                                  |   49 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobLogDao.java                                               |   60 
 skjcmanager/skjcmanager-auth/src/main/resources/static/js/jquery.min.js                                                                                     |    2 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/RoleWrapper.java                                                 |   61 
 skjcmanager/skjcmanager-service/skjcmanager-system/Dockerfile                                                                                               |   15 
 skjcmanager/skjcmanager-ops/skjcmanager-report/Dockerfile                                                                                                   |   15 
 skjcmanager/.editorconfig                                                                                                                                   |   21 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRoleMenuService.java                                            |   29 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/loading-1.gif                                    |    0 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RoleServiceImpl.java                                        |  230 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/jobcode.index.1.js                                                        |   97 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.svg                        | 2230 
 skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/src/main/java/cn/gistack/desk/entity/Notice.java                                                   |   64 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/IAttachService.java                                              |   40 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/MinioOssBuilder.java                                         |   48 
 skjcmanager/doc/sql/sqlserver/bladex-sword-sqlserver.sql                                                                                                    | 5006 ++
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/TencentSmsBuilder.java                                       |   46 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/BladeAuthorizationServerConfiguration.java                                                |  117 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/RegionWrapper.java                                               |   52 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/DatasourceServiceImpl.java                                    |   33 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/trigger/TriggerTypeEnum.java                                   |   26 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/SearchController.java                                         |   98 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/config/ErrorHandlerConfiguration.java                                                      |   44 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/excel/UserImporter.java                                               |   40 
 skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/security/InternalAuthorizationManager.java                                     |   75 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogUsualMapper.java                                                    |   29 
 skjcmanager/doc/sql/postgresql/bladex-sword-postgresql.sql                                                                                                  | 5285 ++
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/DataScope.java                                            |   86 
 skjcmanager/skjcmanager-gateway/Dockerfile                                                                                                                  |   15 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/ExecutorRouter.java                                      |   24 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TopMenuSettingServiceImpl.java                              |   33 
 skjcmanager/skjcmanager-ops-api/pom.xml                                                                                                                     |   52 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/ExecutorRouteStrategyEnum.java                           |   49 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/cache/ParamCache.java                                            |   72 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/PostDTO.java                                                 |   33 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/templates/code.properties                                                                |    5 
 skjcmanager/pom.xml                                                                                                                                         |  226 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/common.1.js                                                               |  156 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/AuthSecure.java                                                                   |   37 
 skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/entity/BladeFlow.java                                               |  179 
 skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictBizClient.java                                          |   73 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRoleService.java                                                |  112 
 skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/src/main/java/cn/gistack/desk/vo/NoticeVO.java                                                     |   23 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/GatewayRoute.java                                                                  |   57 
 skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/dingtalk/MonitorProperties.java                                                |   67 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowManagerController.java                                     |  123 
 skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/config/BladeCommonConfiguration.java                                                         |   32 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/CodeServiceImpl.java                                          |   39 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/Dockerfile                                                                                             |   13 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RegionMapper.java                                                 |   62 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/IModelService.java                                                 |   29 
 skjcmanager/doc/nacos/blade-test.yaml                                                                                                                       |   39 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/SmsController.java                                            |  152 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot   |    0 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogErrorMapper.xml                                                     |   27 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/RegionController.java                                         |  202 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITenantService.java                                              |   76 
 skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/CommonConstant.java                                                                 |   77 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/SignSecure.java                                                                   |   37 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application-prod.yml                                                                        |    6 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/NoticeMapper.java                                                     |   50 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/ApiScopeWrapper.java                                             |   48 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/ModelPrototypeController.java                                   |  136 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelMapper.xml                                                     |   27 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/OssServiceImpl.java                                         |   67 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/resources/application-prod.yml                                                                    |   10 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/jquery/jquery.min.js                               |    2 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/CaptchaTokenGranter.java                                                                 |   82 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/FtlUtil.java                                              |   31 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/index.ftl                                                                 |  147 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/resources/application-dev.yml                                                                     |   10 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/AuthClientController.java                                     |  120 
 skjcmanager/script/docker/elk/logstash.yml                                                                                                                  |    8 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/feign/LogClient.java                                                          |   69 
 skjcmanager/script/docker/app/prometheus/config/wechat.tmpl                                                                                                 |   34 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/service/impl/FlowEngineServiceImpl.java                                   |  559 
 skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application-dev.yml                                                                      |   12 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/entity/FlowModel.java                                                     |   58 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/resources/application.yml                                                                           |   21 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RoleScopeServiceImpl.java                                   |   33 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobLogGlue.java                                       |   75 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/interceptor/WebMvcConfig.java                            |   29 
 skjcmanager/doc/sql/mysql/bladex-saber-mysql.sql                                                                                                            |  885 
 skjcmanager/skjcmanager-auth/pom.xml                                                                                                                        |  145 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobRegistry.java                                      |   55 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.ttf         |    0 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMapper.java                                                   |   67 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/entity/FlowProcess.java                                                   |   65 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/loading-2.gif                                    |    0 
 skjcmanager/doc/sql/update/bladex-update-oracle-3.0.0~3.0.1.sql                                                                                             |  122 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobLogReportDao.java                                         |   26 
 skjcmanager/script/docker/elk/docker-compose.yml                                                                                                            |  115 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/css/ionicons.min.css                      |   11 
 skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/constant/DictConstant.java                                         |   38 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DictBizController.java                                        |  179 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/feign/SmsClient.java                                                     |   70 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/joblog.detail.1.js                                                        |   91 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/shell/shell.js                                       |  152 
 skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/feign/IFlowClientFallback.java                                      |   58 
 skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/cache/DataScopeCache.java                                         |   96 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/PostMapper.java                                                   |   50 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/resources/application-dev.yml                                                                   |   10 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobRegistryMapper.xml                                             |   62 
 skjcmanager/skjcmanager-common/pom.xml                                                                                                                      |   46 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/resources/application-test.yml                                                                    |   10 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application-dev.yml                                                                     |    7 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Menu.java                                                 |  149 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/ParamController.java                                          |  107 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ParamMapper.xml                                                   |   20 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteLFU.java                           |   79 
 skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/User.java                                              |   96 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.js                                   |  434 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMenuMapper.xml                                                |   16 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/impl/XxlJobServiceImpl.java                                 |  373 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/impl/LogApiServiceImpl.java                                           |   34 
 skjcmanager/script/docker/elk/deploy.sh                                                                                                                     |   88 
 skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/config/DingTalkConfiguration.java                                              |   52 
 skjcmanager/doc/sql/update/bladex-update-mysql-3.0.0~3.0.1.sql                                                                                              |   73 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/pom.xml                                                                                                     |   54 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/db/tables_xxl_job.sql                                                                              |  119 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/loading-0.gif                                    |    0 
 skjcmanager/doc/sql/db/database-info.md                                                                                                                     |  623 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobLogReportHelper.java                                 |  152 
 skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserApp.java                                           |   64 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DataScopeMapper.java                                              |   29 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobInfoDao.java                                              |   49 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/controller/WorkController.java                                          |  147 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/GatewayPredicate.java                                                              |   41 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/resolver/WebExceptionResolver.java                       |   64 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/CookieUtil.java                                           |   98 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserSearchServiceImpl.java                               |   65 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/application-prod.yml                                                                     |   11 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobRegistryDao.java                                          |   38 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/DatasourceController.java                                       |  128 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css |    1 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Region.java                                               |  128 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/AuthClientMapper.java                                             |   29 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDictService.java                                                |  109 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogUsualMapper.xml                                                     |   22 
 skjcmanager/script/docker/app/nginx/web/nginx.conf                                                                                                          |   65 
 skjcmanager/skjcmanager-auth/src/main/resources/application-test.yml                                                                                        |   15 
 skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/utils/FlowUtil.java                                                 |   66 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/doc/nacos/blade-flow-dev.yaml                                                                                  |   39 
 skjcmanager/skjcmanager-auth/src/main/resources/static/css/bootstrap.min.css                                                                                |    6 
 skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/enums/UserEnum.java                                           |   69 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserDeptMapper.xml                                             |    5 
 skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/vo/UserVO.java                                                |   84 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/FlowApplication.java                                                             |   37 
 skjcmanager/script/docker/app/nginx/api/nginx.conf                                                                                                          |   71 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/LocalCacheUtil.java                                       |  133 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/PACE/themes/blue/pace-theme-flash.css              |   77 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DictBizServiceImpl.java                                     |  119 
 skjcmanager/skjcmanager-ops/skjcmanager-swagger/Dockerfile                                                                                                  |   15 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOauthMapper.xml                                            |   22 
 skjcmanager/LICENSE                                                                                                                                         |   34 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/XXL-JOB架构图.pptx                                                                                    |    0 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteLRU.java                           |   76 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DictServiceImpl.java                                        |  125 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/favicon.ico                                                                  |    0 
 skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/entity/DictBiz.java                                                |  108 
 skjcmanager/script/docker/app/prometheus/config/alertmanager.yml                                                                                            |   56 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/SmsBuilder.java                                              |  157 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/IOssService.java                                                 |   56 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteLast.java                          |   19 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/config/XxlJobConfig.java                                               |   74 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/AuthProvider.java                                                                 |   67 
 skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/ISmsClientFallback.java                                    |   44 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserDeptMapper.java                                            |   30 
 skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/utils/TaskUtil.java                                                 |   71 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob/Dockerfile                                                                                                   |   13 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Role.java                                                 |   90 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application-test.yml                                                                        |    6 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelPrototypeMapper.xml                                            |   35 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/scheduler/XxlJobScheduler.java                                 |  113 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/RegionVO.java                                                 |   89 
 skjcmanager/script/docker/app/deploy.sh                                                                                                                     |  164 
 skjcmanager/doc/sql/sqlserver/bladex-flowable-sqlserver.sql                                                                                                 | 4113 +
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/ILogUsualService.java                                                 |   29 
 skjcmanager/skjcmanager-auth/src/main/resources/application.yml                                                                                             |   65 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/layer.css                                        |    1 
 skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/CommonUtil.java                                                                        |   26 
 skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application-prod.yml                                                                      |    6 
 skjcmanager/script/fatjar/service.sh                                                                                                                        |   76 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/AuthClientServiceImpl.java                                  |   33 
 skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/src/main/java/cn/gistack/desk/feign/INoticeClient.java                                             |   49 
 skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/AppsConstant.java                                                                   |   30 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobApiController.java                                    |  129 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/MenuDTO.java                                                 |   33 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/TopMenu.java                                              |   61 
 skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/ISmsClient.java                                            |   74 
 skjcmanager/skjcmanager-service/skjcmanager-system/pom.xml                                                                                                  |   66 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/mapper/FlowMapper.java                                                    |   46 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DataScopeMapper.xml                                               |    5 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/exception/XxlJobException.java                                 |   14 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/XXL-JOB官方文档.md                                                                                     | 1740 
 skjcmanager/doc/sql/mysql/bladex-flowable-mysql.sql                                                                                                         | 1777 
 skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/enums/DictBizEnum.java                                             |   39 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobGroupController.java                                  |  165 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/RoleMenuDTO.java                                             |   33 
 skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/java/cn/gistack/swagger/SwaggerApplication.java                                                    |   36 
 skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/Attach.java                                               |   71 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobLogReport.java                                     |   54 
 skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserSearchClient.java                                  |   84 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/wrapper/OssWrapper.java                                                  |   49 
 skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/pom.xml                                                                                            |   24 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/mapper/FlowMapper.xml                                                     |   53 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.eot         |    0 
 skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictClientFallback.java                                     |   46 
 skjcmanager/script/docker/app/prometheus/config/prometheus.yml                                                                                              |   68 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictMapper.xml                                                    |   54 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOtherMapper.xml                                            |    5 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/AttachMapper.xml                                                  |   28 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/feign/ISysClient.java                                            |  270 
 skjcmanager/script/docker/elk/es-slave1.yml                                                                                                                 |   28 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/resources/application-dev.yml                                                                     |   11 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/excel/RegionExcel.java                                                   |   90 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/QiniuOssBuilder.java                                         |   52 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/cronGen/cronGen.js                                                   | 1079 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobCodeController.java                                   |   96 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/lib/codemirror.css                                        |  346 
 skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application.yml                                                                          |    6 
 skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/Sms.java                                                  |   82 
 skjcmanager/script/docker/app/docker-compose.yml                                                                                                            |  367 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/controller/LogApiController.java                                              |   66 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/python/python.js                                     |  409 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/jquery-slimscroll/jquery.slimscroll.min.js         |   16 
 skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/LauncherConstant.java                                                               |  230 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/JacksonUtil.java                                          |   92 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleScopeMapper.java                                              |   29 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/SecurityConfiguration.java                                                                |   64 
 skjcmanager/skjcmanager-service/skjcmanager-desk/pom.xml                                                                                                    |   88 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/Datasource.java                                                     |   71 
 skjcmanager/script/docker/elk/README.md                                                                                                                     |   27 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/AliOssBuilder.java                                           |   63 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserDeptService.java                                         |   30 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/props/AuthProperties.java                                                                  |   59 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/AliSmsBuilder.java                                           |   50 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/AttachMapper.java                                                 |   42 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/service/FlowEngineService.java                                            |  166 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/java/cn/gistack/flow/test/launch/LauncherTestServiceImpl.java                                         |   43 
 skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/enums/DictEnum.java                                                |   95 
 skjcmanager/skjcmanager-ops/skjcmanager-admin/Dockerfile                                                                                                    |   15 
 skjcmanager/skjcmanager-service/skjcmanager-desk/Dockerfile                                                                                                 |   15 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/joblog/joblog.detail.ftl                                                  |   73 
 skjcmanager/skjcmanager-ops/skjcmanager-admin/README.md                                                                                                     |   21 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/ILogErrorService.java                                                 |   29 
 skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/handler/ApiScopePermissionHandler.java                            |   61 
 skjcmanager/skjcmanager-service/skjcmanager-user/pom.xml                                                                                                    |   67 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/DeskApplication.java                                                         |   36 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/AuthClientMapper.xml                                              |   27 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/GrantVO.java                                                  |   49 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/PostMapper.xml                                                    |   40 
 skjcmanager/script/docker/app/prometheus/dashboard/bladex-jvm.json                                                                                          | 3825 +
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/BladeTokenGranter.java                                                                   |   52 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/utils/TokenUtil.java                                                                             |  182 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladeNoOpPasswordEncoder.java                                                            |   50 
 skjcmanager/skjcmanager-auth/src/main/resources/static/css/iofrm-theme.css                                                                                  |  544 
 skjcmanager/skjcmanager-ops/skjcmanager-report/pom.xml                                                                                                      |   62 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application-test.yml                                                                |    6 
 skjcmanager/script/docker/app/nginx/web/html/index.html                                                                                                     |   10 
 skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/launch/LauncherServiceImpl.java                                                              |   61 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogApiMapper.java                                                      |   29 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RegionServiceImpl.java                                      |  119 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/controller/LogErrorController.java                                            |   66 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/PACE/pace.min.js                                   |    2 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobFailMonitorHelper.java                               |  209 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/PostServiceImpl.java                                        |   74 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserAppMapper.java                                             |   30 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/AttachController.java                                         |  127 
 skjcmanager/skjcmanager-plugin-api/README.md                                                                                                                |   15 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/service/FlowBusinessService.java                                        |   72 
 skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/vo/DictVO.java                                                     |   71 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DataScopeServiceImpl.java                                   |   33 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/jobinfo.index.1.js                                                        |  648 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/javascript/javascript.js                             |  899 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantPackageMapper.xml                                           |   20 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DataScopeWrapper.java                                            |   48 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobUserMapper.xml                                                 |   87 
 skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application-test.yml                                                                      |    6 
 skjcmanager/doc/sql/dm/bladex-flowable-dameng.dmp                                                                                                           |    0 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ApiScopeMapper.xml                                                |    5 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/css/font-awesome.min.css              |    4 
 skjcmanager/skjcmanager-auth/README.md                                                                                                                      |   32 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITopMenuService.java                                             |   41 
 skjcmanager/script/docker/elk/es-slave2.yml                                                                                                                 |   28 
 skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IDataScopeClient.java                                       |   72 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/controller/TestController.java                                         |   23 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DictWrapper.java                                                 |   60 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/Code.java                                                           |  180 
 skjcmanager/skjcmanager-gateway/pom.xml                                                                                                                     |  103 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/RequestProvider.java                                                              |   49 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/impl/LeaveServiceImpl.java                                           |   81 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/GrantTreeVO.java                                              |   40 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SampleXxlJob.java                                           |  195 
 skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/pom.xml                                                                                                |   19 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/endpoint/OssEndpoint.java                                                |  246 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/joblog/joblog.index.ftl                                                   |  180 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/JobApplication.java                                                    |   36 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/resources/application-test.yml                                                                    |   10 
 skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/cache/ApiScopeCache.java                                          |   77 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/annotation/PermissionLimit.java                          |   29 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.js       | 1653 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/old/RemoteHttpJobBean.java                                     |   32 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobUserDao.java                                              |   31 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml                                              |   71 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/interceptor/CookieInterceptor.java                       |   43 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application-prod.yml                                                                        |    6 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladeJwtTokenEnhancer.java                                                               |   86 
 skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserOauth.java                                         |  107 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogApiMapper.xml                                                       |   26 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/DataScopeVO.java                                              |   39 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TenantPackageServiceImpl.java                               |   33 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowFollowController.java                                      |   70 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDictBizService.java                                             |  101 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/SocialTokenGranter.java                                                                  |  130 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/entity/ProcessLeave.java                                                     |   67 
 skjcmanager/skjcmanager-auth/src/main/resources/templates/login.ftl                                                                                         |   54 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogErrorMapper.java                                                    |   29 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/DatasourceMapper.java                                               |   29 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/PostVO.java                                                   |   40 
 skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/banner.txt                                                                               |    8 
 skjcmanager/doc/nacos/blade-dev.yaml                                                                                                                        |   62 
 skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/feign/IFlowClient.java                                              |  100 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/handler/ErrorExceptionHandler.java                                                         |   96 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/css/bootstrap.css.map                    |    1 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/common/common.exception.ftl                                               |   31 
 skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IDataScopeClientFallback.java                               |   45 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/resources/application-dev.yml                                                                          |   10 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobLog.java                                           |  157 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/SysClient.java                                                     |  194 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/TenantPackageController.java                                  |  133 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladePasswordEncoderFactories.java                                                       |   66 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/controller/DashBoardController.java                                          |  207 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/resources/application-prod.yml                                                                    |   11 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/CodeMapper.xml                                                      |   22 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/test/resources/templates/code.properties                                                                |    5 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/lib/codemirror.js                                         | 9698 +++
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/impl/AdminBizImpl.java                                      |  171 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/echarts/echarts.common.min.js                                        |   22 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserMapper.xml                                                 |   76 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/jobgroup/jobgroup.index.ftl                                               |  199 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/DeptVO.java                                                   |   84 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/OssBuilder.java                                              |  160 
 skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/SmsVO.java                                                    |   45 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserOauthServiceImpl.java                                |   36 
 skjcmanager/doc/sql/oracle/bladex-saber-oracle.sql                                                                                                          | 6500 ++
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application.yml                                                                         |   13 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff        |    0 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/AuthFilter.java                                                                     |  120 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/jobinfo/jobinfo.index.ftl                                                 |  434 
 skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/config/AdminConfiguration.java                                                 |   32 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/dist/css/AdminLTE.min.css                                           |    7 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/OssMapper.xml                                                     |   30 
 skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserDept.java                                          |   64 
 skjcmanager/doc/sql/dm/bladex-sword-dameng.dmp                                                                                                              |    0 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/cache/RegionCache.java                                           |   63 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantMapper.java                                                 |   41 
 skjcmanager/doc/docker/README.md                                                                                                                            |  109 
 skjcmanager/skjcmanager-auth/src/main/resources/static/js/popper.min.js                                                                                     |    5 
 skjcmanager/script/docker/elk/undeploy.sh                                                                                                                   |   16 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/AttachServiceImpl.java                                      |   40 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRoleScopeService.java                                           |   29 
 .idea/manager.iml                                                                                                                                           |    9 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob/pom.xml                                                                                                      |   63 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/TenantPackage.java                                        |   56 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml                                                  |  249 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/i18n/message.properties                                                             |  262 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TopMenuServiceImpl.java                                     |   63 
 .idea/misc.xml                                                                                                                                              |    6 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/config/FlowableConfiguration.java                                         |   44 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/resources/logback.xml                                                                               |   40 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantPackageMapper.java                                          |   29 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/MenuVO.java                                                   |   93 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/BladeResourceServerConfiguration.java                                                     |   57 
 skjcmanager/skjcmanager-auth/src/main/resources/static/js/bootstrap.min.js                                                                                  |    6 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/ApiScopeClient.java                                                |   63 
 skjcmanager/doc/sql/mysql/bladex-sword-mysql.sql                                                                                                            |  885 
 skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/enums/FlowModeEnum.java                                             |   45 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/constant/AuthConstant.java                                                                       |   53 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/endpoint/BladeTokenEndPoint.java                                                                 |  157 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobUser.java                                          |   73 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserMapper.java                                                |   63 
 skjcmanager/skjcmanager-ops/skjcmanager-admin/pom.xml                                                                                                       |  119 
 skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/resources/bootstrap.yml                                                                              |   48 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/endpoint/BladeSocialEndpoint.java                                                                |   88 
 skjcmanager/skjcmanager-gateway/src/main/resources/bootstrap.yml                                                                                            |   12 
 skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/entity/Dict.java                                                   |  102 
 skjcmanager/doc/other/env.md                                                                                                                                |   29 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IMenuService.java                                                |  166 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/MenuWrapper.java                                                 |   72 
 skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/vo/DictBizVO.java                                                  |   71 
 skjcmanager/doc/other/http-code.md                                                                                                                          |   57 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/SystemApplication.java                                                   |   38 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/pom.xml                                                                                          |   24 
 skjcmanager/doc/nacos/blade.yaml                                                                                                                            |  163 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/help.ftl                                                                  |   47 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/TenantController.java                                         |  235 
 skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/constant/ProcessConstant.java                                       |   61 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobInfo.java                                          |  218 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff  |    0 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/ApiScopeController.java                                       |  123 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/logback.xml                                                                         |   40 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IAuthClientService.java                                          |   29 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/clike/clike.js                                       |  879 
 skjcmanager/doc/sql/sqlserver/bladex-saber-sqlserver.sql                                                                                                    | 5005 ++
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/ICodeService.java                                                  |   38 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/DatasourceMapper.xml                                                |   22 
 skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application-dev.yml                                                                       |    6 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/ResourceApplication.java                                                 |   36 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/i18n/message_en.properties                                                          |  262 
 skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictBizClientFallback.java                                  |   46 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/ApiScopeServiceImpl.java                                    |   33 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/ILogApiService.java                                                   |   29 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/feign/ISysClientFallback.java                                    |  154 
 skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/cache/CacheNames.java                                                                        |   59 
 skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/entity/FlowEntity.java                                              |   43 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuMapper.xml                                                 |   21 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictBizMapper.java                                                |   64 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java                                        |  297 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/index.js                                                                  |  207 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/GateWayApplication.java                                                                    |   40 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/OssController.java                                            |  151 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserService.java                                             |  208 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/RoleMenu.java                                             |   65 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobLogGlueDao.java                                           |   24 
 skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/pom.xml                                                                                           |   32 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/LoginService.java                                           |  107 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/ILeaveService.java                                                   |   37 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/DataScopeClient.java                                               |  109 
 skjcmanager/doc/nacos/README.md                                                                                                                             |    3 
 skjcmanager/skjcmanager-service-api/skjcmanager-user-api/pom.xml                                                                                            |   24 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/pom.xml                                                                                                    |  112 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DictBizWrapper.java                                              |   61 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/old/XxlJobThreadPool.java                                      |   58 
 skjcmanager/doc/sql/update/bladex-update-sqlserver-3.0.0~3.0.1.sql                                                                                          |  430 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/Dockerfile                                                                                                     |   15 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/FontAwesome.otf                 |    0 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/dist/css/skins/_all-skins.min.css                                   |    1 
 skjcmanager/skjcmanager-service/skjcmanager-user/Dockerfile                                                                                                 |   15 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/XxlJobService.java                                          |   86 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/pom.xml                                                                                                |  117 
 skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/cache/DictBizCache.java                                            |  133 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Tenant.java                                               |  112 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/constant/FlowEngineConstant.java                                          |   52 
 skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/cache/DictCache.java                                               |  160 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java                                                 |   88 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/icon.png                                         |    0 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictBizMapper.xml                                                 |   51 
 skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/dto/DictDTO.java                                                   |   33 
 skjcmanager/script/docker/app/prometheus/config/alert_rules.yml                                                                                             |  118 
 skjcmanager/script/docker/app/prometheus/config/grafana.ini                                                                                                 |  849 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserDeptServiceImpl.java                                 |   34 
 skjcmanager/doc/sql/update/bladex-update-postgresql-3.0.0~3.0.1.sql                                                                                         |  171 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelPrototypeMapper.java                                           |   29 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/css/bootstrap.min.css                    |    6 
 skjcmanager/skjcmanager-auth/src/main/resources/templates/confirm.ftl                                                                                       |   69 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application-prod.yml                                                                |    7 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/IModelPrototypeService.java                                        |   47 
 skjcmanager/script/docker/app/prometheus/dashboard/bladex-nacos.json                                                                                        | 4539 +
 skjcmanager/script/docker/app/.env                                                                                                                          |    2 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/utils/FlowCache.java                                                      |   78 
 skjcmanager/skjcmanager-plugin/pom.xml                                                                                                                      |   17 
 skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/config/ScopeConfiguration.java                                    |   50 
 skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserOther.java                                         |   64 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/resources/application-prod.yml                                                                         |   10 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application-dev.yml                                                                 |    7 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/login.ftl                                                                 |   45 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRegionService.java                                              |   86 
 skjcmanager/doc/nacos/blade-prod.yaml                                                                                                                       |   41 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.eot                        |    0 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/IndexController.java                                     |   93 
 skjcmanager/skjcmanager-ops/skjcmanager-log/Dockerfile                                                                                                      |   15 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserServiceImpl.java                                     |  433 
 skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/java/cn/gistack/report/ReportApplication.java                                                       |   35 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/RoleScope.java                                            |   71 
 .idea/.gitignore                                                                                                                                            |   10 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictMapper.java                                                   |   73 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml                                                 |  229 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/RequestFilter.java                                                                  |   63 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/layer.js                                                       |    2 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/ModelPrototypeServiceImpl.java                                |   55 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/cron/CronExpression.java                                       | 1666 
 skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/Oss.java                                                  |   87 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDataScopeService.java                                           |   29 
 skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IApiScopeClientFallback.java                                |   39 
 skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/TenantConstant.java                                                                 |   66 
 skjcmanager/doc/sql/update/bladex-update-dameng-3.0.0~3.0.1.sql                                                                                             |  126 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/css/font-awesome.css.map              |    7 
 skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IApiScopeClient.java                                        |   60 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DataScopeController.java                                      |  123 
 skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/utils/SmsUtil.java                                               |  113 
 skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserWeb.java                                           |   64 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/nacos/blade-xxljob-admin-dev.yaml                                                                  |   16 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteBusyover.java                      |   47 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/feign/FlowClient.java                                                   |  107 
 skjcmanager/skjcmanager-plugin-api/pom.xml                                                                                                                  |   30 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/RoleVO.java                                                   |   72 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/old/XxlJobDynamicScheduler.java                                |  413 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/addon/hint/anyword-hint.js                                |   41 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteFailover.java                      |   48 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue@2x.png                                   |    0 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobLogController.java                                    |  230 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/endpoint/SmsEndpoint.java                                                |  176 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/controller/UserController.java                                        |  336 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/controller/NoticeController.java                                             |  150 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/INoticeService.java                                                  |   39 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.woff                       |    0 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue.png                                      |    0 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/feign/NoticeClient.java                                                      |   54 
 .idea/vcs.xml                                                                                                                                               |    6 
 .idea/modules.xml                                                                                                                                           |    8 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/ParamVO.java                                                  |   35 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowProcessController.java                                     |   96 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/resources/application-prod.yml                                                                  |   10 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application-test.yml                                                                        |    6 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobGroup.java                                         |   76 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Dept.java                                                 |  108 
 skjcmanager/skjcmanager-gateway/src/main/resources/application-dev.yml                                                                                      |   11 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuMapper.java                                                |   29 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/java/cn/gistack/flow/test/BladeTest.java                                                              |   46 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/CodeMapper.java                                                     |   29 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/CodeController.java                                             |  190 
 skjcmanager/skjcmanager-plugin/README.md                                                                                                                    |   15 
 skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/dingtalk/DingTalkNotifier.java                                                 |  105 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/LeaveMapper.xml                                                       |    6 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue.css                                      |   62 
 skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/handler/DataScopeModelHandler.java                                |   65 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserWebMapper.java                                             |   30 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/ResponseProvider.java                                                             |   84 
 skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application-test.yml                                                                     |   12 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/NoticeMapper.xml                                                      |   54 
 skjcmanager/script/docker/app/prometheus/dashboard/bladex-linux.json                                                                                        | 3841 +
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/user/user.index.ftl                                                       |  188 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/ParamDTO.java                                                |   33 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/controller/LogUsualController.java                                            |   66 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/jquery/jquery.cookie.js                                              |  117 
 skjcmanager/script/docker/elk/es-master.yml                                                                                                                 |   28 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IPostService.java                                                |   68 
 skjcmanager/script/fatjar/service.cmd                                                                                                                       |    1 
 skjcmanager/.gitignore                                                                                                                                      |   27 
 skjcmanager/script/docker/app/prometheus/dashboard/bladex-docker.json                                                                                       | 1705 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteFirst.java                         |   19 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IApiScopeService.java                                            |   29 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/DictBizClient.java                                                 |   63 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/QiniuSmsBuilder.java                                         |   47 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Param.java                                                |   64 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/excel/RegionImporter.java                                                |   40 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/ModelServiceImpl.java                                         |   33 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserSearchClient.java                                           |   65 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowModelController.java                                       |  118 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/MenuController.java                                           |  286 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDeptService.java                                                |  119 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/test/java/cn/gistack/test/CodeGenerator.java                                                            |   95 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelMapper.java                                                    |   29 
 skjcmanager/script/docker/app/prometheus/config/dingtalk.yml                                                                                                |   12 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js   |    8 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java                                        |  173 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RoleMenuServiceImpl.java                                    |   33 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/joblog.index.1.js                                                         |  375 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/php/php.js                                           |  234 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/conf/XxlJobAdminConfig.java                                    |  148 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobTriggerPoolHelper.java                               |  145 
 skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java                                        |  119 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml                                                    |  478 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg   |  288 
 skjcmanager/doc/sql/oracle/bladex-flowable-oracle.sql                                                                                                       | 5676 ++
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantMapper.xml                                                  |   31 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuSettingMapper.java                                         |   29 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/pom.xml                                                                                                        |   97 
 skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/enums/SmsCodeEnum.java                                           |   62 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application-dev.yml                                                                         |    6 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.css      |  269 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/entity/FlowExecution.java                                                 |   50 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/DeptDTO.java                                                 |   33 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuSettingMapper.xml                                          |    5 
 skjcmanager/doc/mvn/mvn命令.md                                                                                                                                |    3 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserSearchService.java                                       |   64 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/config/RouterFunctionConfiguration.java                                                    |   81 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/CheckedTreeVO.java                                            |   37 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application-prod.yml                                                                    |    7 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/datatables.net/js/jquery.dataTables.min.js         |  166 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/ApiScope.java                                             |   71 
 skjcmanager/skjcmanager-service-api/pom.xml                                                                                                                 |   73 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/resources/application-test.yml                                                                         |    9 
 skjcmanager/skjcmanager-auth/Dockerfile                                                                                                                     |   21 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/icon-ext.png                                     |    0 
 skjcmanager/doc/sql/postgresql/bladex-saber-postgresql.sql                                                                                                  | 5285 ++
 skjcmanager/skjcmanager-ops/pom.xml                                                                                                                         |   36 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/YunpianSmsBuilder.java                                       |   44 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/LeaveMapper.java                                                      |   29 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RegionMapper.xml                                                  |  105 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/application-test.yml                                                                     |   10 
 skjcmanager/README.md                                                                                                                                       |   43 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/AuthClient.java                                           |   98 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMapper.xml                                                    |   63 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/jobgroup.index.1.js                                                       |  239 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/common/common.macro.ftl                                                   |  239 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DeptWrapper.java                                                 |   78 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobGroupDao.java                                             |   26 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DictController.java                                           |  196 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/ISmsService.java                                                 |   56 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ParamMapper.java                                                  |   29 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/GatewayFilter.java                                                                 |   41 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/TopMenuController.java                                        |  138 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserAppMapper.xml                                              |    5 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml                                                    |  115 
 skjcmanager/script/docker/app/nacos/init.d/custom.properties                                                                                                |   19 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMenuMapper.java                                               |   41 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/ParamServiceImpl.java                                       |   40 
 skjcmanager/doc/sql/postgresql/bladex-flowable-postgresql.sql                                                                                               | 2741 +
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobLogReportMapper.xml                                            |   62 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/ModelController.java                                            |  228 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IParamService.java                                               |   37 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.css                                  |   36 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/jobcode/jobcode.index.ftl                                                 |  164 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ApiScopeMapper.java                                               |   29 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/PostController.java                                           |  149 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeClientDetailsServiceImpl.java                                                       |   51 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/IDatasourceService.java                                            |   29 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/OssMapper.java                                                    |   42 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/DynamicRouteServiceListener.java                                                   |   96 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteRandom.java                        |   23 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application-test.yml                                                                    |    6 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserOauthService.java                                        |   30 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOtherMapper.java                                           |   30 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java                |   85 
 skjcmanager/doc/nacos/routes/blade-gateway-dev.json                                                                                                         |   28 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DeptController.java                                           |  179 
 skjcmanager/script/docker/elk/filebeat.yml                                                                                                                  |   37 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/js/bootstrap.min.js                      |    7 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITopMenuSettingService.java                                      |   29 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.java                                                   |  183 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/interceptor/PermissionInterceptor.java                   |   59 
 skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application-prod.yml                                                                     |   12 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/fastclick/fastclick.js                             |  841 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/cronGen/cronGen_en.js                                                | 1079 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Post.java                                                 |   66 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/PostWrapper.java                                                 |   47 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/JwtTokenStoreConfiguration.java                                                           |   77 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/RoleDTO.java                                                 |   33 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserWebMapper.xml                                              |    5 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/SmsMapper.xml                                                     |   30 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleScopeMapper.xml                                               |   12 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TenantServiceImpl.java                                      |  253 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/wrapper/NoticeWrapper.java                                                   |   64 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetails.java                                                                    |   99 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/ModelPrototype.java                                                 |  119 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/cache/SysCache.java                                              |  373 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/wrapper/UserWrapper.java                                              |   59 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOauthMapper.java                                           |   29 
 skjcmanager/skjcmanager-auth/src/main/resources/application-prod.yml                                                                                        |   15 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/dto/ModelDTO.java                                                          |   42 
 skjcmanager/skjcmanager-ops/skjcmanager-swagger/pom.xml                                                                                                     |   57 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.ttf                        |    0 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml                                                |   63 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/moment/moment.min.js                               |    1 
 skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/pom.xml                                                                                            |   17 
 skjcmanager/doc/nacos/routes/README.md                                                                                                                      |    1 
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java                                                         |  211 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/impl/LogUsualServiceImpl.java                                         |   33 
 skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/cache/UserCache.java                                          |   87 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf   |    0 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/application-dev.yml                                                                      |   10 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/RoleMenuVO.java                                               |   35 
 skjcmanager/script/docker/elk/kibana.yml                                                                                                                    |    8 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/impl/LogErrorServiceImpl.java                                         |   33 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/JobAdminApplication.java                                            |   17 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/config/BladeOssConfiguration.java                                        |   44 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/config/BladeSmsConfiguration.java                                        |   47 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/UserApplication.java                                                  |   38 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/trigger/XxlJobTrigger.java                                     |  211 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 |    0 
 skjcmanager/skjcmanager-service/pom.xml                                                                                                                     |   56 
 skjcmanager/skjcmanager-common/src/main/resources/banner.txt                                                                                                |    8 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/GlobalResponseLogFilter.java                                                        |   99 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/SmsMapper.java                                                    |   41 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobInfoController.java                                   |  166 
 skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictClient.java                                             |   73 
 skjcmanager/skjcmanager-auth/src/main/resources/application-dev.yml                                                                                         |   15 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/TopMenuSetting.java                                       |   38 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application.yml                                                                             |   13 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/login.1.js                                                                |   66 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/Dockerfile                                                                                                 |   15 
 skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/AdminApplication.java                                                          |   39 
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/excel/UserExcel.java                                                  |   97 
 skjcmanager/script/docker/elk/logstash-filebeat.conf                                                                                                        |   23 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java                                                   |   68 
 skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/dingtalk/DingTalkService.java                                                  |  110 
 skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/java/cn/gistack/report/config/BladeReportConfiguration.java                                         |   43 
 skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/pom.xml                                                                                            |   28 
 skjcmanager/doc/sql/oracle/bladex-sword-oracle.sql                                                                                                          | 6498 ++
 skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladePasswordEncoder.java                                                                |   39 
 skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/LogApplication.java                                                           |   35 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application.yml                                                                             |   13 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITenantPackageService.java                                       |   29 
 skjcmanager/skjcmanager-ops/skjcmanager-log/pom.xml                                                                                                         |   58 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobScheduleHelper.java                                  |  354 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/DictClient.java                                                    |   63 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/icheck.min.js                                        |   10 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/resources/application-test.yml                                                                  |   10 
 skjcmanager/doc/sql/dm/bladex-saber-dameng.dmp                                                                                                              |    0 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/dist/js/adminlte.min.js                                             |   14 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/impl/NoticeServiceImpl.java                                          |   43 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/powershell/powershell.js                             |  398 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/TencentOssBuilder.java                                       |   66 
 skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/SmsServiceImpl.java                                         |   67 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application.yml                                                                     |   61 
 skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/controller/LeaveController.java                                              |   66 
 skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/Model.java                                                          |   74 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application-dev.yml                                                                         |    6 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobRegistryMonitorHelper.java                           |  111 
 skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.svg         | 2671 +
 skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserInfo.java                                          |   68 
 skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/config/SecurityConfiguration.java                                              |   73 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/service/impl/FlowBusinessServiceImpl.java                               |  333 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/DynamicRouteService.java                                                           |  101 
 skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/processes/LeaveProcess.bpmn20.xml                                                           |  123 
 skjcmanager/skjcmanager-auth/src/main/resources/static/css/iofrm-style.css                                                                                  | 1818 
 skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/GlobalRequestLogFilter.java                                                         |  112 
 skjcmanager/script/docker/app/prometheus/dashboard/bladex-mysql.json                                                                                        | 5055 ++
 skjcmanager/skjcmanager-auth/src/main/resources/static/js/md5.js                                                                                            |  683 
 skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/ApiScopeVO.java                                               |   39 
 skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/OssVO.java                                                    |   29 
 skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/RoleController.java                                           |  171 
 735 files changed, 148,692 insertions(+), 0 deletions(-)

diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..0a8642f
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,10 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Zeppelin ignored files
+/ZeppelinRemoteNotebooks/
diff --git a/.idea/manager.iml b/.idea/manager.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/manager.iml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$" />
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+  </component>
+</module>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..639900d
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..994121f
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/manager.iml" filepath="$PROJECT_DIR$/.idea/manager.iml" />
+    </modules>
+  </component>
+</project>
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="" vcs="Git" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/skjcmanager/.editorconfig b/skjcmanager/.editorconfig
new file mode 100644
index 0000000..8cfd370
--- /dev/null
+++ b/skjcmanager/.editorconfig
@@ -0,0 +1,21 @@
+# http://editorconfig.org
+root = true
+
+# 空格替代Tab缩进在各种编辑工具下效果一致
+[*]
+indent_style = space
+indent_size = 4
+charset = utf-8
+end_of_line = lf
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.java]
+indent_style = tab
+
+[*.{json,yml}]
+indent_size = 2
+
+[*.md]
+insert_final_newline = false
+trim_trailing_whitespace = false
diff --git a/skjcmanager/.gitignore b/skjcmanager/.gitignore
new file mode 100644
index 0000000..987273c
--- /dev/null
+++ b/skjcmanager/.gitignore
@@ -0,0 +1,27 @@
+# maven #
+target
+
+logs
+
+# windows #
+Thumbs.db
+
+# Mac #
+.DS_Store
+
+# eclipse #
+.settings
+.project
+.classpath
+.log
+*.class
+
+# idea #
+.idea
+*.iml
+
+# Package Files #
+*.jar
+*.war
+*.ear
+/target
diff --git a/skjcmanager/LICENSE b/skjcmanager/LICENSE
new file mode 100644
index 0000000..3ad5f69
--- /dev/null
+++ b/skjcmanager/LICENSE
@@ -0,0 +1,34 @@
+BladeX商业授权许可协议
+
+一、 知识产权:
+BladeX系列产品知识产权归上海布雷德科技有限公司独立所有
+
+二、 许可:
+1. 在您完全接受并遵守本协议的基础上,本协议授予您使用BladeX的某些权利和非独占性许可。
+2. 本协议中,将本产品使用用途分为“专业版用途”和“企业版用途”。
+3. “专业版用途”定义:指个人在非团体机构中出于任何目的使用本产品(任何目的包括商业目的或非盈利目的)。
+4. “企业版用途”定义:指团体机构(例如公司企业、政府、学校、军队、医院、社会团体等各类组织)(不包含集团,若集团使用则需为各个子公司分别购买企业授权)出于任何目的使用本产品(任何目的包括商业目的或非盈利目的)。
+
+三、 约束和限制:
+1. 本产品只能由您为本协议许可的目的而使用,您不得透露给任何第三方;
+2. 从本产品取得的任何信息、软件、产品或服务,您不得对其进行修改、改编或基于以上内容创建同种类别的衍生产品并售卖。
+3. 您不得对本产品以及与之关联的商业授权进行发布、出租、销售、分销、抵押、转让、许可或发放子许可证。
+4. 本产品商业授权版可能包含一些独立功能或特性,这些功能只有在您购买商业授权后才可以使用。在未取得商业授权的情况下,您不得使用、尝试使用或复制这些授权版独立功能。
+5. 若您的客户要求以源码方式交付软件,需缴纳企业版授权费用,否则本产品部分不得提供源码。
+
+四、 不得用于非法或禁止的用途:
+您在使用本产品或服务时,不得将本产品产品或服务用于任何非法用途或本协议条款、条件和声明禁止的用途。
+
+五、 免责说明:
+1. 本产品按“现状”授予许可,您须自行承担使用本产品的风险。BladeX团队不对此提供任何明示、暗示或任何其它形式的担保和表示。在任何情况下,对于因使用或无法使用本软件而导致的任何损失(包括但不仅限于商业利润损失、业务中断或业务信息丢失),BladeX团队无需向您或任何第三方负责,即使BladeX团队已被告知可能会造成此类损失。在任何情况下, BladeX团队均不就任何直接的、间接的、附带的、后果性的、特别的、惩戒性的和处罚性的损害赔偿承担任何责任,无论该主张是基于保证、合同、侵权(包括疏忽)或是基于其他原因作出。
+2. 本产品可能内置有第三方服务,您应自行评估使用这些第三方服务的风险,由使用此类第三方服务而产生的纠纷,全部责任由您自行承担。
+3. BladeX团队不对使用本产品构建的网站中任何信息内容以及导致的任何版权纠纷、法律争议和后果承担任何责任,全部责任由您自行承担。
+4. BladeX团队可能会经常提供产品更新或升级,但BladeX团队没有为根据本协议许可的产品提供维护或更新的责任。
+5. BladeX团队可能会按照官方制定的答疑规则为您进行答疑,但BladeX团队没有为根据本协议许可的产品提供技术支持的义务或责任。
+
+六、 权利和所有权的保留:
+BladeX团队保留所有未在本协议中明确授予您的所有权利。BladeX团队保留随时更新本协议的权利,并只需公示于对应产品项目的LICENSE文件,无需征得您的事先同意且无需另行通知,更新后的内容应于公示即时生效。您可以随时访问产品地址并查阅最新版许可条款,在更新生效后您继续使用本产品则被视作您已接受了新的条款。
+
+七、 协议终止
+1. 您一旦开始复制、下载、安装或者使用本产品,即被视为完全理解并接受本协议的各项条款,在享有上述条款授予的许可权力同时,也受到相关的约束和限制,本协议许可范围以外的行为,将直接违反本协议并构成侵权。
+2. 一旦您违反本协议的条款,BladeX团队随时可能终止本协议、收回许可和授权,并要求您承担相应法律和经济责任。
diff --git a/skjcmanager/README.md b/skjcmanager/README.md
new file mode 100644
index 0000000..0de6efe
--- /dev/null
+++ b/skjcmanager/README.md
@@ -0,0 +1,43 @@
+## 版权声明
+* BladeX是一个商业化软件,系列产品知识产权归**上海布雷德科技有限公司**独立所有
+* 您一旦开始复制、下载、安装或者使用本产品,即被视为完全理解并接受本协议的各项条款
+* 更多详情请看:[BladeX商业授权许可协议](/LICENSE)
+
+## 答疑流程
+>1. 遇到问题或Bug
+>2. 业务型问题打断点调试尝试找出问题所在
+>3. 系统型问题通过百度、谷歌、社区查找解决方案
+>4. 未解决问题则进入技术社区进行发帖提问:[https://sns.bladex.vip/](https://sns.bladex.vip/)
+>5. 将帖子地址发至商业群,特别简单三言两语就能描述清楚的也可在答疑时间内发至商业群提问
+>6. 发帖的时候一定要描述清楚,详细描述遇到问题的**重现步骤**、**报错详细信息**、**相关代码与逻辑**、**使用软件版本**以及**操作系统版本**,否则随意发帖提问将会提高我们的答疑难度。
+
+## 答疑时间
+* 工作日:9:00 ~ 17:00 提供答疑,周末、节假日休息,暂停答疑
+* 请勿**私聊提问**,以免被其他用户的消息覆盖从而无法获得答疑
+* 答疑时间外遇到问题可以将问题发帖至[技术社区](https://sns.bladex.vip/),我们后续会逐个回复
+
+## 授权范围
+* 专业版:只可用于**个人学习**及**个人私活**项目,不可用于公司或团队,不可泄露给任何第三方
+* 企业版:可用于**企业名下**的任何项目,企业版员工在**未购买**专业版授权前,只授权开发**所在授权企业名下**的项目,**不得将BladeX用于个人私活**
+* 共同遵守:若甲方需要您提供项目源码,则需代为甲方购买BladeX企业授权,甲方购买后续的所有项目都无需再次购买授权
+
+## 商用权益
+* ✔️ 遵守[商业协议](/LICENSE)的前提下,将BladeX系列产品用于授权范围内的商用项目,并上线运营
+* ✔️ 遵守[商业协议](/LICENSE)的前提下,不限制项目数,不限制服务器数
+* ✔️ 遵守[商业协议](/LICENSE)的前提下,将自行编写的业务代码申请软件著作权
+
+## 何为侵权
+* ❌ 不遵守商业协议,私自销售商业源码
+* ❌ 以任何理由将BladeX源码用于申请软件著作权
+* ❌ 将商业源码以任何途径任何理由泄露给未授权的单位或个人
+* ❌ 开发完毕项目,没有为甲方购买企业授权,向甲方提供了BladeX代码
+* ❌ 基于BladeX拓展研发与BladeX有竞争关系的衍生框架,并将其开源或销售
+
+## 侵权后果
+* 情节较轻:第一次发现警告处理
+* 情节较重:封禁账号,踢出商业群,并保留追究法律责任的权利
+* 情节严重:与本地律师事务所合作,以公司名义起诉侵犯计算机软件著作权
+
+## 举报有奖
+* 向官方提供有用线索并成功捣毁盗版个人或窝点,将会看成果给予 500~10000 不等的现金奖励
+* 官方唯一指定QQ:1272154962
\ No newline at end of file
diff --git a/skjcmanager/doc/docker/README.md b/skjcmanager/doc/docker/README.md
new file mode 100644
index 0000000..fca904c
--- /dev/null
+++ b/skjcmanager/doc/docker/README.md
@@ -0,0 +1,109 @@
+#使用docker构建工程步骤
+### 1. 使用harbor作为私有库,需要配置maven,找到setting.xml( `linux可以使用find / -name settings.xml`)加入以下配置
+
+```
+<servers>
+  <server>
+    <id>192.168.0.157</id>
+    <username>admin</username>
+    <password>Harbor12345</password>
+    <configuration>
+      <email>smallchill@163.com</email>
+    </configuration>
+  </server>
+</servers>
+
+<pluginGroups>
+  <pluginGroup>com.spotify</pluginGroup>  
+</pluginGroups>
+```
+
+### 2. docker开启远程访问
+
+如果没有远程访问,会报 `Connect to 192.168.0.157:2375 [/192.168.0.157] failed: Connection refused: connect`
+
+在`/usr/lib/systemd/system/docker.service`,配置远程访问。主要是在[Service]这个部分,加上下面两个参数:
+
+```
+cd /usr/lib/systemd/system
+
+vi docker.service
+
+ExecStart=
+ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
+```
+
+### 3. 配置http访问
+因为docker1.3.2版本开始默认docker registry使用的是https,我们设置Harbor默认http方式,所以当执行用docker login、pull、push等命令操作非https的docker regsitry的时就会报错。  
+解决办法:配置`/etc/docker/daemon.json`
+
+```
+[root@localhost harbor]# vi /etc/docker/daemon.json 
+{
+  "registry-mirrors": ["https://3dse7md.mirror.aliyuncs.com"]
+}
+```
+
+将其修改为:
+
+```
+{
+  "registry-mirrors": ["https://3dse7md.mirror.aliyuncs.com"],
+  "insecure-registries":["192.168.0.157"]
+}
+```
+
+### 4. 在每个需要构建子项目的pom.xml下加入配置,内容可参考如下
+
+```
+<build>
+  <plugins>
+    <plugin>
+        <groupId>com.spotify</groupId>
+        <artifactId>dockerfile-maven-plugin</artifactId>
+        <configuration>
+            <username>${docker.username}</username>
+            <password>${docker.password}</password>
+            <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+            <tag>${project.version}</tag>
+            <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+            <buildArgs>
+                <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+            </buildArgs>
+            <skip>false</skip>
+        </configuration>
+    </plugin>
+  </plugins>
+</build>
+```
+
+### 5. 在每个需要构建子项目的根目录下加入Dockerfile,内容可参考如下
+
+```
+FROM bladex/alpine-java:openjdk8-openj9_cn_slim
+
+MAINTAINER bladejava@qq.com
+
+RUN mkdir -p /blade/gateway
+
+WORKDIR /blade/gateway
+
+EXPOSE 80
+
+ADD ./target/blade-gateway.jar ./app.jar
+
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
+
+CMD ["--spring.profiles.active=test"]
+```
+
+### 6. 在工程根目录的docker-compose.yml下加入配置,内容可参考如下
+```
+blade-gateway:
+  image: "${REGISTER}/blade-gateway:${TAG}"
+  ports:
+  - 80:80
+  networks:
+    blade_net:
+      ipv4_address: 192.168.2.1
+```
diff --git "a/skjcmanager/doc/mvn/mvn\345\221\275\344\273\244.md" "b/skjcmanager/doc/mvn/mvn\345\221\275\344\273\244.md"
new file mode 100644
index 0000000..3348602
--- /dev/null
+++ "b/skjcmanager/doc/mvn/mvn\345\221\275\344\273\244.md"
@@ -0,0 +1,3 @@
+mvn install:install-file -Dfile=blade-core-1.0.jar -DgroupId=org.springblade -DartifactId=blade-core -Dversion=1.0 -Dpackaging=jar
+
+mvn deploy:deploy-file -DgroupId=com.zhuozhengsoft -DartifactId=pageoffice -Dversion=4.5.0.2  -Dpackaging=jar  -Dfile=pageoffice4.5.0.2.jar -Durl=http://nexus.javablade.com/repository/maven-releases/ -DrepositoryId=release
diff --git a/skjcmanager/doc/nacos/README.md b/skjcmanager/doc/nacos/README.md
new file mode 100644
index 0000000..6764aec
--- /dev/null
+++ b/skjcmanager/doc/nacos/README.md
@@ -0,0 +1,3 @@
+* BladeX的注册中心
+* 具体文档详见:https://nacos.io/zh-cn/docs/quick-start.html
+* docker部署详见:https://github.com/nacos-group/nacos-docker
\ No newline at end of file
diff --git a/skjcmanager/doc/nacos/blade-dev.yaml b/skjcmanager/doc/nacos/blade-dev.yaml
new file mode 100644
index 0000000..8d15f95
--- /dev/null
+++ b/skjcmanager/doc/nacos/blade-dev.yaml
@@ -0,0 +1,62 @@
+#spring配置
+spring:
+  redis:
+    ##redis 单机环境配置
+    host: 127.0.0.1
+    port: 6379
+    password:
+    database: 0
+    ssl: false
+    ##redis 集群环境配置
+    #cluster:
+    #  nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003
+    #  commandTimeout: 5000
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    #driver-class-name: org.postgresql.Driver
+    #driver-class-name: oracle.jdbc.OracleDriver
+    #driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+    #driver-class-name: dm.jdbc.driver.DmDriver
+    druid:
+      # MySql、PostgreSQL、SqlServer、DaMeng校验
+      validation-query: select 1
+      # Oracle校验
+      #validation-query: select 1 from dual
+
+#项目模块集中配置
+blade:
+  #分布式锁配置
+  lock:
+    enabled: false
+    address: redis://127.0.0.1:6379
+  #多团队协作服务配置
+  loadbalancer:
+    #开启配置
+    enabled: true
+    #负载均衡优先调用的ip段
+    prior-ip-pattern:
+      - 192.168.0.*
+      - 127.0.0.1
+  #通用开发生产环境数据库地址(特殊情况可在对应的子工程里配置覆盖)
+  datasource:
+    dev:
+      # MySql
+      url: jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
+      username: root
+      password: root
+      # PostgreSQL
+      #url: jdbc:postgresql://127.0.0.1:5432/bladex
+      #username: postgres
+      #password: 123456
+      # Oracle
+      #url: jdbc:oracle:thin:@127.0.0.1:1521:orcl
+      #username: BLADEX
+      #password: BLADEX
+      # SqlServer
+      #url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex
+      #username: bladex
+      #password: bladex
+      # DaMeng
+      #url: jdbc:dm://127.0.0.1:5236/BLADEX?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
+      #username: BLADEX
+      #password: BLADEX
diff --git a/skjcmanager/doc/nacos/blade-prod.yaml b/skjcmanager/doc/nacos/blade-prod.yaml
new file mode 100644
index 0000000..07e52fb
--- /dev/null
+++ b/skjcmanager/doc/nacos/blade-prod.yaml
@@ -0,0 +1,41 @@
+#spring配置
+spring:
+  redis:
+    ##redis 单机环境配置
+    ##将docker脚本部署的redis服务映射为宿主机ip
+    ##生产环境推荐使用阿里云高可用redis服务并设置密码
+    host: 192.168.0.157
+    port: 3379
+    password:
+    database: 0
+    ssl: false
+    ##redis 集群环境配置
+    #cluster:
+    #  nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003
+    #  commandTimeout: 5000
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    #driver-class-name: org.postgresql.Driver
+    #driver-class-name: oracle.jdbc.OracleDriver
+    #driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+    druid:
+      # MySql、PostgreSQL、SqlServer校验
+      validation-query: select 1
+      # Oracle校验
+      #validation-query: select 1 from dual
+
+#项目模块集中配置
+blade:
+  #分布式锁配置
+  lock:
+    ##是否启用分布式锁
+    enabled: false
+    ##将docker脚本部署的redis服务映射为宿主机ip
+    ##生产环境推荐使用阿里云高可用redis服务并设置密码
+    address: redis://192.168.0.157:3379
+  #通用开发生产环境数据库地址(特殊情况可在对应的子工程里配置覆盖)
+  datasource:
+    prod:
+      url: jdbc:mysql://192.168.0.157:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
+      username: root
+      password: root
diff --git a/skjcmanager/doc/nacos/blade-test.yaml b/skjcmanager/doc/nacos/blade-test.yaml
new file mode 100644
index 0000000..269d7c6
--- /dev/null
+++ b/skjcmanager/doc/nacos/blade-test.yaml
@@ -0,0 +1,39 @@
+#spring配置
+spring:
+  redis:
+    ##redis 单机环境配置
+    ##将docker脚本部署的redis服务映射为宿主机ip
+    host: 192.168.0.157
+    port: 3379
+    password:
+    database: 0
+    ssl: false
+    ##redis 集群环境配置
+    #cluster:
+    #  nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003
+    #  commandTimeout: 5000
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    #driver-class-name: org.postgresql.Driver
+    #driver-class-name: oracle.jdbc.OracleDriver
+    #driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+    druid:
+      # MySql、PostgreSQL、SqlServer校验
+      validation-query: select 1
+      # Oracle校验
+      #validation-query: select 1 from dual
+
+#项目模块集中配置
+blade:
+  #分布式锁配置
+  lock:
+    ##是否启用分布式锁
+    enabled: false
+    ##将docker脚本部署的redis服务映射为宿主机ip
+    address: redis://192.168.0.157:3379
+  #通用开发生产环境数据库地址(特殊情况可在对应的子工程里配置覆盖)
+  datasource:
+    test:
+      url: jdbc:mysql://192.168.0.157:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
+      username: root
+      password: root
diff --git a/skjcmanager/doc/nacos/blade.yaml b/skjcmanager/doc/nacos/blade.yaml
new file mode 100644
index 0000000..5e7794a
--- /dev/null
+++ b/skjcmanager/doc/nacos/blade.yaml
@@ -0,0 +1,163 @@
+#服务器配置
+server:
+  undertow:
+    threads:
+      # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
+      io: 16
+      # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
+      worker: 400
+    # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
+    buffer-size: 1024
+    # 是否分配的直接内存
+    direct-buffers: true
+
+#spring配置
+spring:
+  cloud:
+    sentinel:
+      eager: true
+  devtools:
+    restart:
+      log-condition-evaluation-delta: false
+    livereload:
+      port: 23333
+
+#feign配置
+feign:
+  sentinel:
+    enabled: true
+  okhttp:
+    enabled: true
+  httpclient:
+    enabled: false
+
+#对外暴露端口
+management:
+  endpoints:
+    web:
+      exposure:
+        include: "*"
+  endpoint:
+    health:
+      show-details: always
+
+#knife4j配置
+knife4j:
+  #启用
+  enable: true
+  #基础认证
+  basic:
+    enable: false
+    username: blade
+    password: blade
+  #增强配置
+  setting:
+    enableSwaggerModels: true
+    enableDocumentManage: true
+    enableHost: false
+    enableHostText: http://localhost
+    enableRequestCache: true
+    enableFilterMultipartApis: false
+    enableFilterMultipartApiMethodType: POST
+    language: zh-CN
+    enableFooter: false
+    enableFooterCustom: true
+    footerCustomContent: Copyright © 2022 BladeX All Rights Reserved
+
+#swagger公共信息
+swagger:
+  title: BladeX 接口文档系统
+  description: BladeX 接口文档系统
+  version: 3.0.1.RELEASE
+  license: Powered By BladeX
+  license-url: https://bladex.vip
+  terms-of-service-url: https://bladex.vip
+  contact:
+    name: smallchill
+    email: smallchill@163.com
+    url: https://gitee.com/smallc
+
+#blade配置
+blade:
+  #token配置
+  token:
+    #是否有状态
+    state: false
+  #redis序列化方式
+  redis:
+    serializer-type: protostuff
+  #接口配置
+  api:
+    #报文加密配置
+    crypto:
+      #启用报文加密配置
+      enabled: false
+      #使用AesUtil.genAesKey()生成
+      aes-key: O2BEeIv399qHQNhD6aGW8R8DEj4bqHXm
+      #使用DesUtil.genDesKey()生成
+      des-key: jMVCBsFGDQr1USHo
+  #jackson配置
+  jackson:
+    #null自动转空值
+    null-to-empty: true
+    #大数字自动转字符串
+    big-num-to-string: true
+    #支持text文本请求,与报文加密同时开启
+    support-text-plain: false
+  #xss配置
+  xss:
+    enabled: true
+    skip-url:
+      - /weixin
+      - /notice/submit
+      - /model/submit
+  #安全框架配置
+  secure:
+    #接口放行
+    skip-url:
+      - /test/**
+    #授权认证配置
+    auth:
+      - method: ALL
+        pattern: /weixin/**
+        expression: "hasAuth()"
+      - method: POST
+        pattern: /dashboard/upload
+        expression: "hasTimeAuth(9, 17)"
+      - method: POST
+        pattern: /dashboard/submit
+        expression: "hasAnyRole('administrator', 'admin', 'user')"
+    #基础认证配置
+    basic:
+      - method: ALL
+        pattern: /dashboard/info
+        username: "blade"
+        password: "blade"
+    #动态签名认证配置
+    sign:
+      - method: ALL
+        pattern: /dashboard/sign
+        crypto: "sha1"
+    #多终端认证配置
+    client:
+      - client-id: sword
+        path-patterns:
+          - /sword/**
+      - client-id: saber
+        path-patterns:
+          - /saber/**
+  #多租户配置
+  tenant:
+    #多租户增强
+    enhance: true
+    #多租户授权保护
+    license: false
+    #动态数据源功能
+    dynamic-datasource: false
+    #动态数据源全局扫描
+    dynamic-global: false
+    #多租户字段名
+    column: tenant_id
+    #排除多租户逻辑
+    exclude-tables:
+      - blade_user
diff --git a/skjcmanager/doc/nacos/routes/README.md b/skjcmanager/doc/nacos/routes/README.md
new file mode 100644
index 0000000..7583e15
--- /dev/null
+++ b/skjcmanager/doc/nacos/routes/README.md
@@ -0,0 +1 @@
+动态网关配置
\ No newline at end of file
diff --git a/skjcmanager/doc/nacos/routes/blade-gateway-dev.json b/skjcmanager/doc/nacos/routes/blade-gateway-dev.json
new file mode 100644
index 0000000..1fef883
--- /dev/null
+++ b/skjcmanager/doc/nacos/routes/blade-gateway-dev.json
@@ -0,0 +1,28 @@
+[
+  {
+    "id": "desk-route",
+    "order": 0,
+    "predicates": [
+      {
+        "name": "Path",
+        "args": {
+          "pattern": "/blade-desk/**"
+        }
+      }
+    ],
+    "filters": [],
+    "uri": "lb://blade-desk-me"
+  },
+  {
+    "id": "example-route",
+    "order": 0,
+    "predicates": [{
+      "name": "Path",
+      "args": {
+        "pattern": "/example"
+      }
+    }],
+    "filters": [],
+    "uri": "http://www.example.com"
+  }
+]
diff --git a/skjcmanager/doc/other/env.md b/skjcmanager/doc/other/env.md
new file mode 100644
index 0000000..fe429d4
--- /dev/null
+++ b/skjcmanager/doc/other/env.md
@@ -0,0 +1,29 @@
+## 环境变量
+#### 环境划分
+
+> dev(开发)、test(测试)、prod(正式),默认dev
+#### 添加环境变量
+
+##### java命令行:
+
+```
+java -jar gateWay.jar --spring.profiles.active=dev
+```
+
+##### JAVA_OPS
+
+```
+set JAVA_OPTS="-Dspring.profiles.active=test"
+```
+
+##### 标注方式(代码层面,junit单元测试非常实用)
+
+```
+@ActiveProfiles({"junittest","productprofile"})
+```
+
+##### ENV方式
+
+```
+系统环境变量SPRING_PROFILES_ACTIVE(注意:是大写)
+```
diff --git a/skjcmanager/doc/other/http-code.md b/skjcmanager/doc/other/http-code.md
new file mode 100644
index 0000000..9e3b223
--- /dev/null
+++ b/skjcmanager/doc/other/http-code.md
@@ -0,0 +1,57 @@
+## HTTP 状态码
+| 状态码 | 含义                                                         |
+| ------ | ------------------------------------------------------------ |
+| 100    | 客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。 |
+| 101    | 服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议。 只有在切换新的协议更有好处的时候才应该采取类似措施。例如,切换到新的HTTP 版本比旧版本更有优势,或者切换到一个实时且同步的协议以传送利用此类特性的资源。 |
+| 102    | 由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。     |
+| 200    | 请求已成功,请求所希望的响应头或数据体将随此响应返回。       |
+| 201    | 请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其 URI 已经随Location 头信息返回。假如需要的资源无法及时建立的话,应当返回 '202 Accepted'。 |
+| 202    | 服务器已接受请求,但尚未处理。正如它可能被拒绝一样,最终该请求可能会也可能不会被执行。在异步操作的场合下,没有比发送这个状态码更方便的做法了。 返回202状态码的响应的目的是允许服务器接受其他过程的请求(例如某个每天只执行一次的基于批处理的操作),而不必让客户端一直保持与服务器的连接直到批处理操作全部完成。在接受请求处理并返回202状态码的响应应当在返回的实体中包含一些指示处理当前状态的信息,以及指向处理状态监视器或状态预测的指针,以便用户能够估计操作是否已经完成。 |
+| 203    | 服务器已成功处理了请求,但返回的实体头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。当前的信息可能是原始版本的子集或者超集。例如,包含资源的元数据可能导致原始服务器知道元信息的超级。使用此状态码不是必须的,而且只有在响应不使用此状态码便会返回200 OK的情况下才是合适的。 |
+| 204    | 服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息。响应可能通过实体头部的形式,返回新的或更新后的元信息。如果存在这些头部信息,则应当与所请求的变量相呼应。 如果客户端是浏览器的话,那么用户浏览器应保留发送了该请求的页面,而不产生任何文档视图上的变化,即使按照规范新的或更新后的元信息应当被应用到用户浏览器活动视图中的文档。 由于204响应被禁止包含任何消息体,因此它始终以消息头后的第一个空行结尾。 |
+| 205    | 服务器成功处理了请求,且没有返回任何内容。但是与204响应不同,返回此状态码的响应要求请求者重置文档视图。该响应主要是被用于接受用户输入后,立即重置表单,以便用户能够轻松地开始另一次输入。 与204响应一样,该响应也被禁止包含任何消息体,且以消息头后的第一个空行结束。 |
+| 206    | 服务器已经成功处理了部分 GET 请求。类似于 FlashGet 或者迅雷这类的 HTTP 下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。 该请求必须包含 Range 头信息来指示客户端希望得到的内容范围,并且可能包含 If-Range 来作为请求条件。 响应必须包含如下的头部域: Content-Range 用以指示本次响应中返回的内容的范围;如果是 Content-Type 为 multipart/byteranges 的多段下载,则每一 multipart 段中都应包含 Content-Range 域用以指示本段的内容范围。假如响应中包含 Content-Length,那么它的数值必须匹配它返回的内容范围的真实字节数。 Date ETag 和/或 Content-Location,假如同样的请求本应该返回200响应。 Expires, Cache-Control,和/或 Vary,假如其值可能与之前相同变量的其他响应对应的值不同的话。 假如本响应请求使用了 If-Range 强缓存验证,那么本次响应不应该包含其他实体头;假如本响应的请求使用了 If-Range 弱缓存验证,那么本次响应禁止包含其他实体头;这避免了缓存的实体内容和更新了的实体头信息之间的不一致。否则,本响应就应当包含所有本应该返回200响应中应当返回的所有实体头部域。 假如 ETag 或 Last-Modified 头部不能精确匹配的话,则客户端缓存应禁止将206响应返回的内容与之前任何缓存过的内容组合在一起。 任何不支持 Range 以及 Content-Range 头的缓存都禁止缓存206响应返回的内容。 |
+| 207    | 由WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码。 |
+| 300    | 被请求的资源有一系列可供选择的回馈信息,每个都有自己特定的地址和浏览器驱动的商议信息。用户或浏览器能够自行选择一个首选的地址进行重定向。 除非这是一个 HEAD 请求,否则该响应应当包括一个资源特性及地址的列表的实体,以便用户或浏览器从中选择最合适的重定向地址。这个实体的格式由 Content-Type 定义的格式所决定。浏览器可能根据响应的格式以及浏览器自身能力,自动作出最合适的选择。当然,RFC 2616规范并没有规定这样的自动选择该如何进行。 如果服务器本身已经有了首选的回馈选择,那么在 Location 中应当指明这个回馈的 URI;浏览器可能会将这个 Location 值作为自动重定向的地址。此外,除非额外指定,否则这个响应也是可缓存的。 |
+| 301    | 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。 新的永久性的 URI 应当在响应的 Location 域中返回。除非这是一个 HEAD 请求,否则响应的实体中应当包含指向新的 URI 的超链接及简短说明。 如果这不是一个 GET 或者 HEAD 请求,因此浏览器禁止自动进行重定向,除非得到用户的确认,因为请求的条件可能因此发生变化。 注意:对于某些使用 HTTP/1.0 协议的浏览器,当它们发送的 POST 请求得到了一个301响应的话,接下来的重定向请求将会变成 GET 方式。 |
+| 302    | 请求的资源现在临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。 新的临时性的 URI 应当在响应的 Location 域中返回。除非这是一个 HEAD 请求,否则响应的实体中应当包含指向新的 URI 的超链接及简短说明。 如果这不是一个 GET 或者 HEAD 请求,那么浏览器禁止自动进行重定向,除非得到用户的确认,因为请求的条件可能因此发生变化。 注意:虽然RFC 1945和RFC 2068规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将302响应视作为303响应,并且使用 GET 方式访问在 Location 中规定的 URI,而无视原先请求的方法。状态码303和307被添加了进来,用以明确服务器期待客户端进行何种反应。 |
+| 303    | 对应当前请求的响应可以在另一个 URI 上被找到,而且客户端应当采用 GET 的方式访问那个资源。这个方法的存在主要是为了允许由脚本激活的POST请求输出重定向到一个新的资源。这个新的 URI 不是原始资源的替代引用。同时,303响应禁止被缓存。当然,第二个请求(重定向)可能被缓存。 新的 URI 应当在响应的 Location 域中返回。除非这是一个 HEAD 请求,否则响应的实体中应当包含指向新的 URI 的超链接及简短说明。 注意:许多 HTTP/1.1 版以前的 浏览器不能正确理解303状态。如果需要考虑与这些浏览器之间的互动,302状态码应该可以胜任,因为大多数的浏览器处理302响应时的方式恰恰就是上述规范要求客户端处理303响应时应当做的。 |
+| 304    | 如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。304响应禁止包含消息体,因此始终以消息头后的第一个空行结尾。 该响应必须包含以下的头信息: Date,除非这个服务器没有时钟。假如没有时钟的服务器也遵守这些规则,那么代理服务器以及客户端可以自行将 Date 字段添加到接收到的响应头中去(正如RFC 2068中规定的一样),缓存机制将会正常工作。 ETag 和/或 Content-Location,假如同样的请求本应返回200响应。 Expires, Cache-Control,和/或Vary,假如其值可能与之前相同变量的其他响应对应的值不同的话。 假如本响应请求使用了强缓存验证,那么本次响应不应该包含其他实体头;否则(例如,某个带条件的 GET 请求使用了弱缓存验证),本次响应禁止包含其他实体头;这避免了缓存了的实体内容和更新了的实体头信息之间的不一致。 假如某个304响应指明了当前某个实体没有缓存,那么缓存系统必须忽视这个响应,并且重复发送不包含限制条件的请求。 假如接收到一个要求更新某个缓存条目的304响应,那么缓存系统必须更新整个条目以反映所有在响应中被更新的字段的值。 |
+| 305    | 被请求的资源必须通过指定的代理才能被访问。Location 域中将给出指定的代理所在的 URI 信息,接收者需要重复发送一个单独的请求,通过这个代理才能访问相应资源。只有原始服务器才能建立305响应。 注意:RFC 2068中没有明确305响应是为了重定向一个单独的请求,而且只能被原始服务器建立。忽视这些限制可能导致严重的安全后果。 |
+| 306    | 在最新版的规范中,306状态码已经不再被使用。                  |
+| 307    | 请求的资源现在临时从不同的URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。 新的临时性的URI 应当在响应的 Location 域中返回。除非这是一个HEAD 请求,否则响应的实体中应当包含指向新的URI 的超链接及简短说明。因为部分浏览器不能识别307响应,因此需要添加上述必要信息以便用户能够理解并向新的 URI 发出访问请求。 如果这不是一个GET 或者 HEAD 请求,那么浏览器禁止自动进行重定向,除非得到用户的确认,因为请求的条件可能因此发生变化。 |
+| 400    | 1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。 2、请求参数有误。 |
+| 401    | 当前请求需要用户验证。该响应必须包含一个适用于被请求资源的 WWW-Authenticate 信息头用以询问用户信息。客户端可以重复提交一个包含恰当的 Authorization 头信息的请求。如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书。如果401响应包含了与前一个响应相同的身份验证询问,且浏览器已经至少尝试了一次验证,那么浏览器应当向用户展示响应中包含的实体信息,因为这个实体信息中可能包含了相关诊断信息。参见RFC 2617。 |
+| 402    | 该状态码是为了将来可能的需求而预留的。                       |
+| 403    | 服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。如果这不是一个 HEAD 请求,而且服务器希望能够讲清楚为何请求不能被执行,那么就应该在实体内描述拒绝的原因。当然服务器也可以返回一个404响应,假如它不希望让客户端获得任何信息。 |
+| 404    | 请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。 |
+| 405    | 请求行中指定的请求方法不能被用于请求相应的资源。该响应必须返回一个Allow 头信息用以表示出当前资源能够接受的请求方法的列表。 鉴于 PUT,DELETE 方法会对服务器上的资源进行写操作,因而绝大部分的网页服务器都不支持或者在默认配置下不允许上述请求方法,对于此类请求均会返回405错误。 |
+| 406    | 请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。 除非这是一个 HEAD 请求,否则该响应就应当返回一个包含可以让用户或者浏览器从中选择最合适的实体特性以及地址列表的实体。实体的格式由 Content-Type 头中定义的媒体类型决定。浏览器可以根据格式及自身能力自行作出最佳选择。但是,规范中并没有定义任何作出此类自动选择的标准。 |
+| 407    | 与401响应类似,只不过客户端必须在代理服务器上进行身份验证。代理服务器必须返回一个 Proxy-Authenticate 用以进行身份询问。客户端可以返回一个 Proxy-Authorization 信息头用以验证。参见RFC 2617。 |
+| 408    | 请求超时。客户端没有在服务器预备等待的时间内完成一个请求的发送。客户端可以随时再次提交这一请求而无需进行任何更改。 |
+| 409    | 由于和被请求的资源的当前状态之间存在冲突,请求无法完成。这个代码只允许用在这样的情况下才能被使用:用户被认为能够解决冲突,并且会重新提交新的请求。该响应应当包含足够的信息以便用户发现冲突的源头。 冲突通常发生于对 PUT 请求的处理中。例如,在采用版本检查的环境下,某次 PUT 提交的对特定资源的修改请求所附带的版本信息与之前的某个(第三方)请求向冲突,那么此时服务器就应该返回一个409错误,告知用户请求无法完成。此时,响应实体中很可能会包含两个冲突版本之间的差异比较,以便用户重新提交归并以后的新版本。 |
+| 410    | 被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址。这样的状况应当被认为是永久性的。如果可能,拥有链接编辑功能的客户端应当在获得用户许可后删除所有指向这个地址的引用。如果服务器不知道或者无法确定这个状况是否是永久的,那么就应该使用404状态码。除非额外说明,否则这个响应是可缓存的。 410响应的目的主要是帮助网站管理员维护网站,通知用户该资源已经不再可用,并且服务器拥有者希望所有指向这个资源的远端连接也被删除。这类事件在限时、增值服务中很普遍。同样,410响应也被用于通知客户端在当前服务器站点上,原本属于某个个人的资源已经不再可用。当然,是否需要把所有永久不可用的资源标记为'410 Gone',以及是否需要保持此标记多长时间,完全取决于服务器拥有者。 |
+| 411    | 服务器拒绝在没有定义 Content-Length 头的情况下接受请求。在添加了表明请求消息体长度的有效 Content-Length 头之后,客户端可以再次提交该请求。 |
+| 412    | 服务器在验证在请求的头字段中给出先决条件时,没能满足其中的一个或多个。这个状态码允许客户端在获取资源时在请求的元信息(请求头字段数据)中设置先决条件,以此避免该请求方法被应用到其希望的内容以外的资源上。 |
+| 413    | 服务器拒绝处理当前请求,因为该请求提交的实体数据大小超过了服务器愿意或者能够处理的范围。此种情况下,服务器可以关闭连接以免客户端继续发送此请求。 如果这个状况是临时的,服务器应当返回一个 Retry-After 的响应头,以告知客户端可以在多少时间以后重新尝试。 |
+| 414    | 请求的URI 长度超过了服务器能够解释的长度,因此服务器拒绝对该请求提供服务。这比较少见,通常的情况包括: 本应使用POST方法的表单提交变成了GET方法,导致查询字符串(Query String)过长。 重定向URI “黑洞”,例如每次重定向把旧的 URI 作为新的 URI 的一部分,导致在若干次重定向后 URI 超长。 客户端正在尝试利用某些服务器中存在的安全漏洞攻击服务器。这类服务器使用固定长度的缓冲读取或操作请求的 URI,当 GET 后的参数超过某个数值后,可能会产生缓冲区溢出,导致任意代码被执行[1]。没有此类漏洞的服务器,应当返回414状态码。 |
+| 415    | 对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝。 |
+| 416    | 如果请求中包含了 Range 请求头,并且 Range 中指定的任何数据范围都与当前资源的可用范围不重合,同时请求中又没有定义 If-Range 请求头,那么服务器就应当返回416状态码。 假如 Range 使用的是字节范围,那么这种情况就是指请求指定的所有数据范围的首字节位置都超过了当前资源的长度。服务器也应当在返回416状态码的同时,包含一个 Content-Range 实体头,用以指明当前资源的长度。这个响应也被禁止使用 multipart/byteranges 作为其 Content-Type。 |
+| 417    | 在请求头 Expect 中指定的预期内容无法被服务器满足,或者这个服务器是一个代理服务器,它有明显的证据证明在当前路由的下一个节点上,Expect 的内容无法被满足。 |
+| 421    | 从当前客户端所在的IP地址到服务器的连接数超过了服务器许可的最大范围。通常,这里的IP地址指的是从服务器上看到的客户端地址(比如用户的网关或者代理服务器地址)。在这种情况下,连接数的计算可能涉及到不止一个终端用户。 |
+| 422    | 从当前客户端所在的IP地址到服务器的连接数超过了服务器许可的最大范围。通常,这里的IP地址指的是从服务器上看到的客户端地址(比如用户的网关或者代理服务器地址)。在这种情况下,连接数的计算可能涉及到不止一个终端用户。 |
+| 422    | 请求格式正确,但是由于含有语义错误,无法响应。(RFC 4918 WebDAV)423 Locked 当前资源被锁定。(RFC 4918 WebDAV) |
+| 424    | 由于之前的某个请求发生的错误,导致当前请求失败,例如 PROPPATCH。(RFC 4918 WebDAV) |
+| 425    | 在WebDav Advanced Collections 草案中定义,但是未出现在《WebDAV 顺序集协议》(RFC 3658)中。 |
+| 426    | 客户端应当切换到TLS/1.0。(RFC 2817)                        |
+| 449    | 由微软扩展,代表请求应当在执行完适当的操作后进行重试。       |
+| 500    | 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的程序码出错时出现。 |
+| 501    | 服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。 |
+| 502    | 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。 |
+| 503    | 由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。如果能够预计延迟时间,那么响应中可以包含一个 Retry-After 头用以标明这个延迟时间。如果没有给出这个 Retry-After 信息,那么客户端应当以处理500响应的方式处理它。 注意:503状态码的存在并不意味着服务器在过载的时候必须使用它。某些服务器只不过是希望拒绝客户端的连接。 |
+| 504    | 作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器(URI标识出的服务器,例如HTTP、FTP、LDAP)或者辅助服务器(例如DNS)收到响应。 注意:某些代理服务器在DNS查询超时时会返回400或者500错误 |
+| 505    | 服务器不支持,或者拒绝支持在请求中使用的 HTTP 版本。这暗示着服务器不能或不愿使用与客户端相同的版本。响应中应当包含一个描述了为何版本不被支持以及服务器支持哪些协议的实体。 |
+| 506    | 由《透明内容协商协议》(RFC 2295)扩展,代表服务器存在内部配置错误:被请求的协商变元资源被配置为在透明内容协商中使用自己,因此在一个协商处理中不是一个合适的重点。 |
+| 507    | 服务器无法存储完成请求所必须的内容。这个状况被认为是临时的。WebDAV (RFC 4918) |
+| 509    | 服务器达到带宽限制。这不是一个官方的状态码,但是仍被广泛使用。 |
+| 510    | 获取资源所需要的策略并没有没满足。(RFC 2774)               |
\ No newline at end of file
diff --git a/skjcmanager/doc/sql/db/database-info.md b/skjcmanager/doc/sql/db/database-info.md
new file mode 100644
index 0000000..42703db
--- /dev/null
+++ b/skjcmanager/doc/sql/db/database-info.md
@@ -0,0 +1,623 @@
+Table: blade_attach(附件表)
+
+| Field         | Type          | Null | Key | Default | Remarks |
+| ------------- | ------------- | ---- | --- | ------- | ------- |
+| id            | BIGINT(20)    | NO   | PRI |         | 主键      |
+| tenant_id     | VARCHAR(12)   | YES  |     | 000000  | 租户ID    |
+| link          | VARCHAR(1000) | YES  |     |         | 附件地址    |
+| domain_url    | VARCHAR(500)  | YES  |     |         | 附件域名    |
+| name          | VARCHAR(500)  | YES  |     |         | 附件名称    |
+| original_name | VARCHAR(500)  | YES  |     |         | 附件原名    |
+| extension     | VARCHAR(12)   | YES  |     |         | 附件拓展名   |
+| attach_size   | BIGINT(20)    | YES  |     |         | 附件大小    |
+| create_user   | BIGINT(20)    | YES  |     |         | 创建人     |
+| create_dept   | BIGINT(20)    | YES  |     |         | 创建部门    |
+| create_time   | DATETIME(19)  | YES  |     |         | 创建时间    |
+| update_user   | BIGINT(20)    | YES  |     |         | 修改人     |
+| update_time   | DATETIME(19)  | YES  |     |         | 修改时间    |
+| status        | INT(10)       | YES  |     |         | 状态      |
+| is_deleted    | INT(10)       | YES  |     |         | 是否已删除   |
+
+Table: blade_client(客户端表)
+
+| Field                   | Type          | Null | Key | Default | Remarks |
+| ----------------------- | ------------- | ---- | --- | ------- | ------- |
+| id                      | BIGINT(20)    | NO   | PRI |         | 主键      |
+| client_id               | VARCHAR(48)   | NO   |     |         | 客户端id   |
+| client_secret           | VARCHAR(256)  | NO   |     |         | 客户端密钥   |
+| resource_ids            | VARCHAR(256)  | YES  |     |         | 资源集合    |
+| scope                   | VARCHAR(256)  | NO   |     |         | 授权范围    |
+| authorized_grant_types  | VARCHAR(256)  | NO   |     |         | 授权类型    |
+| web_server_redirect_uri | VARCHAR(256)  | YES  |     |         | 回调地址    |
+| authorities             | VARCHAR(256)  | YES  |     |         | 权限      |
+| access_token_validity   | INT(10)       | NO   |     |         | 令牌过期秒数  |
+| refresh_token_validity  | INT(10)       | NO   |     |         | 刷新令牌过期秒数|
+| additional_information  | VARCHAR(4096) | YES  |     |         | 附加说明    |
+| autoapprove             | VARCHAR(256)  | YES  |     |         | 自动授权    |
+| create_user             | BIGINT(20)    | YES  |     |         | 创建人     |
+| create_dept             | BIGINT(20)    | YES  |     |         | 创建部门    |
+| create_time             | DATETIME(19)  | YES  |     |         | 创建时间    |
+| update_user             | BIGINT(20)    | YES  |     |         | 修改人     |
+| update_time             | DATETIME(19)  | YES  |     |         | 修改时间    |
+| status                  | INT(10)       | NO   |     |         | 状态      |
+| is_deleted              | INT(10)       | NO   |     |         | 是否已删除   |
+
+Table: blade_code(代码生成表)
+
+| Field         | Type          | Null | Key | Default | Remarks |
+| ------------- | ------------- | ---- | --- | ------- | ------- |
+| id            | BIGINT(20)    | NO   | PRI |         | 主键      |
+| model_id      | BIGINT(20)    | YES  |     |         | 数据模型主键 |
+| service_name  | VARCHAR(64)   | YES  |     |         | 服务名称    |
+| code_name     | VARCHAR(64)   | YES  |     |         | 模块名称    |
+| table_name    | VARCHAR(64)   | YES  |     |         | 表名      |
+| table_prefix  | VARCHAR(64)   | YES  |     |         | 表前缀     |
+| pk_name       | VARCHAR(32)   | YES  |     |         | 主键名     |
+| package_name  | VARCHAR(500)  | YES  |     |         | 后端包名    |
+| template_type | VARCHAR(32)   | YES  |     |         | 模版类型    |
+| author        | VARCHAR(32)   | YES  |     |         | 作者信息    |
+| sub_model_id  | VARCHAR(32)   | YES  |     |         | 子表模型主键 |
+| sub_fk_id     | VARCHAR(32)   | YES  |     |         | 子表绑定外键 |
+| tree_id       | VARCHAR(32)   | YES  |     |         | 树主键字段   |
+| tree_pid      | VARCHAR(32)   | YES  |     |         | 树父主键字段  |
+| tree_name     | VARCHAR(64)   | YES  |     |         | 树名称字段   |
+| base_mode     | INT(10)       | YES  |     |         | 基础业务模式  |
+| wrap_mode     | INT(10)       | YES  |     |         | 包装器模式   |
+| feign_mode    | INT(10)       | YES  |     |         | 远程调用模式 |
+| code_style    | VARCHAR(32)   | YES  |     |         | 代码风格    |
+| api_path      | VARCHAR(2000) | YES  |     |         | 后端路径    |
+| web_path      | VARCHAR(2000) | YES  |     |         | 前端路径    |
+| is_deleted    | INT(10)       | YES  |     | 0       | 是否已删除  |
+
+Table: blade_datasource(数据源配置表)
+
+| Field        | Type         | Null | Key | Default | Remarks |
+| ------------ | ------------ | ---- | --- | ------- | ------- |
+| id           | BIGINT(20)   | NO   | PRI |         | 主键      |
+| name         | VARCHAR(100) | YES  |     |         | 名称      |
+| driver_class | VARCHAR(100) | YES  |     |         | 驱动类     |
+| url          | VARCHAR(500) | YES  |     |         | 连接地址    |
+| username     | VARCHAR(50)  | YES  |     |         | 用户名     |
+| password     | VARCHAR(50)  | YES  |     |         | 密码      |
+| remark       | VARCHAR(255) | YES  |     |         | 备注      |
+| create_user  | BIGINT(20)   | YES  |     |         | 创建人     |
+| create_dept  | BIGINT(20)   | YES  |     |         | 创建部门    |
+| create_time  | DATETIME(19) | YES  |     |         | 创建时间    |
+| update_user  | BIGINT(20)   | YES  |     |         | 修改人     |
+| update_time  | DATETIME(19) | YES  |     |         | 修改时间    |
+| status       | INT(10)      | YES  |     |         | 状态      |
+| is_deleted   | INT(10)      | YES  |     |         | 是否已删除   |
+
+Table: blade_dept(机构表)
+
+| Field         | Type          | Null | Key | Default | Remarks |
+| ------------- | ------------- | ---- | --- | ------- | ------- |
+| id            | BIGINT(20)    | NO   | PRI |         | 主键      |
+| tenant_id     | VARCHAR(12)   | YES  |     | 000000  | 租户ID    |
+| parent_id     | BIGINT(20)    | YES  |     | 0       | 父主键     |
+| ancestors     | VARCHAR(2000) | YES  |     |         | 祖级列表    |
+| dept_category | INT(10)       | YES  |     |         | 部门类型    |
+| dept_name     | VARCHAR(45)   | YES  |     |         | 部门名     |
+| full_name     | VARCHAR(45)   | YES  |     |         | 部门全称    |
+| sort          | INT(10)       | YES  |     |         | 排序      |
+| remark        | VARCHAR(255)  | YES  |     |         | 备注      |
+| is_deleted    | INT(10)       | YES  |     | 0       | 是否已删除   |
+
+Table: blade_dict(字典表)
+
+| Field      | Type         | Null | Key | Default | Remarks |
+| ---------- | ------------ | ---- | --- | ------- | ------- |
+| id         | BIGINT(20)   | NO   | PRI |         | 主键      |
+| parent_id  | BIGINT(20)   | YES  |     | 0       | 父主键     |
+| code       | VARCHAR(255) | YES  |     |         | 字典码     |
+| dict_key   | VARCHAR(255) | YES  |     |         | 字典值     |
+| dict_value | VARCHAR(255) | YES  |     |         | 字典名称    |
+| sort       | INT(10)      | YES  |     |         | 排序      |
+| remark     | VARCHAR(255) | YES  |     |         | 字典备注    |
+| is_sealed  | INT(10)      | YES  |     | 0       | 是否已封存   |
+| is_deleted | INT(10)      | YES  |     | 0       | 是否已删除   |
+
+Table: blade_dict_biz(业务字典表)
+
+| Field      | Type         | Null | Key | Default | Remarks |
+| ---------- | ------------ | ---- | --- | ------- | ------- |
+| id         | BIGINT(20)   | NO   | PRI |         | 主键      |
+| tenant_id  | VARCHAR(12)  | YES  |     |         | 租户ID    |
+| parent_id  | BIGINT(20)   | YES  |     | 0       | 父主键     |
+| code       | VARCHAR(255) | YES  |     |         | 字典码     |
+| dict_key   | VARCHAR(255) | YES  |     |         | 字典值     |
+| dict_value | VARCHAR(255) | YES  |     |         | 字典名称    |
+| sort       | INT(10)      | YES  |     |         | 排序      |
+| remark     | VARCHAR(255) | YES  |     |         | 字典备注    |
+| is_sealed  | INT(10)      | YES  |     | 0       | 是否已封存   |
+| is_deleted | INT(10)      | YES  |     | 0       | 是否已删除   |
+
+Table: blade_log_api(接口日志表)
+
+| Field        | Type          | Null | Key | Default           | Remarks |
+| ------------ | ------------- | ---- | --- | ----------------- | ------- |
+| id           | BIGINT(20)    | NO   | PRI |                   | 编号      |
+| tenant_id    | VARCHAR(12)   | YES  |     | 000000            | 租户ID    |
+| service_id   | VARCHAR(32)   | YES  |     |                   | 服务ID    |
+| server_host  | VARCHAR(255)  | YES  |     |                   | 服务器名    |
+| server_ip    | VARCHAR(255)  | YES  |     |                   | 服务器IP地址 |
+| env          | VARCHAR(255)  | YES  |     |                   | 服务器环境   |
+| type         | CHAR(1)       | YES  |     | 1                 | 日志类型    |
+| title        | VARCHAR(255)  | YES  |     |                   | 日志标题    |
+| method       | VARCHAR(10)   | YES  |     |                   | 操作方式    |
+| request_uri  | VARCHAR(255)  | YES  |     |                   | 请求URI   |
+| user_agent   | VARCHAR(1000) | YES  |     |                   | 用户代理    |
+| remote_ip    | VARCHAR(255)  | YES  |     |                   | 操作IP地址  |
+| method_class | VARCHAR(255)  | YES  |     |                   | 方法类     |
+| method_name  | VARCHAR(255)  | YES  |     |                   | 方法名     |
+| params       | TEXT(65535)   | YES  |     |                   | 操作提交的数据 |
+| time         | VARCHAR(64)   | YES  |     |                   | 执行时间    |
+| create_by    | VARCHAR(64)   | YES  |     |                   | 创建者     |
+| create_time  | DATETIME(19)  | YES  |     | CURRENT_TIMESTAMP | 创建时间    |
+
+Table: blade_log_error(错误日志表)
+
+| Field          | Type          | Null | Key | Default           | Remarks |
+| -------------- | ------------- | ---- | --- | ----------------- | ------- |
+| id             | BIGINT(20)    | NO   | PRI |                   | 编号      |
+| tenant_id      | VARCHAR(12)   | YES  |     | 000000            | 租户ID    |
+| service_id     | VARCHAR(32)   | YES  |     |                   | 服务ID    |
+| server_host    | VARCHAR(255)  | YES  |     |                   | 服务器名    |
+| server_ip      | VARCHAR(255)  | YES  |     |                   | 服务器IP地址 |
+| env            | VARCHAR(255)  | YES  |     |                   | 系统环境    |
+| method         | VARCHAR(10)   | YES  |     |                   | 操作方式    |
+| request_uri    | VARCHAR(255)  | YES  |     |                   | 请求URI   |
+| user_agent     | VARCHAR(1000) | YES  |     |                   | 用户代理    |
+| stack_trace    | TEXT(65535)   | YES  |     |                   | 堆栈      |
+| exception_name | VARCHAR(255)  | YES  |     |                   | 异常名     |
+| message        | TEXT(65535)   | YES  |     |                   | 异常信息    |
+| line_number    | INT(10)       | YES  |     |                   | 错误行数    |
+| remote_ip      | VARCHAR(255)  | YES  |     |                   | 操作IP地址  |
+| method_class   | VARCHAR(255)  | YES  |     |                   | 方法类     |
+| file_name      | VARCHAR(1000) | YES  |     |                   | 文件名     |
+| method_name    | VARCHAR(255)  | YES  |     |                   | 方法名     |
+| params         | TEXT(65535)   | YES  |     |                   | 操作提交的数据 |
+| create_by      | VARCHAR(64)   | YES  |     |                   | 创建者     |
+| create_time    | DATETIME(19)  | YES  |     | CURRENT_TIMESTAMP | 创建时间    |
+
+Table: blade_log_usual(通用日志表)
+
+| Field        | Type          | Null | Key | Default           | Remarks |
+| ------------ | ------------- | ---- | --- | ----------------- | ------- |
+| id           | BIGINT(20)    | NO   | PRI |                   | 编号      |
+| tenant_id    | VARCHAR(12)   | YES  |     | 000000            | 租户ID    |
+| service_id   | VARCHAR(32)   | YES  |     |                   | 服务ID    |
+| server_host  | VARCHAR(255)  | YES  |     |                   | 服务器名    |
+| server_ip    | VARCHAR(255)  | YES  |     |                   | 服务器IP地址 |
+| env          | VARCHAR(255)  | YES  |     |                   | 系统环境    |
+| log_level    | VARCHAR(10)   | YES  |     |                   | 日志级别    |
+| log_id       | VARCHAR(100)  | YES  |     |                   | 日志业务id  |
+| log_data     | TEXT(65535)   | YES  |     |                   | 日志数据    |
+| method       | VARCHAR(10)   | YES  |     |                   | 操作方式    |
+| request_uri  | VARCHAR(255)  | YES  |     |                   | 请求URI   |
+| remote_ip    | VARCHAR(255)  | YES  |     |                   | 操作IP地址  |
+| method_class | VARCHAR(255)  | YES  |     |                   | 方法类     |
+| method_name  | VARCHAR(255)  | YES  |     |                   | 方法名     |
+| user_agent   | VARCHAR(1000) | YES  |     |                   | 用户代理    |
+| params       | TEXT(65535)   | YES  |     |                   | 操作提交的数据 |
+| create_by    | VARCHAR(64)   | YES  |     |                   | 创建者     |
+| create_time  | DATETIME(19)  | YES  |     | CURRENT_TIMESTAMP | 创建时间    |
+
+Table: blade_menu(菜单表)
+
+| Field      | Type         | Null | Key | Default | Remarks |
+| ---------- | ------------ | ---- | --- | ------- | ------- |
+| id         | BIGINT(20)   | NO   | PRI |         | 主键      |
+| parent_id  | BIGINT(20)   | YES  |     | 0       | 父级菜单    |
+| code       | VARCHAR(255) | YES  |     |         | 菜单编号    |
+| name       | VARCHAR(255) | YES  |     |         | 菜单名称    |
+| alias      | VARCHAR(255) | YES  |     |         | 菜单别名    |
+| path       | VARCHAR(255) | YES  |     |         | 请求地址    |
+| source     | VARCHAR(255) | YES  |     |         | 菜单资源    |
+| sort       | INT(10)      | YES  |     |         | 排序      |
+| category   | INT(10)      | YES  |     |         | 菜单类型    |
+| action     | INT(10)      | YES  |     | 0       | 操作按钮类型  |
+| is_open    | INT(10)      | YES  |     | 1       | 是否打开新页面 |
+| remark     | VARCHAR(255) | YES  |     |         | 备注      |
+| is_deleted | INT(10)      | YES  |     | 0       | 是否已删除   |
+
+
+Table: blade_model(数据模型表)
+
+| Field         | Type          | Null | Key | Default | Remarks |
+| ------------- | ------------- | ---- | --- | ------- | ------- |
+| id            | BIGINT(20)    | NO   | PRI |         | 主键      |
+| datasource_id | BIGINT(20)    | YES  |     |         | 数据源主键 |
+| model_name    | VARCHAR(50)   | YES  |     |         | 模型名称   |
+| model_code    | VARCHAR(50)   | YES  |     |         | 模型编号   |
+| model_table   | VARCHAR(100)  | YES  |     |         | 物理表名   |
+| model_class   | VARCHAR(100)  | YES  |     |         | 模型类名   |
+| model_remark  | VARCHAR(500)  | YES  |     |         | 模型备注   |
+| create_user   | BIGINT(20)    | YES  |     |         | 创建人     |
+| create_dept   | BIGINT(20)    | YES  |     |         | 创建部门    |
+| create_time   | DATETIME(19)  | YES  |     |         | 创建时间    |
+| update_user   | BIGINT(20)    | YES  |     |         | 修改人     |
+| update_time   | DATETIME(19)  | YES  |     |         | 修改时间    |
+| status        | INT(10)       | YES  |     |         | 状态      |
+| is_deleted    | INT(10)       | YES  |     |         | 是否已删除  |
+
+
+Table: blade_model_prototype(数据原型表)
+
+| Field          | Type          | Null | Key | Default | Remarks |
+| -------------- | ------------- | ---- | --- | ------- | ------- |
+| id             | BIGINT(20)    | NO   | PRI |         | 主键      |
+| model_id       | BIGINT(20)    | YES  |     |         | 模型主键   |
+| jdbc_name      | VARCHAR(50)   | YES  |     |         | 物理列名   |
+| jdbc_type      | VARCHAR(20)   | YES  |     |         | 物理类型   |
+| comment        | VARCHAR(500)  | YES  |     |         | 注释说明   |
+| property_type  | VARCHAR(20)   | YES  |     |         | 实体类型   |
+| property_entity| VARCHAR(500)  | YES  |     |         | 实体类型引用|
+| property_name  | VARCHAR(50)   | YES  |     |         | 实体列名   |
+| is_list        | INT(10)       | YES  |     |         | 列表显示   |
+| is_form        | INT(10)       | YES  |     |         | 表单显示   |
+| is_row         | INT(10)       | YES  |     |         | 独占一行   |
+| component_type | VARCHAR(50)   | YES  |     |         | 组件类型   |
+| dict_code      | VARCHAR(50)   | YES  |     |         | 字典编码   |
+| is_required    | INT(10)       | YES  |     |         | 是否必填   |
+| is_query       | INT(10)       | YES  |     |         | 查询配置   |
+| query_type     | VARCHAR(50)   | YES  |     |         | 查询配置   |
+| create_user    | BIGINT(20)    | YES  |     |         | 创建人     |
+| create_dept    | BIGINT(20)    | YES  |     |         | 创建部门    |
+| create_time    | DATETIME(19)  | YES  |     |         | 创建时间    |
+| update_user    | BIGINT(20)    | YES  |     |         | 修改人     |
+| update_time    | DATETIME(19)  | YES  |     |         | 修改时间    |
+| status         | INT(10)       | YES  |     |         | 状态      |
+| is_deleted     | INT(10)       | YES  |     |         | 是否已删除  |
+
+
+Table: blade_notice(通知公告表)
+
+| Field        | Type          | Null | Key | Default | Remarks |
+| ------------ | ------------- | ---- | --- | ------- | ------- |
+| id           | BIGINT(20)    | NO   | PRI |         | 主键      |
+| tenant_id    | VARCHAR(12)   | YES  |     | 000000  | 租户ID    |
+| title        | VARCHAR(255)  | YES  |     |         | 标题      |
+| category     | INT(10)       | YES  |     |         | 类型      |
+| release_time | DATETIME(19)  | YES  |     |         | 发布时间    |
+| content      | VARCHAR(2000) | YES  |     |         | 内容      |
+| create_user  | BIGINT(20)    | YES  |     |         | 创建人     |
+| create_dept  | BIGINT(20)    | YES  |     |         | 创建部门    |
+| create_time  | DATETIME(19)  | YES  |     |         | 创建时间    |
+| update_user  | BIGINT(20)    | YES  |     |         | 修改人     |
+| update_time  | DATETIME(19)  | YES  |     |         | 修改时间    |
+| status       | INT(10)       | YES  |     |         | 状态      |
+| is_deleted   | INT(10)       | YES  |     |         | 是否已删除   |
+
+Table: blade_oss(对象存储表)
+
+| Field       | Type         | Null | Key | Default | Remarks |
+| ----------- | ------------ | ---- | --- | ------- | ------- |
+| id          | BIGINT(20)   | NO   | PRI |         | 主键      |
+| tenant_id   | VARCHAR(12)  | YES  |     | 000000  | 租户ID    |
+| category    | INT(10)      | YES  |     |         | 分类      |
+| oss_code    | VARCHAR(32)  | YES  |     |         | 资源编号    |
+| endpoint    | VARCHAR(255) | YES  |     |         | 资源地址    |
+| access_key  | VARCHAR(255) | YES  |     |         | accessKey|
+| secret_key  | VARCHAR(255) | YES  |     |         | secretKey|
+| bucket_name | VARCHAR(255) | YES  |     |         | 空间名     |
+| app_id      | VARCHAR(255) | YES  |     |         | 应用ID    |
+| region      | VARCHAR(255) | YES  |     |         | 地域简称    |
+| remark      | VARCHAR(255) | YES  |     |         | 备注      |
+| create_user | BIGINT(20)   | YES  |     |         | 创建人     |
+| create_dept | BIGINT(20)   | YES  |     |         | 创建部门    |
+| create_time | DATETIME(19) | YES  |     |         | 创建时间    |
+| update_user | BIGINT(20)   | YES  |     |         | 修改人     |
+| update_time | DATETIME(19) | YES  |     |         | 修改时间    |
+| status      | INT(10)      | YES  |     |         | 状态      |
+| is_deleted  | INT(10)      | YES  |     | 0       | 是否已删除   |
+
+Table: blade_param(参数表)
+
+| Field       | Type         | Null | Key | Default | Remarks |
+| ----------- | ------------ | ---- | --- | ------- | ------- |
+| id          | BIGINT(20)   | NO   | PRI |         | 主键      |
+| param_name  | VARCHAR(255) | YES  |     |         | 参数名     |
+| param_key   | VARCHAR(255) | YES  |     |         | 参数键     |
+| param_value | VARCHAR(255) | YES  |     |         | 参数值     |
+| remark      | VARCHAR(255) | YES  |     |         | 备注      |
+| create_user | BIGINT(20)   | YES  |     |         | 创建人     |
+| create_dept | BIGINT(20)   | YES  |     |         | 创建部门    |
+| create_time | DATETIME(19) | YES  |     |         | 创建时间    |
+| update_user | BIGINT(20)   | YES  |     |         | 修改人     |
+| update_time | DATETIME(19) | YES  |     |         | 修改时间    |
+| status      | INT(10)      | YES  |     |         | 状态      |
+| is_deleted  | INT(10)      | YES  |     | 0       | 是否已删除   |
+
+Table: blade_post(岗位表)
+
+| Field       | Type         | Null | Key | Default | Remarks |
+| ----------- | ------------ | ---- | --- | ------- | ------- |
+| id          | BIGINT(20)   | NO   | PRI |         | 主键      |
+| tenant_id   | VARCHAR(12)  | YES  |     | 000000  | 租户ID    |
+| category    | INT(10)      | YES  |     |         | 岗位类型    |
+| post_code   | VARCHAR(12)  | YES  |     |         | 岗位编号    |
+| post_name   | VARCHAR(64)  | YES  |     |         | 岗位名称    |
+| sort        | INT(10)      | YES  |     |         | 岗位排序    |
+| remark      | VARCHAR(255) | YES  |     |         | 岗位描述    |
+| create_user | BIGINT(20)   | YES  |     |         | 创建人     |
+| create_dept | BIGINT(20)   | YES  |     |         | 创建部门    |
+| create_time | DATETIME(19) | YES  |     |         | 创建时间    |
+| update_user | BIGINT(20)   | YES  |     |         | 修改人     |
+| update_time | DATETIME(19) | YES  |     |         | 修改时间    |
+| status      | INT(10)      | YES  |     |         | 状态      |
+| is_deleted  | INT(10)      | YES  |     |         | 是否已删除   |
+
+Table: blade_process_leave(流程请假业务表)
+
+| Field                 | Type         | Null | Key | Default | Remarks |
+| --------------------- | ------------ | ---- | --- | ------- | ------- |
+| id                    | BIGINT(20)   | NO   | PRI |         | 编号      |
+| process_definition_id | VARCHAR(64)  | YES  |     |         | 流程定义主键  |
+| process_instance_id   | VARCHAR(64)  | YES  |     |         | 流程实例主键  |
+| start_time            | DATETIME(19) | YES  |     |         | 开始时间    |
+| end_time              | DATETIME(19) | YES  |     |         | 结束时间    |
+| reason                | VARCHAR(255) | YES  |     |         | 请假理由    |
+| task_user             | VARCHAR(255) | YES  |     |         | 第一级审批人  |
+| apply_time            | DATETIME(19) | YES  |     |         | 申请时间    |
+| create_user           | BIGINT(20)   | YES  |     |         | 创建人     |
+| create_dept           | BIGINT(20)   | YES  |     |         | 创建部门    |
+| create_time           | DATETIME(19) | YES  |     |         | 创建时间    |
+| update_user           | BIGINT(20)   | YES  |     |         | 修改人     |
+| update_time           | DATETIME(19) | YES  |     |         | 修改时间    |
+| status                | INT(10)      | YES  |     |         | 状态      |
+| is_deleted            | INT(10)      | YES  |     |         | 是否已删除   |
+
+Table: blade_region(行政区划表)
+
+| Field         | Type         | Null | Key | Default | Remarks |
+| ------------- | ------------ | ---- | --- | ------- | ------- |
+| code          | VARCHAR(12)  | NO   | PRI |         | 区划编号    |
+| parent_code   | VARCHAR(12)  | YES  |     |         | 父区划编号   |
+| ancestors     | VARCHAR(255) | YES  |     |         | 祖区划编号   |
+| name          | VARCHAR(32)  | YES  |     |         | 区划名称    |
+| province_code | VARCHAR(12)  | YES  |     |         | 省级区划编号  |
+| province_name | VARCHAR(32)  | YES  |     |         | 省级名称    |
+| city_code     | VARCHAR(12)  | YES  |     |         | 市级区划编号  |
+| city_name     | VARCHAR(32)  | YES  |     |         | 市级名称    |
+| district_code | VARCHAR(12)  | YES  |     |         | 区级区划编号  |
+| district_name | VARCHAR(32)  | YES  |     |         | 区级名称    |
+| town_code     | VARCHAR(12)  | YES  |     |         | 镇级区划编号  |
+| town_name     | VARCHAR(32)  | YES  |     |         | 镇级名称    |
+| village_code  | VARCHAR(12)  | YES  |     |         | 村级区划编号  |
+| village_name  | VARCHAR(32)  | YES  |     |         | 村级名称    |
+| region_level  | INT(10)      | YES  |     |         | 层级      |
+| sort          | INT(10)      | YES  |     |         | 排序      |
+| remark        | VARCHAR(255) | YES  |     |         | 备注      |
+
+Table: blade_report_file(报表文件表)
+
+| Field       | Type                 | Null | Key | Default | Remarks |
+| ----------- | -------------------- | ---- | --- | ------- | ------- |
+| id          | BIGINT(20)           | NO   | PRI |         | 主键      |
+| name        | VARCHAR(100)         | NO   |     |         | 文件名     |
+| content     | MEDIUMBLOB(16777215) | YES  |     |         | 文件内容    |
+| create_time | DATETIME(19)         | YES  |     |         | 创建时间    |
+| update_time | DATETIME(19)         | YES  |     |         | 更新时间    |
+| is_deleted  | INT(10)              | YES  |     | 0       | 是否已删除   |
+
+Table: blade_role(角色表)
+
+| Field      | Type         | Null | Key | Default | Remarks |
+| ---------- | ------------ | ---- | --- | ------- | ------- |
+| id         | BIGINT(20)   | NO   | PRI |         | 主键      |
+| tenant_id  | VARCHAR(12)  | YES  |     | 000000  | 租户ID    |
+| parent_id  | BIGINT(20)   | YES  |     | 0       | 父主键     |
+| role_name  | VARCHAR(255) | YES  |     |         | 角色名     |
+| sort       | INT(10)      | YES  |     |         | 排序      |
+| role_alias | VARCHAR(255) | YES  |     |         | 角色别名    |
+| is_deleted | INT(10)      | YES  |     | 0       | 是否已删除   |
+
+Table: blade_role_menu(角色菜单关联表)
+
+| Field   | Type       | Null | Key | Default | Remarks |
+| ------- | ---------- | ---- | --- | ------- | ------- |
+| id      | BIGINT(20) | NO   | PRI |         | 主键      |
+| menu_id | BIGINT(20) | YES  |     |         | 菜单id    |
+| role_id | BIGINT(20) | YES  |     |         | 角色id    |
+
+Table: blade_role_scope(角色数据权限关联表)
+
+| Field          | Type       | Null | Key | Default | Remarks |
+| -------------- | ---------- | ---- | --- | ------- | ------- |
+| id             | BIGINT(20) | NO   | PRI |         | 主键      |
+| scope_category | INT(10)    | YES  |     |         | 权限类型(1:数据权限、2:接口权限)|
+| scope_id       | BIGINT(20) | YES  |     |         | 权限id    |
+| role_id        | BIGINT(20) | YES  |     |         | 角色id    |
+
+Table: blade_scope_api(接口权限表)
+
+| Field         | Type         | Null | Key | Default | Remarks |
+| ------------- | ------------ | ---- | --- | ------- | ------- |
+| id            | BIGINT(20)   | NO   | PRI |         | 主键      |
+| menu_id       | BIGINT(20)   | YES  |     |         | 菜单主键    |
+| resource_code | VARCHAR(255) | YES  |     |         | 资源编号    |
+| scope_name    | VARCHAR(255) | YES  |     |         | 接口权限名   |
+| scope_path    | VARCHAR(255) | YES  |     |         | 接口权限地址  |
+| scope_type    | INT(10)      | YES  |     |         | 接口权限类型  |
+| remark        | VARCHAR(255) | YES  |     |         | 接口权限备注  |
+| create_user   | BIGINT(20)   | YES  |     |         | 创建人     |
+| create_dept   | BIGINT(20)   | YES  |     |         | 创建部门    |
+| create_time   | DATETIME(19) | YES  |     |         | 创建时间    |
+| update_user   | BIGINT(20)   | YES  |     |         | 修改人     |
+| update_time   | DATETIME(19) | YES  |     |         | 修改时间    |
+| status        | INT(10)      | YES  |     |         | 状态      |
+| is_deleted    | INT(10)      | YES  |     |         | 是否已删除   |
+
+Table: blade_scope_data(数据权限表)
+
+| Field         | Type          | Null | Key | Default | Remarks |
+| ------------- | ------------- | ---- | --- | ------- | ------- |
+| id            | BIGINT(20)    | NO   | PRI |         | 主键      |
+| menu_id       | BIGINT(20)    | YES  |     |         | 菜单主键    |
+| resource_code | VARCHAR(255)  | YES  |     |         | 资源编号    |
+| scope_name    | VARCHAR(255)  | YES  |     |         | 数据权限名称  |
+| scope_field   | VARCHAR(255)  | YES  |     |         | 数据权限字段  |
+| scope_class   | VARCHAR(500)  | YES  |     |         | 数据权限类名  |
+| scope_column  | VARCHAR(255)  | YES  |     |         | 数据权限字段  |
+| scope_type    | INT(10)       | YES  |     |         | 数据权限类型  |
+| scope_value   | VARCHAR(2000) | YES  |     |         | 数据权限值域  |
+| remark        | VARCHAR(255)  | YES  |     |         | 数据权限备注  |
+| create_user   | BIGINT(20)    | YES  |     |         | 创建人     |
+| create_dept   | BIGINT(20)    | YES  |     |         | 创建部门    |
+| create_time   | DATETIME(19)  | YES  |     |         | 创建时间    |
+| update_user   | BIGINT(20)    | YES  |     |         | 修改人     |
+| update_time   | DATETIME(19)  | YES  |     |         | 修改时间    |
+| status        | INT(10)       | YES  |     |         | 状态      |
+| is_deleted    | INT(10)       | YES  |     |         | 是否已删除   |
+
+Table: blade_sms(短信配置表)
+
+| Field       | Type         | Null | Key | Default | Remarks |
+| ----------- | ------------ | ---- | --- | ------- | ------- |
+| id          | BIGINT(20)   | NO   | PRI |         | 主键      |
+| tenant_id   | VARCHAR(12)  | YES  |     | 000000  | 租户ID    |
+| category    | INT(10)      | YES  |     |         | 分类      |
+| sms_code    | VARCHAR(32)  | YES  |     |         | 资源编号    |
+| template_id | VARCHAR(64)  | YES  |     |         | 模板ID    |
+| access_key  | VARCHAR(255) | YES  |     |         | accessKey|
+| secret_key  | VARCHAR(255) | YES  |     |         | secretKey|
+| region_id   | VARCHAR(255) | YES  |     |         | regionId|
+| sign_name   | VARCHAR(64)  | YES  |     |         | 短信签名    |
+| remark      | VARCHAR(255) | YES  |     |         | 备注      |
+| create_user | BIGINT(20)   | YES  |     |         | 创建人     |
+| create_dept | BIGINT(20)   | YES  |     |         | 创建部门    |
+| create_time | DATETIME(19) | YES  |     |         | 创建时间    |
+| update_user | BIGINT(20)   | YES  |     |         | 修改人     |
+| update_time | DATETIME(19) | YES  |     |         | 修改时间    |
+| status      | INT(10)      | YES  |     |         | 状态      |
+| is_deleted  | INT(10)      | YES  |     | 0       | 是否已删除   |
+
+Table: blade_tenant(租户表)
+
+| Field          | Type          | Null | Key | Default | Remarks |
+| -------------- | ------------- | ---- | --- | ------- | ------- |
+| id             | BIGINT(20)    | NO   | PRI |         | 主键      |
+| tenant_id      | VARCHAR(12)   | YES  |     | 000000  | 租户ID    |
+| tenant_name    | VARCHAR(50)   | NO   |     |         | 租户名称    |
+| domain_url     | VARCHAR(255)  | YES  |     |         | 域名地址    |
+| background_url | VARCHAR(1000) | YES  |     |         | 系统背景    |
+| linkman        | VARCHAR(20)   | YES  |     |         | 联系人     |
+| contact_number | VARCHAR(20)   | YES  |     |         | 联系电话    |
+| address        | VARCHAR(255)  | YES  |     |         | 联系地址    |
+| account_number | INT(10)       | YES  |     | -1      | 账号额度    |
+| expire_time    | DATETIME(19)  | YES  |     |         | 过期时间    |
+| datasource     | BIGINT(20)    | YES  |     |         | 数据源ID   |
+| license_key    | VARCHAR(1000) | YES  |     |         | 授权码     |
+| create_user    | BIGINT(20)    | YES  |     |         | 创建人     |
+| create_dept    | BIGINT(20)    | YES  |     |         | 创建部门    |
+| create_time    | DATETIME(19)  | YES  |     |         | 创建时间    |
+| update_user    | BIGINT(20)    | YES  |     |         | 修改人     |
+| update_time    | DATETIME(19)  | YES  |     |         | 修改时间    |
+| status         | INT(10)       | YES  |     |         | 状态      |
+| is_deleted     | INT(10)       | YES  |     | 0       | 是否已删除   |
+
+Table: blade_top_menu(顶部菜单表)
+
+| Field       | Type         | Null | Key | Default | Remarks |
+| ----------- | ------------ | ---- | --- | ------- | ------- |
+| id          | BIGINT(20)   | NO   | PRI |         | 主键      |
+| tenant_id   | VARCHAR(12)  | YES  |     |         | 租户id    |
+| code        | VARCHAR(255) | YES  |     |         | 顶部菜单编号  |
+| name        | VARCHAR(255) | YES  |     |         | 顶部菜单名   |
+| source      | VARCHAR(255) | YES  |     |         | 顶部菜单资源  |
+| sort        | INT(10)      | YES  |     |         | 顶部菜单排序  |
+| create_user | BIGINT(20)   | YES  |     |         | 创建人     |
+| create_dept | BIGINT(20)   | YES  |     |         | 创建部门    |
+| create_time | DATETIME(19) | YES  |     |         | 创建时间    |
+| update_user | BIGINT(20)   | YES  |     |         | 修改人     |
+| update_time | DATETIME(19) | YES  |     |         | 修改时间    |
+| status      | INT(10)      | YES  |     |         | 状态      |
+| is_deleted  | INT(10)      | YES  |     |         | 是否已删除   |
+
+Table: blade_top_menu_setting(顶部菜单配置表)
+
+| Field       | Type       | Null | Key | Default | Remarks |
+| ----------- | ---------- | ---- | --- | ------- | ------- |
+| id          | BIGINT(20) | NO   | PRI |         | 主键      |
+| top_menu_id | BIGINT(20) | YES  |     |         | 顶部菜单主键  |
+| menu_id     | BIGINT(20) | YES  |     |         | 菜单主键    |
+
+Table: blade_user(用户表)
+
+| Field       | Type          | Null | Key | Default | Remarks |
+| ----------- | ------------- | ---- | --- | ------- | ------- |
+| id          | BIGINT(20)    | NO   | PRI |         | 主键      |
+| tenant_id   | VARCHAR(12)   | YES  |     | 000000  | 租户ID    |
+| code        | VARCHAR(12)   | YES  |     |         | 用户编号    |
+| user_type   | SMALLINT(5)   | YES  |     |         | 用户平台    |
+| account     | VARCHAR(45)   | YES  |     |         | 账号      |
+| password    | VARCHAR(45)   | YES  |     |         | 密码      |
+| name        | VARCHAR(20)   | YES  |     |         | 昵称      |
+| real_name   | VARCHAR(10)   | YES  |     |         | 真名      |
+| avatar      | VARCHAR(500)  | YES  |     |         | 头像      |
+| email       | VARCHAR(45)   | YES  |     |         | 邮箱      |
+| phone       | VARCHAR(45)   | YES  |     |         | 手机      |
+| birthday    | DATETIME(19)  | YES  |     |         | 生日      |
+| sex         | SMALLINT(5)   | YES  |     |         | 性别      |
+| role_id     | VARCHAR(1000) | YES  |     |         | 角色id    |
+| dept_id     | VARCHAR(1000) | YES  |     |         | 部门id    |
+| post_id     | VARCHAR(1000) | YES  |     |         | 岗位id    |
+| create_user | BIGINT(20)    | YES  |     |         | 创建人     |
+| create_dept | BIGINT(20)    | YES  |     |         | 创建部门    |
+| create_time | DATETIME(19)  | YES  |     |         | 创建时间    |
+| update_user | BIGINT(20)    | YES  |     |         | 修改人     |
+| update_time | DATETIME(19)  | YES  |     |         | 修改时间    |
+| status      | INT(10)       | YES  |     |         | 状态      |
+| is_deleted  | INT(10)       | YES  |     | 0       | 是否已删除   |
+
+Table: blade_user_dept(用户部门表)
+
+| Field   | Type       | Null | Key | Default | Remarks |
+| ------- | ---------- | ---- | --- | ------- | ------- |
+| id      | BIGINT(20) | NO   | PRI |         | 主键      |
+| user_id | BIGINT(20) | YES  |     | 0       | 用户ID    |
+| dept_id | BIGINT(20) | YES  |     | 0       | 部门ID    |
+
+Table: blade_user_oauth(用户第三方认证表)
+
+| Field     | Type          | Null | Key | Default | Remarks |
+| --------- | ------------- | ---- | --- | ------- | ------- |
+| id        | BIGINT(20)    | NO   | PRI |         | 主键      |
+| tenant_id | VARCHAR(12)   | YES  |     |         | 租户ID    |
+| uuid      | VARCHAR(64)   | YES  |     |         | 第三方系统用户ID|
+| user_id   | BIGINT(20)    | YES  |     |         | 用户ID    |
+| username  | VARCHAR(32)   | YES  |     |         | 账号      |
+| nickname  | VARCHAR(64)   | YES  |     |         | 用户名     |
+| avatar    | VARCHAR(1000) | YES  |     |         | 头像      |
+| blog      | VARCHAR(50)   | YES  |     |         | 应用主页    |
+| company   | VARCHAR(255)  | YES  |     |         | 公司名     |
+| location  | VARCHAR(255)  | YES  |     |         | 地址      |
+| email     | VARCHAR(255)  | YES  |     |         | 邮件      |
+| remark    | VARCHAR(255)  | YES  |     |         | 备注      |
+| gender    | VARCHAR(16)   | YES  |     |         | 性别      |
+| source    | VARCHAR(16)   | YES  |     |         | 来源      |
+
+Table: blade_user_web(用户平台拓展表)
+
+| Field     | Type          | Null | Key | Default | Remarks |
+| -------   | ----------    | ---- | --- | ------- | ------- |
+| id        | BIGINT(20)    | NO   | PRI |         | 主键      |
+| user_id   | BIGINT(20)    | YES  |     | 0       | 用户ID    |
+| user_ext  | VARCHAR(255)  | YES  |     |         | 用户拓展信息   |
+
+Table: blade_user_app(用户平台拓展表)
+
+| Field     | Type          | Null | Key | Default | Remarks |
+| -------   | ----------    | ---- | --- | ------- | ------- |
+| id        | BIGINT(20)    | NO   | PRI |         | 主键      |
+| user_id   | BIGINT(20)    | YES  |     | 0       | 用户ID    |
+| user_ext  | VARCHAR(255)  | YES  |     |         | 用户拓展信息   |
+
+Table: blade_user_other(用户平台拓展表)
+
+| Field     | Type          | Null | Key | Default | Remarks |
+| -------   | ----------    | ---- | --- | ------- | ------- |
+| id        | BIGINT(20)    | NO   | PRI |         | 主键      |
+| user_id   | BIGINT(19)    | YES  |     | 0       | 用户ID    |
+| user_ext  | VARCHAR(255)  | YES  |     |         | 用户拓展信息   |
\ No newline at end of file
diff --git a/skjcmanager/doc/sql/dm/bladex-flowable-dameng.dmp b/skjcmanager/doc/sql/dm/bladex-flowable-dameng.dmp
new file mode 100644
index 0000000..1afda24
--- /dev/null
+++ b/skjcmanager/doc/sql/dm/bladex-flowable-dameng.dmp
Binary files differ
diff --git a/skjcmanager/doc/sql/dm/bladex-saber-dameng.dmp b/skjcmanager/doc/sql/dm/bladex-saber-dameng.dmp
new file mode 100644
index 0000000..6e4a0ee
--- /dev/null
+++ b/skjcmanager/doc/sql/dm/bladex-saber-dameng.dmp
Binary files differ
diff --git a/skjcmanager/doc/sql/dm/bladex-sword-dameng.dmp b/skjcmanager/doc/sql/dm/bladex-sword-dameng.dmp
new file mode 100644
index 0000000..76bf00f
--- /dev/null
+++ b/skjcmanager/doc/sql/dm/bladex-sword-dameng.dmp
Binary files differ
diff --git a/skjcmanager/doc/sql/mysql/bladex-flowable-mysql.sql b/skjcmanager/doc/sql/mysql/bladex-flowable-mysql.sql
new file mode 100644
index 0000000..5b7f702
--- /dev/null
+++ b/skjcmanager/doc/sql/mysql/bladex-flowable-mysql.sql
@@ -0,0 +1,1777 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : mysql_localhost
+ Source Server Type    : MySQL
+ Source Server Version : 50723
+ Source Host           : localhost:3306
+ Source Schema         : bladex_flow
+
+ Target Server Type    : MySQL
+ Target Server Version : 50723
+ File Encoding         : 65001
+
+ Date: 20/03/2022 11:09:17
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for ACT_APP_APPDEF
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_APP_APPDEF`;
+CREATE TABLE `ACT_APP_APPDEF`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `REV_` int(11) NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `VERSION_` int(11) NOT NULL,
+  `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `RESOURCE_NAME_` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DESCRIPTION_` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE,
+  UNIQUE INDEX `ACT_IDX_APP_DEF_UNIQ`(`KEY_`, `VERSION_`, `TENANT_ID_`) USING BTREE,
+  INDEX `ACT_IDX_APP_DEF_DPLY`(`DEPLOYMENT_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_APP_DEF_DPLY` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `ACT_APP_DEPLOYMENT` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_APP_DATABASECHANGELOG
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_APP_DATABASECHANGELOG`;
+CREATE TABLE `ACT_APP_DATABASECHANGELOG`  (
+  `ID` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `AUTHOR` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `FILENAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `DATEEXECUTED` datetime(0) NOT NULL,
+  `ORDEREXECUTED` int(11) NOT NULL,
+  `EXECTYPE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `MD5SUM` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DESCRIPTION` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `COMMENTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `LIQUIBASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CONTEXTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `LABELS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOYMENT_ID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Records of ACT_APP_DATABASECHANGELOG
+-- ----------------------------
+BEGIN;
+INSERT INTO `ACT_APP_DATABASECHANGELOG` VALUES ('1', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', '2019-08-01 03:08:02', 1, 'EXECUTED', '8:496fc778bdf2ab13f2e1926d0e63e0a2', 'createTable tableName=ACT_APP_DEPLOYMENT; createTable tableName=ACT_APP_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_APP_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_APP_RSRC_DPL, referencedTableName=ACT_APP_DEPLOYMENT; createIndex...', '', NULL, '3.6.3', NULL, NULL, '4628882015'), ('2', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', '2019-08-01 03:08:02', 2, 'EXECUTED', '8:ccea9ebfb6c1f8367ca4dd473fcbb7db', 'modifyDataType columnName=DEPLOY_TIME_, tableName=ACT_APP_DEPLOYMENT', '', NULL, '3.6.3', NULL, NULL, '4628882015'), ('3', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', '2019-08-01 03:08:02', 3, 'EXECUTED', '8:f1f8aff320aade831944ebad24355f3d', 'createIndex indexName=ACT_IDX_APP_DEF_UNIQ, tableName=ACT_APP_APPDEF', '', NULL, '3.6.3', NULL, NULL, '4628882015');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_APP_DATABASECHANGELOGLOCK
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_APP_DATABASECHANGELOGLOCK`;
+CREATE TABLE `ACT_APP_DATABASECHANGELOGLOCK`  (
+  `ID` int(11) NOT NULL,
+  `LOCKED` bit(1) NOT NULL,
+  `LOCKGRANTED` datetime(0) NULL DEFAULT NULL,
+  `LOCKEDBY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`ID`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Records of ACT_APP_DATABASECHANGELOGLOCK
+-- ----------------------------
+BEGIN;
+INSERT INTO `ACT_APP_DATABASECHANGELOGLOCK` VALUES (1, b'0', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_APP_DEPLOYMENT
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_APP_DEPLOYMENT`;
+CREATE TABLE `ACT_APP_DEPLOYMENT`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOY_TIME_` datetime(3) NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_APP_DEPLOYMENT_RESOURCE
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_APP_DEPLOYMENT_RESOURCE`;
+CREATE TABLE `ACT_APP_DEPLOYMENT_RESOURCE`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `RESOURCE_BYTES_` longblob NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_APP_RSRC_DPL`(`DEPLOYMENT_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_APP_RSRC_DPL` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `ACT_APP_DEPLOYMENT` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_CASEDEF
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_CMMN_CASEDEF`;
+CREATE TABLE `ACT_CMMN_CASEDEF`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `REV_` int(11) NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `VERSION_` int(11) NOT NULL,
+  `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `RESOURCE_NAME_` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DESCRIPTION_` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `HAS_GRAPHICAL_NOTATION_` bit(1) NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
+  `DGRM_RESOURCE_NAME_` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `HAS_START_FORM_KEY_` bit(1) NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  UNIQUE INDEX `ACT_IDX_CASE_DEF_UNIQ`(`KEY_`, `VERSION_`, `TENANT_ID_`) USING BTREE,
+  INDEX `ACT_IDX_CASE_DEF_DPLY`(`DEPLOYMENT_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_CASE_DEF_DPLY` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `ACT_CMMN_DEPLOYMENT` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_DATABASECHANGELOG
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_CMMN_DATABASECHANGELOG`;
+CREATE TABLE `ACT_CMMN_DATABASECHANGELOG`  (
+  `ID` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `AUTHOR` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `FILENAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `DATEEXECUTED` datetime(0) NOT NULL,
+  `ORDEREXECUTED` int(11) NOT NULL,
+  `EXECTYPE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `MD5SUM` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DESCRIPTION` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `COMMENTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `LIQUIBASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CONTEXTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `LABELS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOYMENT_ID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Records of ACT_CMMN_DATABASECHANGELOG
+-- ----------------------------
+BEGIN;
+INSERT INTO `ACT_CMMN_DATABASECHANGELOG` VALUES ('1', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 03:07:59', 1, 'EXECUTED', '8:8b4b922d90b05ff27483abefc9597aa6', 'createTable tableName=ACT_CMMN_DEPLOYMENT; createTable tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_CMMN_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_CMMN_RSRC_DPL, referencedTableName=ACT_CMMN_DEPLOYMENT; create...', '', NULL, '3.6.3', NULL, NULL, '4628878437'), ('2', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 03:07:59', 2, 'EXECUTED', '8:65e39b3d385706bb261cbeffe7533cbe', 'addColumn tableName=ACT_CMMN_CASEDEF; addColumn tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST', '', NULL, '3.6.3', NULL, NULL, '4628878437'), ('3', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 03:08:00', 3, 'EXECUTED', '8:c01f6e802b49436b4489040da3012359', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_PLAN_ITEM_STAGE_INST, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableNam...', '', NULL, '3.6.3', NULL, NULL, '4628878437'), ('4', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 03:08:00', 4, 'EXECUTED', '8:e40d29cb79345b7fb5afd38a7f0ba8fc', 'createTable tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_MIL_INST; addColumn tableName=ACT_CMMN_HI_MIL_INST', '', NULL, '3.6.3', NULL, NULL, '4628878437'), ('5', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 03:08:01', 5, 'EXECUTED', '8:70349de472f87368dcdec971a10311a0', 'modifyDataType columnName=DEPLOY_TIME_, tableName=ACT_CMMN_DEPLOYMENT; modifyDataType columnName=START_TIME_, tableName=ACT_CMMN_RU_CASE_INST; modifyDataType columnName=START_TIME_, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; modifyDataType columnName=T...', '', NULL, '3.6.3', NULL, NULL, '4628878437'), ('6', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 03:08:01', 6, 'EXECUTED', '8:10e82e26a7fee94c32a92099c059c18c', 'createIndex indexName=ACT_IDX_CASE_DEF_UNIQ, tableName=ACT_CMMN_CASEDEF', '', NULL, '3.6.3', NULL, NULL, '4628878437'), ('7', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 03:08:01', 7, 'EXECUTED', '8:530bc81a1e30618ccf4a2da1f7c6c043', 'renameColumn newColumnName=CREATE_TIME_, oldColumnName=START_TIME_, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; renameColumn newColumnName=CREATE_TIME_, oldColumnName=CREATED_TIME_, tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_P...', '', NULL, '3.6.3', NULL, NULL, '4628878437');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_CMMN_DATABASECHANGELOGLOCK`;
+CREATE TABLE `ACT_CMMN_DATABASECHANGELOGLOCK`  (
+  `ID` int(11) NOT NULL,
+  `LOCKED` bit(1) NOT NULL,
+  `LOCKGRANTED` datetime(0) NULL DEFAULT NULL,
+  `LOCKEDBY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`ID`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Records of ACT_CMMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+BEGIN;
+INSERT INTO `ACT_CMMN_DATABASECHANGELOGLOCK` VALUES (1, b'0', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_DEPLOYMENT
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_CMMN_DEPLOYMENT`;
+CREATE TABLE `ACT_CMMN_DEPLOYMENT`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOY_TIME_` datetime(3) NULL DEFAULT NULL,
+  `PARENT_DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_CMMN_DEPLOYMENT_RESOURCE`;
+CREATE TABLE `ACT_CMMN_DEPLOYMENT_RESOURCE`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `RESOURCE_BYTES_` longblob NULL,
+  `GENERATED_` bit(1) NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_CMMN_RSRC_DPL`(`DEPLOYMENT_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_CMMN_RSRC_DPL` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `ACT_CMMN_DEPLOYMENT` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_HI_CASE_INST
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_CMMN_HI_CASE_INST`;
+CREATE TABLE `ACT_CMMN_HI_CASE_INST`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `REV_` int(11) NOT NULL,
+  `BUSINESS_KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `PARENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `STATE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `START_TIME_` datetime(3) NULL DEFAULT NULL,
+  `END_TIME_` datetime(3) NULL DEFAULT NULL,
+  `START_USER_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CALLBACK_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CALLBACK_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_HI_MIL_INST
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_CMMN_HI_MIL_INST`;
+CREATE TABLE `ACT_CMMN_HI_MIL_INST`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `REV_` int(11) NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `TIME_STAMP_` datetime(3) NULL DEFAULT NULL,
+  `CASE_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `ELEMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_HI_PLAN_ITEM_INST
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_CMMN_HI_PLAN_ITEM_INST`;
+CREATE TABLE `ACT_CMMN_HI_PLAN_ITEM_INST`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `REV_` int(11) NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `STATE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CASE_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `STAGE_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `IS_STAGE_` bit(1) NULL DEFAULT NULL,
+  `ELEMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `ITEM_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `ITEM_DEFINITION_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CREATE_TIME_` datetime(3) NULL DEFAULT NULL,
+  `LAST_AVAILABLE_TIME_` datetime(3) NULL DEFAULT NULL,
+  `LAST_ENABLED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `LAST_DISABLED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `LAST_STARTED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `LAST_SUSPENDED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `COMPLETED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `OCCURRED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `TERMINATED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `EXIT_TIME_` datetime(3) NULL DEFAULT NULL,
+  `ENDED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `LAST_UPDATED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `START_USER_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `REFERENCE_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `REFERENCE_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
+  `ENTRY_CRITERION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `EXIT_CRITERION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_RU_CASE_INST
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_CMMN_RU_CASE_INST`;
+CREATE TABLE `ACT_CMMN_RU_CASE_INST`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `REV_` int(11) NOT NULL,
+  `BUSINESS_KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `PARENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `STATE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `START_TIME_` datetime(3) NULL DEFAULT NULL,
+  `START_USER_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CALLBACK_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CALLBACK_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
+  `LOCK_TIME_` datetime(3) NULL DEFAULT NULL,
+  `IS_COMPLETEABLE_` bit(1) NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_CASE_INST_CASE_DEF`(`CASE_DEF_ID_`) USING BTREE,
+  INDEX `ACT_IDX_CASE_INST_PARENT`(`PARENT_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_CASE_INST_CASE_DEF` FOREIGN KEY (`CASE_DEF_ID_`) REFERENCES `ACT_CMMN_CASEDEF` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_RU_MIL_INST
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_CMMN_RU_MIL_INST`;
+CREATE TABLE `ACT_CMMN_RU_MIL_INST`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `TIME_STAMP_` datetime(3) NULL DEFAULT NULL,
+  `CASE_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `ELEMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_MIL_CASE_DEF`(`CASE_DEF_ID_`) USING BTREE,
+  INDEX `ACT_IDX_MIL_CASE_INST`(`CASE_INST_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_MIL_CASE_DEF` FOREIGN KEY (`CASE_DEF_ID_`) REFERENCES `ACT_CMMN_CASEDEF` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_MIL_CASE_INST` FOREIGN KEY (`CASE_INST_ID_`) REFERENCES `ACT_CMMN_RU_CASE_INST` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_RU_PLAN_ITEM_INST
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_CMMN_RU_PLAN_ITEM_INST`;
+CREATE TABLE `ACT_CMMN_RU_PLAN_ITEM_INST`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `REV_` int(11) NOT NULL,
+  `CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CASE_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `STAGE_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `IS_STAGE_` bit(1) NULL DEFAULT NULL,
+  `ELEMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `STATE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CREATE_TIME_` datetime(3) NULL DEFAULT NULL,
+  `START_USER_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `REFERENCE_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `REFERENCE_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '',
+  `ITEM_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `ITEM_DEFINITION_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `IS_COMPLETEABLE_` bit(1) NULL DEFAULT NULL,
+  `IS_COUNT_ENABLED_` bit(1) NULL DEFAULT NULL,
+  `VAR_COUNT_` int(11) NULL DEFAULT NULL,
+  `SENTRY_PART_INST_COUNT_` int(11) NULL DEFAULT NULL,
+  `LAST_AVAILABLE_TIME_` datetime(3) NULL DEFAULT NULL,
+  `LAST_ENABLED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `LAST_DISABLED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `LAST_STARTED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `LAST_SUSPENDED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `COMPLETED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `OCCURRED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `TERMINATED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `EXIT_TIME_` datetime(3) NULL DEFAULT NULL,
+  `ENDED_TIME_` datetime(3) NULL DEFAULT NULL,
+  `ENTRY_CRITERION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `EXIT_CRITERION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_PLAN_ITEM_CASE_DEF`(`CASE_DEF_ID_`) USING BTREE,
+  INDEX `ACT_IDX_PLAN_ITEM_CASE_INST`(`CASE_INST_ID_`) USING BTREE,
+  INDEX `ACT_IDX_PLAN_ITEM_STAGE_INST`(`STAGE_INST_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_PLAN_ITEM_CASE_DEF` FOREIGN KEY (`CASE_DEF_ID_`) REFERENCES `ACT_CMMN_CASEDEF` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_PLAN_ITEM_CASE_INST` FOREIGN KEY (`CASE_INST_ID_`) REFERENCES `ACT_CMMN_RU_CASE_INST` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_RU_SENTRY_PART_INST
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_CMMN_RU_SENTRY_PART_INST`;
+CREATE TABLE `ACT_CMMN_RU_SENTRY_PART_INST`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `REV_` int(11) NOT NULL,
+  `CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CASE_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `PLAN_ITEM_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `ON_PART_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `IF_PART_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TIME_STAMP_` datetime(3) NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_SENTRY_CASE_DEF`(`CASE_DEF_ID_`) USING BTREE,
+  INDEX `ACT_IDX_SENTRY_CASE_INST`(`CASE_INST_ID_`) USING BTREE,
+  INDEX `ACT_IDX_SENTRY_PLAN_ITEM`(`PLAN_ITEM_INST_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_SENTRY_CASE_DEF` FOREIGN KEY (`CASE_DEF_ID_`) REFERENCES `ACT_CMMN_CASEDEF` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_SENTRY_CASE_INST` FOREIGN KEY (`CASE_INST_ID_`) REFERENCES `ACT_CMMN_RU_CASE_INST` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_SENTRY_PLAN_ITEM` FOREIGN KEY (`PLAN_ITEM_INST_ID_`) REFERENCES `ACT_CMMN_RU_PLAN_ITEM_INST` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_CO_CONTENT_ITEM
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_CO_CONTENT_ITEM`;
+CREATE TABLE `ACT_CO_CONTENT_ITEM`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `MIME_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TASK_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `PROC_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CONTENT_STORE_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CONTENT_STORE_NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `FIELD_` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CONTENT_AVAILABLE_` bit(1) NULL DEFAULT b'0',
+  `CREATED_` timestamp(6) NULL DEFAULT NULL,
+  `CREATED_BY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `LAST_MODIFIED_` timestamp(6) NULL DEFAULT NULL,
+  `LAST_MODIFIED_BY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CONTENT_SIZE_` bigint(20) NULL DEFAULT 0,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `idx_contitem_taskid`(`TASK_ID_`) USING BTREE,
+  INDEX `idx_contitem_procid`(`PROC_INST_ID_`) USING BTREE,
+  INDEX `idx_contitem_scope`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_CO_DATABASECHANGELOG
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_CO_DATABASECHANGELOG`;
+CREATE TABLE `ACT_CO_DATABASECHANGELOG`  (
+  `ID` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `AUTHOR` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `FILENAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `DATEEXECUTED` datetime(0) NOT NULL,
+  `ORDEREXECUTED` int(11) NOT NULL,
+  `EXECTYPE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `MD5SUM` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DESCRIPTION` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `COMMENTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `LIQUIBASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CONTEXTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `LABELS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOYMENT_ID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Records of ACT_CO_DATABASECHANGELOG
+-- ----------------------------
+BEGIN;
+INSERT INTO `ACT_CO_DATABASECHANGELOG` VALUES ('1', 'activiti', 'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', '2019-08-01 03:07:58', 1, 'EXECUTED', '8:7644d7165cfe799200a2abdd3419e8b6', 'createTable tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_taskid, tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_procid, tableName=ACT_CO_CONTENT_ITEM', '', NULL, '3.6.3', NULL, NULL, '4628877941'), ('2', 'flowable', 'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', '2019-08-01 03:07:58', 2, 'EXECUTED', '8:fe7b11ac7dbbf9c43006b23bbab60bab', 'addColumn tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_scope, tableName=ACT_CO_CONTENT_ITEM', '', NULL, '3.6.3', NULL, NULL, '4628877941');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_CO_DATABASECHANGELOGLOCK
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_CO_DATABASECHANGELOGLOCK`;
+CREATE TABLE `ACT_CO_DATABASECHANGELOGLOCK`  (
+  `ID` int(11) NOT NULL,
+  `LOCKED` bit(1) NOT NULL,
+  `LOCKGRANTED` datetime(0) NULL DEFAULT NULL,
+  `LOCKEDBY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`ID`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Records of ACT_CO_DATABASECHANGELOGLOCK
+-- ----------------------------
+BEGIN;
+INSERT INTO `ACT_CO_DATABASECHANGELOGLOCK` VALUES (1, b'0', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_DE_DATABASECHANGELOG
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_DE_DATABASECHANGELOG`;
+CREATE TABLE `ACT_DE_DATABASECHANGELOG`  (
+  `ID` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `AUTHOR` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `FILENAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `DATEEXECUTED` datetime(0) NOT NULL,
+  `ORDEREXECUTED` int(11) NOT NULL,
+  `EXECTYPE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `MD5SUM` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DESCRIPTION` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `COMMENTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `LIQUIBASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CONTEXTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `LABELS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOYMENT_ID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Records of ACT_DE_DATABASECHANGELOG
+-- ----------------------------
+BEGIN;
+INSERT INTO `ACT_DE_DATABASECHANGELOG` VALUES ('1', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', '2019-08-01 03:08:43', 1, 'EXECUTED', '8:e70d1d9d3899a734296b2514ccc71501', 'createTable tableName=ACT_DE_MODEL; createIndex indexName=idx_proc_mod_created, tableName=ACT_DE_MODEL; createTable tableName=ACT_DE_MODEL_HISTORY; createIndex indexName=idx_proc_mod_history_proc, tableName=ACT_DE_MODEL_HISTORY; createTable tableN...', '', NULL, '3.6.3', NULL, NULL, '4628923400'), ('3', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', '2019-08-01 03:08:43', 2, 'EXECUTED', '8:3a9143bef2e45f2316231cc1369138b6', 'addColumn tableName=ACT_DE_MODEL; addColumn tableName=ACT_DE_MODEL_HISTORY', '', NULL, '3.6.3', NULL, NULL, '4628923400');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_DE_DATABASECHANGELOGLOCK
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_DE_DATABASECHANGELOGLOCK`;
+CREATE TABLE `ACT_DE_DATABASECHANGELOGLOCK`  (
+  `ID` int(11) NOT NULL,
+  `LOCKED` bit(1) NOT NULL,
+  `LOCKGRANTED` datetime(0) NULL DEFAULT NULL,
+  `LOCKEDBY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`ID`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Records of ACT_DE_DATABASECHANGELOGLOCK
+-- ----------------------------
+BEGIN;
+INSERT INTO `ACT_DE_DATABASECHANGELOGLOCK` VALUES (1, b'0', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_DE_MODEL
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_DE_MODEL`;
+CREATE TABLE `ACT_DE_MODEL`  (
+  `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `name` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `model_key` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `description` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `model_comment` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `created` datetime(6) NULL DEFAULT NULL,
+  `created_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `last_updated` datetime(6) NULL DEFAULT NULL,
+  `last_updated_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `version` int(11) NULL DEFAULT NULL,
+  `model_editor_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
+  `model_editor_xml` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
+  `thumbnail` longblob NULL,
+  `model_type` int(11) NULL DEFAULT NULL,
+  `tenant_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `xml` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL NULL,
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `idx_proc_mod_created`(`created_by`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_DE_MODEL_HISTORY
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_DE_MODEL_HISTORY`;
+CREATE TABLE `ACT_DE_MODEL_HISTORY`  (
+  `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `name` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `model_key` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `description` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `model_comment` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `created` datetime(6) NULL DEFAULT NULL,
+  `created_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `last_updated` datetime(6) NULL DEFAULT NULL,
+  `last_updated_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `removal_date` datetime(6) NULL DEFAULT NULL,
+  `version` int(11) NULL DEFAULT NULL,
+  `model_editor_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
+  `model_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `model_type` int(11) NULL DEFAULT NULL,
+  `tenant_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `idx_proc_mod_history_proc`(`model_id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_DE_MODEL_RELATION
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_DE_MODEL_RELATION`;
+CREATE TABLE `ACT_DE_MODEL_RELATION`  (
+  `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `parent_model_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `model_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `relation_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `fk_relation_parent`(`parent_model_id`) USING BTREE,
+  INDEX `fk_relation_child`(`model_id`) USING BTREE,
+  CONSTRAINT `fk_relation_child` FOREIGN KEY (`model_id`) REFERENCES `ACT_DE_MODEL` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `fk_relation_parent` FOREIGN KEY (`parent_model_id`) REFERENCES `ACT_DE_MODEL` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_DMN_DATABASECHANGELOG
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_DMN_DATABASECHANGELOG`;
+CREATE TABLE `ACT_DMN_DATABASECHANGELOG`  (
+  `ID` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `AUTHOR` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `FILENAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `DATEEXECUTED` datetime(0) NOT NULL,
+  `ORDEREXECUTED` int(11) NOT NULL,
+  `EXECTYPE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `MD5SUM` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DESCRIPTION` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `COMMENTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `LIQUIBASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CONTEXTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `LABELS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOYMENT_ID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Records of ACT_DMN_DATABASECHANGELOG
+-- ----------------------------
+BEGIN;
+INSERT INTO `ACT_DMN_DATABASECHANGELOG` VALUES ('1', 'activiti', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 03:07:57', 1, 'EXECUTED', '8:c8701f1c71018b55029f450b2e9a10a1', 'createTable tableName=ACT_DMN_DEPLOYMENT; createTable tableName=ACT_DMN_DEPLOYMENT_RESOURCE; createTable tableName=ACT_DMN_DECISION_TABLE', '', NULL, '3.6.3', NULL, NULL, '4628876950'), ('2', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 03:07:57', 2, 'EXECUTED', '8:47f94b27feb7df8a30d4e338c7bd5fb8', 'createTable tableName=ACT_DMN_HI_DECISION_EXECUTION', '', NULL, '3.6.3', NULL, NULL, '4628876950'), ('3', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 03:07:57', 3, 'EXECUTED', '8:ac17eae89fbdccb6e08daf3c7797b579', 'addColumn tableName=ACT_DMN_HI_DECISION_EXECUTION', '', NULL, '3.6.3', NULL, NULL, '4628876950'), ('4', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 03:07:57', 4, 'EXECUTED', '8:f73aabc4529e7292c2942073d1cff6f9', 'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_DMN_DECISION_TABLE', '', NULL, '3.6.3', NULL, NULL, '4628876950'), ('5', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 03:07:57', 5, 'EXECUTED', '8:3e03528582dd4eeb4eb41f9b9539140d', 'modifyDataType columnName=DEPLOY_TIME_, tableName=ACT_DMN_DEPLOYMENT; modifyDataType columnName=START_TIME_, tableName=ACT_DMN_HI_DECISION_EXECUTION; modifyDataType columnName=END_TIME_, tableName=ACT_DMN_HI_DECISION_EXECUTION', '', NULL, '3.6.3', NULL, NULL, '4628876950'), ('6', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 03:07:57', 6, 'EXECUTED', '8:646c6a061e0b6e8a62e69844ff96abb0', 'createIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE', '', NULL, '3.6.3', NULL, NULL, '4628876950');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_DMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_DMN_DATABASECHANGELOGLOCK`;
+CREATE TABLE `ACT_DMN_DATABASECHANGELOGLOCK`  (
+  `ID` int(11) NOT NULL,
+  `LOCKED` bit(1) NOT NULL,
+  `LOCKGRANTED` datetime(0) NULL DEFAULT NULL,
+  `LOCKEDBY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`ID`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Records of ACT_DMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+BEGIN;
+INSERT INTO `ACT_DMN_DATABASECHANGELOGLOCK` VALUES (1, b'0', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_DMN_DECISION_TABLE
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_DMN_DECISION_TABLE`;
+CREATE TABLE `ACT_DMN_DECISION_TABLE`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `VERSION_` int(11) NULL DEFAULT NULL,
+  `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `RESOURCE_NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DESCRIPTION_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  UNIQUE INDEX `ACT_IDX_DEC_TBL_UNIQ`(`KEY_`, `VERSION_`, `TENANT_ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_DMN_DEPLOYMENT
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_DMN_DEPLOYMENT`;
+CREATE TABLE `ACT_DMN_DEPLOYMENT`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOY_TIME_` datetime(3) NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `PARENT_DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_DMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_DMN_DEPLOYMENT_RESOURCE`;
+CREATE TABLE `ACT_DMN_DEPLOYMENT_RESOURCE`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `RESOURCE_BYTES_` longblob NULL,
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_DMN_HI_DECISION_EXECUTION
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_DMN_HI_DECISION_EXECUTION`;
+CREATE TABLE `ACT_DMN_HI_DECISION_EXECUTION`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `DECISION_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `START_TIME_` datetime(3) NULL DEFAULT NULL,
+  `END_TIME_` datetime(3) NULL DEFAULT NULL,
+  `INSTANCE_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `EXECUTION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `ACTIVITY_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `FAILED_` bit(1) NULL DEFAULT b'0',
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `EXECUTION_JSON_` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_EVT_LOG
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_EVT_LOG`;
+CREATE TABLE `ACT_EVT_LOG`  (
+  `LOG_NR_` bigint(20) NOT NULL AUTO_INCREMENT,
+  `TYPE_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TIME_STAMP_` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
+  `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DATA_` longblob NULL,
+  `LOCK_OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `LOCK_TIME_` timestamp(3) NULL DEFAULT NULL,
+  `IS_PROCESSED_` tinyint(4) NULL DEFAULT 0,
+  PRIMARY KEY (`LOG_NR_`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_FO_DATABASECHANGELOG
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_FO_DATABASECHANGELOG`;
+CREATE TABLE `ACT_FO_DATABASECHANGELOG`  (
+  `ID` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `AUTHOR` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `FILENAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `DATEEXECUTED` datetime(0) NOT NULL,
+  `ORDEREXECUTED` int(11) NOT NULL,
+  `EXECTYPE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `MD5SUM` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DESCRIPTION` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `COMMENTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `LIQUIBASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CONTEXTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `LABELS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOYMENT_ID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Records of ACT_FO_DATABASECHANGELOG
+-- ----------------------------
+BEGIN;
+INSERT INTO `ACT_FO_DATABASECHANGELOG` VALUES ('1', 'activiti', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 03:07:57', 1, 'EXECUTED', '8:033ebf9380889aed7c453927ecc3250d', 'createTable tableName=ACT_FO_FORM_DEPLOYMENT; createTable tableName=ACT_FO_FORM_RESOURCE; createTable tableName=ACT_FO_FORM_DEFINITION; createTable tableName=ACT_FO_FORM_INSTANCE', '', NULL, '3.6.3', NULL, NULL, '4628877478'), ('2', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 03:07:57', 2, 'EXECUTED', '8:986365ceb40445ce3b27a8e6b40f159b', 'addColumn tableName=ACT_FO_FORM_INSTANCE', '', NULL, '3.6.3', NULL, NULL, '4628877478'), ('3', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 03:07:57', 3, 'EXECUTED', '8:abf482518ceb09830ef674e52c06bf15', 'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_FO_FORM_DEFINITION', '', NULL, '3.6.3', NULL, NULL, '4628877478'), ('4', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 03:07:57', 4, 'EXECUTED', '8:2087829f22a4b2298dbf530681c74854', 'modifyDataType columnName=DEPLOY_TIME_, tableName=ACT_FO_FORM_DEPLOYMENT; modifyDataType columnName=SUBMITTED_DATE_, tableName=ACT_FO_FORM_INSTANCE', '', NULL, '3.6.3', NULL, NULL, '4628877478'), ('5', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 03:07:57', 5, 'EXECUTED', '8:b4be732b89e5ca028bdd520c6ad4d446', 'createIndex indexName=ACT_IDX_FORM_DEF_UNIQ, tableName=ACT_FO_FORM_DEFINITION', '', NULL, '3.6.3', NULL, NULL, '4628877478');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_FO_DATABASECHANGELOGLOCK
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_FO_DATABASECHANGELOGLOCK`;
+CREATE TABLE `ACT_FO_DATABASECHANGELOGLOCK`  (
+  `ID` int(11) NOT NULL,
+  `LOCKED` bit(1) NOT NULL,
+  `LOCKGRANTED` datetime(0) NULL DEFAULT NULL,
+  `LOCKEDBY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`ID`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Records of ACT_FO_DATABASECHANGELOGLOCK
+-- ----------------------------
+BEGIN;
+INSERT INTO `ACT_FO_DATABASECHANGELOGLOCK` VALUES (1, b'0', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_FO_FORM_DEFINITION
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_FO_FORM_DEFINITION`;
+CREATE TABLE `ACT_FO_FORM_DEFINITION`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `VERSION_` int(11) NULL DEFAULT NULL,
+  `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `RESOURCE_NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DESCRIPTION_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  UNIQUE INDEX `ACT_IDX_FORM_DEF_UNIQ`(`KEY_`, `VERSION_`, `TENANT_ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_FO_FORM_DEPLOYMENT
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_FO_FORM_DEPLOYMENT`;
+CREATE TABLE `ACT_FO_FORM_DEPLOYMENT`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOY_TIME_` datetime(3) NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `PARENT_DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_FO_FORM_INSTANCE
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_FO_FORM_INSTANCE`;
+CREATE TABLE `ACT_FO_FORM_INSTANCE`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `FORM_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `TASK_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `PROC_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `PROC_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `SUBMITTED_DATE_` datetime(3) NULL DEFAULT NULL,
+  `SUBMITTED_BY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `FORM_VALUES_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_FO_FORM_RESOURCE
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_FO_FORM_RESOURCE`;
+CREATE TABLE `ACT_FO_FORM_RESOURCE`  (
+  `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
+  `RESOURCE_BYTES_` longblob NULL,
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
+
+-- ----------------------------
+-- Table structure for ACT_GE_BYTEARRAY
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_GE_BYTEARRAY`;
+CREATE TABLE `ACT_GE_BYTEARRAY`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DEPLOYMENT_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `BYTES_` longblob NULL,
+  `GENERATED_` tinyint(4) NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_FK_BYTEARR_DEPL`(`DEPLOYMENT_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_BYTEARR_DEPL` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `ACT_RE_DEPLOYMENT` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_GE_PROPERTY
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_GE_PROPERTY`;
+CREATE TABLE `ACT_GE_PROPERTY`  (
+  `NAME_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `VALUE_` varchar(300) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  PRIMARY KEY (`NAME_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Records of ACT_GE_PROPERTY
+-- ----------------------------
+BEGIN;
+INSERT INTO `ACT_GE_PROPERTY` VALUES ('cfg.execution-related-entities-count', 'true', 1), ('cfg.task-related-entities-count', 'true', 1), ('common.schema.version', '6.5.0.1', 1), ('entitylink.schema.version', '6.5.0.1', 1), ('eventsubscription.schema.version', '6.5.0.1', 1), ('identitylink.schema.version', '6.5.0.1', 1), ('job.schema.version', '6.5.0.1', 1), ('next.dbid', '1', 1), ('schema.history', 'create(6.5.0.1)', 1), ('schema.version', '6.5.0.1', 1), ('task.schema.version', '6.5.0.1', 1), ('variable.schema.version', '6.5.0.1', 1);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_HI_ACTINST
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_HI_ACTINST`;
+CREATE TABLE `ACT_HI_ACTINST`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT 1,
+  `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `ACT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CALL_PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ACT_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ACT_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `ASSIGNEE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `START_TIME_` datetime(3) NOT NULL,
+  `END_TIME_` datetime(3) NULL DEFAULT NULL,
+  `DURATION_` bigint(20) NULL DEFAULT NULL,
+  `DELETE_REASON_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_HI_ACT_INST_START`(`START_TIME_`) USING BTREE,
+  INDEX `ACT_IDX_HI_ACT_INST_END`(`END_TIME_`) USING BTREE,
+  INDEX `ACT_IDX_HI_ACT_INST_PROCINST`(`PROC_INST_ID_`, `ACT_ID_`) USING BTREE,
+  INDEX `ACT_IDX_HI_ACT_INST_EXEC`(`EXECUTION_ID_`, `ACT_ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_HI_ATTACHMENT
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_HI_ATTACHMENT`;
+CREATE TABLE `ACT_HI_ATTACHMENT`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DESCRIPTION_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `URL_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CONTENT_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TIME_` datetime(3) NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_HI_COMMENT
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_HI_COMMENT`;
+CREATE TABLE `ACT_HI_COMMENT`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TIME_` datetime(3) NOT NULL,
+  `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ACTION_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `MESSAGE_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `FULL_MSG_` longblob NULL,
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_HI_DETAIL
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_HI_DETAIL`;
+CREATE TABLE `ACT_HI_DETAIL`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ACT_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `VAR_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `TIME_` datetime(3) NOT NULL,
+  `BYTEARRAY_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DOUBLE_` double NULL DEFAULT NULL,
+  `LONG_` bigint(20) NULL DEFAULT NULL,
+  `TEXT_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TEXT2_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_HI_DETAIL_PROC_INST`(`PROC_INST_ID_`) USING BTREE,
+  INDEX `ACT_IDX_HI_DETAIL_ACT_INST`(`ACT_INST_ID_`) USING BTREE,
+  INDEX `ACT_IDX_HI_DETAIL_TIME`(`TIME_`) USING BTREE,
+  INDEX `ACT_IDX_HI_DETAIL_NAME`(`NAME_`) USING BTREE,
+  INDEX `ACT_IDX_HI_DETAIL_TASK_ID`(`TASK_ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_HI_ENTITYLINK
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_HI_ENTITYLINK`;
+CREATE TABLE `ACT_HI_ENTITYLINK`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `LINK_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CREATE_TIME_` datetime(3) NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `REF_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `REF_SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `REF_SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `HIERARCHY_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_HI_ENT_LNK_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`, `LINK_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_HI_ENT_LNK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`, `LINK_TYPE_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_HI_IDENTITYLINK
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_HI_IDENTITYLINK`;
+CREATE TABLE `ACT_HI_IDENTITYLINK`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `GROUP_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CREATE_TIME_` datetime(3) NULL DEFAULT NULL,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_HI_IDENT_LNK_USER`(`USER_ID_`) USING BTREE,
+  INDEX `ACT_IDX_HI_IDENT_LNK_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_HI_IDENT_LNK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_HI_IDENT_LNK_TASK`(`TASK_ID_`) USING BTREE,
+  INDEX `ACT_IDX_HI_IDENT_LNK_PROCINST`(`PROC_INST_ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_HI_PROCINST
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_HI_PROCINST`;
+CREATE TABLE `ACT_HI_PROCINST`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT 1,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `BUSINESS_KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `START_TIME_` datetime(3) NOT NULL,
+  `END_TIME_` datetime(3) NULL DEFAULT NULL,
+  `DURATION_` bigint(20) NULL DEFAULT NULL,
+  `START_USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `START_ACT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `END_ACT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SUPER_PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DELETE_REASON_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CALLBACK_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CALLBACK_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  UNIQUE INDEX `PROC_INST_ID_`(`PROC_INST_ID_`) USING BTREE,
+  INDEX `ACT_IDX_HI_PRO_INST_END`(`END_TIME_`) USING BTREE,
+  INDEX `ACT_IDX_HI_PRO_I_BUSKEY`(`BUSINESS_KEY_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_HI_TASKINST
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_HI_TASKINST`;
+CREATE TABLE `ACT_HI_TASKINST`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT 1,
+  `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TASK_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TASK_DEF_KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PARENT_TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DESCRIPTION_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ASSIGNEE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `START_TIME_` datetime(3) NOT NULL,
+  `CLAIM_TIME_` datetime(3) NULL DEFAULT NULL,
+  `END_TIME_` datetime(3) NULL DEFAULT NULL,
+  `DURATION_` bigint(20) NULL DEFAULT NULL,
+  `DELETE_REASON_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PRIORITY_` int(11) NULL DEFAULT NULL,
+  `DUE_DATE_` datetime(3) NULL DEFAULT NULL,
+  `FORM_KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CATEGORY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  `LAST_UPDATED_TIME_` datetime(3) NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_HI_TASK_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_HI_TASK_SUB_SCOPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_HI_TASK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_HI_TASK_INST_PROCINST`(`PROC_INST_ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_HI_TSK_LOG
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_HI_TSK_LOG`;
+CREATE TABLE `ACT_HI_TSK_LOG`  (
+  `ID_` bigint(20) NOT NULL AUTO_INCREMENT,
+  `TYPE_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `TIME_STAMP_` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
+  `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DATA_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_HI_VARINST
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_HI_VARINST`;
+CREATE TABLE `ACT_HI_VARINST`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT 1,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `VAR_TYPE_` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `BYTEARRAY_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DOUBLE_` double NULL DEFAULT NULL,
+  `LONG_` bigint(20) NULL DEFAULT NULL,
+  `TEXT_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TEXT2_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CREATE_TIME_` datetime(3) NULL DEFAULT NULL,
+  `LAST_UPDATED_TIME_` datetime(3) NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_HI_PROCVAR_NAME_TYPE`(`NAME_`, `VAR_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_HI_VAR_SCOPE_ID_TYPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_HI_VAR_SUB_ID_TYPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_HI_PROCVAR_PROC_INST`(`PROC_INST_ID_`) USING BTREE,
+  INDEX `ACT_IDX_HI_PROCVAR_TASK_ID`(`TASK_ID_`) USING BTREE,
+  INDEX `ACT_IDX_HI_PROCVAR_EXE`(`EXECUTION_ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_ID_BYTEARRAY
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_ID_BYTEARRAY`;
+CREATE TABLE `ACT_ID_BYTEARRAY`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `BYTES_` longblob NULL,
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_ID_GROUP
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_ID_GROUP`;
+CREATE TABLE `ACT_ID_GROUP`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_ID_INFO
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_ID_INFO`;
+CREATE TABLE `ACT_ID_INFO`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `USER_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TYPE_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `VALUE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PASSWORD_` longblob NULL,
+  `PARENT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_ID_MEMBERSHIP
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_ID_MEMBERSHIP`;
+CREATE TABLE `ACT_ID_MEMBERSHIP`  (
+  `USER_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `GROUP_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  PRIMARY KEY (`USER_ID_`, `GROUP_ID_`) USING BTREE,
+  INDEX `ACT_FK_MEMB_GROUP`(`GROUP_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_MEMB_GROUP` FOREIGN KEY (`GROUP_ID_`) REFERENCES `ACT_ID_GROUP` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_MEMB_USER` FOREIGN KEY (`USER_ID_`) REFERENCES `ACT_ID_USER` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_ID_PRIV
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_ID_PRIV`;
+CREATE TABLE `ACT_ID_PRIV`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  UNIQUE INDEX `ACT_UNIQ_PRIV_NAME`(`NAME_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_ID_PRIV_MAPPING
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_ID_PRIV_MAPPING`;
+CREATE TABLE `ACT_ID_PRIV_MAPPING`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `PRIV_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `GROUP_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_FK_PRIV_MAPPING`(`PRIV_ID_`) USING BTREE,
+  INDEX `ACT_IDX_PRIV_USER`(`USER_ID_`) USING BTREE,
+  INDEX `ACT_IDX_PRIV_GROUP`(`GROUP_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_PRIV_MAPPING` FOREIGN KEY (`PRIV_ID_`) REFERENCES `ACT_ID_PRIV` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_ID_PROPERTY
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_ID_PROPERTY`;
+CREATE TABLE `ACT_ID_PROPERTY`  (
+  `NAME_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `VALUE_` varchar(300) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  PRIMARY KEY (`NAME_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Records of ACT_ID_PROPERTY
+-- ----------------------------
+BEGIN;
+INSERT INTO `ACT_ID_PROPERTY` VALUES ('schema.version', '6.5.0.1', 1);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_ID_TOKEN
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_ID_TOKEN`;
+CREATE TABLE `ACT_ID_TOKEN`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `TOKEN_VALUE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TOKEN_DATE_` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
+  `IP_ADDRESS_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `USER_AGENT_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TOKEN_DATA_` varchar(2000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_ID_USER
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_ID_USER`;
+CREATE TABLE `ACT_ID_USER`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `FIRST_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `LAST_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DISPLAY_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EMAIL_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PWD_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PICTURE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_PROCDEF_INFO
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_PROCDEF_INFO`;
+CREATE TABLE `ACT_PROCDEF_INFO`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `INFO_JSON_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  UNIQUE INDEX `ACT_UNIQ_INFO_PROCDEF`(`PROC_DEF_ID_`) USING BTREE,
+  INDEX `ACT_IDX_INFO_PROCDEF`(`PROC_DEF_ID_`) USING BTREE,
+  INDEX `ACT_FK_INFO_JSON_BA`(`INFO_JSON_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_INFO_JSON_BA` FOREIGN KEY (`INFO_JSON_ID_`) REFERENCES `ACT_GE_BYTEARRAY` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_INFO_PROCDEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `ACT_RE_PROCDEF` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_RE_DEPLOYMENT
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_RE_DEPLOYMENT`;
+CREATE TABLE `ACT_RE_DEPLOYMENT`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CATEGORY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  `DEPLOY_TIME_` timestamp(3) NULL DEFAULT NULL,
+  `DERIVED_FROM_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DERIVED_FROM_ROOT_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PARENT_DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ENGINE_VERSION_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_RE_MODEL
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_RE_MODEL`;
+CREATE TABLE `ACT_RE_MODEL`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CATEGORY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL,
+  `LAST_UPDATE_TIME_` timestamp(3) NULL DEFAULT NULL,
+  `VERSION_` int(11) NULL DEFAULT NULL,
+  `META_INFO_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DEPLOYMENT_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EDITOR_SOURCE_VALUE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EDITOR_SOURCE_EXTRA_VALUE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_FK_MODEL_SOURCE`(`EDITOR_SOURCE_VALUE_ID_`) USING BTREE,
+  INDEX `ACT_FK_MODEL_SOURCE_EXTRA`(`EDITOR_SOURCE_EXTRA_VALUE_ID_`) USING BTREE,
+  INDEX `ACT_FK_MODEL_DEPLOYMENT`(`DEPLOYMENT_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_MODEL_DEPLOYMENT` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `ACT_RE_DEPLOYMENT` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_MODEL_SOURCE` FOREIGN KEY (`EDITOR_SOURCE_VALUE_ID_`) REFERENCES `ACT_GE_BYTEARRAY` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_MODEL_SOURCE_EXTRA` FOREIGN KEY (`EDITOR_SOURCE_EXTRA_VALUE_ID_`) REFERENCES `ACT_GE_BYTEARRAY` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_RE_PROCDEF
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_RE_PROCDEF`;
+CREATE TABLE `ACT_RE_PROCDEF`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `CATEGORY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `VERSION_` int(11) NOT NULL,
+  `DEPLOYMENT_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `RESOURCE_NAME_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DGRM_RESOURCE_NAME_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DESCRIPTION_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `HAS_START_FORM_KEY_` tinyint(4) NULL DEFAULT NULL,
+  `HAS_GRAPHICAL_NOTATION_` tinyint(4) NULL DEFAULT NULL,
+  `SUSPENSION_STATE_` int(11) NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  `ENGINE_VERSION_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DERIVED_FROM_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DERIVED_FROM_ROOT_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DERIVED_VERSION_` int(11) NOT NULL DEFAULT 0,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  UNIQUE INDEX `ACT_UNIQ_PROCDEF`(`KEY_`, `VERSION_`, `DERIVED_VERSION_`, `TENANT_ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_RU_ACTINST
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_RU_ACTINST`;
+CREATE TABLE `ACT_RU_ACTINST`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT 1,
+  `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `ACT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CALL_PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ACT_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ACT_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `ASSIGNEE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `START_TIME_` datetime(3) NOT NULL,
+  `END_TIME_` datetime(3) NULL DEFAULT NULL,
+  `DURATION_` bigint(20) NULL DEFAULT NULL,
+  `DELETE_REASON_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_RU_ACTI_START`(`START_TIME_`) USING BTREE,
+  INDEX `ACT_IDX_RU_ACTI_END`(`END_TIME_`) USING BTREE,
+  INDEX `ACT_IDX_RU_ACTI_PROC`(`PROC_INST_ID_`) USING BTREE,
+  INDEX `ACT_IDX_RU_ACTI_PROC_ACT`(`PROC_INST_ID_`, `ACT_ID_`) USING BTREE,
+  INDEX `ACT_IDX_RU_ACTI_EXEC`(`EXECUTION_ID_`) USING BTREE,
+  INDEX `ACT_IDX_RU_ACTI_EXEC_ACT`(`EXECUTION_ID_`, `ACT_ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_RU_DEADLETTER_JOB
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_RU_DEADLETTER_JOB`;
+CREATE TABLE `ACT_RU_DEADLETTER_JOB`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `EXCLUSIVE_` tinyint(1) NULL DEFAULT NULL,
+  `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ELEMENT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ELEMENT_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DUEDATE_` timestamp(3) NULL DEFAULT NULL,
+  `REPEAT_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_DEADLETTER_JOB_EXCEPTION_STACK_ID`(`EXCEPTION_STACK_ID_`) USING BTREE,
+  INDEX `ACT_IDX_DEADLETTER_JOB_CUSTOM_VALUES_ID`(`CUSTOM_VALUES_ID_`) USING BTREE,
+  INDEX `ACT_IDX_DJOB_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_DJOB_SUB_SCOPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_DJOB_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_FK_DEADLETTER_JOB_EXECUTION`(`EXECUTION_ID_`) USING BTREE,
+  INDEX `ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE`(`PROCESS_INSTANCE_ID_`) USING BTREE,
+  INDEX `ACT_FK_DEADLETTER_JOB_PROC_DEF`(`PROC_DEF_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_DEADLETTER_JOB_CUSTOM_VALUES` FOREIGN KEY (`CUSTOM_VALUES_ID_`) REFERENCES `ACT_GE_BYTEARRAY` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_DEADLETTER_JOB_EXCEPTION` FOREIGN KEY (`EXCEPTION_STACK_ID_`) REFERENCES `ACT_GE_BYTEARRAY` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_DEADLETTER_JOB_EXECUTION` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE` FOREIGN KEY (`PROCESS_INSTANCE_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_DEADLETTER_JOB_PROC_DEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `ACT_RE_PROCDEF` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_RU_ENTITYLINK
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_RU_ENTITYLINK`;
+CREATE TABLE `ACT_RU_ENTITYLINK`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `CREATE_TIME_` datetime(3) NULL DEFAULT NULL,
+  `LINK_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `REF_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `REF_SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `REF_SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `HIERARCHY_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_ENT_LNK_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`, `LINK_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_ENT_LNK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`, `LINK_TYPE_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_RU_EVENT_SUBSCR
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_RU_EVENT_SUBSCR`;
+CREATE TABLE `ACT_RU_EVENT_SUBSCR`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `EVENT_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `EVENT_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ACTIVITY_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CONFIGURATION_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CREATED_` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
+  `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SUB_SCOPE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_DEFINITION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_EVENT_SUBSCR_CONFIG_`(`CONFIGURATION_`) USING BTREE,
+  INDEX `ACT_FK_EVENT_EXEC`(`EXECUTION_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_EVENT_EXEC` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_RU_EXECUTION
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_RU_EXECUTION`;
+CREATE TABLE `ACT_RU_EXECUTION`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `BUSINESS_KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PARENT_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SUPER_EXEC_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ROOT_PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ACT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `IS_ACTIVE_` tinyint(4) NULL DEFAULT NULL,
+  `IS_CONCURRENT_` tinyint(4) NULL DEFAULT NULL,
+  `IS_SCOPE_` tinyint(4) NULL DEFAULT NULL,
+  `IS_EVENT_SCOPE_` tinyint(4) NULL DEFAULT NULL,
+  `IS_MI_ROOT_` tinyint(4) NULL DEFAULT NULL,
+  `SUSPENSION_STATE_` int(11) NULL DEFAULT NULL,
+  `CACHED_ENT_STATE_` int(11) NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `START_ACT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `START_TIME_` datetime(3) NULL DEFAULT NULL,
+  `START_USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `LOCK_TIME_` timestamp(3) NULL DEFAULT NULL,
+  `IS_COUNT_ENABLED_` tinyint(4) NULL DEFAULT NULL,
+  `EVT_SUBSCR_COUNT_` int(11) NULL DEFAULT NULL,
+  `TASK_COUNT_` int(11) NULL DEFAULT NULL,
+  `JOB_COUNT_` int(11) NULL DEFAULT NULL,
+  `TIMER_JOB_COUNT_` int(11) NULL DEFAULT NULL,
+  `SUSP_JOB_COUNT_` int(11) NULL DEFAULT NULL,
+  `DEADLETTER_JOB_COUNT_` int(11) NULL DEFAULT NULL,
+  `VAR_COUNT_` int(11) NULL DEFAULT NULL,
+  `ID_LINK_COUNT_` int(11) NULL DEFAULT NULL,
+  `CALLBACK_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CALLBACK_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_EXEC_BUSKEY`(`BUSINESS_KEY_`) USING BTREE,
+  INDEX `ACT_IDC_EXEC_ROOT`(`ROOT_PROC_INST_ID_`) USING BTREE,
+  INDEX `ACT_FK_EXE_PROCINST`(`PROC_INST_ID_`) USING BTREE,
+  INDEX `ACT_FK_EXE_PARENT`(`PARENT_ID_`) USING BTREE,
+  INDEX `ACT_FK_EXE_SUPER`(`SUPER_EXEC_`) USING BTREE,
+  INDEX `ACT_FK_EXE_PROCDEF`(`PROC_DEF_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_EXE_PARENT` FOREIGN KEY (`PARENT_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE CASCADE ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_EXE_PROCDEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `ACT_RE_PROCDEF` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_EXE_PROCINST` FOREIGN KEY (`PROC_INST_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE CASCADE ON UPDATE CASCADE,
+  CONSTRAINT `ACT_FK_EXE_SUPER` FOREIGN KEY (`SUPER_EXEC_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE CASCADE ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_RU_HISTORY_JOB
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_RU_HISTORY_JOB`;
+CREATE TABLE `ACT_RU_HISTORY_JOB`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `LOCK_EXP_TIME_` timestamp(3) NULL DEFAULT NULL,
+  `LOCK_OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `RETRIES_` int(11) NULL DEFAULT NULL,
+  `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ADV_HANDLER_CFG_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_RU_IDENTITYLINK
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_RU_IDENTITYLINK`;
+CREATE TABLE `ACT_RU_IDENTITYLINK`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `GROUP_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `USER_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_IDENT_LNK_USER`(`USER_ID_`) USING BTREE,
+  INDEX `ACT_IDX_IDENT_LNK_GROUP`(`GROUP_ID_`) USING BTREE,
+  INDEX `ACT_IDX_IDENT_LNK_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_IDENT_LNK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_ATHRZ_PROCEDEF`(`PROC_DEF_ID_`) USING BTREE,
+  INDEX `ACT_FK_TSKASS_TASK`(`TASK_ID_`) USING BTREE,
+  INDEX `ACT_FK_IDL_PROCINST`(`PROC_INST_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_ATHRZ_PROCEDEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `ACT_RE_PROCDEF` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_IDL_PROCINST` FOREIGN KEY (`PROC_INST_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_TSKASS_TASK` FOREIGN KEY (`TASK_ID_`) REFERENCES `ACT_RU_TASK` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_RU_JOB
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_RU_JOB`;
+CREATE TABLE `ACT_RU_JOB`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `LOCK_EXP_TIME_` timestamp(3) NULL DEFAULT NULL,
+  `LOCK_OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EXCLUSIVE_` tinyint(1) NULL DEFAULT NULL,
+  `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ELEMENT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ELEMENT_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `RETRIES_` int(11) NULL DEFAULT NULL,
+  `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DUEDATE_` timestamp(3) NULL DEFAULT NULL,
+  `REPEAT_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_JOB_EXCEPTION_STACK_ID`(`EXCEPTION_STACK_ID_`) USING BTREE,
+  INDEX `ACT_IDX_JOB_CUSTOM_VALUES_ID`(`CUSTOM_VALUES_ID_`) USING BTREE,
+  INDEX `ACT_IDX_JOB_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_JOB_SUB_SCOPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_JOB_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_FK_JOB_EXECUTION`(`EXECUTION_ID_`) USING BTREE,
+  INDEX `ACT_FK_JOB_PROCESS_INSTANCE`(`PROCESS_INSTANCE_ID_`) USING BTREE,
+  INDEX `ACT_FK_JOB_PROC_DEF`(`PROC_DEF_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_JOB_CUSTOM_VALUES` FOREIGN KEY (`CUSTOM_VALUES_ID_`) REFERENCES `ACT_GE_BYTEARRAY` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_JOB_EXCEPTION` FOREIGN KEY (`EXCEPTION_STACK_ID_`) REFERENCES `ACT_GE_BYTEARRAY` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_JOB_EXECUTION` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_JOB_PROCESS_INSTANCE` FOREIGN KEY (`PROCESS_INSTANCE_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_JOB_PROC_DEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `ACT_RE_PROCDEF` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_RU_SUSPENDED_JOB
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_RU_SUSPENDED_JOB`;
+CREATE TABLE `ACT_RU_SUSPENDED_JOB`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `EXCLUSIVE_` tinyint(1) NULL DEFAULT NULL,
+  `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ELEMENT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ELEMENT_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `RETRIES_` int(11) NULL DEFAULT NULL,
+  `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DUEDATE_` timestamp(3) NULL DEFAULT NULL,
+  `REPEAT_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_SUSPENDED_JOB_EXCEPTION_STACK_ID`(`EXCEPTION_STACK_ID_`) USING BTREE,
+  INDEX `ACT_IDX_SUSPENDED_JOB_CUSTOM_VALUES_ID`(`CUSTOM_VALUES_ID_`) USING BTREE,
+  INDEX `ACT_IDX_SJOB_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_SJOB_SUB_SCOPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_SJOB_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_FK_SUSPENDED_JOB_EXECUTION`(`EXECUTION_ID_`) USING BTREE,
+  INDEX `ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE`(`PROCESS_INSTANCE_ID_`) USING BTREE,
+  INDEX `ACT_FK_SUSPENDED_JOB_PROC_DEF`(`PROC_DEF_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_SUSPENDED_JOB_CUSTOM_VALUES` FOREIGN KEY (`CUSTOM_VALUES_ID_`) REFERENCES `ACT_GE_BYTEARRAY` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_SUSPENDED_JOB_EXCEPTION` FOREIGN KEY (`EXCEPTION_STACK_ID_`) REFERENCES `ACT_GE_BYTEARRAY` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_SUSPENDED_JOB_EXECUTION` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE` FOREIGN KEY (`PROCESS_INSTANCE_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_SUSPENDED_JOB_PROC_DEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `ACT_RE_PROCDEF` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_RU_TASK
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_RU_TASK`;
+CREATE TABLE `ACT_RU_TASK`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TASK_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PARENT_TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DESCRIPTION_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TASK_DEF_KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ASSIGNEE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DELEGATION_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PRIORITY_` int(11) NULL DEFAULT NULL,
+  `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL,
+  `DUE_DATE_` datetime(3) NULL DEFAULT NULL,
+  `CATEGORY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SUSPENSION_STATE_` int(11) NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  `FORM_KEY_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CLAIM_TIME_` datetime(3) NULL DEFAULT NULL,
+  `IS_COUNT_ENABLED_` tinyint(4) NULL DEFAULT NULL,
+  `VAR_COUNT_` int(11) NULL DEFAULT NULL,
+  `ID_LINK_COUNT_` int(11) NULL DEFAULT NULL,
+  `SUB_TASK_COUNT_` int(11) NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_TASK_CREATE`(`CREATE_TIME_`) USING BTREE,
+  INDEX `ACT_IDX_TASK_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_TASK_SUB_SCOPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_TASK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_FK_TASK_EXE`(`EXECUTION_ID_`) USING BTREE,
+  INDEX `ACT_FK_TASK_PROCINST`(`PROC_INST_ID_`) USING BTREE,
+  INDEX `ACT_FK_TASK_PROCDEF`(`PROC_DEF_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_TASK_EXE` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_TASK_PROCDEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `ACT_RE_PROCDEF` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_TASK_PROCINST` FOREIGN KEY (`PROC_INST_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_RU_TIMER_JOB
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_RU_TIMER_JOB`;
+CREATE TABLE `ACT_RU_TIMER_JOB`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `LOCK_EXP_TIME_` timestamp(3) NULL DEFAULT NULL,
+  `LOCK_OWNER_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EXCLUSIVE_` tinyint(1) NULL DEFAULT NULL,
+  `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ELEMENT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `ELEMENT_NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `RETRIES_` int(11) NULL DEFAULT NULL,
+  `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DUEDATE_` timestamp(3) NULL DEFAULT NULL,
+  `REPEAT_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL,
+  `TENANT_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT '',
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_TIMER_JOB_EXCEPTION_STACK_ID`(`EXCEPTION_STACK_ID_`) USING BTREE,
+  INDEX `ACT_IDX_TIMER_JOB_CUSTOM_VALUES_ID`(`CUSTOM_VALUES_ID_`) USING BTREE,
+  INDEX `ACT_IDX_TJOB_SCOPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_TJOB_SUB_SCOPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_TJOB_SCOPE_DEF`(`SCOPE_DEFINITION_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_FK_TIMER_JOB_EXECUTION`(`EXECUTION_ID_`) USING BTREE,
+  INDEX `ACT_FK_TIMER_JOB_PROCESS_INSTANCE`(`PROCESS_INSTANCE_ID_`) USING BTREE,
+  INDEX `ACT_FK_TIMER_JOB_PROC_DEF`(`PROC_DEF_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_TIMER_JOB_CUSTOM_VALUES` FOREIGN KEY (`CUSTOM_VALUES_ID_`) REFERENCES `ACT_GE_BYTEARRAY` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_TIMER_JOB_EXCEPTION` FOREIGN KEY (`EXCEPTION_STACK_ID_`) REFERENCES `ACT_GE_BYTEARRAY` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_TIMER_JOB_EXECUTION` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_TIMER_JOB_PROCESS_INSTANCE` FOREIGN KEY (`PROCESS_INSTANCE_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_TIMER_JOB_PROC_DEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `ACT_RE_PROCDEF` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+-- ----------------------------
+-- Table structure for ACT_RU_VARIABLE
+-- ----------------------------
+DROP TABLE IF EXISTS `ACT_RU_VARIABLE`;
+CREATE TABLE `ACT_RU_VARIABLE`  (
+  `ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `REV_` int(11) NULL DEFAULT NULL,
+  `TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `NAME_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
+  `EXECUTION_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `PROC_INST_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TASK_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `BYTEARRAY_ID_` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `DOUBLE_` double NULL DEFAULT NULL,
+  `LONG_` bigint(20) NULL DEFAULT NULL,
+  `TEXT_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  `TEXT2_` varchar(4000) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL,
+  PRIMARY KEY (`ID_`) USING BTREE,
+  INDEX `ACT_IDX_RU_VAR_SCOPE_ID_TYPE`(`SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_IDX_RU_VAR_SUB_ID_TYPE`(`SUB_SCOPE_ID_`, `SCOPE_TYPE_`) USING BTREE,
+  INDEX `ACT_FK_VAR_BYTEARRAY`(`BYTEARRAY_ID_`) USING BTREE,
+  INDEX `ACT_IDX_VARIABLE_TASK_ID`(`TASK_ID_`) USING BTREE,
+  INDEX `ACT_FK_VAR_EXE`(`EXECUTION_ID_`) USING BTREE,
+  INDEX `ACT_FK_VAR_PROCINST`(`PROC_INST_ID_`) USING BTREE,
+  CONSTRAINT `ACT_FK_VAR_BYTEARRAY` FOREIGN KEY (`BYTEARRAY_ID_`) REFERENCES `ACT_GE_BYTEARRAY` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_VAR_EXE` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT,
+  CONSTRAINT `ACT_FK_VAR_PROCINST` FOREIGN KEY (`PROC_INST_ID_`) REFERENCES `ACT_RU_EXECUTION` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin;
+
+SET FOREIGN_KEY_CHECKS = 1;
diff --git a/skjcmanager/doc/sql/mysql/bladex-saber-mysql.sql b/skjcmanager/doc/sql/mysql/bladex-saber-mysql.sql
new file mode 100644
index 0000000..b7901f3
--- /dev/null
+++ b/skjcmanager/doc/sql/mysql/bladex-saber-mysql.sql
@@ -0,0 +1,885 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : mysql_localhost
+ Source Server Type    : MySQL
+ Source Server Version : 50729
+ Source Host           : localhost:3306
+ Source Schema         : bladex
+
+ Target Server Type    : MySQL
+ Target Server Version : 50729
+ File Encoding         : 65001
+
+ Date: 07/08/2022 17:06:05
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for blade_attach
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_attach`;
+CREATE TABLE `blade_attach`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `link` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件地址',
+  `domain_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件域名',
+  `name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件名称',
+  `original_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件原名',
+  `extension` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件拓展名',
+  `attach_size` bigint(20) NULL DEFAULT NULL COMMENT '附件大小',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '附件表';
+
+-- ----------------------------
+-- Table structure for blade_client
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_client`;
+CREATE TABLE `blade_client`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `client_id` varchar(48) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端id',
+  `client_secret` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端密钥',
+  `resource_ids` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源集合',
+  `scope` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '授权范围',
+  `authorized_grant_types` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '授权类型',
+  `web_server_redirect_uri` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回调地址',
+  `authorities` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限',
+  `access_token_validity` int(11) NOT NULL COMMENT '令牌过期秒数',
+  `refresh_token_validity` int(11) NOT NULL COMMENT '刷新令牌过期秒数',
+  `additional_information` varchar(4096) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加说明',
+  `autoapprove` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '自动授权',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NOT NULL COMMENT '状态',
+  `is_deleted` int(2) NOT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '客户端表';
+
+-- ----------------------------
+-- Records of blade_client
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_client` VALUES (1123598811738675201, 'sword', 'sword_secret', NULL, 'all', 'refresh_token,password,authorization_code,captcha,social', 'http://localhost:8888', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2019-03-24 10:40:55', 1123598815738675201, '2019-03-24 10:40:59', 1, 0), (1123598811738675202, 'saber', 'saber_secret', NULL, 'all', 'refresh_token,password,authorization_code,captcha,social', 'http://localhost:1888', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2019-03-24 10:42:29', 1123598815738675201, '2019-03-24 10:42:32', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_code
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_code`;
+CREATE TABLE `blade_code`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `model_id` bigint(20) NULL DEFAULT NULL COMMENT '数据模型主键',
+  `service_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务名称',
+  `code_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模块名称',
+  `table_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表名',
+  `table_prefix` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表前缀',
+  `pk_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主键名',
+  `package_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '后端包名',
+  `template_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模版类型',
+  `author` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '作者信息',
+  `sub_model_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '子表模型主键',
+  `sub_fk_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '子表绑定外键',
+  `tree_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '树主键字段',
+  `tree_pid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '树父主键字段',
+  `tree_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '树名称字段',
+  `base_mode` int(2) NULL DEFAULT NULL COMMENT '基础业务模式',
+  `wrap_mode` int(2) NULL DEFAULT NULL COMMENT '包装器模式',
+  `feign_mode` int(2) NULL DEFAULT NULL COMMENT '远程调用模式',
+  `code_style` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '代码风格',
+  `api_path` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '后端路径',
+  `web_path` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '前端路径',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '代码生成表';
+
+-- ----------------------------
+-- Table structure for blade_datasource
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_datasource`;
+CREATE TABLE `blade_datasource`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
+  `driver_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '驱动类',
+  `url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '连接地址',
+  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
+  `password` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据源配置表';
+
+-- ----------------------------
+-- Records of blade_datasource
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_datasource` VALUES (1161483357481541634, 'mysql', 'com.mysql.cj.jdbc.Driver', 'jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true', 'root', 'root', 'mysql', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:06', 1123598821738675201, '2020-08-08 12:20:06', 1, 0), (1161483504353484802, 'postgresql', 'org.postgresql.Driver', 'jdbc:postgresql://127.0.0.1:5432/bladex', 'postgres', '123456', 'postgresql', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:02', 1123598821738675201, '2020-08-08 12:20:02', 1, 0), (1161483594023510018, 'oracle', 'oracle.jdbc.OracleDriver', 'jdbc:oracle:thin:@127.0.0.1:1521:orcl', 'BLADEX', 'BLADEX', 'oracle', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:03', 1123598821738675201, '2020-08-08 12:20:03', 1, 0), (1161483594023510020, 'sqlserver', 'com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex', 'bladex', 'bladex', 'sqlserver', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:03', 1123598821738675201, '2020-08-08 12:20:03', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_dept
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_dept`;
+CREATE TABLE `blade_dept`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父主键',
+  `ancestors` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '祖级列表',
+  `dept_category` int(2) NULL DEFAULT NULL COMMENT '部门类型',
+  `dept_name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门名',
+  `full_name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门全称',
+  `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '机构表';
+
+-- ----------------------------
+-- Records of blade_dept
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_dept` VALUES (1123598813738675201, '000000', 0, '0', 1, '布雷德科技', '上海布雷德科技有限公司', 1, NULL, 0), (1123598813738675202, '000000', 1123598813738675201, '0,1123598813738675201', 1, '常州布雷德', '常州布雷德科技有限公司', 1, NULL, 0), (1123598813738675203, '000000', 1123598813738675201, '0,1123598813738675201', 1, '苏州布雷德', '苏州布雷德科技有限公司', 1, NULL, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_dict
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_dict`;
+CREATE TABLE `blade_dict`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父主键',
+  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典码',
+  `dict_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典值',
+  `dict_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典名称',
+  `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典备注',
+  `is_sealed` int(2) NULL DEFAULT 0 COMMENT '是否已封存',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典表';
+
+-- ----------------------------
+-- Records of blade_dict
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_dict` VALUES (1123598814738675201, 0, 'sex', '-1', '性别', 1, NULL, 0, 0), (1123598814738675202, 1123598814738675201, 'sex', '1', '男', 1, NULL, 0, 0), (1123598814738675203, 1123598814738675201, 'sex', '2', '女', 2, NULL, 0, 0), (1123598814738675204, 0, 'notice', '-1', '通知类型', 2, NULL, 0, 0), (1123598814738675205, 1123598814738675204, 'notice', '1', '发布通知', 1, NULL, 0, 0), (1123598814738675206, 1123598814738675204, 'notice', '2', '批转通知', 2, NULL, 0, 0), (1123598814738675207, 1123598814738675204, 'notice', '3', '转发通知', 3, NULL, 0, 0), (1123598814738675208, 1123598814738675204, 'notice', '4', '指示通知', 4, NULL, 0, 0), (1123598814738675209, 1123598814738675204, 'notice', '5', '任免通知', 5, NULL, 0, 0), (1123598814738675210, 1123598814738675204, 'notice', '6', '事务通知', 6, NULL, 0, 0), (1123598814738675211, 0, 'menu_category', '-1', '菜单类型', 3, NULL, 0, 0), (1123598814738675212, 1123598814738675211, 'menu_category', '1', '菜单', 1, NULL, 0, 0), (1123598814738675213, 1123598814738675211, 'menu_category', '2', '按钮', 2, NULL, 0, 0), (1123598814738675214, 0, 'button_func', '-1', '按钮功能', 4, NULL, 0, 0), (1123598814738675215, 1123598814738675214, 'button_func', '1', '工具栏', 1, NULL, 0, 0), (1123598814738675216, 1123598814738675214, 'button_func', '2', '操作栏', 2, NULL, 0, 0), (1123598814738675217, 1123598814738675214, 'button_func', '3', '工具操作栏', 3, NULL, 0, 0), (1123598814738675218, 0, 'yes_no', '-1', '是否', 5, NULL, 0, 0), (1123598814738675219, 1123598814738675218, 'yes_no', '1', '否', 1, NULL, 0, 0), (1123598814738675220, 1123598814738675218, 'yes_no', '2', '是', 2, NULL, 0, 0), (1123598814738675221, 0, 'flow', '-1', '流程类型', 5, NULL, 0, 0), (1123598814738675222, 1123598814738675221, 'flow', '1', '请假流程', 1, 'leave', 0, 0), (1123598814738675223, 1123598814738675221, 'flow', '2', '报销流程', 2, 'expense', 0, 0), (1123598814738675227, 0, 'org_category', '-1', '机构类型', 7, NULL, 0, 0), (1123598814738675228, 1123598814738675227, 'org_category', '1', '公司', 1, NULL, 0, 0), (1123598814738675229, 1123598814738675227, 'org_category', '2', '部门', 2, NULL, 0, 0), (1123598814738675230, 1123598814738675227, 'org_category', '3', '小组', 3, NULL, 0, 0), (1123598814738675231, 0, 'data_scope_type', '-1', '数据权限', 8, NULL, 0, 0), (1123598814738675232, 1123598814738675231, 'data_scope_type', '1', '全部可见', 1, NULL, 0, 0), (1123598814738675233, 1123598814738675231, 'data_scope_type', '2', '本人可见', 2, NULL, 0, 0), (1123598814738675234, 1123598814738675231, 'data_scope_type', '3', '所在机构可见', 3, NULL, 0, 0), (1123598814738675235, 1123598814738675231, 'data_scope_type', '4', '所在机构及子级可见', 4, NULL, 0, 0), (1123598814738675236, 1123598814738675231, 'data_scope_type', '5', '自定义', 5, NULL, 0, 0), (1123598814738675237, 0, 'api_scope_type', '-1', '接口权限', 10, NULL, 0, 0), (1123598814738675238, 1123598814738675237, 'api_scope_type', '1', '系统接口', 1, NULL, 0, 0), (1123598814738675239, 1123598814738675237, 'api_scope_type', '2', '业务接口', 2, NULL, 0, 0), (1123598814738675240, 0, 'scope_category', '-1', '权限类型', 10, NULL, 0, 0), (1123598814738675241, 1123598814738675240, 'scope_category', '1', '数据权限', 1, NULL, 0, 0), (1123598814738675242, 1123598814738675240, 'scope_category', '2', '接口权限', 2, NULL, 0, 0), (1123598814738676224, 0, 'oss', '-1', '对象存储类型', 6, NULL, 0, 0), (1123598814738676225, 1123598814738676224, 'oss', '1', 'minio', 1, NULL, 0, 0), (1123598814738676226, 1123598814738676224, 'oss', '2', '七牛云', 2, NULL, 0, 0), (1123598814738676227, 1123598814738676224, 'oss', '3', '阿里云', 3, NULL, 0, 0), (1123598814738676228, 1123598814738676224, 'oss', '4', '腾讯云', 4, NULL, 0, 0), (1123598814738677220, 0, 'sms', '-1', '短信服务类型', 11, NULL, 0, 0), (1123598814738677221, 1123598814738677220, 'sms', '1', '云片', 1, NULL, 0, 0), (1123598814738677222, 1123598814738677220, 'sms', '2', '七牛云', 2, NULL, 0, 0), (1123598814738677223, 1123598814738677220, 'sms', '3', '阿里云', 3, NULL, 0, 0), (1123598814738677224, 1123598814738677220, 'sms', '4', '腾讯云', 4, NULL, 0, 0), (1123598814738777220, 0, 'post_category', '-1', '岗位类型', 12, NULL, 0, 0), (1123598814738777221, 1123598814738777220, 'post_category', '1', '高层', 1, NULL, 0, 0), (1123598814738777222, 1123598814738777220, 'post_category', '2', '中层', 2, NULL, 0, 0), (1123598814738777223, 1123598814738777220, 'post_category', '3', '基层', 3, NULL, 0, 0), (1123598814738777224, 1123598814738777220, 'post_category', '4', '其他', 4, NULL, 0, 0), (1123598814738777230, 0, 'region', '-1', '行政区划', 13, NULL, 0, 0), (1123598814738777231, 1123598814738777230, 'region', '0', '国家', 0, NULL, 0, 0), (1123598814738777232, 1123598814738777230, 'region', '1', '省份/直辖市', 1, NULL, 0, 0), (1123598814738777233, 1123598814738777230, 'region', '2', '地市', 2, NULL, 0, 0), (1123598814738777234, 1123598814738777230, 'region', '3', '区县', 3, NULL, 0, 0), (1123598814738777235, 1123598814738777230, 'region', '4', '乡镇', 4, NULL, 0, 0), (1123598814738777236, 1123598814738777230, 'region', '5', '村委', 5, NULL, 0, 0), (1123598814738778200, 0, 'user_type', '-1', '用户平台', 14, NULL, 0, 0), (1123598814738778201, 1123598814738778200, 'user_type', '1', 'WEB', 1, NULL, 0, 0), (1123598814738778202, 1123598814738778200, 'user_type', '2', 'APP', 2, NULL, 0, 0), (1123598814738778203, 1123598814738778200, 'user_type', '3', 'OTHER', 3, NULL, 0, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_dict_biz
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_dict_biz`;
+CREATE TABLE `blade_dict_biz`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户ID',
+  `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父主键',
+  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典码',
+  `dict_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典值',
+  `dict_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典名称',
+  `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典备注',
+  `is_sealed` int(2) NULL DEFAULT 0 COMMENT '是否已封存',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '业务字典表';
+
+-- ----------------------------
+-- Table structure for blade_log_api
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_log_api`;
+CREATE TABLE `blade_log_api`  (
+  `id` bigint(20) NOT NULL COMMENT '编号',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `service_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务ID',
+  `server_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器名',
+  `server_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器IP地址',
+  `env` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器环境',
+  `type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '日志类型',
+  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '日志标题',
+  `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作方式',
+  `request_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求URI',
+  `user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户代理',
+  `remote_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址',
+  `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类',
+  `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名',
+  `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '操作提交的数据',
+  `time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '执行时间',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '接口日志表';
+
+-- ----------------------------
+-- Table structure for blade_log_error
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_log_error`;
+CREATE TABLE `blade_log_error`  (
+  `id` bigint(20) NOT NULL COMMENT '编号',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `service_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务ID',
+  `server_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器名',
+  `server_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器IP地址',
+  `env` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '系统环境',
+  `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作方式',
+  `request_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求URI',
+  `user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户代理',
+  `stack_trace` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '堆栈',
+  `exception_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异常名',
+  `message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '异常信息',
+  `line_number` int(11) NULL DEFAULT NULL COMMENT '错误行数',
+  `remote_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址',
+  `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类',
+  `file_name` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件名',
+  `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名',
+  `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '操作提交的数据',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '错误日志表';
+
+-- ----------------------------
+-- Table structure for blade_log_usual
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_log_usual`;
+CREATE TABLE `blade_log_usual`  (
+  `id` bigint(20) NOT NULL COMMENT '编号',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `service_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务ID',
+  `server_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器名',
+  `server_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器IP地址',
+  `env` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '系统环境',
+  `log_level` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日志级别',
+  `log_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日志业务id',
+  `log_data` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '日志数据',
+  `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作方式',
+  `request_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求URI',
+  `remote_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址',
+  `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类',
+  `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名',
+  `user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户代理',
+  `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '操作提交的数据',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通用日志表';
+
+-- ----------------------------
+-- Table structure for blade_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_menu`;
+CREATE TABLE `blade_menu`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父级菜单',
+  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单编号',
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单名称',
+  `alias` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单别名',
+  `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求地址',
+  `source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单资源',
+  `sort` int(2) NULL DEFAULT NULL COMMENT '排序',
+  `category` int(2) NULL DEFAULT NULL COMMENT '菜单类型',
+  `action` int(2) NULL DEFAULT 0 COMMENT '操作按钮类型',
+  `is_open` int(2) NULL DEFAULT 1 COMMENT '是否打开新页面',
+  `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件地址',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单表';
+
+-- ----------------------------
+-- Records of blade_menu
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_menu` VALUES (1123598815738675201, 0, 'desk', '工作台', 'menu', '/desk', 'iconfont iconicon_airplay', 1, 1, 0, 1, '', NULL, 0), (1123598815738675202, 1123598815738675201, 'notice', '通知公告', 'menu', '/desk/notice', 'iconfont iconicon_sms', 1, 1, 0, 1, '', NULL, 0), (1123598815738675203, 0, 'system', '系统管理', 'menu', '/system', 'iconfont iconicon_setting', 99, 1, 0, 1, '', NULL, 0), (1123598815738675204, 1123598815738675203, 'user', '用户管理', 'menu', '/system/user', 'iconfont iconicon_principal', 1, 1, 0, 1, '', NULL, 0), (1123598815738675205, 1123598815738675203, 'dept', '机构管理', 'menu', '/system/dept', 'iconfont iconicon_group', 2, 1, 0, 1, '', NULL, 0), (1123598815738675206, 1123598815738675203, 'dict', '系统字典', 'menu', '/system/dict', 'iconfont iconicon_addresslist', 4, 1, 0, 1, '', NULL, 0), (1123598815738675207, 1123598815738675203, 'menu', '菜单管理', 'menu', '/system/menu', 'iconfont iconicon_subordinate', 6, 1, 0, 1, '', NULL, 0), (1123598815738675208, 1123598815738675203, 'topmenu', '顶部菜单', 'menu', '/system/topmenu', 'iconfont icon-canshu', 7, 1, 0, 1, '', NULL, 0), (1123598815738675209, 1123598815738675203, 'param', '参数管理', 'menu', '/system/param', 'iconfont iconicon_community_line', 8, 1, 0, 1, '', NULL, 0), (1123598815738675210, 0, 'monitor', '系统监控', 'menu', '/monitor', 'iconfont icon-yanzhengma', 3, 1, 0, 1, '', NULL, 0), (1123598815738675211, 1123598815738675210, 'doc', '接口文档', 'menu', 'http://localhost:18000/doc.html', 'iconfont iconicon_study', 1, 1, 0, 1, '', NULL, 0), (1123598815738675212, 1123598815738675210, 'admin', '服务治理', 'menu', 'http://localhost:7002', 'iconfont icon-canshu', 2, 1, 0, 1, '', NULL, 0), (1123598815738675213, 1123598815738675210, 'log', '日志管理', 'menu', '/monitor/log', 'iconfont iconicon_doc', 8, 1, 0, 1, '', NULL, 0), (1123598815738675214, 1123598815738675213, 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, 1, 1, 0, 1, '', NULL, 0), (1123598815738675215, 1123598815738675213, 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, 2, 1, 0, 1, '', NULL, 0), (1123598815738675216, 1123598815738675213, 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, 3, 1, 0, 1, '', NULL, 0), (1123598815738675217, 0, 'tool', '研发工具', 'menu', '/tool', 'iconfont icon-wxbgongju', 4, 1, 0, 1, '', NULL, 0), (1123598815738675218, 1123598815738675217, 'code', '代码生成', 'menu', '/tool/code', 'iconfont iconicon_savememo', 1, 1, 0, 1, '', NULL, 0), (1123598815738675219, 1123598815738675202, 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675220, 1123598815738675202, 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675221, 1123598815738675202, 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675222, 1123598815738675202, 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675223, 1123598815738675204, 'user_add', '新增', 'add', '/system/user/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675224, 1123598815738675204, 'user_edit', '修改', 'edit', '/system/user/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675225, 1123598815738675204, 'user_delete', '删除', 'delete', '/api/blade-user/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675226, 1123598815738675204, 'user_role', '角色配置', 'role', NULL, 'user-add', 4, 2, 1, 1, '', NULL, 0), (1123598815738675227, 1123598815738675204, 'user_reset', '密码重置', 'reset-password', '/api/blade-user/reset-password', 'retweet', 5, 2, 1, 1, '', NULL, 0), (1123598815738675228, 1123598815738675204, 'user_view', '查看', 'view', '/system/user/view', 'file-text', 6, 2, 2, 1, '', NULL, 0), (1123598815738675229, 1123598815738675205, 'dept_add', '新增', 'add', '/system/dept/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675230, 1123598815738675205, 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675231, 1123598815738675205, 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675232, 1123598815738675205, 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675233, 1123598815738675206, 'dict_add', '新增', 'add', '/system/dict/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675234, 1123598815738675206, 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675235, 1123598815738675206, 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675236, 1123598815738675206, 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675237, 1123598815738675207, 'menu_add', '新增', 'add', '/system/menu/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675238, 1123598815738675207, 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675239, 1123598815738675207, 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675240, 1123598815738675207, 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675241, 1123598815738675308, 'role_add', '新增', 'add', '/authority/role/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675242, 1123598815738675308, 'role_edit', '修改', 'edit', '/authority/role/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675243, 1123598815738675308, 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675244, 1123598815738675308, 'role_view', '查看', 'view', '/authority/role/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675245, 1123598815738675209, 'param_add', '新增', 'add', '/system/param/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675246, 1123598815738675209, 'param_edit', '修改', 'edit', '/system/param/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675247, 1123598815738675209, 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675248, 1123598815738675209, 'param_view', '查看', 'view', '/system/param/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675249, 1123598815738675214, 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675250, 1123598815738675215, 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675251, 1123598815738675216, 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675252, 1123598815738675218, 'code_add', '新增', 'add', '/tool/code/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675253, 1123598815738675218, 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675254, 1123598815738675218, 'code_delete', '删除', 'delete', '/api/blade-system/code/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675255, 1123598815738675218, 'code_view', '查看', 'view', '/tool/code/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675256, 1123598815738675203, 'tenant', '租户管理', 'menu', '/system/tenant', 'iconfont icon-quanxian', 9, 1, 0, 1, '', NULL, 0), (1123598815738675257, 1123598815738675256, 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675258, 1123598815738675256, 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675259, 1123598815738675256, 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675260, 1123598815738675256, 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675261, 1123598815738675203, 'client', '应用管理', 'menu', '/system/client', 'iconfont iconicon_mobilephone', 10, 1, 0, 1, '', NULL, 0), (1123598815738675262, 1123598815738675261, 'client_add', '新增', 'add', '/system/client/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675263, 1123598815738675261, 'client_edit', '修改', 'edit', '/system/client/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675264, 1123598815738675261, 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675265, 1123598815738675261, 'client_view', '查看', 'view', '/system/client/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675266, 0, 'flow', '流程管理', 'menu', '/flow', 'iconfont iconicon_send', 5, 1, 0, 1, '', NULL, 0), (1123598815738675267, 1123598815738675266, 'flow_model', '模型管理', 'menu', '/flow/model', 'iconfont iconicon_discovery', 1, 1, 0, 1, '', NULL, 0), (1123598815738675268, 1123598815738675267, 'flow_model_create', '创建', 'create', '', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675269, 1123598815738675267, 'flow_model_update', '编辑', 'update', '', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675270, 1123598815738675267, 'flow_model_deploy', '部署', 'deploy', '', 'cloud-upload', 3, 2, 2, 1, '', NULL, 0), (1123598815738675271, 1123598815738675267, 'flow_model_download', '下载', 'download', '', 'download', 4, 2, 2, 1, '', NULL, 0), (1123598815738675272, 1123598815738675267, 'flow_model_delete', '删除', 'delete', '/api/blade-flow/model/remove', 'delete', 5, 2, 3, 1, '', NULL, 0), (1123598815738675273, 1123598815738675266, 'flow_deploy', '流程部署', 'menu', '/flow/deploy', 'iconfont iconicon_cspace', 2, 1, 0, 1, '', NULL, 0), (1123598815738675274, 1123598815738675266, 'flow_manager', '流程管理', 'menu', '/flow/manager', 'iconfont iconicon_cloud_history', 3, 1, 0, 1, '', NULL, 0), (1123598815738675275, 1123598815738675274, 'flow_manager_state', '变更状态', 'state', '', 'plus', 1, 2, 2, 1, '', NULL, 0), (1123598815738675276, 1123598815738675274, 'flow_manager_image', '流程图', 'image', '', 'image', 2, 2, 2, 1, '', NULL, 0), (1123598815738675277, 1123598815738675274, 'flow_manager_remove', '删除', 'remove', '', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675278, 1123598815738675266, 'flow_follow', '流程跟踪', 'menu', '/flow/follow', 'iconfont iconicon_GPS', 4, 1, 0, 1, '', NULL, 0), (1123598815738675279, 1123598815738675278, 'flow_follow_delete', '删除', 'remove', '', 'remove', 1, 2, 2, 1, '', NULL, 0), (1123598815738675280, 0, 'work', '我的事务', 'menu', '/work', 'iconfont iconicon_notice', 2, 1, 0, 1, '', NULL, 0), (1123598815738675281, 1123598815738675280, 'work_start', '发起事务', 'menu', '/work/start', 'iconfont iconicon_compile', 1, 1, 0, 1, '', NULL, 0), (1123598815738675282, 1123598815738675281, 'work_start_flow', '发起', 'flow', '', 'flow', 1, 2, 2, 1, '', NULL, 0), (1123598815738675283, 1123598815738675281, 'work_start_image', '流程图', 'image', '', 'image', 2, 2, 2, 1, '', NULL, 0), (1123598815738675284, 1123598815738675280, 'work_claim', '待签事务', 'menu', '/work/claim', 'iconfont iconicon_ding', 2, 1, 0, 1, '', NULL, 0), (1123598815738675285, 1123598815738675284, 'work_claim_sign', '签收', 'sign', '', 'sign', 1, 2, 2, 1, '', NULL, 0), (1123598815738675286, 1123598815738675284, 'work_claim_detail', '详情', 'detail', '', 'detail', 2, 2, 2, 1, '', NULL, 0), (1123598815738675287, 1123598815738675284, 'work_claim_follow', '跟踪', 'follow', '', 'follow', 3, 2, 2, 1, '', NULL, 0), (1123598815738675288, 1123598815738675280, 'work_todo', '待办事务', 'menu', '/work/todo', 'iconfont iconicon_savememo', 2, 1, 0, 1, '', NULL, 0), (1123598815738675289, 1123598815738675288, 'work_todo_handle', '办理', 'handle', '', 'handle', 1, 2, 2, 1, '', NULL, 0), (1123598815738675290, 1123598815738675288, 'work_todo_detail', '详情', 'detail', '', 'detail', 2, 2, 2, 1, '', NULL, 0), (1123598815738675291, 1123598815738675288, 'work_todo_follow', '跟踪', 'follow', '', 'follow', 3, 2, 2, 1, '', NULL, 0), (1123598815738675292, 1123598815738675280, 'work_send', '已发事务', 'menu', '/work/send', 'iconfont iconicon_doc', 3, 1, 0, 1, '', NULL, 0), (1123598815738675293, 1123598815738675292, 'work_send_detail', '详情', 'detail', '', 'detail', 1, 2, 2, 1, '', NULL, 0), (1123598815738675294, 1123598815738675292, 'work_send_follow', '跟踪', 'follow', '', 'follow', 2, 2, 2, 1, '', NULL, 0), (1123598815738675295, 1123598815738675280, 'work_done', '办结事务', 'menu', '/work/done', 'iconfont iconicon_dispose', 4, 1, 0, 1, '', NULL, 0), (1123598815738675296, 1123598815738675295, 'work_done_detail', '详情', 'detail', '', 'detail', 1, 2, 2, 1, '', NULL, 0), (1123598815738675297, 1123598815738675295, 'work_done_follow', '跟踪', 'follow', '', 'follow', 2, 2, 2, 1, '', NULL, 0), (1123598815738675298, 0, 'resource', '资源管理', 'menu', '/resource', 'iconfont iconicon_coinpurse_line', 6, 1, 0, 1, '', NULL, 0), (1123598815738675299, 1123598815738675298, 'oss', '对象存储', 'menu', '/resource/oss', 'iconfont iconicon_subordinate', 1, 1, 0, 1, '', NULL, 0), (1123598815738675301, 1123598815738675299, 'oss_add', '新增', 'add', '/resource/oss/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675302, 1123598815738675299, 'oss_edit', '修改', 'edit', '/resource/oss/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675303, 1123598815738675299, 'oss_delete', '删除', 'delete', '/api/blade-resource/oss/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675304, 1123598815738675299, 'oss_view', '查看', 'view', '/resource/oss/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675305, 1123598815738675299, 'oss_enable', '启用', 'enable', '/api/blade-resource/oss/enable', 'key', 5, 2, 2, 1, '', NULL, 0), (1123598815738675307, 0, 'authority', '权限管理', 'menu', '/authority', 'iconfont icon-bofangqi-suoping', 98, 1, 0, 1, '', NULL, 0), (1123598815738675308, 1123598815738675307, 'role', '角色管理', 'menu', '/authority/role', 'iconfont iconicon_boss', 1, 1, 0, 1, '', NULL, 0), (1123598815738675309, 1123598815738675307, 'data_scope', '数据权限', 'menu', '/authority/datascope', 'iconfont icon-shujuzhanshi2', 2, 1, 0, 1, '', NULL, 0), (1123598815738675310, 1123598815738675309, 'data_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, '', NULL, 0), (1123598815738675311, 1123598815738675307, 'api_scope', '接口权限', 'menu', '/authority/apiscope', 'iconfont icon-iconset0216', 3, 1, 0, 1, '', NULL, 0), (1123598815738675312, 1123598815738675311, 'api_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, '', NULL, 0), (1123598815738675313, 1123598815738675208, 'topmenu_add', '新增', 'add', '/system/topmenu/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675314, 1123598815738675208, 'topmenu_edit', '修改', 'edit', '/system/topmenu/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675315, 1123598815738675208, 'topmenu_delete', '删除', 'delete', '/api/blade-system/topmenu/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675316, 1123598815738675208, 'topmenu_view', '查看', 'view', '/system/topmenu/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675317, 1123598815738675208, 'topmenu_setting', '菜单配置', 'setting', NULL, 'setting', 5, 2, 1, 1, '', NULL, 0), (1161272593873321991, 1123598815738675217, 'datasource', '数据源管理', 'menu', '/tool/datasource', 'iconfont icon-caidanguanli', 2, 1, 0, 1, '', NULL, 0), (1161272593873321992, 1161272593873321991, 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1161272593873321993, 1161272593873321991, 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1161272593873321994, 1161272593873321991, 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1161272593873321995, 1161272593873321991, 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1161272593873321996, 1123598815738675217, 'model', '数据模型设计', 'menu', '/tool/model', 'iconfont icon-biaodan', 3, 1, 0, 1, '', '', 0), (1164733369658963251, 1123598815738675210, 'elk', 'ELK监控', 'menu', 'http://localhost:5601/', 'iconfont iconicon_cspace', 3, 1, 0, 1, '', NULL, 0), (1164733369658963252, 1123598815738675210, 'zipkin', 'Zipkin监控', 'menu', 'http://localhost:9411/', 'iconfont iconicon_task', 4, 1, 0, 1, '', NULL, 0), (1164733369658963253, 1123598815738675210, 'turbine', 'Turbine监控', 'menu', 'http://localhost:7003/hystrix', 'iconfont iconicon_subordinate', 5, 1, 0, 1, '', NULL, 0), (1164733369658963254, 1123598815738675210, 'sentinel', 'Sentinel管理', 'menu', 'http://localhost:8858', 'iconfont iconicon_safety', 6, 1, 0, 1, '', NULL, 0), (1164733369658963255, 1123598815738675210, 'es', 'Elasticsearch管理', 'menu', 'http://localhost:9100/', 'iconfont iconfont iconicon_search', 7, 1, 0, 1, '', NULL, 0), (1164733379658963251, 1123598815738675203, 'dictbiz', '业务字典', 'menu', '/system/dictbiz', 'iconfont iconicon_study', 5, 1, 0, 1, '', NULL, 0), (1164733379658963252, 1164733379658963251, 'dictbiz_add', '新增', 'add', '/system/dictbiz/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1164733379658963253, 1164733379658963251, 'dictbiz_edit', '修改', 'edit', '/system/dictbiz/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1164733379658963254, 1164733379658963251, 'dictbiz_delete', '删除', 'delete', '/api/blade-system/dict-biz/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1164733379658963255, 1164733379658963251, 'dictbiz_view', '查看', 'view', '/system/dictbiz/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1164733389658962251, 1123598815738675298, 'sms', '短信配置', 'menu', '/resource/sms', 'iconfont iconicon_message', 3, 1, 0, 1, '', NULL, 0), (1164733389658962252, 1164733389658962251, 'sms_add', '新增', 'add', '/resource/sms/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1164733389658962253, 1164733389658962251, 'sms_edit', '修改', 'edit', '/resource/sms/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1164733389658962254, 1164733389658962251, 'sms_delete', '删除', 'delete', '/api/blade-resource/sms/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1164733389658962255, 1164733389658962251, 'sms_view', '查看', 'view', '/resource/sms/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1164733389658962256, 1164733389658962251, 'sms_enable', '启用', 'enable', '/api/blade-resource/sms/enable', 'key', 5, 2, 2, 1, '', NULL, 0), (1164733389658963251, 1123598815738675298, 'xxljob', '任务调度', 'menu', 'http://localhost:7009/xxl-job-admin', 'iconfont iconicon_cspace', 5, 1, 0, 1, '', NULL, 0), (1164733389668962251, 1123598815738675203, 'post', '岗位管理', 'menu', '/system/post', 'iconfont iconicon_message', 3, 1, 0, 1, '', NULL, 0), (1164733389668962252, 1164733389668962251, 'post_add', '新增', 'add', '/system/post/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1164733389668962253, 1164733389668962251, 'post_edit', '修改', 'edit', '/system/post/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1164733389668962254, 1164733389668962251, 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1164733389668962255, 1164733389668962251, 'post_view', '查看', 'view', '/system/post/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1164733399668962201, 0, 'base', '基础配置', 'menu', '/base', 'iconfont iconicon_affiliations_li', 97, 1, 0, 1, '', NULL, 0), (1164733399668962202, 1164733399668962201, 'region', '行政区划', 'menu', '/base/region', 'iconfont icon-iframe', 1, 1, 0, 1, '', NULL, 0), (1164733399668962203, 1164733399668962202, 'region_add', '新增下级', 'add', '', '', 1, 2, 1, 1, '', NULL, 0), (1164733399668962204, 1164733399668962202, 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', '', 2, 2, 2, 1, '', NULL, 0), (1164733399668962205, 1164733399668962202, 'region_import', '导入', 'import', '', '', 3, 2, 3, 1, '', NULL, 0), (1164733399668962206, 1164733399668962202, 'region_export', '导出', 'export', '', '', 4, 2, 2, 1, '', NULL, 0), (1164733399668962207, 1164733399668962202, 'region_debug', '调试', 'debug', '', '', 5, 2, 2, 1, '', NULL, 0), (1164733399669962201, 1123598815738675298, 'attach', '附件管理', 'menu', '/resource/attach', 'iconfont iconicon_ding', 2, 1, 0, 1, '', NULL, 0), (1164733399669962202, 1164733399669962201, 'attach_upload', '上传', 'upload', '/resource/attach/upload', '', 1, 2, 1, 1, '', NULL, 0), (1164733399669962203, 1164733399669962201, 'attach_download', '下载', 'download', '/resource/attach/download', '', 2, 2, 2, 1, '', NULL, 0), (1164733399669962204, 1164733399669962201, 'attach_delete', '删除', 'delete', '/api/blade-resource/attach/remove', '', 3, 2, 3, 1, '', NULL, 0), (1164733399669962301, 0, 'report', '报表管理', 'menu', '/report', 'iconfont icon-shujuzhanshi2', 5, 1, 0, 1, '', NULL, 0), (1164733399669962302, 1164733399669962301, 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', 'iconfont icon-rizhi', 1, 1, 0, 1, '', NULL, 0), (1164733399669962303, 1164733399669962301, 'report_list', '报表列表', 'menu', '/report/reportlist', 'iconfont icon-biaodan', 2, 1, 0, 1, '', NULL, 0), (1164733399669962304, 1164733399669962301, 'report_notice', '公告报表', 'menu', 'http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml', 'iconfont iconicon_sms', 3, 1, 0, 1, '', NULL, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_model
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_model`;
+CREATE TABLE `blade_model`  (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `datasource_id` bigint(20) NULL DEFAULT NULL COMMENT '数据源主键',
+  `model_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型名称',
+  `model_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型编号',
+  `model_table` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物理表名',
+  `model_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型类名',
+  `model_remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据模型表';
+
+-- ----------------------------
+-- Table structure for blade_model_prototype
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_model_prototype`;
+CREATE TABLE `blade_model_prototype`  (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `model_id` bigint(20) NULL DEFAULT NULL COMMENT '模型主键',
+  `jdbc_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物理列名',
+  `jdbc_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物理类型',
+  `comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '注释说明',
+  `property_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实体类型',
+  `property_entity` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实体类型引用',
+  `property_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实体列名',
+  `is_list` int(2) NULL DEFAULT NULL COMMENT '列表显示',
+  `is_form` int(2) NULL DEFAULT NULL COMMENT '表单显示',
+  `is_row` int(2) NULL DEFAULT NULL COMMENT '独占一行',
+  `component_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件类型',
+  `dict_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典编码',
+  `is_required` int(2) NULL DEFAULT NULL COMMENT '是否必填',
+  `is_query` int(2) NULL DEFAULT NULL COMMENT '查询配置',
+  `query_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '查询配置',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据原型表';
+
+-- ----------------------------
+-- Table structure for blade_notice
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_notice`;
+CREATE TABLE `blade_notice`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
+  `category` int(11) NULL DEFAULT NULL COMMENT '类型',
+  `release_time` datetime(0) NULL DEFAULT NULL COMMENT '发布时间',
+  `content` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '内容',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通知公告表';
+
+-- ----------------------------
+-- Records of blade_notice
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_notice` VALUES (1123598818738675223, '000000', '测试公告', 3, '2018-12-31 20:03:31', '222', 1123598821738675201, 1123598813738675201, '2018-12-05 20:03:31', 1123598821738675201, '2018-12-28 11:10:51', 1, 0), (1123598818738675224, '000000', '测试公告2', 1, '2018-12-05 20:03:31', '333', 1123598821738675201, 1123598813738675201, '2018-12-28 10:32:26', 1123598821738675201, '2018-12-28 11:10:34', 1, 0), (1123598818738675225, '000000', '测试公告3', 6, '2018-12-29 00:00:00', '11111', 1123598821738675201, 1123598813738675201, '2018-12-28 11:03:44', 1123598821738675201, '2018-12-28 11:10:28', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_oss
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_oss`;
+CREATE TABLE `blade_oss`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `category` int(2) NULL DEFAULT NULL COMMENT '分类',
+  `oss_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源编号',
+  `endpoint` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源地址',
+  `access_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'accessKey',
+  `secret_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'secretKey',
+  `bucket_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '空间名',
+  `app_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用ID',
+  `region` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地域简称',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '对象存储表';
+
+-- ----------------------------
+-- Records of blade_oss
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_oss` VALUES (1132486733992468482, '000000', 1, 'minio', 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:20:52', 1123598821738675201, '2019-05-27 08:34:55', 2, 0), (1132487155981393922, '000000', 2, 'qiniu', 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:22:33', 1123598821738675201, '2019-05-26 23:27:56', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_param
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_param`;
+CREATE TABLE `blade_param`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `param_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名',
+  `param_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数键',
+  `param_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数值',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '参数表';
+
+-- ----------------------------
+-- Records of blade_param
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_param` VALUES (1123598819738675201, '是否开启注册功能', 'account.registerUser', 'true', '开启注册', 1123598821738675201, 1123598813738675201, '2018-12-28 12:19:01', 1123598821738675201, '2018-12-28 12:19:01', 1, 0), (1123598819738675202, '账号初始密码', 'account.initPassword', '123456', '初始密码', 1123598821738675201, 1123598813738675201, '2018-12-28 12:19:01', 1123598821738675201, '2018-12-28 12:19:01', 1, 0), (1123598819738675203, '账号错误锁定次数', 'account.failCount', '5', '锁定次数', 1123598821738675201, 1123598813738675201, '2021-12-01 12:00:00', 1123598821738675201, '2021-12-01 12:00:00', 1, 0), (1238706101399142402, '租户默认管理密码', 'tenant.default.password', 'admin', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:58:43', 1123598821738675201, '2020-03-14 13:58:43', 1, 0), (1238706160295559170, '租户默认账号额度', 'tenant.default.accountNumber', '100', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:58:57', 1123598821738675201, '2020-03-14 13:58:57', 1, 0), (1238706330076790786, '租户默认菜单集合', 'tenant.default.menuCode', 'desk,flow,work,monitor,resource,role,user,dept,post,dictbiz,topmenu', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:59:38', 1123598821738675201, '2020-03-14 13:59:38', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_post
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_post`;
+CREATE TABLE `blade_post`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `category` int(11) NULL DEFAULT NULL COMMENT '岗位类型',
+  `post_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位编号',
+  `post_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位名称',
+  `sort` int(2) NULL DEFAULT NULL COMMENT '岗位排序',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位描述',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '岗位表';
+
+-- ----------------------------
+-- Records of blade_post
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_post` VALUES (1123598817738675201, '000000', 1, 'ceo', '首席执行官', 1, '总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675202, '000000', 1, 'coo', '首席运营官', 2, '常务总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675203, '000000', 1, 'cfo', '首席财务官', 3, '财务总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675204, '000000', 1, 'cto', '首席技术官', 4, '技术总监', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675205, '000000', 1, 'cio', '首席信息官', 5, '信息总监', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675206, '000000', 2, 'pm', '技术经理', 6, '研发和产品是永远的朋友', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675207, '000000', 2, 'hrm', '人力经理', 7, '人力资源部门工作管理者', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675208, '000000', 3, 'staff', '普通员工', 8, '普通员工', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_process_leave
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_process_leave`;
+CREATE TABLE `blade_process_leave`  (
+  `id` bigint(20) NOT NULL COMMENT '编号',
+  `process_definition_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程定义主键',
+  `process_instance_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程实例主键',
+  `start_time` datetime(0) NULL DEFAULT NULL COMMENT '开始时间',
+  `end_time` datetime(0) NULL DEFAULT NULL COMMENT '结束时间',
+  `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请假理由',
+  `task_user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第一级审批人',
+  `apply_time` datetime(0) NULL DEFAULT NULL COMMENT '申请时间',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '流程请假业务表';
+
+-- ----------------------------
+-- Table structure for blade_region
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_region`;
+CREATE TABLE `blade_region`  (
+  `code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '区划编号',
+  `parent_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '父区划编号',
+  `ancestors` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '祖区划编号',
+  `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区划名称',
+  `province_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '省级区划编号',
+  `province_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '省级名称',
+  `city_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '市级区划编号',
+  `city_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '市级名称',
+  `district_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区级区划编号',
+  `district_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区级名称',
+  `town_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '镇级区划编号',
+  `town_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '镇级名称',
+  `village_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '村级区划编号',
+  `village_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '村级名称',
+  `region_level` int(2) NULL DEFAULT NULL COMMENT '层级',
+  `sort` int(2) NULL DEFAULT NULL COMMENT '排序',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`code`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '行政区划表';
+
+-- ----------------------------
+-- Records of blade_region
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_region` VALUES ('00', '0', '0', '中华人民共和国', '', '', '', '', '', '', '', '', '', '', 0, 1, ''), ('11', '00', '00', '北京市', '11', '北京市', '', '', '', '', '', '', '', '', 1, 1, ''), ('1101', '11', '00,11', '北京市', '11', '北京市', '1101', '北京市', '', '', '', '', '', '', 2, 1, ''), ('110101', '1101', '00,11,1101', '东城区', '11', '北京市', '1101', '北京市', '110101', '东城区', '', '', '', '', 3, 1, ''), ('110102', '1101', '00,11,1101', '西城区', '11', '北京市', '1101', '北京市', '110102', '西城区', '', '', '', '', 3, 1, ''), ('110105', '1101', '00,11,1101', '朝阳区', '11', '北京市', '1101', '北京市', '110105', '朝阳区', '', '', '', '', 3, 1, ''), ('110106', '1101', '00,11,1101', '丰台区', '11', '北京市', '1101', '北京市', '110106', '丰台区', '', '', '', '', 3, 1, ''), ('110107', '1101', '00,11,1101', '石景山区', '11', '北京市', '1101', '北京市', '110107', '石景山区', '', '', '', '', 3, 1, ''), ('110108', '1101', '00,11,1101', '海淀区', '11', '北京市', '1101', '北京市', '110108', '海淀区', '', '', '', '', 3, 1, ''), ('110109', '1101', '00,11,1101', '门头沟区', '11', '北京市', '1101', '北京市', '110109', '门头沟区', '', '', '', '', 3, 1, ''), ('110111', '1101', '00,11,1101', '房山区', '11', '北京市', '1101', '北京市', '110111', '房山区', '', '', '', '', 3, 1, ''), ('110112', '1101', '00,11,1101', '通州区', '11', '北京市', '1101', '北京市', '110112', '通州区', '', '', '', '', 3, 1, ''), ('110113', '1101', '00,11,1101', '顺义区', '11', '北京市', '1101', '北京市', '110113', '顺义区', '', '', '', '', 3, 1, ''), ('110114', '1101', '00,11,1101', '昌平区', '11', '北京市', '1101', '北京市', '110114', '昌平区', '', '', '', '', 3, 1, ''), ('110115', '1101', '00,11,1101', '大兴区', '11', '北京市', '1101', '北京市', '110115', '大兴区', '', '', '', '', 3, 1, ''), ('110116', '1101', '00,11,1101', '怀柔区', '11', '北京市', '1101', '北京市', '110116', '怀柔区', '', '', '', '', 3, 1, ''), ('110117', '1101', '00,11,1101', '平谷区', '11', '北京市', '1101', '北京市', '110117', '平谷区', '', '', '', '', 3, 1, ''), ('110118', '1101', '00,11,1101', '密云区', '11', '北京市', '1101', '北京市', '110118', '密云区', '', '', '', '', 3, 1, ''), ('110119', '1101', '00,11,1101', '延庆区', '11', '北京市', '1101', '北京市', '110119', '延庆区', '', '', '', '', 3, 1, ''), ('12', '00', '00', '天津市', '12', '天津市', '', '', '', '', '', '', '', '', 1, 1, ''), ('1201', '12', '00,12', '天津市', '12', '天津市', '1201', '天津市', '', '', '', '', '', '', 2, 1, ''), ('120101', '1201', '00,12,1201', '和平区', '12', '天津市', '1201', '天津市', '120101', '和平区', '', '', '', '', 3, 1, ''), ('120102', '1201', '00,12,1201', '河东区', '12', '天津市', '1201', '天津市', '120102', '河东区', '', '', '', '', 3, 1, ''), ('120103', '1201', '00,12,1201', '河西区', '12', '天津市', '1201', '天津市', '120103', '河西区', '', '', '', '', 3, 1, ''), ('120104', '1201', '00,12,1201', '南开区', '12', '天津市', '1201', '天津市', '120104', '南开区', '', '', '', '', 3, 1, ''), ('120105', '1201', '00,12,1201', '河北区', '12', '天津市', '1201', '天津市', '120105', '河北区', '', '', '', '', 3, 1, ''), ('120106', '1201', '00,12,1201', '红桥区', '12', '天津市', '1201', '天津市', '120106', '红桥区', '', '', '', '', 3, 1, ''), ('120110', '1201', '00,12,1201', '东丽区', '12', '天津市', '1201', '天津市', '120110', '东丽区', '', '', '', '', 3, 1, ''), ('120111', '1201', '00,12,1201', '西青区', '12', '天津市', '1201', '天津市', '120111', '西青区', '', '', '', '', 3, 1, ''), ('120112', '1201', '00,12,1201', '津南区', '12', '天津市', '1201', '天津市', '120112', '津南区', '', '', '', '', 3, 1, ''), ('120113', '1201', '00,12,1201', '北辰区', '12', '天津市', '1201', '天津市', '120113', '北辰区', '', '', '', '', 3, 1, ''), ('120114', '1201', '00,12,1201', '武清区', '12', '天津市', '1201', '天津市', '120114', '武清区', '', '', '', '', 3, 1, ''), ('120115', '1201', '00,12,1201', '宝坻区', '12', '天津市', '1201', '天津市', '120115', '宝坻区', '', '', '', '', 3, 1, ''), ('120116', '1201', '00,12,1201', '滨海新区', '12', '天津市', '1201', '天津市', '120116', '滨海新区', '', '', '', '', 3, 1, ''), ('120117', '1201', '00,12,1201', '宁河区', '12', '天津市', '1201', '天津市', '120117', '宁河区', '', '', '', '', 3, 1, ''), ('120118', '1201', '00,12,1201', '静海区', '12', '天津市', '1201', '天津市', '120118', '静海区', '', '', '', '', 3, 1, ''), ('120119', '1201', '00,12,1201', '蓟州区', '12', '天津市', '1201', '天津市', '120119', '蓟州区', '', '', '', '', 3, 1, ''), ('13', '00', '00', '河北省', '13', '河北省', '', '', '', '', '', '', '', '', 1, 1, ''), ('1301', '13', '00,13', '石家庄市', '13', '河北省', '1301', '石家庄市', '', '', '', '', '', '', 2, 1, ''), ('130102', '1301', '00,13,1301', '长安区', '13', '河北省', '1301', '石家庄市', '130102', '长安区', '', '', '', '', 3, 1, ''), ('130104', '1301', '00,13,1301', '桥西区', '13', '河北省', '1301', '石家庄市', '130104', '桥西区', '', '', '', '', 3, 1, ''), ('130105', '1301', '00,13,1301', '新华区', '13', '河北省', '1301', '石家庄市', '130105', '新华区', '', '', '', '', 3, 1, ''), ('130107', '1301', '00,13,1301', '井陉矿区', '13', '河北省', '1301', '石家庄市', '130107', '井陉矿区', '', '', '', '', 3, 1, ''), ('130108', '1301', '00,13,1301', '裕华区', '13', '河北省', '1301', '石家庄市', '130108', '裕华区', '', '', '', '', 3, 1, ''), ('130109', '1301', '00,13,1301', '藁城区', '13', '河北省', '1301', '石家庄市', '130109', '藁城区', '', '', '', '', 3, 1, ''), ('130110', '1301', '00,13,1301', '鹿泉区', '13', '河北省', '1301', '石家庄市', '130110', '鹿泉区', '', '', '', '', 3, 1, ''), ('130111', '1301', '00,13,1301', '栾城区', '13', '河北省', '1301', '石家庄市', '130111', '栾城区', '', '', '', '', 3, 1, ''), ('130121', '1301', '00,13,1301', '井陉县', '13', '河北省', '1301', '石家庄市', '130121', '井陉县', '', '', '', '', 3, 1, ''), ('130123', '1301', '00,13,1301', '正定县', '13', '河北省', '1301', '石家庄市', '130123', '正定县', '', '', '', '', 3, 1, ''), ('130125', '1301', '00,13,1301', '行唐县', '13', '河北省', '1301', '石家庄市', '130125', '行唐县', '', '', '', '', 3, 1, ''), ('130126', '1301', '00,13,1301', '灵寿县', '13', '河北省', '1301', '石家庄市', '130126', '灵寿县', '', '', '', '', 3, 1, ''), ('130127', '1301', '00,13,1301', '高邑县', '13', '河北省', '1301', '石家庄市', '130127', '高邑县', '', '', '', '', 3, 1, ''), ('130128', '1301', '00,13,1301', '深泽县', '13', '河北省', '1301', '石家庄市', '130128', '深泽县', '', '', '', '', 3, 1, ''), ('130129', '1301', '00,13,1301', '赞皇县', '13', '河北省', '1301', '石家庄市', '130129', '赞皇县', '', '', '', '', 3, 1, ''), ('130130', '1301', '00,13,1301', '无极县', '13', '河北省', '1301', '石家庄市', '130130', '无极县', '', '', '', '', 3, 1, ''), ('130131', '1301', '00,13,1301', '平山县', '13', '河北省', '1301', '石家庄市', '130131', '平山县', '', '', '', '', 3, 1, ''), ('130132', '1301', '00,13,1301', '元氏县', '13', '河北省', '1301', '石家庄市', '130132', '元氏县', '', '', '', '', 3, 1, ''), ('130133', '1301', '00,13,1301', '赵县', '13', '河北省', '1301', '石家庄市', '130133', '赵县', '', '', '', '', 3, 1, ''), ('130181', '1301', '00,13,1301', '辛集市', '13', '河北省', '1301', '石家庄市', '130181', '辛集市', '', '', '', '', 3, 1, ''), ('130183', '1301', '00,13,1301', '晋州市', '13', '河北省', '1301', '石家庄市', '130183', '晋州市', '', '', '', '', 3, 1, ''), ('130184', '1301', '00,13,1301', '新乐市', '13', '河北省', '1301', '石家庄市', '130184', '新乐市', '', '', '', '', 3, 1, ''), ('1302', '13', '00,13', '唐山市', '13', '河北省', '1302', '唐山市', '', '', '', '', '', '', 2, 1, ''), ('130202', '1302', '00,13,1302', '路南区', '13', '河北省', '1302', '唐山市', '130202', '路南区', '', '', '', '', 3, 1, ''), ('130203', '1302', '00,13,1302', '路北区', '13', '河北省', '1302', '唐山市', '130203', '路北区', '', '', '', '', 3, 1, ''), ('130204', '1302', '00,13,1302', '古冶区', '13', '河北省', '1302', '唐山市', '130204', '古冶区', '', '', '', '', 3, 1, ''), ('130205', '1302', '00,13,1302', '开平区', '13', '河北省', '1302', '唐山市', '130205', '开平区', '', '', '', '', 3, 1, ''), ('130207', '1302', '00,13,1302', '丰南区', '13', '河北省', '1302', '唐山市', '130207', '丰南区', '', '', '', '', 3, 1, ''), ('130208', '1302', '00,13,1302', '丰润区', '13', '河北省', '1302', '唐山市', '130208', '丰润区', '', '', '', '', 3, 1, ''), ('130209', '1302', '00,13,1302', '曹妃甸区', '13', '河北省', '1302', '唐山市', '130209', '曹妃甸区', '', '', '', '', 3, 1, ''), ('130224', '1302', '00,13,1302', '滦南县', '13', '河北省', '1302', '唐山市', '130224', '滦南县', '', '', '', '', 3, 1, ''), ('130225', '1302', '00,13,1302', '乐亭县', '13', '河北省', '1302', '唐山市', '130225', '乐亭县', '', '', '', '', 3, 1, ''), ('130227', '1302', '00,13,1302', '迁西县', '13', '河北省', '1302', '唐山市', '130227', '迁西县', '', '', '', '', 3, 1, ''), ('130229', '1302', '00,13,1302', '玉田县', '13', '河北省', '1302', '唐山市', '130229', '玉田县', '', '', '', '', 3, 1, ''), ('130281', '1302', '00,13,1302', '遵化市', '13', '河北省', '1302', '唐山市', '130281', '遵化市', '', '', '', '', 3, 1, ''), ('130283', '1302', '00,13,1302', '迁安市', '13', '河北省', '1302', '唐山市', '130283', '迁安市', '', '', '', '', 3, 1, ''), ('130284', '1302', '00,13,1302', '滦州市', '13', '河北省', '1302', '唐山市', '130284', '滦州市', '', '', '', '', 3, 1, ''), ('1303', '13', '00,13', '秦皇岛市', '13', '河北省', '1303', '秦皇岛市', '', '', '', '', '', '', 2, 1, ''), ('130302', '1303', '00,13,1303', '海港区', '13', '河北省', '1303', '秦皇岛市', '130302', '海港区', '', '', '', '', 3, 1, ''), ('130303', '1303', '00,13,1303', '山海关区', '13', '河北省', '1303', '秦皇岛市', '130303', '山海关区', '', '', '', '', 3, 1, ''), ('130304', '1303', '00,13,1303', '北戴河区', '13', '河北省', '1303', '秦皇岛市', '130304', '北戴河区', '', '', '', '', 3, 1, ''), ('130306', '1303', '00,13,1303', '抚宁区', '13', '河北省', '1303', '秦皇岛市', '130306', '抚宁区', '', '', '', '', 3, 1, ''), ('130321', '1303', '00,13,1303', '青龙满族自治县', '13', '河北省', '1303', '秦皇岛市', '130321', '青龙满族自治县', '', '', '', '', 3, 1, ''), ('130322', '1303', '00,13,1303', '昌黎县', '13', '河北省', '1303', '秦皇岛市', '130322', '昌黎县', '', '', '', '', 3, 1, ''), ('130324', '1303', '00,13,1303', '卢龙县', '13', '河北省', '1303', '秦皇岛市', '130324', '卢龙县', '', '', '', '', 3, 1, ''), ('1304', '13', '00,13', '邯郸市', '13', '河北省', '1304', '邯郸市', '', '', '', '', '', '', 2, 1, ''), ('130402', '1304', '00,13,1304', '邯山区', '13', '河北省', '1304', '邯郸市', '130402', '邯山区', '', '', '', '', 3, 1, ''), ('130403', '1304', '00,13,1304', '丛台区', '13', '河北省', '1304', '邯郸市', '130403', '丛台区', '', '', '', '', 3, 1, ''), ('130404', '1304', '00,13,1304', '复兴区', '13', '河北省', '1304', '邯郸市', '130404', '复兴区', '', '', '', '', 3, 1, ''), ('130406', '1304', '00,13,1304', '峰峰矿区', '13', '河北省', '1304', '邯郸市', '130406', '峰峰矿区', '', '', '', '', 3, 1, ''), ('130407', '1304', '00,13,1304', '肥乡区', '13', '河北省', '1304', '邯郸市', '130407', '肥乡区', '', '', '', '', 3, 1, ''), ('130408', '1304', '00,13,1304', '永年区', '13', '河北省', '1304', '邯郸市', '130408', '永年区', '', '', '', '', 3, 1, ''), ('130423', '1304', '00,13,1304', '临漳县', '13', '河北省', '1304', '邯郸市', '130423', '临漳县', '', '', '', '', 3, 1, ''), ('130424', '1304', '00,13,1304', '成安县', '13', '河北省', '1304', '邯郸市', '130424', '成安县', '', '', '', '', 3, 1, ''), ('130425', '1304', '00,13,1304', '大名县', '13', '河北省', '1304', '邯郸市', '130425', '大名县', '', '', '', '', 3, 1, ''), ('130426', '1304', '00,13,1304', '涉县', '13', '河北省', '1304', '邯郸市', '130426', '涉县', '', '', '', '', 3, 1, ''), ('130427', '1304', '00,13,1304', '磁县', '13', '河北省', '1304', '邯郸市', '130427', '磁县', '', '', '', '', 3, 1, ''), ('130430', '1304', '00,13,1304', '邱县', '13', '河北省', '1304', '邯郸市', '130430', '邱县', '', '', '', '', 3, 1, ''), ('130431', '1304', '00,13,1304', '鸡泽县', '13', '河北省', '1304', '邯郸市', '130431', '鸡泽县', '', '', '', '', 3, 1, ''), ('130432', '1304', '00,13,1304', '广平县', '13', '河北省', '1304', '邯郸市', '130432', '广平县', '', '', '', '', 3, 1, ''), ('130433', '1304', '00,13,1304', '馆陶县', '13', '河北省', '1304', '邯郸市', '130433', '馆陶县', '', '', '', '', 3, 1, ''), ('130434', '1304', '00,13,1304', '魏县', '13', '河北省', '1304', '邯郸市', '130434', '魏县', '', '', '', '', 3, 1, ''), ('130435', '1304', '00,13,1304', '曲周县', '13', '河北省', '1304', '邯郸市', '130435', '曲周县', '', '', '', '', 3, 1, ''), ('130481', '1304', '00,13,1304', '武安市', '13', '河北省', '1304', '邯郸市', '130481', '武安市', '', '', '', '', 3, 1, ''), ('1305', '13', '00,13', '邢台市', '13', '河北省', '1305', '邢台市', '', '', '', '', '', '', 2, 1, ''), ('130502', '1305', '00,13,1305', '桥东区', '13', '河北省', '1305', '邢台市', '130502', '桥东区', '', '', '', '', 3, 1, ''), ('130503', '1305', '00,13,1305', '桥西区', '13', '河北省', '1305', '邢台市', '130503', '桥西区', '', '', '', '', 3, 1, ''), ('130521', '1305', '00,13,1305', '邢台县', '13', '河北省', '1305', '邢台市', '130521', '邢台县', '', '', '', '', 3, 1, ''), ('130522', '1305', '00,13,1305', '临城县', '13', '河北省', '1305', '邢台市', '130522', '临城县', '', '', '', '', 3, 1, ''), ('130523', '1305', '00,13,1305', '内丘县', '13', '河北省', '1305', '邢台市', '130523', '内丘县', '', '', '', '', 3, 1, ''), ('130524', '1305', '00,13,1305', '柏乡县', '13', '河北省', '1305', '邢台市', '130524', '柏乡县', '', '', '', '', 3, 1, ''), ('130525', '1305', '00,13,1305', '隆尧县', '13', '河北省', '1305', '邢台市', '130525', '隆尧县', '', '', '', '', 3, 1, ''), ('130526', '1305', '00,13,1305', '任县', '13', '河北省', '1305', '邢台市', '130526', '任县', '', '', '', '', 3, 1, ''), ('130527', '1305', '00,13,1305', '南和县', '13', '河北省', '1305', '邢台市', '130527', '南和县', '', '', '', '', 3, 1, ''), ('130528', '1305', '00,13,1305', '宁晋县', '13', '河北省', '1305', '邢台市', '130528', '宁晋县', '', '', '', '', 3, 1, ''), ('130529', '1305', '00,13,1305', '巨鹿县', '13', '河北省', '1305', '邢台市', '130529', '巨鹿县', '', '', '', '', 3, 1, ''), ('130530', '1305', '00,13,1305', '新河县', '13', '河北省', '1305', '邢台市', '130530', '新河县', '', '', '', '', 3, 1, ''), ('130531', '1305', '00,13,1305', '广宗县', '13', '河北省', '1305', '邢台市', '130531', '广宗县', '', '', '', '', 3, 1, ''), ('130532', '1305', '00,13,1305', '平乡县', '13', '河北省', '1305', '邢台市', '130532', '平乡县', '', '', '', '', 3, 1, ''), ('130533', '1305', '00,13,1305', '威县', '13', '河北省', '1305', '邢台市', '130533', '威县', '', '', '', '', 3, 1, ''), ('130534', '1305', '00,13,1305', '清河县', '13', '河北省', '1305', '邢台市', '130534', '清河县', '', '', '', '', 3, 1, ''), ('130535', '1305', '00,13,1305', '临西县', '13', '河北省', '1305', '邢台市', '130535', '临西县', '', '', '', '', 3, 1, ''), ('130581', '1305', '00,13,1305', '南宫市', '13', '河北省', '1305', '邢台市', '130581', '南宫市', '', '', '', '', 3, 1, ''), ('130582', '1305', '00,13,1305', '沙河市', '13', '河北省', '1305', '邢台市', '130582', '沙河市', '', '', '', '', 3, 1, ''), ('1306', '13', '00,13', '保定市', '13', '河北省', '1306', '保定市', '', '', '', '', '', '', 2, 1, ''), ('130602', '1306', '00,13,1306', '竞秀区', '13', '河北省', '1306', '保定市', '130602', '竞秀区', '', '', '', '', 3, 1, ''), ('130606', '1306', '00,13,1306', '莲池区', '13', '河北省', '1306', '保定市', '130606', '莲池区', '', '', '', '', 3, 1, ''), ('130607', '1306', '00,13,1306', '满城区', '13', '河北省', '1306', '保定市', '130607', '满城区', '', '', '', '', 3, 1, ''), ('130608', '1306', '00,13,1306', '清苑区', '13', '河北省', '1306', '保定市', '130608', '清苑区', '', '', '', '', 3, 1, ''), ('130609', '1306', '00,13,1306', '徐水区', '13', '河北省', '1306', '保定市', '130609', '徐水区', '', '', '', '', 3, 1, ''), ('130623', '1306', '00,13,1306', '涞水县', '13', '河北省', '1306', '保定市', '130623', '涞水县', '', '', '', '', 3, 1, ''), ('130624', '1306', '00,13,1306', '阜平县', '13', '河北省', '1306', '保定市', '130624', '阜平县', '', '', '', '', 3, 1, ''), ('130626', '1306', '00,13,1306', '定兴县', '13', '河北省', '1306', '保定市', '130626', '定兴县', '', '', '', '', 3, 1, ''), ('130627', '1306', '00,13,1306', '唐县', '13', '河北省', '1306', '保定市', '130627', '唐县', '', '', '', '', 3, 1, ''), ('130628', '1306', '00,13,1306', '高阳县', '13', '河北省', '1306', '保定市', '130628', '高阳县', '', '', '', '', 3, 1, ''), ('130629', '1306', '00,13,1306', '容城县', '13', '河北省', '1306', '保定市', '130629', '容城县', '', '', '', '', 3, 1, ''), ('130630', '1306', '00,13,1306', '涞源县', '13', '河北省', '1306', '保定市', '130630', '涞源县', '', '', '', '', 3, 1, ''), ('130631', '1306', '00,13,1306', '望都县', '13', '河北省', '1306', '保定市', '130631', '望都县', '', '', '', '', 3, 1, ''), ('130632', '1306', '00,13,1306', '安新县', '13', '河北省', '1306', '保定市', '130632', '安新县', '', '', '', '', 3, 1, ''), ('130633', '1306', '00,13,1306', '易县', '13', '河北省', '1306', '保定市', '130633', '易县', '', '', '', '', 3, 1, ''), ('130634', '1306', '00,13,1306', '曲阳县', '13', '河北省', '1306', '保定市', '130634', '曲阳县', '', '', '', '', 3, 1, ''), ('130635', '1306', '00,13,1306', '蠡县', '13', '河北省', '1306', '保定市', '130635', '蠡县', '', '', '', '', 3, 1, ''), ('130636', '1306', '00,13,1306', '顺平县', '13', '河北省', '1306', '保定市', '130636', '顺平县', '', '', '', '', 3, 1, ''), ('130637', '1306', '00,13,1306', '博野县', '13', '河北省', '1306', '保定市', '130637', '博野县', '', '', '', '', 3, 1, ''), ('130638', '1306', '00,13,1306', '雄县', '13', '河北省', '1306', '保定市', '130638', '雄县', '', '', '', '', 3, 1, ''), ('130681', '1306', '00,13,1306', '涿州市', '13', '河北省', '1306', '保定市', '130681', '涿州市', '', '', '', '', 3, 1, ''), ('130682', '1306', '00,13,1306', '定州市', '13', '河北省', '1306', '保定市', '130682', '定州市', '', '', '', '', 3, 1, ''), ('130683', '1306', '00,13,1306', '安国市', '13', '河北省', '1306', '保定市', '130683', '安国市', '', '', '', '', 3, 1, ''), ('130684', '1306', '00,13,1306', '高碑店市', '13', '河北省', '1306', '保定市', '130684', '高碑店市', '', '', '', '', 3, 1, ''), ('1307', '13', '00,13', '张家口市', '13', '河北省', '1307', '张家口市', '', '', '', '', '', '', 2, 1, ''), ('130702', '1307', '00,13,1307', '桥东区', '13', '河北省', '1307', '张家口市', '130702', '桥东区', '', '', '', '', 3, 1, ''), ('130703', '1307', '00,13,1307', '桥西区', '13', '河北省', '1307', '张家口市', '130703', '桥西区', '', '', '', '', 3, 1, ''), ('130705', '1307', '00,13,1307', '宣化区', '13', '河北省', '1307', '张家口市', '130705', '宣化区', '', '', '', '', 3, 1, ''), ('130706', '1307', '00,13,1307', '下花园区', '13', '河北省', '1307', '张家口市', '130706', '下花园区', '', '', '', '', 3, 1, ''), ('130708', '1307', '00,13,1307', '万全区', '13', '河北省', '1307', '张家口市', '130708', '万全区', '', '', '', '', 3, 1, ''), ('130709', '1307', '00,13,1307', '崇礼区', '13', '河北省', '1307', '张家口市', '130709', '崇礼区', '', '', '', '', 3, 1, ''), ('130722', '1307', '00,13,1307', '张北县', '13', '河北省', '1307', '张家口市', '130722', '张北县', '', '', '', '', 3, 1, ''), ('130723', '1307', '00,13,1307', '康保县', '13', '河北省', '1307', '张家口市', '130723', '康保县', '', '', '', '', 3, 1, ''), ('130724', '1307', '00,13,1307', '沽源县', '13', '河北省', '1307', '张家口市', '130724', '沽源县', '', '', '', '', 3, 1, ''), ('130725', '1307', '00,13,1307', '尚义县', '13', '河北省', '1307', '张家口市', '130725', '尚义县', '', '', '', '', 3, 1, ''), ('130726', '1307', '00,13,1307', '蔚县', '13', '河北省', '1307', '张家口市', '130726', '蔚县', '', '', '', '', 3, 1, ''), ('130727', '1307', '00,13,1307', '阳原县', '13', '河北省', '1307', '张家口市', '130727', '阳原县', '', '', '', '', 3, 1, ''), ('130728', '1307', '00,13,1307', '怀安县', '13', '河北省', '1307', '张家口市', '130728', '怀安县', '', '', '', '', 3, 1, ''), ('130730', '1307', '00,13,1307', '怀来县', '13', '河北省', '1307', '张家口市', '130730', '怀来县', '', '', '', '', 3, 1, ''), ('130731', '1307', '00,13,1307', '涿鹿县', '13', '河北省', '1307', '张家口市', '130731', '涿鹿县', '', '', '', '', 3, 1, ''), ('130732', '1307', '00,13,1307', '赤城县', '13', '河北省', '1307', '张家口市', '130732', '赤城县', '', '', '', '', 3, 1, ''), ('1308', '13', '00,13', '承德市', '13', '河北省', '1308', '承德市', '', '', '', '', '', '', 2, 1, ''), ('130802', '1308', '00,13,1308', '双桥区', '13', '河北省', '1308', '承德市', '130802', '双桥区', '', '', '', '', 3, 1, ''), ('130803', '1308', '00,13,1308', '双滦区', '13', '河北省', '1308', '承德市', '130803', '双滦区', '', '', '', '', 3, 1, ''), ('130804', '1308', '00,13,1308', '鹰手营子矿区', '13', '河北省', '1308', '承德市', '130804', '鹰手营子矿区', '', '', '', '', 3, 1, ''), ('130821', '1308', '00,13,1308', '承德县', '13', '河北省', '1308', '承德市', '130821', '承德县', '', '', '', '', 3, 1, ''), ('130822', '1308', '00,13,1308', '兴隆县', '13', '河北省', '1308', '承德市', '130822', '兴隆县', '', '', '', '', 3, 1, ''), ('130824', '1308', '00,13,1308', '滦平县', '13', '河北省', '1308', '承德市', '130824', '滦平县', '', '', '', '', 3, 1, ''), ('130825', '1308', '00,13,1308', '隆化县', '13', '河北省', '1308', '承德市', '130825', '隆化县', '', '', '', '', 3, 1, ''), ('130826', '1308', '00,13,1308', '丰宁满族自治县', '13', '河北省', '1308', '承德市', '130826', '丰宁满族自治县', '', '', '', '', 3, 1, ''), ('130827', '1308', '00,13,1308', '宽城满族自治县', '13', '河北省', '1308', '承德市', '130827', '宽城满族自治县', '', '', '', '', 3, 1, ''), ('130828', '1308', '00,13,1308', '围场满族蒙古族自治县', '13', '河北省', '1308', '承德市', '130828', '围场满族蒙古族自治县', '', '', '', '', 3, 1, ''), ('130881', '1308', '00,13,1308', '平泉市', '13', '河北省', '1308', '承德市', '130881', '平泉市', '', '', '', '', 3, 1, ''), ('1309', '13', '00,13', '沧州市', '13', '河北省', '1309', '沧州市', '', '', '', '', '', '', 2, 1, ''), ('130902', '1309', '00,13,1309', '新华区', '13', '河北省', '1309', '沧州市', '130902', '新华区', '', '', '', '', 3, 1, ''), ('130903', '1309', '00,13,1309', '运河区', '13', '河北省', '1309', '沧州市', '130903', '运河区', '', '', '', '', 3, 1, ''), ('130921', '1309', '00,13,1309', '沧县', '13', '河北省', '1309', '沧州市', '130921', '沧县', '', '', '', '', 3, 1, ''), ('130922', '1309', '00,13,1309', '青县', '13', '河北省', '1309', '沧州市', '130922', '青县', '', '', '', '', 3, 1, ''), ('130923', '1309', '00,13,1309', '东光县', '13', '河北省', '1309', '沧州市', '130923', '东光县', '', '', '', '', 3, 1, ''), ('130924', '1309', '00,13,1309', '海兴县', '13', '河北省', '1309', '沧州市', '130924', '海兴县', '', '', '', '', 3, 1, ''), ('130925', '1309', '00,13,1309', '盐山县', '13', '河北省', '1309', '沧州市', '130925', '盐山县', '', '', '', '', 3, 1, ''), ('130926', '1309', '00,13,1309', '肃宁县', '13', '河北省', '1309', '沧州市', '130926', '肃宁县', '', '', '', '', 3, 1, ''), ('130927', '1309', '00,13,1309', '南皮县', '13', '河北省', '1309', '沧州市', '130927', '南皮县', '', '', '', '', 3, 1, ''), ('130928', '1309', '00,13,1309', '吴桥县', '13', '河北省', '1309', '沧州市', '130928', '吴桥县', '', '', '', '', 3, 1, ''), ('130929', '1309', '00,13,1309', '献县', '13', '河北省', '1309', '沧州市', '130929', '献县', '', '', '', '', 3, 1, ''), ('130930', '1309', '00,13,1309', '孟村回族自治县', '13', '河北省', '1309', '沧州市', '130930', '孟村回族自治县', '', '', '', '', 3, 1, ''), ('130981', '1309', '00,13,1309', '泊头市', '13', '河北省', '1309', '沧州市', '130981', '泊头市', '', '', '', '', 3, 1, ''), ('130982', '1309', '00,13,1309', '任丘市', '13', '河北省', '1309', '沧州市', '130982', '任丘市', '', '', '', '', 3, 1, ''), ('130983', '1309', '00,13,1309', '黄骅市', '13', '河北省', '1309', '沧州市', '130983', '黄骅市', '', '', '', '', 3, 1, ''), ('130984', '1309', '00,13,1309', '河间市', '13', '河北省', '1309', '沧州市', '130984', '河间市', '', '', '', '', 3, 1, ''), ('1310', '13', '00,13', '廊坊市', '13', '河北省', '1310', '廊坊市', '', '', '', '', '', '', 2, 1, ''), ('131002', '1310', '00,13,1310', '安次区', '13', '河北省', '1310', '廊坊市', '131002', '安次区', '', '', '', '', 3, 1, ''), ('131003', '1310', '00,13,1310', '广阳区', '13', '河北省', '1310', '廊坊市', '131003', '广阳区', '', '', '', '', 3, 1, ''), ('131022', '1310', '00,13,1310', '固安县', '13', '河北省', '1310', '廊坊市', '131022', '固安县', '', '', '', '', 3, 1, ''), ('131023', '1310', '00,13,1310', '永清县', '13', '河北省', '1310', '廊坊市', '131023', '永清县', '', '', '', '', 3, 1, ''), ('131024', '1310', '00,13,1310', '香河县', '13', '河北省', '1310', '廊坊市', '131024', '香河县', '', '', '', '', 3, 1, ''), ('131025', '1310', '00,13,1310', '大城县', '13', '河北省', '1310', '廊坊市', '131025', '大城县', '', '', '', '', 3, 1, ''), ('131026', '1310', '00,13,1310', '文安县', '13', '河北省', '1310', '廊坊市', '131026', '文安县', '', '', '', '', 3, 1, ''), ('131028', '1310', '00,13,1310', '大厂回族自治县', '13', '河北省', '1310', '廊坊市', '131028', '大厂回族自治县', '', '', '', '', 3, 1, ''), ('131081', '1310', '00,13,1310', '霸州市', '13', '河北省', '1310', '廊坊市', '131081', '霸州市', '', '', '', '', 3, 1, ''), ('131082', '1310', '00,13,1310', '三河市', '13', '河北省', '1310', '廊坊市', '131082', '三河市', '', '', '', '', 3, 1, ''), ('1311', '13', '00,13', '衡水市', '13', '河北省', '1311', '衡水市', '', '', '', '', '', '', 2, 1, ''), ('131102', '1311', '00,13,1311', '桃城区', '13', '河北省', '1311', '衡水市', '131102', '桃城区', '', '', '', '', 3, 1, ''), ('131103', '1311', '00,13,1311', '冀州区', '13', '河北省', '1311', '衡水市', '131103', '冀州区', '', '', '', '', 3, 1, ''), ('131121', '1311', '00,13,1311', '枣强县', '13', '河北省', '1311', '衡水市', '131121', '枣强县', '', '', '', '', 3, 1, ''), ('131122', '1311', '00,13,1311', '武邑县', '13', '河北省', '1311', '衡水市', '131122', '武邑县', '', '', '', '', 3, 1, ''), ('131123', '1311', '00,13,1311', '武强县', '13', '河北省', '1311', '衡水市', '131123', '武强县', '', '', '', '', 3, 1, ''), ('131124', '1311', '00,13,1311', '饶阳县', '13', '河北省', '1311', '衡水市', '131124', '饶阳县', '', '', '', '', 3, 1, ''), ('131125', '1311', '00,13,1311', '安平县', '13', '河北省', '1311', '衡水市', '131125', '安平县', '', '', '', '', 3, 1, ''), ('131126', '1311', '00,13,1311', '故城县', '13', '河北省', '1311', '衡水市', '131126', '故城县', '', '', '', '', 3, 1, ''), ('131127', '1311', '00,13,1311', '景县', '13', '河北省', '1311', '衡水市', '131127', '景县', '', '', '', '', 3, 1, ''), ('131128', '1311', '00,13,1311', '阜城县', '13', '河北省', '1311', '衡水市', '131128', '阜城县', '', '', '', '', 3, 1, ''), ('131182', '1311', '00,13,1311', '深州市', '13', '河北省', '1311', '衡水市', '131182', '深州市', '', '', '', '', 3, 1, ''), ('14', '00', '00', '山西省', '14', '山西省', '', '', '', '', '', '', '', '', 1, 1, ''), ('1401', '14', '00,14', '太原市', '14', '山西省', '1401', '太原市', '', '', '', '', '', '', 2, 1, ''), ('140105', '1401', '00,14,1401', '小店区', '14', '山西省', '1401', '太原市', '140105', '小店区', '', '', '', '', 3, 1, ''), ('140106', '1401', '00,14,1401', '迎泽区', '14', '山西省', '1401', '太原市', '140106', '迎泽区', '', '', '', '', 3, 1, ''), ('140107', '1401', '00,14,1401', '杏花岭区', '14', '山西省', '1401', '太原市', '140107', '杏花岭区', '', '', '', '', 3, 1, ''), ('140108', '1401', '00,14,1401', '尖草坪区', '14', '山西省', '1401', '太原市', '140108', '尖草坪区', '', '', '', '', 3, 1, ''), ('140109', '1401', '00,14,1401', '万柏林区', '14', '山西省', '1401', '太原市', '140109', '万柏林区', '', '', '', '', 3, 1, ''), ('140110', '1401', '00,14,1401', '晋源区', '14', '山西省', '1401', '太原市', '140110', '晋源区', '', '', '', '', 3, 1, ''), ('140121', '1401', '00,14,1401', '清徐县', '14', '山西省', '1401', '太原市', '140121', '清徐县', '', '', '', '', 3, 1, ''), ('140122', '1401', '00,14,1401', '阳曲县', '14', '山西省', '1401', '太原市', '140122', '阳曲县', '', '', '', '', 3, 1, ''), ('140123', '1401', '00,14,1401', '娄烦县', '14', '山西省', '1401', '太原市', '140123', '娄烦县', '', '', '', '', 3, 1, ''), ('140181', '1401', '00,14,1401', '古交市', '14', '山西省', '1401', '太原市', '140181', '古交市', '', '', '', '', 3, 1, ''), ('1402', '14', '00,14', '大同市', '14', '山西省', '1402', '大同市', '', '', '', '', '', '', 2, 1, ''), ('140212', '1402', '00,14,1402', '新荣区', '14', '山西省', '1402', '大同市', '140212', '新荣区', '', '', '', '', 3, 1, ''), ('140213', '1402', '00,14,1402', '平城区', '14', '山西省', '1402', '大同市', '140213', '平城区', '', '', '', '', 3, 1, ''), ('140214', '1402', '00,14,1402', '云冈区', '14', '山西省', '1402', '大同市', '140214', '云冈区', '', '', '', '', 3, 1, ''), ('140215', '1402', '00,14,1402', '云州区', '14', '山西省', '1402', '大同市', '140215', '云州区', '', '', '', '', 3, 1, ''), ('140221', '1402', '00,14,1402', '阳高县', '14', '山西省', '1402', '大同市', '140221', '阳高县', '', '', '', '', 3, 1, ''), ('140222', '1402', '00,14,1402', '天镇县', '14', '山西省', '1402', '大同市', '140222', '天镇县', '', '', '', '', 3, 1, ''), ('140223', '1402', '00,14,1402', '广灵县', '14', '山西省', '1402', '大同市', '140223', '广灵县', '', '', '', '', 3, 1, ''), ('140224', '1402', '00,14,1402', '灵丘县', '14', '山西省', '1402', '大同市', '140224', '灵丘县', '', '', '', '', 3, 1, ''), ('140225', '1402', '00,14,1402', '浑源县', '14', '山西省', '1402', '大同市', '140225', '浑源县', '', '', '', '', 3, 1, ''), ('140226', '1402', '00,14,1402', '左云县', '14', '山西省', '1402', '大同市', '140226', '左云县', '', '', '', '', 3, 1, ''), ('1403', '14', '00,14', '阳泉市', '14', '山西省', '1403', '阳泉市', '', '', '', '', '', '', 2, 1, ''), ('140302', '1403', '00,14,1403', '城区', '14', '山西省', '1403', '阳泉市', '140302', '城区', '', '', '', '', 3, 1, ''), ('140303', '1403', '00,14,1403', '矿区', '14', '山西省', '1403', '阳泉市', '140303', '矿区', '', '', '', '', 3, 1, ''), ('140311', '1403', '00,14,1403', '郊区', '14', '山西省', '1403', '阳泉市', '140311', '郊区', '', '', '', '', 3, 1, ''), ('140321', '1403', '00,14,1403', '平定县', '14', '山西省', '1403', '阳泉市', '140321', '平定县', '', '', '', '', 3, 1, ''), ('140322', '1403', '00,14,1403', '盂县', '14', '山西省', '1403', '阳泉市', '140322', '盂县', '', '', '', '', 3, 1, ''), ('1404', '14', '00,14', '长治市', '14', '山西省', '1404', '长治市', '', '', '', '', '', '', 2, 1, ''), ('140403', '1404', '00,14,1404', '潞州区', '14', '山西省', '1404', '长治市', '140403', '潞州区', '', '', '', '', 3, 1, ''), ('140404', '1404', '00,14,1404', '上党区', '14', '山西省', '1404', '长治市', '140404', '上党区', '', '', '', '', 3, 1, ''), ('140405', '1404', '00,14,1404', '屯留区', '14', '山西省', '1404', '长治市', '140405', '屯留区', '', '', '', '', 3, 1, ''), ('140406', '1404', '00,14,1404', '潞城区', '14', '山西省', '1404', '长治市', '140406', '潞城区', '', '', '', '', 3, 1, ''), ('140423', '1404', '00,14,1404', '襄垣县', '14', '山西省', '1404', '长治市', '140423', '襄垣县', '', '', '', '', 3, 1, ''), ('140425', '1404', '00,14,1404', '平顺县', '14', '山西省', '1404', '长治市', '140425', '平顺县', '', '', '', '', 3, 1, ''), ('140426', '1404', '00,14,1404', '黎城县', '14', '山西省', '1404', '长治市', '140426', '黎城县', '', '', '', '', 3, 1, ''), ('140427', '1404', '00,14,1404', '壶关县', '14', '山西省', '1404', '长治市', '140427', '壶关县', '', '', '', '', 3, 1, ''), ('140428', '1404', '00,14,1404', '长子县', '14', '山西省', '1404', '长治市', '140428', '长子县', '', '', '', '', 3, 1, ''), ('140429', '1404', '00,14,1404', '武乡县', '14', '山西省', '1404', '长治市', '140429', '武乡县', '', '', '', '', 3, 1, ''), ('140430', '1404', '00,14,1404', '沁县', '14', '山西省', '1404', '长治市', '140430', '沁县', '', '', '', '', 3, 1, ''), ('140431', '1404', '00,14,1404', '沁源县', '14', '山西省', '1404', '长治市', '140431', '沁源县', '', '', '', '', 3, 1, ''), ('1405', '14', '00,14', '晋城市', '14', '山西省', '1405', '晋城市', '', '', '', '', '', '', 2, 1, ''), ('140502', '1405', '00,14,1405', '城区', '14', '山西省', '1405', '晋城市', '140502', '城区', '', '', '', '', 3, 1, ''), ('140521', '1405', '00,14,1405', '沁水县', '14', '山西省', '1405', '晋城市', '140521', '沁水县', '', '', '', '', 3, 1, ''), ('140522', '1405', '00,14,1405', '阳城县', '14', '山西省', '1405', '晋城市', '140522', '阳城县', '', '', '', '', 3, 1, ''), ('140524', '1405', '00,14,1405', '陵川县', '14', '山西省', '1405', '晋城市', '140524', '陵川县', '', '', '', '', 3, 1, ''), ('140525', '1405', '00,14,1405', '泽州县', '14', '山西省', '1405', '晋城市', '140525', '泽州县', '', '', '', '', 3, 1, ''), ('140581', '1405', '00,14,1405', '高平市', '14', '山西省', '1405', '晋城市', '140581', '高平市', '', '', '', '', 3, 1, ''), ('1406', '14', '00,14', '朔州市', '14', '山西省', '1406', '朔州市', '', '', '', '', '', '', 2, 1, ''), ('140602', '1406', '00,14,1406', '朔城区', '14', '山西省', '1406', '朔州市', '140602', '朔城区', '', '', '', '', 3, 1, ''), ('140603', '1406', '00,14,1406', '平鲁区', '14', '山西省', '1406', '朔州市', '140603', '平鲁区', '', '', '', '', 3, 1, ''), ('140621', '1406', '00,14,1406', '山阴县', '14', '山西省', '1406', '朔州市', '140621', '山阴县', '', '', '', '', 3, 1, ''), ('140622', '1406', '00,14,1406', '应县', '14', '山西省', '1406', '朔州市', '140622', '应县', '', '', '', '', 3, 1, ''), ('140623', '1406', '00,14,1406', '右玉县', '14', '山西省', '1406', '朔州市', '140623', '右玉县', '', '', '', '', 3, 1, ''), ('140681', '1406', '00,14,1406', '怀仁市', '14', '山西省', '1406', '朔州市', '140681', '怀仁市', '', '', '', '', 3, 1, ''), ('1407', '14', '00,14', '晋中市', '14', '山西省', '1407', '晋中市', '', '', '', '', '', '', 2, 1, ''), ('140702', '1407', '00,14,1407', '榆次区', '14', '山西省', '1407', '晋中市', '140702', '榆次区', '', '', '', '', 3, 1, ''), ('140703', '1407', '00,14,1407', '太谷区', '14', '山西省', '1407', '晋中市', '140703', '太谷区', '', '', '', '', 3, 1, ''), ('140721', '1407', '00,14,1407', '榆社县', '14', '山西省', '1407', '晋中市', '140721', '榆社县', '', '', '', '', 3, 1, ''), ('140722', '1407', '00,14,1407', '左权县', '14', '山西省', '1407', '晋中市', '140722', '左权县', '', '', '', '', 3, 1, ''), ('140723', '1407', '00,14,1407', '和顺县', '14', '山西省', '1407', '晋中市', '140723', '和顺县', '', '', '', '', 3, 1, ''), ('140724', '1407', '00,14,1407', '昔阳县', '14', '山西省', '1407', '晋中市', '140724', '昔阳县', '', '', '', '', 3, 1, ''), ('140725', '1407', '00,14,1407', '寿阳县', '14', '山西省', '1407', '晋中市', '140725', '寿阳县', '', '', '', '', 3, 1, ''), ('140727', '1407', '00,14,1407', '祁县', '14', '山西省', '1407', '晋中市', '140727', '祁县', '', '', '', '', 3, 1, ''), ('140728', '1407', '00,14,1407', '平遥县', '14', '山西省', '1407', '晋中市', '140728', '平遥县', '', '', '', '', 3, 1, ''), ('140729', '1407', '00,14,1407', '灵石县', '14', '山西省', '1407', '晋中市', '140729', '灵石县', '', '', '', '', 3, 1, ''), ('140781', '1407', '00,14,1407', '介休市', '14', '山西省', '1407', '晋中市', '140781', '介休市', '', '', '', '', 3, 1, ''), ('1408', '14', '00,14', '运城市', '14', '山西省', '1408', '运城市', '', '', '', '', '', '', 2, 1, ''), ('140802', '1408', '00,14,1408', '盐湖区', '14', '山西省', '1408', '运城市', '140802', '盐湖区', '', '', '', '', 3, 1, ''), ('140821', '1408', '00,14,1408', '临猗县', '14', '山西省', '1408', '运城市', '140821', '临猗县', '', '', '', '', 3, 1, ''), ('140822', '1408', '00,14,1408', '万荣县', '14', '山西省', '1408', '运城市', '140822', '万荣县', '', '', '', '', 3, 1, ''), ('140823', '1408', '00,14,1408', '闻喜县', '14', '山西省', '1408', '运城市', '140823', '闻喜县', '', '', '', '', 3, 1, ''), ('140824', '1408', '00,14,1408', '稷山县', '14', '山西省', '1408', '运城市', '140824', '稷山县', '', '', '', '', 3, 1, ''), ('140825', '1408', '00,14,1408', '新绛县', '14', '山西省', '1408', '运城市', '140825', '新绛县', '', '', '', '', 3, 1, ''), ('140826', '1408', '00,14,1408', '绛县', '14', '山西省', '1408', '运城市', '140826', '绛县', '', '', '', '', 3, 1, ''), ('140827', '1408', '00,14,1408', '垣曲县', '14', '山西省', '1408', '运城市', '140827', '垣曲县', '', '', '', '', 3, 1, ''), ('140828', '1408', '00,14,1408', '夏县', '14', '山西省', '1408', '运城市', '140828', '夏县', '', '', '', '', 3, 1, ''), ('140829', '1408', '00,14,1408', '平陆县', '14', '山西省', '1408', '运城市', '140829', '平陆县', '', '', '', '', 3, 1, ''), ('140830', '1408', '00,14,1408', '芮城县', '14', '山西省', '1408', '运城市', '140830', '芮城县', '', '', '', '', 3, 1, ''), ('140881', '1408', '00,14,1408', '永济市', '14', '山西省', '1408', '运城市', '140881', '永济市', '', '', '', '', 3, 1, ''), ('140882', '1408', '00,14,1408', '河津市', '14', '山西省', '1408', '运城市', '140882', '河津市', '', '', '', '', 3, 1, ''), ('1409', '14', '00,14', '忻州市', '14', '山西省', '1409', '忻州市', '', '', '', '', '', '', 2, 1, ''), ('140902', '1409', '00,14,1409', '忻府区', '14', '山西省', '1409', '忻州市', '140902', '忻府区', '', '', '', '', 3, 1, ''), ('140921', '1409', '00,14,1409', '定襄县', '14', '山西省', '1409', '忻州市', '140921', '定襄县', '', '', '', '', 3, 1, ''), ('140922', '1409', '00,14,1409', '五台县', '14', '山西省', '1409', '忻州市', '140922', '五台县', '', '', '', '', 3, 1, ''), ('140923', '1409', '00,14,1409', '代县', '14', '山西省', '1409', '忻州市', '140923', '代县', '', '', '', '', 3, 1, ''), ('140924', '1409', '00,14,1409', '繁峙县', '14', '山西省', '1409', '忻州市', '140924', '繁峙县', '', '', '', '', 3, 1, ''), ('140925', '1409', '00,14,1409', '宁武县', '14', '山西省', '1409', '忻州市', '140925', '宁武县', '', '', '', '', 3, 1, ''), ('140926', '1409', '00,14,1409', '静乐县', '14', '山西省', '1409', '忻州市', '140926', '静乐县', '', '', '', '', 3, 1, ''), ('140927', '1409', '00,14,1409', '神池县', '14', '山西省', '1409', '忻州市', '140927', '神池县', '', '', '', '', 3, 1, ''), ('140928', '1409', '00,14,1409', '五寨县', '14', '山西省', '1409', '忻州市', '140928', '五寨县', '', '', '', '', 3, 1, ''), ('140929', '1409', '00,14,1409', '岢岚县', '14', '山西省', '1409', '忻州市', '140929', '岢岚县', '', '', '', '', 3, 1, ''), ('140930', '1409', '00,14,1409', '河曲县', '14', '山西省', '1409', '忻州市', '140930', '河曲县', '', '', '', '', 3, 1, ''), ('140931', '1409', '00,14,1409', '保德县', '14', '山西省', '1409', '忻州市', '140931', '保德县', '', '', '', '', 3, 1, ''), ('140932', '1409', '00,14,1409', '偏关县', '14', '山西省', '1409', '忻州市', '140932', '偏关县', '', '', '', '', 3, 1, ''), ('140981', '1409', '00,14,1409', '原平市', '14', '山西省', '1409', '忻州市', '140981', '原平市', '', '', '', '', 3, 1, ''), ('1410', '14', '00,14', '临汾市', '14', '山西省', '1410', '临汾市', '', '', '', '', '', '', 2, 1, ''), ('141002', '1410', '00,14,1410', '尧都区', '14', '山西省', '1410', '临汾市', '141002', '尧都区', '', '', '', '', 3, 1, ''), ('141021', '1410', '00,14,1410', '曲沃县', '14', '山西省', '1410', '临汾市', '141021', '曲沃县', '', '', '', '', 3, 1, ''), ('141022', '1410', '00,14,1410', '翼城县', '14', '山西省', '1410', '临汾市', '141022', '翼城县', '', '', '', '', 3, 1, ''), ('141023', '1410', '00,14,1410', '襄汾县', '14', '山西省', '1410', '临汾市', '141023', '襄汾县', '', '', '', '', 3, 1, ''), ('141024', '1410', '00,14,1410', '洪洞县', '14', '山西省', '1410', '临汾市', '141024', '洪洞县', '', '', '', '', 3, 1, ''), ('141025', '1410', '00,14,1410', '古县', '14', '山西省', '1410', '临汾市', '141025', '古县', '', '', '', '', 3, 1, ''), ('141026', '1410', '00,14,1410', '安泽县', '14', '山西省', '1410', '临汾市', '141026', '安泽县', '', '', '', '', 3, 1, ''), ('141027', '1410', '00,14,1410', '浮山县', '14', '山西省', '1410', '临汾市', '141027', '浮山县', '', '', '', '', 3, 1, ''), ('141028', '1410', '00,14,1410', '吉县', '14', '山西省', '1410', '临汾市', '141028', '吉县', '', '', '', '', 3, 1, ''), ('141029', '1410', '00,14,1410', '乡宁县', '14', '山西省', '1410', '临汾市', '141029', '乡宁县', '', '', '', '', 3, 1, ''), ('141030', '1410', '00,14,1410', '大宁县', '14', '山西省', '1410', '临汾市', '141030', '大宁县', '', '', '', '', 3, 1, ''), ('141031', '1410', '00,14,1410', '隰县', '14', '山西省', '1410', '临汾市', '141031', '隰县', '', '', '', '', 3, 1, ''), ('141032', '1410', '00,14,1410', '永和县', '14', '山西省', '1410', '临汾市', '141032', '永和县', '', '', '', '', 3, 1, ''), ('141033', '1410', '00,14,1410', '蒲县', '14', '山西省', '1410', '临汾市', '141033', '蒲县', '', '', '', '', 3, 1, ''), ('141034', '1410', '00,14,1410', '汾西县', '14', '山西省', '1410', '临汾市', '141034', '汾西县', '', '', '', '', 3, 1, ''), ('141081', '1410', '00,14,1410', '侯马市', '14', '山西省', '1410', '临汾市', '141081', '侯马市', '', '', '', '', 3, 1, ''), ('141082', '1410', '00,14,1410', '霍州市', '14', '山西省', '1410', '临汾市', '141082', '霍州市', '', '', '', '', 3, 1, ''), ('1411', '14', '00,14', '吕梁市', '14', '山西省', '1411', '吕梁市', '', '', '', '', '', '', 2, 1, ''), ('141102', '1411', '00,14,1411', '离石区', '14', '山西省', '1411', '吕梁市', '141102', '离石区', '', '', '', '', 3, 1, ''), ('141121', '1411', '00,14,1411', '文水县', '14', '山西省', '1411', '吕梁市', '141121', '文水县', '', '', '', '', 3, 1, ''), ('141122', '1411', '00,14,1411', '交城县', '14', '山西省', '1411', '吕梁市', '141122', '交城县', '', '', '', '', 3, 1, ''), ('141123', '1411', '00,14,1411', '兴县', '14', '山西省', '1411', '吕梁市', '141123', '兴县', '', '', '', '', 3, 1, ''), ('141124', '1411', '00,14,1411', '临县', '14', '山西省', '1411', '吕梁市', '141124', '临县', '', '', '', '', 3, 1, ''), ('141125', '1411', '00,14,1411', '柳林县', '14', '山西省', '1411', '吕梁市', '141125', '柳林县', '', '', '', '', 3, 1, ''), ('141126', '1411', '00,14,1411', '石楼县', '14', '山西省', '1411', '吕梁市', '141126', '石楼县', '', '', '', '', 3, 1, ''), ('141127', '1411', '00,14,1411', '岚县', '14', '山西省', '1411', '吕梁市', '141127', '岚县', '', '', '', '', 3, 1, ''), ('141128', '1411', '00,14,1411', '方山县', '14', '山西省', '1411', '吕梁市', '141128', '方山县', '', '', '', '', 3, 1, ''), ('141129', '1411', '00,14,1411', '中阳县', '14', '山西省', '1411', '吕梁市', '141129', '中阳县', '', '', '', '', 3, 1, ''), ('141130', '1411', '00,14,1411', '交口县', '14', '山西省', '1411', '吕梁市', '141130', '交口县', '', '', '', '', 3, 1, ''), ('141181', '1411', '00,14,1411', '孝义市', '14', '山西省', '1411', '吕梁市', '141181', '孝义市', '', '', '', '', 3, 1, ''), ('141182', '1411', '00,14,1411', '汾阳市', '14', '山西省', '1411', '吕梁市', '141182', '汾阳市', '', '', '', '', 3, 1, ''), ('15', '00', '00', '内蒙古自治区', '15', '内蒙古自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('1501', '15', '00,15', '呼和浩特市', '15', '内蒙古自治区', '1501', '呼和浩特市', '', '', '', '', '', '', 2, 1, ''), ('150102', '1501', '00,15,1501', '新城区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150102', '新城区', '', '', '', '', 3, 1, ''), ('150103', '1501', '00,15,1501', '回民区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150103', '回民区', '', '', '', '', 3, 1, ''), ('150104', '1501', '00,15,1501', '玉泉区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150104', '玉泉区', '', '', '', '', 3, 1, ''), ('150105', '1501', '00,15,1501', '赛罕区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150105', '赛罕区', '', '', '', '', 3, 1, ''), ('150121', '1501', '00,15,1501', '土默特左旗', '15', '内蒙古自治区', '1501', '呼和浩特市', '150121', '土默特左旗', '', '', '', '', 3, 1, ''), ('150122', '1501', '00,15,1501', '托克托县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150122', '托克托县', '', '', '', '', 3, 1, ''), ('150123', '1501', '00,15,1501', '和林格尔县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150123', '和林格尔县', '', '', '', '', 3, 1, ''), ('150124', '1501', '00,15,1501', '清水河县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150124', '清水河县', '', '', '', '', 3, 1, ''), ('150125', '1501', '00,15,1501', '武川县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150125', '武川县', '', '', '', '', 3, 1, ''), ('1502', '15', '00,15', '包头市', '15', '内蒙古自治区', '1502', '包头市', '', '', '', '', '', '', 2, 1, ''), ('150202', '1502', '00,15,1502', '东河区', '15', '内蒙古自治区', '1502', '包头市', '150202', '东河区', '', '', '', '', 3, 1, ''), ('150203', '1502', '00,15,1502', '昆都仑区', '15', '内蒙古自治区', '1502', '包头市', '150203', '昆都仑区', '', '', '', '', 3, 1, ''), ('150204', '1502', '00,15,1502', '青山区', '15', '内蒙古自治区', '1502', '包头市', '150204', '青山区', '', '', '', '', 3, 1, ''), ('150205', '1502', '00,15,1502', '石拐区', '15', '内蒙古自治区', '1502', '包头市', '150205', '石拐区', '', '', '', '', 3, 1, ''), ('150206', '1502', '00,15,1502', '白云鄂博矿区', '15', '内蒙古自治区', '1502', '包头市', '150206', '白云鄂博矿区', '', '', '', '', 3, 1, ''), ('150207', '1502', '00,15,1502', '九原区', '15', '内蒙古自治区', '1502', '包头市', '150207', '九原区', '', '', '', '', 3, 1, ''), ('150221', '1502', '00,15,1502', '土默特右旗', '15', '内蒙古自治区', '1502', '包头市', '150221', '土默特右旗', '', '', '', '', 3, 1, ''), ('150222', '1502', '00,15,1502', '固阳县', '15', '内蒙古自治区', '1502', '包头市', '150222', '固阳县', '', '', '', '', 3, 1, ''), ('150223', '1502', '00,15,1502', '达尔罕茂明安联合旗', '15', '内蒙古自治区', '1502', '包头市', '150223', '达尔罕茂明安联合旗', '', '', '', '', 3, 1, ''), ('1503', '15', '00,15', '乌海市', '15', '内蒙古自治区', '1503', '乌海市', '', '', '', '', '', '', 2, 1, ''), ('150302', '1503', '00,15,1503', '海勃湾区', '15', '内蒙古自治区', '1503', '乌海市', '150302', '海勃湾区', '', '', '', '', 3, 1, ''), ('150303', '1503', '00,15,1503', '海南区', '15', '内蒙古自治区', '1503', '乌海市', '150303', '海南区', '', '', '', '', 3, 1, ''), ('150304', '1503', '00,15,1503', '乌达区', '15', '内蒙古自治区', '1503', '乌海市', '150304', '乌达区', '', '', '', '', 3, 1, ''), ('1504', '15', '00,15', '赤峰市', '15', '内蒙古自治区', '1504', '赤峰市', '', '', '', '', '', '', 2, 1, ''), ('150402', '1504', '00,15,1504', '红山区', '15', '内蒙古自治区', '1504', '赤峰市', '150402', '红山区', '', '', '', '', 3, 1, ''), ('150403', '1504', '00,15,1504', '元宝山区', '15', '内蒙古自治区', '1504', '赤峰市', '150403', '元宝山区', '', '', '', '', 3, 1, ''), ('150404', '1504', '00,15,1504', '松山区', '15', '内蒙古自治区', '1504', '赤峰市', '150404', '松山区', '', '', '', '', 3, 1, ''), ('150421', '1504', '00,15,1504', '阿鲁科尔沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150421', '阿鲁科尔沁旗', '', '', '', '', 3, 1, ''), ('150422', '1504', '00,15,1504', '巴林左旗', '15', '内蒙古自治区', '1504', '赤峰市', '150422', '巴林左旗', '', '', '', '', 3, 1, ''), ('150423', '1504', '00,15,1504', '巴林右旗', '15', '内蒙古自治区', '1504', '赤峰市', '150423', '巴林右旗', '', '', '', '', 3, 1, ''), ('150424', '1504', '00,15,1504', '林西县', '15', '内蒙古自治区', '1504', '赤峰市', '150424', '林西县', '', '', '', '', 3, 1, ''), ('150425', '1504', '00,15,1504', '克什克腾旗', '15', '内蒙古自治区', '1504', '赤峰市', '150425', '克什克腾旗', '', '', '', '', 3, 1, ''), ('150426', '1504', '00,15,1504', '翁牛特旗', '15', '内蒙古自治区', '1504', '赤峰市', '150426', '翁牛特旗', '', '', '', '', 3, 1, ''), ('150428', '1504', '00,15,1504', '喀喇沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150428', '喀喇沁旗', '', '', '', '', 3, 1, ''), ('150429', '1504', '00,15,1504', '宁城县', '15', '内蒙古自治区', '1504', '赤峰市', '150429', '宁城县', '', '', '', '', 3, 1, ''), ('150430', '1504', '00,15,1504', '敖汉旗', '15', '内蒙古自治区', '1504', '赤峰市', '150430', '敖汉旗', '', '', '', '', 3, 1, ''), ('1505', '15', '00,15', '通辽市', '15', '内蒙古自治区', '1505', '通辽市', '', '', '', '', '', '', 2, 1, ''), ('150502', '1505', '00,15,1505', '科尔沁区', '15', '内蒙古自治区', '1505', '通辽市', '150502', '科尔沁区', '', '', '', '', 3, 1, ''), ('150521', '1505', '00,15,1505', '科尔沁左翼中旗', '15', '内蒙古自治区', '1505', '通辽市', '150521', '科尔沁左翼中旗', '', '', '', '', 3, 1, ''), ('150522', '1505', '00,15,1505', '科尔沁左翼后旗', '15', '内蒙古自治区', '1505', '通辽市', '150522', '科尔沁左翼后旗', '', '', '', '', 3, 1, ''), ('150523', '1505', '00,15,1505', '开鲁县', '15', '内蒙古自治区', '1505', '通辽市', '150523', '开鲁县', '', '', '', '', 3, 1, ''), ('150524', '1505', '00,15,1505', '库伦旗', '15', '内蒙古自治区', '1505', '通辽市', '150524', '库伦旗', '', '', '', '', 3, 1, ''), ('150525', '1505', '00,15,1505', '奈曼旗', '15', '内蒙古自治区', '1505', '通辽市', '150525', '奈曼旗', '', '', '', '', 3, 1, ''), ('150526', '1505', '00,15,1505', '扎鲁特旗', '15', '内蒙古自治区', '1505', '通辽市', '150526', '扎鲁特旗', '', '', '', '', 3, 1, ''), ('150581', '1505', '00,15,1505', '霍林郭勒市', '15', '内蒙古自治区', '1505', '通辽市', '150581', '霍林郭勒市', '', '', '', '', 3, 1, ''), ('1506', '15', '00,15', '鄂尔多斯市', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '', '', '', '', '', '', 2, 1, ''), ('150602', '1506', '00,15,1506', '东胜区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150602', '东胜区', '', '', '', '', 3, 1, ''), ('150603', '1506', '00,15,1506', '康巴什区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150603', '康巴什区', '', '', '', '', 3, 1, ''), ('150621', '1506', '00,15,1506', '达拉特旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150621', '达拉特旗', '', '', '', '', 3, 1, ''), ('150622', '1506', '00,15,1506', '准格尔旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150622', '准格尔旗', '', '', '', '', 3, 1, ''), ('150623', '1506', '00,15,1506', '鄂托克前旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150623', '鄂托克前旗', '', '', '', '', 3, 1, ''), ('150624', '1506', '00,15,1506', '鄂托克旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150624', '鄂托克旗', '', '', '', '', 3, 1, ''), ('150625', '1506', '00,15,1506', '杭锦旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150625', '杭锦旗', '', '', '', '', 3, 1, ''), ('150626', '1506', '00,15,1506', '乌审旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150626', '乌审旗', '', '', '', '', 3, 1, ''), ('150627', '1506', '00,15,1506', '伊金霍洛旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150627', '伊金霍洛旗', '', '', '', '', 3, 1, ''), ('1507', '15', '00,15', '呼伦贝尔市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '', '', '', '', '', '', 2, 1, ''), ('150702', '1507', '00,15,1507', '海拉尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150702', '海拉尔区', '', '', '', '', 3, 1, ''), ('150703', '1507', '00,15,1507', '扎赉诺尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150703', '扎赉诺尔区', '', '', '', '', 3, 1, ''), ('150721', '1507', '00,15,1507', '阿荣旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150721', '阿荣旗', '', '', '', '', 3, 1, ''), ('150722', '1507', '00,15,1507', '莫力达瓦达斡尔族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150722', '莫力达瓦达斡尔族自治旗', '', '', '', '', 3, 1, ''), ('150723', '1507', '00,15,1507', '鄂伦春自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150723', '鄂伦春自治旗', '', '', '', '', 3, 1, ''), ('150724', '1507', '00,15,1507', '鄂温克族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150724', '鄂温克族自治旗', '', '', '', '', 3, 1, ''), ('150725', '1507', '00,15,1507', '陈巴尔虎旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150725', '陈巴尔虎旗', '', '', '', '', 3, 1, ''), ('150726', '1507', '00,15,1507', '新巴尔虎左旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150726', '新巴尔虎左旗', '', '', '', '', 3, 1, ''), ('150727', '1507', '00,15,1507', '新巴尔虎右旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150727', '新巴尔虎右旗', '', '', '', '', 3, 1, ''), ('150781', '1507', '00,15,1507', '满洲里市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150781', '满洲里市', '', '', '', '', 3, 1, ''), ('150782', '1507', '00,15,1507', '牙克石市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150782', '牙克石市', '', '', '', '', 3, 1, ''), ('150783', '1507', '00,15,1507', '扎兰屯市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150783', '扎兰屯市', '', '', '', '', 3, 1, ''), ('150784', '1507', '00,15,1507', '额尔古纳市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150784', '额尔古纳市', '', '', '', '', 3, 1, ''), ('150785', '1507', '00,15,1507', '根河市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150785', '根河市', '', '', '', '', 3, 1, ''), ('1508', '15', '00,15', '巴彦淖尔市', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '', '', '', '', '', '', 2, 1, ''), ('150802', '1508', '00,15,1508', '临河区', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150802', '临河区', '', '', '', '', 3, 1, ''), ('150821', '1508', '00,15,1508', '五原县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150821', '五原县', '', '', '', '', 3, 1, ''), ('150822', '1508', '00,15,1508', '磴口县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150822', '磴口县', '', '', '', '', 3, 1, ''), ('150823', '1508', '00,15,1508', '乌拉特前旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150823', '乌拉特前旗', '', '', '', '', 3, 1, ''), ('150824', '1508', '00,15,1508', '乌拉特中旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150824', '乌拉特中旗', '', '', '', '', 3, 1, ''), ('150825', '1508', '00,15,1508', '乌拉特后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150825', '乌拉特后旗', '', '', '', '', 3, 1, ''), ('150826', '1508', '00,15,1508', '杭锦后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150826', '杭锦后旗', '', '', '', '', 3, 1, ''), ('1509', '15', '00,15', '乌兰察布市', '15', '内蒙古自治区', '1509', '乌兰察布市', '', '', '', '', '', '', 2, 1, ''), ('150902', '1509', '00,15,1509', '集宁区', '15', '内蒙古自治区', '1509', '乌兰察布市', '150902', '集宁区', '', '', '', '', 3, 1, ''), ('150921', '1509', '00,15,1509', '卓资县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150921', '卓资县', '', '', '', '', 3, 1, ''), ('150922', '1509', '00,15,1509', '化德县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150922', '化德县', '', '', '', '', 3, 1, ''), ('150923', '1509', '00,15,1509', '商都县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150923', '商都县', '', '', '', '', 3, 1, ''), ('150924', '1509', '00,15,1509', '兴和县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150924', '兴和县', '', '', '', '', 3, 1, ''), ('150925', '1509', '00,15,1509', '凉城县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150925', '凉城县', '', '', '', '', 3, 1, ''), ('150926', '1509', '00,15,1509', '察哈尔右翼前旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150926', '察哈尔右翼前旗', '', '', '', '', 3, 1, ''), ('150927', '1509', '00,15,1509', '察哈尔右翼中旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150927', '察哈尔右翼中旗', '', '', '', '', 3, 1, ''), ('150928', '1509', '00,15,1509', '察哈尔右翼后旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150928', '察哈尔右翼后旗', '', '', '', '', 3, 1, ''), ('150929', '1509', '00,15,1509', '四子王旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150929', '四子王旗', '', '', '', '', 3, 1, ''), ('150981', '1509', '00,15,1509', '丰镇市', '15', '内蒙古自治区', '1509', '乌兰察布市', '150981', '丰镇市', '', '', '', '', 3, 1, ''), ('1522', '15', '00,15', '兴安盟', '15', '内蒙古自治区', '1522', '兴安盟', '', '', '', '', '', '', 2, 1, ''), ('152201', '1522', '00,15,1522', '乌兰浩特市', '15', '内蒙古自治区', '1522', '兴安盟', '152201', '乌兰浩特市', '', '', '', '', 3, 1, ''), ('152202', '1522', '00,15,1522', '阿尔山市', '15', '内蒙古自治区', '1522', '兴安盟', '152202', '阿尔山市', '', '', '', '', 3, 1, ''), ('152221', '1522', '00,15,1522', '科尔沁右翼前旗', '15', '内蒙古自治区', '1522', '兴安盟', '152221', '科尔沁右翼前旗', '', '', '', '', 3, 1, ''), ('152222', '1522', '00,15,1522', '科尔沁右翼中旗', '15', '内蒙古自治区', '1522', '兴安盟', '152222', '科尔沁右翼中旗', '', '', '', '', 3, 1, ''), ('152223', '1522', '00,15,1522', '扎赉特旗', '15', '内蒙古自治区', '1522', '兴安盟', '152223', '扎赉特旗', '', '', '', '', 3, 1, ''), ('152224', '1522', '00,15,1522', '突泉县', '15', '内蒙古自治区', '1522', '兴安盟', '152224', '突泉县', '', '', '', '', 3, 1, ''), ('1525', '15', '00,15', '锡林郭勒盟', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '', '', '', '', '', '', 2, 1, ''), ('152501', '1525', '00,15,1525', '二连浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152501', '二连浩特市', '', '', '', '', 3, 1, ''), ('152502', '1525', '00,15,1525', '锡林浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152502', '锡林浩特市', '', '', '', '', 3, 1, ''), ('152522', '1525', '00,15,1525', '阿巴嘎旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152522', '阿巴嘎旗', '', '', '', '', 3, 1, ''), ('152523', '1525', '00,15,1525', '苏尼特左旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152523', '苏尼特左旗', '', '', '', '', 3, 1, ''), ('152524', '1525', '00,15,1525', '苏尼特右旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152524', '苏尼特右旗', '', '', '', '', 3, 1, ''), ('152525', '1525', '00,15,1525', '东乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152525', '东乌珠穆沁旗', '', '', '', '', 3, 1, ''), ('152526', '1525', '00,15,1525', '西乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152526', '西乌珠穆沁旗', '', '', '', '', 3, 1, ''), ('152527', '1525', '00,15,1525', '太仆寺旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152527', '太仆寺旗', '', '', '', '', 3, 1, ''), ('152528', '1525', '00,15,1525', '镶黄旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152528', '镶黄旗', '', '', '', '', 3, 1, ''), ('152529', '1525', '00,15,1525', '正镶白旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152529', '正镶白旗', '', '', '', '', 3, 1, ''), ('152530', '1525', '00,15,1525', '正蓝旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152530', '正蓝旗', '', '', '', '', 3, 1, ''), ('152531', '1525', '00,15,1525', '多伦县', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152531', '多伦县', '', '', '', '', 3, 1, ''), ('1529', '15', '00,15', '阿拉善盟', '15', '内蒙古自治区', '1529', '阿拉善盟', '', '', '', '', '', '', 2, 1, ''), ('152921', '1529', '00,15,1529', '阿拉善左旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152921', '阿拉善左旗', '', '', '', '', 3, 1, ''), ('152922', '1529', '00,15,1529', '阿拉善右旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152922', '阿拉善右旗', '', '', '', '', 3, 1, ''), ('152923', '1529', '00,15,1529', '额济纳旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152923', '额济纳旗', '', '', '', '', 3, 1, ''), ('21', '00', '00', '辽宁省', '21', '辽宁省', '', '', '', '', '', '', '', '', 1, 1, ''), ('2101', '21', '00,21', '沈阳市', '21', '辽宁省', '2101', '沈阳市', '', '', '', '', '', '', 2, 1, ''), ('210102', '2101', '00,21,2101', '和平区', '21', '辽宁省', '2101', '沈阳市', '210102', '和平区', '', '', '', '', 3, 1, ''), ('210103', '2101', '00,21,2101', '沈河区', '21', '辽宁省', '2101', '沈阳市', '210103', '沈河区', '', '', '', '', 3, 1, ''), ('210104', '2101', '00,21,2101', '大东区', '21', '辽宁省', '2101', '沈阳市', '210104', '大东区', '', '', '', '', 3, 1, ''), ('210105', '2101', '00,21,2101', '皇姑区', '21', '辽宁省', '2101', '沈阳市', '210105', '皇姑区', '', '', '', '', 3, 1, ''), ('210106', '2101', '00,21,2101', '铁西区', '21', '辽宁省', '2101', '沈阳市', '210106', '铁西区', '', '', '', '', 3, 1, ''), ('210111', '2101', '00,21,2101', '苏家屯区', '21', '辽宁省', '2101', '沈阳市', '210111', '苏家屯区', '', '', '', '', 3, 1, ''), ('210112', '2101', '00,21,2101', '浑南区', '21', '辽宁省', '2101', '沈阳市', '210112', '浑南区', '', '', '', '', 3, 1, ''), ('210113', '2101', '00,21,2101', '沈北新区', '21', '辽宁省', '2101', '沈阳市', '210113', '沈北新区', '', '', '', '', 3, 1, '');
+INSERT INTO `blade_region` VALUES ('210114', '2101', '00,21,2101', '于洪区', '21', '辽宁省', '2101', '沈阳市', '210114', '于洪区', '', '', '', '', 3, 1, ''), ('210115', '2101', '00,21,2101', '辽中区', '21', '辽宁省', '2101', '沈阳市', '210115', '辽中区', '', '', '', '', 3, 1, ''), ('210123', '2101', '00,21,2101', '康平县', '21', '辽宁省', '2101', '沈阳市', '210123', '康平县', '', '', '', '', 3, 1, ''), ('210124', '2101', '00,21,2101', '法库县', '21', '辽宁省', '2101', '沈阳市', '210124', '法库县', '', '', '', '', 3, 1, ''), ('210181', '2101', '00,21,2101', '新民市', '21', '辽宁省', '2101', '沈阳市', '210181', '新民市', '', '', '', '', 3, 1, ''), ('2102', '21', '00,21', '大连市', '21', '辽宁省', '2102', '大连市', '', '', '', '', '', '', 2, 1, ''), ('210202', '2102', '00,21,2102', '中山区', '21', '辽宁省', '2102', '大连市', '210202', '中山区', '', '', '', '', 3, 1, ''), ('210203', '2102', '00,21,2102', '西岗区', '21', '辽宁省', '2102', '大连市', '210203', '西岗区', '', '', '', '', 3, 1, ''), ('210204', '2102', '00,21,2102', '沙河口区', '21', '辽宁省', '2102', '大连市', '210204', '沙河口区', '', '', '', '', 3, 1, ''), ('210211', '2102', '00,21,2102', '甘井子区', '21', '辽宁省', '2102', '大连市', '210211', '甘井子区', '', '', '', '', 3, 1, ''), ('210212', '2102', '00,21,2102', '旅顺口区', '21', '辽宁省', '2102', '大连市', '210212', '旅顺口区', '', '', '', '', 3, 1, ''), ('210213', '2102', '00,21,2102', '金州区', '21', '辽宁省', '2102', '大连市', '210213', '金州区', '', '', '', '', 3, 1, ''), ('210214', '2102', '00,21,2102', '普兰店区', '21', '辽宁省', '2102', '大连市', '210214', '普兰店区', '', '', '', '', 3, 1, ''), ('210224', '2102', '00,21,2102', '长海县', '21', '辽宁省', '2102', '大连市', '210224', '长海县', '', '', '', '', 3, 1, ''), ('210281', '2102', '00,21,2102', '瓦房店市', '21', '辽宁省', '2102', '大连市', '210281', '瓦房店市', '', '', '', '', 3, 1, ''), ('210283', '2102', '00,21,2102', '庄河市', '21', '辽宁省', '2102', '大连市', '210283', '庄河市', '', '', '', '', 3, 1, ''), ('2103', '21', '00,21', '鞍山市', '21', '辽宁省', '2103', '鞍山市', '', '', '', '', '', '', 2, 1, ''), ('210302', '2103', '00,21,2103', '铁东区', '21', '辽宁省', '2103', '鞍山市', '210302', '铁东区', '', '', '', '', 3, 1, ''), ('210303', '2103', '00,21,2103', '铁西区', '21', '辽宁省', '2103', '鞍山市', '210303', '铁西区', '', '', '', '', 3, 1, ''), ('210304', '2103', '00,21,2103', '立山区', '21', '辽宁省', '2103', '鞍山市', '210304', '立山区', '', '', '', '', 3, 1, ''), ('210311', '2103', '00,21,2103', '千山区', '21', '辽宁省', '2103', '鞍山市', '210311', '千山区', '', '', '', '', 3, 1, ''), ('210321', '2103', '00,21,2103', '台安县', '21', '辽宁省', '2103', '鞍山市', '210321', '台安县', '', '', '', '', 3, 1, ''), ('210323', '2103', '00,21,2103', '岫岩满族自治县', '21', '辽宁省', '2103', '鞍山市', '210323', '岫岩满族自治县', '', '', '', '', 3, 1, ''), ('210381', '2103', '00,21,2103', '海城市', '21', '辽宁省', '2103', '鞍山市', '210381', '海城市', '', '', '', '', 3, 1, ''), ('2104', '21', '00,21', '抚顺市', '21', '辽宁省', '2104', '抚顺市', '', '', '', '', '', '', 2, 1, ''), ('210402', '2104', '00,21,2104', '新抚区', '21', '辽宁省', '2104', '抚顺市', '210402', '新抚区', '', '', '', '', 3, 1, ''), ('210403', '2104', '00,21,2104', '东洲区', '21', '辽宁省', '2104', '抚顺市', '210403', '东洲区', '', '', '', '', 3, 1, ''), ('210404', '2104', '00,21,2104', '望花区', '21', '辽宁省', '2104', '抚顺市', '210404', '望花区', '', '', '', '', 3, 1, ''), ('210411', '2104', '00,21,2104', '顺城区', '21', '辽宁省', '2104', '抚顺市', '210411', '顺城区', '', '', '', '', 3, 1, ''), ('210421', '2104', '00,21,2104', '抚顺县', '21', '辽宁省', '2104', '抚顺市', '210421', '抚顺县', '', '', '', '', 3, 1, ''), ('210422', '2104', '00,21,2104', '新宾满族自治县', '21', '辽宁省', '2104', '抚顺市', '210422', '新宾满族自治县', '', '', '', '', 3, 1, ''), ('210423', '2104', '00,21,2104', '清原满族自治县', '21', '辽宁省', '2104', '抚顺市', '210423', '清原满族自治县', '', '', '', '', 3, 1, ''), ('2105', '21', '00,21', '本溪市', '21', '辽宁省', '2105', '本溪市', '', '', '', '', '', '', 2, 1, ''), ('210502', '2105', '00,21,2105', '平山区', '21', '辽宁省', '2105', '本溪市', '210502', '平山区', '', '', '', '', 3, 1, ''), ('210503', '2105', '00,21,2105', '溪湖区', '21', '辽宁省', '2105', '本溪市', '210503', '溪湖区', '', '', '', '', 3, 1, ''), ('210504', '2105', '00,21,2105', '明山区', '21', '辽宁省', '2105', '本溪市', '210504', '明山区', '', '', '', '', 3, 1, ''), ('210505', '2105', '00,21,2105', '南芬区', '21', '辽宁省', '2105', '本溪市', '210505', '南芬区', '', '', '', '', 3, 1, ''), ('210521', '2105', '00,21,2105', '本溪满族自治县', '21', '辽宁省', '2105', '本溪市', '210521', '本溪满族自治县', '', '', '', '', 3, 1, ''), ('210522', '2105', '00,21,2105', '桓仁满族自治县', '21', '辽宁省', '2105', '本溪市', '210522', '桓仁满族自治县', '', '', '', '', 3, 1, ''), ('2106', '21', '00,21', '丹东市', '21', '辽宁省', '2106', '丹东市', '', '', '', '', '', '', 2, 1, ''), ('210602', '2106', '00,21,2106', '元宝区', '21', '辽宁省', '2106', '丹东市', '210602', '元宝区', '', '', '', '', 3, 1, ''), ('210603', '2106', '00,21,2106', '振兴区', '21', '辽宁省', '2106', '丹东市', '210603', '振兴区', '', '', '', '', 3, 1, ''), ('210604', '2106', '00,21,2106', '振安区', '21', '辽宁省', '2106', '丹东市', '210604', '振安区', '', '', '', '', 3, 1, ''), ('210624', '2106', '00,21,2106', '宽甸满族自治县', '21', '辽宁省', '2106', '丹东市', '210624', '宽甸满族自治县', '', '', '', '', 3, 1, ''), ('210681', '2106', '00,21,2106', '东港市', '21', '辽宁省', '2106', '丹东市', '210681', '东港市', '', '', '', '', 3, 1, ''), ('210682', '2106', '00,21,2106', '凤城市', '21', '辽宁省', '2106', '丹东市', '210682', '凤城市', '', '', '', '', 3, 1, ''), ('2107', '21', '00,21', '锦州市', '21', '辽宁省', '2107', '锦州市', '', '', '', '', '', '', 2, 1, ''), ('210702', '2107', '00,21,2107', '古塔区', '21', '辽宁省', '2107', '锦州市', '210702', '古塔区', '', '', '', '', 3, 1, ''), ('210703', '2107', '00,21,2107', '凌河区', '21', '辽宁省', '2107', '锦州市', '210703', '凌河区', '', '', '', '', 3, 1, ''), ('210711', '2107', '00,21,2107', '太和区', '21', '辽宁省', '2107', '锦州市', '210711', '太和区', '', '', '', '', 3, 1, ''), ('210726', '2107', '00,21,2107', '黑山县', '21', '辽宁省', '2107', '锦州市', '210726', '黑山县', '', '', '', '', 3, 1, ''), ('210727', '2107', '00,21,2107', '义县', '21', '辽宁省', '2107', '锦州市', '210727', '义县', '', '', '', '', 3, 1, ''), ('210781', '2107', '00,21,2107', '凌海市', '21', '辽宁省', '2107', '锦州市', '210781', '凌海市', '', '', '', '', 3, 1, ''), ('210782', '2107', '00,21,2107', '北镇市', '21', '辽宁省', '2107', '锦州市', '210782', '北镇市', '', '', '', '', 3, 1, ''), ('2108', '21', '00,21', '营口市', '21', '辽宁省', '2108', '营口市', '', '', '', '', '', '', 2, 1, ''), ('210802', '2108', '00,21,2108', '站前区', '21', '辽宁省', '2108', '营口市', '210802', '站前区', '', '', '', '', 3, 1, ''), ('210803', '2108', '00,21,2108', '西市区', '21', '辽宁省', '2108', '营口市', '210803', '西市区', '', '', '', '', 3, 1, ''), ('210804', '2108', '00,21,2108', '鲅鱼圈区', '21', '辽宁省', '2108', '营口市', '210804', '鲅鱼圈区', '', '', '', '', 3, 1, ''), ('210811', '2108', '00,21,2108', '老边区', '21', '辽宁省', '2108', '营口市', '210811', '老边区', '', '', '', '', 3, 1, ''), ('210881', '2108', '00,21,2108', '盖州市', '21', '辽宁省', '2108', '营口市', '210881', '盖州市', '', '', '', '', 3, 1, ''), ('210882', '2108', '00,21,2108', '大石桥市', '21', '辽宁省', '2108', '营口市', '210882', '大石桥市', '', '', '', '', 3, 1, ''), ('2109', '21', '00,21', '阜新市', '21', '辽宁省', '2109', '阜新市', '', '', '', '', '', '', 2, 1, ''), ('210902', '2109', '00,21,2109', '海州区', '21', '辽宁省', '2109', '阜新市', '210902', '海州区', '', '', '', '', 3, 1, ''), ('210903', '2109', '00,21,2109', '新邱区', '21', '辽宁省', '2109', '阜新市', '210903', '新邱区', '', '', '', '', 3, 1, ''), ('210904', '2109', '00,21,2109', '太平区', '21', '辽宁省', '2109', '阜新市', '210904', '太平区', '', '', '', '', 3, 1, ''), ('210905', '2109', '00,21,2109', '清河门区', '21', '辽宁省', '2109', '阜新市', '210905', '清河门区', '', '', '', '', 3, 1, ''), ('210911', '2109', '00,21,2109', '细河区', '21', '辽宁省', '2109', '阜新市', '210911', '细河区', '', '', '', '', 3, 1, ''), ('210921', '2109', '00,21,2109', '阜新蒙古族自治县', '21', '辽宁省', '2109', '阜新市', '210921', '阜新蒙古族自治县', '', '', '', '', 3, 1, ''), ('210922', '2109', '00,21,2109', '彰武县', '21', '辽宁省', '2109', '阜新市', '210922', '彰武县', '', '', '', '', 3, 1, ''), ('2110', '21', '00,21', '辽阳市', '21', '辽宁省', '2110', '辽阳市', '', '', '', '', '', '', 2, 1, ''), ('211002', '2110', '00,21,2110', '白塔区', '21', '辽宁省', '2110', '辽阳市', '211002', '白塔区', '', '', '', '', 3, 1, ''), ('211003', '2110', '00,21,2110', '文圣区', '21', '辽宁省', '2110', '辽阳市', '211003', '文圣区', '', '', '', '', 3, 1, ''), ('211004', '2110', '00,21,2110', '宏伟区', '21', '辽宁省', '2110', '辽阳市', '211004', '宏伟区', '', '', '', '', 3, 1, ''), ('211005', '2110', '00,21,2110', '弓长岭区', '21', '辽宁省', '2110', '辽阳市', '211005', '弓长岭区', '', '', '', '', 3, 1, ''), ('211011', '2110', '00,21,2110', '太子河区', '21', '辽宁省', '2110', '辽阳市', '211011', '太子河区', '', '', '', '', 3, 1, ''), ('211021', '2110', '00,21,2110', '辽阳县', '21', '辽宁省', '2110', '辽阳市', '211021', '辽阳县', '', '', '', '', 3, 1, ''), ('211081', '2110', '00,21,2110', '灯塔市', '21', '辽宁省', '2110', '辽阳市', '211081', '灯塔市', '', '', '', '', 3, 1, ''), ('2111', '21', '00,21', '盘锦市', '21', '辽宁省', '2111', '盘锦市', '', '', '', '', '', '', 2, 1, ''), ('211102', '2111', '00,21,2111', '双台子区', '21', '辽宁省', '2111', '盘锦市', '211102', '双台子区', '', '', '', '', 3, 1, ''), ('211103', '2111', '00,21,2111', '兴隆台区', '21', '辽宁省', '2111', '盘锦市', '211103', '兴隆台区', '', '', '', '', 3, 1, ''), ('211104', '2111', '00,21,2111', '大洼区', '21', '辽宁省', '2111', '盘锦市', '211104', '大洼区', '', '', '', '', 3, 1, ''), ('211122', '2111', '00,21,2111', '盘山县', '21', '辽宁省', '2111', '盘锦市', '211122', '盘山县', '', '', '', '', 3, 1, ''), ('2112', '21', '00,21', '铁岭市', '21', '辽宁省', '2112', '铁岭市', '', '', '', '', '', '', 2, 1, ''), ('211202', '2112', '00,21,2112', '银州区', '21', '辽宁省', '2112', '铁岭市', '211202', '银州区', '', '', '', '', 3, 1, ''), ('211204', '2112', '00,21,2112', '清河区', '21', '辽宁省', '2112', '铁岭市', '211204', '清河区', '', '', '', '', 3, 1, ''), ('211221', '2112', '00,21,2112', '铁岭县', '21', '辽宁省', '2112', '铁岭市', '211221', '铁岭县', '', '', '', '', 3, 1, ''), ('211223', '2112', '00,21,2112', '西丰县', '21', '辽宁省', '2112', '铁岭市', '211223', '西丰县', '', '', '', '', 3, 1, ''), ('211224', '2112', '00,21,2112', '昌图县', '21', '辽宁省', '2112', '铁岭市', '211224', '昌图县', '', '', '', '', 3, 1, ''), ('211281', '2112', '00,21,2112', '调兵山市', '21', '辽宁省', '2112', '铁岭市', '211281', '调兵山市', '', '', '', '', 3, 1, ''), ('211282', '2112', '00,21,2112', '开原市', '21', '辽宁省', '2112', '铁岭市', '211282', '开原市', '', '', '', '', 3, 1, ''), ('2113', '21', '00,21', '朝阳市', '21', '辽宁省', '2113', '朝阳市', '', '', '', '', '', '', 2, 1, ''), ('211302', '2113', '00,21,2113', '双塔区', '21', '辽宁省', '2113', '朝阳市', '211302', '双塔区', '', '', '', '', 3, 1, ''), ('211303', '2113', '00,21,2113', '龙城区', '21', '辽宁省', '2113', '朝阳市', '211303', '龙城区', '', '', '', '', 3, 1, ''), ('211321', '2113', '00,21,2113', '朝阳县', '21', '辽宁省', '2113', '朝阳市', '211321', '朝阳县', '', '', '', '', 3, 1, ''), ('211322', '2113', '00,21,2113', '建平县', '21', '辽宁省', '2113', '朝阳市', '211322', '建平县', '', '', '', '', 3, 1, ''), ('211324', '2113', '00,21,2113', '喀喇沁左翼蒙古族自治县', '21', '辽宁省', '2113', '朝阳市', '211324', '喀喇沁左翼蒙古族自治县', '', '', '', '', 3, 1, ''), ('211381', '2113', '00,21,2113', '北票市', '21', '辽宁省', '2113', '朝阳市', '211381', '北票市', '', '', '', '', 3, 1, ''), ('211382', '2113', '00,21,2113', '凌源市', '21', '辽宁省', '2113', '朝阳市', '211382', '凌源市', '', '', '', '', 3, 1, ''), ('2114', '21', '00,21', '葫芦岛市', '21', '辽宁省', '2114', '葫芦岛市', '', '', '', '', '', '', 2, 1, ''), ('211402', '2114', '00,21,2114', '连山区', '21', '辽宁省', '2114', '葫芦岛市', '211402', '连山区', '', '', '', '', 3, 1, ''), ('211403', '2114', '00,21,2114', '龙港区', '21', '辽宁省', '2114', '葫芦岛市', '211403', '龙港区', '', '', '', '', 3, 1, ''), ('211404', '2114', '00,21,2114', '南票区', '21', '辽宁省', '2114', '葫芦岛市', '211404', '南票区', '', '', '', '', 3, 1, ''), ('211421', '2114', '00,21,2114', '绥中县', '21', '辽宁省', '2114', '葫芦岛市', '211421', '绥中县', '', '', '', '', 3, 1, ''), ('211422', '2114', '00,21,2114', '建昌县', '21', '辽宁省', '2114', '葫芦岛市', '211422', '建昌县', '', '', '', '', 3, 1, ''), ('211481', '2114', '00,21,2114', '兴城市', '21', '辽宁省', '2114', '葫芦岛市', '211481', '兴城市', '', '', '', '', 3, 1, ''), ('22', '00', '00', '吉林省', '22', '吉林省', '', '', '', '', '', '', '', '', 1, 1, ''), ('2201', '22', '00,22', '长春市', '22', '吉林省', '2201', '长春市', '', '', '', '', '', '', 2, 1, ''), ('220102', '2201', '00,22,2201', '南关区', '22', '吉林省', '2201', '长春市', '220102', '南关区', '', '', '', '', 3, 1, ''), ('220103', '2201', '00,22,2201', '宽城区', '22', '吉林省', '2201', '长春市', '220103', '宽城区', '', '', '', '', 3, 1, ''), ('220104', '2201', '00,22,2201', '朝阳区', '22', '吉林省', '2201', '长春市', '220104', '朝阳区', '', '', '', '', 3, 1, ''), ('220105', '2201', '00,22,2201', '二道区', '22', '吉林省', '2201', '长春市', '220105', '二道区', '', '', '', '', 3, 1, ''), ('220106', '2201', '00,22,2201', '绿园区', '22', '吉林省', '2201', '长春市', '220106', '绿园区', '', '', '', '', 3, 1, ''), ('220112', '2201', '00,22,2201', '双阳区', '22', '吉林省', '2201', '长春市', '220112', '双阳区', '', '', '', '', 3, 1, ''), ('220113', '2201', '00,22,2201', '九台区', '22', '吉林省', '2201', '长春市', '220113', '九台区', '', '', '', '', 3, 1, ''), ('220122', '2201', '00,22,2201', '农安县', '22', '吉林省', '2201', '长春市', '220122', '农安县', '', '', '', '', 3, 1, ''), ('220182', '2201', '00,22,2201', '榆树市', '22', '吉林省', '2201', '长春市', '220182', '榆树市', '', '', '', '', 3, 1, ''), ('220183', '2201', '00,22,2201', '德惠市', '22', '吉林省', '2201', '长春市', '220183', '德惠市', '', '', '', '', 3, 1, ''), ('2202', '22', '00,22', '吉林市', '22', '吉林省', '2202', '吉林市', '', '', '', '', '', '', 2, 1, ''), ('220202', '2202', '00,22,2202', '昌邑区', '22', '吉林省', '2202', '吉林市', '220202', '昌邑区', '', '', '', '', 3, 1, ''), ('220203', '2202', '00,22,2202', '龙潭区', '22', '吉林省', '2202', '吉林市', '220203', '龙潭区', '', '', '', '', 3, 1, ''), ('220204', '2202', '00,22,2202', '船营区', '22', '吉林省', '2202', '吉林市', '220204', '船营区', '', '', '', '', 3, 1, ''), ('220211', '2202', '00,22,2202', '丰满区', '22', '吉林省', '2202', '吉林市', '220211', '丰满区', '', '', '', '', 3, 1, ''), ('220221', '2202', '00,22,2202', '永吉县', '22', '吉林省', '2202', '吉林市', '220221', '永吉县', '', '', '', '', 3, 1, ''), ('220281', '2202', '00,22,2202', '蛟河市', '22', '吉林省', '2202', '吉林市', '220281', '蛟河市', '', '', '', '', 3, 1, ''), ('220282', '2202', '00,22,2202', '桦甸市', '22', '吉林省', '2202', '吉林市', '220282', '桦甸市', '', '', '', '', 3, 1, ''), ('220283', '2202', '00,22,2202', '舒兰市', '22', '吉林省', '2202', '吉林市', '220283', '舒兰市', '', '', '', '', 3, 1, ''), ('220284', '2202', '00,22,2202', '磐石市', '22', '吉林省', '2202', '吉林市', '220284', '磐石市', '', '', '', '', 3, 1, ''), ('2203', '22', '00,22', '四平市', '22', '吉林省', '2203', '四平市', '', '', '', '', '', '', 2, 1, ''), ('220302', '2203', '00,22,2203', '铁西区', '22', '吉林省', '2203', '四平市', '220302', '铁西区', '', '', '', '', 3, 1, ''), ('220303', '2203', '00,22,2203', '铁东区', '22', '吉林省', '2203', '四平市', '220303', '铁东区', '', '', '', '', 3, 1, ''), ('220322', '2203', '00,22,2203', '梨树县', '22', '吉林省', '2203', '四平市', '220322', '梨树县', '', '', '', '', 3, 1, ''), ('220323', '2203', '00,22,2203', '伊通满族自治县', '22', '吉林省', '2203', '四平市', '220323', '伊通满族自治县', '', '', '', '', 3, 1, ''), ('220381', '2203', '00,22,2203', '公主岭市', '22', '吉林省', '2203', '四平市', '220381', '公主岭市', '', '', '', '', 3, 1, ''), ('220382', '2203', '00,22,2203', '双辽市', '22', '吉林省', '2203', '四平市', '220382', '双辽市', '', '', '', '', 3, 1, ''), ('2204', '22', '00,22', '辽源市', '22', '吉林省', '2204', '辽源市', '', '', '', '', '', '', 2, 1, ''), ('220402', '2204', '00,22,2204', '龙山区', '22', '吉林省', '2204', '辽源市', '220402', '龙山区', '', '', '', '', 3, 1, ''), ('220403', '2204', '00,22,2204', '西安区', '22', '吉林省', '2204', '辽源市', '220403', '西安区', '', '', '', '', 3, 1, ''), ('220421', '2204', '00,22,2204', '东丰县', '22', '吉林省', '2204', '辽源市', '220421', '东丰县', '', '', '', '', 3, 1, ''), ('220422', '2204', '00,22,2204', '东辽县', '22', '吉林省', '2204', '辽源市', '220422', '东辽县', '', '', '', '', 3, 1, ''), ('2205', '22', '00,22', '通化市', '22', '吉林省', '2205', '通化市', '', '', '', '', '', '', 2, 1, ''), ('220502', '2205', '00,22,2205', '东昌区', '22', '吉林省', '2205', '通化市', '220502', '东昌区', '', '', '', '', 3, 1, ''), ('220503', '2205', '00,22,2205', '二道江区', '22', '吉林省', '2205', '通化市', '220503', '二道江区', '', '', '', '', 3, 1, ''), ('220521', '2205', '00,22,2205', '通化县', '22', '吉林省', '2205', '通化市', '220521', '通化县', '', '', '', '', 3, 1, ''), ('220523', '2205', '00,22,2205', '辉南县', '22', '吉林省', '2205', '通化市', '220523', '辉南县', '', '', '', '', 3, 1, ''), ('220524', '2205', '00,22,2205', '柳河县', '22', '吉林省', '2205', '通化市', '220524', '柳河县', '', '', '', '', 3, 1, ''), ('220581', '2205', '00,22,2205', '梅河口市', '22', '吉林省', '2205', '通化市', '220581', '梅河口市', '', '', '', '', 3, 1, ''), ('220582', '2205', '00,22,2205', '集安市', '22', '吉林省', '2205', '通化市', '220582', '集安市', '', '', '', '', 3, 1, ''), ('2206', '22', '00,22', '白山市', '22', '吉林省', '2206', '白山市', '', '', '', '', '', '', 2, 1, ''), ('220602', '2206', '00,22,2206', '浑江区', '22', '吉林省', '2206', '白山市', '220602', '浑江区', '', '', '', '', 3, 1, ''), ('220605', '2206', '00,22,2206', '江源区', '22', '吉林省', '2206', '白山市', '220605', '江源区', '', '', '', '', 3, 1, ''), ('220621', '2206', '00,22,2206', '抚松县', '22', '吉林省', '2206', '白山市', '220621', '抚松县', '', '', '', '', 3, 1, ''), ('220622', '2206', '00,22,2206', '靖宇县', '22', '吉林省', '2206', '白山市', '220622', '靖宇县', '', '', '', '', 3, 1, ''), ('220623', '2206', '00,22,2206', '长白朝鲜族自治县', '22', '吉林省', '2206', '白山市', '220623', '长白朝鲜族自治县', '', '', '', '', 3, 1, ''), ('220681', '2206', '00,22,2206', '临江市', '22', '吉林省', '2206', '白山市', '220681', '临江市', '', '', '', '', 3, 1, ''), ('2207', '22', '00,22', '松原市', '22', '吉林省', '2207', '松原市', '', '', '', '', '', '', 2, 1, ''), ('220702', '2207', '00,22,2207', '宁江区', '22', '吉林省', '2207', '松原市', '220702', '宁江区', '', '', '', '', 3, 1, ''), ('220721', '2207', '00,22,2207', '前郭尔罗斯蒙古族自治县', '22', '吉林省', '2207', '松原市', '220721', '前郭尔罗斯蒙古族自治县', '', '', '', '', 3, 1, ''), ('220722', '2207', '00,22,2207', '长岭县', '22', '吉林省', '2207', '松原市', '220722', '长岭县', '', '', '', '', 3, 1, ''), ('220723', '2207', '00,22,2207', '乾安县', '22', '吉林省', '2207', '松原市', '220723', '乾安县', '', '', '', '', 3, 1, ''), ('220781', '2207', '00,22,2207', '扶余市', '22', '吉林省', '2207', '松原市', '220781', '扶余市', '', '', '', '', 3, 1, ''), ('2208', '22', '00,22', '白城市', '22', '吉林省', '2208', '白城市', '', '', '', '', '', '', 2, 1, ''), ('220802', '2208', '00,22,2208', '洮北区', '22', '吉林省', '2208', '白城市', '220802', '洮北区', '', '', '', '', 3, 1, ''), ('220821', '2208', '00,22,2208', '镇赉县', '22', '吉林省', '2208', '白城市', '220821', '镇赉县', '', '', '', '', 3, 1, ''), ('220822', '2208', '00,22,2208', '通榆县', '22', '吉林省', '2208', '白城市', '220822', '通榆县', '', '', '', '', 3, 1, ''), ('220881', '2208', '00,22,2208', '洮南市', '22', '吉林省', '2208', '白城市', '220881', '洮南市', '', '', '', '', 3, 1, ''), ('220882', '2208', '00,22,2208', '大安市', '22', '吉林省', '2208', '白城市', '220882', '大安市', '', '', '', '', 3, 1, ''), ('2224', '22', '00,22', '延边朝鲜族自治州', '22', '吉林省', '2224', '延边朝鲜族自治州', '', '', '', '', '', '', 2, 1, ''), ('222401', '2224', '00,22,2224', '延吉市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222401', '延吉市', '', '', '', '', 3, 1, ''), ('222402', '2224', '00,22,2224', '图们市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222402', '图们市', '', '', '', '', 3, 1, ''), ('222403', '2224', '00,22,2224', '敦化市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222403', '敦化市', '', '', '', '', 3, 1, ''), ('222404', '2224', '00,22,2224', '珲春市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222404', '珲春市', '', '', '', '', 3, 1, ''), ('222405', '2224', '00,22,2224', '龙井市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222405', '龙井市', '', '', '', '', 3, 1, ''), ('222406', '2224', '00,22,2224', '和龙市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222406', '和龙市', '', '', '', '', 3, 1, ''), ('222424', '2224', '00,22,2224', '汪清县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222424', '汪清县', '', '', '', '', 3, 1, ''), ('222426', '2224', '00,22,2224', '安图县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222426', '安图县', '', '', '', '', 3, 1, ''), ('23', '00', '00', '黑龙江省', '23', '黑龙江省', '', '', '', '', '', '', '', '', 1, 1, ''), ('2301', '23', '00,23', '哈尔滨市', '23', '黑龙江省', '2301', '哈尔滨市', '', '', '', '', '', '', 2, 1, ''), ('230102', '2301', '00,23,2301', '道里区', '23', '黑龙江省', '2301', '哈尔滨市', '230102', '道里区', '', '', '', '', 3, 1, ''), ('230103', '2301', '00,23,2301', '南岗区', '23', '黑龙江省', '2301', '哈尔滨市', '230103', '南岗区', '', '', '', '', 3, 1, ''), ('230104', '2301', '00,23,2301', '道外区', '23', '黑龙江省', '2301', '哈尔滨市', '230104', '道外区', '', '', '', '', 3, 1, ''), ('230108', '2301', '00,23,2301', '平房区', '23', '黑龙江省', '2301', '哈尔滨市', '230108', '平房区', '', '', '', '', 3, 1, ''), ('230109', '2301', '00,23,2301', '松北区', '23', '黑龙江省', '2301', '哈尔滨市', '230109', '松北区', '', '', '', '', 3, 1, ''), ('230110', '2301', '00,23,2301', '香坊区', '23', '黑龙江省', '2301', '哈尔滨市', '230110', '香坊区', '', '', '', '', 3, 1, ''), ('230111', '2301', '00,23,2301', '呼兰区', '23', '黑龙江省', '2301', '哈尔滨市', '230111', '呼兰区', '', '', '', '', 3, 1, ''), ('230112', '2301', '00,23,2301', '阿城区', '23', '黑龙江省', '2301', '哈尔滨市', '230112', '阿城区', '', '', '', '', 3, 1, ''), ('230113', '2301', '00,23,2301', '双城区', '23', '黑龙江省', '2301', '哈尔滨市', '230113', '双城区', '', '', '', '', 3, 1, ''), ('230123', '2301', '00,23,2301', '依兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230123', '依兰县', '', '', '', '', 3, 1, ''), ('230124', '2301', '00,23,2301', '方正县', '23', '黑龙江省', '2301', '哈尔滨市', '230124', '方正县', '', '', '', '', 3, 1, ''), ('230125', '2301', '00,23,2301', '宾县', '23', '黑龙江省', '2301', '哈尔滨市', '230125', '宾县', '', '', '', '', 3, 1, ''), ('230126', '2301', '00,23,2301', '巴彦县', '23', '黑龙江省', '2301', '哈尔滨市', '230126', '巴彦县', '', '', '', '', 3, 1, ''), ('230127', '2301', '00,23,2301', '木兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230127', '木兰县', '', '', '', '', 3, 1, ''), ('230128', '2301', '00,23,2301', '通河县', '23', '黑龙江省', '2301', '哈尔滨市', '230128', '通河县', '', '', '', '', 3, 1, ''), ('230129', '2301', '00,23,2301', '延寿县', '23', '黑龙江省', '2301', '哈尔滨市', '230129', '延寿县', '', '', '', '', 3, 1, ''), ('230183', '2301', '00,23,2301', '尚志市', '23', '黑龙江省', '2301', '哈尔滨市', '230183', '尚志市', '', '', '', '', 3, 1, ''), ('230184', '2301', '00,23,2301', '五常市', '23', '黑龙江省', '2301', '哈尔滨市', '230184', '五常市', '', '', '', '', 3, 1, ''), ('2302', '23', '00,23', '齐齐哈尔市', '23', '黑龙江省', '2302', '齐齐哈尔市', '', '', '', '', '', '', 2, 1, ''), ('230202', '2302', '00,23,2302', '龙沙区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230202', '龙沙区', '', '', '', '', 3, 1, ''), ('230203', '2302', '00,23,2302', '建华区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230203', '建华区', '', '', '', '', 3, 1, ''), ('230204', '2302', '00,23,2302', '铁锋区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230204', '铁锋区', '', '', '', '', 3, 1, ''), ('230205', '2302', '00,23,2302', '昂昂溪区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230205', '昂昂溪区', '', '', '', '', 3, 1, ''), ('230206', '2302', '00,23,2302', '富拉尔基区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230206', '富拉尔基区', '', '', '', '', 3, 1, ''), ('230207', '2302', '00,23,2302', '碾子山区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230207', '碾子山区', '', '', '', '', 3, 1, ''), ('230208', '2302', '00,23,2302', '梅里斯达斡尔族区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230208', '梅里斯达斡尔族区', '', '', '', '', 3, 1, ''), ('230221', '2302', '00,23,2302', '龙江县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230221', '龙江县', '', '', '', '', 3, 1, ''), ('230223', '2302', '00,23,2302', '依安县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230223', '依安县', '', '', '', '', 3, 1, ''), ('230224', '2302', '00,23,2302', '泰来县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230224', '泰来县', '', '', '', '', 3, 1, ''), ('230225', '2302', '00,23,2302', '甘南县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230225', '甘南县', '', '', '', '', 3, 1, ''), ('230227', '2302', '00,23,2302', '富裕县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230227', '富裕县', '', '', '', '', 3, 1, ''), ('230229', '2302', '00,23,2302', '克山县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230229', '克山县', '', '', '', '', 3, 1, ''), ('230230', '2302', '00,23,2302', '克东县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230230', '克东县', '', '', '', '', 3, 1, ''), ('230231', '2302', '00,23,2302', '拜泉县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230231', '拜泉县', '', '', '', '', 3, 1, ''), ('230281', '2302', '00,23,2302', '讷河市', '23', '黑龙江省', '2302', '齐齐哈尔市', '230281', '讷河市', '', '', '', '', 3, 1, ''), ('2303', '23', '00,23', '鸡西市', '23', '黑龙江省', '2303', '鸡西市', '', '', '', '', '', '', 2, 1, ''), ('230302', '2303', '00,23,2303', '鸡冠区', '23', '黑龙江省', '2303', '鸡西市', '230302', '鸡冠区', '', '', '', '', 3, 1, ''), ('230303', '2303', '00,23,2303', '恒山区', '23', '黑龙江省', '2303', '鸡西市', '230303', '恒山区', '', '', '', '', 3, 1, ''), ('230304', '2303', '00,23,2303', '滴道区', '23', '黑龙江省', '2303', '鸡西市', '230304', '滴道区', '', '', '', '', 3, 1, ''), ('230305', '2303', '00,23,2303', '梨树区', '23', '黑龙江省', '2303', '鸡西市', '230305', '梨树区', '', '', '', '', 3, 1, ''), ('230306', '2303', '00,23,2303', '城子河区', '23', '黑龙江省', '2303', '鸡西市', '230306', '城子河区', '', '', '', '', 3, 1, ''), ('230307', '2303', '00,23,2303', '麻山区', '23', '黑龙江省', '2303', '鸡西市', '230307', '麻山区', '', '', '', '', 3, 1, ''), ('230321', '2303', '00,23,2303', '鸡东县', '23', '黑龙江省', '2303', '鸡西市', '230321', '鸡东县', '', '', '', '', 3, 1, ''), ('230381', '2303', '00,23,2303', '虎林市', '23', '黑龙江省', '2303', '鸡西市', '230381', '虎林市', '', '', '', '', 3, 1, ''), ('230382', '2303', '00,23,2303', '密山市', '23', '黑龙江省', '2303', '鸡西市', '230382', '密山市', '', '', '', '', 3, 1, ''), ('2304', '23', '00,23', '鹤岗市', '23', '黑龙江省', '2304', '鹤岗市', '', '', '', '', '', '', 2, 1, ''), ('230402', '2304', '00,23,2304', '向阳区', '23', '黑龙江省', '2304', '鹤岗市', '230402', '向阳区', '', '', '', '', 3, 1, ''), ('230403', '2304', '00,23,2304', '工农区', '23', '黑龙江省', '2304', '鹤岗市', '230403', '工农区', '', '', '', '', 3, 1, ''), ('230404', '2304', '00,23,2304', '南山区', '23', '黑龙江省', '2304', '鹤岗市', '230404', '南山区', '', '', '', '', 3, 1, ''), ('230405', '2304', '00,23,2304', '兴安区', '23', '黑龙江省', '2304', '鹤岗市', '230405', '兴安区', '', '', '', '', 3, 1, ''), ('230406', '2304', '00,23,2304', '东山区', '23', '黑龙江省', '2304', '鹤岗市', '230406', '东山区', '', '', '', '', 3, 1, ''), ('230407', '2304', '00,23,2304', '兴山区', '23', '黑龙江省', '2304', '鹤岗市', '230407', '兴山区', '', '', '', '', 3, 1, ''), ('230421', '2304', '00,23,2304', '萝北县', '23', '黑龙江省', '2304', '鹤岗市', '230421', '萝北县', '', '', '', '', 3, 1, ''), ('230422', '2304', '00,23,2304', '绥滨县', '23', '黑龙江省', '2304', '鹤岗市', '230422', '绥滨县', '', '', '', '', 3, 1, ''), ('2305', '23', '00,23', '双鸭山市', '23', '黑龙江省', '2305', '双鸭山市', '', '', '', '', '', '', 2, 1, ''), ('230502', '2305', '00,23,2305', '尖山区', '23', '黑龙江省', '2305', '双鸭山市', '230502', '尖山区', '', '', '', '', 3, 1, ''), ('230503', '2305', '00,23,2305', '岭东区', '23', '黑龙江省', '2305', '双鸭山市', '230503', '岭东区', '', '', '', '', 3, 1, ''), ('230505', '2305', '00,23,2305', '四方台区', '23', '黑龙江省', '2305', '双鸭山市', '230505', '四方台区', '', '', '', '', 3, 1, ''), ('230506', '2305', '00,23,2305', '宝山区', '23', '黑龙江省', '2305', '双鸭山市', '230506', '宝山区', '', '', '', '', 3, 1, ''), ('230521', '2305', '00,23,2305', '集贤县', '23', '黑龙江省', '2305', '双鸭山市', '230521', '集贤县', '', '', '', '', 3, 1, ''), ('230522', '2305', '00,23,2305', '友谊县', '23', '黑龙江省', '2305', '双鸭山市', '230522', '友谊县', '', '', '', '', 3, 1, ''), ('230523', '2305', '00,23,2305', '宝清县', '23', '黑龙江省', '2305', '双鸭山市', '230523', '宝清县', '', '', '', '', 3, 1, ''), ('230524', '2305', '00,23,2305', '饶河县', '23', '黑龙江省', '2305', '双鸭山市', '230524', '饶河县', '', '', '', '', 3, 1, ''), ('2306', '23', '00,23', '大庆市', '23', '黑龙江省', '2306', '大庆市', '', '', '', '', '', '', 2, 1, ''), ('230602', '2306', '00,23,2306', '萨尔图区', '23', '黑龙江省', '2306', '大庆市', '230602', '萨尔图区', '', '', '', '', 3, 1, ''), ('230603', '2306', '00,23,2306', '龙凤区', '23', '黑龙江省', '2306', '大庆市', '230603', '龙凤区', '', '', '', '', 3, 1, ''), ('230604', '2306', '00,23,2306', '让胡路区', '23', '黑龙江省', '2306', '大庆市', '230604', '让胡路区', '', '', '', '', 3, 1, ''), ('230605', '2306', '00,23,2306', '红岗区', '23', '黑龙江省', '2306', '大庆市', '230605', '红岗区', '', '', '', '', 3, 1, ''), ('230606', '2306', '00,23,2306', '大同区', '23', '黑龙江省', '2306', '大庆市', '230606', '大同区', '', '', '', '', 3, 1, ''), ('230621', '2306', '00,23,2306', '肇州县', '23', '黑龙江省', '2306', '大庆市', '230621', '肇州县', '', '', '', '', 3, 1, ''), ('230622', '2306', '00,23,2306', '肇源县', '23', '黑龙江省', '2306', '大庆市', '230622', '肇源县', '', '', '', '', 3, 1, ''), ('230623', '2306', '00,23,2306', '林甸县', '23', '黑龙江省', '2306', '大庆市', '230623', '林甸县', '', '', '', '', 3, 1, ''), ('230624', '2306', '00,23,2306', '杜尔伯特蒙古族自治县', '23', '黑龙江省', '2306', '大庆市', '230624', '杜尔伯特蒙古族自治县', '', '', '', '', 3, 1, ''), ('2307', '23', '00,23', '伊春市', '23', '黑龙江省', '2307', '伊春市', '', '', '', '', '', '', 2, 1, ''), ('230717', '2307', '00,23,2307', '伊美区', '23', '黑龙江省', '2307', '伊春市', '230717', '伊美区', '', '', '', '', 3, 1, ''), ('230718', '2307', '00,23,2307', '乌翠区', '23', '黑龙江省', '2307', '伊春市', '230718', '乌翠区', '', '', '', '', 3, 1, ''), ('230719', '2307', '00,23,2307', '友好区', '23', '黑龙江省', '2307', '伊春市', '230719', '友好区', '', '', '', '', 3, 1, ''), ('230722', '2307', '00,23,2307', '嘉荫县', '23', '黑龙江省', '2307', '伊春市', '230722', '嘉荫县', '', '', '', '', 3, 1, ''), ('230723', '2307', '00,23,2307', '汤旺县', '23', '黑龙江省', '2307', '伊春市', '230723', '汤旺县', '', '', '', '', 3, 1, ''), ('230724', '2307', '00,23,2307', '丰林县', '23', '黑龙江省', '2307', '伊春市', '230724', '丰林县', '', '', '', '', 3, 1, ''), ('230725', '2307', '00,23,2307', '大箐山县', '23', '黑龙江省', '2307', '伊春市', '230725', '大箐山县', '', '', '', '', 3, 1, ''), ('230726', '2307', '00,23,2307', '南岔县', '23', '黑龙江省', '2307', '伊春市', '230726', '南岔县', '', '', '', '', 3, 1, ''), ('230751', '2307', '00,23,2307', '金林区', '23', '黑龙江省', '2307', '伊春市', '230751', '金林区', '', '', '', '', 3, 1, ''), ('230781', '2307', '00,23,2307', '铁力市', '23', '黑龙江省', '2307', '伊春市', '230781', '铁力市', '', '', '', '', 3, 1, ''), ('2308', '23', '00,23', '佳木斯市', '23', '黑龙江省', '2308', '佳木斯市', '', '', '', '', '', '', 2, 1, ''), ('230803', '2308', '00,23,2308', '向阳区', '23', '黑龙江省', '2308', '佳木斯市', '230803', '向阳区', '', '', '', '', 3, 1, ''), ('230804', '2308', '00,23,2308', '前进区', '23', '黑龙江省', '2308', '佳木斯市', '230804', '前进区', '', '', '', '', 3, 1, ''), ('230805', '2308', '00,23,2308', '东风区', '23', '黑龙江省', '2308', '佳木斯市', '230805', '东风区', '', '', '', '', 3, 1, ''), ('230811', '2308', '00,23,2308', '郊区', '23', '黑龙江省', '2308', '佳木斯市', '230811', '郊区', '', '', '', '', 3, 1, ''), ('230822', '2308', '00,23,2308', '桦南县', '23', '黑龙江省', '2308', '佳木斯市', '230822', '桦南县', '', '', '', '', 3, 1, ''), ('230826', '2308', '00,23,2308', '桦川县', '23', '黑龙江省', '2308', '佳木斯市', '230826', '桦川县', '', '', '', '', 3, 1, ''), ('230828', '2308', '00,23,2308', '汤原县', '23', '黑龙江省', '2308', '佳木斯市', '230828', '汤原县', '', '', '', '', 3, 1, ''), ('230881', '2308', '00,23,2308', '同江市', '23', '黑龙江省', '2308', '佳木斯市', '230881', '同江市', '', '', '', '', 3, 1, ''), ('230882', '2308', '00,23,2308', '富锦市', '23', '黑龙江省', '2308', '佳木斯市', '230882', '富锦市', '', '', '', '', 3, 1, ''), ('230883', '2308', '00,23,2308', '抚远市', '23', '黑龙江省', '2308', '佳木斯市', '230883', '抚远市', '', '', '', '', 3, 1, ''), ('2309', '23', '00,23', '七台河市', '23', '黑龙江省', '2309', '七台河市', '', '', '', '', '', '', 2, 1, ''), ('230902', '2309', '00,23,2309', '新兴区', '23', '黑龙江省', '2309', '七台河市', '230902', '新兴区', '', '', '', '', 3, 1, ''), ('230903', '2309', '00,23,2309', '桃山区', '23', '黑龙江省', '2309', '七台河市', '230903', '桃山区', '', '', '', '', 3, 1, ''), ('230904', '2309', '00,23,2309', '茄子河区', '23', '黑龙江省', '2309', '七台河市', '230904', '茄子河区', '', '', '', '', 3, 1, ''), ('230921', '2309', '00,23,2309', '勃利县', '23', '黑龙江省', '2309', '七台河市', '230921', '勃利县', '', '', '', '', 3, 1, ''), ('2310', '23', '00,23', '牡丹江市', '23', '黑龙江省', '2310', '牡丹江市', '', '', '', '', '', '', 2, 1, ''), ('231002', '2310', '00,23,2310', '东安区', '23', '黑龙江省', '2310', '牡丹江市', '231002', '东安区', '', '', '', '', 3, 1, ''), ('231003', '2310', '00,23,2310', '阳明区', '23', '黑龙江省', '2310', '牡丹江市', '231003', '阳明区', '', '', '', '', 3, 1, ''), ('231004', '2310', '00,23,2310', '爱民区', '23', '黑龙江省', '2310', '牡丹江市', '231004', '爱民区', '', '', '', '', 3, 1, ''), ('231005', '2310', '00,23,2310', '西安区', '23', '黑龙江省', '2310', '牡丹江市', '231005', '西安区', '', '', '', '', 3, 1, ''), ('231025', '2310', '00,23,2310', '林口县', '23', '黑龙江省', '2310', '牡丹江市', '231025', '林口县', '', '', '', '', 3, 1, ''), ('231081', '2310', '00,23,2310', '绥芬河市', '23', '黑龙江省', '2310', '牡丹江市', '231081', '绥芬河市', '', '', '', '', 3, 1, ''), ('231083', '2310', '00,23,2310', '海林市', '23', '黑龙江省', '2310', '牡丹江市', '231083', '海林市', '', '', '', '', 3, 1, ''), ('231084', '2310', '00,23,2310', '宁安市', '23', '黑龙江省', '2310', '牡丹江市', '231084', '宁安市', '', '', '', '', 3, 1, ''), ('231085', '2310', '00,23,2310', '穆棱市', '23', '黑龙江省', '2310', '牡丹江市', '231085', '穆棱市', '', '', '', '', 3, 1, ''), ('231086', '2310', '00,23,2310', '东宁市', '23', '黑龙江省', '2310', '牡丹江市', '231086', '东宁市', '', '', '', '', 3, 1, ''), ('2311', '23', '00,23', '黑河市', '23', '黑龙江省', '2311', '黑河市', '', '', '', '', '', '', 2, 1, ''), ('231102', '2311', '00,23,2311', '爱辉区', '23', '黑龙江省', '2311', '黑河市', '231102', '爱辉区', '', '', '', '', 3, 1, ''), ('231123', '2311', '00,23,2311', '逊克县', '23', '黑龙江省', '2311', '黑河市', '231123', '逊克县', '', '', '', '', 3, 1, ''), ('231124', '2311', '00,23,2311', '孙吴县', '23', '黑龙江省', '2311', '黑河市', '231124', '孙吴县', '', '', '', '', 3, 1, ''), ('231181', '2311', '00,23,2311', '北安市', '23', '黑龙江省', '2311', '黑河市', '231181', '北安市', '', '', '', '', 3, 1, ''), ('231182', '2311', '00,23,2311', '五大连池市', '23', '黑龙江省', '2311', '黑河市', '231182', '五大连池市', '', '', '', '', 3, 1, ''), ('231183', '2311', '00,23,2311', '嫩江市', '23', '黑龙江省', '2311', '黑河市', '231183', '嫩江市', '', '', '', '', 3, 1, ''), ('2312', '23', '00,23', '绥化市', '23', '黑龙江省', '2312', '绥化市', '', '', '', '', '', '', 2, 1, ''), ('231202', '2312', '00,23,2312', '北林区', '23', '黑龙江省', '2312', '绥化市', '231202', '北林区', '', '', '', '', 3, 1, ''), ('231221', '2312', '00,23,2312', '望奎县', '23', '黑龙江省', '2312', '绥化市', '231221', '望奎县', '', '', '', '', 3, 1, ''), ('231222', '2312', '00,23,2312', '兰西县', '23', '黑龙江省', '2312', '绥化市', '231222', '兰西县', '', '', '', '', 3, 1, ''), ('231223', '2312', '00,23,2312', '青冈县', '23', '黑龙江省', '2312', '绥化市', '231223', '青冈县', '', '', '', '', 3, 1, ''), ('231224', '2312', '00,23,2312', '庆安县', '23', '黑龙江省', '2312', '绥化市', '231224', '庆安县', '', '', '', '', 3, 1, ''), ('231225', '2312', '00,23,2312', '明水县', '23', '黑龙江省', '2312', '绥化市', '231225', '明水县', '', '', '', '', 3, 1, ''), ('231226', '2312', '00,23,2312', '绥棱县', '23', '黑龙江省', '2312', '绥化市', '231226', '绥棱县', '', '', '', '', 3, 1, ''), ('231281', '2312', '00,23,2312', '安达市', '23', '黑龙江省', '2312', '绥化市', '231281', '安达市', '', '', '', '', 3, 1, ''), ('231282', '2312', '00,23,2312', '肇东市', '23', '黑龙江省', '2312', '绥化市', '231282', '肇东市', '', '', '', '', 3, 1, ''), ('231283', '2312', '00,23,2312', '海伦市', '23', '黑龙江省', '2312', '绥化市', '231283', '海伦市', '', '', '', '', 3, 1, ''), ('2327', '23', '00,23', '大兴安岭地区', '23', '黑龙江省', '2327', '大兴安岭地区', '', '', '', '', '', '', 2, 1, ''), ('232701', '2327', '00,23,2327', '漠河市', '23', '黑龙江省', '2327', '大兴安岭地区', '232701', '漠河市', '', '', '', '', 3, 1, ''), ('232721', '2327', '00,23,2327', '呼玛县', '23', '黑龙江省', '2327', '大兴安岭地区', '232721', '呼玛县', '', '', '', '', 3, 1, ''), ('232722', '2327', '00,23,2327', '塔河县', '23', '黑龙江省', '2327', '大兴安岭地区', '232722', '塔河县', '', '', '', '', 3, 1, ''), ('31', '00', '00', '上海市', '31', '上海市', '', '', '', '', '', '', '', '', 1, 1, ''), ('3101', '31', '00,31', '上海市', '31', '上海市', '3101', '上海市', '', '', '', '', '', '', 2, 1, ''), ('310101', '3101', '00,31,3101', '黄浦区', '31', '上海市', '3101', '上海市', '310101', '黄浦区', '', '', '', '', 3, 1, ''), ('310104', '3101', '00,31,3101', '徐汇区', '31', '上海市', '3101', '上海市', '310104', '徐汇区', '', '', '', '', 3, 1, ''), ('310105', '3101', '00,31,3101', '长宁区', '31', '上海市', '3101', '上海市', '310105', '长宁区', '', '', '', '', 3, 1, ''), ('310106', '3101', '00,31,3101', '静安区', '31', '上海市', '3101', '上海市', '310106', '静安区', '', '', '', '', 3, 1, ''), ('310107', '3101', '00,31,3101', '普陀区', '31', '上海市', '3101', '上海市', '310107', '普陀区', '', '', '', '', 3, 1, ''), ('310109', '3101', '00,31,3101', '虹口区', '31', '上海市', '3101', '上海市', '310109', '虹口区', '', '', '', '', 3, 1, ''), ('310110', '3101', '00,31,3101', '杨浦区', '31', '上海市', '3101', '上海市', '310110', '杨浦区', '', '', '', '', 3, 1, ''), ('310112', '3101', '00,31,3101', '闵行区', '31', '上海市', '3101', '上海市', '310112', '闵行区', '', '', '', '', 3, 1, ''), ('310113', '3101', '00,31,3101', '宝山区', '31', '上海市', '3101', '上海市', '310113', '宝山区', '', '', '', '', 3, 1, ''), ('310114', '3101', '00,31,3101', '嘉定区', '31', '上海市', '3101', '上海市', '310114', '嘉定区', '', '', '', '', 3, 1, ''), ('310115', '3101', '00,31,3101', '浦东新区', '31', '上海市', '3101', '上海市', '310115', '浦东新区', '', '', '', '', 3, 1, ''), ('310116', '3101', '00,31,3101', '金山区', '31', '上海市', '3101', '上海市', '310116', '金山区', '', '', '', '', 3, 1, ''), ('310117', '3101', '00,31,3101', '松江区', '31', '上海市', '3101', '上海市', '310117', '松江区', '', '', '', '', 3, 1, ''), ('310118', '3101', '00,31,3101', '青浦区', '31', '上海市', '3101', '上海市', '310118', '青浦区', '', '', '', '', 3, 1, ''), ('310120', '3101', '00,31,3101', '奉贤区', '31', '上海市', '3101', '上海市', '310120', '奉贤区', '', '', '', '', 3, 1, ''), ('310151', '3101', '00,31,3101', '崇明区', '31', '上海市', '3101', '上海市', '310151', '崇明区', '', '', '', '', 3, 1, ''), ('32', '00', '00', '江苏省', '32', '江苏省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3201', '32', '00,32', '南京市', '32', '江苏省', '3201', '南京市', '', '', '', '', '', '', 2, 1, ''), ('320102', '3201', '00,32,3201', '玄武区', '32', '江苏省', '3201', '南京市', '320102', '玄武区', '', '', '', '', 3, 1, ''), ('320104', '3201', '00,32,3201', '秦淮区', '32', '江苏省', '3201', '南京市', '320104', '秦淮区', '', '', '', '', 3, 1, ''), ('320105', '3201', '00,32,3201', '建邺区', '32', '江苏省', '3201', '南京市', '320105', '建邺区', '', '', '', '', 3, 1, ''), ('320106', '3201', '00,32,3201', '鼓楼区', '32', '江苏省', '3201', '南京市', '320106', '鼓楼区', '', '', '', '', 3, 1, ''), ('320111', '3201', '00,32,3201', '浦口区', '32', '江苏省', '3201', '南京市', '320111', '浦口区', '', '', '', '', 3, 1, ''), ('320113', '3201', '00,32,3201', '栖霞区', '32', '江苏省', '3201', '南京市', '320113', '栖霞区', '', '', '', '', 3, 1, ''), ('320114', '3201', '00,32,3201', '雨花台区', '32', '江苏省', '3201', '南京市', '320114', '雨花台区', '', '', '', '', 3, 1, ''), ('320115', '3201', '00,32,3201', '江宁区', '32', '江苏省', '3201', '南京市', '320115', '江宁区', '', '', '', '', 3, 1, ''), ('320116', '3201', '00,32,3201', '六合区', '32', '江苏省', '3201', '南京市', '320116', '六合区', '', '', '', '', 3, 1, ''), ('320117', '3201', '00,32,3201', '溧水区', '32', '江苏省', '3201', '南京市', '320117', '溧水区', '', '', '', '', 3, 1, ''), ('320118', '3201', '00,32,3201', '高淳区', '32', '江苏省', '3201', '南京市', '320118', '高淳区', '', '', '', '', 3, 1, ''), ('3202', '32', '00,32', '无锡市', '32', '江苏省', '3202', '无锡市', '', '', '', '', '', '', 2, 1, ''), ('320205', '3202', '00,32,3202', '锡山区', '32', '江苏省', '3202', '无锡市', '320205', '锡山区', '', '', '', '', 3, 1, ''), ('320206', '3202', '00,32,3202', '惠山区', '32', '江苏省', '3202', '无锡市', '320206', '惠山区', '', '', '', '', 3, 1, ''), ('320211', '3202', '00,32,3202', '滨湖区', '32', '江苏省', '3202', '无锡市', '320211', '滨湖区', '', '', '', '', 3, 1, ''), ('320213', '3202', '00,32,3202', '梁溪区', '32', '江苏省', '3202', '无锡市', '320213', '梁溪区', '', '', '', '', 3, 1, ''), ('320214', '3202', '00,32,3202', '新吴区', '32', '江苏省', '3202', '无锡市', '320214', '新吴区', '', '', '', '', 3, 1, ''), ('320281', '3202', '00,32,3202', '江阴市', '32', '江苏省', '3202', '无锡市', '320281', '江阴市', '', '', '', '', 3, 1, ''), ('320282', '3202', '00,32,3202', '宜兴市', '32', '江苏省', '3202', '无锡市', '320282', '宜兴市', '', '', '', '', 3, 1, ''), ('3203', '32', '00,32', '徐州市', '32', '江苏省', '3203', '徐州市', '', '', '', '', '', '', 2, 1, ''), ('320302', '3203', '00,32,3203', '鼓楼区', '32', '江苏省', '3203', '徐州市', '320302', '鼓楼区', '', '', '', '', 3, 1, ''), ('320303', '3203', '00,32,3203', '云龙区', '32', '江苏省', '3203', '徐州市', '320303', '云龙区', '', '', '', '', 3, 1, ''), ('320305', '3203', '00,32,3203', '贾汪区', '32', '江苏省', '3203', '徐州市', '320305', '贾汪区', '', '', '', '', 3, 1, ''), ('320311', '3203', '00,32,3203', '泉山区', '32', '江苏省', '3203', '徐州市', '320311', '泉山区', '', '', '', '', 3, 1, ''), ('320312', '3203', '00,32,3203', '铜山区', '32', '江苏省', '3203', '徐州市', '320312', '铜山区', '', '', '', '', 3, 1, ''), ('320321', '3203', '00,32,3203', '丰县', '32', '江苏省', '3203', '徐州市', '320321', '丰县', '', '', '', '', 3, 1, ''), ('320322', '3203', '00,32,3203', '沛县', '32', '江苏省', '3203', '徐州市', '320322', '沛县', '', '', '', '', 3, 1, ''), ('320324', '3203', '00,32,3203', '睢宁县', '32', '江苏省', '3203', '徐州市', '320324', '睢宁县', '', '', '', '', 3, 1, ''), ('320381', '3203', '00,32,3203', '新沂市', '32', '江苏省', '3203', '徐州市', '320381', '新沂市', '', '', '', '', 3, 1, ''), ('320382', '3203', '00,32,3203', '邳州市', '32', '江苏省', '3203', '徐州市', '320382', '邳州市', '', '', '', '', 3, 1, ''), ('3204', '32', '00,32', '常州市', '32', '江苏省', '3204', '常州市', '', '', '', '', '', '', 2, 1, ''), ('320402', '3204', '00,32,3204', '天宁区', '32', '江苏省', '3204', '常州市', '320402', '天宁区', '', '', '', '', 3, 1, ''), ('320404', '3204', '00,32,3204', '钟楼区', '32', '江苏省', '3204', '常州市', '320404', '钟楼区', '', '', '', '', 3, 1, ''), ('320411', '3204', '00,32,3204', '新北区', '32', '江苏省', '3204', '常州市', '320411', '新北区', '', '', '', '', 3, 1, ''), ('320412', '3204', '00,32,3204', '武进区', '32', '江苏省', '3204', '常州市', '320412', '武进区', '', '', '', '', 3, 1, ''), ('320413', '3204', '00,32,3204', '金坛区', '32', '江苏省', '3204', '常州市', '320413', '金坛区', '', '', '', '', 3, 1, ''), ('320481', '3204', '00,32,3204', '溧阳市', '32', '江苏省', '3204', '常州市', '320481', '溧阳市', '', '', '', '', 3, 1, ''), ('3205', '32', '00,32', '苏州市', '32', '江苏省', '3205', '苏州市', '', '', '', '', '', '', 2, 1, ''), ('320505', '3205', '00,32,3205', '虎丘区', '32', '江苏省', '3205', '苏州市', '320505', '虎丘区', '', '', '', '', 3, 1, ''), ('320506', '3205', '00,32,3205', '吴中区', '32', '江苏省', '3205', '苏州市', '320506', '吴中区', '', '', '', '', 3, 1, ''), ('320507', '3205', '00,32,3205', '相城区', '32', '江苏省', '3205', '苏州市', '320507', '相城区', '', '', '', '', 3, 1, ''), ('320508', '3205', '00,32,3205', '姑苏区', '32', '江苏省', '3205', '苏州市', '320508', '姑苏区', '', '', '', '', 3, 1, ''), ('320509', '3205', '00,32,3205', '吴江区', '32', '江苏省', '3205', '苏州市', '320509', '吴江区', '', '', '', '', 3, 1, ''), ('320581', '3205', '00,32,3205', '常熟市', '32', '江苏省', '3205', '苏州市', '320581', '常熟市', '', '', '', '', 3, 1, ''), ('320582', '3205', '00,32,3205', '张家港市', '32', '江苏省', '3205', '苏州市', '320582', '张家港市', '', '', '', '', 3, 1, ''), ('320583', '3205', '00,32,3205', '昆山市', '32', '江苏省', '3205', '苏州市', '320583', '昆山市', '', '', '', '', 3, 1, ''), ('320585', '3205', '00,32,3205', '太仓市', '32', '江苏省', '3205', '苏州市', '320585', '太仓市', '', '', '', '', 3, 1, ''), ('3206', '32', '00,32', '南通市', '32', '江苏省', '3206', '南通市', '', '', '', '', '', '', 2, 1, ''), ('320602', '3206', '00,32,3206', '崇川区', '32', '江苏省', '3206', '南通市', '320602', '崇川区', '', '', '', '', 3, 1, ''), ('320611', '3206', '00,32,3206', '港闸区', '32', '江苏省', '3206', '南通市', '320611', '港闸区', '', '', '', '', 3, 1, ''), ('320612', '3206', '00,32,3206', '通州区', '32', '江苏省', '3206', '南通市', '320612', '通州区', '', '', '', '', 3, 1, ''), ('320623', '3206', '00,32,3206', '如东县', '32', '江苏省', '3206', '南通市', '320623', '如东县', '', '', '', '', 3, 1, ''), ('320681', '3206', '00,32,3206', '启东市', '32', '江苏省', '3206', '南通市', '320681', '启东市', '', '', '', '', 3, 1, ''), ('320682', '3206', '00,32,3206', '如皋市', '32', '江苏省', '3206', '南通市', '320682', '如皋市', '', '', '', '', 3, 1, ''), ('320684', '3206', '00,32,3206', '海门市', '32', '江苏省', '3206', '南通市', '320684', '海门市', '', '', '', '', 3, 1, ''), ('320685', '3206', '00,32,3206', '海安市', '32', '江苏省', '3206', '南通市', '320685', '海安市', '', '', '', '', 3, 1, ''), ('3207', '32', '00,32', '连云港市', '32', '江苏省', '3207', '连云港市', '', '', '', '', '', '', 2, 1, ''), ('320703', '3207', '00,32,3207', '连云区', '32', '江苏省', '3207', '连云港市', '320703', '连云区', '', '', '', '', 3, 1, ''), ('320706', '3207', '00,32,3207', '海州区', '32', '江苏省', '3207', '连云港市', '320706', '海州区', '', '', '', '', 3, 1, ''), ('320707', '3207', '00,32,3207', '赣榆区', '32', '江苏省', '3207', '连云港市', '320707', '赣榆区', '', '', '', '', 3, 1, ''), ('320722', '3207', '00,32,3207', '东海县', '32', '江苏省', '3207', '连云港市', '320722', '东海县', '', '', '', '', 3, 1, ''), ('320723', '3207', '00,32,3207', '灌云县', '32', '江苏省', '3207', '连云港市', '320723', '灌云县', '', '', '', '', 3, 1, ''), ('320724', '3207', '00,32,3207', '灌南县', '32', '江苏省', '3207', '连云港市', '320724', '灌南县', '', '', '', '', 3, 1, ''), ('3208', '32', '00,32', '淮安市', '32', '江苏省', '3208', '淮安市', '', '', '', '', '', '', 2, 1, ''), ('320803', '3208', '00,32,3208', '淮安区', '32', '江苏省', '3208', '淮安市', '320803', '淮安区', '', '', '', '', 3, 1, ''), ('320804', '3208', '00,32,3208', '淮阴区', '32', '江苏省', '3208', '淮安市', '320804', '淮阴区', '', '', '', '', 3, 1, ''), ('320812', '3208', '00,32,3208', '清江浦区', '32', '江苏省', '3208', '淮安市', '320812', '清江浦区', '', '', '', '', 3, 1, ''), ('320813', '3208', '00,32,3208', '洪泽区', '32', '江苏省', '3208', '淮安市', '320813', '洪泽区', '', '', '', '', 3, 1, ''), ('320826', '3208', '00,32,3208', '涟水县', '32', '江苏省', '3208', '淮安市', '320826', '涟水县', '', '', '', '', 3, 1, ''), ('320830', '3208', '00,32,3208', '盱眙县', '32', '江苏省', '3208', '淮安市', '320830', '盱眙县', '', '', '', '', 3, 1, ''), ('320831', '3208', '00,32,3208', '金湖县', '32', '江苏省', '3208', '淮安市', '320831', '金湖县', '', '', '', '', 3, 1, ''), ('3209', '32', '00,32', '盐城市', '32', '江苏省', '3209', '盐城市', '', '', '', '', '', '', 2, 1, ''), ('320902', '3209', '00,32,3209', '亭湖区', '32', '江苏省', '3209', '盐城市', '320902', '亭湖区', '', '', '', '', 3, 1, ''), ('320903', '3209', '00,32,3209', '盐都区', '32', '江苏省', '3209', '盐城市', '320903', '盐都区', '', '', '', '', 3, 1, ''), ('320904', '3209', '00,32,3209', '大丰区', '32', '江苏省', '3209', '盐城市', '320904', '大丰区', '', '', '', '', 3, 1, ''), ('320921', '3209', '00,32,3209', '响水县', '32', '江苏省', '3209', '盐城市', '320921', '响水县', '', '', '', '', 3, 1, ''), ('320922', '3209', '00,32,3209', '滨海县', '32', '江苏省', '3209', '盐城市', '320922', '滨海县', '', '', '', '', 3, 1, ''), ('320923', '3209', '00,32,3209', '阜宁县', '32', '江苏省', '3209', '盐城市', '320923', '阜宁县', '', '', '', '', 3, 1, ''), ('320924', '3209', '00,32,3209', '射阳县', '32', '江苏省', '3209', '盐城市', '320924', '射阳县', '', '', '', '', 3, 1, ''), ('320925', '3209', '00,32,3209', '建湖县', '32', '江苏省', '3209', '盐城市', '320925', '建湖县', '', '', '', '', 3, 1, ''), ('320981', '3209', '00,32,3209', '东台市', '32', '江苏省', '3209', '盐城市', '320981', '东台市', '', '', '', '', 3, 1, ''), ('3210', '32', '00,32', '扬州市', '32', '江苏省', '3210', '扬州市', '', '', '', '', '', '', 2, 1, ''), ('321002', '3210', '00,32,3210', '广陵区', '32', '江苏省', '3210', '扬州市', '321002', '广陵区', '', '', '', '', 3, 1, ''), ('321003', '3210', '00,32,3210', '邗江区', '32', '江苏省', '3210', '扬州市', '321003', '邗江区', '', '', '', '', 3, 1, ''), ('321012', '3210', '00,32,3210', '江都区', '32', '江苏省', '3210', '扬州市', '321012', '江都区', '', '', '', '', 3, 1, ''), ('321023', '3210', '00,32,3210', '宝应县', '32', '江苏省', '3210', '扬州市', '321023', '宝应县', '', '', '', '', 3, 1, ''), ('321081', '3210', '00,32,3210', '仪征市', '32', '江苏省', '3210', '扬州市', '321081', '仪征市', '', '', '', '', 3, 1, ''), ('321084', '3210', '00,32,3210', '高邮市', '32', '江苏省', '3210', '扬州市', '321084', '高邮市', '', '', '', '', 3, 1, ''), ('3211', '32', '00,32', '镇江市', '32', '江苏省', '3211', '镇江市', '', '', '', '', '', '', 2, 1, ''), ('321102', '3211', '00,32,3211', '京口区', '32', '江苏省', '3211', '镇江市', '321102', '京口区', '', '', '', '', 3, 1, ''), ('321111', '3211', '00,32,3211', '润州区', '32', '江苏省', '3211', '镇江市', '321111', '润州区', '', '', '', '', 3, 1, ''), ('321112', '3211', '00,32,3211', '丹徒区', '32', '江苏省', '3211', '镇江市', '321112', '丹徒区', '', '', '', '', 3, 1, ''), ('321181', '3211', '00,32,3211', '丹阳市', '32', '江苏省', '3211', '镇江市', '321181', '丹阳市', '', '', '', '', 3, 1, ''), ('321182', '3211', '00,32,3211', '扬中市', '32', '江苏省', '3211', '镇江市', '321182', '扬中市', '', '', '', '', 3, 1, ''), ('321183', '3211', '00,32,3211', '句容市', '32', '江苏省', '3211', '镇江市', '321183', '句容市', '', '', '', '', 3, 1, ''), ('3212', '32', '00,32', '泰州市', '32', '江苏省', '3212', '泰州市', '', '', '', '', '', '', 2, 1, ''), ('321202', '3212', '00,32,3212', '海陵区', '32', '江苏省', '3212', '泰州市', '321202', '海陵区', '', '', '', '', 3, 1, ''), ('321203', '3212', '00,32,3212', '高港区', '32', '江苏省', '3212', '泰州市', '321203', '高港区', '', '', '', '', 3, 1, ''), ('321204', '3212', '00,32,3212', '姜堰区', '32', '江苏省', '3212', '泰州市', '321204', '姜堰区', '', '', '', '', 3, 1, ''), ('321281', '3212', '00,32,3212', '兴化市', '32', '江苏省', '3212', '泰州市', '321281', '兴化市', '', '', '', '', 3, 1, ''), ('321282', '3212', '00,32,3212', '靖江市', '32', '江苏省', '3212', '泰州市', '321282', '靖江市', '', '', '', '', 3, 1, ''), ('321283', '3212', '00,32,3212', '泰兴市', '32', '江苏省', '3212', '泰州市', '321283', '泰兴市', '', '', '', '', 3, 1, ''), ('3213', '32', '00,32', '宿迁市', '32', '江苏省', '3213', '宿迁市', '', '', '', '', '', '', 2, 1, ''), ('321302', '3213', '00,32,3213', '宿城区', '32', '江苏省', '3213', '宿迁市', '321302', '宿城区', '', '', '', '', 3, 1, ''), ('321311', '3213', '00,32,3213', '宿豫区', '32', '江苏省', '3213', '宿迁市', '321311', '宿豫区', '', '', '', '', 3, 1, ''), ('321322', '3213', '00,32,3213', '沭阳县', '32', '江苏省', '3213', '宿迁市', '321322', '沭阳县', '', '', '', '', 3, 1, ''), ('321323', '3213', '00,32,3213', '泗阳县', '32', '江苏省', '3213', '宿迁市', '321323', '泗阳县', '', '', '', '', 3, 1, ''), ('321324', '3213', '00,32,3213', '泗洪县', '32', '江苏省', '3213', '宿迁市', '321324', '泗洪县', '', '', '', '', 3, 1, ''), ('33', '00', '00', '浙江省', '33', '浙江省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3301', '33', '00,33', '杭州市', '33', '浙江省', '3301', '杭州市', '', '', '', '', '', '', 2, 1, ''), ('330102', '3301', '00,33,3301', '上城区', '33', '浙江省', '3301', '杭州市', '330102', '上城区', '', '', '', '', 3, 1, ''), ('330103', '3301', '00,33,3301', '下城区', '33', '浙江省', '3301', '杭州市', '330103', '下城区', '', '', '', '', 3, 1, ''), ('330104', '3301', '00,33,3301', '江干区', '33', '浙江省', '3301', '杭州市', '330104', '江干区', '', '', '', '', 3, 1, ''), ('330105', '3301', '00,33,3301', '拱墅区', '33', '浙江省', '3301', '杭州市', '330105', '拱墅区', '', '', '', '', 3, 1, ''), ('330106', '3301', '00,33,3301', '西湖区', '33', '浙江省', '3301', '杭州市', '330106', '西湖区', '', '', '', '', 3, 1, ''), ('330108', '3301', '00,33,3301', '滨江区', '33', '浙江省', '3301', '杭州市', '330108', '滨江区', '', '', '', '', 3, 1, ''), ('330109', '3301', '00,33,3301', '萧山区', '33', '浙江省', '3301', '杭州市', '330109', '萧山区', '', '', '', '', 3, 1, ''), ('330110', '3301', '00,33,3301', '余杭区', '33', '浙江省', '3301', '杭州市', '330110', '余杭区', '', '', '', '', 3, 1, ''), ('330111', '3301', '00,33,3301', '富阳区', '33', '浙江省', '3301', '杭州市', '330111', '富阳区', '', '', '', '', 3, 1, ''), ('330112', '3301', '00,33,3301', '临安区', '33', '浙江省', '3301', '杭州市', '330112', '临安区', '', '', '', '', 3, 1, ''), ('330122', '3301', '00,33,3301', '桐庐县', '33', '浙江省', '3301', '杭州市', '330122', '桐庐县', '', '', '', '', 3, 1, ''), ('330127', '3301', '00,33,3301', '淳安县', '33', '浙江省', '3301', '杭州市', '330127', '淳安县', '', '', '', '', 3, 1, ''), ('330182', '3301', '00,33,3301', '建德市', '33', '浙江省', '3301', '杭州市', '330182', '建德市', '', '', '', '', 3, 1, ''), ('3302', '33', '00,33', '宁波市', '33', '浙江省', '3302', '宁波市', '', '', '', '', '', '', 2, 1, ''), ('330203', '3302', '00,33,3302', '海曙区', '33', '浙江省', '3302', '宁波市', '330203', '海曙区', '', '', '', '', 3, 1, ''), ('330205', '3302', '00,33,3302', '江北区', '33', '浙江省', '3302', '宁波市', '330205', '江北区', '', '', '', '', 3, 1, ''), ('330206', '3302', '00,33,3302', '北仑区', '33', '浙江省', '3302', '宁波市', '330206', '北仑区', '', '', '', '', 3, 1, ''), ('330211', '3302', '00,33,3302', '镇海区', '33', '浙江省', '3302', '宁波市', '330211', '镇海区', '', '', '', '', 3, 1, ''), ('330212', '3302', '00,33,3302', '鄞州区', '33', '浙江省', '3302', '宁波市', '330212', '鄞州区', '', '', '', '', 3, 1, ''), ('330213', '3302', '00,33,3302', '奉化区', '33', '浙江省', '3302', '宁波市', '330213', '奉化区', '', '', '', '', 3, 1, ''), ('330225', '3302', '00,33,3302', '象山县', '33', '浙江省', '3302', '宁波市', '330225', '象山县', '', '', '', '', 3, 1, ''), ('330226', '3302', '00,33,3302', '宁海县', '33', '浙江省', '3302', '宁波市', '330226', '宁海县', '', '', '', '', 3, 1, ''), ('330281', '3302', '00,33,3302', '余姚市', '33', '浙江省', '3302', '宁波市', '330281', '余姚市', '', '', '', '', 3, 1, ''), ('330282', '3302', '00,33,3302', '慈溪市', '33', '浙江省', '3302', '宁波市', '330282', '慈溪市', '', '', '', '', 3, 1, ''), ('3303', '33', '00,33', '温州市', '33', '浙江省', '3303', '温州市', '', '', '', '', '', '', 2, 1, ''), ('330302', '3303', '00,33,3303', '鹿城区', '33', '浙江省', '3303', '温州市', '330302', '鹿城区', '', '', '', '', 3, 1, ''), ('330303', '3303', '00,33,3303', '龙湾区', '33', '浙江省', '3303', '温州市', '330303', '龙湾区', '', '', '', '', 3, 1, ''), ('330304', '3303', '00,33,3303', '瓯海区', '33', '浙江省', '3303', '温州市', '330304', '瓯海区', '', '', '', '', 3, 1, ''), ('330305', '3303', '00,33,3303', '洞头区', '33', '浙江省', '3303', '温州市', '330305', '洞头区', '', '', '', '', 3, 1, ''), ('330324', '3303', '00,33,3303', '永嘉县', '33', '浙江省', '3303', '温州市', '330324', '永嘉县', '', '', '', '', 3, 1, ''), ('330326', '3303', '00,33,3303', '平阳县', '33', '浙江省', '3303', '温州市', '330326', '平阳县', '', '', '', '', 3, 1, ''), ('330327', '3303', '00,33,3303', '苍南县', '33', '浙江省', '3303', '温州市', '330327', '苍南县', '', '', '', '', 3, 1, ''), ('330328', '3303', '00,33,3303', '文成县', '33', '浙江省', '3303', '温州市', '330328', '文成县', '', '', '', '', 3, 1, ''), ('330329', '3303', '00,33,3303', '泰顺县', '33', '浙江省', '3303', '温州市', '330329', '泰顺县', '', '', '', '', 3, 1, ''), ('330381', '3303', '00,33,3303', '瑞安市', '33', '浙江省', '3303', '温州市', '330381', '瑞安市', '', '', '', '', 3, 1, ''), ('330382', '3303', '00,33,3303', '乐清市', '33', '浙江省', '3303', '温州市', '330382', '乐清市', '', '', '', '', 3, 1, ''), ('330383', '3303', '00,33,3303', '龙港市', '33', '浙江省', '3303', '温州市', '330383', '龙港市', '', '', '', '', 3, 1, ''), ('3304', '33', '00,33', '嘉兴市', '33', '浙江省', '3304', '嘉兴市', '', '', '', '', '', '', 2, 1, ''), ('330402', '3304', '00,33,3304', '南湖区', '33', '浙江省', '3304', '嘉兴市', '330402', '南湖区', '', '', '', '', 3, 1, ''), ('330411', '3304', '00,33,3304', '秀洲区', '33', '浙江省', '3304', '嘉兴市', '330411', '秀洲区', '', '', '', '', 3, 1, ''), ('330421', '3304', '00,33,3304', '嘉善县', '33', '浙江省', '3304', '嘉兴市', '330421', '嘉善县', '', '', '', '', 3, 1, ''), ('330424', '3304', '00,33,3304', '海盐县', '33', '浙江省', '3304', '嘉兴市', '330424', '海盐县', '', '', '', '', 3, 1, '');
+INSERT INTO `blade_region` VALUES ('330481', '3304', '00,33,3304', '海宁市', '33', '浙江省', '3304', '嘉兴市', '330481', '海宁市', '', '', '', '', 3, 1, ''), ('330482', '3304', '00,33,3304', '平湖市', '33', '浙江省', '3304', '嘉兴市', '330482', '平湖市', '', '', '', '', 3, 1, ''), ('330483', '3304', '00,33,3304', '桐乡市', '33', '浙江省', '3304', '嘉兴市', '330483', '桐乡市', '', '', '', '', 3, 1, ''), ('3305', '33', '00,33', '湖州市', '33', '浙江省', '3305', '湖州市', '', '', '', '', '', '', 2, 1, ''), ('330502', '3305', '00,33,3305', '吴兴区', '33', '浙江省', '3305', '湖州市', '330502', '吴兴区', '', '', '', '', 3, 1, ''), ('330503', '3305', '00,33,3305', '南浔区', '33', '浙江省', '3305', '湖州市', '330503', '南浔区', '', '', '', '', 3, 1, ''), ('330521', '3305', '00,33,3305', '德清县', '33', '浙江省', '3305', '湖州市', '330521', '德清县', '', '', '', '', 3, 1, ''), ('330522', '3305', '00,33,3305', '长兴县', '33', '浙江省', '3305', '湖州市', '330522', '长兴县', '', '', '', '', 3, 1, ''), ('330523', '3305', '00,33,3305', '安吉县', '33', '浙江省', '3305', '湖州市', '330523', '安吉县', '', '', '', '', 3, 1, ''), ('3306', '33', '00,33', '绍兴市', '33', '浙江省', '3306', '绍兴市', '', '', '', '', '', '', 2, 1, ''), ('330602', '3306', '00,33,3306', '越城区', '33', '浙江省', '3306', '绍兴市', '330602', '越城区', '', '', '', '', 3, 1, ''), ('330603', '3306', '00,33,3306', '柯桥区', '33', '浙江省', '3306', '绍兴市', '330603', '柯桥区', '', '', '', '', 3, 1, ''), ('330604', '3306', '00,33,3306', '上虞区', '33', '浙江省', '3306', '绍兴市', '330604', '上虞区', '', '', '', '', 3, 1, ''), ('330624', '3306', '00,33,3306', '新昌县', '33', '浙江省', '3306', '绍兴市', '330624', '新昌县', '', '', '', '', 3, 1, ''), ('330681', '3306', '00,33,3306', '诸暨市', '33', '浙江省', '3306', '绍兴市', '330681', '诸暨市', '', '', '', '', 3, 1, ''), ('330683', '3306', '00,33,3306', '嵊州市', '33', '浙江省', '3306', '绍兴市', '330683', '嵊州市', '', '', '', '', 3, 1, ''), ('3307', '33', '00,33', '金华市', '33', '浙江省', '3307', '金华市', '', '', '', '', '', '', 2, 1, ''), ('330702', '3307', '00,33,3307', '婺城区', '33', '浙江省', '3307', '金华市', '330702', '婺城区', '', '', '', '', 3, 1, ''), ('330703', '3307', '00,33,3307', '金东区', '33', '浙江省', '3307', '金华市', '330703', '金东区', '', '', '', '', 3, 1, ''), ('330723', '3307', '00,33,3307', '武义县', '33', '浙江省', '3307', '金华市', '330723', '武义县', '', '', '', '', 3, 1, ''), ('330726', '3307', '00,33,3307', '浦江县', '33', '浙江省', '3307', '金华市', '330726', '浦江县', '', '', '', '', 3, 1, ''), ('330727', '3307', '00,33,3307', '磐安县', '33', '浙江省', '3307', '金华市', '330727', '磐安县', '', '', '', '', 3, 1, ''), ('330781', '3307', '00,33,3307', '兰溪市', '33', '浙江省', '3307', '金华市', '330781', '兰溪市', '', '', '', '', 3, 1, ''), ('330782', '3307', '00,33,3307', '义乌市', '33', '浙江省', '3307', '金华市', '330782', '义乌市', '', '', '', '', 3, 1, ''), ('330783', '3307', '00,33,3307', '东阳市', '33', '浙江省', '3307', '金华市', '330783', '东阳市', '', '', '', '', 3, 1, ''), ('330784', '3307', '00,33,3307', '永康市', '33', '浙江省', '3307', '金华市', '330784', '永康市', '', '', '', '', 3, 1, ''), ('3308', '33', '00,33', '衢州市', '33', '浙江省', '3308', '衢州市', '', '', '', '', '', '', 2, 1, ''), ('330802', '3308', '00,33,3308', '柯城区', '33', '浙江省', '3308', '衢州市', '330802', '柯城区', '', '', '', '', 3, 1, ''), ('330803', '3308', '00,33,3308', '衢江区', '33', '浙江省', '3308', '衢州市', '330803', '衢江区', '', '', '', '', 3, 1, ''), ('330822', '3308', '00,33,3308', '常山县', '33', '浙江省', '3308', '衢州市', '330822', '常山县', '', '', '', '', 3, 1, ''), ('330824', '3308', '00,33,3308', '开化县', '33', '浙江省', '3308', '衢州市', '330824', '开化县', '', '', '', '', 3, 1, ''), ('330825', '3308', '00,33,3308', '龙游县', '33', '浙江省', '3308', '衢州市', '330825', '龙游县', '', '', '', '', 3, 1, ''), ('330881', '3308', '00,33,3308', '江山市', '33', '浙江省', '3308', '衢州市', '330881', '江山市', '', '', '', '', 3, 1, ''), ('3309', '33', '00,33', '舟山市', '33', '浙江省', '3309', '舟山市', '', '', '', '', '', '', 2, 1, ''), ('330902', '3309', '00,33,3309', '定海区', '33', '浙江省', '3309', '舟山市', '330902', '定海区', '', '', '', '', 3, 1, ''), ('330903', '3309', '00,33,3309', '普陀区', '33', '浙江省', '3309', '舟山市', '330903', '普陀区', '', '', '', '', 3, 1, ''), ('330921', '3309', '00,33,3309', '岱山县', '33', '浙江省', '3309', '舟山市', '330921', '岱山县', '', '', '', '', 3, 1, ''), ('330922', '3309', '00,33,3309', '嵊泗县', '33', '浙江省', '3309', '舟山市', '330922', '嵊泗县', '', '', '', '', 3, 1, ''), ('3310', '33', '00,33', '台州市', '33', '浙江省', '3310', '台州市', '', '', '', '', '', '', 2, 1, ''), ('331002', '3310', '00,33,3310', '椒江区', '33', '浙江省', '3310', '台州市', '331002', '椒江区', '', '', '', '', 3, 1, ''), ('331003', '3310', '00,33,3310', '黄岩区', '33', '浙江省', '3310', '台州市', '331003', '黄岩区', '', '', '', '', 3, 1, ''), ('331004', '3310', '00,33,3310', '路桥区', '33', '浙江省', '3310', '台州市', '331004', '路桥区', '', '', '', '', 3, 1, ''), ('331022', '3310', '00,33,3310', '三门县', '33', '浙江省', '3310', '台州市', '331022', '三门县', '', '', '', '', 3, 1, ''), ('331023', '3310', '00,33,3310', '天台县', '33', '浙江省', '3310', '台州市', '331023', '天台县', '', '', '', '', 3, 1, ''), ('331024', '3310', '00,33,3310', '仙居县', '33', '浙江省', '3310', '台州市', '331024', '仙居县', '', '', '', '', 3, 1, ''), ('331081', '3310', '00,33,3310', '温岭市', '33', '浙江省', '3310', '台州市', '331081', '温岭市', '', '', '', '', 3, 1, ''), ('331082', '3310', '00,33,3310', '临海市', '33', '浙江省', '3310', '台州市', '331082', '临海市', '', '', '', '', 3, 1, ''), ('331083', '3310', '00,33,3310', '玉环市', '33', '浙江省', '3310', '台州市', '331083', '玉环市', '', '', '', '', 3, 1, ''), ('3311', '33', '00,33', '丽水市', '33', '浙江省', '3311', '丽水市', '', '', '', '', '', '', 2, 1, ''), ('331102', '3311', '00,33,3311', '莲都区', '33', '浙江省', '3311', '丽水市', '331102', '莲都区', '', '', '', '', 3, 1, ''), ('331121', '3311', '00,33,3311', '青田县', '33', '浙江省', '3311', '丽水市', '331121', '青田县', '', '', '', '', 3, 1, ''), ('331122', '3311', '00,33,3311', '缙云县', '33', '浙江省', '3311', '丽水市', '331122', '缙云县', '', '', '', '', 3, 1, ''), ('331123', '3311', '00,33,3311', '遂昌县', '33', '浙江省', '3311', '丽水市', '331123', '遂昌县', '', '', '', '', 3, 1, ''), ('331124', '3311', '00,33,3311', '松阳县', '33', '浙江省', '3311', '丽水市', '331124', '松阳县', '', '', '', '', 3, 1, ''), ('331125', '3311', '00,33,3311', '云和县', '33', '浙江省', '3311', '丽水市', '331125', '云和县', '', '', '', '', 3, 1, ''), ('331126', '3311', '00,33,3311', '庆元县', '33', '浙江省', '3311', '丽水市', '331126', '庆元县', '', '', '', '', 3, 1, ''), ('331127', '3311', '00,33,3311', '景宁畲族自治县', '33', '浙江省', '3311', '丽水市', '331127', '景宁畲族自治县', '', '', '', '', 3, 1, ''), ('331181', '3311', '00,33,3311', '龙泉市', '33', '浙江省', '3311', '丽水市', '331181', '龙泉市', '', '', '', '', 3, 1, ''), ('34', '00', '00', '安徽省', '34', '安徽省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3401', '34', '00,34', '合肥市', '34', '安徽省', '3401', '合肥市', '', '', '', '', '', '', 2, 1, ''), ('340102', '3401', '00,34,3401', '瑶海区', '34', '安徽省', '3401', '合肥市', '340102', '瑶海区', '', '', '', '', 3, 1, ''), ('340103', '3401', '00,34,3401', '庐阳区', '34', '安徽省', '3401', '合肥市', '340103', '庐阳区', '', '', '', '', 3, 1, ''), ('340104', '3401', '00,34,3401', '蜀山区', '34', '安徽省', '3401', '合肥市', '340104', '蜀山区', '', '', '', '', 3, 1, ''), ('340111', '3401', '00,34,3401', '包河区', '34', '安徽省', '3401', '合肥市', '340111', '包河区', '', '', '', '', 3, 1, ''), ('340121', '3401', '00,34,3401', '长丰县', '34', '安徽省', '3401', '合肥市', '340121', '长丰县', '', '', '', '', 3, 1, ''), ('340122', '3401', '00,34,3401', '肥东县', '34', '安徽省', '3401', '合肥市', '340122', '肥东县', '', '', '', '', 3, 1, ''), ('340123', '3401', '00,34,3401', '肥西县', '34', '安徽省', '3401', '合肥市', '340123', '肥西县', '', '', '', '', 3, 1, ''), ('340124', '3401', '00,34,3401', '庐江县', '34', '安徽省', '3401', '合肥市', '340124', '庐江县', '', '', '', '', 3, 1, ''), ('340181', '3401', '00,34,3401', '巢湖市', '34', '安徽省', '3401', '合肥市', '340181', '巢湖市', '', '', '', '', 3, 1, ''), ('3402', '34', '00,34', '芜湖市', '34', '安徽省', '3402', '芜湖市', '', '', '', '', '', '', 2, 1, ''), ('340202', '3402', '00,34,3402', '镜湖区', '34', '安徽省', '3402', '芜湖市', '340202', '镜湖区', '', '', '', '', 3, 1, ''), ('340203', '3402', '00,34,3402', '弋江区', '34', '安徽省', '3402', '芜湖市', '340203', '弋江区', '', '', '', '', 3, 1, ''), ('340207', '3402', '00,34,3402', '鸠江区', '34', '安徽省', '3402', '芜湖市', '340207', '鸠江区', '', '', '', '', 3, 1, ''), ('340208', '3402', '00,34,3402', '三山区', '34', '安徽省', '3402', '芜湖市', '340208', '三山区', '', '', '', '', 3, 1, ''), ('340221', '3402', '00,34,3402', '芜湖县', '34', '安徽省', '3402', '芜湖市', '340221', '芜湖县', '', '', '', '', 3, 1, ''), ('340222', '3402', '00,34,3402', '繁昌县', '34', '安徽省', '3402', '芜湖市', '340222', '繁昌县', '', '', '', '', 3, 1, ''), ('340223', '3402', '00,34,3402', '南陵县', '34', '安徽省', '3402', '芜湖市', '340223', '南陵县', '', '', '', '', 3, 1, ''), ('340281', '3402', '00,34,3402', '无为市', '34', '安徽省', '3402', '芜湖市', '340281', '无为市', '', '', '', '', 3, 1, ''), ('3403', '34', '00,34', '蚌埠市', '34', '安徽省', '3403', '蚌埠市', '', '', '', '', '', '', 2, 1, ''), ('340302', '3403', '00,34,3403', '龙子湖区', '34', '安徽省', '3403', '蚌埠市', '340302', '龙子湖区', '', '', '', '', 3, 1, ''), ('340303', '3403', '00,34,3403', '蚌山区', '34', '安徽省', '3403', '蚌埠市', '340303', '蚌山区', '', '', '', '', 3, 1, ''), ('340304', '3403', '00,34,3403', '禹会区', '34', '安徽省', '3403', '蚌埠市', '340304', '禹会区', '', '', '', '', 3, 1, ''), ('340311', '3403', '00,34,3403', '淮上区', '34', '安徽省', '3403', '蚌埠市', '340311', '淮上区', '', '', '', '', 3, 1, ''), ('340321', '3403', '00,34,3403', '怀远县', '34', '安徽省', '3403', '蚌埠市', '340321', '怀远县', '', '', '', '', 3, 1, ''), ('340322', '3403', '00,34,3403', '五河县', '34', '安徽省', '3403', '蚌埠市', '340322', '五河县', '', '', '', '', 3, 1, ''), ('340323', '3403', '00,34,3403', '固镇县', '34', '安徽省', '3403', '蚌埠市', '340323', '固镇县', '', '', '', '', 3, 1, ''), ('3404', '34', '00,34', '淮南市', '34', '安徽省', '3404', '淮南市', '', '', '', '', '', '', 2, 1, ''), ('340402', '3404', '00,34,3404', '大通区', '34', '安徽省', '3404', '淮南市', '340402', '大通区', '', '', '', '', 3, 1, ''), ('340403', '3404', '00,34,3404', '田家庵区', '34', '安徽省', '3404', '淮南市', '340403', '田家庵区', '', '', '', '', 3, 1, ''), ('340404', '3404', '00,34,3404', '谢家集区', '34', '安徽省', '3404', '淮南市', '340404', '谢家集区', '', '', '', '', 3, 1, ''), ('340405', '3404', '00,34,3404', '八公山区', '34', '安徽省', '3404', '淮南市', '340405', '八公山区', '', '', '', '', 3, 1, ''), ('340406', '3404', '00,34,3404', '潘集区', '34', '安徽省', '3404', '淮南市', '340406', '潘集区', '', '', '', '', 3, 1, ''), ('340421', '3404', '00,34,3404', '凤台县', '34', '安徽省', '3404', '淮南市', '340421', '凤台县', '', '', '', '', 3, 1, ''), ('340422', '3404', '00,34,3404', '寿县', '34', '安徽省', '3404', '淮南市', '340422', '寿县', '', '', '', '', 3, 1, ''), ('3405', '34', '00,34', '马鞍山市', '34', '安徽省', '3405', '马鞍山市', '', '', '', '', '', '', 2, 1, ''), ('340503', '3405', '00,34,3405', '花山区', '34', '安徽省', '3405', '马鞍山市', '340503', '花山区', '', '', '', '', 3, 1, ''), ('340504', '3405', '00,34,3405', '雨山区', '34', '安徽省', '3405', '马鞍山市', '340504', '雨山区', '', '', '', '', 3, 1, ''), ('340506', '3405', '00,34,3405', '博望区', '34', '安徽省', '3405', '马鞍山市', '340506', '博望区', '', '', '', '', 3, 1, ''), ('340521', '3405', '00,34,3405', '当涂县', '34', '安徽省', '3405', '马鞍山市', '340521', '当涂县', '', '', '', '', 3, 1, ''), ('340522', '3405', '00,34,3405', '含山县', '34', '安徽省', '3405', '马鞍山市', '340522', '含山县', '', '', '', '', 3, 1, ''), ('340523', '3405', '00,34,3405', '和县', '34', '安徽省', '3405', '马鞍山市', '340523', '和县', '', '', '', '', 3, 1, ''), ('3406', '34', '00,34', '淮北市', '34', '安徽省', '3406', '淮北市', '', '', '', '', '', '', 2, 1, ''), ('340602', '3406', '00,34,3406', '杜集区', '34', '安徽省', '3406', '淮北市', '340602', '杜集区', '', '', '', '', 3, 1, ''), ('340603', '3406', '00,34,3406', '相山区', '34', '安徽省', '3406', '淮北市', '340603', '相山区', '', '', '', '', 3, 1, ''), ('340604', '3406', '00,34,3406', '烈山区', '34', '安徽省', '3406', '淮北市', '340604', '烈山区', '', '', '', '', 3, 1, ''), ('340621', '3406', '00,34,3406', '濉溪县', '34', '安徽省', '3406', '淮北市', '340621', '濉溪县', '', '', '', '', 3, 1, ''), ('3407', '34', '00,34', '铜陵市', '34', '安徽省', '3407', '铜陵市', '', '', '', '', '', '', 2, 1, ''), ('340705', '3407', '00,34,3407', '铜官区', '34', '安徽省', '3407', '铜陵市', '340705', '铜官区', '', '', '', '', 3, 1, ''), ('340706', '3407', '00,34,3407', '义安区', '34', '安徽省', '3407', '铜陵市', '340706', '义安区', '', '', '', '', 3, 1, ''), ('340711', '3407', '00,34,3407', '郊区', '34', '安徽省', '3407', '铜陵市', '340711', '郊区', '', '', '', '', 3, 1, ''), ('340722', '3407', '00,34,3407', '枞阳县', '34', '安徽省', '3407', '铜陵市', '340722', '枞阳县', '', '', '', '', 3, 1, ''), ('3408', '34', '00,34', '安庆市', '34', '安徽省', '3408', '安庆市', '', '', '', '', '', '', 2, 1, ''), ('340802', '3408', '00,34,3408', '迎江区', '34', '安徽省', '3408', '安庆市', '340802', '迎江区', '', '', '', '', 3, 1, ''), ('340803', '3408', '00,34,3408', '大观区', '34', '安徽省', '3408', '安庆市', '340803', '大观区', '', '', '', '', 3, 1, ''), ('340811', '3408', '00,34,3408', '宜秀区', '34', '安徽省', '3408', '安庆市', '340811', '宜秀区', '', '', '', '', 3, 1, ''), ('340822', '3408', '00,34,3408', '怀宁县', '34', '安徽省', '3408', '安庆市', '340822', '怀宁县', '', '', '', '', 3, 1, ''), ('340825', '3408', '00,34,3408', '太湖县', '34', '安徽省', '3408', '安庆市', '340825', '太湖县', '', '', '', '', 3, 1, ''), ('340826', '3408', '00,34,3408', '宿松县', '34', '安徽省', '3408', '安庆市', '340826', '宿松县', '', '', '', '', 3, 1, ''), ('340827', '3408', '00,34,3408', '望江县', '34', '安徽省', '3408', '安庆市', '340827', '望江县', '', '', '', '', 3, 1, ''), ('340828', '3408', '00,34,3408', '岳西县', '34', '安徽省', '3408', '安庆市', '340828', '岳西县', '', '', '', '', 3, 1, ''), ('340881', '3408', '00,34,3408', '桐城市', '34', '安徽省', '3408', '安庆市', '340881', '桐城市', '', '', '', '', 3, 1, ''), ('340882', '3408', '00,34,3408', '潜山市', '34', '安徽省', '3408', '安庆市', '340882', '潜山市', '', '', '', '', 3, 1, ''), ('3410', '34', '00,34', '黄山市', '34', '安徽省', '3410', '黄山市', '', '', '', '', '', '', 2, 1, ''), ('341002', '3410', '00,34,3410', '屯溪区', '34', '安徽省', '3410', '黄山市', '341002', '屯溪区', '', '', '', '', 3, 1, ''), ('341003', '3410', '00,34,3410', '黄山区', '34', '安徽省', '3410', '黄山市', '341003', '黄山区', '', '', '', '', 3, 1, ''), ('341004', '3410', '00,34,3410', '徽州区', '34', '安徽省', '3410', '黄山市', '341004', '徽州区', '', '', '', '', 3, 1, ''), ('341021', '3410', '00,34,3410', '歙县', '34', '安徽省', '3410', '黄山市', '341021', '歙县', '', '', '', '', 3, 1, ''), ('341022', '3410', '00,34,3410', '休宁县', '34', '安徽省', '3410', '黄山市', '341022', '休宁县', '', '', '', '', 3, 1, ''), ('341023', '3410', '00,34,3410', '黟县', '34', '安徽省', '3410', '黄山市', '341023', '黟县', '', '', '', '', 3, 1, ''), ('341024', '3410', '00,34,3410', '祁门县', '34', '安徽省', '3410', '黄山市', '341024', '祁门县', '', '', '', '', 3, 1, ''), ('3411', '34', '00,34', '滁州市', '34', '安徽省', '3411', '滁州市', '', '', '', '', '', '', 2, 1, ''), ('341102', '3411', '00,34,3411', '琅琊区', '34', '安徽省', '3411', '滁州市', '341102', '琅琊区', '', '', '', '', 3, 1, ''), ('341103', '3411', '00,34,3411', '南谯区', '34', '安徽省', '3411', '滁州市', '341103', '南谯区', '', '', '', '', 3, 1, ''), ('341122', '3411', '00,34,3411', '来安县', '34', '安徽省', '3411', '滁州市', '341122', '来安县', '', '', '', '', 3, 1, ''), ('341124', '3411', '00,34,3411', '全椒县', '34', '安徽省', '3411', '滁州市', '341124', '全椒县', '', '', '', '', 3, 1, ''), ('341125', '3411', '00,34,3411', '定远县', '34', '安徽省', '3411', '滁州市', '341125', '定远县', '', '', '', '', 3, 1, ''), ('341126', '3411', '00,34,3411', '凤阳县', '34', '安徽省', '3411', '滁州市', '341126', '凤阳县', '', '', '', '', 3, 1, ''), ('341181', '3411', '00,34,3411', '天长市', '34', '安徽省', '3411', '滁州市', '341181', '天长市', '', '', '', '', 3, 1, ''), ('341182', '3411', '00,34,3411', '明光市', '34', '安徽省', '3411', '滁州市', '341182', '明光市', '', '', '', '', 3, 1, ''), ('3412', '34', '00,34', '阜阳市', '34', '安徽省', '3412', '阜阳市', '', '', '', '', '', '', 2, 1, ''), ('341202', '3412', '00,34,3412', '颍州区', '34', '安徽省', '3412', '阜阳市', '341202', '颍州区', '', '', '', '', 3, 1, ''), ('341203', '3412', '00,34,3412', '颍东区', '34', '安徽省', '3412', '阜阳市', '341203', '颍东区', '', '', '', '', 3, 1, ''), ('341204', '3412', '00,34,3412', '颍泉区', '34', '安徽省', '3412', '阜阳市', '341204', '颍泉区', '', '', '', '', 3, 1, ''), ('341221', '3412', '00,34,3412', '临泉县', '34', '安徽省', '3412', '阜阳市', '341221', '临泉县', '', '', '', '', 3, 1, ''), ('341222', '3412', '00,34,3412', '太和县', '34', '安徽省', '3412', '阜阳市', '341222', '太和县', '', '', '', '', 3, 1, ''), ('341225', '3412', '00,34,3412', '阜南县', '34', '安徽省', '3412', '阜阳市', '341225', '阜南县', '', '', '', '', 3, 1, ''), ('341226', '3412', '00,34,3412', '颍上县', '34', '安徽省', '3412', '阜阳市', '341226', '颍上县', '', '', '', '', 3, 1, ''), ('341282', '3412', '00,34,3412', '界首市', '34', '安徽省', '3412', '阜阳市', '341282', '界首市', '', '', '', '', 3, 1, ''), ('3413', '34', '00,34', '宿州市', '34', '安徽省', '3413', '宿州市', '', '', '', '', '', '', 2, 1, ''), ('341302', '3413', '00,34,3413', '埇桥区', '34', '安徽省', '3413', '宿州市', '341302', '埇桥区', '', '', '', '', 3, 1, ''), ('341321', '3413', '00,34,3413', '砀山县', '34', '安徽省', '3413', '宿州市', '341321', '砀山县', '', '', '', '', 3, 1, ''), ('341322', '3413', '00,34,3413', '萧县', '34', '安徽省', '3413', '宿州市', '341322', '萧县', '', '', '', '', 3, 1, ''), ('341323', '3413', '00,34,3413', '灵璧县', '34', '安徽省', '3413', '宿州市', '341323', '灵璧县', '', '', '', '', 3, 1, ''), ('341324', '3413', '00,34,3413', '泗县', '34', '安徽省', '3413', '宿州市', '341324', '泗县', '', '', '', '', 3, 1, ''), ('3415', '34', '00,34', '六安市', '34', '安徽省', '3415', '六安市', '', '', '', '', '', '', 2, 1, ''), ('341502', '3415', '00,34,3415', '金安区', '34', '安徽省', '3415', '六安市', '341502', '金安区', '', '', '', '', 3, 1, ''), ('341503', '3415', '00,34,3415', '裕安区', '34', '安徽省', '3415', '六安市', '341503', '裕安区', '', '', '', '', 3, 1, ''), ('341504', '3415', '00,34,3415', '叶集区', '34', '安徽省', '3415', '六安市', '341504', '叶集区', '', '', '', '', 3, 1, ''), ('341522', '3415', '00,34,3415', '霍邱县', '34', '安徽省', '3415', '六安市', '341522', '霍邱县', '', '', '', '', 3, 1, ''), ('341523', '3415', '00,34,3415', '舒城县', '34', '安徽省', '3415', '六安市', '341523', '舒城县', '', '', '', '', 3, 1, ''), ('341524', '3415', '00,34,3415', '金寨县', '34', '安徽省', '3415', '六安市', '341524', '金寨县', '', '', '', '', 3, 1, ''), ('341525', '3415', '00,34,3415', '霍山县', '34', '安徽省', '3415', '六安市', '341525', '霍山县', '', '', '', '', 3, 1, ''), ('3416', '34', '00,34', '亳州市', '34', '安徽省', '3416', '亳州市', '', '', '', '', '', '', 2, 1, ''), ('341602', '3416', '00,34,3416', '谯城区', '34', '安徽省', '3416', '亳州市', '341602', '谯城区', '', '', '', '', 3, 1, ''), ('341621', '3416', '00,34,3416', '涡阳县', '34', '安徽省', '3416', '亳州市', '341621', '涡阳县', '', '', '', '', 3, 1, ''), ('341622', '3416', '00,34,3416', '蒙城县', '34', '安徽省', '3416', '亳州市', '341622', '蒙城县', '', '', '', '', 3, 1, ''), ('341623', '3416', '00,34,3416', '利辛县', '34', '安徽省', '3416', '亳州市', '341623', '利辛县', '', '', '', '', 3, 1, ''), ('3417', '34', '00,34', '池州市', '34', '安徽省', '3417', '池州市', '', '', '', '', '', '', 2, 1, ''), ('341702', '3417', '00,34,3417', '贵池区', '34', '安徽省', '3417', '池州市', '341702', '贵池区', '', '', '', '', 3, 1, ''), ('341721', '3417', '00,34,3417', '东至县', '34', '安徽省', '3417', '池州市', '341721', '东至县', '', '', '', '', 3, 1, ''), ('341722', '3417', '00,34,3417', '石台县', '34', '安徽省', '3417', '池州市', '341722', '石台县', '', '', '', '', 3, 1, ''), ('341723', '3417', '00,34,3417', '青阳县', '34', '安徽省', '3417', '池州市', '341723', '青阳县', '', '', '', '', 3, 1, ''), ('3418', '34', '00,34', '宣城市', '34', '安徽省', '3418', '宣城市', '', '', '', '', '', '', 2, 1, ''), ('341802', '3418', '00,34,3418', '宣州区', '34', '安徽省', '3418', '宣城市', '341802', '宣州区', '', '', '', '', 3, 1, ''), ('341821', '3418', '00,34,3418', '郎溪县', '34', '安徽省', '3418', '宣城市', '341821', '郎溪县', '', '', '', '', 3, 1, ''), ('341823', '3418', '00,34,3418', '泾县', '34', '安徽省', '3418', '宣城市', '341823', '泾县', '', '', '', '', 3, 1, ''), ('341824', '3418', '00,34,3418', '绩溪县', '34', '安徽省', '3418', '宣城市', '341824', '绩溪县', '', '', '', '', 3, 1, ''), ('341825', '3418', '00,34,3418', '旌德县', '34', '安徽省', '3418', '宣城市', '341825', '旌德县', '', '', '', '', 3, 1, ''), ('341881', '3418', '00,34,3418', '宁国市', '34', '安徽省', '3418', '宣城市', '341881', '宁国市', '', '', '', '', 3, 1, ''), ('341882', '3418', '00,34,3418', '广德市', '34', '安徽省', '3418', '宣城市', '341882', '广德市', '', '', '', '', 3, 1, ''), ('35', '00', '00', '福建省', '35', '福建省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3501', '35', '00,35', '福州市', '35', '福建省', '3501', '福州市', '', '', '', '', '', '', 2, 1, ''), ('350102', '3501', '00,35,3501', '鼓楼区', '35', '福建省', '3501', '福州市', '350102', '鼓楼区', '', '', '', '', 3, 1, ''), ('350103', '3501', '00,35,3501', '台江区', '35', '福建省', '3501', '福州市', '350103', '台江区', '', '', '', '', 3, 1, ''), ('350104', '3501', '00,35,3501', '仓山区', '35', '福建省', '3501', '福州市', '350104', '仓山区', '', '', '', '', 3, 1, ''), ('350105', '3501', '00,35,3501', '马尾区', '35', '福建省', '3501', '福州市', '350105', '马尾区', '', '', '', '', 3, 1, ''), ('350111', '3501', '00,35,3501', '晋安区', '35', '福建省', '3501', '福州市', '350111', '晋安区', '', '', '', '', 3, 1, ''), ('350112', '3501', '00,35,3501', '长乐区', '35', '福建省', '3501', '福州市', '350112', '长乐区', '', '', '', '', 3, 1, ''), ('350121', '3501', '00,35,3501', '闽侯县', '35', '福建省', '3501', '福州市', '350121', '闽侯县', '', '', '', '', 3, 1, ''), ('350122', '3501', '00,35,3501', '连江县', '35', '福建省', '3501', '福州市', '350122', '连江县', '', '', '', '', 3, 1, ''), ('350123', '3501', '00,35,3501', '罗源县', '35', '福建省', '3501', '福州市', '350123', '罗源县', '', '', '', '', 3, 1, ''), ('350124', '3501', '00,35,3501', '闽清县', '35', '福建省', '3501', '福州市', '350124', '闽清县', '', '', '', '', 3, 1, ''), ('350125', '3501', '00,35,3501', '永泰县', '35', '福建省', '3501', '福州市', '350125', '永泰县', '', '', '', '', 3, 1, ''), ('350128', '3501', '00,35,3501', '平潭县', '35', '福建省', '3501', '福州市', '350128', '平潭县', '', '', '', '', 3, 1, ''), ('350181', '3501', '00,35,3501', '福清市', '35', '福建省', '3501', '福州市', '350181', '福清市', '', '', '', '', 3, 1, ''), ('3502', '35', '00,35', '厦门市', '35', '福建省', '3502', '厦门市', '', '', '', '', '', '', 2, 1, ''), ('350203', '3502', '00,35,3502', '思明区', '35', '福建省', '3502', '厦门市', '350203', '思明区', '', '', '', '', 3, 1, ''), ('350205', '3502', '00,35,3502', '海沧区', '35', '福建省', '3502', '厦门市', '350205', '海沧区', '', '', '', '', 3, 1, ''), ('350206', '3502', '00,35,3502', '湖里区', '35', '福建省', '3502', '厦门市', '350206', '湖里区', '', '', '', '', 3, 1, ''), ('350211', '3502', '00,35,3502', '集美区', '35', '福建省', '3502', '厦门市', '350211', '集美区', '', '', '', '', 3, 1, ''), ('350212', '3502', '00,35,3502', '同安区', '35', '福建省', '3502', '厦门市', '350212', '同安区', '', '', '', '', 3, 1, ''), ('350213', '3502', '00,35,3502', '翔安区', '35', '福建省', '3502', '厦门市', '350213', '翔安区', '', '', '', '', 3, 1, ''), ('3503', '35', '00,35', '莆田市', '35', '福建省', '3503', '莆田市', '', '', '', '', '', '', 2, 1, ''), ('350302', '3503', '00,35,3503', '城厢区', '35', '福建省', '3503', '莆田市', '350302', '城厢区', '', '', '', '', 3, 1, ''), ('350303', '3503', '00,35,3503', '涵江区', '35', '福建省', '3503', '莆田市', '350303', '涵江区', '', '', '', '', 3, 1, ''), ('350304', '3503', '00,35,3503', '荔城区', '35', '福建省', '3503', '莆田市', '350304', '荔城区', '', '', '', '', 3, 1, ''), ('350305', '3503', '00,35,3503', '秀屿区', '35', '福建省', '3503', '莆田市', '350305', '秀屿区', '', '', '', '', 3, 1, ''), ('350322', '3503', '00,35,3503', '仙游县', '35', '福建省', '3503', '莆田市', '350322', '仙游县', '', '', '', '', 3, 1, ''), ('3504', '35', '00,35', '三明市', '35', '福建省', '3504', '三明市', '', '', '', '', '', '', 2, 1, ''), ('350402', '3504', '00,35,3504', '梅列区', '35', '福建省', '3504', '三明市', '350402', '梅列区', '', '', '', '', 3, 1, ''), ('350403', '3504', '00,35,3504', '三元区', '35', '福建省', '3504', '三明市', '350403', '三元区', '', '', '', '', 3, 1, ''), ('350421', '3504', '00,35,3504', '明溪县', '35', '福建省', '3504', '三明市', '350421', '明溪县', '', '', '', '', 3, 1, ''), ('350423', '3504', '00,35,3504', '清流县', '35', '福建省', '3504', '三明市', '350423', '清流县', '', '', '', '', 3, 1, ''), ('350424', '3504', '00,35,3504', '宁化县', '35', '福建省', '3504', '三明市', '350424', '宁化县', '', '', '', '', 3, 1, ''), ('350425', '3504', '00,35,3504', '大田县', '35', '福建省', '3504', '三明市', '350425', '大田县', '', '', '', '', 3, 1, ''), ('350426', '3504', '00,35,3504', '尤溪县', '35', '福建省', '3504', '三明市', '350426', '尤溪县', '', '', '', '', 3, 1, ''), ('350427', '3504', '00,35,3504', '沙县', '35', '福建省', '3504', '三明市', '350427', '沙县', '', '', '', '', 3, 1, ''), ('350428', '3504', '00,35,3504', '将乐县', '35', '福建省', '3504', '三明市', '350428', '将乐县', '', '', '', '', 3, 1, ''), ('350429', '3504', '00,35,3504', '泰宁县', '35', '福建省', '3504', '三明市', '350429', '泰宁县', '', '', '', '', 3, 1, ''), ('350430', '3504', '00,35,3504', '建宁县', '35', '福建省', '3504', '三明市', '350430', '建宁县', '', '', '', '', 3, 1, ''), ('350481', '3504', '00,35,3504', '永安市', '35', '福建省', '3504', '三明市', '350481', '永安市', '', '', '', '', 3, 1, ''), ('3505', '35', '00,35', '泉州市', '35', '福建省', '3505', '泉州市', '', '', '', '', '', '', 2, 1, ''), ('350502', '3505', '00,35,3505', '鲤城区', '35', '福建省', '3505', '泉州市', '350502', '鲤城区', '', '', '', '', 3, 1, ''), ('350503', '3505', '00,35,3505', '丰泽区', '35', '福建省', '3505', '泉州市', '350503', '丰泽区', '', '', '', '', 3, 1, ''), ('350504', '3505', '00,35,3505', '洛江区', '35', '福建省', '3505', '泉州市', '350504', '洛江区', '', '', '', '', 3, 1, ''), ('350505', '3505', '00,35,3505', '泉港区', '35', '福建省', '3505', '泉州市', '350505', '泉港区', '', '', '', '', 3, 1, ''), ('350521', '3505', '00,35,3505', '惠安县', '35', '福建省', '3505', '泉州市', '350521', '惠安县', '', '', '', '', 3, 1, ''), ('350524', '3505', '00,35,3505', '安溪县', '35', '福建省', '3505', '泉州市', '350524', '安溪县', '', '', '', '', 3, 1, ''), ('350525', '3505', '00,35,3505', '永春县', '35', '福建省', '3505', '泉州市', '350525', '永春县', '', '', '', '', 3, 1, ''), ('350526', '3505', '00,35,3505', '德化县', '35', '福建省', '3505', '泉州市', '350526', '德化县', '', '', '', '', 3, 1, ''), ('350527', '3505', '00,35,3505', '金门县', '35', '福建省', '3505', '泉州市', '350527', '金门县', '', '', '', '', 3, 1, ''), ('350581', '3505', '00,35,3505', '石狮市', '35', '福建省', '3505', '泉州市', '350581', '石狮市', '', '', '', '', 3, 1, ''), ('350582', '3505', '00,35,3505', '晋江市', '35', '福建省', '3505', '泉州市', '350582', '晋江市', '', '', '', '', 3, 1, ''), ('350583', '3505', '00,35,3505', '南安市', '35', '福建省', '3505', '泉州市', '350583', '南安市', '', '', '', '', 3, 1, ''), ('3506', '35', '00,35', '漳州市', '35', '福建省', '3506', '漳州市', '', '', '', '', '', '', 2, 1, ''), ('350602', '3506', '00,35,3506', '芗城区', '35', '福建省', '3506', '漳州市', '350602', '芗城区', '', '', '', '', 3, 1, ''), ('350603', '3506', '00,35,3506', '龙文区', '35', '福建省', '3506', '漳州市', '350603', '龙文区', '', '', '', '', 3, 1, ''), ('350622', '3506', '00,35,3506', '云霄县', '35', '福建省', '3506', '漳州市', '350622', '云霄县', '', '', '', '', 3, 1, ''), ('350623', '3506', '00,35,3506', '漳浦县', '35', '福建省', '3506', '漳州市', '350623', '漳浦县', '', '', '', '', 3, 1, ''), ('350624', '3506', '00,35,3506', '诏安县', '35', '福建省', '3506', '漳州市', '350624', '诏安县', '', '', '', '', 3, 1, ''), ('350625', '3506', '00,35,3506', '长泰县', '35', '福建省', '3506', '漳州市', '350625', '长泰县', '', '', '', '', 3, 1, ''), ('350626', '3506', '00,35,3506', '东山县', '35', '福建省', '3506', '漳州市', '350626', '东山县', '', '', '', '', 3, 1, ''), ('350627', '3506', '00,35,3506', '南靖县', '35', '福建省', '3506', '漳州市', '350627', '南靖县', '', '', '', '', 3, 1, ''), ('350628', '3506', '00,35,3506', '平和县', '35', '福建省', '3506', '漳州市', '350628', '平和县', '', '', '', '', 3, 1, ''), ('350629', '3506', '00,35,3506', '华安县', '35', '福建省', '3506', '漳州市', '350629', '华安县', '', '', '', '', 3, 1, ''), ('350681', '3506', '00,35,3506', '龙海市', '35', '福建省', '3506', '漳州市', '350681', '龙海市', '', '', '', '', 3, 1, ''), ('3507', '35', '00,35', '南平市', '35', '福建省', '3507', '南平市', '', '', '', '', '', '', 2, 1, ''), ('350702', '3507', '00,35,3507', '延平区', '35', '福建省', '3507', '南平市', '350702', '延平区', '', '', '', '', 3, 1, ''), ('350703', '3507', '00,35,3507', '建阳区', '35', '福建省', '3507', '南平市', '350703', '建阳区', '', '', '', '', 3, 1, ''), ('350721', '3507', '00,35,3507', '顺昌县', '35', '福建省', '3507', '南平市', '350721', '顺昌县', '', '', '', '', 3, 1, ''), ('350722', '3507', '00,35,3507', '浦城县', '35', '福建省', '3507', '南平市', '350722', '浦城县', '', '', '', '', 3, 1, ''), ('350723', '3507', '00,35,3507', '光泽县', '35', '福建省', '3507', '南平市', '350723', '光泽县', '', '', '', '', 3, 1, ''), ('350724', '3507', '00,35,3507', '松溪县', '35', '福建省', '3507', '南平市', '350724', '松溪县', '', '', '', '', 3, 1, ''), ('350725', '3507', '00,35,3507', '政和县', '35', '福建省', '3507', '南平市', '350725', '政和县', '', '', '', '', 3, 1, ''), ('350781', '3507', '00,35,3507', '邵武市', '35', '福建省', '3507', '南平市', '350781', '邵武市', '', '', '', '', 3, 1, ''), ('350782', '3507', '00,35,3507', '武夷山市', '35', '福建省', '3507', '南平市', '350782', '武夷山市', '', '', '', '', 3, 1, ''), ('350783', '3507', '00,35,3507', '建瓯市', '35', '福建省', '3507', '南平市', '350783', '建瓯市', '', '', '', '', 3, 1, ''), ('3508', '35', '00,35', '龙岩市', '35', '福建省', '3508', '龙岩市', '', '', '', '', '', '', 2, 1, ''), ('350802', '3508', '00,35,3508', '新罗区', '35', '福建省', '3508', '龙岩市', '350802', '新罗区', '', '', '', '', 3, 1, ''), ('350803', '3508', '00,35,3508', '永定区', '35', '福建省', '3508', '龙岩市', '350803', '永定区', '', '', '', '', 3, 1, ''), ('350821', '3508', '00,35,3508', '长汀县', '35', '福建省', '3508', '龙岩市', '350821', '长汀县', '', '', '', '', 3, 1, ''), ('350823', '3508', '00,35,3508', '上杭县', '35', '福建省', '3508', '龙岩市', '350823', '上杭县', '', '', '', '', 3, 1, ''), ('350824', '3508', '00,35,3508', '武平县', '35', '福建省', '3508', '龙岩市', '350824', '武平县', '', '', '', '', 3, 1, ''), ('350825', '3508', '00,35,3508', '连城县', '35', '福建省', '3508', '龙岩市', '350825', '连城县', '', '', '', '', 3, 1, ''), ('350881', '3508', '00,35,3508', '漳平市', '35', '福建省', '3508', '龙岩市', '350881', '漳平市', '', '', '', '', 3, 1, ''), ('3509', '35', '00,35', '宁德市', '35', '福建省', '3509', '宁德市', '', '', '', '', '', '', 2, 1, ''), ('350902', '3509', '00,35,3509', '蕉城区', '35', '福建省', '3509', '宁德市', '350902', '蕉城区', '', '', '', '', 3, 1, ''), ('350921', '3509', '00,35,3509', '霞浦县', '35', '福建省', '3509', '宁德市', '350921', '霞浦县', '', '', '', '', 3, 1, ''), ('350922', '3509', '00,35,3509', '古田县', '35', '福建省', '3509', '宁德市', '350922', '古田县', '', '', '', '', 3, 1, ''), ('350923', '3509', '00,35,3509', '屏南县', '35', '福建省', '3509', '宁德市', '350923', '屏南县', '', '', '', '', 3, 1, ''), ('350924', '3509', '00,35,3509', '寿宁县', '35', '福建省', '3509', '宁德市', '350924', '寿宁县', '', '', '', '', 3, 1, ''), ('350925', '3509', '00,35,3509', '周宁县', '35', '福建省', '3509', '宁德市', '350925', '周宁县', '', '', '', '', 3, 1, ''), ('350926', '3509', '00,35,3509', '柘荣县', '35', '福建省', '3509', '宁德市', '350926', '柘荣县', '', '', '', '', 3, 1, ''), ('350981', '3509', '00,35,3509', '福安市', '35', '福建省', '3509', '宁德市', '350981', '福安市', '', '', '', '', 3, 1, ''), ('350982', '3509', '00,35,3509', '福鼎市', '35', '福建省', '3509', '宁德市', '350982', '福鼎市', '', '', '', '', 3, 1, ''), ('36', '00', '00', '江西省', '36', '江西省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3601', '36', '00,36', '南昌市', '36', '江西省', '3601', '南昌市', '', '', '', '', '', '', 2, 1, ''), ('360102', '3601', '00,36,3601', '东湖区', '36', '江西省', '3601', '南昌市', '360102', '东湖区', '', '', '', '', 3, 1, ''), ('360103', '3601', '00,36,3601', '西湖区', '36', '江西省', '3601', '南昌市', '360103', '西湖区', '', '', '', '', 3, 1, ''), ('360104', '3601', '00,36,3601', '青云谱区', '36', '江西省', '3601', '南昌市', '360104', '青云谱区', '', '', '', '', 3, 1, ''), ('360111', '3601', '00,36,3601', '青山湖区', '36', '江西省', '3601', '南昌市', '360111', '青山湖区', '', '', '', '', 3, 1, ''), ('360112', '3601', '00,36,3601', '新建区', '36', '江西省', '3601', '南昌市', '360112', '新建区', '', '', '', '', 3, 1, ''), ('360113', '3601', '00,36,3601', '红谷滩区', '36', '江西省', '3601', '南昌市', '360113', '红谷滩区', '', '', '', '', 3, 1, ''), ('360121', '3601', '00,36,3601', '南昌县', '36', '江西省', '3601', '南昌市', '360121', '南昌县', '', '', '', '', 3, 1, ''), ('360123', '3601', '00,36,3601', '安义县', '36', '江西省', '3601', '南昌市', '360123', '安义县', '', '', '', '', 3, 1, ''), ('360124', '3601', '00,36,3601', '进贤县', '36', '江西省', '3601', '南昌市', '360124', '进贤县', '', '', '', '', 3, 1, ''), ('3602', '36', '00,36', '景德镇市', '36', '江西省', '3602', '景德镇市', '', '', '', '', '', '', 2, 1, ''), ('360202', '3602', '00,36,3602', '昌江区', '36', '江西省', '3602', '景德镇市', '360202', '昌江区', '', '', '', '', 3, 1, ''), ('360203', '3602', '00,36,3602', '珠山区', '36', '江西省', '3602', '景德镇市', '360203', '珠山区', '', '', '', '', 3, 1, ''), ('360222', '3602', '00,36,3602', '浮梁县', '36', '江西省', '3602', '景德镇市', '360222', '浮梁县', '', '', '', '', 3, 1, ''), ('360281', '3602', '00,36,3602', '乐平市', '36', '江西省', '3602', '景德镇市', '360281', '乐平市', '', '', '', '', 3, 1, ''), ('3603', '36', '00,36', '萍乡市', '36', '江西省', '3603', '萍乡市', '', '', '', '', '', '', 2, 1, ''), ('360302', '3603', '00,36,3603', '安源区', '36', '江西省', '3603', '萍乡市', '360302', '安源区', '', '', '', '', 3, 1, ''), ('360313', '3603', '00,36,3603', '湘东区', '36', '江西省', '3603', '萍乡市', '360313', '湘东区', '', '', '', '', 3, 1, ''), ('360321', '3603', '00,36,3603', '莲花县', '36', '江西省', '3603', '萍乡市', '360321', '莲花县', '', '', '', '', 3, 1, ''), ('360322', '3603', '00,36,3603', '上栗县', '36', '江西省', '3603', '萍乡市', '360322', '上栗县', '', '', '', '', 3, 1, ''), ('360323', '3603', '00,36,3603', '芦溪县', '36', '江西省', '3603', '萍乡市', '360323', '芦溪县', '', '', '', '', 3, 1, ''), ('3604', '36', '00,36', '九江市', '36', '江西省', '3604', '九江市', '', '', '', '', '', '', 2, 1, ''), ('360402', '3604', '00,36,3604', '濂溪区', '36', '江西省', '3604', '九江市', '360402', '濂溪区', '', '', '', '', 3, 1, ''), ('360403', '3604', '00,36,3604', '浔阳区', '36', '江西省', '3604', '九江市', '360403', '浔阳区', '', '', '', '', 3, 1, ''), ('360404', '3604', '00,36,3604', '柴桑区', '36', '江西省', '3604', '九江市', '360404', '柴桑区', '', '', '', '', 3, 1, ''), ('360423', '3604', '00,36,3604', '武宁县', '36', '江西省', '3604', '九江市', '360423', '武宁县', '', '', '', '', 3, 1, ''), ('360424', '3604', '00,36,3604', '修水县', '36', '江西省', '3604', '九江市', '360424', '修水县', '', '', '', '', 3, 1, ''), ('360425', '3604', '00,36,3604', '永修县', '36', '江西省', '3604', '九江市', '360425', '永修县', '', '', '', '', 3, 1, ''), ('360426', '3604', '00,36,3604', '德安县', '36', '江西省', '3604', '九江市', '360426', '德安县', '', '', '', '', 3, 1, ''), ('360428', '3604', '00,36,3604', '都昌县', '36', '江西省', '3604', '九江市', '360428', '都昌县', '', '', '', '', 3, 1, ''), ('360429', '3604', '00,36,3604', '湖口县', '36', '江西省', '3604', '九江市', '360429', '湖口县', '', '', '', '', 3, 1, ''), ('360430', '3604', '00,36,3604', '彭泽县', '36', '江西省', '3604', '九江市', '360430', '彭泽县', '', '', '', '', 3, 1, ''), ('360481', '3604', '00,36,3604', '瑞昌市', '36', '江西省', '3604', '九江市', '360481', '瑞昌市', '', '', '', '', 3, 1, ''), ('360482', '3604', '00,36,3604', '共青城市', '36', '江西省', '3604', '九江市', '360482', '共青城市', '', '', '', '', 3, 1, ''), ('360483', '3604', '00,36,3604', '庐山市', '36', '江西省', '3604', '九江市', '360483', '庐山市', '', '', '', '', 3, 1, ''), ('3605', '36', '00,36', '新余市', '36', '江西省', '3605', '新余市', '', '', '', '', '', '', 2, 1, ''), ('360502', '3605', '00,36,3605', '渝水区', '36', '江西省', '3605', '新余市', '360502', '渝水区', '', '', '', '', 3, 1, ''), ('360521', '3605', '00,36,3605', '分宜县', '36', '江西省', '3605', '新余市', '360521', '分宜县', '', '', '', '', 3, 1, ''), ('3606', '36', '00,36', '鹰潭市', '36', '江西省', '3606', '鹰潭市', '', '', '', '', '', '', 2, 1, ''), ('360602', '3606', '00,36,3606', '月湖区', '36', '江西省', '3606', '鹰潭市', '360602', '月湖区', '', '', '', '', 3, 1, ''), ('360603', '3606', '00,36,3606', '余江区', '36', '江西省', '3606', '鹰潭市', '360603', '余江区', '', '', '', '', 3, 1, ''), ('360681', '3606', '00,36,3606', '贵溪市', '36', '江西省', '3606', '鹰潭市', '360681', '贵溪市', '', '', '', '', 3, 1, ''), ('3607', '36', '00,36', '赣州市', '36', '江西省', '3607', '赣州市', '', '', '', '', '', '', 2, 1, ''), ('360702', '3607', '00,36,3607', '章贡区', '36', '江西省', '3607', '赣州市', '360702', '章贡区', '', '', '', '', 3, 1, ''), ('360703', '3607', '00,36,3607', '南康区', '36', '江西省', '3607', '赣州市', '360703', '南康区', '', '', '', '', 3, 1, ''), ('360704', '3607', '00,36,3607', '赣县区', '36', '江西省', '3607', '赣州市', '360704', '赣县区', '', '', '', '', 3, 1, ''), ('360722', '3607', '00,36,3607', '信丰县', '36', '江西省', '3607', '赣州市', '360722', '信丰县', '', '', '', '', 3, 1, ''), ('360723', '3607', '00,36,3607', '大余县', '36', '江西省', '3607', '赣州市', '360723', '大余县', '', '', '', '', 3, 1, ''), ('360724', '3607', '00,36,3607', '上犹县', '36', '江西省', '3607', '赣州市', '360724', '上犹县', '', '', '', '', 3, 1, ''), ('360725', '3607', '00,36,3607', '崇义县', '36', '江西省', '3607', '赣州市', '360725', '崇义县', '', '', '', '', 3, 1, ''), ('360726', '3607', '00,36,3607', '安远县', '36', '江西省', '3607', '赣州市', '360726', '安远县', '', '', '', '', 3, 1, ''), ('360727', '3607', '00,36,3607', '龙南县', '36', '江西省', '3607', '赣州市', '360727', '龙南县', '', '', '', '', 3, 1, ''), ('360728', '3607', '00,36,3607', '定南县', '36', '江西省', '3607', '赣州市', '360728', '定南县', '', '', '', '', 3, 1, ''), ('360729', '3607', '00,36,3607', '全南县', '36', '江西省', '3607', '赣州市', '360729', '全南县', '', '', '', '', 3, 1, ''), ('360730', '3607', '00,36,3607', '宁都县', '36', '江西省', '3607', '赣州市', '360730', '宁都县', '', '', '', '', 3, 1, ''), ('360731', '3607', '00,36,3607', '于都县', '36', '江西省', '3607', '赣州市', '360731', '于都县', '', '', '', '', 3, 1, ''), ('360732', '3607', '00,36,3607', '兴国县', '36', '江西省', '3607', '赣州市', '360732', '兴国县', '', '', '', '', 3, 1, ''), ('360733', '3607', '00,36,3607', '会昌县', '36', '江西省', '3607', '赣州市', '360733', '会昌县', '', '', '', '', 3, 1, ''), ('360734', '3607', '00,36,3607', '寻乌县', '36', '江西省', '3607', '赣州市', '360734', '寻乌县', '', '', '', '', 3, 1, ''), ('360735', '3607', '00,36,3607', '石城县', '36', '江西省', '3607', '赣州市', '360735', '石城县', '', '', '', '', 3, 1, ''), ('360781', '3607', '00,36,3607', '瑞金市', '36', '江西省', '3607', '赣州市', '360781', '瑞金市', '', '', '', '', 3, 1, ''), ('3608', '36', '00,36', '吉安市', '36', '江西省', '3608', '吉安市', '', '', '', '', '', '', 2, 1, ''), ('360802', '3608', '00,36,3608', '吉州区', '36', '江西省', '3608', '吉安市', '360802', '吉州区', '', '', '', '', 3, 1, ''), ('360803', '3608', '00,36,3608', '青原区', '36', '江西省', '3608', '吉安市', '360803', '青原区', '', '', '', '', 3, 1, ''), ('360821', '3608', '00,36,3608', '吉安县', '36', '江西省', '3608', '吉安市', '360821', '吉安县', '', '', '', '', 3, 1, ''), ('360822', '3608', '00,36,3608', '吉水县', '36', '江西省', '3608', '吉安市', '360822', '吉水县', '', '', '', '', 3, 1, ''), ('360823', '3608', '00,36,3608', '峡江县', '36', '江西省', '3608', '吉安市', '360823', '峡江县', '', '', '', '', 3, 1, ''), ('360824', '3608', '00,36,3608', '新干县', '36', '江西省', '3608', '吉安市', '360824', '新干县', '', '', '', '', 3, 1, ''), ('360825', '3608', '00,36,3608', '永丰县', '36', '江西省', '3608', '吉安市', '360825', '永丰县', '', '', '', '', 3, 1, ''), ('360826', '3608', '00,36,3608', '泰和县', '36', '江西省', '3608', '吉安市', '360826', '泰和县', '', '', '', '', 3, 1, ''), ('360827', '3608', '00,36,3608', '遂川县', '36', '江西省', '3608', '吉安市', '360827', '遂川县', '', '', '', '', 3, 1, ''), ('360828', '3608', '00,36,3608', '万安县', '36', '江西省', '3608', '吉安市', '360828', '万安县', '', '', '', '', 3, 1, ''), ('360829', '3608', '00,36,3608', '安福县', '36', '江西省', '3608', '吉安市', '360829', '安福县', '', '', '', '', 3, 1, ''), ('360830', '3608', '00,36,3608', '永新县', '36', '江西省', '3608', '吉安市', '360830', '永新县', '', '', '', '', 3, 1, ''), ('360881', '3608', '00,36,3608', '井冈山市', '36', '江西省', '3608', '吉安市', '360881', '井冈山市', '', '', '', '', 3, 1, ''), ('3609', '36', '00,36', '宜春市', '36', '江西省', '3609', '宜春市', '', '', '', '', '', '', 2, 1, ''), ('360902', '3609', '00,36,3609', '袁州区', '36', '江西省', '3609', '宜春市', '360902', '袁州区', '', '', '', '', 3, 1, ''), ('360921', '3609', '00,36,3609', '奉新县', '36', '江西省', '3609', '宜春市', '360921', '奉新县', '', '', '', '', 3, 1, ''), ('360922', '3609', '00,36,3609', '万载县', '36', '江西省', '3609', '宜春市', '360922', '万载县', '', '', '', '', 3, 1, ''), ('360923', '3609', '00,36,3609', '上高县', '36', '江西省', '3609', '宜春市', '360923', '上高县', '', '', '', '', 3, 1, ''), ('360924', '3609', '00,36,3609', '宜丰县', '36', '江西省', '3609', '宜春市', '360924', '宜丰县', '', '', '', '', 3, 1, ''), ('360925', '3609', '00,36,3609', '靖安县', '36', '江西省', '3609', '宜春市', '360925', '靖安县', '', '', '', '', 3, 1, ''), ('360926', '3609', '00,36,3609', '铜鼓县', '36', '江西省', '3609', '宜春市', '360926', '铜鼓县', '', '', '', '', 3, 1, ''), ('360981', '3609', '00,36,3609', '丰城市', '36', '江西省', '3609', '宜春市', '360981', '丰城市', '', '', '', '', 3, 1, ''), ('360982', '3609', '00,36,3609', '樟树市', '36', '江西省', '3609', '宜春市', '360982', '樟树市', '', '', '', '', 3, 1, ''), ('360983', '3609', '00,36,3609', '高安市', '36', '江西省', '3609', '宜春市', '360983', '高安市', '', '', '', '', 3, 1, ''), ('3610', '36', '00,36', '抚州市', '36', '江西省', '3610', '抚州市', '', '', '', '', '', '', 2, 1, ''), ('361002', '3610', '00,36,3610', '临川区', '36', '江西省', '3610', '抚州市', '361002', '临川区', '', '', '', '', 3, 1, ''), ('361003', '3610', '00,36,3610', '东乡区', '36', '江西省', '3610', '抚州市', '361003', '东乡区', '', '', '', '', 3, 1, ''), ('361021', '3610', '00,36,3610', '南城县', '36', '江西省', '3610', '抚州市', '361021', '南城县', '', '', '', '', 3, 1, ''), ('361022', '3610', '00,36,3610', '黎川县', '36', '江西省', '3610', '抚州市', '361022', '黎川县', '', '', '', '', 3, 1, ''), ('361023', '3610', '00,36,3610', '南丰县', '36', '江西省', '3610', '抚州市', '361023', '南丰县', '', '', '', '', 3, 1, ''), ('361024', '3610', '00,36,3610', '崇仁县', '36', '江西省', '3610', '抚州市', '361024', '崇仁县', '', '', '', '', 3, 1, ''), ('361025', '3610', '00,36,3610', '乐安县', '36', '江西省', '3610', '抚州市', '361025', '乐安县', '', '', '', '', 3, 1, ''), ('361026', '3610', '00,36,3610', '宜黄县', '36', '江西省', '3610', '抚州市', '361026', '宜黄县', '', '', '', '', 3, 1, ''), ('361027', '3610', '00,36,3610', '金溪县', '36', '江西省', '3610', '抚州市', '361027', '金溪县', '', '', '', '', 3, 1, ''), ('361028', '3610', '00,36,3610', '资溪县', '36', '江西省', '3610', '抚州市', '361028', '资溪县', '', '', '', '', 3, 1, ''), ('361030', '3610', '00,36,3610', '广昌县', '36', '江西省', '3610', '抚州市', '361030', '广昌县', '', '', '', '', 3, 1, ''), ('3611', '36', '00,36', '上饶市', '36', '江西省', '3611', '上饶市', '', '', '', '', '', '', 2, 1, ''), ('361102', '3611', '00,36,3611', '信州区', '36', '江西省', '3611', '上饶市', '361102', '信州区', '', '', '', '', 3, 1, ''), ('361103', '3611', '00,36,3611', '广丰区', '36', '江西省', '3611', '上饶市', '361103', '广丰区', '', '', '', '', 3, 1, ''), ('361104', '3611', '00,36,3611', '广信区', '36', '江西省', '3611', '上饶市', '361104', '广信区', '', '', '', '', 3, 1, ''), ('361123', '3611', '00,36,3611', '玉山县', '36', '江西省', '3611', '上饶市', '361123', '玉山县', '', '', '', '', 3, 1, ''), ('361124', '3611', '00,36,3611', '铅山县', '36', '江西省', '3611', '上饶市', '361124', '铅山县', '', '', '', '', 3, 1, ''), ('361125', '3611', '00,36,3611', '横峰县', '36', '江西省', '3611', '上饶市', '361125', '横峰县', '', '', '', '', 3, 1, ''), ('361126', '3611', '00,36,3611', '弋阳县', '36', '江西省', '3611', '上饶市', '361126', '弋阳县', '', '', '', '', 3, 1, ''), ('361127', '3611', '00,36,3611', '余干县', '36', '江西省', '3611', '上饶市', '361127', '余干县', '', '', '', '', 3, 1, ''), ('361128', '3611', '00,36,3611', '鄱阳县', '36', '江西省', '3611', '上饶市', '361128', '鄱阳县', '', '', '', '', 3, 1, ''), ('361129', '3611', '00,36,3611', '万年县', '36', '江西省', '3611', '上饶市', '361129', '万年县', '', '', '', '', 3, 1, ''), ('361130', '3611', '00,36,3611', '婺源县', '36', '江西省', '3611', '上饶市', '361130', '婺源县', '', '', '', '', 3, 1, ''), ('361181', '3611', '00,36,3611', '德兴市', '36', '江西省', '3611', '上饶市', '361181', '德兴市', '', '', '', '', 3, 1, ''), ('37', '00', '00', '山东省', '37', '山东省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3701', '37', '00,37', '济南市', '37', '山东省', '3701', '济南市', '', '', '', '', '', '', 2, 1, ''), ('370102', '3701', '00,37,3701', '历下区', '37', '山东省', '3701', '济南市', '370102', '历下区', '', '', '', '', 3, 1, ''), ('370103', '3701', '00,37,3701', '市中区', '37', '山东省', '3701', '济南市', '370103', '市中区', '', '', '', '', 3, 1, ''), ('370104', '3701', '00,37,3701', '槐荫区', '37', '山东省', '3701', '济南市', '370104', '槐荫区', '', '', '', '', 3, 1, ''), ('370105', '3701', '00,37,3701', '天桥区', '37', '山东省', '3701', '济南市', '370105', '天桥区', '', '', '', '', 3, 1, ''), ('370112', '3701', '00,37,3701', '历城区', '37', '山东省', '3701', '济南市', '370112', '历城区', '', '', '', '', 3, 1, ''), ('370113', '3701', '00,37,3701', '长清区', '37', '山东省', '3701', '济南市', '370113', '长清区', '', '', '', '', 3, 1, ''), ('370114', '3701', '00,37,3701', '章丘区', '37', '山东省', '3701', '济南市', '370114', '章丘区', '', '', '', '', 3, 1, ''), ('370115', '3701', '00,37,3701', '济阳区', '37', '山东省', '3701', '济南市', '370115', '济阳区', '', '', '', '', 3, 1, ''), ('370116', '3701', '00,37,3701', '莱芜区', '37', '山东省', '3701', '济南市', '370116', '莱芜区', '', '', '', '', 3, 1, ''), ('370117', '3701', '00,37,3701', '钢城区', '37', '山东省', '3701', '济南市', '370117', '钢城区', '', '', '', '', 3, 1, ''), ('370124', '3701', '00,37,3701', '平阴县', '37', '山东省', '3701', '济南市', '370124', '平阴县', '', '', '', '', 3, 1, ''), ('370126', '3701', '00,37,3701', '商河县', '37', '山东省', '3701', '济南市', '370126', '商河县', '', '', '', '', 3, 1, ''), ('3702', '37', '00,37', '青岛市', '37', '山东省', '3702', '青岛市', '', '', '', '', '', '', 2, 1, ''), ('370202', '3702', '00,37,3702', '市南区', '37', '山东省', '3702', '青岛市', '370202', '市南区', '', '', '', '', 3, 1, ''), ('370203', '3702', '00,37,3702', '市北区', '37', '山东省', '3702', '青岛市', '370203', '市北区', '', '', '', '', 3, 1, ''), ('370211', '3702', '00,37,3702', '黄岛区', '37', '山东省', '3702', '青岛市', '370211', '黄岛区', '', '', '', '', 3, 1, ''), ('370212', '3702', '00,37,3702', '崂山区', '37', '山东省', '3702', '青岛市', '370212', '崂山区', '', '', '', '', 3, 1, ''), ('370213', '3702', '00,37,3702', '李沧区', '37', '山东省', '3702', '青岛市', '370213', '李沧区', '', '', '', '', 3, 1, ''), ('370214', '3702', '00,37,3702', '城阳区', '37', '山东省', '3702', '青岛市', '370214', '城阳区', '', '', '', '', 3, 1, ''), ('370215', '3702', '00,37,3702', '即墨区', '37', '山东省', '3702', '青岛市', '370215', '即墨区', '', '', '', '', 3, 1, ''), ('370281', '3702', '00,37,3702', '胶州市', '37', '山东省', '3702', '青岛市', '370281', '胶州市', '', '', '', '', 3, 1, ''), ('370283', '3702', '00,37,3702', '平度市', '37', '山东省', '3702', '青岛市', '370283', '平度市', '', '', '', '', 3, 1, ''), ('370285', '3702', '00,37,3702', '莱西市', '37', '山东省', '3702', '青岛市', '370285', '莱西市', '', '', '', '', 3, 1, ''), ('3703', '37', '00,37', '淄博市', '37', '山东省', '3703', '淄博市', '', '', '', '', '', '', 2, 1, ''), ('370302', '3703', '00,37,3703', '淄川区', '37', '山东省', '3703', '淄博市', '370302', '淄川区', '', '', '', '', 3, 1, ''), ('370303', '3703', '00,37,3703', '张店区', '37', '山东省', '3703', '淄博市', '370303', '张店区', '', '', '', '', 3, 1, ''), ('370304', '3703', '00,37,3703', '博山区', '37', '山东省', '3703', '淄博市', '370304', '博山区', '', '', '', '', 3, 1, ''), ('370305', '3703', '00,37,3703', '临淄区', '37', '山东省', '3703', '淄博市', '370305', '临淄区', '', '', '', '', 3, 1, ''), ('370306', '3703', '00,37,3703', '周村区', '37', '山东省', '3703', '淄博市', '370306', '周村区', '', '', '', '', 3, 1, ''), ('370321', '3703', '00,37,3703', '桓台县', '37', '山东省', '3703', '淄博市', '370321', '桓台县', '', '', '', '', 3, 1, ''), ('370322', '3703', '00,37,3703', '高青县', '37', '山东省', '3703', '淄博市', '370322', '高青县', '', '', '', '', 3, 1, ''), ('370323', '3703', '00,37,3703', '沂源县', '37', '山东省', '3703', '淄博市', '370323', '沂源县', '', '', '', '', 3, 1, ''), ('3704', '37', '00,37', '枣庄市', '37', '山东省', '3704', '枣庄市', '', '', '', '', '', '', 2, 1, ''), ('370402', '3704', '00,37,3704', '市中区', '37', '山东省', '3704', '枣庄市', '370402', '市中区', '', '', '', '', 3, 1, ''), ('370403', '3704', '00,37,3704', '薛城区', '37', '山东省', '3704', '枣庄市', '370403', '薛城区', '', '', '', '', 3, 1, ''), ('370404', '3704', '00,37,3704', '峄城区', '37', '山东省', '3704', '枣庄市', '370404', '峄城区', '', '', '', '', 3, 1, ''), ('370405', '3704', '00,37,3704', '台儿庄区', '37', '山东省', '3704', '枣庄市', '370405', '台儿庄区', '', '', '', '', 3, 1, ''), ('370406', '3704', '00,37,3704', '山亭区', '37', '山东省', '3704', '枣庄市', '370406', '山亭区', '', '', '', '', 3, 1, ''), ('370481', '3704', '00,37,3704', '滕州市', '37', '山东省', '3704', '枣庄市', '370481', '滕州市', '', '', '', '', 3, 1, ''), ('3705', '37', '00,37', '东营市', '37', '山东省', '3705', '东营市', '', '', '', '', '', '', 2, 1, ''), ('370502', '3705', '00,37,3705', '东营区', '37', '山东省', '3705', '东营市', '370502', '东营区', '', '', '', '', 3, 1, ''), ('370503', '3705', '00,37,3705', '河口区', '37', '山东省', '3705', '东营市', '370503', '河口区', '', '', '', '', 3, 1, ''), ('370505', '3705', '00,37,3705', '垦利区', '37', '山东省', '3705', '东营市', '370505', '垦利区', '', '', '', '', 3, 1, ''), ('370522', '3705', '00,37,3705', '利津县', '37', '山东省', '3705', '东营市', '370522', '利津县', '', '', '', '', 3, 1, ''), ('370523', '3705', '00,37,3705', '广饶县', '37', '山东省', '3705', '东营市', '370523', '广饶县', '', '', '', '', 3, 1, ''), ('3706', '37', '00,37', '烟台市', '37', '山东省', '3706', '烟台市', '', '', '', '', '', '', 2, 1, ''), ('370602', '3706', '00,37,3706', '芝罘区', '37', '山东省', '3706', '烟台市', '370602', '芝罘区', '', '', '', '', 3, 1, ''), ('370611', '3706', '00,37,3706', '福山区', '37', '山东省', '3706', '烟台市', '370611', '福山区', '', '', '', '', 3, 1, ''), ('370612', '3706', '00,37,3706', '牟平区', '37', '山东省', '3706', '烟台市', '370612', '牟平区', '', '', '', '', 3, 1, ''), ('370613', '3706', '00,37,3706', '莱山区', '37', '山东省', '3706', '烟台市', '370613', '莱山区', '', '', '', '', 3, 1, ''), ('370634', '3706', '00,37,3706', '长岛县', '37', '山东省', '3706', '烟台市', '370634', '长岛县', '', '', '', '', 3, 1, ''), ('370681', '3706', '00,37,3706', '龙口市', '37', '山东省', '3706', '烟台市', '370681', '龙口市', '', '', '', '', 3, 1, ''), ('370682', '3706', '00,37,3706', '莱阳市', '37', '山东省', '3706', '烟台市', '370682', '莱阳市', '', '', '', '', 3, 1, ''), ('370683', '3706', '00,37,3706', '莱州市', '37', '山东省', '3706', '烟台市', '370683', '莱州市', '', '', '', '', 3, 1, ''), ('370684', '3706', '00,37,3706', '蓬莱市', '37', '山东省', '3706', '烟台市', '370684', '蓬莱市', '', '', '', '', 3, 1, ''), ('370685', '3706', '00,37,3706', '招远市', '37', '山东省', '3706', '烟台市', '370685', '招远市', '', '', '', '', 3, 1, ''), ('370686', '3706', '00,37,3706', '栖霞市', '37', '山东省', '3706', '烟台市', '370686', '栖霞市', '', '', '', '', 3, 1, ''), ('370687', '3706', '00,37,3706', '海阳市', '37', '山东省', '3706', '烟台市', '370687', '海阳市', '', '', '', '', 3, 1, ''), ('3707', '37', '00,37', '潍坊市', '37', '山东省', '3707', '潍坊市', '', '', '', '', '', '', 2, 1, ''), ('370702', '3707', '00,37,3707', '潍城区', '37', '山东省', '3707', '潍坊市', '370702', '潍城区', '', '', '', '', 3, 1, ''), ('370703', '3707', '00,37,3707', '寒亭区', '37', '山东省', '3707', '潍坊市', '370703', '寒亭区', '', '', '', '', 3, 1, ''), ('370704', '3707', '00,37,3707', '坊子区', '37', '山东省', '3707', '潍坊市', '370704', '坊子区', '', '', '', '', 3, 1, ''), ('370705', '3707', '00,37,3707', '奎文区', '37', '山东省', '3707', '潍坊市', '370705', '奎文区', '', '', '', '', 3, 1, ''), ('370724', '3707', '00,37,3707', '临朐县', '37', '山东省', '3707', '潍坊市', '370724', '临朐县', '', '', '', '', 3, 1, ''), ('370725', '3707', '00,37,3707', '昌乐县', '37', '山东省', '3707', '潍坊市', '370725', '昌乐县', '', '', '', '', 3, 1, ''), ('370781', '3707', '00,37,3707', '青州市', '37', '山东省', '3707', '潍坊市', '370781', '青州市', '', '', '', '', 3, 1, ''), ('370782', '3707', '00,37,3707', '诸城市', '37', '山东省', '3707', '潍坊市', '370782', '诸城市', '', '', '', '', 3, 1, ''), ('370783', '3707', '00,37,3707', '寿光市', '37', '山东省', '3707', '潍坊市', '370783', '寿光市', '', '', '', '', 3, 1, ''), ('370784', '3707', '00,37,3707', '安丘市', '37', '山东省', '3707', '潍坊市', '370784', '安丘市', '', '', '', '', 3, 1, ''), ('370785', '3707', '00,37,3707', '高密市', '37', '山东省', '3707', '潍坊市', '370785', '高密市', '', '', '', '', 3, 1, ''), ('370786', '3707', '00,37,3707', '昌邑市', '37', '山东省', '3707', '潍坊市', '370786', '昌邑市', '', '', '', '', 3, 1, ''), ('3708', '37', '00,37', '济宁市', '37', '山东省', '3708', '济宁市', '', '', '', '', '', '', 2, 1, ''), ('370811', '3708', '00,37,3708', '任城区', '37', '山东省', '3708', '济宁市', '370811', '任城区', '', '', '', '', 3, 1, ''), ('370812', '3708', '00,37,3708', '兖州区', '37', '山东省', '3708', '济宁市', '370812', '兖州区', '', '', '', '', 3, 1, ''), ('370826', '3708', '00,37,3708', '微山县', '37', '山东省', '3708', '济宁市', '370826', '微山县', '', '', '', '', 3, 1, ''), ('370827', '3708', '00,37,3708', '鱼台县', '37', '山东省', '3708', '济宁市', '370827', '鱼台县', '', '', '', '', 3, 1, ''), ('370828', '3708', '00,37,3708', '金乡县', '37', '山东省', '3708', '济宁市', '370828', '金乡县', '', '', '', '', 3, 1, ''), ('370829', '3708', '00,37,3708', '嘉祥县', '37', '山东省', '3708', '济宁市', '370829', '嘉祥县', '', '', '', '', 3, 1, ''), ('370830', '3708', '00,37,3708', '汶上县', '37', '山东省', '3708', '济宁市', '370830', '汶上县', '', '', '', '', 3, 1, ''), ('370831', '3708', '00,37,3708', '泗水县', '37', '山东省', '3708', '济宁市', '370831', '泗水县', '', '', '', '', 3, 1, ''), ('370832', '3708', '00,37,3708', '梁山县', '37', '山东省', '3708', '济宁市', '370832', '梁山县', '', '', '', '', 3, 1, ''), ('370881', '3708', '00,37,3708', '曲阜市', '37', '山东省', '3708', '济宁市', '370881', '曲阜市', '', '', '', '', 3, 1, ''), ('370883', '3708', '00,37,3708', '邹城市', '37', '山东省', '3708', '济宁市', '370883', '邹城市', '', '', '', '', 3, 1, ''), ('3709', '37', '00,37', '泰安市', '37', '山东省', '3709', '泰安市', '', '', '', '', '', '', 2, 1, ''), ('370902', '3709', '00,37,3709', '泰山区', '37', '山东省', '3709', '泰安市', '370902', '泰山区', '', '', '', '', 3, 1, ''), ('370911', '3709', '00,37,3709', '岱岳区', '37', '山东省', '3709', '泰安市', '370911', '岱岳区', '', '', '', '', 3, 1, ''), ('370921', '3709', '00,37,3709', '宁阳县', '37', '山东省', '3709', '泰安市', '370921', '宁阳县', '', '', '', '', 3, 1, ''), ('370923', '3709', '00,37,3709', '东平县', '37', '山东省', '3709', '泰安市', '370923', '东平县', '', '', '', '', 3, 1, ''), ('370982', '3709', '00,37,3709', '新泰市', '37', '山东省', '3709', '泰安市', '370982', '新泰市', '', '', '', '', 3, 1, ''), ('370983', '3709', '00,37,3709', '肥城市', '37', '山东省', '3709', '泰安市', '370983', '肥城市', '', '', '', '', 3, 1, ''), ('3710', '37', '00,37', '威海市', '37', '山东省', '3710', '威海市', '', '', '', '', '', '', 2, 1, ''), ('371002', '3710', '00,37,3710', '环翠区', '37', '山东省', '3710', '威海市', '371002', '环翠区', '', '', '', '', 3, 1, ''), ('371003', '3710', '00,37,3710', '文登区', '37', '山东省', '3710', '威海市', '371003', '文登区', '', '', '', '', 3, 1, ''), ('371082', '3710', '00,37,3710', '荣成市', '37', '山东省', '3710', '威海市', '371082', '荣成市', '', '', '', '', 3, 1, ''), ('371083', '3710', '00,37,3710', '乳山市', '37', '山东省', '3710', '威海市', '371083', '乳山市', '', '', '', '', 3, 1, ''), ('3711', '37', '00,37', '日照市', '37', '山东省', '3711', '日照市', '', '', '', '', '', '', 2, 1, ''), ('371102', '3711', '00,37,3711', '东港区', '37', '山东省', '3711', '日照市', '371102', '东港区', '', '', '', '', 3, 1, ''), ('371103', '3711', '00,37,3711', '岚山区', '37', '山东省', '3711', '日照市', '371103', '岚山区', '', '', '', '', 3, 1, ''), ('371121', '3711', '00,37,3711', '五莲县', '37', '山东省', '3711', '日照市', '371121', '五莲县', '', '', '', '', 3, 1, ''), ('371122', '3711', '00,37,3711', '莒县', '37', '山东省', '3711', '日照市', '371122', '莒县', '', '', '', '', 3, 1, ''), ('3713', '37', '00,37', '临沂市', '37', '山东省', '3713', '临沂市', '', '', '', '', '', '', 2, 1, ''), ('371302', '3713', '00,37,3713', '兰山区', '37', '山东省', '3713', '临沂市', '371302', '兰山区', '', '', '', '', 3, 1, ''), ('371311', '3713', '00,37,3713', '罗庄区', '37', '山东省', '3713', '临沂市', '371311', '罗庄区', '', '', '', '', 3, 1, ''), ('371312', '3713', '00,37,3713', '河东区', '37', '山东省', '3713', '临沂市', '371312', '河东区', '', '', '', '', 3, 1, '');
+INSERT INTO `blade_region` VALUES ('371321', '3713', '00,37,3713', '沂南县', '37', '山东省', '3713', '临沂市', '371321', '沂南县', '', '', '', '', 3, 1, ''), ('371322', '3713', '00,37,3713', '郯城县', '37', '山东省', '3713', '临沂市', '371322', '郯城县', '', '', '', '', 3, 1, ''), ('371323', '3713', '00,37,3713', '沂水县', '37', '山东省', '3713', '临沂市', '371323', '沂水县', '', '', '', '', 3, 1, ''), ('371324', '3713', '00,37,3713', '兰陵县', '37', '山东省', '3713', '临沂市', '371324', '兰陵县', '', '', '', '', 3, 1, ''), ('371325', '3713', '00,37,3713', '费县', '37', '山东省', '3713', '临沂市', '371325', '费县', '', '', '', '', 3, 1, ''), ('371326', '3713', '00,37,3713', '平邑县', '37', '山东省', '3713', '临沂市', '371326', '平邑县', '', '', '', '', 3, 1, ''), ('371327', '3713', '00,37,3713', '莒南县', '37', '山东省', '3713', '临沂市', '371327', '莒南县', '', '', '', '', 3, 1, ''), ('371328', '3713', '00,37,3713', '蒙阴县', '37', '山东省', '3713', '临沂市', '371328', '蒙阴县', '', '', '', '', 3, 1, ''), ('371329', '3713', '00,37,3713', '临沭县', '37', '山东省', '3713', '临沂市', '371329', '临沭县', '', '', '', '', 3, 1, ''), ('3714', '37', '00,37', '德州市', '37', '山东省', '3714', '德州市', '', '', '', '', '', '', 2, 1, ''), ('371402', '3714', '00,37,3714', '德城区', '37', '山东省', '3714', '德州市', '371402', '德城区', '', '', '', '', 3, 1, ''), ('371403', '3714', '00,37,3714', '陵城区', '37', '山东省', '3714', '德州市', '371403', '陵城区', '', '', '', '', 3, 1, ''), ('371422', '3714', '00,37,3714', '宁津县', '37', '山东省', '3714', '德州市', '371422', '宁津县', '', '', '', '', 3, 1, ''), ('371423', '3714', '00,37,3714', '庆云县', '37', '山东省', '3714', '德州市', '371423', '庆云县', '', '', '', '', 3, 1, ''), ('371424', '3714', '00,37,3714', '临邑县', '37', '山东省', '3714', '德州市', '371424', '临邑县', '', '', '', '', 3, 1, ''), ('371425', '3714', '00,37,3714', '齐河县', '37', '山东省', '3714', '德州市', '371425', '齐河县', '', '', '', '', 3, 1, ''), ('371426', '3714', '00,37,3714', '平原县', '37', '山东省', '3714', '德州市', '371426', '平原县', '', '', '', '', 3, 1, ''), ('371427', '3714', '00,37,3714', '夏津县', '37', '山东省', '3714', '德州市', '371427', '夏津县', '', '', '', '', 3, 1, ''), ('371428', '3714', '00,37,3714', '武城县', '37', '山东省', '3714', '德州市', '371428', '武城县', '', '', '', '', 3, 1, ''), ('371481', '3714', '00,37,3714', '乐陵市', '37', '山东省', '3714', '德州市', '371481', '乐陵市', '', '', '', '', 3, 1, ''), ('371482', '3714', '00,37,3714', '禹城市', '37', '山东省', '3714', '德州市', '371482', '禹城市', '', '', '', '', 3, 1, ''), ('3715', '37', '00,37', '聊城市', '37', '山东省', '3715', '聊城市', '', '', '', '', '', '', 2, 1, ''), ('371502', '3715', '00,37,3715', '东昌府区', '37', '山东省', '3715', '聊城市', '371502', '东昌府区', '', '', '', '', 3, 1, ''), ('371503', '3715', '00,37,3715', '茌平区', '37', '山东省', '3715', '聊城市', '371503', '茌平区', '', '', '', '', 3, 1, ''), ('371521', '3715', '00,37,3715', '阳谷县', '37', '山东省', '3715', '聊城市', '371521', '阳谷县', '', '', '', '', 3, 1, ''), ('371522', '3715', '00,37,3715', '莘县', '37', '山东省', '3715', '聊城市', '371522', '莘县', '', '', '', '', 3, 1, ''), ('371524', '3715', '00,37,3715', '东阿县', '37', '山东省', '3715', '聊城市', '371524', '东阿县', '', '', '', '', 3, 1, ''), ('371525', '3715', '00,37,3715', '冠县', '37', '山东省', '3715', '聊城市', '371525', '冠县', '', '', '', '', 3, 1, ''), ('371526', '3715', '00,37,3715', '高唐县', '37', '山东省', '3715', '聊城市', '371526', '高唐县', '', '', '', '', 3, 1, ''), ('371581', '3715', '00,37,3715', '临清市', '37', '山东省', '3715', '聊城市', '371581', '临清市', '', '', '', '', 3, 1, ''), ('3716', '37', '00,37', '滨州市', '37', '山东省', '3716', '滨州市', '', '', '', '', '', '', 2, 1, ''), ('371602', '3716', '00,37,3716', '滨城区', '37', '山东省', '3716', '滨州市', '371602', '滨城区', '', '', '', '', 3, 1, ''), ('371603', '3716', '00,37,3716', '沾化区', '37', '山东省', '3716', '滨州市', '371603', '沾化区', '', '', '', '', 3, 1, ''), ('371621', '3716', '00,37,3716', '惠民县', '37', '山东省', '3716', '滨州市', '371621', '惠民县', '', '', '', '', 3, 1, ''), ('371622', '3716', '00,37,3716', '阳信县', '37', '山东省', '3716', '滨州市', '371622', '阳信县', '', '', '', '', 3, 1, ''), ('371623', '3716', '00,37,3716', '无棣县', '37', '山东省', '3716', '滨州市', '371623', '无棣县', '', '', '', '', 3, 1, ''), ('371625', '3716', '00,37,3716', '博兴县', '37', '山东省', '3716', '滨州市', '371625', '博兴县', '', '', '', '', 3, 1, ''), ('371681', '3716', '00,37,3716', '邹平市', '37', '山东省', '3716', '滨州市', '371681', '邹平市', '', '', '', '', 3, 1, ''), ('3717', '37', '00,37', '菏泽市', '37', '山东省', '3717', '菏泽市', '', '', '', '', '', '', 2, 1, ''), ('371702', '3717', '00,37,3717', '牡丹区', '37', '山东省', '3717', '菏泽市', '371702', '牡丹区', '', '', '', '', 3, 1, ''), ('371703', '3717', '00,37,3717', '定陶区', '37', '山东省', '3717', '菏泽市', '371703', '定陶区', '', '', '', '', 3, 1, ''), ('371721', '3717', '00,37,3717', '曹县', '37', '山东省', '3717', '菏泽市', '371721', '曹县', '', '', '', '', 3, 1, ''), ('371722', '3717', '00,37,3717', '单县', '37', '山东省', '3717', '菏泽市', '371722', '单县', '', '', '', '', 3, 1, ''), ('371723', '3717', '00,37,3717', '成武县', '37', '山东省', '3717', '菏泽市', '371723', '成武县', '', '', '', '', 3, 1, ''), ('371724', '3717', '00,37,3717', '巨野县', '37', '山东省', '3717', '菏泽市', '371724', '巨野县', '', '', '', '', 3, 1, ''), ('371725', '3717', '00,37,3717', '郓城县', '37', '山东省', '3717', '菏泽市', '371725', '郓城县', '', '', '', '', 3, 1, ''), ('371726', '3717', '00,37,3717', '鄄城县', '37', '山东省', '3717', '菏泽市', '371726', '鄄城县', '', '', '', '', 3, 1, ''), ('371728', '3717', '00,37,3717', '东明县', '37', '山东省', '3717', '菏泽市', '371728', '东明县', '', '', '', '', 3, 1, ''), ('41', '00', '00', '河南省', '41', '河南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4101', '41', '00,41', '郑州市', '41', '河南省', '4101', '郑州市', '', '', '', '', '', '', 2, 1, ''), ('410102', '4101', '00,41,4101', '中原区', '41', '河南省', '4101', '郑州市', '410102', '中原区', '', '', '', '', 3, 1, ''), ('410103', '4101', '00,41,4101', '二七区', '41', '河南省', '4101', '郑州市', '410103', '二七区', '', '', '', '', 3, 1, ''), ('410104', '4101', '00,41,4101', '管城回族区', '41', '河南省', '4101', '郑州市', '410104', '管城回族区', '', '', '', '', 3, 1, ''), ('410105', '4101', '00,41,4101', '金水区', '41', '河南省', '4101', '郑州市', '410105', '金水区', '', '', '', '', 3, 1, ''), ('410106', '4101', '00,41,4101', '上街区', '41', '河南省', '4101', '郑州市', '410106', '上街区', '', '', '', '', 3, 1, ''), ('410108', '4101', '00,41,4101', '惠济区', '41', '河南省', '4101', '郑州市', '410108', '惠济区', '', '', '', '', 3, 1, ''), ('410122', '4101', '00,41,4101', '中牟县', '41', '河南省', '4101', '郑州市', '410122', '中牟县', '', '', '', '', 3, 1, ''), ('410181', '4101', '00,41,4101', '巩义市', '41', '河南省', '4101', '郑州市', '410181', '巩义市', '', '', '', '', 3, 1, ''), ('410182', '4101', '00,41,4101', '荥阳市', '41', '河南省', '4101', '郑州市', '410182', '荥阳市', '', '', '', '', 3, 1, ''), ('410183', '4101', '00,41,4101', '新密市', '41', '河南省', '4101', '郑州市', '410183', '新密市', '', '', '', '', 3, 1, ''), ('410184', '4101', '00,41,4101', '新郑市', '41', '河南省', '4101', '郑州市', '410184', '新郑市', '', '', '', '', 3, 1, ''), ('410185', '4101', '00,41,4101', '登封市', '41', '河南省', '4101', '郑州市', '410185', '登封市', '', '', '', '', 3, 1, ''), ('4102', '41', '00,41', '开封市', '41', '河南省', '4102', '开封市', '', '', '', '', '', '', 2, 1, ''), ('410202', '4102', '00,41,4102', '龙亭区', '41', '河南省', '4102', '开封市', '410202', '龙亭区', '', '', '', '', 3, 1, ''), ('410203', '4102', '00,41,4102', '顺河回族区', '41', '河南省', '4102', '开封市', '410203', '顺河回族区', '', '', '', '', 3, 1, ''), ('410204', '4102', '00,41,4102', '鼓楼区', '41', '河南省', '4102', '开封市', '410204', '鼓楼区', '', '', '', '', 3, 1, ''), ('410205', '4102', '00,41,4102', '禹王台区', '41', '河南省', '4102', '开封市', '410205', '禹王台区', '', '', '', '', 3, 1, ''), ('410212', '4102', '00,41,4102', '祥符区', '41', '河南省', '4102', '开封市', '410212', '祥符区', '', '', '', '', 3, 1, ''), ('410221', '4102', '00,41,4102', '杞县', '41', '河南省', '4102', '开封市', '410221', '杞县', '', '', '', '', 3, 1, ''), ('410222', '4102', '00,41,4102', '通许县', '41', '河南省', '4102', '开封市', '410222', '通许县', '', '', '', '', 3, 1, ''), ('410223', '4102', '00,41,4102', '尉氏县', '41', '河南省', '4102', '开封市', '410223', '尉氏县', '', '', '', '', 3, 1, ''), ('410225', '4102', '00,41,4102', '兰考县', '41', '河南省', '4102', '开封市', '410225', '兰考县', '', '', '', '', 3, 1, ''), ('4103', '41', '00,41', '洛阳市', '41', '河南省', '4103', '洛阳市', '', '', '', '', '', '', 2, 1, ''), ('410302', '4103', '00,41,4103', '老城区', '41', '河南省', '4103', '洛阳市', '410302', '老城区', '', '', '', '', 3, 1, ''), ('410303', '4103', '00,41,4103', '西工区', '41', '河南省', '4103', '洛阳市', '410303', '西工区', '', '', '', '', 3, 1, ''), ('410304', '4103', '00,41,4103', '瀍河回族区', '41', '河南省', '4103', '洛阳市', '410304', '瀍河回族区', '', '', '', '', 3, 1, ''), ('410305', '4103', '00,41,4103', '涧西区', '41', '河南省', '4103', '洛阳市', '410305', '涧西区', '', '', '', '', 3, 1, ''), ('410306', '4103', '00,41,4103', '吉利区', '41', '河南省', '4103', '洛阳市', '410306', '吉利区', '', '', '', '', 3, 1, ''), ('410311', '4103', '00,41,4103', '洛龙区', '41', '河南省', '4103', '洛阳市', '410311', '洛龙区', '', '', '', '', 3, 1, ''), ('410322', '4103', '00,41,4103', '孟津县', '41', '河南省', '4103', '洛阳市', '410322', '孟津县', '', '', '', '', 3, 1, ''), ('410323', '4103', '00,41,4103', '新安县', '41', '河南省', '4103', '洛阳市', '410323', '新安县', '', '', '', '', 3, 1, ''), ('410324', '4103', '00,41,4103', '栾川县', '41', '河南省', '4103', '洛阳市', '410324', '栾川县', '', '', '', '', 3, 1, ''), ('410325', '4103', '00,41,4103', '嵩县', '41', '河南省', '4103', '洛阳市', '410325', '嵩县', '', '', '', '', 3, 1, ''), ('410326', '4103', '00,41,4103', '汝阳县', '41', '河南省', '4103', '洛阳市', '410326', '汝阳县', '', '', '', '', 3, 1, ''), ('410327', '4103', '00,41,4103', '宜阳县', '41', '河南省', '4103', '洛阳市', '410327', '宜阳县', '', '', '', '', 3, 1, ''), ('410328', '4103', '00,41,4103', '洛宁县', '41', '河南省', '4103', '洛阳市', '410328', '洛宁县', '', '', '', '', 3, 1, ''), ('410329', '4103', '00,41,4103', '伊川县', '41', '河南省', '4103', '洛阳市', '410329', '伊川县', '', '', '', '', 3, 1, ''), ('410381', '4103', '00,41,4103', '偃师市', '41', '河南省', '4103', '洛阳市', '410381', '偃师市', '', '', '', '', 3, 1, ''), ('4104', '41', '00,41', '平顶山市', '41', '河南省', '4104', '平顶山市', '', '', '', '', '', '', 2, 1, ''), ('410402', '4104', '00,41,4104', '新华区', '41', '河南省', '4104', '平顶山市', '410402', '新华区', '', '', '', '', 3, 1, ''), ('410403', '4104', '00,41,4104', '卫东区', '41', '河南省', '4104', '平顶山市', '410403', '卫东区', '', '', '', '', 3, 1, ''), ('410404', '4104', '00,41,4104', '石龙区', '41', '河南省', '4104', '平顶山市', '410404', '石龙区', '', '', '', '', 3, 1, ''), ('410411', '4104', '00,41,4104', '湛河区', '41', '河南省', '4104', '平顶山市', '410411', '湛河区', '', '', '', '', 3, 1, ''), ('410421', '4104', '00,41,4104', '宝丰县', '41', '河南省', '4104', '平顶山市', '410421', '宝丰县', '', '', '', '', 3, 1, ''), ('410422', '4104', '00,41,4104', '叶县', '41', '河南省', '4104', '平顶山市', '410422', '叶县', '', '', '', '', 3, 1, ''), ('410423', '4104', '00,41,4104', '鲁山县', '41', '河南省', '4104', '平顶山市', '410423', '鲁山县', '', '', '', '', 3, 1, ''), ('410425', '4104', '00,41,4104', '郏县', '41', '河南省', '4104', '平顶山市', '410425', '郏县', '', '', '', '', 3, 1, ''), ('410481', '4104', '00,41,4104', '舞钢市', '41', '河南省', '4104', '平顶山市', '410481', '舞钢市', '', '', '', '', 3, 1, ''), ('410482', '4104', '00,41,4104', '汝州市', '41', '河南省', '4104', '平顶山市', '410482', '汝州市', '', '', '', '', 3, 1, ''), ('4105', '41', '00,41', '安阳市', '41', '河南省', '4105', '安阳市', '', '', '', '', '', '', 2, 1, ''), ('410502', '4105', '00,41,4105', '文峰区', '41', '河南省', '4105', '安阳市', '410502', '文峰区', '', '', '', '', 3, 1, ''), ('410503', '4105', '00,41,4105', '北关区', '41', '河南省', '4105', '安阳市', '410503', '北关区', '', '', '', '', 3, 1, ''), ('410505', '4105', '00,41,4105', '殷都区', '41', '河南省', '4105', '安阳市', '410505', '殷都区', '', '', '', '', 3, 1, ''), ('410506', '4105', '00,41,4105', '龙安区', '41', '河南省', '4105', '安阳市', '410506', '龙安区', '', '', '', '', 3, 1, ''), ('410522', '4105', '00,41,4105', '安阳县', '41', '河南省', '4105', '安阳市', '410522', '安阳县', '', '', '', '', 3, 1, ''), ('410523', '4105', '00,41,4105', '汤阴县', '41', '河南省', '4105', '安阳市', '410523', '汤阴县', '', '', '', '', 3, 1, ''), ('410526', '4105', '00,41,4105', '滑县', '41', '河南省', '4105', '安阳市', '410526', '滑县', '', '', '', '', 3, 1, ''), ('410527', '4105', '00,41,4105', '内黄县', '41', '河南省', '4105', '安阳市', '410527', '内黄县', '', '', '', '', 3, 1, ''), ('410581', '4105', '00,41,4105', '林州市', '41', '河南省', '4105', '安阳市', '410581', '林州市', '', '', '', '', 3, 1, ''), ('4106', '41', '00,41', '鹤壁市', '41', '河南省', '4106', '鹤壁市', '', '', '', '', '', '', 2, 1, ''), ('410602', '4106', '00,41,4106', '鹤山区', '41', '河南省', '4106', '鹤壁市', '410602', '鹤山区', '', '', '', '', 3, 1, ''), ('410603', '4106', '00,41,4106', '山城区', '41', '河南省', '4106', '鹤壁市', '410603', '山城区', '', '', '', '', 3, 1, ''), ('410611', '4106', '00,41,4106', '淇滨区', '41', '河南省', '4106', '鹤壁市', '410611', '淇滨区', '', '', '', '', 3, 1, ''), ('410621', '4106', '00,41,4106', '浚县', '41', '河南省', '4106', '鹤壁市', '410621', '浚县', '', '', '', '', 3, 1, ''), ('410622', '4106', '00,41,4106', '淇县', '41', '河南省', '4106', '鹤壁市', '410622', '淇县', '', '', '', '', 3, 1, ''), ('4107', '41', '00,41', '新乡市', '41', '河南省', '4107', '新乡市', '', '', '', '', '', '', 2, 1, ''), ('410702', '4107', '00,41,4107', '红旗区', '41', '河南省', '4107', '新乡市', '410702', '红旗区', '', '', '', '', 3, 1, ''), ('410703', '4107', '00,41,4107', '卫滨区', '41', '河南省', '4107', '新乡市', '410703', '卫滨区', '', '', '', '', 3, 1, ''), ('410704', '4107', '00,41,4107', '凤泉区', '41', '河南省', '4107', '新乡市', '410704', '凤泉区', '', '', '', '', 3, 1, ''), ('410711', '4107', '00,41,4107', '牧野区', '41', '河南省', '4107', '新乡市', '410711', '牧野区', '', '', '', '', 3, 1, ''), ('410721', '4107', '00,41,4107', '新乡县', '41', '河南省', '4107', '新乡市', '410721', '新乡县', '', '', '', '', 3, 1, ''), ('410724', '4107', '00,41,4107', '获嘉县', '41', '河南省', '4107', '新乡市', '410724', '获嘉县', '', '', '', '', 3, 1, ''), ('410725', '4107', '00,41,4107', '原阳县', '41', '河南省', '4107', '新乡市', '410725', '原阳县', '', '', '', '', 3, 1, ''), ('410726', '4107', '00,41,4107', '延津县', '41', '河南省', '4107', '新乡市', '410726', '延津县', '', '', '', '', 3, 1, ''), ('410727', '4107', '00,41,4107', '封丘县', '41', '河南省', '4107', '新乡市', '410727', '封丘县', '', '', '', '', 3, 1, ''), ('410781', '4107', '00,41,4107', '卫辉市', '41', '河南省', '4107', '新乡市', '410781', '卫辉市', '', '', '', '', 3, 1, ''), ('410782', '4107', '00,41,4107', '辉县市', '41', '河南省', '4107', '新乡市', '410782', '辉县市', '', '', '', '', 3, 1, ''), ('410783', '4107', '00,41,4107', '长垣市', '41', '河南省', '4107', '新乡市', '410783', '长垣市', '', '', '', '', 3, 1, ''), ('4108', '41', '00,41', '焦作市', '41', '河南省', '4108', '焦作市', '', '', '', '', '', '', 2, 1, ''), ('410802', '4108', '00,41,4108', '解放区', '41', '河南省', '4108', '焦作市', '410802', '解放区', '', '', '', '', 3, 1, ''), ('410803', '4108', '00,41,4108', '中站区', '41', '河南省', '4108', '焦作市', '410803', '中站区', '', '', '', '', 3, 1, ''), ('410804', '4108', '00,41,4108', '马村区', '41', '河南省', '4108', '焦作市', '410804', '马村区', '', '', '', '', 3, 1, ''), ('410811', '4108', '00,41,4108', '山阳区', '41', '河南省', '4108', '焦作市', '410811', '山阳区', '', '', '', '', 3, 1, ''), ('410821', '4108', '00,41,4108', '修武县', '41', '河南省', '4108', '焦作市', '410821', '修武县', '', '', '', '', 3, 1, ''), ('410822', '4108', '00,41,4108', '博爱县', '41', '河南省', '4108', '焦作市', '410822', '博爱县', '', '', '', '', 3, 1, ''), ('410823', '4108', '00,41,4108', '武陟县', '41', '河南省', '4108', '焦作市', '410823', '武陟县', '', '', '', '', 3, 1, ''), ('410825', '4108', '00,41,4108', '温县', '41', '河南省', '4108', '焦作市', '410825', '温县', '', '', '', '', 3, 1, ''), ('410882', '4108', '00,41,4108', '沁阳市', '41', '河南省', '4108', '焦作市', '410882', '沁阳市', '', '', '', '', 3, 1, ''), ('410883', '4108', '00,41,4108', '孟州市', '41', '河南省', '4108', '焦作市', '410883', '孟州市', '', '', '', '', 3, 1, ''), ('4109', '41', '00,41', '濮阳市', '41', '河南省', '4109', '濮阳市', '', '', '', '', '', '', 2, 1, ''), ('410902', '4109', '00,41,4109', '华龙区', '41', '河南省', '4109', '濮阳市', '410902', '华龙区', '', '', '', '', 3, 1, ''), ('410922', '4109', '00,41,4109', '清丰县', '41', '河南省', '4109', '濮阳市', '410922', '清丰县', '', '', '', '', 3, 1, ''), ('410923', '4109', '00,41,4109', '南乐县', '41', '河南省', '4109', '濮阳市', '410923', '南乐县', '', '', '', '', 3, 1, ''), ('410926', '4109', '00,41,4109', '范县', '41', '河南省', '4109', '濮阳市', '410926', '范县', '', '', '', '', 3, 1, ''), ('410927', '4109', '00,41,4109', '台前县', '41', '河南省', '4109', '濮阳市', '410927', '台前县', '', '', '', '', 3, 1, ''), ('410928', '4109', '00,41,4109', '濮阳县', '41', '河南省', '4109', '濮阳市', '410928', '濮阳县', '', '', '', '', 3, 1, ''), ('4110', '41', '00,41', '许昌市', '41', '河南省', '4110', '许昌市', '', '', '', '', '', '', 2, 1, ''), ('411002', '4110', '00,41,4110', '魏都区', '41', '河南省', '4110', '许昌市', '411002', '魏都区', '', '', '', '', 3, 1, ''), ('411003', '4110', '00,41,4110', '建安区', '41', '河南省', '4110', '许昌市', '411003', '建安区', '', '', '', '', 3, 1, ''), ('411024', '4110', '00,41,4110', '鄢陵县', '41', '河南省', '4110', '许昌市', '411024', '鄢陵县', '', '', '', '', 3, 1, ''), ('411025', '4110', '00,41,4110', '襄城县', '41', '河南省', '4110', '许昌市', '411025', '襄城县', '', '', '', '', 3, 1, ''), ('411081', '4110', '00,41,4110', '禹州市', '41', '河南省', '4110', '许昌市', '411081', '禹州市', '', '', '', '', 3, 1, ''), ('411082', '4110', '00,41,4110', '长葛市', '41', '河南省', '4110', '许昌市', '411082', '长葛市', '', '', '', '', 3, 1, ''), ('4111', '41', '00,41', '漯河市', '41', '河南省', '4111', '漯河市', '', '', '', '', '', '', 2, 1, ''), ('411102', '4111', '00,41,4111', '源汇区', '41', '河南省', '4111', '漯河市', '411102', '源汇区', '', '', '', '', 3, 1, ''), ('411103', '4111', '00,41,4111', '郾城区', '41', '河南省', '4111', '漯河市', '411103', '郾城区', '', '', '', '', 3, 1, ''), ('411104', '4111', '00,41,4111', '召陵区', '41', '河南省', '4111', '漯河市', '411104', '召陵区', '', '', '', '', 3, 1, ''), ('411121', '4111', '00,41,4111', '舞阳县', '41', '河南省', '4111', '漯河市', '411121', '舞阳县', '', '', '', '', 3, 1, ''), ('411122', '4111', '00,41,4111', '临颍县', '41', '河南省', '4111', '漯河市', '411122', '临颍县', '', '', '', '', 3, 1, ''), ('4112', '41', '00,41', '三门峡市', '41', '河南省', '4112', '三门峡市', '', '', '', '', '', '', 2, 1, ''), ('411202', '4112', '00,41,4112', '湖滨区', '41', '河南省', '4112', '三门峡市', '411202', '湖滨区', '', '', '', '', 3, 1, ''), ('411203', '4112', '00,41,4112', '陕州区', '41', '河南省', '4112', '三门峡市', '411203', '陕州区', '', '', '', '', 3, 1, ''), ('411221', '4112', '00,41,4112', '渑池县', '41', '河南省', '4112', '三门峡市', '411221', '渑池县', '', '', '', '', 3, 1, ''), ('411224', '4112', '00,41,4112', '卢氏县', '41', '河南省', '4112', '三门峡市', '411224', '卢氏县', '', '', '', '', 3, 1, ''), ('411281', '4112', '00,41,4112', '义马市', '41', '河南省', '4112', '三门峡市', '411281', '义马市', '', '', '', '', 3, 1, ''), ('411282', '4112', '00,41,4112', '灵宝市', '41', '河南省', '4112', '三门峡市', '411282', '灵宝市', '', '', '', '', 3, 1, ''), ('4113', '41', '00,41', '南阳市', '41', '河南省', '4113', '南阳市', '', '', '', '', '', '', 2, 1, ''), ('411302', '4113', '00,41,4113', '宛城区', '41', '河南省', '4113', '南阳市', '411302', '宛城区', '', '', '', '', 3, 1, ''), ('411303', '4113', '00,41,4113', '卧龙区', '41', '河南省', '4113', '南阳市', '411303', '卧龙区', '', '', '', '', 3, 1, ''), ('411321', '4113', '00,41,4113', '南召县', '41', '河南省', '4113', '南阳市', '411321', '南召县', '', '', '', '', 3, 1, ''), ('411322', '4113', '00,41,4113', '方城县', '41', '河南省', '4113', '南阳市', '411322', '方城县', '', '', '', '', 3, 1, ''), ('411323', '4113', '00,41,4113', '西峡县', '41', '河南省', '4113', '南阳市', '411323', '西峡县', '', '', '', '', 3, 1, ''), ('411324', '4113', '00,41,4113', '镇平县', '41', '河南省', '4113', '南阳市', '411324', '镇平县', '', '', '', '', 3, 1, ''), ('411325', '4113', '00,41,4113', '内乡县', '41', '河南省', '4113', '南阳市', '411325', '内乡县', '', '', '', '', 3, 1, ''), ('411326', '4113', '00,41,4113', '淅川县', '41', '河南省', '4113', '南阳市', '411326', '淅川县', '', '', '', '', 3, 1, ''), ('411327', '4113', '00,41,4113', '社旗县', '41', '河南省', '4113', '南阳市', '411327', '社旗县', '', '', '', '', 3, 1, ''), ('411328', '4113', '00,41,4113', '唐河县', '41', '河南省', '4113', '南阳市', '411328', '唐河县', '', '', '', '', 3, 1, ''), ('411329', '4113', '00,41,4113', '新野县', '41', '河南省', '4113', '南阳市', '411329', '新野县', '', '', '', '', 3, 1, ''), ('411330', '4113', '00,41,4113', '桐柏县', '41', '河南省', '4113', '南阳市', '411330', '桐柏县', '', '', '', '', 3, 1, ''), ('411381', '4113', '00,41,4113', '邓州市', '41', '河南省', '4113', '南阳市', '411381', '邓州市', '', '', '', '', 3, 1, ''), ('4114', '41', '00,41', '商丘市', '41', '河南省', '4114', '商丘市', '', '', '', '', '', '', 2, 1, ''), ('411402', '4114', '00,41,4114', '梁园区', '41', '河南省', '4114', '商丘市', '411402', '梁园区', '', '', '', '', 3, 1, ''), ('411403', '4114', '00,41,4114', '睢阳区', '41', '河南省', '4114', '商丘市', '411403', '睢阳区', '', '', '', '', 3, 1, ''), ('411421', '4114', '00,41,4114', '民权县', '41', '河南省', '4114', '商丘市', '411421', '民权县', '', '', '', '', 3, 1, ''), ('411422', '4114', '00,41,4114', '睢县', '41', '河南省', '4114', '商丘市', '411422', '睢县', '', '', '', '', 3, 1, ''), ('411423', '4114', '00,41,4114', '宁陵县', '41', '河南省', '4114', '商丘市', '411423', '宁陵县', '', '', '', '', 3, 1, ''), ('411424', '4114', '00,41,4114', '柘城县', '41', '河南省', '4114', '商丘市', '411424', '柘城县', '', '', '', '', 3, 1, ''), ('411425', '4114', '00,41,4114', '虞城县', '41', '河南省', '4114', '商丘市', '411425', '虞城县', '', '', '', '', 3, 1, ''), ('411426', '4114', '00,41,4114', '夏邑县', '41', '河南省', '4114', '商丘市', '411426', '夏邑县', '', '', '', '', 3, 1, ''), ('411481', '4114', '00,41,4114', '永城市', '41', '河南省', '4114', '商丘市', '411481', '永城市', '', '', '', '', 3, 1, ''), ('4115', '41', '00,41', '信阳市', '41', '河南省', '4115', '信阳市', '', '', '', '', '', '', 2, 1, ''), ('411502', '4115', '00,41,4115', '浉河区', '41', '河南省', '4115', '信阳市', '411502', '浉河区', '', '', '', '', 3, 1, ''), ('411503', '4115', '00,41,4115', '平桥区', '41', '河南省', '4115', '信阳市', '411503', '平桥区', '', '', '', '', 3, 1, ''), ('411521', '4115', '00,41,4115', '罗山县', '41', '河南省', '4115', '信阳市', '411521', '罗山县', '', '', '', '', 3, 1, ''), ('411522', '4115', '00,41,4115', '光山县', '41', '河南省', '4115', '信阳市', '411522', '光山县', '', '', '', '', 3, 1, ''), ('411523', '4115', '00,41,4115', '新县', '41', '河南省', '4115', '信阳市', '411523', '新县', '', '', '', '', 3, 1, ''), ('411524', '4115', '00,41,4115', '商城县', '41', '河南省', '4115', '信阳市', '411524', '商城县', '', '', '', '', 3, 1, ''), ('411525', '4115', '00,41,4115', '固始县', '41', '河南省', '4115', '信阳市', '411525', '固始县', '', '', '', '', 3, 1, ''), ('411526', '4115', '00,41,4115', '潢川县', '41', '河南省', '4115', '信阳市', '411526', '潢川县', '', '', '', '', 3, 1, ''), ('411527', '4115', '00,41,4115', '淮滨县', '41', '河南省', '4115', '信阳市', '411527', '淮滨县', '', '', '', '', 3, 1, ''), ('411528', '4115', '00,41,4115', '息县', '41', '河南省', '4115', '信阳市', '411528', '息县', '', '', '', '', 3, 1, ''), ('4116', '41', '00,41', '周口市', '41', '河南省', '4116', '周口市', '', '', '', '', '', '', 2, 1, ''), ('411602', '4116', '00,41,4116', '川汇区', '41', '河南省', '4116', '周口市', '411602', '川汇区', '', '', '', '', 3, 1, ''), ('411603', '4116', '00,41,4116', '淮阳区', '41', '河南省', '4116', '周口市', '411603', '淮阳区', '', '', '', '', 3, 1, ''), ('411621', '4116', '00,41,4116', '扶沟县', '41', '河南省', '4116', '周口市', '411621', '扶沟县', '', '', '', '', 3, 1, ''), ('411622', '4116', '00,41,4116', '西华县', '41', '河南省', '4116', '周口市', '411622', '西华县', '', '', '', '', 3, 1, ''), ('411623', '4116', '00,41,4116', '商水县', '41', '河南省', '4116', '周口市', '411623', '商水县', '', '', '', '', 3, 1, ''), ('411624', '4116', '00,41,4116', '沈丘县', '41', '河南省', '4116', '周口市', '411624', '沈丘县', '', '', '', '', 3, 1, ''), ('411625', '4116', '00,41,4116', '郸城县', '41', '河南省', '4116', '周口市', '411625', '郸城县', '', '', '', '', 3, 1, ''), ('411627', '4116', '00,41,4116', '太康县', '41', '河南省', '4116', '周口市', '411627', '太康县', '', '', '', '', 3, 1, ''), ('411628', '4116', '00,41,4116', '鹿邑县', '41', '河南省', '4116', '周口市', '411628', '鹿邑县', '', '', '', '', 3, 1, ''), ('411681', '4116', '00,41,4116', '项城市', '41', '河南省', '4116', '周口市', '411681', '项城市', '', '', '', '', 3, 1, ''), ('4117', '41', '00,41', '驻马店市', '41', '河南省', '4117', '驻马店市', '', '', '', '', '', '', 2, 1, ''), ('411702', '4117', '00,41,4117', '驿城区', '41', '河南省', '4117', '驻马店市', '411702', '驿城区', '', '', '', '', 3, 1, ''), ('411721', '4117', '00,41,4117', '西平县', '41', '河南省', '4117', '驻马店市', '411721', '西平县', '', '', '', '', 3, 1, ''), ('411722', '4117', '00,41,4117', '上蔡县', '41', '河南省', '4117', '驻马店市', '411722', '上蔡县', '', '', '', '', 3, 1, ''), ('411723', '4117', '00,41,4117', '平舆县', '41', '河南省', '4117', '驻马店市', '411723', '平舆县', '', '', '', '', 3, 1, ''), ('411724', '4117', '00,41,4117', '正阳县', '41', '河南省', '4117', '驻马店市', '411724', '正阳县', '', '', '', '', 3, 1, ''), ('411725', '4117', '00,41,4117', '确山县', '41', '河南省', '4117', '驻马店市', '411725', '确山县', '', '', '', '', 3, 1, ''), ('411726', '4117', '00,41,4117', '泌阳县', '41', '河南省', '4117', '驻马店市', '411726', '泌阳县', '', '', '', '', 3, 1, ''), ('411727', '4117', '00,41,4117', '汝南县', '41', '河南省', '4117', '驻马店市', '411727', '汝南县', '', '', '', '', 3, 1, ''), ('411728', '4117', '00,41,4117', '遂平县', '41', '河南省', '4117', '驻马店市', '411728', '遂平县', '', '', '', '', 3, 1, ''), ('411729', '4117', '00,41,4117', '新蔡县', '41', '河南省', '4117', '驻马店市', '411729', '新蔡县', '', '', '', '', 3, 1, ''), ('4190', '41', '00,41', '省直辖县级行政区', '41', '河南省', '4190', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('419001', '4190', '00,41,4190', '济源市', '41', '河南省', '4190', '省直辖县级行政区', '419001', '济源市', '', '', '', '', 3, 1, ''), ('42', '00', '00', '湖北省', '42', '湖北省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4201', '42', '00,42', '武汉市', '42', '湖北省', '4201', '武汉市', '', '', '', '', '', '', 2, 1, ''), ('420102', '4201', '00,42,4201', '江岸区', '42', '湖北省', '4201', '武汉市', '420102', '江岸区', '', '', '', '', 3, 1, ''), ('420103', '4201', '00,42,4201', '江汉区', '42', '湖北省', '4201', '武汉市', '420103', '江汉区', '', '', '', '', 3, 1, ''), ('420104', '4201', '00,42,4201', '硚口区', '42', '湖北省', '4201', '武汉市', '420104', '硚口区', '', '', '', '', 3, 1, ''), ('420105', '4201', '00,42,4201', '汉阳区', '42', '湖北省', '4201', '武汉市', '420105', '汉阳区', '', '', '', '', 3, 1, ''), ('420106', '4201', '00,42,4201', '武昌区', '42', '湖北省', '4201', '武汉市', '420106', '武昌区', '', '', '', '', 3, 1, ''), ('420107', '4201', '00,42,4201', '青山区', '42', '湖北省', '4201', '武汉市', '420107', '青山区', '', '', '', '', 3, 1, ''), ('420111', '4201', '00,42,4201', '洪山区', '42', '湖北省', '4201', '武汉市', '420111', '洪山区', '', '', '', '', 3, 1, ''), ('420112', '4201', '00,42,4201', '东西湖区', '42', '湖北省', '4201', '武汉市', '420112', '东西湖区', '', '', '', '', 3, 1, ''), ('420113', '4201', '00,42,4201', '汉南区', '42', '湖北省', '4201', '武汉市', '420113', '汉南区', '', '', '', '', 3, 1, ''), ('420114', '4201', '00,42,4201', '蔡甸区', '42', '湖北省', '4201', '武汉市', '420114', '蔡甸区', '', '', '', '', 3, 1, ''), ('420115', '4201', '00,42,4201', '江夏区', '42', '湖北省', '4201', '武汉市', '420115', '江夏区', '', '', '', '', 3, 1, ''), ('420116', '4201', '00,42,4201', '黄陂区', '42', '湖北省', '4201', '武汉市', '420116', '黄陂区', '', '', '', '', 3, 1, ''), ('420117', '4201', '00,42,4201', '新洲区', '42', '湖北省', '4201', '武汉市', '420117', '新洲区', '', '', '', '', 3, 1, ''), ('4202', '42', '00,42', '黄石市', '42', '湖北省', '4202', '黄石市', '', '', '', '', '', '', 2, 1, ''), ('420202', '4202', '00,42,4202', '黄石港区', '42', '湖北省', '4202', '黄石市', '420202', '黄石港区', '', '', '', '', 3, 1, ''), ('420203', '4202', '00,42,4202', '西塞山区', '42', '湖北省', '4202', '黄石市', '420203', '西塞山区', '', '', '', '', 3, 1, ''), ('420204', '4202', '00,42,4202', '下陆区', '42', '湖北省', '4202', '黄石市', '420204', '下陆区', '', '', '', '', 3, 1, ''), ('420205', '4202', '00,42,4202', '铁山区', '42', '湖北省', '4202', '黄石市', '420205', '铁山区', '', '', '', '', 3, 1, ''), ('420222', '4202', '00,42,4202', '阳新县', '42', '湖北省', '4202', '黄石市', '420222', '阳新县', '', '', '', '', 3, 1, ''), ('420281', '4202', '00,42,4202', '大冶市', '42', '湖北省', '4202', '黄石市', '420281', '大冶市', '', '', '', '', 3, 1, ''), ('4203', '42', '00,42', '十堰市', '42', '湖北省', '4203', '十堰市', '', '', '', '', '', '', 2, 1, ''), ('420302', '4203', '00,42,4203', '茅箭区', '42', '湖北省', '4203', '十堰市', '420302', '茅箭区', '', '', '', '', 3, 1, ''), ('420303', '4203', '00,42,4203', '张湾区', '42', '湖北省', '4203', '十堰市', '420303', '张湾区', '', '', '', '', 3, 1, ''), ('420304', '4203', '00,42,4203', '郧阳区', '42', '湖北省', '4203', '十堰市', '420304', '郧阳区', '', '', '', '', 3, 1, ''), ('420322', '4203', '00,42,4203', '郧西县', '42', '湖北省', '4203', '十堰市', '420322', '郧西县', '', '', '', '', 3, 1, ''), ('420323', '4203', '00,42,4203', '竹山县', '42', '湖北省', '4203', '十堰市', '420323', '竹山县', '', '', '', '', 3, 1, ''), ('420324', '4203', '00,42,4203', '竹溪县', '42', '湖北省', '4203', '十堰市', '420324', '竹溪县', '', '', '', '', 3, 1, ''), ('420325', '4203', '00,42,4203', '房县', '42', '湖北省', '4203', '十堰市', '420325', '房县', '', '', '', '', 3, 1, ''), ('420381', '4203', '00,42,4203', '丹江口市', '42', '湖北省', '4203', '十堰市', '420381', '丹江口市', '', '', '', '', 3, 1, ''), ('4205', '42', '00,42', '宜昌市', '42', '湖北省', '4205', '宜昌市', '', '', '', '', '', '', 2, 1, ''), ('420502', '4205', '00,42,4205', '西陵区', '42', '湖北省', '4205', '宜昌市', '420502', '西陵区', '', '', '', '', 3, 1, ''), ('420503', '4205', '00,42,4205', '伍家岗区', '42', '湖北省', '4205', '宜昌市', '420503', '伍家岗区', '', '', '', '', 3, 1, ''), ('420504', '4205', '00,42,4205', '点军区', '42', '湖北省', '4205', '宜昌市', '420504', '点军区', '', '', '', '', 3, 1, ''), ('420505', '4205', '00,42,4205', '猇亭区', '42', '湖北省', '4205', '宜昌市', '420505', '猇亭区', '', '', '', '', 3, 1, ''), ('420506', '4205', '00,42,4205', '夷陵区', '42', '湖北省', '4205', '宜昌市', '420506', '夷陵区', '', '', '', '', 3, 1, ''), ('420525', '4205', '00,42,4205', '远安县', '42', '湖北省', '4205', '宜昌市', '420525', '远安县', '', '', '', '', 3, 1, ''), ('420526', '4205', '00,42,4205', '兴山县', '42', '湖北省', '4205', '宜昌市', '420526', '兴山县', '', '', '', '', 3, 1, ''), ('420527', '4205', '00,42,4205', '秭归县', '42', '湖北省', '4205', '宜昌市', '420527', '秭归县', '', '', '', '', 3, 1, ''), ('420528', '4205', '00,42,4205', '长阳土家族自治县', '42', '湖北省', '4205', '宜昌市', '420528', '长阳土家族自治县', '', '', '', '', 3, 1, ''), ('420529', '4205', '00,42,4205', '五峰土家族自治县', '42', '湖北省', '4205', '宜昌市', '420529', '五峰土家族自治县', '', '', '', '', 3, 1, ''), ('420581', '4205', '00,42,4205', '宜都市', '42', '湖北省', '4205', '宜昌市', '420581', '宜都市', '', '', '', '', 3, 1, ''), ('420582', '4205', '00,42,4205', '当阳市', '42', '湖北省', '4205', '宜昌市', '420582', '当阳市', '', '', '', '', 3, 1, ''), ('420583', '4205', '00,42,4205', '枝江市', '42', '湖北省', '4205', '宜昌市', '420583', '枝江市', '', '', '', '', 3, 1, ''), ('4206', '42', '00,42', '襄阳市', '42', '湖北省', '4206', '襄阳市', '', '', '', '', '', '', 2, 1, ''), ('420602', '4206', '00,42,4206', '襄城区', '42', '湖北省', '4206', '襄阳市', '420602', '襄城区', '', '', '', '', 3, 1, ''), ('420606', '4206', '00,42,4206', '樊城区', '42', '湖北省', '4206', '襄阳市', '420606', '樊城区', '', '', '', '', 3, 1, ''), ('420607', '4206', '00,42,4206', '襄州区', '42', '湖北省', '4206', '襄阳市', '420607', '襄州区', '', '', '', '', 3, 1, ''), ('420624', '4206', '00,42,4206', '南漳县', '42', '湖北省', '4206', '襄阳市', '420624', '南漳县', '', '', '', '', 3, 1, ''), ('420625', '4206', '00,42,4206', '谷城县', '42', '湖北省', '4206', '襄阳市', '420625', '谷城县', '', '', '', '', 3, 1, ''), ('420626', '4206', '00,42,4206', '保康县', '42', '湖北省', '4206', '襄阳市', '420626', '保康县', '', '', '', '', 3, 1, ''), ('420682', '4206', '00,42,4206', '老河口市', '42', '湖北省', '4206', '襄阳市', '420682', '老河口市', '', '', '', '', 3, 1, ''), ('420683', '4206', '00,42,4206', '枣阳市', '42', '湖北省', '4206', '襄阳市', '420683', '枣阳市', '', '', '', '', 3, 1, ''), ('420684', '4206', '00,42,4206', '宜城市', '42', '湖北省', '4206', '襄阳市', '420684', '宜城市', '', '', '', '', 3, 1, ''), ('4207', '42', '00,42', '鄂州市', '42', '湖北省', '4207', '鄂州市', '', '', '', '', '', '', 2, 1, ''), ('420702', '4207', '00,42,4207', '梁子湖区', '42', '湖北省', '4207', '鄂州市', '420702', '梁子湖区', '', '', '', '', 3, 1, ''), ('420703', '4207', '00,42,4207', '华容区', '42', '湖北省', '4207', '鄂州市', '420703', '华容区', '', '', '', '', 3, 1, ''), ('420704', '4207', '00,42,4207', '鄂城区', '42', '湖北省', '4207', '鄂州市', '420704', '鄂城区', '', '', '', '', 3, 1, ''), ('4208', '42', '00,42', '荆门市', '42', '湖北省', '4208', '荆门市', '', '', '', '', '', '', 2, 1, ''), ('420802', '4208', '00,42,4208', '东宝区', '42', '湖北省', '4208', '荆门市', '420802', '东宝区', '', '', '', '', 3, 1, ''), ('420804', '4208', '00,42,4208', '掇刀区', '42', '湖北省', '4208', '荆门市', '420804', '掇刀区', '', '', '', '', 3, 1, ''), ('420822', '4208', '00,42,4208', '沙洋县', '42', '湖北省', '4208', '荆门市', '420822', '沙洋县', '', '', '', '', 3, 1, ''), ('420881', '4208', '00,42,4208', '钟祥市', '42', '湖北省', '4208', '荆门市', '420881', '钟祥市', '', '', '', '', 3, 1, ''), ('420882', '4208', '00,42,4208', '京山市', '42', '湖北省', '4208', '荆门市', '420882', '京山市', '', '', '', '', 3, 1, ''), ('4209', '42', '00,42', '孝感市', '42', '湖北省', '4209', '孝感市', '', '', '', '', '', '', 2, 1, ''), ('420902', '4209', '00,42,4209', '孝南区', '42', '湖北省', '4209', '孝感市', '420902', '孝南区', '', '', '', '', 3, 1, ''), ('420921', '4209', '00,42,4209', '孝昌县', '42', '湖北省', '4209', '孝感市', '420921', '孝昌县', '', '', '', '', 3, 1, ''), ('420922', '4209', '00,42,4209', '大悟县', '42', '湖北省', '4209', '孝感市', '420922', '大悟县', '', '', '', '', 3, 1, ''), ('420923', '4209', '00,42,4209', '云梦县', '42', '湖北省', '4209', '孝感市', '420923', '云梦县', '', '', '', '', 3, 1, ''), ('420981', '4209', '00,42,4209', '应城市', '42', '湖北省', '4209', '孝感市', '420981', '应城市', '', '', '', '', 3, 1, ''), ('420982', '4209', '00,42,4209', '安陆市', '42', '湖北省', '4209', '孝感市', '420982', '安陆市', '', '', '', '', 3, 1, ''), ('420984', '4209', '00,42,4209', '汉川市', '42', '湖北省', '4209', '孝感市', '420984', '汉川市', '', '', '', '', 3, 1, ''), ('4210', '42', '00,42', '荆州市', '42', '湖北省', '4210', '荆州市', '', '', '', '', '', '', 2, 1, ''), ('421002', '4210', '00,42,4210', '沙市区', '42', '湖北省', '4210', '荆州市', '421002', '沙市区', '', '', '', '', 3, 1, ''), ('421003', '4210', '00,42,4210', '荆州区', '42', '湖北省', '4210', '荆州市', '421003', '荆州区', '', '', '', '', 3, 1, ''), ('421022', '4210', '00,42,4210', '公安县', '42', '湖北省', '4210', '荆州市', '421022', '公安县', '', '', '', '', 3, 1, ''), ('421023', '4210', '00,42,4210', '监利县', '42', '湖北省', '4210', '荆州市', '421023', '监利县', '', '', '', '', 3, 1, ''), ('421024', '4210', '00,42,4210', '江陵县', '42', '湖北省', '4210', '荆州市', '421024', '江陵县', '', '', '', '', 3, 1, ''), ('421081', '4210', '00,42,4210', '石首市', '42', '湖北省', '4210', '荆州市', '421081', '石首市', '', '', '', '', 3, 1, ''), ('421083', '4210', '00,42,4210', '洪湖市', '42', '湖北省', '4210', '荆州市', '421083', '洪湖市', '', '', '', '', 3, 1, ''), ('421087', '4210', '00,42,4210', '松滋市', '42', '湖北省', '4210', '荆州市', '421087', '松滋市', '', '', '', '', 3, 1, ''), ('4211', '42', '00,42', '黄冈市', '42', '湖北省', '4211', '黄冈市', '', '', '', '', '', '', 2, 1, ''), ('421102', '4211', '00,42,4211', '黄州区', '42', '湖北省', '4211', '黄冈市', '421102', '黄州区', '', '', '', '', 3, 1, ''), ('421121', '4211', '00,42,4211', '团风县', '42', '湖北省', '4211', '黄冈市', '421121', '团风县', '', '', '', '', 3, 1, ''), ('421122', '4211', '00,42,4211', '红安县', '42', '湖北省', '4211', '黄冈市', '421122', '红安县', '', '', '', '', 3, 1, ''), ('421123', '4211', '00,42,4211', '罗田县', '42', '湖北省', '4211', '黄冈市', '421123', '罗田县', '', '', '', '', 3, 1, ''), ('421124', '4211', '00,42,4211', '英山县', '42', '湖北省', '4211', '黄冈市', '421124', '英山县', '', '', '', '', 3, 1, ''), ('421125', '4211', '00,42,4211', '浠水县', '42', '湖北省', '4211', '黄冈市', '421125', '浠水县', '', '', '', '', 3, 1, ''), ('421126', '4211', '00,42,4211', '蕲春县', '42', '湖北省', '4211', '黄冈市', '421126', '蕲春县', '', '', '', '', 3, 1, ''), ('421127', '4211', '00,42,4211', '黄梅县', '42', '湖北省', '4211', '黄冈市', '421127', '黄梅县', '', '', '', '', 3, 1, ''), ('421181', '4211', '00,42,4211', '麻城市', '42', '湖北省', '4211', '黄冈市', '421181', '麻城市', '', '', '', '', 3, 1, ''), ('421182', '4211', '00,42,4211', '武穴市', '42', '湖北省', '4211', '黄冈市', '421182', '武穴市', '', '', '', '', 3, 1, ''), ('4212', '42', '00,42', '咸宁市', '42', '湖北省', '4212', '咸宁市', '', '', '', '', '', '', 2, 1, ''), ('421202', '4212', '00,42,4212', '咸安区', '42', '湖北省', '4212', '咸宁市', '421202', '咸安区', '', '', '', '', 3, 1, ''), ('421221', '4212', '00,42,4212', '嘉鱼县', '42', '湖北省', '4212', '咸宁市', '421221', '嘉鱼县', '', '', '', '', 3, 1, ''), ('421222', '4212', '00,42,4212', '通城县', '42', '湖北省', '4212', '咸宁市', '421222', '通城县', '', '', '', '', 3, 1, ''), ('421223', '4212', '00,42,4212', '崇阳县', '42', '湖北省', '4212', '咸宁市', '421223', '崇阳县', '', '', '', '', 3, 1, ''), ('421224', '4212', '00,42,4212', '通山县', '42', '湖北省', '4212', '咸宁市', '421224', '通山县', '', '', '', '', 3, 1, ''), ('421281', '4212', '00,42,4212', '赤壁市', '42', '湖北省', '4212', '咸宁市', '421281', '赤壁市', '', '', '', '', 3, 1, ''), ('4213', '42', '00,42', '随州市', '42', '湖北省', '4213', '随州市', '', '', '', '', '', '', 2, 1, ''), ('421303', '4213', '00,42,4213', '曾都区', '42', '湖北省', '4213', '随州市', '421303', '曾都区', '', '', '', '', 3, 1, ''), ('421321', '4213', '00,42,4213', '随县', '42', '湖北省', '4213', '随州市', '421321', '随县', '', '', '', '', 3, 1, ''), ('421381', '4213', '00,42,4213', '广水市', '42', '湖北省', '4213', '随州市', '421381', '广水市', '', '', '', '', 3, 1, ''), ('4228', '42', '00,42', '恩施土家族苗族自治州', '42', '湖北省', '4228', '恩施土家族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('422801', '4228', '00,42,4228', '恩施市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422801', '恩施市', '', '', '', '', 3, 1, ''), ('422802', '4228', '00,42,4228', '利川市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422802', '利川市', '', '', '', '', 3, 1, ''), ('422822', '4228', '00,42,4228', '建始县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422822', '建始县', '', '', '', '', 3, 1, ''), ('422823', '4228', '00,42,4228', '巴东县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422823', '巴东县', '', '', '', '', 3, 1, ''), ('422825', '4228', '00,42,4228', '宣恩县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422825', '宣恩县', '', '', '', '', 3, 1, ''), ('422826', '4228', '00,42,4228', '咸丰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422826', '咸丰县', '', '', '', '', 3, 1, ''), ('422827', '4228', '00,42,4228', '来凤县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422827', '来凤县', '', '', '', '', 3, 1, ''), ('422828', '4228', '00,42,4228', '鹤峰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422828', '鹤峰县', '', '', '', '', 3, 1, ''), ('4290', '42', '00,42', '省直辖县级行政区', '42', '湖北省', '4290', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('429004', '4290', '00,42,4290', '仙桃市', '42', '湖北省', '4290', '省直辖县级行政区', '429004', '仙桃市', '', '', '', '', 3, 1, ''), ('429005', '4290', '00,42,4290', '潜江市', '42', '湖北省', '4290', '省直辖县级行政区', '429005', '潜江市', '', '', '', '', 3, 1, ''), ('429006', '4290', '00,42,4290', '天门市', '42', '湖北省', '4290', '省直辖县级行政区', '429006', '天门市', '', '', '', '', 3, 1, ''), ('429021', '4290', '00,42,4290', '神农架林区', '42', '湖北省', '4290', '省直辖县级行政区', '429021', '神农架林区', '', '', '', '', 3, 1, ''), ('43', '00', '00', '湖南省', '43', '湖南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4301', '43', '00,43', '长沙市', '43', '湖南省', '4301', '长沙市', '', '', '', '', '', '', 2, 1, ''), ('430102', '4301', '00,43,4301', '芙蓉区', '43', '湖南省', '4301', '长沙市', '430102', '芙蓉区', '', '', '', '', 3, 1, ''), ('430103', '4301', '00,43,4301', '天心区', '43', '湖南省', '4301', '长沙市', '430103', '天心区', '', '', '', '', 3, 1, ''), ('430104', '4301', '00,43,4301', '岳麓区', '43', '湖南省', '4301', '长沙市', '430104', '岳麓区', '', '', '', '', 3, 1, ''), ('430105', '4301', '00,43,4301', '开福区', '43', '湖南省', '4301', '长沙市', '430105', '开福区', '', '', '', '', 3, 1, ''), ('430111', '4301', '00,43,4301', '雨花区', '43', '湖南省', '4301', '长沙市', '430111', '雨花区', '', '', '', '', 3, 1, ''), ('430112', '4301', '00,43,4301', '望城区', '43', '湖南省', '4301', '长沙市', '430112', '望城区', '', '', '', '', 3, 1, ''), ('430121', '4301', '00,43,4301', '长沙县', '43', '湖南省', '4301', '长沙市', '430121', '长沙县', '', '', '', '', 3, 1, ''), ('430181', '4301', '00,43,4301', '浏阳市', '43', '湖南省', '4301', '长沙市', '430181', '浏阳市', '', '', '', '', 3, 1, ''), ('430182', '4301', '00,43,4301', '宁乡市', '43', '湖南省', '4301', '长沙市', '430182', '宁乡市', '', '', '', '', 3, 1, ''), ('4302', '43', '00,43', '株洲市', '43', '湖南省', '4302', '株洲市', '', '', '', '', '', '', 2, 1, ''), ('430202', '4302', '00,43,4302', '荷塘区', '43', '湖南省', '4302', '株洲市', '430202', '荷塘区', '', '', '', '', 3, 1, ''), ('430203', '4302', '00,43,4302', '芦淞区', '43', '湖南省', '4302', '株洲市', '430203', '芦淞区', '', '', '', '', 3, 1, ''), ('430204', '4302', '00,43,4302', '石峰区', '43', '湖南省', '4302', '株洲市', '430204', '石峰区', '', '', '', '', 3, 1, ''), ('430211', '4302', '00,43,4302', '天元区', '43', '湖南省', '4302', '株洲市', '430211', '天元区', '', '', '', '', 3, 1, ''), ('430212', '4302', '00,43,4302', '渌口区', '43', '湖南省', '4302', '株洲市', '430212', '渌口区', '', '', '', '', 3, 1, ''), ('430223', '4302', '00,43,4302', '攸县', '43', '湖南省', '4302', '株洲市', '430223', '攸县', '', '', '', '', 3, 1, ''), ('430224', '4302', '00,43,4302', '茶陵县', '43', '湖南省', '4302', '株洲市', '430224', '茶陵县', '', '', '', '', 3, 1, ''), ('430225', '4302', '00,43,4302', '炎陵县', '43', '湖南省', '4302', '株洲市', '430225', '炎陵县', '', '', '', '', 3, 1, ''), ('430281', '4302', '00,43,4302', '醴陵市', '43', '湖南省', '4302', '株洲市', '430281', '醴陵市', '', '', '', '', 3, 1, ''), ('4303', '43', '00,43', '湘潭市', '43', '湖南省', '4303', '湘潭市', '', '', '', '', '', '', 2, 1, ''), ('430302', '4303', '00,43,4303', '雨湖区', '43', '湖南省', '4303', '湘潭市', '430302', '雨湖区', '', '', '', '', 3, 1, ''), ('430304', '4303', '00,43,4303', '岳塘区', '43', '湖南省', '4303', '湘潭市', '430304', '岳塘区', '', '', '', '', 3, 1, ''), ('430321', '4303', '00,43,4303', '湘潭县', '43', '湖南省', '4303', '湘潭市', '430321', '湘潭县', '', '', '', '', 3, 1, ''), ('430381', '4303', '00,43,4303', '湘乡市', '43', '湖南省', '4303', '湘潭市', '430381', '湘乡市', '', '', '', '', 3, 1, ''), ('430382', '4303', '00,43,4303', '韶山市', '43', '湖南省', '4303', '湘潭市', '430382', '韶山市', '', '', '', '', 3, 1, ''), ('4304', '43', '00,43', '衡阳市', '43', '湖南省', '4304', '衡阳市', '', '', '', '', '', '', 2, 1, ''), ('430405', '4304', '00,43,4304', '珠晖区', '43', '湖南省', '4304', '衡阳市', '430405', '珠晖区', '', '', '', '', 3, 1, ''), ('430406', '4304', '00,43,4304', '雁峰区', '43', '湖南省', '4304', '衡阳市', '430406', '雁峰区', '', '', '', '', 3, 1, ''), ('430407', '4304', '00,43,4304', '石鼓区', '43', '湖南省', '4304', '衡阳市', '430407', '石鼓区', '', '', '', '', 3, 1, ''), ('430408', '4304', '00,43,4304', '蒸湘区', '43', '湖南省', '4304', '衡阳市', '430408', '蒸湘区', '', '', '', '', 3, 1, ''), ('430412', '4304', '00,43,4304', '南岳区', '43', '湖南省', '4304', '衡阳市', '430412', '南岳区', '', '', '', '', 3, 1, ''), ('430421', '4304', '00,43,4304', '衡阳县', '43', '湖南省', '4304', '衡阳市', '430421', '衡阳县', '', '', '', '', 3, 1, ''), ('430422', '4304', '00,43,4304', '衡南县', '43', '湖南省', '4304', '衡阳市', '430422', '衡南县', '', '', '', '', 3, 1, ''), ('430423', '4304', '00,43,4304', '衡山县', '43', '湖南省', '4304', '衡阳市', '430423', '衡山县', '', '', '', '', 3, 1, ''), ('430424', '4304', '00,43,4304', '衡东县', '43', '湖南省', '4304', '衡阳市', '430424', '衡东县', '', '', '', '', 3, 1, ''), ('430426', '4304', '00,43,4304', '祁东县', '43', '湖南省', '4304', '衡阳市', '430426', '祁东县', '', '', '', '', 3, 1, ''), ('430481', '4304', '00,43,4304', '耒阳市', '43', '湖南省', '4304', '衡阳市', '430481', '耒阳市', '', '', '', '', 3, 1, ''), ('430482', '4304', '00,43,4304', '常宁市', '43', '湖南省', '4304', '衡阳市', '430482', '常宁市', '', '', '', '', 3, 1, ''), ('4305', '43', '00,43', '邵阳市', '43', '湖南省', '4305', '邵阳市', '', '', '', '', '', '', 2, 1, ''), ('430502', '4305', '00,43,4305', '双清区', '43', '湖南省', '4305', '邵阳市', '430502', '双清区', '', '', '', '', 3, 1, ''), ('430503', '4305', '00,43,4305', '大祥区', '43', '湖南省', '4305', '邵阳市', '430503', '大祥区', '', '', '', '', 3, 1, ''), ('430511', '4305', '00,43,4305', '北塔区', '43', '湖南省', '4305', '邵阳市', '430511', '北塔区', '', '', '', '', 3, 1, ''), ('430522', '4305', '00,43,4305', '新邵县', '43', '湖南省', '4305', '邵阳市', '430522', '新邵县', '', '', '', '', 3, 1, ''), ('430523', '4305', '00,43,4305', '邵阳县', '43', '湖南省', '4305', '邵阳市', '430523', '邵阳县', '', '', '', '', 3, 1, ''), ('430524', '4305', '00,43,4305', '隆回县', '43', '湖南省', '4305', '邵阳市', '430524', '隆回县', '', '', '', '', 3, 1, ''), ('430525', '4305', '00,43,4305', '洞口县', '43', '湖南省', '4305', '邵阳市', '430525', '洞口县', '', '', '', '', 3, 1, ''), ('430527', '4305', '00,43,4305', '绥宁县', '43', '湖南省', '4305', '邵阳市', '430527', '绥宁县', '', '', '', '', 3, 1, ''), ('430528', '4305', '00,43,4305', '新宁县', '43', '湖南省', '4305', '邵阳市', '430528', '新宁县', '', '', '', '', 3, 1, ''), ('430529', '4305', '00,43,4305', '城步苗族自治县', '43', '湖南省', '4305', '邵阳市', '430529', '城步苗族自治县', '', '', '', '', 3, 1, ''), ('430581', '4305', '00,43,4305', '武冈市', '43', '湖南省', '4305', '邵阳市', '430581', '武冈市', '', '', '', '', 3, 1, ''), ('430582', '4305', '00,43,4305', '邵东市', '43', '湖南省', '4305', '邵阳市', '430582', '邵东市', '', '', '', '', 3, 1, ''), ('4306', '43', '00,43', '岳阳市', '43', '湖南省', '4306', '岳阳市', '', '', '', '', '', '', 2, 1, ''), ('430602', '4306', '00,43,4306', '岳阳楼区', '43', '湖南省', '4306', '岳阳市', '430602', '岳阳楼区', '', '', '', '', 3, 1, ''), ('430603', '4306', '00,43,4306', '云溪区', '43', '湖南省', '4306', '岳阳市', '430603', '云溪区', '', '', '', '', 3, 1, ''), ('430611', '4306', '00,43,4306', '君山区', '43', '湖南省', '4306', '岳阳市', '430611', '君山区', '', '', '', '', 3, 1, ''), ('430621', '4306', '00,43,4306', '岳阳县', '43', '湖南省', '4306', '岳阳市', '430621', '岳阳县', '', '', '', '', 3, 1, ''), ('430623', '4306', '00,43,4306', '华容县', '43', '湖南省', '4306', '岳阳市', '430623', '华容县', '', '', '', '', 3, 1, ''), ('430624', '4306', '00,43,4306', '湘阴县', '43', '湖南省', '4306', '岳阳市', '430624', '湘阴县', '', '', '', '', 3, 1, ''), ('430626', '4306', '00,43,4306', '平江县', '43', '湖南省', '4306', '岳阳市', '430626', '平江县', '', '', '', '', 3, 1, ''), ('430681', '4306', '00,43,4306', '汨罗市', '43', '湖南省', '4306', '岳阳市', '430681', '汨罗市', '', '', '', '', 3, 1, ''), ('430682', '4306', '00,43,4306', '临湘市', '43', '湖南省', '4306', '岳阳市', '430682', '临湘市', '', '', '', '', 3, 1, ''), ('4307', '43', '00,43', '常德市', '43', '湖南省', '4307', '常德市', '', '', '', '', '', '', 2, 1, ''), ('430702', '4307', '00,43,4307', '武陵区', '43', '湖南省', '4307', '常德市', '430702', '武陵区', '', '', '', '', 3, 1, ''), ('430703', '4307', '00,43,4307', '鼎城区', '43', '湖南省', '4307', '常德市', '430703', '鼎城区', '', '', '', '', 3, 1, ''), ('430721', '4307', '00,43,4307', '安乡县', '43', '湖南省', '4307', '常德市', '430721', '安乡县', '', '', '', '', 3, 1, ''), ('430722', '4307', '00,43,4307', '汉寿县', '43', '湖南省', '4307', '常德市', '430722', '汉寿县', '', '', '', '', 3, 1, ''), ('430723', '4307', '00,43,4307', '澧县', '43', '湖南省', '4307', '常德市', '430723', '澧县', '', '', '', '', 3, 1, ''), ('430724', '4307', '00,43,4307', '临澧县', '43', '湖南省', '4307', '常德市', '430724', '临澧县', '', '', '', '', 3, 1, ''), ('430725', '4307', '00,43,4307', '桃源县', '43', '湖南省', '4307', '常德市', '430725', '桃源县', '', '', '', '', 3, 1, ''), ('430726', '4307', '00,43,4307', '石门县', '43', '湖南省', '4307', '常德市', '430726', '石门县', '', '', '', '', 3, 1, ''), ('430781', '4307', '00,43,4307', '津市市', '43', '湖南省', '4307', '常德市', '430781', '津市市', '', '', '', '', 3, 1, ''), ('4308', '43', '00,43', '张家界市', '43', '湖南省', '4308', '张家界市', '', '', '', '', '', '', 2, 1, ''), ('430802', '4308', '00,43,4308', '永定区', '43', '湖南省', '4308', '张家界市', '430802', '永定区', '', '', '', '', 3, 1, ''), ('430811', '4308', '00,43,4308', '武陵源区', '43', '湖南省', '4308', '张家界市', '430811', '武陵源区', '', '', '', '', 3, 1, ''), ('430821', '4308', '00,43,4308', '慈利县', '43', '湖南省', '4308', '张家界市', '430821', '慈利县', '', '', '', '', 3, 1, ''), ('430822', '4308', '00,43,4308', '桑植县', '43', '湖南省', '4308', '张家界市', '430822', '桑植县', '', '', '', '', 3, 1, ''), ('4309', '43', '00,43', '益阳市', '43', '湖南省', '4309', '益阳市', '', '', '', '', '', '', 2, 1, ''), ('430902', '4309', '00,43,4309', '资阳区', '43', '湖南省', '4309', '益阳市', '430902', '资阳区', '', '', '', '', 3, 1, ''), ('430903', '4309', '00,43,4309', '赫山区', '43', '湖南省', '4309', '益阳市', '430903', '赫山区', '', '', '', '', 3, 1, ''), ('430921', '4309', '00,43,4309', '南县', '43', '湖南省', '4309', '益阳市', '430921', '南县', '', '', '', '', 3, 1, ''), ('430922', '4309', '00,43,4309', '桃江县', '43', '湖南省', '4309', '益阳市', '430922', '桃江县', '', '', '', '', 3, 1, ''), ('430923', '4309', '00,43,4309', '安化县', '43', '湖南省', '4309', '益阳市', '430923', '安化县', '', '', '', '', 3, 1, ''), ('430981', '4309', '00,43,4309', '沅江市', '43', '湖南省', '4309', '益阳市', '430981', '沅江市', '', '', '', '', 3, 1, ''), ('4310', '43', '00,43', '郴州市', '43', '湖南省', '4310', '郴州市', '', '', '', '', '', '', 2, 1, ''), ('431002', '4310', '00,43,4310', '北湖区', '43', '湖南省', '4310', '郴州市', '431002', '北湖区', '', '', '', '', 3, 1, ''), ('431003', '4310', '00,43,4310', '苏仙区', '43', '湖南省', '4310', '郴州市', '431003', '苏仙区', '', '', '', '', 3, 1, ''), ('431021', '4310', '00,43,4310', '桂阳县', '43', '湖南省', '4310', '郴州市', '431021', '桂阳县', '', '', '', '', 3, 1, ''), ('431022', '4310', '00,43,4310', '宜章县', '43', '湖南省', '4310', '郴州市', '431022', '宜章县', '', '', '', '', 3, 1, ''), ('431023', '4310', '00,43,4310', '永兴县', '43', '湖南省', '4310', '郴州市', '431023', '永兴县', '', '', '', '', 3, 1, ''), ('431024', '4310', '00,43,4310', '嘉禾县', '43', '湖南省', '4310', '郴州市', '431024', '嘉禾县', '', '', '', '', 3, 1, ''), ('431025', '4310', '00,43,4310', '临武县', '43', '湖南省', '4310', '郴州市', '431025', '临武县', '', '', '', '', 3, 1, ''), ('431026', '4310', '00,43,4310', '汝城县', '43', '湖南省', '4310', '郴州市', '431026', '汝城县', '', '', '', '', 3, 1, ''), ('431027', '4310', '00,43,4310', '桂东县', '43', '湖南省', '4310', '郴州市', '431027', '桂东县', '', '', '', '', 3, 1, ''), ('431028', '4310', '00,43,4310', '安仁县', '43', '湖南省', '4310', '郴州市', '431028', '安仁县', '', '', '', '', 3, 1, ''), ('431081', '4310', '00,43,4310', '资兴市', '43', '湖南省', '4310', '郴州市', '431081', '资兴市', '', '', '', '', 3, 1, ''), ('4311', '43', '00,43', '永州市', '43', '湖南省', '4311', '永州市', '', '', '', '', '', '', 2, 1, ''), ('431102', '4311', '00,43,4311', '零陵区', '43', '湖南省', '4311', '永州市', '431102', '零陵区', '', '', '', '', 3, 1, ''), ('431103', '4311', '00,43,4311', '冷水滩区', '43', '湖南省', '4311', '永州市', '431103', '冷水滩区', '', '', '', '', 3, 1, ''), ('431121', '4311', '00,43,4311', '祁阳县', '43', '湖南省', '4311', '永州市', '431121', '祁阳县', '', '', '', '', 3, 1, ''), ('431122', '4311', '00,43,4311', '东安县', '43', '湖南省', '4311', '永州市', '431122', '东安县', '', '', '', '', 3, 1, ''), ('431123', '4311', '00,43,4311', '双牌县', '43', '湖南省', '4311', '永州市', '431123', '双牌县', '', '', '', '', 3, 1, ''), ('431124', '4311', '00,43,4311', '道县', '43', '湖南省', '4311', '永州市', '431124', '道县', '', '', '', '', 3, 1, ''), ('431125', '4311', '00,43,4311', '江永县', '43', '湖南省', '4311', '永州市', '431125', '江永县', '', '', '', '', 3, 1, ''), ('431126', '4311', '00,43,4311', '宁远县', '43', '湖南省', '4311', '永州市', '431126', '宁远县', '', '', '', '', 3, 1, ''), ('431127', '4311', '00,43,4311', '蓝山县', '43', '湖南省', '4311', '永州市', '431127', '蓝山县', '', '', '', '', 3, 1, ''), ('431128', '4311', '00,43,4311', '新田县', '43', '湖南省', '4311', '永州市', '431128', '新田县', '', '', '', '', 3, 1, ''), ('431129', '4311', '00,43,4311', '江华瑶族自治县', '43', '湖南省', '4311', '永州市', '431129', '江华瑶族自治县', '', '', '', '', 3, 1, ''), ('4312', '43', '00,43', '怀化市', '43', '湖南省', '4312', '怀化市', '', '', '', '', '', '', 2, 1, ''), ('431202', '4312', '00,43,4312', '鹤城区', '43', '湖南省', '4312', '怀化市', '431202', '鹤城区', '', '', '', '', 3, 1, ''), ('431221', '4312', '00,43,4312', '中方县', '43', '湖南省', '4312', '怀化市', '431221', '中方县', '', '', '', '', 3, 1, ''), ('431222', '4312', '00,43,4312', '沅陵县', '43', '湖南省', '4312', '怀化市', '431222', '沅陵县', '', '', '', '', 3, 1, ''), ('431223', '4312', '00,43,4312', '辰溪县', '43', '湖南省', '4312', '怀化市', '431223', '辰溪县', '', '', '', '', 3, 1, ''), ('431224', '4312', '00,43,4312', '溆浦县', '43', '湖南省', '4312', '怀化市', '431224', '溆浦县', '', '', '', '', 3, 1, ''), ('431225', '4312', '00,43,4312', '会同县', '43', '湖南省', '4312', '怀化市', '431225', '会同县', '', '', '', '', 3, 1, ''), ('431226', '4312', '00,43,4312', '麻阳苗族自治县', '43', '湖南省', '4312', '怀化市', '431226', '麻阳苗族自治县', '', '', '', '', 3, 1, ''), ('431227', '4312', '00,43,4312', '新晃侗族自治县', '43', '湖南省', '4312', '怀化市', '431227', '新晃侗族自治县', '', '', '', '', 3, 1, ''), ('431228', '4312', '00,43,4312', '芷江侗族自治县', '43', '湖南省', '4312', '怀化市', '431228', '芷江侗族自治县', '', '', '', '', 3, 1, ''), ('431229', '4312', '00,43,4312', '靖州苗族侗族自治县', '43', '湖南省', '4312', '怀化市', '431229', '靖州苗族侗族自治县', '', '', '', '', 3, 1, ''), ('431230', '4312', '00,43,4312', '通道侗族自治县', '43', '湖南省', '4312', '怀化市', '431230', '通道侗族自治县', '', '', '', '', 3, 1, ''), ('431281', '4312', '00,43,4312', '洪江市', '43', '湖南省', '4312', '怀化市', '431281', '洪江市', '', '', '', '', 3, 1, ''), ('4313', '43', '00,43', '娄底市', '43', '湖南省', '4313', '娄底市', '', '', '', '', '', '', 2, 1, ''), ('431302', '4313', '00,43,4313', '娄星区', '43', '湖南省', '4313', '娄底市', '431302', '娄星区', '', '', '', '', 3, 1, ''), ('431321', '4313', '00,43,4313', '双峰县', '43', '湖南省', '4313', '娄底市', '431321', '双峰县', '', '', '', '', 3, 1, ''), ('431322', '4313', '00,43,4313', '新化县', '43', '湖南省', '4313', '娄底市', '431322', '新化县', '', '', '', '', 3, 1, ''), ('431381', '4313', '00,43,4313', '冷水江市', '43', '湖南省', '4313', '娄底市', '431381', '冷水江市', '', '', '', '', 3, 1, ''), ('431382', '4313', '00,43,4313', '涟源市', '43', '湖南省', '4313', '娄底市', '431382', '涟源市', '', '', '', '', 3, 1, ''), ('4331', '43', '00,43', '湘西土家族苗族自治州', '43', '湖南省', '4331', '湘西土家族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('433101', '4331', '00,43,4331', '吉首市', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433101', '吉首市', '', '', '', '', 3, 1, ''), ('433122', '4331', '00,43,4331', '泸溪县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433122', '泸溪县', '', '', '', '', 3, 1, ''), ('433123', '4331', '00,43,4331', '凤凰县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433123', '凤凰县', '', '', '', '', 3, 1, ''), ('433124', '4331', '00,43,4331', '花垣县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433124', '花垣县', '', '', '', '', 3, 1, ''), ('433125', '4331', '00,43,4331', '保靖县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433125', '保靖县', '', '', '', '', 3, 1, ''), ('433126', '4331', '00,43,4331', '古丈县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433126', '古丈县', '', '', '', '', 3, 1, ''), ('433127', '4331', '00,43,4331', '永顺县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433127', '永顺县', '', '', '', '', 3, 1, ''), ('433130', '4331', '00,43,4331', '龙山县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433130', '龙山县', '', '', '', '', 3, 1, ''), ('44', '00', '00', '广东省', '44', '广东省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4401', '44', '00,44', '广州市', '44', '广东省', '4401', '广州市', '', '', '', '', '', '', 2, 1, ''), ('440103', '4401', '00,44,4401', '荔湾区', '44', '广东省', '4401', '广州市', '440103', '荔湾区', '', '', '', '', 3, 1, ''), ('440104', '4401', '00,44,4401', '越秀区', '44', '广东省', '4401', '广州市', '440104', '越秀区', '', '', '', '', 3, 1, ''), ('440105', '4401', '00,44,4401', '海珠区', '44', '广东省', '4401', '广州市', '440105', '海珠区', '', '', '', '', 3, 1, ''), ('440106', '4401', '00,44,4401', '天河区', '44', '广东省', '4401', '广州市', '440106', '天河区', '', '', '', '', 3, 1, '');
+INSERT INTO `blade_region` VALUES ('440111', '4401', '00,44,4401', '白云区', '44', '广东省', '4401', '广州市', '440111', '白云区', '', '', '', '', 3, 1, ''), ('440112', '4401', '00,44,4401', '黄埔区', '44', '广东省', '4401', '广州市', '440112', '黄埔区', '', '', '', '', 3, 1, ''), ('440113', '4401', '00,44,4401', '番禺区', '44', '广东省', '4401', '广州市', '440113', '番禺区', '', '', '', '', 3, 1, ''), ('440114', '4401', '00,44,4401', '花都区', '44', '广东省', '4401', '广州市', '440114', '花都区', '', '', '', '', 3, 1, ''), ('440115', '4401', '00,44,4401', '南沙区', '44', '广东省', '4401', '广州市', '440115', '南沙区', '', '', '', '', 3, 1, ''), ('440117', '4401', '00,44,4401', '从化区', '44', '广东省', '4401', '广州市', '440117', '从化区', '', '', '', '', 3, 1, ''), ('440118', '4401', '00,44,4401', '增城区', '44', '广东省', '4401', '广州市', '440118', '增城区', '', '', '', '', 3, 1, ''), ('4402', '44', '00,44', '韶关市', '44', '广东省', '4402', '韶关市', '', '', '', '', '', '', 2, 1, ''), ('440203', '4402', '00,44,4402', '武江区', '44', '广东省', '4402', '韶关市', '440203', '武江区', '', '', '', '', 3, 1, ''), ('440204', '4402', '00,44,4402', '浈江区', '44', '广东省', '4402', '韶关市', '440204', '浈江区', '', '', '', '', 3, 1, ''), ('440205', '4402', '00,44,4402', '曲江区', '44', '广东省', '4402', '韶关市', '440205', '曲江区', '', '', '', '', 3, 1, ''), ('440222', '4402', '00,44,4402', '始兴县', '44', '广东省', '4402', '韶关市', '440222', '始兴县', '', '', '', '', 3, 1, ''), ('440224', '4402', '00,44,4402', '仁化县', '44', '广东省', '4402', '韶关市', '440224', '仁化县', '', '', '', '', 3, 1, ''), ('440229', '4402', '00,44,4402', '翁源县', '44', '广东省', '4402', '韶关市', '440229', '翁源县', '', '', '', '', 3, 1, ''), ('440232', '4402', '00,44,4402', '乳源瑶族自治县', '44', '广东省', '4402', '韶关市', '440232', '乳源瑶族自治县', '', '', '', '', 3, 1, ''), ('440233', '4402', '00,44,4402', '新丰县', '44', '广东省', '4402', '韶关市', '440233', '新丰县', '', '', '', '', 3, 1, ''), ('440281', '4402', '00,44,4402', '乐昌市', '44', '广东省', '4402', '韶关市', '440281', '乐昌市', '', '', '', '', 3, 1, ''), ('440282', '4402', '00,44,4402', '南雄市', '44', '广东省', '4402', '韶关市', '440282', '南雄市', '', '', '', '', 3, 1, ''), ('4403', '44', '00,44', '深圳市', '44', '广东省', '4403', '深圳市', '', '', '', '', '', '', 2, 1, ''), ('440303', '4403', '00,44,4403', '罗湖区', '44', '广东省', '4403', '深圳市', '440303', '罗湖区', '', '', '', '', 3, 1, ''), ('440304', '4403', '00,44,4403', '福田区', '44', '广东省', '4403', '深圳市', '440304', '福田区', '', '', '', '', 3, 1, ''), ('440305', '4403', '00,44,4403', '南山区', '44', '广东省', '4403', '深圳市', '440305', '南山区', '', '', '', '', 3, 1, ''), ('440306', '4403', '00,44,4403', '宝安区', '44', '广东省', '4403', '深圳市', '440306', '宝安区', '', '', '', '', 3, 1, ''), ('440307', '4403', '00,44,4403', '龙岗区', '44', '广东省', '4403', '深圳市', '440307', '龙岗区', '', '', '', '', 3, 1, ''), ('440308', '4403', '00,44,4403', '盐田区', '44', '广东省', '4403', '深圳市', '440308', '盐田区', '', '', '', '', 3, 1, ''), ('440309', '4403', '00,44,4403', '龙华区', '44', '广东省', '4403', '深圳市', '440309', '龙华区', '', '', '', '', 3, 1, ''), ('440310', '4403', '00,44,4403', '坪山区', '44', '广东省', '4403', '深圳市', '440310', '坪山区', '', '', '', '', 3, 1, ''), ('440311', '4403', '00,44,4403', '光明区', '44', '广东省', '4403', '深圳市', '440311', '光明区', '', '', '', '', 3, 1, ''), ('4404', '44', '00,44', '珠海市', '44', '广东省', '4404', '珠海市', '', '', '', '', '', '', 2, 1, ''), ('440402', '4404', '00,44,4404', '香洲区', '44', '广东省', '4404', '珠海市', '440402', '香洲区', '', '', '', '', 3, 1, ''), ('440403', '4404', '00,44,4404', '斗门区', '44', '广东省', '4404', '珠海市', '440403', '斗门区', '', '', '', '', 3, 1, ''), ('440404', '4404', '00,44,4404', '金湾区', '44', '广东省', '4404', '珠海市', '440404', '金湾区', '', '', '', '', 3, 1, ''), ('4405', '44', '00,44', '汕头市', '44', '广东省', '4405', '汕头市', '', '', '', '', '', '', 2, 1, ''), ('440507', '4405', '00,44,4405', '龙湖区', '44', '广东省', '4405', '汕头市', '440507', '龙湖区', '', '', '', '', 3, 1, ''), ('440511', '4405', '00,44,4405', '金平区', '44', '广东省', '4405', '汕头市', '440511', '金平区', '', '', '', '', 3, 1, ''), ('440512', '4405', '00,44,4405', '濠江区', '44', '广东省', '4405', '汕头市', '440512', '濠江区', '', '', '', '', 3, 1, ''), ('440513', '4405', '00,44,4405', '潮阳区', '44', '广东省', '4405', '汕头市', '440513', '潮阳区', '', '', '', '', 3, 1, ''), ('440514', '4405', '00,44,4405', '潮南区', '44', '广东省', '4405', '汕头市', '440514', '潮南区', '', '', '', '', 3, 1, ''), ('440515', '4405', '00,44,4405', '澄海区', '44', '广东省', '4405', '汕头市', '440515', '澄海区', '', '', '', '', 3, 1, ''), ('440523', '4405', '00,44,4405', '南澳县', '44', '广东省', '4405', '汕头市', '440523', '南澳县', '', '', '', '', 3, 1, ''), ('4406', '44', '00,44', '佛山市', '44', '广东省', '4406', '佛山市', '', '', '', '', '', '', 2, 1, ''), ('440604', '4406', '00,44,4406', '禅城区', '44', '广东省', '4406', '佛山市', '440604', '禅城区', '', '', '', '', 3, 1, ''), ('440605', '4406', '00,44,4406', '南海区', '44', '广东省', '4406', '佛山市', '440605', '南海区', '', '', '', '', 3, 1, ''), ('440606', '4406', '00,44,4406', '顺德区', '44', '广东省', '4406', '佛山市', '440606', '顺德区', '', '', '', '', 3, 1, ''), ('440607', '4406', '00,44,4406', '三水区', '44', '广东省', '4406', '佛山市', '440607', '三水区', '', '', '', '', 3, 1, ''), ('440608', '4406', '00,44,4406', '高明区', '44', '广东省', '4406', '佛山市', '440608', '高明区', '', '', '', '', 3, 1, ''), ('4407', '44', '00,44', '江门市', '44', '广东省', '4407', '江门市', '', '', '', '', '', '', 2, 1, ''), ('440703', '4407', '00,44,4407', '蓬江区', '44', '广东省', '4407', '江门市', '440703', '蓬江区', '', '', '', '', 3, 1, ''), ('440704', '4407', '00,44,4407', '江海区', '44', '广东省', '4407', '江门市', '440704', '江海区', '', '', '', '', 3, 1, ''), ('440705', '4407', '00,44,4407', '新会区', '44', '广东省', '4407', '江门市', '440705', '新会区', '', '', '', '', 3, 1, ''), ('440781', '4407', '00,44,4407', '台山市', '44', '广东省', '4407', '江门市', '440781', '台山市', '', '', '', '', 3, 1, ''), ('440783', '4407', '00,44,4407', '开平市', '44', '广东省', '4407', '江门市', '440783', '开平市', '', '', '', '', 3, 1, ''), ('440784', '4407', '00,44,4407', '鹤山市', '44', '广东省', '4407', '江门市', '440784', '鹤山市', '', '', '', '', 3, 1, ''), ('440785', '4407', '00,44,4407', '恩平市', '44', '广东省', '4407', '江门市', '440785', '恩平市', '', '', '', '', 3, 1, ''), ('4408', '44', '00,44', '湛江市', '44', '广东省', '4408', '湛江市', '', '', '', '', '', '', 2, 1, ''), ('440802', '4408', '00,44,4408', '赤坎区', '44', '广东省', '4408', '湛江市', '440802', '赤坎区', '', '', '', '', 3, 1, ''), ('440803', '4408', '00,44,4408', '霞山区', '44', '广东省', '4408', '湛江市', '440803', '霞山区', '', '', '', '', 3, 1, ''), ('440804', '4408', '00,44,4408', '坡头区', '44', '广东省', '4408', '湛江市', '440804', '坡头区', '', '', '', '', 3, 1, ''), ('440811', '4408', '00,44,4408', '麻章区', '44', '广东省', '4408', '湛江市', '440811', '麻章区', '', '', '', '', 3, 1, ''), ('440823', '4408', '00,44,4408', '遂溪县', '44', '广东省', '4408', '湛江市', '440823', '遂溪县', '', '', '', '', 3, 1, ''), ('440825', '4408', '00,44,4408', '徐闻县', '44', '广东省', '4408', '湛江市', '440825', '徐闻县', '', '', '', '', 3, 1, ''), ('440881', '4408', '00,44,4408', '廉江市', '44', '广东省', '4408', '湛江市', '440881', '廉江市', '', '', '', '', 3, 1, ''), ('440882', '4408', '00,44,4408', '雷州市', '44', '广东省', '4408', '湛江市', '440882', '雷州市', '', '', '', '', 3, 1, ''), ('440883', '4408', '00,44,4408', '吴川市', '44', '广东省', '4408', '湛江市', '440883', '吴川市', '', '', '', '', 3, 1, ''), ('4409', '44', '00,44', '茂名市', '44', '广东省', '4409', '茂名市', '', '', '', '', '', '', 2, 1, ''), ('440902', '4409', '00,44,4409', '茂南区', '44', '广东省', '4409', '茂名市', '440902', '茂南区', '', '', '', '', 3, 1, ''), ('440904', '4409', '00,44,4409', '电白区', '44', '广东省', '4409', '茂名市', '440904', '电白区', '', '', '', '', 3, 1, ''), ('440981', '4409', '00,44,4409', '高州市', '44', '广东省', '4409', '茂名市', '440981', '高州市', '', '', '', '', 3, 1, ''), ('440982', '4409', '00,44,4409', '化州市', '44', '广东省', '4409', '茂名市', '440982', '化州市', '', '', '', '', 3, 1, ''), ('440983', '4409', '00,44,4409', '信宜市', '44', '广东省', '4409', '茂名市', '440983', '信宜市', '', '', '', '', 3, 1, ''), ('4412', '44', '00,44', '肇庆市', '44', '广东省', '4412', '肇庆市', '', '', '', '', '', '', 2, 1, ''), ('441202', '4412', '00,44,4412', '端州区', '44', '广东省', '4412', '肇庆市', '441202', '端州区', '', '', '', '', 3, 1, ''), ('441203', '4412', '00,44,4412', '鼎湖区', '44', '广东省', '4412', '肇庆市', '441203', '鼎湖区', '', '', '', '', 3, 1, ''), ('441204', '4412', '00,44,4412', '高要区', '44', '广东省', '4412', '肇庆市', '441204', '高要区', '', '', '', '', 3, 1, ''), ('441223', '4412', '00,44,4412', '广宁县', '44', '广东省', '4412', '肇庆市', '441223', '广宁县', '', '', '', '', 3, 1, ''), ('441224', '4412', '00,44,4412', '怀集县', '44', '广东省', '4412', '肇庆市', '441224', '怀集县', '', '', '', '', 3, 1, ''), ('441225', '4412', '00,44,4412', '封开县', '44', '广东省', '4412', '肇庆市', '441225', '封开县', '', '', '', '', 3, 1, ''), ('441226', '4412', '00,44,4412', '德庆县', '44', '广东省', '4412', '肇庆市', '441226', '德庆县', '', '', '', '', 3, 1, ''), ('441284', '4412', '00,44,4412', '四会市', '44', '广东省', '4412', '肇庆市', '441284', '四会市', '', '', '', '', 3, 1, ''), ('4413', '44', '00,44', '惠州市', '44', '广东省', '4413', '惠州市', '', '', '', '', '', '', 2, 1, ''), ('441302', '4413', '00,44,4413', '惠城区', '44', '广东省', '4413', '惠州市', '441302', '惠城区', '', '', '', '', 3, 1, ''), ('441303', '4413', '00,44,4413', '惠阳区', '44', '广东省', '4413', '惠州市', '441303', '惠阳区', '', '', '', '', 3, 1, ''), ('441322', '4413', '00,44,4413', '博罗县', '44', '广东省', '4413', '惠州市', '441322', '博罗县', '', '', '', '', 3, 1, ''), ('441323', '4413', '00,44,4413', '惠东县', '44', '广东省', '4413', '惠州市', '441323', '惠东县', '', '', '', '', 3, 1, ''), ('441324', '4413', '00,44,4413', '龙门县', '44', '广东省', '4413', '惠州市', '441324', '龙门县', '', '', '', '', 3, 1, ''), ('4414', '44', '00,44', '梅州市', '44', '广东省', '4414', '梅州市', '', '', '', '', '', '', 2, 1, ''), ('441402', '4414', '00,44,4414', '梅江区', '44', '广东省', '4414', '梅州市', '441402', '梅江区', '', '', '', '', 3, 1, ''), ('441403', '4414', '00,44,4414', '梅县区', '44', '广东省', '4414', '梅州市', '441403', '梅县区', '', '', '', '', 3, 1, ''), ('441422', '4414', '00,44,4414', '大埔县', '44', '广东省', '4414', '梅州市', '441422', '大埔县', '', '', '', '', 3, 1, ''), ('441423', '4414', '00,44,4414', '丰顺县', '44', '广东省', '4414', '梅州市', '441423', '丰顺县', '', '', '', '', 3, 1, ''), ('441424', '4414', '00,44,4414', '五华县', '44', '广东省', '4414', '梅州市', '441424', '五华县', '', '', '', '', 3, 1, ''), ('441426', '4414', '00,44,4414', '平远县', '44', '广东省', '4414', '梅州市', '441426', '平远县', '', '', '', '', 3, 1, ''), ('441427', '4414', '00,44,4414', '蕉岭县', '44', '广东省', '4414', '梅州市', '441427', '蕉岭县', '', '', '', '', 3, 1, ''), ('441481', '4414', '00,44,4414', '兴宁市', '44', '广东省', '4414', '梅州市', '441481', '兴宁市', '', '', '', '', 3, 1, ''), ('4415', '44', '00,44', '汕尾市', '44', '广东省', '4415', '汕尾市', '', '', '', '', '', '', 2, 1, ''), ('441502', '4415', '00,44,4415', '城区', '44', '广东省', '4415', '汕尾市', '441502', '城区', '', '', '', '', 3, 1, ''), ('441521', '4415', '00,44,4415', '海丰县', '44', '广东省', '4415', '汕尾市', '441521', '海丰县', '', '', '', '', 3, 1, ''), ('441523', '4415', '00,44,4415', '陆河县', '44', '广东省', '4415', '汕尾市', '441523', '陆河县', '', '', '', '', 3, 1, ''), ('441581', '4415', '00,44,4415', '陆丰市', '44', '广东省', '4415', '汕尾市', '441581', '陆丰市', '', '', '', '', 3, 1, ''), ('4416', '44', '00,44', '河源市', '44', '广东省', '4416', '河源市', '', '', '', '', '', '', 2, 1, ''), ('441602', '4416', '00,44,4416', '源城区', '44', '广东省', '4416', '河源市', '441602', '源城区', '', '', '', '', 3, 1, ''), ('441621', '4416', '00,44,4416', '紫金县', '44', '广东省', '4416', '河源市', '441621', '紫金县', '', '', '', '', 3, 1, ''), ('441622', '4416', '00,44,4416', '龙川县', '44', '广东省', '4416', '河源市', '441622', '龙川县', '', '', '', '', 3, 1, ''), ('441623', '4416', '00,44,4416', '连平县', '44', '广东省', '4416', '河源市', '441623', '连平县', '', '', '', '', 3, 1, ''), ('441624', '4416', '00,44,4416', '和平县', '44', '广东省', '4416', '河源市', '441624', '和平县', '', '', '', '', 3, 1, ''), ('441625', '4416', '00,44,4416', '东源县', '44', '广东省', '4416', '河源市', '441625', '东源县', '', '', '', '', 3, 1, ''), ('4417', '44', '00,44', '阳江市', '44', '广东省', '4417', '阳江市', '', '', '', '', '', '', 2, 1, ''), ('441702', '4417', '00,44,4417', '江城区', '44', '广东省', '4417', '阳江市', '441702', '江城区', '', '', '', '', 3, 1, ''), ('441704', '4417', '00,44,4417', '阳东区', '44', '广东省', '4417', '阳江市', '441704', '阳东区', '', '', '', '', 3, 1, ''), ('441721', '4417', '00,44,4417', '阳西县', '44', '广东省', '4417', '阳江市', '441721', '阳西县', '', '', '', '', 3, 1, ''), ('441781', '4417', '00,44,4417', '阳春市', '44', '广东省', '4417', '阳江市', '441781', '阳春市', '', '', '', '', 3, 1, ''), ('4418', '44', '00,44', '清远市', '44', '广东省', '4418', '清远市', '', '', '', '', '', '', 2, 1, ''), ('441802', '4418', '00,44,4418', '清城区', '44', '广东省', '4418', '清远市', '441802', '清城区', '', '', '', '', 3, 1, ''), ('441803', '4418', '00,44,4418', '清新区', '44', '广东省', '4418', '清远市', '441803', '清新区', '', '', '', '', 3, 1, ''), ('441821', '4418', '00,44,4418', '佛冈县', '44', '广东省', '4418', '清远市', '441821', '佛冈县', '', '', '', '', 3, 1, ''), ('441823', '4418', '00,44,4418', '阳山县', '44', '广东省', '4418', '清远市', '441823', '阳山县', '', '', '', '', 3, 1, ''), ('441825', '4418', '00,44,4418', '连山壮族瑶族自治县', '44', '广东省', '4418', '清远市', '441825', '连山壮族瑶族自治县', '', '', '', '', 3, 1, ''), ('441826', '4418', '00,44,4418', '连南瑶族自治县', '44', '广东省', '4418', '清远市', '441826', '连南瑶族自治县', '', '', '', '', 3, 1, ''), ('441881', '4418', '00,44,4418', '英德市', '44', '广东省', '4418', '清远市', '441881', '英德市', '', '', '', '', 3, 1, ''), ('441882', '4418', '00,44,4418', '连州市', '44', '广东省', '4418', '清远市', '441882', '连州市', '', '', '', '', 3, 1, ''), ('4419', '44', '00,44', '东莞市', '44', '广东省', '4419', '东莞市', '', '', '', '', '', '', 2, 1, ''), ('441900', '4419', '00,44,4419', '东莞市', '44', '广东省', '4419', '东莞市', '441900', '东莞市', '', '', '', '', 3, 1, ''), ('4420', '44', '00,44', '中山市', '44', '广东省', '4420', '中山市', '', '', '', '', '', '', 2, 1, ''), ('442000', '4420', '00,44,4420', '中山市', '44', '广东省', '4420', '中山市', '442000', '中山市', '', '', '', '', 3, 1, ''), ('4451', '44', '00,44', '潮州市', '44', '广东省', '4451', '潮州市', '', '', '', '', '', '', 2, 1, ''), ('445102', '4451', '00,44,4451', '湘桥区', '44', '广东省', '4451', '潮州市', '445102', '湘桥区', '', '', '', '', 3, 1, ''), ('445103', '4451', '00,44,4451', '潮安区', '44', '广东省', '4451', '潮州市', '445103', '潮安区', '', '', '', '', 3, 1, ''), ('445122', '4451', '00,44,4451', '饶平县', '44', '广东省', '4451', '潮州市', '445122', '饶平县', '', '', '', '', 3, 1, ''), ('4452', '44', '00,44', '揭阳市', '44', '广东省', '4452', '揭阳市', '', '', '', '', '', '', 2, 1, ''), ('445202', '4452', '00,44,4452', '榕城区', '44', '广东省', '4452', '揭阳市', '445202', '榕城区', '', '', '', '', 3, 1, ''), ('445203', '4452', '00,44,4452', '揭东区', '44', '广东省', '4452', '揭阳市', '445203', '揭东区', '', '', '', '', 3, 1, ''), ('445222', '4452', '00,44,4452', '揭西县', '44', '广东省', '4452', '揭阳市', '445222', '揭西县', '', '', '', '', 3, 1, ''), ('445224', '4452', '00,44,4452', '惠来县', '44', '广东省', '4452', '揭阳市', '445224', '惠来县', '', '', '', '', 3, 1, ''), ('445281', '4452', '00,44,4452', '普宁市', '44', '广东省', '4452', '揭阳市', '445281', '普宁市', '', '', '', '', 3, 1, ''), ('4453', '44', '00,44', '云浮市', '44', '广东省', '4453', '云浮市', '', '', '', '', '', '', 2, 1, ''), ('445302', '4453', '00,44,4453', '云城区', '44', '广东省', '4453', '云浮市', '445302', '云城区', '', '', '', '', 3, 1, ''), ('445303', '4453', '00,44,4453', '云安区', '44', '广东省', '4453', '云浮市', '445303', '云安区', '', '', '', '', 3, 1, ''), ('445321', '4453', '00,44,4453', '新兴县', '44', '广东省', '4453', '云浮市', '445321', '新兴县', '', '', '', '', 3, 1, ''), ('445322', '4453', '00,44,4453', '郁南县', '44', '广东省', '4453', '云浮市', '445322', '郁南县', '', '', '', '', 3, 1, ''), ('445381', '4453', '00,44,4453', '罗定市', '44', '广东省', '4453', '云浮市', '445381', '罗定市', '', '', '', '', 3, 1, ''), ('45', '00', '00', '广西壮族自治区', '45', '广西壮族自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('4501', '45', '00,45', '南宁市', '45', '广西壮族自治区', '4501', '南宁市', '', '', '', '', '', '', 2, 1, ''), ('450102', '4501', '00,45,4501', '兴宁区', '45', '广西壮族自治区', '4501', '南宁市', '450102', '兴宁区', '', '', '', '', 3, 1, ''), ('450103', '4501', '00,45,4501', '青秀区', '45', '广西壮族自治区', '4501', '南宁市', '450103', '青秀区', '', '', '', '', 3, 1, ''), ('450105', '4501', '00,45,4501', '江南区', '45', '广西壮族自治区', '4501', '南宁市', '450105', '江南区', '', '', '', '', 3, 1, ''), ('450107', '4501', '00,45,4501', '西乡塘区', '45', '广西壮族自治区', '4501', '南宁市', '450107', '西乡塘区', '', '', '', '', 3, 1, ''), ('450108', '4501', '00,45,4501', '良庆区', '45', '广西壮族自治区', '4501', '南宁市', '450108', '良庆区', '', '', '', '', 3, 1, ''), ('450109', '4501', '00,45,4501', '邕宁区', '45', '广西壮族自治区', '4501', '南宁市', '450109', '邕宁区', '', '', '', '', 3, 1, ''), ('450110', '4501', '00,45,4501', '武鸣区', '45', '广西壮族自治区', '4501', '南宁市', '450110', '武鸣区', '', '', '', '', 3, 1, ''), ('450123', '4501', '00,45,4501', '隆安县', '45', '广西壮族自治区', '4501', '南宁市', '450123', '隆安县', '', '', '', '', 3, 1, ''), ('450124', '4501', '00,45,4501', '马山县', '45', '广西壮族自治区', '4501', '南宁市', '450124', '马山县', '', '', '', '', 3, 1, ''), ('450125', '4501', '00,45,4501', '上林县', '45', '广西壮族自治区', '4501', '南宁市', '450125', '上林县', '', '', '', '', 3, 1, ''), ('450126', '4501', '00,45,4501', '宾阳县', '45', '广西壮族自治区', '4501', '南宁市', '450126', '宾阳县', '', '', '', '', 3, 1, ''), ('450127', '4501', '00,45,4501', '横县', '45', '广西壮族自治区', '4501', '南宁市', '450127', '横县', '', '', '', '', 3, 1, ''), ('4502', '45', '00,45', '柳州市', '45', '广西壮族自治区', '4502', '柳州市', '', '', '', '', '', '', 2, 1, ''), ('450202', '4502', '00,45,4502', '城中区', '45', '广西壮族自治区', '4502', '柳州市', '450202', '城中区', '', '', '', '', 3, 1, ''), ('450203', '4502', '00,45,4502', '鱼峰区', '45', '广西壮族自治区', '4502', '柳州市', '450203', '鱼峰区', '', '', '', '', 3, 1, ''), ('450204', '4502', '00,45,4502', '柳南区', '45', '广西壮族自治区', '4502', '柳州市', '450204', '柳南区', '', '', '', '', 3, 1, ''), ('450205', '4502', '00,45,4502', '柳北区', '45', '广西壮族自治区', '4502', '柳州市', '450205', '柳北区', '', '', '', '', 3, 1, ''), ('450206', '4502', '00,45,4502', '柳江区', '45', '广西壮族自治区', '4502', '柳州市', '450206', '柳江区', '', '', '', '', 3, 1, ''), ('450222', '4502', '00,45,4502', '柳城县', '45', '广西壮族自治区', '4502', '柳州市', '450222', '柳城县', '', '', '', '', 3, 1, ''), ('450223', '4502', '00,45,4502', '鹿寨县', '45', '广西壮族自治区', '4502', '柳州市', '450223', '鹿寨县', '', '', '', '', 3, 1, ''), ('450224', '4502', '00,45,4502', '融安县', '45', '广西壮族自治区', '4502', '柳州市', '450224', '融安县', '', '', '', '', 3, 1, ''), ('450225', '4502', '00,45,4502', '融水苗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450225', '融水苗族自治县', '', '', '', '', 3, 1, ''), ('450226', '4502', '00,45,4502', '三江侗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450226', '三江侗族自治县', '', '', '', '', 3, 1, ''), ('4503', '45', '00,45', '桂林市', '45', '广西壮族自治区', '4503', '桂林市', '', '', '', '', '', '', 2, 1, ''), ('450302', '4503', '00,45,4503', '秀峰区', '45', '广西壮族自治区', '4503', '桂林市', '450302', '秀峰区', '', '', '', '', 3, 1, ''), ('450303', '4503', '00,45,4503', '叠彩区', '45', '广西壮族自治区', '4503', '桂林市', '450303', '叠彩区', '', '', '', '', 3, 1, ''), ('450304', '4503', '00,45,4503', '象山区', '45', '广西壮族自治区', '4503', '桂林市', '450304', '象山区', '', '', '', '', 3, 1, ''), ('450305', '4503', '00,45,4503', '七星区', '45', '广西壮族自治区', '4503', '桂林市', '450305', '七星区', '', '', '', '', 3, 1, ''), ('450311', '4503', '00,45,4503', '雁山区', '45', '广西壮族自治区', '4503', '桂林市', '450311', '雁山区', '', '', '', '', 3, 1, ''), ('450312', '4503', '00,45,4503', '临桂区', '45', '广西壮族自治区', '4503', '桂林市', '450312', '临桂区', '', '', '', '', 3, 1, ''), ('450321', '4503', '00,45,4503', '阳朔县', '45', '广西壮族自治区', '4503', '桂林市', '450321', '阳朔县', '', '', '', '', 3, 1, ''), ('450323', '4503', '00,45,4503', '灵川县', '45', '广西壮族自治区', '4503', '桂林市', '450323', '灵川县', '', '', '', '', 3, 1, ''), ('450324', '4503', '00,45,4503', '全州县', '45', '广西壮族自治区', '4503', '桂林市', '450324', '全州县', '', '', '', '', 3, 1, ''), ('450325', '4503', '00,45,4503', '兴安县', '45', '广西壮族自治区', '4503', '桂林市', '450325', '兴安县', '', '', '', '', 3, 1, ''), ('450326', '4503', '00,45,4503', '永福县', '45', '广西壮族自治区', '4503', '桂林市', '450326', '永福县', '', '', '', '', 3, 1, ''), ('450327', '4503', '00,45,4503', '灌阳县', '45', '广西壮族自治区', '4503', '桂林市', '450327', '灌阳县', '', '', '', '', 3, 1, ''), ('450328', '4503', '00,45,4503', '龙胜各族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450328', '龙胜各族自治县', '', '', '', '', 3, 1, ''), ('450329', '4503', '00,45,4503', '资源县', '45', '广西壮族自治区', '4503', '桂林市', '450329', '资源县', '', '', '', '', 3, 1, ''), ('450330', '4503', '00,45,4503', '平乐县', '45', '广西壮族自治区', '4503', '桂林市', '450330', '平乐县', '', '', '', '', 3, 1, ''), ('450332', '4503', '00,45,4503', '恭城瑶族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450332', '恭城瑶族自治县', '', '', '', '', 3, 1, ''), ('450381', '4503', '00,45,4503', '荔浦市', '45', '广西壮族自治区', '4503', '桂林市', '450381', '荔浦市', '', '', '', '', 3, 1, ''), ('4504', '45', '00,45', '梧州市', '45', '广西壮族自治区', '4504', '梧州市', '', '', '', '', '', '', 2, 1, ''), ('450403', '4504', '00,45,4504', '万秀区', '45', '广西壮族自治区', '4504', '梧州市', '450403', '万秀区', '', '', '', '', 3, 1, ''), ('450405', '4504', '00,45,4504', '长洲区', '45', '广西壮族自治区', '4504', '梧州市', '450405', '长洲区', '', '', '', '', 3, 1, ''), ('450406', '4504', '00,45,4504', '龙圩区', '45', '广西壮族自治区', '4504', '梧州市', '450406', '龙圩区', '', '', '', '', 3, 1, ''), ('450421', '4504', '00,45,4504', '苍梧县', '45', '广西壮族自治区', '4504', '梧州市', '450421', '苍梧县', '', '', '', '', 3, 1, ''), ('450422', '4504', '00,45,4504', '藤县', '45', '广西壮族自治区', '4504', '梧州市', '450422', '藤县', '', '', '', '', 3, 1, ''), ('450423', '4504', '00,45,4504', '蒙山县', '45', '广西壮族自治区', '4504', '梧州市', '450423', '蒙山县', '', '', '', '', 3, 1, ''), ('450481', '4504', '00,45,4504', '岑溪市', '45', '广西壮族自治区', '4504', '梧州市', '450481', '岑溪市', '', '', '', '', 3, 1, ''), ('4505', '45', '00,45', '北海市', '45', '广西壮族自治区', '4505', '北海市', '', '', '', '', '', '', 2, 1, ''), ('450502', '4505', '00,45,4505', '海城区', '45', '广西壮族自治区', '4505', '北海市', '450502', '海城区', '', '', '', '', 3, 1, ''), ('450503', '4505', '00,45,4505', '银海区', '45', '广西壮族自治区', '4505', '北海市', '450503', '银海区', '', '', '', '', 3, 1, ''), ('450512', '4505', '00,45,4505', '铁山港区', '45', '广西壮族自治区', '4505', '北海市', '450512', '铁山港区', '', '', '', '', 3, 1, ''), ('450521', '4505', '00,45,4505', '合浦县', '45', '广西壮族自治区', '4505', '北海市', '450521', '合浦县', '', '', '', '', 3, 1, ''), ('4506', '45', '00,45', '防城港市', '45', '广西壮族自治区', '4506', '防城港市', '', '', '', '', '', '', 2, 1, ''), ('450602', '4506', '00,45,4506', '港口区', '45', '广西壮族自治区', '4506', '防城港市', '450602', '港口区', '', '', '', '', 3, 1, ''), ('450603', '4506', '00,45,4506', '防城区', '45', '广西壮族自治区', '4506', '防城港市', '450603', '防城区', '', '', '', '', 3, 1, ''), ('450621', '4506', '00,45,4506', '上思县', '45', '广西壮族自治区', '4506', '防城港市', '450621', '上思县', '', '', '', '', 3, 1, ''), ('450681', '4506', '00,45,4506', '东兴市', '45', '广西壮族自治区', '4506', '防城港市', '450681', '东兴市', '', '', '', '', 3, 1, ''), ('4507', '45', '00,45', '钦州市', '45', '广西壮族自治区', '4507', '钦州市', '', '', '', '', '', '', 2, 1, ''), ('450702', '4507', '00,45,4507', '钦南区', '45', '广西壮族自治区', '4507', '钦州市', '450702', '钦南区', '', '', '', '', 3, 1, ''), ('450703', '4507', '00,45,4507', '钦北区', '45', '广西壮族自治区', '4507', '钦州市', '450703', '钦北区', '', '', '', '', 3, 1, ''), ('450721', '4507', '00,45,4507', '灵山县', '45', '广西壮族自治区', '4507', '钦州市', '450721', '灵山县', '', '', '', '', 3, 1, ''), ('450722', '4507', '00,45,4507', '浦北县', '45', '广西壮族自治区', '4507', '钦州市', '450722', '浦北县', '', '', '', '', 3, 1, ''), ('4508', '45', '00,45', '贵港市', '45', '广西壮族自治区', '4508', '贵港市', '', '', '', '', '', '', 2, 1, ''), ('450802', '4508', '00,45,4508', '港北区', '45', '广西壮族自治区', '4508', '贵港市', '450802', '港北区', '', '', '', '', 3, 1, ''), ('450803', '4508', '00,45,4508', '港南区', '45', '广西壮族自治区', '4508', '贵港市', '450803', '港南区', '', '', '', '', 3, 1, ''), ('450804', '4508', '00,45,4508', '覃塘区', '45', '广西壮族自治区', '4508', '贵港市', '450804', '覃塘区', '', '', '', '', 3, 1, ''), ('450821', '4508', '00,45,4508', '平南县', '45', '广西壮族自治区', '4508', '贵港市', '450821', '平南县', '', '', '', '', 3, 1, ''), ('450881', '4508', '00,45,4508', '桂平市', '45', '广西壮族自治区', '4508', '贵港市', '450881', '桂平市', '', '', '', '', 3, 1, ''), ('4509', '45', '00,45', '玉林市', '45', '广西壮族自治区', '4509', '玉林市', '', '', '', '', '', '', 2, 1, ''), ('450902', '4509', '00,45,4509', '玉州区', '45', '广西壮族自治区', '4509', '玉林市', '450902', '玉州区', '', '', '', '', 3, 1, ''), ('450903', '4509', '00,45,4509', '福绵区', '45', '广西壮族自治区', '4509', '玉林市', '450903', '福绵区', '', '', '', '', 3, 1, ''), ('450921', '4509', '00,45,4509', '容县', '45', '广西壮族自治区', '4509', '玉林市', '450921', '容县', '', '', '', '', 3, 1, ''), ('450922', '4509', '00,45,4509', '陆川县', '45', '广西壮族自治区', '4509', '玉林市', '450922', '陆川县', '', '', '', '', 3, 1, ''), ('450923', '4509', '00,45,4509', '博白县', '45', '广西壮族自治区', '4509', '玉林市', '450923', '博白县', '', '', '', '', 3, 1, ''), ('450924', '4509', '00,45,4509', '兴业县', '45', '广西壮族自治区', '4509', '玉林市', '450924', '兴业县', '', '', '', '', 3, 1, ''), ('450981', '4509', '00,45,4509', '北流市', '45', '广西壮族自治区', '4509', '玉林市', '450981', '北流市', '', '', '', '', 3, 1, ''), ('4510', '45', '00,45', '百色市', '45', '广西壮族自治区', '4510', '百色市', '', '', '', '', '', '', 2, 1, ''), ('451002', '4510', '00,45,4510', '右江区', '45', '广西壮族自治区', '4510', '百色市', '451002', '右江区', '', '', '', '', 3, 1, ''), ('451003', '4510', '00,45,4510', '田阳区', '45', '广西壮族自治区', '4510', '百色市', '451003', '田阳区', '', '', '', '', 3, 1, ''), ('451022', '4510', '00,45,4510', '田东县', '45', '广西壮族自治区', '4510', '百色市', '451022', '田东县', '', '', '', '', 3, 1, ''), ('451024', '4510', '00,45,4510', '德保县', '45', '广西壮族自治区', '4510', '百色市', '451024', '德保县', '', '', '', '', 3, 1, ''), ('451026', '4510', '00,45,4510', '那坡县', '45', '广西壮族自治区', '4510', '百色市', '451026', '那坡县', '', '', '', '', 3, 1, ''), ('451027', '4510', '00,45,4510', '凌云县', '45', '广西壮族自治区', '4510', '百色市', '451027', '凌云县', '', '', '', '', 3, 1, ''), ('451028', '4510', '00,45,4510', '乐业县', '45', '广西壮族自治区', '4510', '百色市', '451028', '乐业县', '', '', '', '', 3, 1, ''), ('451029', '4510', '00,45,4510', '田林县', '45', '广西壮族自治区', '4510', '百色市', '451029', '田林县', '', '', '', '', 3, 1, ''), ('451030', '4510', '00,45,4510', '西林县', '45', '广西壮族自治区', '4510', '百色市', '451030', '西林县', '', '', '', '', 3, 1, ''), ('451031', '4510', '00,45,4510', '隆林各族自治县', '45', '广西壮族自治区', '4510', '百色市', '451031', '隆林各族自治县', '', '', '', '', 3, 1, ''), ('451081', '4510', '00,45,4510', '靖西市', '45', '广西壮族自治区', '4510', '百色市', '451081', '靖西市', '', '', '', '', 3, 1, ''), ('451082', '4510', '00,45,4510', '平果市', '45', '广西壮族自治区', '4510', '百色市', '451082', '平果市', '', '', '', '', 3, 1, ''), ('4511', '45', '00,45', '贺州市', '45', '广西壮族自治区', '4511', '贺州市', '', '', '', '', '', '', 2, 1, ''), ('451102', '4511', '00,45,4511', '八步区', '45', '广西壮族自治区', '4511', '贺州市', '451102', '八步区', '', '', '', '', 3, 1, ''), ('451103', '4511', '00,45,4511', '平桂区', '45', '广西壮族自治区', '4511', '贺州市', '451103', '平桂区', '', '', '', '', 3, 1, ''), ('451121', '4511', '00,45,4511', '昭平县', '45', '广西壮族自治区', '4511', '贺州市', '451121', '昭平县', '', '', '', '', 3, 1, ''), ('451122', '4511', '00,45,4511', '钟山县', '45', '广西壮族自治区', '4511', '贺州市', '451122', '钟山县', '', '', '', '', 3, 1, ''), ('451123', '4511', '00,45,4511', '富川瑶族自治县', '45', '广西壮族自治区', '4511', '贺州市', '451123', '富川瑶族自治县', '', '', '', '', 3, 1, ''), ('4512', '45', '00,45', '河池市', '45', '广西壮族自治区', '4512', '河池市', '', '', '', '', '', '', 2, 1, ''), ('451202', '4512', '00,45,4512', '金城江区', '45', '广西壮族自治区', '4512', '河池市', '451202', '金城江区', '', '', '', '', 3, 1, ''), ('451203', '4512', '00,45,4512', '宜州区', '45', '广西壮族自治区', '4512', '河池市', '451203', '宜州区', '', '', '', '', 3, 1, ''), ('451221', '4512', '00,45,4512', '南丹县', '45', '广西壮族自治区', '4512', '河池市', '451221', '南丹县', '', '', '', '', 3, 1, ''), ('451222', '4512', '00,45,4512', '天峨县', '45', '广西壮族自治区', '4512', '河池市', '451222', '天峨县', '', '', '', '', 3, 1, ''), ('451223', '4512', '00,45,4512', '凤山县', '45', '广西壮族自治区', '4512', '河池市', '451223', '凤山县', '', '', '', '', 3, 1, ''), ('451224', '4512', '00,45,4512', '东兰县', '45', '广西壮族自治区', '4512', '河池市', '451224', '东兰县', '', '', '', '', 3, 1, ''), ('451225', '4512', '00,45,4512', '罗城仫佬族自治县', '45', '广西壮族自治区', '4512', '河池市', '451225', '罗城仫佬族自治县', '', '', '', '', 3, 1, ''), ('451226', '4512', '00,45,4512', '环江毛南族自治县', '45', '广西壮族自治区', '4512', '河池市', '451226', '环江毛南族自治县', '', '', '', '', 3, 1, ''), ('451227', '4512', '00,45,4512', '巴马瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451227', '巴马瑶族自治县', '', '', '', '', 3, 1, ''), ('451228', '4512', '00,45,4512', '都安瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451228', '都安瑶族自治县', '', '', '', '', 3, 1, ''), ('451229', '4512', '00,45,4512', '大化瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451229', '大化瑶族自治县', '', '', '', '', 3, 1, ''), ('4513', '45', '00,45', '来宾市', '45', '广西壮族自治区', '4513', '来宾市', '', '', '', '', '', '', 2, 1, ''), ('451302', '4513', '00,45,4513', '兴宾区', '45', '广西壮族自治区', '4513', '来宾市', '451302', '兴宾区', '', '', '', '', 3, 1, ''), ('451321', '4513', '00,45,4513', '忻城县', '45', '广西壮族自治区', '4513', '来宾市', '451321', '忻城县', '', '', '', '', 3, 1, ''), ('451322', '4513', '00,45,4513', '象州县', '45', '广西壮族自治区', '4513', '来宾市', '451322', '象州县', '', '', '', '', 3, 1, ''), ('451323', '4513', '00,45,4513', '武宣县', '45', '广西壮族自治区', '4513', '来宾市', '451323', '武宣县', '', '', '', '', 3, 1, ''), ('451324', '4513', '00,45,4513', '金秀瑶族自治县', '45', '广西壮族自治区', '4513', '来宾市', '451324', '金秀瑶族自治县', '', '', '', '', 3, 1, ''), ('451381', '4513', '00,45,4513', '合山市', '45', '广西壮族自治区', '4513', '来宾市', '451381', '合山市', '', '', '', '', 3, 1, ''), ('4514', '45', '00,45', '崇左市', '45', '广西壮族自治区', '4514', '崇左市', '', '', '', '', '', '', 2, 1, ''), ('451402', '4514', '00,45,4514', '江州区', '45', '广西壮族自治区', '4514', '崇左市', '451402', '江州区', '', '', '', '', 3, 1, ''), ('451421', '4514', '00,45,4514', '扶绥县', '45', '广西壮族自治区', '4514', '崇左市', '451421', '扶绥县', '', '', '', '', 3, 1, ''), ('451422', '4514', '00,45,4514', '宁明县', '45', '广西壮族自治区', '4514', '崇左市', '451422', '宁明县', '', '', '', '', 3, 1, ''), ('451423', '4514', '00,45,4514', '龙州县', '45', '广西壮族自治区', '4514', '崇左市', '451423', '龙州县', '', '', '', '', 3, 1, ''), ('451424', '4514', '00,45,4514', '大新县', '45', '广西壮族自治区', '4514', '崇左市', '451424', '大新县', '', '', '', '', 3, 1, ''), ('451425', '4514', '00,45,4514', '天等县', '45', '广西壮族自治区', '4514', '崇左市', '451425', '天等县', '', '', '', '', 3, 1, ''), ('451481', '4514', '00,45,4514', '凭祥市', '45', '广西壮族自治区', '4514', '崇左市', '451481', '凭祥市', '', '', '', '', 3, 1, ''), ('46', '00', '00', '海南省', '46', '海南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4601', '46', '00,46', '海口市', '46', '海南省', '4601', '海口市', '', '', '', '', '', '', 2, 1, ''), ('460105', '4601', '00,46,4601', '秀英区', '46', '海南省', '4601', '海口市', '460105', '秀英区', '', '', '', '', 3, 1, ''), ('460106', '4601', '00,46,4601', '龙华区', '46', '海南省', '4601', '海口市', '460106', '龙华区', '', '', '', '', 3, 1, ''), ('460107', '4601', '00,46,4601', '琼山区', '46', '海南省', '4601', '海口市', '460107', '琼山区', '', '', '', '', 3, 1, ''), ('460108', '4601', '00,46,4601', '美兰区', '46', '海南省', '4601', '海口市', '460108', '美兰区', '', '', '', '', 3, 1, ''), ('4602', '46', '00,46', '三亚市', '46', '海南省', '4602', '三亚市', '', '', '', '', '', '', 2, 1, ''), ('460202', '4602', '00,46,4602', '海棠区', '46', '海南省', '4602', '三亚市', '460202', '海棠区', '', '', '', '', 3, 1, ''), ('460203', '4602', '00,46,4602', '吉阳区', '46', '海南省', '4602', '三亚市', '460203', '吉阳区', '', '', '', '', 3, 1, ''), ('460204', '4602', '00,46,4602', '天涯区', '46', '海南省', '4602', '三亚市', '460204', '天涯区', '', '', '', '', 3, 1, ''), ('460205', '4602', '00,46,4602', '崖州区', '46', '海南省', '4602', '三亚市', '460205', '崖州区', '', '', '', '', 3, 1, ''), ('4603', '46', '00,46', '三沙市', '46', '海南省', '4603', '三沙市', '', '', '', '', '', '', 2, 1, ''), ('460300', '4603', '00,46,4603', '三沙市', '46', '海南省', '4603', '三沙市', '460300', '三沙市', '', '', '', '', 3, 1, ''), ('4604', '46', '00,46', '儋州市', '46', '海南省', '4604', '儋州市', '', '', '', '', '', '', 2, 1, ''), ('460400', '4604', '00,46,4604', '儋州市', '46', '海南省', '4604', '儋州市', '460400', '儋州市', '', '', '', '', 3, 1, ''), ('4690', '46', '00,46', '省直辖县级行政区', '46', '海南省', '4690', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('469001', '4690', '00,46,4690', '五指山市', '46', '海南省', '4690', '省直辖县级行政区', '469001', '五指山市', '', '', '', '', 3, 1, ''), ('469002', '4690', '00,46,4690', '琼海市', '46', '海南省', '4690', '省直辖县级行政区', '469002', '琼海市', '', '', '', '', 3, 1, ''), ('469005', '4690', '00,46,4690', '文昌市', '46', '海南省', '4690', '省直辖县级行政区', '469005', '文昌市', '', '', '', '', 3, 1, ''), ('469006', '4690', '00,46,4690', '万宁市', '46', '海南省', '4690', '省直辖县级行政区', '469006', '万宁市', '', '', '', '', 3, 1, ''), ('469007', '4690', '00,46,4690', '东方市', '46', '海南省', '4690', '省直辖县级行政区', '469007', '东方市', '', '', '', '', 3, 1, ''), ('469021', '4690', '00,46,4690', '定安县', '46', '海南省', '4690', '省直辖县级行政区', '469021', '定安县', '', '', '', '', 3, 1, ''), ('469022', '4690', '00,46,4690', '屯昌县', '46', '海南省', '4690', '省直辖县级行政区', '469022', '屯昌县', '', '', '', '', 3, 1, ''), ('469023', '4690', '00,46,4690', '澄迈县', '46', '海南省', '4690', '省直辖县级行政区', '469023', '澄迈县', '', '', '', '', 3, 1, ''), ('469024', '4690', '00,46,4690', '临高县', '46', '海南省', '4690', '省直辖县级行政区', '469024', '临高县', '', '', '', '', 3, 1, ''), ('469025', '4690', '00,46,4690', '白沙黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469025', '白沙黎族自治县', '', '', '', '', 3, 1, ''), ('469026', '4690', '00,46,4690', '昌江黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469026', '昌江黎族自治县', '', '', '', '', 3, 1, ''), ('469027', '4690', '00,46,4690', '乐东黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469027', '乐东黎族自治县', '', '', '', '', 3, 1, ''), ('469028', '4690', '00,46,4690', '陵水黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469028', '陵水黎族自治县', '', '', '', '', 3, 1, ''), ('469029', '4690', '00,46,4690', '保亭黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469029', '保亭黎族苗族自治县', '', '', '', '', 3, 1, ''), ('469030', '4690', '00,46,4690', '琼中黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469030', '琼中黎族苗族自治县', '', '', '', '', 3, 1, ''), ('50', '00', '00', '重庆市', '50', '重庆市', '', '', '', '', '', '', '', '', 1, 1, ''), ('5001', '50', '00,50', '重庆市', '50', '重庆市', '5001', '重庆市', '', '', '', '', '', '', 2, 1, ''), ('500101', '5001', '00,50,5001', '万州区', '50', '重庆市', '5001', '重庆市', '500101', '万州区', '', '', '', '', 3, 1, ''), ('500102', '5001', '00,50,5001', '涪陵区', '50', '重庆市', '5001', '重庆市', '500102', '涪陵区', '', '', '', '', 3, 1, ''), ('500103', '5001', '00,50,5001', '渝中区', '50', '重庆市', '5001', '重庆市', '500103', '渝中区', '', '', '', '', 3, 1, ''), ('500104', '5001', '00,50,5001', '大渡口区', '50', '重庆市', '5001', '重庆市', '500104', '大渡口区', '', '', '', '', 3, 1, ''), ('500105', '5001', '00,50,5001', '江北区', '50', '重庆市', '5001', '重庆市', '500105', '江北区', '', '', '', '', 3, 1, ''), ('500106', '5001', '00,50,5001', '沙坪坝区', '50', '重庆市', '5001', '重庆市', '500106', '沙坪坝区', '', '', '', '', 3, 1, ''), ('500107', '5001', '00,50,5001', '九龙坡区', '50', '重庆市', '5001', '重庆市', '500107', '九龙坡区', '', '', '', '', 3, 1, ''), ('500108', '5001', '00,50,5001', '南岸区', '50', '重庆市', '5001', '重庆市', '500108', '南岸区', '', '', '', '', 3, 1, ''), ('500109', '5001', '00,50,5001', '北碚区', '50', '重庆市', '5001', '重庆市', '500109', '北碚区', '', '', '', '', 3, 1, ''), ('500110', '5001', '00,50,5001', '綦江区', '50', '重庆市', '5001', '重庆市', '500110', '綦江区', '', '', '', '', 3, 1, ''), ('500111', '5001', '00,50,5001', '大足区', '50', '重庆市', '5001', '重庆市', '500111', '大足区', '', '', '', '', 3, 1, ''), ('500112', '5001', '00,50,5001', '渝北区', '50', '重庆市', '5001', '重庆市', '500112', '渝北区', '', '', '', '', 3, 1, ''), ('500113', '5001', '00,50,5001', '巴南区', '50', '重庆市', '5001', '重庆市', '500113', '巴南区', '', '', '', '', 3, 1, ''), ('500114', '5001', '00,50,5001', '黔江区', '50', '重庆市', '5001', '重庆市', '500114', '黔江区', '', '', '', '', 3, 1, ''), ('500115', '5001', '00,50,5001', '长寿区', '50', '重庆市', '5001', '重庆市', '500115', '长寿区', '', '', '', '', 3, 1, ''), ('500116', '5001', '00,50,5001', '江津区', '50', '重庆市', '5001', '重庆市', '500116', '江津区', '', '', '', '', 3, 1, ''), ('500117', '5001', '00,50,5001', '合川区', '50', '重庆市', '5001', '重庆市', '500117', '合川区', '', '', '', '', 3, 1, ''), ('500118', '5001', '00,50,5001', '永川区', '50', '重庆市', '5001', '重庆市', '500118', '永川区', '', '', '', '', 3, 1, ''), ('500119', '5001', '00,50,5001', '南川区', '50', '重庆市', '5001', '重庆市', '500119', '南川区', '', '', '', '', 3, 1, ''), ('500120', '5001', '00,50,5001', '璧山区', '50', '重庆市', '5001', '重庆市', '500120', '璧山区', '', '', '', '', 3, 1, ''), ('500151', '5001', '00,50,5001', '铜梁区', '50', '重庆市', '5001', '重庆市', '500151', '铜梁区', '', '', '', '', 3, 1, ''), ('500152', '5001', '00,50,5001', '潼南区', '50', '重庆市', '5001', '重庆市', '500152', '潼南区', '', '', '', '', 3, 1, ''), ('500153', '5001', '00,50,5001', '荣昌区', '50', '重庆市', '5001', '重庆市', '500153', '荣昌区', '', '', '', '', 3, 1, ''), ('500154', '5001', '00,50,5001', '开州区', '50', '重庆市', '5001', '重庆市', '500154', '开州区', '', '', '', '', 3, 1, ''), ('500155', '5001', '00,50,5001', '梁平区', '50', '重庆市', '5001', '重庆市', '500155', '梁平区', '', '', '', '', 3, 1, ''), ('500156', '5001', '00,50,5001', '武隆区', '50', '重庆市', '5001', '重庆市', '500156', '武隆区', '', '', '', '', 3, 1, ''), ('5002', '50', '00,50', '重庆市', '50', '重庆市', '5002', '重庆市', '', '', '', '', '', '', 2, 1, ''), ('500229', '5002', '00,50,5002', '城口县', '50', '重庆市', '5002', '重庆市', '500229', '城口县', '', '', '', '', 3, 1, ''), ('500230', '5002', '00,50,5002', '丰都县', '50', '重庆市', '5002', '重庆市', '500230', '丰都县', '', '', '', '', 3, 1, ''), ('500231', '5002', '00,50,5002', '垫江县', '50', '重庆市', '5002', '重庆市', '500231', '垫江县', '', '', '', '', 3, 1, ''), ('500233', '5002', '00,50,5002', '忠县', '50', '重庆市', '5002', '重庆市', '500233', '忠县', '', '', '', '', 3, 1, ''), ('500235', '5002', '00,50,5002', '云阳县', '50', '重庆市', '5002', '重庆市', '500235', '云阳县', '', '', '', '', 3, 1, ''), ('500236', '5002', '00,50,5002', '奉节县', '50', '重庆市', '5002', '重庆市', '500236', '奉节县', '', '', '', '', 3, 1, ''), ('500237', '5002', '00,50,5002', '巫山县', '50', '重庆市', '5002', '重庆市', '500237', '巫山县', '', '', '', '', 3, 1, ''), ('500238', '5002', '00,50,5002', '巫溪县', '50', '重庆市', '5002', '重庆市', '500238', '巫溪县', '', '', '', '', 3, 1, ''), ('500240', '5002', '00,50,5002', '石柱土家族自治县', '50', '重庆市', '5002', '重庆市', '500240', '石柱土家族自治县', '', '', '', '', 3, 1, ''), ('500241', '5002', '00,50,5002', '秀山土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500241', '秀山土家族苗族自治县', '', '', '', '', 3, 1, ''), ('500242', '5002', '00,50,5002', '酉阳土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500242', '酉阳土家族苗族自治县', '', '', '', '', 3, 1, ''), ('500243', '5002', '00,50,5002', '彭水苗族土家族自治县', '50', '重庆市', '5002', '重庆市', '500243', '彭水苗族土家族自治县', '', '', '', '', 3, 1, ''), ('51', '00', '00', '四川省', '51', '四川省', '', '', '', '', '', '', '', '', 1, 1, ''), ('5101', '51', '00,51', '成都市', '51', '四川省', '5101', '成都市', '', '', '', '', '', '', 2, 1, ''), ('510104', '5101', '00,51,5101', '锦江区', '51', '四川省', '5101', '成都市', '510104', '锦江区', '', '', '', '', 3, 1, ''), ('510105', '5101', '00,51,5101', '青羊区', '51', '四川省', '5101', '成都市', '510105', '青羊区', '', '', '', '', 3, 1, ''), ('510106', '5101', '00,51,5101', '金牛区', '51', '四川省', '5101', '成都市', '510106', '金牛区', '', '', '', '', 3, 1, ''), ('510107', '5101', '00,51,5101', '武侯区', '51', '四川省', '5101', '成都市', '510107', '武侯区', '', '', '', '', 3, 1, ''), ('510108', '5101', '00,51,5101', '成华区', '51', '四川省', '5101', '成都市', '510108', '成华区', '', '', '', '', 3, 1, ''), ('510112', '5101', '00,51,5101', '龙泉驿区', '51', '四川省', '5101', '成都市', '510112', '龙泉驿区', '', '', '', '', 3, 1, ''), ('510113', '5101', '00,51,5101', '青白江区', '51', '四川省', '5101', '成都市', '510113', '青白江区', '', '', '', '', 3, 1, ''), ('510114', '5101', '00,51,5101', '新都区', '51', '四川省', '5101', '成都市', '510114', '新都区', '', '', '', '', 3, 1, ''), ('510115', '5101', '00,51,5101', '温江区', '51', '四川省', '5101', '成都市', '510115', '温江区', '', '', '', '', 3, 1, ''), ('510116', '5101', '00,51,5101', '双流区', '51', '四川省', '5101', '成都市', '510116', '双流区', '', '', '', '', 3, 1, ''), ('510117', '5101', '00,51,5101', '郫都区', '51', '四川省', '5101', '成都市', '510117', '郫都区', '', '', '', '', 3, 1, ''), ('510121', '5101', '00,51,5101', '金堂县', '51', '四川省', '5101', '成都市', '510121', '金堂县', '', '', '', '', 3, 1, ''), ('510129', '5101', '00,51,5101', '大邑县', '51', '四川省', '5101', '成都市', '510129', '大邑县', '', '', '', '', 3, 1, ''), ('510131', '5101', '00,51,5101', '蒲江县', '51', '四川省', '5101', '成都市', '510131', '蒲江县', '', '', '', '', 3, 1, ''), ('510132', '5101', '00,51,5101', '新津县', '51', '四川省', '5101', '成都市', '510132', '新津县', '', '', '', '', 3, 1, ''), ('510181', '5101', '00,51,5101', '都江堰市', '51', '四川省', '5101', '成都市', '510181', '都江堰市', '', '', '', '', 3, 1, ''), ('510182', '5101', '00,51,5101', '彭州市', '51', '四川省', '5101', '成都市', '510182', '彭州市', '', '', '', '', 3, 1, ''), ('510183', '5101', '00,51,5101', '邛崃市', '51', '四川省', '5101', '成都市', '510183', '邛崃市', '', '', '', '', 3, 1, ''), ('510184', '5101', '00,51,5101', '崇州市', '51', '四川省', '5101', '成都市', '510184', '崇州市', '', '', '', '', 3, 1, ''), ('510185', '5101', '00,51,5101', '简阳市', '51', '四川省', '5101', '成都市', '510185', '简阳市', '', '', '', '', 3, 1, ''), ('5103', '51', '00,51', '自贡市', '51', '四川省', '5103', '自贡市', '', '', '', '', '', '', 2, 1, ''), ('510302', '5103', '00,51,5103', '自流井区', '51', '四川省', '5103', '自贡市', '510302', '自流井区', '', '', '', '', 3, 1, ''), ('510303', '5103', '00,51,5103', '贡井区', '51', '四川省', '5103', '自贡市', '510303', '贡井区', '', '', '', '', 3, 1, ''), ('510304', '5103', '00,51,5103', '大安区', '51', '四川省', '5103', '自贡市', '510304', '大安区', '', '', '', '', 3, 1, ''), ('510311', '5103', '00,51,5103', '沿滩区', '51', '四川省', '5103', '自贡市', '510311', '沿滩区', '', '', '', '', 3, 1, ''), ('510321', '5103', '00,51,5103', '荣县', '51', '四川省', '5103', '自贡市', '510321', '荣县', '', '', '', '', 3, 1, ''), ('510322', '5103', '00,51,5103', '富顺县', '51', '四川省', '5103', '自贡市', '510322', '富顺县', '', '', '', '', 3, 1, ''), ('5104', '51', '00,51', '攀枝花市', '51', '四川省', '5104', '攀枝花市', '', '', '', '', '', '', 2, 1, ''), ('510402', '5104', '00,51,5104', '东区', '51', '四川省', '5104', '攀枝花市', '510402', '东区', '', '', '', '', 3, 1, ''), ('510403', '5104', '00,51,5104', '西区', '51', '四川省', '5104', '攀枝花市', '510403', '西区', '', '', '', '', 3, 1, ''), ('510411', '5104', '00,51,5104', '仁和区', '51', '四川省', '5104', '攀枝花市', '510411', '仁和区', '', '', '', '', 3, 1, ''), ('510421', '5104', '00,51,5104', '米易县', '51', '四川省', '5104', '攀枝花市', '510421', '米易县', '', '', '', '', 3, 1, ''), ('510422', '5104', '00,51,5104', '盐边县', '51', '四川省', '5104', '攀枝花市', '510422', '盐边县', '', '', '', '', 3, 1, ''), ('5105', '51', '00,51', '泸州市', '51', '四川省', '5105', '泸州市', '', '', '', '', '', '', 2, 1, ''), ('510502', '5105', '00,51,5105', '江阳区', '51', '四川省', '5105', '泸州市', '510502', '江阳区', '', '', '', '', 3, 1, ''), ('510503', '5105', '00,51,5105', '纳溪区', '51', '四川省', '5105', '泸州市', '510503', '纳溪区', '', '', '', '', 3, 1, ''), ('510504', '5105', '00,51,5105', '龙马潭区', '51', '四川省', '5105', '泸州市', '510504', '龙马潭区', '', '', '', '', 3, 1, ''), ('510521', '5105', '00,51,5105', '泸县', '51', '四川省', '5105', '泸州市', '510521', '泸县', '', '', '', '', 3, 1, ''), ('510522', '5105', '00,51,5105', '合江县', '51', '四川省', '5105', '泸州市', '510522', '合江县', '', '', '', '', 3, 1, ''), ('510524', '5105', '00,51,5105', '叙永县', '51', '四川省', '5105', '泸州市', '510524', '叙永县', '', '', '', '', 3, 1, ''), ('510525', '5105', '00,51,5105', '古蔺县', '51', '四川省', '5105', '泸州市', '510525', '古蔺县', '', '', '', '', 3, 1, ''), ('5106', '51', '00,51', '德阳市', '51', '四川省', '5106', '德阳市', '', '', '', '', '', '', 2, 1, ''), ('510603', '5106', '00,51,5106', '旌阳区', '51', '四川省', '5106', '德阳市', '510603', '旌阳区', '', '', '', '', 3, 1, ''), ('510604', '5106', '00,51,5106', '罗江区', '51', '四川省', '5106', '德阳市', '510604', '罗江区', '', '', '', '', 3, 1, ''), ('510623', '5106', '00,51,5106', '中江县', '51', '四川省', '5106', '德阳市', '510623', '中江县', '', '', '', '', 3, 1, ''), ('510681', '5106', '00,51,5106', '广汉市', '51', '四川省', '5106', '德阳市', '510681', '广汉市', '', '', '', '', 3, 1, ''), ('510682', '5106', '00,51,5106', '什邡市', '51', '四川省', '5106', '德阳市', '510682', '什邡市', '', '', '', '', 3, 1, ''), ('510683', '5106', '00,51,5106', '绵竹市', '51', '四川省', '5106', '德阳市', '510683', '绵竹市', '', '', '', '', 3, 1, ''), ('5107', '51', '00,51', '绵阳市', '51', '四川省', '5107', '绵阳市', '', '', '', '', '', '', 2, 1, ''), ('510703', '5107', '00,51,5107', '涪城区', '51', '四川省', '5107', '绵阳市', '510703', '涪城区', '', '', '', '', 3, 1, ''), ('510704', '5107', '00,51,5107', '游仙区', '51', '四川省', '5107', '绵阳市', '510704', '游仙区', '', '', '', '', 3, 1, ''), ('510705', '5107', '00,51,5107', '安州区', '51', '四川省', '5107', '绵阳市', '510705', '安州区', '', '', '', '', 3, 1, ''), ('510722', '5107', '00,51,5107', '三台县', '51', '四川省', '5107', '绵阳市', '510722', '三台县', '', '', '', '', 3, 1, ''), ('510723', '5107', '00,51,5107', '盐亭县', '51', '四川省', '5107', '绵阳市', '510723', '盐亭县', '', '', '', '', 3, 1, ''), ('510725', '5107', '00,51,5107', '梓潼县', '51', '四川省', '5107', '绵阳市', '510725', '梓潼县', '', '', '', '', 3, 1, ''), ('510726', '5107', '00,51,5107', '北川羌族自治县', '51', '四川省', '5107', '绵阳市', '510726', '北川羌族自治县', '', '', '', '', 3, 1, ''), ('510727', '5107', '00,51,5107', '平武县', '51', '四川省', '5107', '绵阳市', '510727', '平武县', '', '', '', '', 3, 1, ''), ('510781', '5107', '00,51,5107', '江油市', '51', '四川省', '5107', '绵阳市', '510781', '江油市', '', '', '', '', 3, 1, ''), ('5108', '51', '00,51', '广元市', '51', '四川省', '5108', '广元市', '', '', '', '', '', '', 2, 1, ''), ('510802', '5108', '00,51,5108', '利州区', '51', '四川省', '5108', '广元市', '510802', '利州区', '', '', '', '', 3, 1, ''), ('510811', '5108', '00,51,5108', '昭化区', '51', '四川省', '5108', '广元市', '510811', '昭化区', '', '', '', '', 3, 1, ''), ('510812', '5108', '00,51,5108', '朝天区', '51', '四川省', '5108', '广元市', '510812', '朝天区', '', '', '', '', 3, 1, ''), ('510821', '5108', '00,51,5108', '旺苍县', '51', '四川省', '5108', '广元市', '510821', '旺苍县', '', '', '', '', 3, 1, ''), ('510822', '5108', '00,51,5108', '青川县', '51', '四川省', '5108', '广元市', '510822', '青川县', '', '', '', '', 3, 1, ''), ('510823', '5108', '00,51,5108', '剑阁县', '51', '四川省', '5108', '广元市', '510823', '剑阁县', '', '', '', '', 3, 1, ''), ('510824', '5108', '00,51,5108', '苍溪县', '51', '四川省', '5108', '广元市', '510824', '苍溪县', '', '', '', '', 3, 1, ''), ('5109', '51', '00,51', '遂宁市', '51', '四川省', '5109', '遂宁市', '', '', '', '', '', '', 2, 1, ''), ('510903', '5109', '00,51,5109', '船山区', '51', '四川省', '5109', '遂宁市', '510903', '船山区', '', '', '', '', 3, 1, ''), ('510904', '5109', '00,51,5109', '安居区', '51', '四川省', '5109', '遂宁市', '510904', '安居区', '', '', '', '', 3, 1, ''), ('510921', '5109', '00,51,5109', '蓬溪县', '51', '四川省', '5109', '遂宁市', '510921', '蓬溪县', '', '', '', '', 3, 1, ''), ('510923', '5109', '00,51,5109', '大英县', '51', '四川省', '5109', '遂宁市', '510923', '大英县', '', '', '', '', 3, 1, ''), ('510981', '5109', '00,51,5109', '射洪市', '51', '四川省', '5109', '遂宁市', '510981', '射洪市', '', '', '', '', 3, 1, ''), ('5110', '51', '00,51', '内江市', '51', '四川省', '5110', '内江市', '', '', '', '', '', '', 2, 1, ''), ('511002', '5110', '00,51,5110', '市中区', '51', '四川省', '5110', '内江市', '511002', '市中区', '', '', '', '', 3, 1, ''), ('511011', '5110', '00,51,5110', '东兴区', '51', '四川省', '5110', '内江市', '511011', '东兴区', '', '', '', '', 3, 1, ''), ('511024', '5110', '00,51,5110', '威远县', '51', '四川省', '5110', '内江市', '511024', '威远县', '', '', '', '', 3, 1, ''), ('511025', '5110', '00,51,5110', '资中县', '51', '四川省', '5110', '内江市', '511025', '资中县', '', '', '', '', 3, 1, ''), ('511083', '5110', '00,51,5110', '隆昌市', '51', '四川省', '5110', '内江市', '511083', '隆昌市', '', '', '', '', 3, 1, ''), ('5111', '51', '00,51', '乐山市', '51', '四川省', '5111', '乐山市', '', '', '', '', '', '', 2, 1, ''), ('511102', '5111', '00,51,5111', '市中区', '51', '四川省', '5111', '乐山市', '511102', '市中区', '', '', '', '', 3, 1, ''), ('511111', '5111', '00,51,5111', '沙湾区', '51', '四川省', '5111', '乐山市', '511111', '沙湾区', '', '', '', '', 3, 1, ''), ('511112', '5111', '00,51,5111', '五通桥区', '51', '四川省', '5111', '乐山市', '511112', '五通桥区', '', '', '', '', 3, 1, ''), ('511113', '5111', '00,51,5111', '金口河区', '51', '四川省', '5111', '乐山市', '511113', '金口河区', '', '', '', '', 3, 1, ''), ('511123', '5111', '00,51,5111', '犍为县', '51', '四川省', '5111', '乐山市', '511123', '犍为县', '', '', '', '', 3, 1, ''), ('511124', '5111', '00,51,5111', '井研县', '51', '四川省', '5111', '乐山市', '511124', '井研县', '', '', '', '', 3, 1, ''), ('511126', '5111', '00,51,5111', '夹江县', '51', '四川省', '5111', '乐山市', '511126', '夹江县', '', '', '', '', 3, 1, ''), ('511129', '5111', '00,51,5111', '沐川县', '51', '四川省', '5111', '乐山市', '511129', '沐川县', '', '', '', '', 3, 1, ''), ('511132', '5111', '00,51,5111', '峨边彝族自治县', '51', '四川省', '5111', '乐山市', '511132', '峨边彝族自治县', '', '', '', '', 3, 1, ''), ('511133', '5111', '00,51,5111', '马边彝族自治县', '51', '四川省', '5111', '乐山市', '511133', '马边彝族自治县', '', '', '', '', 3, 1, ''), ('511181', '5111', '00,51,5111', '峨眉山市', '51', '四川省', '5111', '乐山市', '511181', '峨眉山市', '', '', '', '', 3, 1, ''), ('5113', '51', '00,51', '南充市', '51', '四川省', '5113', '南充市', '', '', '', '', '', '', 2, 1, ''), ('511302', '5113', '00,51,5113', '顺庆区', '51', '四川省', '5113', '南充市', '511302', '顺庆区', '', '', '', '', 3, 1, ''), ('511303', '5113', '00,51,5113', '高坪区', '51', '四川省', '5113', '南充市', '511303', '高坪区', '', '', '', '', 3, 1, ''), ('511304', '5113', '00,51,5113', '嘉陵区', '51', '四川省', '5113', '南充市', '511304', '嘉陵区', '', '', '', '', 3, 1, ''), ('511321', '5113', '00,51,5113', '南部县', '51', '四川省', '5113', '南充市', '511321', '南部县', '', '', '', '', 3, 1, ''), ('511322', '5113', '00,51,5113', '营山县', '51', '四川省', '5113', '南充市', '511322', '营山县', '', '', '', '', 3, 1, ''), ('511323', '5113', '00,51,5113', '蓬安县', '51', '四川省', '5113', '南充市', '511323', '蓬安县', '', '', '', '', 3, 1, ''), ('511324', '5113', '00,51,5113', '仪陇县', '51', '四川省', '5113', '南充市', '511324', '仪陇县', '', '', '', '', 3, 1, ''), ('511325', '5113', '00,51,5113', '西充县', '51', '四川省', '5113', '南充市', '511325', '西充县', '', '', '', '', 3, 1, ''), ('511381', '5113', '00,51,5113', '阆中市', '51', '四川省', '5113', '南充市', '511381', '阆中市', '', '', '', '', 3, 1, ''), ('5114', '51', '00,51', '眉山市', '51', '四川省', '5114', '眉山市', '', '', '', '', '', '', 2, 1, ''), ('511402', '5114', '00,51,5114', '东坡区', '51', '四川省', '5114', '眉山市', '511402', '东坡区', '', '', '', '', 3, 1, ''), ('511403', '5114', '00,51,5114', '彭山区', '51', '四川省', '5114', '眉山市', '511403', '彭山区', '', '', '', '', 3, 1, ''), ('511421', '5114', '00,51,5114', '仁寿县', '51', '四川省', '5114', '眉山市', '511421', '仁寿县', '', '', '', '', 3, 1, ''), ('511423', '5114', '00,51,5114', '洪雅县', '51', '四川省', '5114', '眉山市', '511423', '洪雅县', '', '', '', '', 3, 1, ''), ('511424', '5114', '00,51,5114', '丹棱县', '51', '四川省', '5114', '眉山市', '511424', '丹棱县', '', '', '', '', 3, 1, ''), ('511425', '5114', '00,51,5114', '青神县', '51', '四川省', '5114', '眉山市', '511425', '青神县', '', '', '', '', 3, 1, ''), ('5115', '51', '00,51', '宜宾市', '51', '四川省', '5115', '宜宾市', '', '', '', '', '', '', 2, 1, ''), ('511502', '5115', '00,51,5115', '翠屏区', '51', '四川省', '5115', '宜宾市', '511502', '翠屏区', '', '', '', '', 3, 1, ''), ('511503', '5115', '00,51,5115', '南溪区', '51', '四川省', '5115', '宜宾市', '511503', '南溪区', '', '', '', '', 3, 1, ''), ('511504', '5115', '00,51,5115', '叙州区', '51', '四川省', '5115', '宜宾市', '511504', '叙州区', '', '', '', '', 3, 1, ''), ('511523', '5115', '00,51,5115', '江安县', '51', '四川省', '5115', '宜宾市', '511523', '江安县', '', '', '', '', 3, 1, ''), ('511524', '5115', '00,51,5115', '长宁县', '51', '四川省', '5115', '宜宾市', '511524', '长宁县', '', '', '', '', 3, 1, ''), ('511525', '5115', '00,51,5115', '高县', '51', '四川省', '5115', '宜宾市', '511525', '高县', '', '', '', '', 3, 1, ''), ('511526', '5115', '00,51,5115', '珙县', '51', '四川省', '5115', '宜宾市', '511526', '珙县', '', '', '', '', 3, 1, ''), ('511527', '5115', '00,51,5115', '筠连县', '51', '四川省', '5115', '宜宾市', '511527', '筠连县', '', '', '', '', 3, 1, ''), ('511528', '5115', '00,51,5115', '兴文县', '51', '四川省', '5115', '宜宾市', '511528', '兴文县', '', '', '', '', 3, 1, ''), ('511529', '5115', '00,51,5115', '屏山县', '51', '四川省', '5115', '宜宾市', '511529', '屏山县', '', '', '', '', 3, 1, ''), ('5116', '51', '00,51', '广安市', '51', '四川省', '5116', '广安市', '', '', '', '', '', '', 2, 1, ''), ('511602', '5116', '00,51,5116', '广安区', '51', '四川省', '5116', '广安市', '511602', '广安区', '', '', '', '', 3, 1, ''), ('511603', '5116', '00,51,5116', '前锋区', '51', '四川省', '5116', '广安市', '511603', '前锋区', '', '', '', '', 3, 1, ''), ('511621', '5116', '00,51,5116', '岳池县', '51', '四川省', '5116', '广安市', '511621', '岳池县', '', '', '', '', 3, 1, ''), ('511622', '5116', '00,51,5116', '武胜县', '51', '四川省', '5116', '广安市', '511622', '武胜县', '', '', '', '', 3, 1, ''), ('511623', '5116', '00,51,5116', '邻水县', '51', '四川省', '5116', '广安市', '511623', '邻水县', '', '', '', '', 3, 1, ''), ('511681', '5116', '00,51,5116', '华蓥市', '51', '四川省', '5116', '广安市', '511681', '华蓥市', '', '', '', '', 3, 1, ''), ('5117', '51', '00,51', '达州市', '51', '四川省', '5117', '达州市', '', '', '', '', '', '', 2, 1, ''), ('511702', '5117', '00,51,5117', '通川区', '51', '四川省', '5117', '达州市', '511702', '通川区', '', '', '', '', 3, 1, ''), ('511703', '5117', '00,51,5117', '达川区', '51', '四川省', '5117', '达州市', '511703', '达川区', '', '', '', '', 3, 1, ''), ('511722', '5117', '00,51,5117', '宣汉县', '51', '四川省', '5117', '达州市', '511722', '宣汉县', '', '', '', '', 3, 1, ''), ('511723', '5117', '00,51,5117', '开江县', '51', '四川省', '5117', '达州市', '511723', '开江县', '', '', '', '', 3, 1, ''), ('511724', '5117', '00,51,5117', '大竹县', '51', '四川省', '5117', '达州市', '511724', '大竹县', '', '', '', '', 3, 1, ''), ('511725', '5117', '00,51,5117', '渠县', '51', '四川省', '5117', '达州市', '511725', '渠县', '', '', '', '', 3, 1, ''), ('511781', '5117', '00,51,5117', '万源市', '51', '四川省', '5117', '达州市', '511781', '万源市', '', '', '', '', 3, 1, ''), ('5118', '51', '00,51', '雅安市', '51', '四川省', '5118', '雅安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO `blade_region` VALUES ('511802', '5118', '00,51,5118', '雨城区', '51', '四川省', '5118', '雅安市', '511802', '雨城区', '', '', '', '', 3, 1, ''), ('511803', '5118', '00,51,5118', '名山区', '51', '四川省', '5118', '雅安市', '511803', '名山区', '', '', '', '', 3, 1, ''), ('511822', '5118', '00,51,5118', '荥经县', '51', '四川省', '5118', '雅安市', '511822', '荥经县', '', '', '', '', 3, 1, ''), ('511823', '5118', '00,51,5118', '汉源县', '51', '四川省', '5118', '雅安市', '511823', '汉源县', '', '', '', '', 3, 1, ''), ('511824', '5118', '00,51,5118', '石棉县', '51', '四川省', '5118', '雅安市', '511824', '石棉县', '', '', '', '', 3, 1, ''), ('511825', '5118', '00,51,5118', '天全县', '51', '四川省', '5118', '雅安市', '511825', '天全县', '', '', '', '', 3, 1, ''), ('511826', '5118', '00,51,5118', '芦山县', '51', '四川省', '5118', '雅安市', '511826', '芦山县', '', '', '', '', 3, 1, ''), ('511827', '5118', '00,51,5118', '宝兴县', '51', '四川省', '5118', '雅安市', '511827', '宝兴县', '', '', '', '', 3, 1, ''), ('5119', '51', '00,51', '巴中市', '51', '四川省', '5119', '巴中市', '', '', '', '', '', '', 2, 1, ''), ('511902', '5119', '00,51,5119', '巴州区', '51', '四川省', '5119', '巴中市', '511902', '巴州区', '', '', '', '', 3, 1, ''), ('511903', '5119', '00,51,5119', '恩阳区', '51', '四川省', '5119', '巴中市', '511903', '恩阳区', '', '', '', '', 3, 1, ''), ('511921', '5119', '00,51,5119', '通江县', '51', '四川省', '5119', '巴中市', '511921', '通江县', '', '', '', '', 3, 1, ''), ('511922', '5119', '00,51,5119', '南江县', '51', '四川省', '5119', '巴中市', '511922', '南江县', '', '', '', '', 3, 1, ''), ('511923', '5119', '00,51,5119', '平昌县', '51', '四川省', '5119', '巴中市', '511923', '平昌县', '', '', '', '', 3, 1, ''), ('5120', '51', '00,51', '资阳市', '51', '四川省', '5120', '资阳市', '', '', '', '', '', '', 2, 1, ''), ('512002', '5120', '00,51,5120', '雁江区', '51', '四川省', '5120', '资阳市', '512002', '雁江区', '', '', '', '', 3, 1, ''), ('512021', '5120', '00,51,5120', '安岳县', '51', '四川省', '5120', '资阳市', '512021', '安岳县', '', '', '', '', 3, 1, ''), ('512022', '5120', '00,51,5120', '乐至县', '51', '四川省', '5120', '资阳市', '512022', '乐至县', '', '', '', '', 3, 1, ''), ('5132', '51', '00,51', '阿坝藏族羌族自治州', '51', '四川省', '5132', '阿坝藏族羌族自治州', '', '', '', '', '', '', 2, 1, ''), ('513201', '5132', '00,51,5132', '马尔康市', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513201', '马尔康市', '', '', '', '', 3, 1, ''), ('513221', '5132', '00,51,5132', '汶川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513221', '汶川县', '', '', '', '', 3, 1, ''), ('513222', '5132', '00,51,5132', '理县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513222', '理县', '', '', '', '', 3, 1, ''), ('513223', '5132', '00,51,5132', '茂县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513223', '茂县', '', '', '', '', 3, 1, ''), ('513224', '5132', '00,51,5132', '松潘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513224', '松潘县', '', '', '', '', 3, 1, ''), ('513225', '5132', '00,51,5132', '九寨沟县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513225', '九寨沟县', '', '', '', '', 3, 1, ''), ('513226', '5132', '00,51,5132', '金川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513226', '金川县', '', '', '', '', 3, 1, ''), ('513227', '5132', '00,51,5132', '小金县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513227', '小金县', '', '', '', '', 3, 1, ''), ('513228', '5132', '00,51,5132', '黑水县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513228', '黑水县', '', '', '', '', 3, 1, ''), ('513230', '5132', '00,51,5132', '壤塘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513230', '壤塘县', '', '', '', '', 3, 1, ''), ('513231', '5132', '00,51,5132', '阿坝县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513231', '阿坝县', '', '', '', '', 3, 1, ''), ('513232', '5132', '00,51,5132', '若尔盖县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513232', '若尔盖县', '', '', '', '', 3, 1, ''), ('513233', '5132', '00,51,5132', '红原县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513233', '红原县', '', '', '', '', 3, 1, ''), ('5133', '51', '00,51', '甘孜藏族自治州', '51', '四川省', '5133', '甘孜藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('513301', '5133', '00,51,5133', '康定市', '51', '四川省', '5133', '甘孜藏族自治州', '513301', '康定市', '', '', '', '', 3, 1, ''), ('513322', '5133', '00,51,5133', '泸定县', '51', '四川省', '5133', '甘孜藏族自治州', '513322', '泸定县', '', '', '', '', 3, 1, ''), ('513323', '5133', '00,51,5133', '丹巴县', '51', '四川省', '5133', '甘孜藏族自治州', '513323', '丹巴县', '', '', '', '', 3, 1, ''), ('513324', '5133', '00,51,5133', '九龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513324', '九龙县', '', '', '', '', 3, 1, ''), ('513325', '5133', '00,51,5133', '雅江县', '51', '四川省', '5133', '甘孜藏族自治州', '513325', '雅江县', '', '', '', '', 3, 1, ''), ('513326', '5133', '00,51,5133', '道孚县', '51', '四川省', '5133', '甘孜藏族自治州', '513326', '道孚县', '', '', '', '', 3, 1, ''), ('513327', '5133', '00,51,5133', '炉霍县', '51', '四川省', '5133', '甘孜藏族自治州', '513327', '炉霍县', '', '', '', '', 3, 1, ''), ('513328', '5133', '00,51,5133', '甘孜县', '51', '四川省', '5133', '甘孜藏族自治州', '513328', '甘孜县', '', '', '', '', 3, 1, ''), ('513329', '5133', '00,51,5133', '新龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513329', '新龙县', '', '', '', '', 3, 1, ''), ('513330', '5133', '00,51,5133', '德格县', '51', '四川省', '5133', '甘孜藏族自治州', '513330', '德格县', '', '', '', '', 3, 1, ''), ('513331', '5133', '00,51,5133', '白玉县', '51', '四川省', '5133', '甘孜藏族自治州', '513331', '白玉县', '', '', '', '', 3, 1, ''), ('513332', '5133', '00,51,5133', '石渠县', '51', '四川省', '5133', '甘孜藏族自治州', '513332', '石渠县', '', '', '', '', 3, 1, ''), ('513333', '5133', '00,51,5133', '色达县', '51', '四川省', '5133', '甘孜藏族自治州', '513333', '色达县', '', '', '', '', 3, 1, ''), ('513334', '5133', '00,51,5133', '理塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513334', '理塘县', '', '', '', '', 3, 1, ''), ('513335', '5133', '00,51,5133', '巴塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513335', '巴塘县', '', '', '', '', 3, 1, ''), ('513336', '5133', '00,51,5133', '乡城县', '51', '四川省', '5133', '甘孜藏族自治州', '513336', '乡城县', '', '', '', '', 3, 1, ''), ('513337', '5133', '00,51,5133', '稻城县', '51', '四川省', '5133', '甘孜藏族自治州', '513337', '稻城县', '', '', '', '', 3, 1, ''), ('513338', '5133', '00,51,5133', '得荣县', '51', '四川省', '5133', '甘孜藏族自治州', '513338', '得荣县', '', '', '', '', 3, 1, ''), ('5134', '51', '00,51', '凉山彝族自治州', '51', '四川省', '5134', '凉山彝族自治州', '', '', '', '', '', '', 2, 1, ''), ('513401', '5134', '00,51,5134', '西昌市', '51', '四川省', '5134', '凉山彝族自治州', '513401', '西昌市', '', '', '', '', 3, 1, ''), ('513422', '5134', '00,51,5134', '木里藏族自治县', '51', '四川省', '5134', '凉山彝族自治州', '513422', '木里藏族自治县', '', '', '', '', 3, 1, ''), ('513423', '5134', '00,51,5134', '盐源县', '51', '四川省', '5134', '凉山彝族自治州', '513423', '盐源县', '', '', '', '', 3, 1, ''), ('513424', '5134', '00,51,5134', '德昌县', '51', '四川省', '5134', '凉山彝族自治州', '513424', '德昌县', '', '', '', '', 3, 1, ''), ('513425', '5134', '00,51,5134', '会理县', '51', '四川省', '5134', '凉山彝族自治州', '513425', '会理县', '', '', '', '', 3, 1, ''), ('513426', '5134', '00,51,5134', '会东县', '51', '四川省', '5134', '凉山彝族自治州', '513426', '会东县', '', '', '', '', 3, 1, ''), ('513427', '5134', '00,51,5134', '宁南县', '51', '四川省', '5134', '凉山彝族自治州', '513427', '宁南县', '', '', '', '', 3, 1, ''), ('513428', '5134', '00,51,5134', '普格县', '51', '四川省', '5134', '凉山彝族自治州', '513428', '普格县', '', '', '', '', 3, 1, ''), ('513429', '5134', '00,51,5134', '布拖县', '51', '四川省', '5134', '凉山彝族自治州', '513429', '布拖县', '', '', '', '', 3, 1, ''), ('513430', '5134', '00,51,5134', '金阳县', '51', '四川省', '5134', '凉山彝族自治州', '513430', '金阳县', '', '', '', '', 3, 1, ''), ('513431', '5134', '00,51,5134', '昭觉县', '51', '四川省', '5134', '凉山彝族自治州', '513431', '昭觉县', '', '', '', '', 3, 1, ''), ('513432', '5134', '00,51,5134', '喜德县', '51', '四川省', '5134', '凉山彝族自治州', '513432', '喜德县', '', '', '', '', 3, 1, ''), ('513433', '5134', '00,51,5134', '冕宁县', '51', '四川省', '5134', '凉山彝族自治州', '513433', '冕宁县', '', '', '', '', 3, 1, ''), ('513434', '5134', '00,51,5134', '越西县', '51', '四川省', '5134', '凉山彝族自治州', '513434', '越西县', '', '', '', '', 3, 1, ''), ('513435', '5134', '00,51,5134', '甘洛县', '51', '四川省', '5134', '凉山彝族自治州', '513435', '甘洛县', '', '', '', '', 3, 1, ''), ('513436', '5134', '00,51,5134', '美姑县', '51', '四川省', '5134', '凉山彝族自治州', '513436', '美姑县', '', '', '', '', 3, 1, ''), ('513437', '5134', '00,51,5134', '雷波县', '51', '四川省', '5134', '凉山彝族自治州', '513437', '雷波县', '', '', '', '', 3, 1, ''), ('52', '00', '00', '贵州省', '52', '贵州省', '', '', '', '', '', '', '', '', 1, 1, ''), ('5201', '52', '00,52', '贵阳市', '52', '贵州省', '5201', '贵阳市', '', '', '', '', '', '', 2, 1, ''), ('520102', '5201', '00,52,5201', '南明区', '52', '贵州省', '5201', '贵阳市', '520102', '南明区', '', '', '', '', 3, 1, ''), ('520103', '5201', '00,52,5201', '云岩区', '52', '贵州省', '5201', '贵阳市', '520103', '云岩区', '', '', '', '', 3, 1, ''), ('520111', '5201', '00,52,5201', '花溪区', '52', '贵州省', '5201', '贵阳市', '520111', '花溪区', '', '', '', '', 3, 1, ''), ('520112', '5201', '00,52,5201', '乌当区', '52', '贵州省', '5201', '贵阳市', '520112', '乌当区', '', '', '', '', 3, 1, ''), ('520113', '5201', '00,52,5201', '白云区', '52', '贵州省', '5201', '贵阳市', '520113', '白云区', '', '', '', '', 3, 1, ''), ('520115', '5201', '00,52,5201', '观山湖区', '52', '贵州省', '5201', '贵阳市', '520115', '观山湖区', '', '', '', '', 3, 1, ''), ('520121', '5201', '00,52,5201', '开阳县', '52', '贵州省', '5201', '贵阳市', '520121', '开阳县', '', '', '', '', 3, 1, ''), ('520122', '5201', '00,52,5201', '息烽县', '52', '贵州省', '5201', '贵阳市', '520122', '息烽县', '', '', '', '', 3, 1, ''), ('520123', '5201', '00,52,5201', '修文县', '52', '贵州省', '5201', '贵阳市', '520123', '修文县', '', '', '', '', 3, 1, ''), ('520181', '5201', '00,52,5201', '清镇市', '52', '贵州省', '5201', '贵阳市', '520181', '清镇市', '', '', '', '', 3, 1, ''), ('5202', '52', '00,52', '六盘水市', '52', '贵州省', '5202', '六盘水市', '', '', '', '', '', '', 2, 1, ''), ('520201', '5202', '00,52,5202', '钟山区', '52', '贵州省', '5202', '六盘水市', '520201', '钟山区', '', '', '', '', 3, 1, ''), ('520203', '5202', '00,52,5202', '六枝特区', '52', '贵州省', '5202', '六盘水市', '520203', '六枝特区', '', '', '', '', 3, 1, ''), ('520221', '5202', '00,52,5202', '水城县', '52', '贵州省', '5202', '六盘水市', '520221', '水城县', '', '', '', '', 3, 1, ''), ('520281', '5202', '00,52,5202', '盘州市', '52', '贵州省', '5202', '六盘水市', '520281', '盘州市', '', '', '', '', 3, 1, ''), ('5203', '52', '00,52', '遵义市', '52', '贵州省', '5203', '遵义市', '', '', '', '', '', '', 2, 1, ''), ('520302', '5203', '00,52,5203', '红花岗区', '52', '贵州省', '5203', '遵义市', '520302', '红花岗区', '', '', '', '', 3, 1, ''), ('520303', '5203', '00,52,5203', '汇川区', '52', '贵州省', '5203', '遵义市', '520303', '汇川区', '', '', '', '', 3, 1, ''), ('520304', '5203', '00,52,5203', '播州区', '52', '贵州省', '5203', '遵义市', '520304', '播州区', '', '', '', '', 3, 1, ''), ('520322', '5203', '00,52,5203', '桐梓县', '52', '贵州省', '5203', '遵义市', '520322', '桐梓县', '', '', '', '', 3, 1, ''), ('520323', '5203', '00,52,5203', '绥阳县', '52', '贵州省', '5203', '遵义市', '520323', '绥阳县', '', '', '', '', 3, 1, ''), ('520324', '5203', '00,52,5203', '正安县', '52', '贵州省', '5203', '遵义市', '520324', '正安县', '', '', '', '', 3, 1, ''), ('520325', '5203', '00,52,5203', '道真仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520325', '道真仡佬族苗族自治县', '', '', '', '', 3, 1, ''), ('520326', '5203', '00,52,5203', '务川仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520326', '务川仡佬族苗族自治县', '', '', '', '', 3, 1, ''), ('520327', '5203', '00,52,5203', '凤冈县', '52', '贵州省', '5203', '遵义市', '520327', '凤冈县', '', '', '', '', 3, 1, ''), ('520328', '5203', '00,52,5203', '湄潭县', '52', '贵州省', '5203', '遵义市', '520328', '湄潭县', '', '', '', '', 3, 1, ''), ('520329', '5203', '00,52,5203', '余庆县', '52', '贵州省', '5203', '遵义市', '520329', '余庆县', '', '', '', '', 3, 1, ''), ('520330', '5203', '00,52,5203', '习水县', '52', '贵州省', '5203', '遵义市', '520330', '习水县', '', '', '', '', 3, 1, ''), ('520381', '5203', '00,52,5203', '赤水市', '52', '贵州省', '5203', '遵义市', '520381', '赤水市', '', '', '', '', 3, 1, ''), ('520382', '5203', '00,52,5203', '仁怀市', '52', '贵州省', '5203', '遵义市', '520382', '仁怀市', '', '', '', '', 3, 1, ''), ('5204', '52', '00,52', '安顺市', '52', '贵州省', '5204', '安顺市', '', '', '', '', '', '', 2, 1, ''), ('520402', '5204', '00,52,5204', '西秀区', '52', '贵州省', '5204', '安顺市', '520402', '西秀区', '', '', '', '', 3, 1, ''), ('520403', '5204', '00,52,5204', '平坝区', '52', '贵州省', '5204', '安顺市', '520403', '平坝区', '', '', '', '', 3, 1, ''), ('520422', '5204', '00,52,5204', '普定县', '52', '贵州省', '5204', '安顺市', '520422', '普定县', '', '', '', '', 3, 1, ''), ('520423', '5204', '00,52,5204', '镇宁布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520423', '镇宁布依族苗族自治县', '', '', '', '', 3, 1, ''), ('520424', '5204', '00,52,5204', '关岭布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520424', '关岭布依族苗族自治县', '', '', '', '', 3, 1, ''), ('520425', '5204', '00,52,5204', '紫云苗族布依族自治县', '52', '贵州省', '5204', '安顺市', '520425', '紫云苗族布依族自治县', '', '', '', '', 3, 1, ''), ('5205', '52', '00,52', '毕节市', '52', '贵州省', '5205', '毕节市', '', '', '', '', '', '', 2, 1, ''), ('520502', '5205', '00,52,5205', '七星关区', '52', '贵州省', '5205', '毕节市', '520502', '七星关区', '', '', '', '', 3, 1, ''), ('520521', '5205', '00,52,5205', '大方县', '52', '贵州省', '5205', '毕节市', '520521', '大方县', '', '', '', '', 3, 1, ''), ('520522', '5205', '00,52,5205', '黔西县', '52', '贵州省', '5205', '毕节市', '520522', '黔西县', '', '', '', '', 3, 1, ''), ('520523', '5205', '00,52,5205', '金沙县', '52', '贵州省', '5205', '毕节市', '520523', '金沙县', '', '', '', '', 3, 1, ''), ('520524', '5205', '00,52,5205', '织金县', '52', '贵州省', '5205', '毕节市', '520524', '织金县', '', '', '', '', 3, 1, ''), ('520525', '5205', '00,52,5205', '纳雍县', '52', '贵州省', '5205', '毕节市', '520525', '纳雍县', '', '', '', '', 3, 1, ''), ('520526', '5205', '00,52,5205', '威宁彝族回族苗族自治县', '52', '贵州省', '5205', '毕节市', '520526', '威宁彝族回族苗族自治县', '', '', '', '', 3, 1, ''), ('520527', '5205', '00,52,5205', '赫章县', '52', '贵州省', '5205', '毕节市', '520527', '赫章县', '', '', '', '', 3, 1, ''), ('5206', '52', '00,52', '铜仁市', '52', '贵州省', '5206', '铜仁市', '', '', '', '', '', '', 2, 1, ''), ('520602', '5206', '00,52,5206', '碧江区', '52', '贵州省', '5206', '铜仁市', '520602', '碧江区', '', '', '', '', 3, 1, ''), ('520603', '5206', '00,52,5206', '万山区', '52', '贵州省', '5206', '铜仁市', '520603', '万山区', '', '', '', '', 3, 1, ''), ('520621', '5206', '00,52,5206', '江口县', '52', '贵州省', '5206', '铜仁市', '520621', '江口县', '', '', '', '', 3, 1, ''), ('520622', '5206', '00,52,5206', '玉屏侗族自治县', '52', '贵州省', '5206', '铜仁市', '520622', '玉屏侗族自治县', '', '', '', '', 3, 1, ''), ('520623', '5206', '00,52,5206', '石阡县', '52', '贵州省', '5206', '铜仁市', '520623', '石阡县', '', '', '', '', 3, 1, ''), ('520624', '5206', '00,52,5206', '思南县', '52', '贵州省', '5206', '铜仁市', '520624', '思南县', '', '', '', '', 3, 1, ''), ('520625', '5206', '00,52,5206', '印江土家族苗族自治县', '52', '贵州省', '5206', '铜仁市', '520625', '印江土家族苗族自治县', '', '', '', '', 3, 1, ''), ('520626', '5206', '00,52,5206', '德江县', '52', '贵州省', '5206', '铜仁市', '520626', '德江县', '', '', '', '', 3, 1, ''), ('520627', '5206', '00,52,5206', '沿河土家族自治县', '52', '贵州省', '5206', '铜仁市', '520627', '沿河土家族自治县', '', '', '', '', 3, 1, ''), ('520628', '5206', '00,52,5206', '松桃苗族自治县', '52', '贵州省', '5206', '铜仁市', '520628', '松桃苗族自治县', '', '', '', '', 3, 1, ''), ('5223', '52', '00,52', '黔西南布依族苗族自治州', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('522301', '5223', '00,52,5223', '兴义市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522301', '兴义市', '', '', '', '', 3, 1, ''), ('522302', '5223', '00,52,5223', '兴仁市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522302', '兴仁市', '', '', '', '', 3, 1, ''), ('522323', '5223', '00,52,5223', '普安县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522323', '普安县', '', '', '', '', 3, 1, ''), ('522324', '5223', '00,52,5223', '晴隆县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522324', '晴隆县', '', '', '', '', 3, 1, ''), ('522325', '5223', '00,52,5223', '贞丰县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522325', '贞丰县', '', '', '', '', 3, 1, ''), ('522326', '5223', '00,52,5223', '望谟县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522326', '望谟县', '', '', '', '', 3, 1, ''), ('522327', '5223', '00,52,5223', '册亨县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522327', '册亨县', '', '', '', '', 3, 1, ''), ('522328', '5223', '00,52,5223', '安龙县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522328', '安龙县', '', '', '', '', 3, 1, ''), ('5226', '52', '00,52', '黔东南苗族侗族自治州', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '', '', '', '', '', '', 2, 1, ''), ('522601', '5226', '00,52,5226', '凯里市', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522601', '凯里市', '', '', '', '', 3, 1, ''), ('522622', '5226', '00,52,5226', '黄平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522622', '黄平县', '', '', '', '', 3, 1, ''), ('522623', '5226', '00,52,5226', '施秉县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522623', '施秉县', '', '', '', '', 3, 1, ''), ('522624', '5226', '00,52,5226', '三穗县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522624', '三穗县', '', '', '', '', 3, 1, ''), ('522625', '5226', '00,52,5226', '镇远县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522625', '镇远县', '', '', '', '', 3, 1, ''), ('522626', '5226', '00,52,5226', '岑巩县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522626', '岑巩县', '', '', '', '', 3, 1, ''), ('522627', '5226', '00,52,5226', '天柱县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522627', '天柱县', '', '', '', '', 3, 1, ''), ('522628', '5226', '00,52,5226', '锦屏县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522628', '锦屏县', '', '', '', '', 3, 1, ''), ('522629', '5226', '00,52,5226', '剑河县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522629', '剑河县', '', '', '', '', 3, 1, ''), ('522630', '5226', '00,52,5226', '台江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522630', '台江县', '', '', '', '', 3, 1, ''), ('522631', '5226', '00,52,5226', '黎平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522631', '黎平县', '', '', '', '', 3, 1, ''), ('522632', '5226', '00,52,5226', '榕江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522632', '榕江县', '', '', '', '', 3, 1, ''), ('522633', '5226', '00,52,5226', '从江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522633', '从江县', '', '', '', '', 3, 1, ''), ('522634', '5226', '00,52,5226', '雷山县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522634', '雷山县', '', '', '', '', 3, 1, ''), ('522635', '5226', '00,52,5226', '麻江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522635', '麻江县', '', '', '', '', 3, 1, ''), ('522636', '5226', '00,52,5226', '丹寨县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522636', '丹寨县', '', '', '', '', 3, 1, ''), ('5227', '52', '00,52', '黔南布依族苗族自治州', '52', '贵州省', '5227', '黔南布依族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('522701', '5227', '00,52,5227', '都匀市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522701', '都匀市', '', '', '', '', 3, 1, ''), ('522702', '5227', '00,52,5227', '福泉市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522702', '福泉市', '', '', '', '', 3, 1, ''), ('522722', '5227', '00,52,5227', '荔波县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522722', '荔波县', '', '', '', '', 3, 1, ''), ('522723', '5227', '00,52,5227', '贵定县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522723', '贵定县', '', '', '', '', 3, 1, ''), ('522725', '5227', '00,52,5227', '瓮安县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522725', '瓮安县', '', '', '', '', 3, 1, ''), ('522726', '5227', '00,52,5227', '独山县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522726', '独山县', '', '', '', '', 3, 1, ''), ('522727', '5227', '00,52,5227', '平塘县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522727', '平塘县', '', '', '', '', 3, 1, ''), ('522728', '5227', '00,52,5227', '罗甸县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522728', '罗甸县', '', '', '', '', 3, 1, ''), ('522729', '5227', '00,52,5227', '长顺县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522729', '长顺县', '', '', '', '', 3, 1, ''), ('522730', '5227', '00,52,5227', '龙里县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522730', '龙里县', '', '', '', '', 3, 1, ''), ('522731', '5227', '00,52,5227', '惠水县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522731', '惠水县', '', '', '', '', 3, 1, ''), ('522732', '5227', '00,52,5227', '三都水族自治县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522732', '三都水族自治县', '', '', '', '', 3, 1, ''), ('53', '00', '00', '云南省', '53', '云南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('5301', '53', '00,53', '昆明市', '53', '云南省', '5301', '昆明市', '', '', '', '', '', '', 2, 1, ''), ('530102', '5301', '00,53,5301', '五华区', '53', '云南省', '5301', '昆明市', '530102', '五华区', '', '', '', '', 3, 1, ''), ('530103', '5301', '00,53,5301', '盘龙区', '53', '云南省', '5301', '昆明市', '530103', '盘龙区', '', '', '', '', 3, 1, ''), ('530111', '5301', '00,53,5301', '官渡区', '53', '云南省', '5301', '昆明市', '530111', '官渡区', '', '', '', '', 3, 1, ''), ('530112', '5301', '00,53,5301', '西山区', '53', '云南省', '5301', '昆明市', '530112', '西山区', '', '', '', '', 3, 1, ''), ('530113', '5301', '00,53,5301', '东川区', '53', '云南省', '5301', '昆明市', '530113', '东川区', '', '', '', '', 3, 1, ''), ('530114', '5301', '00,53,5301', '呈贡区', '53', '云南省', '5301', '昆明市', '530114', '呈贡区', '', '', '', '', 3, 1, ''), ('530115', '5301', '00,53,5301', '晋宁区', '53', '云南省', '5301', '昆明市', '530115', '晋宁区', '', '', '', '', 3, 1, ''), ('530124', '5301', '00,53,5301', '富民县', '53', '云南省', '5301', '昆明市', '530124', '富民县', '', '', '', '', 3, 1, ''), ('530125', '5301', '00,53,5301', '宜良县', '53', '云南省', '5301', '昆明市', '530125', '宜良县', '', '', '', '', 3, 1, ''), ('530126', '5301', '00,53,5301', '石林彝族自治县', '53', '云南省', '5301', '昆明市', '530126', '石林彝族自治县', '', '', '', '', 3, 1, ''), ('530127', '5301', '00,53,5301', '嵩明县', '53', '云南省', '5301', '昆明市', '530127', '嵩明县', '', '', '', '', 3, 1, ''), ('530128', '5301', '00,53,5301', '禄劝彝族苗族自治县', '53', '云南省', '5301', '昆明市', '530128', '禄劝彝族苗族自治县', '', '', '', '', 3, 1, ''), ('530129', '5301', '00,53,5301', '寻甸回族彝族自治县', '53', '云南省', '5301', '昆明市', '530129', '寻甸回族彝族自治县', '', '', '', '', 3, 1, ''), ('530181', '5301', '00,53,5301', '安宁市', '53', '云南省', '5301', '昆明市', '530181', '安宁市', '', '', '', '', 3, 1, ''), ('5303', '53', '00,53', '曲靖市', '53', '云南省', '5303', '曲靖市', '', '', '', '', '', '', 2, 1, ''), ('530302', '5303', '00,53,5303', '麒麟区', '53', '云南省', '5303', '曲靖市', '530302', '麒麟区', '', '', '', '', 3, 1, ''), ('530303', '5303', '00,53,5303', '沾益区', '53', '云南省', '5303', '曲靖市', '530303', '沾益区', '', '', '', '', 3, 1, ''), ('530304', '5303', '00,53,5303', '马龙区', '53', '云南省', '5303', '曲靖市', '530304', '马龙区', '', '', '', '', 3, 1, ''), ('530322', '5303', '00,53,5303', '陆良县', '53', '云南省', '5303', '曲靖市', '530322', '陆良县', '', '', '', '', 3, 1, ''), ('530323', '5303', '00,53,5303', '师宗县', '53', '云南省', '5303', '曲靖市', '530323', '师宗县', '', '', '', '', 3, 1, ''), ('530324', '5303', '00,53,5303', '罗平县', '53', '云南省', '5303', '曲靖市', '530324', '罗平县', '', '', '', '', 3, 1, ''), ('530325', '5303', '00,53,5303', '富源县', '53', '云南省', '5303', '曲靖市', '530325', '富源县', '', '', '', '', 3, 1, ''), ('530326', '5303', '00,53,5303', '会泽县', '53', '云南省', '5303', '曲靖市', '530326', '会泽县', '', '', '', '', 3, 1, ''), ('530381', '5303', '00,53,5303', '宣威市', '53', '云南省', '5303', '曲靖市', '530381', '宣威市', '', '', '', '', 3, 1, ''), ('5304', '53', '00,53', '玉溪市', '53', '云南省', '5304', '玉溪市', '', '', '', '', '', '', 2, 1, ''), ('530402', '5304', '00,53,5304', '红塔区', '53', '云南省', '5304', '玉溪市', '530402', '红塔区', '', '', '', '', 3, 1, ''), ('530403', '5304', '00,53,5304', '江川区', '53', '云南省', '5304', '玉溪市', '530403', '江川区', '', '', '', '', 3, 1, ''), ('530423', '5304', '00,53,5304', '通海县', '53', '云南省', '5304', '玉溪市', '530423', '通海县', '', '', '', '', 3, 1, ''), ('530424', '5304', '00,53,5304', '华宁县', '53', '云南省', '5304', '玉溪市', '530424', '华宁县', '', '', '', '', 3, 1, ''), ('530425', '5304', '00,53,5304', '易门县', '53', '云南省', '5304', '玉溪市', '530425', '易门县', '', '', '', '', 3, 1, ''), ('530426', '5304', '00,53,5304', '峨山彝族自治县', '53', '云南省', '5304', '玉溪市', '530426', '峨山彝族自治县', '', '', '', '', 3, 1, ''), ('530427', '5304', '00,53,5304', '新平彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530427', '新平彝族傣族自治县', '', '', '', '', 3, 1, ''), ('530428', '5304', '00,53,5304', '元江哈尼族彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530428', '元江哈尼族彝族傣族自治县', '', '', '', '', 3, 1, ''), ('530481', '5304', '00,53,5304', '澄江市', '53', '云南省', '5304', '玉溪市', '530481', '澄江市', '', '', '', '', 3, 1, ''), ('5305', '53', '00,53', '保山市', '53', '云南省', '5305', '保山市', '', '', '', '', '', '', 2, 1, ''), ('530502', '5305', '00,53,5305', '隆阳区', '53', '云南省', '5305', '保山市', '530502', '隆阳区', '', '', '', '', 3, 1, ''), ('530521', '5305', '00,53,5305', '施甸县', '53', '云南省', '5305', '保山市', '530521', '施甸县', '', '', '', '', 3, 1, ''), ('530523', '5305', '00,53,5305', '龙陵县', '53', '云南省', '5305', '保山市', '530523', '龙陵县', '', '', '', '', 3, 1, ''), ('530524', '5305', '00,53,5305', '昌宁县', '53', '云南省', '5305', '保山市', '530524', '昌宁县', '', '', '', '', 3, 1, ''), ('530581', '5305', '00,53,5305', '腾冲市', '53', '云南省', '5305', '保山市', '530581', '腾冲市', '', '', '', '', 3, 1, ''), ('5306', '53', '00,53', '昭通市', '53', '云南省', '5306', '昭通市', '', '', '', '', '', '', 2, 1, ''), ('530602', '5306', '00,53,5306', '昭阳区', '53', '云南省', '5306', '昭通市', '530602', '昭阳区', '', '', '', '', 3, 1, ''), ('530621', '5306', '00,53,5306', '鲁甸县', '53', '云南省', '5306', '昭通市', '530621', '鲁甸县', '', '', '', '', 3, 1, ''), ('530622', '5306', '00,53,5306', '巧家县', '53', '云南省', '5306', '昭通市', '530622', '巧家县', '', '', '', '', 3, 1, ''), ('530623', '5306', '00,53,5306', '盐津县', '53', '云南省', '5306', '昭通市', '530623', '盐津县', '', '', '', '', 3, 1, ''), ('530624', '5306', '00,53,5306', '大关县', '53', '云南省', '5306', '昭通市', '530624', '大关县', '', '', '', '', 3, 1, ''), ('530625', '5306', '00,53,5306', '永善县', '53', '云南省', '5306', '昭通市', '530625', '永善县', '', '', '', '', 3, 1, ''), ('530626', '5306', '00,53,5306', '绥江县', '53', '云南省', '5306', '昭通市', '530626', '绥江县', '', '', '', '', 3, 1, ''), ('530627', '5306', '00,53,5306', '镇雄县', '53', '云南省', '5306', '昭通市', '530627', '镇雄县', '', '', '', '', 3, 1, ''), ('530628', '5306', '00,53,5306', '彝良县', '53', '云南省', '5306', '昭通市', '530628', '彝良县', '', '', '', '', 3, 1, ''), ('530629', '5306', '00,53,5306', '威信县', '53', '云南省', '5306', '昭通市', '530629', '威信县', '', '', '', '', 3, 1, ''), ('530681', '5306', '00,53,5306', '水富市', '53', '云南省', '5306', '昭通市', '530681', '水富市', '', '', '', '', 3, 1, ''), ('5307', '53', '00,53', '丽江市', '53', '云南省', '5307', '丽江市', '', '', '', '', '', '', 2, 1, ''), ('530702', '5307', '00,53,5307', '古城区', '53', '云南省', '5307', '丽江市', '530702', '古城区', '', '', '', '', 3, 1, ''), ('530721', '5307', '00,53,5307', '玉龙纳西族自治县', '53', '云南省', '5307', '丽江市', '530721', '玉龙纳西族自治县', '', '', '', '', 3, 1, ''), ('530722', '5307', '00,53,5307', '永胜县', '53', '云南省', '5307', '丽江市', '530722', '永胜县', '', '', '', '', 3, 1, ''), ('530723', '5307', '00,53,5307', '华坪县', '53', '云南省', '5307', '丽江市', '530723', '华坪县', '', '', '', '', 3, 1, ''), ('530724', '5307', '00,53,5307', '宁蒗彝族自治县', '53', '云南省', '5307', '丽江市', '530724', '宁蒗彝族自治县', '', '', '', '', 3, 1, ''), ('5308', '53', '00,53', '普洱市', '53', '云南省', '5308', '普洱市', '', '', '', '', '', '', 2, 1, ''), ('530802', '5308', '00,53,5308', '思茅区', '53', '云南省', '5308', '普洱市', '530802', '思茅区', '', '', '', '', 3, 1, ''), ('530821', '5308', '00,53,5308', '宁洱哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530821', '宁洱哈尼族彝族自治县', '', '', '', '', 3, 1, ''), ('530822', '5308', '00,53,5308', '墨江哈尼族自治县', '53', '云南省', '5308', '普洱市', '530822', '墨江哈尼族自治县', '', '', '', '', 3, 1, ''), ('530823', '5308', '00,53,5308', '景东彝族自治县', '53', '云南省', '5308', '普洱市', '530823', '景东彝族自治县', '', '', '', '', 3, 1, ''), ('530824', '5308', '00,53,5308', '景谷傣族彝族自治县', '53', '云南省', '5308', '普洱市', '530824', '景谷傣族彝族自治县', '', '', '', '', 3, 1, ''), ('530825', '5308', '00,53,5308', '镇沅彝族哈尼族拉祜族自治县', '53', '云南省', '5308', '普洱市', '530825', '镇沅彝族哈尼族拉祜族自治县', '', '', '', '', 3, 1, ''), ('530826', '5308', '00,53,5308', '江城哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530826', '江城哈尼族彝族自治县', '', '', '', '', 3, 1, ''), ('530827', '5308', '00,53,5308', '孟连傣族拉祜族佤族自治县', '53', '云南省', '5308', '普洱市', '530827', '孟连傣族拉祜族佤族自治县', '', '', '', '', 3, 1, ''), ('530828', '5308', '00,53,5308', '澜沧拉祜族自治县', '53', '云南省', '5308', '普洱市', '530828', '澜沧拉祜族自治县', '', '', '', '', 3, 1, ''), ('530829', '5308', '00,53,5308', '西盟佤族自治县', '53', '云南省', '5308', '普洱市', '530829', '西盟佤族自治县', '', '', '', '', 3, 1, ''), ('5309', '53', '00,53', '临沧市', '53', '云南省', '5309', '临沧市', '', '', '', '', '', '', 2, 1, ''), ('530902', '5309', '00,53,5309', '临翔区', '53', '云南省', '5309', '临沧市', '530902', '临翔区', '', '', '', '', 3, 1, ''), ('530921', '5309', '00,53,5309', '凤庆县', '53', '云南省', '5309', '临沧市', '530921', '凤庆县', '', '', '', '', 3, 1, ''), ('530922', '5309', '00,53,5309', '云县', '53', '云南省', '5309', '临沧市', '530922', '云县', '', '', '', '', 3, 1, ''), ('530923', '5309', '00,53,5309', '永德县', '53', '云南省', '5309', '临沧市', '530923', '永德县', '', '', '', '', 3, 1, ''), ('530924', '5309', '00,53,5309', '镇康县', '53', '云南省', '5309', '临沧市', '530924', '镇康县', '', '', '', '', 3, 1, ''), ('530925', '5309', '00,53,5309', '双江拉祜族佤族布朗族傣族自治县', '53', '云南省', '5309', '临沧市', '530925', '双江拉祜族佤族布朗族傣族自治县', '', '', '', '', 3, 1, ''), ('530926', '5309', '00,53,5309', '耿马傣族佤族自治县', '53', '云南省', '5309', '临沧市', '530926', '耿马傣族佤族自治县', '', '', '', '', 3, 1, ''), ('530927', '5309', '00,53,5309', '沧源佤族自治县', '53', '云南省', '5309', '临沧市', '530927', '沧源佤族自治县', '', '', '', '', 3, 1, ''), ('5323', '53', '00,53', '楚雄彝族自治州', '53', '云南省', '5323', '楚雄彝族自治州', '', '', '', '', '', '', 2, 1, ''), ('532301', '5323', '00,53,5323', '楚雄市', '53', '云南省', '5323', '楚雄彝族自治州', '532301', '楚雄市', '', '', '', '', 3, 1, ''), ('532322', '5323', '00,53,5323', '双柏县', '53', '云南省', '5323', '楚雄彝族自治州', '532322', '双柏县', '', '', '', '', 3, 1, ''), ('532323', '5323', '00,53,5323', '牟定县', '53', '云南省', '5323', '楚雄彝族自治州', '532323', '牟定县', '', '', '', '', 3, 1, ''), ('532324', '5323', '00,53,5323', '南华县', '53', '云南省', '5323', '楚雄彝族自治州', '532324', '南华县', '', '', '', '', 3, 1, ''), ('532325', '5323', '00,53,5323', '姚安县', '53', '云南省', '5323', '楚雄彝族自治州', '532325', '姚安县', '', '', '', '', 3, 1, ''), ('532326', '5323', '00,53,5323', '大姚县', '53', '云南省', '5323', '楚雄彝族自治州', '532326', '大姚县', '', '', '', '', 3, 1, ''), ('532327', '5323', '00,53,5323', '永仁县', '53', '云南省', '5323', '楚雄彝族自治州', '532327', '永仁县', '', '', '', '', 3, 1, ''), ('532328', '5323', '00,53,5323', '元谋县', '53', '云南省', '5323', '楚雄彝族自治州', '532328', '元谋县', '', '', '', '', 3, 1, ''), ('532329', '5323', '00,53,5323', '武定县', '53', '云南省', '5323', '楚雄彝族自治州', '532329', '武定县', '', '', '', '', 3, 1, ''), ('532331', '5323', '00,53,5323', '禄丰县', '53', '云南省', '5323', '楚雄彝族自治州', '532331', '禄丰县', '', '', '', '', 3, 1, ''), ('5325', '53', '00,53', '红河哈尼族彝族自治州', '53', '云南省', '5325', '红河哈尼族彝族自治州', '', '', '', '', '', '', 2, 1, ''), ('532501', '5325', '00,53,5325', '个旧市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532501', '个旧市', '', '', '', '', 3, 1, ''), ('532502', '5325', '00,53,5325', '开远市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532502', '开远市', '', '', '', '', 3, 1, ''), ('532503', '5325', '00,53,5325', '蒙自市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532503', '蒙自市', '', '', '', '', 3, 1, ''), ('532504', '5325', '00,53,5325', '弥勒市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532504', '弥勒市', '', '', '', '', 3, 1, ''), ('532523', '5325', '00,53,5325', '屏边苗族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532523', '屏边苗族自治县', '', '', '', '', 3, 1, ''), ('532524', '5325', '00,53,5325', '建水县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532524', '建水县', '', '', '', '', 3, 1, ''), ('532525', '5325', '00,53,5325', '石屏县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532525', '石屏县', '', '', '', '', 3, 1, ''), ('532527', '5325', '00,53,5325', '泸西县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532527', '泸西县', '', '', '', '', 3, 1, ''), ('532528', '5325', '00,53,5325', '元阳县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532528', '元阳县', '', '', '', '', 3, 1, ''), ('532529', '5325', '00,53,5325', '红河县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532529', '红河县', '', '', '', '', 3, 1, ''), ('532530', '5325', '00,53,5325', '金平苗族瑶族傣族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532530', '金平苗族瑶族傣族自治县', '', '', '', '', 3, 1, ''), ('532531', '5325', '00,53,5325', '绿春县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532531', '绿春县', '', '', '', '', 3, 1, ''), ('532532', '5325', '00,53,5325', '河口瑶族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532532', '河口瑶族自治县', '', '', '', '', 3, 1, ''), ('5326', '53', '00,53', '文山壮族苗族自治州', '53', '云南省', '5326', '文山壮族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('532601', '5326', '00,53,5326', '文山市', '53', '云南省', '5326', '文山壮族苗族自治州', '532601', '文山市', '', '', '', '', 3, 1, ''), ('532622', '5326', '00,53,5326', '砚山县', '53', '云南省', '5326', '文山壮族苗族自治州', '532622', '砚山县', '', '', '', '', 3, 1, ''), ('532623', '5326', '00,53,5326', '西畴县', '53', '云南省', '5326', '文山壮族苗族自治州', '532623', '西畴县', '', '', '', '', 3, 1, ''), ('532624', '5326', '00,53,5326', '麻栗坡县', '53', '云南省', '5326', '文山壮族苗族自治州', '532624', '麻栗坡县', '', '', '', '', 3, 1, ''), ('532625', '5326', '00,53,5326', '马关县', '53', '云南省', '5326', '文山壮族苗族自治州', '532625', '马关县', '', '', '', '', 3, 1, ''), ('532626', '5326', '00,53,5326', '丘北县', '53', '云南省', '5326', '文山壮族苗族自治州', '532626', '丘北县', '', '', '', '', 3, 1, ''), ('532627', '5326', '00,53,5326', '广南县', '53', '云南省', '5326', '文山壮族苗族自治州', '532627', '广南县', '', '', '', '', 3, 1, ''), ('532628', '5326', '00,53,5326', '富宁县', '53', '云南省', '5326', '文山壮族苗族自治州', '532628', '富宁县', '', '', '', '', 3, 1, ''), ('5328', '53', '00,53', '西双版纳傣族自治州', '53', '云南省', '5328', '西双版纳傣族自治州', '', '', '', '', '', '', 2, 1, ''), ('532801', '5328', '00,53,5328', '景洪市', '53', '云南省', '5328', '西双版纳傣族自治州', '532801', '景洪市', '', '', '', '', 3, 1, ''), ('532822', '5328', '00,53,5328', '勐海县', '53', '云南省', '5328', '西双版纳傣族自治州', '532822', '勐海县', '', '', '', '', 3, 1, ''), ('532823', '5328', '00,53,5328', '勐腊县', '53', '云南省', '5328', '西双版纳傣族自治州', '532823', '勐腊县', '', '', '', '', 3, 1, ''), ('5329', '53', '00,53', '大理白族自治州', '53', '云南省', '5329', '大理白族自治州', '', '', '', '', '', '', 2, 1, ''), ('532901', '5329', '00,53,5329', '大理市', '53', '云南省', '5329', '大理白族自治州', '532901', '大理市', '', '', '', '', 3, 1, ''), ('532922', '5329', '00,53,5329', '漾濞彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532922', '漾濞彝族自治县', '', '', '', '', 3, 1, ''), ('532923', '5329', '00,53,5329', '祥云县', '53', '云南省', '5329', '大理白族自治州', '532923', '祥云县', '', '', '', '', 3, 1, ''), ('532924', '5329', '00,53,5329', '宾川县', '53', '云南省', '5329', '大理白族自治州', '532924', '宾川县', '', '', '', '', 3, 1, ''), ('532925', '5329', '00,53,5329', '弥渡县', '53', '云南省', '5329', '大理白族自治州', '532925', '弥渡县', '', '', '', '', 3, 1, ''), ('532926', '5329', '00,53,5329', '南涧彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532926', '南涧彝族自治县', '', '', '', '', 3, 1, ''), ('532927', '5329', '00,53,5329', '巍山彝族回族自治县', '53', '云南省', '5329', '大理白族自治州', '532927', '巍山彝族回族自治县', '', '', '', '', 3, 1, ''), ('532928', '5329', '00,53,5329', '永平县', '53', '云南省', '5329', '大理白族自治州', '532928', '永平县', '', '', '', '', 3, 1, ''), ('532929', '5329', '00,53,5329', '云龙县', '53', '云南省', '5329', '大理白族自治州', '532929', '云龙县', '', '', '', '', 3, 1, ''), ('532930', '5329', '00,53,5329', '洱源县', '53', '云南省', '5329', '大理白族自治州', '532930', '洱源县', '', '', '', '', 3, 1, ''), ('532931', '5329', '00,53,5329', '剑川县', '53', '云南省', '5329', '大理白族自治州', '532931', '剑川县', '', '', '', '', 3, 1, ''), ('532932', '5329', '00,53,5329', '鹤庆县', '53', '云南省', '5329', '大理白族自治州', '532932', '鹤庆县', '', '', '', '', 3, 1, ''), ('5331', '53', '00,53', '德宏傣族景颇族自治州', '53', '云南省', '5331', '德宏傣族景颇族自治州', '', '', '', '', '', '', 2, 1, ''), ('533102', '5331', '00,53,5331', '瑞丽市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533102', '瑞丽市', '', '', '', '', 3, 1, ''), ('533103', '5331', '00,53,5331', '芒市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533103', '芒市', '', '', '', '', 3, 1, ''), ('533122', '5331', '00,53,5331', '梁河县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533122', '梁河县', '', '', '', '', 3, 1, ''), ('533123', '5331', '00,53,5331', '盈江县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533123', '盈江县', '', '', '', '', 3, 1, ''), ('533124', '5331', '00,53,5331', '陇川县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533124', '陇川县', '', '', '', '', 3, 1, ''), ('5333', '53', '00,53', '怒江傈僳族自治州', '53', '云南省', '5333', '怒江傈僳族自治州', '', '', '', '', '', '', 2, 1, ''), ('533301', '5333', '00,53,5333', '泸水市', '53', '云南省', '5333', '怒江傈僳族自治州', '533301', '泸水市', '', '', '', '', 3, 1, ''), ('533323', '5333', '00,53,5333', '福贡县', '53', '云南省', '5333', '怒江傈僳族自治州', '533323', '福贡县', '', '', '', '', 3, 1, ''), ('533324', '5333', '00,53,5333', '贡山独龙族怒族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533324', '贡山独龙族怒族自治县', '', '', '', '', 3, 1, ''), ('533325', '5333', '00,53,5333', '兰坪白族普米族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533325', '兰坪白族普米族自治县', '', '', '', '', 3, 1, ''), ('5334', '53', '00,53', '迪庆藏族自治州', '53', '云南省', '5334', '迪庆藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('533401', '5334', '00,53,5334', '香格里拉市', '53', '云南省', '5334', '迪庆藏族自治州', '533401', '香格里拉市', '', '', '', '', 3, 1, ''), ('533422', '5334', '00,53,5334', '德钦县', '53', '云南省', '5334', '迪庆藏族自治州', '533422', '德钦县', '', '', '', '', 3, 1, ''), ('533423', '5334', '00,53,5334', '维西傈僳族自治县', '53', '云南省', '5334', '迪庆藏族自治州', '533423', '维西傈僳族自治县', '', '', '', '', 3, 1, ''), ('54', '00', '00', '西藏自治区', '54', '西藏自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('5401', '54', '00,54', '拉萨市', '54', '西藏自治区', '5401', '拉萨市', '', '', '', '', '', '', 2, 1, ''), ('540102', '5401', '00,54,5401', '城关区', '54', '西藏自治区', '5401', '拉萨市', '540102', '城关区', '', '', '', '', 3, 1, ''), ('540103', '5401', '00,54,5401', '堆龙德庆区', '54', '西藏自治区', '5401', '拉萨市', '540103', '堆龙德庆区', '', '', '', '', 3, 1, ''), ('540104', '5401', '00,54,5401', '达孜区', '54', '西藏自治区', '5401', '拉萨市', '540104', '达孜区', '', '', '', '', 3, 1, ''), ('540121', '5401', '00,54,5401', '林周县', '54', '西藏自治区', '5401', '拉萨市', '540121', '林周县', '', '', '', '', 3, 1, ''), ('540122', '5401', '00,54,5401', '当雄县', '54', '西藏自治区', '5401', '拉萨市', '540122', '当雄县', '', '', '', '', 3, 1, ''), ('540123', '5401', '00,54,5401', '尼木县', '54', '西藏自治区', '5401', '拉萨市', '540123', '尼木县', '', '', '', '', 3, 1, ''), ('540124', '5401', '00,54,5401', '曲水县', '54', '西藏自治区', '5401', '拉萨市', '540124', '曲水县', '', '', '', '', 3, 1, ''), ('540127', '5401', '00,54,5401', '墨竹工卡县', '54', '西藏自治区', '5401', '拉萨市', '540127', '墨竹工卡县', '', '', '', '', 3, 1, ''), ('5402', '54', '00,54', '日喀则市', '54', '西藏自治区', '5402', '日喀则市', '', '', '', '', '', '', 2, 1, ''), ('540202', '5402', '00,54,5402', '桑珠孜区', '54', '西藏自治区', '5402', '日喀则市', '540202', '桑珠孜区', '', '', '', '', 3, 1, ''), ('540221', '5402', '00,54,5402', '南木林县', '54', '西藏自治区', '5402', '日喀则市', '540221', '南木林县', '', '', '', '', 3, 1, ''), ('540222', '5402', '00,54,5402', '江孜县', '54', '西藏自治区', '5402', '日喀则市', '540222', '江孜县', '', '', '', '', 3, 1, ''), ('540223', '5402', '00,54,5402', '定日县', '54', '西藏自治区', '5402', '日喀则市', '540223', '定日县', '', '', '', '', 3, 1, ''), ('540224', '5402', '00,54,5402', '萨迦县', '54', '西藏自治区', '5402', '日喀则市', '540224', '萨迦县', '', '', '', '', 3, 1, ''), ('540225', '5402', '00,54,5402', '拉孜县', '54', '西藏自治区', '5402', '日喀则市', '540225', '拉孜县', '', '', '', '', 3, 1, ''), ('540226', '5402', '00,54,5402', '昂仁县', '54', '西藏自治区', '5402', '日喀则市', '540226', '昂仁县', '', '', '', '', 3, 1, ''), ('540227', '5402', '00,54,5402', '谢通门县', '54', '西藏自治区', '5402', '日喀则市', '540227', '谢通门县', '', '', '', '', 3, 1, ''), ('540228', '5402', '00,54,5402', '白朗县', '54', '西藏自治区', '5402', '日喀则市', '540228', '白朗县', '', '', '', '', 3, 1, ''), ('540229', '5402', '00,54,5402', '仁布县', '54', '西藏自治区', '5402', '日喀则市', '540229', '仁布县', '', '', '', '', 3, 1, ''), ('540230', '5402', '00,54,5402', '康马县', '54', '西藏自治区', '5402', '日喀则市', '540230', '康马县', '', '', '', '', 3, 1, ''), ('540231', '5402', '00,54,5402', '定结县', '54', '西藏自治区', '5402', '日喀则市', '540231', '定结县', '', '', '', '', 3, 1, ''), ('540232', '5402', '00,54,5402', '仲巴县', '54', '西藏自治区', '5402', '日喀则市', '540232', '仲巴县', '', '', '', '', 3, 1, ''), ('540233', '5402', '00,54,5402', '亚东县', '54', '西藏自治区', '5402', '日喀则市', '540233', '亚东县', '', '', '', '', 3, 1, ''), ('540234', '5402', '00,54,5402', '吉隆县', '54', '西藏自治区', '5402', '日喀则市', '540234', '吉隆县', '', '', '', '', 3, 1, ''), ('540235', '5402', '00,54,5402', '聂拉木县', '54', '西藏自治区', '5402', '日喀则市', '540235', '聂拉木县', '', '', '', '', 3, 1, ''), ('540236', '5402', '00,54,5402', '萨嘎县', '54', '西藏自治区', '5402', '日喀则市', '540236', '萨嘎县', '', '', '', '', 3, 1, ''), ('540237', '5402', '00,54,5402', '岗巴县', '54', '西藏自治区', '5402', '日喀则市', '540237', '岗巴县', '', '', '', '', 3, 1, ''), ('5403', '54', '00,54', '昌都市', '54', '西藏自治区', '5403', '昌都市', '', '', '', '', '', '', 2, 1, ''), ('540302', '5403', '00,54,5403', '卡若区', '54', '西藏自治区', '5403', '昌都市', '540302', '卡若区', '', '', '', '', 3, 1, ''), ('540321', '5403', '00,54,5403', '江达县', '54', '西藏自治区', '5403', '昌都市', '540321', '江达县', '', '', '', '', 3, 1, ''), ('540322', '5403', '00,54,5403', '贡觉县', '54', '西藏自治区', '5403', '昌都市', '540322', '贡觉县', '', '', '', '', 3, 1, ''), ('540323', '5403', '00,54,5403', '类乌齐县', '54', '西藏自治区', '5403', '昌都市', '540323', '类乌齐县', '', '', '', '', 3, 1, ''), ('540324', '5403', '00,54,5403', '丁青县', '54', '西藏自治区', '5403', '昌都市', '540324', '丁青县', '', '', '', '', 3, 1, ''), ('540325', '5403', '00,54,5403', '察雅县', '54', '西藏自治区', '5403', '昌都市', '540325', '察雅县', '', '', '', '', 3, 1, ''), ('540326', '5403', '00,54,5403', '八宿县', '54', '西藏自治区', '5403', '昌都市', '540326', '八宿县', '', '', '', '', 3, 1, ''), ('540327', '5403', '00,54,5403', '左贡县', '54', '西藏自治区', '5403', '昌都市', '540327', '左贡县', '', '', '', '', 3, 1, ''), ('540328', '5403', '00,54,5403', '芒康县', '54', '西藏自治区', '5403', '昌都市', '540328', '芒康县', '', '', '', '', 3, 1, ''), ('540329', '5403', '00,54,5403', '洛隆县', '54', '西藏自治区', '5403', '昌都市', '540329', '洛隆县', '', '', '', '', 3, 1, ''), ('540330', '5403', '00,54,5403', '边坝县', '54', '西藏自治区', '5403', '昌都市', '540330', '边坝县', '', '', '', '', 3, 1, ''), ('5404', '54', '00,54', '林芝市', '54', '西藏自治区', '5404', '林芝市', '', '', '', '', '', '', 2, 1, ''), ('540402', '5404', '00,54,5404', '巴宜区', '54', '西藏自治区', '5404', '林芝市', '540402', '巴宜区', '', '', '', '', 3, 1, ''), ('540421', '5404', '00,54,5404', '工布江达县', '54', '西藏自治区', '5404', '林芝市', '540421', '工布江达县', '', '', '', '', 3, 1, ''), ('540422', '5404', '00,54,5404', '米林县', '54', '西藏自治区', '5404', '林芝市', '540422', '米林县', '', '', '', '', 3, 1, ''), ('540423', '5404', '00,54,5404', '墨脱县', '54', '西藏自治区', '5404', '林芝市', '540423', '墨脱县', '', '', '', '', 3, 1, ''), ('540424', '5404', '00,54,5404', '波密县', '54', '西藏自治区', '5404', '林芝市', '540424', '波密县', '', '', '', '', 3, 1, ''), ('540425', '5404', '00,54,5404', '察隅县', '54', '西藏自治区', '5404', '林芝市', '540425', '察隅县', '', '', '', '', 3, 1, ''), ('540426', '5404', '00,54,5404', '朗县', '54', '西藏自治区', '5404', '林芝市', '540426', '朗县', '', '', '', '', 3, 1, ''), ('5405', '54', '00,54', '山南市', '54', '西藏自治区', '5405', '山南市', '', '', '', '', '', '', 2, 1, ''), ('540502', '5405', '00,54,5405', '乃东区', '54', '西藏自治区', '5405', '山南市', '540502', '乃东区', '', '', '', '', 3, 1, ''), ('540521', '5405', '00,54,5405', '扎囊县', '54', '西藏自治区', '5405', '山南市', '540521', '扎囊县', '', '', '', '', 3, 1, ''), ('540522', '5405', '00,54,5405', '贡嘎县', '54', '西藏自治区', '5405', '山南市', '540522', '贡嘎县', '', '', '', '', 3, 1, ''), ('540523', '5405', '00,54,5405', '桑日县', '54', '西藏自治区', '5405', '山南市', '540523', '桑日县', '', '', '', '', 3, 1, ''), ('540524', '5405', '00,54,5405', '琼结县', '54', '西藏自治区', '5405', '山南市', '540524', '琼结县', '', '', '', '', 3, 1, ''), ('540525', '5405', '00,54,5405', '曲松县', '54', '西藏自治区', '5405', '山南市', '540525', '曲松县', '', '', '', '', 3, 1, ''), ('540526', '5405', '00,54,5405', '措美县', '54', '西藏自治区', '5405', '山南市', '540526', '措美县', '', '', '', '', 3, 1, ''), ('540527', '5405', '00,54,5405', '洛扎县', '54', '西藏自治区', '5405', '山南市', '540527', '洛扎县', '', '', '', '', 3, 1, ''), ('540528', '5405', '00,54,5405', '加查县', '54', '西藏自治区', '5405', '山南市', '540528', '加查县', '', '', '', '', 3, 1, ''), ('540529', '5405', '00,54,5405', '隆子县', '54', '西藏自治区', '5405', '山南市', '540529', '隆子县', '', '', '', '', 3, 1, ''), ('540530', '5405', '00,54,5405', '错那县', '54', '西藏自治区', '5405', '山南市', '540530', '错那县', '', '', '', '', 3, 1, ''), ('540531', '5405', '00,54,5405', '浪卡子县', '54', '西藏自治区', '5405', '山南市', '540531', '浪卡子县', '', '', '', '', 3, 1, ''), ('5406', '54', '00,54', '那曲市', '54', '西藏自治区', '5406', '那曲市', '', '', '', '', '', '', 2, 1, ''), ('540602', '5406', '00,54,5406', '色尼区', '54', '西藏自治区', '5406', '那曲市', '540602', '色尼区', '', '', '', '', 3, 1, ''), ('540621', '5406', '00,54,5406', '嘉黎县', '54', '西藏自治区', '5406', '那曲市', '540621', '嘉黎县', '', '', '', '', 3, 1, ''), ('540622', '5406', '00,54,5406', '比如县', '54', '西藏自治区', '5406', '那曲市', '540622', '比如县', '', '', '', '', 3, 1, ''), ('540623', '5406', '00,54,5406', '聂荣县', '54', '西藏自治区', '5406', '那曲市', '540623', '聂荣县', '', '', '', '', 3, 1, ''), ('540624', '5406', '00,54,5406', '安多县', '54', '西藏自治区', '5406', '那曲市', '540624', '安多县', '', '', '', '', 3, 1, ''), ('540625', '5406', '00,54,5406', '申扎县', '54', '西藏自治区', '5406', '那曲市', '540625', '申扎县', '', '', '', '', 3, 1, ''), ('540626', '5406', '00,54,5406', '索县', '54', '西藏自治区', '5406', '那曲市', '540626', '索县', '', '', '', '', 3, 1, ''), ('540627', '5406', '00,54,5406', '班戈县', '54', '西藏自治区', '5406', '那曲市', '540627', '班戈县', '', '', '', '', 3, 1, ''), ('540628', '5406', '00,54,5406', '巴青县', '54', '西藏自治区', '5406', '那曲市', '540628', '巴青县', '', '', '', '', 3, 1, ''), ('540629', '5406', '00,54,5406', '尼玛县', '54', '西藏自治区', '5406', '那曲市', '540629', '尼玛县', '', '', '', '', 3, 1, ''), ('540630', '5406', '00,54,5406', '双湖县', '54', '西藏自治区', '5406', '那曲市', '540630', '双湖县', '', '', '', '', 3, 1, ''), ('5425', '54', '00,54', '阿里地区', '54', '西藏自治区', '5425', '阿里地区', '', '', '', '', '', '', 2, 1, ''), ('542521', '5425', '00,54,5425', '普兰县', '54', '西藏自治区', '5425', '阿里地区', '542521', '普兰县', '', '', '', '', 3, 1, ''), ('542522', '5425', '00,54,5425', '札达县', '54', '西藏自治区', '5425', '阿里地区', '542522', '札达县', '', '', '', '', 3, 1, ''), ('542523', '5425', '00,54,5425', '噶尔县', '54', '西藏自治区', '5425', '阿里地区', '542523', '噶尔县', '', '', '', '', 3, 1, ''), ('542524', '5425', '00,54,5425', '日土县', '54', '西藏自治区', '5425', '阿里地区', '542524', '日土县', '', '', '', '', 3, 1, ''), ('542525', '5425', '00,54,5425', '革吉县', '54', '西藏自治区', '5425', '阿里地区', '542525', '革吉县', '', '', '', '', 3, 1, ''), ('542526', '5425', '00,54,5425', '改则县', '54', '西藏自治区', '5425', '阿里地区', '542526', '改则县', '', '', '', '', 3, 1, ''), ('542527', '5425', '00,54,5425', '措勤县', '54', '西藏自治区', '5425', '阿里地区', '542527', '措勤县', '', '', '', '', 3, 1, ''), ('61', '00', '00', '陕西省', '61', '陕西省', '', '', '', '', '', '', '', '', 1, 1, ''), ('6101', '61', '00,61', '西安市', '61', '陕西省', '6101', '西安市', '', '', '', '', '', '', 2, 1, ''), ('610102', '6101', '00,61,6101', '新城区', '61', '陕西省', '6101', '西安市', '610102', '新城区', '', '', '', '', 3, 1, ''), ('610103', '6101', '00,61,6101', '碑林区', '61', '陕西省', '6101', '西安市', '610103', '碑林区', '', '', '', '', 3, 1, ''), ('610104', '6101', '00,61,6101', '莲湖区', '61', '陕西省', '6101', '西安市', '610104', '莲湖区', '', '', '', '', 3, 1, ''), ('610111', '6101', '00,61,6101', '灞桥区', '61', '陕西省', '6101', '西安市', '610111', '灞桥区', '', '', '', '', 3, 1, ''), ('610112', '6101', '00,61,6101', '未央区', '61', '陕西省', '6101', '西安市', '610112', '未央区', '', '', '', '', 3, 1, ''), ('610113', '6101', '00,61,6101', '雁塔区', '61', '陕西省', '6101', '西安市', '610113', '雁塔区', '', '', '', '', 3, 1, ''), ('610114', '6101', '00,61,6101', '阎良区', '61', '陕西省', '6101', '西安市', '610114', '阎良区', '', '', '', '', 3, 1, ''), ('610115', '6101', '00,61,6101', '临潼区', '61', '陕西省', '6101', '西安市', '610115', '临潼区', '', '', '', '', 3, 1, ''), ('610116', '6101', '00,61,6101', '长安区', '61', '陕西省', '6101', '西安市', '610116', '长安区', '', '', '', '', 3, 1, ''), ('610117', '6101', '00,61,6101', '高陵区', '61', '陕西省', '6101', '西安市', '610117', '高陵区', '', '', '', '', 3, 1, ''), ('610118', '6101', '00,61,6101', '鄠邑区', '61', '陕西省', '6101', '西安市', '610118', '鄠邑区', '', '', '', '', 3, 1, ''), ('610122', '6101', '00,61,6101', '蓝田县', '61', '陕西省', '6101', '西安市', '610122', '蓝田县', '', '', '', '', 3, 1, ''), ('610124', '6101', '00,61,6101', '周至县', '61', '陕西省', '6101', '西安市', '610124', '周至县', '', '', '', '', 3, 1, ''), ('6102', '61', '00,61', '铜川市', '61', '陕西省', '6102', '铜川市', '', '', '', '', '', '', 2, 1, ''), ('610202', '6102', '00,61,6102', '王益区', '61', '陕西省', '6102', '铜川市', '610202', '王益区', '', '', '', '', 3, 1, ''), ('610203', '6102', '00,61,6102', '印台区', '61', '陕西省', '6102', '铜川市', '610203', '印台区', '', '', '', '', 3, 1, ''), ('610204', '6102', '00,61,6102', '耀州区', '61', '陕西省', '6102', '铜川市', '610204', '耀州区', '', '', '', '', 3, 1, ''), ('610222', '6102', '00,61,6102', '宜君县', '61', '陕西省', '6102', '铜川市', '610222', '宜君县', '', '', '', '', 3, 1, ''), ('6103', '61', '00,61', '宝鸡市', '61', '陕西省', '6103', '宝鸡市', '', '', '', '', '', '', 2, 1, ''), ('610302', '6103', '00,61,6103', '渭滨区', '61', '陕西省', '6103', '宝鸡市', '610302', '渭滨区', '', '', '', '', 3, 1, ''), ('610303', '6103', '00,61,6103', '金台区', '61', '陕西省', '6103', '宝鸡市', '610303', '金台区', '', '', '', '', 3, 1, ''), ('610304', '6103', '00,61,6103', '陈仓区', '61', '陕西省', '6103', '宝鸡市', '610304', '陈仓区', '', '', '', '', 3, 1, ''), ('610322', '6103', '00,61,6103', '凤翔县', '61', '陕西省', '6103', '宝鸡市', '610322', '凤翔县', '', '', '', '', 3, 1, ''), ('610323', '6103', '00,61,6103', '岐山县', '61', '陕西省', '6103', '宝鸡市', '610323', '岐山县', '', '', '', '', 3, 1, ''), ('610324', '6103', '00,61,6103', '扶风县', '61', '陕西省', '6103', '宝鸡市', '610324', '扶风县', '', '', '', '', 3, 1, ''), ('610326', '6103', '00,61,6103', '眉县', '61', '陕西省', '6103', '宝鸡市', '610326', '眉县', '', '', '', '', 3, 1, ''), ('610327', '6103', '00,61,6103', '陇县', '61', '陕西省', '6103', '宝鸡市', '610327', '陇县', '', '', '', '', 3, 1, ''), ('610328', '6103', '00,61,6103', '千阳县', '61', '陕西省', '6103', '宝鸡市', '610328', '千阳县', '', '', '', '', 3, 1, ''), ('610329', '6103', '00,61,6103', '麟游县', '61', '陕西省', '6103', '宝鸡市', '610329', '麟游县', '', '', '', '', 3, 1, ''), ('610330', '6103', '00,61,6103', '凤县', '61', '陕西省', '6103', '宝鸡市', '610330', '凤县', '', '', '', '', 3, 1, ''), ('610331', '6103', '00,61,6103', '太白县', '61', '陕西省', '6103', '宝鸡市', '610331', '太白县', '', '', '', '', 3, 1, ''), ('6104', '61', '00,61', '咸阳市', '61', '陕西省', '6104', '咸阳市', '', '', '', '', '', '', 2, 1, ''), ('610402', '6104', '00,61,6104', '秦都区', '61', '陕西省', '6104', '咸阳市', '610402', '秦都区', '', '', '', '', 3, 1, ''), ('610403', '6104', '00,61,6104', '杨陵区', '61', '陕西省', '6104', '咸阳市', '610403', '杨陵区', '', '', '', '', 3, 1, ''), ('610404', '6104', '00,61,6104', '渭城区', '61', '陕西省', '6104', '咸阳市', '610404', '渭城区', '', '', '', '', 3, 1, ''), ('610422', '6104', '00,61,6104', '三原县', '61', '陕西省', '6104', '咸阳市', '610422', '三原县', '', '', '', '', 3, 1, ''), ('610423', '6104', '00,61,6104', '泾阳县', '61', '陕西省', '6104', '咸阳市', '610423', '泾阳县', '', '', '', '', 3, 1, ''), ('610424', '6104', '00,61,6104', '乾县', '61', '陕西省', '6104', '咸阳市', '610424', '乾县', '', '', '', '', 3, 1, ''), ('610425', '6104', '00,61,6104', '礼泉县', '61', '陕西省', '6104', '咸阳市', '610425', '礼泉县', '', '', '', '', 3, 1, ''), ('610426', '6104', '00,61,6104', '永寿县', '61', '陕西省', '6104', '咸阳市', '610426', '永寿县', '', '', '', '', 3, 1, ''), ('610428', '6104', '00,61,6104', '长武县', '61', '陕西省', '6104', '咸阳市', '610428', '长武县', '', '', '', '', 3, 1, ''), ('610429', '6104', '00,61,6104', '旬邑县', '61', '陕西省', '6104', '咸阳市', '610429', '旬邑县', '', '', '', '', 3, 1, ''), ('610430', '6104', '00,61,6104', '淳化县', '61', '陕西省', '6104', '咸阳市', '610430', '淳化县', '', '', '', '', 3, 1, ''), ('610431', '6104', '00,61,6104', '武功县', '61', '陕西省', '6104', '咸阳市', '610431', '武功县', '', '', '', '', 3, 1, ''), ('610481', '6104', '00,61,6104', '兴平市', '61', '陕西省', '6104', '咸阳市', '610481', '兴平市', '', '', '', '', 3, 1, ''), ('610482', '6104', '00,61,6104', '彬州市', '61', '陕西省', '6104', '咸阳市', '610482', '彬州市', '', '', '', '', 3, 1, ''), ('6105', '61', '00,61', '渭南市', '61', '陕西省', '6105', '渭南市', '', '', '', '', '', '', 2, 1, ''), ('610502', '6105', '00,61,6105', '临渭区', '61', '陕西省', '6105', '渭南市', '610502', '临渭区', '', '', '', '', 3, 1, ''), ('610503', '6105', '00,61,6105', '华州区', '61', '陕西省', '6105', '渭南市', '610503', '华州区', '', '', '', '', 3, 1, ''), ('610522', '6105', '00,61,6105', '潼关县', '61', '陕西省', '6105', '渭南市', '610522', '潼关县', '', '', '', '', 3, 1, ''), ('610523', '6105', '00,61,6105', '大荔县', '61', '陕西省', '6105', '渭南市', '610523', '大荔县', '', '', '', '', 3, 1, ''), ('610524', '6105', '00,61,6105', '合阳县', '61', '陕西省', '6105', '渭南市', '610524', '合阳县', '', '', '', '', 3, 1, ''), ('610525', '6105', '00,61,6105', '澄城县', '61', '陕西省', '6105', '渭南市', '610525', '澄城县', '', '', '', '', 3, 1, ''), ('610526', '6105', '00,61,6105', '蒲城县', '61', '陕西省', '6105', '渭南市', '610526', '蒲城县', '', '', '', '', 3, 1, ''), ('610527', '6105', '00,61,6105', '白水县', '61', '陕西省', '6105', '渭南市', '610527', '白水县', '', '', '', '', 3, 1, ''), ('610528', '6105', '00,61,6105', '富平县', '61', '陕西省', '6105', '渭南市', '610528', '富平县', '', '', '', '', 3, 1, ''), ('610581', '6105', '00,61,6105', '韩城市', '61', '陕西省', '6105', '渭南市', '610581', '韩城市', '', '', '', '', 3, 1, '');
+INSERT INTO `blade_region` VALUES ('610582', '6105', '00,61,6105', '华阴市', '61', '陕西省', '6105', '渭南市', '610582', '华阴市', '', '', '', '', 3, 1, ''), ('6106', '61', '00,61', '延安市', '61', '陕西省', '6106', '延安市', '', '', '', '', '', '', 2, 1, ''), ('610602', '6106', '00,61,6106', '宝塔区', '61', '陕西省', '6106', '延安市', '610602', '宝塔区', '', '', '', '', 3, 1, ''), ('610603', '6106', '00,61,6106', '安塞区', '61', '陕西省', '6106', '延安市', '610603', '安塞区', '', '', '', '', 3, 1, ''), ('610621', '6106', '00,61,6106', '延长县', '61', '陕西省', '6106', '延安市', '610621', '延长县', '', '', '', '', 3, 1, ''), ('610622', '6106', '00,61,6106', '延川县', '61', '陕西省', '6106', '延安市', '610622', '延川县', '', '', '', '', 3, 1, ''), ('610625', '6106', '00,61,6106', '志丹县', '61', '陕西省', '6106', '延安市', '610625', '志丹县', '', '', '', '', 3, 1, ''), ('610626', '6106', '00,61,6106', '吴起县', '61', '陕西省', '6106', '延安市', '610626', '吴起县', '', '', '', '', 3, 1, ''), ('610627', '6106', '00,61,6106', '甘泉县', '61', '陕西省', '6106', '延安市', '610627', '甘泉县', '', '', '', '', 3, 1, ''), ('610628', '6106', '00,61,6106', '富县', '61', '陕西省', '6106', '延安市', '610628', '富县', '', '', '', '', 3, 1, ''), ('610629', '6106', '00,61,6106', '洛川县', '61', '陕西省', '6106', '延安市', '610629', '洛川县', '', '', '', '', 3, 1, ''), ('610630', '6106', '00,61,6106', '宜川县', '61', '陕西省', '6106', '延安市', '610630', '宜川县', '', '', '', '', 3, 1, ''), ('610631', '6106', '00,61,6106', '黄龙县', '61', '陕西省', '6106', '延安市', '610631', '黄龙县', '', '', '', '', 3, 1, ''), ('610632', '6106', '00,61,6106', '黄陵县', '61', '陕西省', '6106', '延安市', '610632', '黄陵县', '', '', '', '', 3, 1, ''), ('610681', '6106', '00,61,6106', '子长市', '61', '陕西省', '6106', '延安市', '610681', '子长市', '', '', '', '', 3, 1, ''), ('6107', '61', '00,61', '汉中市', '61', '陕西省', '6107', '汉中市', '', '', '', '', '', '', 2, 1, ''), ('610702', '6107', '00,61,6107', '汉台区', '61', '陕西省', '6107', '汉中市', '610702', '汉台区', '', '', '', '', 3, 1, ''), ('610703', '6107', '00,61,6107', '南郑区', '61', '陕西省', '6107', '汉中市', '610703', '南郑区', '', '', '', '', 3, 1, ''), ('610722', '6107', '00,61,6107', '城固县', '61', '陕西省', '6107', '汉中市', '610722', '城固县', '', '', '', '', 3, 1, ''), ('610723', '6107', '00,61,6107', '洋县', '61', '陕西省', '6107', '汉中市', '610723', '洋县', '', '', '', '', 3, 1, ''), ('610724', '6107', '00,61,6107', '西乡县', '61', '陕西省', '6107', '汉中市', '610724', '西乡县', '', '', '', '', 3, 1, ''), ('610725', '6107', '00,61,6107', '勉县', '61', '陕西省', '6107', '汉中市', '610725', '勉县', '', '', '', '', 3, 1, ''), ('610726', '6107', '00,61,6107', '宁强县', '61', '陕西省', '6107', '汉中市', '610726', '宁强县', '', '', '', '', 3, 1, ''), ('610727', '6107', '00,61,6107', '略阳县', '61', '陕西省', '6107', '汉中市', '610727', '略阳县', '', '', '', '', 3, 1, ''), ('610728', '6107', '00,61,6107', '镇巴县', '61', '陕西省', '6107', '汉中市', '610728', '镇巴县', '', '', '', '', 3, 1, ''), ('610729', '6107', '00,61,6107', '留坝县', '61', '陕西省', '6107', '汉中市', '610729', '留坝县', '', '', '', '', 3, 1, ''), ('610730', '6107', '00,61,6107', '佛坪县', '61', '陕西省', '6107', '汉中市', '610730', '佛坪县', '', '', '', '', 3, 1, ''), ('6108', '61', '00,61', '榆林市', '61', '陕西省', '6108', '榆林市', '', '', '', '', '', '', 2, 1, ''), ('610802', '6108', '00,61,6108', '榆阳区', '61', '陕西省', '6108', '榆林市', '610802', '榆阳区', '', '', '', '', 3, 1, ''), ('610803', '6108', '00,61,6108', '横山区', '61', '陕西省', '6108', '榆林市', '610803', '横山区', '', '', '', '', 3, 1, ''), ('610822', '6108', '00,61,6108', '府谷县', '61', '陕西省', '6108', '榆林市', '610822', '府谷县', '', '', '', '', 3, 1, ''), ('610824', '6108', '00,61,6108', '靖边县', '61', '陕西省', '6108', '榆林市', '610824', '靖边县', '', '', '', '', 3, 1, ''), ('610825', '6108', '00,61,6108', '定边县', '61', '陕西省', '6108', '榆林市', '610825', '定边县', '', '', '', '', 3, 1, ''), ('610826', '6108', '00,61,6108', '绥德县', '61', '陕西省', '6108', '榆林市', '610826', '绥德县', '', '', '', '', 3, 1, ''), ('610827', '6108', '00,61,6108', '米脂县', '61', '陕西省', '6108', '榆林市', '610827', '米脂县', '', '', '', '', 3, 1, ''), ('610828', '6108', '00,61,6108', '佳县', '61', '陕西省', '6108', '榆林市', '610828', '佳县', '', '', '', '', 3, 1, ''), ('610829', '6108', '00,61,6108', '吴堡县', '61', '陕西省', '6108', '榆林市', '610829', '吴堡县', '', '', '', '', 3, 1, ''), ('610830', '6108', '00,61,6108', '清涧县', '61', '陕西省', '6108', '榆林市', '610830', '清涧县', '', '', '', '', 3, 1, ''), ('610831', '6108', '00,61,6108', '子洲县', '61', '陕西省', '6108', '榆林市', '610831', '子洲县', '', '', '', '', 3, 1, ''), ('610881', '6108', '00,61,6108', '神木市', '61', '陕西省', '6108', '榆林市', '610881', '神木市', '', '', '', '', 3, 1, ''), ('6109', '61', '00,61', '安康市', '61', '陕西省', '6109', '安康市', '', '', '', '', '', '', 2, 1, ''), ('610902', '6109', '00,61,6109', '汉滨区', '61', '陕西省', '6109', '安康市', '610902', '汉滨区', '', '', '', '', 3, 1, ''), ('610921', '6109', '00,61,6109', '汉阴县', '61', '陕西省', '6109', '安康市', '610921', '汉阴县', '', '', '', '', 3, 1, ''), ('610922', '6109', '00,61,6109', '石泉县', '61', '陕西省', '6109', '安康市', '610922', '石泉县', '', '', '', '', 3, 1, ''), ('610923', '6109', '00,61,6109', '宁陕县', '61', '陕西省', '6109', '安康市', '610923', '宁陕县', '', '', '', '', 3, 1, ''), ('610924', '6109', '00,61,6109', '紫阳县', '61', '陕西省', '6109', '安康市', '610924', '紫阳县', '', '', '', '', 3, 1, ''), ('610925', '6109', '00,61,6109', '岚皋县', '61', '陕西省', '6109', '安康市', '610925', '岚皋县', '', '', '', '', 3, 1, ''), ('610926', '6109', '00,61,6109', '平利县', '61', '陕西省', '6109', '安康市', '610926', '平利县', '', '', '', '', 3, 1, ''), ('610927', '6109', '00,61,6109', '镇坪县', '61', '陕西省', '6109', '安康市', '610927', '镇坪县', '', '', '', '', 3, 1, ''), ('610928', '6109', '00,61,6109', '旬阳县', '61', '陕西省', '6109', '安康市', '610928', '旬阳县', '', '', '', '', 3, 1, ''), ('610929', '6109', '00,61,6109', '白河县', '61', '陕西省', '6109', '安康市', '610929', '白河县', '', '', '', '', 3, 1, ''), ('6110', '61', '00,61', '商洛市', '61', '陕西省', '6110', '商洛市', '', '', '', '', '', '', 2, 1, ''), ('611002', '6110', '00,61,6110', '商州区', '61', '陕西省', '6110', '商洛市', '611002', '商州区', '', '', '', '', 3, 1, ''), ('611021', '6110', '00,61,6110', '洛南县', '61', '陕西省', '6110', '商洛市', '611021', '洛南县', '', '', '', '', 3, 1, ''), ('611022', '6110', '00,61,6110', '丹凤县', '61', '陕西省', '6110', '商洛市', '611022', '丹凤县', '', '', '', '', 3, 1, ''), ('611023', '6110', '00,61,6110', '商南县', '61', '陕西省', '6110', '商洛市', '611023', '商南县', '', '', '', '', 3, 1, ''), ('611024', '6110', '00,61,6110', '山阳县', '61', '陕西省', '6110', '商洛市', '611024', '山阳县', '', '', '', '', 3, 1, ''), ('611025', '6110', '00,61,6110', '镇安县', '61', '陕西省', '6110', '商洛市', '611025', '镇安县', '', '', '', '', 3, 1, ''), ('611026', '6110', '00,61,6110', '柞水县', '61', '陕西省', '6110', '商洛市', '611026', '柞水县', '', '', '', '', 3, 1, ''), ('62', '00', '00', '甘肃省', '62', '甘肃省', '', '', '', '', '', '', '', '', 1, 1, ''), ('6201', '62', '00,62', '兰州市', '62', '甘肃省', '6201', '兰州市', '', '', '', '', '', '', 2, 1, ''), ('620102', '6201', '00,62,6201', '城关区', '62', '甘肃省', '6201', '兰州市', '620102', '城关区', '', '', '', '', 3, 1, ''), ('620103', '6201', '00,62,6201', '七里河区', '62', '甘肃省', '6201', '兰州市', '620103', '七里河区', '', '', '', '', 3, 1, ''), ('620104', '6201', '00,62,6201', '西固区', '62', '甘肃省', '6201', '兰州市', '620104', '西固区', '', '', '', '', 3, 1, ''), ('620105', '6201', '00,62,6201', '安宁区', '62', '甘肃省', '6201', '兰州市', '620105', '安宁区', '', '', '', '', 3, 1, ''), ('620111', '6201', '00,62,6201', '红古区', '62', '甘肃省', '6201', '兰州市', '620111', '红古区', '', '', '', '', 3, 1, ''), ('620121', '6201', '00,62,6201', '永登县', '62', '甘肃省', '6201', '兰州市', '620121', '永登县', '', '', '', '', 3, 1, ''), ('620122', '6201', '00,62,6201', '皋兰县', '62', '甘肃省', '6201', '兰州市', '620122', '皋兰县', '', '', '', '', 3, 1, ''), ('620123', '6201', '00,62,6201', '榆中县', '62', '甘肃省', '6201', '兰州市', '620123', '榆中县', '', '', '', '', 3, 1, ''), ('6202', '62', '00,62', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '', '', '', '', '', '', 2, 1, ''), ('620200', '6202', '00,62,6202', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '620200', '嘉峪关市', '', '', '', '', 3, 1, ''), ('6203', '62', '00,62', '金昌市', '62', '甘肃省', '6203', '金昌市', '', '', '', '', '', '', 2, 1, ''), ('620302', '6203', '00,62,6203', '金川区', '62', '甘肃省', '6203', '金昌市', '620302', '金川区', '', '', '', '', 3, 1, ''), ('620321', '6203', '00,62,6203', '永昌县', '62', '甘肃省', '6203', '金昌市', '620321', '永昌县', '', '', '', '', 3, 1, ''), ('6204', '62', '00,62', '白银市', '62', '甘肃省', '6204', '白银市', '', '', '', '', '', '', 2, 1, ''), ('620402', '6204', '00,62,6204', '白银区', '62', '甘肃省', '6204', '白银市', '620402', '白银区', '', '', '', '', 3, 1, ''), ('620403', '6204', '00,62,6204', '平川区', '62', '甘肃省', '6204', '白银市', '620403', '平川区', '', '', '', '', 3, 1, ''), ('620421', '6204', '00,62,6204', '靖远县', '62', '甘肃省', '6204', '白银市', '620421', '靖远县', '', '', '', '', 3, 1, ''), ('620422', '6204', '00,62,6204', '会宁县', '62', '甘肃省', '6204', '白银市', '620422', '会宁县', '', '', '', '', 3, 1, ''), ('620423', '6204', '00,62,6204', '景泰县', '62', '甘肃省', '6204', '白银市', '620423', '景泰县', '', '', '', '', 3, 1, ''), ('6205', '62', '00,62', '天水市', '62', '甘肃省', '6205', '天水市', '', '', '', '', '', '', 2, 1, ''), ('620502', '6205', '00,62,6205', '秦州区', '62', '甘肃省', '6205', '天水市', '620502', '秦州区', '', '', '', '', 3, 1, ''), ('620503', '6205', '00,62,6205', '麦积区', '62', '甘肃省', '6205', '天水市', '620503', '麦积区', '', '', '', '', 3, 1, ''), ('620521', '6205', '00,62,6205', '清水县', '62', '甘肃省', '6205', '天水市', '620521', '清水县', '', '', '', '', 3, 1, ''), ('620522', '6205', '00,62,6205', '秦安县', '62', '甘肃省', '6205', '天水市', '620522', '秦安县', '', '', '', '', 3, 1, ''), ('620523', '6205', '00,62,6205', '甘谷县', '62', '甘肃省', '6205', '天水市', '620523', '甘谷县', '', '', '', '', 3, 1, ''), ('620524', '6205', '00,62,6205', '武山县', '62', '甘肃省', '6205', '天水市', '620524', '武山县', '', '', '', '', 3, 1, ''), ('620525', '6205', '00,62,6205', '张家川回族自治县', '62', '甘肃省', '6205', '天水市', '620525', '张家川回族自治县', '', '', '', '', 3, 1, ''), ('6206', '62', '00,62', '武威市', '62', '甘肃省', '6206', '武威市', '', '', '', '', '', '', 2, 1, ''), ('620602', '6206', '00,62,6206', '凉州区', '62', '甘肃省', '6206', '武威市', '620602', '凉州区', '', '', '', '', 3, 1, ''), ('620621', '6206', '00,62,6206', '民勤县', '62', '甘肃省', '6206', '武威市', '620621', '民勤县', '', '', '', '', 3, 1, ''), ('620622', '6206', '00,62,6206', '古浪县', '62', '甘肃省', '6206', '武威市', '620622', '古浪县', '', '', '', '', 3, 1, ''), ('620623', '6206', '00,62,6206', '天祝藏族自治县', '62', '甘肃省', '6206', '武威市', '620623', '天祝藏族自治县', '', '', '', '', 3, 1, ''), ('6207', '62', '00,62', '张掖市', '62', '甘肃省', '6207', '张掖市', '', '', '', '', '', '', 2, 1, ''), ('620702', '6207', '00,62,6207', '甘州区', '62', '甘肃省', '6207', '张掖市', '620702', '甘州区', '', '', '', '', 3, 1, ''), ('620721', '6207', '00,62,6207', '肃南裕固族自治县', '62', '甘肃省', '6207', '张掖市', '620721', '肃南裕固族自治县', '', '', '', '', 3, 1, ''), ('620722', '6207', '00,62,6207', '民乐县', '62', '甘肃省', '6207', '张掖市', '620722', '民乐县', '', '', '', '', 3, 1, ''), ('620723', '6207', '00,62,6207', '临泽县', '62', '甘肃省', '6207', '张掖市', '620723', '临泽县', '', '', '', '', 3, 1, ''), ('620724', '6207', '00,62,6207', '高台县', '62', '甘肃省', '6207', '张掖市', '620724', '高台县', '', '', '', '', 3, 1, ''), ('620725', '6207', '00,62,6207', '山丹县', '62', '甘肃省', '6207', '张掖市', '620725', '山丹县', '', '', '', '', 3, 1, ''), ('6208', '62', '00,62', '平凉市', '62', '甘肃省', '6208', '平凉市', '', '', '', '', '', '', 2, 1, ''), ('620802', '6208', '00,62,6208', '崆峒区', '62', '甘肃省', '6208', '平凉市', '620802', '崆峒区', '', '', '', '', 3, 1, ''), ('620821', '6208', '00,62,6208', '泾川县', '62', '甘肃省', '6208', '平凉市', '620821', '泾川县', '', '', '', '', 3, 1, ''), ('620822', '6208', '00,62,6208', '灵台县', '62', '甘肃省', '6208', '平凉市', '620822', '灵台县', '', '', '', '', 3, 1, ''), ('620823', '6208', '00,62,6208', '崇信县', '62', '甘肃省', '6208', '平凉市', '620823', '崇信县', '', '', '', '', 3, 1, ''), ('620825', '6208', '00,62,6208', '庄浪县', '62', '甘肃省', '6208', '平凉市', '620825', '庄浪县', '', '', '', '', 3, 1, ''), ('620826', '6208', '00,62,6208', '静宁县', '62', '甘肃省', '6208', '平凉市', '620826', '静宁县', '', '', '', '', 3, 1, ''), ('620881', '6208', '00,62,6208', '华亭市', '62', '甘肃省', '6208', '平凉市', '620881', '华亭市', '', '', '', '', 3, 1, ''), ('6209', '62', '00,62', '酒泉市', '62', '甘肃省', '6209', '酒泉市', '', '', '', '', '', '', 2, 1, ''), ('620902', '6209', '00,62,6209', '肃州区', '62', '甘肃省', '6209', '酒泉市', '620902', '肃州区', '', '', '', '', 3, 1, ''), ('620921', '6209', '00,62,6209', '金塔县', '62', '甘肃省', '6209', '酒泉市', '620921', '金塔县', '', '', '', '', 3, 1, ''), ('620922', '6209', '00,62,6209', '瓜州县', '62', '甘肃省', '6209', '酒泉市', '620922', '瓜州县', '', '', '', '', 3, 1, ''), ('620923', '6209', '00,62,6209', '肃北蒙古族自治县', '62', '甘肃省', '6209', '酒泉市', '620923', '肃北蒙古族自治县', '', '', '', '', 3, 1, ''), ('620924', '6209', '00,62,6209', '阿克塞哈萨克族自治县', '62', '甘肃省', '6209', '酒泉市', '620924', '阿克塞哈萨克族自治县', '', '', '', '', 3, 1, ''), ('620981', '6209', '00,62,6209', '玉门市', '62', '甘肃省', '6209', '酒泉市', '620981', '玉门市', '', '', '', '', 3, 1, ''), ('620982', '6209', '00,62,6209', '敦煌市', '62', '甘肃省', '6209', '酒泉市', '620982', '敦煌市', '', '', '', '', 3, 1, ''), ('6210', '62', '00,62', '庆阳市', '62', '甘肃省', '6210', '庆阳市', '', '', '', '', '', '', 2, 1, ''), ('621002', '6210', '00,62,6210', '西峰区', '62', '甘肃省', '6210', '庆阳市', '621002', '西峰区', '', '', '', '', 3, 1, ''), ('621021', '6210', '00,62,6210', '庆城县', '62', '甘肃省', '6210', '庆阳市', '621021', '庆城县', '', '', '', '', 3, 1, ''), ('621022', '6210', '00,62,6210', '环县', '62', '甘肃省', '6210', '庆阳市', '621022', '环县', '', '', '', '', 3, 1, ''), ('621023', '6210', '00,62,6210', '华池县', '62', '甘肃省', '6210', '庆阳市', '621023', '华池县', '', '', '', '', 3, 1, ''), ('621024', '6210', '00,62,6210', '合水县', '62', '甘肃省', '6210', '庆阳市', '621024', '合水县', '', '', '', '', 3, 1, ''), ('621025', '6210', '00,62,6210', '正宁县', '62', '甘肃省', '6210', '庆阳市', '621025', '正宁县', '', '', '', '', 3, 1, ''), ('621026', '6210', '00,62,6210', '宁县', '62', '甘肃省', '6210', '庆阳市', '621026', '宁县', '', '', '', '', 3, 1, ''), ('621027', '6210', '00,62,6210', '镇原县', '62', '甘肃省', '6210', '庆阳市', '621027', '镇原县', '', '', '', '', 3, 1, ''), ('6211', '62', '00,62', '定西市', '62', '甘肃省', '6211', '定西市', '', '', '', '', '', '', 2, 1, ''), ('621102', '6211', '00,62,6211', '安定区', '62', '甘肃省', '6211', '定西市', '621102', '安定区', '', '', '', '', 3, 1, ''), ('621121', '6211', '00,62,6211', '通渭县', '62', '甘肃省', '6211', '定西市', '621121', '通渭县', '', '', '', '', 3, 1, ''), ('621122', '6211', '00,62,6211', '陇西县', '62', '甘肃省', '6211', '定西市', '621122', '陇西县', '', '', '', '', 3, 1, ''), ('621123', '6211', '00,62,6211', '渭源县', '62', '甘肃省', '6211', '定西市', '621123', '渭源县', '', '', '', '', 3, 1, ''), ('621124', '6211', '00,62,6211', '临洮县', '62', '甘肃省', '6211', '定西市', '621124', '临洮县', '', '', '', '', 3, 1, ''), ('621125', '6211', '00,62,6211', '漳县', '62', '甘肃省', '6211', '定西市', '621125', '漳县', '', '', '', '', 3, 1, ''), ('621126', '6211', '00,62,6211', '岷县', '62', '甘肃省', '6211', '定西市', '621126', '岷县', '', '', '', '', 3, 1, ''), ('6212', '62', '00,62', '陇南市', '62', '甘肃省', '6212', '陇南市', '', '', '', '', '', '', 2, 1, ''), ('621202', '6212', '00,62,6212', '武都区', '62', '甘肃省', '6212', '陇南市', '621202', '武都区', '', '', '', '', 3, 1, ''), ('621221', '6212', '00,62,6212', '成县', '62', '甘肃省', '6212', '陇南市', '621221', '成县', '', '', '', '', 3, 1, ''), ('621222', '6212', '00,62,6212', '文县', '62', '甘肃省', '6212', '陇南市', '621222', '文县', '', '', '', '', 3, 1, ''), ('621223', '6212', '00,62,6212', '宕昌县', '62', '甘肃省', '6212', '陇南市', '621223', '宕昌县', '', '', '', '', 3, 1, ''), ('621224', '6212', '00,62,6212', '康县', '62', '甘肃省', '6212', '陇南市', '621224', '康县', '', '', '', '', 3, 1, ''), ('621225', '6212', '00,62,6212', '西和县', '62', '甘肃省', '6212', '陇南市', '621225', '西和县', '', '', '', '', 3, 1, ''), ('621226', '6212', '00,62,6212', '礼县', '62', '甘肃省', '6212', '陇南市', '621226', '礼县', '', '', '', '', 3, 1, ''), ('621227', '6212', '00,62,6212', '徽县', '62', '甘肃省', '6212', '陇南市', '621227', '徽县', '', '', '', '', 3, 1, ''), ('621228', '6212', '00,62,6212', '两当县', '62', '甘肃省', '6212', '陇南市', '621228', '两当县', '', '', '', '', 3, 1, ''), ('6229', '62', '00,62', '临夏回族自治州', '62', '甘肃省', '6229', '临夏回族自治州', '', '', '', '', '', '', 2, 1, ''), ('622901', '6229', '00,62,6229', '临夏市', '62', '甘肃省', '6229', '临夏回族自治州', '622901', '临夏市', '', '', '', '', 3, 1, ''), ('622921', '6229', '00,62,6229', '临夏县', '62', '甘肃省', '6229', '临夏回族自治州', '622921', '临夏县', '', '', '', '', 3, 1, ''), ('622922', '6229', '00,62,6229', '康乐县', '62', '甘肃省', '6229', '临夏回族自治州', '622922', '康乐县', '', '', '', '', 3, 1, ''), ('622923', '6229', '00,62,6229', '永靖县', '62', '甘肃省', '6229', '临夏回族自治州', '622923', '永靖县', '', '', '', '', 3, 1, ''), ('622924', '6229', '00,62,6229', '广河县', '62', '甘肃省', '6229', '临夏回族自治州', '622924', '广河县', '', '', '', '', 3, 1, ''), ('622925', '6229', '00,62,6229', '和政县', '62', '甘肃省', '6229', '临夏回族自治州', '622925', '和政县', '', '', '', '', 3, 1, ''), ('622926', '6229', '00,62,6229', '东乡族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622926', '东乡族自治县', '', '', '', '', 3, 1, ''), ('622927', '6229', '00,62,6229', '积石山保安族东乡族撒拉族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622927', '积石山保安族东乡族撒拉族自治县', '', '', '', '', 3, 1, ''), ('6230', '62', '00,62', '甘南藏族自治州', '62', '甘肃省', '6230', '甘南藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('623001', '6230', '00,62,6230', '合作市', '62', '甘肃省', '6230', '甘南藏族自治州', '623001', '合作市', '', '', '', '', 3, 1, ''), ('623021', '6230', '00,62,6230', '临潭县', '62', '甘肃省', '6230', '甘南藏族自治州', '623021', '临潭县', '', '', '', '', 3, 1, ''), ('623022', '6230', '00,62,6230', '卓尼县', '62', '甘肃省', '6230', '甘南藏族自治州', '623022', '卓尼县', '', '', '', '', 3, 1, ''), ('623023', '6230', '00,62,6230', '舟曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623023', '舟曲县', '', '', '', '', 3, 1, ''), ('623024', '6230', '00,62,6230', '迭部县', '62', '甘肃省', '6230', '甘南藏族自治州', '623024', '迭部县', '', '', '', '', 3, 1, ''), ('623025', '6230', '00,62,6230', '玛曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623025', '玛曲县', '', '', '', '', 3, 1, ''), ('623026', '6230', '00,62,6230', '碌曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623026', '碌曲县', '', '', '', '', 3, 1, ''), ('623027', '6230', '00,62,6230', '夏河县', '62', '甘肃省', '6230', '甘南藏族自治州', '623027', '夏河县', '', '', '', '', 3, 1, ''), ('63', '00', '00', '青海省', '63', '青海省', '', '', '', '', '', '', '', '', 1, 1, ''), ('6301', '63', '00,63', '西宁市', '63', '青海省', '6301', '西宁市', '', '', '', '', '', '', 2, 1, ''), ('630102', '6301', '00,63,6301', '城东区', '63', '青海省', '6301', '西宁市', '630102', '城东区', '', '', '', '', 3, 1, ''), ('630103', '6301', '00,63,6301', '城中区', '63', '青海省', '6301', '西宁市', '630103', '城中区', '', '', '', '', 3, 1, ''), ('630104', '6301', '00,63,6301', '城西区', '63', '青海省', '6301', '西宁市', '630104', '城西区', '', '', '', '', 3, 1, ''), ('630105', '6301', '00,63,6301', '城北区', '63', '青海省', '6301', '西宁市', '630105', '城北区', '', '', '', '', 3, 1, ''), ('630106', '6301', '00,63,6301', '湟中区', '63', '青海省', '6301', '西宁市', '630106', '湟中区', '', '', '', '', 3, 1, ''), ('630121', '6301', '00,63,6301', '大通回族土族自治县', '63', '青海省', '6301', '西宁市', '630121', '大通回族土族自治县', '', '', '', '', 3, 1, ''), ('630123', '6301', '00,63,6301', '湟源县', '63', '青海省', '6301', '西宁市', '630123', '湟源县', '', '', '', '', 3, 1, ''), ('6302', '63', '00,63', '海东市', '63', '青海省', '6302', '海东市', '', '', '', '', '', '', 2, 1, ''), ('630202', '6302', '00,63,6302', '乐都区', '63', '青海省', '6302', '海东市', '630202', '乐都区', '', '', '', '', 3, 1, ''), ('630203', '6302', '00,63,6302', '平安区', '63', '青海省', '6302', '海东市', '630203', '平安区', '', '', '', '', 3, 1, ''), ('630222', '6302', '00,63,6302', '民和回族土族自治县', '63', '青海省', '6302', '海东市', '630222', '民和回族土族自治县', '', '', '', '', 3, 1, ''), ('630223', '6302', '00,63,6302', '互助土族自治县', '63', '青海省', '6302', '海东市', '630223', '互助土族自治县', '', '', '', '', 3, 1, ''), ('630224', '6302', '00,63,6302', '化隆回族自治县', '63', '青海省', '6302', '海东市', '630224', '化隆回族自治县', '', '', '', '', 3, 1, ''), ('630225', '6302', '00,63,6302', '循化撒拉族自治县', '63', '青海省', '6302', '海东市', '630225', '循化撒拉族自治县', '', '', '', '', 3, 1, ''), ('6322', '63', '00,63', '海北藏族自治州', '63', '青海省', '6322', '海北藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632221', '6322', '00,63,6322', '门源回族自治县', '63', '青海省', '6322', '海北藏族自治州', '632221', '门源回族自治县', '', '', '', '', 3, 1, ''), ('632222', '6322', '00,63,6322', '祁连县', '63', '青海省', '6322', '海北藏族自治州', '632222', '祁连县', '', '', '', '', 3, 1, ''), ('632223', '6322', '00,63,6322', '海晏县', '63', '青海省', '6322', '海北藏族自治州', '632223', '海晏县', '', '', '', '', 3, 1, ''), ('632224', '6322', '00,63,6322', '刚察县', '63', '青海省', '6322', '海北藏族自治州', '632224', '刚察县', '', '', '', '', 3, 1, ''), ('6323', '63', '00,63', '黄南藏族自治州', '63', '青海省', '6323', '黄南藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632321', '6323', '00,63,6323', '同仁县', '63', '青海省', '6323', '黄南藏族自治州', '632321', '同仁县', '', '', '', '', 3, 1, ''), ('632322', '6323', '00,63,6323', '尖扎县', '63', '青海省', '6323', '黄南藏族自治州', '632322', '尖扎县', '', '', '', '', 3, 1, ''), ('632323', '6323', '00,63,6323', '泽库县', '63', '青海省', '6323', '黄南藏族自治州', '632323', '泽库县', '', '', '', '', 3, 1, ''), ('632324', '6323', '00,63,6323', '河南蒙古族自治县', '63', '青海省', '6323', '黄南藏族自治州', '632324', '河南蒙古族自治县', '', '', '', '', 3, 1, ''), ('6325', '63', '00,63', '海南藏族自治州', '63', '青海省', '6325', '海南藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632521', '6325', '00,63,6325', '共和县', '63', '青海省', '6325', '海南藏族自治州', '632521', '共和县', '', '', '', '', 3, 1, ''), ('632522', '6325', '00,63,6325', '同德县', '63', '青海省', '6325', '海南藏族自治州', '632522', '同德县', '', '', '', '', 3, 1, ''), ('632523', '6325', '00,63,6325', '贵德县', '63', '青海省', '6325', '海南藏族自治州', '632523', '贵德县', '', '', '', '', 3, 1, ''), ('632524', '6325', '00,63,6325', '兴海县', '63', '青海省', '6325', '海南藏族自治州', '632524', '兴海县', '', '', '', '', 3, 1, ''), ('632525', '6325', '00,63,6325', '贵南县', '63', '青海省', '6325', '海南藏族自治州', '632525', '贵南县', '', '', '', '', 3, 1, ''), ('6326', '63', '00,63', '果洛藏族自治州', '63', '青海省', '6326', '果洛藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632621', '6326', '00,63,6326', '玛沁县', '63', '青海省', '6326', '果洛藏族自治州', '632621', '玛沁县', '', '', '', '', 3, 1, ''), ('632622', '6326', '00,63,6326', '班玛县', '63', '青海省', '6326', '果洛藏族自治州', '632622', '班玛县', '', '', '', '', 3, 1, ''), ('632623', '6326', '00,63,6326', '甘德县', '63', '青海省', '6326', '果洛藏族自治州', '632623', '甘德县', '', '', '', '', 3, 1, ''), ('632624', '6326', '00,63,6326', '达日县', '63', '青海省', '6326', '果洛藏族自治州', '632624', '达日县', '', '', '', '', 3, 1, ''), ('632625', '6326', '00,63,6326', '久治县', '63', '青海省', '6326', '果洛藏族自治州', '632625', '久治县', '', '', '', '', 3, 1, ''), ('632626', '6326', '00,63,6326', '玛多县', '63', '青海省', '6326', '果洛藏族自治州', '632626', '玛多县', '', '', '', '', 3, 1, ''), ('6327', '63', '00,63', '玉树藏族自治州', '63', '青海省', '6327', '玉树藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632701', '6327', '00,63,6327', '玉树市', '63', '青海省', '6327', '玉树藏族自治州', '632701', '玉树市', '', '', '', '', 3, 1, ''), ('632722', '6327', '00,63,6327', '杂多县', '63', '青海省', '6327', '玉树藏族自治州', '632722', '杂多县', '', '', '', '', 3, 1, ''), ('632723', '6327', '00,63,6327', '称多县', '63', '青海省', '6327', '玉树藏族自治州', '632723', '称多县', '', '', '', '', 3, 1, ''), ('632724', '6327', '00,63,6327', '治多县', '63', '青海省', '6327', '玉树藏族自治州', '632724', '治多县', '', '', '', '', 3, 1, ''), ('632725', '6327', '00,63,6327', '囊谦县', '63', '青海省', '6327', '玉树藏族自治州', '632725', '囊谦县', '', '', '', '', 3, 1, ''), ('632726', '6327', '00,63,6327', '曲麻莱县', '63', '青海省', '6327', '玉树藏族自治州', '632726', '曲麻莱县', '', '', '', '', 3, 1, ''), ('6328', '63', '00,63', '海西蒙古族藏族自治州', '63', '青海省', '6328', '海西蒙古族藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632801', '6328', '00,63,6328', '格尔木市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632801', '格尔木市', '', '', '', '', 3, 1, ''), ('632802', '6328', '00,63,6328', '德令哈市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632802', '德令哈市', '', '', '', '', 3, 1, ''), ('632803', '6328', '00,63,6328', '茫崖市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632803', '茫崖市', '', '', '', '', 3, 1, ''), ('632821', '6328', '00,63,6328', '乌兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632821', '乌兰县', '', '', '', '', 3, 1, ''), ('632822', '6328', '00,63,6328', '都兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632822', '都兰县', '', '', '', '', 3, 1, ''), ('632823', '6328', '00,63,6328', '天峻县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632823', '天峻县', '', '', '', '', 3, 1, ''), ('64', '00', '00', '宁夏回族自治区', '64', '宁夏回族自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('6401', '64', '00,64', '银川市', '64', '宁夏回族自治区', '6401', '银川市', '', '', '', '', '', '', 2, 1, ''), ('640104', '6401', '00,64,6401', '兴庆区', '64', '宁夏回族自治区', '6401', '银川市', '640104', '兴庆区', '', '', '', '', 3, 1, ''), ('640105', '6401', '00,64,6401', '西夏区', '64', '宁夏回族自治区', '6401', '银川市', '640105', '西夏区', '', '', '', '', 3, 1, ''), ('640106', '6401', '00,64,6401', '金凤区', '64', '宁夏回族自治区', '6401', '银川市', '640106', '金凤区', '', '', '', '', 3, 1, ''), ('640121', '6401', '00,64,6401', '永宁县', '64', '宁夏回族自治区', '6401', '银川市', '640121', '永宁县', '', '', '', '', 3, 1, ''), ('640122', '6401', '00,64,6401', '贺兰县', '64', '宁夏回族自治区', '6401', '银川市', '640122', '贺兰县', '', '', '', '', 3, 1, ''), ('640181', '6401', '00,64,6401', '灵武市', '64', '宁夏回族自治区', '6401', '银川市', '640181', '灵武市', '', '', '', '', 3, 1, ''), ('6402', '64', '00,64', '石嘴山市', '64', '宁夏回族自治区', '6402', '石嘴山市', '', '', '', '', '', '', 2, 1, ''), ('640202', '6402', '00,64,6402', '大武口区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640202', '大武口区', '', '', '', '', 3, 1, ''), ('640205', '6402', '00,64,6402', '惠农区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640205', '惠农区', '', '', '', '', 3, 1, ''), ('640221', '6402', '00,64,6402', '平罗县', '64', '宁夏回族自治区', '6402', '石嘴山市', '640221', '平罗县', '', '', '', '', 3, 1, ''), ('6403', '64', '00,64', '吴忠市', '64', '宁夏回族自治区', '6403', '吴忠市', '', '', '', '', '', '', 2, 1, ''), ('640302', '6403', '00,64,6403', '利通区', '64', '宁夏回族自治区', '6403', '吴忠市', '640302', '利通区', '', '', '', '', 3, 1, ''), ('640303', '6403', '00,64,6403', '红寺堡区', '64', '宁夏回族自治区', '6403', '吴忠市', '640303', '红寺堡区', '', '', '', '', 3, 1, ''), ('640323', '6403', '00,64,6403', '盐池县', '64', '宁夏回族自治区', '6403', '吴忠市', '640323', '盐池县', '', '', '', '', 3, 1, ''), ('640324', '6403', '00,64,6403', '同心县', '64', '宁夏回族自治区', '6403', '吴忠市', '640324', '同心县', '', '', '', '', 3, 1, ''), ('640381', '6403', '00,64,6403', '青铜峡市', '64', '宁夏回族自治区', '6403', '吴忠市', '640381', '青铜峡市', '', '', '', '', 3, 1, ''), ('6404', '64', '00,64', '固原市', '64', '宁夏回族自治区', '6404', '固原市', '', '', '', '', '', '', 2, 1, ''), ('640402', '6404', '00,64,6404', '原州区', '64', '宁夏回族自治区', '6404', '固原市', '640402', '原州区', '', '', '', '', 3, 1, ''), ('640422', '6404', '00,64,6404', '西吉县', '64', '宁夏回族自治区', '6404', '固原市', '640422', '西吉县', '', '', '', '', 3, 1, ''), ('640423', '6404', '00,64,6404', '隆德县', '64', '宁夏回族自治区', '6404', '固原市', '640423', '隆德县', '', '', '', '', 3, 1, ''), ('640424', '6404', '00,64,6404', '泾源县', '64', '宁夏回族自治区', '6404', '固原市', '640424', '泾源县', '', '', '', '', 3, 1, ''), ('640425', '6404', '00,64,6404', '彭阳县', '64', '宁夏回族自治区', '6404', '固原市', '640425', '彭阳县', '', '', '', '', 3, 1, ''), ('6405', '64', '00,64', '中卫市', '64', '宁夏回族自治区', '6405', '中卫市', '', '', '', '', '', '', 2, 1, ''), ('640502', '6405', '00,64,6405', '沙坡头区', '64', '宁夏回族自治区', '6405', '中卫市', '640502', '沙坡头区', '', '', '', '', 3, 1, ''), ('640521', '6405', '00,64,6405', '中宁县', '64', '宁夏回族自治区', '6405', '中卫市', '640521', '中宁县', '', '', '', '', 3, 1, ''), ('640522', '6405', '00,64,6405', '海原县', '64', '宁夏回族自治区', '6405', '中卫市', '640522', '海原县', '', '', '', '', 3, 1, ''), ('65', '00', '00', '新疆维吾尔自治区', '65', '新疆维吾尔自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('6501', '65', '00,65', '乌鲁木齐市', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '', '', '', '', '', '', 2, 1, ''), ('650102', '6501', '00,65,6501', '天山区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650102', '天山区', '', '', '', '', 3, 1, ''), ('650103', '6501', '00,65,6501', '沙依巴克区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650103', '沙依巴克区', '', '', '', '', 3, 1, ''), ('650104', '6501', '00,65,6501', '新市区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650104', '新市区', '', '', '', '', 3, 1, ''), ('650105', '6501', '00,65,6501', '水磨沟区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650105', '水磨沟区', '', '', '', '', 3, 1, ''), ('650106', '6501', '00,65,6501', '头屯河区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650106', '头屯河区', '', '', '', '', 3, 1, ''), ('650107', '6501', '00,65,6501', '达坂城区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650107', '达坂城区', '', '', '', '', 3, 1, ''), ('650109', '6501', '00,65,6501', '米东区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650109', '米东区', '', '', '', '', 3, 1, ''), ('650121', '6501', '00,65,6501', '乌鲁木齐县', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650121', '乌鲁木齐县', '', '', '', '', 3, 1, ''), ('6502', '65', '00,65', '克拉玛依市', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '', '', '', '', '', '', 2, 1, ''), ('650202', '6502', '00,65,6502', '独山子区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650202', '独山子区', '', '', '', '', 3, 1, ''), ('650203', '6502', '00,65,6502', '克拉玛依区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650203', '克拉玛依区', '', '', '', '', 3, 1, ''), ('650204', '6502', '00,65,6502', '白碱滩区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650204', '白碱滩区', '', '', '', '', 3, 1, ''), ('650205', '6502', '00,65,6502', '乌尔禾区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650205', '乌尔禾区', '', '', '', '', 3, 1, ''), ('6504', '65', '00,65', '吐鲁番市', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '', '', '', '', '', '', 2, 1, ''), ('650402', '6504', '00,65,6504', '高昌区', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650402', '高昌区', '', '', '', '', 3, 1, ''), ('650421', '6504', '00,65,6504', '鄯善县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650421', '鄯善县', '', '', '', '', 3, 1, ''), ('650422', '6504', '00,65,6504', '托克逊县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650422', '托克逊县', '', '', '', '', 3, 1, ''), ('6505', '65', '00,65', '哈密市', '65', '新疆维吾尔自治区', '6505', '哈密市', '', '', '', '', '', '', 2, 1, ''), ('650502', '6505', '00,65,6505', '伊州区', '65', '新疆维吾尔自治区', '6505', '哈密市', '650502', '伊州区', '', '', '', '', 3, 1, ''), ('650521', '6505', '00,65,6505', '巴里坤哈萨克自治县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650521', '巴里坤哈萨克自治县', '', '', '', '', 3, 1, ''), ('650522', '6505', '00,65,6505', '伊吾县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650522', '伊吾县', '', '', '', '', 3, 1, ''), ('6523', '65', '00,65', '昌吉回族自治州', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '', '', '', '', '', '', 2, 1, ''), ('652301', '6523', '00,65,6523', '昌吉市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652301', '昌吉市', '', '', '', '', 3, 1, ''), ('652302', '6523', '00,65,6523', '阜康市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652302', '阜康市', '', '', '', '', 3, 1, ''), ('652323', '6523', '00,65,6523', '呼图壁县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652323', '呼图壁县', '', '', '', '', 3, 1, ''), ('652324', '6523', '00,65,6523', '玛纳斯县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652324', '玛纳斯县', '', '', '', '', 3, 1, ''), ('652325', '6523', '00,65,6523', '奇台县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652325', '奇台县', '', '', '', '', 3, 1, ''), ('652327', '6523', '00,65,6523', '吉木萨尔县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652327', '吉木萨尔县', '', '', '', '', 3, 1, ''), ('652328', '6523', '00,65,6523', '木垒哈萨克自治县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652328', '木垒哈萨克自治县', '', '', '', '', 3, 1, ''), ('6527', '65', '00,65', '博尔塔拉蒙古自治州', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '', '', '', '', '', '', 2, 1, ''), ('652701', '6527', '00,65,6527', '博乐市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652701', '博乐市', '', '', '', '', 3, 1, ''), ('652702', '6527', '00,65,6527', '阿拉山口市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652702', '阿拉山口市', '', '', '', '', 3, 1, ''), ('652722', '6527', '00,65,6527', '精河县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652722', '精河县', '', '', '', '', 3, 1, ''), ('652723', '6527', '00,65,6527', '温泉县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652723', '温泉县', '', '', '', '', 3, 1, ''), ('6528', '65', '00,65', '巴音郭楞蒙古自治州', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '', '', '', '', '', '', 2, 1, ''), ('652801', '6528', '00,65,6528', '库尔勒市', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652801', '库尔勒市', '', '', '', '', 3, 1, ''), ('652822', '6528', '00,65,6528', '轮台县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652822', '轮台县', '', '', '', '', 3, 1, ''), ('652823', '6528', '00,65,6528', '尉犁县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652823', '尉犁县', '', '', '', '', 3, 1, ''), ('652824', '6528', '00,65,6528', '若羌县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652824', '若羌县', '', '', '', '', 3, 1, ''), ('652825', '6528', '00,65,6528', '且末县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652825', '且末县', '', '', '', '', 3, 1, ''), ('652826', '6528', '00,65,6528', '焉耆回族自治县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652826', '焉耆回族自治县', '', '', '', '', 3, 1, ''), ('652827', '6528', '00,65,6528', '和静县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652827', '和静县', '', '', '', '', 3, 1, ''), ('652828', '6528', '00,65,6528', '和硕县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652828', '和硕县', '', '', '', '', 3, 1, ''), ('652829', '6528', '00,65,6528', '博湖县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652829', '博湖县', '', '', '', '', 3, 1, ''), ('6529', '65', '00,65', '阿克苏地区', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '', '', '', '', '', '', 2, 1, ''), ('652901', '6529', '00,65,6529', '阿克苏市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652901', '阿克苏市', '', '', '', '', 3, 1, ''), ('652902', '6529', '00,65,6529', '库车市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652902', '库车市', '', '', '', '', 3, 1, ''), ('652922', '6529', '00,65,6529', '温宿县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652922', '温宿县', '', '', '', '', 3, 1, ''), ('652924', '6529', '00,65,6529', '沙雅县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652924', '沙雅县', '', '', '', '', 3, 1, ''), ('652925', '6529', '00,65,6529', '新和县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652925', '新和县', '', '', '', '', 3, 1, ''), ('652926', '6529', '00,65,6529', '拜城县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652926', '拜城县', '', '', '', '', 3, 1, ''), ('652927', '6529', '00,65,6529', '乌什县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652927', '乌什县', '', '', '', '', 3, 1, ''), ('652928', '6529', '00,65,6529', '阿瓦提县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652928', '阿瓦提县', '', '', '', '', 3, 1, ''), ('652929', '6529', '00,65,6529', '柯坪县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652929', '柯坪县', '', '', '', '', 3, 1, ''), ('6530', '65', '00,65', '克孜勒苏柯尔克孜自治州', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '', '', '', '', '', '', 2, 1, ''), ('653001', '6530', '00,65,6530', '阿图什市', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653001', '阿图什市', '', '', '', '', 3, 1, ''), ('653022', '6530', '00,65,6530', '阿克陶县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653022', '阿克陶县', '', '', '', '', 3, 1, ''), ('653023', '6530', '00,65,6530', '阿合奇县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653023', '阿合奇县', '', '', '', '', 3, 1, ''), ('653024', '6530', '00,65,6530', '乌恰县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653024', '乌恰县', '', '', '', '', 3, 1, ''), ('6531', '65', '00,65', '喀什地区', '65', '新疆维吾尔自治区', '6531', '喀什地区', '', '', '', '', '', '', 2, 1, ''), ('653101', '6531', '00,65,6531', '喀什市', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653101', '喀什市', '', '', '', '', 3, 1, ''), ('653121', '6531', '00,65,6531', '疏附县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653121', '疏附县', '', '', '', '', 3, 1, ''), ('653122', '6531', '00,65,6531', '疏勒县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653122', '疏勒县', '', '', '', '', 3, 1, ''), ('653123', '6531', '00,65,6531', '英吉沙县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653123', '英吉沙县', '', '', '', '', 3, 1, ''), ('653124', '6531', '00,65,6531', '泽普县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653124', '泽普县', '', '', '', '', 3, 1, ''), ('653125', '6531', '00,65,6531', '莎车县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653125', '莎车县', '', '', '', '', 3, 1, ''), ('653126', '6531', '00,65,6531', '叶城县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653126', '叶城县', '', '', '', '', 3, 1, ''), ('653127', '6531', '00,65,6531', '麦盖提县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653127', '麦盖提县', '', '', '', '', 3, 1, ''), ('653128', '6531', '00,65,6531', '岳普湖县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653128', '岳普湖县', '', '', '', '', 3, 1, ''), ('653129', '6531', '00,65,6531', '伽师县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653129', '伽师县', '', '', '', '', 3, 1, ''), ('653130', '6531', '00,65,6531', '巴楚县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653130', '巴楚县', '', '', '', '', 3, 1, ''), ('653131', '6531', '00,65,6531', '塔什库尔干塔吉克自治县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653131', '塔什库尔干塔吉克自治县', '', '', '', '', 3, 1, ''), ('6532', '65', '00,65', '和田地区', '65', '新疆维吾尔自治区', '6532', '和田地区', '', '', '', '', '', '', 2, 1, ''), ('653201', '6532', '00,65,6532', '和田市', '65', '新疆维吾尔自治区', '6532', '和田地区', '653201', '和田市', '', '', '', '', 3, 1, ''), ('653221', '6532', '00,65,6532', '和田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653221', '和田县', '', '', '', '', 3, 1, ''), ('653222', '6532', '00,65,6532', '墨玉县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653222', '墨玉县', '', '', '', '', 3, 1, ''), ('653223', '6532', '00,65,6532', '皮山县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653223', '皮山县', '', '', '', '', 3, 1, ''), ('653224', '6532', '00,65,6532', '洛浦县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653224', '洛浦县', '', '', '', '', 3, 1, ''), ('653225', '6532', '00,65,6532', '策勒县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653225', '策勒县', '', '', '', '', 3, 1, ''), ('653226', '6532', '00,65,6532', '于田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653226', '于田县', '', '', '', '', 3, 1, ''), ('653227', '6532', '00,65,6532', '民丰县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653227', '民丰县', '', '', '', '', 3, 1, ''), ('6540', '65', '00,65', '伊犁哈萨克自治州', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '', '', '', '', '', '', 2, 1, ''), ('654002', '6540', '00,65,6540', '伊宁市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654002', '伊宁市', '', '', '', '', 3, 1, ''), ('654003', '6540', '00,65,6540', '奎屯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654003', '奎屯市', '', '', '', '', 3, 1, ''), ('654004', '6540', '00,65,6540', '霍尔果斯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654004', '霍尔果斯市', '', '', '', '', 3, 1, ''), ('654021', '6540', '00,65,6540', '伊宁县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654021', '伊宁县', '', '', '', '', 3, 1, ''), ('654022', '6540', '00,65,6540', '察布查尔锡伯自治县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654022', '察布查尔锡伯自治县', '', '', '', '', 3, 1, ''), ('654023', '6540', '00,65,6540', '霍城县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654023', '霍城县', '', '', '', '', 3, 1, ''), ('654024', '6540', '00,65,6540', '巩留县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654024', '巩留县', '', '', '', '', 3, 1, ''), ('654025', '6540', '00,65,6540', '新源县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654025', '新源县', '', '', '', '', 3, 1, ''), ('654026', '6540', '00,65,6540', '昭苏县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654026', '昭苏县', '', '', '', '', 3, 1, ''), ('654027', '6540', '00,65,6540', '特克斯县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654027', '特克斯县', '', '', '', '', 3, 1, ''), ('654028', '6540', '00,65,6540', '尼勒克县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654028', '尼勒克县', '', '', '', '', 3, 1, ''), ('6542', '65', '00,65', '塔城地区', '65', '新疆维吾尔自治区', '6542', '塔城地区', '', '', '', '', '', '', 2, 1, ''), ('654201', '6542', '00,65,6542', '塔城市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654201', '塔城市', '', '', '', '', 3, 1, ''), ('654202', '6542', '00,65,6542', '乌苏市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654202', '乌苏市', '', '', '', '', 3, 1, ''), ('654221', '6542', '00,65,6542', '额敏县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654221', '额敏县', '', '', '', '', 3, 1, ''), ('654223', '6542', '00,65,6542', '沙湾县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654223', '沙湾县', '', '', '', '', 3, 1, ''), ('654224', '6542', '00,65,6542', '托里县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654224', '托里县', '', '', '', '', 3, 1, ''), ('654225', '6542', '00,65,6542', '裕民县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654225', '裕民县', '', '', '', '', 3, 1, ''), ('654226', '6542', '00,65,6542', '和布克赛尔蒙古自治县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654226', '和布克赛尔蒙古自治县', '', '', '', '', 3, 1, ''), ('6543', '65', '00,65', '阿勒泰地区', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '', '', '', '', '', '', 2, 1, ''), ('654301', '6543', '00,65,6543', '阿勒泰市', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654301', '阿勒泰市', '', '', '', '', 3, 1, ''), ('654321', '6543', '00,65,6543', '布尔津县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654321', '布尔津县', '', '', '', '', 3, 1, ''), ('654322', '6543', '00,65,6543', '富蕴县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654322', '富蕴县', '', '', '', '', 3, 1, ''), ('654323', '6543', '00,65,6543', '福海县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654323', '福海县', '', '', '', '', 3, 1, ''), ('654324', '6543', '00,65,6543', '哈巴河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654324', '哈巴河县', '', '', '', '', 3, 1, ''), ('654325', '6543', '00,65,6543', '青河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654325', '青河县', '', '', '', '', 3, 1, ''), ('654326', '6543', '00,65,6543', '吉木乃县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654326', '吉木乃县', '', '', '', '', 3, 1, ''), ('6590', '65', '00,65', '自治区直辖县级行政区', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('659001', '6590', '00,65,6590', '石河子市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659001', '石河子市', '', '', '', '', 3, 1, ''), ('659002', '6590', '00,65,6590', '阿拉尔市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659002', '阿拉尔市', '', '', '', '', 3, 1, ''), ('659003', '6590', '00,65,6590', '图木舒克市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659003', '图木舒克市', '', '', '', '', 3, 1, ''), ('659004', '6590', '00,65,6590', '五家渠市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659004', '五家渠市', '', '', '', '', 3, 1, ''), ('659005', '6590', '00,65,6590', '北屯市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659005', '北屯市', '', '', '', '', 3, 1, ''), ('659006', '6590', '00,65,6590', '铁门关市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659006', '铁门关市', '', '', '', '', 3, 1, ''), ('659007', '6590', '00,65,6590', '双河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659007', '双河市', '', '', '', '', 3, 1, ''), ('659008', '6590', '00,65,6590', '可克达拉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659008', '可克达拉市', '', '', '', '', 3, 1, ''), ('659009', '6590', '00,65,6590', '昆玉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659009', '昆玉市', '', '', '', '', 3, 1, ''), ('659010', '6590', '00,65,6590', '胡杨河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659010', '胡杨河市', '', '', '', '', 3, 1, ''), ('71', '00', '00', '台湾省', '71', '台湾省', '', '', '', '', '', '', '', '', 1, 1, ''), ('81', '00', '00', '香港特别行政区', '81', '香港特别行政区', '', '', '', '', '', '', '', '', 1, 1, ''), ('82', '00', '00', '澳门特别行政区', '82', '澳门特别行政区', '', '', '', '', '', '', '', '', 1, 1, '');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_report_file
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_report_file`;
+CREATE TABLE `blade_report_file`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '文件名',
+  `content` mediumblob NULL COMMENT '文件内容',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '报表文件表';
+
+-- ----------------------------
+-- Records of blade_report_file
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_report_file` VALUES (1291947054502789121, 'notice.ureport.xml', 0x3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E3C757265706F72743E3C63656C6C20657870616E643D22446F776E22206E616D653D2241312220726F773D22312220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D2274656E616E745F696422206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D22446F776E22206E616D653D2242312220726F773D22312220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D227469746C6522206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D22446F776E22206E616D653D2243312220726F773D22312220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D2272656C656173655F74696D6522206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244312220726F773D22312220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2241322220726F773D22322220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2242322220726F773D22322220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2243322220726F773D22322220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244322220726F773D22322220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2241332220726F773D22332220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2242332220726F773D22332220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2243332220726F773D22332220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244332220726F773D22332220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C726F7720726F772D6E756D6265723D223122206865696768743D223138222F3E3C726F7720726F772D6E756D6265723D223222206865696768743D223138222F3E3C726F7720726F772D6E756D6265723D223322206865696768743D223138222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2231222077696474683D223830222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2232222077696474683D223830222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2233222077696474683D22313331222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2234222077696474683D223830222F3E3C64617461736F75726365206E616D653D225265706F727444617461536F757263652220747970653D226275696C64696E223E3C64617461736574206E616D653D226E6F746963652220747970653D2273716C223E3C73716C3E3C215B43444154415B73656C656374202A2066726F6D20626C6164655F6E6F746963655D5D3E3C2F73716C3E3C6669656C64206E616D653D226964222F3E3C6669656C64206E616D653D2274656E616E745F6964222F3E3C6669656C64206E616D653D227469746C65222F3E3C6669656C64206E616D653D2263617465676F7279222F3E3C6669656C64206E616D653D2272656C656173655F74696D65222F3E3C6669656C64206E616D653D22636F6E74656E74222F3E3C6669656C64206E616D653D226372656174655F75736572222F3E3C6669656C64206E616D653D226372656174655F64657074222F3E3C6669656C64206E616D653D226372656174655F74696D65222F3E3C6669656C64206E616D653D227570646174655F75736572222F3E3C6669656C64206E616D653D227570646174655F74696D65222F3E3C6669656C64206E616D653D22737461747573222F3E3C6669656C64206E616D653D2269735F64656C65746564222F3E3C2F646174617365743E3C2F64617461736F757263653E3C706170657220747970653D22413422206C6566742D6D617267696E3D223930222072696768742D6D617267696E3D223930220A20202020746F702D6D617267696E3D2237322220626F74746F6D2D6D617267696E3D2237322220706167696E672D6D6F64653D22666974706167652220666978726F77733D2230220A2020202077696474683D2235393522206865696768743D2238343222206F7269656E746174696F6E3D22706F727472616974222068746D6C2D7265706F72742D616C69676E3D226C656674222062672D696D6167653D22222068746D6C2D696E74657276616C2D726566726573682D76616C75653D22302220636F6C756D6E2D656E61626C65643D2266616C7365223E3C2F70617065723E3C2F757265706F72743E, '2020-08-08 11:59:16', '2020-08-08 13:05:02', 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_role
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_role`;
+CREATE TABLE `blade_role`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父主键',
+  `role_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色名',
+  `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+  `role_alias` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色别名',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色表';
+
+-- ----------------------------
+-- Records of blade_role
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_role` VALUES (1123598816738675201, '000000', 0, '超级管理员', 1, 'administrator', 0), (1123598816738675202, '000000', 0, '用户', 2, 'user', 0), (1123598816738675203, '000000', 1123598816738675202, '人事', 1, 'hr', 0), (1123598816738675204, '000000', 1123598816738675202, '经理', 2, 'manager', 0), (1123598816738675205, '000000', 1123598816738675202, '老板', 3, 'boss', 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_role_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_role_menu`;
+CREATE TABLE `blade_role_menu`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单id',
+  `role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色菜单关联表';
+
+-- ----------------------------
+-- Records of blade_role_menu
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_role_menu` VALUES (1123598817738675363, 1123598815738675201, 1123598816738675202), (1123598817738675364, 1123598815738675202, 1123598816738675202), (1123598817738675365, 1123598815738675219, 1123598816738675202), (1123598817738675366, 1123598815738675220, 1123598816738675202), (1123598817738675367, 1123598815738675221, 1123598816738675202), (1123598817738675368, 1123598815738675222, 1123598816738675202), (1123598817738675369, 1123598815738675280, 1123598816738675202), (1123598817738675370, 1123598815738675281, 1123598816738675202), (1123598817738675371, 1123598815738675282, 1123598816738675202), (1123598817738675372, 1123598815738675283, 1123598816738675202), (1123598817738675373, 1123598815738675284, 1123598816738675202), (1123598817738675374, 1123598815738675285, 1123598816738675202), (1123598817738675375, 1123598815738675286, 1123598816738675202), (1123598817738675376, 1123598815738675287, 1123598816738675202), (1123598817738675377, 1123598815738675288, 1123598816738675202), (1123598817738675378, 1123598815738675289, 1123598816738675202), (1123598817738675379, 1123598815738675290, 1123598816738675202), (1123598817738675380, 1123598815738675291, 1123598816738675202), (1123598817738675381, 1123598815738675292, 1123598816738675202), (1123598817738675382, 1123598815738675293, 1123598816738675202), (1123598817738675383, 1123598815738675294, 1123598816738675202), (1123598817738675384, 1123598815738675295, 1123598816738675202), (1123598817738675385, 1123598815738675296, 1123598816738675202), (1123598817738675386, 1123598815738675297, 1123598816738675202), (1123598817738675387, 1123598815738675201, 1123598816738675203), (1123598817738675388, 1123598815738675202, 1123598816738675203), (1123598817738675389, 1123598815738675219, 1123598816738675203), (1123598817738675390, 1123598815738675220, 1123598816738675203), (1123598817738675391, 1123598815738675221, 1123598816738675203), (1123598817738675392, 1123598815738675222, 1123598816738675203), (1123598817738675393, 1123598815738675280, 1123598816738675203), (1123598817738675394, 1123598815738675281, 1123598816738675203), (1123598817738675395, 1123598815738675282, 1123598816738675203), (1123598817738675396, 1123598815738675283, 1123598816738675203), (1123598817738675397, 1123598815738675284, 1123598816738675203), (1123598817738675398, 1123598815738675285, 1123598816738675203), (1123598817738675399, 1123598815738675286, 1123598816738675203), (1123598817738675400, 1123598815738675287, 1123598816738675203), (1123598817738675401, 1123598815738675288, 1123598816738675203), (1123598817738675402, 1123598815738675289, 1123598816738675203), (1123598817738675403, 1123598815738675290, 1123598816738675203), (1123598817738675404, 1123598815738675291, 1123598816738675203), (1123598817738675405, 1123598815738675292, 1123598816738675203), (1123598817738675406, 1123598815738675293, 1123598816738675203), (1123598817738675407, 1123598815738675294, 1123598816738675203), (1123598817738675408, 1123598815738675295, 1123598816738675203), (1123598817738675409, 1123598815738675296, 1123598816738675203), (1123598817738675410, 1123598815738675297, 1123598816738675203), (1123598817738675411, 1123598815738675201, 1123598816738675204), (1123598817738675412, 1123598815738675202, 1123598816738675204), (1123598817738675413, 1123598815738675219, 1123598816738675204), (1123598817738675414, 1123598815738675220, 1123598816738675204), (1123598817738675415, 1123598815738675221, 1123598816738675204), (1123598817738675416, 1123598815738675222, 1123598816738675204), (1123598817738675417, 1123598815738675280, 1123598816738675204), (1123598817738675418, 1123598815738675281, 1123598816738675204), (1123598817738675419, 1123598815738675282, 1123598816738675204), (1123598817738675420, 1123598815738675283, 1123598816738675204), (1123598817738675421, 1123598815738675284, 1123598816738675204), (1123598817738675422, 1123598815738675285, 1123598816738675204), (1123598817738675423, 1123598815738675286, 1123598816738675204), (1123598817738675424, 1123598815738675287, 1123598816738675204), (1123598817738675425, 1123598815738675288, 1123598816738675204), (1123598817738675426, 1123598815738675289, 1123598816738675204), (1123598817738675427, 1123598815738675290, 1123598816738675204), (1123598817738675428, 1123598815738675291, 1123598816738675204), (1123598817738675429, 1123598815738675292, 1123598816738675204), (1123598817738675430, 1123598815738675293, 1123598816738675204), (1123598817738675431, 1123598815738675294, 1123598816738675204), (1123598817738675432, 1123598815738675295, 1123598816738675204), (1123598817738675433, 1123598815738675296, 1123598816738675204), (1123598817738675434, 1123598815738675297, 1123598816738675204), (1123598817738675435, 1123598815738675201, 1123598816738675205), (1123598817738675436, 1123598815738675202, 1123598816738675205), (1123598817738675437, 1123598815738675219, 1123598816738675205), (1123598817738675438, 1123598815738675220, 1123598816738675205), (1123598817738675439, 1123598815738675221, 1123598816738675205), (1123598817738675440, 1123598815738675222, 1123598816738675205), (1123598817738675441, 1123598815738675280, 1123598816738675205), (1123598817738675442, 1123598815738675281, 1123598816738675205), (1123598817738675443, 1123598815738675282, 1123598816738675205), (1123598817738675444, 1123598815738675283, 1123598816738675205), (1123598817738675445, 1123598815738675284, 1123598816738675205), (1123598817738675446, 1123598815738675285, 1123598816738675205), (1123598817738675447, 1123598815738675286, 1123598816738675205), (1123598817738675448, 1123598815738675287, 1123598816738675205), (1123598817738675449, 1123598815738675288, 1123598816738675205), (1123598817738675450, 1123598815738675289, 1123598816738675205), (1123598817738675451, 1123598815738675290, 1123598816738675205), (1123598817738675452, 1123598815738675291, 1123598816738675205), (1123598817738675453, 1123598815738675292, 1123598816738675205), (1123598817738675454, 1123598815738675293, 1123598816738675205), (1123598817738675455, 1123598815738675294, 1123598816738675205), (1123598817738675456, 1123598815738675295, 1123598816738675205), (1123598817738675457, 1123598815738675296, 1123598816738675205), (1123598817738675458, 1123598815738675297, 1123598816738675205), (1149888292426575874, 1123598815738675201, 1123598816738675201), (1149888292476907522, 1123598815738675202, 1123598816738675201), (1149888292489490433, 1123598815738675219, 1123598816738675201), (1149888292502073345, 1123598815738675220, 1123598816738675201), (1149888292518850561, 1123598815738675221, 1123598816738675201), (1149888292535627777, 1123598815738675222, 1123598816738675201), (1149888292548210690, 1123598815738675280, 1123598816738675201), (1149888292560793602, 1123598815738675281, 1123598816738675201), (1149888292577570817, 1123598815738675282, 1123598816738675201), (1149888292594348033, 1123598815738675283, 1123598816738675201), (1149888292611125249, 1123598815738675284, 1123598816738675201), (1149888292623708162, 1123598815738675285, 1123598816738675201), (1149888292640485377, 1123598815738675286, 1123598816738675201), (1149888292653068289, 1123598815738675287, 1123598816738675201), (1149888292669845506, 1123598815738675288, 1123598816738675201), (1149888292682428417, 1123598815738675289, 1123598816738675201), (1149888292699205634, 1123598815738675290, 1123598816738675201), (1149888292711788545, 1123598815738675291, 1123598816738675201), (1149888292724371458, 1123598815738675292, 1123598816738675201), (1149888292741148674, 1123598815738675293, 1123598816738675201), (1149888292753731585, 1123598815738675294, 1123598816738675201), (1149888292766314497, 1123598815738675295, 1123598816738675201), (1149888292778897410, 1123598815738675296, 1123598816738675201), (1149888292791480321, 1123598815738675297, 1123598816738675201), (1149888292808257537, 1123598815738675210, 1123598816738675201), (1149888292820840449, 1123598815738675211, 1123598816738675201), (1149888292833423362, 1123598815738675212, 1123598816738675201), (1149888292846006274, 1123598815738675213, 1123598816738675201), (1149888292862783489, 1123598815738675214, 1123598816738675201), (1149888292875366401, 1123598815738675249, 1123598816738675201), (1149888292887949313, 1123598815738675215, 1123598816738675201), (1149888292904726530, 1123598815738675250, 1123598816738675201), (1149888292917309442, 1123598815738675216, 1123598816738675201), (1149888292929892353, 1123598815738675251, 1123598816738675201), (1149888292942475265, 1123598815738675217, 1123598816738675201), (1149888292959252482, 1123598815738675218, 1123598816738675201), (1149888292971835393, 1123598815738675252, 1123598816738675201), (1149888292984418306, 1123598815738675253, 1123598816738675201), (1149888292997001217, 1123598815738675254, 1123598816738675201), (1149888293009584129, 1123598815738675255, 1123598816738675201), (1149888293026361346, 1123598815738675266, 1123598816738675201), (1149888293043138562, 1123598815738675267, 1123598816738675201), (1149888293055721473, 1123598815738675268, 1123598816738675201), (1149888293072498690, 1123598815738675269, 1123598816738675201), (1149888293089275906, 1123598815738675270, 1123598816738675201), (1149888293101858817, 1123598815738675271, 1123598816738675201), (1149888293114441729, 1123598815738675272, 1123598816738675201), (1149888293127024642, 1123598815738675273, 1123598816738675201), (1149888293139607554, 1123598815738675274, 1123598816738675201), (1149888293152190465, 1123598815738675275, 1123598816738675201), (1149888293164773377, 1123598815738675276, 1123598816738675201), (1149888293177356290, 1123598815738675277, 1123598816738675201), (1149888293189939201, 1123598815738675278, 1123598816738675201), (1149888293202522113, 1123598815738675279, 1123598816738675201), (1149888293215105026, 1123598815738675298, 1123598816738675201), (1149888293227687938, 1123598815738675299, 1123598816738675201), (1149888293240270850, 1123598815738675301, 1123598816738675201), (1149888293252853762, 1123598815738675302, 1123598816738675201), (1149888293265436674, 1123598815738675303, 1123598816738675201), (1149888293278019586, 1123598815738675304, 1123598816738675201), (1149888293290602497, 1123598815738675305, 1123598816738675201), (1149888293303185410, 1123598815738675307, 1123598816738675201), (1149888293315768322, 1123598815738675308, 1123598816738675201), (1149888293328351234, 1123598815738675241, 1123598816738675201), (1149888293336739841, 1123598815738675242, 1123598816738675201), (1149888293349322753, 1123598815738675243, 1123598816738675201), (1149888293361905666, 1123598815738675244, 1123598816738675201), (1149888293374488578, 1123598815738675309, 1123598816738675201), (1149888293387071489, 1123598815738675310, 1123598816738675201), (1149888293399654402, 1123598815738675311, 1123598816738675201), (1149888293412237313, 1123598815738675312, 1123598816738675201), (1149888293424820226, 1123598815738675203, 1123598816738675201), (1149888293454180354, 1123598815738675204, 1123598816738675201), (1149888293483540481, 1123598815738675223, 1123598816738675201), (1149888293512900609, 1123598815738675224, 1123598816738675201), (1149888293529677826, 1123598815738675225, 1123598816738675201), (1149888293554843649, 1123598815738675226, 1123598816738675201), (1149888293571620866, 1123598815738675227, 1123598816738675201), (1149888293588398081, 1123598815738675228, 1123598816738675201), (1149888293605175297, 1123598815738675205, 1123598816738675201), (1149888293617758209, 1123598815738675229, 1123598816738675201), (1149888293630341121, 1123598815738675230, 1123598816738675201), (1149888293642924033, 1123598815738675231, 1123598816738675201), (1149888293659701250, 1123598815738675232, 1123598816738675201), (1149888293672284162, 1123598815738675206, 1123598816738675201), (1149888293684867074, 1123598815738675233, 1123598816738675201), (1149888293697449986, 1123598815738675234, 1123598816738675201), (1149888293710032897, 1123598815738675235, 1123598816738675201), (1149888293722615809, 1123598815738675236, 1123598816738675201), (1149888293735198722, 1123598815738675207, 1123598816738675201), (1149888293747781633, 1123598815738675237, 1123598816738675201), (1149888293760364545, 1123598815738675238, 1123598816738675201), (1149888293772947458, 1123598815738675239, 1123598816738675201), (1149888293785530370, 1123598815738675240, 1123598816738675201), (1149888293798113282, 1123598815738675306, 1123598816738675201), (1149888293810696194, 1123598815738675208, 1123598816738675201), (1149888293819084802, 1123598815738675313, 1123598816738675201), (1149888293831667714, 1123598815738675314, 1123598816738675201), (1149888293844250626, 1123598815738675315, 1123598816738675201), (1149888293856833538, 1123598815738675316, 1123598816738675201), (1149888293856833539, 1123598815738675317, 1123598816738675201), (1149888293869416450, 1123598815738675209, 1123598816738675201), (1149888293881999362, 1123598815738675245, 1123598816738675201), (1149888293894582274, 1123598815738675246, 1123598816738675201), (1149888293907165186, 1123598815738675247, 1123598816738675201), (1149888293919748097, 1123598815738675248, 1123598816738675201), (1149888293932331010, 1123598815738675256, 1123598816738675201), (1149888293940719618, 1123598815738675257, 1123598816738675201), (1149888293953302530, 1123598815738675258, 1123598816738675201), (1149888293965885441, 1123598815738675259, 1123598816738675201), (1149888293978468354, 1123598815738675260, 1123598816738675201), (1149888293986856962, 1123598815738675261, 1123598816738675201), (1149888293999439874, 1123598815738675262, 1123598816738675201), (1149888294007828482, 1123598815738675263, 1123598816738675201), (1149888294020411393, 1123598815738675264, 1123598816738675201), (1149888294028800002, 1123598815738675265, 1123598816738675201), (1161272593873322991, 1161272593873321991, 1123598816738675201), (1161272593873322992, 1161272593873321992, 1123598816738675201), (1161272593873322993, 1161272593873321993, 1123598816738675201), (1161272593873322994, 1161272593873321994, 1123598816738675201), (1161272593873322995, 1161272593873321995, 1123598816738675201), (1161272693873322991, 1164733369658963251, 1123598816738675201), (1161272693873322992, 1164733369658963252, 1123598816738675201), (1161272693873322993, 1164733369658963253, 1123598816738675201), (1161272693873322994, 1164733369658963254, 1123598816738675201), (1161272693873322995, 1164733369658963255, 1123598816738675201), (1161272793873322991, 1164733379658963251, 1123598816738675201), (1161272793873322992, 1164733379658963252, 1123598816738675201), (1161272793873322993, 1164733379658963253, 1123598816738675201), (1161272793873322994, 1164733379658963254, 1123598816738675201), (1161272793873322995, 1164733379658963255, 1123598816738675201), (1161272893873222991, 1164733389658962251, 1123598816738675201), (1161272893873222992, 1164733389658962252, 1123598816738675201), (1161272893873222993, 1164733389658962253, 1123598816738675201), (1161272893873222994, 1164733389658962254, 1123598816738675201), (1161272893873222995, 1164733389658962255, 1123598816738675201), (1161272893873222996, 1164733389658962256, 1123598816738675201), (1161272893873322991, 1164733389658963251, 1123598816738675201), (1161272893875225001, 1164733389668962251, 1123598816738675201), (1161272893875225002, 1164733389668962252, 1123598816738675201), (1161272893875225003, 1164733389668962253, 1123598816738675201), (1161272893875225004, 1164733389668962254, 1123598816738675201), (1161272893875225005, 1164733389668962255, 1123598816738675201), (1161272893875225006, 1164733389668962256, 1123598816738675201), (1161272893875226001, 1164733399668962201, 1123598816738675201), (1161272893875226002, 1164733399668962202, 1123598816738675201), (1161272893875226003, 1164733399668962203, 1123598816738675201), (1161272893875226004, 1164733399668962204, 1123598816738675201), (1161272893875226005, 1164733399668962205, 1123598816738675201), (1161272893875226006, 1164733399668962206, 1123598816738675201), (1161272893875226007, 1164733399668962207, 1123598816738675201), (1161272893875227001, 1164733399669962201, 1123598816738675201), (1161272893875227002, 1164733399669962202, 1123598816738675201), (1161272893875227003, 1164733399669962203, 1123598816738675201), (1161272893875227004, 1164733399669962204, 1123598816738675201), (1161272893875228001, 1164733399669962301, 1123598816738675201), (1161272893875228002, 1164733399669962302, 1123598816738675201), (1161272893875228003, 1164733399669962303, 1123598816738675201), (1161272893875228004, 1164733399669962304, 1123598816738675201);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_role_scope
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_role_scope`;
+CREATE TABLE `blade_role_scope`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `scope_category` int(2) NULL DEFAULT NULL COMMENT '权限类型(1:数据权限、2:接口权限)',
+  `scope_id` bigint(20) NULL DEFAULT NULL COMMENT '权限id',
+  `role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色数据权限关联表';
+
+-- ----------------------------
+-- Table structure for blade_scope_api
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_scope_api`;
+CREATE TABLE `blade_scope_api`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单主键',
+  `resource_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源编号',
+  `scope_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口权限名',
+  `scope_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口权限地址',
+  `scope_type` int(2) NULL DEFAULT NULL COMMENT '接口权限类型',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口权限备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '接口权限表';
+
+-- ----------------------------
+-- Table structure for blade_scope_data
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_scope_data`;
+CREATE TABLE `blade_scope_data`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单主键',
+  `resource_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源编号',
+  `scope_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限名称',
+  `scope_field` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限字段',
+  `scope_class` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限类名',
+  `scope_column` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限字段',
+  `scope_type` int(2) NULL DEFAULT NULL COMMENT '数据权限类型',
+  `scope_value` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限值域',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据权限表';
+
+-- ----------------------------
+-- Table structure for blade_sms
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_sms`;
+CREATE TABLE `blade_sms`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `category` int(2) NULL DEFAULT NULL COMMENT '分类',
+  `sms_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源编号',
+  `template_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板ID',
+  `access_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'accessKey',
+  `secret_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'secretKey',
+  `region_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'regionId',
+  `sign_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '短信签名',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '短信配置表';
+
+-- ----------------------------
+-- Table structure for blade_tenant
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_tenant`;
+CREATE TABLE `blade_tenant`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `tenant_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户名称',
+  `domain_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '域名地址',
+  `background_url` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '系统背景',
+  `linkman` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人',
+  `contact_number` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系电话',
+  `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系地址',
+  `account_number` int(11) NULL DEFAULT -1 COMMENT '账号额度',
+  `expire_time` datetime(0) NULL DEFAULT NULL COMMENT '过期时间',
+  `package_id` bigint(20) NULL DEFAULT NULL COMMENT '产品包ID',
+  `datasource_id` bigint(20) NULL DEFAULT NULL COMMENT '数据源ID',
+  `license_key` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '授权码',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '租户表';
+
+-- ----------------------------
+-- Records of blade_tenant
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_tenant` VALUES (1123598820738675201, '000000', '管理组', NULL, NULL, 'admin', '666666', '管理组', -1, NULL, NULL, NULL, NULL, 1123598821738675201, 1123598813738675201, '2019-01-01 00:00:39', 1123598821738675201, '2019-01-01 00:00:39', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_tenant_package
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_tenant_package`;
+CREATE TABLE `blade_tenant_package`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `package_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '产品包名',
+  `menu_id` varchar(3000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单ID',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '租户产品表';
+
+-- ----------------------------
+-- Table structure for blade_top_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_top_menu`;
+CREATE TABLE `blade_top_menu`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户id',
+  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '顶部菜单编号',
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '顶部菜单名',
+  `source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '顶部菜单资源',
+  `sort` int(2) NULL DEFAULT NULL COMMENT '顶部菜单排序',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '顶部菜单表';
+
+-- ----------------------------
+-- Table structure for blade_top_menu_setting
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_top_menu_setting`;
+CREATE TABLE `blade_top_menu_setting`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `top_menu_id` bigint(20) NULL DEFAULT NULL COMMENT '顶部菜单主键',
+  `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单主键',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '顶部菜单配置表';
+
+-- ----------------------------
+-- Table structure for blade_user
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_user`;
+CREATE TABLE `blade_user`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户编号',
+  `user_type` int(2) NULL DEFAULT NULL COMMENT '用户平台',
+  `account` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号',
+  `password` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码',
+  `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '昵称',
+  `real_name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '真名',
+  `avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',
+  `email` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱',
+  `phone` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机',
+  `birthday` datetime(0) NULL DEFAULT NULL COMMENT '生日',
+  `sex` int(2) NULL DEFAULT NULL COMMENT '性别',
+  `role_id` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色id',
+  `dept_id` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门id',
+  `post_id` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位id',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户表';
+
+-- ----------------------------
+-- Records of blade_user
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_user` VALUES (1123598821738675201, '000000', NULL, 1, 'admin', '90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad', '管理员', '管理员', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'admin@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675201', '1123598813738675201', '1123598817738675201', 1123598821738675201, 1123598813738675201, '2018-08-08 00:00:00', 1123598821738675201, '2018-08-08 00:00:00', 1, 0), (1123598821738675202, '000000', NULL, 1, 'hr', '5e79b90f7bba52d54115f086e48f539016a27ec6', '人事', '人事', '', 'hr@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675203', '1123598813738675202', '1123598817738675207', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:10', 1123598821738675201, '2019-04-27 17:03:10', 1, 0), (1123598821738675203, '000000', NULL, 1, 'manager', 'dfbaa3b61caa3a319f463cc165085aa8c822d2ce', '经理', '经理', '', 'manager@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675204', '1123598813738675202', '1123598817738675206', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:38', 1123598821738675201, '2019-04-27 17:03:38', 1, 0), (1123598821738675204, '000000', NULL, 1, 'boss', 'abe57d23e18f7ad8ea99c86e430c90a05119a9d3', '老板', '老板', '', 'boss@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675205', '1123598813738675202', '1123598817738675201', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:55', 1123598821738675201, '2019-04-27 17:03:55', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_user_app
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_user_app`;
+CREATE TABLE `blade_user_app`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `user_id` bigint(20) NULL DEFAULT 0 COMMENT '用户ID',
+  `user_ext` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户拓展信息',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户平台拓展表';
+
+-- ----------------------------
+-- Table structure for blade_user_dept
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_user_dept`;
+CREATE TABLE `blade_user_dept`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `user_id` bigint(20) NULL DEFAULT 0 COMMENT '用户ID',
+  `dept_id` bigint(20) NULL DEFAULT 0 COMMENT '部门ID',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户部门表';
+
+-- ----------------------------
+-- Records of blade_user_dept
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_user_dept` VALUES (1203503640757788674, 1123598821738675201, 1123598813738675201), (1203503653323923458, 1123598821738675202, 1123598813738675202), (1203503663402835969, 1123598821738675203, 1123598813738675202), (1203503672911323137, 1123598821738675204, 1123598813738675202);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_user_oauth
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_user_oauth`;
+CREATE TABLE `blade_user_oauth`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户ID',
+  `uuid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第三方系统用户ID',
+  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
+  `username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号',
+  `nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
+  `avatar` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',
+  `blog` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用主页',
+  `company` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公司名',
+  `location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址',
+  `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮件',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `gender` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别',
+  `source` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '来源',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户第三方认证表';
+
+-- ----------------------------
+-- Table structure for blade_user_other
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_user_other`;
+CREATE TABLE `blade_user_other`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `user_id` bigint(20) NULL DEFAULT 0 COMMENT '用户ID',
+  `user_ext` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户拓展信息',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户平台拓展表';
+
+-- ----------------------------
+-- Table structure for blade_user_web
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_user_web`;
+CREATE TABLE `blade_user_web`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `user_id` bigint(20) NULL DEFAULT 0 COMMENT '用户ID',
+  `user_ext` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户拓展信息',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户平台拓展表';
+
+SET FOREIGN_KEY_CHECKS = 1;
diff --git a/skjcmanager/doc/sql/mysql/bladex-sword-mysql.sql b/skjcmanager/doc/sql/mysql/bladex-sword-mysql.sql
new file mode 100644
index 0000000..3d2ca49
--- /dev/null
+++ b/skjcmanager/doc/sql/mysql/bladex-sword-mysql.sql
@@ -0,0 +1,885 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : mysql_localhost
+ Source Server Type    : MySQL
+ Source Server Version : 50729
+ Source Host           : localhost:3306
+ Source Schema         : bladex
+
+ Target Server Type    : MySQL
+ Target Server Version : 50729
+ File Encoding         : 65001
+
+ Date: 07/08/2022 17:07:37
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for blade_attach
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_attach`;
+CREATE TABLE `blade_attach`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `link` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件地址',
+  `domain_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件域名',
+  `name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件名称',
+  `original_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件原名',
+  `extension` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件拓展名',
+  `attach_size` bigint(20) NULL DEFAULT NULL COMMENT '附件大小',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '附件表';
+
+-- ----------------------------
+-- Table structure for blade_client
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_client`;
+CREATE TABLE `blade_client`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `client_id` varchar(48) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端id',
+  `client_secret` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端密钥',
+  `resource_ids` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源集合',
+  `scope` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '授权范围',
+  `authorized_grant_types` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '授权类型',
+  `web_server_redirect_uri` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回调地址',
+  `authorities` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限',
+  `access_token_validity` int(11) NOT NULL COMMENT '令牌过期秒数',
+  `refresh_token_validity` int(11) NOT NULL COMMENT '刷新令牌过期秒数',
+  `additional_information` varchar(4096) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加说明',
+  `autoapprove` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '自动授权',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NOT NULL COMMENT '状态',
+  `is_deleted` int(2) NOT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '客户端表';
+
+-- ----------------------------
+-- Records of blade_client
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_client` VALUES (1123598811738675201, 'sword', 'sword_secret', NULL, 'all', 'refresh_token,password,authorization_code,captcha,social', 'http://localhost:8888', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2019-03-24 10:40:55', 1123598815738675201, '2019-03-24 10:40:59', 1, 0), (1123598811738675202, 'saber', 'saber_secret', NULL, 'all', 'refresh_token,password,authorization_code,captcha,social', 'http://localhost:1888', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2019-03-24 10:42:29', 1123598815738675201, '2019-03-24 10:42:32', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_code
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_code`;
+CREATE TABLE `blade_code`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `model_id` bigint(20) NULL DEFAULT NULL COMMENT '数据模型主键',
+  `service_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务名称',
+  `code_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模块名称',
+  `table_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表名',
+  `table_prefix` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表前缀',
+  `pk_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主键名',
+  `package_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '后端包名',
+  `template_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模版类型',
+  `author` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '作者信息',
+  `sub_model_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '子表模型主键',
+  `sub_fk_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '子表绑定外键',
+  `tree_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '树主键字段',
+  `tree_pid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '树父主键字段',
+  `tree_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '树名称字段',
+  `base_mode` int(2) NULL DEFAULT NULL COMMENT '基础业务模式',
+  `wrap_mode` int(2) NULL DEFAULT NULL COMMENT '包装器模式',
+  `feign_mode` int(2) NULL DEFAULT NULL COMMENT '远程调用模式',
+  `code_style` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '代码风格',
+  `api_path` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '后端路径',
+  `web_path` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '前端路径',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '代码生成表';
+
+-- ----------------------------
+-- Table structure for blade_datasource
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_datasource`;
+CREATE TABLE `blade_datasource`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
+  `driver_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '驱动类',
+  `url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '连接地址',
+  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
+  `password` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据源配置表';
+
+-- ----------------------------
+-- Records of blade_datasource
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_datasource` VALUES (1161483357481541634, 'mysql', 'com.mysql.cj.jdbc.Driver', 'jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true', 'root', 'root', 'mysql', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:06', 1123598821738675201, '2020-08-08 12:20:06', 1, 0), (1161483504353484802, 'postgresql', 'org.postgresql.Driver', 'jdbc:postgresql://127.0.0.1:5432/bladex', 'postgres', '123456', 'postgresql', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:02', 1123598821738675201, '2020-08-08 12:20:02', 1, 0), (1161483594023510018, 'oracle', 'oracle.jdbc.OracleDriver', 'jdbc:oracle:thin:@127.0.0.1:1521:orcl', 'BLADEX', 'BLADEX', 'oracle', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:03', 1123598821738675201, '2020-08-08 12:20:03', 1, 0), (1161483594023510020, 'sqlserver', 'com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex', 'bladex', 'bladex', 'sqlserver', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:03', 1123598821738675201, '2020-08-08 12:20:03', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_dept
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_dept`;
+CREATE TABLE `blade_dept`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父主键',
+  `ancestors` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '祖级列表',
+  `dept_category` int(2) NULL DEFAULT NULL COMMENT '部门类型',
+  `dept_name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门名',
+  `full_name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门全称',
+  `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '机构表';
+
+-- ----------------------------
+-- Records of blade_dept
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_dept` VALUES (1123598813738675201, '000000', 0, '0', 1, '布雷德科技', '上海布雷德科技有限公司', 1, NULL, 0), (1123598813738675202, '000000', 1123598813738675201, '0,1123598813738675201', 1, '常州布雷德', '常州布雷德科技有限公司', 1, NULL, 0), (1123598813738675203, '000000', 1123598813738675201, '0,1123598813738675201', 1, '苏州布雷德', '苏州布雷德科技有限公司', 1, NULL, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_dict
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_dict`;
+CREATE TABLE `blade_dict`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父主键',
+  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典码',
+  `dict_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典值',
+  `dict_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典名称',
+  `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典备注',
+  `is_sealed` int(2) NULL DEFAULT 0 COMMENT '是否已封存',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典表';
+
+-- ----------------------------
+-- Records of blade_dict
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_dict` VALUES (1123598814738675201, 0, 'sex', '-1', '性别', 1, NULL, 0, 0), (1123598814738675202, 1123598814738675201, 'sex', '1', '男', 1, NULL, 0, 0), (1123598814738675203, 1123598814738675201, 'sex', '2', '女', 2, NULL, 0, 0), (1123598814738675204, 0, 'notice', '-1', '通知类型', 2, NULL, 0, 0), (1123598814738675205, 1123598814738675204, 'notice', '1', '发布通知', 1, NULL, 0, 0), (1123598814738675206, 1123598814738675204, 'notice', '2', '批转通知', 2, NULL, 0, 0), (1123598814738675207, 1123598814738675204, 'notice', '3', '转发通知', 3, NULL, 0, 0), (1123598814738675208, 1123598814738675204, 'notice', '4', '指示通知', 4, NULL, 0, 0), (1123598814738675209, 1123598814738675204, 'notice', '5', '任免通知', 5, NULL, 0, 0), (1123598814738675210, 1123598814738675204, 'notice', '6', '事务通知', 6, NULL, 0, 0), (1123598814738675211, 0, 'menu_category', '-1', '菜单类型', 3, NULL, 0, 0), (1123598814738675212, 1123598814738675211, 'menu_category', '1', '菜单', 1, NULL, 0, 0), (1123598814738675213, 1123598814738675211, 'menu_category', '2', '按钮', 2, NULL, 0, 0), (1123598814738675214, 0, 'button_func', '-1', '按钮功能', 4, NULL, 0, 0), (1123598814738675215, 1123598814738675214, 'button_func', '1', '工具栏', 1, NULL, 0, 0), (1123598814738675216, 1123598814738675214, 'button_func', '2', '操作栏', 2, NULL, 0, 0), (1123598814738675217, 1123598814738675214, 'button_func', '3', '工具操作栏', 3, NULL, 0, 0), (1123598814738675218, 0, 'yes_no', '-1', '是否', 5, NULL, 0, 0), (1123598814738675219, 1123598814738675218, 'yes_no', '1', '否', 1, NULL, 0, 0), (1123598814738675220, 1123598814738675218, 'yes_no', '2', '是', 2, NULL, 0, 0), (1123598814738675221, 0, 'flow', '-1', '流程类型', 5, NULL, 0, 0), (1123598814738675222, 1123598814738675221, 'flow', '1', '请假流程', 1, 'leave', 0, 0), (1123598814738675223, 1123598814738675221, 'flow', '2', '报销流程', 2, 'expense', 0, 0), (1123598814738675227, 0, 'org_category', '-1', '机构类型', 7, NULL, 0, 0), (1123598814738675228, 1123598814738675227, 'org_category', '1', '公司', 1, NULL, 0, 0), (1123598814738675229, 1123598814738675227, 'org_category', '2', '部门', 2, NULL, 0, 0), (1123598814738675230, 1123598814738675227, 'org_category', '3', '小组', 3, NULL, 0, 0), (1123598814738675231, 0, 'data_scope_type', '-1', '数据权限', 8, NULL, 0, 0), (1123598814738675232, 1123598814738675231, 'data_scope_type', '1', '全部可见', 1, NULL, 0, 0), (1123598814738675233, 1123598814738675231, 'data_scope_type', '2', '本人可见', 2, NULL, 0, 0), (1123598814738675234, 1123598814738675231, 'data_scope_type', '3', '所在机构可见', 3, NULL, 0, 0), (1123598814738675235, 1123598814738675231, 'data_scope_type', '4', '所在机构及子级可见', 4, NULL, 0, 0), (1123598814738675236, 1123598814738675231, 'data_scope_type', '5', '自定义', 5, NULL, 0, 0), (1123598814738675237, 0, 'api_scope_type', '-1', '接口权限', 10, NULL, 0, 0), (1123598814738675238, 1123598814738675237, 'api_scope_type', '1', '系统接口', 1, NULL, 0, 0), (1123598814738675239, 1123598814738675237, 'api_scope_type', '2', '业务接口', 2, NULL, 0, 0), (1123598814738675240, 0, 'scope_category', '-1', '权限类型', 10, NULL, 0, 0), (1123598814738675241, 1123598814738675240, 'scope_category', '1', '数据权限', 1, NULL, 0, 0), (1123598814738675242, 1123598814738675240, 'scope_category', '2', '接口权限', 2, NULL, 0, 0), (1123598814738676224, 0, 'oss', '-1', '对象存储类型', 6, NULL, 0, 0), (1123598814738676225, 1123598814738676224, 'oss', '1', 'minio', 1, NULL, 0, 0), (1123598814738676226, 1123598814738676224, 'oss', '2', '七牛云', 2, NULL, 0, 0), (1123598814738676227, 1123598814738676224, 'oss', '3', '阿里云', 3, NULL, 0, 0), (1123598814738676228, 1123598814738676224, 'oss', '4', '腾讯云', 4, NULL, 0, 0), (1123598814738677220, 0, 'sms', '-1', '短信服务类型', 11, NULL, 0, 0), (1123598814738677221, 1123598814738677220, 'sms', '1', '云片', 1, NULL, 0, 0), (1123598814738677222, 1123598814738677220, 'sms', '2', '七牛云', 2, NULL, 0, 0), (1123598814738677223, 1123598814738677220, 'sms', '3', '阿里云', 3, NULL, 0, 0), (1123598814738677224, 1123598814738677220, 'sms', '4', '腾讯云', 4, NULL, 0, 0), (1123598814738777220, 0, 'post_category', '-1', '岗位类型', 12, NULL, 0, 0), (1123598814738777221, 1123598814738777220, 'post_category', '1', '高层', 1, NULL, 0, 0), (1123598814738777222, 1123598814738777220, 'post_category', '2', '中层', 2, NULL, 0, 0), (1123598814738777223, 1123598814738777220, 'post_category', '3', '基层', 3, NULL, 0, 0), (1123598814738777224, 1123598814738777220, 'post_category', '4', '其他', 4, NULL, 0, 0), (1123598814738777230, 0, 'region', '-1', '行政区划', 13, NULL, 0, 0), (1123598814738777231, 1123598814738777230, 'region', '0', '国家', 0, NULL, 0, 0), (1123598814738777232, 1123598814738777230, 'region', '1', '省份/直辖市', 1, NULL, 0, 0), (1123598814738777233, 1123598814738777230, 'region', '2', '地市', 2, NULL, 0, 0), (1123598814738777234, 1123598814738777230, 'region', '3', '区县', 3, NULL, 0, 0), (1123598814738777235, 1123598814738777230, 'region', '4', '乡镇', 4, NULL, 0, 0), (1123598814738777236, 1123598814738777230, 'region', '5', '村委', 5, NULL, 0, 0), (1123598814738778200, 0, 'user_type', '-1', '用户平台', 14, NULL, 0, 0), (1123598814738778201, 1123598814738778200, 'user_type', '1', 'WEB', 1, NULL, 0, 0), (1123598814738778202, 1123598814738778200, 'user_type', '2', 'APP', 2, NULL, 0, 0), (1123598814738778203, 1123598814738778200, 'user_type', '3', 'OTHER', 3, NULL, 0, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_dict_biz
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_dict_biz`;
+CREATE TABLE `blade_dict_biz`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户ID',
+  `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父主键',
+  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典码',
+  `dict_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典值',
+  `dict_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典名称',
+  `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典备注',
+  `is_sealed` int(2) NULL DEFAULT 0 COMMENT '是否已封存',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '业务字典表';
+
+-- ----------------------------
+-- Table structure for blade_log_api
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_log_api`;
+CREATE TABLE `blade_log_api`  (
+  `id` bigint(20) NOT NULL COMMENT '编号',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `service_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务ID',
+  `server_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器名',
+  `server_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器IP地址',
+  `env` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器环境',
+  `type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '日志类型',
+  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '日志标题',
+  `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作方式',
+  `request_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求URI',
+  `user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户代理',
+  `remote_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址',
+  `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类',
+  `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名',
+  `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '操作提交的数据',
+  `time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '执行时间',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '接口日志表';
+
+-- ----------------------------
+-- Table structure for blade_log_error
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_log_error`;
+CREATE TABLE `blade_log_error`  (
+  `id` bigint(20) NOT NULL COMMENT '编号',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `service_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务ID',
+  `server_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器名',
+  `server_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器IP地址',
+  `env` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '系统环境',
+  `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作方式',
+  `request_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求URI',
+  `user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户代理',
+  `stack_trace` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '堆栈',
+  `exception_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异常名',
+  `message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '异常信息',
+  `line_number` int(11) NULL DEFAULT NULL COMMENT '错误行数',
+  `remote_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址',
+  `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类',
+  `file_name` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件名',
+  `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名',
+  `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '操作提交的数据',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '错误日志表';
+
+-- ----------------------------
+-- Table structure for blade_log_usual
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_log_usual`;
+CREATE TABLE `blade_log_usual`  (
+  `id` bigint(20) NOT NULL COMMENT '编号',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `service_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务ID',
+  `server_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器名',
+  `server_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器IP地址',
+  `env` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '系统环境',
+  `log_level` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日志级别',
+  `log_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日志业务id',
+  `log_data` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '日志数据',
+  `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作方式',
+  `request_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求URI',
+  `remote_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址',
+  `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类',
+  `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名',
+  `user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户代理',
+  `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '操作提交的数据',
+  `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者',
+  `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通用日志表';
+
+-- ----------------------------
+-- Table structure for blade_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_menu`;
+CREATE TABLE `blade_menu`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父级菜单',
+  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单编号',
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单名称',
+  `alias` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单别名',
+  `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求地址',
+  `source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单资源',
+  `sort` int(2) NULL DEFAULT NULL COMMENT '排序',
+  `category` int(2) NULL DEFAULT NULL COMMENT '菜单类型',
+  `action` int(2) NULL DEFAULT 0 COMMENT '操作按钮类型',
+  `is_open` int(2) NULL DEFAULT 1 COMMENT '是否打开新页面',
+  `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件地址',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单表';
+
+-- ----------------------------
+-- Records of blade_menu
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_menu` VALUES (1123598815738675201, 0, 'desk', '工作台', 'menu', '/desk', 'desktop', 1, 1, 0, 1, '', NULL, 0), (1123598815738675202, 1123598815738675201, 'notice', '通知公告', 'menu', '/desk/notice', NULL, 1, 1, 0, 1, '', NULL, 0), (1123598815738675203, 0, 'system', '系统管理', 'menu', '/system', 'setting', 99, 1, 0, 1, '', NULL, 0), (1123598815738675204, 1123598815738675203, 'user', '用户管理', 'menu', '/system/user', NULL, 1, 1, 0, 1, '', NULL, 0), (1123598815738675205, 1123598815738675203, 'dept', '机构管理', 'menu', '/system/dept', NULL, 2, 1, 0, 1, '', NULL, 0), (1123598815738675206, 1123598815738675203, 'dict', '系统字典', 'menu', '/system/dict', NULL, 4, 1, 0, 1, '', NULL, 0), (1123598815738675207, 1123598815738675203, 'menu', '菜单管理', 'menu', '/system/menu', NULL, 6, 1, 0, 1, '', NULL, 0), (1123598815738675208, 1123598815738675203, 'topmenu', '顶部菜单', 'menu', '/system/topmenu', '', 7, 1, 0, 1, '', NULL, 0), (1123598815738675209, 1123598815738675203, 'param', '参数管理', 'menu', '/system/param', NULL, 8, 1, 0, 1, '', NULL, 0), (1123598815738675210, 0, 'monitor', '系统监控', 'menu', '/monitor', 'fund', 3, 1, 0, 1, '', NULL, 0), (1123598815738675211, 1123598815738675210, 'doc', '接口文档', 'menu', 'http://localhost:18000/doc.html', NULL, 1, 1, 0, 2, '', NULL, 0), (1123598815738675212, 1123598815738675210, 'admin', '服务治理', 'menu', 'http://localhost:7002', NULL, 2, 1, 0, 2, '', NULL, 0), (1123598815738675213, 1123598815738675210, 'log', '日志管理', 'menu', '/monitor/log', NULL, 8, 1, 0, 1, '', NULL, 0), (1123598815738675214, 1123598815738675213, 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, 1, 1, 0, 1, '', NULL, 0), (1123598815738675215, 1123598815738675213, 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, 2, 1, 0, 1, '', NULL, 0), (1123598815738675216, 1123598815738675213, 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, 3, 1, 0, 1, '', NULL, 0), (1123598815738675217, 0, 'tool', '研发工具', 'menu', '/tool', 'tool', 4, 1, 0, 1, '', NULL, 0), (1123598815738675218, 1123598815738675217, 'code', '代码生成', 'menu', '/tool/code', NULL, 1, 1, 0, 1, '', NULL, 0), (1123598815738675219, 1123598815738675202, 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675220, 1123598815738675202, 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675221, 1123598815738675202, 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675222, 1123598815738675202, 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675223, 1123598815738675204, 'user_add', '新增', 'add', '/system/user/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675224, 1123598815738675204, 'user_edit', '修改', 'edit', '/system/user/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675225, 1123598815738675204, 'user_delete', '删除', 'delete', '/api/blade-user/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675226, 1123598815738675204, 'user_role', '角色配置', 'role', NULL, 'user-add', 4, 2, 1, 1, '', NULL, 0), (1123598815738675227, 1123598815738675204, 'user_reset', '密码重置', 'reset-password', '/api/blade-user/reset-password', 'retweet', 5, 2, 1, 1, '', NULL, 0), (1123598815738675228, 1123598815738675204, 'user_view', '查看', 'view', '/system/user/view', 'file-text', 6, 2, 2, 1, '', NULL, 0), (1123598815738675229, 1123598815738675205, 'dept_add', '新增', 'add', '/system/dept/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675230, 1123598815738675205, 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675231, 1123598815738675205, 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675232, 1123598815738675205, 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675233, 1123598815738675206, 'dict_add', '新增', 'add', '/system/dict/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675234, 1123598815738675206, 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675235, 1123598815738675206, 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675236, 1123598815738675206, 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675237, 1123598815738675207, 'menu_add', '新增', 'add', '/system/menu/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675238, 1123598815738675207, 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675239, 1123598815738675207, 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675240, 1123598815738675207, 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675241, 1123598815738675308, 'role_add', '新增', 'add', '/authority/role/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675242, 1123598815738675308, 'role_edit', '修改', 'edit', '/authority/role/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675243, 1123598815738675308, 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675244, 1123598815738675308, 'role_view', '查看', 'view', '/authority/role/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675245, 1123598815738675209, 'param_add', '新增', 'add', '/system/param/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675246, 1123598815738675209, 'param_edit', '修改', 'edit', '/system/param/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675247, 1123598815738675209, 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675248, 1123598815738675209, 'param_view', '查看', 'view', '/system/param/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675249, 1123598815738675214, 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675250, 1123598815738675215, 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675251, 1123598815738675216, 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675252, 1123598815738675218, 'code_add', '新增', 'add', '/tool/code/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675253, 1123598815738675218, 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675254, 1123598815738675218, 'code_delete', '删除', 'delete', '/api/blade-develop/code/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675255, 1123598815738675218, 'code_view', '查看', 'view', '/tool/code/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675256, 1123598815738675203, 'tenant', '租户管理', 'menu', '/system/tenant', NULL, 9, 1, 0, 1, '', NULL, 0), (1123598815738675257, 1123598815738675256, 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675258, 1123598815738675256, 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675259, 1123598815738675256, 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675260, 1123598815738675256, 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675261, 1123598815738675203, 'client', '应用管理', 'menu', '/system/client', NULL, 10, 1, 0, 1, '', NULL, 0), (1123598815738675262, 1123598815738675261, 'client_add', '新增', 'add', '/system/client/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675263, 1123598815738675261, 'client_edit', '修改', 'edit', '/system/client/edit', 'form', 2, 2, 2, 2, '', NULL, 0), (1123598815738675264, 1123598815738675261, 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', 3, 2, 3, 3, '', NULL, 0), (1123598815738675265, 1123598815738675261, 'client_view', '查看', 'view', '/system/client/view', 'file-text', 4, 2, 2, 2, '', NULL, 0), (1123598815738675266, 0, 'flow', '流程管理', 'menu', '/flow', 'stock', 5, 1, 0, 1, '', NULL, 0), (1123598815738675267, 1123598815738675266, 'flow_model', '模型管理', 'menu', '/flow/model', NULL, 1, 1, 0, 1, '', NULL, 0), (1123598815738675268, 1123598815738675267, 'flow_model_create', '创建', 'create', '', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675269, 1123598815738675267, 'flow_model_update', '编辑', 'update', '', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675270, 1123598815738675267, 'flow_model_deploy', '部署', 'deploy', '', 'cloud-upload', 3, 2, 2, 1, '', NULL, 0), (1123598815738675271, 1123598815738675267, 'flow_model_download', '下载', 'download', '', 'download', 4, 2, 2, 1, '', NULL, 0), (1123598815738675272, 1123598815738675267, 'flow_model_delete', '删除', 'delete', '/api/blade-flow/model/remove', 'delete', 5, 2, 3, 1, '', NULL, 0), (1123598815738675273, 1123598815738675266, 'flow_deploy', '流程部署', 'menu', '/flow/deploy', NULL, 2, 1, 0, 1, '', NULL, 0), (1123598815738675274, 1123598815738675266, 'flow_manager', '流程管理', 'menu', '/flow/manager', NULL, 3, 1, 0, 1, '', NULL, 0), (1123598815738675275, 1123598815738675274, 'flow_manager_state', '变更状态', 'state', '', 'plus', 1, 2, 2, 1, '', NULL, 0), (1123598815738675276, 1123598815738675274, 'flow_manager_image', '流程图', 'image', '', 'image', 2, 2, 2, 1, '', NULL, 0), (1123598815738675277, 1123598815738675274, 'flow_manager_remove', '删除', 'remove', '', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675278, 1123598815738675266, 'flow_follow', '流程跟踪', 'menu', '/flow/follow', NULL, 4, 1, 0, 1, '', NULL, 0), (1123598815738675279, 1123598815738675278, 'flow_follow_delete', '删除', 'remove', '', 'remove', 1, 2, 2, 1, '', NULL, 0), (1123598815738675280, 0, 'work', '我的事务', 'menu', '/work', 'bell', 2, 1, 0, 1, '', NULL, 0), (1123598815738675281, 1123598815738675280, 'work_start', '发起事务', 'menu', '/work/start', NULL, 1, 1, 0, 1, '', NULL, 0), (1123598815738675282, 1123598815738675281, 'work_start_flow', '发起', 'flow', '', 'flow', 1, 2, 2, 1, '', NULL, 0), (1123598815738675283, 1123598815738675281, 'work_start_image', '流程图', 'image', '', 'image', 2, 2, 2, 1, '', NULL, 0), (1123598815738675284, 1123598815738675280, 'work_claim', '待签事务', 'menu', '/work/claim', NULL, 2, 1, 0, 1, '', NULL, 0), (1123598815738675285, 1123598815738675284, 'work_claim_sign', '签收', 'sign', '', 'sign', 1, 2, 2, 1, '', NULL, 0), (1123598815738675286, 1123598815738675284, 'work_claim_detail', '详情', 'detail', '', 'detail', 2, 2, 2, 1, '', NULL, 0), (1123598815738675287, 1123598815738675284, 'work_claim_follow', '跟踪', 'follow', '', 'follow', 3, 2, 2, 1, '', NULL, 0), (1123598815738675288, 1123598815738675280, 'work_todo', '待办事务', 'menu', '/work/todo', NULL, 2, 1, 0, 1, '', NULL, 0), (1123598815738675289, 1123598815738675288, 'work_todo_handle', '办理', 'handle', '', 'handle', 1, 2, 2, 1, '', NULL, 0), (1123598815738675290, 1123598815738675288, 'work_todo_detail', '详情', 'detail', '', 'detail', 2, 2, 2, 1, '', NULL, 0), (1123598815738675291, 1123598815738675288, 'work_todo_follow', '跟踪', 'follow', '', 'follow', 3, 2, 2, 1, '', NULL, 0), (1123598815738675292, 1123598815738675280, 'work_send', '已发事务', 'menu', '/work/send', NULL, 3, 1, 0, 1, '', NULL, 0), (1123598815738675293, 1123598815738675292, 'work_send_detail', '详情', 'detail', '', 'detail', 1, 2, 2, 1, '', NULL, 0), (1123598815738675294, 1123598815738675292, 'work_send_follow', '跟踪', 'follow', '', 'follow', 2, 2, 2, 1, '', NULL, 0), (1123598815738675295, 1123598815738675280, 'work_done', '办结事务', 'menu', '/work/done', NULL, 4, 1, 0, 1, '', NULL, 0), (1123598815738675296, 1123598815738675295, 'work_done_detail', '详情', 'detail', '', 'detail', 1, 2, 2, 1, '', NULL, 0), (1123598815738675297, 1123598815738675295, 'work_done_follow', '跟踪', 'follow', '', 'follow', 2, 2, 2, 1, '', NULL, 0), (1123598815738675298, 0, 'resource', '资源管理', 'menu', '/resource', 'bg-colors', 6, 1, 0, 1, '', NULL, 0), (1123598815738675299, 1123598815738675298, 'oss', '对象存储', 'menu', '/resource/oss', NULL, 1, 1, 0, 1, '', NULL, 0), (1123598815738675301, 1123598815738675299, 'oss_add', '新增', 'add', '/resource/oss/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675302, 1123598815738675299, 'oss_edit', '修改', 'edit', '/resource/oss/edit', 'form', 2, 2, 2, 2, '', NULL, 0), (1123598815738675303, 1123598815738675299, 'oss_delete', '删除', 'delete', '/api/blade-resource/oss/remove', 'delete', 3, 2, 3, 3, '', NULL, 0), (1123598815738675304, 1123598815738675299, 'oss_view', '查看', 'view', '/resource/oss/view', 'file-text', 4, 2, 2, 2, '', NULL, 0), (1123598815738675305, 1123598815738675299, 'oss_enable', '启用', 'enable', '/api/blade-resource/oss/enable', 'key', 5, 2, 2, 2, '', NULL, 0), (1123598815738675307, 0, 'authority', '权限管理', 'menu', '/authority', 'safety-certificate', 98, 1, 0, 1, '', NULL, 0), (1123598815738675308, 1123598815738675307, 'role', '角色管理', 'menu', '/authority/role', '', 1, 1, 0, 1, '', NULL, 0), (1123598815738675309, 1123598815738675307, 'data_scope', '数据权限', 'menu', '/authority/datascope', '', 2, 1, 0, 1, '', NULL, 0), (1123598815738675310, 1123598815738675309, 'data_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, '', NULL, 0), (1123598815738675311, 1123598815738675307, 'api_scope', '接口权限', 'menu', '/authority/apiscope', '', 3, 1, 0, 1, '', NULL, 0), (1123598815738675312, 1123598815738675311, 'api_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, '', NULL, 0), (1123598815738675313, 1123598815738675208, 'topmenu_add', '新增', 'add', '/system/topmenu/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675314, 1123598815738675208, 'topmenu_edit', '修改', 'edit', '/system/topmenu/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675315, 1123598815738675208, 'topmenu_delete', '删除', 'delete', '/api/blade-system/topmenu/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675316, 1123598815738675208, 'topmenu_view', '查看', 'view', '/system/topmenu/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675317, 1123598815738675208, 'topmenu_setting', '菜单配置', 'setting', NULL, 'setting', 5, 2, 1, 1, '', NULL, 0), (1161272593873321991, 1123598815738675217, 'datasource', '数据源管理', 'menu', '/tool/datasource', NULL, 2, 1, 0, 1, '', NULL, 0), (1161272593873321992, 1161272593873321991, 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1161272593873321993, 1161272593873321991, 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', 2, 2, 2, 2, '', NULL, 0), (1161272593873321994, 1161272593873321991, 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', 3, 2, 3, 3, '', NULL, 0), (1161272593873321995, 1161272593873321991, 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', 4, 2, 2, 2, '', NULL, 0), (1161272593873321996, 1123598815738675217, 'model', '数据模型设计', 'menu', '/tool/model', '', 3, 1, 0, 1, '', '', 0), (1164733369658963251, 1123598815738675210, 'elk', 'ELK监控', 'menu', 'http://localhost:5601/', '', 3, 1, 0, 2, '', NULL, 0), (1164733369658963252, 1123598815738675210, 'zipkin', 'Zipkin监控', 'menu', 'http://localhost:9411/', '', 4, 1, 0, 2, '', NULL, 0), (1164733369658963253, 1123598815738675210, 'turbine', 'Turbine监控', 'menu', 'http://localhost:7003/hystrix', '', 5, 1, 0, 2, '', NULL, 0), (1164733369658963254, 1123598815738675210, 'sentinel', 'Sentinel管理', 'menu', 'http://localhost:8858', '', 6, 1, 0, 2, '', NULL, 0), (1164733369658963255, 1123598815738675210, 'es', 'Elasticsearch管理', 'menu', 'http://localhost:9100/', '', 7, 1, 0, 2, '', NULL, 0), (1164733379658963251, 1123598815738675203, 'dictbiz', '业务字典', 'menu', '/system/dictbiz', '', 5, 1, 0, 1, '', NULL, 0), (1164733379658963252, 1164733379658963251, 'dictbiz_add', '新增', 'add', '/system/dictbiz/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1164733379658963253, 1164733379658963251, 'dictbiz_edit', '修改', 'edit', '/system/dictbiz/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1164733379658963254, 1164733379658963251, 'dictbiz_delete', '删除', 'delete', '/api/blade-system/dict-biz/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1164733379658963255, 1164733379658963251, 'dictbiz_view', '查看', 'view', '/system/dictbiz/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1164733389658962251, 1123598815738675298, 'sms', '短信配置', 'menu', '/resource/sms', '', 3, 1, 0, 1, '', NULL, 0), (1164733389658962252, 1164733389658962251, 'sms_add', '新增', 'add', '/resource/sms/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1164733389658962253, 1164733389658962251, 'sms_edit', '修改', 'edit', '/resource/sms/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1164733389658962254, 1164733389658962251, 'sms_delete', '删除', 'delete', '/api/blade-resource/sms/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1164733389658962255, 1164733389658962251, 'sms_view', '查看', 'view', '/resource/sms/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1164733389658962256, 1164733389658962251, 'sms_enable', '启用', 'enable', '/api/blade-resource/sms/enable', 'key', 5, 2, 2, 2, '', NULL, 0), (1164733389658963251, 1123598815738675298, 'xxljob', '任务调度', 'menu', 'http://localhost:7009/xxl-job-admin', '', 5, 1, 0, 2, '', NULL, 0), (1164733389668962251, 1123598815738675203, 'post', '岗位管理', 'menu', '/system/post', '', 3, 1, 0, 1, '', NULL, 0), (1164733389668962252, 1164733389668962251, 'post_add', '新增', 'add', '/system/post/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1164733389668962253, 1164733389668962251, 'post_edit', '修改', 'edit', '/system/post/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1164733389668962254, 1164733389668962251, 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1164733389668962255, 1164733389668962251, 'post_view', '查看', 'view', '/system/post/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1164733399668962201, 0, 'base', '基础配置', 'menu', '/base', 'sliders', 97, 1, 0, 1, '', NULL, 0), (1164733399668962202, 1164733399668962201, 'region', '行政区划', 'menu', '/base/region', '', 1, 1, 0, 1, '', NULL, 0), (1164733399668962203, 1164733399668962202, 'region_add', '新增下级', 'add', '', '', 1, 2, 1, 1, '', NULL, 0), (1164733399668962204, 1164733399668962202, 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', '', 2, 2, 2, 1, '', NULL, 0), (1164733399668962205, 1164733399668962202, 'region_import', '导入', 'import', '', '', 3, 2, 3, 1, '', NULL, 0), (1164733399668962206, 1164733399668962202, 'region_export', '导出', 'export', '', '', 4, 2, 2, 1, '', NULL, 0), (1164733399668962207, 1164733399668962202, 'region_debug', '调试', 'debug', '', '', 5, 2, 2, 1, '', NULL, 0), (1164733399669962201, 1123598815738675298, 'attach', '附件管理', 'menu', '/resource/attach', '', 2, 1, 0, 1, '', NULL, 0), (1164733399669962202, 1164733399669962201, 'attach_upload', '上传', 'upload', '/resource/attach/upload', '', 1, 2, 1, 1, '', NULL, 0), (1164733399669962203, 1164733399669962201, 'attach_download', '下载', 'download', '/resource/attach/download', '', 2, 2, 2, 1, '', NULL, 0), (1164733399669962204, 1164733399669962201, 'attach_delete', '删除', 'delete', '/api/blade-resource/attach/remove', '', 3, 2, 3, 1, '', NULL, 0), (1164733399669962301, 0, 'report', '报表管理', 'menu', '/report', 'bar-chart', 5, 1, 0, 1, '', NULL, 0), (1164733399669962302, 1164733399669962301, 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', '', 1, 1, 0, 2, '', NULL, 0), (1164733399669962303, 1164733399669962301, 'report_list', '报表列表', 'menu', '/report/reportlist', '', 2, 1, 0, 1, '', NULL, 0), (1164733399669962304, 1164733399669962301, 'report_notice', '公告报表', 'menu', 'http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml', '', 3, 1, 0, 2, '', NULL, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_model
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_model`;
+CREATE TABLE `blade_model`  (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `datasource_id` bigint(20) NULL DEFAULT NULL COMMENT '数据源主键',
+  `model_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型名称',
+  `model_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型编号',
+  `model_table` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物理表名',
+  `model_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型类名',
+  `model_remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据模型表';
+
+-- ----------------------------
+-- Table structure for blade_model_prototype
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_model_prototype`;
+CREATE TABLE `blade_model_prototype`  (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `model_id` bigint(20) NULL DEFAULT NULL COMMENT '模型主键',
+  `jdbc_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物理列名',
+  `jdbc_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物理类型',
+  `comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '注释说明',
+  `property_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实体类型',
+  `property_entity` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实体类型引用',
+  `property_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实体列名',
+  `is_list` int(2) NULL DEFAULT NULL COMMENT '列表显示',
+  `is_form` int(2) NULL DEFAULT NULL COMMENT '表单显示',
+  `is_row` int(2) NULL DEFAULT NULL COMMENT '独占一行',
+  `component_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件类型',
+  `dict_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典编码',
+  `is_required` int(2) NULL DEFAULT NULL COMMENT '是否必填',
+  `is_query` int(2) NULL DEFAULT NULL COMMENT '查询配置',
+  `query_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '查询类型',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据原型表';
+
+-- ----------------------------
+-- Table structure for blade_notice
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_notice`;
+CREATE TABLE `blade_notice`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
+  `category` int(11) NULL DEFAULT NULL COMMENT '类型',
+  `release_time` datetime(0) NULL DEFAULT NULL COMMENT '发布时间',
+  `content` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '内容',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通知公告表';
+
+-- ----------------------------
+-- Records of blade_notice
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_notice` VALUES (1123598818738675223, '000000', '测试公告', 3, '2018-12-31 20:03:31', '222', 1123598821738675201, 1123598813738675201, '2018-12-05 20:03:31', 1123598821738675201, '2018-12-28 11:10:51', 1, 0), (1123598818738675224, '000000', '测试公告2', 1, '2018-12-05 20:03:31', '333', 1123598821738675201, 1123598813738675201, '2018-12-28 10:32:26', 1123598821738675201, '2018-12-28 11:10:34', 1, 0), (1123598818738675225, '000000', '测试公告3', 6, '2018-12-29 00:00:00', '11111', 1123598821738675201, 1123598813738675201, '2018-12-28 11:03:44', 1123598821738675201, '2018-12-28 11:10:28', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_oss
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_oss`;
+CREATE TABLE `blade_oss`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `category` int(2) NULL DEFAULT NULL COMMENT '分类',
+  `oss_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源编号',
+  `endpoint` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源地址',
+  `access_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'accessKey',
+  `secret_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'secretKey',
+  `bucket_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '空间名',
+  `app_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用ID',
+  `region` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地域简称',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '对象存储表';
+
+-- ----------------------------
+-- Records of blade_oss
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_oss` VALUES (1132486733992468482, '000000', 1, 'minio', 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:20:52', 1123598821738675201, '2019-05-27 08:34:55', 2, 0), (1132487155981393922, '000000', 2, 'qiniu', 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:22:33', 1123598821738675201, '2019-05-26 23:27:56', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_param
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_param`;
+CREATE TABLE `blade_param`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `param_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名',
+  `param_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数键',
+  `param_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数值',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '参数表';
+
+-- ----------------------------
+-- Records of blade_param
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_param` VALUES (1123598819738675201, '是否开启注册功能', 'account.registerUser', 'true', '开启注册', 1123598821738675201, 1123598813738675201, '2018-12-28 12:19:01', 1123598821738675201, '2018-12-28 12:19:01', 1, 0), (1123598819738675202, '账号初始密码', 'account.initPassword', '123456', '初始密码', 1123598821738675201, 1123598813738675201, '2018-12-28 12:19:01', 1123598821738675201, '2018-12-28 12:19:01', 1, 0), (1123598819738675203, '账号错误锁定次数', 'account.failCount', '5', '锁定次数', 1123598821738675201, 1123598813738675201, '2021-12-01 12:00:00', 1123598821738675201, '2021-12-01 12:00:00', 1, 0), (1238706101399142402, '租户默认管理密码', 'tenant.default.password', 'admin', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:58:43', 1123598821738675201, '2020-03-14 13:58:43', 1, 0), (1238706160295559170, '租户默认账号额度', 'tenant.default.accountNumber', '100', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:58:57', 1123598821738675201, '2020-03-14 13:58:57', 1, 0), (1238706330076790786, '租户默认菜单集合', 'tenant.default.menuCode', 'desk,flow,work,monitor,resource,role,user,dept,post,dictbiz,topmenu', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:59:38', 1123598821738675201, '2020-03-14 13:59:38', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_post
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_post`;
+CREATE TABLE `blade_post`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `category` int(11) NULL DEFAULT NULL COMMENT '岗位类型',
+  `post_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位编号',
+  `post_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位名称',
+  `sort` int(2) NULL DEFAULT NULL COMMENT '岗位排序',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位描述',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '岗位表';
+
+-- ----------------------------
+-- Records of blade_post
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_post` VALUES (1123598817738675201, '000000', 1, 'ceo', '首席执行官', 1, '总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675202, '000000', 1, 'coo', '首席运营官', 2, '常务总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675203, '000000', 1, 'cfo', '首席财务官', 3, '财务总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675204, '000000', 1, 'cto', '首席技术官', 4, '技术总监', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675205, '000000', 1, 'cio', '首席信息官', 5, '信息总监', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675206, '000000', 2, 'pm', '技术经理', 6, '研发和产品是永远的朋友', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675207, '000000', 2, 'hrm', '人力经理', 7, '人力资源部门工作管理者', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675208, '000000', 3, 'staff', '普通员工', 8, '普通员工', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_process_leave
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_process_leave`;
+CREATE TABLE `blade_process_leave`  (
+  `id` bigint(20) NOT NULL COMMENT '编号',
+  `process_definition_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程定义主键',
+  `process_instance_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程实例主键',
+  `start_time` datetime(0) NULL DEFAULT NULL COMMENT '开始时间',
+  `end_time` datetime(0) NULL DEFAULT NULL COMMENT '结束时间',
+  `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请假理由',
+  `task_user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第一级审批人',
+  `apply_time` datetime(0) NULL DEFAULT NULL COMMENT '申请时间',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '流程请假业务表';
+
+-- ----------------------------
+-- Table structure for blade_region
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_region`;
+CREATE TABLE `blade_region`  (
+  `code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '区划编号',
+  `parent_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '父区划编号',
+  `ancestors` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '祖区划编号',
+  `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区划名称',
+  `province_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '省级区划编号',
+  `province_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '省级名称',
+  `city_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '市级区划编号',
+  `city_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '市级名称',
+  `district_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区级区划编号',
+  `district_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区级名称',
+  `town_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '镇级区划编号',
+  `town_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '镇级名称',
+  `village_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '村级区划编号',
+  `village_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '村级名称',
+  `region_level` int(2) NULL DEFAULT NULL COMMENT '层级',
+  `sort` int(2) NULL DEFAULT NULL COMMENT '排序',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  PRIMARY KEY (`code`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '行政区划表';
+
+-- ----------------------------
+-- Records of blade_region
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_region` VALUES ('00', '0', '0', '中华人民共和国', '', '', '', '', '', '', '', '', '', '', 0, 1, ''), ('11', '00', '00', '北京市', '11', '北京市', '', '', '', '', '', '', '', '', 1, 1, ''), ('1101', '11', '00,11', '北京市', '11', '北京市', '1101', '北京市', '', '', '', '', '', '', 2, 1, ''), ('110101', '1101', '00,11,1101', '东城区', '11', '北京市', '1101', '北京市', '110101', '东城区', '', '', '', '', 3, 1, ''), ('110102', '1101', '00,11,1101', '西城区', '11', '北京市', '1101', '北京市', '110102', '西城区', '', '', '', '', 3, 1, ''), ('110105', '1101', '00,11,1101', '朝阳区', '11', '北京市', '1101', '北京市', '110105', '朝阳区', '', '', '', '', 3, 1, ''), ('110106', '1101', '00,11,1101', '丰台区', '11', '北京市', '1101', '北京市', '110106', '丰台区', '', '', '', '', 3, 1, ''), ('110107', '1101', '00,11,1101', '石景山区', '11', '北京市', '1101', '北京市', '110107', '石景山区', '', '', '', '', 3, 1, ''), ('110108', '1101', '00,11,1101', '海淀区', '11', '北京市', '1101', '北京市', '110108', '海淀区', '', '', '', '', 3, 1, ''), ('110109', '1101', '00,11,1101', '门头沟区', '11', '北京市', '1101', '北京市', '110109', '门头沟区', '', '', '', '', 3, 1, ''), ('110111', '1101', '00,11,1101', '房山区', '11', '北京市', '1101', '北京市', '110111', '房山区', '', '', '', '', 3, 1, ''), ('110112', '1101', '00,11,1101', '通州区', '11', '北京市', '1101', '北京市', '110112', '通州区', '', '', '', '', 3, 1, ''), ('110113', '1101', '00,11,1101', '顺义区', '11', '北京市', '1101', '北京市', '110113', '顺义区', '', '', '', '', 3, 1, ''), ('110114', '1101', '00,11,1101', '昌平区', '11', '北京市', '1101', '北京市', '110114', '昌平区', '', '', '', '', 3, 1, ''), ('110115', '1101', '00,11,1101', '大兴区', '11', '北京市', '1101', '北京市', '110115', '大兴区', '', '', '', '', 3, 1, ''), ('110116', '1101', '00,11,1101', '怀柔区', '11', '北京市', '1101', '北京市', '110116', '怀柔区', '', '', '', '', 3, 1, ''), ('110117', '1101', '00,11,1101', '平谷区', '11', '北京市', '1101', '北京市', '110117', '平谷区', '', '', '', '', 3, 1, ''), ('110118', '1101', '00,11,1101', '密云区', '11', '北京市', '1101', '北京市', '110118', '密云区', '', '', '', '', 3, 1, ''), ('110119', '1101', '00,11,1101', '延庆区', '11', '北京市', '1101', '北京市', '110119', '延庆区', '', '', '', '', 3, 1, ''), ('12', '00', '00', '天津市', '12', '天津市', '', '', '', '', '', '', '', '', 1, 1, ''), ('1201', '12', '00,12', '天津市', '12', '天津市', '1201', '天津市', '', '', '', '', '', '', 2, 1, ''), ('120101', '1201', '00,12,1201', '和平区', '12', '天津市', '1201', '天津市', '120101', '和平区', '', '', '', '', 3, 1, ''), ('120102', '1201', '00,12,1201', '河东区', '12', '天津市', '1201', '天津市', '120102', '河东区', '', '', '', '', 3, 1, ''), ('120103', '1201', '00,12,1201', '河西区', '12', '天津市', '1201', '天津市', '120103', '河西区', '', '', '', '', 3, 1, ''), ('120104', '1201', '00,12,1201', '南开区', '12', '天津市', '1201', '天津市', '120104', '南开区', '', '', '', '', 3, 1, ''), ('120105', '1201', '00,12,1201', '河北区', '12', '天津市', '1201', '天津市', '120105', '河北区', '', '', '', '', 3, 1, ''), ('120106', '1201', '00,12,1201', '红桥区', '12', '天津市', '1201', '天津市', '120106', '红桥区', '', '', '', '', 3, 1, ''), ('120110', '1201', '00,12,1201', '东丽区', '12', '天津市', '1201', '天津市', '120110', '东丽区', '', '', '', '', 3, 1, ''), ('120111', '1201', '00,12,1201', '西青区', '12', '天津市', '1201', '天津市', '120111', '西青区', '', '', '', '', 3, 1, ''), ('120112', '1201', '00,12,1201', '津南区', '12', '天津市', '1201', '天津市', '120112', '津南区', '', '', '', '', 3, 1, ''), ('120113', '1201', '00,12,1201', '北辰区', '12', '天津市', '1201', '天津市', '120113', '北辰区', '', '', '', '', 3, 1, ''), ('120114', '1201', '00,12,1201', '武清区', '12', '天津市', '1201', '天津市', '120114', '武清区', '', '', '', '', 3, 1, ''), ('120115', '1201', '00,12,1201', '宝坻区', '12', '天津市', '1201', '天津市', '120115', '宝坻区', '', '', '', '', 3, 1, ''), ('120116', '1201', '00,12,1201', '滨海新区', '12', '天津市', '1201', '天津市', '120116', '滨海新区', '', '', '', '', 3, 1, ''), ('120117', '1201', '00,12,1201', '宁河区', '12', '天津市', '1201', '天津市', '120117', '宁河区', '', '', '', '', 3, 1, ''), ('120118', '1201', '00,12,1201', '静海区', '12', '天津市', '1201', '天津市', '120118', '静海区', '', '', '', '', 3, 1, ''), ('120119', '1201', '00,12,1201', '蓟州区', '12', '天津市', '1201', '天津市', '120119', '蓟州区', '', '', '', '', 3, 1, ''), ('13', '00', '00', '河北省', '13', '河北省', '', '', '', '', '', '', '', '', 1, 1, ''), ('1301', '13', '00,13', '石家庄市', '13', '河北省', '1301', '石家庄市', '', '', '', '', '', '', 2, 1, ''), ('130102', '1301', '00,13,1301', '长安区', '13', '河北省', '1301', '石家庄市', '130102', '长安区', '', '', '', '', 3, 1, ''), ('130104', '1301', '00,13,1301', '桥西区', '13', '河北省', '1301', '石家庄市', '130104', '桥西区', '', '', '', '', 3, 1, ''), ('130105', '1301', '00,13,1301', '新华区', '13', '河北省', '1301', '石家庄市', '130105', '新华区', '', '', '', '', 3, 1, ''), ('130107', '1301', '00,13,1301', '井陉矿区', '13', '河北省', '1301', '石家庄市', '130107', '井陉矿区', '', '', '', '', 3, 1, ''), ('130108', '1301', '00,13,1301', '裕华区', '13', '河北省', '1301', '石家庄市', '130108', '裕华区', '', '', '', '', 3, 1, ''), ('130109', '1301', '00,13,1301', '藁城区', '13', '河北省', '1301', '石家庄市', '130109', '藁城区', '', '', '', '', 3, 1, ''), ('130110', '1301', '00,13,1301', '鹿泉区', '13', '河北省', '1301', '石家庄市', '130110', '鹿泉区', '', '', '', '', 3, 1, ''), ('130111', '1301', '00,13,1301', '栾城区', '13', '河北省', '1301', '石家庄市', '130111', '栾城区', '', '', '', '', 3, 1, ''), ('130121', '1301', '00,13,1301', '井陉县', '13', '河北省', '1301', '石家庄市', '130121', '井陉县', '', '', '', '', 3, 1, ''), ('130123', '1301', '00,13,1301', '正定县', '13', '河北省', '1301', '石家庄市', '130123', '正定县', '', '', '', '', 3, 1, ''), ('130125', '1301', '00,13,1301', '行唐县', '13', '河北省', '1301', '石家庄市', '130125', '行唐县', '', '', '', '', 3, 1, ''), ('130126', '1301', '00,13,1301', '灵寿县', '13', '河北省', '1301', '石家庄市', '130126', '灵寿县', '', '', '', '', 3, 1, ''), ('130127', '1301', '00,13,1301', '高邑县', '13', '河北省', '1301', '石家庄市', '130127', '高邑县', '', '', '', '', 3, 1, ''), ('130128', '1301', '00,13,1301', '深泽县', '13', '河北省', '1301', '石家庄市', '130128', '深泽县', '', '', '', '', 3, 1, ''), ('130129', '1301', '00,13,1301', '赞皇县', '13', '河北省', '1301', '石家庄市', '130129', '赞皇县', '', '', '', '', 3, 1, ''), ('130130', '1301', '00,13,1301', '无极县', '13', '河北省', '1301', '石家庄市', '130130', '无极县', '', '', '', '', 3, 1, ''), ('130131', '1301', '00,13,1301', '平山县', '13', '河北省', '1301', '石家庄市', '130131', '平山县', '', '', '', '', 3, 1, ''), ('130132', '1301', '00,13,1301', '元氏县', '13', '河北省', '1301', '石家庄市', '130132', '元氏县', '', '', '', '', 3, 1, ''), ('130133', '1301', '00,13,1301', '赵县', '13', '河北省', '1301', '石家庄市', '130133', '赵县', '', '', '', '', 3, 1, ''), ('130181', '1301', '00,13,1301', '辛集市', '13', '河北省', '1301', '石家庄市', '130181', '辛集市', '', '', '', '', 3, 1, ''), ('130183', '1301', '00,13,1301', '晋州市', '13', '河北省', '1301', '石家庄市', '130183', '晋州市', '', '', '', '', 3, 1, ''), ('130184', '1301', '00,13,1301', '新乐市', '13', '河北省', '1301', '石家庄市', '130184', '新乐市', '', '', '', '', 3, 1, ''), ('1302', '13', '00,13', '唐山市', '13', '河北省', '1302', '唐山市', '', '', '', '', '', '', 2, 1, ''), ('130202', '1302', '00,13,1302', '路南区', '13', '河北省', '1302', '唐山市', '130202', '路南区', '', '', '', '', 3, 1, ''), ('130203', '1302', '00,13,1302', '路北区', '13', '河北省', '1302', '唐山市', '130203', '路北区', '', '', '', '', 3, 1, ''), ('130204', '1302', '00,13,1302', '古冶区', '13', '河北省', '1302', '唐山市', '130204', '古冶区', '', '', '', '', 3, 1, ''), ('130205', '1302', '00,13,1302', '开平区', '13', '河北省', '1302', '唐山市', '130205', '开平区', '', '', '', '', 3, 1, ''), ('130207', '1302', '00,13,1302', '丰南区', '13', '河北省', '1302', '唐山市', '130207', '丰南区', '', '', '', '', 3, 1, ''), ('130208', '1302', '00,13,1302', '丰润区', '13', '河北省', '1302', '唐山市', '130208', '丰润区', '', '', '', '', 3, 1, ''), ('130209', '1302', '00,13,1302', '曹妃甸区', '13', '河北省', '1302', '唐山市', '130209', '曹妃甸区', '', '', '', '', 3, 1, ''), ('130224', '1302', '00,13,1302', '滦南县', '13', '河北省', '1302', '唐山市', '130224', '滦南县', '', '', '', '', 3, 1, ''), ('130225', '1302', '00,13,1302', '乐亭县', '13', '河北省', '1302', '唐山市', '130225', '乐亭县', '', '', '', '', 3, 1, ''), ('130227', '1302', '00,13,1302', '迁西县', '13', '河北省', '1302', '唐山市', '130227', '迁西县', '', '', '', '', 3, 1, ''), ('130229', '1302', '00,13,1302', '玉田县', '13', '河北省', '1302', '唐山市', '130229', '玉田县', '', '', '', '', 3, 1, ''), ('130281', '1302', '00,13,1302', '遵化市', '13', '河北省', '1302', '唐山市', '130281', '遵化市', '', '', '', '', 3, 1, ''), ('130283', '1302', '00,13,1302', '迁安市', '13', '河北省', '1302', '唐山市', '130283', '迁安市', '', '', '', '', 3, 1, ''), ('130284', '1302', '00,13,1302', '滦州市', '13', '河北省', '1302', '唐山市', '130284', '滦州市', '', '', '', '', 3, 1, ''), ('1303', '13', '00,13', '秦皇岛市', '13', '河北省', '1303', '秦皇岛市', '', '', '', '', '', '', 2, 1, ''), ('130302', '1303', '00,13,1303', '海港区', '13', '河北省', '1303', '秦皇岛市', '130302', '海港区', '', '', '', '', 3, 1, ''), ('130303', '1303', '00,13,1303', '山海关区', '13', '河北省', '1303', '秦皇岛市', '130303', '山海关区', '', '', '', '', 3, 1, ''), ('130304', '1303', '00,13,1303', '北戴河区', '13', '河北省', '1303', '秦皇岛市', '130304', '北戴河区', '', '', '', '', 3, 1, ''), ('130306', '1303', '00,13,1303', '抚宁区', '13', '河北省', '1303', '秦皇岛市', '130306', '抚宁区', '', '', '', '', 3, 1, ''), ('130321', '1303', '00,13,1303', '青龙满族自治县', '13', '河北省', '1303', '秦皇岛市', '130321', '青龙满族自治县', '', '', '', '', 3, 1, ''), ('130322', '1303', '00,13,1303', '昌黎县', '13', '河北省', '1303', '秦皇岛市', '130322', '昌黎县', '', '', '', '', 3, 1, ''), ('130324', '1303', '00,13,1303', '卢龙县', '13', '河北省', '1303', '秦皇岛市', '130324', '卢龙县', '', '', '', '', 3, 1, ''), ('1304', '13', '00,13', '邯郸市', '13', '河北省', '1304', '邯郸市', '', '', '', '', '', '', 2, 1, ''), ('130402', '1304', '00,13,1304', '邯山区', '13', '河北省', '1304', '邯郸市', '130402', '邯山区', '', '', '', '', 3, 1, ''), ('130403', '1304', '00,13,1304', '丛台区', '13', '河北省', '1304', '邯郸市', '130403', '丛台区', '', '', '', '', 3, 1, ''), ('130404', '1304', '00,13,1304', '复兴区', '13', '河北省', '1304', '邯郸市', '130404', '复兴区', '', '', '', '', 3, 1, ''), ('130406', '1304', '00,13,1304', '峰峰矿区', '13', '河北省', '1304', '邯郸市', '130406', '峰峰矿区', '', '', '', '', 3, 1, ''), ('130407', '1304', '00,13,1304', '肥乡区', '13', '河北省', '1304', '邯郸市', '130407', '肥乡区', '', '', '', '', 3, 1, ''), ('130408', '1304', '00,13,1304', '永年区', '13', '河北省', '1304', '邯郸市', '130408', '永年区', '', '', '', '', 3, 1, ''), ('130423', '1304', '00,13,1304', '临漳县', '13', '河北省', '1304', '邯郸市', '130423', '临漳县', '', '', '', '', 3, 1, ''), ('130424', '1304', '00,13,1304', '成安县', '13', '河北省', '1304', '邯郸市', '130424', '成安县', '', '', '', '', 3, 1, ''), ('130425', '1304', '00,13,1304', '大名县', '13', '河北省', '1304', '邯郸市', '130425', '大名县', '', '', '', '', 3, 1, ''), ('130426', '1304', '00,13,1304', '涉县', '13', '河北省', '1304', '邯郸市', '130426', '涉县', '', '', '', '', 3, 1, ''), ('130427', '1304', '00,13,1304', '磁县', '13', '河北省', '1304', '邯郸市', '130427', '磁县', '', '', '', '', 3, 1, ''), ('130430', '1304', '00,13,1304', '邱县', '13', '河北省', '1304', '邯郸市', '130430', '邱县', '', '', '', '', 3, 1, ''), ('130431', '1304', '00,13,1304', '鸡泽县', '13', '河北省', '1304', '邯郸市', '130431', '鸡泽县', '', '', '', '', 3, 1, ''), ('130432', '1304', '00,13,1304', '广平县', '13', '河北省', '1304', '邯郸市', '130432', '广平县', '', '', '', '', 3, 1, ''), ('130433', '1304', '00,13,1304', '馆陶县', '13', '河北省', '1304', '邯郸市', '130433', '馆陶县', '', '', '', '', 3, 1, ''), ('130434', '1304', '00,13,1304', '魏县', '13', '河北省', '1304', '邯郸市', '130434', '魏县', '', '', '', '', 3, 1, ''), ('130435', '1304', '00,13,1304', '曲周县', '13', '河北省', '1304', '邯郸市', '130435', '曲周县', '', '', '', '', 3, 1, ''), ('130481', '1304', '00,13,1304', '武安市', '13', '河北省', '1304', '邯郸市', '130481', '武安市', '', '', '', '', 3, 1, ''), ('1305', '13', '00,13', '邢台市', '13', '河北省', '1305', '邢台市', '', '', '', '', '', '', 2, 1, ''), ('130502', '1305', '00,13,1305', '桥东区', '13', '河北省', '1305', '邢台市', '130502', '桥东区', '', '', '', '', 3, 1, ''), ('130503', '1305', '00,13,1305', '桥西区', '13', '河北省', '1305', '邢台市', '130503', '桥西区', '', '', '', '', 3, 1, ''), ('130521', '1305', '00,13,1305', '邢台县', '13', '河北省', '1305', '邢台市', '130521', '邢台县', '', '', '', '', 3, 1, ''), ('130522', '1305', '00,13,1305', '临城县', '13', '河北省', '1305', '邢台市', '130522', '临城县', '', '', '', '', 3, 1, ''), ('130523', '1305', '00,13,1305', '内丘县', '13', '河北省', '1305', '邢台市', '130523', '内丘县', '', '', '', '', 3, 1, ''), ('130524', '1305', '00,13,1305', '柏乡县', '13', '河北省', '1305', '邢台市', '130524', '柏乡县', '', '', '', '', 3, 1, ''), ('130525', '1305', '00,13,1305', '隆尧县', '13', '河北省', '1305', '邢台市', '130525', '隆尧县', '', '', '', '', 3, 1, ''), ('130526', '1305', '00,13,1305', '任县', '13', '河北省', '1305', '邢台市', '130526', '任县', '', '', '', '', 3, 1, ''), ('130527', '1305', '00,13,1305', '南和县', '13', '河北省', '1305', '邢台市', '130527', '南和县', '', '', '', '', 3, 1, ''), ('130528', '1305', '00,13,1305', '宁晋县', '13', '河北省', '1305', '邢台市', '130528', '宁晋县', '', '', '', '', 3, 1, ''), ('130529', '1305', '00,13,1305', '巨鹿县', '13', '河北省', '1305', '邢台市', '130529', '巨鹿县', '', '', '', '', 3, 1, ''), ('130530', '1305', '00,13,1305', '新河县', '13', '河北省', '1305', '邢台市', '130530', '新河县', '', '', '', '', 3, 1, ''), ('130531', '1305', '00,13,1305', '广宗县', '13', '河北省', '1305', '邢台市', '130531', '广宗县', '', '', '', '', 3, 1, ''), ('130532', '1305', '00,13,1305', '平乡县', '13', '河北省', '1305', '邢台市', '130532', '平乡县', '', '', '', '', 3, 1, ''), ('130533', '1305', '00,13,1305', '威县', '13', '河北省', '1305', '邢台市', '130533', '威县', '', '', '', '', 3, 1, ''), ('130534', '1305', '00,13,1305', '清河县', '13', '河北省', '1305', '邢台市', '130534', '清河县', '', '', '', '', 3, 1, ''), ('130535', '1305', '00,13,1305', '临西县', '13', '河北省', '1305', '邢台市', '130535', '临西县', '', '', '', '', 3, 1, ''), ('130581', '1305', '00,13,1305', '南宫市', '13', '河北省', '1305', '邢台市', '130581', '南宫市', '', '', '', '', 3, 1, ''), ('130582', '1305', '00,13,1305', '沙河市', '13', '河北省', '1305', '邢台市', '130582', '沙河市', '', '', '', '', 3, 1, ''), ('1306', '13', '00,13', '保定市', '13', '河北省', '1306', '保定市', '', '', '', '', '', '', 2, 1, ''), ('130602', '1306', '00,13,1306', '竞秀区', '13', '河北省', '1306', '保定市', '130602', '竞秀区', '', '', '', '', 3, 1, ''), ('130606', '1306', '00,13,1306', '莲池区', '13', '河北省', '1306', '保定市', '130606', '莲池区', '', '', '', '', 3, 1, ''), ('130607', '1306', '00,13,1306', '满城区', '13', '河北省', '1306', '保定市', '130607', '满城区', '', '', '', '', 3, 1, ''), ('130608', '1306', '00,13,1306', '清苑区', '13', '河北省', '1306', '保定市', '130608', '清苑区', '', '', '', '', 3, 1, ''), ('130609', '1306', '00,13,1306', '徐水区', '13', '河北省', '1306', '保定市', '130609', '徐水区', '', '', '', '', 3, 1, ''), ('130623', '1306', '00,13,1306', '涞水县', '13', '河北省', '1306', '保定市', '130623', '涞水县', '', '', '', '', 3, 1, ''), ('130624', '1306', '00,13,1306', '阜平县', '13', '河北省', '1306', '保定市', '130624', '阜平县', '', '', '', '', 3, 1, ''), ('130626', '1306', '00,13,1306', '定兴县', '13', '河北省', '1306', '保定市', '130626', '定兴县', '', '', '', '', 3, 1, ''), ('130627', '1306', '00,13,1306', '唐县', '13', '河北省', '1306', '保定市', '130627', '唐县', '', '', '', '', 3, 1, ''), ('130628', '1306', '00,13,1306', '高阳县', '13', '河北省', '1306', '保定市', '130628', '高阳县', '', '', '', '', 3, 1, ''), ('130629', '1306', '00,13,1306', '容城县', '13', '河北省', '1306', '保定市', '130629', '容城县', '', '', '', '', 3, 1, ''), ('130630', '1306', '00,13,1306', '涞源县', '13', '河北省', '1306', '保定市', '130630', '涞源县', '', '', '', '', 3, 1, ''), ('130631', '1306', '00,13,1306', '望都县', '13', '河北省', '1306', '保定市', '130631', '望都县', '', '', '', '', 3, 1, ''), ('130632', '1306', '00,13,1306', '安新县', '13', '河北省', '1306', '保定市', '130632', '安新县', '', '', '', '', 3, 1, ''), ('130633', '1306', '00,13,1306', '易县', '13', '河北省', '1306', '保定市', '130633', '易县', '', '', '', '', 3, 1, ''), ('130634', '1306', '00,13,1306', '曲阳县', '13', '河北省', '1306', '保定市', '130634', '曲阳县', '', '', '', '', 3, 1, ''), ('130635', '1306', '00,13,1306', '蠡县', '13', '河北省', '1306', '保定市', '130635', '蠡县', '', '', '', '', 3, 1, ''), ('130636', '1306', '00,13,1306', '顺平县', '13', '河北省', '1306', '保定市', '130636', '顺平县', '', '', '', '', 3, 1, ''), ('130637', '1306', '00,13,1306', '博野县', '13', '河北省', '1306', '保定市', '130637', '博野县', '', '', '', '', 3, 1, ''), ('130638', '1306', '00,13,1306', '雄县', '13', '河北省', '1306', '保定市', '130638', '雄县', '', '', '', '', 3, 1, ''), ('130681', '1306', '00,13,1306', '涿州市', '13', '河北省', '1306', '保定市', '130681', '涿州市', '', '', '', '', 3, 1, ''), ('130682', '1306', '00,13,1306', '定州市', '13', '河北省', '1306', '保定市', '130682', '定州市', '', '', '', '', 3, 1, ''), ('130683', '1306', '00,13,1306', '安国市', '13', '河北省', '1306', '保定市', '130683', '安国市', '', '', '', '', 3, 1, ''), ('130684', '1306', '00,13,1306', '高碑店市', '13', '河北省', '1306', '保定市', '130684', '高碑店市', '', '', '', '', 3, 1, ''), ('1307', '13', '00,13', '张家口市', '13', '河北省', '1307', '张家口市', '', '', '', '', '', '', 2, 1, ''), ('130702', '1307', '00,13,1307', '桥东区', '13', '河北省', '1307', '张家口市', '130702', '桥东区', '', '', '', '', 3, 1, ''), ('130703', '1307', '00,13,1307', '桥西区', '13', '河北省', '1307', '张家口市', '130703', '桥西区', '', '', '', '', 3, 1, ''), ('130705', '1307', '00,13,1307', '宣化区', '13', '河北省', '1307', '张家口市', '130705', '宣化区', '', '', '', '', 3, 1, ''), ('130706', '1307', '00,13,1307', '下花园区', '13', '河北省', '1307', '张家口市', '130706', '下花园区', '', '', '', '', 3, 1, ''), ('130708', '1307', '00,13,1307', '万全区', '13', '河北省', '1307', '张家口市', '130708', '万全区', '', '', '', '', 3, 1, ''), ('130709', '1307', '00,13,1307', '崇礼区', '13', '河北省', '1307', '张家口市', '130709', '崇礼区', '', '', '', '', 3, 1, ''), ('130722', '1307', '00,13,1307', '张北县', '13', '河北省', '1307', '张家口市', '130722', '张北县', '', '', '', '', 3, 1, ''), ('130723', '1307', '00,13,1307', '康保县', '13', '河北省', '1307', '张家口市', '130723', '康保县', '', '', '', '', 3, 1, ''), ('130724', '1307', '00,13,1307', '沽源县', '13', '河北省', '1307', '张家口市', '130724', '沽源县', '', '', '', '', 3, 1, ''), ('130725', '1307', '00,13,1307', '尚义县', '13', '河北省', '1307', '张家口市', '130725', '尚义县', '', '', '', '', 3, 1, ''), ('130726', '1307', '00,13,1307', '蔚县', '13', '河北省', '1307', '张家口市', '130726', '蔚县', '', '', '', '', 3, 1, ''), ('130727', '1307', '00,13,1307', '阳原县', '13', '河北省', '1307', '张家口市', '130727', '阳原县', '', '', '', '', 3, 1, ''), ('130728', '1307', '00,13,1307', '怀安县', '13', '河北省', '1307', '张家口市', '130728', '怀安县', '', '', '', '', 3, 1, ''), ('130730', '1307', '00,13,1307', '怀来县', '13', '河北省', '1307', '张家口市', '130730', '怀来县', '', '', '', '', 3, 1, ''), ('130731', '1307', '00,13,1307', '涿鹿县', '13', '河北省', '1307', '张家口市', '130731', '涿鹿县', '', '', '', '', 3, 1, ''), ('130732', '1307', '00,13,1307', '赤城县', '13', '河北省', '1307', '张家口市', '130732', '赤城县', '', '', '', '', 3, 1, ''), ('1308', '13', '00,13', '承德市', '13', '河北省', '1308', '承德市', '', '', '', '', '', '', 2, 1, ''), ('130802', '1308', '00,13,1308', '双桥区', '13', '河北省', '1308', '承德市', '130802', '双桥区', '', '', '', '', 3, 1, ''), ('130803', '1308', '00,13,1308', '双滦区', '13', '河北省', '1308', '承德市', '130803', '双滦区', '', '', '', '', 3, 1, ''), ('130804', '1308', '00,13,1308', '鹰手营子矿区', '13', '河北省', '1308', '承德市', '130804', '鹰手营子矿区', '', '', '', '', 3, 1, ''), ('130821', '1308', '00,13,1308', '承德县', '13', '河北省', '1308', '承德市', '130821', '承德县', '', '', '', '', 3, 1, ''), ('130822', '1308', '00,13,1308', '兴隆县', '13', '河北省', '1308', '承德市', '130822', '兴隆县', '', '', '', '', 3, 1, ''), ('130824', '1308', '00,13,1308', '滦平县', '13', '河北省', '1308', '承德市', '130824', '滦平县', '', '', '', '', 3, 1, ''), ('130825', '1308', '00,13,1308', '隆化县', '13', '河北省', '1308', '承德市', '130825', '隆化县', '', '', '', '', 3, 1, ''), ('130826', '1308', '00,13,1308', '丰宁满族自治县', '13', '河北省', '1308', '承德市', '130826', '丰宁满族自治县', '', '', '', '', 3, 1, ''), ('130827', '1308', '00,13,1308', '宽城满族自治县', '13', '河北省', '1308', '承德市', '130827', '宽城满族自治县', '', '', '', '', 3, 1, ''), ('130828', '1308', '00,13,1308', '围场满族蒙古族自治县', '13', '河北省', '1308', '承德市', '130828', '围场满族蒙古族自治县', '', '', '', '', 3, 1, ''), ('130881', '1308', '00,13,1308', '平泉市', '13', '河北省', '1308', '承德市', '130881', '平泉市', '', '', '', '', 3, 1, ''), ('1309', '13', '00,13', '沧州市', '13', '河北省', '1309', '沧州市', '', '', '', '', '', '', 2, 1, ''), ('130902', '1309', '00,13,1309', '新华区', '13', '河北省', '1309', '沧州市', '130902', '新华区', '', '', '', '', 3, 1, ''), ('130903', '1309', '00,13,1309', '运河区', '13', '河北省', '1309', '沧州市', '130903', '运河区', '', '', '', '', 3, 1, ''), ('130921', '1309', '00,13,1309', '沧县', '13', '河北省', '1309', '沧州市', '130921', '沧县', '', '', '', '', 3, 1, ''), ('130922', '1309', '00,13,1309', '青县', '13', '河北省', '1309', '沧州市', '130922', '青县', '', '', '', '', 3, 1, ''), ('130923', '1309', '00,13,1309', '东光县', '13', '河北省', '1309', '沧州市', '130923', '东光县', '', '', '', '', 3, 1, ''), ('130924', '1309', '00,13,1309', '海兴县', '13', '河北省', '1309', '沧州市', '130924', '海兴县', '', '', '', '', 3, 1, ''), ('130925', '1309', '00,13,1309', '盐山县', '13', '河北省', '1309', '沧州市', '130925', '盐山县', '', '', '', '', 3, 1, ''), ('130926', '1309', '00,13,1309', '肃宁县', '13', '河北省', '1309', '沧州市', '130926', '肃宁县', '', '', '', '', 3, 1, ''), ('130927', '1309', '00,13,1309', '南皮县', '13', '河北省', '1309', '沧州市', '130927', '南皮县', '', '', '', '', 3, 1, ''), ('130928', '1309', '00,13,1309', '吴桥县', '13', '河北省', '1309', '沧州市', '130928', '吴桥县', '', '', '', '', 3, 1, ''), ('130929', '1309', '00,13,1309', '献县', '13', '河北省', '1309', '沧州市', '130929', '献县', '', '', '', '', 3, 1, ''), ('130930', '1309', '00,13,1309', '孟村回族自治县', '13', '河北省', '1309', '沧州市', '130930', '孟村回族自治县', '', '', '', '', 3, 1, ''), ('130981', '1309', '00,13,1309', '泊头市', '13', '河北省', '1309', '沧州市', '130981', '泊头市', '', '', '', '', 3, 1, ''), ('130982', '1309', '00,13,1309', '任丘市', '13', '河北省', '1309', '沧州市', '130982', '任丘市', '', '', '', '', 3, 1, ''), ('130983', '1309', '00,13,1309', '黄骅市', '13', '河北省', '1309', '沧州市', '130983', '黄骅市', '', '', '', '', 3, 1, ''), ('130984', '1309', '00,13,1309', '河间市', '13', '河北省', '1309', '沧州市', '130984', '河间市', '', '', '', '', 3, 1, ''), ('1310', '13', '00,13', '廊坊市', '13', '河北省', '1310', '廊坊市', '', '', '', '', '', '', 2, 1, ''), ('131002', '1310', '00,13,1310', '安次区', '13', '河北省', '1310', '廊坊市', '131002', '安次区', '', '', '', '', 3, 1, ''), ('131003', '1310', '00,13,1310', '广阳区', '13', '河北省', '1310', '廊坊市', '131003', '广阳区', '', '', '', '', 3, 1, ''), ('131022', '1310', '00,13,1310', '固安县', '13', '河北省', '1310', '廊坊市', '131022', '固安县', '', '', '', '', 3, 1, ''), ('131023', '1310', '00,13,1310', '永清县', '13', '河北省', '1310', '廊坊市', '131023', '永清县', '', '', '', '', 3, 1, ''), ('131024', '1310', '00,13,1310', '香河县', '13', '河北省', '1310', '廊坊市', '131024', '香河县', '', '', '', '', 3, 1, ''), ('131025', '1310', '00,13,1310', '大城县', '13', '河北省', '1310', '廊坊市', '131025', '大城县', '', '', '', '', 3, 1, ''), ('131026', '1310', '00,13,1310', '文安县', '13', '河北省', '1310', '廊坊市', '131026', '文安县', '', '', '', '', 3, 1, ''), ('131028', '1310', '00,13,1310', '大厂回族自治县', '13', '河北省', '1310', '廊坊市', '131028', '大厂回族自治县', '', '', '', '', 3, 1, ''), ('131081', '1310', '00,13,1310', '霸州市', '13', '河北省', '1310', '廊坊市', '131081', '霸州市', '', '', '', '', 3, 1, ''), ('131082', '1310', '00,13,1310', '三河市', '13', '河北省', '1310', '廊坊市', '131082', '三河市', '', '', '', '', 3, 1, ''), ('1311', '13', '00,13', '衡水市', '13', '河北省', '1311', '衡水市', '', '', '', '', '', '', 2, 1, ''), ('131102', '1311', '00,13,1311', '桃城区', '13', '河北省', '1311', '衡水市', '131102', '桃城区', '', '', '', '', 3, 1, ''), ('131103', '1311', '00,13,1311', '冀州区', '13', '河北省', '1311', '衡水市', '131103', '冀州区', '', '', '', '', 3, 1, ''), ('131121', '1311', '00,13,1311', '枣强县', '13', '河北省', '1311', '衡水市', '131121', '枣强县', '', '', '', '', 3, 1, ''), ('131122', '1311', '00,13,1311', '武邑县', '13', '河北省', '1311', '衡水市', '131122', '武邑县', '', '', '', '', 3, 1, ''), ('131123', '1311', '00,13,1311', '武强县', '13', '河北省', '1311', '衡水市', '131123', '武强县', '', '', '', '', 3, 1, ''), ('131124', '1311', '00,13,1311', '饶阳县', '13', '河北省', '1311', '衡水市', '131124', '饶阳县', '', '', '', '', 3, 1, ''), ('131125', '1311', '00,13,1311', '安平县', '13', '河北省', '1311', '衡水市', '131125', '安平县', '', '', '', '', 3, 1, ''), ('131126', '1311', '00,13,1311', '故城县', '13', '河北省', '1311', '衡水市', '131126', '故城县', '', '', '', '', 3, 1, ''), ('131127', '1311', '00,13,1311', '景县', '13', '河北省', '1311', '衡水市', '131127', '景县', '', '', '', '', 3, 1, ''), ('131128', '1311', '00,13,1311', '阜城县', '13', '河北省', '1311', '衡水市', '131128', '阜城县', '', '', '', '', 3, 1, ''), ('131182', '1311', '00,13,1311', '深州市', '13', '河北省', '1311', '衡水市', '131182', '深州市', '', '', '', '', 3, 1, ''), ('14', '00', '00', '山西省', '14', '山西省', '', '', '', '', '', '', '', '', 1, 1, ''), ('1401', '14', '00,14', '太原市', '14', '山西省', '1401', '太原市', '', '', '', '', '', '', 2, 1, ''), ('140105', '1401', '00,14,1401', '小店区', '14', '山西省', '1401', '太原市', '140105', '小店区', '', '', '', '', 3, 1, ''), ('140106', '1401', '00,14,1401', '迎泽区', '14', '山西省', '1401', '太原市', '140106', '迎泽区', '', '', '', '', 3, 1, ''), ('140107', '1401', '00,14,1401', '杏花岭区', '14', '山西省', '1401', '太原市', '140107', '杏花岭区', '', '', '', '', 3, 1, ''), ('140108', '1401', '00,14,1401', '尖草坪区', '14', '山西省', '1401', '太原市', '140108', '尖草坪区', '', '', '', '', 3, 1, ''), ('140109', '1401', '00,14,1401', '万柏林区', '14', '山西省', '1401', '太原市', '140109', '万柏林区', '', '', '', '', 3, 1, ''), ('140110', '1401', '00,14,1401', '晋源区', '14', '山西省', '1401', '太原市', '140110', '晋源区', '', '', '', '', 3, 1, ''), ('140121', '1401', '00,14,1401', '清徐县', '14', '山西省', '1401', '太原市', '140121', '清徐县', '', '', '', '', 3, 1, ''), ('140122', '1401', '00,14,1401', '阳曲县', '14', '山西省', '1401', '太原市', '140122', '阳曲县', '', '', '', '', 3, 1, ''), ('140123', '1401', '00,14,1401', '娄烦县', '14', '山西省', '1401', '太原市', '140123', '娄烦县', '', '', '', '', 3, 1, ''), ('140181', '1401', '00,14,1401', '古交市', '14', '山西省', '1401', '太原市', '140181', '古交市', '', '', '', '', 3, 1, ''), ('1402', '14', '00,14', '大同市', '14', '山西省', '1402', '大同市', '', '', '', '', '', '', 2, 1, ''), ('140212', '1402', '00,14,1402', '新荣区', '14', '山西省', '1402', '大同市', '140212', '新荣区', '', '', '', '', 3, 1, ''), ('140213', '1402', '00,14,1402', '平城区', '14', '山西省', '1402', '大同市', '140213', '平城区', '', '', '', '', 3, 1, ''), ('140214', '1402', '00,14,1402', '云冈区', '14', '山西省', '1402', '大同市', '140214', '云冈区', '', '', '', '', 3, 1, ''), ('140215', '1402', '00,14,1402', '云州区', '14', '山西省', '1402', '大同市', '140215', '云州区', '', '', '', '', 3, 1, ''), ('140221', '1402', '00,14,1402', '阳高县', '14', '山西省', '1402', '大同市', '140221', '阳高县', '', '', '', '', 3, 1, ''), ('140222', '1402', '00,14,1402', '天镇县', '14', '山西省', '1402', '大同市', '140222', '天镇县', '', '', '', '', 3, 1, ''), ('140223', '1402', '00,14,1402', '广灵县', '14', '山西省', '1402', '大同市', '140223', '广灵县', '', '', '', '', 3, 1, ''), ('140224', '1402', '00,14,1402', '灵丘县', '14', '山西省', '1402', '大同市', '140224', '灵丘县', '', '', '', '', 3, 1, ''), ('140225', '1402', '00,14,1402', '浑源县', '14', '山西省', '1402', '大同市', '140225', '浑源县', '', '', '', '', 3, 1, ''), ('140226', '1402', '00,14,1402', '左云县', '14', '山西省', '1402', '大同市', '140226', '左云县', '', '', '', '', 3, 1, ''), ('1403', '14', '00,14', '阳泉市', '14', '山西省', '1403', '阳泉市', '', '', '', '', '', '', 2, 1, ''), ('140302', '1403', '00,14,1403', '城区', '14', '山西省', '1403', '阳泉市', '140302', '城区', '', '', '', '', 3, 1, ''), ('140303', '1403', '00,14,1403', '矿区', '14', '山西省', '1403', '阳泉市', '140303', '矿区', '', '', '', '', 3, 1, ''), ('140311', '1403', '00,14,1403', '郊区', '14', '山西省', '1403', '阳泉市', '140311', '郊区', '', '', '', '', 3, 1, ''), ('140321', '1403', '00,14,1403', '平定县', '14', '山西省', '1403', '阳泉市', '140321', '平定县', '', '', '', '', 3, 1, ''), ('140322', '1403', '00,14,1403', '盂县', '14', '山西省', '1403', '阳泉市', '140322', '盂县', '', '', '', '', 3, 1, ''), ('1404', '14', '00,14', '长治市', '14', '山西省', '1404', '长治市', '', '', '', '', '', '', 2, 1, ''), ('140403', '1404', '00,14,1404', '潞州区', '14', '山西省', '1404', '长治市', '140403', '潞州区', '', '', '', '', 3, 1, ''), ('140404', '1404', '00,14,1404', '上党区', '14', '山西省', '1404', '长治市', '140404', '上党区', '', '', '', '', 3, 1, ''), ('140405', '1404', '00,14,1404', '屯留区', '14', '山西省', '1404', '长治市', '140405', '屯留区', '', '', '', '', 3, 1, ''), ('140406', '1404', '00,14,1404', '潞城区', '14', '山西省', '1404', '长治市', '140406', '潞城区', '', '', '', '', 3, 1, ''), ('140423', '1404', '00,14,1404', '襄垣县', '14', '山西省', '1404', '长治市', '140423', '襄垣县', '', '', '', '', 3, 1, ''), ('140425', '1404', '00,14,1404', '平顺县', '14', '山西省', '1404', '长治市', '140425', '平顺县', '', '', '', '', 3, 1, ''), ('140426', '1404', '00,14,1404', '黎城县', '14', '山西省', '1404', '长治市', '140426', '黎城县', '', '', '', '', 3, 1, ''), ('140427', '1404', '00,14,1404', '壶关县', '14', '山西省', '1404', '长治市', '140427', '壶关县', '', '', '', '', 3, 1, ''), ('140428', '1404', '00,14,1404', '长子县', '14', '山西省', '1404', '长治市', '140428', '长子县', '', '', '', '', 3, 1, ''), ('140429', '1404', '00,14,1404', '武乡县', '14', '山西省', '1404', '长治市', '140429', '武乡县', '', '', '', '', 3, 1, ''), ('140430', '1404', '00,14,1404', '沁县', '14', '山西省', '1404', '长治市', '140430', '沁县', '', '', '', '', 3, 1, ''), ('140431', '1404', '00,14,1404', '沁源县', '14', '山西省', '1404', '长治市', '140431', '沁源县', '', '', '', '', 3, 1, ''), ('1405', '14', '00,14', '晋城市', '14', '山西省', '1405', '晋城市', '', '', '', '', '', '', 2, 1, ''), ('140502', '1405', '00,14,1405', '城区', '14', '山西省', '1405', '晋城市', '140502', '城区', '', '', '', '', 3, 1, ''), ('140521', '1405', '00,14,1405', '沁水县', '14', '山西省', '1405', '晋城市', '140521', '沁水县', '', '', '', '', 3, 1, ''), ('140522', '1405', '00,14,1405', '阳城县', '14', '山西省', '1405', '晋城市', '140522', '阳城县', '', '', '', '', 3, 1, ''), ('140524', '1405', '00,14,1405', '陵川县', '14', '山西省', '1405', '晋城市', '140524', '陵川县', '', '', '', '', 3, 1, ''), ('140525', '1405', '00,14,1405', '泽州县', '14', '山西省', '1405', '晋城市', '140525', '泽州县', '', '', '', '', 3, 1, ''), ('140581', '1405', '00,14,1405', '高平市', '14', '山西省', '1405', '晋城市', '140581', '高平市', '', '', '', '', 3, 1, ''), ('1406', '14', '00,14', '朔州市', '14', '山西省', '1406', '朔州市', '', '', '', '', '', '', 2, 1, ''), ('140602', '1406', '00,14,1406', '朔城区', '14', '山西省', '1406', '朔州市', '140602', '朔城区', '', '', '', '', 3, 1, ''), ('140603', '1406', '00,14,1406', '平鲁区', '14', '山西省', '1406', '朔州市', '140603', '平鲁区', '', '', '', '', 3, 1, ''), ('140621', '1406', '00,14,1406', '山阴县', '14', '山西省', '1406', '朔州市', '140621', '山阴县', '', '', '', '', 3, 1, ''), ('140622', '1406', '00,14,1406', '应县', '14', '山西省', '1406', '朔州市', '140622', '应县', '', '', '', '', 3, 1, ''), ('140623', '1406', '00,14,1406', '右玉县', '14', '山西省', '1406', '朔州市', '140623', '右玉县', '', '', '', '', 3, 1, ''), ('140681', '1406', '00,14,1406', '怀仁市', '14', '山西省', '1406', '朔州市', '140681', '怀仁市', '', '', '', '', 3, 1, ''), ('1407', '14', '00,14', '晋中市', '14', '山西省', '1407', '晋中市', '', '', '', '', '', '', 2, 1, ''), ('140702', '1407', '00,14,1407', '榆次区', '14', '山西省', '1407', '晋中市', '140702', '榆次区', '', '', '', '', 3, 1, ''), ('140703', '1407', '00,14,1407', '太谷区', '14', '山西省', '1407', '晋中市', '140703', '太谷区', '', '', '', '', 3, 1, ''), ('140721', '1407', '00,14,1407', '榆社县', '14', '山西省', '1407', '晋中市', '140721', '榆社县', '', '', '', '', 3, 1, ''), ('140722', '1407', '00,14,1407', '左权县', '14', '山西省', '1407', '晋中市', '140722', '左权县', '', '', '', '', 3, 1, ''), ('140723', '1407', '00,14,1407', '和顺县', '14', '山西省', '1407', '晋中市', '140723', '和顺县', '', '', '', '', 3, 1, ''), ('140724', '1407', '00,14,1407', '昔阳县', '14', '山西省', '1407', '晋中市', '140724', '昔阳县', '', '', '', '', 3, 1, ''), ('140725', '1407', '00,14,1407', '寿阳县', '14', '山西省', '1407', '晋中市', '140725', '寿阳县', '', '', '', '', 3, 1, ''), ('140727', '1407', '00,14,1407', '祁县', '14', '山西省', '1407', '晋中市', '140727', '祁县', '', '', '', '', 3, 1, ''), ('140728', '1407', '00,14,1407', '平遥县', '14', '山西省', '1407', '晋中市', '140728', '平遥县', '', '', '', '', 3, 1, ''), ('140729', '1407', '00,14,1407', '灵石县', '14', '山西省', '1407', '晋中市', '140729', '灵石县', '', '', '', '', 3, 1, ''), ('140781', '1407', '00,14,1407', '介休市', '14', '山西省', '1407', '晋中市', '140781', '介休市', '', '', '', '', 3, 1, ''), ('1408', '14', '00,14', '运城市', '14', '山西省', '1408', '运城市', '', '', '', '', '', '', 2, 1, ''), ('140802', '1408', '00,14,1408', '盐湖区', '14', '山西省', '1408', '运城市', '140802', '盐湖区', '', '', '', '', 3, 1, ''), ('140821', '1408', '00,14,1408', '临猗县', '14', '山西省', '1408', '运城市', '140821', '临猗县', '', '', '', '', 3, 1, ''), ('140822', '1408', '00,14,1408', '万荣县', '14', '山西省', '1408', '运城市', '140822', '万荣县', '', '', '', '', 3, 1, ''), ('140823', '1408', '00,14,1408', '闻喜县', '14', '山西省', '1408', '运城市', '140823', '闻喜县', '', '', '', '', 3, 1, ''), ('140824', '1408', '00,14,1408', '稷山县', '14', '山西省', '1408', '运城市', '140824', '稷山县', '', '', '', '', 3, 1, ''), ('140825', '1408', '00,14,1408', '新绛县', '14', '山西省', '1408', '运城市', '140825', '新绛县', '', '', '', '', 3, 1, ''), ('140826', '1408', '00,14,1408', '绛县', '14', '山西省', '1408', '运城市', '140826', '绛县', '', '', '', '', 3, 1, ''), ('140827', '1408', '00,14,1408', '垣曲县', '14', '山西省', '1408', '运城市', '140827', '垣曲县', '', '', '', '', 3, 1, ''), ('140828', '1408', '00,14,1408', '夏县', '14', '山西省', '1408', '运城市', '140828', '夏县', '', '', '', '', 3, 1, ''), ('140829', '1408', '00,14,1408', '平陆县', '14', '山西省', '1408', '运城市', '140829', '平陆县', '', '', '', '', 3, 1, ''), ('140830', '1408', '00,14,1408', '芮城县', '14', '山西省', '1408', '运城市', '140830', '芮城县', '', '', '', '', 3, 1, ''), ('140881', '1408', '00,14,1408', '永济市', '14', '山西省', '1408', '运城市', '140881', '永济市', '', '', '', '', 3, 1, ''), ('140882', '1408', '00,14,1408', '河津市', '14', '山西省', '1408', '运城市', '140882', '河津市', '', '', '', '', 3, 1, ''), ('1409', '14', '00,14', '忻州市', '14', '山西省', '1409', '忻州市', '', '', '', '', '', '', 2, 1, ''), ('140902', '1409', '00,14,1409', '忻府区', '14', '山西省', '1409', '忻州市', '140902', '忻府区', '', '', '', '', 3, 1, ''), ('140921', '1409', '00,14,1409', '定襄县', '14', '山西省', '1409', '忻州市', '140921', '定襄县', '', '', '', '', 3, 1, ''), ('140922', '1409', '00,14,1409', '五台县', '14', '山西省', '1409', '忻州市', '140922', '五台县', '', '', '', '', 3, 1, ''), ('140923', '1409', '00,14,1409', '代县', '14', '山西省', '1409', '忻州市', '140923', '代县', '', '', '', '', 3, 1, ''), ('140924', '1409', '00,14,1409', '繁峙县', '14', '山西省', '1409', '忻州市', '140924', '繁峙县', '', '', '', '', 3, 1, ''), ('140925', '1409', '00,14,1409', '宁武县', '14', '山西省', '1409', '忻州市', '140925', '宁武县', '', '', '', '', 3, 1, ''), ('140926', '1409', '00,14,1409', '静乐县', '14', '山西省', '1409', '忻州市', '140926', '静乐县', '', '', '', '', 3, 1, ''), ('140927', '1409', '00,14,1409', '神池县', '14', '山西省', '1409', '忻州市', '140927', '神池县', '', '', '', '', 3, 1, ''), ('140928', '1409', '00,14,1409', '五寨县', '14', '山西省', '1409', '忻州市', '140928', '五寨县', '', '', '', '', 3, 1, ''), ('140929', '1409', '00,14,1409', '岢岚县', '14', '山西省', '1409', '忻州市', '140929', '岢岚县', '', '', '', '', 3, 1, ''), ('140930', '1409', '00,14,1409', '河曲县', '14', '山西省', '1409', '忻州市', '140930', '河曲县', '', '', '', '', 3, 1, ''), ('140931', '1409', '00,14,1409', '保德县', '14', '山西省', '1409', '忻州市', '140931', '保德县', '', '', '', '', 3, 1, ''), ('140932', '1409', '00,14,1409', '偏关县', '14', '山西省', '1409', '忻州市', '140932', '偏关县', '', '', '', '', 3, 1, ''), ('140981', '1409', '00,14,1409', '原平市', '14', '山西省', '1409', '忻州市', '140981', '原平市', '', '', '', '', 3, 1, ''), ('1410', '14', '00,14', '临汾市', '14', '山西省', '1410', '临汾市', '', '', '', '', '', '', 2, 1, ''), ('141002', '1410', '00,14,1410', '尧都区', '14', '山西省', '1410', '临汾市', '141002', '尧都区', '', '', '', '', 3, 1, ''), ('141021', '1410', '00,14,1410', '曲沃县', '14', '山西省', '1410', '临汾市', '141021', '曲沃县', '', '', '', '', 3, 1, ''), ('141022', '1410', '00,14,1410', '翼城县', '14', '山西省', '1410', '临汾市', '141022', '翼城县', '', '', '', '', 3, 1, ''), ('141023', '1410', '00,14,1410', '襄汾县', '14', '山西省', '1410', '临汾市', '141023', '襄汾县', '', '', '', '', 3, 1, ''), ('141024', '1410', '00,14,1410', '洪洞县', '14', '山西省', '1410', '临汾市', '141024', '洪洞县', '', '', '', '', 3, 1, ''), ('141025', '1410', '00,14,1410', '古县', '14', '山西省', '1410', '临汾市', '141025', '古县', '', '', '', '', 3, 1, ''), ('141026', '1410', '00,14,1410', '安泽县', '14', '山西省', '1410', '临汾市', '141026', '安泽县', '', '', '', '', 3, 1, ''), ('141027', '1410', '00,14,1410', '浮山县', '14', '山西省', '1410', '临汾市', '141027', '浮山县', '', '', '', '', 3, 1, ''), ('141028', '1410', '00,14,1410', '吉县', '14', '山西省', '1410', '临汾市', '141028', '吉县', '', '', '', '', 3, 1, ''), ('141029', '1410', '00,14,1410', '乡宁县', '14', '山西省', '1410', '临汾市', '141029', '乡宁县', '', '', '', '', 3, 1, ''), ('141030', '1410', '00,14,1410', '大宁县', '14', '山西省', '1410', '临汾市', '141030', '大宁县', '', '', '', '', 3, 1, ''), ('141031', '1410', '00,14,1410', '隰县', '14', '山西省', '1410', '临汾市', '141031', '隰县', '', '', '', '', 3, 1, ''), ('141032', '1410', '00,14,1410', '永和县', '14', '山西省', '1410', '临汾市', '141032', '永和县', '', '', '', '', 3, 1, ''), ('141033', '1410', '00,14,1410', '蒲县', '14', '山西省', '1410', '临汾市', '141033', '蒲县', '', '', '', '', 3, 1, ''), ('141034', '1410', '00,14,1410', '汾西县', '14', '山西省', '1410', '临汾市', '141034', '汾西县', '', '', '', '', 3, 1, ''), ('141081', '1410', '00,14,1410', '侯马市', '14', '山西省', '1410', '临汾市', '141081', '侯马市', '', '', '', '', 3, 1, ''), ('141082', '1410', '00,14,1410', '霍州市', '14', '山西省', '1410', '临汾市', '141082', '霍州市', '', '', '', '', 3, 1, ''), ('1411', '14', '00,14', '吕梁市', '14', '山西省', '1411', '吕梁市', '', '', '', '', '', '', 2, 1, ''), ('141102', '1411', '00,14,1411', '离石区', '14', '山西省', '1411', '吕梁市', '141102', '离石区', '', '', '', '', 3, 1, ''), ('141121', '1411', '00,14,1411', '文水县', '14', '山西省', '1411', '吕梁市', '141121', '文水县', '', '', '', '', 3, 1, ''), ('141122', '1411', '00,14,1411', '交城县', '14', '山西省', '1411', '吕梁市', '141122', '交城县', '', '', '', '', 3, 1, ''), ('141123', '1411', '00,14,1411', '兴县', '14', '山西省', '1411', '吕梁市', '141123', '兴县', '', '', '', '', 3, 1, ''), ('141124', '1411', '00,14,1411', '临县', '14', '山西省', '1411', '吕梁市', '141124', '临县', '', '', '', '', 3, 1, ''), ('141125', '1411', '00,14,1411', '柳林县', '14', '山西省', '1411', '吕梁市', '141125', '柳林县', '', '', '', '', 3, 1, ''), ('141126', '1411', '00,14,1411', '石楼县', '14', '山西省', '1411', '吕梁市', '141126', '石楼县', '', '', '', '', 3, 1, ''), ('141127', '1411', '00,14,1411', '岚县', '14', '山西省', '1411', '吕梁市', '141127', '岚县', '', '', '', '', 3, 1, ''), ('141128', '1411', '00,14,1411', '方山县', '14', '山西省', '1411', '吕梁市', '141128', '方山县', '', '', '', '', 3, 1, ''), ('141129', '1411', '00,14,1411', '中阳县', '14', '山西省', '1411', '吕梁市', '141129', '中阳县', '', '', '', '', 3, 1, ''), ('141130', '1411', '00,14,1411', '交口县', '14', '山西省', '1411', '吕梁市', '141130', '交口县', '', '', '', '', 3, 1, ''), ('141181', '1411', '00,14,1411', '孝义市', '14', '山西省', '1411', '吕梁市', '141181', '孝义市', '', '', '', '', 3, 1, ''), ('141182', '1411', '00,14,1411', '汾阳市', '14', '山西省', '1411', '吕梁市', '141182', '汾阳市', '', '', '', '', 3, 1, ''), ('15', '00', '00', '内蒙古自治区', '15', '内蒙古自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('1501', '15', '00,15', '呼和浩特市', '15', '内蒙古自治区', '1501', '呼和浩特市', '', '', '', '', '', '', 2, 1, ''), ('150102', '1501', '00,15,1501', '新城区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150102', '新城区', '', '', '', '', 3, 1, ''), ('150103', '1501', '00,15,1501', '回民区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150103', '回民区', '', '', '', '', 3, 1, ''), ('150104', '1501', '00,15,1501', '玉泉区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150104', '玉泉区', '', '', '', '', 3, 1, ''), ('150105', '1501', '00,15,1501', '赛罕区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150105', '赛罕区', '', '', '', '', 3, 1, ''), ('150121', '1501', '00,15,1501', '土默特左旗', '15', '内蒙古自治区', '1501', '呼和浩特市', '150121', '土默特左旗', '', '', '', '', 3, 1, ''), ('150122', '1501', '00,15,1501', '托克托县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150122', '托克托县', '', '', '', '', 3, 1, ''), ('150123', '1501', '00,15,1501', '和林格尔县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150123', '和林格尔县', '', '', '', '', 3, 1, ''), ('150124', '1501', '00,15,1501', '清水河县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150124', '清水河县', '', '', '', '', 3, 1, ''), ('150125', '1501', '00,15,1501', '武川县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150125', '武川县', '', '', '', '', 3, 1, ''), ('1502', '15', '00,15', '包头市', '15', '内蒙古自治区', '1502', '包头市', '', '', '', '', '', '', 2, 1, ''), ('150202', '1502', '00,15,1502', '东河区', '15', '内蒙古自治区', '1502', '包头市', '150202', '东河区', '', '', '', '', 3, 1, ''), ('150203', '1502', '00,15,1502', '昆都仑区', '15', '内蒙古自治区', '1502', '包头市', '150203', '昆都仑区', '', '', '', '', 3, 1, ''), ('150204', '1502', '00,15,1502', '青山区', '15', '内蒙古自治区', '1502', '包头市', '150204', '青山区', '', '', '', '', 3, 1, ''), ('150205', '1502', '00,15,1502', '石拐区', '15', '内蒙古自治区', '1502', '包头市', '150205', '石拐区', '', '', '', '', 3, 1, ''), ('150206', '1502', '00,15,1502', '白云鄂博矿区', '15', '内蒙古自治区', '1502', '包头市', '150206', '白云鄂博矿区', '', '', '', '', 3, 1, ''), ('150207', '1502', '00,15,1502', '九原区', '15', '内蒙古自治区', '1502', '包头市', '150207', '九原区', '', '', '', '', 3, 1, ''), ('150221', '1502', '00,15,1502', '土默特右旗', '15', '内蒙古自治区', '1502', '包头市', '150221', '土默特右旗', '', '', '', '', 3, 1, ''), ('150222', '1502', '00,15,1502', '固阳县', '15', '内蒙古自治区', '1502', '包头市', '150222', '固阳县', '', '', '', '', 3, 1, ''), ('150223', '1502', '00,15,1502', '达尔罕茂明安联合旗', '15', '内蒙古自治区', '1502', '包头市', '150223', '达尔罕茂明安联合旗', '', '', '', '', 3, 1, ''), ('1503', '15', '00,15', '乌海市', '15', '内蒙古自治区', '1503', '乌海市', '', '', '', '', '', '', 2, 1, ''), ('150302', '1503', '00,15,1503', '海勃湾区', '15', '内蒙古自治区', '1503', '乌海市', '150302', '海勃湾区', '', '', '', '', 3, 1, ''), ('150303', '1503', '00,15,1503', '海南区', '15', '内蒙古自治区', '1503', '乌海市', '150303', '海南区', '', '', '', '', 3, 1, ''), ('150304', '1503', '00,15,1503', '乌达区', '15', '内蒙古自治区', '1503', '乌海市', '150304', '乌达区', '', '', '', '', 3, 1, ''), ('1504', '15', '00,15', '赤峰市', '15', '内蒙古自治区', '1504', '赤峰市', '', '', '', '', '', '', 2, 1, ''), ('150402', '1504', '00,15,1504', '红山区', '15', '内蒙古自治区', '1504', '赤峰市', '150402', '红山区', '', '', '', '', 3, 1, ''), ('150403', '1504', '00,15,1504', '元宝山区', '15', '内蒙古自治区', '1504', '赤峰市', '150403', '元宝山区', '', '', '', '', 3, 1, ''), ('150404', '1504', '00,15,1504', '松山区', '15', '内蒙古自治区', '1504', '赤峰市', '150404', '松山区', '', '', '', '', 3, 1, ''), ('150421', '1504', '00,15,1504', '阿鲁科尔沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150421', '阿鲁科尔沁旗', '', '', '', '', 3, 1, ''), ('150422', '1504', '00,15,1504', '巴林左旗', '15', '内蒙古自治区', '1504', '赤峰市', '150422', '巴林左旗', '', '', '', '', 3, 1, ''), ('150423', '1504', '00,15,1504', '巴林右旗', '15', '内蒙古自治区', '1504', '赤峰市', '150423', '巴林右旗', '', '', '', '', 3, 1, ''), ('150424', '1504', '00,15,1504', '林西县', '15', '内蒙古自治区', '1504', '赤峰市', '150424', '林西县', '', '', '', '', 3, 1, ''), ('150425', '1504', '00,15,1504', '克什克腾旗', '15', '内蒙古自治区', '1504', '赤峰市', '150425', '克什克腾旗', '', '', '', '', 3, 1, ''), ('150426', '1504', '00,15,1504', '翁牛特旗', '15', '内蒙古自治区', '1504', '赤峰市', '150426', '翁牛特旗', '', '', '', '', 3, 1, ''), ('150428', '1504', '00,15,1504', '喀喇沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150428', '喀喇沁旗', '', '', '', '', 3, 1, ''), ('150429', '1504', '00,15,1504', '宁城县', '15', '内蒙古自治区', '1504', '赤峰市', '150429', '宁城县', '', '', '', '', 3, 1, ''), ('150430', '1504', '00,15,1504', '敖汉旗', '15', '内蒙古自治区', '1504', '赤峰市', '150430', '敖汉旗', '', '', '', '', 3, 1, ''), ('1505', '15', '00,15', '通辽市', '15', '内蒙古自治区', '1505', '通辽市', '', '', '', '', '', '', 2, 1, ''), ('150502', '1505', '00,15,1505', '科尔沁区', '15', '内蒙古自治区', '1505', '通辽市', '150502', '科尔沁区', '', '', '', '', 3, 1, ''), ('150521', '1505', '00,15,1505', '科尔沁左翼中旗', '15', '内蒙古自治区', '1505', '通辽市', '150521', '科尔沁左翼中旗', '', '', '', '', 3, 1, ''), ('150522', '1505', '00,15,1505', '科尔沁左翼后旗', '15', '内蒙古自治区', '1505', '通辽市', '150522', '科尔沁左翼后旗', '', '', '', '', 3, 1, ''), ('150523', '1505', '00,15,1505', '开鲁县', '15', '内蒙古自治区', '1505', '通辽市', '150523', '开鲁县', '', '', '', '', 3, 1, ''), ('150524', '1505', '00,15,1505', '库伦旗', '15', '内蒙古自治区', '1505', '通辽市', '150524', '库伦旗', '', '', '', '', 3, 1, ''), ('150525', '1505', '00,15,1505', '奈曼旗', '15', '内蒙古自治区', '1505', '通辽市', '150525', '奈曼旗', '', '', '', '', 3, 1, ''), ('150526', '1505', '00,15,1505', '扎鲁特旗', '15', '内蒙古自治区', '1505', '通辽市', '150526', '扎鲁特旗', '', '', '', '', 3, 1, ''), ('150581', '1505', '00,15,1505', '霍林郭勒市', '15', '内蒙古自治区', '1505', '通辽市', '150581', '霍林郭勒市', '', '', '', '', 3, 1, ''), ('1506', '15', '00,15', '鄂尔多斯市', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '', '', '', '', '', '', 2, 1, ''), ('150602', '1506', '00,15,1506', '东胜区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150602', '东胜区', '', '', '', '', 3, 1, ''), ('150603', '1506', '00,15,1506', '康巴什区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150603', '康巴什区', '', '', '', '', 3, 1, ''), ('150621', '1506', '00,15,1506', '达拉特旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150621', '达拉特旗', '', '', '', '', 3, 1, ''), ('150622', '1506', '00,15,1506', '准格尔旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150622', '准格尔旗', '', '', '', '', 3, 1, ''), ('150623', '1506', '00,15,1506', '鄂托克前旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150623', '鄂托克前旗', '', '', '', '', 3, 1, ''), ('150624', '1506', '00,15,1506', '鄂托克旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150624', '鄂托克旗', '', '', '', '', 3, 1, ''), ('150625', '1506', '00,15,1506', '杭锦旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150625', '杭锦旗', '', '', '', '', 3, 1, ''), ('150626', '1506', '00,15,1506', '乌审旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150626', '乌审旗', '', '', '', '', 3, 1, ''), ('150627', '1506', '00,15,1506', '伊金霍洛旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150627', '伊金霍洛旗', '', '', '', '', 3, 1, ''), ('1507', '15', '00,15', '呼伦贝尔市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '', '', '', '', '', '', 2, 1, ''), ('150702', '1507', '00,15,1507', '海拉尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150702', '海拉尔区', '', '', '', '', 3, 1, ''), ('150703', '1507', '00,15,1507', '扎赉诺尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150703', '扎赉诺尔区', '', '', '', '', 3, 1, ''), ('150721', '1507', '00,15,1507', '阿荣旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150721', '阿荣旗', '', '', '', '', 3, 1, ''), ('150722', '1507', '00,15,1507', '莫力达瓦达斡尔族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150722', '莫力达瓦达斡尔族自治旗', '', '', '', '', 3, 1, ''), ('150723', '1507', '00,15,1507', '鄂伦春自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150723', '鄂伦春自治旗', '', '', '', '', 3, 1, ''), ('150724', '1507', '00,15,1507', '鄂温克族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150724', '鄂温克族自治旗', '', '', '', '', 3, 1, ''), ('150725', '1507', '00,15,1507', '陈巴尔虎旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150725', '陈巴尔虎旗', '', '', '', '', 3, 1, ''), ('150726', '1507', '00,15,1507', '新巴尔虎左旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150726', '新巴尔虎左旗', '', '', '', '', 3, 1, ''), ('150727', '1507', '00,15,1507', '新巴尔虎右旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150727', '新巴尔虎右旗', '', '', '', '', 3, 1, ''), ('150781', '1507', '00,15,1507', '满洲里市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150781', '满洲里市', '', '', '', '', 3, 1, ''), ('150782', '1507', '00,15,1507', '牙克石市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150782', '牙克石市', '', '', '', '', 3, 1, ''), ('150783', '1507', '00,15,1507', '扎兰屯市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150783', '扎兰屯市', '', '', '', '', 3, 1, ''), ('150784', '1507', '00,15,1507', '额尔古纳市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150784', '额尔古纳市', '', '', '', '', 3, 1, ''), ('150785', '1507', '00,15,1507', '根河市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150785', '根河市', '', '', '', '', 3, 1, ''), ('1508', '15', '00,15', '巴彦淖尔市', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '', '', '', '', '', '', 2, 1, ''), ('150802', '1508', '00,15,1508', '临河区', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150802', '临河区', '', '', '', '', 3, 1, ''), ('150821', '1508', '00,15,1508', '五原县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150821', '五原县', '', '', '', '', 3, 1, ''), ('150822', '1508', '00,15,1508', '磴口县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150822', '磴口县', '', '', '', '', 3, 1, ''), ('150823', '1508', '00,15,1508', '乌拉特前旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150823', '乌拉特前旗', '', '', '', '', 3, 1, ''), ('150824', '1508', '00,15,1508', '乌拉特中旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150824', '乌拉特中旗', '', '', '', '', 3, 1, ''), ('150825', '1508', '00,15,1508', '乌拉特后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150825', '乌拉特后旗', '', '', '', '', 3, 1, ''), ('150826', '1508', '00,15,1508', '杭锦后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150826', '杭锦后旗', '', '', '', '', 3, 1, ''), ('1509', '15', '00,15', '乌兰察布市', '15', '内蒙古自治区', '1509', '乌兰察布市', '', '', '', '', '', '', 2, 1, ''), ('150902', '1509', '00,15,1509', '集宁区', '15', '内蒙古自治区', '1509', '乌兰察布市', '150902', '集宁区', '', '', '', '', 3, 1, ''), ('150921', '1509', '00,15,1509', '卓资县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150921', '卓资县', '', '', '', '', 3, 1, ''), ('150922', '1509', '00,15,1509', '化德县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150922', '化德县', '', '', '', '', 3, 1, ''), ('150923', '1509', '00,15,1509', '商都县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150923', '商都县', '', '', '', '', 3, 1, ''), ('150924', '1509', '00,15,1509', '兴和县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150924', '兴和县', '', '', '', '', 3, 1, ''), ('150925', '1509', '00,15,1509', '凉城县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150925', '凉城县', '', '', '', '', 3, 1, ''), ('150926', '1509', '00,15,1509', '察哈尔右翼前旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150926', '察哈尔右翼前旗', '', '', '', '', 3, 1, ''), ('150927', '1509', '00,15,1509', '察哈尔右翼中旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150927', '察哈尔右翼中旗', '', '', '', '', 3, 1, ''), ('150928', '1509', '00,15,1509', '察哈尔右翼后旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150928', '察哈尔右翼后旗', '', '', '', '', 3, 1, ''), ('150929', '1509', '00,15,1509', '四子王旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150929', '四子王旗', '', '', '', '', 3, 1, ''), ('150981', '1509', '00,15,1509', '丰镇市', '15', '内蒙古自治区', '1509', '乌兰察布市', '150981', '丰镇市', '', '', '', '', 3, 1, ''), ('1522', '15', '00,15', '兴安盟', '15', '内蒙古自治区', '1522', '兴安盟', '', '', '', '', '', '', 2, 1, ''), ('152201', '1522', '00,15,1522', '乌兰浩特市', '15', '内蒙古自治区', '1522', '兴安盟', '152201', '乌兰浩特市', '', '', '', '', 3, 1, ''), ('152202', '1522', '00,15,1522', '阿尔山市', '15', '内蒙古自治区', '1522', '兴安盟', '152202', '阿尔山市', '', '', '', '', 3, 1, ''), ('152221', '1522', '00,15,1522', '科尔沁右翼前旗', '15', '内蒙古自治区', '1522', '兴安盟', '152221', '科尔沁右翼前旗', '', '', '', '', 3, 1, ''), ('152222', '1522', '00,15,1522', '科尔沁右翼中旗', '15', '内蒙古自治区', '1522', '兴安盟', '152222', '科尔沁右翼中旗', '', '', '', '', 3, 1, ''), ('152223', '1522', '00,15,1522', '扎赉特旗', '15', '内蒙古自治区', '1522', '兴安盟', '152223', '扎赉特旗', '', '', '', '', 3, 1, ''), ('152224', '1522', '00,15,1522', '突泉县', '15', '内蒙古自治区', '1522', '兴安盟', '152224', '突泉县', '', '', '', '', 3, 1, ''), ('1525', '15', '00,15', '锡林郭勒盟', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '', '', '', '', '', '', 2, 1, ''), ('152501', '1525', '00,15,1525', '二连浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152501', '二连浩特市', '', '', '', '', 3, 1, ''), ('152502', '1525', '00,15,1525', '锡林浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152502', '锡林浩特市', '', '', '', '', 3, 1, ''), ('152522', '1525', '00,15,1525', '阿巴嘎旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152522', '阿巴嘎旗', '', '', '', '', 3, 1, ''), ('152523', '1525', '00,15,1525', '苏尼特左旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152523', '苏尼特左旗', '', '', '', '', 3, 1, ''), ('152524', '1525', '00,15,1525', '苏尼特右旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152524', '苏尼特右旗', '', '', '', '', 3, 1, ''), ('152525', '1525', '00,15,1525', '东乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152525', '东乌珠穆沁旗', '', '', '', '', 3, 1, ''), ('152526', '1525', '00,15,1525', '西乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152526', '西乌珠穆沁旗', '', '', '', '', 3, 1, ''), ('152527', '1525', '00,15,1525', '太仆寺旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152527', '太仆寺旗', '', '', '', '', 3, 1, ''), ('152528', '1525', '00,15,1525', '镶黄旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152528', '镶黄旗', '', '', '', '', 3, 1, ''), ('152529', '1525', '00,15,1525', '正镶白旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152529', '正镶白旗', '', '', '', '', 3, 1, ''), ('152530', '1525', '00,15,1525', '正蓝旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152530', '正蓝旗', '', '', '', '', 3, 1, ''), ('152531', '1525', '00,15,1525', '多伦县', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152531', '多伦县', '', '', '', '', 3, 1, ''), ('1529', '15', '00,15', '阿拉善盟', '15', '内蒙古自治区', '1529', '阿拉善盟', '', '', '', '', '', '', 2, 1, ''), ('152921', '1529', '00,15,1529', '阿拉善左旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152921', '阿拉善左旗', '', '', '', '', 3, 1, ''), ('152922', '1529', '00,15,1529', '阿拉善右旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152922', '阿拉善右旗', '', '', '', '', 3, 1, ''), ('152923', '1529', '00,15,1529', '额济纳旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152923', '额济纳旗', '', '', '', '', 3, 1, ''), ('21', '00', '00', '辽宁省', '21', '辽宁省', '', '', '', '', '', '', '', '', 1, 1, ''), ('2101', '21', '00,21', '沈阳市', '21', '辽宁省', '2101', '沈阳市', '', '', '', '', '', '', 2, 1, ''), ('210102', '2101', '00,21,2101', '和平区', '21', '辽宁省', '2101', '沈阳市', '210102', '和平区', '', '', '', '', 3, 1, ''), ('210103', '2101', '00,21,2101', '沈河区', '21', '辽宁省', '2101', '沈阳市', '210103', '沈河区', '', '', '', '', 3, 1, ''), ('210104', '2101', '00,21,2101', '大东区', '21', '辽宁省', '2101', '沈阳市', '210104', '大东区', '', '', '', '', 3, 1, ''), ('210105', '2101', '00,21,2101', '皇姑区', '21', '辽宁省', '2101', '沈阳市', '210105', '皇姑区', '', '', '', '', 3, 1, ''), ('210106', '2101', '00,21,2101', '铁西区', '21', '辽宁省', '2101', '沈阳市', '210106', '铁西区', '', '', '', '', 3, 1, ''), ('210111', '2101', '00,21,2101', '苏家屯区', '21', '辽宁省', '2101', '沈阳市', '210111', '苏家屯区', '', '', '', '', 3, 1, ''), ('210112', '2101', '00,21,2101', '浑南区', '21', '辽宁省', '2101', '沈阳市', '210112', '浑南区', '', '', '', '', 3, 1, ''), ('210113', '2101', '00,21,2101', '沈北新区', '21', '辽宁省', '2101', '沈阳市', '210113', '沈北新区', '', '', '', '', 3, 1, '');
+INSERT INTO `blade_region` VALUES ('210114', '2101', '00,21,2101', '于洪区', '21', '辽宁省', '2101', '沈阳市', '210114', '于洪区', '', '', '', '', 3, 1, ''), ('210115', '2101', '00,21,2101', '辽中区', '21', '辽宁省', '2101', '沈阳市', '210115', '辽中区', '', '', '', '', 3, 1, ''), ('210123', '2101', '00,21,2101', '康平县', '21', '辽宁省', '2101', '沈阳市', '210123', '康平县', '', '', '', '', 3, 1, ''), ('210124', '2101', '00,21,2101', '法库县', '21', '辽宁省', '2101', '沈阳市', '210124', '法库县', '', '', '', '', 3, 1, ''), ('210181', '2101', '00,21,2101', '新民市', '21', '辽宁省', '2101', '沈阳市', '210181', '新民市', '', '', '', '', 3, 1, ''), ('2102', '21', '00,21', '大连市', '21', '辽宁省', '2102', '大连市', '', '', '', '', '', '', 2, 1, ''), ('210202', '2102', '00,21,2102', '中山区', '21', '辽宁省', '2102', '大连市', '210202', '中山区', '', '', '', '', 3, 1, ''), ('210203', '2102', '00,21,2102', '西岗区', '21', '辽宁省', '2102', '大连市', '210203', '西岗区', '', '', '', '', 3, 1, ''), ('210204', '2102', '00,21,2102', '沙河口区', '21', '辽宁省', '2102', '大连市', '210204', '沙河口区', '', '', '', '', 3, 1, ''), ('210211', '2102', '00,21,2102', '甘井子区', '21', '辽宁省', '2102', '大连市', '210211', '甘井子区', '', '', '', '', 3, 1, ''), ('210212', '2102', '00,21,2102', '旅顺口区', '21', '辽宁省', '2102', '大连市', '210212', '旅顺口区', '', '', '', '', 3, 1, ''), ('210213', '2102', '00,21,2102', '金州区', '21', '辽宁省', '2102', '大连市', '210213', '金州区', '', '', '', '', 3, 1, ''), ('210214', '2102', '00,21,2102', '普兰店区', '21', '辽宁省', '2102', '大连市', '210214', '普兰店区', '', '', '', '', 3, 1, ''), ('210224', '2102', '00,21,2102', '长海县', '21', '辽宁省', '2102', '大连市', '210224', '长海县', '', '', '', '', 3, 1, ''), ('210281', '2102', '00,21,2102', '瓦房店市', '21', '辽宁省', '2102', '大连市', '210281', '瓦房店市', '', '', '', '', 3, 1, ''), ('210283', '2102', '00,21,2102', '庄河市', '21', '辽宁省', '2102', '大连市', '210283', '庄河市', '', '', '', '', 3, 1, ''), ('2103', '21', '00,21', '鞍山市', '21', '辽宁省', '2103', '鞍山市', '', '', '', '', '', '', 2, 1, ''), ('210302', '2103', '00,21,2103', '铁东区', '21', '辽宁省', '2103', '鞍山市', '210302', '铁东区', '', '', '', '', 3, 1, ''), ('210303', '2103', '00,21,2103', '铁西区', '21', '辽宁省', '2103', '鞍山市', '210303', '铁西区', '', '', '', '', 3, 1, ''), ('210304', '2103', '00,21,2103', '立山区', '21', '辽宁省', '2103', '鞍山市', '210304', '立山区', '', '', '', '', 3, 1, ''), ('210311', '2103', '00,21,2103', '千山区', '21', '辽宁省', '2103', '鞍山市', '210311', '千山区', '', '', '', '', 3, 1, ''), ('210321', '2103', '00,21,2103', '台安县', '21', '辽宁省', '2103', '鞍山市', '210321', '台安县', '', '', '', '', 3, 1, ''), ('210323', '2103', '00,21,2103', '岫岩满族自治县', '21', '辽宁省', '2103', '鞍山市', '210323', '岫岩满族自治县', '', '', '', '', 3, 1, ''), ('210381', '2103', '00,21,2103', '海城市', '21', '辽宁省', '2103', '鞍山市', '210381', '海城市', '', '', '', '', 3, 1, ''), ('2104', '21', '00,21', '抚顺市', '21', '辽宁省', '2104', '抚顺市', '', '', '', '', '', '', 2, 1, ''), ('210402', '2104', '00,21,2104', '新抚区', '21', '辽宁省', '2104', '抚顺市', '210402', '新抚区', '', '', '', '', 3, 1, ''), ('210403', '2104', '00,21,2104', '东洲区', '21', '辽宁省', '2104', '抚顺市', '210403', '东洲区', '', '', '', '', 3, 1, ''), ('210404', '2104', '00,21,2104', '望花区', '21', '辽宁省', '2104', '抚顺市', '210404', '望花区', '', '', '', '', 3, 1, ''), ('210411', '2104', '00,21,2104', '顺城区', '21', '辽宁省', '2104', '抚顺市', '210411', '顺城区', '', '', '', '', 3, 1, ''), ('210421', '2104', '00,21,2104', '抚顺县', '21', '辽宁省', '2104', '抚顺市', '210421', '抚顺县', '', '', '', '', 3, 1, ''), ('210422', '2104', '00,21,2104', '新宾满族自治县', '21', '辽宁省', '2104', '抚顺市', '210422', '新宾满族自治县', '', '', '', '', 3, 1, ''), ('210423', '2104', '00,21,2104', '清原满族自治县', '21', '辽宁省', '2104', '抚顺市', '210423', '清原满族自治县', '', '', '', '', 3, 1, ''), ('2105', '21', '00,21', '本溪市', '21', '辽宁省', '2105', '本溪市', '', '', '', '', '', '', 2, 1, ''), ('210502', '2105', '00,21,2105', '平山区', '21', '辽宁省', '2105', '本溪市', '210502', '平山区', '', '', '', '', 3, 1, ''), ('210503', '2105', '00,21,2105', '溪湖区', '21', '辽宁省', '2105', '本溪市', '210503', '溪湖区', '', '', '', '', 3, 1, ''), ('210504', '2105', '00,21,2105', '明山区', '21', '辽宁省', '2105', '本溪市', '210504', '明山区', '', '', '', '', 3, 1, ''), ('210505', '2105', '00,21,2105', '南芬区', '21', '辽宁省', '2105', '本溪市', '210505', '南芬区', '', '', '', '', 3, 1, ''), ('210521', '2105', '00,21,2105', '本溪满族自治县', '21', '辽宁省', '2105', '本溪市', '210521', '本溪满族自治县', '', '', '', '', 3, 1, ''), ('210522', '2105', '00,21,2105', '桓仁满族自治县', '21', '辽宁省', '2105', '本溪市', '210522', '桓仁满族自治县', '', '', '', '', 3, 1, ''), ('2106', '21', '00,21', '丹东市', '21', '辽宁省', '2106', '丹东市', '', '', '', '', '', '', 2, 1, ''), ('210602', '2106', '00,21,2106', '元宝区', '21', '辽宁省', '2106', '丹东市', '210602', '元宝区', '', '', '', '', 3, 1, ''), ('210603', '2106', '00,21,2106', '振兴区', '21', '辽宁省', '2106', '丹东市', '210603', '振兴区', '', '', '', '', 3, 1, ''), ('210604', '2106', '00,21,2106', '振安区', '21', '辽宁省', '2106', '丹东市', '210604', '振安区', '', '', '', '', 3, 1, ''), ('210624', '2106', '00,21,2106', '宽甸满族自治县', '21', '辽宁省', '2106', '丹东市', '210624', '宽甸满族自治县', '', '', '', '', 3, 1, ''), ('210681', '2106', '00,21,2106', '东港市', '21', '辽宁省', '2106', '丹东市', '210681', '东港市', '', '', '', '', 3, 1, ''), ('210682', '2106', '00,21,2106', '凤城市', '21', '辽宁省', '2106', '丹东市', '210682', '凤城市', '', '', '', '', 3, 1, ''), ('2107', '21', '00,21', '锦州市', '21', '辽宁省', '2107', '锦州市', '', '', '', '', '', '', 2, 1, ''), ('210702', '2107', '00,21,2107', '古塔区', '21', '辽宁省', '2107', '锦州市', '210702', '古塔区', '', '', '', '', 3, 1, ''), ('210703', '2107', '00,21,2107', '凌河区', '21', '辽宁省', '2107', '锦州市', '210703', '凌河区', '', '', '', '', 3, 1, ''), ('210711', '2107', '00,21,2107', '太和区', '21', '辽宁省', '2107', '锦州市', '210711', '太和区', '', '', '', '', 3, 1, ''), ('210726', '2107', '00,21,2107', '黑山县', '21', '辽宁省', '2107', '锦州市', '210726', '黑山县', '', '', '', '', 3, 1, ''), ('210727', '2107', '00,21,2107', '义县', '21', '辽宁省', '2107', '锦州市', '210727', '义县', '', '', '', '', 3, 1, ''), ('210781', '2107', '00,21,2107', '凌海市', '21', '辽宁省', '2107', '锦州市', '210781', '凌海市', '', '', '', '', 3, 1, ''), ('210782', '2107', '00,21,2107', '北镇市', '21', '辽宁省', '2107', '锦州市', '210782', '北镇市', '', '', '', '', 3, 1, ''), ('2108', '21', '00,21', '营口市', '21', '辽宁省', '2108', '营口市', '', '', '', '', '', '', 2, 1, ''), ('210802', '2108', '00,21,2108', '站前区', '21', '辽宁省', '2108', '营口市', '210802', '站前区', '', '', '', '', 3, 1, ''), ('210803', '2108', '00,21,2108', '西市区', '21', '辽宁省', '2108', '营口市', '210803', '西市区', '', '', '', '', 3, 1, ''), ('210804', '2108', '00,21,2108', '鲅鱼圈区', '21', '辽宁省', '2108', '营口市', '210804', '鲅鱼圈区', '', '', '', '', 3, 1, ''), ('210811', '2108', '00,21,2108', '老边区', '21', '辽宁省', '2108', '营口市', '210811', '老边区', '', '', '', '', 3, 1, ''), ('210881', '2108', '00,21,2108', '盖州市', '21', '辽宁省', '2108', '营口市', '210881', '盖州市', '', '', '', '', 3, 1, ''), ('210882', '2108', '00,21,2108', '大石桥市', '21', '辽宁省', '2108', '营口市', '210882', '大石桥市', '', '', '', '', 3, 1, ''), ('2109', '21', '00,21', '阜新市', '21', '辽宁省', '2109', '阜新市', '', '', '', '', '', '', 2, 1, ''), ('210902', '2109', '00,21,2109', '海州区', '21', '辽宁省', '2109', '阜新市', '210902', '海州区', '', '', '', '', 3, 1, ''), ('210903', '2109', '00,21,2109', '新邱区', '21', '辽宁省', '2109', '阜新市', '210903', '新邱区', '', '', '', '', 3, 1, ''), ('210904', '2109', '00,21,2109', '太平区', '21', '辽宁省', '2109', '阜新市', '210904', '太平区', '', '', '', '', 3, 1, ''), ('210905', '2109', '00,21,2109', '清河门区', '21', '辽宁省', '2109', '阜新市', '210905', '清河门区', '', '', '', '', 3, 1, ''), ('210911', '2109', '00,21,2109', '细河区', '21', '辽宁省', '2109', '阜新市', '210911', '细河区', '', '', '', '', 3, 1, ''), ('210921', '2109', '00,21,2109', '阜新蒙古族自治县', '21', '辽宁省', '2109', '阜新市', '210921', '阜新蒙古族自治县', '', '', '', '', 3, 1, ''), ('210922', '2109', '00,21,2109', '彰武县', '21', '辽宁省', '2109', '阜新市', '210922', '彰武县', '', '', '', '', 3, 1, ''), ('2110', '21', '00,21', '辽阳市', '21', '辽宁省', '2110', '辽阳市', '', '', '', '', '', '', 2, 1, ''), ('211002', '2110', '00,21,2110', '白塔区', '21', '辽宁省', '2110', '辽阳市', '211002', '白塔区', '', '', '', '', 3, 1, ''), ('211003', '2110', '00,21,2110', '文圣区', '21', '辽宁省', '2110', '辽阳市', '211003', '文圣区', '', '', '', '', 3, 1, ''), ('211004', '2110', '00,21,2110', '宏伟区', '21', '辽宁省', '2110', '辽阳市', '211004', '宏伟区', '', '', '', '', 3, 1, ''), ('211005', '2110', '00,21,2110', '弓长岭区', '21', '辽宁省', '2110', '辽阳市', '211005', '弓长岭区', '', '', '', '', 3, 1, ''), ('211011', '2110', '00,21,2110', '太子河区', '21', '辽宁省', '2110', '辽阳市', '211011', '太子河区', '', '', '', '', 3, 1, ''), ('211021', '2110', '00,21,2110', '辽阳县', '21', '辽宁省', '2110', '辽阳市', '211021', '辽阳县', '', '', '', '', 3, 1, ''), ('211081', '2110', '00,21,2110', '灯塔市', '21', '辽宁省', '2110', '辽阳市', '211081', '灯塔市', '', '', '', '', 3, 1, ''), ('2111', '21', '00,21', '盘锦市', '21', '辽宁省', '2111', '盘锦市', '', '', '', '', '', '', 2, 1, ''), ('211102', '2111', '00,21,2111', '双台子区', '21', '辽宁省', '2111', '盘锦市', '211102', '双台子区', '', '', '', '', 3, 1, ''), ('211103', '2111', '00,21,2111', '兴隆台区', '21', '辽宁省', '2111', '盘锦市', '211103', '兴隆台区', '', '', '', '', 3, 1, ''), ('211104', '2111', '00,21,2111', '大洼区', '21', '辽宁省', '2111', '盘锦市', '211104', '大洼区', '', '', '', '', 3, 1, ''), ('211122', '2111', '00,21,2111', '盘山县', '21', '辽宁省', '2111', '盘锦市', '211122', '盘山县', '', '', '', '', 3, 1, ''), ('2112', '21', '00,21', '铁岭市', '21', '辽宁省', '2112', '铁岭市', '', '', '', '', '', '', 2, 1, ''), ('211202', '2112', '00,21,2112', '银州区', '21', '辽宁省', '2112', '铁岭市', '211202', '银州区', '', '', '', '', 3, 1, ''), ('211204', '2112', '00,21,2112', '清河区', '21', '辽宁省', '2112', '铁岭市', '211204', '清河区', '', '', '', '', 3, 1, ''), ('211221', '2112', '00,21,2112', '铁岭县', '21', '辽宁省', '2112', '铁岭市', '211221', '铁岭县', '', '', '', '', 3, 1, ''), ('211223', '2112', '00,21,2112', '西丰县', '21', '辽宁省', '2112', '铁岭市', '211223', '西丰县', '', '', '', '', 3, 1, ''), ('211224', '2112', '00,21,2112', '昌图县', '21', '辽宁省', '2112', '铁岭市', '211224', '昌图县', '', '', '', '', 3, 1, ''), ('211281', '2112', '00,21,2112', '调兵山市', '21', '辽宁省', '2112', '铁岭市', '211281', '调兵山市', '', '', '', '', 3, 1, ''), ('211282', '2112', '00,21,2112', '开原市', '21', '辽宁省', '2112', '铁岭市', '211282', '开原市', '', '', '', '', 3, 1, ''), ('2113', '21', '00,21', '朝阳市', '21', '辽宁省', '2113', '朝阳市', '', '', '', '', '', '', 2, 1, ''), ('211302', '2113', '00,21,2113', '双塔区', '21', '辽宁省', '2113', '朝阳市', '211302', '双塔区', '', '', '', '', 3, 1, ''), ('211303', '2113', '00,21,2113', '龙城区', '21', '辽宁省', '2113', '朝阳市', '211303', '龙城区', '', '', '', '', 3, 1, ''), ('211321', '2113', '00,21,2113', '朝阳县', '21', '辽宁省', '2113', '朝阳市', '211321', '朝阳县', '', '', '', '', 3, 1, ''), ('211322', '2113', '00,21,2113', '建平县', '21', '辽宁省', '2113', '朝阳市', '211322', '建平县', '', '', '', '', 3, 1, ''), ('211324', '2113', '00,21,2113', '喀喇沁左翼蒙古族自治县', '21', '辽宁省', '2113', '朝阳市', '211324', '喀喇沁左翼蒙古族自治县', '', '', '', '', 3, 1, ''), ('211381', '2113', '00,21,2113', '北票市', '21', '辽宁省', '2113', '朝阳市', '211381', '北票市', '', '', '', '', 3, 1, ''), ('211382', '2113', '00,21,2113', '凌源市', '21', '辽宁省', '2113', '朝阳市', '211382', '凌源市', '', '', '', '', 3, 1, ''), ('2114', '21', '00,21', '葫芦岛市', '21', '辽宁省', '2114', '葫芦岛市', '', '', '', '', '', '', 2, 1, ''), ('211402', '2114', '00,21,2114', '连山区', '21', '辽宁省', '2114', '葫芦岛市', '211402', '连山区', '', '', '', '', 3, 1, ''), ('211403', '2114', '00,21,2114', '龙港区', '21', '辽宁省', '2114', '葫芦岛市', '211403', '龙港区', '', '', '', '', 3, 1, ''), ('211404', '2114', '00,21,2114', '南票区', '21', '辽宁省', '2114', '葫芦岛市', '211404', '南票区', '', '', '', '', 3, 1, ''), ('211421', '2114', '00,21,2114', '绥中县', '21', '辽宁省', '2114', '葫芦岛市', '211421', '绥中县', '', '', '', '', 3, 1, ''), ('211422', '2114', '00,21,2114', '建昌县', '21', '辽宁省', '2114', '葫芦岛市', '211422', '建昌县', '', '', '', '', 3, 1, ''), ('211481', '2114', '00,21,2114', '兴城市', '21', '辽宁省', '2114', '葫芦岛市', '211481', '兴城市', '', '', '', '', 3, 1, ''), ('22', '00', '00', '吉林省', '22', '吉林省', '', '', '', '', '', '', '', '', 1, 1, ''), ('2201', '22', '00,22', '长春市', '22', '吉林省', '2201', '长春市', '', '', '', '', '', '', 2, 1, ''), ('220102', '2201', '00,22,2201', '南关区', '22', '吉林省', '2201', '长春市', '220102', '南关区', '', '', '', '', 3, 1, ''), ('220103', '2201', '00,22,2201', '宽城区', '22', '吉林省', '2201', '长春市', '220103', '宽城区', '', '', '', '', 3, 1, ''), ('220104', '2201', '00,22,2201', '朝阳区', '22', '吉林省', '2201', '长春市', '220104', '朝阳区', '', '', '', '', 3, 1, ''), ('220105', '2201', '00,22,2201', '二道区', '22', '吉林省', '2201', '长春市', '220105', '二道区', '', '', '', '', 3, 1, ''), ('220106', '2201', '00,22,2201', '绿园区', '22', '吉林省', '2201', '长春市', '220106', '绿园区', '', '', '', '', 3, 1, ''), ('220112', '2201', '00,22,2201', '双阳区', '22', '吉林省', '2201', '长春市', '220112', '双阳区', '', '', '', '', 3, 1, ''), ('220113', '2201', '00,22,2201', '九台区', '22', '吉林省', '2201', '长春市', '220113', '九台区', '', '', '', '', 3, 1, ''), ('220122', '2201', '00,22,2201', '农安县', '22', '吉林省', '2201', '长春市', '220122', '农安县', '', '', '', '', 3, 1, ''), ('220182', '2201', '00,22,2201', '榆树市', '22', '吉林省', '2201', '长春市', '220182', '榆树市', '', '', '', '', 3, 1, ''), ('220183', '2201', '00,22,2201', '德惠市', '22', '吉林省', '2201', '长春市', '220183', '德惠市', '', '', '', '', 3, 1, ''), ('2202', '22', '00,22', '吉林市', '22', '吉林省', '2202', '吉林市', '', '', '', '', '', '', 2, 1, ''), ('220202', '2202', '00,22,2202', '昌邑区', '22', '吉林省', '2202', '吉林市', '220202', '昌邑区', '', '', '', '', 3, 1, ''), ('220203', '2202', '00,22,2202', '龙潭区', '22', '吉林省', '2202', '吉林市', '220203', '龙潭区', '', '', '', '', 3, 1, ''), ('220204', '2202', '00,22,2202', '船营区', '22', '吉林省', '2202', '吉林市', '220204', '船营区', '', '', '', '', 3, 1, ''), ('220211', '2202', '00,22,2202', '丰满区', '22', '吉林省', '2202', '吉林市', '220211', '丰满区', '', '', '', '', 3, 1, ''), ('220221', '2202', '00,22,2202', '永吉县', '22', '吉林省', '2202', '吉林市', '220221', '永吉县', '', '', '', '', 3, 1, ''), ('220281', '2202', '00,22,2202', '蛟河市', '22', '吉林省', '2202', '吉林市', '220281', '蛟河市', '', '', '', '', 3, 1, ''), ('220282', '2202', '00,22,2202', '桦甸市', '22', '吉林省', '2202', '吉林市', '220282', '桦甸市', '', '', '', '', 3, 1, ''), ('220283', '2202', '00,22,2202', '舒兰市', '22', '吉林省', '2202', '吉林市', '220283', '舒兰市', '', '', '', '', 3, 1, ''), ('220284', '2202', '00,22,2202', '磐石市', '22', '吉林省', '2202', '吉林市', '220284', '磐石市', '', '', '', '', 3, 1, ''), ('2203', '22', '00,22', '四平市', '22', '吉林省', '2203', '四平市', '', '', '', '', '', '', 2, 1, ''), ('220302', '2203', '00,22,2203', '铁西区', '22', '吉林省', '2203', '四平市', '220302', '铁西区', '', '', '', '', 3, 1, ''), ('220303', '2203', '00,22,2203', '铁东区', '22', '吉林省', '2203', '四平市', '220303', '铁东区', '', '', '', '', 3, 1, ''), ('220322', '2203', '00,22,2203', '梨树县', '22', '吉林省', '2203', '四平市', '220322', '梨树县', '', '', '', '', 3, 1, ''), ('220323', '2203', '00,22,2203', '伊通满族自治县', '22', '吉林省', '2203', '四平市', '220323', '伊通满族自治县', '', '', '', '', 3, 1, ''), ('220381', '2203', '00,22,2203', '公主岭市', '22', '吉林省', '2203', '四平市', '220381', '公主岭市', '', '', '', '', 3, 1, ''), ('220382', '2203', '00,22,2203', '双辽市', '22', '吉林省', '2203', '四平市', '220382', '双辽市', '', '', '', '', 3, 1, ''), ('2204', '22', '00,22', '辽源市', '22', '吉林省', '2204', '辽源市', '', '', '', '', '', '', 2, 1, ''), ('220402', '2204', '00,22,2204', '龙山区', '22', '吉林省', '2204', '辽源市', '220402', '龙山区', '', '', '', '', 3, 1, ''), ('220403', '2204', '00,22,2204', '西安区', '22', '吉林省', '2204', '辽源市', '220403', '西安区', '', '', '', '', 3, 1, ''), ('220421', '2204', '00,22,2204', '东丰县', '22', '吉林省', '2204', '辽源市', '220421', '东丰县', '', '', '', '', 3, 1, ''), ('220422', '2204', '00,22,2204', '东辽县', '22', '吉林省', '2204', '辽源市', '220422', '东辽县', '', '', '', '', 3, 1, ''), ('2205', '22', '00,22', '通化市', '22', '吉林省', '2205', '通化市', '', '', '', '', '', '', 2, 1, ''), ('220502', '2205', '00,22,2205', '东昌区', '22', '吉林省', '2205', '通化市', '220502', '东昌区', '', '', '', '', 3, 1, ''), ('220503', '2205', '00,22,2205', '二道江区', '22', '吉林省', '2205', '通化市', '220503', '二道江区', '', '', '', '', 3, 1, ''), ('220521', '2205', '00,22,2205', '通化县', '22', '吉林省', '2205', '通化市', '220521', '通化县', '', '', '', '', 3, 1, ''), ('220523', '2205', '00,22,2205', '辉南县', '22', '吉林省', '2205', '通化市', '220523', '辉南县', '', '', '', '', 3, 1, ''), ('220524', '2205', '00,22,2205', '柳河县', '22', '吉林省', '2205', '通化市', '220524', '柳河县', '', '', '', '', 3, 1, ''), ('220581', '2205', '00,22,2205', '梅河口市', '22', '吉林省', '2205', '通化市', '220581', '梅河口市', '', '', '', '', 3, 1, ''), ('220582', '2205', '00,22,2205', '集安市', '22', '吉林省', '2205', '通化市', '220582', '集安市', '', '', '', '', 3, 1, ''), ('2206', '22', '00,22', '白山市', '22', '吉林省', '2206', '白山市', '', '', '', '', '', '', 2, 1, ''), ('220602', '2206', '00,22,2206', '浑江区', '22', '吉林省', '2206', '白山市', '220602', '浑江区', '', '', '', '', 3, 1, ''), ('220605', '2206', '00,22,2206', '江源区', '22', '吉林省', '2206', '白山市', '220605', '江源区', '', '', '', '', 3, 1, ''), ('220621', '2206', '00,22,2206', '抚松县', '22', '吉林省', '2206', '白山市', '220621', '抚松县', '', '', '', '', 3, 1, ''), ('220622', '2206', '00,22,2206', '靖宇县', '22', '吉林省', '2206', '白山市', '220622', '靖宇县', '', '', '', '', 3, 1, ''), ('220623', '2206', '00,22,2206', '长白朝鲜族自治县', '22', '吉林省', '2206', '白山市', '220623', '长白朝鲜族自治县', '', '', '', '', 3, 1, ''), ('220681', '2206', '00,22,2206', '临江市', '22', '吉林省', '2206', '白山市', '220681', '临江市', '', '', '', '', 3, 1, ''), ('2207', '22', '00,22', '松原市', '22', '吉林省', '2207', '松原市', '', '', '', '', '', '', 2, 1, ''), ('220702', '2207', '00,22,2207', '宁江区', '22', '吉林省', '2207', '松原市', '220702', '宁江区', '', '', '', '', 3, 1, ''), ('220721', '2207', '00,22,2207', '前郭尔罗斯蒙古族自治县', '22', '吉林省', '2207', '松原市', '220721', '前郭尔罗斯蒙古族自治县', '', '', '', '', 3, 1, ''), ('220722', '2207', '00,22,2207', '长岭县', '22', '吉林省', '2207', '松原市', '220722', '长岭县', '', '', '', '', 3, 1, ''), ('220723', '2207', '00,22,2207', '乾安县', '22', '吉林省', '2207', '松原市', '220723', '乾安县', '', '', '', '', 3, 1, ''), ('220781', '2207', '00,22,2207', '扶余市', '22', '吉林省', '2207', '松原市', '220781', '扶余市', '', '', '', '', 3, 1, ''), ('2208', '22', '00,22', '白城市', '22', '吉林省', '2208', '白城市', '', '', '', '', '', '', 2, 1, ''), ('220802', '2208', '00,22,2208', '洮北区', '22', '吉林省', '2208', '白城市', '220802', '洮北区', '', '', '', '', 3, 1, ''), ('220821', '2208', '00,22,2208', '镇赉县', '22', '吉林省', '2208', '白城市', '220821', '镇赉县', '', '', '', '', 3, 1, ''), ('220822', '2208', '00,22,2208', '通榆县', '22', '吉林省', '2208', '白城市', '220822', '通榆县', '', '', '', '', 3, 1, ''), ('220881', '2208', '00,22,2208', '洮南市', '22', '吉林省', '2208', '白城市', '220881', '洮南市', '', '', '', '', 3, 1, ''), ('220882', '2208', '00,22,2208', '大安市', '22', '吉林省', '2208', '白城市', '220882', '大安市', '', '', '', '', 3, 1, ''), ('2224', '22', '00,22', '延边朝鲜族自治州', '22', '吉林省', '2224', '延边朝鲜族自治州', '', '', '', '', '', '', 2, 1, ''), ('222401', '2224', '00,22,2224', '延吉市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222401', '延吉市', '', '', '', '', 3, 1, ''), ('222402', '2224', '00,22,2224', '图们市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222402', '图们市', '', '', '', '', 3, 1, ''), ('222403', '2224', '00,22,2224', '敦化市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222403', '敦化市', '', '', '', '', 3, 1, ''), ('222404', '2224', '00,22,2224', '珲春市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222404', '珲春市', '', '', '', '', 3, 1, ''), ('222405', '2224', '00,22,2224', '龙井市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222405', '龙井市', '', '', '', '', 3, 1, ''), ('222406', '2224', '00,22,2224', '和龙市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222406', '和龙市', '', '', '', '', 3, 1, ''), ('222424', '2224', '00,22,2224', '汪清县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222424', '汪清县', '', '', '', '', 3, 1, ''), ('222426', '2224', '00,22,2224', '安图县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222426', '安图县', '', '', '', '', 3, 1, ''), ('23', '00', '00', '黑龙江省', '23', '黑龙江省', '', '', '', '', '', '', '', '', 1, 1, ''), ('2301', '23', '00,23', '哈尔滨市', '23', '黑龙江省', '2301', '哈尔滨市', '', '', '', '', '', '', 2, 1, ''), ('230102', '2301', '00,23,2301', '道里区', '23', '黑龙江省', '2301', '哈尔滨市', '230102', '道里区', '', '', '', '', 3, 1, ''), ('230103', '2301', '00,23,2301', '南岗区', '23', '黑龙江省', '2301', '哈尔滨市', '230103', '南岗区', '', '', '', '', 3, 1, ''), ('230104', '2301', '00,23,2301', '道外区', '23', '黑龙江省', '2301', '哈尔滨市', '230104', '道外区', '', '', '', '', 3, 1, ''), ('230108', '2301', '00,23,2301', '平房区', '23', '黑龙江省', '2301', '哈尔滨市', '230108', '平房区', '', '', '', '', 3, 1, ''), ('230109', '2301', '00,23,2301', '松北区', '23', '黑龙江省', '2301', '哈尔滨市', '230109', '松北区', '', '', '', '', 3, 1, ''), ('230110', '2301', '00,23,2301', '香坊区', '23', '黑龙江省', '2301', '哈尔滨市', '230110', '香坊区', '', '', '', '', 3, 1, ''), ('230111', '2301', '00,23,2301', '呼兰区', '23', '黑龙江省', '2301', '哈尔滨市', '230111', '呼兰区', '', '', '', '', 3, 1, ''), ('230112', '2301', '00,23,2301', '阿城区', '23', '黑龙江省', '2301', '哈尔滨市', '230112', '阿城区', '', '', '', '', 3, 1, ''), ('230113', '2301', '00,23,2301', '双城区', '23', '黑龙江省', '2301', '哈尔滨市', '230113', '双城区', '', '', '', '', 3, 1, ''), ('230123', '2301', '00,23,2301', '依兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230123', '依兰县', '', '', '', '', 3, 1, ''), ('230124', '2301', '00,23,2301', '方正县', '23', '黑龙江省', '2301', '哈尔滨市', '230124', '方正县', '', '', '', '', 3, 1, ''), ('230125', '2301', '00,23,2301', '宾县', '23', '黑龙江省', '2301', '哈尔滨市', '230125', '宾县', '', '', '', '', 3, 1, ''), ('230126', '2301', '00,23,2301', '巴彦县', '23', '黑龙江省', '2301', '哈尔滨市', '230126', '巴彦县', '', '', '', '', 3, 1, ''), ('230127', '2301', '00,23,2301', '木兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230127', '木兰县', '', '', '', '', 3, 1, ''), ('230128', '2301', '00,23,2301', '通河县', '23', '黑龙江省', '2301', '哈尔滨市', '230128', '通河县', '', '', '', '', 3, 1, ''), ('230129', '2301', '00,23,2301', '延寿县', '23', '黑龙江省', '2301', '哈尔滨市', '230129', '延寿县', '', '', '', '', 3, 1, ''), ('230183', '2301', '00,23,2301', '尚志市', '23', '黑龙江省', '2301', '哈尔滨市', '230183', '尚志市', '', '', '', '', 3, 1, ''), ('230184', '2301', '00,23,2301', '五常市', '23', '黑龙江省', '2301', '哈尔滨市', '230184', '五常市', '', '', '', '', 3, 1, ''), ('2302', '23', '00,23', '齐齐哈尔市', '23', '黑龙江省', '2302', '齐齐哈尔市', '', '', '', '', '', '', 2, 1, ''), ('230202', '2302', '00,23,2302', '龙沙区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230202', '龙沙区', '', '', '', '', 3, 1, ''), ('230203', '2302', '00,23,2302', '建华区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230203', '建华区', '', '', '', '', 3, 1, ''), ('230204', '2302', '00,23,2302', '铁锋区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230204', '铁锋区', '', '', '', '', 3, 1, ''), ('230205', '2302', '00,23,2302', '昂昂溪区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230205', '昂昂溪区', '', '', '', '', 3, 1, ''), ('230206', '2302', '00,23,2302', '富拉尔基区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230206', '富拉尔基区', '', '', '', '', 3, 1, ''), ('230207', '2302', '00,23,2302', '碾子山区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230207', '碾子山区', '', '', '', '', 3, 1, ''), ('230208', '2302', '00,23,2302', '梅里斯达斡尔族区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230208', '梅里斯达斡尔族区', '', '', '', '', 3, 1, ''), ('230221', '2302', '00,23,2302', '龙江县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230221', '龙江县', '', '', '', '', 3, 1, ''), ('230223', '2302', '00,23,2302', '依安县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230223', '依安县', '', '', '', '', 3, 1, ''), ('230224', '2302', '00,23,2302', '泰来县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230224', '泰来县', '', '', '', '', 3, 1, ''), ('230225', '2302', '00,23,2302', '甘南县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230225', '甘南县', '', '', '', '', 3, 1, ''), ('230227', '2302', '00,23,2302', '富裕县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230227', '富裕县', '', '', '', '', 3, 1, ''), ('230229', '2302', '00,23,2302', '克山县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230229', '克山县', '', '', '', '', 3, 1, ''), ('230230', '2302', '00,23,2302', '克东县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230230', '克东县', '', '', '', '', 3, 1, ''), ('230231', '2302', '00,23,2302', '拜泉县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230231', '拜泉县', '', '', '', '', 3, 1, ''), ('230281', '2302', '00,23,2302', '讷河市', '23', '黑龙江省', '2302', '齐齐哈尔市', '230281', '讷河市', '', '', '', '', 3, 1, ''), ('2303', '23', '00,23', '鸡西市', '23', '黑龙江省', '2303', '鸡西市', '', '', '', '', '', '', 2, 1, ''), ('230302', '2303', '00,23,2303', '鸡冠区', '23', '黑龙江省', '2303', '鸡西市', '230302', '鸡冠区', '', '', '', '', 3, 1, ''), ('230303', '2303', '00,23,2303', '恒山区', '23', '黑龙江省', '2303', '鸡西市', '230303', '恒山区', '', '', '', '', 3, 1, ''), ('230304', '2303', '00,23,2303', '滴道区', '23', '黑龙江省', '2303', '鸡西市', '230304', '滴道区', '', '', '', '', 3, 1, ''), ('230305', '2303', '00,23,2303', '梨树区', '23', '黑龙江省', '2303', '鸡西市', '230305', '梨树区', '', '', '', '', 3, 1, ''), ('230306', '2303', '00,23,2303', '城子河区', '23', '黑龙江省', '2303', '鸡西市', '230306', '城子河区', '', '', '', '', 3, 1, ''), ('230307', '2303', '00,23,2303', '麻山区', '23', '黑龙江省', '2303', '鸡西市', '230307', '麻山区', '', '', '', '', 3, 1, ''), ('230321', '2303', '00,23,2303', '鸡东县', '23', '黑龙江省', '2303', '鸡西市', '230321', '鸡东县', '', '', '', '', 3, 1, ''), ('230381', '2303', '00,23,2303', '虎林市', '23', '黑龙江省', '2303', '鸡西市', '230381', '虎林市', '', '', '', '', 3, 1, ''), ('230382', '2303', '00,23,2303', '密山市', '23', '黑龙江省', '2303', '鸡西市', '230382', '密山市', '', '', '', '', 3, 1, ''), ('2304', '23', '00,23', '鹤岗市', '23', '黑龙江省', '2304', '鹤岗市', '', '', '', '', '', '', 2, 1, ''), ('230402', '2304', '00,23,2304', '向阳区', '23', '黑龙江省', '2304', '鹤岗市', '230402', '向阳区', '', '', '', '', 3, 1, ''), ('230403', '2304', '00,23,2304', '工农区', '23', '黑龙江省', '2304', '鹤岗市', '230403', '工农区', '', '', '', '', 3, 1, ''), ('230404', '2304', '00,23,2304', '南山区', '23', '黑龙江省', '2304', '鹤岗市', '230404', '南山区', '', '', '', '', 3, 1, ''), ('230405', '2304', '00,23,2304', '兴安区', '23', '黑龙江省', '2304', '鹤岗市', '230405', '兴安区', '', '', '', '', 3, 1, ''), ('230406', '2304', '00,23,2304', '东山区', '23', '黑龙江省', '2304', '鹤岗市', '230406', '东山区', '', '', '', '', 3, 1, ''), ('230407', '2304', '00,23,2304', '兴山区', '23', '黑龙江省', '2304', '鹤岗市', '230407', '兴山区', '', '', '', '', 3, 1, ''), ('230421', '2304', '00,23,2304', '萝北县', '23', '黑龙江省', '2304', '鹤岗市', '230421', '萝北县', '', '', '', '', 3, 1, ''), ('230422', '2304', '00,23,2304', '绥滨县', '23', '黑龙江省', '2304', '鹤岗市', '230422', '绥滨县', '', '', '', '', 3, 1, ''), ('2305', '23', '00,23', '双鸭山市', '23', '黑龙江省', '2305', '双鸭山市', '', '', '', '', '', '', 2, 1, ''), ('230502', '2305', '00,23,2305', '尖山区', '23', '黑龙江省', '2305', '双鸭山市', '230502', '尖山区', '', '', '', '', 3, 1, ''), ('230503', '2305', '00,23,2305', '岭东区', '23', '黑龙江省', '2305', '双鸭山市', '230503', '岭东区', '', '', '', '', 3, 1, ''), ('230505', '2305', '00,23,2305', '四方台区', '23', '黑龙江省', '2305', '双鸭山市', '230505', '四方台区', '', '', '', '', 3, 1, ''), ('230506', '2305', '00,23,2305', '宝山区', '23', '黑龙江省', '2305', '双鸭山市', '230506', '宝山区', '', '', '', '', 3, 1, ''), ('230521', '2305', '00,23,2305', '集贤县', '23', '黑龙江省', '2305', '双鸭山市', '230521', '集贤县', '', '', '', '', 3, 1, ''), ('230522', '2305', '00,23,2305', '友谊县', '23', '黑龙江省', '2305', '双鸭山市', '230522', '友谊县', '', '', '', '', 3, 1, ''), ('230523', '2305', '00,23,2305', '宝清县', '23', '黑龙江省', '2305', '双鸭山市', '230523', '宝清县', '', '', '', '', 3, 1, ''), ('230524', '2305', '00,23,2305', '饶河县', '23', '黑龙江省', '2305', '双鸭山市', '230524', '饶河县', '', '', '', '', 3, 1, ''), ('2306', '23', '00,23', '大庆市', '23', '黑龙江省', '2306', '大庆市', '', '', '', '', '', '', 2, 1, ''), ('230602', '2306', '00,23,2306', '萨尔图区', '23', '黑龙江省', '2306', '大庆市', '230602', '萨尔图区', '', '', '', '', 3, 1, ''), ('230603', '2306', '00,23,2306', '龙凤区', '23', '黑龙江省', '2306', '大庆市', '230603', '龙凤区', '', '', '', '', 3, 1, ''), ('230604', '2306', '00,23,2306', '让胡路区', '23', '黑龙江省', '2306', '大庆市', '230604', '让胡路区', '', '', '', '', 3, 1, ''), ('230605', '2306', '00,23,2306', '红岗区', '23', '黑龙江省', '2306', '大庆市', '230605', '红岗区', '', '', '', '', 3, 1, ''), ('230606', '2306', '00,23,2306', '大同区', '23', '黑龙江省', '2306', '大庆市', '230606', '大同区', '', '', '', '', 3, 1, ''), ('230621', '2306', '00,23,2306', '肇州县', '23', '黑龙江省', '2306', '大庆市', '230621', '肇州县', '', '', '', '', 3, 1, ''), ('230622', '2306', '00,23,2306', '肇源县', '23', '黑龙江省', '2306', '大庆市', '230622', '肇源县', '', '', '', '', 3, 1, ''), ('230623', '2306', '00,23,2306', '林甸县', '23', '黑龙江省', '2306', '大庆市', '230623', '林甸县', '', '', '', '', 3, 1, ''), ('230624', '2306', '00,23,2306', '杜尔伯特蒙古族自治县', '23', '黑龙江省', '2306', '大庆市', '230624', '杜尔伯特蒙古族自治县', '', '', '', '', 3, 1, ''), ('2307', '23', '00,23', '伊春市', '23', '黑龙江省', '2307', '伊春市', '', '', '', '', '', '', 2, 1, ''), ('230717', '2307', '00,23,2307', '伊美区', '23', '黑龙江省', '2307', '伊春市', '230717', '伊美区', '', '', '', '', 3, 1, ''), ('230718', '2307', '00,23,2307', '乌翠区', '23', '黑龙江省', '2307', '伊春市', '230718', '乌翠区', '', '', '', '', 3, 1, ''), ('230719', '2307', '00,23,2307', '友好区', '23', '黑龙江省', '2307', '伊春市', '230719', '友好区', '', '', '', '', 3, 1, ''), ('230722', '2307', '00,23,2307', '嘉荫县', '23', '黑龙江省', '2307', '伊春市', '230722', '嘉荫县', '', '', '', '', 3, 1, ''), ('230723', '2307', '00,23,2307', '汤旺县', '23', '黑龙江省', '2307', '伊春市', '230723', '汤旺县', '', '', '', '', 3, 1, ''), ('230724', '2307', '00,23,2307', '丰林县', '23', '黑龙江省', '2307', '伊春市', '230724', '丰林县', '', '', '', '', 3, 1, ''), ('230725', '2307', '00,23,2307', '大箐山县', '23', '黑龙江省', '2307', '伊春市', '230725', '大箐山县', '', '', '', '', 3, 1, ''), ('230726', '2307', '00,23,2307', '南岔县', '23', '黑龙江省', '2307', '伊春市', '230726', '南岔县', '', '', '', '', 3, 1, ''), ('230751', '2307', '00,23,2307', '金林区', '23', '黑龙江省', '2307', '伊春市', '230751', '金林区', '', '', '', '', 3, 1, ''), ('230781', '2307', '00,23,2307', '铁力市', '23', '黑龙江省', '2307', '伊春市', '230781', '铁力市', '', '', '', '', 3, 1, ''), ('2308', '23', '00,23', '佳木斯市', '23', '黑龙江省', '2308', '佳木斯市', '', '', '', '', '', '', 2, 1, ''), ('230803', '2308', '00,23,2308', '向阳区', '23', '黑龙江省', '2308', '佳木斯市', '230803', '向阳区', '', '', '', '', 3, 1, ''), ('230804', '2308', '00,23,2308', '前进区', '23', '黑龙江省', '2308', '佳木斯市', '230804', '前进区', '', '', '', '', 3, 1, ''), ('230805', '2308', '00,23,2308', '东风区', '23', '黑龙江省', '2308', '佳木斯市', '230805', '东风区', '', '', '', '', 3, 1, ''), ('230811', '2308', '00,23,2308', '郊区', '23', '黑龙江省', '2308', '佳木斯市', '230811', '郊区', '', '', '', '', 3, 1, ''), ('230822', '2308', '00,23,2308', '桦南县', '23', '黑龙江省', '2308', '佳木斯市', '230822', '桦南县', '', '', '', '', 3, 1, ''), ('230826', '2308', '00,23,2308', '桦川县', '23', '黑龙江省', '2308', '佳木斯市', '230826', '桦川县', '', '', '', '', 3, 1, ''), ('230828', '2308', '00,23,2308', '汤原县', '23', '黑龙江省', '2308', '佳木斯市', '230828', '汤原县', '', '', '', '', 3, 1, ''), ('230881', '2308', '00,23,2308', '同江市', '23', '黑龙江省', '2308', '佳木斯市', '230881', '同江市', '', '', '', '', 3, 1, ''), ('230882', '2308', '00,23,2308', '富锦市', '23', '黑龙江省', '2308', '佳木斯市', '230882', '富锦市', '', '', '', '', 3, 1, ''), ('230883', '2308', '00,23,2308', '抚远市', '23', '黑龙江省', '2308', '佳木斯市', '230883', '抚远市', '', '', '', '', 3, 1, ''), ('2309', '23', '00,23', '七台河市', '23', '黑龙江省', '2309', '七台河市', '', '', '', '', '', '', 2, 1, ''), ('230902', '2309', '00,23,2309', '新兴区', '23', '黑龙江省', '2309', '七台河市', '230902', '新兴区', '', '', '', '', 3, 1, ''), ('230903', '2309', '00,23,2309', '桃山区', '23', '黑龙江省', '2309', '七台河市', '230903', '桃山区', '', '', '', '', 3, 1, ''), ('230904', '2309', '00,23,2309', '茄子河区', '23', '黑龙江省', '2309', '七台河市', '230904', '茄子河区', '', '', '', '', 3, 1, ''), ('230921', '2309', '00,23,2309', '勃利县', '23', '黑龙江省', '2309', '七台河市', '230921', '勃利县', '', '', '', '', 3, 1, ''), ('2310', '23', '00,23', '牡丹江市', '23', '黑龙江省', '2310', '牡丹江市', '', '', '', '', '', '', 2, 1, ''), ('231002', '2310', '00,23,2310', '东安区', '23', '黑龙江省', '2310', '牡丹江市', '231002', '东安区', '', '', '', '', 3, 1, ''), ('231003', '2310', '00,23,2310', '阳明区', '23', '黑龙江省', '2310', '牡丹江市', '231003', '阳明区', '', '', '', '', 3, 1, ''), ('231004', '2310', '00,23,2310', '爱民区', '23', '黑龙江省', '2310', '牡丹江市', '231004', '爱民区', '', '', '', '', 3, 1, ''), ('231005', '2310', '00,23,2310', '西安区', '23', '黑龙江省', '2310', '牡丹江市', '231005', '西安区', '', '', '', '', 3, 1, ''), ('231025', '2310', '00,23,2310', '林口县', '23', '黑龙江省', '2310', '牡丹江市', '231025', '林口县', '', '', '', '', 3, 1, ''), ('231081', '2310', '00,23,2310', '绥芬河市', '23', '黑龙江省', '2310', '牡丹江市', '231081', '绥芬河市', '', '', '', '', 3, 1, ''), ('231083', '2310', '00,23,2310', '海林市', '23', '黑龙江省', '2310', '牡丹江市', '231083', '海林市', '', '', '', '', 3, 1, ''), ('231084', '2310', '00,23,2310', '宁安市', '23', '黑龙江省', '2310', '牡丹江市', '231084', '宁安市', '', '', '', '', 3, 1, ''), ('231085', '2310', '00,23,2310', '穆棱市', '23', '黑龙江省', '2310', '牡丹江市', '231085', '穆棱市', '', '', '', '', 3, 1, ''), ('231086', '2310', '00,23,2310', '东宁市', '23', '黑龙江省', '2310', '牡丹江市', '231086', '东宁市', '', '', '', '', 3, 1, ''), ('2311', '23', '00,23', '黑河市', '23', '黑龙江省', '2311', '黑河市', '', '', '', '', '', '', 2, 1, ''), ('231102', '2311', '00,23,2311', '爱辉区', '23', '黑龙江省', '2311', '黑河市', '231102', '爱辉区', '', '', '', '', 3, 1, ''), ('231123', '2311', '00,23,2311', '逊克县', '23', '黑龙江省', '2311', '黑河市', '231123', '逊克县', '', '', '', '', 3, 1, ''), ('231124', '2311', '00,23,2311', '孙吴县', '23', '黑龙江省', '2311', '黑河市', '231124', '孙吴县', '', '', '', '', 3, 1, ''), ('231181', '2311', '00,23,2311', '北安市', '23', '黑龙江省', '2311', '黑河市', '231181', '北安市', '', '', '', '', 3, 1, ''), ('231182', '2311', '00,23,2311', '五大连池市', '23', '黑龙江省', '2311', '黑河市', '231182', '五大连池市', '', '', '', '', 3, 1, ''), ('231183', '2311', '00,23,2311', '嫩江市', '23', '黑龙江省', '2311', '黑河市', '231183', '嫩江市', '', '', '', '', 3, 1, ''), ('2312', '23', '00,23', '绥化市', '23', '黑龙江省', '2312', '绥化市', '', '', '', '', '', '', 2, 1, ''), ('231202', '2312', '00,23,2312', '北林区', '23', '黑龙江省', '2312', '绥化市', '231202', '北林区', '', '', '', '', 3, 1, ''), ('231221', '2312', '00,23,2312', '望奎县', '23', '黑龙江省', '2312', '绥化市', '231221', '望奎县', '', '', '', '', 3, 1, ''), ('231222', '2312', '00,23,2312', '兰西县', '23', '黑龙江省', '2312', '绥化市', '231222', '兰西县', '', '', '', '', 3, 1, ''), ('231223', '2312', '00,23,2312', '青冈县', '23', '黑龙江省', '2312', '绥化市', '231223', '青冈县', '', '', '', '', 3, 1, ''), ('231224', '2312', '00,23,2312', '庆安县', '23', '黑龙江省', '2312', '绥化市', '231224', '庆安县', '', '', '', '', 3, 1, ''), ('231225', '2312', '00,23,2312', '明水县', '23', '黑龙江省', '2312', '绥化市', '231225', '明水县', '', '', '', '', 3, 1, ''), ('231226', '2312', '00,23,2312', '绥棱县', '23', '黑龙江省', '2312', '绥化市', '231226', '绥棱县', '', '', '', '', 3, 1, ''), ('231281', '2312', '00,23,2312', '安达市', '23', '黑龙江省', '2312', '绥化市', '231281', '安达市', '', '', '', '', 3, 1, ''), ('231282', '2312', '00,23,2312', '肇东市', '23', '黑龙江省', '2312', '绥化市', '231282', '肇东市', '', '', '', '', 3, 1, ''), ('231283', '2312', '00,23,2312', '海伦市', '23', '黑龙江省', '2312', '绥化市', '231283', '海伦市', '', '', '', '', 3, 1, ''), ('2327', '23', '00,23', '大兴安岭地区', '23', '黑龙江省', '2327', '大兴安岭地区', '', '', '', '', '', '', 2, 1, ''), ('232701', '2327', '00,23,2327', '漠河市', '23', '黑龙江省', '2327', '大兴安岭地区', '232701', '漠河市', '', '', '', '', 3, 1, ''), ('232721', '2327', '00,23,2327', '呼玛县', '23', '黑龙江省', '2327', '大兴安岭地区', '232721', '呼玛县', '', '', '', '', 3, 1, ''), ('232722', '2327', '00,23,2327', '塔河县', '23', '黑龙江省', '2327', '大兴安岭地区', '232722', '塔河县', '', '', '', '', 3, 1, ''), ('31', '00', '00', '上海市', '31', '上海市', '', '', '', '', '', '', '', '', 1, 1, ''), ('3101', '31', '00,31', '上海市', '31', '上海市', '3101', '上海市', '', '', '', '', '', '', 2, 1, ''), ('310101', '3101', '00,31,3101', '黄浦区', '31', '上海市', '3101', '上海市', '310101', '黄浦区', '', '', '', '', 3, 1, ''), ('310104', '3101', '00,31,3101', '徐汇区', '31', '上海市', '3101', '上海市', '310104', '徐汇区', '', '', '', '', 3, 1, ''), ('310105', '3101', '00,31,3101', '长宁区', '31', '上海市', '3101', '上海市', '310105', '长宁区', '', '', '', '', 3, 1, ''), ('310106', '3101', '00,31,3101', '静安区', '31', '上海市', '3101', '上海市', '310106', '静安区', '', '', '', '', 3, 1, ''), ('310107', '3101', '00,31,3101', '普陀区', '31', '上海市', '3101', '上海市', '310107', '普陀区', '', '', '', '', 3, 1, ''), ('310109', '3101', '00,31,3101', '虹口区', '31', '上海市', '3101', '上海市', '310109', '虹口区', '', '', '', '', 3, 1, ''), ('310110', '3101', '00,31,3101', '杨浦区', '31', '上海市', '3101', '上海市', '310110', '杨浦区', '', '', '', '', 3, 1, ''), ('310112', '3101', '00,31,3101', '闵行区', '31', '上海市', '3101', '上海市', '310112', '闵行区', '', '', '', '', 3, 1, ''), ('310113', '3101', '00,31,3101', '宝山区', '31', '上海市', '3101', '上海市', '310113', '宝山区', '', '', '', '', 3, 1, ''), ('310114', '3101', '00,31,3101', '嘉定区', '31', '上海市', '3101', '上海市', '310114', '嘉定区', '', '', '', '', 3, 1, ''), ('310115', '3101', '00,31,3101', '浦东新区', '31', '上海市', '3101', '上海市', '310115', '浦东新区', '', '', '', '', 3, 1, ''), ('310116', '3101', '00,31,3101', '金山区', '31', '上海市', '3101', '上海市', '310116', '金山区', '', '', '', '', 3, 1, ''), ('310117', '3101', '00,31,3101', '松江区', '31', '上海市', '3101', '上海市', '310117', '松江区', '', '', '', '', 3, 1, ''), ('310118', '3101', '00,31,3101', '青浦区', '31', '上海市', '3101', '上海市', '310118', '青浦区', '', '', '', '', 3, 1, ''), ('310120', '3101', '00,31,3101', '奉贤区', '31', '上海市', '3101', '上海市', '310120', '奉贤区', '', '', '', '', 3, 1, ''), ('310151', '3101', '00,31,3101', '崇明区', '31', '上海市', '3101', '上海市', '310151', '崇明区', '', '', '', '', 3, 1, ''), ('32', '00', '00', '江苏省', '32', '江苏省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3201', '32', '00,32', '南京市', '32', '江苏省', '3201', '南京市', '', '', '', '', '', '', 2, 1, ''), ('320102', '3201', '00,32,3201', '玄武区', '32', '江苏省', '3201', '南京市', '320102', '玄武区', '', '', '', '', 3, 1, ''), ('320104', '3201', '00,32,3201', '秦淮区', '32', '江苏省', '3201', '南京市', '320104', '秦淮区', '', '', '', '', 3, 1, ''), ('320105', '3201', '00,32,3201', '建邺区', '32', '江苏省', '3201', '南京市', '320105', '建邺区', '', '', '', '', 3, 1, ''), ('320106', '3201', '00,32,3201', '鼓楼区', '32', '江苏省', '3201', '南京市', '320106', '鼓楼区', '', '', '', '', 3, 1, ''), ('320111', '3201', '00,32,3201', '浦口区', '32', '江苏省', '3201', '南京市', '320111', '浦口区', '', '', '', '', 3, 1, ''), ('320113', '3201', '00,32,3201', '栖霞区', '32', '江苏省', '3201', '南京市', '320113', '栖霞区', '', '', '', '', 3, 1, ''), ('320114', '3201', '00,32,3201', '雨花台区', '32', '江苏省', '3201', '南京市', '320114', '雨花台区', '', '', '', '', 3, 1, ''), ('320115', '3201', '00,32,3201', '江宁区', '32', '江苏省', '3201', '南京市', '320115', '江宁区', '', '', '', '', 3, 1, ''), ('320116', '3201', '00,32,3201', '六合区', '32', '江苏省', '3201', '南京市', '320116', '六合区', '', '', '', '', 3, 1, ''), ('320117', '3201', '00,32,3201', '溧水区', '32', '江苏省', '3201', '南京市', '320117', '溧水区', '', '', '', '', 3, 1, ''), ('320118', '3201', '00,32,3201', '高淳区', '32', '江苏省', '3201', '南京市', '320118', '高淳区', '', '', '', '', 3, 1, ''), ('3202', '32', '00,32', '无锡市', '32', '江苏省', '3202', '无锡市', '', '', '', '', '', '', 2, 1, ''), ('320205', '3202', '00,32,3202', '锡山区', '32', '江苏省', '3202', '无锡市', '320205', '锡山区', '', '', '', '', 3, 1, ''), ('320206', '3202', '00,32,3202', '惠山区', '32', '江苏省', '3202', '无锡市', '320206', '惠山区', '', '', '', '', 3, 1, ''), ('320211', '3202', '00,32,3202', '滨湖区', '32', '江苏省', '3202', '无锡市', '320211', '滨湖区', '', '', '', '', 3, 1, ''), ('320213', '3202', '00,32,3202', '梁溪区', '32', '江苏省', '3202', '无锡市', '320213', '梁溪区', '', '', '', '', 3, 1, ''), ('320214', '3202', '00,32,3202', '新吴区', '32', '江苏省', '3202', '无锡市', '320214', '新吴区', '', '', '', '', 3, 1, ''), ('320281', '3202', '00,32,3202', '江阴市', '32', '江苏省', '3202', '无锡市', '320281', '江阴市', '', '', '', '', 3, 1, ''), ('320282', '3202', '00,32,3202', '宜兴市', '32', '江苏省', '3202', '无锡市', '320282', '宜兴市', '', '', '', '', 3, 1, ''), ('3203', '32', '00,32', '徐州市', '32', '江苏省', '3203', '徐州市', '', '', '', '', '', '', 2, 1, ''), ('320302', '3203', '00,32,3203', '鼓楼区', '32', '江苏省', '3203', '徐州市', '320302', '鼓楼区', '', '', '', '', 3, 1, ''), ('320303', '3203', '00,32,3203', '云龙区', '32', '江苏省', '3203', '徐州市', '320303', '云龙区', '', '', '', '', 3, 1, ''), ('320305', '3203', '00,32,3203', '贾汪区', '32', '江苏省', '3203', '徐州市', '320305', '贾汪区', '', '', '', '', 3, 1, ''), ('320311', '3203', '00,32,3203', '泉山区', '32', '江苏省', '3203', '徐州市', '320311', '泉山区', '', '', '', '', 3, 1, ''), ('320312', '3203', '00,32,3203', '铜山区', '32', '江苏省', '3203', '徐州市', '320312', '铜山区', '', '', '', '', 3, 1, ''), ('320321', '3203', '00,32,3203', '丰县', '32', '江苏省', '3203', '徐州市', '320321', '丰县', '', '', '', '', 3, 1, ''), ('320322', '3203', '00,32,3203', '沛县', '32', '江苏省', '3203', '徐州市', '320322', '沛县', '', '', '', '', 3, 1, ''), ('320324', '3203', '00,32,3203', '睢宁县', '32', '江苏省', '3203', '徐州市', '320324', '睢宁县', '', '', '', '', 3, 1, ''), ('320381', '3203', '00,32,3203', '新沂市', '32', '江苏省', '3203', '徐州市', '320381', '新沂市', '', '', '', '', 3, 1, ''), ('320382', '3203', '00,32,3203', '邳州市', '32', '江苏省', '3203', '徐州市', '320382', '邳州市', '', '', '', '', 3, 1, ''), ('3204', '32', '00,32', '常州市', '32', '江苏省', '3204', '常州市', '', '', '', '', '', '', 2, 1, ''), ('320402', '3204', '00,32,3204', '天宁区', '32', '江苏省', '3204', '常州市', '320402', '天宁区', '', '', '', '', 3, 1, ''), ('320404', '3204', '00,32,3204', '钟楼区', '32', '江苏省', '3204', '常州市', '320404', '钟楼区', '', '', '', '', 3, 1, ''), ('320411', '3204', '00,32,3204', '新北区', '32', '江苏省', '3204', '常州市', '320411', '新北区', '', '', '', '', 3, 1, ''), ('320412', '3204', '00,32,3204', '武进区', '32', '江苏省', '3204', '常州市', '320412', '武进区', '', '', '', '', 3, 1, ''), ('320413', '3204', '00,32,3204', '金坛区', '32', '江苏省', '3204', '常州市', '320413', '金坛区', '', '', '', '', 3, 1, ''), ('320481', '3204', '00,32,3204', '溧阳市', '32', '江苏省', '3204', '常州市', '320481', '溧阳市', '', '', '', '', 3, 1, ''), ('3205', '32', '00,32', '苏州市', '32', '江苏省', '3205', '苏州市', '', '', '', '', '', '', 2, 1, ''), ('320505', '3205', '00,32,3205', '虎丘区', '32', '江苏省', '3205', '苏州市', '320505', '虎丘区', '', '', '', '', 3, 1, ''), ('320506', '3205', '00,32,3205', '吴中区', '32', '江苏省', '3205', '苏州市', '320506', '吴中区', '', '', '', '', 3, 1, ''), ('320507', '3205', '00,32,3205', '相城区', '32', '江苏省', '3205', '苏州市', '320507', '相城区', '', '', '', '', 3, 1, ''), ('320508', '3205', '00,32,3205', '姑苏区', '32', '江苏省', '3205', '苏州市', '320508', '姑苏区', '', '', '', '', 3, 1, ''), ('320509', '3205', '00,32,3205', '吴江区', '32', '江苏省', '3205', '苏州市', '320509', '吴江区', '', '', '', '', 3, 1, ''), ('320581', '3205', '00,32,3205', '常熟市', '32', '江苏省', '3205', '苏州市', '320581', '常熟市', '', '', '', '', 3, 1, ''), ('320582', '3205', '00,32,3205', '张家港市', '32', '江苏省', '3205', '苏州市', '320582', '张家港市', '', '', '', '', 3, 1, ''), ('320583', '3205', '00,32,3205', '昆山市', '32', '江苏省', '3205', '苏州市', '320583', '昆山市', '', '', '', '', 3, 1, ''), ('320585', '3205', '00,32,3205', '太仓市', '32', '江苏省', '3205', '苏州市', '320585', '太仓市', '', '', '', '', 3, 1, ''), ('3206', '32', '00,32', '南通市', '32', '江苏省', '3206', '南通市', '', '', '', '', '', '', 2, 1, ''), ('320602', '3206', '00,32,3206', '崇川区', '32', '江苏省', '3206', '南通市', '320602', '崇川区', '', '', '', '', 3, 1, ''), ('320611', '3206', '00,32,3206', '港闸区', '32', '江苏省', '3206', '南通市', '320611', '港闸区', '', '', '', '', 3, 1, ''), ('320612', '3206', '00,32,3206', '通州区', '32', '江苏省', '3206', '南通市', '320612', '通州区', '', '', '', '', 3, 1, ''), ('320623', '3206', '00,32,3206', '如东县', '32', '江苏省', '3206', '南通市', '320623', '如东县', '', '', '', '', 3, 1, ''), ('320681', '3206', '00,32,3206', '启东市', '32', '江苏省', '3206', '南通市', '320681', '启东市', '', '', '', '', 3, 1, ''), ('320682', '3206', '00,32,3206', '如皋市', '32', '江苏省', '3206', '南通市', '320682', '如皋市', '', '', '', '', 3, 1, ''), ('320684', '3206', '00,32,3206', '海门市', '32', '江苏省', '3206', '南通市', '320684', '海门市', '', '', '', '', 3, 1, ''), ('320685', '3206', '00,32,3206', '海安市', '32', '江苏省', '3206', '南通市', '320685', '海安市', '', '', '', '', 3, 1, ''), ('3207', '32', '00,32', '连云港市', '32', '江苏省', '3207', '连云港市', '', '', '', '', '', '', 2, 1, ''), ('320703', '3207', '00,32,3207', '连云区', '32', '江苏省', '3207', '连云港市', '320703', '连云区', '', '', '', '', 3, 1, ''), ('320706', '3207', '00,32,3207', '海州区', '32', '江苏省', '3207', '连云港市', '320706', '海州区', '', '', '', '', 3, 1, ''), ('320707', '3207', '00,32,3207', '赣榆区', '32', '江苏省', '3207', '连云港市', '320707', '赣榆区', '', '', '', '', 3, 1, ''), ('320722', '3207', '00,32,3207', '东海县', '32', '江苏省', '3207', '连云港市', '320722', '东海县', '', '', '', '', 3, 1, ''), ('320723', '3207', '00,32,3207', '灌云县', '32', '江苏省', '3207', '连云港市', '320723', '灌云县', '', '', '', '', 3, 1, ''), ('320724', '3207', '00,32,3207', '灌南县', '32', '江苏省', '3207', '连云港市', '320724', '灌南县', '', '', '', '', 3, 1, ''), ('3208', '32', '00,32', '淮安市', '32', '江苏省', '3208', '淮安市', '', '', '', '', '', '', 2, 1, ''), ('320803', '3208', '00,32,3208', '淮安区', '32', '江苏省', '3208', '淮安市', '320803', '淮安区', '', '', '', '', 3, 1, ''), ('320804', '3208', '00,32,3208', '淮阴区', '32', '江苏省', '3208', '淮安市', '320804', '淮阴区', '', '', '', '', 3, 1, ''), ('320812', '3208', '00,32,3208', '清江浦区', '32', '江苏省', '3208', '淮安市', '320812', '清江浦区', '', '', '', '', 3, 1, ''), ('320813', '3208', '00,32,3208', '洪泽区', '32', '江苏省', '3208', '淮安市', '320813', '洪泽区', '', '', '', '', 3, 1, ''), ('320826', '3208', '00,32,3208', '涟水县', '32', '江苏省', '3208', '淮安市', '320826', '涟水县', '', '', '', '', 3, 1, ''), ('320830', '3208', '00,32,3208', '盱眙县', '32', '江苏省', '3208', '淮安市', '320830', '盱眙县', '', '', '', '', 3, 1, ''), ('320831', '3208', '00,32,3208', '金湖县', '32', '江苏省', '3208', '淮安市', '320831', '金湖县', '', '', '', '', 3, 1, ''), ('3209', '32', '00,32', '盐城市', '32', '江苏省', '3209', '盐城市', '', '', '', '', '', '', 2, 1, ''), ('320902', '3209', '00,32,3209', '亭湖区', '32', '江苏省', '3209', '盐城市', '320902', '亭湖区', '', '', '', '', 3, 1, ''), ('320903', '3209', '00,32,3209', '盐都区', '32', '江苏省', '3209', '盐城市', '320903', '盐都区', '', '', '', '', 3, 1, ''), ('320904', '3209', '00,32,3209', '大丰区', '32', '江苏省', '3209', '盐城市', '320904', '大丰区', '', '', '', '', 3, 1, ''), ('320921', '3209', '00,32,3209', '响水县', '32', '江苏省', '3209', '盐城市', '320921', '响水县', '', '', '', '', 3, 1, ''), ('320922', '3209', '00,32,3209', '滨海县', '32', '江苏省', '3209', '盐城市', '320922', '滨海县', '', '', '', '', 3, 1, ''), ('320923', '3209', '00,32,3209', '阜宁县', '32', '江苏省', '3209', '盐城市', '320923', '阜宁县', '', '', '', '', 3, 1, ''), ('320924', '3209', '00,32,3209', '射阳县', '32', '江苏省', '3209', '盐城市', '320924', '射阳县', '', '', '', '', 3, 1, ''), ('320925', '3209', '00,32,3209', '建湖县', '32', '江苏省', '3209', '盐城市', '320925', '建湖县', '', '', '', '', 3, 1, ''), ('320981', '3209', '00,32,3209', '东台市', '32', '江苏省', '3209', '盐城市', '320981', '东台市', '', '', '', '', 3, 1, ''), ('3210', '32', '00,32', '扬州市', '32', '江苏省', '3210', '扬州市', '', '', '', '', '', '', 2, 1, ''), ('321002', '3210', '00,32,3210', '广陵区', '32', '江苏省', '3210', '扬州市', '321002', '广陵区', '', '', '', '', 3, 1, ''), ('321003', '3210', '00,32,3210', '邗江区', '32', '江苏省', '3210', '扬州市', '321003', '邗江区', '', '', '', '', 3, 1, ''), ('321012', '3210', '00,32,3210', '江都区', '32', '江苏省', '3210', '扬州市', '321012', '江都区', '', '', '', '', 3, 1, ''), ('321023', '3210', '00,32,3210', '宝应县', '32', '江苏省', '3210', '扬州市', '321023', '宝应县', '', '', '', '', 3, 1, ''), ('321081', '3210', '00,32,3210', '仪征市', '32', '江苏省', '3210', '扬州市', '321081', '仪征市', '', '', '', '', 3, 1, ''), ('321084', '3210', '00,32,3210', '高邮市', '32', '江苏省', '3210', '扬州市', '321084', '高邮市', '', '', '', '', 3, 1, ''), ('3211', '32', '00,32', '镇江市', '32', '江苏省', '3211', '镇江市', '', '', '', '', '', '', 2, 1, ''), ('321102', '3211', '00,32,3211', '京口区', '32', '江苏省', '3211', '镇江市', '321102', '京口区', '', '', '', '', 3, 1, ''), ('321111', '3211', '00,32,3211', '润州区', '32', '江苏省', '3211', '镇江市', '321111', '润州区', '', '', '', '', 3, 1, ''), ('321112', '3211', '00,32,3211', '丹徒区', '32', '江苏省', '3211', '镇江市', '321112', '丹徒区', '', '', '', '', 3, 1, ''), ('321181', '3211', '00,32,3211', '丹阳市', '32', '江苏省', '3211', '镇江市', '321181', '丹阳市', '', '', '', '', 3, 1, ''), ('321182', '3211', '00,32,3211', '扬中市', '32', '江苏省', '3211', '镇江市', '321182', '扬中市', '', '', '', '', 3, 1, ''), ('321183', '3211', '00,32,3211', '句容市', '32', '江苏省', '3211', '镇江市', '321183', '句容市', '', '', '', '', 3, 1, ''), ('3212', '32', '00,32', '泰州市', '32', '江苏省', '3212', '泰州市', '', '', '', '', '', '', 2, 1, ''), ('321202', '3212', '00,32,3212', '海陵区', '32', '江苏省', '3212', '泰州市', '321202', '海陵区', '', '', '', '', 3, 1, ''), ('321203', '3212', '00,32,3212', '高港区', '32', '江苏省', '3212', '泰州市', '321203', '高港区', '', '', '', '', 3, 1, ''), ('321204', '3212', '00,32,3212', '姜堰区', '32', '江苏省', '3212', '泰州市', '321204', '姜堰区', '', '', '', '', 3, 1, ''), ('321281', '3212', '00,32,3212', '兴化市', '32', '江苏省', '3212', '泰州市', '321281', '兴化市', '', '', '', '', 3, 1, ''), ('321282', '3212', '00,32,3212', '靖江市', '32', '江苏省', '3212', '泰州市', '321282', '靖江市', '', '', '', '', 3, 1, ''), ('321283', '3212', '00,32,3212', '泰兴市', '32', '江苏省', '3212', '泰州市', '321283', '泰兴市', '', '', '', '', 3, 1, ''), ('3213', '32', '00,32', '宿迁市', '32', '江苏省', '3213', '宿迁市', '', '', '', '', '', '', 2, 1, ''), ('321302', '3213', '00,32,3213', '宿城区', '32', '江苏省', '3213', '宿迁市', '321302', '宿城区', '', '', '', '', 3, 1, ''), ('321311', '3213', '00,32,3213', '宿豫区', '32', '江苏省', '3213', '宿迁市', '321311', '宿豫区', '', '', '', '', 3, 1, ''), ('321322', '3213', '00,32,3213', '沭阳县', '32', '江苏省', '3213', '宿迁市', '321322', '沭阳县', '', '', '', '', 3, 1, ''), ('321323', '3213', '00,32,3213', '泗阳县', '32', '江苏省', '3213', '宿迁市', '321323', '泗阳县', '', '', '', '', 3, 1, ''), ('321324', '3213', '00,32,3213', '泗洪县', '32', '江苏省', '3213', '宿迁市', '321324', '泗洪县', '', '', '', '', 3, 1, ''), ('33', '00', '00', '浙江省', '33', '浙江省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3301', '33', '00,33', '杭州市', '33', '浙江省', '3301', '杭州市', '', '', '', '', '', '', 2, 1, ''), ('330102', '3301', '00,33,3301', '上城区', '33', '浙江省', '3301', '杭州市', '330102', '上城区', '', '', '', '', 3, 1, ''), ('330103', '3301', '00,33,3301', '下城区', '33', '浙江省', '3301', '杭州市', '330103', '下城区', '', '', '', '', 3, 1, ''), ('330104', '3301', '00,33,3301', '江干区', '33', '浙江省', '3301', '杭州市', '330104', '江干区', '', '', '', '', 3, 1, ''), ('330105', '3301', '00,33,3301', '拱墅区', '33', '浙江省', '3301', '杭州市', '330105', '拱墅区', '', '', '', '', 3, 1, ''), ('330106', '3301', '00,33,3301', '西湖区', '33', '浙江省', '3301', '杭州市', '330106', '西湖区', '', '', '', '', 3, 1, ''), ('330108', '3301', '00,33,3301', '滨江区', '33', '浙江省', '3301', '杭州市', '330108', '滨江区', '', '', '', '', 3, 1, ''), ('330109', '3301', '00,33,3301', '萧山区', '33', '浙江省', '3301', '杭州市', '330109', '萧山区', '', '', '', '', 3, 1, ''), ('330110', '3301', '00,33,3301', '余杭区', '33', '浙江省', '3301', '杭州市', '330110', '余杭区', '', '', '', '', 3, 1, ''), ('330111', '3301', '00,33,3301', '富阳区', '33', '浙江省', '3301', '杭州市', '330111', '富阳区', '', '', '', '', 3, 1, ''), ('330112', '3301', '00,33,3301', '临安区', '33', '浙江省', '3301', '杭州市', '330112', '临安区', '', '', '', '', 3, 1, ''), ('330122', '3301', '00,33,3301', '桐庐县', '33', '浙江省', '3301', '杭州市', '330122', '桐庐县', '', '', '', '', 3, 1, ''), ('330127', '3301', '00,33,3301', '淳安县', '33', '浙江省', '3301', '杭州市', '330127', '淳安县', '', '', '', '', 3, 1, ''), ('330182', '3301', '00,33,3301', '建德市', '33', '浙江省', '3301', '杭州市', '330182', '建德市', '', '', '', '', 3, 1, ''), ('3302', '33', '00,33', '宁波市', '33', '浙江省', '3302', '宁波市', '', '', '', '', '', '', 2, 1, ''), ('330203', '3302', '00,33,3302', '海曙区', '33', '浙江省', '3302', '宁波市', '330203', '海曙区', '', '', '', '', 3, 1, ''), ('330205', '3302', '00,33,3302', '江北区', '33', '浙江省', '3302', '宁波市', '330205', '江北区', '', '', '', '', 3, 1, ''), ('330206', '3302', '00,33,3302', '北仑区', '33', '浙江省', '3302', '宁波市', '330206', '北仑区', '', '', '', '', 3, 1, ''), ('330211', '3302', '00,33,3302', '镇海区', '33', '浙江省', '3302', '宁波市', '330211', '镇海区', '', '', '', '', 3, 1, ''), ('330212', '3302', '00,33,3302', '鄞州区', '33', '浙江省', '3302', '宁波市', '330212', '鄞州区', '', '', '', '', 3, 1, ''), ('330213', '3302', '00,33,3302', '奉化区', '33', '浙江省', '3302', '宁波市', '330213', '奉化区', '', '', '', '', 3, 1, ''), ('330225', '3302', '00,33,3302', '象山县', '33', '浙江省', '3302', '宁波市', '330225', '象山县', '', '', '', '', 3, 1, ''), ('330226', '3302', '00,33,3302', '宁海县', '33', '浙江省', '3302', '宁波市', '330226', '宁海县', '', '', '', '', 3, 1, ''), ('330281', '3302', '00,33,3302', '余姚市', '33', '浙江省', '3302', '宁波市', '330281', '余姚市', '', '', '', '', 3, 1, ''), ('330282', '3302', '00,33,3302', '慈溪市', '33', '浙江省', '3302', '宁波市', '330282', '慈溪市', '', '', '', '', 3, 1, ''), ('3303', '33', '00,33', '温州市', '33', '浙江省', '3303', '温州市', '', '', '', '', '', '', 2, 1, ''), ('330302', '3303', '00,33,3303', '鹿城区', '33', '浙江省', '3303', '温州市', '330302', '鹿城区', '', '', '', '', 3, 1, ''), ('330303', '3303', '00,33,3303', '龙湾区', '33', '浙江省', '3303', '温州市', '330303', '龙湾区', '', '', '', '', 3, 1, ''), ('330304', '3303', '00,33,3303', '瓯海区', '33', '浙江省', '3303', '温州市', '330304', '瓯海区', '', '', '', '', 3, 1, ''), ('330305', '3303', '00,33,3303', '洞头区', '33', '浙江省', '3303', '温州市', '330305', '洞头区', '', '', '', '', 3, 1, ''), ('330324', '3303', '00,33,3303', '永嘉县', '33', '浙江省', '3303', '温州市', '330324', '永嘉县', '', '', '', '', 3, 1, ''), ('330326', '3303', '00,33,3303', '平阳县', '33', '浙江省', '3303', '温州市', '330326', '平阳县', '', '', '', '', 3, 1, ''), ('330327', '3303', '00,33,3303', '苍南县', '33', '浙江省', '3303', '温州市', '330327', '苍南县', '', '', '', '', 3, 1, ''), ('330328', '3303', '00,33,3303', '文成县', '33', '浙江省', '3303', '温州市', '330328', '文成县', '', '', '', '', 3, 1, ''), ('330329', '3303', '00,33,3303', '泰顺县', '33', '浙江省', '3303', '温州市', '330329', '泰顺县', '', '', '', '', 3, 1, ''), ('330381', '3303', '00,33,3303', '瑞安市', '33', '浙江省', '3303', '温州市', '330381', '瑞安市', '', '', '', '', 3, 1, ''), ('330382', '3303', '00,33,3303', '乐清市', '33', '浙江省', '3303', '温州市', '330382', '乐清市', '', '', '', '', 3, 1, ''), ('330383', '3303', '00,33,3303', '龙港市', '33', '浙江省', '3303', '温州市', '330383', '龙港市', '', '', '', '', 3, 1, ''), ('3304', '33', '00,33', '嘉兴市', '33', '浙江省', '3304', '嘉兴市', '', '', '', '', '', '', 2, 1, ''), ('330402', '3304', '00,33,3304', '南湖区', '33', '浙江省', '3304', '嘉兴市', '330402', '南湖区', '', '', '', '', 3, 1, ''), ('330411', '3304', '00,33,3304', '秀洲区', '33', '浙江省', '3304', '嘉兴市', '330411', '秀洲区', '', '', '', '', 3, 1, ''), ('330421', '3304', '00,33,3304', '嘉善县', '33', '浙江省', '3304', '嘉兴市', '330421', '嘉善县', '', '', '', '', 3, 1, ''), ('330424', '3304', '00,33,3304', '海盐县', '33', '浙江省', '3304', '嘉兴市', '330424', '海盐县', '', '', '', '', 3, 1, '');
+INSERT INTO `blade_region` VALUES ('330481', '3304', '00,33,3304', '海宁市', '33', '浙江省', '3304', '嘉兴市', '330481', '海宁市', '', '', '', '', 3, 1, ''), ('330482', '3304', '00,33,3304', '平湖市', '33', '浙江省', '3304', '嘉兴市', '330482', '平湖市', '', '', '', '', 3, 1, ''), ('330483', '3304', '00,33,3304', '桐乡市', '33', '浙江省', '3304', '嘉兴市', '330483', '桐乡市', '', '', '', '', 3, 1, ''), ('3305', '33', '00,33', '湖州市', '33', '浙江省', '3305', '湖州市', '', '', '', '', '', '', 2, 1, ''), ('330502', '3305', '00,33,3305', '吴兴区', '33', '浙江省', '3305', '湖州市', '330502', '吴兴区', '', '', '', '', 3, 1, ''), ('330503', '3305', '00,33,3305', '南浔区', '33', '浙江省', '3305', '湖州市', '330503', '南浔区', '', '', '', '', 3, 1, ''), ('330521', '3305', '00,33,3305', '德清县', '33', '浙江省', '3305', '湖州市', '330521', '德清县', '', '', '', '', 3, 1, ''), ('330522', '3305', '00,33,3305', '长兴县', '33', '浙江省', '3305', '湖州市', '330522', '长兴县', '', '', '', '', 3, 1, ''), ('330523', '3305', '00,33,3305', '安吉县', '33', '浙江省', '3305', '湖州市', '330523', '安吉县', '', '', '', '', 3, 1, ''), ('3306', '33', '00,33', '绍兴市', '33', '浙江省', '3306', '绍兴市', '', '', '', '', '', '', 2, 1, ''), ('330602', '3306', '00,33,3306', '越城区', '33', '浙江省', '3306', '绍兴市', '330602', '越城区', '', '', '', '', 3, 1, ''), ('330603', '3306', '00,33,3306', '柯桥区', '33', '浙江省', '3306', '绍兴市', '330603', '柯桥区', '', '', '', '', 3, 1, ''), ('330604', '3306', '00,33,3306', '上虞区', '33', '浙江省', '3306', '绍兴市', '330604', '上虞区', '', '', '', '', 3, 1, ''), ('330624', '3306', '00,33,3306', '新昌县', '33', '浙江省', '3306', '绍兴市', '330624', '新昌县', '', '', '', '', 3, 1, ''), ('330681', '3306', '00,33,3306', '诸暨市', '33', '浙江省', '3306', '绍兴市', '330681', '诸暨市', '', '', '', '', 3, 1, ''), ('330683', '3306', '00,33,3306', '嵊州市', '33', '浙江省', '3306', '绍兴市', '330683', '嵊州市', '', '', '', '', 3, 1, ''), ('3307', '33', '00,33', '金华市', '33', '浙江省', '3307', '金华市', '', '', '', '', '', '', 2, 1, ''), ('330702', '3307', '00,33,3307', '婺城区', '33', '浙江省', '3307', '金华市', '330702', '婺城区', '', '', '', '', 3, 1, ''), ('330703', '3307', '00,33,3307', '金东区', '33', '浙江省', '3307', '金华市', '330703', '金东区', '', '', '', '', 3, 1, ''), ('330723', '3307', '00,33,3307', '武义县', '33', '浙江省', '3307', '金华市', '330723', '武义县', '', '', '', '', 3, 1, ''), ('330726', '3307', '00,33,3307', '浦江县', '33', '浙江省', '3307', '金华市', '330726', '浦江县', '', '', '', '', 3, 1, ''), ('330727', '3307', '00,33,3307', '磐安县', '33', '浙江省', '3307', '金华市', '330727', '磐安县', '', '', '', '', 3, 1, ''), ('330781', '3307', '00,33,3307', '兰溪市', '33', '浙江省', '3307', '金华市', '330781', '兰溪市', '', '', '', '', 3, 1, ''), ('330782', '3307', '00,33,3307', '义乌市', '33', '浙江省', '3307', '金华市', '330782', '义乌市', '', '', '', '', 3, 1, ''), ('330783', '3307', '00,33,3307', '东阳市', '33', '浙江省', '3307', '金华市', '330783', '东阳市', '', '', '', '', 3, 1, ''), ('330784', '3307', '00,33,3307', '永康市', '33', '浙江省', '3307', '金华市', '330784', '永康市', '', '', '', '', 3, 1, ''), ('3308', '33', '00,33', '衢州市', '33', '浙江省', '3308', '衢州市', '', '', '', '', '', '', 2, 1, ''), ('330802', '3308', '00,33,3308', '柯城区', '33', '浙江省', '3308', '衢州市', '330802', '柯城区', '', '', '', '', 3, 1, ''), ('330803', '3308', '00,33,3308', '衢江区', '33', '浙江省', '3308', '衢州市', '330803', '衢江区', '', '', '', '', 3, 1, ''), ('330822', '3308', '00,33,3308', '常山县', '33', '浙江省', '3308', '衢州市', '330822', '常山县', '', '', '', '', 3, 1, ''), ('330824', '3308', '00,33,3308', '开化县', '33', '浙江省', '3308', '衢州市', '330824', '开化县', '', '', '', '', 3, 1, ''), ('330825', '3308', '00,33,3308', '龙游县', '33', '浙江省', '3308', '衢州市', '330825', '龙游县', '', '', '', '', 3, 1, ''), ('330881', '3308', '00,33,3308', '江山市', '33', '浙江省', '3308', '衢州市', '330881', '江山市', '', '', '', '', 3, 1, ''), ('3309', '33', '00,33', '舟山市', '33', '浙江省', '3309', '舟山市', '', '', '', '', '', '', 2, 1, ''), ('330902', '3309', '00,33,3309', '定海区', '33', '浙江省', '3309', '舟山市', '330902', '定海区', '', '', '', '', 3, 1, ''), ('330903', '3309', '00,33,3309', '普陀区', '33', '浙江省', '3309', '舟山市', '330903', '普陀区', '', '', '', '', 3, 1, ''), ('330921', '3309', '00,33,3309', '岱山县', '33', '浙江省', '3309', '舟山市', '330921', '岱山县', '', '', '', '', 3, 1, ''), ('330922', '3309', '00,33,3309', '嵊泗县', '33', '浙江省', '3309', '舟山市', '330922', '嵊泗县', '', '', '', '', 3, 1, ''), ('3310', '33', '00,33', '台州市', '33', '浙江省', '3310', '台州市', '', '', '', '', '', '', 2, 1, ''), ('331002', '3310', '00,33,3310', '椒江区', '33', '浙江省', '3310', '台州市', '331002', '椒江区', '', '', '', '', 3, 1, ''), ('331003', '3310', '00,33,3310', '黄岩区', '33', '浙江省', '3310', '台州市', '331003', '黄岩区', '', '', '', '', 3, 1, ''), ('331004', '3310', '00,33,3310', '路桥区', '33', '浙江省', '3310', '台州市', '331004', '路桥区', '', '', '', '', 3, 1, ''), ('331022', '3310', '00,33,3310', '三门县', '33', '浙江省', '3310', '台州市', '331022', '三门县', '', '', '', '', 3, 1, ''), ('331023', '3310', '00,33,3310', '天台县', '33', '浙江省', '3310', '台州市', '331023', '天台县', '', '', '', '', 3, 1, ''), ('331024', '3310', '00,33,3310', '仙居县', '33', '浙江省', '3310', '台州市', '331024', '仙居县', '', '', '', '', 3, 1, ''), ('331081', '3310', '00,33,3310', '温岭市', '33', '浙江省', '3310', '台州市', '331081', '温岭市', '', '', '', '', 3, 1, ''), ('331082', '3310', '00,33,3310', '临海市', '33', '浙江省', '3310', '台州市', '331082', '临海市', '', '', '', '', 3, 1, ''), ('331083', '3310', '00,33,3310', '玉环市', '33', '浙江省', '3310', '台州市', '331083', '玉环市', '', '', '', '', 3, 1, ''), ('3311', '33', '00,33', '丽水市', '33', '浙江省', '3311', '丽水市', '', '', '', '', '', '', 2, 1, ''), ('331102', '3311', '00,33,3311', '莲都区', '33', '浙江省', '3311', '丽水市', '331102', '莲都区', '', '', '', '', 3, 1, ''), ('331121', '3311', '00,33,3311', '青田县', '33', '浙江省', '3311', '丽水市', '331121', '青田县', '', '', '', '', 3, 1, ''), ('331122', '3311', '00,33,3311', '缙云县', '33', '浙江省', '3311', '丽水市', '331122', '缙云县', '', '', '', '', 3, 1, ''), ('331123', '3311', '00,33,3311', '遂昌县', '33', '浙江省', '3311', '丽水市', '331123', '遂昌县', '', '', '', '', 3, 1, ''), ('331124', '3311', '00,33,3311', '松阳县', '33', '浙江省', '3311', '丽水市', '331124', '松阳县', '', '', '', '', 3, 1, ''), ('331125', '3311', '00,33,3311', '云和县', '33', '浙江省', '3311', '丽水市', '331125', '云和县', '', '', '', '', 3, 1, ''), ('331126', '3311', '00,33,3311', '庆元县', '33', '浙江省', '3311', '丽水市', '331126', '庆元县', '', '', '', '', 3, 1, ''), ('331127', '3311', '00,33,3311', '景宁畲族自治县', '33', '浙江省', '3311', '丽水市', '331127', '景宁畲族自治县', '', '', '', '', 3, 1, ''), ('331181', '3311', '00,33,3311', '龙泉市', '33', '浙江省', '3311', '丽水市', '331181', '龙泉市', '', '', '', '', 3, 1, ''), ('34', '00', '00', '安徽省', '34', '安徽省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3401', '34', '00,34', '合肥市', '34', '安徽省', '3401', '合肥市', '', '', '', '', '', '', 2, 1, ''), ('340102', '3401', '00,34,3401', '瑶海区', '34', '安徽省', '3401', '合肥市', '340102', '瑶海区', '', '', '', '', 3, 1, ''), ('340103', '3401', '00,34,3401', '庐阳区', '34', '安徽省', '3401', '合肥市', '340103', '庐阳区', '', '', '', '', 3, 1, ''), ('340104', '3401', '00,34,3401', '蜀山区', '34', '安徽省', '3401', '合肥市', '340104', '蜀山区', '', '', '', '', 3, 1, ''), ('340111', '3401', '00,34,3401', '包河区', '34', '安徽省', '3401', '合肥市', '340111', '包河区', '', '', '', '', 3, 1, ''), ('340121', '3401', '00,34,3401', '长丰县', '34', '安徽省', '3401', '合肥市', '340121', '长丰县', '', '', '', '', 3, 1, ''), ('340122', '3401', '00,34,3401', '肥东县', '34', '安徽省', '3401', '合肥市', '340122', '肥东县', '', '', '', '', 3, 1, ''), ('340123', '3401', '00,34,3401', '肥西县', '34', '安徽省', '3401', '合肥市', '340123', '肥西县', '', '', '', '', 3, 1, ''), ('340124', '3401', '00,34,3401', '庐江县', '34', '安徽省', '3401', '合肥市', '340124', '庐江县', '', '', '', '', 3, 1, ''), ('340181', '3401', '00,34,3401', '巢湖市', '34', '安徽省', '3401', '合肥市', '340181', '巢湖市', '', '', '', '', 3, 1, ''), ('3402', '34', '00,34', '芜湖市', '34', '安徽省', '3402', '芜湖市', '', '', '', '', '', '', 2, 1, ''), ('340202', '3402', '00,34,3402', '镜湖区', '34', '安徽省', '3402', '芜湖市', '340202', '镜湖区', '', '', '', '', 3, 1, ''), ('340203', '3402', '00,34,3402', '弋江区', '34', '安徽省', '3402', '芜湖市', '340203', '弋江区', '', '', '', '', 3, 1, ''), ('340207', '3402', '00,34,3402', '鸠江区', '34', '安徽省', '3402', '芜湖市', '340207', '鸠江区', '', '', '', '', 3, 1, ''), ('340208', '3402', '00,34,3402', '三山区', '34', '安徽省', '3402', '芜湖市', '340208', '三山区', '', '', '', '', 3, 1, ''), ('340221', '3402', '00,34,3402', '芜湖县', '34', '安徽省', '3402', '芜湖市', '340221', '芜湖县', '', '', '', '', 3, 1, ''), ('340222', '3402', '00,34,3402', '繁昌县', '34', '安徽省', '3402', '芜湖市', '340222', '繁昌县', '', '', '', '', 3, 1, ''), ('340223', '3402', '00,34,3402', '南陵县', '34', '安徽省', '3402', '芜湖市', '340223', '南陵县', '', '', '', '', 3, 1, ''), ('340281', '3402', '00,34,3402', '无为市', '34', '安徽省', '3402', '芜湖市', '340281', '无为市', '', '', '', '', 3, 1, ''), ('3403', '34', '00,34', '蚌埠市', '34', '安徽省', '3403', '蚌埠市', '', '', '', '', '', '', 2, 1, ''), ('340302', '3403', '00,34,3403', '龙子湖区', '34', '安徽省', '3403', '蚌埠市', '340302', '龙子湖区', '', '', '', '', 3, 1, ''), ('340303', '3403', '00,34,3403', '蚌山区', '34', '安徽省', '3403', '蚌埠市', '340303', '蚌山区', '', '', '', '', 3, 1, ''), ('340304', '3403', '00,34,3403', '禹会区', '34', '安徽省', '3403', '蚌埠市', '340304', '禹会区', '', '', '', '', 3, 1, ''), ('340311', '3403', '00,34,3403', '淮上区', '34', '安徽省', '3403', '蚌埠市', '340311', '淮上区', '', '', '', '', 3, 1, ''), ('340321', '3403', '00,34,3403', '怀远县', '34', '安徽省', '3403', '蚌埠市', '340321', '怀远县', '', '', '', '', 3, 1, ''), ('340322', '3403', '00,34,3403', '五河县', '34', '安徽省', '3403', '蚌埠市', '340322', '五河县', '', '', '', '', 3, 1, ''), ('340323', '3403', '00,34,3403', '固镇县', '34', '安徽省', '3403', '蚌埠市', '340323', '固镇县', '', '', '', '', 3, 1, ''), ('3404', '34', '00,34', '淮南市', '34', '安徽省', '3404', '淮南市', '', '', '', '', '', '', 2, 1, ''), ('340402', '3404', '00,34,3404', '大通区', '34', '安徽省', '3404', '淮南市', '340402', '大通区', '', '', '', '', 3, 1, ''), ('340403', '3404', '00,34,3404', '田家庵区', '34', '安徽省', '3404', '淮南市', '340403', '田家庵区', '', '', '', '', 3, 1, ''), ('340404', '3404', '00,34,3404', '谢家集区', '34', '安徽省', '3404', '淮南市', '340404', '谢家集区', '', '', '', '', 3, 1, ''), ('340405', '3404', '00,34,3404', '八公山区', '34', '安徽省', '3404', '淮南市', '340405', '八公山区', '', '', '', '', 3, 1, ''), ('340406', '3404', '00,34,3404', '潘集区', '34', '安徽省', '3404', '淮南市', '340406', '潘集区', '', '', '', '', 3, 1, ''), ('340421', '3404', '00,34,3404', '凤台县', '34', '安徽省', '3404', '淮南市', '340421', '凤台县', '', '', '', '', 3, 1, ''), ('340422', '3404', '00,34,3404', '寿县', '34', '安徽省', '3404', '淮南市', '340422', '寿县', '', '', '', '', 3, 1, ''), ('3405', '34', '00,34', '马鞍山市', '34', '安徽省', '3405', '马鞍山市', '', '', '', '', '', '', 2, 1, ''), ('340503', '3405', '00,34,3405', '花山区', '34', '安徽省', '3405', '马鞍山市', '340503', '花山区', '', '', '', '', 3, 1, ''), ('340504', '3405', '00,34,3405', '雨山区', '34', '安徽省', '3405', '马鞍山市', '340504', '雨山区', '', '', '', '', 3, 1, ''), ('340506', '3405', '00,34,3405', '博望区', '34', '安徽省', '3405', '马鞍山市', '340506', '博望区', '', '', '', '', 3, 1, ''), ('340521', '3405', '00,34,3405', '当涂县', '34', '安徽省', '3405', '马鞍山市', '340521', '当涂县', '', '', '', '', 3, 1, ''), ('340522', '3405', '00,34,3405', '含山县', '34', '安徽省', '3405', '马鞍山市', '340522', '含山县', '', '', '', '', 3, 1, ''), ('340523', '3405', '00,34,3405', '和县', '34', '安徽省', '3405', '马鞍山市', '340523', '和县', '', '', '', '', 3, 1, ''), ('3406', '34', '00,34', '淮北市', '34', '安徽省', '3406', '淮北市', '', '', '', '', '', '', 2, 1, ''), ('340602', '3406', '00,34,3406', '杜集区', '34', '安徽省', '3406', '淮北市', '340602', '杜集区', '', '', '', '', 3, 1, ''), ('340603', '3406', '00,34,3406', '相山区', '34', '安徽省', '3406', '淮北市', '340603', '相山区', '', '', '', '', 3, 1, ''), ('340604', '3406', '00,34,3406', '烈山区', '34', '安徽省', '3406', '淮北市', '340604', '烈山区', '', '', '', '', 3, 1, ''), ('340621', '3406', '00,34,3406', '濉溪县', '34', '安徽省', '3406', '淮北市', '340621', '濉溪县', '', '', '', '', 3, 1, ''), ('3407', '34', '00,34', '铜陵市', '34', '安徽省', '3407', '铜陵市', '', '', '', '', '', '', 2, 1, ''), ('340705', '3407', '00,34,3407', '铜官区', '34', '安徽省', '3407', '铜陵市', '340705', '铜官区', '', '', '', '', 3, 1, ''), ('340706', '3407', '00,34,3407', '义安区', '34', '安徽省', '3407', '铜陵市', '340706', '义安区', '', '', '', '', 3, 1, ''), ('340711', '3407', '00,34,3407', '郊区', '34', '安徽省', '3407', '铜陵市', '340711', '郊区', '', '', '', '', 3, 1, ''), ('340722', '3407', '00,34,3407', '枞阳县', '34', '安徽省', '3407', '铜陵市', '340722', '枞阳县', '', '', '', '', 3, 1, ''), ('3408', '34', '00,34', '安庆市', '34', '安徽省', '3408', '安庆市', '', '', '', '', '', '', 2, 1, ''), ('340802', '3408', '00,34,3408', '迎江区', '34', '安徽省', '3408', '安庆市', '340802', '迎江区', '', '', '', '', 3, 1, ''), ('340803', '3408', '00,34,3408', '大观区', '34', '安徽省', '3408', '安庆市', '340803', '大观区', '', '', '', '', 3, 1, ''), ('340811', '3408', '00,34,3408', '宜秀区', '34', '安徽省', '3408', '安庆市', '340811', '宜秀区', '', '', '', '', 3, 1, ''), ('340822', '3408', '00,34,3408', '怀宁县', '34', '安徽省', '3408', '安庆市', '340822', '怀宁县', '', '', '', '', 3, 1, ''), ('340825', '3408', '00,34,3408', '太湖县', '34', '安徽省', '3408', '安庆市', '340825', '太湖县', '', '', '', '', 3, 1, ''), ('340826', '3408', '00,34,3408', '宿松县', '34', '安徽省', '3408', '安庆市', '340826', '宿松县', '', '', '', '', 3, 1, ''), ('340827', '3408', '00,34,3408', '望江县', '34', '安徽省', '3408', '安庆市', '340827', '望江县', '', '', '', '', 3, 1, ''), ('340828', '3408', '00,34,3408', '岳西县', '34', '安徽省', '3408', '安庆市', '340828', '岳西县', '', '', '', '', 3, 1, ''), ('340881', '3408', '00,34,3408', '桐城市', '34', '安徽省', '3408', '安庆市', '340881', '桐城市', '', '', '', '', 3, 1, ''), ('340882', '3408', '00,34,3408', '潜山市', '34', '安徽省', '3408', '安庆市', '340882', '潜山市', '', '', '', '', 3, 1, ''), ('3410', '34', '00,34', '黄山市', '34', '安徽省', '3410', '黄山市', '', '', '', '', '', '', 2, 1, ''), ('341002', '3410', '00,34,3410', '屯溪区', '34', '安徽省', '3410', '黄山市', '341002', '屯溪区', '', '', '', '', 3, 1, ''), ('341003', '3410', '00,34,3410', '黄山区', '34', '安徽省', '3410', '黄山市', '341003', '黄山区', '', '', '', '', 3, 1, ''), ('341004', '3410', '00,34,3410', '徽州区', '34', '安徽省', '3410', '黄山市', '341004', '徽州区', '', '', '', '', 3, 1, ''), ('341021', '3410', '00,34,3410', '歙县', '34', '安徽省', '3410', '黄山市', '341021', '歙县', '', '', '', '', 3, 1, ''), ('341022', '3410', '00,34,3410', '休宁县', '34', '安徽省', '3410', '黄山市', '341022', '休宁县', '', '', '', '', 3, 1, ''), ('341023', '3410', '00,34,3410', '黟县', '34', '安徽省', '3410', '黄山市', '341023', '黟县', '', '', '', '', 3, 1, ''), ('341024', '3410', '00,34,3410', '祁门县', '34', '安徽省', '3410', '黄山市', '341024', '祁门县', '', '', '', '', 3, 1, ''), ('3411', '34', '00,34', '滁州市', '34', '安徽省', '3411', '滁州市', '', '', '', '', '', '', 2, 1, ''), ('341102', '3411', '00,34,3411', '琅琊区', '34', '安徽省', '3411', '滁州市', '341102', '琅琊区', '', '', '', '', 3, 1, ''), ('341103', '3411', '00,34,3411', '南谯区', '34', '安徽省', '3411', '滁州市', '341103', '南谯区', '', '', '', '', 3, 1, ''), ('341122', '3411', '00,34,3411', '来安县', '34', '安徽省', '3411', '滁州市', '341122', '来安县', '', '', '', '', 3, 1, ''), ('341124', '3411', '00,34,3411', '全椒县', '34', '安徽省', '3411', '滁州市', '341124', '全椒县', '', '', '', '', 3, 1, ''), ('341125', '3411', '00,34,3411', '定远县', '34', '安徽省', '3411', '滁州市', '341125', '定远县', '', '', '', '', 3, 1, ''), ('341126', '3411', '00,34,3411', '凤阳县', '34', '安徽省', '3411', '滁州市', '341126', '凤阳县', '', '', '', '', 3, 1, ''), ('341181', '3411', '00,34,3411', '天长市', '34', '安徽省', '3411', '滁州市', '341181', '天长市', '', '', '', '', 3, 1, ''), ('341182', '3411', '00,34,3411', '明光市', '34', '安徽省', '3411', '滁州市', '341182', '明光市', '', '', '', '', 3, 1, ''), ('3412', '34', '00,34', '阜阳市', '34', '安徽省', '3412', '阜阳市', '', '', '', '', '', '', 2, 1, ''), ('341202', '3412', '00,34,3412', '颍州区', '34', '安徽省', '3412', '阜阳市', '341202', '颍州区', '', '', '', '', 3, 1, ''), ('341203', '3412', '00,34,3412', '颍东区', '34', '安徽省', '3412', '阜阳市', '341203', '颍东区', '', '', '', '', 3, 1, ''), ('341204', '3412', '00,34,3412', '颍泉区', '34', '安徽省', '3412', '阜阳市', '341204', '颍泉区', '', '', '', '', 3, 1, ''), ('341221', '3412', '00,34,3412', '临泉县', '34', '安徽省', '3412', '阜阳市', '341221', '临泉县', '', '', '', '', 3, 1, ''), ('341222', '3412', '00,34,3412', '太和县', '34', '安徽省', '3412', '阜阳市', '341222', '太和县', '', '', '', '', 3, 1, ''), ('341225', '3412', '00,34,3412', '阜南县', '34', '安徽省', '3412', '阜阳市', '341225', '阜南县', '', '', '', '', 3, 1, ''), ('341226', '3412', '00,34,3412', '颍上县', '34', '安徽省', '3412', '阜阳市', '341226', '颍上县', '', '', '', '', 3, 1, ''), ('341282', '3412', '00,34,3412', '界首市', '34', '安徽省', '3412', '阜阳市', '341282', '界首市', '', '', '', '', 3, 1, ''), ('3413', '34', '00,34', '宿州市', '34', '安徽省', '3413', '宿州市', '', '', '', '', '', '', 2, 1, ''), ('341302', '3413', '00,34,3413', '埇桥区', '34', '安徽省', '3413', '宿州市', '341302', '埇桥区', '', '', '', '', 3, 1, ''), ('341321', '3413', '00,34,3413', '砀山县', '34', '安徽省', '3413', '宿州市', '341321', '砀山县', '', '', '', '', 3, 1, ''), ('341322', '3413', '00,34,3413', '萧县', '34', '安徽省', '3413', '宿州市', '341322', '萧县', '', '', '', '', 3, 1, ''), ('341323', '3413', '00,34,3413', '灵璧县', '34', '安徽省', '3413', '宿州市', '341323', '灵璧县', '', '', '', '', 3, 1, ''), ('341324', '3413', '00,34,3413', '泗县', '34', '安徽省', '3413', '宿州市', '341324', '泗县', '', '', '', '', 3, 1, ''), ('3415', '34', '00,34', '六安市', '34', '安徽省', '3415', '六安市', '', '', '', '', '', '', 2, 1, ''), ('341502', '3415', '00,34,3415', '金安区', '34', '安徽省', '3415', '六安市', '341502', '金安区', '', '', '', '', 3, 1, ''), ('341503', '3415', '00,34,3415', '裕安区', '34', '安徽省', '3415', '六安市', '341503', '裕安区', '', '', '', '', 3, 1, ''), ('341504', '3415', '00,34,3415', '叶集区', '34', '安徽省', '3415', '六安市', '341504', '叶集区', '', '', '', '', 3, 1, ''), ('341522', '3415', '00,34,3415', '霍邱县', '34', '安徽省', '3415', '六安市', '341522', '霍邱县', '', '', '', '', 3, 1, ''), ('341523', '3415', '00,34,3415', '舒城县', '34', '安徽省', '3415', '六安市', '341523', '舒城县', '', '', '', '', 3, 1, ''), ('341524', '3415', '00,34,3415', '金寨县', '34', '安徽省', '3415', '六安市', '341524', '金寨县', '', '', '', '', 3, 1, ''), ('341525', '3415', '00,34,3415', '霍山县', '34', '安徽省', '3415', '六安市', '341525', '霍山县', '', '', '', '', 3, 1, ''), ('3416', '34', '00,34', '亳州市', '34', '安徽省', '3416', '亳州市', '', '', '', '', '', '', 2, 1, ''), ('341602', '3416', '00,34,3416', '谯城区', '34', '安徽省', '3416', '亳州市', '341602', '谯城区', '', '', '', '', 3, 1, ''), ('341621', '3416', '00,34,3416', '涡阳县', '34', '安徽省', '3416', '亳州市', '341621', '涡阳县', '', '', '', '', 3, 1, ''), ('341622', '3416', '00,34,3416', '蒙城县', '34', '安徽省', '3416', '亳州市', '341622', '蒙城县', '', '', '', '', 3, 1, ''), ('341623', '3416', '00,34,3416', '利辛县', '34', '安徽省', '3416', '亳州市', '341623', '利辛县', '', '', '', '', 3, 1, ''), ('3417', '34', '00,34', '池州市', '34', '安徽省', '3417', '池州市', '', '', '', '', '', '', 2, 1, ''), ('341702', '3417', '00,34,3417', '贵池区', '34', '安徽省', '3417', '池州市', '341702', '贵池区', '', '', '', '', 3, 1, ''), ('341721', '3417', '00,34,3417', '东至县', '34', '安徽省', '3417', '池州市', '341721', '东至县', '', '', '', '', 3, 1, ''), ('341722', '3417', '00,34,3417', '石台县', '34', '安徽省', '3417', '池州市', '341722', '石台县', '', '', '', '', 3, 1, ''), ('341723', '3417', '00,34,3417', '青阳县', '34', '安徽省', '3417', '池州市', '341723', '青阳县', '', '', '', '', 3, 1, ''), ('3418', '34', '00,34', '宣城市', '34', '安徽省', '3418', '宣城市', '', '', '', '', '', '', 2, 1, ''), ('341802', '3418', '00,34,3418', '宣州区', '34', '安徽省', '3418', '宣城市', '341802', '宣州区', '', '', '', '', 3, 1, ''), ('341821', '3418', '00,34,3418', '郎溪县', '34', '安徽省', '3418', '宣城市', '341821', '郎溪县', '', '', '', '', 3, 1, ''), ('341823', '3418', '00,34,3418', '泾县', '34', '安徽省', '3418', '宣城市', '341823', '泾县', '', '', '', '', 3, 1, ''), ('341824', '3418', '00,34,3418', '绩溪县', '34', '安徽省', '3418', '宣城市', '341824', '绩溪县', '', '', '', '', 3, 1, ''), ('341825', '3418', '00,34,3418', '旌德县', '34', '安徽省', '3418', '宣城市', '341825', '旌德县', '', '', '', '', 3, 1, ''), ('341881', '3418', '00,34,3418', '宁国市', '34', '安徽省', '3418', '宣城市', '341881', '宁国市', '', '', '', '', 3, 1, ''), ('341882', '3418', '00,34,3418', '广德市', '34', '安徽省', '3418', '宣城市', '341882', '广德市', '', '', '', '', 3, 1, ''), ('35', '00', '00', '福建省', '35', '福建省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3501', '35', '00,35', '福州市', '35', '福建省', '3501', '福州市', '', '', '', '', '', '', 2, 1, ''), ('350102', '3501', '00,35,3501', '鼓楼区', '35', '福建省', '3501', '福州市', '350102', '鼓楼区', '', '', '', '', 3, 1, ''), ('350103', '3501', '00,35,3501', '台江区', '35', '福建省', '3501', '福州市', '350103', '台江区', '', '', '', '', 3, 1, ''), ('350104', '3501', '00,35,3501', '仓山区', '35', '福建省', '3501', '福州市', '350104', '仓山区', '', '', '', '', 3, 1, ''), ('350105', '3501', '00,35,3501', '马尾区', '35', '福建省', '3501', '福州市', '350105', '马尾区', '', '', '', '', 3, 1, ''), ('350111', '3501', '00,35,3501', '晋安区', '35', '福建省', '3501', '福州市', '350111', '晋安区', '', '', '', '', 3, 1, ''), ('350112', '3501', '00,35,3501', '长乐区', '35', '福建省', '3501', '福州市', '350112', '长乐区', '', '', '', '', 3, 1, ''), ('350121', '3501', '00,35,3501', '闽侯县', '35', '福建省', '3501', '福州市', '350121', '闽侯县', '', '', '', '', 3, 1, ''), ('350122', '3501', '00,35,3501', '连江县', '35', '福建省', '3501', '福州市', '350122', '连江县', '', '', '', '', 3, 1, ''), ('350123', '3501', '00,35,3501', '罗源县', '35', '福建省', '3501', '福州市', '350123', '罗源县', '', '', '', '', 3, 1, ''), ('350124', '3501', '00,35,3501', '闽清县', '35', '福建省', '3501', '福州市', '350124', '闽清县', '', '', '', '', 3, 1, ''), ('350125', '3501', '00,35,3501', '永泰县', '35', '福建省', '3501', '福州市', '350125', '永泰县', '', '', '', '', 3, 1, ''), ('350128', '3501', '00,35,3501', '平潭县', '35', '福建省', '3501', '福州市', '350128', '平潭县', '', '', '', '', 3, 1, ''), ('350181', '3501', '00,35,3501', '福清市', '35', '福建省', '3501', '福州市', '350181', '福清市', '', '', '', '', 3, 1, ''), ('3502', '35', '00,35', '厦门市', '35', '福建省', '3502', '厦门市', '', '', '', '', '', '', 2, 1, ''), ('350203', '3502', '00,35,3502', '思明区', '35', '福建省', '3502', '厦门市', '350203', '思明区', '', '', '', '', 3, 1, ''), ('350205', '3502', '00,35,3502', '海沧区', '35', '福建省', '3502', '厦门市', '350205', '海沧区', '', '', '', '', 3, 1, ''), ('350206', '3502', '00,35,3502', '湖里区', '35', '福建省', '3502', '厦门市', '350206', '湖里区', '', '', '', '', 3, 1, ''), ('350211', '3502', '00,35,3502', '集美区', '35', '福建省', '3502', '厦门市', '350211', '集美区', '', '', '', '', 3, 1, ''), ('350212', '3502', '00,35,3502', '同安区', '35', '福建省', '3502', '厦门市', '350212', '同安区', '', '', '', '', 3, 1, ''), ('350213', '3502', '00,35,3502', '翔安区', '35', '福建省', '3502', '厦门市', '350213', '翔安区', '', '', '', '', 3, 1, ''), ('3503', '35', '00,35', '莆田市', '35', '福建省', '3503', '莆田市', '', '', '', '', '', '', 2, 1, ''), ('350302', '3503', '00,35,3503', '城厢区', '35', '福建省', '3503', '莆田市', '350302', '城厢区', '', '', '', '', 3, 1, ''), ('350303', '3503', '00,35,3503', '涵江区', '35', '福建省', '3503', '莆田市', '350303', '涵江区', '', '', '', '', 3, 1, ''), ('350304', '3503', '00,35,3503', '荔城区', '35', '福建省', '3503', '莆田市', '350304', '荔城区', '', '', '', '', 3, 1, ''), ('350305', '3503', '00,35,3503', '秀屿区', '35', '福建省', '3503', '莆田市', '350305', '秀屿区', '', '', '', '', 3, 1, ''), ('350322', '3503', '00,35,3503', '仙游县', '35', '福建省', '3503', '莆田市', '350322', '仙游县', '', '', '', '', 3, 1, ''), ('3504', '35', '00,35', '三明市', '35', '福建省', '3504', '三明市', '', '', '', '', '', '', 2, 1, ''), ('350402', '3504', '00,35,3504', '梅列区', '35', '福建省', '3504', '三明市', '350402', '梅列区', '', '', '', '', 3, 1, ''), ('350403', '3504', '00,35,3504', '三元区', '35', '福建省', '3504', '三明市', '350403', '三元区', '', '', '', '', 3, 1, ''), ('350421', '3504', '00,35,3504', '明溪县', '35', '福建省', '3504', '三明市', '350421', '明溪县', '', '', '', '', 3, 1, ''), ('350423', '3504', '00,35,3504', '清流县', '35', '福建省', '3504', '三明市', '350423', '清流县', '', '', '', '', 3, 1, ''), ('350424', '3504', '00,35,3504', '宁化县', '35', '福建省', '3504', '三明市', '350424', '宁化县', '', '', '', '', 3, 1, ''), ('350425', '3504', '00,35,3504', '大田县', '35', '福建省', '3504', '三明市', '350425', '大田县', '', '', '', '', 3, 1, ''), ('350426', '3504', '00,35,3504', '尤溪县', '35', '福建省', '3504', '三明市', '350426', '尤溪县', '', '', '', '', 3, 1, ''), ('350427', '3504', '00,35,3504', '沙县', '35', '福建省', '3504', '三明市', '350427', '沙县', '', '', '', '', 3, 1, ''), ('350428', '3504', '00,35,3504', '将乐县', '35', '福建省', '3504', '三明市', '350428', '将乐县', '', '', '', '', 3, 1, ''), ('350429', '3504', '00,35,3504', '泰宁县', '35', '福建省', '3504', '三明市', '350429', '泰宁县', '', '', '', '', 3, 1, ''), ('350430', '3504', '00,35,3504', '建宁县', '35', '福建省', '3504', '三明市', '350430', '建宁县', '', '', '', '', 3, 1, ''), ('350481', '3504', '00,35,3504', '永安市', '35', '福建省', '3504', '三明市', '350481', '永安市', '', '', '', '', 3, 1, ''), ('3505', '35', '00,35', '泉州市', '35', '福建省', '3505', '泉州市', '', '', '', '', '', '', 2, 1, ''), ('350502', '3505', '00,35,3505', '鲤城区', '35', '福建省', '3505', '泉州市', '350502', '鲤城区', '', '', '', '', 3, 1, ''), ('350503', '3505', '00,35,3505', '丰泽区', '35', '福建省', '3505', '泉州市', '350503', '丰泽区', '', '', '', '', 3, 1, ''), ('350504', '3505', '00,35,3505', '洛江区', '35', '福建省', '3505', '泉州市', '350504', '洛江区', '', '', '', '', 3, 1, ''), ('350505', '3505', '00,35,3505', '泉港区', '35', '福建省', '3505', '泉州市', '350505', '泉港区', '', '', '', '', 3, 1, ''), ('350521', '3505', '00,35,3505', '惠安县', '35', '福建省', '3505', '泉州市', '350521', '惠安县', '', '', '', '', 3, 1, ''), ('350524', '3505', '00,35,3505', '安溪县', '35', '福建省', '3505', '泉州市', '350524', '安溪县', '', '', '', '', 3, 1, ''), ('350525', '3505', '00,35,3505', '永春县', '35', '福建省', '3505', '泉州市', '350525', '永春县', '', '', '', '', 3, 1, ''), ('350526', '3505', '00,35,3505', '德化县', '35', '福建省', '3505', '泉州市', '350526', '德化县', '', '', '', '', 3, 1, ''), ('350527', '3505', '00,35,3505', '金门县', '35', '福建省', '3505', '泉州市', '350527', '金门县', '', '', '', '', 3, 1, ''), ('350581', '3505', '00,35,3505', '石狮市', '35', '福建省', '3505', '泉州市', '350581', '石狮市', '', '', '', '', 3, 1, ''), ('350582', '3505', '00,35,3505', '晋江市', '35', '福建省', '3505', '泉州市', '350582', '晋江市', '', '', '', '', 3, 1, ''), ('350583', '3505', '00,35,3505', '南安市', '35', '福建省', '3505', '泉州市', '350583', '南安市', '', '', '', '', 3, 1, ''), ('3506', '35', '00,35', '漳州市', '35', '福建省', '3506', '漳州市', '', '', '', '', '', '', 2, 1, ''), ('350602', '3506', '00,35,3506', '芗城区', '35', '福建省', '3506', '漳州市', '350602', '芗城区', '', '', '', '', 3, 1, ''), ('350603', '3506', '00,35,3506', '龙文区', '35', '福建省', '3506', '漳州市', '350603', '龙文区', '', '', '', '', 3, 1, ''), ('350622', '3506', '00,35,3506', '云霄县', '35', '福建省', '3506', '漳州市', '350622', '云霄县', '', '', '', '', 3, 1, ''), ('350623', '3506', '00,35,3506', '漳浦县', '35', '福建省', '3506', '漳州市', '350623', '漳浦县', '', '', '', '', 3, 1, ''), ('350624', '3506', '00,35,3506', '诏安县', '35', '福建省', '3506', '漳州市', '350624', '诏安县', '', '', '', '', 3, 1, ''), ('350625', '3506', '00,35,3506', '长泰县', '35', '福建省', '3506', '漳州市', '350625', '长泰县', '', '', '', '', 3, 1, ''), ('350626', '3506', '00,35,3506', '东山县', '35', '福建省', '3506', '漳州市', '350626', '东山县', '', '', '', '', 3, 1, ''), ('350627', '3506', '00,35,3506', '南靖县', '35', '福建省', '3506', '漳州市', '350627', '南靖县', '', '', '', '', 3, 1, ''), ('350628', '3506', '00,35,3506', '平和县', '35', '福建省', '3506', '漳州市', '350628', '平和县', '', '', '', '', 3, 1, ''), ('350629', '3506', '00,35,3506', '华安县', '35', '福建省', '3506', '漳州市', '350629', '华安县', '', '', '', '', 3, 1, ''), ('350681', '3506', '00,35,3506', '龙海市', '35', '福建省', '3506', '漳州市', '350681', '龙海市', '', '', '', '', 3, 1, ''), ('3507', '35', '00,35', '南平市', '35', '福建省', '3507', '南平市', '', '', '', '', '', '', 2, 1, ''), ('350702', '3507', '00,35,3507', '延平区', '35', '福建省', '3507', '南平市', '350702', '延平区', '', '', '', '', 3, 1, ''), ('350703', '3507', '00,35,3507', '建阳区', '35', '福建省', '3507', '南平市', '350703', '建阳区', '', '', '', '', 3, 1, ''), ('350721', '3507', '00,35,3507', '顺昌县', '35', '福建省', '3507', '南平市', '350721', '顺昌县', '', '', '', '', 3, 1, ''), ('350722', '3507', '00,35,3507', '浦城县', '35', '福建省', '3507', '南平市', '350722', '浦城县', '', '', '', '', 3, 1, ''), ('350723', '3507', '00,35,3507', '光泽县', '35', '福建省', '3507', '南平市', '350723', '光泽县', '', '', '', '', 3, 1, ''), ('350724', '3507', '00,35,3507', '松溪县', '35', '福建省', '3507', '南平市', '350724', '松溪县', '', '', '', '', 3, 1, ''), ('350725', '3507', '00,35,3507', '政和县', '35', '福建省', '3507', '南平市', '350725', '政和县', '', '', '', '', 3, 1, ''), ('350781', '3507', '00,35,3507', '邵武市', '35', '福建省', '3507', '南平市', '350781', '邵武市', '', '', '', '', 3, 1, ''), ('350782', '3507', '00,35,3507', '武夷山市', '35', '福建省', '3507', '南平市', '350782', '武夷山市', '', '', '', '', 3, 1, ''), ('350783', '3507', '00,35,3507', '建瓯市', '35', '福建省', '3507', '南平市', '350783', '建瓯市', '', '', '', '', 3, 1, ''), ('3508', '35', '00,35', '龙岩市', '35', '福建省', '3508', '龙岩市', '', '', '', '', '', '', 2, 1, ''), ('350802', '3508', '00,35,3508', '新罗区', '35', '福建省', '3508', '龙岩市', '350802', '新罗区', '', '', '', '', 3, 1, ''), ('350803', '3508', '00,35,3508', '永定区', '35', '福建省', '3508', '龙岩市', '350803', '永定区', '', '', '', '', 3, 1, ''), ('350821', '3508', '00,35,3508', '长汀县', '35', '福建省', '3508', '龙岩市', '350821', '长汀县', '', '', '', '', 3, 1, ''), ('350823', '3508', '00,35,3508', '上杭县', '35', '福建省', '3508', '龙岩市', '350823', '上杭县', '', '', '', '', 3, 1, ''), ('350824', '3508', '00,35,3508', '武平县', '35', '福建省', '3508', '龙岩市', '350824', '武平县', '', '', '', '', 3, 1, ''), ('350825', '3508', '00,35,3508', '连城县', '35', '福建省', '3508', '龙岩市', '350825', '连城县', '', '', '', '', 3, 1, ''), ('350881', '3508', '00,35,3508', '漳平市', '35', '福建省', '3508', '龙岩市', '350881', '漳平市', '', '', '', '', 3, 1, ''), ('3509', '35', '00,35', '宁德市', '35', '福建省', '3509', '宁德市', '', '', '', '', '', '', 2, 1, ''), ('350902', '3509', '00,35,3509', '蕉城区', '35', '福建省', '3509', '宁德市', '350902', '蕉城区', '', '', '', '', 3, 1, ''), ('350921', '3509', '00,35,3509', '霞浦县', '35', '福建省', '3509', '宁德市', '350921', '霞浦县', '', '', '', '', 3, 1, ''), ('350922', '3509', '00,35,3509', '古田县', '35', '福建省', '3509', '宁德市', '350922', '古田县', '', '', '', '', 3, 1, ''), ('350923', '3509', '00,35,3509', '屏南县', '35', '福建省', '3509', '宁德市', '350923', '屏南县', '', '', '', '', 3, 1, ''), ('350924', '3509', '00,35,3509', '寿宁县', '35', '福建省', '3509', '宁德市', '350924', '寿宁县', '', '', '', '', 3, 1, ''), ('350925', '3509', '00,35,3509', '周宁县', '35', '福建省', '3509', '宁德市', '350925', '周宁县', '', '', '', '', 3, 1, ''), ('350926', '3509', '00,35,3509', '柘荣县', '35', '福建省', '3509', '宁德市', '350926', '柘荣县', '', '', '', '', 3, 1, ''), ('350981', '3509', '00,35,3509', '福安市', '35', '福建省', '3509', '宁德市', '350981', '福安市', '', '', '', '', 3, 1, ''), ('350982', '3509', '00,35,3509', '福鼎市', '35', '福建省', '3509', '宁德市', '350982', '福鼎市', '', '', '', '', 3, 1, ''), ('36', '00', '00', '江西省', '36', '江西省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3601', '36', '00,36', '南昌市', '36', '江西省', '3601', '南昌市', '', '', '', '', '', '', 2, 1, ''), ('360102', '3601', '00,36,3601', '东湖区', '36', '江西省', '3601', '南昌市', '360102', '东湖区', '', '', '', '', 3, 1, ''), ('360103', '3601', '00,36,3601', '西湖区', '36', '江西省', '3601', '南昌市', '360103', '西湖区', '', '', '', '', 3, 1, ''), ('360104', '3601', '00,36,3601', '青云谱区', '36', '江西省', '3601', '南昌市', '360104', '青云谱区', '', '', '', '', 3, 1, ''), ('360111', '3601', '00,36,3601', '青山湖区', '36', '江西省', '3601', '南昌市', '360111', '青山湖区', '', '', '', '', 3, 1, ''), ('360112', '3601', '00,36,3601', '新建区', '36', '江西省', '3601', '南昌市', '360112', '新建区', '', '', '', '', 3, 1, ''), ('360113', '3601', '00,36,3601', '红谷滩区', '36', '江西省', '3601', '南昌市', '360113', '红谷滩区', '', '', '', '', 3, 1, ''), ('360121', '3601', '00,36,3601', '南昌县', '36', '江西省', '3601', '南昌市', '360121', '南昌县', '', '', '', '', 3, 1, ''), ('360123', '3601', '00,36,3601', '安义县', '36', '江西省', '3601', '南昌市', '360123', '安义县', '', '', '', '', 3, 1, ''), ('360124', '3601', '00,36,3601', '进贤县', '36', '江西省', '3601', '南昌市', '360124', '进贤县', '', '', '', '', 3, 1, ''), ('3602', '36', '00,36', '景德镇市', '36', '江西省', '3602', '景德镇市', '', '', '', '', '', '', 2, 1, ''), ('360202', '3602', '00,36,3602', '昌江区', '36', '江西省', '3602', '景德镇市', '360202', '昌江区', '', '', '', '', 3, 1, ''), ('360203', '3602', '00,36,3602', '珠山区', '36', '江西省', '3602', '景德镇市', '360203', '珠山区', '', '', '', '', 3, 1, ''), ('360222', '3602', '00,36,3602', '浮梁县', '36', '江西省', '3602', '景德镇市', '360222', '浮梁县', '', '', '', '', 3, 1, ''), ('360281', '3602', '00,36,3602', '乐平市', '36', '江西省', '3602', '景德镇市', '360281', '乐平市', '', '', '', '', 3, 1, ''), ('3603', '36', '00,36', '萍乡市', '36', '江西省', '3603', '萍乡市', '', '', '', '', '', '', 2, 1, ''), ('360302', '3603', '00,36,3603', '安源区', '36', '江西省', '3603', '萍乡市', '360302', '安源区', '', '', '', '', 3, 1, ''), ('360313', '3603', '00,36,3603', '湘东区', '36', '江西省', '3603', '萍乡市', '360313', '湘东区', '', '', '', '', 3, 1, ''), ('360321', '3603', '00,36,3603', '莲花县', '36', '江西省', '3603', '萍乡市', '360321', '莲花县', '', '', '', '', 3, 1, ''), ('360322', '3603', '00,36,3603', '上栗县', '36', '江西省', '3603', '萍乡市', '360322', '上栗县', '', '', '', '', 3, 1, ''), ('360323', '3603', '00,36,3603', '芦溪县', '36', '江西省', '3603', '萍乡市', '360323', '芦溪县', '', '', '', '', 3, 1, ''), ('3604', '36', '00,36', '九江市', '36', '江西省', '3604', '九江市', '', '', '', '', '', '', 2, 1, ''), ('360402', '3604', '00,36,3604', '濂溪区', '36', '江西省', '3604', '九江市', '360402', '濂溪区', '', '', '', '', 3, 1, ''), ('360403', '3604', '00,36,3604', '浔阳区', '36', '江西省', '3604', '九江市', '360403', '浔阳区', '', '', '', '', 3, 1, ''), ('360404', '3604', '00,36,3604', '柴桑区', '36', '江西省', '3604', '九江市', '360404', '柴桑区', '', '', '', '', 3, 1, ''), ('360423', '3604', '00,36,3604', '武宁县', '36', '江西省', '3604', '九江市', '360423', '武宁县', '', '', '', '', 3, 1, ''), ('360424', '3604', '00,36,3604', '修水县', '36', '江西省', '3604', '九江市', '360424', '修水县', '', '', '', '', 3, 1, ''), ('360425', '3604', '00,36,3604', '永修县', '36', '江西省', '3604', '九江市', '360425', '永修县', '', '', '', '', 3, 1, ''), ('360426', '3604', '00,36,3604', '德安县', '36', '江西省', '3604', '九江市', '360426', '德安县', '', '', '', '', 3, 1, ''), ('360428', '3604', '00,36,3604', '都昌县', '36', '江西省', '3604', '九江市', '360428', '都昌县', '', '', '', '', 3, 1, ''), ('360429', '3604', '00,36,3604', '湖口县', '36', '江西省', '3604', '九江市', '360429', '湖口县', '', '', '', '', 3, 1, ''), ('360430', '3604', '00,36,3604', '彭泽县', '36', '江西省', '3604', '九江市', '360430', '彭泽县', '', '', '', '', 3, 1, ''), ('360481', '3604', '00,36,3604', '瑞昌市', '36', '江西省', '3604', '九江市', '360481', '瑞昌市', '', '', '', '', 3, 1, ''), ('360482', '3604', '00,36,3604', '共青城市', '36', '江西省', '3604', '九江市', '360482', '共青城市', '', '', '', '', 3, 1, ''), ('360483', '3604', '00,36,3604', '庐山市', '36', '江西省', '3604', '九江市', '360483', '庐山市', '', '', '', '', 3, 1, ''), ('3605', '36', '00,36', '新余市', '36', '江西省', '3605', '新余市', '', '', '', '', '', '', 2, 1, ''), ('360502', '3605', '00,36,3605', '渝水区', '36', '江西省', '3605', '新余市', '360502', '渝水区', '', '', '', '', 3, 1, ''), ('360521', '3605', '00,36,3605', '分宜县', '36', '江西省', '3605', '新余市', '360521', '分宜县', '', '', '', '', 3, 1, ''), ('3606', '36', '00,36', '鹰潭市', '36', '江西省', '3606', '鹰潭市', '', '', '', '', '', '', 2, 1, ''), ('360602', '3606', '00,36,3606', '月湖区', '36', '江西省', '3606', '鹰潭市', '360602', '月湖区', '', '', '', '', 3, 1, ''), ('360603', '3606', '00,36,3606', '余江区', '36', '江西省', '3606', '鹰潭市', '360603', '余江区', '', '', '', '', 3, 1, ''), ('360681', '3606', '00,36,3606', '贵溪市', '36', '江西省', '3606', '鹰潭市', '360681', '贵溪市', '', '', '', '', 3, 1, ''), ('3607', '36', '00,36', '赣州市', '36', '江西省', '3607', '赣州市', '', '', '', '', '', '', 2, 1, ''), ('360702', '3607', '00,36,3607', '章贡区', '36', '江西省', '3607', '赣州市', '360702', '章贡区', '', '', '', '', 3, 1, ''), ('360703', '3607', '00,36,3607', '南康区', '36', '江西省', '3607', '赣州市', '360703', '南康区', '', '', '', '', 3, 1, ''), ('360704', '3607', '00,36,3607', '赣县区', '36', '江西省', '3607', '赣州市', '360704', '赣县区', '', '', '', '', 3, 1, ''), ('360722', '3607', '00,36,3607', '信丰县', '36', '江西省', '3607', '赣州市', '360722', '信丰县', '', '', '', '', 3, 1, ''), ('360723', '3607', '00,36,3607', '大余县', '36', '江西省', '3607', '赣州市', '360723', '大余县', '', '', '', '', 3, 1, ''), ('360724', '3607', '00,36,3607', '上犹县', '36', '江西省', '3607', '赣州市', '360724', '上犹县', '', '', '', '', 3, 1, ''), ('360725', '3607', '00,36,3607', '崇义县', '36', '江西省', '3607', '赣州市', '360725', '崇义县', '', '', '', '', 3, 1, ''), ('360726', '3607', '00,36,3607', '安远县', '36', '江西省', '3607', '赣州市', '360726', '安远县', '', '', '', '', 3, 1, ''), ('360727', '3607', '00,36,3607', '龙南县', '36', '江西省', '3607', '赣州市', '360727', '龙南县', '', '', '', '', 3, 1, ''), ('360728', '3607', '00,36,3607', '定南县', '36', '江西省', '3607', '赣州市', '360728', '定南县', '', '', '', '', 3, 1, ''), ('360729', '3607', '00,36,3607', '全南县', '36', '江西省', '3607', '赣州市', '360729', '全南县', '', '', '', '', 3, 1, ''), ('360730', '3607', '00,36,3607', '宁都县', '36', '江西省', '3607', '赣州市', '360730', '宁都县', '', '', '', '', 3, 1, ''), ('360731', '3607', '00,36,3607', '于都县', '36', '江西省', '3607', '赣州市', '360731', '于都县', '', '', '', '', 3, 1, ''), ('360732', '3607', '00,36,3607', '兴国县', '36', '江西省', '3607', '赣州市', '360732', '兴国县', '', '', '', '', 3, 1, ''), ('360733', '3607', '00,36,3607', '会昌县', '36', '江西省', '3607', '赣州市', '360733', '会昌县', '', '', '', '', 3, 1, ''), ('360734', '3607', '00,36,3607', '寻乌县', '36', '江西省', '3607', '赣州市', '360734', '寻乌县', '', '', '', '', 3, 1, ''), ('360735', '3607', '00,36,3607', '石城县', '36', '江西省', '3607', '赣州市', '360735', '石城县', '', '', '', '', 3, 1, ''), ('360781', '3607', '00,36,3607', '瑞金市', '36', '江西省', '3607', '赣州市', '360781', '瑞金市', '', '', '', '', 3, 1, ''), ('3608', '36', '00,36', '吉安市', '36', '江西省', '3608', '吉安市', '', '', '', '', '', '', 2, 1, ''), ('360802', '3608', '00,36,3608', '吉州区', '36', '江西省', '3608', '吉安市', '360802', '吉州区', '', '', '', '', 3, 1, ''), ('360803', '3608', '00,36,3608', '青原区', '36', '江西省', '3608', '吉安市', '360803', '青原区', '', '', '', '', 3, 1, ''), ('360821', '3608', '00,36,3608', '吉安县', '36', '江西省', '3608', '吉安市', '360821', '吉安县', '', '', '', '', 3, 1, ''), ('360822', '3608', '00,36,3608', '吉水县', '36', '江西省', '3608', '吉安市', '360822', '吉水县', '', '', '', '', 3, 1, ''), ('360823', '3608', '00,36,3608', '峡江县', '36', '江西省', '3608', '吉安市', '360823', '峡江县', '', '', '', '', 3, 1, ''), ('360824', '3608', '00,36,3608', '新干县', '36', '江西省', '3608', '吉安市', '360824', '新干县', '', '', '', '', 3, 1, ''), ('360825', '3608', '00,36,3608', '永丰县', '36', '江西省', '3608', '吉安市', '360825', '永丰县', '', '', '', '', 3, 1, ''), ('360826', '3608', '00,36,3608', '泰和县', '36', '江西省', '3608', '吉安市', '360826', '泰和县', '', '', '', '', 3, 1, ''), ('360827', '3608', '00,36,3608', '遂川县', '36', '江西省', '3608', '吉安市', '360827', '遂川县', '', '', '', '', 3, 1, ''), ('360828', '3608', '00,36,3608', '万安县', '36', '江西省', '3608', '吉安市', '360828', '万安县', '', '', '', '', 3, 1, ''), ('360829', '3608', '00,36,3608', '安福县', '36', '江西省', '3608', '吉安市', '360829', '安福县', '', '', '', '', 3, 1, ''), ('360830', '3608', '00,36,3608', '永新县', '36', '江西省', '3608', '吉安市', '360830', '永新县', '', '', '', '', 3, 1, ''), ('360881', '3608', '00,36,3608', '井冈山市', '36', '江西省', '3608', '吉安市', '360881', '井冈山市', '', '', '', '', 3, 1, ''), ('3609', '36', '00,36', '宜春市', '36', '江西省', '3609', '宜春市', '', '', '', '', '', '', 2, 1, ''), ('360902', '3609', '00,36,3609', '袁州区', '36', '江西省', '3609', '宜春市', '360902', '袁州区', '', '', '', '', 3, 1, ''), ('360921', '3609', '00,36,3609', '奉新县', '36', '江西省', '3609', '宜春市', '360921', '奉新县', '', '', '', '', 3, 1, ''), ('360922', '3609', '00,36,3609', '万载县', '36', '江西省', '3609', '宜春市', '360922', '万载县', '', '', '', '', 3, 1, ''), ('360923', '3609', '00,36,3609', '上高县', '36', '江西省', '3609', '宜春市', '360923', '上高县', '', '', '', '', 3, 1, ''), ('360924', '3609', '00,36,3609', '宜丰县', '36', '江西省', '3609', '宜春市', '360924', '宜丰县', '', '', '', '', 3, 1, ''), ('360925', '3609', '00,36,3609', '靖安县', '36', '江西省', '3609', '宜春市', '360925', '靖安县', '', '', '', '', 3, 1, ''), ('360926', '3609', '00,36,3609', '铜鼓县', '36', '江西省', '3609', '宜春市', '360926', '铜鼓县', '', '', '', '', 3, 1, ''), ('360981', '3609', '00,36,3609', '丰城市', '36', '江西省', '3609', '宜春市', '360981', '丰城市', '', '', '', '', 3, 1, ''), ('360982', '3609', '00,36,3609', '樟树市', '36', '江西省', '3609', '宜春市', '360982', '樟树市', '', '', '', '', 3, 1, ''), ('360983', '3609', '00,36,3609', '高安市', '36', '江西省', '3609', '宜春市', '360983', '高安市', '', '', '', '', 3, 1, ''), ('3610', '36', '00,36', '抚州市', '36', '江西省', '3610', '抚州市', '', '', '', '', '', '', 2, 1, ''), ('361002', '3610', '00,36,3610', '临川区', '36', '江西省', '3610', '抚州市', '361002', '临川区', '', '', '', '', 3, 1, ''), ('361003', '3610', '00,36,3610', '东乡区', '36', '江西省', '3610', '抚州市', '361003', '东乡区', '', '', '', '', 3, 1, ''), ('361021', '3610', '00,36,3610', '南城县', '36', '江西省', '3610', '抚州市', '361021', '南城县', '', '', '', '', 3, 1, ''), ('361022', '3610', '00,36,3610', '黎川县', '36', '江西省', '3610', '抚州市', '361022', '黎川县', '', '', '', '', 3, 1, ''), ('361023', '3610', '00,36,3610', '南丰县', '36', '江西省', '3610', '抚州市', '361023', '南丰县', '', '', '', '', 3, 1, ''), ('361024', '3610', '00,36,3610', '崇仁县', '36', '江西省', '3610', '抚州市', '361024', '崇仁县', '', '', '', '', 3, 1, ''), ('361025', '3610', '00,36,3610', '乐安县', '36', '江西省', '3610', '抚州市', '361025', '乐安县', '', '', '', '', 3, 1, ''), ('361026', '3610', '00,36,3610', '宜黄县', '36', '江西省', '3610', '抚州市', '361026', '宜黄县', '', '', '', '', 3, 1, ''), ('361027', '3610', '00,36,3610', '金溪县', '36', '江西省', '3610', '抚州市', '361027', '金溪县', '', '', '', '', 3, 1, ''), ('361028', '3610', '00,36,3610', '资溪县', '36', '江西省', '3610', '抚州市', '361028', '资溪县', '', '', '', '', 3, 1, ''), ('361030', '3610', '00,36,3610', '广昌县', '36', '江西省', '3610', '抚州市', '361030', '广昌县', '', '', '', '', 3, 1, ''), ('3611', '36', '00,36', '上饶市', '36', '江西省', '3611', '上饶市', '', '', '', '', '', '', 2, 1, ''), ('361102', '3611', '00,36,3611', '信州区', '36', '江西省', '3611', '上饶市', '361102', '信州区', '', '', '', '', 3, 1, ''), ('361103', '3611', '00,36,3611', '广丰区', '36', '江西省', '3611', '上饶市', '361103', '广丰区', '', '', '', '', 3, 1, ''), ('361104', '3611', '00,36,3611', '广信区', '36', '江西省', '3611', '上饶市', '361104', '广信区', '', '', '', '', 3, 1, ''), ('361123', '3611', '00,36,3611', '玉山县', '36', '江西省', '3611', '上饶市', '361123', '玉山县', '', '', '', '', 3, 1, ''), ('361124', '3611', '00,36,3611', '铅山县', '36', '江西省', '3611', '上饶市', '361124', '铅山县', '', '', '', '', 3, 1, ''), ('361125', '3611', '00,36,3611', '横峰县', '36', '江西省', '3611', '上饶市', '361125', '横峰县', '', '', '', '', 3, 1, ''), ('361126', '3611', '00,36,3611', '弋阳县', '36', '江西省', '3611', '上饶市', '361126', '弋阳县', '', '', '', '', 3, 1, ''), ('361127', '3611', '00,36,3611', '余干县', '36', '江西省', '3611', '上饶市', '361127', '余干县', '', '', '', '', 3, 1, ''), ('361128', '3611', '00,36,3611', '鄱阳县', '36', '江西省', '3611', '上饶市', '361128', '鄱阳县', '', '', '', '', 3, 1, ''), ('361129', '3611', '00,36,3611', '万年县', '36', '江西省', '3611', '上饶市', '361129', '万年县', '', '', '', '', 3, 1, ''), ('361130', '3611', '00,36,3611', '婺源县', '36', '江西省', '3611', '上饶市', '361130', '婺源县', '', '', '', '', 3, 1, ''), ('361181', '3611', '00,36,3611', '德兴市', '36', '江西省', '3611', '上饶市', '361181', '德兴市', '', '', '', '', 3, 1, ''), ('37', '00', '00', '山东省', '37', '山东省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3701', '37', '00,37', '济南市', '37', '山东省', '3701', '济南市', '', '', '', '', '', '', 2, 1, ''), ('370102', '3701', '00,37,3701', '历下区', '37', '山东省', '3701', '济南市', '370102', '历下区', '', '', '', '', 3, 1, ''), ('370103', '3701', '00,37,3701', '市中区', '37', '山东省', '3701', '济南市', '370103', '市中区', '', '', '', '', 3, 1, ''), ('370104', '3701', '00,37,3701', '槐荫区', '37', '山东省', '3701', '济南市', '370104', '槐荫区', '', '', '', '', 3, 1, ''), ('370105', '3701', '00,37,3701', '天桥区', '37', '山东省', '3701', '济南市', '370105', '天桥区', '', '', '', '', 3, 1, ''), ('370112', '3701', '00,37,3701', '历城区', '37', '山东省', '3701', '济南市', '370112', '历城区', '', '', '', '', 3, 1, ''), ('370113', '3701', '00,37,3701', '长清区', '37', '山东省', '3701', '济南市', '370113', '长清区', '', '', '', '', 3, 1, ''), ('370114', '3701', '00,37,3701', '章丘区', '37', '山东省', '3701', '济南市', '370114', '章丘区', '', '', '', '', 3, 1, ''), ('370115', '3701', '00,37,3701', '济阳区', '37', '山东省', '3701', '济南市', '370115', '济阳区', '', '', '', '', 3, 1, ''), ('370116', '3701', '00,37,3701', '莱芜区', '37', '山东省', '3701', '济南市', '370116', '莱芜区', '', '', '', '', 3, 1, ''), ('370117', '3701', '00,37,3701', '钢城区', '37', '山东省', '3701', '济南市', '370117', '钢城区', '', '', '', '', 3, 1, ''), ('370124', '3701', '00,37,3701', '平阴县', '37', '山东省', '3701', '济南市', '370124', '平阴县', '', '', '', '', 3, 1, ''), ('370126', '3701', '00,37,3701', '商河县', '37', '山东省', '3701', '济南市', '370126', '商河县', '', '', '', '', 3, 1, ''), ('3702', '37', '00,37', '青岛市', '37', '山东省', '3702', '青岛市', '', '', '', '', '', '', 2, 1, ''), ('370202', '3702', '00,37,3702', '市南区', '37', '山东省', '3702', '青岛市', '370202', '市南区', '', '', '', '', 3, 1, ''), ('370203', '3702', '00,37,3702', '市北区', '37', '山东省', '3702', '青岛市', '370203', '市北区', '', '', '', '', 3, 1, ''), ('370211', '3702', '00,37,3702', '黄岛区', '37', '山东省', '3702', '青岛市', '370211', '黄岛区', '', '', '', '', 3, 1, ''), ('370212', '3702', '00,37,3702', '崂山区', '37', '山东省', '3702', '青岛市', '370212', '崂山区', '', '', '', '', 3, 1, ''), ('370213', '3702', '00,37,3702', '李沧区', '37', '山东省', '3702', '青岛市', '370213', '李沧区', '', '', '', '', 3, 1, ''), ('370214', '3702', '00,37,3702', '城阳区', '37', '山东省', '3702', '青岛市', '370214', '城阳区', '', '', '', '', 3, 1, ''), ('370215', '3702', '00,37,3702', '即墨区', '37', '山东省', '3702', '青岛市', '370215', '即墨区', '', '', '', '', 3, 1, ''), ('370281', '3702', '00,37,3702', '胶州市', '37', '山东省', '3702', '青岛市', '370281', '胶州市', '', '', '', '', 3, 1, ''), ('370283', '3702', '00,37,3702', '平度市', '37', '山东省', '3702', '青岛市', '370283', '平度市', '', '', '', '', 3, 1, ''), ('370285', '3702', '00,37,3702', '莱西市', '37', '山东省', '3702', '青岛市', '370285', '莱西市', '', '', '', '', 3, 1, ''), ('3703', '37', '00,37', '淄博市', '37', '山东省', '3703', '淄博市', '', '', '', '', '', '', 2, 1, ''), ('370302', '3703', '00,37,3703', '淄川区', '37', '山东省', '3703', '淄博市', '370302', '淄川区', '', '', '', '', 3, 1, ''), ('370303', '3703', '00,37,3703', '张店区', '37', '山东省', '3703', '淄博市', '370303', '张店区', '', '', '', '', 3, 1, ''), ('370304', '3703', '00,37,3703', '博山区', '37', '山东省', '3703', '淄博市', '370304', '博山区', '', '', '', '', 3, 1, ''), ('370305', '3703', '00,37,3703', '临淄区', '37', '山东省', '3703', '淄博市', '370305', '临淄区', '', '', '', '', 3, 1, ''), ('370306', '3703', '00,37,3703', '周村区', '37', '山东省', '3703', '淄博市', '370306', '周村区', '', '', '', '', 3, 1, ''), ('370321', '3703', '00,37,3703', '桓台县', '37', '山东省', '3703', '淄博市', '370321', '桓台县', '', '', '', '', 3, 1, ''), ('370322', '3703', '00,37,3703', '高青县', '37', '山东省', '3703', '淄博市', '370322', '高青县', '', '', '', '', 3, 1, ''), ('370323', '3703', '00,37,3703', '沂源县', '37', '山东省', '3703', '淄博市', '370323', '沂源县', '', '', '', '', 3, 1, ''), ('3704', '37', '00,37', '枣庄市', '37', '山东省', '3704', '枣庄市', '', '', '', '', '', '', 2, 1, ''), ('370402', '3704', '00,37,3704', '市中区', '37', '山东省', '3704', '枣庄市', '370402', '市中区', '', '', '', '', 3, 1, ''), ('370403', '3704', '00,37,3704', '薛城区', '37', '山东省', '3704', '枣庄市', '370403', '薛城区', '', '', '', '', 3, 1, ''), ('370404', '3704', '00,37,3704', '峄城区', '37', '山东省', '3704', '枣庄市', '370404', '峄城区', '', '', '', '', 3, 1, ''), ('370405', '3704', '00,37,3704', '台儿庄区', '37', '山东省', '3704', '枣庄市', '370405', '台儿庄区', '', '', '', '', 3, 1, ''), ('370406', '3704', '00,37,3704', '山亭区', '37', '山东省', '3704', '枣庄市', '370406', '山亭区', '', '', '', '', 3, 1, ''), ('370481', '3704', '00,37,3704', '滕州市', '37', '山东省', '3704', '枣庄市', '370481', '滕州市', '', '', '', '', 3, 1, ''), ('3705', '37', '00,37', '东营市', '37', '山东省', '3705', '东营市', '', '', '', '', '', '', 2, 1, ''), ('370502', '3705', '00,37,3705', '东营区', '37', '山东省', '3705', '东营市', '370502', '东营区', '', '', '', '', 3, 1, ''), ('370503', '3705', '00,37,3705', '河口区', '37', '山东省', '3705', '东营市', '370503', '河口区', '', '', '', '', 3, 1, ''), ('370505', '3705', '00,37,3705', '垦利区', '37', '山东省', '3705', '东营市', '370505', '垦利区', '', '', '', '', 3, 1, ''), ('370522', '3705', '00,37,3705', '利津县', '37', '山东省', '3705', '东营市', '370522', '利津县', '', '', '', '', 3, 1, ''), ('370523', '3705', '00,37,3705', '广饶县', '37', '山东省', '3705', '东营市', '370523', '广饶县', '', '', '', '', 3, 1, ''), ('3706', '37', '00,37', '烟台市', '37', '山东省', '3706', '烟台市', '', '', '', '', '', '', 2, 1, ''), ('370602', '3706', '00,37,3706', '芝罘区', '37', '山东省', '3706', '烟台市', '370602', '芝罘区', '', '', '', '', 3, 1, ''), ('370611', '3706', '00,37,3706', '福山区', '37', '山东省', '3706', '烟台市', '370611', '福山区', '', '', '', '', 3, 1, ''), ('370612', '3706', '00,37,3706', '牟平区', '37', '山东省', '3706', '烟台市', '370612', '牟平区', '', '', '', '', 3, 1, ''), ('370613', '3706', '00,37,3706', '莱山区', '37', '山东省', '3706', '烟台市', '370613', '莱山区', '', '', '', '', 3, 1, ''), ('370634', '3706', '00,37,3706', '长岛县', '37', '山东省', '3706', '烟台市', '370634', '长岛县', '', '', '', '', 3, 1, ''), ('370681', '3706', '00,37,3706', '龙口市', '37', '山东省', '3706', '烟台市', '370681', '龙口市', '', '', '', '', 3, 1, ''), ('370682', '3706', '00,37,3706', '莱阳市', '37', '山东省', '3706', '烟台市', '370682', '莱阳市', '', '', '', '', 3, 1, ''), ('370683', '3706', '00,37,3706', '莱州市', '37', '山东省', '3706', '烟台市', '370683', '莱州市', '', '', '', '', 3, 1, ''), ('370684', '3706', '00,37,3706', '蓬莱市', '37', '山东省', '3706', '烟台市', '370684', '蓬莱市', '', '', '', '', 3, 1, ''), ('370685', '3706', '00,37,3706', '招远市', '37', '山东省', '3706', '烟台市', '370685', '招远市', '', '', '', '', 3, 1, ''), ('370686', '3706', '00,37,3706', '栖霞市', '37', '山东省', '3706', '烟台市', '370686', '栖霞市', '', '', '', '', 3, 1, ''), ('370687', '3706', '00,37,3706', '海阳市', '37', '山东省', '3706', '烟台市', '370687', '海阳市', '', '', '', '', 3, 1, ''), ('3707', '37', '00,37', '潍坊市', '37', '山东省', '3707', '潍坊市', '', '', '', '', '', '', 2, 1, ''), ('370702', '3707', '00,37,3707', '潍城区', '37', '山东省', '3707', '潍坊市', '370702', '潍城区', '', '', '', '', 3, 1, ''), ('370703', '3707', '00,37,3707', '寒亭区', '37', '山东省', '3707', '潍坊市', '370703', '寒亭区', '', '', '', '', 3, 1, ''), ('370704', '3707', '00,37,3707', '坊子区', '37', '山东省', '3707', '潍坊市', '370704', '坊子区', '', '', '', '', 3, 1, ''), ('370705', '3707', '00,37,3707', '奎文区', '37', '山东省', '3707', '潍坊市', '370705', '奎文区', '', '', '', '', 3, 1, ''), ('370724', '3707', '00,37,3707', '临朐县', '37', '山东省', '3707', '潍坊市', '370724', '临朐县', '', '', '', '', 3, 1, ''), ('370725', '3707', '00,37,3707', '昌乐县', '37', '山东省', '3707', '潍坊市', '370725', '昌乐县', '', '', '', '', 3, 1, ''), ('370781', '3707', '00,37,3707', '青州市', '37', '山东省', '3707', '潍坊市', '370781', '青州市', '', '', '', '', 3, 1, ''), ('370782', '3707', '00,37,3707', '诸城市', '37', '山东省', '3707', '潍坊市', '370782', '诸城市', '', '', '', '', 3, 1, ''), ('370783', '3707', '00,37,3707', '寿光市', '37', '山东省', '3707', '潍坊市', '370783', '寿光市', '', '', '', '', 3, 1, ''), ('370784', '3707', '00,37,3707', '安丘市', '37', '山东省', '3707', '潍坊市', '370784', '安丘市', '', '', '', '', 3, 1, ''), ('370785', '3707', '00,37,3707', '高密市', '37', '山东省', '3707', '潍坊市', '370785', '高密市', '', '', '', '', 3, 1, ''), ('370786', '3707', '00,37,3707', '昌邑市', '37', '山东省', '3707', '潍坊市', '370786', '昌邑市', '', '', '', '', 3, 1, ''), ('3708', '37', '00,37', '济宁市', '37', '山东省', '3708', '济宁市', '', '', '', '', '', '', 2, 1, ''), ('370811', '3708', '00,37,3708', '任城区', '37', '山东省', '3708', '济宁市', '370811', '任城区', '', '', '', '', 3, 1, ''), ('370812', '3708', '00,37,3708', '兖州区', '37', '山东省', '3708', '济宁市', '370812', '兖州区', '', '', '', '', 3, 1, ''), ('370826', '3708', '00,37,3708', '微山县', '37', '山东省', '3708', '济宁市', '370826', '微山县', '', '', '', '', 3, 1, ''), ('370827', '3708', '00,37,3708', '鱼台县', '37', '山东省', '3708', '济宁市', '370827', '鱼台县', '', '', '', '', 3, 1, ''), ('370828', '3708', '00,37,3708', '金乡县', '37', '山东省', '3708', '济宁市', '370828', '金乡县', '', '', '', '', 3, 1, ''), ('370829', '3708', '00,37,3708', '嘉祥县', '37', '山东省', '3708', '济宁市', '370829', '嘉祥县', '', '', '', '', 3, 1, ''), ('370830', '3708', '00,37,3708', '汶上县', '37', '山东省', '3708', '济宁市', '370830', '汶上县', '', '', '', '', 3, 1, ''), ('370831', '3708', '00,37,3708', '泗水县', '37', '山东省', '3708', '济宁市', '370831', '泗水县', '', '', '', '', 3, 1, ''), ('370832', '3708', '00,37,3708', '梁山县', '37', '山东省', '3708', '济宁市', '370832', '梁山县', '', '', '', '', 3, 1, ''), ('370881', '3708', '00,37,3708', '曲阜市', '37', '山东省', '3708', '济宁市', '370881', '曲阜市', '', '', '', '', 3, 1, ''), ('370883', '3708', '00,37,3708', '邹城市', '37', '山东省', '3708', '济宁市', '370883', '邹城市', '', '', '', '', 3, 1, ''), ('3709', '37', '00,37', '泰安市', '37', '山东省', '3709', '泰安市', '', '', '', '', '', '', 2, 1, ''), ('370902', '3709', '00,37,3709', '泰山区', '37', '山东省', '3709', '泰安市', '370902', '泰山区', '', '', '', '', 3, 1, ''), ('370911', '3709', '00,37,3709', '岱岳区', '37', '山东省', '3709', '泰安市', '370911', '岱岳区', '', '', '', '', 3, 1, ''), ('370921', '3709', '00,37,3709', '宁阳县', '37', '山东省', '3709', '泰安市', '370921', '宁阳县', '', '', '', '', 3, 1, ''), ('370923', '3709', '00,37,3709', '东平县', '37', '山东省', '3709', '泰安市', '370923', '东平县', '', '', '', '', 3, 1, ''), ('370982', '3709', '00,37,3709', '新泰市', '37', '山东省', '3709', '泰安市', '370982', '新泰市', '', '', '', '', 3, 1, ''), ('370983', '3709', '00,37,3709', '肥城市', '37', '山东省', '3709', '泰安市', '370983', '肥城市', '', '', '', '', 3, 1, ''), ('3710', '37', '00,37', '威海市', '37', '山东省', '3710', '威海市', '', '', '', '', '', '', 2, 1, ''), ('371002', '3710', '00,37,3710', '环翠区', '37', '山东省', '3710', '威海市', '371002', '环翠区', '', '', '', '', 3, 1, ''), ('371003', '3710', '00,37,3710', '文登区', '37', '山东省', '3710', '威海市', '371003', '文登区', '', '', '', '', 3, 1, ''), ('371082', '3710', '00,37,3710', '荣成市', '37', '山东省', '3710', '威海市', '371082', '荣成市', '', '', '', '', 3, 1, ''), ('371083', '3710', '00,37,3710', '乳山市', '37', '山东省', '3710', '威海市', '371083', '乳山市', '', '', '', '', 3, 1, ''), ('3711', '37', '00,37', '日照市', '37', '山东省', '3711', '日照市', '', '', '', '', '', '', 2, 1, ''), ('371102', '3711', '00,37,3711', '东港区', '37', '山东省', '3711', '日照市', '371102', '东港区', '', '', '', '', 3, 1, ''), ('371103', '3711', '00,37,3711', '岚山区', '37', '山东省', '3711', '日照市', '371103', '岚山区', '', '', '', '', 3, 1, ''), ('371121', '3711', '00,37,3711', '五莲县', '37', '山东省', '3711', '日照市', '371121', '五莲县', '', '', '', '', 3, 1, ''), ('371122', '3711', '00,37,3711', '莒县', '37', '山东省', '3711', '日照市', '371122', '莒县', '', '', '', '', 3, 1, ''), ('3713', '37', '00,37', '临沂市', '37', '山东省', '3713', '临沂市', '', '', '', '', '', '', 2, 1, ''), ('371302', '3713', '00,37,3713', '兰山区', '37', '山东省', '3713', '临沂市', '371302', '兰山区', '', '', '', '', 3, 1, ''), ('371311', '3713', '00,37,3713', '罗庄区', '37', '山东省', '3713', '临沂市', '371311', '罗庄区', '', '', '', '', 3, 1, ''), ('371312', '3713', '00,37,3713', '河东区', '37', '山东省', '3713', '临沂市', '371312', '河东区', '', '', '', '', 3, 1, '');
+INSERT INTO `blade_region` VALUES ('371321', '3713', '00,37,3713', '沂南县', '37', '山东省', '3713', '临沂市', '371321', '沂南县', '', '', '', '', 3, 1, ''), ('371322', '3713', '00,37,3713', '郯城县', '37', '山东省', '3713', '临沂市', '371322', '郯城县', '', '', '', '', 3, 1, ''), ('371323', '3713', '00,37,3713', '沂水县', '37', '山东省', '3713', '临沂市', '371323', '沂水县', '', '', '', '', 3, 1, ''), ('371324', '3713', '00,37,3713', '兰陵县', '37', '山东省', '3713', '临沂市', '371324', '兰陵县', '', '', '', '', 3, 1, ''), ('371325', '3713', '00,37,3713', '费县', '37', '山东省', '3713', '临沂市', '371325', '费县', '', '', '', '', 3, 1, ''), ('371326', '3713', '00,37,3713', '平邑县', '37', '山东省', '3713', '临沂市', '371326', '平邑县', '', '', '', '', 3, 1, ''), ('371327', '3713', '00,37,3713', '莒南县', '37', '山东省', '3713', '临沂市', '371327', '莒南县', '', '', '', '', 3, 1, ''), ('371328', '3713', '00,37,3713', '蒙阴县', '37', '山东省', '3713', '临沂市', '371328', '蒙阴县', '', '', '', '', 3, 1, ''), ('371329', '3713', '00,37,3713', '临沭县', '37', '山东省', '3713', '临沂市', '371329', '临沭县', '', '', '', '', 3, 1, ''), ('3714', '37', '00,37', '德州市', '37', '山东省', '3714', '德州市', '', '', '', '', '', '', 2, 1, ''), ('371402', '3714', '00,37,3714', '德城区', '37', '山东省', '3714', '德州市', '371402', '德城区', '', '', '', '', 3, 1, ''), ('371403', '3714', '00,37,3714', '陵城区', '37', '山东省', '3714', '德州市', '371403', '陵城区', '', '', '', '', 3, 1, ''), ('371422', '3714', '00,37,3714', '宁津县', '37', '山东省', '3714', '德州市', '371422', '宁津县', '', '', '', '', 3, 1, ''), ('371423', '3714', '00,37,3714', '庆云县', '37', '山东省', '3714', '德州市', '371423', '庆云县', '', '', '', '', 3, 1, ''), ('371424', '3714', '00,37,3714', '临邑县', '37', '山东省', '3714', '德州市', '371424', '临邑县', '', '', '', '', 3, 1, ''), ('371425', '3714', '00,37,3714', '齐河县', '37', '山东省', '3714', '德州市', '371425', '齐河县', '', '', '', '', 3, 1, ''), ('371426', '3714', '00,37,3714', '平原县', '37', '山东省', '3714', '德州市', '371426', '平原县', '', '', '', '', 3, 1, ''), ('371427', '3714', '00,37,3714', '夏津县', '37', '山东省', '3714', '德州市', '371427', '夏津县', '', '', '', '', 3, 1, ''), ('371428', '3714', '00,37,3714', '武城县', '37', '山东省', '3714', '德州市', '371428', '武城县', '', '', '', '', 3, 1, ''), ('371481', '3714', '00,37,3714', '乐陵市', '37', '山东省', '3714', '德州市', '371481', '乐陵市', '', '', '', '', 3, 1, ''), ('371482', '3714', '00,37,3714', '禹城市', '37', '山东省', '3714', '德州市', '371482', '禹城市', '', '', '', '', 3, 1, ''), ('3715', '37', '00,37', '聊城市', '37', '山东省', '3715', '聊城市', '', '', '', '', '', '', 2, 1, ''), ('371502', '3715', '00,37,3715', '东昌府区', '37', '山东省', '3715', '聊城市', '371502', '东昌府区', '', '', '', '', 3, 1, ''), ('371503', '3715', '00,37,3715', '茌平区', '37', '山东省', '3715', '聊城市', '371503', '茌平区', '', '', '', '', 3, 1, ''), ('371521', '3715', '00,37,3715', '阳谷县', '37', '山东省', '3715', '聊城市', '371521', '阳谷县', '', '', '', '', 3, 1, ''), ('371522', '3715', '00,37,3715', '莘县', '37', '山东省', '3715', '聊城市', '371522', '莘县', '', '', '', '', 3, 1, ''), ('371524', '3715', '00,37,3715', '东阿县', '37', '山东省', '3715', '聊城市', '371524', '东阿县', '', '', '', '', 3, 1, ''), ('371525', '3715', '00,37,3715', '冠县', '37', '山东省', '3715', '聊城市', '371525', '冠县', '', '', '', '', 3, 1, ''), ('371526', '3715', '00,37,3715', '高唐县', '37', '山东省', '3715', '聊城市', '371526', '高唐县', '', '', '', '', 3, 1, ''), ('371581', '3715', '00,37,3715', '临清市', '37', '山东省', '3715', '聊城市', '371581', '临清市', '', '', '', '', 3, 1, ''), ('3716', '37', '00,37', '滨州市', '37', '山东省', '3716', '滨州市', '', '', '', '', '', '', 2, 1, ''), ('371602', '3716', '00,37,3716', '滨城区', '37', '山东省', '3716', '滨州市', '371602', '滨城区', '', '', '', '', 3, 1, ''), ('371603', '3716', '00,37,3716', '沾化区', '37', '山东省', '3716', '滨州市', '371603', '沾化区', '', '', '', '', 3, 1, ''), ('371621', '3716', '00,37,3716', '惠民县', '37', '山东省', '3716', '滨州市', '371621', '惠民县', '', '', '', '', 3, 1, ''), ('371622', '3716', '00,37,3716', '阳信县', '37', '山东省', '3716', '滨州市', '371622', '阳信县', '', '', '', '', 3, 1, ''), ('371623', '3716', '00,37,3716', '无棣县', '37', '山东省', '3716', '滨州市', '371623', '无棣县', '', '', '', '', 3, 1, ''), ('371625', '3716', '00,37,3716', '博兴县', '37', '山东省', '3716', '滨州市', '371625', '博兴县', '', '', '', '', 3, 1, ''), ('371681', '3716', '00,37,3716', '邹平市', '37', '山东省', '3716', '滨州市', '371681', '邹平市', '', '', '', '', 3, 1, ''), ('3717', '37', '00,37', '菏泽市', '37', '山东省', '3717', '菏泽市', '', '', '', '', '', '', 2, 1, ''), ('371702', '3717', '00,37,3717', '牡丹区', '37', '山东省', '3717', '菏泽市', '371702', '牡丹区', '', '', '', '', 3, 1, ''), ('371703', '3717', '00,37,3717', '定陶区', '37', '山东省', '3717', '菏泽市', '371703', '定陶区', '', '', '', '', 3, 1, ''), ('371721', '3717', '00,37,3717', '曹县', '37', '山东省', '3717', '菏泽市', '371721', '曹县', '', '', '', '', 3, 1, ''), ('371722', '3717', '00,37,3717', '单县', '37', '山东省', '3717', '菏泽市', '371722', '单县', '', '', '', '', 3, 1, ''), ('371723', '3717', '00,37,3717', '成武县', '37', '山东省', '3717', '菏泽市', '371723', '成武县', '', '', '', '', 3, 1, ''), ('371724', '3717', '00,37,3717', '巨野县', '37', '山东省', '3717', '菏泽市', '371724', '巨野县', '', '', '', '', 3, 1, ''), ('371725', '3717', '00,37,3717', '郓城县', '37', '山东省', '3717', '菏泽市', '371725', '郓城县', '', '', '', '', 3, 1, ''), ('371726', '3717', '00,37,3717', '鄄城县', '37', '山东省', '3717', '菏泽市', '371726', '鄄城县', '', '', '', '', 3, 1, ''), ('371728', '3717', '00,37,3717', '东明县', '37', '山东省', '3717', '菏泽市', '371728', '东明县', '', '', '', '', 3, 1, ''), ('41', '00', '00', '河南省', '41', '河南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4101', '41', '00,41', '郑州市', '41', '河南省', '4101', '郑州市', '', '', '', '', '', '', 2, 1, ''), ('410102', '4101', '00,41,4101', '中原区', '41', '河南省', '4101', '郑州市', '410102', '中原区', '', '', '', '', 3, 1, ''), ('410103', '4101', '00,41,4101', '二七区', '41', '河南省', '4101', '郑州市', '410103', '二七区', '', '', '', '', 3, 1, ''), ('410104', '4101', '00,41,4101', '管城回族区', '41', '河南省', '4101', '郑州市', '410104', '管城回族区', '', '', '', '', 3, 1, ''), ('410105', '4101', '00,41,4101', '金水区', '41', '河南省', '4101', '郑州市', '410105', '金水区', '', '', '', '', 3, 1, ''), ('410106', '4101', '00,41,4101', '上街区', '41', '河南省', '4101', '郑州市', '410106', '上街区', '', '', '', '', 3, 1, ''), ('410108', '4101', '00,41,4101', '惠济区', '41', '河南省', '4101', '郑州市', '410108', '惠济区', '', '', '', '', 3, 1, ''), ('410122', '4101', '00,41,4101', '中牟县', '41', '河南省', '4101', '郑州市', '410122', '中牟县', '', '', '', '', 3, 1, ''), ('410181', '4101', '00,41,4101', '巩义市', '41', '河南省', '4101', '郑州市', '410181', '巩义市', '', '', '', '', 3, 1, ''), ('410182', '4101', '00,41,4101', '荥阳市', '41', '河南省', '4101', '郑州市', '410182', '荥阳市', '', '', '', '', 3, 1, ''), ('410183', '4101', '00,41,4101', '新密市', '41', '河南省', '4101', '郑州市', '410183', '新密市', '', '', '', '', 3, 1, ''), ('410184', '4101', '00,41,4101', '新郑市', '41', '河南省', '4101', '郑州市', '410184', '新郑市', '', '', '', '', 3, 1, ''), ('410185', '4101', '00,41,4101', '登封市', '41', '河南省', '4101', '郑州市', '410185', '登封市', '', '', '', '', 3, 1, ''), ('4102', '41', '00,41', '开封市', '41', '河南省', '4102', '开封市', '', '', '', '', '', '', 2, 1, ''), ('410202', '4102', '00,41,4102', '龙亭区', '41', '河南省', '4102', '开封市', '410202', '龙亭区', '', '', '', '', 3, 1, ''), ('410203', '4102', '00,41,4102', '顺河回族区', '41', '河南省', '4102', '开封市', '410203', '顺河回族区', '', '', '', '', 3, 1, ''), ('410204', '4102', '00,41,4102', '鼓楼区', '41', '河南省', '4102', '开封市', '410204', '鼓楼区', '', '', '', '', 3, 1, ''), ('410205', '4102', '00,41,4102', '禹王台区', '41', '河南省', '4102', '开封市', '410205', '禹王台区', '', '', '', '', 3, 1, ''), ('410212', '4102', '00,41,4102', '祥符区', '41', '河南省', '4102', '开封市', '410212', '祥符区', '', '', '', '', 3, 1, ''), ('410221', '4102', '00,41,4102', '杞县', '41', '河南省', '4102', '开封市', '410221', '杞县', '', '', '', '', 3, 1, ''), ('410222', '4102', '00,41,4102', '通许县', '41', '河南省', '4102', '开封市', '410222', '通许县', '', '', '', '', 3, 1, ''), ('410223', '4102', '00,41,4102', '尉氏县', '41', '河南省', '4102', '开封市', '410223', '尉氏县', '', '', '', '', 3, 1, ''), ('410225', '4102', '00,41,4102', '兰考县', '41', '河南省', '4102', '开封市', '410225', '兰考县', '', '', '', '', 3, 1, ''), ('4103', '41', '00,41', '洛阳市', '41', '河南省', '4103', '洛阳市', '', '', '', '', '', '', 2, 1, ''), ('410302', '4103', '00,41,4103', '老城区', '41', '河南省', '4103', '洛阳市', '410302', '老城区', '', '', '', '', 3, 1, ''), ('410303', '4103', '00,41,4103', '西工区', '41', '河南省', '4103', '洛阳市', '410303', '西工区', '', '', '', '', 3, 1, ''), ('410304', '4103', '00,41,4103', '瀍河回族区', '41', '河南省', '4103', '洛阳市', '410304', '瀍河回族区', '', '', '', '', 3, 1, ''), ('410305', '4103', '00,41,4103', '涧西区', '41', '河南省', '4103', '洛阳市', '410305', '涧西区', '', '', '', '', 3, 1, ''), ('410306', '4103', '00,41,4103', '吉利区', '41', '河南省', '4103', '洛阳市', '410306', '吉利区', '', '', '', '', 3, 1, ''), ('410311', '4103', '00,41,4103', '洛龙区', '41', '河南省', '4103', '洛阳市', '410311', '洛龙区', '', '', '', '', 3, 1, ''), ('410322', '4103', '00,41,4103', '孟津县', '41', '河南省', '4103', '洛阳市', '410322', '孟津县', '', '', '', '', 3, 1, ''), ('410323', '4103', '00,41,4103', '新安县', '41', '河南省', '4103', '洛阳市', '410323', '新安县', '', '', '', '', 3, 1, ''), ('410324', '4103', '00,41,4103', '栾川县', '41', '河南省', '4103', '洛阳市', '410324', '栾川县', '', '', '', '', 3, 1, ''), ('410325', '4103', '00,41,4103', '嵩县', '41', '河南省', '4103', '洛阳市', '410325', '嵩县', '', '', '', '', 3, 1, ''), ('410326', '4103', '00,41,4103', '汝阳县', '41', '河南省', '4103', '洛阳市', '410326', '汝阳县', '', '', '', '', 3, 1, ''), ('410327', '4103', '00,41,4103', '宜阳县', '41', '河南省', '4103', '洛阳市', '410327', '宜阳县', '', '', '', '', 3, 1, ''), ('410328', '4103', '00,41,4103', '洛宁县', '41', '河南省', '4103', '洛阳市', '410328', '洛宁县', '', '', '', '', 3, 1, ''), ('410329', '4103', '00,41,4103', '伊川县', '41', '河南省', '4103', '洛阳市', '410329', '伊川县', '', '', '', '', 3, 1, ''), ('410381', '4103', '00,41,4103', '偃师市', '41', '河南省', '4103', '洛阳市', '410381', '偃师市', '', '', '', '', 3, 1, ''), ('4104', '41', '00,41', '平顶山市', '41', '河南省', '4104', '平顶山市', '', '', '', '', '', '', 2, 1, ''), ('410402', '4104', '00,41,4104', '新华区', '41', '河南省', '4104', '平顶山市', '410402', '新华区', '', '', '', '', 3, 1, ''), ('410403', '4104', '00,41,4104', '卫东区', '41', '河南省', '4104', '平顶山市', '410403', '卫东区', '', '', '', '', 3, 1, ''), ('410404', '4104', '00,41,4104', '石龙区', '41', '河南省', '4104', '平顶山市', '410404', '石龙区', '', '', '', '', 3, 1, ''), ('410411', '4104', '00,41,4104', '湛河区', '41', '河南省', '4104', '平顶山市', '410411', '湛河区', '', '', '', '', 3, 1, ''), ('410421', '4104', '00,41,4104', '宝丰县', '41', '河南省', '4104', '平顶山市', '410421', '宝丰县', '', '', '', '', 3, 1, ''), ('410422', '4104', '00,41,4104', '叶县', '41', '河南省', '4104', '平顶山市', '410422', '叶县', '', '', '', '', 3, 1, ''), ('410423', '4104', '00,41,4104', '鲁山县', '41', '河南省', '4104', '平顶山市', '410423', '鲁山县', '', '', '', '', 3, 1, ''), ('410425', '4104', '00,41,4104', '郏县', '41', '河南省', '4104', '平顶山市', '410425', '郏县', '', '', '', '', 3, 1, ''), ('410481', '4104', '00,41,4104', '舞钢市', '41', '河南省', '4104', '平顶山市', '410481', '舞钢市', '', '', '', '', 3, 1, ''), ('410482', '4104', '00,41,4104', '汝州市', '41', '河南省', '4104', '平顶山市', '410482', '汝州市', '', '', '', '', 3, 1, ''), ('4105', '41', '00,41', '安阳市', '41', '河南省', '4105', '安阳市', '', '', '', '', '', '', 2, 1, ''), ('410502', '4105', '00,41,4105', '文峰区', '41', '河南省', '4105', '安阳市', '410502', '文峰区', '', '', '', '', 3, 1, ''), ('410503', '4105', '00,41,4105', '北关区', '41', '河南省', '4105', '安阳市', '410503', '北关区', '', '', '', '', 3, 1, ''), ('410505', '4105', '00,41,4105', '殷都区', '41', '河南省', '4105', '安阳市', '410505', '殷都区', '', '', '', '', 3, 1, ''), ('410506', '4105', '00,41,4105', '龙安区', '41', '河南省', '4105', '安阳市', '410506', '龙安区', '', '', '', '', 3, 1, ''), ('410522', '4105', '00,41,4105', '安阳县', '41', '河南省', '4105', '安阳市', '410522', '安阳县', '', '', '', '', 3, 1, ''), ('410523', '4105', '00,41,4105', '汤阴县', '41', '河南省', '4105', '安阳市', '410523', '汤阴县', '', '', '', '', 3, 1, ''), ('410526', '4105', '00,41,4105', '滑县', '41', '河南省', '4105', '安阳市', '410526', '滑县', '', '', '', '', 3, 1, ''), ('410527', '4105', '00,41,4105', '内黄县', '41', '河南省', '4105', '安阳市', '410527', '内黄县', '', '', '', '', 3, 1, ''), ('410581', '4105', '00,41,4105', '林州市', '41', '河南省', '4105', '安阳市', '410581', '林州市', '', '', '', '', 3, 1, ''), ('4106', '41', '00,41', '鹤壁市', '41', '河南省', '4106', '鹤壁市', '', '', '', '', '', '', 2, 1, ''), ('410602', '4106', '00,41,4106', '鹤山区', '41', '河南省', '4106', '鹤壁市', '410602', '鹤山区', '', '', '', '', 3, 1, ''), ('410603', '4106', '00,41,4106', '山城区', '41', '河南省', '4106', '鹤壁市', '410603', '山城区', '', '', '', '', 3, 1, ''), ('410611', '4106', '00,41,4106', '淇滨区', '41', '河南省', '4106', '鹤壁市', '410611', '淇滨区', '', '', '', '', 3, 1, ''), ('410621', '4106', '00,41,4106', '浚县', '41', '河南省', '4106', '鹤壁市', '410621', '浚县', '', '', '', '', 3, 1, ''), ('410622', '4106', '00,41,4106', '淇县', '41', '河南省', '4106', '鹤壁市', '410622', '淇县', '', '', '', '', 3, 1, ''), ('4107', '41', '00,41', '新乡市', '41', '河南省', '4107', '新乡市', '', '', '', '', '', '', 2, 1, ''), ('410702', '4107', '00,41,4107', '红旗区', '41', '河南省', '4107', '新乡市', '410702', '红旗区', '', '', '', '', 3, 1, ''), ('410703', '4107', '00,41,4107', '卫滨区', '41', '河南省', '4107', '新乡市', '410703', '卫滨区', '', '', '', '', 3, 1, ''), ('410704', '4107', '00,41,4107', '凤泉区', '41', '河南省', '4107', '新乡市', '410704', '凤泉区', '', '', '', '', 3, 1, ''), ('410711', '4107', '00,41,4107', '牧野区', '41', '河南省', '4107', '新乡市', '410711', '牧野区', '', '', '', '', 3, 1, ''), ('410721', '4107', '00,41,4107', '新乡县', '41', '河南省', '4107', '新乡市', '410721', '新乡县', '', '', '', '', 3, 1, ''), ('410724', '4107', '00,41,4107', '获嘉县', '41', '河南省', '4107', '新乡市', '410724', '获嘉县', '', '', '', '', 3, 1, ''), ('410725', '4107', '00,41,4107', '原阳县', '41', '河南省', '4107', '新乡市', '410725', '原阳县', '', '', '', '', 3, 1, ''), ('410726', '4107', '00,41,4107', '延津县', '41', '河南省', '4107', '新乡市', '410726', '延津县', '', '', '', '', 3, 1, ''), ('410727', '4107', '00,41,4107', '封丘县', '41', '河南省', '4107', '新乡市', '410727', '封丘县', '', '', '', '', 3, 1, ''), ('410781', '4107', '00,41,4107', '卫辉市', '41', '河南省', '4107', '新乡市', '410781', '卫辉市', '', '', '', '', 3, 1, ''), ('410782', '4107', '00,41,4107', '辉县市', '41', '河南省', '4107', '新乡市', '410782', '辉县市', '', '', '', '', 3, 1, ''), ('410783', '4107', '00,41,4107', '长垣市', '41', '河南省', '4107', '新乡市', '410783', '长垣市', '', '', '', '', 3, 1, ''), ('4108', '41', '00,41', '焦作市', '41', '河南省', '4108', '焦作市', '', '', '', '', '', '', 2, 1, ''), ('410802', '4108', '00,41,4108', '解放区', '41', '河南省', '4108', '焦作市', '410802', '解放区', '', '', '', '', 3, 1, ''), ('410803', '4108', '00,41,4108', '中站区', '41', '河南省', '4108', '焦作市', '410803', '中站区', '', '', '', '', 3, 1, ''), ('410804', '4108', '00,41,4108', '马村区', '41', '河南省', '4108', '焦作市', '410804', '马村区', '', '', '', '', 3, 1, ''), ('410811', '4108', '00,41,4108', '山阳区', '41', '河南省', '4108', '焦作市', '410811', '山阳区', '', '', '', '', 3, 1, ''), ('410821', '4108', '00,41,4108', '修武县', '41', '河南省', '4108', '焦作市', '410821', '修武县', '', '', '', '', 3, 1, ''), ('410822', '4108', '00,41,4108', '博爱县', '41', '河南省', '4108', '焦作市', '410822', '博爱县', '', '', '', '', 3, 1, ''), ('410823', '4108', '00,41,4108', '武陟县', '41', '河南省', '4108', '焦作市', '410823', '武陟县', '', '', '', '', 3, 1, ''), ('410825', '4108', '00,41,4108', '温县', '41', '河南省', '4108', '焦作市', '410825', '温县', '', '', '', '', 3, 1, ''), ('410882', '4108', '00,41,4108', '沁阳市', '41', '河南省', '4108', '焦作市', '410882', '沁阳市', '', '', '', '', 3, 1, ''), ('410883', '4108', '00,41,4108', '孟州市', '41', '河南省', '4108', '焦作市', '410883', '孟州市', '', '', '', '', 3, 1, ''), ('4109', '41', '00,41', '濮阳市', '41', '河南省', '4109', '濮阳市', '', '', '', '', '', '', 2, 1, ''), ('410902', '4109', '00,41,4109', '华龙区', '41', '河南省', '4109', '濮阳市', '410902', '华龙区', '', '', '', '', 3, 1, ''), ('410922', '4109', '00,41,4109', '清丰县', '41', '河南省', '4109', '濮阳市', '410922', '清丰县', '', '', '', '', 3, 1, ''), ('410923', '4109', '00,41,4109', '南乐县', '41', '河南省', '4109', '濮阳市', '410923', '南乐县', '', '', '', '', 3, 1, ''), ('410926', '4109', '00,41,4109', '范县', '41', '河南省', '4109', '濮阳市', '410926', '范县', '', '', '', '', 3, 1, ''), ('410927', '4109', '00,41,4109', '台前县', '41', '河南省', '4109', '濮阳市', '410927', '台前县', '', '', '', '', 3, 1, ''), ('410928', '4109', '00,41,4109', '濮阳县', '41', '河南省', '4109', '濮阳市', '410928', '濮阳县', '', '', '', '', 3, 1, ''), ('4110', '41', '00,41', '许昌市', '41', '河南省', '4110', '许昌市', '', '', '', '', '', '', 2, 1, ''), ('411002', '4110', '00,41,4110', '魏都区', '41', '河南省', '4110', '许昌市', '411002', '魏都区', '', '', '', '', 3, 1, ''), ('411003', '4110', '00,41,4110', '建安区', '41', '河南省', '4110', '许昌市', '411003', '建安区', '', '', '', '', 3, 1, ''), ('411024', '4110', '00,41,4110', '鄢陵县', '41', '河南省', '4110', '许昌市', '411024', '鄢陵县', '', '', '', '', 3, 1, ''), ('411025', '4110', '00,41,4110', '襄城县', '41', '河南省', '4110', '许昌市', '411025', '襄城县', '', '', '', '', 3, 1, ''), ('411081', '4110', '00,41,4110', '禹州市', '41', '河南省', '4110', '许昌市', '411081', '禹州市', '', '', '', '', 3, 1, ''), ('411082', '4110', '00,41,4110', '长葛市', '41', '河南省', '4110', '许昌市', '411082', '长葛市', '', '', '', '', 3, 1, ''), ('4111', '41', '00,41', '漯河市', '41', '河南省', '4111', '漯河市', '', '', '', '', '', '', 2, 1, ''), ('411102', '4111', '00,41,4111', '源汇区', '41', '河南省', '4111', '漯河市', '411102', '源汇区', '', '', '', '', 3, 1, ''), ('411103', '4111', '00,41,4111', '郾城区', '41', '河南省', '4111', '漯河市', '411103', '郾城区', '', '', '', '', 3, 1, ''), ('411104', '4111', '00,41,4111', '召陵区', '41', '河南省', '4111', '漯河市', '411104', '召陵区', '', '', '', '', 3, 1, ''), ('411121', '4111', '00,41,4111', '舞阳县', '41', '河南省', '4111', '漯河市', '411121', '舞阳县', '', '', '', '', 3, 1, ''), ('411122', '4111', '00,41,4111', '临颍县', '41', '河南省', '4111', '漯河市', '411122', '临颍县', '', '', '', '', 3, 1, ''), ('4112', '41', '00,41', '三门峡市', '41', '河南省', '4112', '三门峡市', '', '', '', '', '', '', 2, 1, ''), ('411202', '4112', '00,41,4112', '湖滨区', '41', '河南省', '4112', '三门峡市', '411202', '湖滨区', '', '', '', '', 3, 1, ''), ('411203', '4112', '00,41,4112', '陕州区', '41', '河南省', '4112', '三门峡市', '411203', '陕州区', '', '', '', '', 3, 1, ''), ('411221', '4112', '00,41,4112', '渑池县', '41', '河南省', '4112', '三门峡市', '411221', '渑池县', '', '', '', '', 3, 1, ''), ('411224', '4112', '00,41,4112', '卢氏县', '41', '河南省', '4112', '三门峡市', '411224', '卢氏县', '', '', '', '', 3, 1, ''), ('411281', '4112', '00,41,4112', '义马市', '41', '河南省', '4112', '三门峡市', '411281', '义马市', '', '', '', '', 3, 1, ''), ('411282', '4112', '00,41,4112', '灵宝市', '41', '河南省', '4112', '三门峡市', '411282', '灵宝市', '', '', '', '', 3, 1, ''), ('4113', '41', '00,41', '南阳市', '41', '河南省', '4113', '南阳市', '', '', '', '', '', '', 2, 1, ''), ('411302', '4113', '00,41,4113', '宛城区', '41', '河南省', '4113', '南阳市', '411302', '宛城区', '', '', '', '', 3, 1, ''), ('411303', '4113', '00,41,4113', '卧龙区', '41', '河南省', '4113', '南阳市', '411303', '卧龙区', '', '', '', '', 3, 1, ''), ('411321', '4113', '00,41,4113', '南召县', '41', '河南省', '4113', '南阳市', '411321', '南召县', '', '', '', '', 3, 1, ''), ('411322', '4113', '00,41,4113', '方城县', '41', '河南省', '4113', '南阳市', '411322', '方城县', '', '', '', '', 3, 1, ''), ('411323', '4113', '00,41,4113', '西峡县', '41', '河南省', '4113', '南阳市', '411323', '西峡县', '', '', '', '', 3, 1, ''), ('411324', '4113', '00,41,4113', '镇平县', '41', '河南省', '4113', '南阳市', '411324', '镇平县', '', '', '', '', 3, 1, ''), ('411325', '4113', '00,41,4113', '内乡县', '41', '河南省', '4113', '南阳市', '411325', '内乡县', '', '', '', '', 3, 1, ''), ('411326', '4113', '00,41,4113', '淅川县', '41', '河南省', '4113', '南阳市', '411326', '淅川县', '', '', '', '', 3, 1, ''), ('411327', '4113', '00,41,4113', '社旗县', '41', '河南省', '4113', '南阳市', '411327', '社旗县', '', '', '', '', 3, 1, ''), ('411328', '4113', '00,41,4113', '唐河县', '41', '河南省', '4113', '南阳市', '411328', '唐河县', '', '', '', '', 3, 1, ''), ('411329', '4113', '00,41,4113', '新野县', '41', '河南省', '4113', '南阳市', '411329', '新野县', '', '', '', '', 3, 1, ''), ('411330', '4113', '00,41,4113', '桐柏县', '41', '河南省', '4113', '南阳市', '411330', '桐柏县', '', '', '', '', 3, 1, ''), ('411381', '4113', '00,41,4113', '邓州市', '41', '河南省', '4113', '南阳市', '411381', '邓州市', '', '', '', '', 3, 1, ''), ('4114', '41', '00,41', '商丘市', '41', '河南省', '4114', '商丘市', '', '', '', '', '', '', 2, 1, ''), ('411402', '4114', '00,41,4114', '梁园区', '41', '河南省', '4114', '商丘市', '411402', '梁园区', '', '', '', '', 3, 1, ''), ('411403', '4114', '00,41,4114', '睢阳区', '41', '河南省', '4114', '商丘市', '411403', '睢阳区', '', '', '', '', 3, 1, ''), ('411421', '4114', '00,41,4114', '民权县', '41', '河南省', '4114', '商丘市', '411421', '民权县', '', '', '', '', 3, 1, ''), ('411422', '4114', '00,41,4114', '睢县', '41', '河南省', '4114', '商丘市', '411422', '睢县', '', '', '', '', 3, 1, ''), ('411423', '4114', '00,41,4114', '宁陵县', '41', '河南省', '4114', '商丘市', '411423', '宁陵县', '', '', '', '', 3, 1, ''), ('411424', '4114', '00,41,4114', '柘城县', '41', '河南省', '4114', '商丘市', '411424', '柘城县', '', '', '', '', 3, 1, ''), ('411425', '4114', '00,41,4114', '虞城县', '41', '河南省', '4114', '商丘市', '411425', '虞城县', '', '', '', '', 3, 1, ''), ('411426', '4114', '00,41,4114', '夏邑县', '41', '河南省', '4114', '商丘市', '411426', '夏邑县', '', '', '', '', 3, 1, ''), ('411481', '4114', '00,41,4114', '永城市', '41', '河南省', '4114', '商丘市', '411481', '永城市', '', '', '', '', 3, 1, ''), ('4115', '41', '00,41', '信阳市', '41', '河南省', '4115', '信阳市', '', '', '', '', '', '', 2, 1, ''), ('411502', '4115', '00,41,4115', '浉河区', '41', '河南省', '4115', '信阳市', '411502', '浉河区', '', '', '', '', 3, 1, ''), ('411503', '4115', '00,41,4115', '平桥区', '41', '河南省', '4115', '信阳市', '411503', '平桥区', '', '', '', '', 3, 1, ''), ('411521', '4115', '00,41,4115', '罗山县', '41', '河南省', '4115', '信阳市', '411521', '罗山县', '', '', '', '', 3, 1, ''), ('411522', '4115', '00,41,4115', '光山县', '41', '河南省', '4115', '信阳市', '411522', '光山县', '', '', '', '', 3, 1, ''), ('411523', '4115', '00,41,4115', '新县', '41', '河南省', '4115', '信阳市', '411523', '新县', '', '', '', '', 3, 1, ''), ('411524', '4115', '00,41,4115', '商城县', '41', '河南省', '4115', '信阳市', '411524', '商城县', '', '', '', '', 3, 1, ''), ('411525', '4115', '00,41,4115', '固始县', '41', '河南省', '4115', '信阳市', '411525', '固始县', '', '', '', '', 3, 1, ''), ('411526', '4115', '00,41,4115', '潢川县', '41', '河南省', '4115', '信阳市', '411526', '潢川县', '', '', '', '', 3, 1, ''), ('411527', '4115', '00,41,4115', '淮滨县', '41', '河南省', '4115', '信阳市', '411527', '淮滨县', '', '', '', '', 3, 1, ''), ('411528', '4115', '00,41,4115', '息县', '41', '河南省', '4115', '信阳市', '411528', '息县', '', '', '', '', 3, 1, ''), ('4116', '41', '00,41', '周口市', '41', '河南省', '4116', '周口市', '', '', '', '', '', '', 2, 1, ''), ('411602', '4116', '00,41,4116', '川汇区', '41', '河南省', '4116', '周口市', '411602', '川汇区', '', '', '', '', 3, 1, ''), ('411603', '4116', '00,41,4116', '淮阳区', '41', '河南省', '4116', '周口市', '411603', '淮阳区', '', '', '', '', 3, 1, ''), ('411621', '4116', '00,41,4116', '扶沟县', '41', '河南省', '4116', '周口市', '411621', '扶沟县', '', '', '', '', 3, 1, ''), ('411622', '4116', '00,41,4116', '西华县', '41', '河南省', '4116', '周口市', '411622', '西华县', '', '', '', '', 3, 1, ''), ('411623', '4116', '00,41,4116', '商水县', '41', '河南省', '4116', '周口市', '411623', '商水县', '', '', '', '', 3, 1, ''), ('411624', '4116', '00,41,4116', '沈丘县', '41', '河南省', '4116', '周口市', '411624', '沈丘县', '', '', '', '', 3, 1, ''), ('411625', '4116', '00,41,4116', '郸城县', '41', '河南省', '4116', '周口市', '411625', '郸城县', '', '', '', '', 3, 1, ''), ('411627', '4116', '00,41,4116', '太康县', '41', '河南省', '4116', '周口市', '411627', '太康县', '', '', '', '', 3, 1, ''), ('411628', '4116', '00,41,4116', '鹿邑县', '41', '河南省', '4116', '周口市', '411628', '鹿邑县', '', '', '', '', 3, 1, ''), ('411681', '4116', '00,41,4116', '项城市', '41', '河南省', '4116', '周口市', '411681', '项城市', '', '', '', '', 3, 1, ''), ('4117', '41', '00,41', '驻马店市', '41', '河南省', '4117', '驻马店市', '', '', '', '', '', '', 2, 1, ''), ('411702', '4117', '00,41,4117', '驿城区', '41', '河南省', '4117', '驻马店市', '411702', '驿城区', '', '', '', '', 3, 1, ''), ('411721', '4117', '00,41,4117', '西平县', '41', '河南省', '4117', '驻马店市', '411721', '西平县', '', '', '', '', 3, 1, ''), ('411722', '4117', '00,41,4117', '上蔡县', '41', '河南省', '4117', '驻马店市', '411722', '上蔡县', '', '', '', '', 3, 1, ''), ('411723', '4117', '00,41,4117', '平舆县', '41', '河南省', '4117', '驻马店市', '411723', '平舆县', '', '', '', '', 3, 1, ''), ('411724', '4117', '00,41,4117', '正阳县', '41', '河南省', '4117', '驻马店市', '411724', '正阳县', '', '', '', '', 3, 1, ''), ('411725', '4117', '00,41,4117', '确山县', '41', '河南省', '4117', '驻马店市', '411725', '确山县', '', '', '', '', 3, 1, ''), ('411726', '4117', '00,41,4117', '泌阳县', '41', '河南省', '4117', '驻马店市', '411726', '泌阳县', '', '', '', '', 3, 1, ''), ('411727', '4117', '00,41,4117', '汝南县', '41', '河南省', '4117', '驻马店市', '411727', '汝南县', '', '', '', '', 3, 1, ''), ('411728', '4117', '00,41,4117', '遂平县', '41', '河南省', '4117', '驻马店市', '411728', '遂平县', '', '', '', '', 3, 1, ''), ('411729', '4117', '00,41,4117', '新蔡县', '41', '河南省', '4117', '驻马店市', '411729', '新蔡县', '', '', '', '', 3, 1, ''), ('4190', '41', '00,41', '省直辖县级行政区', '41', '河南省', '4190', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('419001', '4190', '00,41,4190', '济源市', '41', '河南省', '4190', '省直辖县级行政区', '419001', '济源市', '', '', '', '', 3, 1, ''), ('42', '00', '00', '湖北省', '42', '湖北省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4201', '42', '00,42', '武汉市', '42', '湖北省', '4201', '武汉市', '', '', '', '', '', '', 2, 1, ''), ('420102', '4201', '00,42,4201', '江岸区', '42', '湖北省', '4201', '武汉市', '420102', '江岸区', '', '', '', '', 3, 1, ''), ('420103', '4201', '00,42,4201', '江汉区', '42', '湖北省', '4201', '武汉市', '420103', '江汉区', '', '', '', '', 3, 1, ''), ('420104', '4201', '00,42,4201', '硚口区', '42', '湖北省', '4201', '武汉市', '420104', '硚口区', '', '', '', '', 3, 1, ''), ('420105', '4201', '00,42,4201', '汉阳区', '42', '湖北省', '4201', '武汉市', '420105', '汉阳区', '', '', '', '', 3, 1, ''), ('420106', '4201', '00,42,4201', '武昌区', '42', '湖北省', '4201', '武汉市', '420106', '武昌区', '', '', '', '', 3, 1, ''), ('420107', '4201', '00,42,4201', '青山区', '42', '湖北省', '4201', '武汉市', '420107', '青山区', '', '', '', '', 3, 1, ''), ('420111', '4201', '00,42,4201', '洪山区', '42', '湖北省', '4201', '武汉市', '420111', '洪山区', '', '', '', '', 3, 1, ''), ('420112', '4201', '00,42,4201', '东西湖区', '42', '湖北省', '4201', '武汉市', '420112', '东西湖区', '', '', '', '', 3, 1, ''), ('420113', '4201', '00,42,4201', '汉南区', '42', '湖北省', '4201', '武汉市', '420113', '汉南区', '', '', '', '', 3, 1, ''), ('420114', '4201', '00,42,4201', '蔡甸区', '42', '湖北省', '4201', '武汉市', '420114', '蔡甸区', '', '', '', '', 3, 1, ''), ('420115', '4201', '00,42,4201', '江夏区', '42', '湖北省', '4201', '武汉市', '420115', '江夏区', '', '', '', '', 3, 1, ''), ('420116', '4201', '00,42,4201', '黄陂区', '42', '湖北省', '4201', '武汉市', '420116', '黄陂区', '', '', '', '', 3, 1, ''), ('420117', '4201', '00,42,4201', '新洲区', '42', '湖北省', '4201', '武汉市', '420117', '新洲区', '', '', '', '', 3, 1, ''), ('4202', '42', '00,42', '黄石市', '42', '湖北省', '4202', '黄石市', '', '', '', '', '', '', 2, 1, ''), ('420202', '4202', '00,42,4202', '黄石港区', '42', '湖北省', '4202', '黄石市', '420202', '黄石港区', '', '', '', '', 3, 1, ''), ('420203', '4202', '00,42,4202', '西塞山区', '42', '湖北省', '4202', '黄石市', '420203', '西塞山区', '', '', '', '', 3, 1, ''), ('420204', '4202', '00,42,4202', '下陆区', '42', '湖北省', '4202', '黄石市', '420204', '下陆区', '', '', '', '', 3, 1, ''), ('420205', '4202', '00,42,4202', '铁山区', '42', '湖北省', '4202', '黄石市', '420205', '铁山区', '', '', '', '', 3, 1, ''), ('420222', '4202', '00,42,4202', '阳新县', '42', '湖北省', '4202', '黄石市', '420222', '阳新县', '', '', '', '', 3, 1, ''), ('420281', '4202', '00,42,4202', '大冶市', '42', '湖北省', '4202', '黄石市', '420281', '大冶市', '', '', '', '', 3, 1, ''), ('4203', '42', '00,42', '十堰市', '42', '湖北省', '4203', '十堰市', '', '', '', '', '', '', 2, 1, ''), ('420302', '4203', '00,42,4203', '茅箭区', '42', '湖北省', '4203', '十堰市', '420302', '茅箭区', '', '', '', '', 3, 1, ''), ('420303', '4203', '00,42,4203', '张湾区', '42', '湖北省', '4203', '十堰市', '420303', '张湾区', '', '', '', '', 3, 1, ''), ('420304', '4203', '00,42,4203', '郧阳区', '42', '湖北省', '4203', '十堰市', '420304', '郧阳区', '', '', '', '', 3, 1, ''), ('420322', '4203', '00,42,4203', '郧西县', '42', '湖北省', '4203', '十堰市', '420322', '郧西县', '', '', '', '', 3, 1, ''), ('420323', '4203', '00,42,4203', '竹山县', '42', '湖北省', '4203', '十堰市', '420323', '竹山县', '', '', '', '', 3, 1, ''), ('420324', '4203', '00,42,4203', '竹溪县', '42', '湖北省', '4203', '十堰市', '420324', '竹溪县', '', '', '', '', 3, 1, ''), ('420325', '4203', '00,42,4203', '房县', '42', '湖北省', '4203', '十堰市', '420325', '房县', '', '', '', '', 3, 1, ''), ('420381', '4203', '00,42,4203', '丹江口市', '42', '湖北省', '4203', '十堰市', '420381', '丹江口市', '', '', '', '', 3, 1, ''), ('4205', '42', '00,42', '宜昌市', '42', '湖北省', '4205', '宜昌市', '', '', '', '', '', '', 2, 1, ''), ('420502', '4205', '00,42,4205', '西陵区', '42', '湖北省', '4205', '宜昌市', '420502', '西陵区', '', '', '', '', 3, 1, ''), ('420503', '4205', '00,42,4205', '伍家岗区', '42', '湖北省', '4205', '宜昌市', '420503', '伍家岗区', '', '', '', '', 3, 1, ''), ('420504', '4205', '00,42,4205', '点军区', '42', '湖北省', '4205', '宜昌市', '420504', '点军区', '', '', '', '', 3, 1, ''), ('420505', '4205', '00,42,4205', '猇亭区', '42', '湖北省', '4205', '宜昌市', '420505', '猇亭区', '', '', '', '', 3, 1, ''), ('420506', '4205', '00,42,4205', '夷陵区', '42', '湖北省', '4205', '宜昌市', '420506', '夷陵区', '', '', '', '', 3, 1, ''), ('420525', '4205', '00,42,4205', '远安县', '42', '湖北省', '4205', '宜昌市', '420525', '远安县', '', '', '', '', 3, 1, ''), ('420526', '4205', '00,42,4205', '兴山县', '42', '湖北省', '4205', '宜昌市', '420526', '兴山县', '', '', '', '', 3, 1, ''), ('420527', '4205', '00,42,4205', '秭归县', '42', '湖北省', '4205', '宜昌市', '420527', '秭归县', '', '', '', '', 3, 1, ''), ('420528', '4205', '00,42,4205', '长阳土家族自治县', '42', '湖北省', '4205', '宜昌市', '420528', '长阳土家族自治县', '', '', '', '', 3, 1, ''), ('420529', '4205', '00,42,4205', '五峰土家族自治县', '42', '湖北省', '4205', '宜昌市', '420529', '五峰土家族自治县', '', '', '', '', 3, 1, ''), ('420581', '4205', '00,42,4205', '宜都市', '42', '湖北省', '4205', '宜昌市', '420581', '宜都市', '', '', '', '', 3, 1, ''), ('420582', '4205', '00,42,4205', '当阳市', '42', '湖北省', '4205', '宜昌市', '420582', '当阳市', '', '', '', '', 3, 1, ''), ('420583', '4205', '00,42,4205', '枝江市', '42', '湖北省', '4205', '宜昌市', '420583', '枝江市', '', '', '', '', 3, 1, ''), ('4206', '42', '00,42', '襄阳市', '42', '湖北省', '4206', '襄阳市', '', '', '', '', '', '', 2, 1, ''), ('420602', '4206', '00,42,4206', '襄城区', '42', '湖北省', '4206', '襄阳市', '420602', '襄城区', '', '', '', '', 3, 1, ''), ('420606', '4206', '00,42,4206', '樊城区', '42', '湖北省', '4206', '襄阳市', '420606', '樊城区', '', '', '', '', 3, 1, ''), ('420607', '4206', '00,42,4206', '襄州区', '42', '湖北省', '4206', '襄阳市', '420607', '襄州区', '', '', '', '', 3, 1, ''), ('420624', '4206', '00,42,4206', '南漳县', '42', '湖北省', '4206', '襄阳市', '420624', '南漳县', '', '', '', '', 3, 1, ''), ('420625', '4206', '00,42,4206', '谷城县', '42', '湖北省', '4206', '襄阳市', '420625', '谷城县', '', '', '', '', 3, 1, ''), ('420626', '4206', '00,42,4206', '保康县', '42', '湖北省', '4206', '襄阳市', '420626', '保康县', '', '', '', '', 3, 1, ''), ('420682', '4206', '00,42,4206', '老河口市', '42', '湖北省', '4206', '襄阳市', '420682', '老河口市', '', '', '', '', 3, 1, ''), ('420683', '4206', '00,42,4206', '枣阳市', '42', '湖北省', '4206', '襄阳市', '420683', '枣阳市', '', '', '', '', 3, 1, ''), ('420684', '4206', '00,42,4206', '宜城市', '42', '湖北省', '4206', '襄阳市', '420684', '宜城市', '', '', '', '', 3, 1, ''), ('4207', '42', '00,42', '鄂州市', '42', '湖北省', '4207', '鄂州市', '', '', '', '', '', '', 2, 1, ''), ('420702', '4207', '00,42,4207', '梁子湖区', '42', '湖北省', '4207', '鄂州市', '420702', '梁子湖区', '', '', '', '', 3, 1, ''), ('420703', '4207', '00,42,4207', '华容区', '42', '湖北省', '4207', '鄂州市', '420703', '华容区', '', '', '', '', 3, 1, ''), ('420704', '4207', '00,42,4207', '鄂城区', '42', '湖北省', '4207', '鄂州市', '420704', '鄂城区', '', '', '', '', 3, 1, ''), ('4208', '42', '00,42', '荆门市', '42', '湖北省', '4208', '荆门市', '', '', '', '', '', '', 2, 1, ''), ('420802', '4208', '00,42,4208', '东宝区', '42', '湖北省', '4208', '荆门市', '420802', '东宝区', '', '', '', '', 3, 1, ''), ('420804', '4208', '00,42,4208', '掇刀区', '42', '湖北省', '4208', '荆门市', '420804', '掇刀区', '', '', '', '', 3, 1, ''), ('420822', '4208', '00,42,4208', '沙洋县', '42', '湖北省', '4208', '荆门市', '420822', '沙洋县', '', '', '', '', 3, 1, ''), ('420881', '4208', '00,42,4208', '钟祥市', '42', '湖北省', '4208', '荆门市', '420881', '钟祥市', '', '', '', '', 3, 1, ''), ('420882', '4208', '00,42,4208', '京山市', '42', '湖北省', '4208', '荆门市', '420882', '京山市', '', '', '', '', 3, 1, ''), ('4209', '42', '00,42', '孝感市', '42', '湖北省', '4209', '孝感市', '', '', '', '', '', '', 2, 1, ''), ('420902', '4209', '00,42,4209', '孝南区', '42', '湖北省', '4209', '孝感市', '420902', '孝南区', '', '', '', '', 3, 1, ''), ('420921', '4209', '00,42,4209', '孝昌县', '42', '湖北省', '4209', '孝感市', '420921', '孝昌县', '', '', '', '', 3, 1, ''), ('420922', '4209', '00,42,4209', '大悟县', '42', '湖北省', '4209', '孝感市', '420922', '大悟县', '', '', '', '', 3, 1, ''), ('420923', '4209', '00,42,4209', '云梦县', '42', '湖北省', '4209', '孝感市', '420923', '云梦县', '', '', '', '', 3, 1, ''), ('420981', '4209', '00,42,4209', '应城市', '42', '湖北省', '4209', '孝感市', '420981', '应城市', '', '', '', '', 3, 1, ''), ('420982', '4209', '00,42,4209', '安陆市', '42', '湖北省', '4209', '孝感市', '420982', '安陆市', '', '', '', '', 3, 1, ''), ('420984', '4209', '00,42,4209', '汉川市', '42', '湖北省', '4209', '孝感市', '420984', '汉川市', '', '', '', '', 3, 1, ''), ('4210', '42', '00,42', '荆州市', '42', '湖北省', '4210', '荆州市', '', '', '', '', '', '', 2, 1, ''), ('421002', '4210', '00,42,4210', '沙市区', '42', '湖北省', '4210', '荆州市', '421002', '沙市区', '', '', '', '', 3, 1, ''), ('421003', '4210', '00,42,4210', '荆州区', '42', '湖北省', '4210', '荆州市', '421003', '荆州区', '', '', '', '', 3, 1, ''), ('421022', '4210', '00,42,4210', '公安县', '42', '湖北省', '4210', '荆州市', '421022', '公安县', '', '', '', '', 3, 1, ''), ('421023', '4210', '00,42,4210', '监利县', '42', '湖北省', '4210', '荆州市', '421023', '监利县', '', '', '', '', 3, 1, ''), ('421024', '4210', '00,42,4210', '江陵县', '42', '湖北省', '4210', '荆州市', '421024', '江陵县', '', '', '', '', 3, 1, ''), ('421081', '4210', '00,42,4210', '石首市', '42', '湖北省', '4210', '荆州市', '421081', '石首市', '', '', '', '', 3, 1, ''), ('421083', '4210', '00,42,4210', '洪湖市', '42', '湖北省', '4210', '荆州市', '421083', '洪湖市', '', '', '', '', 3, 1, ''), ('421087', '4210', '00,42,4210', '松滋市', '42', '湖北省', '4210', '荆州市', '421087', '松滋市', '', '', '', '', 3, 1, ''), ('4211', '42', '00,42', '黄冈市', '42', '湖北省', '4211', '黄冈市', '', '', '', '', '', '', 2, 1, ''), ('421102', '4211', '00,42,4211', '黄州区', '42', '湖北省', '4211', '黄冈市', '421102', '黄州区', '', '', '', '', 3, 1, ''), ('421121', '4211', '00,42,4211', '团风县', '42', '湖北省', '4211', '黄冈市', '421121', '团风县', '', '', '', '', 3, 1, ''), ('421122', '4211', '00,42,4211', '红安县', '42', '湖北省', '4211', '黄冈市', '421122', '红安县', '', '', '', '', 3, 1, ''), ('421123', '4211', '00,42,4211', '罗田县', '42', '湖北省', '4211', '黄冈市', '421123', '罗田县', '', '', '', '', 3, 1, ''), ('421124', '4211', '00,42,4211', '英山县', '42', '湖北省', '4211', '黄冈市', '421124', '英山县', '', '', '', '', 3, 1, ''), ('421125', '4211', '00,42,4211', '浠水县', '42', '湖北省', '4211', '黄冈市', '421125', '浠水县', '', '', '', '', 3, 1, ''), ('421126', '4211', '00,42,4211', '蕲春县', '42', '湖北省', '4211', '黄冈市', '421126', '蕲春县', '', '', '', '', 3, 1, ''), ('421127', '4211', '00,42,4211', '黄梅县', '42', '湖北省', '4211', '黄冈市', '421127', '黄梅县', '', '', '', '', 3, 1, ''), ('421181', '4211', '00,42,4211', '麻城市', '42', '湖北省', '4211', '黄冈市', '421181', '麻城市', '', '', '', '', 3, 1, ''), ('421182', '4211', '00,42,4211', '武穴市', '42', '湖北省', '4211', '黄冈市', '421182', '武穴市', '', '', '', '', 3, 1, ''), ('4212', '42', '00,42', '咸宁市', '42', '湖北省', '4212', '咸宁市', '', '', '', '', '', '', 2, 1, ''), ('421202', '4212', '00,42,4212', '咸安区', '42', '湖北省', '4212', '咸宁市', '421202', '咸安区', '', '', '', '', 3, 1, ''), ('421221', '4212', '00,42,4212', '嘉鱼县', '42', '湖北省', '4212', '咸宁市', '421221', '嘉鱼县', '', '', '', '', 3, 1, ''), ('421222', '4212', '00,42,4212', '通城县', '42', '湖北省', '4212', '咸宁市', '421222', '通城县', '', '', '', '', 3, 1, ''), ('421223', '4212', '00,42,4212', '崇阳县', '42', '湖北省', '4212', '咸宁市', '421223', '崇阳县', '', '', '', '', 3, 1, ''), ('421224', '4212', '00,42,4212', '通山县', '42', '湖北省', '4212', '咸宁市', '421224', '通山县', '', '', '', '', 3, 1, ''), ('421281', '4212', '00,42,4212', '赤壁市', '42', '湖北省', '4212', '咸宁市', '421281', '赤壁市', '', '', '', '', 3, 1, ''), ('4213', '42', '00,42', '随州市', '42', '湖北省', '4213', '随州市', '', '', '', '', '', '', 2, 1, ''), ('421303', '4213', '00,42,4213', '曾都区', '42', '湖北省', '4213', '随州市', '421303', '曾都区', '', '', '', '', 3, 1, ''), ('421321', '4213', '00,42,4213', '随县', '42', '湖北省', '4213', '随州市', '421321', '随县', '', '', '', '', 3, 1, ''), ('421381', '4213', '00,42,4213', '广水市', '42', '湖北省', '4213', '随州市', '421381', '广水市', '', '', '', '', 3, 1, ''), ('4228', '42', '00,42', '恩施土家族苗族自治州', '42', '湖北省', '4228', '恩施土家族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('422801', '4228', '00,42,4228', '恩施市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422801', '恩施市', '', '', '', '', 3, 1, ''), ('422802', '4228', '00,42,4228', '利川市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422802', '利川市', '', '', '', '', 3, 1, ''), ('422822', '4228', '00,42,4228', '建始县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422822', '建始县', '', '', '', '', 3, 1, ''), ('422823', '4228', '00,42,4228', '巴东县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422823', '巴东县', '', '', '', '', 3, 1, ''), ('422825', '4228', '00,42,4228', '宣恩县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422825', '宣恩县', '', '', '', '', 3, 1, ''), ('422826', '4228', '00,42,4228', '咸丰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422826', '咸丰县', '', '', '', '', 3, 1, ''), ('422827', '4228', '00,42,4228', '来凤县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422827', '来凤县', '', '', '', '', 3, 1, ''), ('422828', '4228', '00,42,4228', '鹤峰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422828', '鹤峰县', '', '', '', '', 3, 1, ''), ('4290', '42', '00,42', '省直辖县级行政区', '42', '湖北省', '4290', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('429004', '4290', '00,42,4290', '仙桃市', '42', '湖北省', '4290', '省直辖县级行政区', '429004', '仙桃市', '', '', '', '', 3, 1, ''), ('429005', '4290', '00,42,4290', '潜江市', '42', '湖北省', '4290', '省直辖县级行政区', '429005', '潜江市', '', '', '', '', 3, 1, ''), ('429006', '4290', '00,42,4290', '天门市', '42', '湖北省', '4290', '省直辖县级行政区', '429006', '天门市', '', '', '', '', 3, 1, ''), ('429021', '4290', '00,42,4290', '神农架林区', '42', '湖北省', '4290', '省直辖县级行政区', '429021', '神农架林区', '', '', '', '', 3, 1, ''), ('43', '00', '00', '湖南省', '43', '湖南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4301', '43', '00,43', '长沙市', '43', '湖南省', '4301', '长沙市', '', '', '', '', '', '', 2, 1, ''), ('430102', '4301', '00,43,4301', '芙蓉区', '43', '湖南省', '4301', '长沙市', '430102', '芙蓉区', '', '', '', '', 3, 1, ''), ('430103', '4301', '00,43,4301', '天心区', '43', '湖南省', '4301', '长沙市', '430103', '天心区', '', '', '', '', 3, 1, ''), ('430104', '4301', '00,43,4301', '岳麓区', '43', '湖南省', '4301', '长沙市', '430104', '岳麓区', '', '', '', '', 3, 1, ''), ('430105', '4301', '00,43,4301', '开福区', '43', '湖南省', '4301', '长沙市', '430105', '开福区', '', '', '', '', 3, 1, ''), ('430111', '4301', '00,43,4301', '雨花区', '43', '湖南省', '4301', '长沙市', '430111', '雨花区', '', '', '', '', 3, 1, ''), ('430112', '4301', '00,43,4301', '望城区', '43', '湖南省', '4301', '长沙市', '430112', '望城区', '', '', '', '', 3, 1, ''), ('430121', '4301', '00,43,4301', '长沙县', '43', '湖南省', '4301', '长沙市', '430121', '长沙县', '', '', '', '', 3, 1, ''), ('430181', '4301', '00,43,4301', '浏阳市', '43', '湖南省', '4301', '长沙市', '430181', '浏阳市', '', '', '', '', 3, 1, ''), ('430182', '4301', '00,43,4301', '宁乡市', '43', '湖南省', '4301', '长沙市', '430182', '宁乡市', '', '', '', '', 3, 1, ''), ('4302', '43', '00,43', '株洲市', '43', '湖南省', '4302', '株洲市', '', '', '', '', '', '', 2, 1, ''), ('430202', '4302', '00,43,4302', '荷塘区', '43', '湖南省', '4302', '株洲市', '430202', '荷塘区', '', '', '', '', 3, 1, ''), ('430203', '4302', '00,43,4302', '芦淞区', '43', '湖南省', '4302', '株洲市', '430203', '芦淞区', '', '', '', '', 3, 1, ''), ('430204', '4302', '00,43,4302', '石峰区', '43', '湖南省', '4302', '株洲市', '430204', '石峰区', '', '', '', '', 3, 1, ''), ('430211', '4302', '00,43,4302', '天元区', '43', '湖南省', '4302', '株洲市', '430211', '天元区', '', '', '', '', 3, 1, ''), ('430212', '4302', '00,43,4302', '渌口区', '43', '湖南省', '4302', '株洲市', '430212', '渌口区', '', '', '', '', 3, 1, ''), ('430223', '4302', '00,43,4302', '攸县', '43', '湖南省', '4302', '株洲市', '430223', '攸县', '', '', '', '', 3, 1, ''), ('430224', '4302', '00,43,4302', '茶陵县', '43', '湖南省', '4302', '株洲市', '430224', '茶陵县', '', '', '', '', 3, 1, ''), ('430225', '4302', '00,43,4302', '炎陵县', '43', '湖南省', '4302', '株洲市', '430225', '炎陵县', '', '', '', '', 3, 1, ''), ('430281', '4302', '00,43,4302', '醴陵市', '43', '湖南省', '4302', '株洲市', '430281', '醴陵市', '', '', '', '', 3, 1, ''), ('4303', '43', '00,43', '湘潭市', '43', '湖南省', '4303', '湘潭市', '', '', '', '', '', '', 2, 1, ''), ('430302', '4303', '00,43,4303', '雨湖区', '43', '湖南省', '4303', '湘潭市', '430302', '雨湖区', '', '', '', '', 3, 1, ''), ('430304', '4303', '00,43,4303', '岳塘区', '43', '湖南省', '4303', '湘潭市', '430304', '岳塘区', '', '', '', '', 3, 1, ''), ('430321', '4303', '00,43,4303', '湘潭县', '43', '湖南省', '4303', '湘潭市', '430321', '湘潭县', '', '', '', '', 3, 1, ''), ('430381', '4303', '00,43,4303', '湘乡市', '43', '湖南省', '4303', '湘潭市', '430381', '湘乡市', '', '', '', '', 3, 1, ''), ('430382', '4303', '00,43,4303', '韶山市', '43', '湖南省', '4303', '湘潭市', '430382', '韶山市', '', '', '', '', 3, 1, ''), ('4304', '43', '00,43', '衡阳市', '43', '湖南省', '4304', '衡阳市', '', '', '', '', '', '', 2, 1, ''), ('430405', '4304', '00,43,4304', '珠晖区', '43', '湖南省', '4304', '衡阳市', '430405', '珠晖区', '', '', '', '', 3, 1, ''), ('430406', '4304', '00,43,4304', '雁峰区', '43', '湖南省', '4304', '衡阳市', '430406', '雁峰区', '', '', '', '', 3, 1, ''), ('430407', '4304', '00,43,4304', '石鼓区', '43', '湖南省', '4304', '衡阳市', '430407', '石鼓区', '', '', '', '', 3, 1, ''), ('430408', '4304', '00,43,4304', '蒸湘区', '43', '湖南省', '4304', '衡阳市', '430408', '蒸湘区', '', '', '', '', 3, 1, ''), ('430412', '4304', '00,43,4304', '南岳区', '43', '湖南省', '4304', '衡阳市', '430412', '南岳区', '', '', '', '', 3, 1, ''), ('430421', '4304', '00,43,4304', '衡阳县', '43', '湖南省', '4304', '衡阳市', '430421', '衡阳县', '', '', '', '', 3, 1, ''), ('430422', '4304', '00,43,4304', '衡南县', '43', '湖南省', '4304', '衡阳市', '430422', '衡南县', '', '', '', '', 3, 1, ''), ('430423', '4304', '00,43,4304', '衡山县', '43', '湖南省', '4304', '衡阳市', '430423', '衡山县', '', '', '', '', 3, 1, ''), ('430424', '4304', '00,43,4304', '衡东县', '43', '湖南省', '4304', '衡阳市', '430424', '衡东县', '', '', '', '', 3, 1, ''), ('430426', '4304', '00,43,4304', '祁东县', '43', '湖南省', '4304', '衡阳市', '430426', '祁东县', '', '', '', '', 3, 1, ''), ('430481', '4304', '00,43,4304', '耒阳市', '43', '湖南省', '4304', '衡阳市', '430481', '耒阳市', '', '', '', '', 3, 1, ''), ('430482', '4304', '00,43,4304', '常宁市', '43', '湖南省', '4304', '衡阳市', '430482', '常宁市', '', '', '', '', 3, 1, ''), ('4305', '43', '00,43', '邵阳市', '43', '湖南省', '4305', '邵阳市', '', '', '', '', '', '', 2, 1, ''), ('430502', '4305', '00,43,4305', '双清区', '43', '湖南省', '4305', '邵阳市', '430502', '双清区', '', '', '', '', 3, 1, ''), ('430503', '4305', '00,43,4305', '大祥区', '43', '湖南省', '4305', '邵阳市', '430503', '大祥区', '', '', '', '', 3, 1, ''), ('430511', '4305', '00,43,4305', '北塔区', '43', '湖南省', '4305', '邵阳市', '430511', '北塔区', '', '', '', '', 3, 1, ''), ('430522', '4305', '00,43,4305', '新邵县', '43', '湖南省', '4305', '邵阳市', '430522', '新邵县', '', '', '', '', 3, 1, ''), ('430523', '4305', '00,43,4305', '邵阳县', '43', '湖南省', '4305', '邵阳市', '430523', '邵阳县', '', '', '', '', 3, 1, ''), ('430524', '4305', '00,43,4305', '隆回县', '43', '湖南省', '4305', '邵阳市', '430524', '隆回县', '', '', '', '', 3, 1, ''), ('430525', '4305', '00,43,4305', '洞口县', '43', '湖南省', '4305', '邵阳市', '430525', '洞口县', '', '', '', '', 3, 1, ''), ('430527', '4305', '00,43,4305', '绥宁县', '43', '湖南省', '4305', '邵阳市', '430527', '绥宁县', '', '', '', '', 3, 1, ''), ('430528', '4305', '00,43,4305', '新宁县', '43', '湖南省', '4305', '邵阳市', '430528', '新宁县', '', '', '', '', 3, 1, ''), ('430529', '4305', '00,43,4305', '城步苗族自治县', '43', '湖南省', '4305', '邵阳市', '430529', '城步苗族自治县', '', '', '', '', 3, 1, ''), ('430581', '4305', '00,43,4305', '武冈市', '43', '湖南省', '4305', '邵阳市', '430581', '武冈市', '', '', '', '', 3, 1, ''), ('430582', '4305', '00,43,4305', '邵东市', '43', '湖南省', '4305', '邵阳市', '430582', '邵东市', '', '', '', '', 3, 1, ''), ('4306', '43', '00,43', '岳阳市', '43', '湖南省', '4306', '岳阳市', '', '', '', '', '', '', 2, 1, ''), ('430602', '4306', '00,43,4306', '岳阳楼区', '43', '湖南省', '4306', '岳阳市', '430602', '岳阳楼区', '', '', '', '', 3, 1, ''), ('430603', '4306', '00,43,4306', '云溪区', '43', '湖南省', '4306', '岳阳市', '430603', '云溪区', '', '', '', '', 3, 1, ''), ('430611', '4306', '00,43,4306', '君山区', '43', '湖南省', '4306', '岳阳市', '430611', '君山区', '', '', '', '', 3, 1, ''), ('430621', '4306', '00,43,4306', '岳阳县', '43', '湖南省', '4306', '岳阳市', '430621', '岳阳县', '', '', '', '', 3, 1, ''), ('430623', '4306', '00,43,4306', '华容县', '43', '湖南省', '4306', '岳阳市', '430623', '华容县', '', '', '', '', 3, 1, ''), ('430624', '4306', '00,43,4306', '湘阴县', '43', '湖南省', '4306', '岳阳市', '430624', '湘阴县', '', '', '', '', 3, 1, ''), ('430626', '4306', '00,43,4306', '平江县', '43', '湖南省', '4306', '岳阳市', '430626', '平江县', '', '', '', '', 3, 1, ''), ('430681', '4306', '00,43,4306', '汨罗市', '43', '湖南省', '4306', '岳阳市', '430681', '汨罗市', '', '', '', '', 3, 1, ''), ('430682', '4306', '00,43,4306', '临湘市', '43', '湖南省', '4306', '岳阳市', '430682', '临湘市', '', '', '', '', 3, 1, ''), ('4307', '43', '00,43', '常德市', '43', '湖南省', '4307', '常德市', '', '', '', '', '', '', 2, 1, ''), ('430702', '4307', '00,43,4307', '武陵区', '43', '湖南省', '4307', '常德市', '430702', '武陵区', '', '', '', '', 3, 1, ''), ('430703', '4307', '00,43,4307', '鼎城区', '43', '湖南省', '4307', '常德市', '430703', '鼎城区', '', '', '', '', 3, 1, ''), ('430721', '4307', '00,43,4307', '安乡县', '43', '湖南省', '4307', '常德市', '430721', '安乡县', '', '', '', '', 3, 1, ''), ('430722', '4307', '00,43,4307', '汉寿县', '43', '湖南省', '4307', '常德市', '430722', '汉寿县', '', '', '', '', 3, 1, ''), ('430723', '4307', '00,43,4307', '澧县', '43', '湖南省', '4307', '常德市', '430723', '澧县', '', '', '', '', 3, 1, ''), ('430724', '4307', '00,43,4307', '临澧县', '43', '湖南省', '4307', '常德市', '430724', '临澧县', '', '', '', '', 3, 1, ''), ('430725', '4307', '00,43,4307', '桃源县', '43', '湖南省', '4307', '常德市', '430725', '桃源县', '', '', '', '', 3, 1, ''), ('430726', '4307', '00,43,4307', '石门县', '43', '湖南省', '4307', '常德市', '430726', '石门县', '', '', '', '', 3, 1, ''), ('430781', '4307', '00,43,4307', '津市市', '43', '湖南省', '4307', '常德市', '430781', '津市市', '', '', '', '', 3, 1, ''), ('4308', '43', '00,43', '张家界市', '43', '湖南省', '4308', '张家界市', '', '', '', '', '', '', 2, 1, ''), ('430802', '4308', '00,43,4308', '永定区', '43', '湖南省', '4308', '张家界市', '430802', '永定区', '', '', '', '', 3, 1, ''), ('430811', '4308', '00,43,4308', '武陵源区', '43', '湖南省', '4308', '张家界市', '430811', '武陵源区', '', '', '', '', 3, 1, ''), ('430821', '4308', '00,43,4308', '慈利县', '43', '湖南省', '4308', '张家界市', '430821', '慈利县', '', '', '', '', 3, 1, ''), ('430822', '4308', '00,43,4308', '桑植县', '43', '湖南省', '4308', '张家界市', '430822', '桑植县', '', '', '', '', 3, 1, ''), ('4309', '43', '00,43', '益阳市', '43', '湖南省', '4309', '益阳市', '', '', '', '', '', '', 2, 1, ''), ('430902', '4309', '00,43,4309', '资阳区', '43', '湖南省', '4309', '益阳市', '430902', '资阳区', '', '', '', '', 3, 1, ''), ('430903', '4309', '00,43,4309', '赫山区', '43', '湖南省', '4309', '益阳市', '430903', '赫山区', '', '', '', '', 3, 1, ''), ('430921', '4309', '00,43,4309', '南县', '43', '湖南省', '4309', '益阳市', '430921', '南县', '', '', '', '', 3, 1, ''), ('430922', '4309', '00,43,4309', '桃江县', '43', '湖南省', '4309', '益阳市', '430922', '桃江县', '', '', '', '', 3, 1, ''), ('430923', '4309', '00,43,4309', '安化县', '43', '湖南省', '4309', '益阳市', '430923', '安化县', '', '', '', '', 3, 1, ''), ('430981', '4309', '00,43,4309', '沅江市', '43', '湖南省', '4309', '益阳市', '430981', '沅江市', '', '', '', '', 3, 1, ''), ('4310', '43', '00,43', '郴州市', '43', '湖南省', '4310', '郴州市', '', '', '', '', '', '', 2, 1, ''), ('431002', '4310', '00,43,4310', '北湖区', '43', '湖南省', '4310', '郴州市', '431002', '北湖区', '', '', '', '', 3, 1, ''), ('431003', '4310', '00,43,4310', '苏仙区', '43', '湖南省', '4310', '郴州市', '431003', '苏仙区', '', '', '', '', 3, 1, ''), ('431021', '4310', '00,43,4310', '桂阳县', '43', '湖南省', '4310', '郴州市', '431021', '桂阳县', '', '', '', '', 3, 1, ''), ('431022', '4310', '00,43,4310', '宜章县', '43', '湖南省', '4310', '郴州市', '431022', '宜章县', '', '', '', '', 3, 1, ''), ('431023', '4310', '00,43,4310', '永兴县', '43', '湖南省', '4310', '郴州市', '431023', '永兴县', '', '', '', '', 3, 1, ''), ('431024', '4310', '00,43,4310', '嘉禾县', '43', '湖南省', '4310', '郴州市', '431024', '嘉禾县', '', '', '', '', 3, 1, ''), ('431025', '4310', '00,43,4310', '临武县', '43', '湖南省', '4310', '郴州市', '431025', '临武县', '', '', '', '', 3, 1, ''), ('431026', '4310', '00,43,4310', '汝城县', '43', '湖南省', '4310', '郴州市', '431026', '汝城县', '', '', '', '', 3, 1, ''), ('431027', '4310', '00,43,4310', '桂东县', '43', '湖南省', '4310', '郴州市', '431027', '桂东县', '', '', '', '', 3, 1, ''), ('431028', '4310', '00,43,4310', '安仁县', '43', '湖南省', '4310', '郴州市', '431028', '安仁县', '', '', '', '', 3, 1, ''), ('431081', '4310', '00,43,4310', '资兴市', '43', '湖南省', '4310', '郴州市', '431081', '资兴市', '', '', '', '', 3, 1, ''), ('4311', '43', '00,43', '永州市', '43', '湖南省', '4311', '永州市', '', '', '', '', '', '', 2, 1, ''), ('431102', '4311', '00,43,4311', '零陵区', '43', '湖南省', '4311', '永州市', '431102', '零陵区', '', '', '', '', 3, 1, ''), ('431103', '4311', '00,43,4311', '冷水滩区', '43', '湖南省', '4311', '永州市', '431103', '冷水滩区', '', '', '', '', 3, 1, ''), ('431121', '4311', '00,43,4311', '祁阳县', '43', '湖南省', '4311', '永州市', '431121', '祁阳县', '', '', '', '', 3, 1, ''), ('431122', '4311', '00,43,4311', '东安县', '43', '湖南省', '4311', '永州市', '431122', '东安县', '', '', '', '', 3, 1, ''), ('431123', '4311', '00,43,4311', '双牌县', '43', '湖南省', '4311', '永州市', '431123', '双牌县', '', '', '', '', 3, 1, ''), ('431124', '4311', '00,43,4311', '道县', '43', '湖南省', '4311', '永州市', '431124', '道县', '', '', '', '', 3, 1, ''), ('431125', '4311', '00,43,4311', '江永县', '43', '湖南省', '4311', '永州市', '431125', '江永县', '', '', '', '', 3, 1, ''), ('431126', '4311', '00,43,4311', '宁远县', '43', '湖南省', '4311', '永州市', '431126', '宁远县', '', '', '', '', 3, 1, ''), ('431127', '4311', '00,43,4311', '蓝山县', '43', '湖南省', '4311', '永州市', '431127', '蓝山县', '', '', '', '', 3, 1, ''), ('431128', '4311', '00,43,4311', '新田县', '43', '湖南省', '4311', '永州市', '431128', '新田县', '', '', '', '', 3, 1, ''), ('431129', '4311', '00,43,4311', '江华瑶族自治县', '43', '湖南省', '4311', '永州市', '431129', '江华瑶族自治县', '', '', '', '', 3, 1, ''), ('4312', '43', '00,43', '怀化市', '43', '湖南省', '4312', '怀化市', '', '', '', '', '', '', 2, 1, ''), ('431202', '4312', '00,43,4312', '鹤城区', '43', '湖南省', '4312', '怀化市', '431202', '鹤城区', '', '', '', '', 3, 1, ''), ('431221', '4312', '00,43,4312', '中方县', '43', '湖南省', '4312', '怀化市', '431221', '中方县', '', '', '', '', 3, 1, ''), ('431222', '4312', '00,43,4312', '沅陵县', '43', '湖南省', '4312', '怀化市', '431222', '沅陵县', '', '', '', '', 3, 1, ''), ('431223', '4312', '00,43,4312', '辰溪县', '43', '湖南省', '4312', '怀化市', '431223', '辰溪县', '', '', '', '', 3, 1, ''), ('431224', '4312', '00,43,4312', '溆浦县', '43', '湖南省', '4312', '怀化市', '431224', '溆浦县', '', '', '', '', 3, 1, ''), ('431225', '4312', '00,43,4312', '会同县', '43', '湖南省', '4312', '怀化市', '431225', '会同县', '', '', '', '', 3, 1, ''), ('431226', '4312', '00,43,4312', '麻阳苗族自治县', '43', '湖南省', '4312', '怀化市', '431226', '麻阳苗族自治县', '', '', '', '', 3, 1, ''), ('431227', '4312', '00,43,4312', '新晃侗族自治县', '43', '湖南省', '4312', '怀化市', '431227', '新晃侗族自治县', '', '', '', '', 3, 1, ''), ('431228', '4312', '00,43,4312', '芷江侗族自治县', '43', '湖南省', '4312', '怀化市', '431228', '芷江侗族自治县', '', '', '', '', 3, 1, ''), ('431229', '4312', '00,43,4312', '靖州苗族侗族自治县', '43', '湖南省', '4312', '怀化市', '431229', '靖州苗族侗族自治县', '', '', '', '', 3, 1, ''), ('431230', '4312', '00,43,4312', '通道侗族自治县', '43', '湖南省', '4312', '怀化市', '431230', '通道侗族自治县', '', '', '', '', 3, 1, ''), ('431281', '4312', '00,43,4312', '洪江市', '43', '湖南省', '4312', '怀化市', '431281', '洪江市', '', '', '', '', 3, 1, ''), ('4313', '43', '00,43', '娄底市', '43', '湖南省', '4313', '娄底市', '', '', '', '', '', '', 2, 1, ''), ('431302', '4313', '00,43,4313', '娄星区', '43', '湖南省', '4313', '娄底市', '431302', '娄星区', '', '', '', '', 3, 1, ''), ('431321', '4313', '00,43,4313', '双峰县', '43', '湖南省', '4313', '娄底市', '431321', '双峰县', '', '', '', '', 3, 1, ''), ('431322', '4313', '00,43,4313', '新化县', '43', '湖南省', '4313', '娄底市', '431322', '新化县', '', '', '', '', 3, 1, ''), ('431381', '4313', '00,43,4313', '冷水江市', '43', '湖南省', '4313', '娄底市', '431381', '冷水江市', '', '', '', '', 3, 1, ''), ('431382', '4313', '00,43,4313', '涟源市', '43', '湖南省', '4313', '娄底市', '431382', '涟源市', '', '', '', '', 3, 1, ''), ('4331', '43', '00,43', '湘西土家族苗族自治州', '43', '湖南省', '4331', '湘西土家族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('433101', '4331', '00,43,4331', '吉首市', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433101', '吉首市', '', '', '', '', 3, 1, ''), ('433122', '4331', '00,43,4331', '泸溪县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433122', '泸溪县', '', '', '', '', 3, 1, ''), ('433123', '4331', '00,43,4331', '凤凰县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433123', '凤凰县', '', '', '', '', 3, 1, ''), ('433124', '4331', '00,43,4331', '花垣县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433124', '花垣县', '', '', '', '', 3, 1, ''), ('433125', '4331', '00,43,4331', '保靖县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433125', '保靖县', '', '', '', '', 3, 1, ''), ('433126', '4331', '00,43,4331', '古丈县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433126', '古丈县', '', '', '', '', 3, 1, ''), ('433127', '4331', '00,43,4331', '永顺县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433127', '永顺县', '', '', '', '', 3, 1, ''), ('433130', '4331', '00,43,4331', '龙山县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433130', '龙山县', '', '', '', '', 3, 1, ''), ('44', '00', '00', '广东省', '44', '广东省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4401', '44', '00,44', '广州市', '44', '广东省', '4401', '广州市', '', '', '', '', '', '', 2, 1, ''), ('440103', '4401', '00,44,4401', '荔湾区', '44', '广东省', '4401', '广州市', '440103', '荔湾区', '', '', '', '', 3, 1, ''), ('440104', '4401', '00,44,4401', '越秀区', '44', '广东省', '4401', '广州市', '440104', '越秀区', '', '', '', '', 3, 1, ''), ('440105', '4401', '00,44,4401', '海珠区', '44', '广东省', '4401', '广州市', '440105', '海珠区', '', '', '', '', 3, 1, ''), ('440106', '4401', '00,44,4401', '天河区', '44', '广东省', '4401', '广州市', '440106', '天河区', '', '', '', '', 3, 1, '');
+INSERT INTO `blade_region` VALUES ('440111', '4401', '00,44,4401', '白云区', '44', '广东省', '4401', '广州市', '440111', '白云区', '', '', '', '', 3, 1, ''), ('440112', '4401', '00,44,4401', '黄埔区', '44', '广东省', '4401', '广州市', '440112', '黄埔区', '', '', '', '', 3, 1, ''), ('440113', '4401', '00,44,4401', '番禺区', '44', '广东省', '4401', '广州市', '440113', '番禺区', '', '', '', '', 3, 1, ''), ('440114', '4401', '00,44,4401', '花都区', '44', '广东省', '4401', '广州市', '440114', '花都区', '', '', '', '', 3, 1, ''), ('440115', '4401', '00,44,4401', '南沙区', '44', '广东省', '4401', '广州市', '440115', '南沙区', '', '', '', '', 3, 1, ''), ('440117', '4401', '00,44,4401', '从化区', '44', '广东省', '4401', '广州市', '440117', '从化区', '', '', '', '', 3, 1, ''), ('440118', '4401', '00,44,4401', '增城区', '44', '广东省', '4401', '广州市', '440118', '增城区', '', '', '', '', 3, 1, ''), ('4402', '44', '00,44', '韶关市', '44', '广东省', '4402', '韶关市', '', '', '', '', '', '', 2, 1, ''), ('440203', '4402', '00,44,4402', '武江区', '44', '广东省', '4402', '韶关市', '440203', '武江区', '', '', '', '', 3, 1, ''), ('440204', '4402', '00,44,4402', '浈江区', '44', '广东省', '4402', '韶关市', '440204', '浈江区', '', '', '', '', 3, 1, ''), ('440205', '4402', '00,44,4402', '曲江区', '44', '广东省', '4402', '韶关市', '440205', '曲江区', '', '', '', '', 3, 1, ''), ('440222', '4402', '00,44,4402', '始兴县', '44', '广东省', '4402', '韶关市', '440222', '始兴县', '', '', '', '', 3, 1, ''), ('440224', '4402', '00,44,4402', '仁化县', '44', '广东省', '4402', '韶关市', '440224', '仁化县', '', '', '', '', 3, 1, ''), ('440229', '4402', '00,44,4402', '翁源县', '44', '广东省', '4402', '韶关市', '440229', '翁源县', '', '', '', '', 3, 1, ''), ('440232', '4402', '00,44,4402', '乳源瑶族自治县', '44', '广东省', '4402', '韶关市', '440232', '乳源瑶族自治县', '', '', '', '', 3, 1, ''), ('440233', '4402', '00,44,4402', '新丰县', '44', '广东省', '4402', '韶关市', '440233', '新丰县', '', '', '', '', 3, 1, ''), ('440281', '4402', '00,44,4402', '乐昌市', '44', '广东省', '4402', '韶关市', '440281', '乐昌市', '', '', '', '', 3, 1, ''), ('440282', '4402', '00,44,4402', '南雄市', '44', '广东省', '4402', '韶关市', '440282', '南雄市', '', '', '', '', 3, 1, ''), ('4403', '44', '00,44', '深圳市', '44', '广东省', '4403', '深圳市', '', '', '', '', '', '', 2, 1, ''), ('440303', '4403', '00,44,4403', '罗湖区', '44', '广东省', '4403', '深圳市', '440303', '罗湖区', '', '', '', '', 3, 1, ''), ('440304', '4403', '00,44,4403', '福田区', '44', '广东省', '4403', '深圳市', '440304', '福田区', '', '', '', '', 3, 1, ''), ('440305', '4403', '00,44,4403', '南山区', '44', '广东省', '4403', '深圳市', '440305', '南山区', '', '', '', '', 3, 1, ''), ('440306', '4403', '00,44,4403', '宝安区', '44', '广东省', '4403', '深圳市', '440306', '宝安区', '', '', '', '', 3, 1, ''), ('440307', '4403', '00,44,4403', '龙岗区', '44', '广东省', '4403', '深圳市', '440307', '龙岗区', '', '', '', '', 3, 1, ''), ('440308', '4403', '00,44,4403', '盐田区', '44', '广东省', '4403', '深圳市', '440308', '盐田区', '', '', '', '', 3, 1, ''), ('440309', '4403', '00,44,4403', '龙华区', '44', '广东省', '4403', '深圳市', '440309', '龙华区', '', '', '', '', 3, 1, ''), ('440310', '4403', '00,44,4403', '坪山区', '44', '广东省', '4403', '深圳市', '440310', '坪山区', '', '', '', '', 3, 1, ''), ('440311', '4403', '00,44,4403', '光明区', '44', '广东省', '4403', '深圳市', '440311', '光明区', '', '', '', '', 3, 1, ''), ('4404', '44', '00,44', '珠海市', '44', '广东省', '4404', '珠海市', '', '', '', '', '', '', 2, 1, ''), ('440402', '4404', '00,44,4404', '香洲区', '44', '广东省', '4404', '珠海市', '440402', '香洲区', '', '', '', '', 3, 1, ''), ('440403', '4404', '00,44,4404', '斗门区', '44', '广东省', '4404', '珠海市', '440403', '斗门区', '', '', '', '', 3, 1, ''), ('440404', '4404', '00,44,4404', '金湾区', '44', '广东省', '4404', '珠海市', '440404', '金湾区', '', '', '', '', 3, 1, ''), ('4405', '44', '00,44', '汕头市', '44', '广东省', '4405', '汕头市', '', '', '', '', '', '', 2, 1, ''), ('440507', '4405', '00,44,4405', '龙湖区', '44', '广东省', '4405', '汕头市', '440507', '龙湖区', '', '', '', '', 3, 1, ''), ('440511', '4405', '00,44,4405', '金平区', '44', '广东省', '4405', '汕头市', '440511', '金平区', '', '', '', '', 3, 1, ''), ('440512', '4405', '00,44,4405', '濠江区', '44', '广东省', '4405', '汕头市', '440512', '濠江区', '', '', '', '', 3, 1, ''), ('440513', '4405', '00,44,4405', '潮阳区', '44', '广东省', '4405', '汕头市', '440513', '潮阳区', '', '', '', '', 3, 1, ''), ('440514', '4405', '00,44,4405', '潮南区', '44', '广东省', '4405', '汕头市', '440514', '潮南区', '', '', '', '', 3, 1, ''), ('440515', '4405', '00,44,4405', '澄海区', '44', '广东省', '4405', '汕头市', '440515', '澄海区', '', '', '', '', 3, 1, ''), ('440523', '4405', '00,44,4405', '南澳县', '44', '广东省', '4405', '汕头市', '440523', '南澳县', '', '', '', '', 3, 1, ''), ('4406', '44', '00,44', '佛山市', '44', '广东省', '4406', '佛山市', '', '', '', '', '', '', 2, 1, ''), ('440604', '4406', '00,44,4406', '禅城区', '44', '广东省', '4406', '佛山市', '440604', '禅城区', '', '', '', '', 3, 1, ''), ('440605', '4406', '00,44,4406', '南海区', '44', '广东省', '4406', '佛山市', '440605', '南海区', '', '', '', '', 3, 1, ''), ('440606', '4406', '00,44,4406', '顺德区', '44', '广东省', '4406', '佛山市', '440606', '顺德区', '', '', '', '', 3, 1, ''), ('440607', '4406', '00,44,4406', '三水区', '44', '广东省', '4406', '佛山市', '440607', '三水区', '', '', '', '', 3, 1, ''), ('440608', '4406', '00,44,4406', '高明区', '44', '广东省', '4406', '佛山市', '440608', '高明区', '', '', '', '', 3, 1, ''), ('4407', '44', '00,44', '江门市', '44', '广东省', '4407', '江门市', '', '', '', '', '', '', 2, 1, ''), ('440703', '4407', '00,44,4407', '蓬江区', '44', '广东省', '4407', '江门市', '440703', '蓬江区', '', '', '', '', 3, 1, ''), ('440704', '4407', '00,44,4407', '江海区', '44', '广东省', '4407', '江门市', '440704', '江海区', '', '', '', '', 3, 1, ''), ('440705', '4407', '00,44,4407', '新会区', '44', '广东省', '4407', '江门市', '440705', '新会区', '', '', '', '', 3, 1, ''), ('440781', '4407', '00,44,4407', '台山市', '44', '广东省', '4407', '江门市', '440781', '台山市', '', '', '', '', 3, 1, ''), ('440783', '4407', '00,44,4407', '开平市', '44', '广东省', '4407', '江门市', '440783', '开平市', '', '', '', '', 3, 1, ''), ('440784', '4407', '00,44,4407', '鹤山市', '44', '广东省', '4407', '江门市', '440784', '鹤山市', '', '', '', '', 3, 1, ''), ('440785', '4407', '00,44,4407', '恩平市', '44', '广东省', '4407', '江门市', '440785', '恩平市', '', '', '', '', 3, 1, ''), ('4408', '44', '00,44', '湛江市', '44', '广东省', '4408', '湛江市', '', '', '', '', '', '', 2, 1, ''), ('440802', '4408', '00,44,4408', '赤坎区', '44', '广东省', '4408', '湛江市', '440802', '赤坎区', '', '', '', '', 3, 1, ''), ('440803', '4408', '00,44,4408', '霞山区', '44', '广东省', '4408', '湛江市', '440803', '霞山区', '', '', '', '', 3, 1, ''), ('440804', '4408', '00,44,4408', '坡头区', '44', '广东省', '4408', '湛江市', '440804', '坡头区', '', '', '', '', 3, 1, ''), ('440811', '4408', '00,44,4408', '麻章区', '44', '广东省', '4408', '湛江市', '440811', '麻章区', '', '', '', '', 3, 1, ''), ('440823', '4408', '00,44,4408', '遂溪县', '44', '广东省', '4408', '湛江市', '440823', '遂溪县', '', '', '', '', 3, 1, ''), ('440825', '4408', '00,44,4408', '徐闻县', '44', '广东省', '4408', '湛江市', '440825', '徐闻县', '', '', '', '', 3, 1, ''), ('440881', '4408', '00,44,4408', '廉江市', '44', '广东省', '4408', '湛江市', '440881', '廉江市', '', '', '', '', 3, 1, ''), ('440882', '4408', '00,44,4408', '雷州市', '44', '广东省', '4408', '湛江市', '440882', '雷州市', '', '', '', '', 3, 1, ''), ('440883', '4408', '00,44,4408', '吴川市', '44', '广东省', '4408', '湛江市', '440883', '吴川市', '', '', '', '', 3, 1, ''), ('4409', '44', '00,44', '茂名市', '44', '广东省', '4409', '茂名市', '', '', '', '', '', '', 2, 1, ''), ('440902', '4409', '00,44,4409', '茂南区', '44', '广东省', '4409', '茂名市', '440902', '茂南区', '', '', '', '', 3, 1, ''), ('440904', '4409', '00,44,4409', '电白区', '44', '广东省', '4409', '茂名市', '440904', '电白区', '', '', '', '', 3, 1, ''), ('440981', '4409', '00,44,4409', '高州市', '44', '广东省', '4409', '茂名市', '440981', '高州市', '', '', '', '', 3, 1, ''), ('440982', '4409', '00,44,4409', '化州市', '44', '广东省', '4409', '茂名市', '440982', '化州市', '', '', '', '', 3, 1, ''), ('440983', '4409', '00,44,4409', '信宜市', '44', '广东省', '4409', '茂名市', '440983', '信宜市', '', '', '', '', 3, 1, ''), ('4412', '44', '00,44', '肇庆市', '44', '广东省', '4412', '肇庆市', '', '', '', '', '', '', 2, 1, ''), ('441202', '4412', '00,44,4412', '端州区', '44', '广东省', '4412', '肇庆市', '441202', '端州区', '', '', '', '', 3, 1, ''), ('441203', '4412', '00,44,4412', '鼎湖区', '44', '广东省', '4412', '肇庆市', '441203', '鼎湖区', '', '', '', '', 3, 1, ''), ('441204', '4412', '00,44,4412', '高要区', '44', '广东省', '4412', '肇庆市', '441204', '高要区', '', '', '', '', 3, 1, ''), ('441223', '4412', '00,44,4412', '广宁县', '44', '广东省', '4412', '肇庆市', '441223', '广宁县', '', '', '', '', 3, 1, ''), ('441224', '4412', '00,44,4412', '怀集县', '44', '广东省', '4412', '肇庆市', '441224', '怀集县', '', '', '', '', 3, 1, ''), ('441225', '4412', '00,44,4412', '封开县', '44', '广东省', '4412', '肇庆市', '441225', '封开县', '', '', '', '', 3, 1, ''), ('441226', '4412', '00,44,4412', '德庆县', '44', '广东省', '4412', '肇庆市', '441226', '德庆县', '', '', '', '', 3, 1, ''), ('441284', '4412', '00,44,4412', '四会市', '44', '广东省', '4412', '肇庆市', '441284', '四会市', '', '', '', '', 3, 1, ''), ('4413', '44', '00,44', '惠州市', '44', '广东省', '4413', '惠州市', '', '', '', '', '', '', 2, 1, ''), ('441302', '4413', '00,44,4413', '惠城区', '44', '广东省', '4413', '惠州市', '441302', '惠城区', '', '', '', '', 3, 1, ''), ('441303', '4413', '00,44,4413', '惠阳区', '44', '广东省', '4413', '惠州市', '441303', '惠阳区', '', '', '', '', 3, 1, ''), ('441322', '4413', '00,44,4413', '博罗县', '44', '广东省', '4413', '惠州市', '441322', '博罗县', '', '', '', '', 3, 1, ''), ('441323', '4413', '00,44,4413', '惠东县', '44', '广东省', '4413', '惠州市', '441323', '惠东县', '', '', '', '', 3, 1, ''), ('441324', '4413', '00,44,4413', '龙门县', '44', '广东省', '4413', '惠州市', '441324', '龙门县', '', '', '', '', 3, 1, ''), ('4414', '44', '00,44', '梅州市', '44', '广东省', '4414', '梅州市', '', '', '', '', '', '', 2, 1, ''), ('441402', '4414', '00,44,4414', '梅江区', '44', '广东省', '4414', '梅州市', '441402', '梅江区', '', '', '', '', 3, 1, ''), ('441403', '4414', '00,44,4414', '梅县区', '44', '广东省', '4414', '梅州市', '441403', '梅县区', '', '', '', '', 3, 1, ''), ('441422', '4414', '00,44,4414', '大埔县', '44', '广东省', '4414', '梅州市', '441422', '大埔县', '', '', '', '', 3, 1, ''), ('441423', '4414', '00,44,4414', '丰顺县', '44', '广东省', '4414', '梅州市', '441423', '丰顺县', '', '', '', '', 3, 1, ''), ('441424', '4414', '00,44,4414', '五华县', '44', '广东省', '4414', '梅州市', '441424', '五华县', '', '', '', '', 3, 1, ''), ('441426', '4414', '00,44,4414', '平远县', '44', '广东省', '4414', '梅州市', '441426', '平远县', '', '', '', '', 3, 1, ''), ('441427', '4414', '00,44,4414', '蕉岭县', '44', '广东省', '4414', '梅州市', '441427', '蕉岭县', '', '', '', '', 3, 1, ''), ('441481', '4414', '00,44,4414', '兴宁市', '44', '广东省', '4414', '梅州市', '441481', '兴宁市', '', '', '', '', 3, 1, ''), ('4415', '44', '00,44', '汕尾市', '44', '广东省', '4415', '汕尾市', '', '', '', '', '', '', 2, 1, ''), ('441502', '4415', '00,44,4415', '城区', '44', '广东省', '4415', '汕尾市', '441502', '城区', '', '', '', '', 3, 1, ''), ('441521', '4415', '00,44,4415', '海丰县', '44', '广东省', '4415', '汕尾市', '441521', '海丰县', '', '', '', '', 3, 1, ''), ('441523', '4415', '00,44,4415', '陆河县', '44', '广东省', '4415', '汕尾市', '441523', '陆河县', '', '', '', '', 3, 1, ''), ('441581', '4415', '00,44,4415', '陆丰市', '44', '广东省', '4415', '汕尾市', '441581', '陆丰市', '', '', '', '', 3, 1, ''), ('4416', '44', '00,44', '河源市', '44', '广东省', '4416', '河源市', '', '', '', '', '', '', 2, 1, ''), ('441602', '4416', '00,44,4416', '源城区', '44', '广东省', '4416', '河源市', '441602', '源城区', '', '', '', '', 3, 1, ''), ('441621', '4416', '00,44,4416', '紫金县', '44', '广东省', '4416', '河源市', '441621', '紫金县', '', '', '', '', 3, 1, ''), ('441622', '4416', '00,44,4416', '龙川县', '44', '广东省', '4416', '河源市', '441622', '龙川县', '', '', '', '', 3, 1, ''), ('441623', '4416', '00,44,4416', '连平县', '44', '广东省', '4416', '河源市', '441623', '连平县', '', '', '', '', 3, 1, ''), ('441624', '4416', '00,44,4416', '和平县', '44', '广东省', '4416', '河源市', '441624', '和平县', '', '', '', '', 3, 1, ''), ('441625', '4416', '00,44,4416', '东源县', '44', '广东省', '4416', '河源市', '441625', '东源县', '', '', '', '', 3, 1, ''), ('4417', '44', '00,44', '阳江市', '44', '广东省', '4417', '阳江市', '', '', '', '', '', '', 2, 1, ''), ('441702', '4417', '00,44,4417', '江城区', '44', '广东省', '4417', '阳江市', '441702', '江城区', '', '', '', '', 3, 1, ''), ('441704', '4417', '00,44,4417', '阳东区', '44', '广东省', '4417', '阳江市', '441704', '阳东区', '', '', '', '', 3, 1, ''), ('441721', '4417', '00,44,4417', '阳西县', '44', '广东省', '4417', '阳江市', '441721', '阳西县', '', '', '', '', 3, 1, ''), ('441781', '4417', '00,44,4417', '阳春市', '44', '广东省', '4417', '阳江市', '441781', '阳春市', '', '', '', '', 3, 1, ''), ('4418', '44', '00,44', '清远市', '44', '广东省', '4418', '清远市', '', '', '', '', '', '', 2, 1, ''), ('441802', '4418', '00,44,4418', '清城区', '44', '广东省', '4418', '清远市', '441802', '清城区', '', '', '', '', 3, 1, ''), ('441803', '4418', '00,44,4418', '清新区', '44', '广东省', '4418', '清远市', '441803', '清新区', '', '', '', '', 3, 1, ''), ('441821', '4418', '00,44,4418', '佛冈县', '44', '广东省', '4418', '清远市', '441821', '佛冈县', '', '', '', '', 3, 1, ''), ('441823', '4418', '00,44,4418', '阳山县', '44', '广东省', '4418', '清远市', '441823', '阳山县', '', '', '', '', 3, 1, ''), ('441825', '4418', '00,44,4418', '连山壮族瑶族自治县', '44', '广东省', '4418', '清远市', '441825', '连山壮族瑶族自治县', '', '', '', '', 3, 1, ''), ('441826', '4418', '00,44,4418', '连南瑶族自治县', '44', '广东省', '4418', '清远市', '441826', '连南瑶族自治县', '', '', '', '', 3, 1, ''), ('441881', '4418', '00,44,4418', '英德市', '44', '广东省', '4418', '清远市', '441881', '英德市', '', '', '', '', 3, 1, ''), ('441882', '4418', '00,44,4418', '连州市', '44', '广东省', '4418', '清远市', '441882', '连州市', '', '', '', '', 3, 1, ''), ('4419', '44', '00,44', '东莞市', '44', '广东省', '4419', '东莞市', '', '', '', '', '', '', 2, 1, ''), ('441900', '4419', '00,44,4419', '东莞市', '44', '广东省', '4419', '东莞市', '441900', '东莞市', '', '', '', '', 3, 1, ''), ('4420', '44', '00,44', '中山市', '44', '广东省', '4420', '中山市', '', '', '', '', '', '', 2, 1, ''), ('442000', '4420', '00,44,4420', '中山市', '44', '广东省', '4420', '中山市', '442000', '中山市', '', '', '', '', 3, 1, ''), ('4451', '44', '00,44', '潮州市', '44', '广东省', '4451', '潮州市', '', '', '', '', '', '', 2, 1, ''), ('445102', '4451', '00,44,4451', '湘桥区', '44', '广东省', '4451', '潮州市', '445102', '湘桥区', '', '', '', '', 3, 1, ''), ('445103', '4451', '00,44,4451', '潮安区', '44', '广东省', '4451', '潮州市', '445103', '潮安区', '', '', '', '', 3, 1, ''), ('445122', '4451', '00,44,4451', '饶平县', '44', '广东省', '4451', '潮州市', '445122', '饶平县', '', '', '', '', 3, 1, ''), ('4452', '44', '00,44', '揭阳市', '44', '广东省', '4452', '揭阳市', '', '', '', '', '', '', 2, 1, ''), ('445202', '4452', '00,44,4452', '榕城区', '44', '广东省', '4452', '揭阳市', '445202', '榕城区', '', '', '', '', 3, 1, ''), ('445203', '4452', '00,44,4452', '揭东区', '44', '广东省', '4452', '揭阳市', '445203', '揭东区', '', '', '', '', 3, 1, ''), ('445222', '4452', '00,44,4452', '揭西县', '44', '广东省', '4452', '揭阳市', '445222', '揭西县', '', '', '', '', 3, 1, ''), ('445224', '4452', '00,44,4452', '惠来县', '44', '广东省', '4452', '揭阳市', '445224', '惠来县', '', '', '', '', 3, 1, ''), ('445281', '4452', '00,44,4452', '普宁市', '44', '广东省', '4452', '揭阳市', '445281', '普宁市', '', '', '', '', 3, 1, ''), ('4453', '44', '00,44', '云浮市', '44', '广东省', '4453', '云浮市', '', '', '', '', '', '', 2, 1, ''), ('445302', '4453', '00,44,4453', '云城区', '44', '广东省', '4453', '云浮市', '445302', '云城区', '', '', '', '', 3, 1, ''), ('445303', '4453', '00,44,4453', '云安区', '44', '广东省', '4453', '云浮市', '445303', '云安区', '', '', '', '', 3, 1, ''), ('445321', '4453', '00,44,4453', '新兴县', '44', '广东省', '4453', '云浮市', '445321', '新兴县', '', '', '', '', 3, 1, ''), ('445322', '4453', '00,44,4453', '郁南县', '44', '广东省', '4453', '云浮市', '445322', '郁南县', '', '', '', '', 3, 1, ''), ('445381', '4453', '00,44,4453', '罗定市', '44', '广东省', '4453', '云浮市', '445381', '罗定市', '', '', '', '', 3, 1, ''), ('45', '00', '00', '广西壮族自治区', '45', '广西壮族自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('4501', '45', '00,45', '南宁市', '45', '广西壮族自治区', '4501', '南宁市', '', '', '', '', '', '', 2, 1, ''), ('450102', '4501', '00,45,4501', '兴宁区', '45', '广西壮族自治区', '4501', '南宁市', '450102', '兴宁区', '', '', '', '', 3, 1, ''), ('450103', '4501', '00,45,4501', '青秀区', '45', '广西壮族自治区', '4501', '南宁市', '450103', '青秀区', '', '', '', '', 3, 1, ''), ('450105', '4501', '00,45,4501', '江南区', '45', '广西壮族自治区', '4501', '南宁市', '450105', '江南区', '', '', '', '', 3, 1, ''), ('450107', '4501', '00,45,4501', '西乡塘区', '45', '广西壮族自治区', '4501', '南宁市', '450107', '西乡塘区', '', '', '', '', 3, 1, ''), ('450108', '4501', '00,45,4501', '良庆区', '45', '广西壮族自治区', '4501', '南宁市', '450108', '良庆区', '', '', '', '', 3, 1, ''), ('450109', '4501', '00,45,4501', '邕宁区', '45', '广西壮族自治区', '4501', '南宁市', '450109', '邕宁区', '', '', '', '', 3, 1, ''), ('450110', '4501', '00,45,4501', '武鸣区', '45', '广西壮族自治区', '4501', '南宁市', '450110', '武鸣区', '', '', '', '', 3, 1, ''), ('450123', '4501', '00,45,4501', '隆安县', '45', '广西壮族自治区', '4501', '南宁市', '450123', '隆安县', '', '', '', '', 3, 1, ''), ('450124', '4501', '00,45,4501', '马山县', '45', '广西壮族自治区', '4501', '南宁市', '450124', '马山县', '', '', '', '', 3, 1, ''), ('450125', '4501', '00,45,4501', '上林县', '45', '广西壮族自治区', '4501', '南宁市', '450125', '上林县', '', '', '', '', 3, 1, ''), ('450126', '4501', '00,45,4501', '宾阳县', '45', '广西壮族自治区', '4501', '南宁市', '450126', '宾阳县', '', '', '', '', 3, 1, ''), ('450127', '4501', '00,45,4501', '横县', '45', '广西壮族自治区', '4501', '南宁市', '450127', '横县', '', '', '', '', 3, 1, ''), ('4502', '45', '00,45', '柳州市', '45', '广西壮族自治区', '4502', '柳州市', '', '', '', '', '', '', 2, 1, ''), ('450202', '4502', '00,45,4502', '城中区', '45', '广西壮族自治区', '4502', '柳州市', '450202', '城中区', '', '', '', '', 3, 1, ''), ('450203', '4502', '00,45,4502', '鱼峰区', '45', '广西壮族自治区', '4502', '柳州市', '450203', '鱼峰区', '', '', '', '', 3, 1, ''), ('450204', '4502', '00,45,4502', '柳南区', '45', '广西壮族自治区', '4502', '柳州市', '450204', '柳南区', '', '', '', '', 3, 1, ''), ('450205', '4502', '00,45,4502', '柳北区', '45', '广西壮族自治区', '4502', '柳州市', '450205', '柳北区', '', '', '', '', 3, 1, ''), ('450206', '4502', '00,45,4502', '柳江区', '45', '广西壮族自治区', '4502', '柳州市', '450206', '柳江区', '', '', '', '', 3, 1, ''), ('450222', '4502', '00,45,4502', '柳城县', '45', '广西壮族自治区', '4502', '柳州市', '450222', '柳城县', '', '', '', '', 3, 1, ''), ('450223', '4502', '00,45,4502', '鹿寨县', '45', '广西壮族自治区', '4502', '柳州市', '450223', '鹿寨县', '', '', '', '', 3, 1, ''), ('450224', '4502', '00,45,4502', '融安县', '45', '广西壮族自治区', '4502', '柳州市', '450224', '融安县', '', '', '', '', 3, 1, ''), ('450225', '4502', '00,45,4502', '融水苗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450225', '融水苗族自治县', '', '', '', '', 3, 1, ''), ('450226', '4502', '00,45,4502', '三江侗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450226', '三江侗族自治县', '', '', '', '', 3, 1, ''), ('4503', '45', '00,45', '桂林市', '45', '广西壮族自治区', '4503', '桂林市', '', '', '', '', '', '', 2, 1, ''), ('450302', '4503', '00,45,4503', '秀峰区', '45', '广西壮族自治区', '4503', '桂林市', '450302', '秀峰区', '', '', '', '', 3, 1, ''), ('450303', '4503', '00,45,4503', '叠彩区', '45', '广西壮族自治区', '4503', '桂林市', '450303', '叠彩区', '', '', '', '', 3, 1, ''), ('450304', '4503', '00,45,4503', '象山区', '45', '广西壮族自治区', '4503', '桂林市', '450304', '象山区', '', '', '', '', 3, 1, ''), ('450305', '4503', '00,45,4503', '七星区', '45', '广西壮族自治区', '4503', '桂林市', '450305', '七星区', '', '', '', '', 3, 1, ''), ('450311', '4503', '00,45,4503', '雁山区', '45', '广西壮族自治区', '4503', '桂林市', '450311', '雁山区', '', '', '', '', 3, 1, ''), ('450312', '4503', '00,45,4503', '临桂区', '45', '广西壮族自治区', '4503', '桂林市', '450312', '临桂区', '', '', '', '', 3, 1, ''), ('450321', '4503', '00,45,4503', '阳朔县', '45', '广西壮族自治区', '4503', '桂林市', '450321', '阳朔县', '', '', '', '', 3, 1, ''), ('450323', '4503', '00,45,4503', '灵川县', '45', '广西壮族自治区', '4503', '桂林市', '450323', '灵川县', '', '', '', '', 3, 1, ''), ('450324', '4503', '00,45,4503', '全州县', '45', '广西壮族自治区', '4503', '桂林市', '450324', '全州县', '', '', '', '', 3, 1, ''), ('450325', '4503', '00,45,4503', '兴安县', '45', '广西壮族自治区', '4503', '桂林市', '450325', '兴安县', '', '', '', '', 3, 1, ''), ('450326', '4503', '00,45,4503', '永福县', '45', '广西壮族自治区', '4503', '桂林市', '450326', '永福县', '', '', '', '', 3, 1, ''), ('450327', '4503', '00,45,4503', '灌阳县', '45', '广西壮族自治区', '4503', '桂林市', '450327', '灌阳县', '', '', '', '', 3, 1, ''), ('450328', '4503', '00,45,4503', '龙胜各族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450328', '龙胜各族自治县', '', '', '', '', 3, 1, ''), ('450329', '4503', '00,45,4503', '资源县', '45', '广西壮族自治区', '4503', '桂林市', '450329', '资源县', '', '', '', '', 3, 1, ''), ('450330', '4503', '00,45,4503', '平乐县', '45', '广西壮族自治区', '4503', '桂林市', '450330', '平乐县', '', '', '', '', 3, 1, ''), ('450332', '4503', '00,45,4503', '恭城瑶族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450332', '恭城瑶族自治县', '', '', '', '', 3, 1, ''), ('450381', '4503', '00,45,4503', '荔浦市', '45', '广西壮族自治区', '4503', '桂林市', '450381', '荔浦市', '', '', '', '', 3, 1, ''), ('4504', '45', '00,45', '梧州市', '45', '广西壮族自治区', '4504', '梧州市', '', '', '', '', '', '', 2, 1, ''), ('450403', '4504', '00,45,4504', '万秀区', '45', '广西壮族自治区', '4504', '梧州市', '450403', '万秀区', '', '', '', '', 3, 1, ''), ('450405', '4504', '00,45,4504', '长洲区', '45', '广西壮族自治区', '4504', '梧州市', '450405', '长洲区', '', '', '', '', 3, 1, ''), ('450406', '4504', '00,45,4504', '龙圩区', '45', '广西壮族自治区', '4504', '梧州市', '450406', '龙圩区', '', '', '', '', 3, 1, ''), ('450421', '4504', '00,45,4504', '苍梧县', '45', '广西壮族自治区', '4504', '梧州市', '450421', '苍梧县', '', '', '', '', 3, 1, ''), ('450422', '4504', '00,45,4504', '藤县', '45', '广西壮族自治区', '4504', '梧州市', '450422', '藤县', '', '', '', '', 3, 1, ''), ('450423', '4504', '00,45,4504', '蒙山县', '45', '广西壮族自治区', '4504', '梧州市', '450423', '蒙山县', '', '', '', '', 3, 1, ''), ('450481', '4504', '00,45,4504', '岑溪市', '45', '广西壮族自治区', '4504', '梧州市', '450481', '岑溪市', '', '', '', '', 3, 1, ''), ('4505', '45', '00,45', '北海市', '45', '广西壮族自治区', '4505', '北海市', '', '', '', '', '', '', 2, 1, ''), ('450502', '4505', '00,45,4505', '海城区', '45', '广西壮族自治区', '4505', '北海市', '450502', '海城区', '', '', '', '', 3, 1, ''), ('450503', '4505', '00,45,4505', '银海区', '45', '广西壮族自治区', '4505', '北海市', '450503', '银海区', '', '', '', '', 3, 1, ''), ('450512', '4505', '00,45,4505', '铁山港区', '45', '广西壮族自治区', '4505', '北海市', '450512', '铁山港区', '', '', '', '', 3, 1, ''), ('450521', '4505', '00,45,4505', '合浦县', '45', '广西壮族自治区', '4505', '北海市', '450521', '合浦县', '', '', '', '', 3, 1, ''), ('4506', '45', '00,45', '防城港市', '45', '广西壮族自治区', '4506', '防城港市', '', '', '', '', '', '', 2, 1, ''), ('450602', '4506', '00,45,4506', '港口区', '45', '广西壮族自治区', '4506', '防城港市', '450602', '港口区', '', '', '', '', 3, 1, ''), ('450603', '4506', '00,45,4506', '防城区', '45', '广西壮族自治区', '4506', '防城港市', '450603', '防城区', '', '', '', '', 3, 1, ''), ('450621', '4506', '00,45,4506', '上思县', '45', '广西壮族自治区', '4506', '防城港市', '450621', '上思县', '', '', '', '', 3, 1, ''), ('450681', '4506', '00,45,4506', '东兴市', '45', '广西壮族自治区', '4506', '防城港市', '450681', '东兴市', '', '', '', '', 3, 1, ''), ('4507', '45', '00,45', '钦州市', '45', '广西壮族自治区', '4507', '钦州市', '', '', '', '', '', '', 2, 1, ''), ('450702', '4507', '00,45,4507', '钦南区', '45', '广西壮族自治区', '4507', '钦州市', '450702', '钦南区', '', '', '', '', 3, 1, ''), ('450703', '4507', '00,45,4507', '钦北区', '45', '广西壮族自治区', '4507', '钦州市', '450703', '钦北区', '', '', '', '', 3, 1, ''), ('450721', '4507', '00,45,4507', '灵山县', '45', '广西壮族自治区', '4507', '钦州市', '450721', '灵山县', '', '', '', '', 3, 1, ''), ('450722', '4507', '00,45,4507', '浦北县', '45', '广西壮族自治区', '4507', '钦州市', '450722', '浦北县', '', '', '', '', 3, 1, ''), ('4508', '45', '00,45', '贵港市', '45', '广西壮族自治区', '4508', '贵港市', '', '', '', '', '', '', 2, 1, ''), ('450802', '4508', '00,45,4508', '港北区', '45', '广西壮族自治区', '4508', '贵港市', '450802', '港北区', '', '', '', '', 3, 1, ''), ('450803', '4508', '00,45,4508', '港南区', '45', '广西壮族自治区', '4508', '贵港市', '450803', '港南区', '', '', '', '', 3, 1, ''), ('450804', '4508', '00,45,4508', '覃塘区', '45', '广西壮族自治区', '4508', '贵港市', '450804', '覃塘区', '', '', '', '', 3, 1, ''), ('450821', '4508', '00,45,4508', '平南县', '45', '广西壮族自治区', '4508', '贵港市', '450821', '平南县', '', '', '', '', 3, 1, ''), ('450881', '4508', '00,45,4508', '桂平市', '45', '广西壮族自治区', '4508', '贵港市', '450881', '桂平市', '', '', '', '', 3, 1, ''), ('4509', '45', '00,45', '玉林市', '45', '广西壮族自治区', '4509', '玉林市', '', '', '', '', '', '', 2, 1, ''), ('450902', '4509', '00,45,4509', '玉州区', '45', '广西壮族自治区', '4509', '玉林市', '450902', '玉州区', '', '', '', '', 3, 1, ''), ('450903', '4509', '00,45,4509', '福绵区', '45', '广西壮族自治区', '4509', '玉林市', '450903', '福绵区', '', '', '', '', 3, 1, ''), ('450921', '4509', '00,45,4509', '容县', '45', '广西壮族自治区', '4509', '玉林市', '450921', '容县', '', '', '', '', 3, 1, ''), ('450922', '4509', '00,45,4509', '陆川县', '45', '广西壮族自治区', '4509', '玉林市', '450922', '陆川县', '', '', '', '', 3, 1, ''), ('450923', '4509', '00,45,4509', '博白县', '45', '广西壮族自治区', '4509', '玉林市', '450923', '博白县', '', '', '', '', 3, 1, ''), ('450924', '4509', '00,45,4509', '兴业县', '45', '广西壮族自治区', '4509', '玉林市', '450924', '兴业县', '', '', '', '', 3, 1, ''), ('450981', '4509', '00,45,4509', '北流市', '45', '广西壮族自治区', '4509', '玉林市', '450981', '北流市', '', '', '', '', 3, 1, ''), ('4510', '45', '00,45', '百色市', '45', '广西壮族自治区', '4510', '百色市', '', '', '', '', '', '', 2, 1, ''), ('451002', '4510', '00,45,4510', '右江区', '45', '广西壮族自治区', '4510', '百色市', '451002', '右江区', '', '', '', '', 3, 1, ''), ('451003', '4510', '00,45,4510', '田阳区', '45', '广西壮族自治区', '4510', '百色市', '451003', '田阳区', '', '', '', '', 3, 1, ''), ('451022', '4510', '00,45,4510', '田东县', '45', '广西壮族自治区', '4510', '百色市', '451022', '田东县', '', '', '', '', 3, 1, ''), ('451024', '4510', '00,45,4510', '德保县', '45', '广西壮族自治区', '4510', '百色市', '451024', '德保县', '', '', '', '', 3, 1, ''), ('451026', '4510', '00,45,4510', '那坡县', '45', '广西壮族自治区', '4510', '百色市', '451026', '那坡县', '', '', '', '', 3, 1, ''), ('451027', '4510', '00,45,4510', '凌云县', '45', '广西壮族自治区', '4510', '百色市', '451027', '凌云县', '', '', '', '', 3, 1, ''), ('451028', '4510', '00,45,4510', '乐业县', '45', '广西壮族自治区', '4510', '百色市', '451028', '乐业县', '', '', '', '', 3, 1, ''), ('451029', '4510', '00,45,4510', '田林县', '45', '广西壮族自治区', '4510', '百色市', '451029', '田林县', '', '', '', '', 3, 1, ''), ('451030', '4510', '00,45,4510', '西林县', '45', '广西壮族自治区', '4510', '百色市', '451030', '西林县', '', '', '', '', 3, 1, ''), ('451031', '4510', '00,45,4510', '隆林各族自治县', '45', '广西壮族自治区', '4510', '百色市', '451031', '隆林各族自治县', '', '', '', '', 3, 1, ''), ('451081', '4510', '00,45,4510', '靖西市', '45', '广西壮族自治区', '4510', '百色市', '451081', '靖西市', '', '', '', '', 3, 1, ''), ('451082', '4510', '00,45,4510', '平果市', '45', '广西壮族自治区', '4510', '百色市', '451082', '平果市', '', '', '', '', 3, 1, ''), ('4511', '45', '00,45', '贺州市', '45', '广西壮族自治区', '4511', '贺州市', '', '', '', '', '', '', 2, 1, ''), ('451102', '4511', '00,45,4511', '八步区', '45', '广西壮族自治区', '4511', '贺州市', '451102', '八步区', '', '', '', '', 3, 1, ''), ('451103', '4511', '00,45,4511', '平桂区', '45', '广西壮族自治区', '4511', '贺州市', '451103', '平桂区', '', '', '', '', 3, 1, ''), ('451121', '4511', '00,45,4511', '昭平县', '45', '广西壮族自治区', '4511', '贺州市', '451121', '昭平县', '', '', '', '', 3, 1, ''), ('451122', '4511', '00,45,4511', '钟山县', '45', '广西壮族自治区', '4511', '贺州市', '451122', '钟山县', '', '', '', '', 3, 1, ''), ('451123', '4511', '00,45,4511', '富川瑶族自治县', '45', '广西壮族自治区', '4511', '贺州市', '451123', '富川瑶族自治县', '', '', '', '', 3, 1, ''), ('4512', '45', '00,45', '河池市', '45', '广西壮族自治区', '4512', '河池市', '', '', '', '', '', '', 2, 1, ''), ('451202', '4512', '00,45,4512', '金城江区', '45', '广西壮族自治区', '4512', '河池市', '451202', '金城江区', '', '', '', '', 3, 1, ''), ('451203', '4512', '00,45,4512', '宜州区', '45', '广西壮族自治区', '4512', '河池市', '451203', '宜州区', '', '', '', '', 3, 1, ''), ('451221', '4512', '00,45,4512', '南丹县', '45', '广西壮族自治区', '4512', '河池市', '451221', '南丹县', '', '', '', '', 3, 1, ''), ('451222', '4512', '00,45,4512', '天峨县', '45', '广西壮族自治区', '4512', '河池市', '451222', '天峨县', '', '', '', '', 3, 1, ''), ('451223', '4512', '00,45,4512', '凤山县', '45', '广西壮族自治区', '4512', '河池市', '451223', '凤山县', '', '', '', '', 3, 1, ''), ('451224', '4512', '00,45,4512', '东兰县', '45', '广西壮族自治区', '4512', '河池市', '451224', '东兰县', '', '', '', '', 3, 1, ''), ('451225', '4512', '00,45,4512', '罗城仫佬族自治县', '45', '广西壮族自治区', '4512', '河池市', '451225', '罗城仫佬族自治县', '', '', '', '', 3, 1, ''), ('451226', '4512', '00,45,4512', '环江毛南族自治县', '45', '广西壮族自治区', '4512', '河池市', '451226', '环江毛南族自治县', '', '', '', '', 3, 1, ''), ('451227', '4512', '00,45,4512', '巴马瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451227', '巴马瑶族自治县', '', '', '', '', 3, 1, ''), ('451228', '4512', '00,45,4512', '都安瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451228', '都安瑶族自治县', '', '', '', '', 3, 1, ''), ('451229', '4512', '00,45,4512', '大化瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451229', '大化瑶族自治县', '', '', '', '', 3, 1, ''), ('4513', '45', '00,45', '来宾市', '45', '广西壮族自治区', '4513', '来宾市', '', '', '', '', '', '', 2, 1, ''), ('451302', '4513', '00,45,4513', '兴宾区', '45', '广西壮族自治区', '4513', '来宾市', '451302', '兴宾区', '', '', '', '', 3, 1, ''), ('451321', '4513', '00,45,4513', '忻城县', '45', '广西壮族自治区', '4513', '来宾市', '451321', '忻城县', '', '', '', '', 3, 1, ''), ('451322', '4513', '00,45,4513', '象州县', '45', '广西壮族自治区', '4513', '来宾市', '451322', '象州县', '', '', '', '', 3, 1, ''), ('451323', '4513', '00,45,4513', '武宣县', '45', '广西壮族自治区', '4513', '来宾市', '451323', '武宣县', '', '', '', '', 3, 1, ''), ('451324', '4513', '00,45,4513', '金秀瑶族自治县', '45', '广西壮族自治区', '4513', '来宾市', '451324', '金秀瑶族自治县', '', '', '', '', 3, 1, ''), ('451381', '4513', '00,45,4513', '合山市', '45', '广西壮族自治区', '4513', '来宾市', '451381', '合山市', '', '', '', '', 3, 1, ''), ('4514', '45', '00,45', '崇左市', '45', '广西壮族自治区', '4514', '崇左市', '', '', '', '', '', '', 2, 1, ''), ('451402', '4514', '00,45,4514', '江州区', '45', '广西壮族自治区', '4514', '崇左市', '451402', '江州区', '', '', '', '', 3, 1, ''), ('451421', '4514', '00,45,4514', '扶绥县', '45', '广西壮族自治区', '4514', '崇左市', '451421', '扶绥县', '', '', '', '', 3, 1, ''), ('451422', '4514', '00,45,4514', '宁明县', '45', '广西壮族自治区', '4514', '崇左市', '451422', '宁明县', '', '', '', '', 3, 1, ''), ('451423', '4514', '00,45,4514', '龙州县', '45', '广西壮族自治区', '4514', '崇左市', '451423', '龙州县', '', '', '', '', 3, 1, ''), ('451424', '4514', '00,45,4514', '大新县', '45', '广西壮族自治区', '4514', '崇左市', '451424', '大新县', '', '', '', '', 3, 1, ''), ('451425', '4514', '00,45,4514', '天等县', '45', '广西壮族自治区', '4514', '崇左市', '451425', '天等县', '', '', '', '', 3, 1, ''), ('451481', '4514', '00,45,4514', '凭祥市', '45', '广西壮族自治区', '4514', '崇左市', '451481', '凭祥市', '', '', '', '', 3, 1, ''), ('46', '00', '00', '海南省', '46', '海南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4601', '46', '00,46', '海口市', '46', '海南省', '4601', '海口市', '', '', '', '', '', '', 2, 1, ''), ('460105', '4601', '00,46,4601', '秀英区', '46', '海南省', '4601', '海口市', '460105', '秀英区', '', '', '', '', 3, 1, ''), ('460106', '4601', '00,46,4601', '龙华区', '46', '海南省', '4601', '海口市', '460106', '龙华区', '', '', '', '', 3, 1, ''), ('460107', '4601', '00,46,4601', '琼山区', '46', '海南省', '4601', '海口市', '460107', '琼山区', '', '', '', '', 3, 1, ''), ('460108', '4601', '00,46,4601', '美兰区', '46', '海南省', '4601', '海口市', '460108', '美兰区', '', '', '', '', 3, 1, ''), ('4602', '46', '00,46', '三亚市', '46', '海南省', '4602', '三亚市', '', '', '', '', '', '', 2, 1, ''), ('460202', '4602', '00,46,4602', '海棠区', '46', '海南省', '4602', '三亚市', '460202', '海棠区', '', '', '', '', 3, 1, ''), ('460203', '4602', '00,46,4602', '吉阳区', '46', '海南省', '4602', '三亚市', '460203', '吉阳区', '', '', '', '', 3, 1, ''), ('460204', '4602', '00,46,4602', '天涯区', '46', '海南省', '4602', '三亚市', '460204', '天涯区', '', '', '', '', 3, 1, ''), ('460205', '4602', '00,46,4602', '崖州区', '46', '海南省', '4602', '三亚市', '460205', '崖州区', '', '', '', '', 3, 1, ''), ('4603', '46', '00,46', '三沙市', '46', '海南省', '4603', '三沙市', '', '', '', '', '', '', 2, 1, ''), ('460300', '4603', '00,46,4603', '三沙市', '46', '海南省', '4603', '三沙市', '460300', '三沙市', '', '', '', '', 3, 1, ''), ('4604', '46', '00,46', '儋州市', '46', '海南省', '4604', '儋州市', '', '', '', '', '', '', 2, 1, ''), ('460400', '4604', '00,46,4604', '儋州市', '46', '海南省', '4604', '儋州市', '460400', '儋州市', '', '', '', '', 3, 1, ''), ('4690', '46', '00,46', '省直辖县级行政区', '46', '海南省', '4690', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('469001', '4690', '00,46,4690', '五指山市', '46', '海南省', '4690', '省直辖县级行政区', '469001', '五指山市', '', '', '', '', 3, 1, ''), ('469002', '4690', '00,46,4690', '琼海市', '46', '海南省', '4690', '省直辖县级行政区', '469002', '琼海市', '', '', '', '', 3, 1, ''), ('469005', '4690', '00,46,4690', '文昌市', '46', '海南省', '4690', '省直辖县级行政区', '469005', '文昌市', '', '', '', '', 3, 1, ''), ('469006', '4690', '00,46,4690', '万宁市', '46', '海南省', '4690', '省直辖县级行政区', '469006', '万宁市', '', '', '', '', 3, 1, ''), ('469007', '4690', '00,46,4690', '东方市', '46', '海南省', '4690', '省直辖县级行政区', '469007', '东方市', '', '', '', '', 3, 1, ''), ('469021', '4690', '00,46,4690', '定安县', '46', '海南省', '4690', '省直辖县级行政区', '469021', '定安县', '', '', '', '', 3, 1, ''), ('469022', '4690', '00,46,4690', '屯昌县', '46', '海南省', '4690', '省直辖县级行政区', '469022', '屯昌县', '', '', '', '', 3, 1, ''), ('469023', '4690', '00,46,4690', '澄迈县', '46', '海南省', '4690', '省直辖县级行政区', '469023', '澄迈县', '', '', '', '', 3, 1, ''), ('469024', '4690', '00,46,4690', '临高县', '46', '海南省', '4690', '省直辖县级行政区', '469024', '临高县', '', '', '', '', 3, 1, ''), ('469025', '4690', '00,46,4690', '白沙黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469025', '白沙黎族自治县', '', '', '', '', 3, 1, ''), ('469026', '4690', '00,46,4690', '昌江黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469026', '昌江黎族自治县', '', '', '', '', 3, 1, ''), ('469027', '4690', '00,46,4690', '乐东黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469027', '乐东黎族自治县', '', '', '', '', 3, 1, ''), ('469028', '4690', '00,46,4690', '陵水黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469028', '陵水黎族自治县', '', '', '', '', 3, 1, ''), ('469029', '4690', '00,46,4690', '保亭黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469029', '保亭黎族苗族自治县', '', '', '', '', 3, 1, ''), ('469030', '4690', '00,46,4690', '琼中黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469030', '琼中黎族苗族自治县', '', '', '', '', 3, 1, ''), ('50', '00', '00', '重庆市', '50', '重庆市', '', '', '', '', '', '', '', '', 1, 1, ''), ('5001', '50', '00,50', '重庆市', '50', '重庆市', '5001', '重庆市', '', '', '', '', '', '', 2, 1, ''), ('500101', '5001', '00,50,5001', '万州区', '50', '重庆市', '5001', '重庆市', '500101', '万州区', '', '', '', '', 3, 1, ''), ('500102', '5001', '00,50,5001', '涪陵区', '50', '重庆市', '5001', '重庆市', '500102', '涪陵区', '', '', '', '', 3, 1, ''), ('500103', '5001', '00,50,5001', '渝中区', '50', '重庆市', '5001', '重庆市', '500103', '渝中区', '', '', '', '', 3, 1, ''), ('500104', '5001', '00,50,5001', '大渡口区', '50', '重庆市', '5001', '重庆市', '500104', '大渡口区', '', '', '', '', 3, 1, ''), ('500105', '5001', '00,50,5001', '江北区', '50', '重庆市', '5001', '重庆市', '500105', '江北区', '', '', '', '', 3, 1, ''), ('500106', '5001', '00,50,5001', '沙坪坝区', '50', '重庆市', '5001', '重庆市', '500106', '沙坪坝区', '', '', '', '', 3, 1, ''), ('500107', '5001', '00,50,5001', '九龙坡区', '50', '重庆市', '5001', '重庆市', '500107', '九龙坡区', '', '', '', '', 3, 1, ''), ('500108', '5001', '00,50,5001', '南岸区', '50', '重庆市', '5001', '重庆市', '500108', '南岸区', '', '', '', '', 3, 1, ''), ('500109', '5001', '00,50,5001', '北碚区', '50', '重庆市', '5001', '重庆市', '500109', '北碚区', '', '', '', '', 3, 1, ''), ('500110', '5001', '00,50,5001', '綦江区', '50', '重庆市', '5001', '重庆市', '500110', '綦江区', '', '', '', '', 3, 1, ''), ('500111', '5001', '00,50,5001', '大足区', '50', '重庆市', '5001', '重庆市', '500111', '大足区', '', '', '', '', 3, 1, ''), ('500112', '5001', '00,50,5001', '渝北区', '50', '重庆市', '5001', '重庆市', '500112', '渝北区', '', '', '', '', 3, 1, ''), ('500113', '5001', '00,50,5001', '巴南区', '50', '重庆市', '5001', '重庆市', '500113', '巴南区', '', '', '', '', 3, 1, ''), ('500114', '5001', '00,50,5001', '黔江区', '50', '重庆市', '5001', '重庆市', '500114', '黔江区', '', '', '', '', 3, 1, ''), ('500115', '5001', '00,50,5001', '长寿区', '50', '重庆市', '5001', '重庆市', '500115', '长寿区', '', '', '', '', 3, 1, ''), ('500116', '5001', '00,50,5001', '江津区', '50', '重庆市', '5001', '重庆市', '500116', '江津区', '', '', '', '', 3, 1, ''), ('500117', '5001', '00,50,5001', '合川区', '50', '重庆市', '5001', '重庆市', '500117', '合川区', '', '', '', '', 3, 1, ''), ('500118', '5001', '00,50,5001', '永川区', '50', '重庆市', '5001', '重庆市', '500118', '永川区', '', '', '', '', 3, 1, ''), ('500119', '5001', '00,50,5001', '南川区', '50', '重庆市', '5001', '重庆市', '500119', '南川区', '', '', '', '', 3, 1, ''), ('500120', '5001', '00,50,5001', '璧山区', '50', '重庆市', '5001', '重庆市', '500120', '璧山区', '', '', '', '', 3, 1, ''), ('500151', '5001', '00,50,5001', '铜梁区', '50', '重庆市', '5001', '重庆市', '500151', '铜梁区', '', '', '', '', 3, 1, ''), ('500152', '5001', '00,50,5001', '潼南区', '50', '重庆市', '5001', '重庆市', '500152', '潼南区', '', '', '', '', 3, 1, ''), ('500153', '5001', '00,50,5001', '荣昌区', '50', '重庆市', '5001', '重庆市', '500153', '荣昌区', '', '', '', '', 3, 1, ''), ('500154', '5001', '00,50,5001', '开州区', '50', '重庆市', '5001', '重庆市', '500154', '开州区', '', '', '', '', 3, 1, ''), ('500155', '5001', '00,50,5001', '梁平区', '50', '重庆市', '5001', '重庆市', '500155', '梁平区', '', '', '', '', 3, 1, ''), ('500156', '5001', '00,50,5001', '武隆区', '50', '重庆市', '5001', '重庆市', '500156', '武隆区', '', '', '', '', 3, 1, ''), ('5002', '50', '00,50', '重庆市', '50', '重庆市', '5002', '重庆市', '', '', '', '', '', '', 2, 1, ''), ('500229', '5002', '00,50,5002', '城口县', '50', '重庆市', '5002', '重庆市', '500229', '城口县', '', '', '', '', 3, 1, ''), ('500230', '5002', '00,50,5002', '丰都县', '50', '重庆市', '5002', '重庆市', '500230', '丰都县', '', '', '', '', 3, 1, ''), ('500231', '5002', '00,50,5002', '垫江县', '50', '重庆市', '5002', '重庆市', '500231', '垫江县', '', '', '', '', 3, 1, ''), ('500233', '5002', '00,50,5002', '忠县', '50', '重庆市', '5002', '重庆市', '500233', '忠县', '', '', '', '', 3, 1, ''), ('500235', '5002', '00,50,5002', '云阳县', '50', '重庆市', '5002', '重庆市', '500235', '云阳县', '', '', '', '', 3, 1, ''), ('500236', '5002', '00,50,5002', '奉节县', '50', '重庆市', '5002', '重庆市', '500236', '奉节县', '', '', '', '', 3, 1, ''), ('500237', '5002', '00,50,5002', '巫山县', '50', '重庆市', '5002', '重庆市', '500237', '巫山县', '', '', '', '', 3, 1, ''), ('500238', '5002', '00,50,5002', '巫溪县', '50', '重庆市', '5002', '重庆市', '500238', '巫溪县', '', '', '', '', 3, 1, ''), ('500240', '5002', '00,50,5002', '石柱土家族自治县', '50', '重庆市', '5002', '重庆市', '500240', '石柱土家族自治县', '', '', '', '', 3, 1, ''), ('500241', '5002', '00,50,5002', '秀山土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500241', '秀山土家族苗族自治县', '', '', '', '', 3, 1, ''), ('500242', '5002', '00,50,5002', '酉阳土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500242', '酉阳土家族苗族自治县', '', '', '', '', 3, 1, ''), ('500243', '5002', '00,50,5002', '彭水苗族土家族自治县', '50', '重庆市', '5002', '重庆市', '500243', '彭水苗族土家族自治县', '', '', '', '', 3, 1, ''), ('51', '00', '00', '四川省', '51', '四川省', '', '', '', '', '', '', '', '', 1, 1, ''), ('5101', '51', '00,51', '成都市', '51', '四川省', '5101', '成都市', '', '', '', '', '', '', 2, 1, ''), ('510104', '5101', '00,51,5101', '锦江区', '51', '四川省', '5101', '成都市', '510104', '锦江区', '', '', '', '', 3, 1, ''), ('510105', '5101', '00,51,5101', '青羊区', '51', '四川省', '5101', '成都市', '510105', '青羊区', '', '', '', '', 3, 1, ''), ('510106', '5101', '00,51,5101', '金牛区', '51', '四川省', '5101', '成都市', '510106', '金牛区', '', '', '', '', 3, 1, ''), ('510107', '5101', '00,51,5101', '武侯区', '51', '四川省', '5101', '成都市', '510107', '武侯区', '', '', '', '', 3, 1, ''), ('510108', '5101', '00,51,5101', '成华区', '51', '四川省', '5101', '成都市', '510108', '成华区', '', '', '', '', 3, 1, ''), ('510112', '5101', '00,51,5101', '龙泉驿区', '51', '四川省', '5101', '成都市', '510112', '龙泉驿区', '', '', '', '', 3, 1, ''), ('510113', '5101', '00,51,5101', '青白江区', '51', '四川省', '5101', '成都市', '510113', '青白江区', '', '', '', '', 3, 1, ''), ('510114', '5101', '00,51,5101', '新都区', '51', '四川省', '5101', '成都市', '510114', '新都区', '', '', '', '', 3, 1, ''), ('510115', '5101', '00,51,5101', '温江区', '51', '四川省', '5101', '成都市', '510115', '温江区', '', '', '', '', 3, 1, ''), ('510116', '5101', '00,51,5101', '双流区', '51', '四川省', '5101', '成都市', '510116', '双流区', '', '', '', '', 3, 1, ''), ('510117', '5101', '00,51,5101', '郫都区', '51', '四川省', '5101', '成都市', '510117', '郫都区', '', '', '', '', 3, 1, ''), ('510121', '5101', '00,51,5101', '金堂县', '51', '四川省', '5101', '成都市', '510121', '金堂县', '', '', '', '', 3, 1, ''), ('510129', '5101', '00,51,5101', '大邑县', '51', '四川省', '5101', '成都市', '510129', '大邑县', '', '', '', '', 3, 1, ''), ('510131', '5101', '00,51,5101', '蒲江县', '51', '四川省', '5101', '成都市', '510131', '蒲江县', '', '', '', '', 3, 1, ''), ('510132', '5101', '00,51,5101', '新津县', '51', '四川省', '5101', '成都市', '510132', '新津县', '', '', '', '', 3, 1, ''), ('510181', '5101', '00,51,5101', '都江堰市', '51', '四川省', '5101', '成都市', '510181', '都江堰市', '', '', '', '', 3, 1, ''), ('510182', '5101', '00,51,5101', '彭州市', '51', '四川省', '5101', '成都市', '510182', '彭州市', '', '', '', '', 3, 1, ''), ('510183', '5101', '00,51,5101', '邛崃市', '51', '四川省', '5101', '成都市', '510183', '邛崃市', '', '', '', '', 3, 1, ''), ('510184', '5101', '00,51,5101', '崇州市', '51', '四川省', '5101', '成都市', '510184', '崇州市', '', '', '', '', 3, 1, ''), ('510185', '5101', '00,51,5101', '简阳市', '51', '四川省', '5101', '成都市', '510185', '简阳市', '', '', '', '', 3, 1, ''), ('5103', '51', '00,51', '自贡市', '51', '四川省', '5103', '自贡市', '', '', '', '', '', '', 2, 1, ''), ('510302', '5103', '00,51,5103', '自流井区', '51', '四川省', '5103', '自贡市', '510302', '自流井区', '', '', '', '', 3, 1, ''), ('510303', '5103', '00,51,5103', '贡井区', '51', '四川省', '5103', '自贡市', '510303', '贡井区', '', '', '', '', 3, 1, ''), ('510304', '5103', '00,51,5103', '大安区', '51', '四川省', '5103', '自贡市', '510304', '大安区', '', '', '', '', 3, 1, ''), ('510311', '5103', '00,51,5103', '沿滩区', '51', '四川省', '5103', '自贡市', '510311', '沿滩区', '', '', '', '', 3, 1, ''), ('510321', '5103', '00,51,5103', '荣县', '51', '四川省', '5103', '自贡市', '510321', '荣县', '', '', '', '', 3, 1, ''), ('510322', '5103', '00,51,5103', '富顺县', '51', '四川省', '5103', '自贡市', '510322', '富顺县', '', '', '', '', 3, 1, ''), ('5104', '51', '00,51', '攀枝花市', '51', '四川省', '5104', '攀枝花市', '', '', '', '', '', '', 2, 1, ''), ('510402', '5104', '00,51,5104', '东区', '51', '四川省', '5104', '攀枝花市', '510402', '东区', '', '', '', '', 3, 1, ''), ('510403', '5104', '00,51,5104', '西区', '51', '四川省', '5104', '攀枝花市', '510403', '西区', '', '', '', '', 3, 1, ''), ('510411', '5104', '00,51,5104', '仁和区', '51', '四川省', '5104', '攀枝花市', '510411', '仁和区', '', '', '', '', 3, 1, ''), ('510421', '5104', '00,51,5104', '米易县', '51', '四川省', '5104', '攀枝花市', '510421', '米易县', '', '', '', '', 3, 1, ''), ('510422', '5104', '00,51,5104', '盐边县', '51', '四川省', '5104', '攀枝花市', '510422', '盐边县', '', '', '', '', 3, 1, ''), ('5105', '51', '00,51', '泸州市', '51', '四川省', '5105', '泸州市', '', '', '', '', '', '', 2, 1, ''), ('510502', '5105', '00,51,5105', '江阳区', '51', '四川省', '5105', '泸州市', '510502', '江阳区', '', '', '', '', 3, 1, ''), ('510503', '5105', '00,51,5105', '纳溪区', '51', '四川省', '5105', '泸州市', '510503', '纳溪区', '', '', '', '', 3, 1, ''), ('510504', '5105', '00,51,5105', '龙马潭区', '51', '四川省', '5105', '泸州市', '510504', '龙马潭区', '', '', '', '', 3, 1, ''), ('510521', '5105', '00,51,5105', '泸县', '51', '四川省', '5105', '泸州市', '510521', '泸县', '', '', '', '', 3, 1, ''), ('510522', '5105', '00,51,5105', '合江县', '51', '四川省', '5105', '泸州市', '510522', '合江县', '', '', '', '', 3, 1, ''), ('510524', '5105', '00,51,5105', '叙永县', '51', '四川省', '5105', '泸州市', '510524', '叙永县', '', '', '', '', 3, 1, ''), ('510525', '5105', '00,51,5105', '古蔺县', '51', '四川省', '5105', '泸州市', '510525', '古蔺县', '', '', '', '', 3, 1, ''), ('5106', '51', '00,51', '德阳市', '51', '四川省', '5106', '德阳市', '', '', '', '', '', '', 2, 1, ''), ('510603', '5106', '00,51,5106', '旌阳区', '51', '四川省', '5106', '德阳市', '510603', '旌阳区', '', '', '', '', 3, 1, ''), ('510604', '5106', '00,51,5106', '罗江区', '51', '四川省', '5106', '德阳市', '510604', '罗江区', '', '', '', '', 3, 1, ''), ('510623', '5106', '00,51,5106', '中江县', '51', '四川省', '5106', '德阳市', '510623', '中江县', '', '', '', '', 3, 1, ''), ('510681', '5106', '00,51,5106', '广汉市', '51', '四川省', '5106', '德阳市', '510681', '广汉市', '', '', '', '', 3, 1, ''), ('510682', '5106', '00,51,5106', '什邡市', '51', '四川省', '5106', '德阳市', '510682', '什邡市', '', '', '', '', 3, 1, ''), ('510683', '5106', '00,51,5106', '绵竹市', '51', '四川省', '5106', '德阳市', '510683', '绵竹市', '', '', '', '', 3, 1, ''), ('5107', '51', '00,51', '绵阳市', '51', '四川省', '5107', '绵阳市', '', '', '', '', '', '', 2, 1, ''), ('510703', '5107', '00,51,5107', '涪城区', '51', '四川省', '5107', '绵阳市', '510703', '涪城区', '', '', '', '', 3, 1, ''), ('510704', '5107', '00,51,5107', '游仙区', '51', '四川省', '5107', '绵阳市', '510704', '游仙区', '', '', '', '', 3, 1, ''), ('510705', '5107', '00,51,5107', '安州区', '51', '四川省', '5107', '绵阳市', '510705', '安州区', '', '', '', '', 3, 1, ''), ('510722', '5107', '00,51,5107', '三台县', '51', '四川省', '5107', '绵阳市', '510722', '三台县', '', '', '', '', 3, 1, ''), ('510723', '5107', '00,51,5107', '盐亭县', '51', '四川省', '5107', '绵阳市', '510723', '盐亭县', '', '', '', '', 3, 1, ''), ('510725', '5107', '00,51,5107', '梓潼县', '51', '四川省', '5107', '绵阳市', '510725', '梓潼县', '', '', '', '', 3, 1, ''), ('510726', '5107', '00,51,5107', '北川羌族自治县', '51', '四川省', '5107', '绵阳市', '510726', '北川羌族自治县', '', '', '', '', 3, 1, ''), ('510727', '5107', '00,51,5107', '平武县', '51', '四川省', '5107', '绵阳市', '510727', '平武县', '', '', '', '', 3, 1, ''), ('510781', '5107', '00,51,5107', '江油市', '51', '四川省', '5107', '绵阳市', '510781', '江油市', '', '', '', '', 3, 1, ''), ('5108', '51', '00,51', '广元市', '51', '四川省', '5108', '广元市', '', '', '', '', '', '', 2, 1, ''), ('510802', '5108', '00,51,5108', '利州区', '51', '四川省', '5108', '广元市', '510802', '利州区', '', '', '', '', 3, 1, ''), ('510811', '5108', '00,51,5108', '昭化区', '51', '四川省', '5108', '广元市', '510811', '昭化区', '', '', '', '', 3, 1, ''), ('510812', '5108', '00,51,5108', '朝天区', '51', '四川省', '5108', '广元市', '510812', '朝天区', '', '', '', '', 3, 1, ''), ('510821', '5108', '00,51,5108', '旺苍县', '51', '四川省', '5108', '广元市', '510821', '旺苍县', '', '', '', '', 3, 1, ''), ('510822', '5108', '00,51,5108', '青川县', '51', '四川省', '5108', '广元市', '510822', '青川县', '', '', '', '', 3, 1, ''), ('510823', '5108', '00,51,5108', '剑阁县', '51', '四川省', '5108', '广元市', '510823', '剑阁县', '', '', '', '', 3, 1, ''), ('510824', '5108', '00,51,5108', '苍溪县', '51', '四川省', '5108', '广元市', '510824', '苍溪县', '', '', '', '', 3, 1, ''), ('5109', '51', '00,51', '遂宁市', '51', '四川省', '5109', '遂宁市', '', '', '', '', '', '', 2, 1, ''), ('510903', '5109', '00,51,5109', '船山区', '51', '四川省', '5109', '遂宁市', '510903', '船山区', '', '', '', '', 3, 1, ''), ('510904', '5109', '00,51,5109', '安居区', '51', '四川省', '5109', '遂宁市', '510904', '安居区', '', '', '', '', 3, 1, ''), ('510921', '5109', '00,51,5109', '蓬溪县', '51', '四川省', '5109', '遂宁市', '510921', '蓬溪县', '', '', '', '', 3, 1, ''), ('510923', '5109', '00,51,5109', '大英县', '51', '四川省', '5109', '遂宁市', '510923', '大英县', '', '', '', '', 3, 1, ''), ('510981', '5109', '00,51,5109', '射洪市', '51', '四川省', '5109', '遂宁市', '510981', '射洪市', '', '', '', '', 3, 1, ''), ('5110', '51', '00,51', '内江市', '51', '四川省', '5110', '内江市', '', '', '', '', '', '', 2, 1, ''), ('511002', '5110', '00,51,5110', '市中区', '51', '四川省', '5110', '内江市', '511002', '市中区', '', '', '', '', 3, 1, ''), ('511011', '5110', '00,51,5110', '东兴区', '51', '四川省', '5110', '内江市', '511011', '东兴区', '', '', '', '', 3, 1, ''), ('511024', '5110', '00,51,5110', '威远县', '51', '四川省', '5110', '内江市', '511024', '威远县', '', '', '', '', 3, 1, ''), ('511025', '5110', '00,51,5110', '资中县', '51', '四川省', '5110', '内江市', '511025', '资中县', '', '', '', '', 3, 1, ''), ('511083', '5110', '00,51,5110', '隆昌市', '51', '四川省', '5110', '内江市', '511083', '隆昌市', '', '', '', '', 3, 1, ''), ('5111', '51', '00,51', '乐山市', '51', '四川省', '5111', '乐山市', '', '', '', '', '', '', 2, 1, ''), ('511102', '5111', '00,51,5111', '市中区', '51', '四川省', '5111', '乐山市', '511102', '市中区', '', '', '', '', 3, 1, ''), ('511111', '5111', '00,51,5111', '沙湾区', '51', '四川省', '5111', '乐山市', '511111', '沙湾区', '', '', '', '', 3, 1, ''), ('511112', '5111', '00,51,5111', '五通桥区', '51', '四川省', '5111', '乐山市', '511112', '五通桥区', '', '', '', '', 3, 1, ''), ('511113', '5111', '00,51,5111', '金口河区', '51', '四川省', '5111', '乐山市', '511113', '金口河区', '', '', '', '', 3, 1, ''), ('511123', '5111', '00,51,5111', '犍为县', '51', '四川省', '5111', '乐山市', '511123', '犍为县', '', '', '', '', 3, 1, ''), ('511124', '5111', '00,51,5111', '井研县', '51', '四川省', '5111', '乐山市', '511124', '井研县', '', '', '', '', 3, 1, ''), ('511126', '5111', '00,51,5111', '夹江县', '51', '四川省', '5111', '乐山市', '511126', '夹江县', '', '', '', '', 3, 1, ''), ('511129', '5111', '00,51,5111', '沐川县', '51', '四川省', '5111', '乐山市', '511129', '沐川县', '', '', '', '', 3, 1, ''), ('511132', '5111', '00,51,5111', '峨边彝族自治县', '51', '四川省', '5111', '乐山市', '511132', '峨边彝族自治县', '', '', '', '', 3, 1, ''), ('511133', '5111', '00,51,5111', '马边彝族自治县', '51', '四川省', '5111', '乐山市', '511133', '马边彝族自治县', '', '', '', '', 3, 1, ''), ('511181', '5111', '00,51,5111', '峨眉山市', '51', '四川省', '5111', '乐山市', '511181', '峨眉山市', '', '', '', '', 3, 1, ''), ('5113', '51', '00,51', '南充市', '51', '四川省', '5113', '南充市', '', '', '', '', '', '', 2, 1, ''), ('511302', '5113', '00,51,5113', '顺庆区', '51', '四川省', '5113', '南充市', '511302', '顺庆区', '', '', '', '', 3, 1, ''), ('511303', '5113', '00,51,5113', '高坪区', '51', '四川省', '5113', '南充市', '511303', '高坪区', '', '', '', '', 3, 1, ''), ('511304', '5113', '00,51,5113', '嘉陵区', '51', '四川省', '5113', '南充市', '511304', '嘉陵区', '', '', '', '', 3, 1, ''), ('511321', '5113', '00,51,5113', '南部县', '51', '四川省', '5113', '南充市', '511321', '南部县', '', '', '', '', 3, 1, ''), ('511322', '5113', '00,51,5113', '营山县', '51', '四川省', '5113', '南充市', '511322', '营山县', '', '', '', '', 3, 1, ''), ('511323', '5113', '00,51,5113', '蓬安县', '51', '四川省', '5113', '南充市', '511323', '蓬安县', '', '', '', '', 3, 1, ''), ('511324', '5113', '00,51,5113', '仪陇县', '51', '四川省', '5113', '南充市', '511324', '仪陇县', '', '', '', '', 3, 1, ''), ('511325', '5113', '00,51,5113', '西充县', '51', '四川省', '5113', '南充市', '511325', '西充县', '', '', '', '', 3, 1, ''), ('511381', '5113', '00,51,5113', '阆中市', '51', '四川省', '5113', '南充市', '511381', '阆中市', '', '', '', '', 3, 1, ''), ('5114', '51', '00,51', '眉山市', '51', '四川省', '5114', '眉山市', '', '', '', '', '', '', 2, 1, ''), ('511402', '5114', '00,51,5114', '东坡区', '51', '四川省', '5114', '眉山市', '511402', '东坡区', '', '', '', '', 3, 1, ''), ('511403', '5114', '00,51,5114', '彭山区', '51', '四川省', '5114', '眉山市', '511403', '彭山区', '', '', '', '', 3, 1, ''), ('511421', '5114', '00,51,5114', '仁寿县', '51', '四川省', '5114', '眉山市', '511421', '仁寿县', '', '', '', '', 3, 1, ''), ('511423', '5114', '00,51,5114', '洪雅县', '51', '四川省', '5114', '眉山市', '511423', '洪雅县', '', '', '', '', 3, 1, ''), ('511424', '5114', '00,51,5114', '丹棱县', '51', '四川省', '5114', '眉山市', '511424', '丹棱县', '', '', '', '', 3, 1, ''), ('511425', '5114', '00,51,5114', '青神县', '51', '四川省', '5114', '眉山市', '511425', '青神县', '', '', '', '', 3, 1, ''), ('5115', '51', '00,51', '宜宾市', '51', '四川省', '5115', '宜宾市', '', '', '', '', '', '', 2, 1, ''), ('511502', '5115', '00,51,5115', '翠屏区', '51', '四川省', '5115', '宜宾市', '511502', '翠屏区', '', '', '', '', 3, 1, ''), ('511503', '5115', '00,51,5115', '南溪区', '51', '四川省', '5115', '宜宾市', '511503', '南溪区', '', '', '', '', 3, 1, ''), ('511504', '5115', '00,51,5115', '叙州区', '51', '四川省', '5115', '宜宾市', '511504', '叙州区', '', '', '', '', 3, 1, ''), ('511523', '5115', '00,51,5115', '江安县', '51', '四川省', '5115', '宜宾市', '511523', '江安县', '', '', '', '', 3, 1, ''), ('511524', '5115', '00,51,5115', '长宁县', '51', '四川省', '5115', '宜宾市', '511524', '长宁县', '', '', '', '', 3, 1, ''), ('511525', '5115', '00,51,5115', '高县', '51', '四川省', '5115', '宜宾市', '511525', '高县', '', '', '', '', 3, 1, ''), ('511526', '5115', '00,51,5115', '珙县', '51', '四川省', '5115', '宜宾市', '511526', '珙县', '', '', '', '', 3, 1, ''), ('511527', '5115', '00,51,5115', '筠连县', '51', '四川省', '5115', '宜宾市', '511527', '筠连县', '', '', '', '', 3, 1, ''), ('511528', '5115', '00,51,5115', '兴文县', '51', '四川省', '5115', '宜宾市', '511528', '兴文县', '', '', '', '', 3, 1, ''), ('511529', '5115', '00,51,5115', '屏山县', '51', '四川省', '5115', '宜宾市', '511529', '屏山县', '', '', '', '', 3, 1, ''), ('5116', '51', '00,51', '广安市', '51', '四川省', '5116', '广安市', '', '', '', '', '', '', 2, 1, ''), ('511602', '5116', '00,51,5116', '广安区', '51', '四川省', '5116', '广安市', '511602', '广安区', '', '', '', '', 3, 1, ''), ('511603', '5116', '00,51,5116', '前锋区', '51', '四川省', '5116', '广安市', '511603', '前锋区', '', '', '', '', 3, 1, ''), ('511621', '5116', '00,51,5116', '岳池县', '51', '四川省', '5116', '广安市', '511621', '岳池县', '', '', '', '', 3, 1, ''), ('511622', '5116', '00,51,5116', '武胜县', '51', '四川省', '5116', '广安市', '511622', '武胜县', '', '', '', '', 3, 1, ''), ('511623', '5116', '00,51,5116', '邻水县', '51', '四川省', '5116', '广安市', '511623', '邻水县', '', '', '', '', 3, 1, ''), ('511681', '5116', '00,51,5116', '华蓥市', '51', '四川省', '5116', '广安市', '511681', '华蓥市', '', '', '', '', 3, 1, ''), ('5117', '51', '00,51', '达州市', '51', '四川省', '5117', '达州市', '', '', '', '', '', '', 2, 1, ''), ('511702', '5117', '00,51,5117', '通川区', '51', '四川省', '5117', '达州市', '511702', '通川区', '', '', '', '', 3, 1, ''), ('511703', '5117', '00,51,5117', '达川区', '51', '四川省', '5117', '达州市', '511703', '达川区', '', '', '', '', 3, 1, ''), ('511722', '5117', '00,51,5117', '宣汉县', '51', '四川省', '5117', '达州市', '511722', '宣汉县', '', '', '', '', 3, 1, ''), ('511723', '5117', '00,51,5117', '开江县', '51', '四川省', '5117', '达州市', '511723', '开江县', '', '', '', '', 3, 1, ''), ('511724', '5117', '00,51,5117', '大竹县', '51', '四川省', '5117', '达州市', '511724', '大竹县', '', '', '', '', 3, 1, ''), ('511725', '5117', '00,51,5117', '渠县', '51', '四川省', '5117', '达州市', '511725', '渠县', '', '', '', '', 3, 1, ''), ('511781', '5117', '00,51,5117', '万源市', '51', '四川省', '5117', '达州市', '511781', '万源市', '', '', '', '', 3, 1, ''), ('5118', '51', '00,51', '雅安市', '51', '四川省', '5118', '雅安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO `blade_region` VALUES ('511802', '5118', '00,51,5118', '雨城区', '51', '四川省', '5118', '雅安市', '511802', '雨城区', '', '', '', '', 3, 1, ''), ('511803', '5118', '00,51,5118', '名山区', '51', '四川省', '5118', '雅安市', '511803', '名山区', '', '', '', '', 3, 1, ''), ('511822', '5118', '00,51,5118', '荥经县', '51', '四川省', '5118', '雅安市', '511822', '荥经县', '', '', '', '', 3, 1, ''), ('511823', '5118', '00,51,5118', '汉源县', '51', '四川省', '5118', '雅安市', '511823', '汉源县', '', '', '', '', 3, 1, ''), ('511824', '5118', '00,51,5118', '石棉县', '51', '四川省', '5118', '雅安市', '511824', '石棉县', '', '', '', '', 3, 1, ''), ('511825', '5118', '00,51,5118', '天全县', '51', '四川省', '5118', '雅安市', '511825', '天全县', '', '', '', '', 3, 1, ''), ('511826', '5118', '00,51,5118', '芦山县', '51', '四川省', '5118', '雅安市', '511826', '芦山县', '', '', '', '', 3, 1, ''), ('511827', '5118', '00,51,5118', '宝兴县', '51', '四川省', '5118', '雅安市', '511827', '宝兴县', '', '', '', '', 3, 1, ''), ('5119', '51', '00,51', '巴中市', '51', '四川省', '5119', '巴中市', '', '', '', '', '', '', 2, 1, ''), ('511902', '5119', '00,51,5119', '巴州区', '51', '四川省', '5119', '巴中市', '511902', '巴州区', '', '', '', '', 3, 1, ''), ('511903', '5119', '00,51,5119', '恩阳区', '51', '四川省', '5119', '巴中市', '511903', '恩阳区', '', '', '', '', 3, 1, ''), ('511921', '5119', '00,51,5119', '通江县', '51', '四川省', '5119', '巴中市', '511921', '通江县', '', '', '', '', 3, 1, ''), ('511922', '5119', '00,51,5119', '南江县', '51', '四川省', '5119', '巴中市', '511922', '南江县', '', '', '', '', 3, 1, ''), ('511923', '5119', '00,51,5119', '平昌县', '51', '四川省', '5119', '巴中市', '511923', '平昌县', '', '', '', '', 3, 1, ''), ('5120', '51', '00,51', '资阳市', '51', '四川省', '5120', '资阳市', '', '', '', '', '', '', 2, 1, ''), ('512002', '5120', '00,51,5120', '雁江区', '51', '四川省', '5120', '资阳市', '512002', '雁江区', '', '', '', '', 3, 1, ''), ('512021', '5120', '00,51,5120', '安岳县', '51', '四川省', '5120', '资阳市', '512021', '安岳县', '', '', '', '', 3, 1, ''), ('512022', '5120', '00,51,5120', '乐至县', '51', '四川省', '5120', '资阳市', '512022', '乐至县', '', '', '', '', 3, 1, ''), ('5132', '51', '00,51', '阿坝藏族羌族自治州', '51', '四川省', '5132', '阿坝藏族羌族自治州', '', '', '', '', '', '', 2, 1, ''), ('513201', '5132', '00,51,5132', '马尔康市', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513201', '马尔康市', '', '', '', '', 3, 1, ''), ('513221', '5132', '00,51,5132', '汶川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513221', '汶川县', '', '', '', '', 3, 1, ''), ('513222', '5132', '00,51,5132', '理县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513222', '理县', '', '', '', '', 3, 1, ''), ('513223', '5132', '00,51,5132', '茂县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513223', '茂县', '', '', '', '', 3, 1, ''), ('513224', '5132', '00,51,5132', '松潘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513224', '松潘县', '', '', '', '', 3, 1, ''), ('513225', '5132', '00,51,5132', '九寨沟县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513225', '九寨沟县', '', '', '', '', 3, 1, ''), ('513226', '5132', '00,51,5132', '金川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513226', '金川县', '', '', '', '', 3, 1, ''), ('513227', '5132', '00,51,5132', '小金县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513227', '小金县', '', '', '', '', 3, 1, ''), ('513228', '5132', '00,51,5132', '黑水县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513228', '黑水县', '', '', '', '', 3, 1, ''), ('513230', '5132', '00,51,5132', '壤塘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513230', '壤塘县', '', '', '', '', 3, 1, ''), ('513231', '5132', '00,51,5132', '阿坝县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513231', '阿坝县', '', '', '', '', 3, 1, ''), ('513232', '5132', '00,51,5132', '若尔盖县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513232', '若尔盖县', '', '', '', '', 3, 1, ''), ('513233', '5132', '00,51,5132', '红原县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513233', '红原县', '', '', '', '', 3, 1, ''), ('5133', '51', '00,51', '甘孜藏族自治州', '51', '四川省', '5133', '甘孜藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('513301', '5133', '00,51,5133', '康定市', '51', '四川省', '5133', '甘孜藏族自治州', '513301', '康定市', '', '', '', '', 3, 1, ''), ('513322', '5133', '00,51,5133', '泸定县', '51', '四川省', '5133', '甘孜藏族自治州', '513322', '泸定县', '', '', '', '', 3, 1, ''), ('513323', '5133', '00,51,5133', '丹巴县', '51', '四川省', '5133', '甘孜藏族自治州', '513323', '丹巴县', '', '', '', '', 3, 1, ''), ('513324', '5133', '00,51,5133', '九龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513324', '九龙县', '', '', '', '', 3, 1, ''), ('513325', '5133', '00,51,5133', '雅江县', '51', '四川省', '5133', '甘孜藏族自治州', '513325', '雅江县', '', '', '', '', 3, 1, ''), ('513326', '5133', '00,51,5133', '道孚县', '51', '四川省', '5133', '甘孜藏族自治州', '513326', '道孚县', '', '', '', '', 3, 1, ''), ('513327', '5133', '00,51,5133', '炉霍县', '51', '四川省', '5133', '甘孜藏族自治州', '513327', '炉霍县', '', '', '', '', 3, 1, ''), ('513328', '5133', '00,51,5133', '甘孜县', '51', '四川省', '5133', '甘孜藏族自治州', '513328', '甘孜县', '', '', '', '', 3, 1, ''), ('513329', '5133', '00,51,5133', '新龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513329', '新龙县', '', '', '', '', 3, 1, ''), ('513330', '5133', '00,51,5133', '德格县', '51', '四川省', '5133', '甘孜藏族自治州', '513330', '德格县', '', '', '', '', 3, 1, ''), ('513331', '5133', '00,51,5133', '白玉县', '51', '四川省', '5133', '甘孜藏族自治州', '513331', '白玉县', '', '', '', '', 3, 1, ''), ('513332', '5133', '00,51,5133', '石渠县', '51', '四川省', '5133', '甘孜藏族自治州', '513332', '石渠县', '', '', '', '', 3, 1, ''), ('513333', '5133', '00,51,5133', '色达县', '51', '四川省', '5133', '甘孜藏族自治州', '513333', '色达县', '', '', '', '', 3, 1, ''), ('513334', '5133', '00,51,5133', '理塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513334', '理塘县', '', '', '', '', 3, 1, ''), ('513335', '5133', '00,51,5133', '巴塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513335', '巴塘县', '', '', '', '', 3, 1, ''), ('513336', '5133', '00,51,5133', '乡城县', '51', '四川省', '5133', '甘孜藏族自治州', '513336', '乡城县', '', '', '', '', 3, 1, ''), ('513337', '5133', '00,51,5133', '稻城县', '51', '四川省', '5133', '甘孜藏族自治州', '513337', '稻城县', '', '', '', '', 3, 1, ''), ('513338', '5133', '00,51,5133', '得荣县', '51', '四川省', '5133', '甘孜藏族自治州', '513338', '得荣县', '', '', '', '', 3, 1, ''), ('5134', '51', '00,51', '凉山彝族自治州', '51', '四川省', '5134', '凉山彝族自治州', '', '', '', '', '', '', 2, 1, ''), ('513401', '5134', '00,51,5134', '西昌市', '51', '四川省', '5134', '凉山彝族自治州', '513401', '西昌市', '', '', '', '', 3, 1, ''), ('513422', '5134', '00,51,5134', '木里藏族自治县', '51', '四川省', '5134', '凉山彝族自治州', '513422', '木里藏族自治县', '', '', '', '', 3, 1, ''), ('513423', '5134', '00,51,5134', '盐源县', '51', '四川省', '5134', '凉山彝族自治州', '513423', '盐源县', '', '', '', '', 3, 1, ''), ('513424', '5134', '00,51,5134', '德昌县', '51', '四川省', '5134', '凉山彝族自治州', '513424', '德昌县', '', '', '', '', 3, 1, ''), ('513425', '5134', '00,51,5134', '会理县', '51', '四川省', '5134', '凉山彝族自治州', '513425', '会理县', '', '', '', '', 3, 1, ''), ('513426', '5134', '00,51,5134', '会东县', '51', '四川省', '5134', '凉山彝族自治州', '513426', '会东县', '', '', '', '', 3, 1, ''), ('513427', '5134', '00,51,5134', '宁南县', '51', '四川省', '5134', '凉山彝族自治州', '513427', '宁南县', '', '', '', '', 3, 1, ''), ('513428', '5134', '00,51,5134', '普格县', '51', '四川省', '5134', '凉山彝族自治州', '513428', '普格县', '', '', '', '', 3, 1, ''), ('513429', '5134', '00,51,5134', '布拖县', '51', '四川省', '5134', '凉山彝族自治州', '513429', '布拖县', '', '', '', '', 3, 1, ''), ('513430', '5134', '00,51,5134', '金阳县', '51', '四川省', '5134', '凉山彝族自治州', '513430', '金阳县', '', '', '', '', 3, 1, ''), ('513431', '5134', '00,51,5134', '昭觉县', '51', '四川省', '5134', '凉山彝族自治州', '513431', '昭觉县', '', '', '', '', 3, 1, ''), ('513432', '5134', '00,51,5134', '喜德县', '51', '四川省', '5134', '凉山彝族自治州', '513432', '喜德县', '', '', '', '', 3, 1, ''), ('513433', '5134', '00,51,5134', '冕宁县', '51', '四川省', '5134', '凉山彝族自治州', '513433', '冕宁县', '', '', '', '', 3, 1, ''), ('513434', '5134', '00,51,5134', '越西县', '51', '四川省', '5134', '凉山彝族自治州', '513434', '越西县', '', '', '', '', 3, 1, ''), ('513435', '5134', '00,51,5134', '甘洛县', '51', '四川省', '5134', '凉山彝族自治州', '513435', '甘洛县', '', '', '', '', 3, 1, ''), ('513436', '5134', '00,51,5134', '美姑县', '51', '四川省', '5134', '凉山彝族自治州', '513436', '美姑县', '', '', '', '', 3, 1, ''), ('513437', '5134', '00,51,5134', '雷波县', '51', '四川省', '5134', '凉山彝族自治州', '513437', '雷波县', '', '', '', '', 3, 1, ''), ('52', '00', '00', '贵州省', '52', '贵州省', '', '', '', '', '', '', '', '', 1, 1, ''), ('5201', '52', '00,52', '贵阳市', '52', '贵州省', '5201', '贵阳市', '', '', '', '', '', '', 2, 1, ''), ('520102', '5201', '00,52,5201', '南明区', '52', '贵州省', '5201', '贵阳市', '520102', '南明区', '', '', '', '', 3, 1, ''), ('520103', '5201', '00,52,5201', '云岩区', '52', '贵州省', '5201', '贵阳市', '520103', '云岩区', '', '', '', '', 3, 1, ''), ('520111', '5201', '00,52,5201', '花溪区', '52', '贵州省', '5201', '贵阳市', '520111', '花溪区', '', '', '', '', 3, 1, ''), ('520112', '5201', '00,52,5201', '乌当区', '52', '贵州省', '5201', '贵阳市', '520112', '乌当区', '', '', '', '', 3, 1, ''), ('520113', '5201', '00,52,5201', '白云区', '52', '贵州省', '5201', '贵阳市', '520113', '白云区', '', '', '', '', 3, 1, ''), ('520115', '5201', '00,52,5201', '观山湖区', '52', '贵州省', '5201', '贵阳市', '520115', '观山湖区', '', '', '', '', 3, 1, ''), ('520121', '5201', '00,52,5201', '开阳县', '52', '贵州省', '5201', '贵阳市', '520121', '开阳县', '', '', '', '', 3, 1, ''), ('520122', '5201', '00,52,5201', '息烽县', '52', '贵州省', '5201', '贵阳市', '520122', '息烽县', '', '', '', '', 3, 1, ''), ('520123', '5201', '00,52,5201', '修文县', '52', '贵州省', '5201', '贵阳市', '520123', '修文县', '', '', '', '', 3, 1, ''), ('520181', '5201', '00,52,5201', '清镇市', '52', '贵州省', '5201', '贵阳市', '520181', '清镇市', '', '', '', '', 3, 1, ''), ('5202', '52', '00,52', '六盘水市', '52', '贵州省', '5202', '六盘水市', '', '', '', '', '', '', 2, 1, ''), ('520201', '5202', '00,52,5202', '钟山区', '52', '贵州省', '5202', '六盘水市', '520201', '钟山区', '', '', '', '', 3, 1, ''), ('520203', '5202', '00,52,5202', '六枝特区', '52', '贵州省', '5202', '六盘水市', '520203', '六枝特区', '', '', '', '', 3, 1, ''), ('520221', '5202', '00,52,5202', '水城县', '52', '贵州省', '5202', '六盘水市', '520221', '水城县', '', '', '', '', 3, 1, ''), ('520281', '5202', '00,52,5202', '盘州市', '52', '贵州省', '5202', '六盘水市', '520281', '盘州市', '', '', '', '', 3, 1, ''), ('5203', '52', '00,52', '遵义市', '52', '贵州省', '5203', '遵义市', '', '', '', '', '', '', 2, 1, ''), ('520302', '5203', '00,52,5203', '红花岗区', '52', '贵州省', '5203', '遵义市', '520302', '红花岗区', '', '', '', '', 3, 1, ''), ('520303', '5203', '00,52,5203', '汇川区', '52', '贵州省', '5203', '遵义市', '520303', '汇川区', '', '', '', '', 3, 1, ''), ('520304', '5203', '00,52,5203', '播州区', '52', '贵州省', '5203', '遵义市', '520304', '播州区', '', '', '', '', 3, 1, ''), ('520322', '5203', '00,52,5203', '桐梓县', '52', '贵州省', '5203', '遵义市', '520322', '桐梓县', '', '', '', '', 3, 1, ''), ('520323', '5203', '00,52,5203', '绥阳县', '52', '贵州省', '5203', '遵义市', '520323', '绥阳县', '', '', '', '', 3, 1, ''), ('520324', '5203', '00,52,5203', '正安县', '52', '贵州省', '5203', '遵义市', '520324', '正安县', '', '', '', '', 3, 1, ''), ('520325', '5203', '00,52,5203', '道真仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520325', '道真仡佬族苗族自治县', '', '', '', '', 3, 1, ''), ('520326', '5203', '00,52,5203', '务川仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520326', '务川仡佬族苗族自治县', '', '', '', '', 3, 1, ''), ('520327', '5203', '00,52,5203', '凤冈县', '52', '贵州省', '5203', '遵义市', '520327', '凤冈县', '', '', '', '', 3, 1, ''), ('520328', '5203', '00,52,5203', '湄潭县', '52', '贵州省', '5203', '遵义市', '520328', '湄潭县', '', '', '', '', 3, 1, ''), ('520329', '5203', '00,52,5203', '余庆县', '52', '贵州省', '5203', '遵义市', '520329', '余庆县', '', '', '', '', 3, 1, ''), ('520330', '5203', '00,52,5203', '习水县', '52', '贵州省', '5203', '遵义市', '520330', '习水县', '', '', '', '', 3, 1, ''), ('520381', '5203', '00,52,5203', '赤水市', '52', '贵州省', '5203', '遵义市', '520381', '赤水市', '', '', '', '', 3, 1, ''), ('520382', '5203', '00,52,5203', '仁怀市', '52', '贵州省', '5203', '遵义市', '520382', '仁怀市', '', '', '', '', 3, 1, ''), ('5204', '52', '00,52', '安顺市', '52', '贵州省', '5204', '安顺市', '', '', '', '', '', '', 2, 1, ''), ('520402', '5204', '00,52,5204', '西秀区', '52', '贵州省', '5204', '安顺市', '520402', '西秀区', '', '', '', '', 3, 1, ''), ('520403', '5204', '00,52,5204', '平坝区', '52', '贵州省', '5204', '安顺市', '520403', '平坝区', '', '', '', '', 3, 1, ''), ('520422', '5204', '00,52,5204', '普定县', '52', '贵州省', '5204', '安顺市', '520422', '普定县', '', '', '', '', 3, 1, ''), ('520423', '5204', '00,52,5204', '镇宁布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520423', '镇宁布依族苗族自治县', '', '', '', '', 3, 1, ''), ('520424', '5204', '00,52,5204', '关岭布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520424', '关岭布依族苗族自治县', '', '', '', '', 3, 1, ''), ('520425', '5204', '00,52,5204', '紫云苗族布依族自治县', '52', '贵州省', '5204', '安顺市', '520425', '紫云苗族布依族自治县', '', '', '', '', 3, 1, ''), ('5205', '52', '00,52', '毕节市', '52', '贵州省', '5205', '毕节市', '', '', '', '', '', '', 2, 1, ''), ('520502', '5205', '00,52,5205', '七星关区', '52', '贵州省', '5205', '毕节市', '520502', '七星关区', '', '', '', '', 3, 1, ''), ('520521', '5205', '00,52,5205', '大方县', '52', '贵州省', '5205', '毕节市', '520521', '大方县', '', '', '', '', 3, 1, ''), ('520522', '5205', '00,52,5205', '黔西县', '52', '贵州省', '5205', '毕节市', '520522', '黔西县', '', '', '', '', 3, 1, ''), ('520523', '5205', '00,52,5205', '金沙县', '52', '贵州省', '5205', '毕节市', '520523', '金沙县', '', '', '', '', 3, 1, ''), ('520524', '5205', '00,52,5205', '织金县', '52', '贵州省', '5205', '毕节市', '520524', '织金县', '', '', '', '', 3, 1, ''), ('520525', '5205', '00,52,5205', '纳雍县', '52', '贵州省', '5205', '毕节市', '520525', '纳雍县', '', '', '', '', 3, 1, ''), ('520526', '5205', '00,52,5205', '威宁彝族回族苗族自治县', '52', '贵州省', '5205', '毕节市', '520526', '威宁彝族回族苗族自治县', '', '', '', '', 3, 1, ''), ('520527', '5205', '00,52,5205', '赫章县', '52', '贵州省', '5205', '毕节市', '520527', '赫章县', '', '', '', '', 3, 1, ''), ('5206', '52', '00,52', '铜仁市', '52', '贵州省', '5206', '铜仁市', '', '', '', '', '', '', 2, 1, ''), ('520602', '5206', '00,52,5206', '碧江区', '52', '贵州省', '5206', '铜仁市', '520602', '碧江区', '', '', '', '', 3, 1, ''), ('520603', '5206', '00,52,5206', '万山区', '52', '贵州省', '5206', '铜仁市', '520603', '万山区', '', '', '', '', 3, 1, ''), ('520621', '5206', '00,52,5206', '江口县', '52', '贵州省', '5206', '铜仁市', '520621', '江口县', '', '', '', '', 3, 1, ''), ('520622', '5206', '00,52,5206', '玉屏侗族自治县', '52', '贵州省', '5206', '铜仁市', '520622', '玉屏侗族自治县', '', '', '', '', 3, 1, ''), ('520623', '5206', '00,52,5206', '石阡县', '52', '贵州省', '5206', '铜仁市', '520623', '石阡县', '', '', '', '', 3, 1, ''), ('520624', '5206', '00,52,5206', '思南县', '52', '贵州省', '5206', '铜仁市', '520624', '思南县', '', '', '', '', 3, 1, ''), ('520625', '5206', '00,52,5206', '印江土家族苗族自治县', '52', '贵州省', '5206', '铜仁市', '520625', '印江土家族苗族自治县', '', '', '', '', 3, 1, ''), ('520626', '5206', '00,52,5206', '德江县', '52', '贵州省', '5206', '铜仁市', '520626', '德江县', '', '', '', '', 3, 1, ''), ('520627', '5206', '00,52,5206', '沿河土家族自治县', '52', '贵州省', '5206', '铜仁市', '520627', '沿河土家族自治县', '', '', '', '', 3, 1, ''), ('520628', '5206', '00,52,5206', '松桃苗族自治县', '52', '贵州省', '5206', '铜仁市', '520628', '松桃苗族自治县', '', '', '', '', 3, 1, ''), ('5223', '52', '00,52', '黔西南布依族苗族自治州', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('522301', '5223', '00,52,5223', '兴义市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522301', '兴义市', '', '', '', '', 3, 1, ''), ('522302', '5223', '00,52,5223', '兴仁市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522302', '兴仁市', '', '', '', '', 3, 1, ''), ('522323', '5223', '00,52,5223', '普安县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522323', '普安县', '', '', '', '', 3, 1, ''), ('522324', '5223', '00,52,5223', '晴隆县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522324', '晴隆县', '', '', '', '', 3, 1, ''), ('522325', '5223', '00,52,5223', '贞丰县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522325', '贞丰县', '', '', '', '', 3, 1, ''), ('522326', '5223', '00,52,5223', '望谟县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522326', '望谟县', '', '', '', '', 3, 1, ''), ('522327', '5223', '00,52,5223', '册亨县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522327', '册亨县', '', '', '', '', 3, 1, ''), ('522328', '5223', '00,52,5223', '安龙县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522328', '安龙县', '', '', '', '', 3, 1, ''), ('5226', '52', '00,52', '黔东南苗族侗族自治州', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '', '', '', '', '', '', 2, 1, ''), ('522601', '5226', '00,52,5226', '凯里市', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522601', '凯里市', '', '', '', '', 3, 1, ''), ('522622', '5226', '00,52,5226', '黄平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522622', '黄平县', '', '', '', '', 3, 1, ''), ('522623', '5226', '00,52,5226', '施秉县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522623', '施秉县', '', '', '', '', 3, 1, ''), ('522624', '5226', '00,52,5226', '三穗县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522624', '三穗县', '', '', '', '', 3, 1, ''), ('522625', '5226', '00,52,5226', '镇远县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522625', '镇远县', '', '', '', '', 3, 1, ''), ('522626', '5226', '00,52,5226', '岑巩县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522626', '岑巩县', '', '', '', '', 3, 1, ''), ('522627', '5226', '00,52,5226', '天柱县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522627', '天柱县', '', '', '', '', 3, 1, ''), ('522628', '5226', '00,52,5226', '锦屏县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522628', '锦屏县', '', '', '', '', 3, 1, ''), ('522629', '5226', '00,52,5226', '剑河县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522629', '剑河县', '', '', '', '', 3, 1, ''), ('522630', '5226', '00,52,5226', '台江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522630', '台江县', '', '', '', '', 3, 1, ''), ('522631', '5226', '00,52,5226', '黎平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522631', '黎平县', '', '', '', '', 3, 1, ''), ('522632', '5226', '00,52,5226', '榕江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522632', '榕江县', '', '', '', '', 3, 1, ''), ('522633', '5226', '00,52,5226', '从江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522633', '从江县', '', '', '', '', 3, 1, ''), ('522634', '5226', '00,52,5226', '雷山县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522634', '雷山县', '', '', '', '', 3, 1, ''), ('522635', '5226', '00,52,5226', '麻江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522635', '麻江县', '', '', '', '', 3, 1, ''), ('522636', '5226', '00,52,5226', '丹寨县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522636', '丹寨县', '', '', '', '', 3, 1, ''), ('5227', '52', '00,52', '黔南布依族苗族自治州', '52', '贵州省', '5227', '黔南布依族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('522701', '5227', '00,52,5227', '都匀市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522701', '都匀市', '', '', '', '', 3, 1, ''), ('522702', '5227', '00,52,5227', '福泉市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522702', '福泉市', '', '', '', '', 3, 1, ''), ('522722', '5227', '00,52,5227', '荔波县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522722', '荔波县', '', '', '', '', 3, 1, ''), ('522723', '5227', '00,52,5227', '贵定县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522723', '贵定县', '', '', '', '', 3, 1, ''), ('522725', '5227', '00,52,5227', '瓮安县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522725', '瓮安县', '', '', '', '', 3, 1, ''), ('522726', '5227', '00,52,5227', '独山县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522726', '独山县', '', '', '', '', 3, 1, ''), ('522727', '5227', '00,52,5227', '平塘县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522727', '平塘县', '', '', '', '', 3, 1, ''), ('522728', '5227', '00,52,5227', '罗甸县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522728', '罗甸县', '', '', '', '', 3, 1, ''), ('522729', '5227', '00,52,5227', '长顺县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522729', '长顺县', '', '', '', '', 3, 1, ''), ('522730', '5227', '00,52,5227', '龙里县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522730', '龙里县', '', '', '', '', 3, 1, ''), ('522731', '5227', '00,52,5227', '惠水县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522731', '惠水县', '', '', '', '', 3, 1, ''), ('522732', '5227', '00,52,5227', '三都水族自治县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522732', '三都水族自治县', '', '', '', '', 3, 1, ''), ('53', '00', '00', '云南省', '53', '云南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('5301', '53', '00,53', '昆明市', '53', '云南省', '5301', '昆明市', '', '', '', '', '', '', 2, 1, ''), ('530102', '5301', '00,53,5301', '五华区', '53', '云南省', '5301', '昆明市', '530102', '五华区', '', '', '', '', 3, 1, ''), ('530103', '5301', '00,53,5301', '盘龙区', '53', '云南省', '5301', '昆明市', '530103', '盘龙区', '', '', '', '', 3, 1, ''), ('530111', '5301', '00,53,5301', '官渡区', '53', '云南省', '5301', '昆明市', '530111', '官渡区', '', '', '', '', 3, 1, ''), ('530112', '5301', '00,53,5301', '西山区', '53', '云南省', '5301', '昆明市', '530112', '西山区', '', '', '', '', 3, 1, ''), ('530113', '5301', '00,53,5301', '东川区', '53', '云南省', '5301', '昆明市', '530113', '东川区', '', '', '', '', 3, 1, ''), ('530114', '5301', '00,53,5301', '呈贡区', '53', '云南省', '5301', '昆明市', '530114', '呈贡区', '', '', '', '', 3, 1, ''), ('530115', '5301', '00,53,5301', '晋宁区', '53', '云南省', '5301', '昆明市', '530115', '晋宁区', '', '', '', '', 3, 1, ''), ('530124', '5301', '00,53,5301', '富民县', '53', '云南省', '5301', '昆明市', '530124', '富民县', '', '', '', '', 3, 1, ''), ('530125', '5301', '00,53,5301', '宜良县', '53', '云南省', '5301', '昆明市', '530125', '宜良县', '', '', '', '', 3, 1, ''), ('530126', '5301', '00,53,5301', '石林彝族自治县', '53', '云南省', '5301', '昆明市', '530126', '石林彝族自治县', '', '', '', '', 3, 1, ''), ('530127', '5301', '00,53,5301', '嵩明县', '53', '云南省', '5301', '昆明市', '530127', '嵩明县', '', '', '', '', 3, 1, ''), ('530128', '5301', '00,53,5301', '禄劝彝族苗族自治县', '53', '云南省', '5301', '昆明市', '530128', '禄劝彝族苗族自治县', '', '', '', '', 3, 1, ''), ('530129', '5301', '00,53,5301', '寻甸回族彝族自治县', '53', '云南省', '5301', '昆明市', '530129', '寻甸回族彝族自治县', '', '', '', '', 3, 1, ''), ('530181', '5301', '00,53,5301', '安宁市', '53', '云南省', '5301', '昆明市', '530181', '安宁市', '', '', '', '', 3, 1, ''), ('5303', '53', '00,53', '曲靖市', '53', '云南省', '5303', '曲靖市', '', '', '', '', '', '', 2, 1, ''), ('530302', '5303', '00,53,5303', '麒麟区', '53', '云南省', '5303', '曲靖市', '530302', '麒麟区', '', '', '', '', 3, 1, ''), ('530303', '5303', '00,53,5303', '沾益区', '53', '云南省', '5303', '曲靖市', '530303', '沾益区', '', '', '', '', 3, 1, ''), ('530304', '5303', '00,53,5303', '马龙区', '53', '云南省', '5303', '曲靖市', '530304', '马龙区', '', '', '', '', 3, 1, ''), ('530322', '5303', '00,53,5303', '陆良县', '53', '云南省', '5303', '曲靖市', '530322', '陆良县', '', '', '', '', 3, 1, ''), ('530323', '5303', '00,53,5303', '师宗县', '53', '云南省', '5303', '曲靖市', '530323', '师宗县', '', '', '', '', 3, 1, ''), ('530324', '5303', '00,53,5303', '罗平县', '53', '云南省', '5303', '曲靖市', '530324', '罗平县', '', '', '', '', 3, 1, ''), ('530325', '5303', '00,53,5303', '富源县', '53', '云南省', '5303', '曲靖市', '530325', '富源县', '', '', '', '', 3, 1, ''), ('530326', '5303', '00,53,5303', '会泽县', '53', '云南省', '5303', '曲靖市', '530326', '会泽县', '', '', '', '', 3, 1, ''), ('530381', '5303', '00,53,5303', '宣威市', '53', '云南省', '5303', '曲靖市', '530381', '宣威市', '', '', '', '', 3, 1, ''), ('5304', '53', '00,53', '玉溪市', '53', '云南省', '5304', '玉溪市', '', '', '', '', '', '', 2, 1, ''), ('530402', '5304', '00,53,5304', '红塔区', '53', '云南省', '5304', '玉溪市', '530402', '红塔区', '', '', '', '', 3, 1, ''), ('530403', '5304', '00,53,5304', '江川区', '53', '云南省', '5304', '玉溪市', '530403', '江川区', '', '', '', '', 3, 1, ''), ('530423', '5304', '00,53,5304', '通海县', '53', '云南省', '5304', '玉溪市', '530423', '通海县', '', '', '', '', 3, 1, ''), ('530424', '5304', '00,53,5304', '华宁县', '53', '云南省', '5304', '玉溪市', '530424', '华宁县', '', '', '', '', 3, 1, ''), ('530425', '5304', '00,53,5304', '易门县', '53', '云南省', '5304', '玉溪市', '530425', '易门县', '', '', '', '', 3, 1, ''), ('530426', '5304', '00,53,5304', '峨山彝族自治县', '53', '云南省', '5304', '玉溪市', '530426', '峨山彝族自治县', '', '', '', '', 3, 1, ''), ('530427', '5304', '00,53,5304', '新平彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530427', '新平彝族傣族自治县', '', '', '', '', 3, 1, ''), ('530428', '5304', '00,53,5304', '元江哈尼族彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530428', '元江哈尼族彝族傣族自治县', '', '', '', '', 3, 1, ''), ('530481', '5304', '00,53,5304', '澄江市', '53', '云南省', '5304', '玉溪市', '530481', '澄江市', '', '', '', '', 3, 1, ''), ('5305', '53', '00,53', '保山市', '53', '云南省', '5305', '保山市', '', '', '', '', '', '', 2, 1, ''), ('530502', '5305', '00,53,5305', '隆阳区', '53', '云南省', '5305', '保山市', '530502', '隆阳区', '', '', '', '', 3, 1, ''), ('530521', '5305', '00,53,5305', '施甸县', '53', '云南省', '5305', '保山市', '530521', '施甸县', '', '', '', '', 3, 1, ''), ('530523', '5305', '00,53,5305', '龙陵县', '53', '云南省', '5305', '保山市', '530523', '龙陵县', '', '', '', '', 3, 1, ''), ('530524', '5305', '00,53,5305', '昌宁县', '53', '云南省', '5305', '保山市', '530524', '昌宁县', '', '', '', '', 3, 1, ''), ('530581', '5305', '00,53,5305', '腾冲市', '53', '云南省', '5305', '保山市', '530581', '腾冲市', '', '', '', '', 3, 1, ''), ('5306', '53', '00,53', '昭通市', '53', '云南省', '5306', '昭通市', '', '', '', '', '', '', 2, 1, ''), ('530602', '5306', '00,53,5306', '昭阳区', '53', '云南省', '5306', '昭通市', '530602', '昭阳区', '', '', '', '', 3, 1, ''), ('530621', '5306', '00,53,5306', '鲁甸县', '53', '云南省', '5306', '昭通市', '530621', '鲁甸县', '', '', '', '', 3, 1, ''), ('530622', '5306', '00,53,5306', '巧家县', '53', '云南省', '5306', '昭通市', '530622', '巧家县', '', '', '', '', 3, 1, ''), ('530623', '5306', '00,53,5306', '盐津县', '53', '云南省', '5306', '昭通市', '530623', '盐津县', '', '', '', '', 3, 1, ''), ('530624', '5306', '00,53,5306', '大关县', '53', '云南省', '5306', '昭通市', '530624', '大关县', '', '', '', '', 3, 1, ''), ('530625', '5306', '00,53,5306', '永善县', '53', '云南省', '5306', '昭通市', '530625', '永善县', '', '', '', '', 3, 1, ''), ('530626', '5306', '00,53,5306', '绥江县', '53', '云南省', '5306', '昭通市', '530626', '绥江县', '', '', '', '', 3, 1, ''), ('530627', '5306', '00,53,5306', '镇雄县', '53', '云南省', '5306', '昭通市', '530627', '镇雄县', '', '', '', '', 3, 1, ''), ('530628', '5306', '00,53,5306', '彝良县', '53', '云南省', '5306', '昭通市', '530628', '彝良县', '', '', '', '', 3, 1, ''), ('530629', '5306', '00,53,5306', '威信县', '53', '云南省', '5306', '昭通市', '530629', '威信县', '', '', '', '', 3, 1, ''), ('530681', '5306', '00,53,5306', '水富市', '53', '云南省', '5306', '昭通市', '530681', '水富市', '', '', '', '', 3, 1, ''), ('5307', '53', '00,53', '丽江市', '53', '云南省', '5307', '丽江市', '', '', '', '', '', '', 2, 1, ''), ('530702', '5307', '00,53,5307', '古城区', '53', '云南省', '5307', '丽江市', '530702', '古城区', '', '', '', '', 3, 1, ''), ('530721', '5307', '00,53,5307', '玉龙纳西族自治县', '53', '云南省', '5307', '丽江市', '530721', '玉龙纳西族自治县', '', '', '', '', 3, 1, ''), ('530722', '5307', '00,53,5307', '永胜县', '53', '云南省', '5307', '丽江市', '530722', '永胜县', '', '', '', '', 3, 1, ''), ('530723', '5307', '00,53,5307', '华坪县', '53', '云南省', '5307', '丽江市', '530723', '华坪县', '', '', '', '', 3, 1, ''), ('530724', '5307', '00,53,5307', '宁蒗彝族自治县', '53', '云南省', '5307', '丽江市', '530724', '宁蒗彝族自治县', '', '', '', '', 3, 1, ''), ('5308', '53', '00,53', '普洱市', '53', '云南省', '5308', '普洱市', '', '', '', '', '', '', 2, 1, ''), ('530802', '5308', '00,53,5308', '思茅区', '53', '云南省', '5308', '普洱市', '530802', '思茅区', '', '', '', '', 3, 1, ''), ('530821', '5308', '00,53,5308', '宁洱哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530821', '宁洱哈尼族彝族自治县', '', '', '', '', 3, 1, ''), ('530822', '5308', '00,53,5308', '墨江哈尼族自治县', '53', '云南省', '5308', '普洱市', '530822', '墨江哈尼族自治县', '', '', '', '', 3, 1, ''), ('530823', '5308', '00,53,5308', '景东彝族自治县', '53', '云南省', '5308', '普洱市', '530823', '景东彝族自治县', '', '', '', '', 3, 1, ''), ('530824', '5308', '00,53,5308', '景谷傣族彝族自治县', '53', '云南省', '5308', '普洱市', '530824', '景谷傣族彝族自治县', '', '', '', '', 3, 1, ''), ('530825', '5308', '00,53,5308', '镇沅彝族哈尼族拉祜族自治县', '53', '云南省', '5308', '普洱市', '530825', '镇沅彝族哈尼族拉祜族自治县', '', '', '', '', 3, 1, ''), ('530826', '5308', '00,53,5308', '江城哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530826', '江城哈尼族彝族自治县', '', '', '', '', 3, 1, ''), ('530827', '5308', '00,53,5308', '孟连傣族拉祜族佤族自治县', '53', '云南省', '5308', '普洱市', '530827', '孟连傣族拉祜族佤族自治县', '', '', '', '', 3, 1, ''), ('530828', '5308', '00,53,5308', '澜沧拉祜族自治县', '53', '云南省', '5308', '普洱市', '530828', '澜沧拉祜族自治县', '', '', '', '', 3, 1, ''), ('530829', '5308', '00,53,5308', '西盟佤族自治县', '53', '云南省', '5308', '普洱市', '530829', '西盟佤族自治县', '', '', '', '', 3, 1, ''), ('5309', '53', '00,53', '临沧市', '53', '云南省', '5309', '临沧市', '', '', '', '', '', '', 2, 1, ''), ('530902', '5309', '00,53,5309', '临翔区', '53', '云南省', '5309', '临沧市', '530902', '临翔区', '', '', '', '', 3, 1, ''), ('530921', '5309', '00,53,5309', '凤庆县', '53', '云南省', '5309', '临沧市', '530921', '凤庆县', '', '', '', '', 3, 1, ''), ('530922', '5309', '00,53,5309', '云县', '53', '云南省', '5309', '临沧市', '530922', '云县', '', '', '', '', 3, 1, ''), ('530923', '5309', '00,53,5309', '永德县', '53', '云南省', '5309', '临沧市', '530923', '永德县', '', '', '', '', 3, 1, ''), ('530924', '5309', '00,53,5309', '镇康县', '53', '云南省', '5309', '临沧市', '530924', '镇康县', '', '', '', '', 3, 1, ''), ('530925', '5309', '00,53,5309', '双江拉祜族佤族布朗族傣族自治县', '53', '云南省', '5309', '临沧市', '530925', '双江拉祜族佤族布朗族傣族自治县', '', '', '', '', 3, 1, ''), ('530926', '5309', '00,53,5309', '耿马傣族佤族自治县', '53', '云南省', '5309', '临沧市', '530926', '耿马傣族佤族自治县', '', '', '', '', 3, 1, ''), ('530927', '5309', '00,53,5309', '沧源佤族自治县', '53', '云南省', '5309', '临沧市', '530927', '沧源佤族自治县', '', '', '', '', 3, 1, ''), ('5323', '53', '00,53', '楚雄彝族自治州', '53', '云南省', '5323', '楚雄彝族自治州', '', '', '', '', '', '', 2, 1, ''), ('532301', '5323', '00,53,5323', '楚雄市', '53', '云南省', '5323', '楚雄彝族自治州', '532301', '楚雄市', '', '', '', '', 3, 1, ''), ('532322', '5323', '00,53,5323', '双柏县', '53', '云南省', '5323', '楚雄彝族自治州', '532322', '双柏县', '', '', '', '', 3, 1, ''), ('532323', '5323', '00,53,5323', '牟定县', '53', '云南省', '5323', '楚雄彝族自治州', '532323', '牟定县', '', '', '', '', 3, 1, ''), ('532324', '5323', '00,53,5323', '南华县', '53', '云南省', '5323', '楚雄彝族自治州', '532324', '南华县', '', '', '', '', 3, 1, ''), ('532325', '5323', '00,53,5323', '姚安县', '53', '云南省', '5323', '楚雄彝族自治州', '532325', '姚安县', '', '', '', '', 3, 1, ''), ('532326', '5323', '00,53,5323', '大姚县', '53', '云南省', '5323', '楚雄彝族自治州', '532326', '大姚县', '', '', '', '', 3, 1, ''), ('532327', '5323', '00,53,5323', '永仁县', '53', '云南省', '5323', '楚雄彝族自治州', '532327', '永仁县', '', '', '', '', 3, 1, ''), ('532328', '5323', '00,53,5323', '元谋县', '53', '云南省', '5323', '楚雄彝族自治州', '532328', '元谋县', '', '', '', '', 3, 1, ''), ('532329', '5323', '00,53,5323', '武定县', '53', '云南省', '5323', '楚雄彝族自治州', '532329', '武定县', '', '', '', '', 3, 1, ''), ('532331', '5323', '00,53,5323', '禄丰县', '53', '云南省', '5323', '楚雄彝族自治州', '532331', '禄丰县', '', '', '', '', 3, 1, ''), ('5325', '53', '00,53', '红河哈尼族彝族自治州', '53', '云南省', '5325', '红河哈尼族彝族自治州', '', '', '', '', '', '', 2, 1, ''), ('532501', '5325', '00,53,5325', '个旧市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532501', '个旧市', '', '', '', '', 3, 1, ''), ('532502', '5325', '00,53,5325', '开远市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532502', '开远市', '', '', '', '', 3, 1, ''), ('532503', '5325', '00,53,5325', '蒙自市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532503', '蒙自市', '', '', '', '', 3, 1, ''), ('532504', '5325', '00,53,5325', '弥勒市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532504', '弥勒市', '', '', '', '', 3, 1, ''), ('532523', '5325', '00,53,5325', '屏边苗族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532523', '屏边苗族自治县', '', '', '', '', 3, 1, ''), ('532524', '5325', '00,53,5325', '建水县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532524', '建水县', '', '', '', '', 3, 1, ''), ('532525', '5325', '00,53,5325', '石屏县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532525', '石屏县', '', '', '', '', 3, 1, ''), ('532527', '5325', '00,53,5325', '泸西县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532527', '泸西县', '', '', '', '', 3, 1, ''), ('532528', '5325', '00,53,5325', '元阳县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532528', '元阳县', '', '', '', '', 3, 1, ''), ('532529', '5325', '00,53,5325', '红河县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532529', '红河县', '', '', '', '', 3, 1, ''), ('532530', '5325', '00,53,5325', '金平苗族瑶族傣族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532530', '金平苗族瑶族傣族自治县', '', '', '', '', 3, 1, ''), ('532531', '5325', '00,53,5325', '绿春县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532531', '绿春县', '', '', '', '', 3, 1, ''), ('532532', '5325', '00,53,5325', '河口瑶族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532532', '河口瑶族自治县', '', '', '', '', 3, 1, ''), ('5326', '53', '00,53', '文山壮族苗族自治州', '53', '云南省', '5326', '文山壮族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('532601', '5326', '00,53,5326', '文山市', '53', '云南省', '5326', '文山壮族苗族自治州', '532601', '文山市', '', '', '', '', 3, 1, ''), ('532622', '5326', '00,53,5326', '砚山县', '53', '云南省', '5326', '文山壮族苗族自治州', '532622', '砚山县', '', '', '', '', 3, 1, ''), ('532623', '5326', '00,53,5326', '西畴县', '53', '云南省', '5326', '文山壮族苗族自治州', '532623', '西畴县', '', '', '', '', 3, 1, ''), ('532624', '5326', '00,53,5326', '麻栗坡县', '53', '云南省', '5326', '文山壮族苗族自治州', '532624', '麻栗坡县', '', '', '', '', 3, 1, ''), ('532625', '5326', '00,53,5326', '马关县', '53', '云南省', '5326', '文山壮族苗族自治州', '532625', '马关县', '', '', '', '', 3, 1, ''), ('532626', '5326', '00,53,5326', '丘北县', '53', '云南省', '5326', '文山壮族苗族自治州', '532626', '丘北县', '', '', '', '', 3, 1, ''), ('532627', '5326', '00,53,5326', '广南县', '53', '云南省', '5326', '文山壮族苗族自治州', '532627', '广南县', '', '', '', '', 3, 1, ''), ('532628', '5326', '00,53,5326', '富宁县', '53', '云南省', '5326', '文山壮族苗族自治州', '532628', '富宁县', '', '', '', '', 3, 1, ''), ('5328', '53', '00,53', '西双版纳傣族自治州', '53', '云南省', '5328', '西双版纳傣族自治州', '', '', '', '', '', '', 2, 1, ''), ('532801', '5328', '00,53,5328', '景洪市', '53', '云南省', '5328', '西双版纳傣族自治州', '532801', '景洪市', '', '', '', '', 3, 1, ''), ('532822', '5328', '00,53,5328', '勐海县', '53', '云南省', '5328', '西双版纳傣族自治州', '532822', '勐海县', '', '', '', '', 3, 1, ''), ('532823', '5328', '00,53,5328', '勐腊县', '53', '云南省', '5328', '西双版纳傣族自治州', '532823', '勐腊县', '', '', '', '', 3, 1, ''), ('5329', '53', '00,53', '大理白族自治州', '53', '云南省', '5329', '大理白族自治州', '', '', '', '', '', '', 2, 1, ''), ('532901', '5329', '00,53,5329', '大理市', '53', '云南省', '5329', '大理白族自治州', '532901', '大理市', '', '', '', '', 3, 1, ''), ('532922', '5329', '00,53,5329', '漾濞彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532922', '漾濞彝族自治县', '', '', '', '', 3, 1, ''), ('532923', '5329', '00,53,5329', '祥云县', '53', '云南省', '5329', '大理白族自治州', '532923', '祥云县', '', '', '', '', 3, 1, ''), ('532924', '5329', '00,53,5329', '宾川县', '53', '云南省', '5329', '大理白族自治州', '532924', '宾川县', '', '', '', '', 3, 1, ''), ('532925', '5329', '00,53,5329', '弥渡县', '53', '云南省', '5329', '大理白族自治州', '532925', '弥渡县', '', '', '', '', 3, 1, ''), ('532926', '5329', '00,53,5329', '南涧彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532926', '南涧彝族自治县', '', '', '', '', 3, 1, ''), ('532927', '5329', '00,53,5329', '巍山彝族回族自治县', '53', '云南省', '5329', '大理白族自治州', '532927', '巍山彝族回族自治县', '', '', '', '', 3, 1, ''), ('532928', '5329', '00,53,5329', '永平县', '53', '云南省', '5329', '大理白族自治州', '532928', '永平县', '', '', '', '', 3, 1, ''), ('532929', '5329', '00,53,5329', '云龙县', '53', '云南省', '5329', '大理白族自治州', '532929', '云龙县', '', '', '', '', 3, 1, ''), ('532930', '5329', '00,53,5329', '洱源县', '53', '云南省', '5329', '大理白族自治州', '532930', '洱源县', '', '', '', '', 3, 1, ''), ('532931', '5329', '00,53,5329', '剑川县', '53', '云南省', '5329', '大理白族自治州', '532931', '剑川县', '', '', '', '', 3, 1, ''), ('532932', '5329', '00,53,5329', '鹤庆县', '53', '云南省', '5329', '大理白族自治州', '532932', '鹤庆县', '', '', '', '', 3, 1, ''), ('5331', '53', '00,53', '德宏傣族景颇族自治州', '53', '云南省', '5331', '德宏傣族景颇族自治州', '', '', '', '', '', '', 2, 1, ''), ('533102', '5331', '00,53,5331', '瑞丽市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533102', '瑞丽市', '', '', '', '', 3, 1, ''), ('533103', '5331', '00,53,5331', '芒市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533103', '芒市', '', '', '', '', 3, 1, ''), ('533122', '5331', '00,53,5331', '梁河县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533122', '梁河县', '', '', '', '', 3, 1, ''), ('533123', '5331', '00,53,5331', '盈江县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533123', '盈江县', '', '', '', '', 3, 1, ''), ('533124', '5331', '00,53,5331', '陇川县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533124', '陇川县', '', '', '', '', 3, 1, ''), ('5333', '53', '00,53', '怒江傈僳族自治州', '53', '云南省', '5333', '怒江傈僳族自治州', '', '', '', '', '', '', 2, 1, ''), ('533301', '5333', '00,53,5333', '泸水市', '53', '云南省', '5333', '怒江傈僳族自治州', '533301', '泸水市', '', '', '', '', 3, 1, ''), ('533323', '5333', '00,53,5333', '福贡县', '53', '云南省', '5333', '怒江傈僳族自治州', '533323', '福贡县', '', '', '', '', 3, 1, ''), ('533324', '5333', '00,53,5333', '贡山独龙族怒族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533324', '贡山独龙族怒族自治县', '', '', '', '', 3, 1, ''), ('533325', '5333', '00,53,5333', '兰坪白族普米族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533325', '兰坪白族普米族自治县', '', '', '', '', 3, 1, ''), ('5334', '53', '00,53', '迪庆藏族自治州', '53', '云南省', '5334', '迪庆藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('533401', '5334', '00,53,5334', '香格里拉市', '53', '云南省', '5334', '迪庆藏族自治州', '533401', '香格里拉市', '', '', '', '', 3, 1, ''), ('533422', '5334', '00,53,5334', '德钦县', '53', '云南省', '5334', '迪庆藏族自治州', '533422', '德钦县', '', '', '', '', 3, 1, ''), ('533423', '5334', '00,53,5334', '维西傈僳族自治县', '53', '云南省', '5334', '迪庆藏族自治州', '533423', '维西傈僳族自治县', '', '', '', '', 3, 1, ''), ('54', '00', '00', '西藏自治区', '54', '西藏自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('5401', '54', '00,54', '拉萨市', '54', '西藏自治区', '5401', '拉萨市', '', '', '', '', '', '', 2, 1, ''), ('540102', '5401', '00,54,5401', '城关区', '54', '西藏自治区', '5401', '拉萨市', '540102', '城关区', '', '', '', '', 3, 1, ''), ('540103', '5401', '00,54,5401', '堆龙德庆区', '54', '西藏自治区', '5401', '拉萨市', '540103', '堆龙德庆区', '', '', '', '', 3, 1, ''), ('540104', '5401', '00,54,5401', '达孜区', '54', '西藏自治区', '5401', '拉萨市', '540104', '达孜区', '', '', '', '', 3, 1, ''), ('540121', '5401', '00,54,5401', '林周县', '54', '西藏自治区', '5401', '拉萨市', '540121', '林周县', '', '', '', '', 3, 1, ''), ('540122', '5401', '00,54,5401', '当雄县', '54', '西藏自治区', '5401', '拉萨市', '540122', '当雄县', '', '', '', '', 3, 1, ''), ('540123', '5401', '00,54,5401', '尼木县', '54', '西藏自治区', '5401', '拉萨市', '540123', '尼木县', '', '', '', '', 3, 1, ''), ('540124', '5401', '00,54,5401', '曲水县', '54', '西藏自治区', '5401', '拉萨市', '540124', '曲水县', '', '', '', '', 3, 1, ''), ('540127', '5401', '00,54,5401', '墨竹工卡县', '54', '西藏自治区', '5401', '拉萨市', '540127', '墨竹工卡县', '', '', '', '', 3, 1, ''), ('5402', '54', '00,54', '日喀则市', '54', '西藏自治区', '5402', '日喀则市', '', '', '', '', '', '', 2, 1, ''), ('540202', '5402', '00,54,5402', '桑珠孜区', '54', '西藏自治区', '5402', '日喀则市', '540202', '桑珠孜区', '', '', '', '', 3, 1, ''), ('540221', '5402', '00,54,5402', '南木林县', '54', '西藏自治区', '5402', '日喀则市', '540221', '南木林县', '', '', '', '', 3, 1, ''), ('540222', '5402', '00,54,5402', '江孜县', '54', '西藏自治区', '5402', '日喀则市', '540222', '江孜县', '', '', '', '', 3, 1, ''), ('540223', '5402', '00,54,5402', '定日县', '54', '西藏自治区', '5402', '日喀则市', '540223', '定日县', '', '', '', '', 3, 1, ''), ('540224', '5402', '00,54,5402', '萨迦县', '54', '西藏自治区', '5402', '日喀则市', '540224', '萨迦县', '', '', '', '', 3, 1, ''), ('540225', '5402', '00,54,5402', '拉孜县', '54', '西藏自治区', '5402', '日喀则市', '540225', '拉孜县', '', '', '', '', 3, 1, ''), ('540226', '5402', '00,54,5402', '昂仁县', '54', '西藏自治区', '5402', '日喀则市', '540226', '昂仁县', '', '', '', '', 3, 1, ''), ('540227', '5402', '00,54,5402', '谢通门县', '54', '西藏自治区', '5402', '日喀则市', '540227', '谢通门县', '', '', '', '', 3, 1, ''), ('540228', '5402', '00,54,5402', '白朗县', '54', '西藏自治区', '5402', '日喀则市', '540228', '白朗县', '', '', '', '', 3, 1, ''), ('540229', '5402', '00,54,5402', '仁布县', '54', '西藏自治区', '5402', '日喀则市', '540229', '仁布县', '', '', '', '', 3, 1, ''), ('540230', '5402', '00,54,5402', '康马县', '54', '西藏自治区', '5402', '日喀则市', '540230', '康马县', '', '', '', '', 3, 1, ''), ('540231', '5402', '00,54,5402', '定结县', '54', '西藏自治区', '5402', '日喀则市', '540231', '定结县', '', '', '', '', 3, 1, ''), ('540232', '5402', '00,54,5402', '仲巴县', '54', '西藏自治区', '5402', '日喀则市', '540232', '仲巴县', '', '', '', '', 3, 1, ''), ('540233', '5402', '00,54,5402', '亚东县', '54', '西藏自治区', '5402', '日喀则市', '540233', '亚东县', '', '', '', '', 3, 1, ''), ('540234', '5402', '00,54,5402', '吉隆县', '54', '西藏自治区', '5402', '日喀则市', '540234', '吉隆县', '', '', '', '', 3, 1, ''), ('540235', '5402', '00,54,5402', '聂拉木县', '54', '西藏自治区', '5402', '日喀则市', '540235', '聂拉木县', '', '', '', '', 3, 1, ''), ('540236', '5402', '00,54,5402', '萨嘎县', '54', '西藏自治区', '5402', '日喀则市', '540236', '萨嘎县', '', '', '', '', 3, 1, ''), ('540237', '5402', '00,54,5402', '岗巴县', '54', '西藏自治区', '5402', '日喀则市', '540237', '岗巴县', '', '', '', '', 3, 1, ''), ('5403', '54', '00,54', '昌都市', '54', '西藏自治区', '5403', '昌都市', '', '', '', '', '', '', 2, 1, ''), ('540302', '5403', '00,54,5403', '卡若区', '54', '西藏自治区', '5403', '昌都市', '540302', '卡若区', '', '', '', '', 3, 1, ''), ('540321', '5403', '00,54,5403', '江达县', '54', '西藏自治区', '5403', '昌都市', '540321', '江达县', '', '', '', '', 3, 1, ''), ('540322', '5403', '00,54,5403', '贡觉县', '54', '西藏自治区', '5403', '昌都市', '540322', '贡觉县', '', '', '', '', 3, 1, ''), ('540323', '5403', '00,54,5403', '类乌齐县', '54', '西藏自治区', '5403', '昌都市', '540323', '类乌齐县', '', '', '', '', 3, 1, ''), ('540324', '5403', '00,54,5403', '丁青县', '54', '西藏自治区', '5403', '昌都市', '540324', '丁青县', '', '', '', '', 3, 1, ''), ('540325', '5403', '00,54,5403', '察雅县', '54', '西藏自治区', '5403', '昌都市', '540325', '察雅县', '', '', '', '', 3, 1, ''), ('540326', '5403', '00,54,5403', '八宿县', '54', '西藏自治区', '5403', '昌都市', '540326', '八宿县', '', '', '', '', 3, 1, ''), ('540327', '5403', '00,54,5403', '左贡县', '54', '西藏自治区', '5403', '昌都市', '540327', '左贡县', '', '', '', '', 3, 1, ''), ('540328', '5403', '00,54,5403', '芒康县', '54', '西藏自治区', '5403', '昌都市', '540328', '芒康县', '', '', '', '', 3, 1, ''), ('540329', '5403', '00,54,5403', '洛隆县', '54', '西藏自治区', '5403', '昌都市', '540329', '洛隆县', '', '', '', '', 3, 1, ''), ('540330', '5403', '00,54,5403', '边坝县', '54', '西藏自治区', '5403', '昌都市', '540330', '边坝县', '', '', '', '', 3, 1, ''), ('5404', '54', '00,54', '林芝市', '54', '西藏自治区', '5404', '林芝市', '', '', '', '', '', '', 2, 1, ''), ('540402', '5404', '00,54,5404', '巴宜区', '54', '西藏自治区', '5404', '林芝市', '540402', '巴宜区', '', '', '', '', 3, 1, ''), ('540421', '5404', '00,54,5404', '工布江达县', '54', '西藏自治区', '5404', '林芝市', '540421', '工布江达县', '', '', '', '', 3, 1, ''), ('540422', '5404', '00,54,5404', '米林县', '54', '西藏自治区', '5404', '林芝市', '540422', '米林县', '', '', '', '', 3, 1, ''), ('540423', '5404', '00,54,5404', '墨脱县', '54', '西藏自治区', '5404', '林芝市', '540423', '墨脱县', '', '', '', '', 3, 1, ''), ('540424', '5404', '00,54,5404', '波密县', '54', '西藏自治区', '5404', '林芝市', '540424', '波密县', '', '', '', '', 3, 1, ''), ('540425', '5404', '00,54,5404', '察隅县', '54', '西藏自治区', '5404', '林芝市', '540425', '察隅县', '', '', '', '', 3, 1, ''), ('540426', '5404', '00,54,5404', '朗县', '54', '西藏自治区', '5404', '林芝市', '540426', '朗县', '', '', '', '', 3, 1, ''), ('5405', '54', '00,54', '山南市', '54', '西藏自治区', '5405', '山南市', '', '', '', '', '', '', 2, 1, ''), ('540502', '5405', '00,54,5405', '乃东区', '54', '西藏自治区', '5405', '山南市', '540502', '乃东区', '', '', '', '', 3, 1, ''), ('540521', '5405', '00,54,5405', '扎囊县', '54', '西藏自治区', '5405', '山南市', '540521', '扎囊县', '', '', '', '', 3, 1, ''), ('540522', '5405', '00,54,5405', '贡嘎县', '54', '西藏自治区', '5405', '山南市', '540522', '贡嘎县', '', '', '', '', 3, 1, ''), ('540523', '5405', '00,54,5405', '桑日县', '54', '西藏自治区', '5405', '山南市', '540523', '桑日县', '', '', '', '', 3, 1, ''), ('540524', '5405', '00,54,5405', '琼结县', '54', '西藏自治区', '5405', '山南市', '540524', '琼结县', '', '', '', '', 3, 1, ''), ('540525', '5405', '00,54,5405', '曲松县', '54', '西藏自治区', '5405', '山南市', '540525', '曲松县', '', '', '', '', 3, 1, ''), ('540526', '5405', '00,54,5405', '措美县', '54', '西藏自治区', '5405', '山南市', '540526', '措美县', '', '', '', '', 3, 1, ''), ('540527', '5405', '00,54,5405', '洛扎县', '54', '西藏自治区', '5405', '山南市', '540527', '洛扎县', '', '', '', '', 3, 1, ''), ('540528', '5405', '00,54,5405', '加查县', '54', '西藏自治区', '5405', '山南市', '540528', '加查县', '', '', '', '', 3, 1, ''), ('540529', '5405', '00,54,5405', '隆子县', '54', '西藏自治区', '5405', '山南市', '540529', '隆子县', '', '', '', '', 3, 1, ''), ('540530', '5405', '00,54,5405', '错那县', '54', '西藏自治区', '5405', '山南市', '540530', '错那县', '', '', '', '', 3, 1, ''), ('540531', '5405', '00,54,5405', '浪卡子县', '54', '西藏自治区', '5405', '山南市', '540531', '浪卡子县', '', '', '', '', 3, 1, ''), ('5406', '54', '00,54', '那曲市', '54', '西藏自治区', '5406', '那曲市', '', '', '', '', '', '', 2, 1, ''), ('540602', '5406', '00,54,5406', '色尼区', '54', '西藏自治区', '5406', '那曲市', '540602', '色尼区', '', '', '', '', 3, 1, ''), ('540621', '5406', '00,54,5406', '嘉黎县', '54', '西藏自治区', '5406', '那曲市', '540621', '嘉黎县', '', '', '', '', 3, 1, ''), ('540622', '5406', '00,54,5406', '比如县', '54', '西藏自治区', '5406', '那曲市', '540622', '比如县', '', '', '', '', 3, 1, ''), ('540623', '5406', '00,54,5406', '聂荣县', '54', '西藏自治区', '5406', '那曲市', '540623', '聂荣县', '', '', '', '', 3, 1, ''), ('540624', '5406', '00,54,5406', '安多县', '54', '西藏自治区', '5406', '那曲市', '540624', '安多县', '', '', '', '', 3, 1, ''), ('540625', '5406', '00,54,5406', '申扎县', '54', '西藏自治区', '5406', '那曲市', '540625', '申扎县', '', '', '', '', 3, 1, ''), ('540626', '5406', '00,54,5406', '索县', '54', '西藏自治区', '5406', '那曲市', '540626', '索县', '', '', '', '', 3, 1, ''), ('540627', '5406', '00,54,5406', '班戈县', '54', '西藏自治区', '5406', '那曲市', '540627', '班戈县', '', '', '', '', 3, 1, ''), ('540628', '5406', '00,54,5406', '巴青县', '54', '西藏自治区', '5406', '那曲市', '540628', '巴青县', '', '', '', '', 3, 1, ''), ('540629', '5406', '00,54,5406', '尼玛县', '54', '西藏自治区', '5406', '那曲市', '540629', '尼玛县', '', '', '', '', 3, 1, ''), ('540630', '5406', '00,54,5406', '双湖县', '54', '西藏自治区', '5406', '那曲市', '540630', '双湖县', '', '', '', '', 3, 1, ''), ('5425', '54', '00,54', '阿里地区', '54', '西藏自治区', '5425', '阿里地区', '', '', '', '', '', '', 2, 1, ''), ('542521', '5425', '00,54,5425', '普兰县', '54', '西藏自治区', '5425', '阿里地区', '542521', '普兰县', '', '', '', '', 3, 1, ''), ('542522', '5425', '00,54,5425', '札达县', '54', '西藏自治区', '5425', '阿里地区', '542522', '札达县', '', '', '', '', 3, 1, ''), ('542523', '5425', '00,54,5425', '噶尔县', '54', '西藏自治区', '5425', '阿里地区', '542523', '噶尔县', '', '', '', '', 3, 1, ''), ('542524', '5425', '00,54,5425', '日土县', '54', '西藏自治区', '5425', '阿里地区', '542524', '日土县', '', '', '', '', 3, 1, ''), ('542525', '5425', '00,54,5425', '革吉县', '54', '西藏自治区', '5425', '阿里地区', '542525', '革吉县', '', '', '', '', 3, 1, ''), ('542526', '5425', '00,54,5425', '改则县', '54', '西藏自治区', '5425', '阿里地区', '542526', '改则县', '', '', '', '', 3, 1, ''), ('542527', '5425', '00,54,5425', '措勤县', '54', '西藏自治区', '5425', '阿里地区', '542527', '措勤县', '', '', '', '', 3, 1, ''), ('61', '00', '00', '陕西省', '61', '陕西省', '', '', '', '', '', '', '', '', 1, 1, ''), ('6101', '61', '00,61', '西安市', '61', '陕西省', '6101', '西安市', '', '', '', '', '', '', 2, 1, ''), ('610102', '6101', '00,61,6101', '新城区', '61', '陕西省', '6101', '西安市', '610102', '新城区', '', '', '', '', 3, 1, ''), ('610103', '6101', '00,61,6101', '碑林区', '61', '陕西省', '6101', '西安市', '610103', '碑林区', '', '', '', '', 3, 1, ''), ('610104', '6101', '00,61,6101', '莲湖区', '61', '陕西省', '6101', '西安市', '610104', '莲湖区', '', '', '', '', 3, 1, ''), ('610111', '6101', '00,61,6101', '灞桥区', '61', '陕西省', '6101', '西安市', '610111', '灞桥区', '', '', '', '', 3, 1, ''), ('610112', '6101', '00,61,6101', '未央区', '61', '陕西省', '6101', '西安市', '610112', '未央区', '', '', '', '', 3, 1, ''), ('610113', '6101', '00,61,6101', '雁塔区', '61', '陕西省', '6101', '西安市', '610113', '雁塔区', '', '', '', '', 3, 1, ''), ('610114', '6101', '00,61,6101', '阎良区', '61', '陕西省', '6101', '西安市', '610114', '阎良区', '', '', '', '', 3, 1, ''), ('610115', '6101', '00,61,6101', '临潼区', '61', '陕西省', '6101', '西安市', '610115', '临潼区', '', '', '', '', 3, 1, ''), ('610116', '6101', '00,61,6101', '长安区', '61', '陕西省', '6101', '西安市', '610116', '长安区', '', '', '', '', 3, 1, ''), ('610117', '6101', '00,61,6101', '高陵区', '61', '陕西省', '6101', '西安市', '610117', '高陵区', '', '', '', '', 3, 1, ''), ('610118', '6101', '00,61,6101', '鄠邑区', '61', '陕西省', '6101', '西安市', '610118', '鄠邑区', '', '', '', '', 3, 1, ''), ('610122', '6101', '00,61,6101', '蓝田县', '61', '陕西省', '6101', '西安市', '610122', '蓝田县', '', '', '', '', 3, 1, ''), ('610124', '6101', '00,61,6101', '周至县', '61', '陕西省', '6101', '西安市', '610124', '周至县', '', '', '', '', 3, 1, ''), ('6102', '61', '00,61', '铜川市', '61', '陕西省', '6102', '铜川市', '', '', '', '', '', '', 2, 1, ''), ('610202', '6102', '00,61,6102', '王益区', '61', '陕西省', '6102', '铜川市', '610202', '王益区', '', '', '', '', 3, 1, ''), ('610203', '6102', '00,61,6102', '印台区', '61', '陕西省', '6102', '铜川市', '610203', '印台区', '', '', '', '', 3, 1, ''), ('610204', '6102', '00,61,6102', '耀州区', '61', '陕西省', '6102', '铜川市', '610204', '耀州区', '', '', '', '', 3, 1, ''), ('610222', '6102', '00,61,6102', '宜君县', '61', '陕西省', '6102', '铜川市', '610222', '宜君县', '', '', '', '', 3, 1, ''), ('6103', '61', '00,61', '宝鸡市', '61', '陕西省', '6103', '宝鸡市', '', '', '', '', '', '', 2, 1, ''), ('610302', '6103', '00,61,6103', '渭滨区', '61', '陕西省', '6103', '宝鸡市', '610302', '渭滨区', '', '', '', '', 3, 1, ''), ('610303', '6103', '00,61,6103', '金台区', '61', '陕西省', '6103', '宝鸡市', '610303', '金台区', '', '', '', '', 3, 1, ''), ('610304', '6103', '00,61,6103', '陈仓区', '61', '陕西省', '6103', '宝鸡市', '610304', '陈仓区', '', '', '', '', 3, 1, ''), ('610322', '6103', '00,61,6103', '凤翔县', '61', '陕西省', '6103', '宝鸡市', '610322', '凤翔县', '', '', '', '', 3, 1, ''), ('610323', '6103', '00,61,6103', '岐山县', '61', '陕西省', '6103', '宝鸡市', '610323', '岐山县', '', '', '', '', 3, 1, ''), ('610324', '6103', '00,61,6103', '扶风县', '61', '陕西省', '6103', '宝鸡市', '610324', '扶风县', '', '', '', '', 3, 1, ''), ('610326', '6103', '00,61,6103', '眉县', '61', '陕西省', '6103', '宝鸡市', '610326', '眉县', '', '', '', '', 3, 1, ''), ('610327', '6103', '00,61,6103', '陇县', '61', '陕西省', '6103', '宝鸡市', '610327', '陇县', '', '', '', '', 3, 1, ''), ('610328', '6103', '00,61,6103', '千阳县', '61', '陕西省', '6103', '宝鸡市', '610328', '千阳县', '', '', '', '', 3, 1, ''), ('610329', '6103', '00,61,6103', '麟游县', '61', '陕西省', '6103', '宝鸡市', '610329', '麟游县', '', '', '', '', 3, 1, ''), ('610330', '6103', '00,61,6103', '凤县', '61', '陕西省', '6103', '宝鸡市', '610330', '凤县', '', '', '', '', 3, 1, ''), ('610331', '6103', '00,61,6103', '太白县', '61', '陕西省', '6103', '宝鸡市', '610331', '太白县', '', '', '', '', 3, 1, ''), ('6104', '61', '00,61', '咸阳市', '61', '陕西省', '6104', '咸阳市', '', '', '', '', '', '', 2, 1, ''), ('610402', '6104', '00,61,6104', '秦都区', '61', '陕西省', '6104', '咸阳市', '610402', '秦都区', '', '', '', '', 3, 1, ''), ('610403', '6104', '00,61,6104', '杨陵区', '61', '陕西省', '6104', '咸阳市', '610403', '杨陵区', '', '', '', '', 3, 1, ''), ('610404', '6104', '00,61,6104', '渭城区', '61', '陕西省', '6104', '咸阳市', '610404', '渭城区', '', '', '', '', 3, 1, ''), ('610422', '6104', '00,61,6104', '三原县', '61', '陕西省', '6104', '咸阳市', '610422', '三原县', '', '', '', '', 3, 1, ''), ('610423', '6104', '00,61,6104', '泾阳县', '61', '陕西省', '6104', '咸阳市', '610423', '泾阳县', '', '', '', '', 3, 1, ''), ('610424', '6104', '00,61,6104', '乾县', '61', '陕西省', '6104', '咸阳市', '610424', '乾县', '', '', '', '', 3, 1, ''), ('610425', '6104', '00,61,6104', '礼泉县', '61', '陕西省', '6104', '咸阳市', '610425', '礼泉县', '', '', '', '', 3, 1, ''), ('610426', '6104', '00,61,6104', '永寿县', '61', '陕西省', '6104', '咸阳市', '610426', '永寿县', '', '', '', '', 3, 1, ''), ('610428', '6104', '00,61,6104', '长武县', '61', '陕西省', '6104', '咸阳市', '610428', '长武县', '', '', '', '', 3, 1, ''), ('610429', '6104', '00,61,6104', '旬邑县', '61', '陕西省', '6104', '咸阳市', '610429', '旬邑县', '', '', '', '', 3, 1, ''), ('610430', '6104', '00,61,6104', '淳化县', '61', '陕西省', '6104', '咸阳市', '610430', '淳化县', '', '', '', '', 3, 1, ''), ('610431', '6104', '00,61,6104', '武功县', '61', '陕西省', '6104', '咸阳市', '610431', '武功县', '', '', '', '', 3, 1, ''), ('610481', '6104', '00,61,6104', '兴平市', '61', '陕西省', '6104', '咸阳市', '610481', '兴平市', '', '', '', '', 3, 1, ''), ('610482', '6104', '00,61,6104', '彬州市', '61', '陕西省', '6104', '咸阳市', '610482', '彬州市', '', '', '', '', 3, 1, ''), ('6105', '61', '00,61', '渭南市', '61', '陕西省', '6105', '渭南市', '', '', '', '', '', '', 2, 1, ''), ('610502', '6105', '00,61,6105', '临渭区', '61', '陕西省', '6105', '渭南市', '610502', '临渭区', '', '', '', '', 3, 1, ''), ('610503', '6105', '00,61,6105', '华州区', '61', '陕西省', '6105', '渭南市', '610503', '华州区', '', '', '', '', 3, 1, ''), ('610522', '6105', '00,61,6105', '潼关县', '61', '陕西省', '6105', '渭南市', '610522', '潼关县', '', '', '', '', 3, 1, ''), ('610523', '6105', '00,61,6105', '大荔县', '61', '陕西省', '6105', '渭南市', '610523', '大荔县', '', '', '', '', 3, 1, ''), ('610524', '6105', '00,61,6105', '合阳县', '61', '陕西省', '6105', '渭南市', '610524', '合阳县', '', '', '', '', 3, 1, ''), ('610525', '6105', '00,61,6105', '澄城县', '61', '陕西省', '6105', '渭南市', '610525', '澄城县', '', '', '', '', 3, 1, ''), ('610526', '6105', '00,61,6105', '蒲城县', '61', '陕西省', '6105', '渭南市', '610526', '蒲城县', '', '', '', '', 3, 1, ''), ('610527', '6105', '00,61,6105', '白水县', '61', '陕西省', '6105', '渭南市', '610527', '白水县', '', '', '', '', 3, 1, ''), ('610528', '6105', '00,61,6105', '富平县', '61', '陕西省', '6105', '渭南市', '610528', '富平县', '', '', '', '', 3, 1, ''), ('610581', '6105', '00,61,6105', '韩城市', '61', '陕西省', '6105', '渭南市', '610581', '韩城市', '', '', '', '', 3, 1, '');
+INSERT INTO `blade_region` VALUES ('610582', '6105', '00,61,6105', '华阴市', '61', '陕西省', '6105', '渭南市', '610582', '华阴市', '', '', '', '', 3, 1, ''), ('6106', '61', '00,61', '延安市', '61', '陕西省', '6106', '延安市', '', '', '', '', '', '', 2, 1, ''), ('610602', '6106', '00,61,6106', '宝塔区', '61', '陕西省', '6106', '延安市', '610602', '宝塔区', '', '', '', '', 3, 1, ''), ('610603', '6106', '00,61,6106', '安塞区', '61', '陕西省', '6106', '延安市', '610603', '安塞区', '', '', '', '', 3, 1, ''), ('610621', '6106', '00,61,6106', '延长县', '61', '陕西省', '6106', '延安市', '610621', '延长县', '', '', '', '', 3, 1, ''), ('610622', '6106', '00,61,6106', '延川县', '61', '陕西省', '6106', '延安市', '610622', '延川县', '', '', '', '', 3, 1, ''), ('610625', '6106', '00,61,6106', '志丹县', '61', '陕西省', '6106', '延安市', '610625', '志丹县', '', '', '', '', 3, 1, ''), ('610626', '6106', '00,61,6106', '吴起县', '61', '陕西省', '6106', '延安市', '610626', '吴起县', '', '', '', '', 3, 1, ''), ('610627', '6106', '00,61,6106', '甘泉县', '61', '陕西省', '6106', '延安市', '610627', '甘泉县', '', '', '', '', 3, 1, ''), ('610628', '6106', '00,61,6106', '富县', '61', '陕西省', '6106', '延安市', '610628', '富县', '', '', '', '', 3, 1, ''), ('610629', '6106', '00,61,6106', '洛川县', '61', '陕西省', '6106', '延安市', '610629', '洛川县', '', '', '', '', 3, 1, ''), ('610630', '6106', '00,61,6106', '宜川县', '61', '陕西省', '6106', '延安市', '610630', '宜川县', '', '', '', '', 3, 1, ''), ('610631', '6106', '00,61,6106', '黄龙县', '61', '陕西省', '6106', '延安市', '610631', '黄龙县', '', '', '', '', 3, 1, ''), ('610632', '6106', '00,61,6106', '黄陵县', '61', '陕西省', '6106', '延安市', '610632', '黄陵县', '', '', '', '', 3, 1, ''), ('610681', '6106', '00,61,6106', '子长市', '61', '陕西省', '6106', '延安市', '610681', '子长市', '', '', '', '', 3, 1, ''), ('6107', '61', '00,61', '汉中市', '61', '陕西省', '6107', '汉中市', '', '', '', '', '', '', 2, 1, ''), ('610702', '6107', '00,61,6107', '汉台区', '61', '陕西省', '6107', '汉中市', '610702', '汉台区', '', '', '', '', 3, 1, ''), ('610703', '6107', '00,61,6107', '南郑区', '61', '陕西省', '6107', '汉中市', '610703', '南郑区', '', '', '', '', 3, 1, ''), ('610722', '6107', '00,61,6107', '城固县', '61', '陕西省', '6107', '汉中市', '610722', '城固县', '', '', '', '', 3, 1, ''), ('610723', '6107', '00,61,6107', '洋县', '61', '陕西省', '6107', '汉中市', '610723', '洋县', '', '', '', '', 3, 1, ''), ('610724', '6107', '00,61,6107', '西乡县', '61', '陕西省', '6107', '汉中市', '610724', '西乡县', '', '', '', '', 3, 1, ''), ('610725', '6107', '00,61,6107', '勉县', '61', '陕西省', '6107', '汉中市', '610725', '勉县', '', '', '', '', 3, 1, ''), ('610726', '6107', '00,61,6107', '宁强县', '61', '陕西省', '6107', '汉中市', '610726', '宁强县', '', '', '', '', 3, 1, ''), ('610727', '6107', '00,61,6107', '略阳县', '61', '陕西省', '6107', '汉中市', '610727', '略阳县', '', '', '', '', 3, 1, ''), ('610728', '6107', '00,61,6107', '镇巴县', '61', '陕西省', '6107', '汉中市', '610728', '镇巴县', '', '', '', '', 3, 1, ''), ('610729', '6107', '00,61,6107', '留坝县', '61', '陕西省', '6107', '汉中市', '610729', '留坝县', '', '', '', '', 3, 1, ''), ('610730', '6107', '00,61,6107', '佛坪县', '61', '陕西省', '6107', '汉中市', '610730', '佛坪县', '', '', '', '', 3, 1, ''), ('6108', '61', '00,61', '榆林市', '61', '陕西省', '6108', '榆林市', '', '', '', '', '', '', 2, 1, ''), ('610802', '6108', '00,61,6108', '榆阳区', '61', '陕西省', '6108', '榆林市', '610802', '榆阳区', '', '', '', '', 3, 1, ''), ('610803', '6108', '00,61,6108', '横山区', '61', '陕西省', '6108', '榆林市', '610803', '横山区', '', '', '', '', 3, 1, ''), ('610822', '6108', '00,61,6108', '府谷县', '61', '陕西省', '6108', '榆林市', '610822', '府谷县', '', '', '', '', 3, 1, ''), ('610824', '6108', '00,61,6108', '靖边县', '61', '陕西省', '6108', '榆林市', '610824', '靖边县', '', '', '', '', 3, 1, ''), ('610825', '6108', '00,61,6108', '定边县', '61', '陕西省', '6108', '榆林市', '610825', '定边县', '', '', '', '', 3, 1, ''), ('610826', '6108', '00,61,6108', '绥德县', '61', '陕西省', '6108', '榆林市', '610826', '绥德县', '', '', '', '', 3, 1, ''), ('610827', '6108', '00,61,6108', '米脂县', '61', '陕西省', '6108', '榆林市', '610827', '米脂县', '', '', '', '', 3, 1, ''), ('610828', '6108', '00,61,6108', '佳县', '61', '陕西省', '6108', '榆林市', '610828', '佳县', '', '', '', '', 3, 1, ''), ('610829', '6108', '00,61,6108', '吴堡县', '61', '陕西省', '6108', '榆林市', '610829', '吴堡县', '', '', '', '', 3, 1, ''), ('610830', '6108', '00,61,6108', '清涧县', '61', '陕西省', '6108', '榆林市', '610830', '清涧县', '', '', '', '', 3, 1, ''), ('610831', '6108', '00,61,6108', '子洲县', '61', '陕西省', '6108', '榆林市', '610831', '子洲县', '', '', '', '', 3, 1, ''), ('610881', '6108', '00,61,6108', '神木市', '61', '陕西省', '6108', '榆林市', '610881', '神木市', '', '', '', '', 3, 1, ''), ('6109', '61', '00,61', '安康市', '61', '陕西省', '6109', '安康市', '', '', '', '', '', '', 2, 1, ''), ('610902', '6109', '00,61,6109', '汉滨区', '61', '陕西省', '6109', '安康市', '610902', '汉滨区', '', '', '', '', 3, 1, ''), ('610921', '6109', '00,61,6109', '汉阴县', '61', '陕西省', '6109', '安康市', '610921', '汉阴县', '', '', '', '', 3, 1, ''), ('610922', '6109', '00,61,6109', '石泉县', '61', '陕西省', '6109', '安康市', '610922', '石泉县', '', '', '', '', 3, 1, ''), ('610923', '6109', '00,61,6109', '宁陕县', '61', '陕西省', '6109', '安康市', '610923', '宁陕县', '', '', '', '', 3, 1, ''), ('610924', '6109', '00,61,6109', '紫阳县', '61', '陕西省', '6109', '安康市', '610924', '紫阳县', '', '', '', '', 3, 1, ''), ('610925', '6109', '00,61,6109', '岚皋县', '61', '陕西省', '6109', '安康市', '610925', '岚皋县', '', '', '', '', 3, 1, ''), ('610926', '6109', '00,61,6109', '平利县', '61', '陕西省', '6109', '安康市', '610926', '平利县', '', '', '', '', 3, 1, ''), ('610927', '6109', '00,61,6109', '镇坪县', '61', '陕西省', '6109', '安康市', '610927', '镇坪县', '', '', '', '', 3, 1, ''), ('610928', '6109', '00,61,6109', '旬阳县', '61', '陕西省', '6109', '安康市', '610928', '旬阳县', '', '', '', '', 3, 1, ''), ('610929', '6109', '00,61,6109', '白河县', '61', '陕西省', '6109', '安康市', '610929', '白河县', '', '', '', '', 3, 1, ''), ('6110', '61', '00,61', '商洛市', '61', '陕西省', '6110', '商洛市', '', '', '', '', '', '', 2, 1, ''), ('611002', '6110', '00,61,6110', '商州区', '61', '陕西省', '6110', '商洛市', '611002', '商州区', '', '', '', '', 3, 1, ''), ('611021', '6110', '00,61,6110', '洛南县', '61', '陕西省', '6110', '商洛市', '611021', '洛南县', '', '', '', '', 3, 1, ''), ('611022', '6110', '00,61,6110', '丹凤县', '61', '陕西省', '6110', '商洛市', '611022', '丹凤县', '', '', '', '', 3, 1, ''), ('611023', '6110', '00,61,6110', '商南县', '61', '陕西省', '6110', '商洛市', '611023', '商南县', '', '', '', '', 3, 1, ''), ('611024', '6110', '00,61,6110', '山阳县', '61', '陕西省', '6110', '商洛市', '611024', '山阳县', '', '', '', '', 3, 1, ''), ('611025', '6110', '00,61,6110', '镇安县', '61', '陕西省', '6110', '商洛市', '611025', '镇安县', '', '', '', '', 3, 1, ''), ('611026', '6110', '00,61,6110', '柞水县', '61', '陕西省', '6110', '商洛市', '611026', '柞水县', '', '', '', '', 3, 1, ''), ('62', '00', '00', '甘肃省', '62', '甘肃省', '', '', '', '', '', '', '', '', 1, 1, ''), ('6201', '62', '00,62', '兰州市', '62', '甘肃省', '6201', '兰州市', '', '', '', '', '', '', 2, 1, ''), ('620102', '6201', '00,62,6201', '城关区', '62', '甘肃省', '6201', '兰州市', '620102', '城关区', '', '', '', '', 3, 1, ''), ('620103', '6201', '00,62,6201', '七里河区', '62', '甘肃省', '6201', '兰州市', '620103', '七里河区', '', '', '', '', 3, 1, ''), ('620104', '6201', '00,62,6201', '西固区', '62', '甘肃省', '6201', '兰州市', '620104', '西固区', '', '', '', '', 3, 1, ''), ('620105', '6201', '00,62,6201', '安宁区', '62', '甘肃省', '6201', '兰州市', '620105', '安宁区', '', '', '', '', 3, 1, ''), ('620111', '6201', '00,62,6201', '红古区', '62', '甘肃省', '6201', '兰州市', '620111', '红古区', '', '', '', '', 3, 1, ''), ('620121', '6201', '00,62,6201', '永登县', '62', '甘肃省', '6201', '兰州市', '620121', '永登县', '', '', '', '', 3, 1, ''), ('620122', '6201', '00,62,6201', '皋兰县', '62', '甘肃省', '6201', '兰州市', '620122', '皋兰县', '', '', '', '', 3, 1, ''), ('620123', '6201', '00,62,6201', '榆中县', '62', '甘肃省', '6201', '兰州市', '620123', '榆中县', '', '', '', '', 3, 1, ''), ('6202', '62', '00,62', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '', '', '', '', '', '', 2, 1, ''), ('620200', '6202', '00,62,6202', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '620200', '嘉峪关市', '', '', '', '', 3, 1, ''), ('6203', '62', '00,62', '金昌市', '62', '甘肃省', '6203', '金昌市', '', '', '', '', '', '', 2, 1, ''), ('620302', '6203', '00,62,6203', '金川区', '62', '甘肃省', '6203', '金昌市', '620302', '金川区', '', '', '', '', 3, 1, ''), ('620321', '6203', '00,62,6203', '永昌县', '62', '甘肃省', '6203', '金昌市', '620321', '永昌县', '', '', '', '', 3, 1, ''), ('6204', '62', '00,62', '白银市', '62', '甘肃省', '6204', '白银市', '', '', '', '', '', '', 2, 1, ''), ('620402', '6204', '00,62,6204', '白银区', '62', '甘肃省', '6204', '白银市', '620402', '白银区', '', '', '', '', 3, 1, ''), ('620403', '6204', '00,62,6204', '平川区', '62', '甘肃省', '6204', '白银市', '620403', '平川区', '', '', '', '', 3, 1, ''), ('620421', '6204', '00,62,6204', '靖远县', '62', '甘肃省', '6204', '白银市', '620421', '靖远县', '', '', '', '', 3, 1, ''), ('620422', '6204', '00,62,6204', '会宁县', '62', '甘肃省', '6204', '白银市', '620422', '会宁县', '', '', '', '', 3, 1, ''), ('620423', '6204', '00,62,6204', '景泰县', '62', '甘肃省', '6204', '白银市', '620423', '景泰县', '', '', '', '', 3, 1, ''), ('6205', '62', '00,62', '天水市', '62', '甘肃省', '6205', '天水市', '', '', '', '', '', '', 2, 1, ''), ('620502', '6205', '00,62,6205', '秦州区', '62', '甘肃省', '6205', '天水市', '620502', '秦州区', '', '', '', '', 3, 1, ''), ('620503', '6205', '00,62,6205', '麦积区', '62', '甘肃省', '6205', '天水市', '620503', '麦积区', '', '', '', '', 3, 1, ''), ('620521', '6205', '00,62,6205', '清水县', '62', '甘肃省', '6205', '天水市', '620521', '清水县', '', '', '', '', 3, 1, ''), ('620522', '6205', '00,62,6205', '秦安县', '62', '甘肃省', '6205', '天水市', '620522', '秦安县', '', '', '', '', 3, 1, ''), ('620523', '6205', '00,62,6205', '甘谷县', '62', '甘肃省', '6205', '天水市', '620523', '甘谷县', '', '', '', '', 3, 1, ''), ('620524', '6205', '00,62,6205', '武山县', '62', '甘肃省', '6205', '天水市', '620524', '武山县', '', '', '', '', 3, 1, ''), ('620525', '6205', '00,62,6205', '张家川回族自治县', '62', '甘肃省', '6205', '天水市', '620525', '张家川回族自治县', '', '', '', '', 3, 1, ''), ('6206', '62', '00,62', '武威市', '62', '甘肃省', '6206', '武威市', '', '', '', '', '', '', 2, 1, ''), ('620602', '6206', '00,62,6206', '凉州区', '62', '甘肃省', '6206', '武威市', '620602', '凉州区', '', '', '', '', 3, 1, ''), ('620621', '6206', '00,62,6206', '民勤县', '62', '甘肃省', '6206', '武威市', '620621', '民勤县', '', '', '', '', 3, 1, ''), ('620622', '6206', '00,62,6206', '古浪县', '62', '甘肃省', '6206', '武威市', '620622', '古浪县', '', '', '', '', 3, 1, ''), ('620623', '6206', '00,62,6206', '天祝藏族自治县', '62', '甘肃省', '6206', '武威市', '620623', '天祝藏族自治县', '', '', '', '', 3, 1, ''), ('6207', '62', '00,62', '张掖市', '62', '甘肃省', '6207', '张掖市', '', '', '', '', '', '', 2, 1, ''), ('620702', '6207', '00,62,6207', '甘州区', '62', '甘肃省', '6207', '张掖市', '620702', '甘州区', '', '', '', '', 3, 1, ''), ('620721', '6207', '00,62,6207', '肃南裕固族自治县', '62', '甘肃省', '6207', '张掖市', '620721', '肃南裕固族自治县', '', '', '', '', 3, 1, ''), ('620722', '6207', '00,62,6207', '民乐县', '62', '甘肃省', '6207', '张掖市', '620722', '民乐县', '', '', '', '', 3, 1, ''), ('620723', '6207', '00,62,6207', '临泽县', '62', '甘肃省', '6207', '张掖市', '620723', '临泽县', '', '', '', '', 3, 1, ''), ('620724', '6207', '00,62,6207', '高台县', '62', '甘肃省', '6207', '张掖市', '620724', '高台县', '', '', '', '', 3, 1, ''), ('620725', '6207', '00,62,6207', '山丹县', '62', '甘肃省', '6207', '张掖市', '620725', '山丹县', '', '', '', '', 3, 1, ''), ('6208', '62', '00,62', '平凉市', '62', '甘肃省', '6208', '平凉市', '', '', '', '', '', '', 2, 1, ''), ('620802', '6208', '00,62,6208', '崆峒区', '62', '甘肃省', '6208', '平凉市', '620802', '崆峒区', '', '', '', '', 3, 1, ''), ('620821', '6208', '00,62,6208', '泾川县', '62', '甘肃省', '6208', '平凉市', '620821', '泾川县', '', '', '', '', 3, 1, ''), ('620822', '6208', '00,62,6208', '灵台县', '62', '甘肃省', '6208', '平凉市', '620822', '灵台县', '', '', '', '', 3, 1, ''), ('620823', '6208', '00,62,6208', '崇信县', '62', '甘肃省', '6208', '平凉市', '620823', '崇信县', '', '', '', '', 3, 1, ''), ('620825', '6208', '00,62,6208', '庄浪县', '62', '甘肃省', '6208', '平凉市', '620825', '庄浪县', '', '', '', '', 3, 1, ''), ('620826', '6208', '00,62,6208', '静宁县', '62', '甘肃省', '6208', '平凉市', '620826', '静宁县', '', '', '', '', 3, 1, ''), ('620881', '6208', '00,62,6208', '华亭市', '62', '甘肃省', '6208', '平凉市', '620881', '华亭市', '', '', '', '', 3, 1, ''), ('6209', '62', '00,62', '酒泉市', '62', '甘肃省', '6209', '酒泉市', '', '', '', '', '', '', 2, 1, ''), ('620902', '6209', '00,62,6209', '肃州区', '62', '甘肃省', '6209', '酒泉市', '620902', '肃州区', '', '', '', '', 3, 1, ''), ('620921', '6209', '00,62,6209', '金塔县', '62', '甘肃省', '6209', '酒泉市', '620921', '金塔县', '', '', '', '', 3, 1, ''), ('620922', '6209', '00,62,6209', '瓜州县', '62', '甘肃省', '6209', '酒泉市', '620922', '瓜州县', '', '', '', '', 3, 1, ''), ('620923', '6209', '00,62,6209', '肃北蒙古族自治县', '62', '甘肃省', '6209', '酒泉市', '620923', '肃北蒙古族自治县', '', '', '', '', 3, 1, ''), ('620924', '6209', '00,62,6209', '阿克塞哈萨克族自治县', '62', '甘肃省', '6209', '酒泉市', '620924', '阿克塞哈萨克族自治县', '', '', '', '', 3, 1, ''), ('620981', '6209', '00,62,6209', '玉门市', '62', '甘肃省', '6209', '酒泉市', '620981', '玉门市', '', '', '', '', 3, 1, ''), ('620982', '6209', '00,62,6209', '敦煌市', '62', '甘肃省', '6209', '酒泉市', '620982', '敦煌市', '', '', '', '', 3, 1, ''), ('6210', '62', '00,62', '庆阳市', '62', '甘肃省', '6210', '庆阳市', '', '', '', '', '', '', 2, 1, ''), ('621002', '6210', '00,62,6210', '西峰区', '62', '甘肃省', '6210', '庆阳市', '621002', '西峰区', '', '', '', '', 3, 1, ''), ('621021', '6210', '00,62,6210', '庆城县', '62', '甘肃省', '6210', '庆阳市', '621021', '庆城县', '', '', '', '', 3, 1, ''), ('621022', '6210', '00,62,6210', '环县', '62', '甘肃省', '6210', '庆阳市', '621022', '环县', '', '', '', '', 3, 1, ''), ('621023', '6210', '00,62,6210', '华池县', '62', '甘肃省', '6210', '庆阳市', '621023', '华池县', '', '', '', '', 3, 1, ''), ('621024', '6210', '00,62,6210', '合水县', '62', '甘肃省', '6210', '庆阳市', '621024', '合水县', '', '', '', '', 3, 1, ''), ('621025', '6210', '00,62,6210', '正宁县', '62', '甘肃省', '6210', '庆阳市', '621025', '正宁县', '', '', '', '', 3, 1, ''), ('621026', '6210', '00,62,6210', '宁县', '62', '甘肃省', '6210', '庆阳市', '621026', '宁县', '', '', '', '', 3, 1, ''), ('621027', '6210', '00,62,6210', '镇原县', '62', '甘肃省', '6210', '庆阳市', '621027', '镇原县', '', '', '', '', 3, 1, ''), ('6211', '62', '00,62', '定西市', '62', '甘肃省', '6211', '定西市', '', '', '', '', '', '', 2, 1, ''), ('621102', '6211', '00,62,6211', '安定区', '62', '甘肃省', '6211', '定西市', '621102', '安定区', '', '', '', '', 3, 1, ''), ('621121', '6211', '00,62,6211', '通渭县', '62', '甘肃省', '6211', '定西市', '621121', '通渭县', '', '', '', '', 3, 1, ''), ('621122', '6211', '00,62,6211', '陇西县', '62', '甘肃省', '6211', '定西市', '621122', '陇西县', '', '', '', '', 3, 1, ''), ('621123', '6211', '00,62,6211', '渭源县', '62', '甘肃省', '6211', '定西市', '621123', '渭源县', '', '', '', '', 3, 1, ''), ('621124', '6211', '00,62,6211', '临洮县', '62', '甘肃省', '6211', '定西市', '621124', '临洮县', '', '', '', '', 3, 1, ''), ('621125', '6211', '00,62,6211', '漳县', '62', '甘肃省', '6211', '定西市', '621125', '漳县', '', '', '', '', 3, 1, ''), ('621126', '6211', '00,62,6211', '岷县', '62', '甘肃省', '6211', '定西市', '621126', '岷县', '', '', '', '', 3, 1, ''), ('6212', '62', '00,62', '陇南市', '62', '甘肃省', '6212', '陇南市', '', '', '', '', '', '', 2, 1, ''), ('621202', '6212', '00,62,6212', '武都区', '62', '甘肃省', '6212', '陇南市', '621202', '武都区', '', '', '', '', 3, 1, ''), ('621221', '6212', '00,62,6212', '成县', '62', '甘肃省', '6212', '陇南市', '621221', '成县', '', '', '', '', 3, 1, ''), ('621222', '6212', '00,62,6212', '文县', '62', '甘肃省', '6212', '陇南市', '621222', '文县', '', '', '', '', 3, 1, ''), ('621223', '6212', '00,62,6212', '宕昌县', '62', '甘肃省', '6212', '陇南市', '621223', '宕昌县', '', '', '', '', 3, 1, ''), ('621224', '6212', '00,62,6212', '康县', '62', '甘肃省', '6212', '陇南市', '621224', '康县', '', '', '', '', 3, 1, ''), ('621225', '6212', '00,62,6212', '西和县', '62', '甘肃省', '6212', '陇南市', '621225', '西和县', '', '', '', '', 3, 1, ''), ('621226', '6212', '00,62,6212', '礼县', '62', '甘肃省', '6212', '陇南市', '621226', '礼县', '', '', '', '', 3, 1, ''), ('621227', '6212', '00,62,6212', '徽县', '62', '甘肃省', '6212', '陇南市', '621227', '徽县', '', '', '', '', 3, 1, ''), ('621228', '6212', '00,62,6212', '两当县', '62', '甘肃省', '6212', '陇南市', '621228', '两当县', '', '', '', '', 3, 1, ''), ('6229', '62', '00,62', '临夏回族自治州', '62', '甘肃省', '6229', '临夏回族自治州', '', '', '', '', '', '', 2, 1, ''), ('622901', '6229', '00,62,6229', '临夏市', '62', '甘肃省', '6229', '临夏回族自治州', '622901', '临夏市', '', '', '', '', 3, 1, ''), ('622921', '6229', '00,62,6229', '临夏县', '62', '甘肃省', '6229', '临夏回族自治州', '622921', '临夏县', '', '', '', '', 3, 1, ''), ('622922', '6229', '00,62,6229', '康乐县', '62', '甘肃省', '6229', '临夏回族自治州', '622922', '康乐县', '', '', '', '', 3, 1, ''), ('622923', '6229', '00,62,6229', '永靖县', '62', '甘肃省', '6229', '临夏回族自治州', '622923', '永靖县', '', '', '', '', 3, 1, ''), ('622924', '6229', '00,62,6229', '广河县', '62', '甘肃省', '6229', '临夏回族自治州', '622924', '广河县', '', '', '', '', 3, 1, ''), ('622925', '6229', '00,62,6229', '和政县', '62', '甘肃省', '6229', '临夏回族自治州', '622925', '和政县', '', '', '', '', 3, 1, ''), ('622926', '6229', '00,62,6229', '东乡族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622926', '东乡族自治县', '', '', '', '', 3, 1, ''), ('622927', '6229', '00,62,6229', '积石山保安族东乡族撒拉族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622927', '积石山保安族东乡族撒拉族自治县', '', '', '', '', 3, 1, ''), ('6230', '62', '00,62', '甘南藏族自治州', '62', '甘肃省', '6230', '甘南藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('623001', '6230', '00,62,6230', '合作市', '62', '甘肃省', '6230', '甘南藏族自治州', '623001', '合作市', '', '', '', '', 3, 1, ''), ('623021', '6230', '00,62,6230', '临潭县', '62', '甘肃省', '6230', '甘南藏族自治州', '623021', '临潭县', '', '', '', '', 3, 1, ''), ('623022', '6230', '00,62,6230', '卓尼县', '62', '甘肃省', '6230', '甘南藏族自治州', '623022', '卓尼县', '', '', '', '', 3, 1, ''), ('623023', '6230', '00,62,6230', '舟曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623023', '舟曲县', '', '', '', '', 3, 1, ''), ('623024', '6230', '00,62,6230', '迭部县', '62', '甘肃省', '6230', '甘南藏族自治州', '623024', '迭部县', '', '', '', '', 3, 1, ''), ('623025', '6230', '00,62,6230', '玛曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623025', '玛曲县', '', '', '', '', 3, 1, ''), ('623026', '6230', '00,62,6230', '碌曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623026', '碌曲县', '', '', '', '', 3, 1, ''), ('623027', '6230', '00,62,6230', '夏河县', '62', '甘肃省', '6230', '甘南藏族自治州', '623027', '夏河县', '', '', '', '', 3, 1, ''), ('63', '00', '00', '青海省', '63', '青海省', '', '', '', '', '', '', '', '', 1, 1, ''), ('6301', '63', '00,63', '西宁市', '63', '青海省', '6301', '西宁市', '', '', '', '', '', '', 2, 1, ''), ('630102', '6301', '00,63,6301', '城东区', '63', '青海省', '6301', '西宁市', '630102', '城东区', '', '', '', '', 3, 1, ''), ('630103', '6301', '00,63,6301', '城中区', '63', '青海省', '6301', '西宁市', '630103', '城中区', '', '', '', '', 3, 1, ''), ('630104', '6301', '00,63,6301', '城西区', '63', '青海省', '6301', '西宁市', '630104', '城西区', '', '', '', '', 3, 1, ''), ('630105', '6301', '00,63,6301', '城北区', '63', '青海省', '6301', '西宁市', '630105', '城北区', '', '', '', '', 3, 1, ''), ('630106', '6301', '00,63,6301', '湟中区', '63', '青海省', '6301', '西宁市', '630106', '湟中区', '', '', '', '', 3, 1, ''), ('630121', '6301', '00,63,6301', '大通回族土族自治县', '63', '青海省', '6301', '西宁市', '630121', '大通回族土族自治县', '', '', '', '', 3, 1, ''), ('630123', '6301', '00,63,6301', '湟源县', '63', '青海省', '6301', '西宁市', '630123', '湟源县', '', '', '', '', 3, 1, ''), ('6302', '63', '00,63', '海东市', '63', '青海省', '6302', '海东市', '', '', '', '', '', '', 2, 1, ''), ('630202', '6302', '00,63,6302', '乐都区', '63', '青海省', '6302', '海东市', '630202', '乐都区', '', '', '', '', 3, 1, ''), ('630203', '6302', '00,63,6302', '平安区', '63', '青海省', '6302', '海东市', '630203', '平安区', '', '', '', '', 3, 1, ''), ('630222', '6302', '00,63,6302', '民和回族土族自治县', '63', '青海省', '6302', '海东市', '630222', '民和回族土族自治县', '', '', '', '', 3, 1, ''), ('630223', '6302', '00,63,6302', '互助土族自治县', '63', '青海省', '6302', '海东市', '630223', '互助土族自治县', '', '', '', '', 3, 1, ''), ('630224', '6302', '00,63,6302', '化隆回族自治县', '63', '青海省', '6302', '海东市', '630224', '化隆回族自治县', '', '', '', '', 3, 1, ''), ('630225', '6302', '00,63,6302', '循化撒拉族自治县', '63', '青海省', '6302', '海东市', '630225', '循化撒拉族自治县', '', '', '', '', 3, 1, ''), ('6322', '63', '00,63', '海北藏族自治州', '63', '青海省', '6322', '海北藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632221', '6322', '00,63,6322', '门源回族自治县', '63', '青海省', '6322', '海北藏族自治州', '632221', '门源回族自治县', '', '', '', '', 3, 1, ''), ('632222', '6322', '00,63,6322', '祁连县', '63', '青海省', '6322', '海北藏族自治州', '632222', '祁连县', '', '', '', '', 3, 1, ''), ('632223', '6322', '00,63,6322', '海晏县', '63', '青海省', '6322', '海北藏族自治州', '632223', '海晏县', '', '', '', '', 3, 1, ''), ('632224', '6322', '00,63,6322', '刚察县', '63', '青海省', '6322', '海北藏族自治州', '632224', '刚察县', '', '', '', '', 3, 1, ''), ('6323', '63', '00,63', '黄南藏族自治州', '63', '青海省', '6323', '黄南藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632321', '6323', '00,63,6323', '同仁县', '63', '青海省', '6323', '黄南藏族自治州', '632321', '同仁县', '', '', '', '', 3, 1, ''), ('632322', '6323', '00,63,6323', '尖扎县', '63', '青海省', '6323', '黄南藏族自治州', '632322', '尖扎县', '', '', '', '', 3, 1, ''), ('632323', '6323', '00,63,6323', '泽库县', '63', '青海省', '6323', '黄南藏族自治州', '632323', '泽库县', '', '', '', '', 3, 1, ''), ('632324', '6323', '00,63,6323', '河南蒙古族自治县', '63', '青海省', '6323', '黄南藏族自治州', '632324', '河南蒙古族自治县', '', '', '', '', 3, 1, ''), ('6325', '63', '00,63', '海南藏族自治州', '63', '青海省', '6325', '海南藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632521', '6325', '00,63,6325', '共和县', '63', '青海省', '6325', '海南藏族自治州', '632521', '共和县', '', '', '', '', 3, 1, ''), ('632522', '6325', '00,63,6325', '同德县', '63', '青海省', '6325', '海南藏族自治州', '632522', '同德县', '', '', '', '', 3, 1, ''), ('632523', '6325', '00,63,6325', '贵德县', '63', '青海省', '6325', '海南藏族自治州', '632523', '贵德县', '', '', '', '', 3, 1, ''), ('632524', '6325', '00,63,6325', '兴海县', '63', '青海省', '6325', '海南藏族自治州', '632524', '兴海县', '', '', '', '', 3, 1, ''), ('632525', '6325', '00,63,6325', '贵南县', '63', '青海省', '6325', '海南藏族自治州', '632525', '贵南县', '', '', '', '', 3, 1, ''), ('6326', '63', '00,63', '果洛藏族自治州', '63', '青海省', '6326', '果洛藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632621', '6326', '00,63,6326', '玛沁县', '63', '青海省', '6326', '果洛藏族自治州', '632621', '玛沁县', '', '', '', '', 3, 1, ''), ('632622', '6326', '00,63,6326', '班玛县', '63', '青海省', '6326', '果洛藏族自治州', '632622', '班玛县', '', '', '', '', 3, 1, ''), ('632623', '6326', '00,63,6326', '甘德县', '63', '青海省', '6326', '果洛藏族自治州', '632623', '甘德县', '', '', '', '', 3, 1, ''), ('632624', '6326', '00,63,6326', '达日县', '63', '青海省', '6326', '果洛藏族自治州', '632624', '达日县', '', '', '', '', 3, 1, ''), ('632625', '6326', '00,63,6326', '久治县', '63', '青海省', '6326', '果洛藏族自治州', '632625', '久治县', '', '', '', '', 3, 1, ''), ('632626', '6326', '00,63,6326', '玛多县', '63', '青海省', '6326', '果洛藏族自治州', '632626', '玛多县', '', '', '', '', 3, 1, ''), ('6327', '63', '00,63', '玉树藏族自治州', '63', '青海省', '6327', '玉树藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632701', '6327', '00,63,6327', '玉树市', '63', '青海省', '6327', '玉树藏族自治州', '632701', '玉树市', '', '', '', '', 3, 1, ''), ('632722', '6327', '00,63,6327', '杂多县', '63', '青海省', '6327', '玉树藏族自治州', '632722', '杂多县', '', '', '', '', 3, 1, ''), ('632723', '6327', '00,63,6327', '称多县', '63', '青海省', '6327', '玉树藏族自治州', '632723', '称多县', '', '', '', '', 3, 1, ''), ('632724', '6327', '00,63,6327', '治多县', '63', '青海省', '6327', '玉树藏族自治州', '632724', '治多县', '', '', '', '', 3, 1, ''), ('632725', '6327', '00,63,6327', '囊谦县', '63', '青海省', '6327', '玉树藏族自治州', '632725', '囊谦县', '', '', '', '', 3, 1, ''), ('632726', '6327', '00,63,6327', '曲麻莱县', '63', '青海省', '6327', '玉树藏族自治州', '632726', '曲麻莱县', '', '', '', '', 3, 1, ''), ('6328', '63', '00,63', '海西蒙古族藏族自治州', '63', '青海省', '6328', '海西蒙古族藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632801', '6328', '00,63,6328', '格尔木市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632801', '格尔木市', '', '', '', '', 3, 1, ''), ('632802', '6328', '00,63,6328', '德令哈市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632802', '德令哈市', '', '', '', '', 3, 1, ''), ('632803', '6328', '00,63,6328', '茫崖市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632803', '茫崖市', '', '', '', '', 3, 1, ''), ('632821', '6328', '00,63,6328', '乌兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632821', '乌兰县', '', '', '', '', 3, 1, ''), ('632822', '6328', '00,63,6328', '都兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632822', '都兰县', '', '', '', '', 3, 1, ''), ('632823', '6328', '00,63,6328', '天峻县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632823', '天峻县', '', '', '', '', 3, 1, ''), ('64', '00', '00', '宁夏回族自治区', '64', '宁夏回族自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('6401', '64', '00,64', '银川市', '64', '宁夏回族自治区', '6401', '银川市', '', '', '', '', '', '', 2, 1, ''), ('640104', '6401', '00,64,6401', '兴庆区', '64', '宁夏回族自治区', '6401', '银川市', '640104', '兴庆区', '', '', '', '', 3, 1, ''), ('640105', '6401', '00,64,6401', '西夏区', '64', '宁夏回族自治区', '6401', '银川市', '640105', '西夏区', '', '', '', '', 3, 1, ''), ('640106', '6401', '00,64,6401', '金凤区', '64', '宁夏回族自治区', '6401', '银川市', '640106', '金凤区', '', '', '', '', 3, 1, ''), ('640121', '6401', '00,64,6401', '永宁县', '64', '宁夏回族自治区', '6401', '银川市', '640121', '永宁县', '', '', '', '', 3, 1, ''), ('640122', '6401', '00,64,6401', '贺兰县', '64', '宁夏回族自治区', '6401', '银川市', '640122', '贺兰县', '', '', '', '', 3, 1, ''), ('640181', '6401', '00,64,6401', '灵武市', '64', '宁夏回族自治区', '6401', '银川市', '640181', '灵武市', '', '', '', '', 3, 1, ''), ('6402', '64', '00,64', '石嘴山市', '64', '宁夏回族自治区', '6402', '石嘴山市', '', '', '', '', '', '', 2, 1, ''), ('640202', '6402', '00,64,6402', '大武口区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640202', '大武口区', '', '', '', '', 3, 1, ''), ('640205', '6402', '00,64,6402', '惠农区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640205', '惠农区', '', '', '', '', 3, 1, ''), ('640221', '6402', '00,64,6402', '平罗县', '64', '宁夏回族自治区', '6402', '石嘴山市', '640221', '平罗县', '', '', '', '', 3, 1, ''), ('6403', '64', '00,64', '吴忠市', '64', '宁夏回族自治区', '6403', '吴忠市', '', '', '', '', '', '', 2, 1, ''), ('640302', '6403', '00,64,6403', '利通区', '64', '宁夏回族自治区', '6403', '吴忠市', '640302', '利通区', '', '', '', '', 3, 1, ''), ('640303', '6403', '00,64,6403', '红寺堡区', '64', '宁夏回族自治区', '6403', '吴忠市', '640303', '红寺堡区', '', '', '', '', 3, 1, ''), ('640323', '6403', '00,64,6403', '盐池县', '64', '宁夏回族自治区', '6403', '吴忠市', '640323', '盐池县', '', '', '', '', 3, 1, ''), ('640324', '6403', '00,64,6403', '同心县', '64', '宁夏回族自治区', '6403', '吴忠市', '640324', '同心县', '', '', '', '', 3, 1, ''), ('640381', '6403', '00,64,6403', '青铜峡市', '64', '宁夏回族自治区', '6403', '吴忠市', '640381', '青铜峡市', '', '', '', '', 3, 1, ''), ('6404', '64', '00,64', '固原市', '64', '宁夏回族自治区', '6404', '固原市', '', '', '', '', '', '', 2, 1, ''), ('640402', '6404', '00,64,6404', '原州区', '64', '宁夏回族自治区', '6404', '固原市', '640402', '原州区', '', '', '', '', 3, 1, ''), ('640422', '6404', '00,64,6404', '西吉县', '64', '宁夏回族自治区', '6404', '固原市', '640422', '西吉县', '', '', '', '', 3, 1, ''), ('640423', '6404', '00,64,6404', '隆德县', '64', '宁夏回族自治区', '6404', '固原市', '640423', '隆德县', '', '', '', '', 3, 1, ''), ('640424', '6404', '00,64,6404', '泾源县', '64', '宁夏回族自治区', '6404', '固原市', '640424', '泾源县', '', '', '', '', 3, 1, ''), ('640425', '6404', '00,64,6404', '彭阳县', '64', '宁夏回族自治区', '6404', '固原市', '640425', '彭阳县', '', '', '', '', 3, 1, ''), ('6405', '64', '00,64', '中卫市', '64', '宁夏回族自治区', '6405', '中卫市', '', '', '', '', '', '', 2, 1, ''), ('640502', '6405', '00,64,6405', '沙坡头区', '64', '宁夏回族自治区', '6405', '中卫市', '640502', '沙坡头区', '', '', '', '', 3, 1, ''), ('640521', '6405', '00,64,6405', '中宁县', '64', '宁夏回族自治区', '6405', '中卫市', '640521', '中宁县', '', '', '', '', 3, 1, ''), ('640522', '6405', '00,64,6405', '海原县', '64', '宁夏回族自治区', '6405', '中卫市', '640522', '海原县', '', '', '', '', 3, 1, ''), ('65', '00', '00', '新疆维吾尔自治区', '65', '新疆维吾尔自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('6501', '65', '00,65', '乌鲁木齐市', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '', '', '', '', '', '', 2, 1, ''), ('650102', '6501', '00,65,6501', '天山区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650102', '天山区', '', '', '', '', 3, 1, ''), ('650103', '6501', '00,65,6501', '沙依巴克区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650103', '沙依巴克区', '', '', '', '', 3, 1, ''), ('650104', '6501', '00,65,6501', '新市区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650104', '新市区', '', '', '', '', 3, 1, ''), ('650105', '6501', '00,65,6501', '水磨沟区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650105', '水磨沟区', '', '', '', '', 3, 1, ''), ('650106', '6501', '00,65,6501', '头屯河区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650106', '头屯河区', '', '', '', '', 3, 1, ''), ('650107', '6501', '00,65,6501', '达坂城区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650107', '达坂城区', '', '', '', '', 3, 1, ''), ('650109', '6501', '00,65,6501', '米东区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650109', '米东区', '', '', '', '', 3, 1, ''), ('650121', '6501', '00,65,6501', '乌鲁木齐县', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650121', '乌鲁木齐县', '', '', '', '', 3, 1, ''), ('6502', '65', '00,65', '克拉玛依市', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '', '', '', '', '', '', 2, 1, ''), ('650202', '6502', '00,65,6502', '独山子区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650202', '独山子区', '', '', '', '', 3, 1, ''), ('650203', '6502', '00,65,6502', '克拉玛依区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650203', '克拉玛依区', '', '', '', '', 3, 1, ''), ('650204', '6502', '00,65,6502', '白碱滩区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650204', '白碱滩区', '', '', '', '', 3, 1, ''), ('650205', '6502', '00,65,6502', '乌尔禾区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650205', '乌尔禾区', '', '', '', '', 3, 1, ''), ('6504', '65', '00,65', '吐鲁番市', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '', '', '', '', '', '', 2, 1, ''), ('650402', '6504', '00,65,6504', '高昌区', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650402', '高昌区', '', '', '', '', 3, 1, ''), ('650421', '6504', '00,65,6504', '鄯善县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650421', '鄯善县', '', '', '', '', 3, 1, ''), ('650422', '6504', '00,65,6504', '托克逊县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650422', '托克逊县', '', '', '', '', 3, 1, ''), ('6505', '65', '00,65', '哈密市', '65', '新疆维吾尔自治区', '6505', '哈密市', '', '', '', '', '', '', 2, 1, ''), ('650502', '6505', '00,65,6505', '伊州区', '65', '新疆维吾尔自治区', '6505', '哈密市', '650502', '伊州区', '', '', '', '', 3, 1, ''), ('650521', '6505', '00,65,6505', '巴里坤哈萨克自治县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650521', '巴里坤哈萨克自治县', '', '', '', '', 3, 1, ''), ('650522', '6505', '00,65,6505', '伊吾县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650522', '伊吾县', '', '', '', '', 3, 1, ''), ('6523', '65', '00,65', '昌吉回族自治州', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '', '', '', '', '', '', 2, 1, ''), ('652301', '6523', '00,65,6523', '昌吉市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652301', '昌吉市', '', '', '', '', 3, 1, ''), ('652302', '6523', '00,65,6523', '阜康市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652302', '阜康市', '', '', '', '', 3, 1, ''), ('652323', '6523', '00,65,6523', '呼图壁县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652323', '呼图壁县', '', '', '', '', 3, 1, ''), ('652324', '6523', '00,65,6523', '玛纳斯县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652324', '玛纳斯县', '', '', '', '', 3, 1, ''), ('652325', '6523', '00,65,6523', '奇台县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652325', '奇台县', '', '', '', '', 3, 1, ''), ('652327', '6523', '00,65,6523', '吉木萨尔县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652327', '吉木萨尔县', '', '', '', '', 3, 1, ''), ('652328', '6523', '00,65,6523', '木垒哈萨克自治县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652328', '木垒哈萨克自治县', '', '', '', '', 3, 1, ''), ('6527', '65', '00,65', '博尔塔拉蒙古自治州', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '', '', '', '', '', '', 2, 1, ''), ('652701', '6527', '00,65,6527', '博乐市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652701', '博乐市', '', '', '', '', 3, 1, ''), ('652702', '6527', '00,65,6527', '阿拉山口市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652702', '阿拉山口市', '', '', '', '', 3, 1, ''), ('652722', '6527', '00,65,6527', '精河县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652722', '精河县', '', '', '', '', 3, 1, ''), ('652723', '6527', '00,65,6527', '温泉县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652723', '温泉县', '', '', '', '', 3, 1, ''), ('6528', '65', '00,65', '巴音郭楞蒙古自治州', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '', '', '', '', '', '', 2, 1, ''), ('652801', '6528', '00,65,6528', '库尔勒市', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652801', '库尔勒市', '', '', '', '', 3, 1, ''), ('652822', '6528', '00,65,6528', '轮台县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652822', '轮台县', '', '', '', '', 3, 1, ''), ('652823', '6528', '00,65,6528', '尉犁县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652823', '尉犁县', '', '', '', '', 3, 1, ''), ('652824', '6528', '00,65,6528', '若羌县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652824', '若羌县', '', '', '', '', 3, 1, ''), ('652825', '6528', '00,65,6528', '且末县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652825', '且末县', '', '', '', '', 3, 1, ''), ('652826', '6528', '00,65,6528', '焉耆回族自治县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652826', '焉耆回族自治县', '', '', '', '', 3, 1, ''), ('652827', '6528', '00,65,6528', '和静县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652827', '和静县', '', '', '', '', 3, 1, ''), ('652828', '6528', '00,65,6528', '和硕县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652828', '和硕县', '', '', '', '', 3, 1, ''), ('652829', '6528', '00,65,6528', '博湖县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652829', '博湖县', '', '', '', '', 3, 1, ''), ('6529', '65', '00,65', '阿克苏地区', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '', '', '', '', '', '', 2, 1, ''), ('652901', '6529', '00,65,6529', '阿克苏市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652901', '阿克苏市', '', '', '', '', 3, 1, ''), ('652902', '6529', '00,65,6529', '库车市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652902', '库车市', '', '', '', '', 3, 1, ''), ('652922', '6529', '00,65,6529', '温宿县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652922', '温宿县', '', '', '', '', 3, 1, ''), ('652924', '6529', '00,65,6529', '沙雅县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652924', '沙雅县', '', '', '', '', 3, 1, ''), ('652925', '6529', '00,65,6529', '新和县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652925', '新和县', '', '', '', '', 3, 1, ''), ('652926', '6529', '00,65,6529', '拜城县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652926', '拜城县', '', '', '', '', 3, 1, ''), ('652927', '6529', '00,65,6529', '乌什县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652927', '乌什县', '', '', '', '', 3, 1, ''), ('652928', '6529', '00,65,6529', '阿瓦提县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652928', '阿瓦提县', '', '', '', '', 3, 1, ''), ('652929', '6529', '00,65,6529', '柯坪县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652929', '柯坪县', '', '', '', '', 3, 1, ''), ('6530', '65', '00,65', '克孜勒苏柯尔克孜自治州', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '', '', '', '', '', '', 2, 1, ''), ('653001', '6530', '00,65,6530', '阿图什市', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653001', '阿图什市', '', '', '', '', 3, 1, ''), ('653022', '6530', '00,65,6530', '阿克陶县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653022', '阿克陶县', '', '', '', '', 3, 1, ''), ('653023', '6530', '00,65,6530', '阿合奇县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653023', '阿合奇县', '', '', '', '', 3, 1, ''), ('653024', '6530', '00,65,6530', '乌恰县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653024', '乌恰县', '', '', '', '', 3, 1, ''), ('6531', '65', '00,65', '喀什地区', '65', '新疆维吾尔自治区', '6531', '喀什地区', '', '', '', '', '', '', 2, 1, ''), ('653101', '6531', '00,65,6531', '喀什市', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653101', '喀什市', '', '', '', '', 3, 1, ''), ('653121', '6531', '00,65,6531', '疏附县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653121', '疏附县', '', '', '', '', 3, 1, ''), ('653122', '6531', '00,65,6531', '疏勒县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653122', '疏勒县', '', '', '', '', 3, 1, ''), ('653123', '6531', '00,65,6531', '英吉沙县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653123', '英吉沙县', '', '', '', '', 3, 1, ''), ('653124', '6531', '00,65,6531', '泽普县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653124', '泽普县', '', '', '', '', 3, 1, ''), ('653125', '6531', '00,65,6531', '莎车县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653125', '莎车县', '', '', '', '', 3, 1, ''), ('653126', '6531', '00,65,6531', '叶城县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653126', '叶城县', '', '', '', '', 3, 1, ''), ('653127', '6531', '00,65,6531', '麦盖提县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653127', '麦盖提县', '', '', '', '', 3, 1, ''), ('653128', '6531', '00,65,6531', '岳普湖县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653128', '岳普湖县', '', '', '', '', 3, 1, ''), ('653129', '6531', '00,65,6531', '伽师县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653129', '伽师县', '', '', '', '', 3, 1, ''), ('653130', '6531', '00,65,6531', '巴楚县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653130', '巴楚县', '', '', '', '', 3, 1, ''), ('653131', '6531', '00,65,6531', '塔什库尔干塔吉克自治县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653131', '塔什库尔干塔吉克自治县', '', '', '', '', 3, 1, ''), ('6532', '65', '00,65', '和田地区', '65', '新疆维吾尔自治区', '6532', '和田地区', '', '', '', '', '', '', 2, 1, ''), ('653201', '6532', '00,65,6532', '和田市', '65', '新疆维吾尔自治区', '6532', '和田地区', '653201', '和田市', '', '', '', '', 3, 1, ''), ('653221', '6532', '00,65,6532', '和田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653221', '和田县', '', '', '', '', 3, 1, ''), ('653222', '6532', '00,65,6532', '墨玉县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653222', '墨玉县', '', '', '', '', 3, 1, ''), ('653223', '6532', '00,65,6532', '皮山县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653223', '皮山县', '', '', '', '', 3, 1, ''), ('653224', '6532', '00,65,6532', '洛浦县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653224', '洛浦县', '', '', '', '', 3, 1, ''), ('653225', '6532', '00,65,6532', '策勒县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653225', '策勒县', '', '', '', '', 3, 1, ''), ('653226', '6532', '00,65,6532', '于田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653226', '于田县', '', '', '', '', 3, 1, ''), ('653227', '6532', '00,65,6532', '民丰县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653227', '民丰县', '', '', '', '', 3, 1, ''), ('6540', '65', '00,65', '伊犁哈萨克自治州', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '', '', '', '', '', '', 2, 1, ''), ('654002', '6540', '00,65,6540', '伊宁市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654002', '伊宁市', '', '', '', '', 3, 1, ''), ('654003', '6540', '00,65,6540', '奎屯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654003', '奎屯市', '', '', '', '', 3, 1, ''), ('654004', '6540', '00,65,6540', '霍尔果斯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654004', '霍尔果斯市', '', '', '', '', 3, 1, ''), ('654021', '6540', '00,65,6540', '伊宁县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654021', '伊宁县', '', '', '', '', 3, 1, ''), ('654022', '6540', '00,65,6540', '察布查尔锡伯自治县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654022', '察布查尔锡伯自治县', '', '', '', '', 3, 1, ''), ('654023', '6540', '00,65,6540', '霍城县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654023', '霍城县', '', '', '', '', 3, 1, ''), ('654024', '6540', '00,65,6540', '巩留县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654024', '巩留县', '', '', '', '', 3, 1, ''), ('654025', '6540', '00,65,6540', '新源县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654025', '新源县', '', '', '', '', 3, 1, ''), ('654026', '6540', '00,65,6540', '昭苏县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654026', '昭苏县', '', '', '', '', 3, 1, ''), ('654027', '6540', '00,65,6540', '特克斯县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654027', '特克斯县', '', '', '', '', 3, 1, ''), ('654028', '6540', '00,65,6540', '尼勒克县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654028', '尼勒克县', '', '', '', '', 3, 1, ''), ('6542', '65', '00,65', '塔城地区', '65', '新疆维吾尔自治区', '6542', '塔城地区', '', '', '', '', '', '', 2, 1, ''), ('654201', '6542', '00,65,6542', '塔城市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654201', '塔城市', '', '', '', '', 3, 1, ''), ('654202', '6542', '00,65,6542', '乌苏市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654202', '乌苏市', '', '', '', '', 3, 1, ''), ('654221', '6542', '00,65,6542', '额敏县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654221', '额敏县', '', '', '', '', 3, 1, ''), ('654223', '6542', '00,65,6542', '沙湾县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654223', '沙湾县', '', '', '', '', 3, 1, ''), ('654224', '6542', '00,65,6542', '托里县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654224', '托里县', '', '', '', '', 3, 1, ''), ('654225', '6542', '00,65,6542', '裕民县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654225', '裕民县', '', '', '', '', 3, 1, ''), ('654226', '6542', '00,65,6542', '和布克赛尔蒙古自治县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654226', '和布克赛尔蒙古自治县', '', '', '', '', 3, 1, ''), ('6543', '65', '00,65', '阿勒泰地区', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '', '', '', '', '', '', 2, 1, ''), ('654301', '6543', '00,65,6543', '阿勒泰市', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654301', '阿勒泰市', '', '', '', '', 3, 1, ''), ('654321', '6543', '00,65,6543', '布尔津县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654321', '布尔津县', '', '', '', '', 3, 1, ''), ('654322', '6543', '00,65,6543', '富蕴县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654322', '富蕴县', '', '', '', '', 3, 1, ''), ('654323', '6543', '00,65,6543', '福海县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654323', '福海县', '', '', '', '', 3, 1, ''), ('654324', '6543', '00,65,6543', '哈巴河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654324', '哈巴河县', '', '', '', '', 3, 1, ''), ('654325', '6543', '00,65,6543', '青河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654325', '青河县', '', '', '', '', 3, 1, ''), ('654326', '6543', '00,65,6543', '吉木乃县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654326', '吉木乃县', '', '', '', '', 3, 1, ''), ('6590', '65', '00,65', '自治区直辖县级行政区', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('659001', '6590', '00,65,6590', '石河子市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659001', '石河子市', '', '', '', '', 3, 1, ''), ('659002', '6590', '00,65,6590', '阿拉尔市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659002', '阿拉尔市', '', '', '', '', 3, 1, ''), ('659003', '6590', '00,65,6590', '图木舒克市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659003', '图木舒克市', '', '', '', '', 3, 1, ''), ('659004', '6590', '00,65,6590', '五家渠市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659004', '五家渠市', '', '', '', '', 3, 1, ''), ('659005', '6590', '00,65,6590', '北屯市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659005', '北屯市', '', '', '', '', 3, 1, ''), ('659006', '6590', '00,65,6590', '铁门关市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659006', '铁门关市', '', '', '', '', 3, 1, ''), ('659007', '6590', '00,65,6590', '双河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659007', '双河市', '', '', '', '', 3, 1, ''), ('659008', '6590', '00,65,6590', '可克达拉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659008', '可克达拉市', '', '', '', '', 3, 1, ''), ('659009', '6590', '00,65,6590', '昆玉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659009', '昆玉市', '', '', '', '', 3, 1, ''), ('659010', '6590', '00,65,6590', '胡杨河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659010', '胡杨河市', '', '', '', '', 3, 1, ''), ('71', '00', '00', '台湾省', '71', '台湾省', '', '', '', '', '', '', '', '', 1, 1, ''), ('81', '00', '00', '香港特别行政区', '81', '香港特别行政区', '', '', '', '', '', '', '', '', 1, 1, ''), ('82', '00', '00', '澳门特别行政区', '82', '澳门特别行政区', '', '', '', '', '', '', '', '', 1, 1, '');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_report_file
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_report_file`;
+CREATE TABLE `blade_report_file`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '文件名',
+  `content` mediumblob NULL COMMENT '文件内容',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '报表文件表';
+
+-- ----------------------------
+-- Records of blade_report_file
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_report_file` VALUES (1291947054502789121, 'notice.ureport.xml', 0x3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E3C757265706F72743E3C63656C6C20657870616E643D22446F776E22206E616D653D2241312220726F773D22312220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D2274656E616E745F696422206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D22446F776E22206E616D653D2242312220726F773D22312220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D227469746C6522206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D22446F776E22206E616D653D2243312220726F773D22312220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D2272656C656173655F74696D6522206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244312220726F773D22312220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2241322220726F773D22322220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2242322220726F773D22322220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2243322220726F773D22322220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244322220726F773D22322220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2241332220726F773D22332220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2242332220726F773D22332220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2243332220726F773D22332220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244332220726F773D22332220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C726F7720726F772D6E756D6265723D223122206865696768743D223138222F3E3C726F7720726F772D6E756D6265723D223222206865696768743D223138222F3E3C726F7720726F772D6E756D6265723D223322206865696768743D223138222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2231222077696474683D223830222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2232222077696474683D223830222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2233222077696474683D22313331222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2234222077696474683D223830222F3E3C64617461736F75726365206E616D653D225265706F727444617461536F757263652220747970653D226275696C64696E223E3C64617461736574206E616D653D226E6F746963652220747970653D2273716C223E3C73716C3E3C215B43444154415B73656C656374202A2066726F6D20626C6164655F6E6F746963655D5D3E3C2F73716C3E3C6669656C64206E616D653D226964222F3E3C6669656C64206E616D653D2274656E616E745F6964222F3E3C6669656C64206E616D653D227469746C65222F3E3C6669656C64206E616D653D2263617465676F7279222F3E3C6669656C64206E616D653D2272656C656173655F74696D65222F3E3C6669656C64206E616D653D22636F6E74656E74222F3E3C6669656C64206E616D653D226372656174655F75736572222F3E3C6669656C64206E616D653D226372656174655F64657074222F3E3C6669656C64206E616D653D226372656174655F74696D65222F3E3C6669656C64206E616D653D227570646174655F75736572222F3E3C6669656C64206E616D653D227570646174655F74696D65222F3E3C6669656C64206E616D653D22737461747573222F3E3C6669656C64206E616D653D2269735F64656C65746564222F3E3C2F646174617365743E3C2F64617461736F757263653E3C706170657220747970653D22413422206C6566742D6D617267696E3D223930222072696768742D6D617267696E3D223930220A20202020746F702D6D617267696E3D2237322220626F74746F6D2D6D617267696E3D2237322220706167696E672D6D6F64653D22666974706167652220666978726F77733D2230220A2020202077696474683D2235393522206865696768743D2238343222206F7269656E746174696F6E3D22706F727472616974222068746D6C2D7265706F72742D616C69676E3D226C656674222062672D696D6167653D22222068746D6C2D696E74657276616C2D726566726573682D76616C75653D22302220636F6C756D6E2D656E61626C65643D2266616C7365223E3C2F70617065723E3C2F757265706F72743E, '2020-08-08 11:59:16', '2020-08-08 13:05:02', 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_role
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_role`;
+CREATE TABLE `blade_role`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父主键',
+  `role_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色名',
+  `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+  `role_alias` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色别名',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色表';
+
+-- ----------------------------
+-- Records of blade_role
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_role` VALUES (1123598816738675201, '000000', 0, '超级管理员', 1, 'administrator', 0), (1123598816738675202, '000000', 0, '用户', 2, 'user', 0), (1123598816738675203, '000000', 1123598816738675202, '人事', 1, 'hr', 0), (1123598816738675204, '000000', 1123598816738675202, '经理', 2, 'manager', 0), (1123598816738675205, '000000', 1123598816738675202, '老板', 3, 'boss', 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_role_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_role_menu`;
+CREATE TABLE `blade_role_menu`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单id',
+  `role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色菜单关联表';
+
+-- ----------------------------
+-- Records of blade_role_menu
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_role_menu` VALUES (1123598817738675363, 1123598815738675201, 1123598816738675202), (1123598817738675364, 1123598815738675202, 1123598816738675202), (1123598817738675365, 1123598815738675219, 1123598816738675202), (1123598817738675366, 1123598815738675220, 1123598816738675202), (1123598817738675367, 1123598815738675221, 1123598816738675202), (1123598817738675368, 1123598815738675222, 1123598816738675202), (1123598817738675369, 1123598815738675280, 1123598816738675202), (1123598817738675370, 1123598815738675281, 1123598816738675202), (1123598817738675371, 1123598815738675282, 1123598816738675202), (1123598817738675372, 1123598815738675283, 1123598816738675202), (1123598817738675373, 1123598815738675284, 1123598816738675202), (1123598817738675374, 1123598815738675285, 1123598816738675202), (1123598817738675375, 1123598815738675286, 1123598816738675202), (1123598817738675376, 1123598815738675287, 1123598816738675202), (1123598817738675377, 1123598815738675288, 1123598816738675202), (1123598817738675378, 1123598815738675289, 1123598816738675202), (1123598817738675379, 1123598815738675290, 1123598816738675202), (1123598817738675380, 1123598815738675291, 1123598816738675202), (1123598817738675381, 1123598815738675292, 1123598816738675202), (1123598817738675382, 1123598815738675293, 1123598816738675202), (1123598817738675383, 1123598815738675294, 1123598816738675202), (1123598817738675384, 1123598815738675295, 1123598816738675202), (1123598817738675385, 1123598815738675296, 1123598816738675202), (1123598817738675386, 1123598815738675297, 1123598816738675202), (1123598817738675387, 1123598815738675201, 1123598816738675203), (1123598817738675388, 1123598815738675202, 1123598816738675203), (1123598817738675389, 1123598815738675219, 1123598816738675203), (1123598817738675390, 1123598815738675220, 1123598816738675203), (1123598817738675391, 1123598815738675221, 1123598816738675203), (1123598817738675392, 1123598815738675222, 1123598816738675203), (1123598817738675393, 1123598815738675280, 1123598816738675203), (1123598817738675394, 1123598815738675281, 1123598816738675203), (1123598817738675395, 1123598815738675282, 1123598816738675203), (1123598817738675396, 1123598815738675283, 1123598816738675203), (1123598817738675397, 1123598815738675284, 1123598816738675203), (1123598817738675398, 1123598815738675285, 1123598816738675203), (1123598817738675399, 1123598815738675286, 1123598816738675203), (1123598817738675400, 1123598815738675287, 1123598816738675203), (1123598817738675401, 1123598815738675288, 1123598816738675203), (1123598817738675402, 1123598815738675289, 1123598816738675203), (1123598817738675403, 1123598815738675290, 1123598816738675203), (1123598817738675404, 1123598815738675291, 1123598816738675203), (1123598817738675405, 1123598815738675292, 1123598816738675203), (1123598817738675406, 1123598815738675293, 1123598816738675203), (1123598817738675407, 1123598815738675294, 1123598816738675203), (1123598817738675408, 1123598815738675295, 1123598816738675203), (1123598817738675409, 1123598815738675296, 1123598816738675203), (1123598817738675410, 1123598815738675297, 1123598816738675203), (1123598817738675411, 1123598815738675201, 1123598816738675204), (1123598817738675412, 1123598815738675202, 1123598816738675204), (1123598817738675413, 1123598815738675219, 1123598816738675204), (1123598817738675414, 1123598815738675220, 1123598816738675204), (1123598817738675415, 1123598815738675221, 1123598816738675204), (1123598817738675416, 1123598815738675222, 1123598816738675204), (1123598817738675417, 1123598815738675280, 1123598816738675204), (1123598817738675418, 1123598815738675281, 1123598816738675204), (1123598817738675419, 1123598815738675282, 1123598816738675204), (1123598817738675420, 1123598815738675283, 1123598816738675204), (1123598817738675421, 1123598815738675284, 1123598816738675204), (1123598817738675422, 1123598815738675285, 1123598816738675204), (1123598817738675423, 1123598815738675286, 1123598816738675204), (1123598817738675424, 1123598815738675287, 1123598816738675204), (1123598817738675425, 1123598815738675288, 1123598816738675204), (1123598817738675426, 1123598815738675289, 1123598816738675204), (1123598817738675427, 1123598815738675290, 1123598816738675204), (1123598817738675428, 1123598815738675291, 1123598816738675204), (1123598817738675429, 1123598815738675292, 1123598816738675204), (1123598817738675430, 1123598815738675293, 1123598816738675204), (1123598817738675431, 1123598815738675294, 1123598816738675204), (1123598817738675432, 1123598815738675295, 1123598816738675204), (1123598817738675433, 1123598815738675296, 1123598816738675204), (1123598817738675434, 1123598815738675297, 1123598816738675204), (1123598817738675435, 1123598815738675201, 1123598816738675205), (1123598817738675436, 1123598815738675202, 1123598816738675205), (1123598817738675437, 1123598815738675219, 1123598816738675205), (1123598817738675438, 1123598815738675220, 1123598816738675205), (1123598817738675439, 1123598815738675221, 1123598816738675205), (1123598817738675440, 1123598815738675222, 1123598816738675205), (1123598817738675441, 1123598815738675280, 1123598816738675205), (1123598817738675442, 1123598815738675281, 1123598816738675205), (1123598817738675443, 1123598815738675282, 1123598816738675205), (1123598817738675444, 1123598815738675283, 1123598816738675205), (1123598817738675445, 1123598815738675284, 1123598816738675205), (1123598817738675446, 1123598815738675285, 1123598816738675205), (1123598817738675447, 1123598815738675286, 1123598816738675205), (1123598817738675448, 1123598815738675287, 1123598816738675205), (1123598817738675449, 1123598815738675288, 1123598816738675205), (1123598817738675450, 1123598815738675289, 1123598816738675205), (1123598817738675451, 1123598815738675290, 1123598816738675205), (1123598817738675452, 1123598815738675291, 1123598816738675205), (1123598817738675453, 1123598815738675292, 1123598816738675205), (1123598817738675454, 1123598815738675293, 1123598816738675205), (1123598817738675455, 1123598815738675294, 1123598816738675205), (1123598817738675456, 1123598815738675295, 1123598816738675205), (1123598817738675457, 1123598815738675296, 1123598816738675205), (1123598817738675458, 1123598815738675297, 1123598816738675205), (1149888293856833539, 1123598815738675317, 1123598816738675201), (1149891666312130561, 1123598815738675201, 1123598816738675201), (1149891666370850818, 1123598815738675202, 1123598816738675201), (1149891666437959682, 1123598815738675219, 1123598816738675201), (1149891666505068546, 1123598815738675220, 1123598816738675201), (1149891666555400193, 1123598815738675221, 1123598816738675201), (1149891666614120449, 1123598815738675222, 1123598816738675201), (1149891666651869185, 1123598815738675280, 1123598816738675201), (1149891666723172353, 1123598815738675281, 1123598816738675201), (1149891666765115393, 1123598815738675282, 1123598816738675201), (1149891666815447041, 1123598815738675283, 1123598816738675201), (1149891666844807170, 1123598815738675284, 1123598816738675201), (1149891666886750210, 1123598815738675285, 1123598816738675201), (1149891666924498946, 1123598815738675286, 1123598816738675201), (1149891666966441986, 1123598815738675287, 1123598816738675201), (1149891667012579330, 1123598815738675288, 1123598816738675201), (1149891667054522370, 1123598815738675289, 1123598816738675201), (1149891667109048322, 1123598815738675290, 1123598816738675201), (1149891667146797058, 1123598815738675291, 1123598816738675201), (1149891667197128706, 1123598815738675292, 1123598816738675201), (1149891667234877441, 1123598815738675293, 1123598816738675201), (1149891667272626178, 1123598815738675294, 1123598816738675201), (1149891667314569218, 1123598815738675295, 1123598816738675201), (1149891667343929346, 1123598815738675296, 1123598816738675201), (1149891667398455298, 1123598815738675297, 1123598816738675201), (1149891667440398338, 1123598815738675210, 1123598816738675201), (1149891667478147073, 1123598815738675211, 1123598816738675201), (1149891667524284417, 1123598815738675212, 1123598816738675201), (1149891667574616065, 1123598815738675213, 1123598816738675201), (1149891667608170498, 1123598815738675214, 1123598816738675201), (1149891667641724929, 1123598815738675249, 1123598816738675201), (1149891667671085058, 1123598815738675215, 1123598816738675201), (1149891667708833793, 1123598815738675250, 1123598816738675201), (1149891667746582529, 1123598815738675216, 1123598816738675201), (1149891667784331265, 1123598815738675251, 1123598816738675201), (1149891667822080001, 1123598815738675217, 1123598816738675201), (1149891667843051522, 1123598815738675218, 1123598816738675201), (1149891667889188865, 1123598815738675252, 1123598816738675201), (1149891667926937602, 1123598815738675253, 1123598816738675201), (1149891667947909121, 1123598815738675254, 1123598816738675201), (1149891667989852161, 1123598815738675255, 1123598816738675201), (1149891668015017986, 1123598815738675266, 1123598816738675201), (1149891668061155330, 1123598815738675267, 1123598816738675201), (1149891668086321154, 1123598815738675268, 1123598816738675201), (1149891668136652802, 1123598815738675269, 1123598816738675201), (1149891668199567362, 1123598815738675270, 1123598816738675201), (1149891668262481922, 1123598815738675271, 1123598816738675201), (1149891668321202177, 1123598815738675272, 1123598816738675201), (1149891668367339521, 1123598815738675273, 1123598816738675201), (1149891668405088257, 1123598815738675274, 1123598816738675201), (1149891668438642689, 1123598815738675275, 1123598816738675201), (1149891668472197121, 1123598815738675276, 1123598816738675201), (1149891668509945858, 1123598815738675277, 1123598816738675201), (1149891668568666113, 1123598815738675278, 1123598816738675201), (1149891668631580673, 1123598815738675279, 1123598816738675201), (1149891668669329410, 1123598815738675298, 1123598816738675201), (1149891668719661057, 1123598815738675299, 1123598816738675201), (1149891668757409793, 1123598815738675301, 1123598816738675201), (1149891668803547138, 1123598815738675302, 1123598816738675201), (1149891668849684481, 1123598815738675303, 1123598816738675201), (1149891668883238913, 1123598815738675304, 1123598816738675201), (1149891668920987650, 1123598815738675305, 1123598816738675201), (1149891668950347777, 1123598815738675307, 1123598816738675201), (1149891668983902209, 1123598815738675308, 1123598816738675201), (1149891669013262338, 1123598815738675241, 1123598816738675201), (1149891669034233857, 1123598815738675242, 1123598816738675201), (1149891669055205378, 1123598815738675243, 1123598816738675201), (1149891669105537025, 1123598815738675244, 1123598816738675201), (1149891669164257282, 1123598815738675309, 1123598816738675201), (1149891669210394626, 1123598815738675310, 1123598816738675201), (1149891669243949058, 1123598815738675311, 1123598816738675201), (1149891669285892097, 1123598815738675312, 1123598816738675201), (1149891669336223745, 1123598815738675203, 1123598816738675201), (1149891669365583873, 1123598815738675204, 1123598816738675201), (1149891669394944001, 1123598815738675223, 1123598816738675201), (1149891669441081346, 1123598815738675224, 1123598816738675201), (1149891669487218689, 1123598815738675225, 1123598816738675201), (1149891669533356033, 1123598815738675226, 1123598816738675201), (1149891669571104770, 1123598815738675227, 1123598816738675201), (1149891669642407937, 1123598815738675228, 1123598816738675201), (1149891669671768065, 1123598815738675205, 1123598816738675201), (1149891669696933889, 1123598815738675229, 1123598816738675201), (1149891669743071234, 1123598815738675230, 1123598816738675201), (1149891669797597186, 1123598815738675231, 1123598816738675201), (1149891669847928834, 1123598815738675232, 1123598816738675201), (1149891669919232001, 1123598815738675206, 1123598816738675201), (1149891669973757954, 1123598815738675233, 1123598816738675201), (1149891670019895298, 1123598815738675234, 1123598816738675201), (1149891670045061121, 1123598815738675235, 1123598816738675201), (1149891670095392770, 1123598815738675236, 1123598816738675201), (1149891670137335809, 1123598815738675207, 1123598816738675201), (1149891670196056065, 1123598815738675237, 1123598816738675201), (1149891670229610498, 1123598815738675238, 1123598816738675201), (1149891670267359234, 1123598815738675239, 1123598816738675201), (1149891670292525057, 1123598815738675240, 1123598816738675201), (1149891670355439617, 1123598815738675306, 1123598816738675201), (1149891670380605442, 1123598815738675208, 1123598816738675201), (1149891670443520001, 1123598815738675313, 1123598816738675201), (1149891670481268737, 1123598815738675314, 1123598816738675201), (1149891670506434561, 1123598815738675315, 1123598816738675201), (1149891670569349121, 1123598815738675316, 1123598816738675201), (1149891670594514945, 1123598815738675209, 1123598816738675201), (1149891670657429506, 1123598815738675245, 1123598816738675201), (1149891670682595330, 1123598815738675246, 1123598816738675201), (1149891670711955457, 1123598815738675247, 1123598816738675201), (1149891670745509889, 1123598815738675248, 1123598816738675201), (1149891670804230146, 1123598815738675256, 1123598816738675201), (1149891670841978881, 1123598815738675257, 1123598816738675201), (1149891670879727617, 1123598815738675258, 1123598816738675201), (1149891670913282050, 1123598815738675259, 1123598816738675201), (1149891670959419394, 1123598815738675260, 1123598816738675201), (1149891670988779521, 1123598815738675261, 1123598816738675201), (1149891671039111170, 1123598815738675262, 1123598816738675201), (1149891671068471297, 1123598815738675263, 1123598816738675201), (1149891671110414338, 1123598815738675264, 1123598816738675201), (1149891671152357378, 1123598815738675265, 1123598816738675201), (1161272593873322991, 1161272593873321991, 1123598816738675201), (1161272593873322992, 1161272593873321992, 1123598816738675201), (1161272593873322993, 1161272593873321993, 1123598816738675201), (1161272593873322994, 1161272593873321994, 1123598816738675201), (1161272593873322995, 1161272593873321995, 1123598816738675201), (1161272693873322991, 1164733369658963251, 1123598816738675201), (1161272693873322992, 1164733369658963252, 1123598816738675201), (1161272693873322993, 1164733369658963253, 1123598816738675201), (1161272693873322994, 1164733369658963254, 1123598816738675201), (1161272693873322995, 1164733369658963255, 1123598816738675201), (1161272793873322991, 1164733379658963251, 1123598816738675201), (1161272793873322992, 1164733379658963252, 1123598816738675201), (1161272793873322993, 1164733379658963253, 1123598816738675201), (1161272793873322994, 1164733379658963254, 1123598816738675201), (1161272793873322995, 1164733379658963255, 1123598816738675201), (1161272893873222991, 1164733389658962251, 1123598816738675201), (1161272893873222992, 1164733389658962252, 1123598816738675201), (1161272893873222993, 1164733389658962253, 1123598816738675201), (1161272893873222994, 1164733389658962254, 1123598816738675201), (1161272893873222995, 1164733389658962255, 1123598816738675201), (1161272893873222996, 1164733389658962256, 1123598816738675201), (1161272893873322991, 1164733389658963251, 1123598816738675201), (1161272893875225001, 1164733389668962251, 1123598816738675201), (1161272893875225002, 1164733389668962252, 1123598816738675201), (1161272893875225003, 1164733389668962253, 1123598816738675201), (1161272893875225004, 1164733389668962254, 1123598816738675201), (1161272893875225005, 1164733389668962255, 1123598816738675201), (1161272893875225006, 1164733389668962256, 1123598816738675201), (1161272893875226001, 1164733399668962201, 1123598816738675201), (1161272893875226002, 1164733399668962202, 1123598816738675201), (1161272893875226003, 1164733399668962203, 1123598816738675201), (1161272893875226004, 1164733399668962204, 1123598816738675201), (1161272893875226005, 1164733399668962205, 1123598816738675201), (1161272893875226006, 1164733399668962206, 1123598816738675201), (1161272893875226007, 1164733399668962207, 1123598816738675201), (1161272893875227001, 1164733399669962201, 1123598816738675201), (1161272893875227002, 1164733399669962202, 1123598816738675201), (1161272893875227003, 1164733399669962203, 1123598816738675201), (1161272893875227004, 1164733399669962204, 1123598816738675201), (1161272893875228001, 1164733399669962301, 1123598816738675201), (1161272893875228002, 1164733399669962302, 1123598816738675201), (1161272893875228003, 1164733399669962303, 1123598816738675201), (1161272893875228004, 1164733399669962304, 1123598816738675201);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_role_scope
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_role_scope`;
+CREATE TABLE `blade_role_scope`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `scope_category` int(2) NULL DEFAULT NULL COMMENT '权限类型(1:数据权限、2:接口权限)',
+  `scope_id` bigint(20) NULL DEFAULT NULL COMMENT '权限id',
+  `role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色id',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色数据权限关联表';
+
+-- ----------------------------
+-- Table structure for blade_scope_api
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_scope_api`;
+CREATE TABLE `blade_scope_api`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单主键',
+  `resource_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源编号',
+  `scope_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口权限名',
+  `scope_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口权限地址',
+  `scope_type` int(2) NULL DEFAULT NULL COMMENT '接口权限类型',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口权限备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '接口权限表';
+
+-- ----------------------------
+-- Table structure for blade_scope_data
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_scope_data`;
+CREATE TABLE `blade_scope_data`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单主键',
+  `resource_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源编号',
+  `scope_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限名称',
+  `scope_field` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限字段',
+  `scope_class` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限类名',
+  `scope_column` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限字段',
+  `scope_type` int(2) NULL DEFAULT NULL COMMENT '数据权限类型',
+  `scope_value` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限值域',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据权限表';
+
+-- ----------------------------
+-- Table structure for blade_sms
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_sms`;
+CREATE TABLE `blade_sms`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `category` int(2) NULL DEFAULT NULL COMMENT '分类',
+  `sms_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源编号',
+  `template_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板ID',
+  `access_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'accessKey',
+  `secret_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'secretKey',
+  `region_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'regionId',
+  `sign_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '短信签名',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '短信配置表';
+
+-- ----------------------------
+-- Table structure for blade_tenant
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_tenant`;
+CREATE TABLE `blade_tenant`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `tenant_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户名称',
+  `domain_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '域名地址',
+  `background_url` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '系统背景',
+  `linkman` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人',
+  `contact_number` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系电话',
+  `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系地址',
+  `account_number` int(11) NULL DEFAULT -1 COMMENT '账号额度',
+  `expire_time` datetime(0) NULL DEFAULT NULL COMMENT '过期时间',
+  `package_id` bigint(20) NULL DEFAULT NULL COMMENT '产品包ID',
+  `datasource_id` bigint(20) NULL DEFAULT NULL COMMENT '数据源ID',
+  `license_key` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '授权码',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '租户表';
+
+-- ----------------------------
+-- Records of blade_tenant
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_tenant` VALUES (1123598820738675201, '000000', '管理组', NULL, NULL, 'admin', '666666', '管理组', -1, NULL, NULL, NULL, NULL, 1123598821738675201, 1123598813738675201, '2019-01-01 00:00:39', 1123598821738675201, '2019-01-01 00:00:39', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_tenant_package
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_tenant_package`;
+CREATE TABLE `blade_tenant_package`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `package_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '产品包名',
+  `menu_id` varchar(3000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单ID',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '租户产品表';
+
+-- ----------------------------
+-- Table structure for blade_top_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_top_menu`;
+CREATE TABLE `blade_top_menu`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户id',
+  `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '顶部菜单编号',
+  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '顶部菜单名',
+  `source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '顶部菜单资源',
+  `sort` int(2) NULL DEFAULT NULL COMMENT '顶部菜单排序',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '顶部菜单表';
+
+-- ----------------------------
+-- Table structure for blade_top_menu_setting
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_top_menu_setting`;
+CREATE TABLE `blade_top_menu_setting`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `top_menu_id` bigint(20) NULL DEFAULT NULL COMMENT '顶部菜单主键',
+  `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单主键',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '顶部菜单配置表';
+
+-- ----------------------------
+-- Table structure for blade_user
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_user`;
+CREATE TABLE `blade_user`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID',
+  `code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户编号',
+  `user_type` int(2) NULL DEFAULT NULL COMMENT '用户平台',
+  `account` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号',
+  `password` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码',
+  `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '昵称',
+  `real_name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '真名',
+  `avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',
+  `email` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱',
+  `phone` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机',
+  `birthday` datetime(0) NULL DEFAULT NULL COMMENT '生日',
+  `sex` int(2) NULL DEFAULT NULL COMMENT '性别',
+  `role_id` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色id',
+  `dept_id` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门id',
+  `post_id` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位id',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户表';
+
+-- ----------------------------
+-- Records of blade_user
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_user` VALUES (1123598821738675201, '000000', NULL, 1, 'admin', '90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad', '管理员', '管理员', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'admin@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675201', '1123598813738675201', '1123598817738675201', 1123598821738675201, 1123598813738675201, '2018-08-08 00:00:00', 1123598821738675201, '2018-08-08 00:00:00', 1, 0), (1123598821738675202, '000000', NULL, 1, 'hr', '5e79b90f7bba52d54115f086e48f539016a27ec6', '人事', '人事', '', 'hr@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675203', '1123598813738675202', '1123598817738675207', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:10', 1123598821738675201, '2019-04-27 17:03:10', 1, 0), (1123598821738675203, '000000', NULL, 1, 'manager', 'dfbaa3b61caa3a319f463cc165085aa8c822d2ce', '经理', '经理', '', 'manager@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675204', '1123598813738675202', '1123598817738675206', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:38', 1123598821738675201, '2019-04-27 17:03:38', 1, 0), (1123598821738675204, '000000', NULL, 1, 'boss', 'abe57d23e18f7ad8ea99c86e430c90a05119a9d3', '老板', '老板', '', 'boss@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675205', '1123598813738675202', '1123598817738675201', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:55', 1123598821738675201, '2019-04-27 17:03:55', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_user_app
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_user_app`;
+CREATE TABLE `blade_user_app`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `user_id` bigint(20) NULL DEFAULT 0 COMMENT '用户ID',
+  `user_ext` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户拓展信息',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户平台拓展表';
+
+-- ----------------------------
+-- Table structure for blade_user_dept
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_user_dept`;
+CREATE TABLE `blade_user_dept`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `user_id` bigint(20) NULL DEFAULT 0 COMMENT '用户ID',
+  `dept_id` bigint(20) NULL DEFAULT 0 COMMENT '部门ID',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户部门表';
+
+-- ----------------------------
+-- Records of blade_user_dept
+-- ----------------------------
+BEGIN;
+INSERT INTO `blade_user_dept` VALUES (1203503640757788674, 1123598821738675201, 1123598813738675201), (1203503653323923458, 1123598821738675202, 1123598813738675202), (1203503663402835969, 1123598821738675203, 1123598813738675202), (1203503672911323137, 1123598821738675204, 1123598813738675202);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_user_oauth
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_user_oauth`;
+CREATE TABLE `blade_user_oauth`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户ID',
+  `uuid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第三方系统用户ID',
+  `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
+  `username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号',
+  `nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
+  `avatar` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',
+  `blog` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用主页',
+  `company` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公司名',
+  `location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址',
+  `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮件',
+  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+  `gender` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别',
+  `source` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '来源',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户第三方认证表';
+
+-- ----------------------------
+-- Table structure for blade_user_other
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_user_other`;
+CREATE TABLE `blade_user_other`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `user_id` bigint(20) NULL DEFAULT 0 COMMENT '用户ID',
+  `user_ext` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户拓展信息',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户平台拓展表';
+
+-- ----------------------------
+-- Table structure for blade_user_web
+-- ----------------------------
+DROP TABLE IF EXISTS `blade_user_web`;
+CREATE TABLE `blade_user_web`  (
+  `id` bigint(20) NOT NULL COMMENT '主键',
+  `user_id` bigint(20) NULL DEFAULT 0 COMMENT '用户ID',
+  `user_ext` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户拓展信息',
+  PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户平台拓展表';
+
+SET FOREIGN_KEY_CHECKS = 1;
diff --git a/skjcmanager/doc/sql/oracle/bladex-flowable-oracle.sql b/skjcmanager/doc/sql/oracle/bladex-flowable-oracle.sql
new file mode 100644
index 0000000..3d07f05
--- /dev/null
+++ b/skjcmanager/doc/sql/oracle/bladex-flowable-oracle.sql
@@ -0,0 +1,5676 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : oracle_localhost
+ Source Server Type    : Oracle
+ Source Server Version : 110200
+ Source Host           : 127.0.0.1:1521
+ Source Schema         : BLADEX
+
+ Target Server Type    : Oracle
+ Target Server Version : 110200
+ File Encoding         : 65001
+
+ Date: 20/03/2022 22:00:00
+*/
+
+
+-- ----------------------------
+-- Table structure for ACT_APP_APPDEF
+-- ----------------------------
+-- DROP TABLE "ACT_APP_APPDEF";
+CREATE TABLE "ACT_APP_APPDEF" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "REV_" NUMBER NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "KEY_" VARCHAR2(255 BYTE) NOT NULL ,
+  "VERSION_" NUMBER NOT NULL ,
+  "CATEGORY_" VARCHAR2(255 BYTE) ,
+  "DEPLOYMENT_ID_" VARCHAR2(255 BYTE) ,
+  "RESOURCE_NAME_" VARCHAR2(4000 BYTE) ,
+  "DESCRIPTION_" VARCHAR2(4000 BYTE) ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_APP_DATABASECHANGELOG
+-- ----------------------------
+-- DROP TABLE "ACT_APP_DATABASECHANGELOG";
+CREATE TABLE "ACT_APP_DATABASECHANGELOG" (
+  "ID" VARCHAR2(255 BYTE) NOT NULL ,
+  "AUTHOR" VARCHAR2(255 BYTE) NOT NULL ,
+  "FILENAME" VARCHAR2(255 BYTE) NOT NULL ,
+  "DATEEXECUTED" TIMESTAMP(6) NOT NULL ,
+  "ORDEREXECUTED" NUMBER NOT NULL ,
+  "EXECTYPE" VARCHAR2(10 BYTE) NOT NULL ,
+  "MD5SUM" VARCHAR2(35 BYTE) ,
+  "DESCRIPTION" VARCHAR2(255 BYTE) ,
+  "COMMENTS" VARCHAR2(255 BYTE) ,
+  "TAG" VARCHAR2(255 BYTE) ,
+  "LIQUIBASE" VARCHAR2(20 BYTE) ,
+  "CONTEXTS" VARCHAR2(255 BYTE) ,
+  "LABELS" VARCHAR2(255 BYTE) ,
+  "DEPLOYMENT_ID" VARCHAR2(10 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Records of ACT_APP_DATABASECHANGELOG
+-- ----------------------------
+INSERT INTO "ACT_APP_DATABASECHANGELOG" VALUES ('1', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:02.893666', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '8:496fc778bdf2ab13f2e1926d0e63e0a2', 'createTable tableName=ACT_APP_DEPLOYMENT; createTable tableName=ACT_APP_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_APP_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_APP_RSRC_DPL, referencedTableName=ACT_APP_DEPLOYMENT; createIndex...', NULL, NULL, '3.5.3', NULL, NULL, '9500486764');
+INSERT INTO "ACT_APP_DATABASECHANGELOG" VALUES ('3', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:03.090284', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '8:f1f8aff320aade831944ebad24355f3d', 'createIndex indexName=ACT_IDX_APP_DEF_UNIQ, tableName=ACT_APP_APPDEF', NULL, NULL, '3.5.3', NULL, NULL, '9500486764');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_APP_DATABASECHANGELOGLOCK
+-- ----------------------------
+-- DROP TABLE "ACT_APP_DATABASECHANGELOGLOCK";
+CREATE TABLE "ACT_APP_DATABASECHANGELOGLOCK" (
+  "ID" NUMBER NOT NULL ,
+  "LOCKED" NUMBER(1) NOT NULL ,
+  "LOCKGRANTED" TIMESTAMP(6) ,
+  "LOCKEDBY" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Records of ACT_APP_DATABASECHANGELOGLOCK
+-- ----------------------------
+INSERT INTO "ACT_APP_DATABASECHANGELOGLOCK" VALUES ('1', '0', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_APP_DEPLOYMENT
+-- ----------------------------
+-- DROP TABLE "ACT_APP_DEPLOYMENT";
+CREATE TABLE "ACT_APP_DEPLOYMENT" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "CATEGORY_" VARCHAR2(255 BYTE) ,
+  "KEY_" VARCHAR2(255 BYTE) ,
+  "DEPLOY_TIME_" TIMESTAMP(6) ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_APP_DEPLOYMENT_RESOURCE
+-- ----------------------------
+-- DROP TABLE "ACT_APP_DEPLOYMENT_RESOURCE";
+CREATE TABLE "ACT_APP_DEPLOYMENT_RESOURCE" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "DEPLOYMENT_ID_" VARCHAR2(255 BYTE) ,
+  "RESOURCE_BYTES_" BLOB
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_CASEDEF
+-- ----------------------------
+-- DROP TABLE "ACT_CMMN_CASEDEF";
+CREATE TABLE "ACT_CMMN_CASEDEF" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "REV_" NUMBER NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "KEY_" VARCHAR2(255 BYTE) NOT NULL ,
+  "VERSION_" NUMBER NOT NULL ,
+  "CATEGORY_" VARCHAR2(255 BYTE) ,
+  "DEPLOYMENT_ID_" VARCHAR2(255 BYTE) ,
+  "RESOURCE_NAME_" VARCHAR2(4000 BYTE) ,
+  "DESCRIPTION_" VARCHAR2(4000 BYTE) ,
+  "HAS_GRAPHICAL_NOTATION_" NUMBER(1) ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT '' ,
+  "DGRM_RESOURCE_NAME_" VARCHAR2(4000 BYTE) ,
+  "HAS_START_FORM_KEY_" NUMBER(1)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_DATABASECHANGELOG
+-- ----------------------------
+-- DROP TABLE "ACT_CMMN_DATABASECHANGELOG";
+CREATE TABLE "ACT_CMMN_DATABASECHANGELOG" (
+  "ID" VARCHAR2(255 BYTE) NOT NULL ,
+  "AUTHOR" VARCHAR2(255 BYTE) NOT NULL ,
+  "FILENAME" VARCHAR2(255 BYTE) NOT NULL ,
+  "DATEEXECUTED" TIMESTAMP(6) NOT NULL ,
+  "ORDEREXECUTED" NUMBER NOT NULL ,
+  "EXECTYPE" VARCHAR2(10 BYTE) NOT NULL ,
+  "MD5SUM" VARCHAR2(35 BYTE) ,
+  "DESCRIPTION" VARCHAR2(255 BYTE) ,
+  "COMMENTS" VARCHAR2(255 BYTE) ,
+  "TAG" VARCHAR2(255 BYTE) ,
+  "LIQUIBASE" VARCHAR2(20 BYTE) ,
+  "CONTEXTS" VARCHAR2(255 BYTE) ,
+  "LABELS" VARCHAR2(255 BYTE) ,
+  "DEPLOYMENT_ID" VARCHAR2(10 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Records of ACT_CMMN_DATABASECHANGELOG
+-- ----------------------------
+INSERT INTO "ACT_CMMN_DATABASECHANGELOG" VALUES ('1', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:05.572529', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '8:8b4b922d90b05ff27483abefc9597aa6', 'createTable tableName=ACT_CMMN_DEPLOYMENT; createTable tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_CMMN_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_CMMN_RSRC_DPL, referencedTableName=ACT_CMMN_DEPLOYMENT; create...', NULL, NULL, '3.5.3', NULL, NULL, '9500487786');
+INSERT INTO "ACT_CMMN_DATABASECHANGELOG" VALUES ('2', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:06.062159', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '8:65e39b3d385706bb261cbeffe7533cbe', 'addColumn tableName=ACT_CMMN_CASEDEF; addColumn tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST', NULL, NULL, '3.5.3', NULL, NULL, '9500487786');
+INSERT INTO "ACT_CMMN_DATABASECHANGELOG" VALUES ('3', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:06.474729', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '3', 'EXECUTED', '8:c01f6e802b49436b4489040da3012359', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_PLAN_ITEM_STAGE_INST, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableNam...', NULL, NULL, '3.5.3', NULL, NULL, '9500487786');
+INSERT INTO "ACT_CMMN_DATABASECHANGELOG" VALUES ('4', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:06.633601', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '4', 'EXECUTED', '8:e40d29cb79345b7fb5afd38a7f0ba8fc', 'createTable tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_MIL_INST; addColumn tableName=ACT_CMMN_HI_MIL_INST', NULL, NULL, '3.5.3', NULL, NULL, '9500487786');
+INSERT INTO "ACT_CMMN_DATABASECHANGELOG" VALUES ('6', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:06.752638', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '5', 'EXECUTED', '8:10e82e26a7fee94c32a92099c059c18c', 'createIndex indexName=ACT_IDX_CASE_DEF_UNIQ, tableName=ACT_CMMN_CASEDEF', NULL, NULL, '3.5.3', NULL, NULL, '9500487786');
+INSERT INTO "ACT_CMMN_DATABASECHANGELOG" VALUES ('7', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:07.919259', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '6', 'EXECUTED', '8:530bc81a1e30618ccf4a2da1f7c6c043', 'renameColumn newColumnName=CREATE_TIME_, oldColumnName=START_TIME_, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; renameColumn newColumnName=CREATE_TIME_, oldColumnName=CREATED_TIME_, tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_P...', NULL, NULL, '3.5.3', NULL, NULL, '9500487786');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+-- DROP TABLE "ACT_CMMN_DATABASECHANGELOGLOCK";
+CREATE TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" (
+  "ID" NUMBER NOT NULL ,
+  "LOCKED" NUMBER(1) NOT NULL ,
+  "LOCKGRANTED" TIMESTAMP(6) ,
+  "LOCKEDBY" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Records of ACT_CMMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+INSERT INTO "ACT_CMMN_DATABASECHANGELOGLOCK" VALUES ('1', '0', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_DEPLOYMENT
+-- ----------------------------
+-- DROP TABLE "ACT_CMMN_DEPLOYMENT";
+CREATE TABLE "ACT_CMMN_DEPLOYMENT" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "CATEGORY_" VARCHAR2(255 BYTE) ,
+  "KEY_" VARCHAR2(255 BYTE) ,
+  "DEPLOY_TIME_" TIMESTAMP(6) ,
+  "PARENT_DEPLOYMENT_ID_" VARCHAR2(255 BYTE) ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+-- DROP TABLE "ACT_CMMN_DEPLOYMENT_RESOURCE";
+CREATE TABLE "ACT_CMMN_DEPLOYMENT_RESOURCE" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "DEPLOYMENT_ID_" VARCHAR2(255 BYTE) ,
+  "RESOURCE_BYTES_" BLOB ,
+  "GENERATED_" NUMBER(1)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_HI_CASE_INST
+-- ----------------------------
+-- DROP TABLE "ACT_CMMN_HI_CASE_INST";
+CREATE TABLE "ACT_CMMN_HI_CASE_INST" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "REV_" NUMBER NOT NULL ,
+  "BUSINESS_KEY_" VARCHAR2(255 BYTE) ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "PARENT_ID_" VARCHAR2(255 BYTE) ,
+  "CASE_DEF_ID_" VARCHAR2(255 BYTE) ,
+  "STATE_" VARCHAR2(255 BYTE) ,
+  "START_TIME_" TIMESTAMP(6) ,
+  "END_TIME_" TIMESTAMP(6) ,
+  "START_USER_ID_" VARCHAR2(255 BYTE) ,
+  "CALLBACK_ID_" VARCHAR2(255 BYTE) ,
+  "CALLBACK_TYPE_" VARCHAR2(255 BYTE) ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_HI_MIL_INST
+-- ----------------------------
+-- DROP TABLE "ACT_CMMN_HI_MIL_INST";
+CREATE TABLE "ACT_CMMN_HI_MIL_INST" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "REV_" NUMBER NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) NOT NULL ,
+  "TIME_STAMP_" TIMESTAMP(6) NOT NULL ,
+  "CASE_INST_ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "CASE_DEF_ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "ELEMENT_ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_HI_PLAN_ITEM_INST
+-- ----------------------------
+-- DROP TABLE "ACT_CMMN_HI_PLAN_ITEM_INST";
+CREATE TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "REV_" NUMBER NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "STATE_" VARCHAR2(255 BYTE) ,
+  "CASE_DEF_ID_" VARCHAR2(255 BYTE) ,
+  "CASE_INST_ID_" VARCHAR2(255 BYTE) ,
+  "STAGE_INST_ID_" VARCHAR2(255 BYTE) ,
+  "IS_STAGE_" NUMBER(1) ,
+  "ELEMENT_ID_" VARCHAR2(255 BYTE) ,
+  "ITEM_DEFINITION_ID_" VARCHAR2(255 BYTE) ,
+  "ITEM_DEFINITION_TYPE_" VARCHAR2(255 BYTE) ,
+  "CREATE_TIME_" TIMESTAMP(6) ,
+  "LAST_AVAILABLE_TIME_" TIMESTAMP(6) ,
+  "LAST_ENABLED_TIME_" TIMESTAMP(6) ,
+  "LAST_DISABLED_TIME_" TIMESTAMP(6) ,
+  "LAST_STARTED_TIME_" TIMESTAMP(6) ,
+  "LAST_SUSPENDED_TIME_" TIMESTAMP(6) ,
+  "COMPLETED_TIME_" TIMESTAMP(6) ,
+  "OCCURRED_TIME_" TIMESTAMP(6) ,
+  "TERMINATED_TIME_" TIMESTAMP(6) ,
+  "EXIT_TIME_" TIMESTAMP(6) ,
+  "ENDED_TIME_" TIMESTAMP(6) ,
+  "LAST_UPDATED_TIME_" TIMESTAMP(6) ,
+  "START_USER_ID_" VARCHAR2(255 BYTE) ,
+  "REFERENCE_ID_" VARCHAR2(255 BYTE) ,
+  "REFERENCE_TYPE_" VARCHAR2(255 BYTE) ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT '' ,
+  "ENTRY_CRITERION_ID_" VARCHAR2(255 BYTE) ,
+  "EXIT_CRITERION_ID_" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_RU_CASE_INST
+-- ----------------------------
+-- DROP TABLE "ACT_CMMN_RU_CASE_INST";
+CREATE TABLE "ACT_CMMN_RU_CASE_INST" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "REV_" NUMBER NOT NULL ,
+  "BUSINESS_KEY_" VARCHAR2(255 BYTE) ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "PARENT_ID_" VARCHAR2(255 BYTE) ,
+  "CASE_DEF_ID_" VARCHAR2(255 BYTE) ,
+  "STATE_" VARCHAR2(255 BYTE) ,
+  "START_TIME_" TIMESTAMP(6) ,
+  "START_USER_ID_" VARCHAR2(255 BYTE) ,
+  "CALLBACK_ID_" VARCHAR2(255 BYTE) ,
+  "CALLBACK_TYPE_" VARCHAR2(255 BYTE) ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT '' ,
+  "LOCK_TIME_" TIMESTAMP(6) ,
+  "IS_COMPLETEABLE_" NUMBER(1)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_RU_MIL_INST
+-- ----------------------------
+-- DROP TABLE "ACT_CMMN_RU_MIL_INST";
+CREATE TABLE "ACT_CMMN_RU_MIL_INST" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) NOT NULL ,
+  "TIME_STAMP_" TIMESTAMP(6) NOT NULL ,
+  "CASE_INST_ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "CASE_DEF_ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "ELEMENT_ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_RU_PLAN_ITEM_INST
+-- ----------------------------
+-- DROP TABLE "ACT_CMMN_RU_PLAN_ITEM_INST";
+CREATE TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "REV_" NUMBER NOT NULL ,
+  "CASE_DEF_ID_" VARCHAR2(255 BYTE) ,
+  "CASE_INST_ID_" VARCHAR2(255 BYTE) ,
+  "STAGE_INST_ID_" VARCHAR2(255 BYTE) ,
+  "IS_STAGE_" NUMBER(1) ,
+  "ELEMENT_ID_" VARCHAR2(255 BYTE) ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "STATE_" VARCHAR2(255 BYTE) ,
+  "CREATE_TIME_" TIMESTAMP(6) ,
+  "START_USER_ID_" VARCHAR2(255 BYTE) ,
+  "REFERENCE_ID_" VARCHAR2(255 BYTE) ,
+  "REFERENCE_TYPE_" VARCHAR2(255 BYTE) ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT '' ,
+  "ITEM_DEFINITION_ID_" VARCHAR2(255 BYTE) ,
+  "ITEM_DEFINITION_TYPE_" VARCHAR2(255 BYTE) ,
+  "IS_COMPLETEABLE_" NUMBER(1) ,
+  "IS_COUNT_ENABLED_" NUMBER(1) ,
+  "VAR_COUNT_" NUMBER ,
+  "SENTRY_PART_INST_COUNT_" NUMBER ,
+  "LAST_AVAILABLE_TIME_" TIMESTAMP(3) ,
+  "LAST_ENABLED_TIME_" TIMESTAMP(3) ,
+  "LAST_DISABLED_TIME_" TIMESTAMP(3) ,
+  "LAST_STARTED_TIME_" TIMESTAMP(3) ,
+  "LAST_SUSPENDED_TIME_" TIMESTAMP(3) ,
+  "COMPLETED_TIME_" TIMESTAMP(3) ,
+  "OCCURRED_TIME_" TIMESTAMP(3) ,
+  "TERMINATED_TIME_" TIMESTAMP(3) ,
+  "EXIT_TIME_" TIMESTAMP(3) ,
+  "ENDED_TIME_" TIMESTAMP(3) ,
+  "ENTRY_CRITERION_ID_" VARCHAR2(255 BYTE) ,
+  "EXIT_CRITERION_ID_" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_RU_SENTRY_PART_INST
+-- ----------------------------
+-- DROP TABLE "ACT_CMMN_RU_SENTRY_PART_INST";
+CREATE TABLE "ACT_CMMN_RU_SENTRY_PART_INST" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "REV_" NUMBER NOT NULL ,
+  "CASE_DEF_ID_" VARCHAR2(255 BYTE) ,
+  "CASE_INST_ID_" VARCHAR2(255 BYTE) ,
+  "PLAN_ITEM_INST_ID_" VARCHAR2(255 BYTE) ,
+  "ON_PART_ID_" VARCHAR2(255 BYTE) ,
+  "IF_PART_ID_" VARCHAR2(255 BYTE) ,
+  "TIME_STAMP_" TIMESTAMP(6)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_CO_CONTENT_ITEM
+-- ----------------------------
+-- DROP TABLE "ACT_CO_CONTENT_ITEM";
+CREATE TABLE "ACT_CO_CONTENT_ITEM" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) NOT NULL ,
+  "MIME_TYPE_" VARCHAR2(255 BYTE) ,
+  "TASK_ID_" VARCHAR2(255 BYTE) ,
+  "PROC_INST_ID_" VARCHAR2(255 BYTE) ,
+  "CONTENT_STORE_ID_" VARCHAR2(255 BYTE) ,
+  "CONTENT_STORE_NAME_" VARCHAR2(255 BYTE) ,
+  "FIELD_" VARCHAR2(400 BYTE) ,
+  "CONTENT_AVAILABLE_" NUMBER(1) DEFAULT 0 ,
+  "CREATED_" TIMESTAMP(6) ,
+  "CREATED_BY_" VARCHAR2(255 BYTE) ,
+  "LAST_MODIFIED_" TIMESTAMP(6) ,
+  "LAST_MODIFIED_BY_" VARCHAR2(255 BYTE) ,
+  "CONTENT_SIZE_" NUMBER(38) DEFAULT 0 ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) ,
+  "SCOPE_ID_" VARCHAR2(255 BYTE) ,
+  "SCOPE_TYPE_" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_CO_DATABASECHANGELOG
+-- ----------------------------
+-- DROP TABLE "ACT_CO_DATABASECHANGELOG";
+CREATE TABLE "ACT_CO_DATABASECHANGELOG" (
+  "ID" VARCHAR2(255 BYTE) NOT NULL ,
+  "AUTHOR" VARCHAR2(255 BYTE) NOT NULL ,
+  "FILENAME" VARCHAR2(255 BYTE) NOT NULL ,
+  "DATEEXECUTED" TIMESTAMP(6) NOT NULL ,
+  "ORDEREXECUTED" NUMBER NOT NULL ,
+  "EXECTYPE" VARCHAR2(10 BYTE) NOT NULL ,
+  "MD5SUM" VARCHAR2(35 BYTE) ,
+  "DESCRIPTION" VARCHAR2(255 BYTE) ,
+  "COMMENTS" VARCHAR2(255 BYTE) ,
+  "TAG" VARCHAR2(255 BYTE) ,
+  "LIQUIBASE" VARCHAR2(20 BYTE) ,
+  "CONTEXTS" VARCHAR2(255 BYTE) ,
+  "LABELS" VARCHAR2(255 BYTE) ,
+  "DEPLOYMENT_ID" VARCHAR2(10 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Records of ACT_CO_DATABASECHANGELOG
+-- ----------------------------
+INSERT INTO "ACT_CO_DATABASECHANGELOG" VALUES ('1', 'activiti', 'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:15.412866', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '8:7644d7165cfe799200a2abdd3419e8b6', 'createTable tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_taskid, tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_procid, tableName=ACT_CO_CONTENT_ITEM', NULL, NULL, '3.5.3', NULL, NULL, '9500492548');
+INSERT INTO "ACT_CO_DATABASECHANGELOG" VALUES ('2', 'flowable', 'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:59.614707', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '8:fe7b11ac7dbbf9c43006b23bbab60bab', 'addColumn tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_scope, tableName=ACT_CO_CONTENT_ITEM', NULL, NULL, '3.5.3', NULL, NULL, '9500492548');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_CO_DATABASECHANGELOGLOCK
+-- ----------------------------
+-- DROP TABLE "ACT_CO_DATABASECHANGELOGLOCK";
+CREATE TABLE "ACT_CO_DATABASECHANGELOGLOCK" (
+  "ID" NUMBER NOT NULL ,
+  "LOCKED" NUMBER(1) NOT NULL ,
+  "LOCKGRANTED" TIMESTAMP(6) ,
+  "LOCKEDBY" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Records of ACT_CO_DATABASECHANGELOGLOCK
+-- ----------------------------
+INSERT INTO "ACT_CO_DATABASECHANGELOGLOCK" VALUES ('1', '0', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_DE_DATABASECHANGELOG
+-- ----------------------------
+-- DROP TABLE "ACT_DE_DATABASECHANGELOG";
+CREATE TABLE "ACT_DE_DATABASECHANGELOG" (
+  "ID" VARCHAR2(255 BYTE) NOT NULL ,
+  "AUTHOR" VARCHAR2(255 BYTE) NOT NULL ,
+  "FILENAME" VARCHAR2(255 BYTE) NOT NULL ,
+  "DATEEXECUTED" TIMESTAMP(6) NOT NULL ,
+  "ORDEREXECUTED" NUMBER NOT NULL ,
+  "EXECTYPE" VARCHAR2(10 BYTE) NOT NULL ,
+  "MD5SUM" VARCHAR2(35 BYTE) ,
+  "DESCRIPTION" VARCHAR2(255 BYTE) ,
+  "COMMENTS" VARCHAR2(255 BYTE) ,
+  "TAG" VARCHAR2(255 BYTE) ,
+  "LIQUIBASE" VARCHAR2(20 BYTE) ,
+  "CONTEXTS" VARCHAR2(255 BYTE) ,
+  "LABELS" VARCHAR2(255 BYTE) ,
+  "DEPLOYMENT_ID" VARCHAR2(10 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Records of ACT_DE_DATABASECHANGELOG
+-- ----------------------------
+INSERT INTO "ACT_DE_DATABASECHANGELOG" VALUES ('1', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', TO_TIMESTAMP('2019-08-01 02:21:28.919681', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '8:e70d1d9d3899a734296b2514ccc71501', 'createTable tableName=ACT_DE_MODEL; createIndex indexName=idx_proc_mod_created, tableName=ACT_DE_MODEL; createTable tableName=ACT_DE_MODEL_HISTORY; createIndex indexName=idx_proc_mod_history_proc, tableName=ACT_DE_MODEL_HISTORY; createTable tableN...', NULL, NULL, '3.6.3', NULL, NULL, '4626087832');
+INSERT INTO "ACT_DE_DATABASECHANGELOG" VALUES ('3', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', TO_TIMESTAMP('2019-08-01 02:21:29.414387', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '8:3a9143bef2e45f2316231cc1369138b6', 'addColumn tableName=ACT_DE_MODEL; addColumn tableName=ACT_DE_MODEL_HISTORY', NULL, NULL, '3.6.3', NULL, NULL, '4626087832');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_DE_DATABASECHANGELOGLOCK
+-- ----------------------------
+-- DROP TABLE "ACT_DE_DATABASECHANGELOGLOCK";
+CREATE TABLE "ACT_DE_DATABASECHANGELOGLOCK" (
+  "ID" NUMBER NOT NULL ,
+  "LOCKED" NUMBER(1) NOT NULL ,
+  "LOCKGRANTED" TIMESTAMP(6) ,
+  "LOCKEDBY" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Records of ACT_DE_DATABASECHANGELOGLOCK
+-- ----------------------------
+INSERT INTO "ACT_DE_DATABASECHANGELOGLOCK" VALUES ('1', '0', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_DE_MODEL
+-- ----------------------------
+-- DROP TABLE "ACT_DE_MODEL";
+CREATE TABLE "ACT_DE_MODEL" (
+  "ID" VARCHAR2(255 BYTE) NOT NULL ,
+  "NAME" VARCHAR2(400 BYTE) NOT NULL ,
+  "MODEL_KEY" VARCHAR2(400 BYTE) NOT NULL ,
+  "DESCRIPTION" VARCHAR2(4000 BYTE) ,
+  "MODEL_COMMENT" VARCHAR2(4000 BYTE) ,
+  "CREATED" TIMESTAMP(6) ,
+  "CREATED_BY" VARCHAR2(255 BYTE) ,
+  "LAST_UPDATED" TIMESTAMP(6) ,
+  "LAST_UPDATED_BY" VARCHAR2(255 BYTE) ,
+  "VERSION" NUMBER ,
+  "MODEL_EDITOR_JSON" CLOB ,
+  "MODEL_EDITOR_XML" CLOB ,
+  "THUMBNAIL" BLOB ,
+  "MODEL_TYPE" NUMBER ,
+  "TENANT_ID" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_DE_MODEL_HISTORY
+-- ----------------------------
+-- DROP TABLE "ACT_DE_MODEL_HISTORY";
+CREATE TABLE "ACT_DE_MODEL_HISTORY" (
+  "ID" VARCHAR2(255 BYTE) NOT NULL ,
+  "NAME" VARCHAR2(400 BYTE) NOT NULL ,
+  "MODEL_KEY" VARCHAR2(400 BYTE) NOT NULL ,
+  "DESCRIPTION" VARCHAR2(4000 BYTE) ,
+  "MODEL_COMMENT" VARCHAR2(4000 BYTE) ,
+  "CREATED" TIMESTAMP(6) ,
+  "CREATED_BY" VARCHAR2(255 BYTE) ,
+  "LAST_UPDATED" TIMESTAMP(6) ,
+  "LAST_UPDATED_BY" VARCHAR2(255 BYTE) ,
+  "REMOVAL_DATE" TIMESTAMP(6) ,
+  "VERSION" NUMBER ,
+  "MODEL_EDITOR_JSON" CLOB ,
+  "MODEL_ID" VARCHAR2(255 BYTE) NOT NULL ,
+  "MODEL_TYPE" NUMBER ,
+  "TENANT_ID" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_DE_MODEL_RELATION
+-- ----------------------------
+-- DROP TABLE "ACT_DE_MODEL_RELATION";
+CREATE TABLE "ACT_DE_MODEL_RELATION" (
+  "ID" VARCHAR2(255 BYTE) NOT NULL ,
+  "PARENT_MODEL_ID" VARCHAR2(255 BYTE) ,
+  "MODEL_ID" VARCHAR2(255 BYTE) ,
+  "RELATION_TYPE" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_DMN_DATABASECHANGELOG
+-- ----------------------------
+-- DROP TABLE "ACT_DMN_DATABASECHANGELOG";
+CREATE TABLE "ACT_DMN_DATABASECHANGELOG" (
+  "ID" VARCHAR2(255 BYTE) NOT NULL ,
+  "AUTHOR" VARCHAR2(255 BYTE) NOT NULL ,
+  "FILENAME" VARCHAR2(255 BYTE) NOT NULL ,
+  "DATEEXECUTED" TIMESTAMP(6) NOT NULL ,
+  "ORDEREXECUTED" NUMBER NOT NULL ,
+  "EXECTYPE" VARCHAR2(10 BYTE) NOT NULL ,
+  "MD5SUM" VARCHAR2(35 BYTE) ,
+  "DESCRIPTION" VARCHAR2(255 BYTE) ,
+  "COMMENTS" VARCHAR2(255 BYTE) ,
+  "TAG" VARCHAR2(255 BYTE) ,
+  "LIQUIBASE" VARCHAR2(20 BYTE) ,
+  "CONTEXTS" VARCHAR2(255 BYTE) ,
+  "LABELS" VARCHAR2(255 BYTE) ,
+  "DEPLOYMENT_ID" VARCHAR2(10 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Records of ACT_DMN_DATABASECHANGELOG
+-- ----------------------------
+INSERT INTO "ACT_DMN_DATABASECHANGELOG" VALUES ('1', 'activiti', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:09.445285', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '8:c8701f1c71018b55029f450b2e9a10a1', 'createTable tableName=ACT_DMN_DEPLOYMENT; createTable tableName=ACT_DMN_DEPLOYMENT_RESOURCE; createTable tableName=ACT_DMN_DECISION_TABLE', NULL, NULL, '3.5.3', NULL, NULL, '9500490105');
+INSERT INTO "ACT_DMN_DATABASECHANGELOG" VALUES ('2', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:09.548377', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '8:47f94b27feb7df8a30d4e338c7bd5fb8', 'createTable tableName=ACT_DMN_HI_DECISION_EXECUTION', NULL, NULL, '3.5.3', NULL, NULL, '9500490105');
+INSERT INTO "ACT_DMN_DATABASECHANGELOG" VALUES ('3', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:09.617030', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '3', 'EXECUTED', '8:ac17eae89fbdccb6e08daf3c7797b579', 'addColumn tableName=ACT_DMN_HI_DECISION_EXECUTION', NULL, NULL, '3.5.3', NULL, NULL, '9500490105');
+INSERT INTO "ACT_DMN_DATABASECHANGELOG" VALUES ('4', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:10.086703', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '4', 'EXECUTED', '8:f73aabc4529e7292c2942073d1cff6f9', 'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_DMN_DECISION_TABLE', NULL, NULL, '3.5.3', NULL, NULL, '9500490105');
+INSERT INTO "ACT_DMN_DATABASECHANGELOG" VALUES ('6', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:10.165065', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '5', 'EXECUTED', '8:646c6a061e0b6e8a62e69844ff96abb0', 'createIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE', NULL, NULL, '3.5.3', NULL, NULL, '9500490105');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_DMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+-- DROP TABLE "ACT_DMN_DATABASECHANGELOGLOCK";
+CREATE TABLE "ACT_DMN_DATABASECHANGELOGLOCK" (
+  "ID" NUMBER NOT NULL ,
+  "LOCKED" NUMBER(1) NOT NULL ,
+  "LOCKGRANTED" TIMESTAMP(6) ,
+  "LOCKEDBY" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Records of ACT_DMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+INSERT INTO "ACT_DMN_DATABASECHANGELOGLOCK" VALUES ('1', '0', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_DMN_DECISION_TABLE
+-- ----------------------------
+-- DROP TABLE "ACT_DMN_DECISION_TABLE";
+CREATE TABLE "ACT_DMN_DECISION_TABLE" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "VERSION_" NUMBER ,
+  "KEY_" VARCHAR2(255 BYTE) ,
+  "CATEGORY_" VARCHAR2(255 BYTE) ,
+  "DEPLOYMENT_ID_" VARCHAR2(255 BYTE) ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) ,
+  "RESOURCE_NAME_" VARCHAR2(255 BYTE) ,
+  "DESCRIPTION_" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_DMN_DEPLOYMENT
+-- ----------------------------
+-- DROP TABLE "ACT_DMN_DEPLOYMENT";
+CREATE TABLE "ACT_DMN_DEPLOYMENT" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "CATEGORY_" VARCHAR2(255 BYTE) ,
+  "DEPLOY_TIME_" TIMESTAMP(6) ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) ,
+  "PARENT_DEPLOYMENT_ID_" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_DMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+-- DROP TABLE "ACT_DMN_DEPLOYMENT_RESOURCE";
+CREATE TABLE "ACT_DMN_DEPLOYMENT_RESOURCE" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "DEPLOYMENT_ID_" VARCHAR2(255 BYTE) ,
+  "RESOURCE_BYTES_" BLOB
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_DMN_HI_DECISION_EXECUTION
+-- ----------------------------
+-- DROP TABLE "ACT_DMN_HI_DECISION_EXECUTION";
+CREATE TABLE "ACT_DMN_HI_DECISION_EXECUTION" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "DECISION_DEFINITION_ID_" VARCHAR2(255 BYTE) ,
+  "DEPLOYMENT_ID_" VARCHAR2(255 BYTE) ,
+  "START_TIME_" TIMESTAMP(6) ,
+  "END_TIME_" TIMESTAMP(6) ,
+  "INSTANCE_ID_" VARCHAR2(255 BYTE) ,
+  "EXECUTION_ID_" VARCHAR2(255 BYTE) ,
+  "ACTIVITY_ID_" VARCHAR2(255 BYTE) ,
+  "FAILED_" NUMBER(1) DEFAULT 0 ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) ,
+  "EXECUTION_JSON_" CLOB ,
+  "SCOPE_TYPE_" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_EVT_LOG
+-- ----------------------------
+-- DROP TABLE "ACT_EVT_LOG";
+CREATE TABLE "ACT_EVT_LOG" (
+  "LOG_NR_" NUMBER(19) NOT NULL ,
+  "TYPE_" NVARCHAR2(64) ,
+  "PROC_DEF_ID_" NVARCHAR2(64) ,
+  "PROC_INST_ID_" NVARCHAR2(64) ,
+  "EXECUTION_ID_" NVARCHAR2(64) ,
+  "TASK_ID_" NVARCHAR2(64) ,
+  "TIME_STAMP_" TIMESTAMP(6) NOT NULL ,
+  "USER_ID_" NVARCHAR2(255) ,
+  "DATA_" BLOB ,
+  "LOCK_OWNER_" NVARCHAR2(255) ,
+  "LOCK_TIME_" TIMESTAMP(6) ,
+  "IS_PROCESSED_" NUMBER(3) DEFAULT 0
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_FO_DATABASECHANGELOG
+-- ----------------------------
+-- DROP TABLE "ACT_FO_DATABASECHANGELOG";
+CREATE TABLE "ACT_FO_DATABASECHANGELOG" (
+  "ID" VARCHAR2(255 BYTE) NOT NULL ,
+  "AUTHOR" VARCHAR2(255 BYTE) NOT NULL ,
+  "FILENAME" VARCHAR2(255 BYTE) NOT NULL ,
+  "DATEEXECUTED" TIMESTAMP(6) NOT NULL ,
+  "ORDEREXECUTED" NUMBER NOT NULL ,
+  "EXECTYPE" VARCHAR2(10 BYTE) NOT NULL ,
+  "MD5SUM" VARCHAR2(35 BYTE) ,
+  "DESCRIPTION" VARCHAR2(255 BYTE) ,
+  "COMMENTS" VARCHAR2(255 BYTE) ,
+  "TAG" VARCHAR2(255 BYTE) ,
+  "LIQUIBASE" VARCHAR2(20 BYTE) ,
+  "CONTEXTS" VARCHAR2(255 BYTE) ,
+  "LABELS" VARCHAR2(255 BYTE) ,
+  "DEPLOYMENT_ID" VARCHAR2(10 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Records of ACT_FO_DATABASECHANGELOG
+-- ----------------------------
+INSERT INTO "ACT_FO_DATABASECHANGELOG" VALUES ('1', 'activiti', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:10.875144', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '8:033ebf9380889aed7c453927ecc3250d', 'createTable tableName=ACT_FO_FORM_DEPLOYMENT; createTable tableName=ACT_FO_FORM_RESOURCE; createTable tableName=ACT_FO_FORM_DEFINITION; createTable tableName=ACT_FO_FORM_INSTANCE', NULL, NULL, '3.5.3', NULL, NULL, '9500491442');
+INSERT INTO "ACT_FO_DATABASECHANGELOG" VALUES ('2', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:11.176570', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '8:986365ceb40445ce3b27a8e6b40f159b', 'addColumn tableName=ACT_FO_FORM_INSTANCE', NULL, NULL, '3.5.3', NULL, NULL, '9500491442');
+INSERT INTO "ACT_FO_DATABASECHANGELOG" VALUES ('3', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:13.571387', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '3', 'EXECUTED', '8:abf482518ceb09830ef674e52c06bf15', 'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_FO_FORM_DEFINITION', NULL, NULL, '3.5.3', NULL, NULL, '9500491442');
+INSERT INTO "ACT_FO_DATABASECHANGELOG" VALUES ('5', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:13.675232', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '4', 'EXECUTED', '8:b4be732b89e5ca028bdd520c6ad4d446', 'createIndex indexName=ACT_IDX_FORM_DEF_UNIQ, tableName=ACT_FO_FORM_DEFINITION', NULL, NULL, '3.5.3', NULL, NULL, '9500491442');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_FO_DATABASECHANGELOGLOCK
+-- ----------------------------
+-- DROP TABLE "ACT_FO_DATABASECHANGELOGLOCK";
+CREATE TABLE "ACT_FO_DATABASECHANGELOGLOCK" (
+  "ID" NUMBER NOT NULL ,
+  "LOCKED" NUMBER(1) NOT NULL ,
+  "LOCKGRANTED" TIMESTAMP(6) ,
+  "LOCKEDBY" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Records of ACT_FO_DATABASECHANGELOGLOCK
+-- ----------------------------
+INSERT INTO "ACT_FO_DATABASECHANGELOGLOCK" VALUES ('1', '0', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_FO_FORM_DEFINITION
+-- ----------------------------
+-- DROP TABLE "ACT_FO_FORM_DEFINITION";
+CREATE TABLE "ACT_FO_FORM_DEFINITION" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "VERSION_" NUMBER ,
+  "KEY_" VARCHAR2(255 BYTE) ,
+  "CATEGORY_" VARCHAR2(255 BYTE) ,
+  "DEPLOYMENT_ID_" VARCHAR2(255 BYTE) ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) ,
+  "RESOURCE_NAME_" VARCHAR2(255 BYTE) ,
+  "DESCRIPTION_" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_FO_FORM_DEPLOYMENT
+-- ----------------------------
+-- DROP TABLE "ACT_FO_FORM_DEPLOYMENT";
+CREATE TABLE "ACT_FO_FORM_DEPLOYMENT" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "CATEGORY_" VARCHAR2(255 BYTE) ,
+  "DEPLOY_TIME_" TIMESTAMP(6) ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) ,
+  "PARENT_DEPLOYMENT_ID_" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_FO_FORM_INSTANCE
+-- ----------------------------
+-- DROP TABLE "ACT_FO_FORM_INSTANCE";
+CREATE TABLE "ACT_FO_FORM_INSTANCE" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "FORM_DEFINITION_ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "TASK_ID_" VARCHAR2(255 BYTE) ,
+  "PROC_INST_ID_" VARCHAR2(255 BYTE) ,
+  "PROC_DEF_ID_" VARCHAR2(255 BYTE) ,
+  "SUBMITTED_DATE_" TIMESTAMP(6) ,
+  "SUBMITTED_BY_" VARCHAR2(255 BYTE) ,
+  "FORM_VALUES_ID_" VARCHAR2(255 BYTE) ,
+  "TENANT_ID_" VARCHAR2(255 BYTE) ,
+  "SCOPE_ID_" VARCHAR2(255 BYTE) ,
+  "SCOPE_TYPE_" VARCHAR2(255 BYTE) ,
+  "SCOPE_DEFINITION_ID_" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_FO_FORM_RESOURCE
+-- ----------------------------
+-- DROP TABLE "ACT_FO_FORM_RESOURCE";
+CREATE TABLE "ACT_FO_FORM_RESOURCE" (
+  "ID_" VARCHAR2(255 BYTE) NOT NULL ,
+  "NAME_" VARCHAR2(255 BYTE) ,
+  "DEPLOYMENT_ID_" VARCHAR2(255 BYTE) ,
+  "RESOURCE_BYTES_" BLOB
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_GE_BYTEARRAY
+-- ----------------------------
+-- DROP TABLE "ACT_GE_BYTEARRAY";
+CREATE TABLE "ACT_GE_BYTEARRAY" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "NAME_" NVARCHAR2(255) ,
+  "DEPLOYMENT_ID_" NVARCHAR2(64) ,
+  "BYTES_" BLOB ,
+  "GENERATED_" NUMBER(1)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_GE_PROPERTY
+-- ----------------------------
+-- DROP TABLE "ACT_GE_PROPERTY";
+CREATE TABLE "ACT_GE_PROPERTY" (
+  "NAME_" NVARCHAR2(64) NOT NULL ,
+  "VALUE_" NVARCHAR2(300) ,
+  "REV_" NUMBER
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Records of ACT_GE_PROPERTY
+-- ----------------------------
+INSERT INTO "ACT_GE_PROPERTY" VALUES ('common.schema.version', '6.5.0.1', '1');
+INSERT INTO "ACT_GE_PROPERTY" VALUES ('next.dbid', '1', '1');
+INSERT INTO "ACT_GE_PROPERTY" VALUES ('entitylink.schema.version', '6.5.0.1', '1');
+INSERT INTO "ACT_GE_PROPERTY" VALUES ('identitylink.schema.version', '6.5.0.1', '1');
+INSERT INTO "ACT_GE_PROPERTY" VALUES ('job.schema.version', '6.5.0.1', '1');
+INSERT INTO "ACT_GE_PROPERTY" VALUES ('task.schema.version', '6.5.0.1', '1');
+INSERT INTO "ACT_GE_PROPERTY" VALUES ('variable.schema.version', '6.5.0.1', '1');
+INSERT INTO "ACT_GE_PROPERTY" VALUES ('eventsubscription.schema.version', '6.5.0.1', '1');
+INSERT INTO "ACT_GE_PROPERTY" VALUES ('schema.version', '6.5.0.1', '1');
+INSERT INTO "ACT_GE_PROPERTY" VALUES ('schema.history', 'create(6.5.0.1)', '1');
+INSERT INTO "ACT_GE_PROPERTY" VALUES ('cfg.execution-related-entities-count', 'true', '1');
+INSERT INTO "ACT_GE_PROPERTY" VALUES ('cfg.task-related-entities-count', 'true', '1');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_HI_ACTINST
+-- ----------------------------
+-- DROP TABLE "ACT_HI_ACTINST";
+CREATE TABLE "ACT_HI_ACTINST" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER DEFAULT 1 ,
+  "PROC_DEF_ID_" NVARCHAR2(64) NOT NULL ,
+  "PROC_INST_ID_" NVARCHAR2(64) NOT NULL ,
+  "EXECUTION_ID_" NVARCHAR2(64) NOT NULL ,
+  "ACT_ID_" NVARCHAR2(255) NOT NULL ,
+  "TASK_ID_" NVARCHAR2(64) ,
+  "CALL_PROC_INST_ID_" NVARCHAR2(64) ,
+  "ACT_NAME_" NVARCHAR2(255) ,
+  "ACT_TYPE_" NVARCHAR2(255) NOT NULL ,
+  "ASSIGNEE_" NVARCHAR2(255) ,
+  "START_TIME_" TIMESTAMP(6) NOT NULL ,
+  "END_TIME_" TIMESTAMP(6) ,
+  "DURATION_" NUMBER(19) ,
+  "DELETE_REASON_" NVARCHAR2(2000) ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_HI_ATTACHMENT
+-- ----------------------------
+-- DROP TABLE "ACT_HI_ATTACHMENT";
+CREATE TABLE "ACT_HI_ATTACHMENT" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "USER_ID_" NVARCHAR2(255) ,
+  "NAME_" NVARCHAR2(255) ,
+  "DESCRIPTION_" NVARCHAR2(2000) ,
+  "TYPE_" NVARCHAR2(255) ,
+  "TASK_ID_" NVARCHAR2(64) ,
+  "PROC_INST_ID_" NVARCHAR2(64) ,
+  "URL_" NVARCHAR2(2000) ,
+  "CONTENT_ID_" NVARCHAR2(64) ,
+  "TIME_" TIMESTAMP(6)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_HI_COMMENT
+-- ----------------------------
+-- DROP TABLE "ACT_HI_COMMENT";
+CREATE TABLE "ACT_HI_COMMENT" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "TYPE_" NVARCHAR2(255) ,
+  "TIME_" TIMESTAMP(6) NOT NULL ,
+  "USER_ID_" NVARCHAR2(255) ,
+  "TASK_ID_" NVARCHAR2(64) ,
+  "PROC_INST_ID_" NVARCHAR2(64) ,
+  "ACTION_" NVARCHAR2(255) ,
+  "MESSAGE_" NVARCHAR2(2000) ,
+  "FULL_MSG_" BLOB
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_HI_DETAIL
+-- ----------------------------
+-- DROP TABLE "ACT_HI_DETAIL";
+CREATE TABLE "ACT_HI_DETAIL" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "TYPE_" NVARCHAR2(255) NOT NULL ,
+  "PROC_INST_ID_" NVARCHAR2(64) ,
+  "EXECUTION_ID_" NVARCHAR2(64) ,
+  "TASK_ID_" NVARCHAR2(64) ,
+  "ACT_INST_ID_" NVARCHAR2(64) ,
+  "NAME_" NVARCHAR2(255) NOT NULL ,
+  "VAR_TYPE_" NVARCHAR2(64) ,
+  "REV_" NUMBER ,
+  "TIME_" TIMESTAMP(6) NOT NULL ,
+  "BYTEARRAY_ID_" NVARCHAR2(64) ,
+  "DOUBLE_" NUMBER ,
+  "LONG_" NUMBER(19) ,
+  "TEXT_" NVARCHAR2(2000) ,
+  "TEXT2_" NVARCHAR2(2000)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_HI_ENTITYLINK
+-- ----------------------------
+-- DROP TABLE "ACT_HI_ENTITYLINK";
+CREATE TABLE "ACT_HI_ENTITYLINK" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "LINK_TYPE_" NVARCHAR2(255) ,
+  "CREATE_TIME_" TIMESTAMP(6) ,
+  "SCOPE_ID_" NVARCHAR2(255) ,
+  "SCOPE_TYPE_" NVARCHAR2(255) ,
+  "SCOPE_DEFINITION_ID_" NVARCHAR2(255) ,
+  "REF_SCOPE_ID_" NVARCHAR2(255) ,
+  "REF_SCOPE_TYPE_" NVARCHAR2(255) ,
+  "REF_SCOPE_DEFINITION_ID_" NVARCHAR2(255) ,
+  "HIERARCHY_TYPE_" NVARCHAR2(255)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_HI_IDENTITYLINK
+-- ----------------------------
+-- DROP TABLE "ACT_HI_IDENTITYLINK";
+CREATE TABLE "ACT_HI_IDENTITYLINK" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "GROUP_ID_" NVARCHAR2(255) ,
+  "TYPE_" NVARCHAR2(255) ,
+  "USER_ID_" NVARCHAR2(255) ,
+  "TASK_ID_" NVARCHAR2(64) ,
+  "CREATE_TIME_" TIMESTAMP(6) ,
+  "PROC_INST_ID_" NVARCHAR2(64) ,
+  "SCOPE_ID_" NVARCHAR2(255) ,
+  "SCOPE_TYPE_" NVARCHAR2(255) ,
+  "SCOPE_DEFINITION_ID_" NVARCHAR2(255)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_HI_PROCINST
+-- ----------------------------
+-- DROP TABLE "ACT_HI_PROCINST";
+CREATE TABLE "ACT_HI_PROCINST" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER DEFAULT 1 ,
+  "PROC_INST_ID_" NVARCHAR2(64) NOT NULL ,
+  "BUSINESS_KEY_" NVARCHAR2(255) ,
+  "PROC_DEF_ID_" NVARCHAR2(64) NOT NULL ,
+  "START_TIME_" TIMESTAMP(6) NOT NULL ,
+  "END_TIME_" TIMESTAMP(6) ,
+  "DURATION_" NUMBER(19) ,
+  "START_USER_ID_" NVARCHAR2(255) ,
+  "START_ACT_ID_" NVARCHAR2(255) ,
+  "END_ACT_ID_" NVARCHAR2(255) ,
+  "SUPER_PROCESS_INSTANCE_ID_" NVARCHAR2(64) ,
+  "DELETE_REASON_" NVARCHAR2(2000) ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT '' ,
+  "NAME_" NVARCHAR2(255) ,
+  "CALLBACK_ID_" NVARCHAR2(255) ,
+  "CALLBACK_TYPE_" NVARCHAR2(255)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_HI_TASKINST
+-- ----------------------------
+-- DROP TABLE "ACT_HI_TASKINST";
+CREATE TABLE "ACT_HI_TASKINST" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER DEFAULT 1 ,
+  "PROC_DEF_ID_" NVARCHAR2(64) ,
+  "TASK_DEF_ID_" NVARCHAR2(64) ,
+  "TASK_DEF_KEY_" NVARCHAR2(255) ,
+  "PROC_INST_ID_" NVARCHAR2(64) ,
+  "EXECUTION_ID_" NVARCHAR2(64) ,
+  "SCOPE_ID_" NVARCHAR2(255) ,
+  "SUB_SCOPE_ID_" NVARCHAR2(255) ,
+  "SCOPE_TYPE_" NVARCHAR2(255) ,
+  "SCOPE_DEFINITION_ID_" NVARCHAR2(255) ,
+  "PARENT_TASK_ID_" NVARCHAR2(64) ,
+  "NAME_" NVARCHAR2(255) ,
+  "DESCRIPTION_" NVARCHAR2(2000) ,
+  "OWNER_" NVARCHAR2(255) ,
+  "ASSIGNEE_" NVARCHAR2(255) ,
+  "START_TIME_" TIMESTAMP(6) NOT NULL ,
+  "CLAIM_TIME_" TIMESTAMP(6) ,
+  "END_TIME_" TIMESTAMP(6) ,
+  "DURATION_" NUMBER(19) ,
+  "DELETE_REASON_" NVARCHAR2(2000) ,
+  "PRIORITY_" NUMBER ,
+  "DUE_DATE_" TIMESTAMP(6) ,
+  "FORM_KEY_" NVARCHAR2(255) ,
+  "CATEGORY_" NVARCHAR2(255) ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT '' ,
+  "LAST_UPDATED_TIME_" TIMESTAMP(6)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_HI_TSK_LOG
+-- ----------------------------
+-- DROP TABLE "ACT_HI_TSK_LOG";
+CREATE TABLE "ACT_HI_TSK_LOG" (
+  "ID_" NUMBER(19) NOT NULL ,
+  "TYPE_" NVARCHAR2(64) ,
+  "TASK_ID_" NVARCHAR2(64) NOT NULL ,
+  "TIME_STAMP_" TIMESTAMP(6) NOT NULL ,
+  "USER_ID_" NVARCHAR2(255) ,
+  "DATA_" NVARCHAR2(2000) ,
+  "EXECUTION_ID_" NVARCHAR2(64) ,
+  "PROC_INST_ID_" NVARCHAR2(64) ,
+  "PROC_DEF_ID_" NVARCHAR2(64) ,
+  "SCOPE_ID_" NVARCHAR2(255) ,
+  "SCOPE_DEFINITION_ID_" NVARCHAR2(255) ,
+  "SUB_SCOPE_ID_" NVARCHAR2(255) ,
+  "SCOPE_TYPE_" NVARCHAR2(255) ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_HI_VARINST
+-- ----------------------------
+-- DROP TABLE "ACT_HI_VARINST";
+CREATE TABLE "ACT_HI_VARINST" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER DEFAULT 1 ,
+  "PROC_INST_ID_" NVARCHAR2(64) ,
+  "EXECUTION_ID_" NVARCHAR2(64) ,
+  "TASK_ID_" NVARCHAR2(64) ,
+  "NAME_" NVARCHAR2(255) NOT NULL ,
+  "VAR_TYPE_" NVARCHAR2(100) ,
+  "SCOPE_ID_" NVARCHAR2(255) ,
+  "SUB_SCOPE_ID_" NVARCHAR2(255) ,
+  "SCOPE_TYPE_" NVARCHAR2(255) ,
+  "BYTEARRAY_ID_" NVARCHAR2(64) ,
+  "DOUBLE_" NUMBER ,
+  "LONG_" NUMBER(19) ,
+  "TEXT_" NVARCHAR2(2000) ,
+  "TEXT2_" NVARCHAR2(2000) ,
+  "CREATE_TIME_" TIMESTAMP(6) ,
+  "LAST_UPDATED_TIME_" TIMESTAMP(6)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_ID_BYTEARRAY
+-- ----------------------------
+-- DROP TABLE "ACT_ID_BYTEARRAY";
+CREATE TABLE "ACT_ID_BYTEARRAY" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "NAME_" NVARCHAR2(255) ,
+  "BYTES_" BLOB
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_ID_GROUP
+-- ----------------------------
+-- DROP TABLE "ACT_ID_GROUP";
+CREATE TABLE "ACT_ID_GROUP" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "NAME_" NVARCHAR2(255) ,
+  "TYPE_" NVARCHAR2(255)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_ID_INFO
+-- ----------------------------
+-- DROP TABLE "ACT_ID_INFO";
+CREATE TABLE "ACT_ID_INFO" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "USER_ID_" NVARCHAR2(64) ,
+  "TYPE_" NVARCHAR2(64) ,
+  "KEY_" NVARCHAR2(255) ,
+  "VALUE_" NVARCHAR2(255) ,
+  "PASSWORD_" BLOB ,
+  "PARENT_ID_" NVARCHAR2(255)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_ID_MEMBERSHIP
+-- ----------------------------
+-- DROP TABLE "ACT_ID_MEMBERSHIP";
+CREATE TABLE "ACT_ID_MEMBERSHIP" (
+  "USER_ID_" NVARCHAR2(64) NOT NULL ,
+  "GROUP_ID_" NVARCHAR2(64) NOT NULL
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_ID_PRIV
+-- ----------------------------
+-- DROP TABLE "ACT_ID_PRIV";
+CREATE TABLE "ACT_ID_PRIV" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "NAME_" NVARCHAR2(255) NOT NULL
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_ID_PRIV_MAPPING
+-- ----------------------------
+-- DROP TABLE "ACT_ID_PRIV_MAPPING";
+CREATE TABLE "ACT_ID_PRIV_MAPPING" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "PRIV_ID_" NVARCHAR2(64) NOT NULL ,
+  "USER_ID_" NVARCHAR2(255) ,
+  "GROUP_ID_" NVARCHAR2(255)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_ID_PROPERTY
+-- ----------------------------
+-- DROP TABLE "ACT_ID_PROPERTY";
+CREATE TABLE "ACT_ID_PROPERTY" (
+  "NAME_" NVARCHAR2(64) NOT NULL ,
+  "VALUE_" NVARCHAR2(300) ,
+  "REV_" NUMBER
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Records of ACT_ID_PROPERTY
+-- ----------------------------
+INSERT INTO "ACT_ID_PROPERTY" VALUES ('schema.version', '6.5.0.1', '1');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for ACT_ID_TOKEN
+-- ----------------------------
+-- DROP TABLE "ACT_ID_TOKEN";
+CREATE TABLE "ACT_ID_TOKEN" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "TOKEN_VALUE_" NVARCHAR2(255) ,
+  "TOKEN_DATE_" TIMESTAMP(6) ,
+  "IP_ADDRESS_" NVARCHAR2(255) ,
+  "USER_AGENT_" NVARCHAR2(255) ,
+  "USER_ID_" NVARCHAR2(255) ,
+  "TOKEN_DATA_" NVARCHAR2(2000)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_ID_USER
+-- ----------------------------
+-- DROP TABLE "ACT_ID_USER";
+CREATE TABLE "ACT_ID_USER" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "FIRST_" NVARCHAR2(255) ,
+  "LAST_" NVARCHAR2(255) ,
+  "DISPLAY_NAME_" NVARCHAR2(255) ,
+  "EMAIL_" NVARCHAR2(255) ,
+  "PWD_" NVARCHAR2(255) ,
+  "PICTURE_ID_" NVARCHAR2(64) ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_PROCDEF_INFO
+-- ----------------------------
+-- DROP TABLE "ACT_PROCDEF_INFO";
+CREATE TABLE "ACT_PROCDEF_INFO" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "PROC_DEF_ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "INFO_JSON_ID_" NVARCHAR2(64)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_RE_DEPLOYMENT
+-- ----------------------------
+-- DROP TABLE "ACT_RE_DEPLOYMENT";
+CREATE TABLE "ACT_RE_DEPLOYMENT" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "NAME_" NVARCHAR2(255) ,
+  "CATEGORY_" NVARCHAR2(255) ,
+  "KEY_" NVARCHAR2(255) ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT '' ,
+  "DEPLOY_TIME_" TIMESTAMP(6) ,
+  "DERIVED_FROM_" NVARCHAR2(64) ,
+  "DERIVED_FROM_ROOT_" NVARCHAR2(64) ,
+  "PARENT_DEPLOYMENT_ID_" NVARCHAR2(255) ,
+  "ENGINE_VERSION_" NVARCHAR2(255)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_RE_MODEL
+-- ----------------------------
+-- DROP TABLE "ACT_RE_MODEL";
+CREATE TABLE "ACT_RE_MODEL" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "NAME_" NVARCHAR2(255) ,
+  "KEY_" NVARCHAR2(255) ,
+  "CATEGORY_" NVARCHAR2(255) ,
+  "CREATE_TIME_" TIMESTAMP(6) ,
+  "LAST_UPDATE_TIME_" TIMESTAMP(6) ,
+  "VERSION_" NUMBER ,
+  "META_INFO_" NVARCHAR2(2000) ,
+  "DEPLOYMENT_ID_" NVARCHAR2(64) ,
+  "EDITOR_SOURCE_VALUE_ID_" NVARCHAR2(64) ,
+  "EDITOR_SOURCE_EXTRA_VALUE_ID_" NVARCHAR2(64) ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_RE_PROCDEF
+-- ----------------------------
+-- DROP TABLE "ACT_RE_PROCDEF";
+CREATE TABLE "ACT_RE_PROCDEF" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "CATEGORY_" NVARCHAR2(255) ,
+  "NAME_" NVARCHAR2(255) ,
+  "KEY_" NVARCHAR2(255) NOT NULL ,
+  "VERSION_" NUMBER NOT NULL ,
+  "DEPLOYMENT_ID_" NVARCHAR2(64) ,
+  "RESOURCE_NAME_" NVARCHAR2(2000) ,
+  "DGRM_RESOURCE_NAME_" VARCHAR2(4000 BYTE) ,
+  "DESCRIPTION_" NVARCHAR2(2000) ,
+  "HAS_START_FORM_KEY_" NUMBER(1) ,
+  "HAS_GRAPHICAL_NOTATION_" NUMBER(1) ,
+  "SUSPENSION_STATE_" NUMBER ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT '' ,
+  "DERIVED_FROM_" NVARCHAR2(64) ,
+  "DERIVED_FROM_ROOT_" NVARCHAR2(64) ,
+  "DERIVED_VERSION_" NUMBER DEFAULT 0  NOT NULL ,
+  "ENGINE_VERSION_" NVARCHAR2(255)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_RU_ACTINST
+-- ----------------------------
+-- DROP TABLE "ACT_RU_ACTINST";
+CREATE TABLE "ACT_RU_ACTINST" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER DEFAULT 1 ,
+  "PROC_DEF_ID_" NVARCHAR2(64) NOT NULL ,
+  "PROC_INST_ID_" NVARCHAR2(64) NOT NULL ,
+  "EXECUTION_ID_" NVARCHAR2(64) NOT NULL ,
+  "ACT_ID_" NVARCHAR2(255) NOT NULL ,
+  "TASK_ID_" NVARCHAR2(64) ,
+  "CALL_PROC_INST_ID_" NVARCHAR2(64) ,
+  "ACT_NAME_" NVARCHAR2(255) ,
+  "ACT_TYPE_" NVARCHAR2(255) NOT NULL ,
+  "ASSIGNEE_" NVARCHAR2(255) ,
+  "START_TIME_" TIMESTAMP(6) NOT NULL ,
+  "END_TIME_" TIMESTAMP(6) ,
+  "DURATION_" NUMBER(19) ,
+  "DELETE_REASON_" NVARCHAR2(2000) ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_RU_DEADLETTER_JOB
+-- ----------------------------
+-- DROP TABLE "ACT_RU_DEADLETTER_JOB";
+CREATE TABLE "ACT_RU_DEADLETTER_JOB" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "TYPE_" NVARCHAR2(255) NOT NULL ,
+  "EXCLUSIVE_" NUMBER(1) ,
+  "EXECUTION_ID_" NVARCHAR2(64) ,
+  "PROCESS_INSTANCE_ID_" NVARCHAR2(64) ,
+  "PROC_DEF_ID_" NVARCHAR2(64) ,
+  "ELEMENT_ID_" NVARCHAR2(255) ,
+  "ELEMENT_NAME_" NVARCHAR2(255) ,
+  "SCOPE_ID_" NVARCHAR2(255) ,
+  "SUB_SCOPE_ID_" NVARCHAR2(255) ,
+  "SCOPE_TYPE_" NVARCHAR2(255) ,
+  "SCOPE_DEFINITION_ID_" NVARCHAR2(255) ,
+  "EXCEPTION_STACK_ID_" NVARCHAR2(64) ,
+  "EXCEPTION_MSG_" NVARCHAR2(2000) ,
+  "DUEDATE_" TIMESTAMP(6) ,
+  "REPEAT_" NVARCHAR2(255) ,
+  "HANDLER_TYPE_" NVARCHAR2(255) ,
+  "HANDLER_CFG_" NVARCHAR2(2000) ,
+  "CUSTOM_VALUES_ID_" NVARCHAR2(64) ,
+  "CREATE_TIME_" TIMESTAMP(6) ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_RU_ENTITYLINK
+-- ----------------------------
+-- DROP TABLE "ACT_RU_ENTITYLINK";
+CREATE TABLE "ACT_RU_ENTITYLINK" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "CREATE_TIME_" TIMESTAMP(6) ,
+  "LINK_TYPE_" NVARCHAR2(255) ,
+  "SCOPE_ID_" NVARCHAR2(255) ,
+  "SCOPE_TYPE_" NVARCHAR2(255) ,
+  "SCOPE_DEFINITION_ID_" NVARCHAR2(255) ,
+  "REF_SCOPE_ID_" NVARCHAR2(255) ,
+  "REF_SCOPE_TYPE_" NVARCHAR2(255) ,
+  "REF_SCOPE_DEFINITION_ID_" NVARCHAR2(255) ,
+  "HIERARCHY_TYPE_" NVARCHAR2(255)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_RU_EVENT_SUBSCR
+-- ----------------------------
+-- DROP TABLE "ACT_RU_EVENT_SUBSCR";
+CREATE TABLE "ACT_RU_EVENT_SUBSCR" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "EVENT_TYPE_" NVARCHAR2(255) NOT NULL ,
+  "EVENT_NAME_" NVARCHAR2(255) ,
+  "EXECUTION_ID_" NVARCHAR2(64) ,
+  "PROC_INST_ID_" NVARCHAR2(64) ,
+  "ACTIVITY_ID_" NVARCHAR2(64) ,
+  "CONFIGURATION_" NVARCHAR2(255) ,
+  "CREATED_" TIMESTAMP(6) NOT NULL ,
+  "PROC_DEF_ID_" NVARCHAR2(64) ,
+  "SUB_SCOPE_ID_" NVARCHAR2(64) ,
+  "SCOPE_ID_" NVARCHAR2(64) ,
+  "SCOPE_DEFINITION_ID_" NVARCHAR2(64) ,
+  "SCOPE_TYPE_" NVARCHAR2(64) ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_RU_EXECUTION
+-- ----------------------------
+-- DROP TABLE "ACT_RU_EXECUTION";
+CREATE TABLE "ACT_RU_EXECUTION" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "PROC_INST_ID_" NVARCHAR2(64) ,
+  "BUSINESS_KEY_" NVARCHAR2(255) ,
+  "PARENT_ID_" NVARCHAR2(64) ,
+  "PROC_DEF_ID_" NVARCHAR2(64) ,
+  "SUPER_EXEC_" NVARCHAR2(64) ,
+  "ROOT_PROC_INST_ID_" NVARCHAR2(64) ,
+  "ACT_ID_" NVARCHAR2(255) ,
+  "IS_ACTIVE_" NUMBER(1) ,
+  "IS_CONCURRENT_" NUMBER(1) ,
+  "IS_SCOPE_" NUMBER(1) ,
+  "IS_EVENT_SCOPE_" NUMBER(1) ,
+  "IS_MI_ROOT_" NUMBER(1) ,
+  "SUSPENSION_STATE_" NUMBER ,
+  "CACHED_ENT_STATE_" NUMBER ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT '' ,
+  "NAME_" NVARCHAR2(255) ,
+  "START_ACT_ID_" NVARCHAR2(255) ,
+  "START_TIME_" TIMESTAMP(6) ,
+  "START_USER_ID_" NVARCHAR2(255) ,
+  "LOCK_TIME_" TIMESTAMP(6) ,
+  "IS_COUNT_ENABLED_" NUMBER(1) ,
+  "EVT_SUBSCR_COUNT_" NUMBER ,
+  "TASK_COUNT_" NUMBER ,
+  "JOB_COUNT_" NUMBER ,
+  "TIMER_JOB_COUNT_" NUMBER ,
+  "SUSP_JOB_COUNT_" NUMBER ,
+  "DEADLETTER_JOB_COUNT_" NUMBER ,
+  "VAR_COUNT_" NUMBER ,
+  "ID_LINK_COUNT_" NUMBER ,
+  "CALLBACK_ID_" NVARCHAR2(255) ,
+  "CALLBACK_TYPE_" NVARCHAR2(255)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_RU_HISTORY_JOB
+-- ----------------------------
+-- DROP TABLE "ACT_RU_HISTORY_JOB";
+CREATE TABLE "ACT_RU_HISTORY_JOB" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "LOCK_EXP_TIME_" TIMESTAMP(6) ,
+  "LOCK_OWNER_" NVARCHAR2(255) ,
+  "RETRIES_" NUMBER ,
+  "EXCEPTION_STACK_ID_" NVARCHAR2(64) ,
+  "EXCEPTION_MSG_" NVARCHAR2(2000) ,
+  "HANDLER_TYPE_" NVARCHAR2(255) ,
+  "HANDLER_CFG_" NVARCHAR2(2000) ,
+  "CUSTOM_VALUES_ID_" NVARCHAR2(64) ,
+  "ADV_HANDLER_CFG_ID_" NVARCHAR2(64) ,
+  "CREATE_TIME_" TIMESTAMP(6) ,
+  "SCOPE_TYPE_" NVARCHAR2(255) ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_RU_IDENTITYLINK
+-- ----------------------------
+-- DROP TABLE "ACT_RU_IDENTITYLINK";
+CREATE TABLE "ACT_RU_IDENTITYLINK" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "GROUP_ID_" NVARCHAR2(255) ,
+  "TYPE_" NVARCHAR2(255) ,
+  "USER_ID_" NVARCHAR2(255) ,
+  "TASK_ID_" NVARCHAR2(64) ,
+  "PROC_INST_ID_" NVARCHAR2(64) ,
+  "PROC_DEF_ID_" NVARCHAR2(64) ,
+  "SCOPE_ID_" NVARCHAR2(255) ,
+  "SCOPE_TYPE_" NVARCHAR2(255) ,
+  "SCOPE_DEFINITION_ID_" NVARCHAR2(255)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_RU_JOB
+-- ----------------------------
+-- DROP TABLE "ACT_RU_JOB";
+CREATE TABLE "ACT_RU_JOB" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "TYPE_" NVARCHAR2(255) NOT NULL ,
+  "LOCK_EXP_TIME_" TIMESTAMP(6) ,
+  "LOCK_OWNER_" NVARCHAR2(255) ,
+  "EXCLUSIVE_" NUMBER(1) ,
+  "EXECUTION_ID_" NVARCHAR2(64) ,
+  "PROCESS_INSTANCE_ID_" NVARCHAR2(64) ,
+  "PROC_DEF_ID_" NVARCHAR2(64) ,
+  "ELEMENT_ID_" NVARCHAR2(255) ,
+  "ELEMENT_NAME_" NVARCHAR2(255) ,
+  "SCOPE_ID_" NVARCHAR2(255) ,
+  "SUB_SCOPE_ID_" NVARCHAR2(255) ,
+  "SCOPE_TYPE_" NVARCHAR2(255) ,
+  "SCOPE_DEFINITION_ID_" NVARCHAR2(255) ,
+  "RETRIES_" NUMBER ,
+  "EXCEPTION_STACK_ID_" NVARCHAR2(64) ,
+  "EXCEPTION_MSG_" NVARCHAR2(2000) ,
+  "DUEDATE_" TIMESTAMP(6) ,
+  "REPEAT_" NVARCHAR2(255) ,
+  "HANDLER_TYPE_" NVARCHAR2(255) ,
+  "HANDLER_CFG_" NVARCHAR2(2000) ,
+  "CUSTOM_VALUES_ID_" NVARCHAR2(64) ,
+  "CREATE_TIME_" TIMESTAMP(6) ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_RU_SUSPENDED_JOB
+-- ----------------------------
+-- DROP TABLE "ACT_RU_SUSPENDED_JOB";
+CREATE TABLE "ACT_RU_SUSPENDED_JOB" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "TYPE_" NVARCHAR2(255) NOT NULL ,
+  "EXCLUSIVE_" NUMBER(1) ,
+  "EXECUTION_ID_" NVARCHAR2(64) ,
+  "PROCESS_INSTANCE_ID_" NVARCHAR2(64) ,
+  "PROC_DEF_ID_" NVARCHAR2(64) ,
+  "ELEMENT_ID_" NVARCHAR2(255) ,
+  "ELEMENT_NAME_" NVARCHAR2(255) ,
+  "SCOPE_ID_" NVARCHAR2(255) ,
+  "SUB_SCOPE_ID_" NVARCHAR2(255) ,
+  "SCOPE_TYPE_" NVARCHAR2(255) ,
+  "SCOPE_DEFINITION_ID_" NVARCHAR2(255) ,
+  "RETRIES_" NUMBER ,
+  "EXCEPTION_STACK_ID_" NVARCHAR2(64) ,
+  "EXCEPTION_MSG_" NVARCHAR2(2000) ,
+  "DUEDATE_" TIMESTAMP(6) ,
+  "REPEAT_" NVARCHAR2(255) ,
+  "HANDLER_TYPE_" NVARCHAR2(255) ,
+  "HANDLER_CFG_" NVARCHAR2(2000) ,
+  "CUSTOM_VALUES_ID_" NVARCHAR2(64) ,
+  "CREATE_TIME_" TIMESTAMP(6) ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_RU_TASK
+-- ----------------------------
+-- DROP TABLE "ACT_RU_TASK";
+CREATE TABLE "ACT_RU_TASK" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "EXECUTION_ID_" NVARCHAR2(64) ,
+  "PROC_INST_ID_" NVARCHAR2(64) ,
+  "PROC_DEF_ID_" NVARCHAR2(64) ,
+  "TASK_DEF_ID_" NVARCHAR2(64) ,
+  "SCOPE_ID_" NVARCHAR2(255) ,
+  "SUB_SCOPE_ID_" NVARCHAR2(255) ,
+  "SCOPE_TYPE_" NVARCHAR2(255) ,
+  "SCOPE_DEFINITION_ID_" NVARCHAR2(255) ,
+  "NAME_" NVARCHAR2(255) ,
+  "PARENT_TASK_ID_" NVARCHAR2(64) ,
+  "DESCRIPTION_" NVARCHAR2(2000) ,
+  "TASK_DEF_KEY_" NVARCHAR2(255) ,
+  "OWNER_" NVARCHAR2(255) ,
+  "ASSIGNEE_" NVARCHAR2(255) ,
+  "DELEGATION_" NVARCHAR2(64) ,
+  "PRIORITY_" NUMBER ,
+  "CREATE_TIME_" TIMESTAMP(6) ,
+  "DUE_DATE_" TIMESTAMP(6) ,
+  "CATEGORY_" NVARCHAR2(255) ,
+  "SUSPENSION_STATE_" NUMBER ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT '' ,
+  "FORM_KEY_" NVARCHAR2(255) ,
+  "CLAIM_TIME_" TIMESTAMP(6) ,
+  "IS_COUNT_ENABLED_" NUMBER(1) ,
+  "VAR_COUNT_" NUMBER ,
+  "ID_LINK_COUNT_" NUMBER ,
+  "SUB_TASK_COUNT_" NUMBER
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_RU_TIMER_JOB
+-- ----------------------------
+-- DROP TABLE "ACT_RU_TIMER_JOB";
+CREATE TABLE "ACT_RU_TIMER_JOB" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "TYPE_" NVARCHAR2(255) NOT NULL ,
+  "LOCK_EXP_TIME_" TIMESTAMP(6) ,
+  "LOCK_OWNER_" NVARCHAR2(255) ,
+  "EXCLUSIVE_" NUMBER(1) ,
+  "EXECUTION_ID_" NVARCHAR2(64) ,
+  "PROCESS_INSTANCE_ID_" NVARCHAR2(64) ,
+  "PROC_DEF_ID_" NVARCHAR2(64) ,
+  "ELEMENT_ID_" NVARCHAR2(255) ,
+  "ELEMENT_NAME_" NVARCHAR2(255) ,
+  "SCOPE_ID_" NVARCHAR2(255) ,
+  "SUB_SCOPE_ID_" NVARCHAR2(255) ,
+  "SCOPE_TYPE_" NVARCHAR2(255) ,
+  "SCOPE_DEFINITION_ID_" NVARCHAR2(255) ,
+  "RETRIES_" NUMBER ,
+  "EXCEPTION_STACK_ID_" NVARCHAR2(64) ,
+  "EXCEPTION_MSG_" NVARCHAR2(2000) ,
+  "DUEDATE_" TIMESTAMP(6) ,
+  "REPEAT_" NVARCHAR2(255) ,
+  "HANDLER_TYPE_" NVARCHAR2(255) ,
+  "HANDLER_CFG_" NVARCHAR2(2000) ,
+  "CUSTOM_VALUES_ID_" NVARCHAR2(64) ,
+  "CREATE_TIME_" TIMESTAMP(6) ,
+  "TENANT_ID_" NVARCHAR2(255) DEFAULT ''
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Table structure for ACT_RU_VARIABLE
+-- ----------------------------
+-- DROP TABLE "ACT_RU_VARIABLE";
+CREATE TABLE "ACT_RU_VARIABLE" (
+  "ID_" NVARCHAR2(64) NOT NULL ,
+  "REV_" NUMBER ,
+  "TYPE_" NVARCHAR2(255) NOT NULL ,
+  "NAME_" NVARCHAR2(255) NOT NULL ,
+  "EXECUTION_ID_" NVARCHAR2(64) ,
+  "PROC_INST_ID_" NVARCHAR2(64) ,
+  "TASK_ID_" NVARCHAR2(64) ,
+  "SCOPE_ID_" NVARCHAR2(255) ,
+  "SUB_SCOPE_ID_" NVARCHAR2(255) ,
+  "SCOPE_TYPE_" NVARCHAR2(255) ,
+  "BYTEARRAY_ID_" NVARCHAR2(64) ,
+  "DOUBLE_" NUMBER ,
+  "LONG_" NUMBER(19) ,
+  "TEXT_" NVARCHAR2(2000) ,
+  "TEXT2_" NVARCHAR2(2000)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+
+-- ----------------------------
+-- Sequence structure for ACT_EVT_LOG_SEQ
+-- ----------------------------
+DROP SEQUENCE "ACT_EVT_LOG_SEQ";
+CREATE SEQUENCE "ACT_EVT_LOG_SEQ" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 CACHE 20;
+
+-- ----------------------------
+-- Sequence structure for ACT_HI_TASK_EVT_LOG_SEQ
+-- ----------------------------
+DROP SEQUENCE "ACT_HI_TASK_EVT_LOG_SEQ";
+CREATE SEQUENCE "ACT_HI_TASK_EVT_LOG_SEQ" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 CACHE 20;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_APP_APPDEF
+-- ----------------------------
+ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "PK_ACT_APP_APPDEF" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_APP_APPDEF
+-- ----------------------------
+ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0015409" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0015410" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0015411" CHECK ("KEY_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0015412" CHECK ("VERSION_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_APP_APPDEF
+-- ----------------------------
+CREATE INDEX "ACT_IDX_APP_DEF_DPLY"
+  ON "ACT_APP_APPDEF" ("DEPLOYMENT_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE UNIQUE INDEX "ACT_IDX_APP_DEF_UNIQ"
+  ON "ACT_APP_APPDEF" ("VERSION_" ASC, "TENANT_ID_" ASC, "KEY_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Checks structure for table ACT_APP_DATABASECHANGELOG
+-- ----------------------------
+ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015398" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015399" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015400" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015401" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015402" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015403" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_APP_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE "ACT_APP_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_APP_DATABASECHANGELOGLO" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table ACT_APP_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE "ACT_APP_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015395" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_APP_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015396" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_APP_DEPLOYMENT
+-- ----------------------------
+ALTER TABLE "ACT_APP_DEPLOYMENT" ADD CONSTRAINT "PK_ACT_APP_DEPLOYMENT" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_APP_DEPLOYMENT
+-- ----------------------------
+ALTER TABLE "ACT_APP_DEPLOYMENT" ADD CONSTRAINT "SYS_C0015404" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_APP_DEPLOYMENT_RESOURCE
+-- ----------------------------
+ALTER TABLE "ACT_APP_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "PK_APP_DEPLOYMENT_RESOURCE" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_APP_DEPLOYMENT_RESOURCE
+-- ----------------------------
+ALTER TABLE "ACT_APP_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "SYS_C0015406" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_APP_DEPLOYMENT_RESOURCE
+-- ----------------------------
+CREATE INDEX "ACT_IDX_APP_RSRC_DPL"
+  ON "ACT_APP_DEPLOYMENT_RESOURCE" ("DEPLOYMENT_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_CASEDEF
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "PK_ACT_CMMN_CASEDEF" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_CMMN_CASEDEF
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0015429" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0015430" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0015431" CHECK ("KEY_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0015432" CHECK ("VERSION_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_CMMN_CASEDEF
+-- ----------------------------
+CREATE INDEX "ACT_IDX_CASE_DEF_DPLY"
+  ON "ACT_CMMN_CASEDEF" ("DEPLOYMENT_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE UNIQUE INDEX "ACT_IDX_CASE_DEF_UNIQ"
+  ON "ACT_CMMN_CASEDEF" ("TENANT_ID_" ASC, "KEY_" ASC, "VERSION_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Checks structure for table ACT_CMMN_DATABASECHANGELOG
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015418" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015419" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015420" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015421" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015422" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015423" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_CMMN_DATABASECHANGELOGL" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table ACT_CMMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015415" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015416" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_DEPLOYMENT
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_DEPLOYMENT" ADD CONSTRAINT "PK_ACT_CMMN_DEPLOYMENT" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_CMMN_DEPLOYMENT
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_DEPLOYMENT" ADD CONSTRAINT "SYS_C0015424" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "PK_CMMN_DEPLOYMENT_RESOURCE" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_CMMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "SYS_C0015426" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_CMMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+CREATE INDEX "ACT_IDX_CMMN_RSRC_DPL"
+  ON "ACT_CMMN_DEPLOYMENT_RESOURCE" ("DEPLOYMENT_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_HI_CASE_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_HI_CASE_INST" ADD CONSTRAINT "PK_ACT_CMMN_HI_CASE_INST" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_CMMN_HI_CASE_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_HI_CASE_INST" ADD CONSTRAINT "SYS_C0015459" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_HI_CASE_INST" ADD CONSTRAINT "SYS_C0015460" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_HI_MIL_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "PK_ACT_CMMN_HI_MIL_INST" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_CMMN_HI_MIL_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015462" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015463" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015464" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015465" CHECK ("TIME_STAMP_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015466" CHECK ("CASE_INST_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015467" CHECK ("CASE_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015468" CHECK ("ELEMENT_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_HI_PLAN_ITEM_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" ADD CONSTRAINT "PK_ACT_CMMN_HI_PLAN_ITEM_INST" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_CMMN_HI_PLAN_ITEM_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0015470" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0015471" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_RU_CASE_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT "PK_ACT_CMMN_RU_CASE_INST" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_CMMN_RU_CASE_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT "SYS_C0015435" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT "SYS_C0015436" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_CMMN_RU_CASE_INST
+-- ----------------------------
+CREATE INDEX "ACT_IDX_CASE_INST_CASE_DEF"
+  ON "ACT_CMMN_RU_CASE_INST" ("CASE_DEF_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_CASE_INST_PARENT"
+  ON "ACT_CMMN_RU_CASE_INST" ("PARENT_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_RU_MIL_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "PK_ACT_CMMN_RU_MIL_INST" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_CMMN_RU_MIL_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015450" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015451" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015452" CHECK ("TIME_STAMP_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015453" CHECK ("CASE_INST_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015454" CHECK ("CASE_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015455" CHECK ("ELEMENT_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_CMMN_RU_MIL_INST
+-- ----------------------------
+CREATE INDEX "ACT_IDX_MIL_CASE_DEF"
+  ON "ACT_CMMN_RU_MIL_INST" ("CASE_DEF_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_MIL_CASE_INST"
+  ON "ACT_CMMN_RU_MIL_INST" ("CASE_INST_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_RU_PLAN_ITEM_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "PK_CMMN_PLAN_ITEM_INST" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_CMMN_RU_PLAN_ITEM_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0015439" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0015440" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_CMMN_RU_PLAN_ITEM_INST
+-- ----------------------------
+CREATE INDEX "ACT_IDX_PLAN_ITEM_CASE_DEF"
+  ON "ACT_CMMN_RU_PLAN_ITEM_INST" ("CASE_DEF_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_PLAN_ITEM_CASE_INST"
+  ON "ACT_CMMN_RU_PLAN_ITEM_INST" ("CASE_INST_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_PLAN_ITEM_STAGE_INST"
+  ON "ACT_CMMN_RU_PLAN_ITEM_INST" ("STAGE_INST_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_RU_SENTRY_PART_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "PK_CMMN_SENTRY_PART_INST" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_CMMN_RU_SENTRY_PART_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "SYS_C0015444" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "SYS_C0015445" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_CMMN_RU_SENTRY_PART_INST
+-- ----------------------------
+CREATE INDEX "ACT_IDX_SENTRY_CASE_DEF"
+  ON "ACT_CMMN_RU_SENTRY_PART_INST" ("CASE_DEF_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_SENTRY_CASE_INST"
+  ON "ACT_CMMN_RU_SENTRY_PART_INST" ("CASE_INST_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_SENTRY_PLAN_ITEM"
+  ON "ACT_CMMN_RU_SENTRY_PART_INST" ("PLAN_ITEM_INST_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CO_CONTENT_ITEM
+-- ----------------------------
+ALTER TABLE "ACT_CO_CONTENT_ITEM" ADD CONSTRAINT "PK_ACT_CO_CONTENT_ITEM" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_CO_CONTENT_ITEM
+-- ----------------------------
+ALTER TABLE "ACT_CO_CONTENT_ITEM" ADD CONSTRAINT "SYS_C0015517" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CO_CONTENT_ITEM" ADD CONSTRAINT "SYS_C0015518" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_CO_CONTENT_ITEM
+-- ----------------------------
+CREATE INDEX "IDX_CONTITEM_PROCID"
+  ON "ACT_CO_CONTENT_ITEM" ("PROC_INST_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "IDX_CONTITEM_SCOPE"
+  ON "ACT_CO_CONTENT_ITEM" ("SCOPE_TYPE_" ASC, "SCOPE_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "IDX_CONTITEM_TASKID"
+  ON "ACT_CO_CONTENT_ITEM" ("TASK_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Checks structure for table ACT_CO_DATABASECHANGELOG
+-- ----------------------------
+ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015511" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015512" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015513" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015514" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015515" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015516" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CO_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE "ACT_CO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_CO_DATABASECHANGELOGLOC" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table ACT_CO_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE "ACT_CO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015508" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015509" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Checks structure for table ACT_DE_DATABASECHANGELOG
+-- ----------------------------
+ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015523" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015524" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015525" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015526" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015527" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015528" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DE_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE "ACT_DE_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_DE_DATABASECHANGELOGLOC" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table ACT_DE_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE "ACT_DE_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015520" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DE_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015521" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DE_MODEL
+-- ----------------------------
+ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "PK_ACT_DE_MODEL" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table ACT_DE_MODEL
+-- ----------------------------
+ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "SYS_C0015529" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "SYS_C0015530" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "SYS_C0015531" CHECK ("MODEL_KEY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_DE_MODEL
+-- ----------------------------
+CREATE INDEX "IDX_PROC_MOD_CREATED"
+  ON "ACT_DE_MODEL" ("CREATED_BY" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DE_MODEL_HISTORY
+-- ----------------------------
+ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "PK_ACT_DE_MODEL_HISTORY" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table ACT_DE_MODEL_HISTORY
+-- ----------------------------
+ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0015533" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0015534" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0015535" CHECK ("MODEL_KEY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0015536" CHECK ("MODEL_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_DE_MODEL_HISTORY
+-- ----------------------------
+CREATE INDEX "IDX_PROC_MOD_HISTORY_PROC"
+  ON "ACT_DE_MODEL_HISTORY" ("MODEL_ID" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DE_MODEL_RELATION
+-- ----------------------------
+ALTER TABLE "ACT_DE_MODEL_RELATION" ADD CONSTRAINT "PK_ACT_DE_MODEL_RELATION" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table ACT_DE_MODEL_RELATION
+-- ----------------------------
+ALTER TABLE "ACT_DE_MODEL_RELATION" ADD CONSTRAINT "SYS_C0015538" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Checks structure for table ACT_DMN_DATABASECHANGELOG
+-- ----------------------------
+ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015476" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015477" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015478" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015479" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015480" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015481" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE "ACT_DMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_DMN_DATABASECHANGELOGLO" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table ACT_DMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE "ACT_DMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015473" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015474" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DMN_DECISION_TABLE
+-- ----------------------------
+ALTER TABLE "ACT_DMN_DECISION_TABLE" ADD CONSTRAINT "PK_ACT_DMN_DECISION_TABLE" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_DMN_DECISION_TABLE
+-- ----------------------------
+ALTER TABLE "ACT_DMN_DECISION_TABLE" ADD CONSTRAINT "SYS_C0015486" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_DMN_DECISION_TABLE
+-- ----------------------------
+CREATE UNIQUE INDEX "ACT_IDX_DEC_TBL_UNIQ"
+  ON "ACT_DMN_DECISION_TABLE" ("KEY_" ASC, "TENANT_ID_" ASC, "VERSION_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DMN_DEPLOYMENT
+-- ----------------------------
+ALTER TABLE "ACT_DMN_DEPLOYMENT" ADD CONSTRAINT "PK_ACT_DMN_DEPLOYMENT" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_DMN_DEPLOYMENT
+-- ----------------------------
+ALTER TABLE "ACT_DMN_DEPLOYMENT" ADD CONSTRAINT "SYS_C0015482" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+ALTER TABLE "ACT_DMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "PK_ACT_DMN_DEPLOYMENT_RESOURCE" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_DMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+ALTER TABLE "ACT_DMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "SYS_C0015484" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DMN_HI_DECISION_EXECUTION
+-- ----------------------------
+ALTER TABLE "ACT_DMN_HI_DECISION_EXECUTION" ADD CONSTRAINT "PK_ACT_DMN_HI_DECISION_EXECUTI" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_DMN_HI_DECISION_EXECUTION
+-- ----------------------------
+ALTER TABLE "ACT_DMN_HI_DECISION_EXECUTION" ADD CONSTRAINT "SYS_C0015488" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_EVT_LOG
+-- ----------------------------
+ALTER TABLE "ACT_EVT_LOG" ADD CONSTRAINT "SYS_C0015308" PRIMARY KEY ("LOG_NR_");
+
+-- ----------------------------
+-- Checks structure for table ACT_EVT_LOG
+-- ----------------------------
+ALTER TABLE "ACT_EVT_LOG" ADD CONSTRAINT "SYS_C0015307" CHECK ("TIME_STAMP_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Checks structure for table ACT_FO_DATABASECHANGELOG
+-- ----------------------------
+ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015493" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015494" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015495" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015496" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015497" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015498" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_FO_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE "ACT_FO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_FO_DATABASECHANGELOGLOC" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table ACT_FO_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE "ACT_FO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015490" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_FO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015491" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_FO_FORM_DEFINITION
+-- ----------------------------
+ALTER TABLE "ACT_FO_FORM_DEFINITION" ADD CONSTRAINT "PK_ACT_FO_FORM_DEFINITION" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_FO_FORM_DEFINITION
+-- ----------------------------
+ALTER TABLE "ACT_FO_FORM_DEFINITION" ADD CONSTRAINT "SYS_C0015503" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_FO_FORM_DEFINITION
+-- ----------------------------
+CREATE UNIQUE INDEX "ACT_IDX_FORM_DEF_UNIQ"
+  ON "ACT_FO_FORM_DEFINITION" ("KEY_" ASC, "TENANT_ID_" ASC, "VERSION_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_FO_FORM_DEPLOYMENT
+-- ----------------------------
+ALTER TABLE "ACT_FO_FORM_DEPLOYMENT" ADD CONSTRAINT "PK_ACT_FO_FORM_DEPLOYMENT" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_FO_FORM_DEPLOYMENT
+-- ----------------------------
+ALTER TABLE "ACT_FO_FORM_DEPLOYMENT" ADD CONSTRAINT "SYS_C0015499" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_FO_FORM_INSTANCE
+-- ----------------------------
+ALTER TABLE "ACT_FO_FORM_INSTANCE" ADD CONSTRAINT "PK_ACT_FO_FORM_INSTANCE" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_FO_FORM_INSTANCE
+-- ----------------------------
+ALTER TABLE "ACT_FO_FORM_INSTANCE" ADD CONSTRAINT "SYS_C0015505" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_FO_FORM_INSTANCE" ADD CONSTRAINT "SYS_C0015506" CHECK ("FORM_DEFINITION_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_FO_FORM_RESOURCE
+-- ----------------------------
+ALTER TABLE "ACT_FO_FORM_RESOURCE" ADD CONSTRAINT "PK_ACT_FO_FORM_RESOURCE" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_FO_FORM_RESOURCE
+-- ----------------------------
+ALTER TABLE "ACT_FO_FORM_RESOURCE" ADD CONSTRAINT "SYS_C0015501" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_GE_BYTEARRAY
+-- ----------------------------
+ALTER TABLE "ACT_GE_BYTEARRAY" ADD CONSTRAINT "SYS_C0015239" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_GE_BYTEARRAY
+-- ----------------------------
+ALTER TABLE "ACT_GE_BYTEARRAY" ADD CONSTRAINT "SYS_C0015238" CHECK (GENERATED_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_GE_BYTEARRAY
+-- ----------------------------
+CREATE INDEX "ACT_IDX_BYTEAR_DEPL"
+  ON "ACT_GE_BYTEARRAY" ("DEPLOYMENT_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_GE_PROPERTY
+-- ----------------------------
+ALTER TABLE "ACT_GE_PROPERTY" ADD CONSTRAINT "SYS_C0015237" PRIMARY KEY ("NAME_");
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_ACTINST
+-- ----------------------------
+ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015366" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_HI_ACTINST
+-- ----------------------------
+ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015359" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015360" CHECK ("PROC_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015361" CHECK ("PROC_INST_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015362" CHECK ("EXECUTION_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015363" CHECK ("ACT_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015364" CHECK ("ACT_TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015365" CHECK ("START_TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_HI_ACTINST
+-- ----------------------------
+CREATE INDEX "ACT_IDX_HI_ACT_INST_END"
+  ON "ACT_HI_ACTINST" ("END_TIME_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_ACT_INST_EXEC"
+  ON "ACT_HI_ACTINST" ("EXECUTION_ID_" ASC, "ACT_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_ACT_INST_PROCINST"
+  ON "ACT_HI_ACTINST" ("PROC_INST_ID_" ASC, "ACT_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_ACT_INST_START"
+  ON "ACT_HI_ACTINST" ("START_TIME_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_ATTACHMENT
+-- ----------------------------
+ALTER TABLE "ACT_HI_ATTACHMENT" ADD CONSTRAINT "SYS_C0015376" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_HI_ATTACHMENT
+-- ----------------------------
+ALTER TABLE "ACT_HI_ATTACHMENT" ADD CONSTRAINT "SYS_C0015375" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_COMMENT
+-- ----------------------------
+ALTER TABLE "ACT_HI_COMMENT" ADD CONSTRAINT "SYS_C0015374" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_HI_COMMENT
+-- ----------------------------
+ALTER TABLE "ACT_HI_COMMENT" ADD CONSTRAINT "SYS_C0015372" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_COMMENT" ADD CONSTRAINT "SYS_C0015373" CHECK ("TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_DETAIL
+-- ----------------------------
+ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0015371" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_HI_DETAIL
+-- ----------------------------
+ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0015367" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0015368" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0015369" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0015370" CHECK ("TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_HI_DETAIL
+-- ----------------------------
+CREATE INDEX "ACT_IDX_HI_DETAIL_ACT_INST"
+  ON "ACT_HI_DETAIL" ("ACT_INST_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_DETAIL_NAME"
+  ON "ACT_HI_DETAIL" ("NAME_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_DETAIL_PROC_INST"
+  ON "ACT_HI_DETAIL" ("PROC_INST_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_DETAIL_TASK_ID"
+  ON "ACT_HI_DETAIL" ("TASK_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_DETAIL_TIME"
+  ON "ACT_HI_DETAIL" ("TIME_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_ENTITYLINK
+-- ----------------------------
+ALTER TABLE "ACT_HI_ENTITYLINK" ADD CONSTRAINT "SYS_C0015241" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Indexes structure for table ACT_HI_ENTITYLINK
+-- ----------------------------
+CREATE INDEX "ACT_IDX_HI_ENT_LNK_SCOPE"
+  ON "ACT_HI_ENTITYLINK" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC, "LINK_TYPE_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_ENT_LNK_SCOPE_DEF"
+  ON "ACT_HI_ENTITYLINK" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC, "LINK_TYPE_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_IDENTITYLINK
+-- ----------------------------
+ALTER TABLE "ACT_HI_IDENTITYLINK" ADD CONSTRAINT "SYS_C0015243" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Indexes structure for table ACT_HI_IDENTITYLINK
+-- ----------------------------
+CREATE INDEX "ACT_IDX_HI_IDENT_LNK_PROCINST"
+  ON "ACT_HI_IDENTITYLINK" ("PROC_INST_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_IDENT_LNK_SCOPE"
+  ON "ACT_HI_IDENTITYLINK" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_IDENT_LNK_SCOPE_DEF"
+  ON "ACT_HI_IDENTITYLINK" ("SCOPE_TYPE_" ASC, "SCOPE_DEFINITION_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_IDENT_LNK_TASK"
+  ON "ACT_HI_IDENTITYLINK" ("TASK_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_IDENT_LNK_USER"
+  ON "ACT_HI_IDENTITYLINK" ("USER_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_PROCINST
+-- ----------------------------
+ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015357" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Uniques structure for table ACT_HI_PROCINST
+-- ----------------------------
+ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015358" UNIQUE ("PROC_INST_ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Checks structure for table ACT_HI_PROCINST
+-- ----------------------------
+ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015353" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015354" CHECK ("PROC_INST_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015355" CHECK ("PROC_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015356" CHECK ("START_TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_HI_PROCINST
+-- ----------------------------
+CREATE INDEX "ACT_IDX_HI_PRO_INST_END"
+  ON "ACT_HI_PROCINST" ("END_TIME_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_PRO_I_BUSKEY"
+  ON "ACT_HI_PROCINST" ("BUSINESS_KEY_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_TASKINST
+-- ----------------------------
+ALTER TABLE "ACT_HI_TASKINST" ADD CONSTRAINT "SYS_C0015274" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_HI_TASKINST
+-- ----------------------------
+ALTER TABLE "ACT_HI_TASKINST" ADD CONSTRAINT "SYS_C0015272" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_TASKINST" ADD CONSTRAINT "SYS_C0015273" CHECK ("START_TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_HI_TASKINST
+-- ----------------------------
+CREATE INDEX "ACT_IDX_HI_TASK_INST_PROCINST"
+  ON "ACT_HI_TASKINST" ("PROC_INST_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_TASK_SCOPE"
+  ON "ACT_HI_TASKINST" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_TASK_SCOPE_DEF"
+  ON "ACT_HI_TASKINST" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_TASK_SUB_SCOPE"
+  ON "ACT_HI_TASKINST" ("SCOPE_TYPE_" ASC, "SUB_SCOPE_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_TSK_LOG
+-- ----------------------------
+ALTER TABLE "ACT_HI_TSK_LOG" ADD CONSTRAINT "SYS_C0015277" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_HI_TSK_LOG
+-- ----------------------------
+ALTER TABLE "ACT_HI_TSK_LOG" ADD CONSTRAINT "SYS_C0015275" CHECK ("TASK_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_TSK_LOG" ADD CONSTRAINT "SYS_C0015276" CHECK ("TIME_STAMP_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_VARINST
+-- ----------------------------
+ALTER TABLE "ACT_HI_VARINST" ADD CONSTRAINT "SYS_C0015285" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_HI_VARINST
+-- ----------------------------
+ALTER TABLE "ACT_HI_VARINST" ADD CONSTRAINT "SYS_C0015283" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_HI_VARINST" ADD CONSTRAINT "SYS_C0015284" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_HI_VARINST
+-- ----------------------------
+CREATE INDEX "ACT_IDX_HI_PROCVAR_EXE"
+  ON "ACT_HI_VARINST" ("EXECUTION_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_PROCVAR_NAME_TYPE"
+  ON "ACT_HI_VARINST" ("VAR_TYPE_" ASC, "NAME_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_PROCVAR_PROC_INST"
+  ON "ACT_HI_VARINST" ("PROC_INST_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_PROCVAR_TASK_ID"
+  ON "ACT_HI_VARINST" ("TASK_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_VAR_SCOPE_ID_TYPE"
+  ON "ACT_HI_VARINST" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_HI_VAR_SUB_ID_TYPE"
+  ON "ACT_HI_VARINST" ("SUB_SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_BYTEARRAY
+-- ----------------------------
+ALTER TABLE "ACT_ID_BYTEARRAY" ADD CONSTRAINT "SYS_C0015378" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_GROUP
+-- ----------------------------
+ALTER TABLE "ACT_ID_GROUP" ADD CONSTRAINT "SYS_C0015379" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_INFO
+-- ----------------------------
+ALTER TABLE "ACT_ID_INFO" ADD CONSTRAINT "SYS_C0015382" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_MEMBERSHIP
+-- ----------------------------
+ALTER TABLE "ACT_ID_MEMBERSHIP" ADD CONSTRAINT "SYS_C0015380" PRIMARY KEY ("USER_ID_", "GROUP_ID_");
+
+-- ----------------------------
+-- Indexes structure for table ACT_ID_MEMBERSHIP
+-- ----------------------------
+CREATE INDEX "ACT_IDX_MEMB_GROUP"
+  ON "ACT_ID_MEMBERSHIP" ("GROUP_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_MEMB_USER"
+  ON "ACT_ID_MEMBERSHIP" ("USER_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_PRIV
+-- ----------------------------
+ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "SYS_C0015387" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Uniques structure for table ACT_ID_PRIV
+-- ----------------------------
+ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "ACT_UNIQ_PRIV_NAME" UNIQUE ("NAME_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Checks structure for table ACT_ID_PRIV
+-- ----------------------------
+ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "SYS_C0015385" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "SYS_C0015386" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_PRIV_MAPPING
+-- ----------------------------
+ALTER TABLE "ACT_ID_PRIV_MAPPING" ADD CONSTRAINT "SYS_C0015390" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_ID_PRIV_MAPPING
+-- ----------------------------
+ALTER TABLE "ACT_ID_PRIV_MAPPING" ADD CONSTRAINT "SYS_C0015388" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_ID_PRIV_MAPPING" ADD CONSTRAINT "SYS_C0015389" CHECK ("PRIV_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_ID_PRIV_MAPPING
+-- ----------------------------
+CREATE INDEX "ACT_IDX_PRIV_GROUP"
+  ON "ACT_ID_PRIV_MAPPING" ("GROUP_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_PRIV_MAPPING"
+  ON "ACT_ID_PRIV_MAPPING" ("PRIV_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_PRIV_USER"
+  ON "ACT_ID_PRIV_MAPPING" ("USER_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_PROPERTY
+-- ----------------------------
+ALTER TABLE "ACT_ID_PROPERTY" ADD CONSTRAINT "SYS_C0015377" PRIMARY KEY ("NAME_");
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_TOKEN
+-- ----------------------------
+ALTER TABLE "ACT_ID_TOKEN" ADD CONSTRAINT "SYS_C0015384" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_ID_TOKEN
+-- ----------------------------
+ALTER TABLE "ACT_ID_TOKEN" ADD CONSTRAINT "SYS_C0015383" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_USER
+-- ----------------------------
+ALTER TABLE "ACT_ID_USER" ADD CONSTRAINT "SYS_C0015381" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Primary Key structure for table ACT_PROCDEF_INFO
+-- ----------------------------
+ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "SYS_C0015311" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Uniques structure for table ACT_PROCDEF_INFO
+-- ----------------------------
+ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "ACT_UNIQ_INFO_PROCDEF" UNIQUE ("PROC_DEF_ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Checks structure for table ACT_PROCDEF_INFO
+-- ----------------------------
+ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "SYS_C0015309" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "SYS_C0015310" CHECK ("PROC_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_PROCDEF_INFO
+-- ----------------------------
+CREATE INDEX "ACT_IDX_PROCDEF_INFO_JSON"
+  ON "ACT_PROCDEF_INFO" ("INFO_JSON_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RE_DEPLOYMENT
+-- ----------------------------
+ALTER TABLE "ACT_RE_DEPLOYMENT" ADD CONSTRAINT "SYS_C0015290" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RE_MODEL
+-- ----------------------------
+ALTER TABLE "ACT_RE_MODEL" ADD CONSTRAINT "SYS_C0015292" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_RE_MODEL
+-- ----------------------------
+ALTER TABLE "ACT_RE_MODEL" ADD CONSTRAINT "SYS_C0015291" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_RE_MODEL
+-- ----------------------------
+CREATE INDEX "ACT_IDX_MODEL_DEPLOYMENT"
+  ON "ACT_RE_MODEL" ("DEPLOYMENT_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_MODEL_SOURCE"
+  ON "ACT_RE_MODEL" ("EDITOR_SOURCE_VALUE_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_MODEL_SOURCE_EXTRA"
+  ON "ACT_RE_MODEL" ("EDITOR_SOURCE_EXTRA_VALUE_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RE_PROCDEF
+-- ----------------------------
+ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015306" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Uniques structure for table ACT_RE_PROCDEF
+-- ----------------------------
+ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "ACT_UNIQ_PROCDEF" UNIQUE ("KEY_", "VERSION_", "DERIVED_VERSION_", "TENANT_ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Checks structure for table ACT_RE_PROCDEF
+-- ----------------------------
+ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015300" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015301" CHECK ("KEY_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015302" CHECK ("VERSION_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015303" CHECK ("DERIVED_VERSION_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015304" CHECK (HAS_START_FORM_KEY_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015305" CHECK (HAS_GRAPHICAL_NOTATION_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_ACTINST
+-- ----------------------------
+ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015319" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_RU_ACTINST
+-- ----------------------------
+ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015312" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015313" CHECK ("PROC_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015314" CHECK ("PROC_INST_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015315" CHECK ("EXECUTION_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015316" CHECK ("ACT_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015317" CHECK ("ACT_TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015318" CHECK ("START_TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_ACTINST
+-- ----------------------------
+CREATE INDEX "ACT_IDX_RU_ACTI_END"
+  ON "ACT_RU_ACTINST" ("END_TIME_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_RU_ACTI_EXEC"
+  ON "ACT_RU_ACTINST" ("EXECUTION_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_RU_ACTI_EXEC_ACT"
+  ON "ACT_RU_ACTINST" ("ACT_ID_" ASC, "EXECUTION_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_RU_ACTI_PROC"
+  ON "ACT_RU_ACTINST" ("PROC_INST_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_RU_ACTI_PROC_ACT"
+  ON "ACT_RU_ACTINST" ("ACT_ID_" ASC, "PROC_INST_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_RU_ACTI_START"
+  ON "ACT_RU_ACTINST" ("START_TIME_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_DEADLETTER_JOB
+-- ----------------------------
+ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0015259" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_RU_DEADLETTER_JOB
+-- ----------------------------
+ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0015256" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0015257" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0015258" CHECK (EXCLUSIVE_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_DEADLETTER_JOB
+-- ----------------------------
+CREATE INDEX "ACT_IDX_DJOB_CUSTOM_VAL_ID"
+  ON "ACT_RU_DEADLETTER_JOB" ("CUSTOM_VALUES_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_DJOB_EXCEPTION"
+  ON "ACT_RU_DEADLETTER_JOB" ("EXCEPTION_STACK_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_DJOB_EXECUTION_ID"
+  ON "ACT_RU_DEADLETTER_JOB" ("EXECUTION_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_DJOB_PROC_DEF_ID"
+  ON "ACT_RU_DEADLETTER_JOB" ("PROC_DEF_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_DJOB_PROC_INST_ID"
+  ON "ACT_RU_DEADLETTER_JOB" ("PROCESS_INSTANCE_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_DJOB_SCOPE"
+  ON "ACT_RU_DEADLETTER_JOB" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_DJOB_SCOPE_DEF"
+  ON "ACT_RU_DEADLETTER_JOB" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_DJOB_SUB_SCOPE"
+  ON "ACT_RU_DEADLETTER_JOB" ("SUB_SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_ENTITYLINK
+-- ----------------------------
+ALTER TABLE "ACT_RU_ENTITYLINK" ADD CONSTRAINT "SYS_C0015240" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_ENTITYLINK
+-- ----------------------------
+CREATE INDEX "ACT_IDX_ENT_LNK_SCOPE"
+  ON "ACT_RU_ENTITYLINK" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC, "LINK_TYPE_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_ENT_LNK_SCOPE_DEF"
+  ON "ACT_RU_ENTITYLINK" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC, "LINK_TYPE_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_EVENT_SUBSCR
+-- ----------------------------
+ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0015289" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_RU_EVENT_SUBSCR
+-- ----------------------------
+ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0015286" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0015287" CHECK ("EVENT_TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0015288" CHECK ("CREATED_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_EVENT_SUBSCR
+-- ----------------------------
+CREATE INDEX "ACT_IDX_EVENT_SUBSCR"
+  ON "ACT_RU_EVENT_SUBSCR" ("EXECUTION_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_EVENT_SUBSCR_CONFIG_"
+  ON "ACT_RU_EVENT_SUBSCR" ("CONFIGURATION_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_EXECUTION
+-- ----------------------------
+ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015299" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_RU_EXECUTION
+-- ----------------------------
+ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015293" CHECK (IS_ACTIVE_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015294" CHECK (IS_CONCURRENT_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015295" CHECK (IS_SCOPE_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015296" CHECK (IS_EVENT_SCOPE_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015297" CHECK (IS_MI_ROOT_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015298" CHECK (IS_COUNT_ENABLED_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_EXECUTION
+-- ----------------------------
+CREATE INDEX "ACT_IDX_EXEC_BUSKEY"
+  ON "ACT_RU_EXECUTION" ("BUSINESS_KEY_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_EXEC_ROOT"
+  ON "ACT_RU_EXECUTION" ("ROOT_PROC_INST_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_EXE_PARENT"
+  ON "ACT_RU_EXECUTION" ("PARENT_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_EXE_PROCDEF"
+  ON "ACT_RU_EXECUTION" ("PROC_DEF_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_EXE_PROCINST"
+  ON "ACT_RU_EXECUTION" ("PROC_INST_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_EXE_SUPER"
+  ON "ACT_RU_EXECUTION" ("SUPER_EXEC_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_HISTORY_JOB
+-- ----------------------------
+ALTER TABLE "ACT_RU_HISTORY_JOB" ADD CONSTRAINT "SYS_C0015261" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_RU_HISTORY_JOB
+-- ----------------------------
+ALTER TABLE "ACT_RU_HISTORY_JOB" ADD CONSTRAINT "SYS_C0015260" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_IDENTITYLINK
+-- ----------------------------
+ALTER TABLE "ACT_RU_IDENTITYLINK" ADD CONSTRAINT "SYS_C0015242" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_IDENTITYLINK
+-- ----------------------------
+CREATE INDEX "ACT_IDX_ATHRZ_PROCEDEF"
+  ON "ACT_RU_IDENTITYLINK" ("PROC_DEF_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_IDENT_LNK_GROUP"
+  ON "ACT_RU_IDENTITYLINK" ("GROUP_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_IDENT_LNK_SCOPE"
+  ON "ACT_RU_IDENTITYLINK" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_IDENT_LNK_SCOPE_DEF"
+  ON "ACT_RU_IDENTITYLINK" ("SCOPE_TYPE_" ASC, "SCOPE_DEFINITION_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_IDENT_LNK_USER"
+  ON "ACT_RU_IDENTITYLINK" ("USER_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_IDL_PROCINST"
+  ON "ACT_RU_IDENTITYLINK" ("PROC_INST_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_TSKASS_TASK"
+  ON "ACT_RU_IDENTITYLINK" ("TASK_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_JOB
+-- ----------------------------
+ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0015247" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_RU_JOB
+-- ----------------------------
+ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0015244" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0015245" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0015246" CHECK (EXCLUSIVE_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_JOB
+-- ----------------------------
+CREATE INDEX "ACT_IDX_JOB_CUSTOM_VAL_ID"
+  ON "ACT_RU_JOB" ("CUSTOM_VALUES_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_JOB_EXCEPTION"
+  ON "ACT_RU_JOB" ("EXCEPTION_STACK_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_JOB_EXECUTION_ID"
+  ON "ACT_RU_JOB" ("EXECUTION_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_JOB_PROC_DEF_ID"
+  ON "ACT_RU_JOB" ("PROC_DEF_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_JOB_PROC_INST_ID"
+  ON "ACT_RU_JOB" ("PROCESS_INSTANCE_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_JOB_SCOPE"
+  ON "ACT_RU_JOB" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_JOB_SCOPE_DEF"
+  ON "ACT_RU_JOB" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_JOB_SUB_SCOPE"
+  ON "ACT_RU_JOB" ("SUB_SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_SUSPENDED_JOB
+-- ----------------------------
+ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0015255" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_RU_SUSPENDED_JOB
+-- ----------------------------
+ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0015252" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0015253" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0015254" CHECK (EXCLUSIVE_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_SUSPENDED_JOB
+-- ----------------------------
+CREATE INDEX "ACT_IDX_SJOB_CUSTOM_VAL_ID"
+  ON "ACT_RU_SUSPENDED_JOB" ("CUSTOM_VALUES_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_SJOB_EXCEPTION"
+  ON "ACT_RU_SUSPENDED_JOB" ("EXCEPTION_STACK_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_SJOB_EXECUTION_ID"
+  ON "ACT_RU_SUSPENDED_JOB" ("EXECUTION_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_SJOB_PROC_DEF_ID"
+  ON "ACT_RU_SUSPENDED_JOB" ("PROC_DEF_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_SJOB_PROC_INST_ID"
+  ON "ACT_RU_SUSPENDED_JOB" ("PROCESS_INSTANCE_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_SJOB_SCOPE"
+  ON "ACT_RU_SUSPENDED_JOB" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_SJOB_SCOPE_DEF"
+  ON "ACT_RU_SUSPENDED_JOB" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_SJOB_SUB_SCOPE"
+  ON "ACT_RU_SUSPENDED_JOB" ("SUB_SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_TASK
+-- ----------------------------
+ALTER TABLE "ACT_RU_TASK" ADD CONSTRAINT "SYS_C0015271" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_RU_TASK
+-- ----------------------------
+ALTER TABLE "ACT_RU_TASK" ADD CONSTRAINT "SYS_C0015270" CHECK (IS_COUNT_ENABLED_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_TASK
+-- ----------------------------
+CREATE INDEX "ACT_IDX_TASK_CREATE"
+  ON "ACT_RU_TASK" ("CREATE_TIME_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_TASK_EXEC"
+  ON "ACT_RU_TASK" ("EXECUTION_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_TASK_PROCDEF"
+  ON "ACT_RU_TASK" ("PROC_DEF_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_TASK_PROCINST"
+  ON "ACT_RU_TASK" ("PROC_INST_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_TASK_SCOPE"
+  ON "ACT_RU_TASK" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_TASK_SCOPE_DEF"
+  ON "ACT_RU_TASK" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_TASK_SUB_SCOPE"
+  ON "ACT_RU_TASK" ("SUB_SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_TIMER_JOB
+-- ----------------------------
+ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0015251" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_RU_TIMER_JOB
+-- ----------------------------
+ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0015248" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0015249" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0015250" CHECK (EXCLUSIVE_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_TIMER_JOB
+-- ----------------------------
+CREATE INDEX "ACT_IDX_TJOB_CUSTOM_VAL_ID"
+  ON "ACT_RU_TIMER_JOB" ("CUSTOM_VALUES_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_TJOB_EXCEPTION"
+  ON "ACT_RU_TIMER_JOB" ("EXCEPTION_STACK_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_TJOB_EXECUTION_ID"
+  ON "ACT_RU_TIMER_JOB" ("EXECUTION_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_TJOB_PROC_DEF_ID"
+  ON "ACT_RU_TIMER_JOB" ("PROC_DEF_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_TJOB_PROC_INST_ID"
+  ON "ACT_RU_TIMER_JOB" ("PROCESS_INSTANCE_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_TJOB_SCOPE"
+  ON "ACT_RU_TIMER_JOB" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_TJOB_SCOPE_DEF"
+  ON "ACT_RU_TIMER_JOB" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_TJOB_SUB_SCOPE"
+  ON "ACT_RU_TIMER_JOB" ("SUB_SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_VARIABLE
+-- ----------------------------
+ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0015281" PRIMARY KEY ("ID_");
+
+-- ----------------------------
+-- Checks structure for table ACT_RU_VARIABLE
+-- ----------------------------
+ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0015278" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0015279" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0015280" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_VARIABLE
+-- ----------------------------
+CREATE INDEX "ACT_IDX_RU_VAR_SCOPE_ID_TYPE"
+  ON "ACT_RU_VARIABLE" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_RU_VAR_SUB_ID_TYPE"
+  ON "ACT_RU_VARIABLE" ("SCOPE_TYPE_" ASC, "SUB_SCOPE_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_VARIABLE_TASK_ID"
+  ON "ACT_RU_VARIABLE" ("TASK_ID_" ASC)
+  LOGGING
+  ONLINE
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_VAR_BYTEARRAY"
+  ON "ACT_RU_VARIABLE" ("BYTEARRAY_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_VAR_EXE"
+  ON "ACT_RU_VARIABLE" ("EXECUTION_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+CREATE INDEX "ACT_IDX_VAR_PROCINST"
+  ON "ACT_RU_VARIABLE" ("PROC_INST_ID_" ASC)
+  LOGGING
+  TABLESPACE "USERS"
+  VISIBLE
+PCTFREE 10
+INITRANS 2
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+);
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_APP_APPDEF
+-- ----------------------------
+ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "ACT_FK_APP_DEF_DPLY" FOREIGN KEY ("DEPLOYMENT_ID_") REFERENCES "ACT_APP_DEPLOYMENT" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_APP_DEPLOYMENT_RESOURCE
+-- ----------------------------
+ALTER TABLE "ACT_APP_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "ACT_FK_APP_RSRC_DPL" FOREIGN KEY ("DEPLOYMENT_ID_") REFERENCES "ACT_APP_DEPLOYMENT" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_CMMN_CASEDEF
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "ACT_FK_CASE_DEF_DPLY" FOREIGN KEY ("DEPLOYMENT_ID_") REFERENCES "ACT_CMMN_DEPLOYMENT" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_CMMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "ACT_FK_CMMN_RSRC_DPL" FOREIGN KEY ("DEPLOYMENT_ID_") REFERENCES "ACT_CMMN_DEPLOYMENT" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_CMMN_RU_CASE_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT "ACT_FK_CASE_INST_CASE_DEF" FOREIGN KEY ("CASE_DEF_ID_") REFERENCES "ACT_CMMN_CASEDEF" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_CMMN_RU_MIL_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "ACT_FK_MIL_CASE_DEF" FOREIGN KEY ("CASE_DEF_ID_") REFERENCES "ACT_CMMN_CASEDEF" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "ACT_FK_MIL_CASE_INST" FOREIGN KEY ("CASE_INST_ID_") REFERENCES "ACT_CMMN_RU_CASE_INST" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_CMMN_RU_PLAN_ITEM_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "ACT_FK_PLAN_ITEM_CASE_DEF" FOREIGN KEY ("CASE_DEF_ID_") REFERENCES "ACT_CMMN_CASEDEF" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "ACT_FK_PLAN_ITEM_CASE_INST" FOREIGN KEY ("CASE_INST_ID_") REFERENCES "ACT_CMMN_RU_CASE_INST" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_CMMN_RU_SENTRY_PART_INST
+-- ----------------------------
+ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "ACT_FK_SENTRY_CASE_DEF" FOREIGN KEY ("CASE_DEF_ID_") REFERENCES "ACT_CMMN_CASEDEF" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "ACT_FK_SENTRY_CASE_INST" FOREIGN KEY ("CASE_INST_ID_") REFERENCES "ACT_CMMN_RU_CASE_INST" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "ACT_FK_SENTRY_PLAN_ITEM" FOREIGN KEY ("PLAN_ITEM_INST_ID_") REFERENCES "ACT_CMMN_RU_PLAN_ITEM_INST" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_DE_MODEL_RELATION
+-- ----------------------------
+ALTER TABLE "ACT_DE_MODEL_RELATION" ADD CONSTRAINT "FK_RELATION_CHILD" FOREIGN KEY ("MODEL_ID") REFERENCES "ACT_DE_MODEL" ("ID") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_DE_MODEL_RELATION" ADD CONSTRAINT "FK_RELATION_PARENT" FOREIGN KEY ("PARENT_MODEL_ID") REFERENCES "ACT_DE_MODEL" ("ID") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_GE_BYTEARRAY
+-- ----------------------------
+ALTER TABLE "ACT_GE_BYTEARRAY" ADD CONSTRAINT "ACT_FK_BYTEARR_DEPL" FOREIGN KEY ("DEPLOYMENT_ID_") REFERENCES "ACT_RE_DEPLOYMENT" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_ID_MEMBERSHIP
+-- ----------------------------
+ALTER TABLE "ACT_ID_MEMBERSHIP" ADD CONSTRAINT "ACT_FK_MEMB_GROUP" FOREIGN KEY ("GROUP_ID_") REFERENCES "ACT_ID_GROUP" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_ID_MEMBERSHIP" ADD CONSTRAINT "ACT_FK_MEMB_USER" FOREIGN KEY ("USER_ID_") REFERENCES "ACT_ID_USER" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_ID_PRIV_MAPPING
+-- ----------------------------
+ALTER TABLE "ACT_ID_PRIV_MAPPING" ADD CONSTRAINT "ACT_FK_PRIV_MAPPING" FOREIGN KEY ("PRIV_ID_") REFERENCES "ACT_ID_PRIV" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_PROCDEF_INFO
+-- ----------------------------
+ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "ACT_FK_INFO_JSON_BA" FOREIGN KEY ("INFO_JSON_ID_") REFERENCES "ACT_GE_BYTEARRAY" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "ACT_FK_INFO_PROCDEF" FOREIGN KEY ("PROC_DEF_ID_") REFERENCES "ACT_RE_PROCDEF" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RE_MODEL
+-- ----------------------------
+ALTER TABLE "ACT_RE_MODEL" ADD CONSTRAINT "ACT_FK_MODEL_DEPLOYMENT" FOREIGN KEY ("DEPLOYMENT_ID_") REFERENCES "ACT_RE_DEPLOYMENT" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RE_MODEL" ADD CONSTRAINT "ACT_FK_MODEL_SOURCE" FOREIGN KEY ("EDITOR_SOURCE_VALUE_ID_") REFERENCES "ACT_GE_BYTEARRAY" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RE_MODEL" ADD CONSTRAINT "ACT_FK_MODEL_SOURCE_EXTRA" FOREIGN KEY ("EDITOR_SOURCE_EXTRA_VALUE_ID_") REFERENCES "ACT_GE_BYTEARRAY" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_DEADLETTER_JOB
+-- ----------------------------
+ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "ACT_FK_DJOB_CUSTOM_VAL" FOREIGN KEY ("CUSTOM_VALUES_ID_") REFERENCES "ACT_GE_BYTEARRAY" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "ACT_FK_DJOB_EXCEPTION" FOREIGN KEY ("EXCEPTION_STACK_ID_") REFERENCES "ACT_GE_BYTEARRAY" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "ACT_FK_DJOB_EXECUTION" FOREIGN KEY ("EXECUTION_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "ACT_FK_DJOB_PROCESS_INSTANCE" FOREIGN KEY ("PROCESS_INSTANCE_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "ACT_FK_DJOB_PROC_DEF" FOREIGN KEY ("PROC_DEF_ID_") REFERENCES "ACT_RE_PROCDEF" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_EVENT_SUBSCR
+-- ----------------------------
+ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "ACT_FK_EVENT_EXEC" FOREIGN KEY ("EXECUTION_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_EXECUTION
+-- ----------------------------
+ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "ACT_FK_EXE_PARENT" FOREIGN KEY ("PARENT_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "ACT_FK_EXE_PROCDEF" FOREIGN KEY ("PROC_DEF_ID_") REFERENCES "ACT_RE_PROCDEF" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "ACT_FK_EXE_PROCINST" FOREIGN KEY ("PROC_INST_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "ACT_FK_EXE_SUPER" FOREIGN KEY ("SUPER_EXEC_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_IDENTITYLINK
+-- ----------------------------
+ALTER TABLE "ACT_RU_IDENTITYLINK" ADD CONSTRAINT "ACT_FK_ATHRZ_PROCEDEF" FOREIGN KEY ("PROC_DEF_ID_") REFERENCES "ACT_RE_PROCDEF" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_IDENTITYLINK" ADD CONSTRAINT "ACT_FK_IDL_PROCINST" FOREIGN KEY ("PROC_INST_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_IDENTITYLINK" ADD CONSTRAINT "ACT_FK_TSKASS_TASK" FOREIGN KEY ("TASK_ID_") REFERENCES "ACT_RU_TASK" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_JOB
+-- ----------------------------
+ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "ACT_FK_JOB_CUSTOM_VAL" FOREIGN KEY ("CUSTOM_VALUES_ID_") REFERENCES "ACT_GE_BYTEARRAY" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "ACT_FK_JOB_EXCEPTION" FOREIGN KEY ("EXCEPTION_STACK_ID_") REFERENCES "ACT_GE_BYTEARRAY" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "ACT_FK_JOB_EXECUTION" FOREIGN KEY ("EXECUTION_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "ACT_FK_JOB_PROCESS_INSTANCE" FOREIGN KEY ("PROCESS_INSTANCE_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "ACT_FK_JOB_PROC_DEF" FOREIGN KEY ("PROC_DEF_ID_") REFERENCES "ACT_RE_PROCDEF" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_SUSPENDED_JOB
+-- ----------------------------
+ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "ACT_FK_SJOB_CUSTOM_VAL" FOREIGN KEY ("CUSTOM_VALUES_ID_") REFERENCES "ACT_GE_BYTEARRAY" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "ACT_FK_SJOB_EXCEPTION" FOREIGN KEY ("EXCEPTION_STACK_ID_") REFERENCES "ACT_GE_BYTEARRAY" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "ACT_FK_SJOB_EXECUTION" FOREIGN KEY ("EXECUTION_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "ACT_FK_SJOB_PROCESS_INSTANCE" FOREIGN KEY ("PROCESS_INSTANCE_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "ACT_FK_SJOB_PROC_DEF" FOREIGN KEY ("PROC_DEF_ID_") REFERENCES "ACT_RE_PROCDEF" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_TASK
+-- ----------------------------
+ALTER TABLE "ACT_RU_TASK" ADD CONSTRAINT "ACT_FK_TASK_EXE" FOREIGN KEY ("EXECUTION_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_TASK" ADD CONSTRAINT "ACT_FK_TASK_PROCDEF" FOREIGN KEY ("PROC_DEF_ID_") REFERENCES "ACT_RE_PROCDEF" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_TASK" ADD CONSTRAINT "ACT_FK_TASK_PROCINST" FOREIGN KEY ("PROC_INST_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_TIMER_JOB
+-- ----------------------------
+ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "ACT_FK_TJOB_CUSTOM_VAL" FOREIGN KEY ("CUSTOM_VALUES_ID_") REFERENCES "ACT_GE_BYTEARRAY" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "ACT_FK_TJOB_EXCEPTION" FOREIGN KEY ("EXCEPTION_STACK_ID_") REFERENCES "ACT_GE_BYTEARRAY" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "ACT_FK_TJOB_EXECUTION" FOREIGN KEY ("EXECUTION_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "ACT_FK_TJOB_PROCESS_INSTANCE" FOREIGN KEY ("PROCESS_INSTANCE_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "ACT_FK_TJOB_PROC_DEF" FOREIGN KEY ("PROC_DEF_ID_") REFERENCES "ACT_RE_PROCDEF" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_VARIABLE
+-- ----------------------------
+ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "ACT_FK_VAR_BYTEARRAY" FOREIGN KEY ("BYTEARRAY_ID_") REFERENCES "ACT_GE_BYTEARRAY" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "ACT_FK_VAR_EXE" FOREIGN KEY ("EXECUTION_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "ACT_FK_VAR_PROCINST" FOREIGN KEY ("PROC_INST_ID_") REFERENCES "ACT_RU_EXECUTION" ("ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
diff --git a/skjcmanager/doc/sql/oracle/bladex-saber-oracle.sql b/skjcmanager/doc/sql/oracle/bladex-saber-oracle.sql
new file mode 100644
index 0000000..90bdeb9
--- /dev/null
+++ b/skjcmanager/doc/sql/oracle/bladex-saber-oracle.sql
@@ -0,0 +1,6500 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : oracle_localhost
+ Source Server Type    : Oracle
+ Source Server Version : 110200
+ Source Host           : 127.0.0.1:1521
+ Source Schema         : BLADEX
+
+ Target Server Type    : Oracle
+ Target Server Version : 110200
+ File Encoding         : 65001
+
+ Date: 07/08/2022 18:15:50
+*/
+
+
+-- ----------------------------
+-- Table structure for BLADE_ATTACH
+-- ----------------------------
+-- DROP TABLE "BLADE_ATTACH";
+CREATE TABLE "BLADE_ATTACH" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "LINK" VARCHAR2(1000 BYTE) ,
+  "DOMAIN_URL" VARCHAR2(500 BYTE) ,
+  "NAME" VARCHAR2(500 BYTE) ,
+  "ORIGINAL_NAME" VARCHAR2(500 BYTE) ,
+  "EXTENSION" VARCHAR2(12 BYTE) ,
+  "ATTACH_SIZE" NUMBER(20) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_ATTACH"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_ATTACH"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_ATTACH"."LINK" IS '附件地址';
+COMMENT ON COLUMN "BLADE_ATTACH"."DOMAIN_URL" IS '附件域名';
+COMMENT ON COLUMN "BLADE_ATTACH"."NAME" IS '附件名称';
+COMMENT ON COLUMN "BLADE_ATTACH"."ORIGINAL_NAME" IS '附件原名';
+COMMENT ON COLUMN "BLADE_ATTACH"."EXTENSION" IS '附件拓展名';
+COMMENT ON COLUMN "BLADE_ATTACH"."ATTACH_SIZE" IS '附件大小';
+COMMENT ON COLUMN "BLADE_ATTACH"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_ATTACH"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_ATTACH"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_ATTACH"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_ATTACH"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_ATTACH"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_ATTACH"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_ATTACH" IS '附件表';
+
+-- ----------------------------
+-- Table structure for BLADE_CLIENT
+-- ----------------------------
+-- DROP TABLE "BLADE_CLIENT";
+CREATE TABLE "BLADE_CLIENT" (
+  "ID" NUMBER(20) NOT NULL ,
+  "CLIENT_ID" NVARCHAR2(48) NOT NULL ,
+  "CLIENT_SECRET" NVARCHAR2(256) NOT NULL ,
+  "RESOURCE_IDS" NVARCHAR2(256) ,
+  "SCOPE" NVARCHAR2(256) NOT NULL ,
+  "AUTHORIZED_GRANT_TYPES" NVARCHAR2(256) NOT NULL ,
+  "WEB_SERVER_REDIRECT_URI" NVARCHAR2(256) ,
+  "AUTHORITIES" NVARCHAR2(256) ,
+  "ACCESS_TOKEN_VALIDITY" NUMBER(11) NOT NULL ,
+  "REFRESH_TOKEN_VALIDITY" NUMBER(11) NOT NULL ,
+  "ADDITIONAL_INFORMATION" NCLOB ,
+  "AUTOAPPROVE" NVARCHAR2(256) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) NOT NULL ,
+  "IS_DELETED" NUMBER(11) NOT NULL
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_CLIENT"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_CLIENT"."CLIENT_ID" IS '客户端ID';
+COMMENT ON COLUMN "BLADE_CLIENT"."CLIENT_SECRET" IS '客户端密钥';
+COMMENT ON COLUMN "BLADE_CLIENT"."RESOURCE_IDS" IS '资源集合';
+COMMENT ON COLUMN "BLADE_CLIENT"."SCOPE" IS '授权范围';
+COMMENT ON COLUMN "BLADE_CLIENT"."AUTHORIZED_GRANT_TYPES" IS '授权类型';
+COMMENT ON COLUMN "BLADE_CLIENT"."WEB_SERVER_REDIRECT_URI" IS '回调地址';
+COMMENT ON COLUMN "BLADE_CLIENT"."AUTHORITIES" IS '权限';
+COMMENT ON COLUMN "BLADE_CLIENT"."ACCESS_TOKEN_VALIDITY" IS '令牌过期秒数';
+COMMENT ON COLUMN "BLADE_CLIENT"."REFRESH_TOKEN_VALIDITY" IS '刷新令牌过期秒数';
+COMMENT ON COLUMN "BLADE_CLIENT"."ADDITIONAL_INFORMATION" IS '附加说明';
+COMMENT ON COLUMN "BLADE_CLIENT"."AUTOAPPROVE" IS '自动授权';
+COMMENT ON COLUMN "BLADE_CLIENT"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_CLIENT"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_CLIENT"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_CLIENT"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_CLIENT"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_CLIENT"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_CLIENT"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_CLIENT" IS '客户端表';
+
+-- ----------------------------
+-- Records of BLADE_CLIENT
+-- ----------------------------
+INSERT INTO "BLADE_CLIENT" VALUES ('1123598811738675201', 'sword', 'sword_secret', NULL, 'all', 'refresh_token,password,authorization_code,captcha,social', 'http://localhost:8888', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2019-03-24 10:40:55', 'SYYYY-MM-DD HH24:MI:SS'), '1123598815738675201', TO_DATE('2019-03-24 10:40:59', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_CLIENT" VALUES ('1123598811738675202', 'saber', 'saber_secret', NULL, 'all', 'refresh_token,password,authorization_code,captcha,social', 'http://localhost:1888', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2019-03-24 10:42:29', 'SYYYY-MM-DD HH24:MI:SS'), '1123598815738675201', TO_DATE('2019-03-24 10:42:32', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_CODE
+-- ----------------------------
+-- DROP TABLE "BLADE_CODE";
+CREATE TABLE "BLADE_CODE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "MODEL_ID" NUMBER(20) ,
+  "SERVICE_NAME" NVARCHAR2(64) ,
+  "CODE_NAME" NVARCHAR2(64) ,
+  "TABLE_NAME" NVARCHAR2(64) ,
+  "TABLE_PREFIX" NVARCHAR2(64) ,
+  "PK_NAME" NVARCHAR2(32) ,
+  "PACKAGE_NAME" NVARCHAR2(500) ,
+  "TEMPLATE_TYPE" NVARCHAR2(32) ,
+  "AUTHOR" NVARCHAR2(32) ,
+  "SUB_MODEL_ID" NVARCHAR2(32) ,
+  "SUB_FK_ID" NVARCHAR2(32) ,
+  "TREE_ID" NVARCHAR2(32) ,
+  "TREE_PID" NVARCHAR2(32) ,
+  "TREE_NAME" NVARCHAR2(64)  ,
+  "BASE_MODE" NUMBER(11) ,
+  "WRAP_MODE" NUMBER(11) ,
+  "FEIGN_MODE" NUMBER(11) ,
+  "CODE_STYLE" NVARCHAR2(32) ,
+  "API_PATH" NCLOB ,
+  "WEB_PATH" NCLOB ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_CODE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_CODE"."MODEL_ID" IS '数据模型主键';
+COMMENT ON COLUMN "BLADE_CODE"."SERVICE_NAME" IS '服务名称';
+COMMENT ON COLUMN "BLADE_CODE"."CODE_NAME" IS '模块名称';
+COMMENT ON COLUMN "BLADE_CODE"."TABLE_NAME" IS '表名';
+COMMENT ON COLUMN "BLADE_CODE"."TABLE_PREFIX" IS '表前缀';
+COMMENT ON COLUMN "BLADE_CODE"."PK_NAME" IS '主键名';
+COMMENT ON COLUMN "BLADE_CODE"."PACKAGE_NAME" IS '后端包名';
+COMMENT ON COLUMN "BLADE_CODE"."TEMPLATE_TYPE" IS '模版类型';
+COMMENT ON COLUMN "BLADE_CODE"."AUTHOR" IS '作者信息';
+COMMENT ON COLUMN "BLADE_CODE"."SUB_MODEL_ID" IS '子表模型主键';
+COMMENT ON COLUMN "BLADE_CODE"."SUB_FK_ID" IS '子表绑定外键';
+COMMENT ON COLUMN "BLADE_CODE"."TREE_ID" IS '树主键字段';
+COMMENT ON COLUMN "BLADE_CODE"."TREE_PID" IS '树父主键字段';
+COMMENT ON COLUMN "BLADE_CODE"."TREE_NAME" IS '树名称字段';
+COMMENT ON COLUMN "BLADE_CODE"."BASE_MODE" IS '基础业务模式';
+COMMENT ON COLUMN "BLADE_CODE"."WRAP_MODE" IS '包装器模式';
+COMMENT ON COLUMN "BLADE_CODE"."FEIGN_MODE" IS '远程调用模式';
+COMMENT ON COLUMN "BLADE_CODE"."CODE_STYLE" IS '代码风格';
+COMMENT ON COLUMN "BLADE_CODE"."API_PATH" IS '后端路径';
+COMMENT ON COLUMN "BLADE_CODE"."WEB_PATH" IS '前端路径';
+COMMENT ON COLUMN "BLADE_CODE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_CODE" IS '代码生成表';
+
+-- ----------------------------
+-- Table structure for BLADE_DATASOURCE
+-- ----------------------------
+-- DROP TABLE "BLADE_DATASOURCE";
+CREATE TABLE "BLADE_DATASOURCE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "NAME" NVARCHAR2(100) ,
+  "DRIVER_CLASS" NVARCHAR2(100) ,
+  "URL" NVARCHAR2(500) ,
+  "USERNAME" NVARCHAR2(45) ,
+  "PASSWORD" NVARCHAR2(45) ,
+  "REMARK" NVARCHAR2(500) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_DATASOURCE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."NAME" IS '名称';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."DRIVER_CLASS" IS '驱动类';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."URL" IS '链接地址';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."USERNAME" IS '用户名';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."PASSWORD" IS '密码';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_DATASOURCE" IS '数据源配置表';
+
+-- ----------------------------
+-- Records of BLADE_DATASOURCE
+-- ----------------------------
+INSERT INTO "BLADE_DATASOURCE" VALUES ('1161483357481541634', 'mysql', 'com.mysql.cj.jdbc.Driver', 'jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true', 'root', 'root', 'mysql', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:06', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-08-08 12:20:06', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_DATASOURCE" VALUES ('1161483504353484802', 'postgresql', 'org.postgresql.Driver', 'jdbc:postgresql://127.0.0.1:5432/bladex', 'postgres', '123456', 'postgresql', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:02', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-08-08 12:20:02', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_DATASOURCE" VALUES ('1161483594023510018', 'oracle', 'oracle.jdbc.OracleDriver', 'jdbc:oracle:thin:@127.0.0.1:1521:orcl', 'BLADEX', 'BLADEX', 'oracle', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_DATASOURCE" VALUES ('1161483594023510020', 'sqlserver', 'com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex', 'bladex', 'bladex', 'sqlserver', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_DEPT
+-- ----------------------------
+-- DROP TABLE "BLADE_DEPT";
+CREATE TABLE "BLADE_DEPT" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "PARENT_ID" NUMBER(20) ,
+  "ANCESTORS" NCLOB ,
+  "DEPT_CATEGORY" NUMBER(11) ,
+  "DEPT_NAME" NVARCHAR2(45) ,
+  "FULL_NAME" NVARCHAR2(45) ,
+  "SORT" NUMBER(11) ,
+  "REMARK" NVARCHAR2(255) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_DEPT"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_DEPT"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_DEPT"."PARENT_ID" IS '父主键';
+COMMENT ON COLUMN "BLADE_DEPT"."ANCESTORS" IS '祖级列表';
+COMMENT ON COLUMN "BLADE_DEPT"."DEPT_CATEGORY" IS '部门类型';
+COMMENT ON COLUMN "BLADE_DEPT"."DEPT_NAME" IS '部门名';
+COMMENT ON COLUMN "BLADE_DEPT"."FULL_NAME" IS '部门全称';
+COMMENT ON COLUMN "BLADE_DEPT"."SORT" IS '排序';
+COMMENT ON COLUMN "BLADE_DEPT"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_DEPT"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_DEPT" IS '机构表';
+
+-- ----------------------------
+-- Records of BLADE_DEPT
+-- ----------------------------
+INSERT INTO "BLADE_DEPT" VALUES ('1123598813738675201', '000000', '0', '0', '1', '布雷德科技', '上海布雷德科技有限公司', '1', NULL, '0');
+INSERT INTO "BLADE_DEPT" VALUES ('1123598813738675202', '000000', '1123598813738675201', '0,1123598813738675201', '1', '常州布雷德', '常州布雷德科技有限公司', '1', NULL, '0');
+INSERT INTO "BLADE_DEPT" VALUES ('1123598813738675203', '000000', '1123598813738675201', '0,1123598813738675201', '1', '苏州布雷德', '苏州布雷德科技有限公司', '1', NULL, '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_DICT
+-- ----------------------------
+-- DROP TABLE "BLADE_DICT";
+CREATE TABLE "BLADE_DICT" (
+  "ID" NUMBER(20) NOT NULL ,
+  "PARENT_ID" NUMBER(20) ,
+  "CODE" NVARCHAR2(255) ,
+  "DICT_KEY" NVARCHAR2(255) ,
+  "DICT_VALUE" NVARCHAR2(255) ,
+  "SORT" NUMBER(11) ,
+  "REMARK" NVARCHAR2(255) ,
+  "IS_SEALED" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_DICT"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_DICT"."PARENT_ID" IS '父主键';
+COMMENT ON COLUMN "BLADE_DICT"."CODE" IS '字典码';
+COMMENT ON COLUMN "BLADE_DICT"."DICT_KEY" IS '字典值';
+COMMENT ON COLUMN "BLADE_DICT"."DICT_VALUE" IS '字典名称';
+COMMENT ON COLUMN "BLADE_DICT"."SORT" IS '排序';
+COMMENT ON COLUMN "BLADE_DICT"."REMARK" IS '字典备注';
+COMMENT ON COLUMN "BLADE_DICT"."IS_SEALED" IS '是否已封存';
+COMMENT ON COLUMN "BLADE_DICT"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_DICT" IS '字典表';
+
+-- ----------------------------
+-- Records of BLADE_DICT
+-- ----------------------------
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675201', '0', 'sex', '-1', '性别', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675202', '1123598814738675201', 'sex', '1', '男', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675203', '1123598814738675201', 'sex', '2', '女', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675204', '0', 'notice', '-1', '通知类型', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675205', '1123598814738675204', 'notice', '1', '发布通知', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675206', '1123598814738675204', 'notice', '2', '批转通知', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675207', '1123598814738675204', 'notice', '3', '转发通知', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675208', '1123598814738675204', 'notice', '4', '指示通知', '4', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675209', '1123598814738675204', 'notice', '5', '任免通知', '5', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675210', '1123598814738675204', 'notice', '6', '事务通知', '6', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675211', '0', 'menu_category', '-1', '菜单类型', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675212', '1123598814738675211', 'menu_category', '1', '菜单', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675213', '1123598814738675211', 'menu_category', '2', '按钮', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675214', '0', 'button_func', '-1', '按钮功能', '4', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675215', '1123598814738675214', 'button_func', '1', '工具栏', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675216', '1123598814738675214', 'button_func', '2', '操作栏', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675217', '1123598814738675214', 'button_func', '3', '工具操作栏', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675218', '0', 'yes_no', '-1', '是否', '5', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675219', '1123598814738675218', 'yes_no', '1', '否', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675220', '1123598814738675218', 'yes_no', '2', '是', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675221', '0', 'flow', '-1', '流程类型', '5', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675222', '1123598814738675221', 'flow', '1', '请假流程', '1', 'leave', '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675223', '1123598814738675221', 'flow', '2', '报销流程', '2', 'expense', '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675227', '0', 'org_category', '-1', '机构类型', '7', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675228', '1123598814738675227', 'org_category', '1', '公司', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675229', '1123598814738675227', 'org_category', '2', '部门', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675230', '1123598814738675227', 'org_category', '3', '小组', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675231', '0', 'data_scope_type', '-1', '数据权限', '8', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675232', '1123598814738675231', 'data_scope_type', '1', '全部可见', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675233', '1123598814738675231', 'data_scope_type', '2', '本人可见', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675234', '1123598814738675231', 'data_scope_type', '3', '所在机构可见', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675235', '1123598814738675231', 'data_scope_type', '4', '所在机构及子级可见', '4', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675236', '1123598814738675231', 'data_scope_type', '5', '自定义', '5', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675237', '0', 'api_scope_type', '-1', '接口权限', '10', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675238', '1123598814738675237', 'api_scope_type', '1', '系统接口', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675239', '1123598814738675237', 'api_scope_type', '2', '业务接口', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675240', '0', 'scope_category', '-1', '权限类型', '10', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675241', '1123598814738675240', 'scope_category', '1', '数据权限', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675242', '1123598814738675240', 'scope_category', '2', '接口权限', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738676224', '0', 'oss', '-1', '对象存储类型', '6', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738676225', '1123598814738676224', 'oss', '1', 'minio', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738676226', '1123598814738676224', 'oss', '2', 'qiniu', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738676227', '1123598814738676224', 'oss', '3', 'ali', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738676228', '1123598814738676224', 'oss', '4', 'tencent', '4', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738677220', '0', 'sms', '-1', '短信服务类型', '11', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738677221', '1123598814738677220', 'sms', '1', 'yunpian', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738677222', '1123598814738677220', 'sms', '2', 'qiniu', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738677223', '1123598814738677220', 'sms', '3', 'ali', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738677224', '1123598814738677220', 'sms', '4', 'tencent', '4', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777220', '0', 'post_category', '-1', '岗位类型', '12', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777221', '1123598814738777220', 'post_category', '1', '高层', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777222', '1123598814738777220', 'post_category', '2', '中层', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777223', '1123598814738777220', 'post_category', '3', '基层', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777224', '1123598814738777220', 'post_category', '4', '其他', '4', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777230', '0', 'region', '-1', '行政区划', '13', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777231', '1123598814738777230', 'region', '0', '国家', '0', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777232', '1123598814738777230', 'region', '1', '省份/直辖市', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777233', '1123598814738777230', 'region', '2', '地市', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777234', '1123598814738777230', 'region', '3', '区县', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777235', '1123598814738777230', 'region', '4', '乡镇', '4', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777236', '1123598814738777230', 'region', '5', '村委', '5', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738778200', '0', 'user_type', '-1', '用户平台', '14', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738778201', '1123598814738778200', 'user_type', '1', 'WEB', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738778202', '1123598814738778200', 'user_type', '2', 'APP', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738778203', '1123598814738778200', 'user_type', '3', 'OTHER', '3', NULL, '0', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_DICT_BIZ
+-- ----------------------------
+-- DROP TABLE "BLADE_DICT_BIZ";
+CREATE TABLE "BLADE_DICT_BIZ" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "PARENT_ID" NUMBER(20) ,
+  "CODE" NVARCHAR2(255) ,
+  "DICT_KEY" NVARCHAR2(255) ,
+  "DICT_VALUE" NVARCHAR2(255) ,
+  "SORT" NUMBER(11) ,
+  "REMARK" NVARCHAR2(255) ,
+  "IS_SEALED" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."PARENT_ID" IS '父主键';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."CODE" IS '字典码';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."DICT_KEY" IS '字典值';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."DICT_VALUE" IS '字典名称';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."SORT" IS '排序';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."REMARK" IS '字典备注';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."IS_SEALED" IS '是否已封存';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_DICT_BIZ" IS '数据源配置表';
+
+-- ----------------------------
+-- Table structure for BLADE_LOG_API
+-- ----------------------------
+-- DROP TABLE "BLADE_LOG_API";
+CREATE TABLE "BLADE_LOG_API" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "SERVICE_ID" NVARCHAR2(32) ,
+  "SERVER_HOST" NVARCHAR2(255) ,
+  "SERVER_IP" NVARCHAR2(255) ,
+  "ENV" NVARCHAR2(255) ,
+  "TYPE" NCHAR(1) ,
+  "TITLE" NVARCHAR2(255) ,
+  "METHOD" NVARCHAR2(10) ,
+  "REQUEST_URI" NVARCHAR2(255) ,
+  "USER_AGENT" NVARCHAR2(1000) ,
+  "REMOTE_IP" NVARCHAR2(255) ,
+  "METHOD_CLASS" NVARCHAR2(255) ,
+  "METHOD_NAME" NVARCHAR2(255) ,
+  "PARAMS" NCLOB ,
+  "TIME" NVARCHAR2(64) ,
+  "CREATE_BY" NVARCHAR2(64) ,
+  "CREATE_TIME" DATE
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_LOG_API"."ID" IS '编号';
+COMMENT ON COLUMN "BLADE_LOG_API"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_LOG_API"."SERVICE_ID" IS '服务ID';
+COMMENT ON COLUMN "BLADE_LOG_API"."SERVER_HOST" IS '服务器名';
+COMMENT ON COLUMN "BLADE_LOG_API"."SERVER_IP" IS '服务器IP地址';
+COMMENT ON COLUMN "BLADE_LOG_API"."ENV" IS '服务器环境';
+COMMENT ON COLUMN "BLADE_LOG_API"."TYPE" IS '日志类型';
+COMMENT ON COLUMN "BLADE_LOG_API"."TITLE" IS '日志标题';
+COMMENT ON COLUMN "BLADE_LOG_API"."METHOD" IS '操作方式';
+COMMENT ON COLUMN "BLADE_LOG_API"."REQUEST_URI" IS '请求URI';
+COMMENT ON COLUMN "BLADE_LOG_API"."USER_AGENT" IS '用户代理';
+COMMENT ON COLUMN "BLADE_LOG_API"."REMOTE_IP" IS '操作IP地址';
+COMMENT ON COLUMN "BLADE_LOG_API"."METHOD_CLASS" IS '方法类';
+COMMENT ON COLUMN "BLADE_LOG_API"."METHOD_NAME" IS '方法名';
+COMMENT ON COLUMN "BLADE_LOG_API"."PARAMS" IS '操作提交的数据';
+COMMENT ON COLUMN "BLADE_LOG_API"."TIME" IS '执行时间';
+COMMENT ON COLUMN "BLADE_LOG_API"."CREATE_BY" IS '创建者';
+COMMENT ON COLUMN "BLADE_LOG_API"."CREATE_TIME" IS '创建时间';
+COMMENT ON TABLE "BLADE_LOG_API" IS '接口日志表';
+
+-- ----------------------------
+-- Table structure for BLADE_LOG_ERROR
+-- ----------------------------
+-- DROP TABLE "BLADE_LOG_ERROR";
+CREATE TABLE "BLADE_LOG_ERROR" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "SERVICE_ID" NVARCHAR2(32) ,
+  "SERVER_HOST" NVARCHAR2(255) ,
+  "SERVER_IP" NVARCHAR2(255) ,
+  "ENV" NVARCHAR2(255) ,
+  "METHOD" NVARCHAR2(10) ,
+  "REQUEST_URI" NVARCHAR2(255) ,
+  "USER_AGENT" NVARCHAR2(1000) ,
+  "STACK_TRACE" NCLOB ,
+  "EXCEPTION_NAME" NVARCHAR2(255) ,
+  "MESSAGE" NCLOB ,
+  "LINE_NUMBER" NUMBER(11) ,
+  "REMOTE_IP" NVARCHAR2(255) ,
+  "METHOD_CLASS" NVARCHAR2(255) ,
+  "FILE_NAME" NVARCHAR2(1000) ,
+  "METHOD_NAME" NVARCHAR2(255) ,
+  "PARAMS" NCLOB ,
+  "CREATE_BY" NVARCHAR2(64) ,
+  "CREATE_TIME" DATE
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."ID" IS '编号';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."SERVICE_ID" IS '服务ID';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."SERVER_HOST" IS '服务器名';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."SERVER_IP" IS '服务器IP地址';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."ENV" IS '系统环境';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."METHOD" IS '操作方式';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."REQUEST_URI" IS '请求URI';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."USER_AGENT" IS '用户代理';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."STACK_TRACE" IS '堆栈';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."EXCEPTION_NAME" IS '异常名';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."MESSAGE" IS '异常信息';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."LINE_NUMBER" IS '错误行数';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."REMOTE_IP" IS '操作IP地址';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."METHOD_CLASS" IS '方法类';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."FILE_NAME" IS '文件名';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."METHOD_NAME" IS '方法名';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."PARAMS" IS '操作提交的数据';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."CREATE_BY" IS '创建者';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."CREATE_TIME" IS '创建时间';
+COMMENT ON TABLE "BLADE_LOG_ERROR" IS '错误日志表';
+
+-- ----------------------------
+-- Table structure for BLADE_LOG_USUAL
+-- ----------------------------
+-- DROP TABLE "BLADE_LOG_USUAL";
+CREATE TABLE "BLADE_LOG_USUAL" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "SERVICE_ID" NVARCHAR2(32) ,
+  "SERVER_HOST" NVARCHAR2(255) ,
+  "SERVER_IP" NVARCHAR2(255) ,
+  "ENV" NVARCHAR2(255) ,
+  "LOG_LEVEL" NVARCHAR2(10) ,
+  "LOG_ID" NVARCHAR2(100) ,
+  "LOG_DATA" NCLOB ,
+  "METHOD" NVARCHAR2(10) ,
+  "REQUEST_URI" NVARCHAR2(255) ,
+  "REMOTE_IP" NVARCHAR2(255) ,
+  "METHOD_CLASS" NVARCHAR2(255) ,
+  "METHOD_NAME" NVARCHAR2(255) ,
+  "USER_AGENT" NVARCHAR2(1000) ,
+  "PARAMS" NCLOB ,
+  "CREATE_BY" NVARCHAR2(64) ,
+  "CREATE_TIME" DATE
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."ID" IS '编号';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."SERVICE_ID" IS '服务ID';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."SERVER_HOST" IS '服务器名';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."SERVER_IP" IS '服务器IP地址';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."ENV" IS '系统环境';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."LOG_LEVEL" IS '日志级别';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."LOG_ID" IS '日志业务ID';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."LOG_DATA" IS '日志数据';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."METHOD" IS '操作方式';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."REQUEST_URI" IS '请求URI';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."REMOTE_IP" IS '操作IP地址';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."METHOD_CLASS" IS '方法类';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."METHOD_NAME" IS '方法名';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."USER_AGENT" IS '用户代理';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."PARAMS" IS '操作提交的数据';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."CREATE_BY" IS '创建者';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."CREATE_TIME" IS '创建时间';
+COMMENT ON TABLE "BLADE_LOG_USUAL" IS '通用日志表';
+
+-- ----------------------------
+-- Table structure for BLADE_MENU
+-- ----------------------------
+-- DROP TABLE "BLADE_MENU";
+CREATE TABLE "BLADE_MENU" (
+  "ID" NUMBER(20) NOT NULL ,
+  "PARENT_ID" NUMBER(20) ,
+  "CODE" NVARCHAR2(255) ,
+  "NAME" NVARCHAR2(255) ,
+  "ALIAS" NVARCHAR2(255) ,
+  "PATH" NVARCHAR2(255) ,
+  "SOURCE" NVARCHAR2(255) ,
+  "SORT" NUMBER(11) ,
+  "CATEGORY" NUMBER(11) ,
+  "ACTION" NUMBER(11) ,
+  "IS_OPEN" NUMBER(11) ,
+  "COMPONENT" NVARCHAR2(255) ,
+  "REMARK" NVARCHAR2(255) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_MENU"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_MENU"."PARENT_ID" IS '父级菜单';
+COMMENT ON COLUMN "BLADE_MENU"."CODE" IS '菜单编号';
+COMMENT ON COLUMN "BLADE_MENU"."NAME" IS '菜单名称';
+COMMENT ON COLUMN "BLADE_MENU"."ALIAS" IS '菜单别名';
+COMMENT ON COLUMN "BLADE_MENU"."PATH" IS '请求地址';
+COMMENT ON COLUMN "BLADE_MENU"."SOURCE" IS '菜单资源';
+COMMENT ON COLUMN "BLADE_MENU"."SORT" IS '排序';
+COMMENT ON COLUMN "BLADE_MENU"."CATEGORY" IS '菜单类型';
+COMMENT ON COLUMN "BLADE_MENU"."ACTION" IS '操作按钮类型';
+COMMENT ON COLUMN "BLADE_MENU"."IS_OPEN" IS '是否打开新页面';
+COMMENT ON COLUMN "BLADE_MENU"."COMPONENT" IS '组件地址';
+COMMENT ON COLUMN "BLADE_MENU"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_MENU"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_MENU" IS '菜单表';
+
+-- ----------------------------
+-- Records of BLADE_MENU
+-- ----------------------------
+INSERT INTO "BLADE_MENU" VALUES ('1161272593873321995', '1161272593873321991', 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1161272593873321996', '1123598815738675217', 'model', '数据模型设计', 'menu', '/tool/model', 'iconfont icon-biaodan', '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733369658963251', '1123598815738675210', 'elk', 'ELK监控', 'menu', 'http://localhost:5601/', 'iconfont iconicon_cspace', '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962201', '1123598815738675298', 'attach', '附件管理', 'menu', '/resource/attach', 'iconfont iconicon_ding', '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962202', '1164733399669962201', 'attach_upload', '上传', 'upload', '/resource/attach/upload', NULL, '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962203', '1164733399669962201', 'attach_download', '下载', 'download', '/resource/attach/download', NULL, '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962204', '1164733399669962201', 'attach_delete', '删除', 'delete', '/api/blade-resource/attach/remove', NULL, '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733369658963252', '1123598815738675210', 'zipkin', 'Zipkin监控', 'menu', 'http://localhost:9411/', 'iconfont iconicon_task', '4', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733369658963253', '1123598815738675210', 'turbine', 'Turbine监控', 'menu', 'http://localhost:7003/hystrix', 'iconfont iconicon_subordinate', '5', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733369658963254', '1123598815738675210', 'sentinel', 'Sentinel管理', 'menu', 'http://localhost:8858', 'iconfont iconicon_safety', '6', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733369658963255', '1123598815738675210', 'es', 'Elasticsearch管理', 'menu', 'http://localhost:9100/', 'iconfont iconfont iconicon_search', '7', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733379658963251', '1123598815738675203', 'dictbiz', '业务字典', 'menu', '/system/dictbiz', 'iconfont iconicon_study', '5', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733379658963252', '1164733379658963251', 'dictbiz_add', '新增', 'add', '/system/dictbiz/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733379658963253', '1164733379658963251', 'dictbiz_edit', '修改', 'edit', '/system/dictbiz/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733379658963254', '1164733379658963251', 'dictbiz_delete', '删除', 'delete', '/api/blade-system/dict-biz/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733379658963255', '1164733379658963251', 'dictbiz_view', '查看', 'view', '/system/dictbiz/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389658963251', '1123598815738675298', 'xxljob', '任务调度', 'menu', 'http://localhost:7009/xxl-job-admin', 'iconfont iconicon_cspace', '5', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675201', '0', 'desk', '工作台', 'menu', '/desk', 'iconfont iconicon_airplay', '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675202', '1123598815738675201', 'notice', '通知公告', 'menu', '/desk/notice', 'iconfont iconicon_sms', '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675203', '0', 'system', '系统管理', 'menu', '/system', 'iconfont iconicon_setting', '99', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675204', '1123598815738675203', 'user', '用户管理', 'menu', '/system/user', 'iconfont iconicon_principal', '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675205', '1123598815738675203', 'dept', '机构管理', 'menu', '/system/dept', 'iconfont iconicon_group', '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675206', '1123598815738675203', 'dict', '系统字典', 'menu', '/system/dict', 'iconfont iconicon_addresslist', '4', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675207', '1123598815738675203', 'menu', '菜单管理', 'menu', '/system/menu', 'iconfont iconicon_subordinate', '6', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675208', '1123598815738675203', 'topmenu', '顶部菜单', 'menu', '/system/topmenu', 'iconfont icon-canshu', '7', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675209', '1123598815738675203', 'param', '参数管理', 'menu', '/system/param', 'iconfont iconicon_community_line', '8', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675210', '0', 'monitor', '系统监控', 'menu', '/monitor', 'iconfont icon-yanzhengma', '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675211', '1123598815738675210', 'doc', '接口文档', 'menu', 'http://localhost:18000/doc.html', 'iconfont iconicon_study', '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675212', '1123598815738675210', 'admin', '服务治理', 'menu', 'http://localhost:7002', 'iconfont icon-canshu', '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675213', '1123598815738675210', 'log', '日志管理', 'menu', '/monitor/log', 'iconfont iconicon_doc', '8', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675214', '1123598815738675213', 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675215', '1123598815738675213', 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675216', '1123598815738675213', 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675217', '0', 'tool', '研发工具', 'menu', '/tool', 'iconfont icon-wxbgongju', '4', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675218', '1123598815738675217', 'code', '代码生成', 'menu', '/tool/code', 'iconfont iconicon_savememo', '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675219', '1123598815738675202', 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675220', '1123598815738675202', 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675221', '1123598815738675202', 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675222', '1123598815738675202', 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675223', '1123598815738675204', 'user_add', '新增', 'add', '/system/user/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389668962251', '1123598815738675203', 'post', '岗位管理', 'menu', '/system/post', 'iconfont iconicon_message', '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389668962252', '1164733389668962251', 'post_add', '新增', 'add', '/system/post/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389668962253', '1164733389668962251', 'post_edit', '修改', 'edit', '/system/post/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389668962254', '1164733389668962251', 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389668962255', '1164733389668962251', 'post_view', '查看', 'view', '/system/post/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399668962201', '0', 'base', '基础配置', 'menu', '/base', 'iconfont iconicon_affiliations_li', '97', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399668962202', '1164733399668962201', 'region', '行政区划', 'menu', '/base/region', 'iconfont icon-iframe', '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399668962203', '1164733399668962202', 'region_add', '新增下级', 'add', NULL, NULL, '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399668962204', '1164733399668962202', 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', NULL, '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399668962205', '1164733399668962202', 'region_import', '导入', 'import', NULL, NULL, '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399668962206', '1164733399668962202', 'region_export', '导出', 'export', NULL, NULL, '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399668962207', '1164733399668962202', 'region_debug', '调试', 'debug', NULL, NULL, '5', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675224', '1123598815738675204', 'user_edit', '修改', 'edit', '/system/user/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675225', '1123598815738675204', 'user_delete', '删除', 'delete', '/api/blade-user/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675226', '1123598815738675204', 'user_role', '角色配置', 'role', NULL, 'user-add', '4', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675227', '1123598815738675204', 'user_reset', '密码重置', 'reset-password', '/api/blade-user/reset-password', 'retweet', '5', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675228', '1123598815738675204', 'user_view', '查看', 'view', '/system/user/view', 'file-text', '6', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675229', '1123598815738675205', 'dept_add', '新增', 'add', '/system/dept/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675230', '1123598815738675205', 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675231', '1123598815738675205', 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675232', '1123598815738675205', 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675233', '1123598815738675206', 'dict_add', '新增', 'add', '/system/dict/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675234', '1123598815738675206', 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675235', '1123598815738675206', 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675236', '1123598815738675206', 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675237', '1123598815738675207', 'menu_add', '新增', 'add', '/system/menu/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675238', '1123598815738675207', 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675239', '1123598815738675207', 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675240', '1123598815738675207', 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675241', '1123598815738675308', 'role_add', '新增', 'add', '/authority/role/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675242', '1123598815738675308', 'role_edit', '修改', 'edit', '/authority/role/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675243', '1123598815738675308', 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675244', '1123598815738675308', 'role_view', '查看', 'view', '/authority/role/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675245', '1123598815738675209', 'param_add', '新增', 'add', '/system/param/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675246', '1123598815738675209', 'param_edit', '修改', 'edit', '/system/param/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675247', '1123598815738675209', 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675248', '1123598815738675209', 'param_view', '查看', 'view', '/system/param/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675249', '1123598815738675214', 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675250', '1123598815738675215', 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675251', '1123598815738675216', 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675252', '1123598815738675218', 'code_add', '新增', 'add', '/tool/code/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675253', '1123598815738675218', 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675254', '1123598815738675218', 'code_delete', '删除', 'delete', '/api/blade-system/code/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675255', '1123598815738675218', 'code_view', '查看', 'view', '/tool/code/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675256', '1123598815738675203', 'tenant', '租户管理', 'menu', '/system/tenant', 'iconfont icon-quanxian', '9', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675257', '1123598815738675256', 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675258', '1123598815738675256', 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675259', '1123598815738675256', 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675260', '1123598815738675256', 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675261', '1123598815738675203', 'client', '应用管理', 'menu', '/system/client', 'iconfont iconicon_mobilephone', '10', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675262', '1123598815738675261', 'client_add', '新增', 'add', '/system/client/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675263', '1123598815738675261', 'client_edit', '修改', 'edit', '/system/client/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675264', '1123598815738675261', 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675265', '1123598815738675261', 'client_view', '查看', 'view', '/system/client/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675266', '0', 'flow', '流程管理', 'menu', '/flow', 'iconfont iconicon_send', '5', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675267', '1123598815738675266', 'flow_model', '模型管理', 'menu', '/flow/model', 'iconfont iconicon_discovery', '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675268', '1123598815738675267', 'flow_model_create', '创建', 'create', NULL, 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675269', '1123598815738675267', 'flow_model_update', '编辑', 'update', NULL, 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675270', '1123598815738675267', 'flow_model_deploy', '部署', 'deploy', NULL, 'cloud-upload', '3', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675271', '1123598815738675267', 'flow_model_download', '下载', 'download', NULL, 'download', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675272', '1123598815738675267', 'flow_model_delete', '删除', 'delete', '/api/blade-flow/model/remove', 'delete', '5', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675273', '1123598815738675266', 'flow_deploy', '流程部署', 'menu', '/flow/deploy', 'iconfont iconicon_cspace', '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675274', '1123598815738675266', 'flow_manager', '流程管理', 'menu', '/flow/manager', 'iconfont iconicon_cloud_history', '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675275', '1123598815738675274', 'flow_manager_state', '变更状态', 'state', NULL, 'plus', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675276', '1123598815738675274', 'flow_manager_image', '流程图', 'image', NULL, 'image', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675277', '1123598815738675274', 'flow_manager_remove', '删除', 'remove', NULL, 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675278', '1123598815738675266', 'flow_follow', '流程跟踪', 'menu', '/flow/follow', 'iconfont iconicon_GPS', '4', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675279', '1123598815738675278', 'flow_follow_delete', '删除', 'remove', NULL, 'remove', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675280', '0', 'work', '我的事务', 'menu', '/work', 'iconfont iconicon_notice', '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675281', '1123598815738675280', 'work_start', '发起事务', 'menu', '/work/start', 'iconfont iconicon_compile', '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675282', '1123598815738675281', 'work_start_flow', '发起', 'flow', NULL, 'flow', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675283', '1123598815738675281', 'work_start_image', '流程图', 'image', NULL, 'image', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962301', '0', 'report', '报表管理', 'menu', '/report', 'iconfont icon-shujuzhanshi2', '5', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962302', '1164733399669962301', 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', 'iconfont icon-rizhi', '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962303', '1164733399669962301', 'report_list', '报表列表', 'menu', '/report/reportlist', 'iconfont icon-biaodan', '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962304', '1164733399669962301', 'report_notice', '公告报表', 'menu', 'http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml', 'iconfont iconicon_sms', '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675284', '1123598815738675280', 'work_claim', '待签事务', 'menu', '/work/claim', 'iconfont iconicon_ding', '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675285', '1123598815738675284', 'work_claim_sign', '签收', 'sign', NULL, 'sign', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675286', '1123598815738675284', 'work_claim_detail', '详情', 'detail', NULL, 'detail', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675287', '1123598815738675284', 'work_claim_follow', '跟踪', 'follow', NULL, 'follow', '3', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675288', '1123598815738675280', 'work_todo', '待办事务', 'menu', '/work/todo', 'iconfont iconicon_savememo', '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675289', '1123598815738675288', 'work_todo_handle', '办理', 'handle', NULL, 'handle', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675290', '1123598815738675288', 'work_todo_detail', '详情', 'detail', NULL, 'detail', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675291', '1123598815738675288', 'work_todo_follow', '跟踪', 'follow', NULL, 'follow', '3', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675292', '1123598815738675280', 'work_send', '已发事务', 'menu', '/work/send', 'iconfont iconicon_doc', '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675293', '1123598815738675292', 'work_send_detail', '详情', 'detail', NULL, 'detail', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675294', '1123598815738675292', 'work_send_follow', '跟踪', 'follow', NULL, 'follow', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675295', '1123598815738675280', 'work_done', '办结事务', 'menu', '/work/done', 'iconfont iconicon_dispose', '4', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675296', '1123598815738675295', 'work_done_detail', '详情', 'detail', NULL, 'detail', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675297', '1123598815738675295', 'work_done_follow', '跟踪', 'follow', NULL, 'follow', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675298', '0', 'resource', '资源管理', 'menu', '/resource', 'iconfont iconicon_coinpurse_line', '6', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675299', '1123598815738675298', 'oss', '对象存储', 'menu', '/resource/oss', 'iconfont iconicon_subordinate', '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675301', '1123598815738675299', 'oss_add', '新增', 'add', '/resource/oss/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675302', '1123598815738675299', 'oss_edit', '修改', 'edit', '/resource/oss/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675303', '1123598815738675299', 'oss_delete', '删除', 'delete', '/api/blade-resource/oss/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675304', '1123598815738675299', 'oss_view', '查看', 'view', '/resource/oss/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675305', '1123598815738675299', 'oss_enable', '启用', 'enable', '/api/blade-resource/oss/enable', 'key', '5', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675307', '0', 'authority', '权限管理', 'menu', '/authority', 'iconfont icon-bofangqi-suoping', '98', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675308', '1123598815738675307', 'role', '角色管理', 'menu', '/authority/role', 'iconfont iconicon_boss', '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675309', '1123598815738675307', 'data_scope', '数据权限', 'menu', '/authority/datascope', 'iconfont icon-shujuzhanshi2', '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389658962251', '1123598815738675298', 'sms', '短信配置', 'menu', '/resource/sms', 'iconfont iconicon_message', '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389658962252', '1164733389658962251', 'sms_add', '新增', 'add', '/resource/sms/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389658962253', '1164733389658962251', 'sms_edit', '修改', 'edit', '/resource/sms/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389658962254', '1164733389658962251', 'sms_delete', '删除', 'delete', '/api/blade-resource/sms/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389658962255', '1164733389658962251', 'sms_view', '查看', 'view', '/resource/sms/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389658962256', '1164733389658962251', 'sms_enable', '启用', 'enable', '/api/blade-resource/sms/enable', 'key', '5', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675310', '1123598815738675309', 'data_scope_setting', '权限配置', 'setting', NULL, 'setting', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675311', '1123598815738675307', 'api_scope', '接口权限', 'menu', '/authority/apiscope', 'iconfont icon-iconset0216', '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675312', '1123598815738675311', 'api_scope_setting', '权限配置', 'setting', NULL, 'setting', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675313', '1123598815738675208', 'topmenu_add', '新增', 'add', '/system/topmenu/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675314', '1123598815738675208', 'topmenu_edit', '修改', 'edit', '/system/topmenu/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675315', '1123598815738675208', 'topmenu_delete', '删除', 'delete', '/api/blade-system/topmenu/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675316', '1123598815738675208', 'topmenu_view', '查看', 'view', '/system/topmenu/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675317', '1123598815738675208', 'topmenu_setting', '菜单配置', 'setting', NULL, 'setting', '5', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1161272593873321991', '1123598815738675217', 'datasource', '数据源管理', 'menu', '/tool/datasource', 'iconfont icon-caidanguanli', '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1161272593873321992', '1161272593873321991', 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1161272593873321993', '1161272593873321991', 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1161272593873321994', '1161272593873321991', 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_MODEL
+-- ----------------------------
+-- DROP TABLE "BLADE_MODEL";
+CREATE TABLE "BLADE_MODEL" (
+  "ID" NUMBER(20) NOT NULL ,
+  "DATASOURCE_ID" NUMBER(20) ,
+  "MODEL_NAME" NVARCHAR2(50) ,
+  "MODEL_CODE" NVARCHAR2(50) ,
+  "MODEL_TABLE" NVARCHAR2(100) ,
+  "MODEL_CLASS" NVARCHAR2(100) ,
+  "MODEL_REMARK" NVARCHAR2(500) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_MODEL"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_MODEL"."DATASOURCE_ID" IS '数据源主键';
+COMMENT ON COLUMN "BLADE_MODEL"."MODEL_NAME" IS '模型名称';
+COMMENT ON COLUMN "BLADE_MODEL"."MODEL_CODE" IS '模型编号';
+COMMENT ON COLUMN "BLADE_MODEL"."MODEL_TABLE" IS '物理表名';
+COMMENT ON COLUMN "BLADE_MODEL"."MODEL_CLASS" IS '模型类名';
+COMMENT ON COLUMN "BLADE_MODEL"."MODEL_REMARK" IS '模型备注';
+COMMENT ON COLUMN "BLADE_MODEL"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_MODEL"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_MODEL"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_MODEL"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_MODEL"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_MODEL"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_MODEL"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_MODEL" IS '数据模型表';
+
+-- ----------------------------
+-- Table structure for BLADE_MODEL_PROTOTYPE
+-- ----------------------------
+-- DROP TABLE "BLADE_MODEL_PROTOTYPE";
+CREATE TABLE "BLADE_MODEL_PROTOTYPE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "MODEL_ID" NUMBER(20) ,
+  "JDBC_NAME" NVARCHAR2(50) ,
+  "JDBC_TYPE" NVARCHAR2(20) ,
+  "COMMENT" NVARCHAR2(500) ,
+  "PROPERTY_TYPE" NVARCHAR2(20) ,
+  "PROPERTY_ENTITY" NVARCHAR2(500) ,
+  "PROPERTY_NAME" NVARCHAR2(50) ,
+  "IS_LIST" NUMBER(11) ,
+  "IS_FORM" NUMBER(11) ,
+  "IS_ROW" NUMBER(11) ,
+  "COMPONENT_TYPE" NVARCHAR2(50) ,
+  "DICT_CODE" NVARCHAR2(50) ,
+  "IS_REQUIRED" NUMBER(11) ,
+  "IS_QUERY" NUMBER(11) ,
+  "QUERY_TYPE" NVARCHAR2(50) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."MODEL_ID" IS '模型主键';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."JDBC_NAME" IS '物理列名';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."JDBC_TYPE" IS '物理类型';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."COMMENT" IS '注释说明';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."PROPERTY_TYPE" IS '实体类型';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."PROPERTY_ENTITY" IS '实体类型引用';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."PROPERTY_NAME" IS '实体列名';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_LIST" IS '列表显示';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_FORM" IS '表单显示';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_ROW" IS '独占一行';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."COMPONENT_TYPE" IS '组件类型';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."DICT_CODE" IS '字典编码';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_REQUIRED" IS '是否必填';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_QUERY" IS '查询配置';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."QUERY_TYPE" IS '查询类型';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_MODEL_PROTOTYPE" IS '数据原型表';
+
+-- ----------------------------
+-- Table structure for BLADE_NOTICE
+-- ----------------------------
+-- DROP TABLE "BLADE_NOTICE";
+CREATE TABLE "BLADE_NOTICE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "TITLE" NVARCHAR2(255) ,
+  "CATEGORY" NUMBER(11) ,
+  "RELEASE_TIME" DATE ,
+  "CONTENT" NVARCHAR2(2000) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_NOTICE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_NOTICE"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_NOTICE"."TITLE" IS '标题';
+COMMENT ON COLUMN "BLADE_NOTICE"."CATEGORY" IS '类型';
+COMMENT ON COLUMN "BLADE_NOTICE"."RELEASE_TIME" IS '发布时间';
+COMMENT ON COLUMN "BLADE_NOTICE"."CONTENT" IS '内容';
+COMMENT ON COLUMN "BLADE_NOTICE"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_NOTICE"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_NOTICE"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_NOTICE"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_NOTICE"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_NOTICE"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_NOTICE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_NOTICE" IS '通知公告表';
+
+-- ----------------------------
+-- Records of BLADE_NOTICE
+-- ----------------------------
+INSERT INTO "BLADE_NOTICE" VALUES ('1123598818738675223', '000000', '测试公告', '3', TO_DATE('2018-12-31 20:03:31', 'SYYYY-MM-DD HH24:MI:SS'), '222', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-05 20:03:31', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 11:10:51', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_NOTICE" VALUES ('1123598818738675224', '000000', '测试公告2', '1', TO_DATE('2018-12-05 20:03:31', 'SYYYY-MM-DD HH24:MI:SS'), '333', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 10:32:26', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 11:10:34', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_NOTICE" VALUES ('1123598818738675225', '000000', '测试公告3', '6', TO_DATE('2018-12-29 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '11111', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 11:03:44', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 11:10:28', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_OSS
+-- ----------------------------
+-- DROP TABLE "BLADE_OSS";
+CREATE TABLE "BLADE_OSS" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "CATEGORY" NUMBER(11) ,
+  "OSS_CODE" NVARCHAR2(32) ,
+  "ENDPOINT" NVARCHAR2(255) ,
+  "ACCESS_KEY" NVARCHAR2(255) ,
+  "SECRET_KEY" NVARCHAR2(255) ,
+  "BUCKET_NAME" NVARCHAR2(255) ,
+  "APP_ID" NVARCHAR2(255) ,
+  "REGION" NVARCHAR2(255) ,
+  "REMARK" NVARCHAR2(255) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_OSS"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_OSS"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_OSS"."CATEGORY" IS '分类';
+COMMENT ON COLUMN "BLADE_OSS"."OSS_CODE" IS '资源编号';
+COMMENT ON COLUMN "BLADE_OSS"."ENDPOINT" IS '资源地址';
+COMMENT ON COLUMN "BLADE_OSS"."ACCESS_KEY" IS 'accessKey';
+COMMENT ON COLUMN "BLADE_OSS"."SECRET_KEY" IS 'secretKey';
+COMMENT ON COLUMN "BLADE_OSS"."BUCKET_NAME" IS '空间名';
+COMMENT ON COLUMN "BLADE_OSS"."APP_ID" IS '应用ID';
+COMMENT ON COLUMN "BLADE_OSS"."REGION" IS '地域简称';
+COMMENT ON COLUMN "BLADE_OSS"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_OSS"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_OSS"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_OSS"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_OSS"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_OSS"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_OSS"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_OSS"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_OSS" IS '对象存储表';
+
+-- ----------------------------
+-- Records of BLADE_OSS
+-- ----------------------------
+INSERT INTO "BLADE_OSS" VALUES ('1132486733992468482', '000000', '1', 'minio', 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:20:52', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-05-27 08:34:55', 'SYYYY-MM-DD HH24:MI:SS'), '2', '0');
+INSERT INTO "BLADE_OSS" VALUES ('1132487155981393922', '000000', '2', 'qiniu', 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:22:33', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-05-26 23:27:56', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_PARAM
+-- ----------------------------
+-- DROP TABLE "BLADE_PARAM";
+CREATE TABLE "BLADE_PARAM" (
+  "ID" NUMBER(20) NOT NULL ,
+  "PARAM_NAME" NVARCHAR2(255) ,
+  "PARAM_KEY" NVARCHAR2(255) ,
+  "PARAM_VALUE" NVARCHAR2(255) ,
+  "REMARK" NVARCHAR2(255) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_PARAM"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_PARAM"."PARAM_NAME" IS '参数名';
+COMMENT ON COLUMN "BLADE_PARAM"."PARAM_KEY" IS '参数键';
+COMMENT ON COLUMN "BLADE_PARAM"."PARAM_VALUE" IS '参数值';
+COMMENT ON COLUMN "BLADE_PARAM"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_PARAM"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_PARAM"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_PARAM"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_PARAM"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_PARAM"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_PARAM"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_PARAM"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_PARAM" IS '参数表';
+
+-- ----------------------------
+-- Records of BLADE_PARAM
+-- ----------------------------
+INSERT INTO "BLADE_PARAM" VALUES ('1123598819738675201', '是否开启注册功能', 'account.registerUser', 'true', '开启注册', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_PARAM" VALUES ('1123598819738675202', '账号初始密码', 'account.initPassword', '123456', '初始密码', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_PARAM" VALUES ('1123598819738675203', '账号错误锁定次数', 'account.failCount', '5', '锁定次数', '1123598821738675201', '1123598813738675201', TO_DATE('2021-12-01 12:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2021-12-01 12:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_PARAM" VALUES ('1238706101399142402', '租户默认管理密码', 'tenant.default.password', 'admin', NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2020-03-14 13:58:43', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-03-14 13:58:43', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_PARAM" VALUES ('1238706160295559170', '租户默认账号额度', 'tenant.default.accountNumber', '100', NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2020-03-14 13:58:57', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-03-14 13:58:57', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_PARAM" VALUES ('1238706330076790786', '租户默认菜单集合', 'tenant.default.menuCode', 'desk,flow,work,monitor,resource,role,user,dept,post,dictbiz,topmenu', NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2020-03-14 13:59:38', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-03-14 13:59:38', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_POST
+-- ----------------------------
+-- DROP TABLE "BLADE_POST";
+CREATE TABLE "BLADE_POST" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "CATEGORY" NUMBER(11) ,
+  "POST_CODE" VARCHAR2(12 BYTE) ,
+  "POST_NAME" VARCHAR2(64 BYTE) ,
+  "SORT" NUMBER(11) ,
+  "REMARK" NVARCHAR2(255) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_POST"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_POST"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_POST"."CATEGORY" IS '岗位类型';
+COMMENT ON COLUMN "BLADE_POST"."POST_CODE" IS '岗位编号';
+COMMENT ON COLUMN "BLADE_POST"."POST_NAME" IS '岗位名称';
+COMMENT ON COLUMN "BLADE_POST"."SORT" IS '岗位排序';
+COMMENT ON COLUMN "BLADE_POST"."REMARK" IS '岗位描述';
+COMMENT ON COLUMN "BLADE_POST"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_POST"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_POST"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_POST"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_POST"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_POST"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_POST"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_POST" IS '岗位表';
+
+-- ----------------------------
+-- Records of BLADE_POST
+-- ----------------------------
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675201', '000000', '1', 'ceo', '首席执行官', '1', '总经理', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675202', '000000', '1', 'coo', '首席运营官', '2', '常务总经理', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675203', '000000', '1', 'cfo', '首席财务官', '3', '财务总经理', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675204', '000000', '1', 'cto', '首席技术官', '4', '技术总监', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675205', '000000', '1', 'cio', '首席信息官', '5', '信息总监', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675206', '000000', '2', 'pm', '技术经理', '6', '研发和产品是永远的朋友', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675207', '000000', '2', 'hrm', '人力经理', '7', '人力资源部门工作管理者', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675208', '000000', '3', 'staff', '普通员工', '8', '普通员工', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_PROCESS_LEAVE
+-- ----------------------------
+-- DROP TABLE "BLADE_PROCESS_LEAVE";
+CREATE TABLE "BLADE_PROCESS_LEAVE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "PROCESS_DEFINITION_ID" NVARCHAR2(64) ,
+  "PROCESS_INSTANCE_ID" NVARCHAR2(64) ,
+  "START_TIME" DATE ,
+  "END_TIME" DATE ,
+  "REASON" NVARCHAR2(255) ,
+  "TASK_USER" NVARCHAR2(255) ,
+  "apply_TIME" DATE ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."ID" IS '编号';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."PROCESS_DEFINITION_ID" IS '流程定义主键';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."PROCESS_INSTANCE_ID" IS '流程实例主键';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."START_TIME" IS '开始时间';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."END_TIME" IS '结束时间';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."REASON" IS '请假理由';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."TASK_USER" IS '第一级审批人';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."apply_TIME" IS '申请时间';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_PROCESS_LEAVE" IS '流程请假业务表';
+
+-- ----------------------------
+-- Table structure for BLADE_REGION
+-- ----------------------------
+-- DROP TABLE "BLADE_REGION";
+CREATE TABLE "BLADE_REGION" (
+  "CODE" VARCHAR2(12 BYTE) NOT NULL ,
+  "PARENT_CODE" VARCHAR2(12 BYTE) ,
+  "ANCESTORS" VARCHAR2(255 BYTE) ,
+  "NAME" VARCHAR2(64 BYTE) ,
+  "PROVINCE_CODE" VARCHAR2(12 BYTE) ,
+  "PROVINCE_NAME" VARCHAR2(64 BYTE) ,
+  "CITY_CODE" VARCHAR2(12 BYTE) ,
+  "CITY_NAME" VARCHAR2(64 BYTE) ,
+  "DISTRICT_CODE" VARCHAR2(12 BYTE) ,
+  "DISTRICT_NAME" VARCHAR2(64 BYTE) ,
+  "TOWN_CODE" VARCHAR2(12 BYTE) ,
+  "TOWN_NAME" VARCHAR2(64 BYTE) ,
+  "VILLAGE_CODE" VARCHAR2(12 BYTE) ,
+  "VILLAGE_NAME" VARCHAR2(64 BYTE) ,
+  "REGION_LEVEL" NUMBER(11) NOT NULL ,
+  "SORT" NUMBER(11) NOT NULL ,
+  "REMARK" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_REGION"."CODE" IS '区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."PARENT_CODE" IS '父区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."ANCESTORS" IS '祖区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."NAME" IS '区划名称';
+COMMENT ON COLUMN "BLADE_REGION"."PROVINCE_CODE" IS '省级区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."PROVINCE_NAME" IS '省级名称';
+COMMENT ON COLUMN "BLADE_REGION"."CITY_CODE" IS '市级区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."CITY_NAME" IS '市级名称';
+COMMENT ON COLUMN "BLADE_REGION"."DISTRICT_CODE" IS '区级区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."DISTRICT_NAME" IS '区级名称';
+COMMENT ON COLUMN "BLADE_REGION"."TOWN_CODE" IS '镇级区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."TOWN_NAME" IS '镇级名称';
+COMMENT ON COLUMN "BLADE_REGION"."VILLAGE_CODE" IS '村级区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."VILLAGE_NAME" IS '村级名称';
+COMMENT ON COLUMN "BLADE_REGION"."REGION_LEVEL" IS '层级';
+COMMENT ON COLUMN "BLADE_REGION"."SORT" IS '排序';
+COMMENT ON COLUMN "BLADE_REGION"."REMARK" IS '备注';
+COMMENT ON TABLE "BLADE_REGION" IS '行政区划表';
+
+-- ----------------------------
+-- Records of BLADE_REGION
+-- ----------------------------
+INSERT INTO "BLADE_REGION" VALUES ('140221', '1402', '00,14,1402', '阳高县', '14', '山西省', '1402', '大同市', '140221', '阳高县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140222', '1402', '00,14,1402', '天镇县', '14', '山西省', '1402', '大同市', '140222', '天镇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140223', '1402', '00,14,1402', '广灵县', '14', '山西省', '1402', '大同市', '140223', '广灵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140224', '1402', '00,14,1402', '灵丘县', '14', '山西省', '1402', '大同市', '140224', '灵丘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140225', '1402', '00,14,1402', '浑源县', '14', '山西省', '1402', '大同市', '140225', '浑源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140226', '1402', '00,14,1402', '左云县', '14', '山西省', '1402', '大同市', '140226', '左云县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1403', '14', '00,14', '阳泉市', '14', '山西省', '1403', '阳泉市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140302', '1403', '00,14,1403', '城区', '14', '山西省', '1403', '阳泉市', '140302', '城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140303', '1403', '00,14,1403', '矿区', '14', '山西省', '1403', '阳泉市', '140303', '矿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140311', '1403', '00,14,1403', '郊区', '14', '山西省', '1403', '阳泉市', '140311', '郊区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140321', '1403', '00,14,1403', '平定县', '14', '山西省', '1403', '阳泉市', '140321', '平定县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140322', '1403', '00,14,1403', '盂县', '14', '山西省', '1403', '阳泉市', '140322', '盂县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1404', '14', '00,14', '长治市', '14', '山西省', '1404', '长治市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140403', '1404', '00,14,1404', '潞州区', '14', '山西省', '1404', '长治市', '140403', '潞州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140404', '1404', '00,14,1404', '上党区', '14', '山西省', '1404', '长治市', '140404', '上党区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140405', '1404', '00,14,1404', '屯留区', '14', '山西省', '1404', '长治市', '140405', '屯留区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140406', '1404', '00,14,1404', '潞城区', '14', '山西省', '1404', '长治市', '140406', '潞城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140423', '1404', '00,14,1404', '襄垣县', '14', '山西省', '1404', '长治市', '140423', '襄垣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140425', '1404', '00,14,1404', '平顺县', '14', '山西省', '1404', '长治市', '140425', '平顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140426', '1404', '00,14,1404', '黎城县', '14', '山西省', '1404', '长治市', '140426', '黎城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140427', '1404', '00,14,1404', '壶关县', '14', '山西省', '1404', '长治市', '140427', '壶关县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140428', '1404', '00,14,1404', '长子县', '14', '山西省', '1404', '长治市', '140428', '长子县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140429', '1404', '00,14,1404', '武乡县', '14', '山西省', '1404', '长治市', '140429', '武乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140430', '1404', '00,14,1404', '沁县', '14', '山西省', '1404', '长治市', '140430', '沁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140431', '1404', '00,14,1404', '沁源县', '14', '山西省', '1404', '长治市', '140431', '沁源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1405', '14', '00,14', '晋城市', '14', '山西省', '1405', '晋城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140502', '1405', '00,14,1405', '城区', '14', '山西省', '1405', '晋城市', '140502', '城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140521', '1405', '00,14,1405', '沁水县', '14', '山西省', '1405', '晋城市', '140521', '沁水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140522', '1405', '00,14,1405', '阳城县', '14', '山西省', '1405', '晋城市', '140522', '阳城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140524', '1405', '00,14,1405', '陵川县', '14', '山西省', '1405', '晋城市', '140524', '陵川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140525', '1405', '00,14,1405', '泽州县', '14', '山西省', '1405', '晋城市', '140525', '泽州县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140581', '1405', '00,14,1405', '高平市', '14', '山西省', '1405', '晋城市', '140581', '高平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1406', '14', '00,14', '朔州市', '14', '山西省', '1406', '朔州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140602', '1406', '00,14,1406', '朔城区', '14', '山西省', '1406', '朔州市', '140602', '朔城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140603', '1406', '00,14,1406', '平鲁区', '14', '山西省', '1406', '朔州市', '140603', '平鲁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140621', '1406', '00,14,1406', '山阴县', '14', '山西省', '1406', '朔州市', '140621', '山阴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140622', '1406', '00,14,1406', '应县', '14', '山西省', '1406', '朔州市', '140622', '应县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140623', '1406', '00,14,1406', '右玉县', '14', '山西省', '1406', '朔州市', '140623', '右玉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140681', '1406', '00,14,1406', '怀仁市', '14', '山西省', '1406', '朔州市', '140681', '怀仁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1407', '14', '00,14', '晋中市', '14', '山西省', '1407', '晋中市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140702', '1407', '00,14,1407', '榆次区', '14', '山西省', '1407', '晋中市', '140702', '榆次区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140703', '1407', '00,14,1407', '太谷区', '14', '山西省', '1407', '晋中市', '140703', '太谷区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140721', '1407', '00,14,1407', '榆社县', '14', '山西省', '1407', '晋中市', '140721', '榆社县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140722', '1407', '00,14,1407', '左权县', '14', '山西省', '1407', '晋中市', '140722', '左权县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140723', '1407', '00,14,1407', '和顺县', '14', '山西省', '1407', '晋中市', '140723', '和顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140724', '1407', '00,14,1407', '昔阳县', '14', '山西省', '1407', '晋中市', '140724', '昔阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140725', '1407', '00,14,1407', '寿阳县', '14', '山西省', '1407', '晋中市', '140725', '寿阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140727', '1407', '00,14,1407', '祁县', '14', '山西省', '1407', '晋中市', '140727', '祁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140728', '1407', '00,14,1407', '平遥县', '14', '山西省', '1407', '晋中市', '140728', '平遥县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140729', '1407', '00,14,1407', '灵石县', '14', '山西省', '1407', '晋中市', '140729', '灵石县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140781', '1407', '00,14,1407', '介休市', '14', '山西省', '1407', '晋中市', '140781', '介休市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1408', '14', '00,14', '运城市', '14', '山西省', '1408', '运城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140802', '1408', '00,14,1408', '盐湖区', '14', '山西省', '1408', '运城市', '140802', '盐湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140821', '1408', '00,14,1408', '临猗县', '14', '山西省', '1408', '运城市', '140821', '临猗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140822', '1408', '00,14,1408', '万荣县', '14', '山西省', '1408', '运城市', '140822', '万荣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140823', '1408', '00,14,1408', '闻喜县', '14', '山西省', '1408', '运城市', '140823', '闻喜县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140824', '1408', '00,14,1408', '稷山县', '14', '山西省', '1408', '运城市', '140824', '稷山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140825', '1408', '00,14,1408', '新绛县', '14', '山西省', '1408', '运城市', '140825', '新绛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140826', '1408', '00,14,1408', '绛县', '14', '山西省', '1408', '运城市', '140826', '绛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140827', '1408', '00,14,1408', '垣曲县', '14', '山西省', '1408', '运城市', '140827', '垣曲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140828', '1408', '00,14,1408', '夏县', '14', '山西省', '1408', '运城市', '140828', '夏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140829', '1408', '00,14,1408', '平陆县', '14', '山西省', '1408', '运城市', '140829', '平陆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140830', '1408', '00,14,1408', '芮城县', '14', '山西省', '1408', '运城市', '140830', '芮城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140881', '1408', '00,14,1408', '永济市', '14', '山西省', '1408', '运城市', '140881', '永济市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140882', '1408', '00,14,1408', '河津市', '14', '山西省', '1408', '运城市', '140882', '河津市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1409', '14', '00,14', '忻州市', '14', '山西省', '1409', '忻州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140902', '1409', '00,14,1409', '忻府区', '14', '山西省', '1409', '忻州市', '140902', '忻府区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140921', '1409', '00,14,1409', '定襄县', '14', '山西省', '1409', '忻州市', '140921', '定襄县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140922', '1409', '00,14,1409', '五台县', '14', '山西省', '1409', '忻州市', '140922', '五台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140923', '1409', '00,14,1409', '代县', '14', '山西省', '1409', '忻州市', '140923', '代县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140924', '1409', '00,14,1409', '繁峙县', '14', '山西省', '1409', '忻州市', '140924', '繁峙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140925', '1409', '00,14,1409', '宁武县', '14', '山西省', '1409', '忻州市', '140925', '宁武县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140926', '1409', '00,14,1409', '静乐县', '14', '山西省', '1409', '忻州市', '140926', '静乐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140927', '1409', '00,14,1409', '神池县', '14', '山西省', '1409', '忻州市', '140927', '神池县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140928', '1409', '00,14,1409', '五寨县', '14', '山西省', '1409', '忻州市', '140928', '五寨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140929', '1409', '00,14,1409', '岢岚县', '14', '山西省', '1409', '忻州市', '140929', '岢岚县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140930', '1409', '00,14,1409', '河曲县', '14', '山西省', '1409', '忻州市', '140930', '河曲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140931', '1409', '00,14,1409', '保德县', '14', '山西省', '1409', '忻州市', '140931', '保德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140932', '1409', '00,14,1409', '偏关县', '14', '山西省', '1409', '忻州市', '140932', '偏关县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140981', '1409', '00,14,1409', '原平市', '14', '山西省', '1409', '忻州市', '140981', '原平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1410', '14', '00,14', '临汾市', '14', '山西省', '1410', '临汾市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141002', '1410', '00,14,1410', '尧都区', '14', '山西省', '1410', '临汾市', '141002', '尧都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141021', '1410', '00,14,1410', '曲沃县', '14', '山西省', '1410', '临汾市', '141021', '曲沃县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141022', '1410', '00,14,1410', '翼城县', '14', '山西省', '1410', '临汾市', '141022', '翼城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141023', '1410', '00,14,1410', '襄汾县', '14', '山西省', '1410', '临汾市', '141023', '襄汾县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141024', '1410', '00,14,1410', '洪洞县', '14', '山西省', '1410', '临汾市', '141024', '洪洞县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141025', '1410', '00,14,1410', '古县', '14', '山西省', '1410', '临汾市', '141025', '古县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141026', '1410', '00,14,1410', '安泽县', '14', '山西省', '1410', '临汾市', '141026', '安泽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141027', '1410', '00,14,1410', '浮山县', '14', '山西省', '1410', '临汾市', '141027', '浮山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141028', '1410', '00,14,1410', '吉县', '14', '山西省', '1410', '临汾市', '141028', '吉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141029', '1410', '00,14,1410', '乡宁县', '14', '山西省', '1410', '临汾市', '141029', '乡宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141030', '1410', '00,14,1410', '大宁县', '14', '山西省', '1410', '临汾市', '141030', '大宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141031', '1410', '00,14,1410', '隰县', '14', '山西省', '1410', '临汾市', '141031', '隰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141032', '1410', '00,14,1410', '永和县', '14', '山西省', '1410', '临汾市', '141032', '永和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141033', '1410', '00,14,1410', '蒲县', '14', '山西省', '1410', '临汾市', '141033', '蒲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141034', '1410', '00,14,1410', '汾西县', '14', '山西省', '1410', '临汾市', '141034', '汾西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141081', '1410', '00,14,1410', '侯马市', '14', '山西省', '1410', '临汾市', '141081', '侯马市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141082', '1410', '00,14,1410', '霍州市', '14', '山西省', '1410', '临汾市', '141082', '霍州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1411', '14', '00,14', '吕梁市', '14', '山西省', '1411', '吕梁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141102', '1411', '00,14,1411', '离石区', '14', '山西省', '1411', '吕梁市', '141102', '离石区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141121', '1411', '00,14,1411', '文水县', '14', '山西省', '1411', '吕梁市', '141121', '文水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141122', '1411', '00,14,1411', '交城县', '14', '山西省', '1411', '吕梁市', '141122', '交城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141123', '1411', '00,14,1411', '兴县', '14', '山西省', '1411', '吕梁市', '141123', '兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141124', '1411', '00,14,1411', '临县', '14', '山西省', '1411', '吕梁市', '141124', '临县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141125', '1411', '00,14,1411', '柳林县', '14', '山西省', '1411', '吕梁市', '141125', '柳林县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141126', '1411', '00,14,1411', '石楼县', '14', '山西省', '1411', '吕梁市', '141126', '石楼县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141127', '1411', '00,14,1411', '岚县', '14', '山西省', '1411', '吕梁市', '141127', '岚县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141128', '1411', '00,14,1411', '方山县', '14', '山西省', '1411', '吕梁市', '141128', '方山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141129', '1411', '00,14,1411', '中阳县', '14', '山西省', '1411', '吕梁市', '141129', '中阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141130', '1411', '00,14,1411', '交口县', '14', '山西省', '1411', '吕梁市', '141130', '交口县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141181', '1411', '00,14,1411', '孝义市', '14', '山西省', '1411', '吕梁市', '141181', '孝义市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141182', '1411', '00,14,1411', '汾阳市', '14', '山西省', '1411', '吕梁市', '141182', '汾阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('15', '00', '00', '内蒙古自治区', '15', '内蒙古自治区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1501', '15', '00,15', '呼和浩特市', '15', '内蒙古自治区', '1501', '呼和浩特市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150102', '1501', '00,15,1501', '新城区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150102', '新城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150103', '1501', '00,15,1501', '回民区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150103', '回民区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150104', '1501', '00,15,1501', '玉泉区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150104', '玉泉区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150105', '1501', '00,15,1501', '赛罕区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150105', '赛罕区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150121', '1501', '00,15,1501', '土默特左旗', '15', '内蒙古自治区', '1501', '呼和浩特市', '150121', '土默特左旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150122', '1501', '00,15,1501', '托克托县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150122', '托克托县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150123', '1501', '00,15,1501', '和林格尔县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150123', '和林格尔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150124', '1501', '00,15,1501', '清水河县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150124', '清水河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150125', '1501', '00,15,1501', '武川县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150125', '武川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1502', '15', '00,15', '包头市', '15', '内蒙古自治区', '1502', '包头市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150202', '1502', '00,15,1502', '东河区', '15', '内蒙古自治区', '1502', '包头市', '150202', '东河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150203', '1502', '00,15,1502', '昆都仑区', '15', '内蒙古自治区', '1502', '包头市', '150203', '昆都仑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150204', '1502', '00,15,1502', '青山区', '15', '内蒙古自治区', '1502', '包头市', '150204', '青山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150205', '1502', '00,15,1502', '石拐区', '15', '内蒙古自治区', '1502', '包头市', '150205', '石拐区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150206', '1502', '00,15,1502', '白云鄂博矿区', '15', '内蒙古自治区', '1502', '包头市', '150206', '白云鄂博矿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150207', '1502', '00,15,1502', '九原区', '15', '内蒙古自治区', '1502', '包头市', '150207', '九原区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150221', '1502', '00,15,1502', '土默特右旗', '15', '内蒙古自治区', '1502', '包头市', '150221', '土默特右旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150222', '1502', '00,15,1502', '固阳县', '15', '内蒙古自治区', '1502', '包头市', '150222', '固阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150223', '1502', '00,15,1502', '达尔罕茂明安联合旗', '15', '内蒙古自治区', '1502', '包头市', '150223', '达尔罕茂明安联合旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1503', '15', '00,15', '乌海市', '15', '内蒙古自治区', '1503', '乌海市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150302', '1503', '00,15,1503', '海勃湾区', '15', '内蒙古自治区', '1503', '乌海市', '150302', '海勃湾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150303', '1503', '00,15,1503', '海南区', '15', '内蒙古自治区', '1503', '乌海市', '150303', '海南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150304', '1503', '00,15,1503', '乌达区', '15', '内蒙古自治区', '1503', '乌海市', '150304', '乌达区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1504', '15', '00,15', '赤峰市', '15', '内蒙古自治区', '1504', '赤峰市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150402', '1504', '00,15,1504', '红山区', '15', '内蒙古自治区', '1504', '赤峰市', '150402', '红山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150403', '1504', '00,15,1504', '元宝山区', '15', '内蒙古自治区', '1504', '赤峰市', '150403', '元宝山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150404', '1504', '00,15,1504', '松山区', '15', '内蒙古自治区', '1504', '赤峰市', '150404', '松山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150421', '1504', '00,15,1504', '阿鲁科尔沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150421', '阿鲁科尔沁旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150422', '1504', '00,15,1504', '巴林左旗', '15', '内蒙古自治区', '1504', '赤峰市', '150422', '巴林左旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150423', '1504', '00,15,1504', '巴林右旗', '15', '内蒙古自治区', '1504', '赤峰市', '150423', '巴林右旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150424', '1504', '00,15,1504', '林西县', '15', '内蒙古自治区', '1504', '赤峰市', '150424', '林西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150425', '1504', '00,15,1504', '克什克腾旗', '15', '内蒙古自治区', '1504', '赤峰市', '150425', '克什克腾旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150426', '1504', '00,15,1504', '翁牛特旗', '15', '内蒙古自治区', '1504', '赤峰市', '150426', '翁牛特旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150428', '1504', '00,15,1504', '喀喇沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150428', '喀喇沁旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150429', '1504', '00,15,1504', '宁城县', '15', '内蒙古自治区', '1504', '赤峰市', '150429', '宁城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150430', '1504', '00,15,1504', '敖汉旗', '15', '内蒙古自治区', '1504', '赤峰市', '150430', '敖汉旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1505', '15', '00,15', '通辽市', '15', '内蒙古自治区', '1505', '通辽市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150502', '1505', '00,15,1505', '科尔沁区', '15', '内蒙古自治区', '1505', '通辽市', '150502', '科尔沁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150521', '1505', '00,15,1505', '科尔沁左翼中旗', '15', '内蒙古自治区', '1505', '通辽市', '150521', '科尔沁左翼中旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('00', '0', '0', '中华人民共和国', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('11', '00', '00', '北京市', '11', '北京市', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1101', '11', '00,11', '北京市', '11', '北京市', '1101', '北京市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110101', '1101', '00,11,1101', '东城区', '11', '北京市', '1101', '北京市', '110101', '东城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110102', '1101', '00,11,1101', '西城区', '11', '北京市', '1101', '北京市', '110102', '西城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110105', '1101', '00,11,1101', '朝阳区', '11', '北京市', '1101', '北京市', '110105', '朝阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110106', '1101', '00,11,1101', '丰台区', '11', '北京市', '1101', '北京市', '110106', '丰台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110107', '1101', '00,11,1101', '石景山区', '11', '北京市', '1101', '北京市', '110107', '石景山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110108', '1101', '00,11,1101', '海淀区', '11', '北京市', '1101', '北京市', '110108', '海淀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110109', '1101', '00,11,1101', '门头沟区', '11', '北京市', '1101', '北京市', '110109', '门头沟区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110111', '1101', '00,11,1101', '房山区', '11', '北京市', '1101', '北京市', '110111', '房山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110112', '1101', '00,11,1101', '通州区', '11', '北京市', '1101', '北京市', '110112', '通州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110113', '1101', '00,11,1101', '顺义区', '11', '北京市', '1101', '北京市', '110113', '顺义区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110114', '1101', '00,11,1101', '昌平区', '11', '北京市', '1101', '北京市', '110114', '昌平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110115', '1101', '00,11,1101', '大兴区', '11', '北京市', '1101', '北京市', '110115', '大兴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110116', '1101', '00,11,1101', '怀柔区', '11', '北京市', '1101', '北京市', '110116', '怀柔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110117', '1101', '00,11,1101', '平谷区', '11', '北京市', '1101', '北京市', '110117', '平谷区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110118', '1101', '00,11,1101', '密云区', '11', '北京市', '1101', '北京市', '110118', '密云区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110119', '1101', '00,11,1101', '延庆区', '11', '北京市', '1101', '北京市', '110119', '延庆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('12', '00', '00', '天津市', '12', '天津市', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1201', '12', '00,12', '天津市', '12', '天津市', '1201', '天津市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120101', '1201', '00,12,1201', '和平区', '12', '天津市', '1201', '天津市', '120101', '和平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120102', '1201', '00,12,1201', '河东区', '12', '天津市', '1201', '天津市', '120102', '河东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120103', '1201', '00,12,1201', '河西区', '12', '天津市', '1201', '天津市', '120103', '河西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120104', '1201', '00,12,1201', '南开区', '12', '天津市', '1201', '天津市', '120104', '南开区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120105', '1201', '00,12,1201', '河北区', '12', '天津市', '1201', '天津市', '120105', '河北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120106', '1201', '00,12,1201', '红桥区', '12', '天津市', '1201', '天津市', '120106', '红桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120110', '1201', '00,12,1201', '东丽区', '12', '天津市', '1201', '天津市', '120110', '东丽区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120111', '1201', '00,12,1201', '西青区', '12', '天津市', '1201', '天津市', '120111', '西青区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120112', '1201', '00,12,1201', '津南区', '12', '天津市', '1201', '天津市', '120112', '津南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120113', '1201', '00,12,1201', '北辰区', '12', '天津市', '1201', '天津市', '120113', '北辰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120114', '1201', '00,12,1201', '武清区', '12', '天津市', '1201', '天津市', '120114', '武清区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120115', '1201', '00,12,1201', '宝坻区', '12', '天津市', '1201', '天津市', '120115', '宝坻区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120116', '1201', '00,12,1201', '滨海新区', '12', '天津市', '1201', '天津市', '120116', '滨海新区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120117', '1201', '00,12,1201', '宁河区', '12', '天津市', '1201', '天津市', '120117', '宁河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120118', '1201', '00,12,1201', '静海区', '12', '天津市', '1201', '天津市', '120118', '静海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120119', '1201', '00,12,1201', '蓟州区', '12', '天津市', '1201', '天津市', '120119', '蓟州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('13', '00', '00', '河北省', '13', '河北省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1301', '13', '00,13', '石家庄市', '13', '河北省', '1301', '石家庄市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130102', '1301', '00,13,1301', '长安区', '13', '河北省', '1301', '石家庄市', '130102', '长安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130104', '1301', '00,13,1301', '桥西区', '13', '河北省', '1301', '石家庄市', '130104', '桥西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130105', '1301', '00,13,1301', '新华区', '13', '河北省', '1301', '石家庄市', '130105', '新华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130107', '1301', '00,13,1301', '井陉矿区', '13', '河北省', '1301', '石家庄市', '130107', '井陉矿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130108', '1301', '00,13,1301', '裕华区', '13', '河北省', '1301', '石家庄市', '130108', '裕华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130109', '1301', '00,13,1301', '藁城区', '13', '河北省', '1301', '石家庄市', '130109', '藁城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130110', '1301', '00,13,1301', '鹿泉区', '13', '河北省', '1301', '石家庄市', '130110', '鹿泉区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130111', '1301', '00,13,1301', '栾城区', '13', '河北省', '1301', '石家庄市', '130111', '栾城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130121', '1301', '00,13,1301', '井陉县', '13', '河北省', '1301', '石家庄市', '130121', '井陉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130123', '1301', '00,13,1301', '正定县', '13', '河北省', '1301', '石家庄市', '130123', '正定县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130125', '1301', '00,13,1301', '行唐县', '13', '河北省', '1301', '石家庄市', '130125', '行唐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130126', '1301', '00,13,1301', '灵寿县', '13', '河北省', '1301', '石家庄市', '130126', '灵寿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130127', '1301', '00,13,1301', '高邑县', '13', '河北省', '1301', '石家庄市', '130127', '高邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130128', '1301', '00,13,1301', '深泽县', '13', '河北省', '1301', '石家庄市', '130128', '深泽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130129', '1301', '00,13,1301', '赞皇县', '13', '河北省', '1301', '石家庄市', '130129', '赞皇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130130', '1301', '00,13,1301', '无极县', '13', '河北省', '1301', '石家庄市', '130130', '无极县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130131', '1301', '00,13,1301', '平山县', '13', '河北省', '1301', '石家庄市', '130131', '平山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130132', '1301', '00,13,1301', '元氏县', '13', '河北省', '1301', '石家庄市', '130132', '元氏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130133', '1301', '00,13,1301', '赵县', '13', '河北省', '1301', '石家庄市', '130133', '赵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130181', '1301', '00,13,1301', '辛集市', '13', '河北省', '1301', '石家庄市', '130181', '辛集市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130183', '1301', '00,13,1301', '晋州市', '13', '河北省', '1301', '石家庄市', '130183', '晋州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130184', '1301', '00,13,1301', '新乐市', '13', '河北省', '1301', '石家庄市', '130184', '新乐市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1302', '13', '00,13', '唐山市', '13', '河北省', '1302', '唐山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130202', '1302', '00,13,1302', '路南区', '13', '河北省', '1302', '唐山市', '130202', '路南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130203', '1302', '00,13,1302', '路北区', '13', '河北省', '1302', '唐山市', '130203', '路北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130204', '1302', '00,13,1302', '古冶区', '13', '河北省', '1302', '唐山市', '130204', '古冶区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130205', '1302', '00,13,1302', '开平区', '13', '河北省', '1302', '唐山市', '130205', '开平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130207', '1302', '00,13,1302', '丰南区', '13', '河北省', '1302', '唐山市', '130207', '丰南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130208', '1302', '00,13,1302', '丰润区', '13', '河北省', '1302', '唐山市', '130208', '丰润区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130209', '1302', '00,13,1302', '曹妃甸区', '13', '河北省', '1302', '唐山市', '130209', '曹妃甸区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130224', '1302', '00,13,1302', '滦南县', '13', '河北省', '1302', '唐山市', '130224', '滦南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130225', '1302', '00,13,1302', '乐亭县', '13', '河北省', '1302', '唐山市', '130225', '乐亭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130227', '1302', '00,13,1302', '迁西县', '13', '河北省', '1302', '唐山市', '130227', '迁西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130229', '1302', '00,13,1302', '玉田县', '13', '河北省', '1302', '唐山市', '130229', '玉田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130281', '1302', '00,13,1302', '遵化市', '13', '河北省', '1302', '唐山市', '130281', '遵化市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130283', '1302', '00,13,1302', '迁安市', '13', '河北省', '1302', '唐山市', '130283', '迁安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130284', '1302', '00,13,1302', '滦州市', '13', '河北省', '1302', '唐山市', '130284', '滦州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1303', '13', '00,13', '秦皇岛市', '13', '河北省', '1303', '秦皇岛市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130302', '1303', '00,13,1303', '海港区', '13', '河北省', '1303', '秦皇岛市', '130302', '海港区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130303', '1303', '00,13,1303', '山海关区', '13', '河北省', '1303', '秦皇岛市', '130303', '山海关区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130304', '1303', '00,13,1303', '北戴河区', '13', '河北省', '1303', '秦皇岛市', '130304', '北戴河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130306', '1303', '00,13,1303', '抚宁区', '13', '河北省', '1303', '秦皇岛市', '130306', '抚宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130321', '1303', '00,13,1303', '青龙满族自治县', '13', '河北省', '1303', '秦皇岛市', '130321', '青龙满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130322', '1303', '00,13,1303', '昌黎县', '13', '河北省', '1303', '秦皇岛市', '130322', '昌黎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130324', '1303', '00,13,1303', '卢龙县', '13', '河北省', '1303', '秦皇岛市', '130324', '卢龙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1304', '13', '00,13', '邯郸市', '13', '河北省', '1304', '邯郸市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130402', '1304', '00,13,1304', '邯山区', '13', '河北省', '1304', '邯郸市', '130402', '邯山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130403', '1304', '00,13,1304', '丛台区', '13', '河北省', '1304', '邯郸市', '130403', '丛台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130404', '1304', '00,13,1304', '复兴区', '13', '河北省', '1304', '邯郸市', '130404', '复兴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130406', '1304', '00,13,1304', '峰峰矿区', '13', '河北省', '1304', '邯郸市', '130406', '峰峰矿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130407', '1304', '00,13,1304', '肥乡区', '13', '河北省', '1304', '邯郸市', '130407', '肥乡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130408', '1304', '00,13,1304', '永年区', '13', '河北省', '1304', '邯郸市', '130408', '永年区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130423', '1304', '00,13,1304', '临漳县', '13', '河北省', '1304', '邯郸市', '130423', '临漳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130424', '1304', '00,13,1304', '成安县', '13', '河北省', '1304', '邯郸市', '130424', '成安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130425', '1304', '00,13,1304', '大名县', '13', '河北省', '1304', '邯郸市', '130425', '大名县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130426', '1304', '00,13,1304', '涉县', '13', '河北省', '1304', '邯郸市', '130426', '涉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130427', '1304', '00,13,1304', '磁县', '13', '河北省', '1304', '邯郸市', '130427', '磁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130430', '1304', '00,13,1304', '邱县', '13', '河北省', '1304', '邯郸市', '130430', '邱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130431', '1304', '00,13,1304', '鸡泽县', '13', '河北省', '1304', '邯郸市', '130431', '鸡泽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130432', '1304', '00,13,1304', '广平县', '13', '河北省', '1304', '邯郸市', '130432', '广平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130433', '1304', '00,13,1304', '馆陶县', '13', '河北省', '1304', '邯郸市', '130433', '馆陶县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130434', '1304', '00,13,1304', '魏县', '13', '河北省', '1304', '邯郸市', '130434', '魏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130435', '1304', '00,13,1304', '曲周县', '13', '河北省', '1304', '邯郸市', '130435', '曲周县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130481', '1304', '00,13,1304', '武安市', '13', '河北省', '1304', '邯郸市', '130481', '武安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1305', '13', '00,13', '邢台市', '13', '河北省', '1305', '邢台市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130502', '1305', '00,13,1305', '桥东区', '13', '河北省', '1305', '邢台市', '130502', '桥东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130503', '1305', '00,13,1305', '桥西区', '13', '河北省', '1305', '邢台市', '130503', '桥西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130521', '1305', '00,13,1305', '邢台县', '13', '河北省', '1305', '邢台市', '130521', '邢台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130522', '1305', '00,13,1305', '临城县', '13', '河北省', '1305', '邢台市', '130522', '临城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130523', '1305', '00,13,1305', '内丘县', '13', '河北省', '1305', '邢台市', '130523', '内丘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130524', '1305', '00,13,1305', '柏乡县', '13', '河北省', '1305', '邢台市', '130524', '柏乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130525', '1305', '00,13,1305', '隆尧县', '13', '河北省', '1305', '邢台市', '130525', '隆尧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130526', '1305', '00,13,1305', '任县', '13', '河北省', '1305', '邢台市', '130526', '任县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130527', '1305', '00,13,1305', '南和县', '13', '河北省', '1305', '邢台市', '130527', '南和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130528', '1305', '00,13,1305', '宁晋县', '13', '河北省', '1305', '邢台市', '130528', '宁晋县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130529', '1305', '00,13,1305', '巨鹿县', '13', '河北省', '1305', '邢台市', '130529', '巨鹿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130530', '1305', '00,13,1305', '新河县', '13', '河北省', '1305', '邢台市', '130530', '新河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130531', '1305', '00,13,1305', '广宗县', '13', '河北省', '1305', '邢台市', '130531', '广宗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130532', '1305', '00,13,1305', '平乡县', '13', '河北省', '1305', '邢台市', '130532', '平乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130533', '1305', '00,13,1305', '威县', '13', '河北省', '1305', '邢台市', '130533', '威县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130534', '1305', '00,13,1305', '清河县', '13', '河北省', '1305', '邢台市', '130534', '清河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130535', '1305', '00,13,1305', '临西县', '13', '河北省', '1305', '邢台市', '130535', '临西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130581', '1305', '00,13,1305', '南宫市', '13', '河北省', '1305', '邢台市', '130581', '南宫市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130582', '1305', '00,13,1305', '沙河市', '13', '河北省', '1305', '邢台市', '130582', '沙河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1306', '13', '00,13', '保定市', '13', '河北省', '1306', '保定市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130602', '1306', '00,13,1306', '竞秀区', '13', '河北省', '1306', '保定市', '130602', '竞秀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130606', '1306', '00,13,1306', '莲池区', '13', '河北省', '1306', '保定市', '130606', '莲池区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130607', '1306', '00,13,1306', '满城区', '13', '河北省', '1306', '保定市', '130607', '满城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130608', '1306', '00,13,1306', '清苑区', '13', '河北省', '1306', '保定市', '130608', '清苑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130609', '1306', '00,13,1306', '徐水区', '13', '河北省', '1306', '保定市', '130609', '徐水区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130623', '1306', '00,13,1306', '涞水县', '13', '河北省', '1306', '保定市', '130623', '涞水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130624', '1306', '00,13,1306', '阜平县', '13', '河北省', '1306', '保定市', '130624', '阜平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130626', '1306', '00,13,1306', '定兴县', '13', '河北省', '1306', '保定市', '130626', '定兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130627', '1306', '00,13,1306', '唐县', '13', '河北省', '1306', '保定市', '130627', '唐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130628', '1306', '00,13,1306', '高阳县', '13', '河北省', '1306', '保定市', '130628', '高阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130629', '1306', '00,13,1306', '容城县', '13', '河北省', '1306', '保定市', '130629', '容城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130630', '1306', '00,13,1306', '涞源县', '13', '河北省', '1306', '保定市', '130630', '涞源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130631', '1306', '00,13,1306', '望都县', '13', '河北省', '1306', '保定市', '130631', '望都县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130632', '1306', '00,13,1306', '安新县', '13', '河北省', '1306', '保定市', '130632', '安新县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130633', '1306', '00,13,1306', '易县', '13', '河北省', '1306', '保定市', '130633', '易县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130634', '1306', '00,13,1306', '曲阳县', '13', '河北省', '1306', '保定市', '130634', '曲阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130635', '1306', '00,13,1306', '蠡县', '13', '河北省', '1306', '保定市', '130635', '蠡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130636', '1306', '00,13,1306', '顺平县', '13', '河北省', '1306', '保定市', '130636', '顺平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130637', '1306', '00,13,1306', '博野县', '13', '河北省', '1306', '保定市', '130637', '博野县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130638', '1306', '00,13,1306', '雄县', '13', '河北省', '1306', '保定市', '130638', '雄县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130681', '1306', '00,13,1306', '涿州市', '13', '河北省', '1306', '保定市', '130681', '涿州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130682', '1306', '00,13,1306', '定州市', '13', '河北省', '1306', '保定市', '130682', '定州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130683', '1306', '00,13,1306', '安国市', '13', '河北省', '1306', '保定市', '130683', '安国市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130684', '1306', '00,13,1306', '高碑店市', '13', '河北省', '1306', '保定市', '130684', '高碑店市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1307', '13', '00,13', '张家口市', '13', '河北省', '1307', '张家口市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130702', '1307', '00,13,1307', '桥东区', '13', '河北省', '1307', '张家口市', '130702', '桥东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130703', '1307', '00,13,1307', '桥西区', '13', '河北省', '1307', '张家口市', '130703', '桥西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130705', '1307', '00,13,1307', '宣化区', '13', '河北省', '1307', '张家口市', '130705', '宣化区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130706', '1307', '00,13,1307', '下花园区', '13', '河北省', '1307', '张家口市', '130706', '下花园区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130708', '1307', '00,13,1307', '万全区', '13', '河北省', '1307', '张家口市', '130708', '万全区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130709', '1307', '00,13,1307', '崇礼区', '13', '河北省', '1307', '张家口市', '130709', '崇礼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130722', '1307', '00,13,1307', '张北县', '13', '河北省', '1307', '张家口市', '130722', '张北县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130723', '1307', '00,13,1307', '康保县', '13', '河北省', '1307', '张家口市', '130723', '康保县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152524', '1525', '00,15,1525', '苏尼特右旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152524', '苏尼特右旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130724', '1307', '00,13,1307', '沽源县', '13', '河北省', '1307', '张家口市', '130724', '沽源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130725', '1307', '00,13,1307', '尚义县', '13', '河北省', '1307', '张家口市', '130725', '尚义县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130726', '1307', '00,13,1307', '蔚县', '13', '河北省', '1307', '张家口市', '130726', '蔚县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130727', '1307', '00,13,1307', '阳原县', '13', '河北省', '1307', '张家口市', '130727', '阳原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130728', '1307', '00,13,1307', '怀安县', '13', '河北省', '1307', '张家口市', '130728', '怀安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130730', '1307', '00,13,1307', '怀来县', '13', '河北省', '1307', '张家口市', '130730', '怀来县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130731', '1307', '00,13,1307', '涿鹿县', '13', '河北省', '1307', '张家口市', '130731', '涿鹿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130732', '1307', '00,13,1307', '赤城县', '13', '河北省', '1307', '张家口市', '130732', '赤城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1308', '13', '00,13', '承德市', '13', '河北省', '1308', '承德市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130802', '1308', '00,13,1308', '双桥区', '13', '河北省', '1308', '承德市', '130802', '双桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130803', '1308', '00,13,1308', '双滦区', '13', '河北省', '1308', '承德市', '130803', '双滦区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130804', '1308', '00,13,1308', '鹰手营子矿区', '13', '河北省', '1308', '承德市', '130804', '鹰手营子矿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130821', '1308', '00,13,1308', '承德县', '13', '河北省', '1308', '承德市', '130821', '承德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130822', '1308', '00,13,1308', '兴隆县', '13', '河北省', '1308', '承德市', '130822', '兴隆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130824', '1308', '00,13,1308', '滦平县', '13', '河北省', '1308', '承德市', '130824', '滦平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130825', '1308', '00,13,1308', '隆化县', '13', '河北省', '1308', '承德市', '130825', '隆化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130826', '1308', '00,13,1308', '丰宁满族自治县', '13', '河北省', '1308', '承德市', '130826', '丰宁满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130827', '1308', '00,13,1308', '宽城满族自治县', '13', '河北省', '1308', '承德市', '130827', '宽城满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130828', '1308', '00,13,1308', '围场满族蒙古族自治县', '13', '河北省', '1308', '承德市', '130828', '围场满族蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130881', '1308', '00,13,1308', '平泉市', '13', '河北省', '1308', '承德市', '130881', '平泉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1309', '13', '00,13', '沧州市', '13', '河北省', '1309', '沧州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130902', '1309', '00,13,1309', '新华区', '13', '河北省', '1309', '沧州市', '130902', '新华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130903', '1309', '00,13,1309', '运河区', '13', '河北省', '1309', '沧州市', '130903', '运河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130921', '1309', '00,13,1309', '沧县', '13', '河北省', '1309', '沧州市', '130921', '沧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130922', '1309', '00,13,1309', '青县', '13', '河北省', '1309', '沧州市', '130922', '青县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130923', '1309', '00,13,1309', '东光县', '13', '河北省', '1309', '沧州市', '130923', '东光县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130924', '1309', '00,13,1309', '海兴县', '13', '河北省', '1309', '沧州市', '130924', '海兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130925', '1309', '00,13,1309', '盐山县', '13', '河北省', '1309', '沧州市', '130925', '盐山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130926', '1309', '00,13,1309', '肃宁县', '13', '河北省', '1309', '沧州市', '130926', '肃宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130927', '1309', '00,13,1309', '南皮县', '13', '河北省', '1309', '沧州市', '130927', '南皮县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130928', '1309', '00,13,1309', '吴桥县', '13', '河北省', '1309', '沧州市', '130928', '吴桥县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130929', '1309', '00,13,1309', '献县', '13', '河北省', '1309', '沧州市', '130929', '献县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130930', '1309', '00,13,1309', '孟村回族自治县', '13', '河北省', '1309', '沧州市', '130930', '孟村回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130981', '1309', '00,13,1309', '泊头市', '13', '河北省', '1309', '沧州市', '130981', '泊头市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130982', '1309', '00,13,1309', '任丘市', '13', '河北省', '1309', '沧州市', '130982', '任丘市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130983', '1309', '00,13,1309', '黄骅市', '13', '河北省', '1309', '沧州市', '130983', '黄骅市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130984', '1309', '00,13,1309', '河间市', '13', '河北省', '1309', '沧州市', '130984', '河间市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1310', '13', '00,13', '廊坊市', '13', '河北省', '1310', '廊坊市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131002', '1310', '00,13,1310', '安次区', '13', '河北省', '1310', '廊坊市', '131002', '安次区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3403', '34', '00,34', '蚌埠市', '34', '安徽省', '3403', '蚌埠市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131003', '1310', '00,13,1310', '广阳区', '13', '河北省', '1310', '廊坊市', '131003', '广阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131022', '1310', '00,13,1310', '固安县', '13', '河北省', '1310', '廊坊市', '131022', '固安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131023', '1310', '00,13,1310', '永清县', '13', '河北省', '1310', '廊坊市', '131023', '永清县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131024', '1310', '00,13,1310', '香河县', '13', '河北省', '1310', '廊坊市', '131024', '香河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131025', '1310', '00,13,1310', '大城县', '13', '河北省', '1310', '廊坊市', '131025', '大城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131026', '1310', '00,13,1310', '文安县', '13', '河北省', '1310', '廊坊市', '131026', '文安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131028', '1310', '00,13,1310', '大厂回族自治县', '13', '河北省', '1310', '廊坊市', '131028', '大厂回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131081', '1310', '00,13,1310', '霸州市', '13', '河北省', '1310', '廊坊市', '131081', '霸州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131082', '1310', '00,13,1310', '三河市', '13', '河北省', '1310', '廊坊市', '131082', '三河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1311', '13', '00,13', '衡水市', '13', '河北省', '1311', '衡水市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131102', '1311', '00,13,1311', '桃城区', '13', '河北省', '1311', '衡水市', '131102', '桃城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131103', '1311', '00,13,1311', '冀州区', '13', '河北省', '1311', '衡水市', '131103', '冀州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131121', '1311', '00,13,1311', '枣强县', '13', '河北省', '1311', '衡水市', '131121', '枣强县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131122', '1311', '00,13,1311', '武邑县', '13', '河北省', '1311', '衡水市', '131122', '武邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131123', '1311', '00,13,1311', '武强县', '13', '河北省', '1311', '衡水市', '131123', '武强县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131124', '1311', '00,13,1311', '饶阳县', '13', '河北省', '1311', '衡水市', '131124', '饶阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131125', '1311', '00,13,1311', '安平县', '13', '河北省', '1311', '衡水市', '131125', '安平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131126', '1311', '00,13,1311', '故城县', '13', '河北省', '1311', '衡水市', '131126', '故城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131127', '1311', '00,13,1311', '景县', '13', '河北省', '1311', '衡水市', '131127', '景县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131128', '1311', '00,13,1311', '阜城县', '13', '河北省', '1311', '衡水市', '131128', '阜城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131182', '1311', '00,13,1311', '深州市', '13', '河北省', '1311', '衡水市', '131182', '深州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('14', '00', '00', '山西省', '14', '山西省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1401', '14', '00,14', '太原市', '14', '山西省', '1401', '太原市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140105', '1401', '00,14,1401', '小店区', '14', '山西省', '1401', '太原市', '140105', '小店区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140106', '1401', '00,14,1401', '迎泽区', '14', '山西省', '1401', '太原市', '140106', '迎泽区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140107', '1401', '00,14,1401', '杏花岭区', '14', '山西省', '1401', '太原市', '140107', '杏花岭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140108', '1401', '00,14,1401', '尖草坪区', '14', '山西省', '1401', '太原市', '140108', '尖草坪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140109', '1401', '00,14,1401', '万柏林区', '14', '山西省', '1401', '太原市', '140109', '万柏林区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140110', '1401', '00,14,1401', '晋源区', '14', '山西省', '1401', '太原市', '140110', '晋源区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140121', '1401', '00,14,1401', '清徐县', '14', '山西省', '1401', '太原市', '140121', '清徐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140122', '1401', '00,14,1401', '阳曲县', '14', '山西省', '1401', '太原市', '140122', '阳曲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140123', '1401', '00,14,1401', '娄烦县', '14', '山西省', '1401', '太原市', '140123', '娄烦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140181', '1401', '00,14,1401', '古交市', '14', '山西省', '1401', '太原市', '140181', '古交市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1402', '14', '00,14', '大同市', '14', '山西省', '1402', '大同市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140212', '1402', '00,14,1402', '新荣区', '14', '山西省', '1402', '大同市', '140212', '新荣区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140213', '1402', '00,14,1402', '平城区', '14', '山西省', '1402', '大同市', '140213', '平城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140214', '1402', '00,14,1402', '云冈区', '14', '山西省', '1402', '大同市', '140214', '云冈区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140215', '1402', '00,14,1402', '云州区', '14', '山西省', '1402', '大同市', '140215', '云州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320481', '3204', '00,32,3204', '溧阳市', '32', '江苏省', '3204', '常州市', '320481', '溧阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3205', '32', '00,32', '苏州市', '32', '江苏省', '3205', '苏州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320505', '3205', '00,32,3205', '虎丘区', '32', '江苏省', '3205', '苏州市', '320505', '虎丘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320506', '3205', '00,32,3205', '吴中区', '32', '江苏省', '3205', '苏州市', '320506', '吴中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320507', '3205', '00,32,3205', '相城区', '32', '江苏省', '3205', '苏州市', '320507', '相城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320508', '3205', '00,32,3205', '姑苏区', '32', '江苏省', '3205', '苏州市', '320508', '姑苏区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320509', '3205', '00,32,3205', '吴江区', '32', '江苏省', '3205', '苏州市', '320509', '吴江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320581', '3205', '00,32,3205', '常熟市', '32', '江苏省', '3205', '苏州市', '320581', '常熟市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320582', '3205', '00,32,3205', '张家港市', '32', '江苏省', '3205', '苏州市', '320582', '张家港市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320583', '3205', '00,32,3205', '昆山市', '32', '江苏省', '3205', '苏州市', '320583', '昆山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320585', '3205', '00,32,3205', '太仓市', '32', '江苏省', '3205', '苏州市', '320585', '太仓市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3206', '32', '00,32', '南通市', '32', '江苏省', '3206', '南通市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320602', '3206', '00,32,3206', '崇川区', '32', '江苏省', '3206', '南通市', '320602', '崇川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320611', '3206', '00,32,3206', '港闸区', '32', '江苏省', '3206', '南通市', '320611', '港闸区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320612', '3206', '00,32,3206', '通州区', '32', '江苏省', '3206', '南通市', '320612', '通州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320623', '3206', '00,32,3206', '如东县', '32', '江苏省', '3206', '南通市', '320623', '如东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320681', '3206', '00,32,3206', '启东市', '32', '江苏省', '3206', '南通市', '320681', '启东市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320682', '3206', '00,32,3206', '如皋市', '32', '江苏省', '3206', '南通市', '320682', '如皋市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320684', '3206', '00,32,3206', '海门市', '32', '江苏省', '3206', '南通市', '320684', '海门市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320685', '3206', '00,32,3206', '海安市', '32', '江苏省', '3206', '南通市', '320685', '海安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3207', '32', '00,32', '连云港市', '32', '江苏省', '3207', '连云港市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320703', '3207', '00,32,3207', '连云区', '32', '江苏省', '3207', '连云港市', '320703', '连云区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320706', '3207', '00,32,3207', '海州区', '32', '江苏省', '3207', '连云港市', '320706', '海州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320707', '3207', '00,32,3207', '赣榆区', '32', '江苏省', '3207', '连云港市', '320707', '赣榆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320722', '3207', '00,32,3207', '东海县', '32', '江苏省', '3207', '连云港市', '320722', '东海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320723', '3207', '00,32,3207', '灌云县', '32', '江苏省', '3207', '连云港市', '320723', '灌云县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320724', '3207', '00,32,3207', '灌南县', '32', '江苏省', '3207', '连云港市', '320724', '灌南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3208', '32', '00,32', '淮安市', '32', '江苏省', '3208', '淮安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320803', '3208', '00,32,3208', '淮安区', '32', '江苏省', '3208', '淮安市', '320803', '淮安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320804', '3208', '00,32,3208', '淮阴区', '32', '江苏省', '3208', '淮安市', '320804', '淮阴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320812', '3208', '00,32,3208', '清江浦区', '32', '江苏省', '3208', '淮安市', '320812', '清江浦区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320813', '3208', '00,32,3208', '洪泽区', '32', '江苏省', '3208', '淮安市', '320813', '洪泽区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320826', '3208', '00,32,3208', '涟水县', '32', '江苏省', '3208', '淮安市', '320826', '涟水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320830', '3208', '00,32,3208', '盱眙县', '32', '江苏省', '3208', '淮安市', '320830', '盱眙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320831', '3208', '00,32,3208', '金湖县', '32', '江苏省', '3208', '淮安市', '320831', '金湖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3209', '32', '00,32', '盐城市', '32', '江苏省', '3209', '盐城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320902', '3209', '00,32,3209', '亭湖区', '32', '江苏省', '3209', '盐城市', '320902', '亭湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320903', '3209', '00,32,3209', '盐都区', '32', '江苏省', '3209', '盐城市', '320903', '盐都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320904', '3209', '00,32,3209', '大丰区', '32', '江苏省', '3209', '盐城市', '320904', '大丰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320921', '3209', '00,32,3209', '响水县', '32', '江苏省', '3209', '盐城市', '320921', '响水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320922', '3209', '00,32,3209', '滨海县', '32', '江苏省', '3209', '盐城市', '320922', '滨海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320923', '3209', '00,32,3209', '阜宁县', '32', '江苏省', '3209', '盐城市', '320923', '阜宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320924', '3209', '00,32,3209', '射阳县', '32', '江苏省', '3209', '盐城市', '320924', '射阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320925', '3209', '00,32,3209', '建湖县', '32', '江苏省', '3209', '盐城市', '320925', '建湖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320981', '3209', '00,32,3209', '东台市', '32', '江苏省', '3209', '盐城市', '320981', '东台市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3210', '32', '00,32', '扬州市', '32', '江苏省', '3210', '扬州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321002', '3210', '00,32,3210', '广陵区', '32', '江苏省', '3210', '扬州市', '321002', '广陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321003', '3210', '00,32,3210', '邗江区', '32', '江苏省', '3210', '扬州市', '321003', '邗江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321012', '3210', '00,32,3210', '江都区', '32', '江苏省', '3210', '扬州市', '321012', '江都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321023', '3210', '00,32,3210', '宝应县', '32', '江苏省', '3210', '扬州市', '321023', '宝应县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321081', '3210', '00,32,3210', '仪征市', '32', '江苏省', '3210', '扬州市', '321081', '仪征市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321084', '3210', '00,32,3210', '高邮市', '32', '江苏省', '3210', '扬州市', '321084', '高邮市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3211', '32', '00,32', '镇江市', '32', '江苏省', '3211', '镇江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321102', '3211', '00,32,3211', '京口区', '32', '江苏省', '3211', '镇江市', '321102', '京口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321111', '3211', '00,32,3211', '润州区', '32', '江苏省', '3211', '镇江市', '321111', '润州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321112', '3211', '00,32,3211', '丹徒区', '32', '江苏省', '3211', '镇江市', '321112', '丹徒区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321181', '3211', '00,32,3211', '丹阳市', '32', '江苏省', '3211', '镇江市', '321181', '丹阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321182', '3211', '00,32,3211', '扬中市', '32', '江苏省', '3211', '镇江市', '321182', '扬中市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321183', '3211', '00,32,3211', '句容市', '32', '江苏省', '3211', '镇江市', '321183', '句容市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3212', '32', '00,32', '泰州市', '32', '江苏省', '3212', '泰州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321202', '3212', '00,32,3212', '海陵区', '32', '江苏省', '3212', '泰州市', '321202', '海陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321203', '3212', '00,32,3212', '高港区', '32', '江苏省', '3212', '泰州市', '321203', '高港区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321204', '3212', '00,32,3212', '姜堰区', '32', '江苏省', '3212', '泰州市', '321204', '姜堰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321281', '3212', '00,32,3212', '兴化市', '32', '江苏省', '3212', '泰州市', '321281', '兴化市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321282', '3212', '00,32,3212', '靖江市', '32', '江苏省', '3212', '泰州市', '321282', '靖江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321283', '3212', '00,32,3212', '泰兴市', '32', '江苏省', '3212', '泰州市', '321283', '泰兴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3213', '32', '00,32', '宿迁市', '32', '江苏省', '3213', '宿迁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321302', '3213', '00,32,3213', '宿城区', '32', '江苏省', '3213', '宿迁市', '321302', '宿城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321311', '3213', '00,32,3213', '宿豫区', '32', '江苏省', '3213', '宿迁市', '321311', '宿豫区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321322', '3213', '00,32,3213', '沭阳县', '32', '江苏省', '3213', '宿迁市', '321322', '沭阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321323', '3213', '00,32,3213', '泗阳县', '32', '江苏省', '3213', '宿迁市', '321323', '泗阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321324', '3213', '00,32,3213', '泗洪县', '32', '江苏省', '3213', '宿迁市', '321324', '泗洪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('33', '00', '00', '浙江省', '33', '浙江省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3301', '33', '00,33', '杭州市', '33', '浙江省', '3301', '杭州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330102', '3301', '00,33,3301', '上城区', '33', '浙江省', '3301', '杭州市', '330102', '上城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330103', '3301', '00,33,3301', '下城区', '33', '浙江省', '3301', '杭州市', '330103', '下城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330104', '3301', '00,33,3301', '江干区', '33', '浙江省', '3301', '杭州市', '330104', '江干区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330105', '3301', '00,33,3301', '拱墅区', '33', '浙江省', '3301', '杭州市', '330105', '拱墅区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2205', '22', '00,22', '通化市', '22', '吉林省', '2205', '通化市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220502', '2205', '00,22,2205', '东昌区', '22', '吉林省', '2205', '通化市', '220502', '东昌区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330109', '3301', '00,33,3301', '萧山区', '33', '浙江省', '3301', '杭州市', '330109', '萧山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330110', '3301', '00,33,3301', '余杭区', '33', '浙江省', '3301', '杭州市', '330110', '余杭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152530', '1525', '00,15,1525', '正蓝旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152530', '正蓝旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152531', '1525', '00,15,1525', '多伦县', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152531', '多伦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1529', '15', '00,15', '阿拉善盟', '15', '内蒙古自治区', '1529', '阿拉善盟', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152921', '1529', '00,15,1529', '阿拉善左旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152921', '阿拉善左旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152922', '1529', '00,15,1529', '阿拉善右旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152922', '阿拉善右旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152923', '1529', '00,15,1529', '额济纳旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152923', '额济纳旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('21', '00', '00', '辽宁省', '21', '辽宁省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2101', '21', '00,21', '沈阳市', '21', '辽宁省', '2101', '沈阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210102', '2101', '00,21,2101', '和平区', '21', '辽宁省', '2101', '沈阳市', '210102', '和平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210103', '2101', '00,21,2101', '沈河区', '21', '辽宁省', '2101', '沈阳市', '210103', '沈河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210104', '2101', '00,21,2101', '大东区', '21', '辽宁省', '2101', '沈阳市', '210104', '大东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210105', '2101', '00,21,2101', '皇姑区', '21', '辽宁省', '2101', '沈阳市', '210105', '皇姑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210106', '2101', '00,21,2101', '铁西区', '21', '辽宁省', '2101', '沈阳市', '210106', '铁西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210111', '2101', '00,21,2101', '苏家屯区', '21', '辽宁省', '2101', '沈阳市', '210111', '苏家屯区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210112', '2101', '00,21,2101', '浑南区', '21', '辽宁省', '2101', '沈阳市', '210112', '浑南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210113', '2101', '00,21,2101', '沈北新区', '21', '辽宁省', '2101', '沈阳市', '210113', '沈北新区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210114', '2101', '00,21,2101', '于洪区', '21', '辽宁省', '2101', '沈阳市', '210114', '于洪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210115', '2101', '00,21,2101', '辽中区', '21', '辽宁省', '2101', '沈阳市', '210115', '辽中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210123', '2101', '00,21,2101', '康平县', '21', '辽宁省', '2101', '沈阳市', '210123', '康平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210124', '2101', '00,21,2101', '法库县', '21', '辽宁省', '2101', '沈阳市', '210124', '法库县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210181', '2101', '00,21,2101', '新民市', '21', '辽宁省', '2101', '沈阳市', '210181', '新民市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2102', '21', '00,21', '大连市', '21', '辽宁省', '2102', '大连市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210202', '2102', '00,21,2102', '中山区', '21', '辽宁省', '2102', '大连市', '210202', '中山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210203', '2102', '00,21,2102', '西岗区', '21', '辽宁省', '2102', '大连市', '210203', '西岗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210204', '2102', '00,21,2102', '沙河口区', '21', '辽宁省', '2102', '大连市', '210204', '沙河口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210211', '2102', '00,21,2102', '甘井子区', '21', '辽宁省', '2102', '大连市', '210211', '甘井子区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210212', '2102', '00,21,2102', '旅顺口区', '21', '辽宁省', '2102', '大连市', '210212', '旅顺口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210213', '2102', '00,21,2102', '金州区', '21', '辽宁省', '2102', '大连市', '210213', '金州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210214', '2102', '00,21,2102', '普兰店区', '21', '辽宁省', '2102', '大连市', '210214', '普兰店区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210224', '2102', '00,21,2102', '长海县', '21', '辽宁省', '2102', '大连市', '210224', '长海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210281', '2102', '00,21,2102', '瓦房店市', '21', '辽宁省', '2102', '大连市', '210281', '瓦房店市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210283', '2102', '00,21,2102', '庄河市', '21', '辽宁省', '2102', '大连市', '210283', '庄河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2103', '21', '00,21', '鞍山市', '21', '辽宁省', '2103', '鞍山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210302', '2103', '00,21,2103', '铁东区', '21', '辽宁省', '2103', '鞍山市', '210302', '铁东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210303', '2103', '00,21,2103', '铁西区', '21', '辽宁省', '2103', '鞍山市', '210303', '铁西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210304', '2103', '00,21,2103', '立山区', '21', '辽宁省', '2103', '鞍山市', '210304', '立山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210311', '2103', '00,21,2103', '千山区', '21', '辽宁省', '2103', '鞍山市', '210311', '千山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210321', '2103', '00,21,2103', '台安县', '21', '辽宁省', '2103', '鞍山市', '210321', '台安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210323', '2103', '00,21,2103', '岫岩满族自治县', '21', '辽宁省', '2103', '鞍山市', '210323', '岫岩满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210381', '2103', '00,21,2103', '海城市', '21', '辽宁省', '2103', '鞍山市', '210381', '海城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2104', '21', '00,21', '抚顺市', '21', '辽宁省', '2104', '抚顺市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210402', '2104', '00,21,2104', '新抚区', '21', '辽宁省', '2104', '抚顺市', '210402', '新抚区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210403', '2104', '00,21,2104', '东洲区', '21', '辽宁省', '2104', '抚顺市', '210403', '东洲区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210404', '2104', '00,21,2104', '望花区', '21', '辽宁省', '2104', '抚顺市', '210404', '望花区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210411', '2104', '00,21,2104', '顺城区', '21', '辽宁省', '2104', '抚顺市', '210411', '顺城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210421', '2104', '00,21,2104', '抚顺县', '21', '辽宁省', '2104', '抚顺市', '210421', '抚顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210422', '2104', '00,21,2104', '新宾满族自治县', '21', '辽宁省', '2104', '抚顺市', '210422', '新宾满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210423', '2104', '00,21,2104', '清原满族自治县', '21', '辽宁省', '2104', '抚顺市', '210423', '清原满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2105', '21', '00,21', '本溪市', '21', '辽宁省', '2105', '本溪市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210502', '2105', '00,21,2105', '平山区', '21', '辽宁省', '2105', '本溪市', '210502', '平山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210503', '2105', '00,21,2105', '溪湖区', '21', '辽宁省', '2105', '本溪市', '210503', '溪湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210504', '2105', '00,21,2105', '明山区', '21', '辽宁省', '2105', '本溪市', '210504', '明山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210505', '2105', '00,21,2105', '南芬区', '21', '辽宁省', '2105', '本溪市', '210505', '南芬区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210521', '2105', '00,21,2105', '本溪满族自治县', '21', '辽宁省', '2105', '本溪市', '210521', '本溪满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210522', '2105', '00,21,2105', '桓仁满族自治县', '21', '辽宁省', '2105', '本溪市', '210522', '桓仁满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2106', '21', '00,21', '丹东市', '21', '辽宁省', '2106', '丹东市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210602', '2106', '00,21,2106', '元宝区', '21', '辽宁省', '2106', '丹东市', '210602', '元宝区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210603', '2106', '00,21,2106', '振兴区', '21', '辽宁省', '2106', '丹东市', '210603', '振兴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210604', '2106', '00,21,2106', '振安区', '21', '辽宁省', '2106', '丹东市', '210604', '振安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210624', '2106', '00,21,2106', '宽甸满族自治县', '21', '辽宁省', '2106', '丹东市', '210624', '宽甸满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210681', '2106', '00,21,2106', '东港市', '21', '辽宁省', '2106', '丹东市', '210681', '东港市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210682', '2106', '00,21,2106', '凤城市', '21', '辽宁省', '2106', '丹东市', '210682', '凤城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2107', '21', '00,21', '锦州市', '21', '辽宁省', '2107', '锦州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210702', '2107', '00,21,2107', '古塔区', '21', '辽宁省', '2107', '锦州市', '210702', '古塔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210703', '2107', '00,21,2107', '凌河区', '21', '辽宁省', '2107', '锦州市', '210703', '凌河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210711', '2107', '00,21,2107', '太和区', '21', '辽宁省', '2107', '锦州市', '210711', '太和区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210726', '2107', '00,21,2107', '黑山县', '21', '辽宁省', '2107', '锦州市', '210726', '黑山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210727', '2107', '00,21,2107', '义县', '21', '辽宁省', '2107', '锦州市', '210727', '义县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210781', '2107', '00,21,2107', '凌海市', '21', '辽宁省', '2107', '锦州市', '210781', '凌海市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210782', '2107', '00,21,2107', '北镇市', '21', '辽宁省', '2107', '锦州市', '210782', '北镇市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320404', '3204', '00,32,3204', '钟楼区', '32', '江苏省', '3204', '常州市', '320404', '钟楼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360113', '3601', '00,36,3601', '红谷滩区', '36', '江西省', '3601', '南昌市', '360113', '红谷滩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231085', '2310', '00,23,2310', '穆棱市', '23', '黑龙江省', '2310', '牡丹江市', '231085', '穆棱市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210882', '2108', '00,21,2108', '大石桥市', '21', '辽宁省', '2108', '营口市', '210882', '大石桥市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2109', '21', '00,21', '阜新市', '21', '辽宁省', '2109', '阜新市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210902', '2109', '00,21,2109', '海州区', '21', '辽宁省', '2109', '阜新市', '210902', '海州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330111', '3301', '00,33,3301', '富阳区', '33', '浙江省', '3301', '杭州市', '330111', '富阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330112', '3301', '00,33,3301', '临安区', '33', '浙江省', '3301', '杭州市', '330112', '临安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330122', '3301', '00,33,3301', '桐庐县', '33', '浙江省', '3301', '杭州市', '330122', '桐庐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330127', '3301', '00,33,3301', '淳安县', '33', '浙江省', '3301', '杭州市', '330127', '淳安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330182', '3301', '00,33,3301', '建德市', '33', '浙江省', '3301', '杭州市', '330182', '建德市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3302', '33', '00,33', '宁波市', '33', '浙江省', '3302', '宁波市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330203', '3302', '00,33,3302', '海曙区', '33', '浙江省', '3302', '宁波市', '330203', '海曙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330205', '3302', '00,33,3302', '江北区', '33', '浙江省', '3302', '宁波市', '330205', '江北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330206', '3302', '00,33,3302', '北仑区', '33', '浙江省', '3302', '宁波市', '330206', '北仑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330211', '3302', '00,33,3302', '镇海区', '33', '浙江省', '3302', '宁波市', '330211', '镇海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330212', '3302', '00,33,3302', '鄞州区', '33', '浙江省', '3302', '宁波市', '330212', '鄞州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330213', '3302', '00,33,3302', '奉化区', '33', '浙江省', '3302', '宁波市', '330213', '奉化区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330225', '3302', '00,33,3302', '象山县', '33', '浙江省', '3302', '宁波市', '330225', '象山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330226', '3302', '00,33,3302', '宁海县', '33', '浙江省', '3302', '宁波市', '330226', '宁海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330281', '3302', '00,33,3302', '余姚市', '33', '浙江省', '3302', '宁波市', '330281', '余姚市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330282', '3302', '00,33,3302', '慈溪市', '33', '浙江省', '3302', '宁波市', '330282', '慈溪市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3303', '33', '00,33', '温州市', '33', '浙江省', '3303', '温州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330302', '3303', '00,33,3303', '鹿城区', '33', '浙江省', '3303', '温州市', '330302', '鹿城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330303', '3303', '00,33,3303', '龙湾区', '33', '浙江省', '3303', '温州市', '330303', '龙湾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330304', '3303', '00,33,3303', '瓯海区', '33', '浙江省', '3303', '温州市', '330304', '瓯海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330305', '3303', '00,33,3303', '洞头区', '33', '浙江省', '3303', '温州市', '330305', '洞头区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330324', '3303', '00,33,3303', '永嘉县', '33', '浙江省', '3303', '温州市', '330324', '永嘉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330326', '3303', '00,33,3303', '平阳县', '33', '浙江省', '3303', '温州市', '330326', '平阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330327', '3303', '00,33,3303', '苍南县', '33', '浙江省', '3303', '温州市', '330327', '苍南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330328', '3303', '00,33,3303', '文成县', '33', '浙江省', '3303', '温州市', '330328', '文成县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330329', '3303', '00,33,3303', '泰顺县', '33', '浙江省', '3303', '温州市', '330329', '泰顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330381', '3303', '00,33,3303', '瑞安市', '33', '浙江省', '3303', '温州市', '330381', '瑞安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330382', '3303', '00,33,3303', '乐清市', '33', '浙江省', '3303', '温州市', '330382', '乐清市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330383', '3303', '00,33,3303', '龙港市', '33', '浙江省', '3303', '温州市', '330383', '龙港市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3304', '33', '00,33', '嘉兴市', '33', '浙江省', '3304', '嘉兴市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330402', '3304', '00,33,3304', '南湖区', '33', '浙江省', '3304', '嘉兴市', '330402', '南湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330411', '3304', '00,33,3304', '秀洲区', '33', '浙江省', '3304', '嘉兴市', '330411', '秀洲区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330421', '3304', '00,33,3304', '嘉善县', '33', '浙江省', '3304', '嘉兴市', '330421', '嘉善县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330424', '3304', '00,33,3304', '海盐县', '33', '浙江省', '3304', '嘉兴市', '330424', '海盐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330481', '3304', '00,33,3304', '海宁市', '33', '浙江省', '3304', '嘉兴市', '330481', '海宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330482', '3304', '00,33,3304', '平湖市', '33', '浙江省', '3304', '嘉兴市', '330482', '平湖市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330483', '3304', '00,33,3304', '桐乡市', '33', '浙江省', '3304', '嘉兴市', '330483', '桐乡市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3305', '33', '00,33', '湖州市', '33', '浙江省', '3305', '湖州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330502', '3305', '00,33,3305', '吴兴区', '33', '浙江省', '3305', '湖州市', '330502', '吴兴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330503', '3305', '00,33,3305', '南浔区', '33', '浙江省', '3305', '湖州市', '330503', '南浔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330521', '3305', '00,33,3305', '德清县', '33', '浙江省', '3305', '湖州市', '330521', '德清县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330522', '3305', '00,33,3305', '长兴县', '33', '浙江省', '3305', '湖州市', '330522', '长兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330523', '3305', '00,33,3305', '安吉县', '33', '浙江省', '3305', '湖州市', '330523', '安吉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3306', '33', '00,33', '绍兴市', '33', '浙江省', '3306', '绍兴市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330602', '3306', '00,33,3306', '越城区', '33', '浙江省', '3306', '绍兴市', '330602', '越城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330603', '3306', '00,33,3306', '柯桥区', '33', '浙江省', '3306', '绍兴市', '330603', '柯桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330604', '3306', '00,33,3306', '上虞区', '33', '浙江省', '3306', '绍兴市', '330604', '上虞区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330624', '3306', '00,33,3306', '新昌县', '33', '浙江省', '3306', '绍兴市', '330624', '新昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330681', '3306', '00,33,3306', '诸暨市', '33', '浙江省', '3306', '绍兴市', '330681', '诸暨市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330683', '3306', '00,33,3306', '嵊州市', '33', '浙江省', '3306', '绍兴市', '330683', '嵊州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3307', '33', '00,33', '金华市', '33', '浙江省', '3307', '金华市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330702', '3307', '00,33,3307', '婺城区', '33', '浙江省', '3307', '金华市', '330702', '婺城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330703', '3307', '00,33,3307', '金东区', '33', '浙江省', '3307', '金华市', '330703', '金东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330723', '3307', '00,33,3307', '武义县', '33', '浙江省', '3307', '金华市', '330723', '武义县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330726', '3307', '00,33,3307', '浦江县', '33', '浙江省', '3307', '金华市', '330726', '浦江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330727', '3307', '00,33,3307', '磐安县', '33', '浙江省', '3307', '金华市', '330727', '磐安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330781', '3307', '00,33,3307', '兰溪市', '33', '浙江省', '3307', '金华市', '330781', '兰溪市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330782', '3307', '00,33,3307', '义乌市', '33', '浙江省', '3307', '金华市', '330782', '义乌市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330783', '3307', '00,33,3307', '东阳市', '33', '浙江省', '3307', '金华市', '330783', '东阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330784', '3307', '00,33,3307', '永康市', '33', '浙江省', '3307', '金华市', '330784', '永康市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3308', '33', '00,33', '衢州市', '33', '浙江省', '3308', '衢州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330802', '3308', '00,33,3308', '柯城区', '33', '浙江省', '3308', '衢州市', '330802', '柯城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330803', '3308', '00,33,3308', '衢江区', '33', '浙江省', '3308', '衢州市', '330803', '衢江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330822', '3308', '00,33,3308', '常山县', '33', '浙江省', '3308', '衢州市', '330822', '常山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330824', '3308', '00,33,3308', '开化县', '33', '浙江省', '3308', '衢州市', '330824', '开化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330825', '3308', '00,33,3308', '龙游县', '33', '浙江省', '3308', '衢州市', '330825', '龙游县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330881', '3308', '00,33,3308', '江山市', '33', '浙江省', '3308', '衢州市', '330881', '江山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3309', '33', '00,33', '舟山市', '33', '浙江省', '3309', '舟山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330902', '3309', '00,33,3309', '定海区', '33', '浙江省', '3309', '舟山市', '330902', '定海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330903', '3309', '00,33,3309', '普陀区', '33', '浙江省', '3309', '舟山市', '330903', '普陀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330921', '3309', '00,33,3309', '岱山县', '33', '浙江省', '3309', '舟山市', '330921', '岱山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330922', '3309', '00,33,3309', '嵊泗县', '33', '浙江省', '3309', '舟山市', '330922', '嵊泗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3310', '33', '00,33', '台州市', '33', '浙江省', '3310', '台州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2108', '21', '00,21', '营口市', '21', '辽宁省', '2108', '营口市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210802', '2108', '00,21,2108', '站前区', '21', '辽宁省', '2108', '营口市', '210802', '站前区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210803', '2108', '00,21,2108', '西市区', '21', '辽宁省', '2108', '营口市', '210803', '西市区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210804', '2108', '00,21,2108', '鲅鱼圈区', '21', '辽宁省', '2108', '营口市', '210804', '鲅鱼圈区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210811', '2108', '00,21,2108', '老边区', '21', '辽宁省', '2108', '营口市', '210811', '老边区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370683', '3706', '00,37,3706', '莱州市', '37', '山东省', '3706', '烟台市', '370683', '莱州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220503', '2205', '00,22,2205', '二道江区', '22', '吉林省', '2205', '通化市', '220503', '二道江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220521', '2205', '00,22,2205', '通化县', '22', '吉林省', '2205', '通化市', '220521', '通化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220523', '2205', '00,22,2205', '辉南县', '22', '吉林省', '2205', '通化市', '220523', '辉南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220524', '2205', '00,22,2205', '柳河县', '22', '吉林省', '2205', '通化市', '220524', '柳河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220581', '2205', '00,22,2205', '梅河口市', '22', '吉林省', '2205', '通化市', '220581', '梅河口市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220582', '2205', '00,22,2205', '集安市', '22', '吉林省', '2205', '通化市', '220582', '集安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2206', '22', '00,22', '白山市', '22', '吉林省', '2206', '白山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220602', '2206', '00,22,2206', '浑江区', '22', '吉林省', '2206', '白山市', '220602', '浑江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220605', '2206', '00,22,2206', '江源区', '22', '吉林省', '2206', '白山市', '220605', '江源区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220621', '2206', '00,22,2206', '抚松县', '22', '吉林省', '2206', '白山市', '220621', '抚松县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220622', '2206', '00,22,2206', '靖宇县', '22', '吉林省', '2206', '白山市', '220622', '靖宇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220623', '2206', '00,22,2206', '长白朝鲜族自治县', '22', '吉林省', '2206', '白山市', '220623', '长白朝鲜族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220681', '2206', '00,22,2206', '临江市', '22', '吉林省', '2206', '白山市', '220681', '临江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2207', '22', '00,22', '松原市', '22', '吉林省', '2207', '松原市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220702', '2207', '00,22,2207', '宁江区', '22', '吉林省', '2207', '松原市', '220702', '宁江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220721', '2207', '00,22,2207', '前郭尔罗斯蒙古族自治县', '22', '吉林省', '2207', '松原市', '220721', '前郭尔罗斯蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220722', '2207', '00,22,2207', '长岭县', '22', '吉林省', '2207', '松原市', '220722', '长岭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220723', '2207', '00,22,2207', '乾安县', '22', '吉林省', '2207', '松原市', '220723', '乾安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220781', '2207', '00,22,2207', '扶余市', '22', '吉林省', '2207', '松原市', '220781', '扶余市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2208', '22', '00,22', '白城市', '22', '吉林省', '2208', '白城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220802', '2208', '00,22,2208', '洮北区', '22', '吉林省', '2208', '白城市', '220802', '洮北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220821', '2208', '00,22,2208', '镇赉县', '22', '吉林省', '2208', '白城市', '220821', '镇赉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220822', '2208', '00,22,2208', '通榆县', '22', '吉林省', '2208', '白城市', '220822', '通榆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220881', '2208', '00,22,2208', '洮南市', '22', '吉林省', '2208', '白城市', '220881', '洮南市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220882', '2208', '00,22,2208', '大安市', '22', '吉林省', '2208', '白城市', '220882', '大安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2224', '22', '00,22', '延边朝鲜族自治州', '22', '吉林省', '2224', '延边朝鲜族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222401', '2224', '00,22,2224', '延吉市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222401', '延吉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222402', '2224', '00,22,2224', '图们市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222402', '图们市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222403', '2224', '00,22,2224', '敦化市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222403', '敦化市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222404', '2224', '00,22,2224', '珲春市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222404', '珲春市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222405', '2224', '00,22,2224', '龙井市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222405', '龙井市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222406', '2224', '00,22,2224', '和龙市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222406', '和龙市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222424', '2224', '00,22,2224', '汪清县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222424', '汪清县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222426', '2224', '00,22,2224', '安图县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222426', '安图县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('23', '00', '00', '黑龙江省', '23', '黑龙江省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2301', '23', '00,23', '哈尔滨市', '23', '黑龙江省', '2301', '哈尔滨市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230102', '2301', '00,23,2301', '道里区', '23', '黑龙江省', '2301', '哈尔滨市', '230102', '道里区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230103', '2301', '00,23,2301', '南岗区', '23', '黑龙江省', '2301', '哈尔滨市', '230103', '南岗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230104', '2301', '00,23,2301', '道外区', '23', '黑龙江省', '2301', '哈尔滨市', '230104', '道外区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230108', '2301', '00,23,2301', '平房区', '23', '黑龙江省', '2301', '哈尔滨市', '230108', '平房区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230109', '2301', '00,23,2301', '松北区', '23', '黑龙江省', '2301', '哈尔滨市', '230109', '松北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230110', '2301', '00,23,2301', '香坊区', '23', '黑龙江省', '2301', '哈尔滨市', '230110', '香坊区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230111', '2301', '00,23,2301', '呼兰区', '23', '黑龙江省', '2301', '哈尔滨市', '230111', '呼兰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230112', '2301', '00,23,2301', '阿城区', '23', '黑龙江省', '2301', '哈尔滨市', '230112', '阿城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230113', '2301', '00,23,2301', '双城区', '23', '黑龙江省', '2301', '哈尔滨市', '230113', '双城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230123', '2301', '00,23,2301', '依兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230123', '依兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230124', '2301', '00,23,2301', '方正县', '23', '黑龙江省', '2301', '哈尔滨市', '230124', '方正县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230125', '2301', '00,23,2301', '宾县', '23', '黑龙江省', '2301', '哈尔滨市', '230125', '宾县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230126', '2301', '00,23,2301', '巴彦县', '23', '黑龙江省', '2301', '哈尔滨市', '230126', '巴彦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230127', '2301', '00,23,2301', '木兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230127', '木兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230128', '2301', '00,23,2301', '通河县', '23', '黑龙江省', '2301', '哈尔滨市', '230128', '通河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230129', '2301', '00,23,2301', '延寿县', '23', '黑龙江省', '2301', '哈尔滨市', '230129', '延寿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230183', '2301', '00,23,2301', '尚志市', '23', '黑龙江省', '2301', '哈尔滨市', '230183', '尚志市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230184', '2301', '00,23,2301', '五常市', '23', '黑龙江省', '2301', '哈尔滨市', '230184', '五常市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2302', '23', '00,23', '齐齐哈尔市', '23', '黑龙江省', '2302', '齐齐哈尔市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230202', '2302', '00,23,2302', '龙沙区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230202', '龙沙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230203', '2302', '00,23,2302', '建华区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230203', '建华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230204', '2302', '00,23,2302', '铁锋区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230204', '铁锋区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230205', '2302', '00,23,2302', '昂昂溪区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230205', '昂昂溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230206', '2302', '00,23,2302', '富拉尔基区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230206', '富拉尔基区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230207', '2302', '00,23,2302', '碾子山区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230207', '碾子山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230208', '2302', '00,23,2302', '梅里斯达斡尔族区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230208', '梅里斯达斡尔族区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230221', '2302', '00,23,2302', '龙江县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230221', '龙江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230223', '2302', '00,23,2302', '依安县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230223', '依安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230224', '2302', '00,23,2302', '泰来县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230224', '泰来县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230225', '2302', '00,23,2302', '甘南县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230225', '甘南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230227', '2302', '00,23,2302', '富裕县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230227', '富裕县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230229', '2302', '00,23,2302', '克山县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230229', '克山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230230', '2302', '00,23,2302', '克东县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230230', '克东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230231', '2302', '00,23,2302', '拜泉县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230231', '拜泉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230281', '2302', '00,23,2302', '讷河市', '23', '黑龙江省', '2302', '齐齐哈尔市', '230281', '讷河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2303', '23', '00,23', '鸡西市', '23', '黑龙江省', '2303', '鸡西市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230302', '2303', '00,23,2303', '鸡冠区', '23', '黑龙江省', '2303', '鸡西市', '230302', '鸡冠区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150525', '1505', '00,15,1505', '奈曼旗', '15', '内蒙古自治区', '1505', '通辽市', '150525', '奈曼旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150526', '1505', '00,15,1505', '扎鲁特旗', '15', '内蒙古自治区', '1505', '通辽市', '150526', '扎鲁特旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150581', '1505', '00,15,1505', '霍林郭勒市', '15', '内蒙古自治区', '1505', '通辽市', '150581', '霍林郭勒市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1506', '15', '00,15', '鄂尔多斯市', '15', '内蒙古自治区', '1506', '鄂尔多斯市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150602', '1506', '00,15,1506', '东胜区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150602', '东胜区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150603', '1506', '00,15,1506', '康巴什区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150603', '康巴什区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150621', '1506', '00,15,1506', '达拉特旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150621', '达拉特旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150622', '1506', '00,15,1506', '准格尔旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150622', '准格尔旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150623', '1506', '00,15,1506', '鄂托克前旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150623', '鄂托克前旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150624', '1506', '00,15,1506', '鄂托克旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150624', '鄂托克旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150625', '1506', '00,15,1506', '杭锦旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150625', '杭锦旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150626', '1506', '00,15,1506', '乌审旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150626', '乌审旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150627', '1506', '00,15,1506', '伊金霍洛旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150627', '伊金霍洛旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1507', '15', '00,15', '呼伦贝尔市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150702', '1507', '00,15,1507', '海拉尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150702', '海拉尔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150703', '1507', '00,15,1507', '扎赉诺尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150703', '扎赉诺尔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150721', '1507', '00,15,1507', '阿荣旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150721', '阿荣旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150722', '1507', '00,15,1507', '莫力达瓦达斡尔族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150722', '莫力达瓦达斡尔族自治旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150723', '1507', '00,15,1507', '鄂伦春自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150723', '鄂伦春自治旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150724', '1507', '00,15,1507', '鄂温克族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150724', '鄂温克族自治旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150725', '1507', '00,15,1507', '陈巴尔虎旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150725', '陈巴尔虎旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150726', '1507', '00,15,1507', '新巴尔虎左旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150726', '新巴尔虎左旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150727', '1507', '00,15,1507', '新巴尔虎右旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150727', '新巴尔虎右旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150781', '1507', '00,15,1507', '满洲里市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150781', '满洲里市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150782', '1507', '00,15,1507', '牙克石市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150782', '牙克石市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150783', '1507', '00,15,1507', '扎兰屯市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150783', '扎兰屯市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150784', '1507', '00,15,1507', '额尔古纳市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150784', '额尔古纳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150785', '1507', '00,15,1507', '根河市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150785', '根河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1508', '15', '00,15', '巴彦淖尔市', '15', '内蒙古自治区', '1508', '巴彦淖尔市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150802', '1508', '00,15,1508', '临河区', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150802', '临河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150821', '1508', '00,15,1508', '五原县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150821', '五原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150822', '1508', '00,15,1508', '磴口县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150822', '磴口县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150823', '1508', '00,15,1508', '乌拉特前旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150823', '乌拉特前旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150824', '1508', '00,15,1508', '乌拉特中旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150824', '乌拉特中旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150825', '1508', '00,15,1508', '乌拉特后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150825', '乌拉特后旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150826', '1508', '00,15,1508', '杭锦后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150826', '杭锦后旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1509', '15', '00,15', '乌兰察布市', '15', '内蒙古自治区', '1509', '乌兰察布市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150902', '1509', '00,15,1509', '集宁区', '15', '内蒙古自治区', '1509', '乌兰察布市', '150902', '集宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150921', '1509', '00,15,1509', '卓资县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150921', '卓资县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150922', '1509', '00,15,1509', '化德县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150922', '化德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150923', '1509', '00,15,1509', '商都县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150923', '商都县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150924', '1509', '00,15,1509', '兴和县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150924', '兴和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150925', '1509', '00,15,1509', '凉城县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150925', '凉城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150926', '1509', '00,15,1509', '察哈尔右翼前旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150926', '察哈尔右翼前旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150927', '1509', '00,15,1509', '察哈尔右翼中旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150927', '察哈尔右翼中旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150928', '1509', '00,15,1509', '察哈尔右翼后旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150928', '察哈尔右翼后旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150929', '1509', '00,15,1509', '四子王旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150929', '四子王旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150981', '1509', '00,15,1509', '丰镇市', '15', '内蒙古自治区', '1509', '乌兰察布市', '150981', '丰镇市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1522', '15', '00,15', '兴安盟', '15', '内蒙古自治区', '1522', '兴安盟', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152201', '1522', '00,15,1522', '乌兰浩特市', '15', '内蒙古自治区', '1522', '兴安盟', '152201', '乌兰浩特市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152202', '1522', '00,15,1522', '阿尔山市', '15', '内蒙古自治区', '1522', '兴安盟', '152202', '阿尔山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152221', '1522', '00,15,1522', '科尔沁右翼前旗', '15', '内蒙古自治区', '1522', '兴安盟', '152221', '科尔沁右翼前旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152222', '1522', '00,15,1522', '科尔沁右翼中旗', '15', '内蒙古自治区', '1522', '兴安盟', '152222', '科尔沁右翼中旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152223', '1522', '00,15,1522', '扎赉特旗', '15', '内蒙古自治区', '1522', '兴安盟', '152223', '扎赉特旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152224', '1522', '00,15,1522', '突泉县', '15', '内蒙古自治区', '1522', '兴安盟', '152224', '突泉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1525', '15', '00,15', '锡林郭勒盟', '15', '内蒙古自治区', '1525', '锡林郭勒盟', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211421', '2114', '00,21,2114', '绥中县', '21', '辽宁省', '2114', '葫芦岛市', '211421', '绥中县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152501', '1525', '00,15,1525', '二连浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152501', '二连浩特市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152502', '1525', '00,15,1525', '锡林浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152502', '锡林浩特市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152522', '1525', '00,15,1525', '阿巴嘎旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152522', '阿巴嘎旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152523', '1525', '00,15,1525', '苏尼特左旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152523', '苏尼特左旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370681', '3706', '00,37,3706', '龙口市', '37', '山东省', '3706', '烟台市', '370681', '龙口市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370682', '3706', '00,37,3706', '莱阳市', '37', '山东省', '3706', '烟台市', '370682', '莱阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330106', '3301', '00,33,3301', '西湖区', '33', '浙江省', '3301', '杭州市', '330106', '西湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231086', '2310', '00,23,2310', '东宁市', '23', '黑龙江省', '2310', '牡丹江市', '231086', '东宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2311', '23', '00,23', '黑河市', '23', '黑龙江省', '2311', '黑河市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231102', '2311', '00,23,2311', '爱辉区', '23', '黑龙江省', '2311', '黑河市', '231102', '爱辉区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231123', '2311', '00,23,2311', '逊克县', '23', '黑龙江省', '2311', '黑河市', '231123', '逊克县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231124', '2311', '00,23,2311', '孙吴县', '23', '黑龙江省', '2311', '黑河市', '231124', '孙吴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231181', '2311', '00,23,2311', '北安市', '23', '黑龙江省', '2311', '黑河市', '231181', '北安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231182', '2311', '00,23,2311', '五大连池市', '23', '黑龙江省', '2311', '黑河市', '231182', '五大连池市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231183', '2311', '00,23,2311', '嫩江市', '23', '黑龙江省', '2311', '黑河市', '231183', '嫩江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2312', '23', '00,23', '绥化市', '23', '黑龙江省', '2312', '绥化市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231202', '2312', '00,23,2312', '北林区', '23', '黑龙江省', '2312', '绥化市', '231202', '北林区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231221', '2312', '00,23,2312', '望奎县', '23', '黑龙江省', '2312', '绥化市', '231221', '望奎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231222', '2312', '00,23,2312', '兰西县', '23', '黑龙江省', '2312', '绥化市', '231222', '兰西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231223', '2312', '00,23,2312', '青冈县', '23', '黑龙江省', '2312', '绥化市', '231223', '青冈县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231224', '2312', '00,23,2312', '庆安县', '23', '黑龙江省', '2312', '绥化市', '231224', '庆安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231225', '2312', '00,23,2312', '明水县', '23', '黑龙江省', '2312', '绥化市', '231225', '明水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231226', '2312', '00,23,2312', '绥棱县', '23', '黑龙江省', '2312', '绥化市', '231226', '绥棱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231281', '2312', '00,23,2312', '安达市', '23', '黑龙江省', '2312', '绥化市', '231281', '安达市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231282', '2312', '00,23,2312', '肇东市', '23', '黑龙江省', '2312', '绥化市', '231282', '肇东市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231283', '2312', '00,23,2312', '海伦市', '23', '黑龙江省', '2312', '绥化市', '231283', '海伦市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2327', '23', '00,23', '大兴安岭地区', '23', '黑龙江省', '2327', '大兴安岭地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('232701', '2327', '00,23,2327', '漠河市', '23', '黑龙江省', '2327', '大兴安岭地区', '232701', '漠河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('232721', '2327', '00,23,2327', '呼玛县', '23', '黑龙江省', '2327', '大兴安岭地区', '232721', '呼玛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('232722', '2327', '00,23,2327', '塔河县', '23', '黑龙江省', '2327', '大兴安岭地区', '232722', '塔河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('31', '00', '00', '上海市', '31', '上海市', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3101', '31', '00,31', '上海市', '31', '上海市', '3101', '上海市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310101', '3101', '00,31,3101', '黄浦区', '31', '上海市', '3101', '上海市', '310101', '黄浦区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310104', '3101', '00,31,3101', '徐汇区', '31', '上海市', '3101', '上海市', '310104', '徐汇区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310105', '3101', '00,31,3101', '长宁区', '31', '上海市', '3101', '上海市', '310105', '长宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310106', '3101', '00,31,3101', '静安区', '31', '上海市', '3101', '上海市', '310106', '静安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310107', '3101', '00,31,3101', '普陀区', '31', '上海市', '3101', '上海市', '310107', '普陀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310109', '3101', '00,31,3101', '虹口区', '31', '上海市', '3101', '上海市', '310109', '虹口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310110', '3101', '00,31,3101', '杨浦区', '31', '上海市', '3101', '上海市', '310110', '杨浦区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310112', '3101', '00,31,3101', '闵行区', '31', '上海市', '3101', '上海市', '310112', '闵行区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310113', '3101', '00,31,3101', '宝山区', '31', '上海市', '3101', '上海市', '310113', '宝山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310114', '3101', '00,31,3101', '嘉定区', '31', '上海市', '3101', '上海市', '310114', '嘉定区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310115', '3101', '00,31,3101', '浦东新区', '31', '上海市', '3101', '上海市', '310115', '浦东新区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310116', '3101', '00,31,3101', '金山区', '31', '上海市', '3101', '上海市', '310116', '金山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310117', '3101', '00,31,3101', '松江区', '31', '上海市', '3101', '上海市', '310117', '松江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310118', '3101', '00,31,3101', '青浦区', '31', '上海市', '3101', '上海市', '310118', '青浦区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310120', '3101', '00,31,3101', '奉贤区', '31', '上海市', '3101', '上海市', '310120', '奉贤区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310151', '3101', '00,31,3101', '崇明区', '31', '上海市', '3101', '上海市', '310151', '崇明区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('32', '00', '00', '江苏省', '32', '江苏省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3201', '32', '00,32', '南京市', '32', '江苏省', '3201', '南京市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320102', '3201', '00,32,3201', '玄武区', '32', '江苏省', '3201', '南京市', '320102', '玄武区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320104', '3201', '00,32,3201', '秦淮区', '32', '江苏省', '3201', '南京市', '320104', '秦淮区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320105', '3201', '00,32,3201', '建邺区', '32', '江苏省', '3201', '南京市', '320105', '建邺区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320106', '3201', '00,32,3201', '鼓楼区', '32', '江苏省', '3201', '南京市', '320106', '鼓楼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320111', '3201', '00,32,3201', '浦口区', '32', '江苏省', '3201', '南京市', '320111', '浦口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320113', '3201', '00,32,3201', '栖霞区', '32', '江苏省', '3201', '南京市', '320113', '栖霞区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320114', '3201', '00,32,3201', '雨花台区', '32', '江苏省', '3201', '南京市', '320114', '雨花台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320115', '3201', '00,32,3201', '江宁区', '32', '江苏省', '3201', '南京市', '320115', '江宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320116', '3201', '00,32,3201', '六合区', '32', '江苏省', '3201', '南京市', '320116', '六合区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320117', '3201', '00,32,3201', '溧水区', '32', '江苏省', '3201', '南京市', '320117', '溧水区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320118', '3201', '00,32,3201', '高淳区', '32', '江苏省', '3201', '南京市', '320118', '高淳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3202', '32', '00,32', '无锡市', '32', '江苏省', '3202', '无锡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320205', '3202', '00,32,3202', '锡山区', '32', '江苏省', '3202', '无锡市', '320205', '锡山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320206', '3202', '00,32,3202', '惠山区', '32', '江苏省', '3202', '无锡市', '320206', '惠山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320211', '3202', '00,32,3202', '滨湖区', '32', '江苏省', '3202', '无锡市', '320211', '滨湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320213', '3202', '00,32,3202', '梁溪区', '32', '江苏省', '3202', '无锡市', '320213', '梁溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320214', '3202', '00,32,3202', '新吴区', '32', '江苏省', '3202', '无锡市', '320214', '新吴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320281', '3202', '00,32,3202', '江阴市', '32', '江苏省', '3202', '无锡市', '320281', '江阴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320282', '3202', '00,32,3202', '宜兴市', '32', '江苏省', '3202', '无锡市', '320282', '宜兴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3203', '32', '00,32', '徐州市', '32', '江苏省', '3203', '徐州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320302', '3203', '00,32,3203', '鼓楼区', '32', '江苏省', '3203', '徐州市', '320302', '鼓楼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320303', '3203', '00,32,3203', '云龙区', '32', '江苏省', '3203', '徐州市', '320303', '云龙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320305', '3203', '00,32,3203', '贾汪区', '32', '江苏省', '3203', '徐州市', '320305', '贾汪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320311', '3203', '00,32,3203', '泉山区', '32', '江苏省', '3203', '徐州市', '320311', '泉山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320312', '3203', '00,32,3203', '铜山区', '32', '江苏省', '3203', '徐州市', '320312', '铜山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320321', '3203', '00,32,3203', '丰县', '32', '江苏省', '3203', '徐州市', '320321', '丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320322', '3203', '00,32,3203', '沛县', '32', '江苏省', '3203', '徐州市', '320322', '沛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320324', '3203', '00,32,3203', '睢宁县', '32', '江苏省', '3203', '徐州市', '320324', '睢宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320381', '3203', '00,32,3203', '新沂市', '32', '江苏省', '3203', '徐州市', '320381', '新沂市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320382', '3203', '00,32,3203', '邳州市', '32', '江苏省', '3203', '徐州市', '320382', '邳州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3204', '32', '00,32', '常州市', '32', '江苏省', '3204', '常州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320402', '3204', '00,32,3204', '天宁区', '32', '江苏省', '3204', '常州市', '320402', '天宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150522', '1505', '00,15,1505', '科尔沁左翼后旗', '15', '内蒙古自治区', '1505', '通辽市', '150522', '科尔沁左翼后旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150523', '1505', '00,15,1505', '开鲁县', '15', '内蒙古自治区', '1505', '通辽市', '150523', '开鲁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152527', '1525', '00,15,1525', '太仆寺旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152527', '太仆寺旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152528', '1525', '00,15,1525', '镶黄旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152528', '镶黄旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152529', '1525', '00,15,1525', '正镶白旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152529', '正镶白旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210881', '2108', '00,21,2108', '盖州市', '21', '辽宁省', '2108', '营口市', '210881', '盖州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230303', '2303', '00,23,2303', '恒山区', '23', '黑龙江省', '2303', '鸡西市', '230303', '恒山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230304', '2303', '00,23,2303', '滴道区', '23', '黑龙江省', '2303', '鸡西市', '230304', '滴道区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230305', '2303', '00,23,2303', '梨树区', '23', '黑龙江省', '2303', '鸡西市', '230305', '梨树区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230306', '2303', '00,23,2303', '城子河区', '23', '黑龙江省', '2303', '鸡西市', '230306', '城子河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230307', '2303', '00,23,2303', '麻山区', '23', '黑龙江省', '2303', '鸡西市', '230307', '麻山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230321', '2303', '00,23,2303', '鸡东县', '23', '黑龙江省', '2303', '鸡西市', '230321', '鸡东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230381', '2303', '00,23,2303', '虎林市', '23', '黑龙江省', '2303', '鸡西市', '230381', '虎林市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230382', '2303', '00,23,2303', '密山市', '23', '黑龙江省', '2303', '鸡西市', '230382', '密山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2304', '23', '00,23', '鹤岗市', '23', '黑龙江省', '2304', '鹤岗市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230402', '2304', '00,23,2304', '向阳区', '23', '黑龙江省', '2304', '鹤岗市', '230402', '向阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230403', '2304', '00,23,2304', '工农区', '23', '黑龙江省', '2304', '鹤岗市', '230403', '工农区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230404', '2304', '00,23,2304', '南山区', '23', '黑龙江省', '2304', '鹤岗市', '230404', '南山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230405', '2304', '00,23,2304', '兴安区', '23', '黑龙江省', '2304', '鹤岗市', '230405', '兴安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230406', '2304', '00,23,2304', '东山区', '23', '黑龙江省', '2304', '鹤岗市', '230406', '东山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230407', '2304', '00,23,2304', '兴山区', '23', '黑龙江省', '2304', '鹤岗市', '230407', '兴山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230421', '2304', '00,23,2304', '萝北县', '23', '黑龙江省', '2304', '鹤岗市', '230421', '萝北县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230422', '2304', '00,23,2304', '绥滨县', '23', '黑龙江省', '2304', '鹤岗市', '230422', '绥滨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2305', '23', '00,23', '双鸭山市', '23', '黑龙江省', '2305', '双鸭山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230502', '2305', '00,23,2305', '尖山区', '23', '黑龙江省', '2305', '双鸭山市', '230502', '尖山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230503', '2305', '00,23,2305', '岭东区', '23', '黑龙江省', '2305', '双鸭山市', '230503', '岭东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230505', '2305', '00,23,2305', '四方台区', '23', '黑龙江省', '2305', '双鸭山市', '230505', '四方台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230506', '2305', '00,23,2305', '宝山区', '23', '黑龙江省', '2305', '双鸭山市', '230506', '宝山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230521', '2305', '00,23,2305', '集贤县', '23', '黑龙江省', '2305', '双鸭山市', '230521', '集贤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230522', '2305', '00,23,2305', '友谊县', '23', '黑龙江省', '2305', '双鸭山市', '230522', '友谊县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230523', '2305', '00,23,2305', '宝清县', '23', '黑龙江省', '2305', '双鸭山市', '230523', '宝清县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230524', '2305', '00,23,2305', '饶河县', '23', '黑龙江省', '2305', '双鸭山市', '230524', '饶河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2306', '23', '00,23', '大庆市', '23', '黑龙江省', '2306', '大庆市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230602', '2306', '00,23,2306', '萨尔图区', '23', '黑龙江省', '2306', '大庆市', '230602', '萨尔图区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230603', '2306', '00,23,2306', '龙凤区', '23', '黑龙江省', '2306', '大庆市', '230603', '龙凤区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230604', '2306', '00,23,2306', '让胡路区', '23', '黑龙江省', '2306', '大庆市', '230604', '让胡路区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230605', '2306', '00,23,2306', '红岗区', '23', '黑龙江省', '2306', '大庆市', '230605', '红岗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230606', '2306', '00,23,2306', '大同区', '23', '黑龙江省', '2306', '大庆市', '230606', '大同区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230621', '2306', '00,23,2306', '肇州县', '23', '黑龙江省', '2306', '大庆市', '230621', '肇州县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230622', '2306', '00,23,2306', '肇源县', '23', '黑龙江省', '2306', '大庆市', '230622', '肇源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230623', '2306', '00,23,2306', '林甸县', '23', '黑龙江省', '2306', '大庆市', '230623', '林甸县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230624', '2306', '00,23,2306', '杜尔伯特蒙古族自治县', '23', '黑龙江省', '2306', '大庆市', '230624', '杜尔伯特蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2307', '23', '00,23', '伊春市', '23', '黑龙江省', '2307', '伊春市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230717', '2307', '00,23,2307', '伊美区', '23', '黑龙江省', '2307', '伊春市', '230717', '伊美区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230718', '2307', '00,23,2307', '乌翠区', '23', '黑龙江省', '2307', '伊春市', '230718', '乌翠区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230719', '2307', '00,23,2307', '友好区', '23', '黑龙江省', '2307', '伊春市', '230719', '友好区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230722', '2307', '00,23,2307', '嘉荫县', '23', '黑龙江省', '2307', '伊春市', '230722', '嘉荫县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230723', '2307', '00,23,2307', '汤旺县', '23', '黑龙江省', '2307', '伊春市', '230723', '汤旺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230724', '2307', '00,23,2307', '丰林县', '23', '黑龙江省', '2307', '伊春市', '230724', '丰林县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230725', '2307', '00,23,2307', '大箐山县', '23', '黑龙江省', '2307', '伊春市', '230725', '大箐山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230726', '2307', '00,23,2307', '南岔县', '23', '黑龙江省', '2307', '伊春市', '230726', '南岔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230751', '2307', '00,23,2307', '金林区', '23', '黑龙江省', '2307', '伊春市', '230751', '金林区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230781', '2307', '00,23,2307', '铁力市', '23', '黑龙江省', '2307', '伊春市', '230781', '铁力市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2308', '23', '00,23', '佳木斯市', '23', '黑龙江省', '2308', '佳木斯市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230803', '2308', '00,23,2308', '向阳区', '23', '黑龙江省', '2308', '佳木斯市', '230803', '向阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230804', '2308', '00,23,2308', '前进区', '23', '黑龙江省', '2308', '佳木斯市', '230804', '前进区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230805', '2308', '00,23,2308', '东风区', '23', '黑龙江省', '2308', '佳木斯市', '230805', '东风区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230811', '2308', '00,23,2308', '郊区', '23', '黑龙江省', '2308', '佳木斯市', '230811', '郊区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230822', '2308', '00,23,2308', '桦南县', '23', '黑龙江省', '2308', '佳木斯市', '230822', '桦南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230826', '2308', '00,23,2308', '桦川县', '23', '黑龙江省', '2308', '佳木斯市', '230826', '桦川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230828', '2308', '00,23,2308', '汤原县', '23', '黑龙江省', '2308', '佳木斯市', '230828', '汤原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230881', '2308', '00,23,2308', '同江市', '23', '黑龙江省', '2308', '佳木斯市', '230881', '同江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230882', '2308', '00,23,2308', '富锦市', '23', '黑龙江省', '2308', '佳木斯市', '230882', '富锦市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230883', '2308', '00,23,2308', '抚远市', '23', '黑龙江省', '2308', '佳木斯市', '230883', '抚远市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2309', '23', '00,23', '七台河市', '23', '黑龙江省', '2309', '七台河市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230902', '2309', '00,23,2309', '新兴区', '23', '黑龙江省', '2309', '七台河市', '230902', '新兴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230903', '2309', '00,23,2309', '桃山区', '23', '黑龙江省', '2309', '七台河市', '230903', '桃山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230904', '2309', '00,23,2309', '茄子河区', '23', '黑龙江省', '2309', '七台河市', '230904', '茄子河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230921', '2309', '00,23,2309', '勃利县', '23', '黑龙江省', '2309', '七台河市', '230921', '勃利县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2310', '23', '00,23', '牡丹江市', '23', '黑龙江省', '2310', '牡丹江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231002', '2310', '00,23,2310', '东安区', '23', '黑龙江省', '2310', '牡丹江市', '231002', '东安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231003', '2310', '00,23,2310', '阳明区', '23', '黑龙江省', '2310', '牡丹江市', '231003', '阳明区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231004', '2310', '00,23,2310', '爱民区', '23', '黑龙江省', '2310', '牡丹江市', '231004', '爱民区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231005', '2310', '00,23,2310', '西安区', '23', '黑龙江省', '2310', '牡丹江市', '231005', '西安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231025', '2310', '00,23,2310', '林口县', '23', '黑龙江省', '2310', '牡丹江市', '231025', '林口县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231081', '2310', '00,23,2310', '绥芬河市', '23', '黑龙江省', '2310', '牡丹江市', '231081', '绥芬河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231083', '2310', '00,23,2310', '海林市', '23', '黑龙江省', '2310', '牡丹江市', '231083', '海林市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231084', '2310', '00,23,2310', '宁安市', '23', '黑龙江省', '2310', '牡丹江市', '231084', '宁安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152525', '1525', '00,15,1525', '东乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152525', '东乌珠穆沁旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152526', '1525', '00,15,1525', '西乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152526', '西乌珠穆沁旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210904', '2109', '00,21,2109', '太平区', '21', '辽宁省', '2109', '阜新市', '210904', '太平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210905', '2109', '00,21,2109', '清河门区', '21', '辽宁省', '2109', '阜新市', '210905', '清河门区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210911', '2109', '00,21,2109', '细河区', '21', '辽宁省', '2109', '阜新市', '210911', '细河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210921', '2109', '00,21,2109', '阜新蒙古族自治县', '21', '辽宁省', '2109', '阜新市', '210921', '阜新蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210922', '2109', '00,21,2109', '彰武县', '21', '辽宁省', '2109', '阜新市', '210922', '彰武县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2110', '21', '00,21', '辽阳市', '21', '辽宁省', '2110', '辽阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211002', '2110', '00,21,2110', '白塔区', '21', '辽宁省', '2110', '辽阳市', '211002', '白塔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211003', '2110', '00,21,2110', '文圣区', '21', '辽宁省', '2110', '辽阳市', '211003', '文圣区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211004', '2110', '00,21,2110', '宏伟区', '21', '辽宁省', '2110', '辽阳市', '211004', '宏伟区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211005', '2110', '00,21,2110', '弓长岭区', '21', '辽宁省', '2110', '辽阳市', '211005', '弓长岭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211011', '2110', '00,21,2110', '太子河区', '21', '辽宁省', '2110', '辽阳市', '211011', '太子河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211021', '2110', '00,21,2110', '辽阳县', '21', '辽宁省', '2110', '辽阳市', '211021', '辽阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211081', '2110', '00,21,2110', '灯塔市', '21', '辽宁省', '2110', '辽阳市', '211081', '灯塔市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2111', '21', '00,21', '盘锦市', '21', '辽宁省', '2111', '盘锦市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211102', '2111', '00,21,2111', '双台子区', '21', '辽宁省', '2111', '盘锦市', '211102', '双台子区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211103', '2111', '00,21,2111', '兴隆台区', '21', '辽宁省', '2111', '盘锦市', '211103', '兴隆台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211104', '2111', '00,21,2111', '大洼区', '21', '辽宁省', '2111', '盘锦市', '211104', '大洼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211122', '2111', '00,21,2111', '盘山县', '21', '辽宁省', '2111', '盘锦市', '211122', '盘山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2112', '21', '00,21', '铁岭市', '21', '辽宁省', '2112', '铁岭市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211202', '2112', '00,21,2112', '银州区', '21', '辽宁省', '2112', '铁岭市', '211202', '银州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211204', '2112', '00,21,2112', '清河区', '21', '辽宁省', '2112', '铁岭市', '211204', '清河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211221', '2112', '00,21,2112', '铁岭县', '21', '辽宁省', '2112', '铁岭市', '211221', '铁岭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211223', '2112', '00,21,2112', '西丰县', '21', '辽宁省', '2112', '铁岭市', '211223', '西丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211224', '2112', '00,21,2112', '昌图县', '21', '辽宁省', '2112', '铁岭市', '211224', '昌图县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211281', '2112', '00,21,2112', '调兵山市', '21', '辽宁省', '2112', '铁岭市', '211281', '调兵山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211282', '2112', '00,21,2112', '开原市', '21', '辽宁省', '2112', '铁岭市', '211282', '开原市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2113', '21', '00,21', '朝阳市', '21', '辽宁省', '2113', '朝阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211302', '2113', '00,21,2113', '双塔区', '21', '辽宁省', '2113', '朝阳市', '211302', '双塔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211303', '2113', '00,21,2113', '龙城区', '21', '辽宁省', '2113', '朝阳市', '211303', '龙城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211321', '2113', '00,21,2113', '朝阳县', '21', '辽宁省', '2113', '朝阳市', '211321', '朝阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211322', '2113', '00,21,2113', '建平县', '21', '辽宁省', '2113', '朝阳市', '211322', '建平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211324', '2113', '00,21,2113', '喀喇沁左翼蒙古族自治县', '21', '辽宁省', '2113', '朝阳市', '211324', '喀喇沁左翼蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211381', '2113', '00,21,2113', '北票市', '21', '辽宁省', '2113', '朝阳市', '211381', '北票市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211382', '2113', '00,21,2113', '凌源市', '21', '辽宁省', '2113', '朝阳市', '211382', '凌源市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2114', '21', '00,21', '葫芦岛市', '21', '辽宁省', '2114', '葫芦岛市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211402', '2114', '00,21,2114', '连山区', '21', '辽宁省', '2114', '葫芦岛市', '211402', '连山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211403', '2114', '00,21,2114', '龙港区', '21', '辽宁省', '2114', '葫芦岛市', '211403', '龙港区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211404', '2114', '00,21,2114', '南票区', '21', '辽宁省', '2114', '葫芦岛市', '211404', '南票区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211422', '2114', '00,21,2114', '建昌县', '21', '辽宁省', '2114', '葫芦岛市', '211422', '建昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211481', '2114', '00,21,2114', '兴城市', '21', '辽宁省', '2114', '葫芦岛市', '211481', '兴城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('22', '00', '00', '吉林省', '22', '吉林省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2201', '22', '00,22', '长春市', '22', '吉林省', '2201', '长春市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220102', '2201', '00,22,2201', '南关区', '22', '吉林省', '2201', '长春市', '220102', '南关区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220103', '2201', '00,22,2201', '宽城区', '22', '吉林省', '2201', '长春市', '220103', '宽城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220104', '2201', '00,22,2201', '朝阳区', '22', '吉林省', '2201', '长春市', '220104', '朝阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220105', '2201', '00,22,2201', '二道区', '22', '吉林省', '2201', '长春市', '220105', '二道区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220106', '2201', '00,22,2201', '绿园区', '22', '吉林省', '2201', '长春市', '220106', '绿园区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220112', '2201', '00,22,2201', '双阳区', '22', '吉林省', '2201', '长春市', '220112', '双阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220113', '2201', '00,22,2201', '九台区', '22', '吉林省', '2201', '长春市', '220113', '九台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220122', '2201', '00,22,2201', '农安县', '22', '吉林省', '2201', '长春市', '220122', '农安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220182', '2201', '00,22,2201', '榆树市', '22', '吉林省', '2201', '长春市', '220182', '榆树市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220183', '2201', '00,22,2201', '德惠市', '22', '吉林省', '2201', '长春市', '220183', '德惠市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2202', '22', '00,22', '吉林市', '22', '吉林省', '2202', '吉林市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220202', '2202', '00,22,2202', '昌邑区', '22', '吉林省', '2202', '吉林市', '220202', '昌邑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220203', '2202', '00,22,2202', '龙潭区', '22', '吉林省', '2202', '吉林市', '220203', '龙潭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220204', '2202', '00,22,2202', '船营区', '22', '吉林省', '2202', '吉林市', '220204', '船营区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220211', '2202', '00,22,2202', '丰满区', '22', '吉林省', '2202', '吉林市', '220211', '丰满区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220221', '2202', '00,22,2202', '永吉县', '22', '吉林省', '2202', '吉林市', '220221', '永吉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220281', '2202', '00,22,2202', '蛟河市', '22', '吉林省', '2202', '吉林市', '220281', '蛟河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220282', '2202', '00,22,2202', '桦甸市', '22', '吉林省', '2202', '吉林市', '220282', '桦甸市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220283', '2202', '00,22,2202', '舒兰市', '22', '吉林省', '2202', '吉林市', '220283', '舒兰市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220284', '2202', '00,22,2202', '磐石市', '22', '吉林省', '2202', '吉林市', '220284', '磐石市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2203', '22', '00,22', '四平市', '22', '吉林省', '2203', '四平市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220302', '2203', '00,22,2203', '铁西区', '22', '吉林省', '2203', '四平市', '220302', '铁西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220303', '2203', '00,22,2203', '铁东区', '22', '吉林省', '2203', '四平市', '220303', '铁东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220322', '2203', '00,22,2203', '梨树县', '22', '吉林省', '2203', '四平市', '220322', '梨树县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220323', '2203', '00,22,2203', '伊通满族自治县', '22', '吉林省', '2203', '四平市', '220323', '伊通满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220381', '2203', '00,22,2203', '公主岭市', '22', '吉林省', '2203', '四平市', '220381', '公主岭市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220382', '2203', '00,22,2203', '双辽市', '22', '吉林省', '2203', '四平市', '220382', '双辽市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2204', '22', '00,22', '辽源市', '22', '吉林省', '2204', '辽源市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220402', '2204', '00,22,2204', '龙山区', '22', '吉林省', '2204', '辽源市', '220402', '龙山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220403', '2204', '00,22,2204', '西安区', '22', '吉林省', '2204', '辽源市', '220403', '西安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220421', '2204', '00,22,2204', '东丰县', '22', '吉林省', '2204', '辽源市', '220421', '东丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220422', '2204', '00,22,2204', '东辽县', '22', '吉林省', '2204', '辽源市', '220422', '东辽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320411', '3204', '00,32,3204', '新北区', '32', '江苏省', '3204', '常州市', '320411', '新北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320412', '3204', '00,32,3204', '武进区', '32', '江苏省', '3204', '常州市', '320412', '武进区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320413', '3204', '00,32,3204', '金坛区', '32', '江苏省', '3204', '常州市', '320413', '金坛区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441427', '4414', '00,44,4414', '蕉岭县', '44', '广东省', '4414', '梅州市', '441427', '蕉岭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360121', '3601', '00,36,3601', '南昌县', '36', '江西省', '3601', '南昌市', '360121', '南昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331022', '3310', '00,33,3310', '三门县', '33', '浙江省', '3310', '台州市', '331022', '三门县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331023', '3310', '00,33,3310', '天台县', '33', '浙江省', '3310', '台州市', '331023', '天台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331024', '3310', '00,33,3310', '仙居县', '33', '浙江省', '3310', '台州市', '331024', '仙居县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331081', '3310', '00,33,3310', '温岭市', '33', '浙江省', '3310', '台州市', '331081', '温岭市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331082', '3310', '00,33,3310', '临海市', '33', '浙江省', '3310', '台州市', '331082', '临海市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331083', '3310', '00,33,3310', '玉环市', '33', '浙江省', '3310', '台州市', '331083', '玉环市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3311', '33', '00,33', '丽水市', '33', '浙江省', '3311', '丽水市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331102', '3311', '00,33,3311', '莲都区', '33', '浙江省', '3311', '丽水市', '331102', '莲都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331121', '3311', '00,33,3311', '青田县', '33', '浙江省', '3311', '丽水市', '331121', '青田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331122', '3311', '00,33,3311', '缙云县', '33', '浙江省', '3311', '丽水市', '331122', '缙云县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331123', '3311', '00,33,3311', '遂昌县', '33', '浙江省', '3311', '丽水市', '331123', '遂昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331124', '3311', '00,33,3311', '松阳县', '33', '浙江省', '3311', '丽水市', '331124', '松阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331125', '3311', '00,33,3311', '云和县', '33', '浙江省', '3311', '丽水市', '331125', '云和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331126', '3311', '00,33,3311', '庆元县', '33', '浙江省', '3311', '丽水市', '331126', '庆元县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331127', '3311', '00,33,3311', '景宁畲族自治县', '33', '浙江省', '3311', '丽水市', '331127', '景宁畲族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331181', '3311', '00,33,3311', '龙泉市', '33', '浙江省', '3311', '丽水市', '331181', '龙泉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('34', '00', '00', '安徽省', '34', '安徽省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3401', '34', '00,34', '合肥市', '34', '安徽省', '3401', '合肥市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340102', '3401', '00,34,3401', '瑶海区', '34', '安徽省', '3401', '合肥市', '340102', '瑶海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340103', '3401', '00,34,3401', '庐阳区', '34', '安徽省', '3401', '合肥市', '340103', '庐阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340104', '3401', '00,34,3401', '蜀山区', '34', '安徽省', '3401', '合肥市', '340104', '蜀山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340111', '3401', '00,34,3401', '包河区', '34', '安徽省', '3401', '合肥市', '340111', '包河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340121', '3401', '00,34,3401', '长丰县', '34', '安徽省', '3401', '合肥市', '340121', '长丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340122', '3401', '00,34,3401', '肥东县', '34', '安徽省', '3401', '合肥市', '340122', '肥东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340123', '3401', '00,34,3401', '肥西县', '34', '安徽省', '3401', '合肥市', '340123', '肥西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340124', '3401', '00,34,3401', '庐江县', '34', '安徽省', '3401', '合肥市', '340124', '庐江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340181', '3401', '00,34,3401', '巢湖市', '34', '安徽省', '3401', '合肥市', '340181', '巢湖市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3402', '34', '00,34', '芜湖市', '34', '安徽省', '3402', '芜湖市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340202', '3402', '00,34,3402', '镜湖区', '34', '安徽省', '3402', '芜湖市', '340202', '镜湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340203', '3402', '00,34,3402', '弋江区', '34', '安徽省', '3402', '芜湖市', '340203', '弋江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340207', '3402', '00,34,3402', '鸠江区', '34', '安徽省', '3402', '芜湖市', '340207', '鸠江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340208', '3402', '00,34,3402', '三山区', '34', '安徽省', '3402', '芜湖市', '340208', '三山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340221', '3402', '00,34,3402', '芜湖县', '34', '安徽省', '3402', '芜湖市', '340221', '芜湖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340222', '3402', '00,34,3402', '繁昌县', '34', '安徽省', '3402', '芜湖市', '340222', '繁昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340223', '3402', '00,34,3402', '南陵县', '34', '安徽省', '3402', '芜湖市', '340223', '南陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340281', '3402', '00,34,3402', '无为市', '34', '安徽省', '3402', '芜湖市', '340281', '无为市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340302', '3403', '00,34,3403', '龙子湖区', '34', '安徽省', '3403', '蚌埠市', '340302', '龙子湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340303', '3403', '00,34,3403', '蚌山区', '34', '安徽省', '3403', '蚌埠市', '340303', '蚌山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340304', '3403', '00,34,3403', '禹会区', '34', '安徽省', '3403', '蚌埠市', '340304', '禹会区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340311', '3403', '00,34,3403', '淮上区', '34', '安徽省', '3403', '蚌埠市', '340311', '淮上区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340321', '3403', '00,34,3403', '怀远县', '34', '安徽省', '3403', '蚌埠市', '340321', '怀远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340322', '3403', '00,34,3403', '五河县', '34', '安徽省', '3403', '蚌埠市', '340322', '五河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340323', '3403', '00,34,3403', '固镇县', '34', '安徽省', '3403', '蚌埠市', '340323', '固镇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3404', '34', '00,34', '淮南市', '34', '安徽省', '3404', '淮南市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340402', '3404', '00,34,3404', '大通区', '34', '安徽省', '3404', '淮南市', '340402', '大通区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340403', '3404', '00,34,3404', '田家庵区', '34', '安徽省', '3404', '淮南市', '340403', '田家庵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340404', '3404', '00,34,3404', '谢家集区', '34', '安徽省', '3404', '淮南市', '340404', '谢家集区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340405', '3404', '00,34,3404', '八公山区', '34', '安徽省', '3404', '淮南市', '340405', '八公山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340406', '3404', '00,34,3404', '潘集区', '34', '安徽省', '3404', '淮南市', '340406', '潘集区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340421', '3404', '00,34,3404', '凤台县', '34', '安徽省', '3404', '淮南市', '340421', '凤台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340422', '3404', '00,34,3404', '寿县', '34', '安徽省', '3404', '淮南市', '340422', '寿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3405', '34', '00,34', '马鞍山市', '34', '安徽省', '3405', '马鞍山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340503', '3405', '00,34,3405', '花山区', '34', '安徽省', '3405', '马鞍山市', '340503', '花山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340504', '3405', '00,34,3405', '雨山区', '34', '安徽省', '3405', '马鞍山市', '340504', '雨山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340506', '3405', '00,34,3405', '博望区', '34', '安徽省', '3405', '马鞍山市', '340506', '博望区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340521', '3405', '00,34,3405', '当涂县', '34', '安徽省', '3405', '马鞍山市', '340521', '当涂县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340522', '3405', '00,34,3405', '含山县', '34', '安徽省', '3405', '马鞍山市', '340522', '含山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340523', '3405', '00,34,3405', '和县', '34', '安徽省', '3405', '马鞍山市', '340523', '和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3406', '34', '00,34', '淮北市', '34', '安徽省', '3406', '淮北市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340602', '3406', '00,34,3406', '杜集区', '34', '安徽省', '3406', '淮北市', '340602', '杜集区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340603', '3406', '00,34,3406', '相山区', '34', '安徽省', '3406', '淮北市', '340603', '相山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340604', '3406', '00,34,3406', '烈山区', '34', '安徽省', '3406', '淮北市', '340604', '烈山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340621', '3406', '00,34,3406', '濉溪县', '34', '安徽省', '3406', '淮北市', '340621', '濉溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3407', '34', '00,34', '铜陵市', '34', '安徽省', '3407', '铜陵市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340705', '3407', '00,34,3407', '铜官区', '34', '安徽省', '3407', '铜陵市', '340705', '铜官区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340706', '3407', '00,34,3407', '义安区', '34', '安徽省', '3407', '铜陵市', '340706', '义安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340711', '3407', '00,34,3407', '郊区', '34', '安徽省', '3407', '铜陵市', '340711', '郊区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340722', '3407', '00,34,3407', '枞阳县', '34', '安徽省', '3407', '铜陵市', '340722', '枞阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3408', '34', '00,34', '安庆市', '34', '安徽省', '3408', '安庆市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340802', '3408', '00,34,3408', '迎江区', '34', '安徽省', '3408', '安庆市', '340802', '迎江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340803', '3408', '00,34,3408', '大观区', '34', '安徽省', '3408', '安庆市', '340803', '大观区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340811', '3408', '00,34,3408', '宜秀区', '34', '安徽省', '3408', '安庆市', '340811', '宜秀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340822', '3408', '00,34,3408', '怀宁县', '34', '安徽省', '3408', '安庆市', '340822', '怀宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340825', '3408', '00,34,3408', '太湖县', '34', '安徽省', '3408', '安庆市', '340825', '太湖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340826', '3408', '00,34,3408', '宿松县', '34', '安徽省', '3408', '安庆市', '340826', '宿松县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340827', '3408', '00,34,3408', '望江县', '34', '安徽省', '3408', '安庆市', '340827', '望江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340828', '3408', '00,34,3408', '岳西县', '34', '安徽省', '3408', '安庆市', '340828', '岳西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340881', '3408', '00,34,3408', '桐城市', '34', '安徽省', '3408', '安庆市', '340881', '桐城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210903', '2109', '00,21,2109', '新邱区', '21', '辽宁省', '2109', '阜新市', '210903', '新邱区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360123', '3601', '00,36,3601', '安义县', '36', '江西省', '3601', '南昌市', '360123', '安义县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360124', '3601', '00,36,3601', '进贤县', '36', '江西省', '3601', '南昌市', '360124', '进贤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3602', '36', '00,36', '景德镇市', '36', '江西省', '3602', '景德镇市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360202', '3602', '00,36,3602', '昌江区', '36', '江西省', '3602', '景德镇市', '360202', '昌江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360203', '3602', '00,36,3602', '珠山区', '36', '江西省', '3602', '景德镇市', '360203', '珠山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360222', '3602', '00,36,3602', '浮梁县', '36', '江西省', '3602', '景德镇市', '360222', '浮梁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360281', '3602', '00,36,3602', '乐平市', '36', '江西省', '3602', '景德镇市', '360281', '乐平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3603', '36', '00,36', '萍乡市', '36', '江西省', '3603', '萍乡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360302', '3603', '00,36,3603', '安源区', '36', '江西省', '3603', '萍乡市', '360302', '安源区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360313', '3603', '00,36,3603', '湘东区', '36', '江西省', '3603', '萍乡市', '360313', '湘东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360321', '3603', '00,36,3603', '莲花县', '36', '江西省', '3603', '萍乡市', '360321', '莲花县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360322', '3603', '00,36,3603', '上栗县', '36', '江西省', '3603', '萍乡市', '360322', '上栗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360323', '3603', '00,36,3603', '芦溪县', '36', '江西省', '3603', '萍乡市', '360323', '芦溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3604', '36', '00,36', '九江市', '36', '江西省', '3604', '九江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360402', '3604', '00,36,3604', '濂溪区', '36', '江西省', '3604', '九江市', '360402', '濂溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360403', '3604', '00,36,3604', '浔阳区', '36', '江西省', '3604', '九江市', '360403', '浔阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360404', '3604', '00,36,3604', '柴桑区', '36', '江西省', '3604', '九江市', '360404', '柴桑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360423', '3604', '00,36,3604', '武宁县', '36', '江西省', '3604', '九江市', '360423', '武宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360424', '3604', '00,36,3604', '修水县', '36', '江西省', '3604', '九江市', '360424', '修水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360425', '3604', '00,36,3604', '永修县', '36', '江西省', '3604', '九江市', '360425', '永修县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360426', '3604', '00,36,3604', '德安县', '36', '江西省', '3604', '九江市', '360426', '德安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360428', '3604', '00,36,3604', '都昌县', '36', '江西省', '3604', '九江市', '360428', '都昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360429', '3604', '00,36,3604', '湖口县', '36', '江西省', '3604', '九江市', '360429', '湖口县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360430', '3604', '00,36,3604', '彭泽县', '36', '江西省', '3604', '九江市', '360430', '彭泽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360481', '3604', '00,36,3604', '瑞昌市', '36', '江西省', '3604', '九江市', '360481', '瑞昌市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360482', '3604', '00,36,3604', '共青城市', '36', '江西省', '3604', '九江市', '360482', '共青城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360483', '3604', '00,36,3604', '庐山市', '36', '江西省', '3604', '九江市', '360483', '庐山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3605', '36', '00,36', '新余市', '36', '江西省', '3605', '新余市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360502', '3605', '00,36,3605', '渝水区', '36', '江西省', '3605', '新余市', '360502', '渝水区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360521', '3605', '00,36,3605', '分宜县', '36', '江西省', '3605', '新余市', '360521', '分宜县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3606', '36', '00,36', '鹰潭市', '36', '江西省', '3606', '鹰潭市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360602', '3606', '00,36,3606', '月湖区', '36', '江西省', '3606', '鹰潭市', '360602', '月湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360603', '3606', '00,36,3606', '余江区', '36', '江西省', '3606', '鹰潭市', '360603', '余江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360681', '3606', '00,36,3606', '贵溪市', '36', '江西省', '3606', '鹰潭市', '360681', '贵溪市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3607', '36', '00,36', '赣州市', '36', '江西省', '3607', '赣州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360702', '3607', '00,36,3607', '章贡区', '36', '江西省', '3607', '赣州市', '360702', '章贡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360703', '3607', '00,36,3607', '南康区', '36', '江西省', '3607', '赣州市', '360703', '南康区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360704', '3607', '00,36,3607', '赣县区', '36', '江西省', '3607', '赣州市', '360704', '赣县区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360722', '3607', '00,36,3607', '信丰县', '36', '江西省', '3607', '赣州市', '360722', '信丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360723', '3607', '00,36,3607', '大余县', '36', '江西省', '3607', '赣州市', '360723', '大余县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360724', '3607', '00,36,3607', '上犹县', '36', '江西省', '3607', '赣州市', '360724', '上犹县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360725', '3607', '00,36,3607', '崇义县', '36', '江西省', '3607', '赣州市', '360725', '崇义县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360726', '3607', '00,36,3607', '安远县', '36', '江西省', '3607', '赣州市', '360726', '安远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360727', '3607', '00,36,3607', '龙南县', '36', '江西省', '3607', '赣州市', '360727', '龙南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360728', '3607', '00,36,3607', '定南县', '36', '江西省', '3607', '赣州市', '360728', '定南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360729', '3607', '00,36,3607', '全南县', '36', '江西省', '3607', '赣州市', '360729', '全南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360730', '3607', '00,36,3607', '宁都县', '36', '江西省', '3607', '赣州市', '360730', '宁都县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360731', '3607', '00,36,3607', '于都县', '36', '江西省', '3607', '赣州市', '360731', '于都县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360732', '3607', '00,36,3607', '兴国县', '36', '江西省', '3607', '赣州市', '360732', '兴国县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360733', '3607', '00,36,3607', '会昌县', '36', '江西省', '3607', '赣州市', '360733', '会昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360734', '3607', '00,36,3607', '寻乌县', '36', '江西省', '3607', '赣州市', '360734', '寻乌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360735', '3607', '00,36,3607', '石城县', '36', '江西省', '3607', '赣州市', '360735', '石城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360781', '3607', '00,36,3607', '瑞金市', '36', '江西省', '3607', '赣州市', '360781', '瑞金市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3608', '36', '00,36', '吉安市', '36', '江西省', '3608', '吉安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360802', '3608', '00,36,3608', '吉州区', '36', '江西省', '3608', '吉安市', '360802', '吉州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360803', '3608', '00,36,3608', '青原区', '36', '江西省', '3608', '吉安市', '360803', '青原区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360821', '3608', '00,36,3608', '吉安县', '36', '江西省', '3608', '吉安市', '360821', '吉安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360822', '3608', '00,36,3608', '吉水县', '36', '江西省', '3608', '吉安市', '360822', '吉水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360823', '3608', '00,36,3608', '峡江县', '36', '江西省', '3608', '吉安市', '360823', '峡江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360824', '3608', '00,36,3608', '新干县', '36', '江西省', '3608', '吉安市', '360824', '新干县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360825', '3608', '00,36,3608', '永丰县', '36', '江西省', '3608', '吉安市', '360825', '永丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360826', '3608', '00,36,3608', '泰和县', '36', '江西省', '3608', '吉安市', '360826', '泰和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360827', '3608', '00,36,3608', '遂川县', '36', '江西省', '3608', '吉安市', '360827', '遂川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360828', '3608', '00,36,3608', '万安县', '36', '江西省', '3608', '吉安市', '360828', '万安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360829', '3608', '00,36,3608', '安福县', '36', '江西省', '3608', '吉安市', '360829', '安福县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360830', '3608', '00,36,3608', '永新县', '36', '江西省', '3608', '吉安市', '360830', '永新县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360881', '3608', '00,36,3608', '井冈山市', '36', '江西省', '3608', '吉安市', '360881', '井冈山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3609', '36', '00,36', '宜春市', '36', '江西省', '3609', '宜春市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360902', '3609', '00,36,3609', '袁州区', '36', '江西省', '3609', '宜春市', '360902', '袁州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360921', '3609', '00,36,3609', '奉新县', '36', '江西省', '3609', '宜春市', '360921', '奉新县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360922', '3609', '00,36,3609', '万载县', '36', '江西省', '3609', '宜春市', '360922', '万载县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360923', '3609', '00,36,3609', '上高县', '36', '江西省', '3609', '宜春市', '360923', '上高县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360924', '3609', '00,36,3609', '宜丰县', '36', '江西省', '3609', '宜春市', '360924', '宜丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360925', '3609', '00,36,3609', '靖安县', '36', '江西省', '3609', '宜春市', '360925', '靖安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360926', '3609', '00,36,3609', '铜鼓县', '36', '江西省', '3609', '宜春市', '360926', '铜鼓县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360981', '3609', '00,36,3609', '丰城市', '36', '江西省', '3609', '宜春市', '360981', '丰城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360982', '3609', '00,36,3609', '樟树市', '36', '江西省', '3609', '宜春市', '360982', '樟树市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360983', '3609', '00,36,3609', '高安市', '36', '江西省', '3609', '宜春市', '360983', '高安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3610', '36', '00,36', '抚州市', '36', '江西省', '3610', '抚州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361002', '3610', '00,36,3610', '临川区', '36', '江西省', '3610', '抚州市', '361002', '临川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150524', '1505', '00,15,1505', '库伦旗', '15', '内蒙古自治区', '1505', '通辽市', '150524', '库伦旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341002', '3410', '00,34,3410', '屯溪区', '34', '安徽省', '3410', '黄山市', '341002', '屯溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341003', '3410', '00,34,3410', '黄山区', '34', '安徽省', '3410', '黄山市', '341003', '黄山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341004', '3410', '00,34,3410', '徽州区', '34', '安徽省', '3410', '黄山市', '341004', '徽州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341021', '3410', '00,34,3410', '歙县', '34', '安徽省', '3410', '黄山市', '341021', '歙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341022', '3410', '00,34,3410', '休宁县', '34', '安徽省', '3410', '黄山市', '341022', '休宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341023', '3410', '00,34,3410', '黟县', '34', '安徽省', '3410', '黄山市', '341023', '黟县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341024', '3410', '00,34,3410', '祁门县', '34', '安徽省', '3410', '黄山市', '341024', '祁门县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3411', '34', '00,34', '滁州市', '34', '安徽省', '3411', '滁州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341102', '3411', '00,34,3411', '琅琊区', '34', '安徽省', '3411', '滁州市', '341102', '琅琊区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341103', '3411', '00,34,3411', '南谯区', '34', '安徽省', '3411', '滁州市', '341103', '南谯区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341122', '3411', '00,34,3411', '来安县', '34', '安徽省', '3411', '滁州市', '341122', '来安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341124', '3411', '00,34,3411', '全椒县', '34', '安徽省', '3411', '滁州市', '341124', '全椒县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341125', '3411', '00,34,3411', '定远县', '34', '安徽省', '3411', '滁州市', '341125', '定远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341126', '3411', '00,34,3411', '凤阳县', '34', '安徽省', '3411', '滁州市', '341126', '凤阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341181', '3411', '00,34,3411', '天长市', '34', '安徽省', '3411', '滁州市', '341181', '天长市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341182', '3411', '00,34,3411', '明光市', '34', '安徽省', '3411', '滁州市', '341182', '明光市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3412', '34', '00,34', '阜阳市', '34', '安徽省', '3412', '阜阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341202', '3412', '00,34,3412', '颍州区', '34', '安徽省', '3412', '阜阳市', '341202', '颍州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341203', '3412', '00,34,3412', '颍东区', '34', '安徽省', '3412', '阜阳市', '341203', '颍东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341204', '3412', '00,34,3412', '颍泉区', '34', '安徽省', '3412', '阜阳市', '341204', '颍泉区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341221', '3412', '00,34,3412', '临泉县', '34', '安徽省', '3412', '阜阳市', '341221', '临泉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341222', '3412', '00,34,3412', '太和县', '34', '安徽省', '3412', '阜阳市', '341222', '太和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341225', '3412', '00,34,3412', '阜南县', '34', '安徽省', '3412', '阜阳市', '341225', '阜南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341226', '3412', '00,34,3412', '颍上县', '34', '安徽省', '3412', '阜阳市', '341226', '颍上县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341282', '3412', '00,34,3412', '界首市', '34', '安徽省', '3412', '阜阳市', '341282', '界首市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3413', '34', '00,34', '宿州市', '34', '安徽省', '3413', '宿州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341302', '3413', '00,34,3413', '埇桥区', '34', '安徽省', '3413', '宿州市', '341302', '埇桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341321', '3413', '00,34,3413', '砀山县', '34', '安徽省', '3413', '宿州市', '341321', '砀山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341322', '3413', '00,34,3413', '萧县', '34', '安徽省', '3413', '宿州市', '341322', '萧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341323', '3413', '00,34,3413', '灵璧县', '34', '安徽省', '3413', '宿州市', '341323', '灵璧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341324', '3413', '00,34,3413', '泗县', '34', '安徽省', '3413', '宿州市', '341324', '泗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3415', '34', '00,34', '六安市', '34', '安徽省', '3415', '六安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341502', '3415', '00,34,3415', '金安区', '34', '安徽省', '3415', '六安市', '341502', '金安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341503', '3415', '00,34,3415', '裕安区', '34', '安徽省', '3415', '六安市', '341503', '裕安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341504', '3415', '00,34,3415', '叶集区', '34', '安徽省', '3415', '六安市', '341504', '叶集区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341522', '3415', '00,34,3415', '霍邱县', '34', '安徽省', '3415', '六安市', '341522', '霍邱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341523', '3415', '00,34,3415', '舒城县', '34', '安徽省', '3415', '六安市', '341523', '舒城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341524', '3415', '00,34,3415', '金寨县', '34', '安徽省', '3415', '六安市', '341524', '金寨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341525', '3415', '00,34,3415', '霍山县', '34', '安徽省', '3415', '六安市', '341525', '霍山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3416', '34', '00,34', '亳州市', '34', '安徽省', '3416', '亳州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341602', '3416', '00,34,3416', '谯城区', '34', '安徽省', '3416', '亳州市', '341602', '谯城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341621', '3416', '00,34,3416', '涡阳县', '34', '安徽省', '3416', '亳州市', '341621', '涡阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341622', '3416', '00,34,3416', '蒙城县', '34', '安徽省', '3416', '亳州市', '341622', '蒙城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341623', '3416', '00,34,3416', '利辛县', '34', '安徽省', '3416', '亳州市', '341623', '利辛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3417', '34', '00,34', '池州市', '34', '安徽省', '3417', '池州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341702', '3417', '00,34,3417', '贵池区', '34', '安徽省', '3417', '池州市', '341702', '贵池区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341721', '3417', '00,34,3417', '东至县', '34', '安徽省', '3417', '池州市', '341721', '东至县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341722', '3417', '00,34,3417', '石台县', '34', '安徽省', '3417', '池州市', '341722', '石台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341723', '3417', '00,34,3417', '青阳县', '34', '安徽省', '3417', '池州市', '341723', '青阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3418', '34', '00,34', '宣城市', '34', '安徽省', '3418', '宣城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341802', '3418', '00,34,3418', '宣州区', '34', '安徽省', '3418', '宣城市', '341802', '宣州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341821', '3418', '00,34,3418', '郎溪县', '34', '安徽省', '3418', '宣城市', '341821', '郎溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341823', '3418', '00,34,3418', '泾县', '34', '安徽省', '3418', '宣城市', '341823', '泾县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341824', '3418', '00,34,3418', '绩溪县', '34', '安徽省', '3418', '宣城市', '341824', '绩溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341825', '3418', '00,34,3418', '旌德县', '34', '安徽省', '3418', '宣城市', '341825', '旌德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341881', '3418', '00,34,3418', '宁国市', '34', '安徽省', '3418', '宣城市', '341881', '宁国市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341882', '3418', '00,34,3418', '广德市', '34', '安徽省', '3418', '宣城市', '341882', '广德市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('35', '00', '00', '福建省', '35', '福建省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3501', '35', '00,35', '福州市', '35', '福建省', '3501', '福州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350102', '3501', '00,35,3501', '鼓楼区', '35', '福建省', '3501', '福州市', '350102', '鼓楼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350103', '3501', '00,35,3501', '台江区', '35', '福建省', '3501', '福州市', '350103', '台江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350104', '3501', '00,35,3501', '仓山区', '35', '福建省', '3501', '福州市', '350104', '仓山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350105', '3501', '00,35,3501', '马尾区', '35', '福建省', '3501', '福州市', '350105', '马尾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350111', '3501', '00,35,3501', '晋安区', '35', '福建省', '3501', '福州市', '350111', '晋安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350112', '3501', '00,35,3501', '长乐区', '35', '福建省', '3501', '福州市', '350112', '长乐区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350121', '3501', '00,35,3501', '闽侯县', '35', '福建省', '3501', '福州市', '350121', '闽侯县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350122', '3501', '00,35,3501', '连江县', '35', '福建省', '3501', '福州市', '350122', '连江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350123', '3501', '00,35,3501', '罗源县', '35', '福建省', '3501', '福州市', '350123', '罗源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350124', '3501', '00,35,3501', '闽清县', '35', '福建省', '3501', '福州市', '350124', '闽清县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350125', '3501', '00,35,3501', '永泰县', '35', '福建省', '3501', '福州市', '350125', '永泰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350128', '3501', '00,35,3501', '平潭县', '35', '福建省', '3501', '福州市', '350128', '平潭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350181', '3501', '00,35,3501', '福清市', '35', '福建省', '3501', '福州市', '350181', '福清市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3502', '35', '00,35', '厦门市', '35', '福建省', '3502', '厦门市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350203', '3502', '00,35,3502', '思明区', '35', '福建省', '3502', '厦门市', '350203', '思明区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350205', '3502', '00,35,3502', '海沧区', '35', '福建省', '3502', '厦门市', '350205', '海沧区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350206', '3502', '00,35,3502', '湖里区', '35', '福建省', '3502', '厦门市', '350206', '湖里区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350211', '3502', '00,35,3502', '集美区', '35', '福建省', '3502', '厦门市', '350211', '集美区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350212', '3502', '00,35,3502', '同安区', '35', '福建省', '3502', '厦门市', '350212', '同安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350213', '3502', '00,35,3502', '翔安区', '35', '福建省', '3502', '厦门市', '350213', '翔安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3503', '35', '00,35', '莆田市', '35', '福建省', '3503', '莆田市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350302', '3503', '00,35,3503', '城厢区', '35', '福建省', '3503', '莆田市', '350302', '城厢区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350303', '3503', '00,35,3503', '涵江区', '35', '福建省', '3503', '莆田市', '350303', '涵江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361003', '3610', '00,36,3610', '东乡区', '36', '江西省', '3610', '抚州市', '361003', '东乡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361021', '3610', '00,36,3610', '南城县', '36', '江西省', '3610', '抚州市', '361021', '南城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361022', '3610', '00,36,3610', '黎川县', '36', '江西省', '3610', '抚州市', '361022', '黎川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361023', '3610', '00,36,3610', '南丰县', '36', '江西省', '3610', '抚州市', '361023', '南丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361024', '3610', '00,36,3610', '崇仁县', '36', '江西省', '3610', '抚州市', '361024', '崇仁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361025', '3610', '00,36,3610', '乐安县', '36', '江西省', '3610', '抚州市', '361025', '乐安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361026', '3610', '00,36,3610', '宜黄县', '36', '江西省', '3610', '抚州市', '361026', '宜黄县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361027', '3610', '00,36,3610', '金溪县', '36', '江西省', '3610', '抚州市', '361027', '金溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361028', '3610', '00,36,3610', '资溪县', '36', '江西省', '3610', '抚州市', '361028', '资溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361030', '3610', '00,36,3610', '广昌县', '36', '江西省', '3610', '抚州市', '361030', '广昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3611', '36', '00,36', '上饶市', '36', '江西省', '3611', '上饶市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361102', '3611', '00,36,3611', '信州区', '36', '江西省', '3611', '上饶市', '361102', '信州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361103', '3611', '00,36,3611', '广丰区', '36', '江西省', '3611', '上饶市', '361103', '广丰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361104', '3611', '00,36,3611', '广信区', '36', '江西省', '3611', '上饶市', '361104', '广信区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361123', '3611', '00,36,3611', '玉山县', '36', '江西省', '3611', '上饶市', '361123', '玉山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361124', '3611', '00,36,3611', '铅山县', '36', '江西省', '3611', '上饶市', '361124', '铅山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361125', '3611', '00,36,3611', '横峰县', '36', '江西省', '3611', '上饶市', '361125', '横峰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361126', '3611', '00,36,3611', '弋阳县', '36', '江西省', '3611', '上饶市', '361126', '弋阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361127', '3611', '00,36,3611', '余干县', '36', '江西省', '3611', '上饶市', '361127', '余干县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361128', '3611', '00,36,3611', '鄱阳县', '36', '江西省', '3611', '上饶市', '361128', '鄱阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361129', '3611', '00,36,3611', '万年县', '36', '江西省', '3611', '上饶市', '361129', '万年县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361130', '3611', '00,36,3611', '婺源县', '36', '江西省', '3611', '上饶市', '361130', '婺源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361181', '3611', '00,36,3611', '德兴市', '36', '江西省', '3611', '上饶市', '361181', '德兴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('37', '00', '00', '山东省', '37', '山东省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3701', '37', '00,37', '济南市', '37', '山东省', '3701', '济南市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370102', '3701', '00,37,3701', '历下区', '37', '山东省', '3701', '济南市', '370102', '历下区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370103', '3701', '00,37,3701', '市中区', '37', '山东省', '3701', '济南市', '370103', '市中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370104', '3701', '00,37,3701', '槐荫区', '37', '山东省', '3701', '济南市', '370104', '槐荫区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370105', '3701', '00,37,3701', '天桥区', '37', '山东省', '3701', '济南市', '370105', '天桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370112', '3701', '00,37,3701', '历城区', '37', '山东省', '3701', '济南市', '370112', '历城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370113', '3701', '00,37,3701', '长清区', '37', '山东省', '3701', '济南市', '370113', '长清区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370114', '3701', '00,37,3701', '章丘区', '37', '山东省', '3701', '济南市', '370114', '章丘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370115', '3701', '00,37,3701', '济阳区', '37', '山东省', '3701', '济南市', '370115', '济阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370116', '3701', '00,37,3701', '莱芜区', '37', '山东省', '3701', '济南市', '370116', '莱芜区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370117', '3701', '00,37,3701', '钢城区', '37', '山东省', '3701', '济南市', '370117', '钢城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370124', '3701', '00,37,3701', '平阴县', '37', '山东省', '3701', '济南市', '370124', '平阴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370126', '3701', '00,37,3701', '商河县', '37', '山东省', '3701', '济南市', '370126', '商河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3702', '37', '00,37', '青岛市', '37', '山东省', '3702', '青岛市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370202', '3702', '00,37,3702', '市南区', '37', '山东省', '3702', '青岛市', '370202', '市南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370203', '3702', '00,37,3702', '市北区', '37', '山东省', '3702', '青岛市', '370203', '市北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370211', '3702', '00,37,3702', '黄岛区', '37', '山东省', '3702', '青岛市', '370211', '黄岛区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370212', '3702', '00,37,3702', '崂山区', '37', '山东省', '3702', '青岛市', '370212', '崂山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370213', '3702', '00,37,3702', '李沧区', '37', '山东省', '3702', '青岛市', '370213', '李沧区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370214', '3702', '00,37,3702', '城阳区', '37', '山东省', '3702', '青岛市', '370214', '城阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370215', '3702', '00,37,3702', '即墨区', '37', '山东省', '3702', '青岛市', '370215', '即墨区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370281', '3702', '00,37,3702', '胶州市', '37', '山东省', '3702', '青岛市', '370281', '胶州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370283', '3702', '00,37,3702', '平度市', '37', '山东省', '3702', '青岛市', '370283', '平度市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370285', '3702', '00,37,3702', '莱西市', '37', '山东省', '3702', '青岛市', '370285', '莱西市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3703', '37', '00,37', '淄博市', '37', '山东省', '3703', '淄博市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370302', '3703', '00,37,3703', '淄川区', '37', '山东省', '3703', '淄博市', '370302', '淄川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370303', '3703', '00,37,3703', '张店区', '37', '山东省', '3703', '淄博市', '370303', '张店区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370304', '3703', '00,37,3703', '博山区', '37', '山东省', '3703', '淄博市', '370304', '博山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370305', '3703', '00,37,3703', '临淄区', '37', '山东省', '3703', '淄博市', '370305', '临淄区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370306', '3703', '00,37,3703', '周村区', '37', '山东省', '3703', '淄博市', '370306', '周村区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370321', '3703', '00,37,3703', '桓台县', '37', '山东省', '3703', '淄博市', '370321', '桓台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370322', '3703', '00,37,3703', '高青县', '37', '山东省', '3703', '淄博市', '370322', '高青县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370323', '3703', '00,37,3703', '沂源县', '37', '山东省', '3703', '淄博市', '370323', '沂源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3704', '37', '00,37', '枣庄市', '37', '山东省', '3704', '枣庄市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370402', '3704', '00,37,3704', '市中区', '37', '山东省', '3704', '枣庄市', '370402', '市中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370403', '3704', '00,37,3704', '薛城区', '37', '山东省', '3704', '枣庄市', '370403', '薛城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370404', '3704', '00,37,3704', '峄城区', '37', '山东省', '3704', '枣庄市', '370404', '峄城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370405', '3704', '00,37,3704', '台儿庄区', '37', '山东省', '3704', '枣庄市', '370405', '台儿庄区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370406', '3704', '00,37,3704', '山亭区', '37', '山东省', '3704', '枣庄市', '370406', '山亭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370481', '3704', '00,37,3704', '滕州市', '37', '山东省', '3704', '枣庄市', '370481', '滕州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3705', '37', '00,37', '东营市', '37', '山东省', '3705', '东营市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370502', '3705', '00,37,3705', '东营区', '37', '山东省', '3705', '东营市', '370502', '东营区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370503', '3705', '00,37,3705', '河口区', '37', '山东省', '3705', '东营市', '370503', '河口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370505', '3705', '00,37,3705', '垦利区', '37', '山东省', '3705', '东营市', '370505', '垦利区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370522', '3705', '00,37,3705', '利津县', '37', '山东省', '3705', '东营市', '370522', '利津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370523', '3705', '00,37,3705', '广饶县', '37', '山东省', '3705', '东营市', '370523', '广饶县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3706', '37', '00,37', '烟台市', '37', '山东省', '3706', '烟台市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370602', '3706', '00,37,3706', '芝罘区', '37', '山东省', '3706', '烟台市', '370602', '芝罘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370611', '3706', '00,37,3706', '福山区', '37', '山东省', '3706', '烟台市', '370611', '福山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370612', '3706', '00,37,3706', '牟平区', '37', '山东省', '3706', '烟台市', '370612', '牟平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370613', '3706', '00,37,3706', '莱山区', '37', '山东省', '3706', '烟台市', '370613', '莱山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370634', '3706', '00,37,3706', '长岛县', '37', '山东省', '3706', '烟台市', '370634', '长岛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4415', '44', '00,44', '汕尾市', '44', '广东省', '4415', '汕尾市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420583', '4205', '00,42,4205', '枝江市', '42', '湖北省', '4205', '宜昌市', '420583', '枝江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370684', '3706', '00,37,3706', '蓬莱市', '37', '山东省', '3706', '烟台市', '370684', '蓬莱市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370685', '3706', '00,37,3706', '招远市', '37', '山东省', '3706', '烟台市', '370685', '招远市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370686', '3706', '00,37,3706', '栖霞市', '37', '山东省', '3706', '烟台市', '370686', '栖霞市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370687', '3706', '00,37,3706', '海阳市', '37', '山东省', '3706', '烟台市', '370687', '海阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3707', '37', '00,37', '潍坊市', '37', '山东省', '3707', '潍坊市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370702', '3707', '00,37,3707', '潍城区', '37', '山东省', '3707', '潍坊市', '370702', '潍城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370703', '3707', '00,37,3707', '寒亭区', '37', '山东省', '3707', '潍坊市', '370703', '寒亭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370704', '3707', '00,37,3707', '坊子区', '37', '山东省', '3707', '潍坊市', '370704', '坊子区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370705', '3707', '00,37,3707', '奎文区', '37', '山东省', '3707', '潍坊市', '370705', '奎文区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370724', '3707', '00,37,3707', '临朐县', '37', '山东省', '3707', '潍坊市', '370724', '临朐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370725', '3707', '00,37,3707', '昌乐县', '37', '山东省', '3707', '潍坊市', '370725', '昌乐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370781', '3707', '00,37,3707', '青州市', '37', '山东省', '3707', '潍坊市', '370781', '青州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370782', '3707', '00,37,3707', '诸城市', '37', '山东省', '3707', '潍坊市', '370782', '诸城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370783', '3707', '00,37,3707', '寿光市', '37', '山东省', '3707', '潍坊市', '370783', '寿光市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370784', '3707', '00,37,3707', '安丘市', '37', '山东省', '3707', '潍坊市', '370784', '安丘市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370785', '3707', '00,37,3707', '高密市', '37', '山东省', '3707', '潍坊市', '370785', '高密市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370786', '3707', '00,37,3707', '昌邑市', '37', '山东省', '3707', '潍坊市', '370786', '昌邑市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3708', '37', '00,37', '济宁市', '37', '山东省', '3708', '济宁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370811', '3708', '00,37,3708', '任城区', '37', '山东省', '3708', '济宁市', '370811', '任城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370812', '3708', '00,37,3708', '兖州区', '37', '山东省', '3708', '济宁市', '370812', '兖州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370826', '3708', '00,37,3708', '微山县', '37', '山东省', '3708', '济宁市', '370826', '微山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370827', '3708', '00,37,3708', '鱼台县', '37', '山东省', '3708', '济宁市', '370827', '鱼台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370828', '3708', '00,37,3708', '金乡县', '37', '山东省', '3708', '济宁市', '370828', '金乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370829', '3708', '00,37,3708', '嘉祥县', '37', '山东省', '3708', '济宁市', '370829', '嘉祥县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370830', '3708', '00,37,3708', '汶上县', '37', '山东省', '3708', '济宁市', '370830', '汶上县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370831', '3708', '00,37,3708', '泗水县', '37', '山东省', '3708', '济宁市', '370831', '泗水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370832', '3708', '00,37,3708', '梁山县', '37', '山东省', '3708', '济宁市', '370832', '梁山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370881', '3708', '00,37,3708', '曲阜市', '37', '山东省', '3708', '济宁市', '370881', '曲阜市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370883', '3708', '00,37,3708', '邹城市', '37', '山东省', '3708', '济宁市', '370883', '邹城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3709', '37', '00,37', '泰安市', '37', '山东省', '3709', '泰安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370902', '3709', '00,37,3709', '泰山区', '37', '山东省', '3709', '泰安市', '370902', '泰山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370911', '3709', '00,37,3709', '岱岳区', '37', '山东省', '3709', '泰安市', '370911', '岱岳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370921', '3709', '00,37,3709', '宁阳县', '37', '山东省', '3709', '泰安市', '370921', '宁阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370923', '3709', '00,37,3709', '东平县', '37', '山东省', '3709', '泰安市', '370923', '东平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370982', '3709', '00,37,3709', '新泰市', '37', '山东省', '3709', '泰安市', '370982', '新泰市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370983', '3709', '00,37,3709', '肥城市', '37', '山东省', '3709', '泰安市', '370983', '肥城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3710', '37', '00,37', '威海市', '37', '山东省', '3710', '威海市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371002', '3710', '00,37,3710', '环翠区', '37', '山东省', '3710', '威海市', '371002', '环翠区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371003', '3710', '00,37,3710', '文登区', '37', '山东省', '3710', '威海市', '371003', '文登区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371082', '3710', '00,37,3710', '荣成市', '37', '山东省', '3710', '威海市', '371082', '荣成市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371083', '3710', '00,37,3710', '乳山市', '37', '山东省', '3710', '威海市', '371083', '乳山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3711', '37', '00,37', '日照市', '37', '山东省', '3711', '日照市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371102', '3711', '00,37,3711', '东港区', '37', '山东省', '3711', '日照市', '371102', '东港区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371103', '3711', '00,37,3711', '岚山区', '37', '山东省', '3711', '日照市', '371103', '岚山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371121', '3711', '00,37,3711', '五莲县', '37', '山东省', '3711', '日照市', '371121', '五莲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371122', '3711', '00,37,3711', '莒县', '37', '山东省', '3711', '日照市', '371122', '莒县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3713', '37', '00,37', '临沂市', '37', '山东省', '3713', '临沂市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371302', '3713', '00,37,3713', '兰山区', '37', '山东省', '3713', '临沂市', '371302', '兰山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371311', '3713', '00,37,3713', '罗庄区', '37', '山东省', '3713', '临沂市', '371311', '罗庄区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371312', '3713', '00,37,3713', '河东区', '37', '山东省', '3713', '临沂市', '371312', '河东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371321', '3713', '00,37,3713', '沂南县', '37', '山东省', '3713', '临沂市', '371321', '沂南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371322', '3713', '00,37,3713', '郯城县', '37', '山东省', '3713', '临沂市', '371322', '郯城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371323', '3713', '00,37,3713', '沂水县', '37', '山东省', '3713', '临沂市', '371323', '沂水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371324', '3713', '00,37,3713', '兰陵县', '37', '山东省', '3713', '临沂市', '371324', '兰陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371325', '3713', '00,37,3713', '费县', '37', '山东省', '3713', '临沂市', '371325', '费县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371326', '3713', '00,37,3713', '平邑县', '37', '山东省', '3713', '临沂市', '371326', '平邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371327', '3713', '00,37,3713', '莒南县', '37', '山东省', '3713', '临沂市', '371327', '莒南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371328', '3713', '00,37,3713', '蒙阴县', '37', '山东省', '3713', '临沂市', '371328', '蒙阴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371329', '3713', '00,37,3713', '临沭县', '37', '山东省', '3713', '临沂市', '371329', '临沭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3714', '37', '00,37', '德州市', '37', '山东省', '3714', '德州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371402', '3714', '00,37,3714', '德城区', '37', '山东省', '3714', '德州市', '371402', '德城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371403', '3714', '00,37,3714', '陵城区', '37', '山东省', '3714', '德州市', '371403', '陵城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371422', '3714', '00,37,3714', '宁津县', '37', '山东省', '3714', '德州市', '371422', '宁津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371423', '3714', '00,37,3714', '庆云县', '37', '山东省', '3714', '德州市', '371423', '庆云县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371424', '3714', '00,37,3714', '临邑县', '37', '山东省', '3714', '德州市', '371424', '临邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371425', '3714', '00,37,3714', '齐河县', '37', '山东省', '3714', '德州市', '371425', '齐河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371426', '3714', '00,37,3714', '平原县', '37', '山东省', '3714', '德州市', '371426', '平原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371427', '3714', '00,37,3714', '夏津县', '37', '山东省', '3714', '德州市', '371427', '夏津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371428', '3714', '00,37,3714', '武城县', '37', '山东省', '3714', '德州市', '371428', '武城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371481', '3714', '00,37,3714', '乐陵市', '37', '山东省', '3714', '德州市', '371481', '乐陵市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371482', '3714', '00,37,3714', '禹城市', '37', '山东省', '3714', '德州市', '371482', '禹城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3715', '37', '00,37', '聊城市', '37', '山东省', '3715', '聊城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371502', '3715', '00,37,3715', '东昌府区', '37', '山东省', '3715', '聊城市', '371502', '东昌府区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371503', '3715', '00,37,3715', '茌平区', '37', '山东省', '3715', '聊城市', '371503', '茌平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371521', '3715', '00,37,3715', '阳谷县', '37', '山东省', '3715', '聊城市', '371521', '阳谷县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371522', '3715', '00,37,3715', '莘县', '37', '山东省', '3715', '聊城市', '371522', '莘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371524', '3715', '00,37,3715', '东阿县', '37', '山东省', '3715', '聊城市', '371524', '东阿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371525', '3715', '00,37,3715', '冠县', '37', '山东省', '3715', '聊城市', '371525', '冠县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371526', '3715', '00,37,3715', '高唐县', '37', '山东省', '3715', '聊城市', '371526', '高唐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371581', '3715', '00,37,3715', '临清市', '37', '山东省', '3715', '聊城市', '371581', '临清市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3716', '37', '00,37', '滨州市', '37', '山东省', '3716', '滨州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371602', '3716', '00,37,3716', '滨城区', '37', '山东省', '3716', '滨州市', '371602', '滨城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371603', '3716', '00,37,3716', '沾化区', '37', '山东省', '3716', '滨州市', '371603', '沾化区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371621', '3716', '00,37,3716', '惠民县', '37', '山东省', '3716', '滨州市', '371621', '惠民县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371622', '3716', '00,37,3716', '阳信县', '37', '山东省', '3716', '滨州市', '371622', '阳信县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371623', '3716', '00,37,3716', '无棣县', '37', '山东省', '3716', '滨州市', '371623', '无棣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371625', '3716', '00,37,3716', '博兴县', '37', '山东省', '3716', '滨州市', '371625', '博兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371681', '3716', '00,37,3716', '邹平市', '37', '山东省', '3716', '滨州市', '371681', '邹平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3717', '37', '00,37', '菏泽市', '37', '山东省', '3717', '菏泽市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371702', '3717', '00,37,3717', '牡丹区', '37', '山东省', '3717', '菏泽市', '371702', '牡丹区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371703', '3717', '00,37,3717', '定陶区', '37', '山东省', '3717', '菏泽市', '371703', '定陶区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371721', '3717', '00,37,3717', '曹县', '37', '山东省', '3717', '菏泽市', '371721', '曹县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371722', '3717', '00,37,3717', '单县', '37', '山东省', '3717', '菏泽市', '371722', '单县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371723', '3717', '00,37,3717', '成武县', '37', '山东省', '3717', '菏泽市', '371723', '成武县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371724', '3717', '00,37,3717', '巨野县', '37', '山东省', '3717', '菏泽市', '371724', '巨野县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371725', '3717', '00,37,3717', '郓城县', '37', '山东省', '3717', '菏泽市', '371725', '郓城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371726', '3717', '00,37,3717', '鄄城县', '37', '山东省', '3717', '菏泽市', '371726', '鄄城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371728', '3717', '00,37,3717', '东明县', '37', '山东省', '3717', '菏泽市', '371728', '东明县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('41', '00', '00', '河南省', '41', '河南省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4101', '41', '00,41', '郑州市', '41', '河南省', '4101', '郑州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410102', '4101', '00,41,4101', '中原区', '41', '河南省', '4101', '郑州市', '410102', '中原区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410103', '4101', '00,41,4101', '二七区', '41', '河南省', '4101', '郑州市', '410103', '二七区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410104', '4101', '00,41,4101', '管城回族区', '41', '河南省', '4101', '郑州市', '410104', '管城回族区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410105', '4101', '00,41,4101', '金水区', '41', '河南省', '4101', '郑州市', '410105', '金水区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410106', '4101', '00,41,4101', '上街区', '41', '河南省', '4101', '郑州市', '410106', '上街区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410108', '4101', '00,41,4101', '惠济区', '41', '河南省', '4101', '郑州市', '410108', '惠济区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410122', '4101', '00,41,4101', '中牟县', '41', '河南省', '4101', '郑州市', '410122', '中牟县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410181', '4101', '00,41,4101', '巩义市', '41', '河南省', '4101', '郑州市', '410181', '巩义市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410182', '4101', '00,41,4101', '荥阳市', '41', '河南省', '4101', '郑州市', '410182', '荥阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410183', '4101', '00,41,4101', '新密市', '41', '河南省', '4101', '郑州市', '410183', '新密市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410184', '4101', '00,41,4101', '新郑市', '41', '河南省', '4101', '郑州市', '410184', '新郑市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410185', '4101', '00,41,4101', '登封市', '41', '河南省', '4101', '郑州市', '410185', '登封市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4102', '41', '00,41', '开封市', '41', '河南省', '4102', '开封市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410202', '4102', '00,41,4102', '龙亭区', '41', '河南省', '4102', '开封市', '410202', '龙亭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410203', '4102', '00,41,4102', '顺河回族区', '41', '河南省', '4102', '开封市', '410203', '顺河回族区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410204', '4102', '00,41,4102', '鼓楼区', '41', '河南省', '4102', '开封市', '410204', '鼓楼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410205', '4102', '00,41,4102', '禹王台区', '41', '河南省', '4102', '开封市', '410205', '禹王台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410212', '4102', '00,41,4102', '祥符区', '41', '河南省', '4102', '开封市', '410212', '祥符区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410221', '4102', '00,41,4102', '杞县', '41', '河南省', '4102', '开封市', '410221', '杞县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410222', '4102', '00,41,4102', '通许县', '41', '河南省', '4102', '开封市', '410222', '通许县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410223', '4102', '00,41,4102', '尉氏县', '41', '河南省', '4102', '开封市', '410223', '尉氏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410225', '4102', '00,41,4102', '兰考县', '41', '河南省', '4102', '开封市', '410225', '兰考县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4103', '41', '00,41', '洛阳市', '41', '河南省', '4103', '洛阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410302', '4103', '00,41,4103', '老城区', '41', '河南省', '4103', '洛阳市', '410302', '老城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410303', '4103', '00,41,4103', '西工区', '41', '河南省', '4103', '洛阳市', '410303', '西工区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410304', '4103', '00,41,4103', '瀍河回族区', '41', '河南省', '4103', '洛阳市', '410304', '瀍河回族区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410305', '4103', '00,41,4103', '涧西区', '41', '河南省', '4103', '洛阳市', '410305', '涧西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410306', '4103', '00,41,4103', '吉利区', '41', '河南省', '4103', '洛阳市', '410306', '吉利区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410311', '4103', '00,41,4103', '洛龙区', '41', '河南省', '4103', '洛阳市', '410311', '洛龙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410322', '4103', '00,41,4103', '孟津县', '41', '河南省', '4103', '洛阳市', '410322', '孟津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410323', '4103', '00,41,4103', '新安县', '41', '河南省', '4103', '洛阳市', '410323', '新安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410324', '4103', '00,41,4103', '栾川县', '41', '河南省', '4103', '洛阳市', '410324', '栾川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410325', '4103', '00,41,4103', '嵩县', '41', '河南省', '4103', '洛阳市', '410325', '嵩县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410326', '4103', '00,41,4103', '汝阳县', '41', '河南省', '4103', '洛阳市', '410326', '汝阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410327', '4103', '00,41,4103', '宜阳县', '41', '河南省', '4103', '洛阳市', '410327', '宜阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410328', '4103', '00,41,4103', '洛宁县', '41', '河南省', '4103', '洛阳市', '410328', '洛宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410329', '4103', '00,41,4103', '伊川县', '41', '河南省', '4103', '洛阳市', '410329', '伊川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410381', '4103', '00,41,4103', '偃师市', '41', '河南省', '4103', '洛阳市', '410381', '偃师市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4104', '41', '00,41', '平顶山市', '41', '河南省', '4104', '平顶山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410402', '4104', '00,41,4104', '新华区', '41', '河南省', '4104', '平顶山市', '410402', '新华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410403', '4104', '00,41,4104', '卫东区', '41', '河南省', '4104', '平顶山市', '410403', '卫东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410404', '4104', '00,41,4104', '石龙区', '41', '河南省', '4104', '平顶山市', '410404', '石龙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410411', '4104', '00,41,4104', '湛河区', '41', '河南省', '4104', '平顶山市', '410411', '湛河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410421', '4104', '00,41,4104', '宝丰县', '41', '河南省', '4104', '平顶山市', '410421', '宝丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410422', '4104', '00,41,4104', '叶县', '41', '河南省', '4104', '平顶山市', '410422', '叶县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410423', '4104', '00,41,4104', '鲁山县', '41', '河南省', '4104', '平顶山市', '410423', '鲁山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410425', '4104', '00,41,4104', '郏县', '41', '河南省', '4104', '平顶山市', '410425', '郏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410481', '4104', '00,41,4104', '舞钢市', '41', '河南省', '4104', '平顶山市', '410481', '舞钢市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410482', '4104', '00,41,4104', '汝州市', '41', '河南省', '4104', '平顶山市', '410482', '汝州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4105', '41', '00,41', '安阳市', '41', '河南省', '4105', '安阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410502', '4105', '00,41,4105', '文峰区', '41', '河南省', '4105', '安阳市', '410502', '文峰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410503', '4105', '00,41,4105', '北关区', '41', '河南省', '4105', '安阳市', '410503', '北关区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410505', '4105', '00,41,4105', '殷都区', '41', '河南省', '4105', '安阳市', '410505', '殷都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410506', '4105', '00,41,4105', '龙安区', '41', '河南省', '4105', '安阳市', '410506', '龙安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410522', '4105', '00,41,4105', '安阳县', '41', '河南省', '4105', '安阳市', '410522', '安阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410523', '4105', '00,41,4105', '汤阴县', '41', '河南省', '4105', '安阳市', '410523', '汤阴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410526', '4105', '00,41,4105', '滑县', '41', '河南省', '4105', '安阳市', '410526', '滑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331002', '3310', '00,33,3310', '椒江区', '33', '浙江省', '3310', '台州市', '331002', '椒江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330108', '3301', '00,33,3301', '滨江区', '33', '浙江省', '3301', '杭州市', '330108', '滨江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331004', '3310', '00,33,3310', '路桥区', '33', '浙江省', '3310', '台州市', '331004', '路桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350304', '3503', '00,35,3503', '荔城区', '35', '福建省', '3503', '莆田市', '350304', '荔城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350305', '3503', '00,35,3503', '秀屿区', '35', '福建省', '3503', '莆田市', '350305', '秀屿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350322', '3503', '00,35,3503', '仙游县', '35', '福建省', '3503', '莆田市', '350322', '仙游县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3504', '35', '00,35', '三明市', '35', '福建省', '3504', '三明市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350402', '3504', '00,35,3504', '梅列区', '35', '福建省', '3504', '三明市', '350402', '梅列区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350403', '3504', '00,35,3504', '三元区', '35', '福建省', '3504', '三明市', '350403', '三元区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350421', '3504', '00,35,3504', '明溪县', '35', '福建省', '3504', '三明市', '350421', '明溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350423', '3504', '00,35,3504', '清流县', '35', '福建省', '3504', '三明市', '350423', '清流县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350424', '3504', '00,35,3504', '宁化县', '35', '福建省', '3504', '三明市', '350424', '宁化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350425', '3504', '00,35,3504', '大田县', '35', '福建省', '3504', '三明市', '350425', '大田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350426', '3504', '00,35,3504', '尤溪县', '35', '福建省', '3504', '三明市', '350426', '尤溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350427', '3504', '00,35,3504', '沙县', '35', '福建省', '3504', '三明市', '350427', '沙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350428', '3504', '00,35,3504', '将乐县', '35', '福建省', '3504', '三明市', '350428', '将乐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350429', '3504', '00,35,3504', '泰宁县', '35', '福建省', '3504', '三明市', '350429', '泰宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350430', '3504', '00,35,3504', '建宁县', '35', '福建省', '3504', '三明市', '350430', '建宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350481', '3504', '00,35,3504', '永安市', '35', '福建省', '3504', '三明市', '350481', '永安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3505', '35', '00,35', '泉州市', '35', '福建省', '3505', '泉州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350502', '3505', '00,35,3505', '鲤城区', '35', '福建省', '3505', '泉州市', '350502', '鲤城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350503', '3505', '00,35,3505', '丰泽区', '35', '福建省', '3505', '泉州市', '350503', '丰泽区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350504', '3505', '00,35,3505', '洛江区', '35', '福建省', '3505', '泉州市', '350504', '洛江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350505', '3505', '00,35,3505', '泉港区', '35', '福建省', '3505', '泉州市', '350505', '泉港区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350521', '3505', '00,35,3505', '惠安县', '35', '福建省', '3505', '泉州市', '350521', '惠安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350524', '3505', '00,35,3505', '安溪县', '35', '福建省', '3505', '泉州市', '350524', '安溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350525', '3505', '00,35,3505', '永春县', '35', '福建省', '3505', '泉州市', '350525', '永春县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350526', '3505', '00,35,3505', '德化县', '35', '福建省', '3505', '泉州市', '350526', '德化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350527', '3505', '00,35,3505', '金门县', '35', '福建省', '3505', '泉州市', '350527', '金门县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350581', '3505', '00,35,3505', '石狮市', '35', '福建省', '3505', '泉州市', '350581', '石狮市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350582', '3505', '00,35,3505', '晋江市', '35', '福建省', '3505', '泉州市', '350582', '晋江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350583', '3505', '00,35,3505', '南安市', '35', '福建省', '3505', '泉州市', '350583', '南安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3506', '35', '00,35', '漳州市', '35', '福建省', '3506', '漳州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350602', '3506', '00,35,3506', '芗城区', '35', '福建省', '3506', '漳州市', '350602', '芗城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350603', '3506', '00,35,3506', '龙文区', '35', '福建省', '3506', '漳州市', '350603', '龙文区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350622', '3506', '00,35,3506', '云霄县', '35', '福建省', '3506', '漳州市', '350622', '云霄县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350623', '3506', '00,35,3506', '漳浦县', '35', '福建省', '3506', '漳州市', '350623', '漳浦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350624', '3506', '00,35,3506', '诏安县', '35', '福建省', '3506', '漳州市', '350624', '诏安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350625', '3506', '00,35,3506', '长泰县', '35', '福建省', '3506', '漳州市', '350625', '长泰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350626', '3506', '00,35,3506', '东山县', '35', '福建省', '3506', '漳州市', '350626', '东山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350627', '3506', '00,35,3506', '南靖县', '35', '福建省', '3506', '漳州市', '350627', '南靖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350628', '3506', '00,35,3506', '平和县', '35', '福建省', '3506', '漳州市', '350628', '平和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350629', '3506', '00,35,3506', '华安县', '35', '福建省', '3506', '漳州市', '350629', '华安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350681', '3506', '00,35,3506', '龙海市', '35', '福建省', '3506', '漳州市', '350681', '龙海市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3507', '35', '00,35', '南平市', '35', '福建省', '3507', '南平市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350702', '3507', '00,35,3507', '延平区', '35', '福建省', '3507', '南平市', '350702', '延平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350703', '3507', '00,35,3507', '建阳区', '35', '福建省', '3507', '南平市', '350703', '建阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350721', '3507', '00,35,3507', '顺昌县', '35', '福建省', '3507', '南平市', '350721', '顺昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350722', '3507', '00,35,3507', '浦城县', '35', '福建省', '3507', '南平市', '350722', '浦城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350723', '3507', '00,35,3507', '光泽县', '35', '福建省', '3507', '南平市', '350723', '光泽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350724', '3507', '00,35,3507', '松溪县', '35', '福建省', '3507', '南平市', '350724', '松溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350725', '3507', '00,35,3507', '政和县', '35', '福建省', '3507', '南平市', '350725', '政和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350781', '3507', '00,35,3507', '邵武市', '35', '福建省', '3507', '南平市', '350781', '邵武市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350782', '3507', '00,35,3507', '武夷山市', '35', '福建省', '3507', '南平市', '350782', '武夷山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350783', '3507', '00,35,3507', '建瓯市', '35', '福建省', '3507', '南平市', '350783', '建瓯市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3508', '35', '00,35', '龙岩市', '35', '福建省', '3508', '龙岩市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350802', '3508', '00,35,3508', '新罗区', '35', '福建省', '3508', '龙岩市', '350802', '新罗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350803', '3508', '00,35,3508', '永定区', '35', '福建省', '3508', '龙岩市', '350803', '永定区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350821', '3508', '00,35,3508', '长汀县', '35', '福建省', '3508', '龙岩市', '350821', '长汀县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350823', '3508', '00,35,3508', '上杭县', '35', '福建省', '3508', '龙岩市', '350823', '上杭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350824', '3508', '00,35,3508', '武平县', '35', '福建省', '3508', '龙岩市', '350824', '武平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350825', '3508', '00,35,3508', '连城县', '35', '福建省', '3508', '龙岩市', '350825', '连城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350881', '3508', '00,35,3508', '漳平市', '35', '福建省', '3508', '龙岩市', '350881', '漳平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3509', '35', '00,35', '宁德市', '35', '福建省', '3509', '宁德市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350902', '3509', '00,35,3509', '蕉城区', '35', '福建省', '3509', '宁德市', '350902', '蕉城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350921', '3509', '00,35,3509', '霞浦县', '35', '福建省', '3509', '宁德市', '350921', '霞浦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350922', '3509', '00,35,3509', '古田县', '35', '福建省', '3509', '宁德市', '350922', '古田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350923', '3509', '00,35,3509', '屏南县', '35', '福建省', '3509', '宁德市', '350923', '屏南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350924', '3509', '00,35,3509', '寿宁县', '35', '福建省', '3509', '宁德市', '350924', '寿宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350925', '3509', '00,35,3509', '周宁县', '35', '福建省', '3509', '宁德市', '350925', '周宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350926', '3509', '00,35,3509', '柘荣县', '35', '福建省', '3509', '宁德市', '350926', '柘荣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350981', '3509', '00,35,3509', '福安市', '35', '福建省', '3509', '宁德市', '350981', '福安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350982', '3509', '00,35,3509', '福鼎市', '35', '福建省', '3509', '宁德市', '350982', '福鼎市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('36', '00', '00', '江西省', '36', '江西省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3601', '36', '00,36', '南昌市', '36', '江西省', '3601', '南昌市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360102', '3601', '00,36,3601', '东湖区', '36', '江西省', '3601', '南昌市', '360102', '东湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360103', '3601', '00,36,3601', '西湖区', '36', '江西省', '3601', '南昌市', '360103', '西湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360104', '3601', '00,36,3601', '青云谱区', '36', '江西省', '3601', '南昌市', '360104', '青云谱区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360111', '3601', '00,36,3601', '青山湖区', '36', '江西省', '3601', '南昌市', '360111', '青山湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360112', '3601', '00,36,3601', '新建区', '36', '江西省', '3601', '南昌市', '360112', '新建区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441426', '4414', '00,44,4414', '平远县', '44', '广东省', '4414', '梅州市', '441426', '平远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441521', '4415', '00,44,4415', '海丰县', '44', '广东省', '4415', '汕尾市', '441521', '海丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441523', '4415', '00,44,4415', '陆河县', '44', '广东省', '4415', '汕尾市', '441523', '陆河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441581', '4415', '00,44,4415', '陆丰市', '44', '广东省', '4415', '汕尾市', '441581', '陆丰市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4416', '44', '00,44', '河源市', '44', '广东省', '4416', '河源市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441602', '4416', '00,44,4416', '源城区', '44', '广东省', '4416', '河源市', '441602', '源城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441621', '4416', '00,44,4416', '紫金县', '44', '广东省', '4416', '河源市', '441621', '紫金县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441622', '4416', '00,44,4416', '龙川县', '44', '广东省', '4416', '河源市', '441622', '龙川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441623', '4416', '00,44,4416', '连平县', '44', '广东省', '4416', '河源市', '441623', '连平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441624', '4416', '00,44,4416', '和平县', '44', '广东省', '4416', '河源市', '441624', '和平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441625', '4416', '00,44,4416', '东源县', '44', '广东省', '4416', '河源市', '441625', '东源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4417', '44', '00,44', '阳江市', '44', '广东省', '4417', '阳江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441702', '4417', '00,44,4417', '江城区', '44', '广东省', '4417', '阳江市', '441702', '江城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441704', '4417', '00,44,4417', '阳东区', '44', '广东省', '4417', '阳江市', '441704', '阳东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441721', '4417', '00,44,4417', '阳西县', '44', '广东省', '4417', '阳江市', '441721', '阳西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441781', '4417', '00,44,4417', '阳春市', '44', '广东省', '4417', '阳江市', '441781', '阳春市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4418', '44', '00,44', '清远市', '44', '广东省', '4418', '清远市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441802', '4418', '00,44,4418', '清城区', '44', '广东省', '4418', '清远市', '441802', '清城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441803', '4418', '00,44,4418', '清新区', '44', '广东省', '4418', '清远市', '441803', '清新区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441821', '4418', '00,44,4418', '佛冈县', '44', '广东省', '4418', '清远市', '441821', '佛冈县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441823', '4418', '00,44,4418', '阳山县', '44', '广东省', '4418', '清远市', '441823', '阳山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441825', '4418', '00,44,4418', '连山壮族瑶族自治县', '44', '广东省', '4418', '清远市', '441825', '连山壮族瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441826', '4418', '00,44,4418', '连南瑶族自治县', '44', '广东省', '4418', '清远市', '441826', '连南瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441881', '4418', '00,44,4418', '英德市', '44', '广东省', '4418', '清远市', '441881', '英德市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441882', '4418', '00,44,4418', '连州市', '44', '广东省', '4418', '清远市', '441882', '连州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4419', '44', '00,44', '东莞市', '44', '广东省', '4419', '东莞市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441900', '4419', '00,44,4419', '东莞市', '44', '广东省', '4419', '东莞市', '441900', '东莞市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4420', '44', '00,44', '中山市', '44', '广东省', '4420', '中山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('442000', '4420', '00,44,4420', '中山市', '44', '广东省', '4420', '中山市', '442000', '中山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4451', '44', '00,44', '潮州市', '44', '广东省', '4451', '潮州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445102', '4451', '00,44,4451', '湘桥区', '44', '广东省', '4451', '潮州市', '445102', '湘桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445103', '4451', '00,44,4451', '潮安区', '44', '广东省', '4451', '潮州市', '445103', '潮安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445122', '4451', '00,44,4451', '饶平县', '44', '广东省', '4451', '潮州市', '445122', '饶平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4452', '44', '00,44', '揭阳市', '44', '广东省', '4452', '揭阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445202', '4452', '00,44,4452', '榕城区', '44', '广东省', '4452', '揭阳市', '445202', '榕城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445203', '4452', '00,44,4452', '揭东区', '44', '广东省', '4452', '揭阳市', '445203', '揭东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445222', '4452', '00,44,4452', '揭西县', '44', '广东省', '4452', '揭阳市', '445222', '揭西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445224', '4452', '00,44,4452', '惠来县', '44', '广东省', '4452', '揭阳市', '445224', '惠来县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445281', '4452', '00,44,4452', '普宁市', '44', '广东省', '4452', '揭阳市', '445281', '普宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4453', '44', '00,44', '云浮市', '44', '广东省', '4453', '云浮市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445302', '4453', '00,44,4453', '云城区', '44', '广东省', '4453', '云浮市', '445302', '云城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445303', '4453', '00,44,4453', '云安区', '44', '广东省', '4453', '云浮市', '445303', '云安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445321', '4453', '00,44,4453', '新兴县', '44', '广东省', '4453', '云浮市', '445321', '新兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445322', '4453', '00,44,4453', '郁南县', '44', '广东省', '4453', '云浮市', '445322', '郁南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445381', '4453', '00,44,4453', '罗定市', '44', '广东省', '4453', '云浮市', '445381', '罗定市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('45', '00', '00', '广西壮族自治区', '45', '广西壮族自治区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4501', '45', '00,45', '南宁市', '45', '广西壮族自治区', '4501', '南宁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450102', '4501', '00,45,4501', '兴宁区', '45', '广西壮族自治区', '4501', '南宁市', '450102', '兴宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450103', '4501', '00,45,4501', '青秀区', '45', '广西壮族自治区', '4501', '南宁市', '450103', '青秀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450105', '4501', '00,45,4501', '江南区', '45', '广西壮族自治区', '4501', '南宁市', '450105', '江南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450107', '4501', '00,45,4501', '西乡塘区', '45', '广西壮族自治区', '4501', '南宁市', '450107', '西乡塘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450108', '4501', '00,45,4501', '良庆区', '45', '广西壮族自治区', '4501', '南宁市', '450108', '良庆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450109', '4501', '00,45,4501', '邕宁区', '45', '广西壮族自治区', '4501', '南宁市', '450109', '邕宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450110', '4501', '00,45,4501', '武鸣区', '45', '广西壮族自治区', '4501', '南宁市', '450110', '武鸣区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450123', '4501', '00,45,4501', '隆安县', '45', '广西壮族自治区', '4501', '南宁市', '450123', '隆安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450124', '4501', '00,45,4501', '马山县', '45', '广西壮族自治区', '4501', '南宁市', '450124', '马山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450125', '4501', '00,45,4501', '上林县', '45', '广西壮族自治区', '4501', '南宁市', '450125', '上林县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450126', '4501', '00,45,4501', '宾阳县', '45', '广西壮族自治区', '4501', '南宁市', '450126', '宾阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450127', '4501', '00,45,4501', '横县', '45', '广西壮族自治区', '4501', '南宁市', '450127', '横县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4502', '45', '00,45', '柳州市', '45', '广西壮族自治区', '4502', '柳州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450202', '4502', '00,45,4502', '城中区', '45', '广西壮族自治区', '4502', '柳州市', '450202', '城中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450203', '4502', '00,45,4502', '鱼峰区', '45', '广西壮族自治区', '4502', '柳州市', '450203', '鱼峰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450204', '4502', '00,45,4502', '柳南区', '45', '广西壮族自治区', '4502', '柳州市', '450204', '柳南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450205', '4502', '00,45,4502', '柳北区', '45', '广西壮族自治区', '4502', '柳州市', '450205', '柳北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450206', '4502', '00,45,4502', '柳江区', '45', '广西壮族自治区', '4502', '柳州市', '450206', '柳江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450222', '4502', '00,45,4502', '柳城县', '45', '广西壮族自治区', '4502', '柳州市', '450222', '柳城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450223', '4502', '00,45,4502', '鹿寨县', '45', '广西壮族自治区', '4502', '柳州市', '450223', '鹿寨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450224', '4502', '00,45,4502', '融安县', '45', '广西壮族自治区', '4502', '柳州市', '450224', '融安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450225', '4502', '00,45,4502', '融水苗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450225', '融水苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450226', '4502', '00,45,4502', '三江侗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450226', '三江侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4503', '45', '00,45', '桂林市', '45', '广西壮族自治区', '4503', '桂林市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450302', '4503', '00,45,4503', '秀峰区', '45', '广西壮族自治区', '4503', '桂林市', '450302', '秀峰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450303', '4503', '00,45,4503', '叠彩区', '45', '广西壮族自治区', '4503', '桂林市', '450303', '叠彩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450304', '4503', '00,45,4503', '象山区', '45', '广西壮族自治区', '4503', '桂林市', '450304', '象山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440232', '4402', '00,44,4402', '乳源瑶族自治县', '44', '广东省', '4402', '韶关市', '440232', '乳源瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331003', '3310', '00,33,3310', '黄岩区', '33', '浙江省', '3310', '台州市', '331003', '黄岩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450312', '4503', '00,45,4503', '临桂区', '45', '广西壮族自治区', '4503', '桂林市', '450312', '临桂区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411521', '4115', '00,41,4115', '罗山县', '41', '河南省', '4115', '信阳市', '411521', '罗山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411522', '4115', '00,41,4115', '光山县', '41', '河南省', '4115', '信阳市', '411522', '光山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411523', '4115', '00,41,4115', '新县', '41', '河南省', '4115', '信阳市', '411523', '新县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411524', '4115', '00,41,4115', '商城县', '41', '河南省', '4115', '信阳市', '411524', '商城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411525', '4115', '00,41,4115', '固始县', '41', '河南省', '4115', '信阳市', '411525', '固始县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411526', '4115', '00,41,4115', '潢川县', '41', '河南省', '4115', '信阳市', '411526', '潢川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411527', '4115', '00,41,4115', '淮滨县', '41', '河南省', '4115', '信阳市', '411527', '淮滨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411528', '4115', '00,41,4115', '息县', '41', '河南省', '4115', '信阳市', '411528', '息县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4116', '41', '00,41', '周口市', '41', '河南省', '4116', '周口市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411602', '4116', '00,41,4116', '川汇区', '41', '河南省', '4116', '周口市', '411602', '川汇区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411603', '4116', '00,41,4116', '淮阳区', '41', '河南省', '4116', '周口市', '411603', '淮阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411621', '4116', '00,41,4116', '扶沟县', '41', '河南省', '4116', '周口市', '411621', '扶沟县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411622', '4116', '00,41,4116', '西华县', '41', '河南省', '4116', '周口市', '411622', '西华县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411623', '4116', '00,41,4116', '商水县', '41', '河南省', '4116', '周口市', '411623', '商水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411624', '4116', '00,41,4116', '沈丘县', '41', '河南省', '4116', '周口市', '411624', '沈丘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411625', '4116', '00,41,4116', '郸城县', '41', '河南省', '4116', '周口市', '411625', '郸城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411627', '4116', '00,41,4116', '太康县', '41', '河南省', '4116', '周口市', '411627', '太康县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411628', '4116', '00,41,4116', '鹿邑县', '41', '河南省', '4116', '周口市', '411628', '鹿邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411681', '4116', '00,41,4116', '项城市', '41', '河南省', '4116', '周口市', '411681', '项城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4117', '41', '00,41', '驻马店市', '41', '河南省', '4117', '驻马店市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411702', '4117', '00,41,4117', '驿城区', '41', '河南省', '4117', '驻马店市', '411702', '驿城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411721', '4117', '00,41,4117', '西平县', '41', '河南省', '4117', '驻马店市', '411721', '西平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411722', '4117', '00,41,4117', '上蔡县', '41', '河南省', '4117', '驻马店市', '411722', '上蔡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411723', '4117', '00,41,4117', '平舆县', '41', '河南省', '4117', '驻马店市', '411723', '平舆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411724', '4117', '00,41,4117', '正阳县', '41', '河南省', '4117', '驻马店市', '411724', '正阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411725', '4117', '00,41,4117', '确山县', '41', '河南省', '4117', '驻马店市', '411725', '确山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411726', '4117', '00,41,4117', '泌阳县', '41', '河南省', '4117', '驻马店市', '411726', '泌阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411727', '4117', '00,41,4117', '汝南县', '41', '河南省', '4117', '驻马店市', '411727', '汝南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411728', '4117', '00,41,4117', '遂平县', '41', '河南省', '4117', '驻马店市', '411728', '遂平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411729', '4117', '00,41,4117', '新蔡县', '41', '河南省', '4117', '驻马店市', '411729', '新蔡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4190', '41', '00,41', '省直辖县级行政区', '41', '河南省', '4190', '省直辖县级行政区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('419001', '4190', '00,41,4190', '济源市', '41', '河南省', '4190', '省直辖县级行政区', '419001', '济源市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('42', '00', '00', '湖北省', '42', '湖北省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4201', '42', '00,42', '武汉市', '42', '湖北省', '4201', '武汉市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420102', '4201', '00,42,4201', '江岸区', '42', '湖北省', '4201', '武汉市', '420102', '江岸区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420103', '4201', '00,42,4201', '江汉区', '42', '湖北省', '4201', '武汉市', '420103', '江汉区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420104', '4201', '00,42,4201', '硚口区', '42', '湖北省', '4201', '武汉市', '420104', '硚口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420105', '4201', '00,42,4201', '汉阳区', '42', '湖北省', '4201', '武汉市', '420105', '汉阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420106', '4201', '00,42,4201', '武昌区', '42', '湖北省', '4201', '武汉市', '420106', '武昌区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420107', '4201', '00,42,4201', '青山区', '42', '湖北省', '4201', '武汉市', '420107', '青山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420111', '4201', '00,42,4201', '洪山区', '42', '湖北省', '4201', '武汉市', '420111', '洪山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420112', '4201', '00,42,4201', '东西湖区', '42', '湖北省', '4201', '武汉市', '420112', '东西湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420113', '4201', '00,42,4201', '汉南区', '42', '湖北省', '4201', '武汉市', '420113', '汉南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420114', '4201', '00,42,4201', '蔡甸区', '42', '湖北省', '4201', '武汉市', '420114', '蔡甸区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420115', '4201', '00,42,4201', '江夏区', '42', '湖北省', '4201', '武汉市', '420115', '江夏区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420116', '4201', '00,42,4201', '黄陂区', '42', '湖北省', '4201', '武汉市', '420116', '黄陂区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420117', '4201', '00,42,4201', '新洲区', '42', '湖北省', '4201', '武汉市', '420117', '新洲区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4202', '42', '00,42', '黄石市', '42', '湖北省', '4202', '黄石市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420202', '4202', '00,42,4202', '黄石港区', '42', '湖北省', '4202', '黄石市', '420202', '黄石港区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420203', '4202', '00,42,4202', '西塞山区', '42', '湖北省', '4202', '黄石市', '420203', '西塞山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420204', '4202', '00,42,4202', '下陆区', '42', '湖北省', '4202', '黄石市', '420204', '下陆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420205', '4202', '00,42,4202', '铁山区', '42', '湖北省', '4202', '黄石市', '420205', '铁山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420222', '4202', '00,42,4202', '阳新县', '42', '湖北省', '4202', '黄石市', '420222', '阳新县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420281', '4202', '00,42,4202', '大冶市', '42', '湖北省', '4202', '黄石市', '420281', '大冶市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4203', '42', '00,42', '十堰市', '42', '湖北省', '4203', '十堰市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420302', '4203', '00,42,4203', '茅箭区', '42', '湖北省', '4203', '十堰市', '420302', '茅箭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420303', '4203', '00,42,4203', '张湾区', '42', '湖北省', '4203', '十堰市', '420303', '张湾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420304', '4203', '00,42,4203', '郧阳区', '42', '湖北省', '4203', '十堰市', '420304', '郧阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420322', '4203', '00,42,4203', '郧西县', '42', '湖北省', '4203', '十堰市', '420322', '郧西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420323', '4203', '00,42,4203', '竹山县', '42', '湖北省', '4203', '十堰市', '420323', '竹山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420324', '4203', '00,42,4203', '竹溪县', '42', '湖北省', '4203', '十堰市', '420324', '竹溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420325', '4203', '00,42,4203', '房县', '42', '湖北省', '4203', '十堰市', '420325', '房县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420381', '4203', '00,42,4203', '丹江口市', '42', '湖北省', '4203', '十堰市', '420381', '丹江口市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4205', '42', '00,42', '宜昌市', '42', '湖北省', '4205', '宜昌市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420502', '4205', '00,42,4205', '西陵区', '42', '湖北省', '4205', '宜昌市', '420502', '西陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420503', '4205', '00,42,4205', '伍家岗区', '42', '湖北省', '4205', '宜昌市', '420503', '伍家岗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420504', '4205', '00,42,4205', '点军区', '42', '湖北省', '4205', '宜昌市', '420504', '点军区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420505', '4205', '00,42,4205', '猇亭区', '42', '湖北省', '4205', '宜昌市', '420505', '猇亭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420506', '4205', '00,42,4205', '夷陵区', '42', '湖北省', '4205', '宜昌市', '420506', '夷陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420525', '4205', '00,42,4205', '远安县', '42', '湖北省', '4205', '宜昌市', '420525', '远安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420526', '4205', '00,42,4205', '兴山县', '42', '湖北省', '4205', '宜昌市', '420526', '兴山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420527', '4205', '00,42,4205', '秭归县', '42', '湖北省', '4205', '宜昌市', '420527', '秭归县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420528', '4205', '00,42,4205', '长阳土家族自治县', '42', '湖北省', '4205', '宜昌市', '420528', '长阳土家族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511702', '5117', '00,51,5117', '通川区', '51', '四川省', '5117', '达州市', '511702', '通川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511703', '5117', '00,51,5117', '达川区', '51', '四川省', '5117', '达州市', '511703', '达川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420602', '4206', '00,42,4206', '襄城区', '42', '湖北省', '4206', '襄阳市', '420602', '襄城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420606', '4206', '00,42,4206', '樊城区', '42', '湖北省', '4206', '襄阳市', '420606', '樊城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450321', '4503', '00,45,4503', '阳朔县', '45', '广西壮族自治区', '4503', '桂林市', '450321', '阳朔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450323', '4503', '00,45,4503', '灵川县', '45', '广西壮族自治区', '4503', '桂林市', '450323', '灵川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450324', '4503', '00,45,4503', '全州县', '45', '广西壮族自治区', '4503', '桂林市', '450324', '全州县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450325', '4503', '00,45,4503', '兴安县', '45', '广西壮族自治区', '4503', '桂林市', '450325', '兴安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450326', '4503', '00,45,4503', '永福县', '45', '广西壮族自治区', '4503', '桂林市', '450326', '永福县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450327', '4503', '00,45,4503', '灌阳县', '45', '广西壮族自治区', '4503', '桂林市', '450327', '灌阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450328', '4503', '00,45,4503', '龙胜各族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450328', '龙胜各族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450329', '4503', '00,45,4503', '资源县', '45', '广西壮族自治区', '4503', '桂林市', '450329', '资源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450330', '4503', '00,45,4503', '平乐县', '45', '广西壮族自治区', '4503', '桂林市', '450330', '平乐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450332', '4503', '00,45,4503', '恭城瑶族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450332', '恭城瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450381', '4503', '00,45,4503', '荔浦市', '45', '广西壮族自治区', '4503', '桂林市', '450381', '荔浦市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4504', '45', '00,45', '梧州市', '45', '广西壮族自治区', '4504', '梧州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450403', '4504', '00,45,4504', '万秀区', '45', '广西壮族自治区', '4504', '梧州市', '450403', '万秀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450405', '4504', '00,45,4504', '长洲区', '45', '广西壮族自治区', '4504', '梧州市', '450405', '长洲区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450406', '4504', '00,45,4504', '龙圩区', '45', '广西壮族自治区', '4504', '梧州市', '450406', '龙圩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450421', '4504', '00,45,4504', '苍梧县', '45', '广西壮族自治区', '4504', '梧州市', '450421', '苍梧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450422', '4504', '00,45,4504', '藤县', '45', '广西壮族自治区', '4504', '梧州市', '450422', '藤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450423', '4504', '00,45,4504', '蒙山县', '45', '广西壮族自治区', '4504', '梧州市', '450423', '蒙山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450481', '4504', '00,45,4504', '岑溪市', '45', '广西壮族自治区', '4504', '梧州市', '450481', '岑溪市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4505', '45', '00,45', '北海市', '45', '广西壮族自治区', '4505', '北海市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450502', '4505', '00,45,4505', '海城区', '45', '广西壮族自治区', '4505', '北海市', '450502', '海城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450503', '4505', '00,45,4505', '银海区', '45', '广西壮族自治区', '4505', '北海市', '450503', '银海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450512', '4505', '00,45,4505', '铁山港区', '45', '广西壮族自治区', '4505', '北海市', '450512', '铁山港区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450521', '4505', '00,45,4505', '合浦县', '45', '广西壮族自治区', '4505', '北海市', '450521', '合浦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4506', '45', '00,45', '防城港市', '45', '广西壮族自治区', '4506', '防城港市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450602', '4506', '00,45,4506', '港口区', '45', '广西壮族自治区', '4506', '防城港市', '450602', '港口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450603', '4506', '00,45,4506', '防城区', '45', '广西壮族自治区', '4506', '防城港市', '450603', '防城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450621', '4506', '00,45,4506', '上思县', '45', '广西壮族自治区', '4506', '防城港市', '450621', '上思县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450681', '4506', '00,45,4506', '东兴市', '45', '广西壮族自治区', '4506', '防城港市', '450681', '东兴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4507', '45', '00,45', '钦州市', '45', '广西壮族自治区', '4507', '钦州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450702', '4507', '00,45,4507', '钦南区', '45', '广西壮族自治区', '4507', '钦州市', '450702', '钦南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450703', '4507', '00,45,4507', '钦北区', '45', '广西壮族自治区', '4507', '钦州市', '450703', '钦北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450721', '4507', '00,45,4507', '灵山县', '45', '广西壮族自治区', '4507', '钦州市', '450721', '灵山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450722', '4507', '00,45,4507', '浦北县', '45', '广西壮族自治区', '4507', '钦州市', '450722', '浦北县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4508', '45', '00,45', '贵港市', '45', '广西壮族自治区', '4508', '贵港市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450802', '4508', '00,45,4508', '港北区', '45', '广西壮族自治区', '4508', '贵港市', '450802', '港北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450803', '4508', '00,45,4508', '港南区', '45', '广西壮族自治区', '4508', '贵港市', '450803', '港南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450804', '4508', '00,45,4508', '覃塘区', '45', '广西壮族自治区', '4508', '贵港市', '450804', '覃塘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450821', '4508', '00,45,4508', '平南县', '45', '广西壮族自治区', '4508', '贵港市', '450821', '平南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450881', '4508', '00,45,4508', '桂平市', '45', '广西壮族自治区', '4508', '贵港市', '450881', '桂平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4509', '45', '00,45', '玉林市', '45', '广西壮族自治区', '4509', '玉林市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450902', '4509', '00,45,4509', '玉州区', '45', '广西壮族自治区', '4509', '玉林市', '450902', '玉州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450903', '4509', '00,45,4509', '福绵区', '45', '广西壮族自治区', '4509', '玉林市', '450903', '福绵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450921', '4509', '00,45,4509', '容县', '45', '广西壮族自治区', '4509', '玉林市', '450921', '容县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450922', '4509', '00,45,4509', '陆川县', '45', '广西壮族自治区', '4509', '玉林市', '450922', '陆川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450923', '4509', '00,45,4509', '博白县', '45', '广西壮族自治区', '4509', '玉林市', '450923', '博白县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460300', '4603', '00,46,4603', '三沙市', '46', '海南省', '4603', '三沙市', '460300', '三沙市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450924', '4509', '00,45,4509', '兴业县', '45', '广西壮族自治区', '4509', '玉林市', '450924', '兴业县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450981', '4509', '00,45,4509', '北流市', '45', '广西壮族自治区', '4509', '玉林市', '450981', '北流市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4510', '45', '00,45', '百色市', '45', '广西壮族自治区', '4510', '百色市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451002', '4510', '00,45,4510', '右江区', '45', '广西壮族自治区', '4510', '百色市', '451002', '右江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451003', '4510', '00,45,4510', '田阳区', '45', '广西壮族自治区', '4510', '百色市', '451003', '田阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451022', '4510', '00,45,4510', '田东县', '45', '广西壮族自治区', '4510', '百色市', '451022', '田东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451024', '4510', '00,45,4510', '德保县', '45', '广西壮族自治区', '4510', '百色市', '451024', '德保县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451026', '4510', '00,45,4510', '那坡县', '45', '广西壮族自治区', '4510', '百色市', '451026', '那坡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451027', '4510', '00,45,4510', '凌云县', '45', '广西壮族自治区', '4510', '百色市', '451027', '凌云县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451028', '4510', '00,45,4510', '乐业县', '45', '广西壮族自治区', '4510', '百色市', '451028', '乐业县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451029', '4510', '00,45,4510', '田林县', '45', '广西壮族自治区', '4510', '百色市', '451029', '田林县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451030', '4510', '00,45,4510', '西林县', '45', '广西壮族自治区', '4510', '百色市', '451030', '西林县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451031', '4510', '00,45,4510', '隆林各族自治县', '45', '广西壮族自治区', '4510', '百色市', '451031', '隆林各族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451081', '4510', '00,45,4510', '靖西市', '45', '广西壮族自治区', '4510', '百色市', '451081', '靖西市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451082', '4510', '00,45,4510', '平果市', '45', '广西壮族自治区', '4510', '百色市', '451082', '平果市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4511', '45', '00,45', '贺州市', '45', '广西壮族自治区', '4511', '贺州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451102', '4511', '00,45,4511', '八步区', '45', '广西壮族自治区', '4511', '贺州市', '451102', '八步区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451103', '4511', '00,45,4511', '平桂区', '45', '广西壮族自治区', '4511', '贺州市', '451103', '平桂区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420529', '4205', '00,42,4205', '五峰土家族自治县', '42', '湖北省', '4205', '宜昌市', '420529', '五峰土家族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420581', '4205', '00,42,4205', '宜都市', '42', '湖北省', '4205', '宜昌市', '420581', '宜都市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420582', '4205', '00,42,4205', '当阳市', '42', '湖北省', '4205', '宜昌市', '420582', '当阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522328', '5223', '00,52,5223', '安龙县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522328', '安龙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5226', '52', '00,52', '黔东南苗族侗族自治州', '52', '贵州省', '5226', '黔东南苗族侗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430105', '4301', '00,43,4301', '开福区', '43', '湖南省', '4301', '长沙市', '430105', '开福区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430111', '4301', '00,43,4301', '雨花区', '43', '湖南省', '4301', '长沙市', '430111', '雨花区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430112', '4301', '00,43,4301', '望城区', '43', '湖南省', '4301', '长沙市', '430112', '望城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430121', '4301', '00,43,4301', '长沙县', '43', '湖南省', '4301', '长沙市', '430121', '长沙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430181', '4301', '00,43,4301', '浏阳市', '43', '湖南省', '4301', '长沙市', '430181', '浏阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430182', '4301', '00,43,4301', '宁乡市', '43', '湖南省', '4301', '长沙市', '430182', '宁乡市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4302', '43', '00,43', '株洲市', '43', '湖南省', '4302', '株洲市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430202', '4302', '00,43,4302', '荷塘区', '43', '湖南省', '4302', '株洲市', '430202', '荷塘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430203', '4302', '00,43,4302', '芦淞区', '43', '湖南省', '4302', '株洲市', '430203', '芦淞区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430204', '4302', '00,43,4302', '石峰区', '43', '湖南省', '4302', '株洲市', '430204', '石峰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430211', '4302', '00,43,4302', '天元区', '43', '湖南省', '4302', '株洲市', '430211', '天元区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430212', '4302', '00,43,4302', '渌口区', '43', '湖南省', '4302', '株洲市', '430212', '渌口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430223', '4302', '00,43,4302', '攸县', '43', '湖南省', '4302', '株洲市', '430223', '攸县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430224', '4302', '00,43,4302', '茶陵县', '43', '湖南省', '4302', '株洲市', '430224', '茶陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430225', '4302', '00,43,4302', '炎陵县', '43', '湖南省', '4302', '株洲市', '430225', '炎陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430281', '4302', '00,43,4302', '醴陵市', '43', '湖南省', '4302', '株洲市', '430281', '醴陵市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4303', '43', '00,43', '湘潭市', '43', '湖南省', '4303', '湘潭市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430302', '4303', '00,43,4303', '雨湖区', '43', '湖南省', '4303', '湘潭市', '430302', '雨湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430304', '4303', '00,43,4303', '岳塘区', '43', '湖南省', '4303', '湘潭市', '430304', '岳塘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430321', '4303', '00,43,4303', '湘潭县', '43', '湖南省', '4303', '湘潭市', '430321', '湘潭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430381', '4303', '00,43,4303', '湘乡市', '43', '湖南省', '4303', '湘潭市', '430381', '湘乡市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430382', '4303', '00,43,4303', '韶山市', '43', '湖南省', '4303', '湘潭市', '430382', '韶山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4304', '43', '00,43', '衡阳市', '43', '湖南省', '4304', '衡阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430405', '4304', '00,43,4304', '珠晖区', '43', '湖南省', '4304', '衡阳市', '430405', '珠晖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430406', '4304', '00,43,4304', '雁峰区', '43', '湖南省', '4304', '衡阳市', '430406', '雁峰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430407', '4304', '00,43,4304', '石鼓区', '43', '湖南省', '4304', '衡阳市', '430407', '石鼓区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430408', '4304', '00,43,4304', '蒸湘区', '43', '湖南省', '4304', '衡阳市', '430408', '蒸湘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430412', '4304', '00,43,4304', '南岳区', '43', '湖南省', '4304', '衡阳市', '430412', '南岳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430421', '4304', '00,43,4304', '衡阳县', '43', '湖南省', '4304', '衡阳市', '430421', '衡阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430422', '4304', '00,43,4304', '衡南县', '43', '湖南省', '4304', '衡阳市', '430422', '衡南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430423', '4304', '00,43,4304', '衡山县', '43', '湖南省', '4304', '衡阳市', '430423', '衡山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430424', '4304', '00,43,4304', '衡东县', '43', '湖南省', '4304', '衡阳市', '430424', '衡东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430426', '4304', '00,43,4304', '祁东县', '43', '湖南省', '4304', '衡阳市', '430426', '祁东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430481', '4304', '00,43,4304', '耒阳市', '43', '湖南省', '4304', '衡阳市', '430481', '耒阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430482', '4304', '00,43,4304', '常宁市', '43', '湖南省', '4304', '衡阳市', '430482', '常宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4305', '43', '00,43', '邵阳市', '43', '湖南省', '4305', '邵阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430502', '4305', '00,43,4305', '双清区', '43', '湖南省', '4305', '邵阳市', '430502', '双清区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430503', '4305', '00,43,4305', '大祥区', '43', '湖南省', '4305', '邵阳市', '430503', '大祥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430511', '4305', '00,43,4305', '北塔区', '43', '湖南省', '4305', '邵阳市', '430511', '北塔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430522', '4305', '00,43,4305', '新邵县', '43', '湖南省', '4305', '邵阳市', '430522', '新邵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430523', '4305', '00,43,4305', '邵阳县', '43', '湖南省', '4305', '邵阳市', '430523', '邵阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430524', '4305', '00,43,4305', '隆回县', '43', '湖南省', '4305', '邵阳市', '430524', '隆回县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430525', '4305', '00,43,4305', '洞口县', '43', '湖南省', '4305', '邵阳市', '430525', '洞口县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430527', '4305', '00,43,4305', '绥宁县', '43', '湖南省', '4305', '邵阳市', '430527', '绥宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430528', '4305', '00,43,4305', '新宁县', '43', '湖南省', '4305', '邵阳市', '430528', '新宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430529', '4305', '00,43,4305', '城步苗族自治县', '43', '湖南省', '4305', '邵阳市', '430529', '城步苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430581', '4305', '00,43,4305', '武冈市', '43', '湖南省', '4305', '邵阳市', '430581', '武冈市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430582', '4305', '00,43,4305', '邵东市', '43', '湖南省', '4305', '邵阳市', '430582', '邵东市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4306', '43', '00,43', '岳阳市', '43', '湖南省', '4306', '岳阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430602', '4306', '00,43,4306', '岳阳楼区', '43', '湖南省', '4306', '岳阳市', '430602', '岳阳楼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430603', '4306', '00,43,4306', '云溪区', '43', '湖南省', '4306', '岳阳市', '430603', '云溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430611', '4306', '00,43,4306', '君山区', '43', '湖南省', '4306', '岳阳市', '430611', '君山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430621', '4306', '00,43,4306', '岳阳县', '43', '湖南省', '4306', '岳阳市', '430621', '岳阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430623', '4306', '00,43,4306', '华容县', '43', '湖南省', '4306', '岳阳市', '430623', '华容县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430624', '4306', '00,43,4306', '湘阴县', '43', '湖南省', '4306', '岳阳市', '430624', '湘阴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430626', '4306', '00,43,4306', '平江县', '43', '湖南省', '4306', '岳阳市', '430626', '平江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430681', '4306', '00,43,4306', '汨罗市', '43', '湖南省', '4306', '岳阳市', '430681', '汨罗市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430682', '4306', '00,43,4306', '临湘市', '43', '湖南省', '4306', '岳阳市', '430682', '临湘市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4307', '43', '00,43', '常德市', '43', '湖南省', '4307', '常德市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430702', '4307', '00,43,4307', '武陵区', '43', '湖南省', '4307', '常德市', '430702', '武陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430703', '4307', '00,43,4307', '鼎城区', '43', '湖南省', '4307', '常德市', '430703', '鼎城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430721', '4307', '00,43,4307', '安乡县', '43', '湖南省', '4307', '常德市', '430721', '安乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430722', '4307', '00,43,4307', '汉寿县', '43', '湖南省', '4307', '常德市', '430722', '汉寿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430723', '4307', '00,43,4307', '澧县', '43', '湖南省', '4307', '常德市', '430723', '澧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430724', '4307', '00,43,4307', '临澧县', '43', '湖南省', '4307', '常德市', '430724', '临澧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430725', '4307', '00,43,4307', '桃源县', '43', '湖南省', '4307', '常德市', '430725', '桃源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430726', '4307', '00,43,4307', '石门县', '43', '湖南省', '4307', '常德市', '430726', '石门县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430781', '4307', '00,43,4307', '津市市', '43', '湖南省', '4307', '常德市', '430781', '津市市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4308', '43', '00,43', '张家界市', '43', '湖南省', '4308', '张家界市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430802', '4308', '00,43,4308', '永定区', '43', '湖南省', '4308', '张家界市', '430802', '永定区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430811', '4308', '00,43,4308', '武陵源区', '43', '湖南省', '4308', '张家界市', '430811', '武陵源区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430821', '4308', '00,43,4308', '慈利县', '43', '湖南省', '4308', '张家界市', '430821', '慈利县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430822', '4308', '00,43,4308', '桑植县', '43', '湖南省', '4308', '张家界市', '430822', '桑植县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4309', '43', '00,43', '益阳市', '43', '湖南省', '4309', '益阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430902', '4309', '00,43,4309', '资阳区', '43', '湖南省', '4309', '益阳市', '430902', '资阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430903', '4309', '00,43,4309', '赫山区', '43', '湖南省', '4309', '益阳市', '430903', '赫山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430921', '4309', '00,43,4309', '南县', '43', '湖南省', '4309', '益阳市', '430921', '南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430922', '4309', '00,43,4309', '桃江县', '43', '湖南省', '4309', '益阳市', '430922', '桃江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3410', '34', '00,34', '黄山市', '34', '安徽省', '3410', '黄山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410611', '4106', '00,41,4106', '淇滨区', '41', '河南省', '4106', '鹤壁市', '410611', '淇滨区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410621', '4106', '00,41,4106', '浚县', '41', '河南省', '4106', '鹤壁市', '410621', '浚县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410622', '4106', '00,41,4106', '淇县', '41', '河南省', '4106', '鹤壁市', '410622', '淇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4107', '41', '00,41', '新乡市', '41', '河南省', '4107', '新乡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410702', '4107', '00,41,4107', '红旗区', '41', '河南省', '4107', '新乡市', '410702', '红旗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410703', '4107', '00,41,4107', '卫滨区', '41', '河南省', '4107', '新乡市', '410703', '卫滨区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410704', '4107', '00,41,4107', '凤泉区', '41', '河南省', '4107', '新乡市', '410704', '凤泉区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410711', '4107', '00,41,4107', '牧野区', '41', '河南省', '4107', '新乡市', '410711', '牧野区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410721', '4107', '00,41,4107', '新乡县', '41', '河南省', '4107', '新乡市', '410721', '新乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410724', '4107', '00,41,4107', '获嘉县', '41', '河南省', '4107', '新乡市', '410724', '获嘉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410725', '4107', '00,41,4107', '原阳县', '41', '河南省', '4107', '新乡市', '410725', '原阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410726', '4107', '00,41,4107', '延津县', '41', '河南省', '4107', '新乡市', '410726', '延津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410727', '4107', '00,41,4107', '封丘县', '41', '河南省', '4107', '新乡市', '410727', '封丘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410781', '4107', '00,41,4107', '卫辉市', '41', '河南省', '4107', '新乡市', '410781', '卫辉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410782', '4107', '00,41,4107', '辉县市', '41', '河南省', '4107', '新乡市', '410782', '辉县市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410783', '4107', '00,41,4107', '长垣市', '41', '河南省', '4107', '新乡市', '410783', '长垣市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4108', '41', '00,41', '焦作市', '41', '河南省', '4108', '焦作市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410802', '4108', '00,41,4108', '解放区', '41', '河南省', '4108', '焦作市', '410802', '解放区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410803', '4108', '00,41,4108', '中站区', '41', '河南省', '4108', '焦作市', '410803', '中站区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410804', '4108', '00,41,4108', '马村区', '41', '河南省', '4108', '焦作市', '410804', '马村区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410811', '4108', '00,41,4108', '山阳区', '41', '河南省', '4108', '焦作市', '410811', '山阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410821', '4108', '00,41,4108', '修武县', '41', '河南省', '4108', '焦作市', '410821', '修武县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410822', '4108', '00,41,4108', '博爱县', '41', '河南省', '4108', '焦作市', '410822', '博爱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410823', '4108', '00,41,4108', '武陟县', '41', '河南省', '4108', '焦作市', '410823', '武陟县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410825', '4108', '00,41,4108', '温县', '41', '河南省', '4108', '焦作市', '410825', '温县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410882', '4108', '00,41,4108', '沁阳市', '41', '河南省', '4108', '焦作市', '410882', '沁阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410883', '4108', '00,41,4108', '孟州市', '41', '河南省', '4108', '焦作市', '410883', '孟州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4109', '41', '00,41', '濮阳市', '41', '河南省', '4109', '濮阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410902', '4109', '00,41,4109', '华龙区', '41', '河南省', '4109', '濮阳市', '410902', '华龙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410922', '4109', '00,41,4109', '清丰县', '41', '河南省', '4109', '濮阳市', '410922', '清丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410923', '4109', '00,41,4109', '南乐县', '41', '河南省', '4109', '濮阳市', '410923', '南乐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410926', '4109', '00,41,4109', '范县', '41', '河南省', '4109', '濮阳市', '410926', '范县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410927', '4109', '00,41,4109', '台前县', '41', '河南省', '4109', '濮阳市', '410927', '台前县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410928', '4109', '00,41,4109', '濮阳县', '41', '河南省', '4109', '濮阳市', '410928', '濮阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4110', '41', '00,41', '许昌市', '41', '河南省', '4110', '许昌市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411002', '4110', '00,41,4110', '魏都区', '41', '河南省', '4110', '许昌市', '411002', '魏都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411003', '4110', '00,41,4110', '建安区', '41', '河南省', '4110', '许昌市', '411003', '建安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411024', '4110', '00,41,4110', '鄢陵县', '41', '河南省', '4110', '许昌市', '411024', '鄢陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411025', '4110', '00,41,4110', '襄城县', '41', '河南省', '4110', '许昌市', '411025', '襄城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411081', '4110', '00,41,4110', '禹州市', '41', '河南省', '4110', '许昌市', '411081', '禹州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411082', '4110', '00,41,4110', '长葛市', '41', '河南省', '4110', '许昌市', '411082', '长葛市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4111', '41', '00,41', '漯河市', '41', '河南省', '4111', '漯河市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411102', '4111', '00,41,4111', '源汇区', '41', '河南省', '4111', '漯河市', '411102', '源汇区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411103', '4111', '00,41,4111', '郾城区', '41', '河南省', '4111', '漯河市', '411103', '郾城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411104', '4111', '00,41,4111', '召陵区', '41', '河南省', '4111', '漯河市', '411104', '召陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411121', '4111', '00,41,4111', '舞阳县', '41', '河南省', '4111', '漯河市', '411121', '舞阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411122', '4111', '00,41,4111', '临颍县', '41', '河南省', '4111', '漯河市', '411122', '临颍县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4112', '41', '00,41', '三门峡市', '41', '河南省', '4112', '三门峡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411202', '4112', '00,41,4112', '湖滨区', '41', '河南省', '4112', '三门峡市', '411202', '湖滨区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411203', '4112', '00,41,4112', '陕州区', '41', '河南省', '4112', '三门峡市', '411203', '陕州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411221', '4112', '00,41,4112', '渑池县', '41', '河南省', '4112', '三门峡市', '411221', '渑池县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411224', '4112', '00,41,4112', '卢氏县', '41', '河南省', '4112', '三门峡市', '411224', '卢氏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411281', '4112', '00,41,4112', '义马市', '41', '河南省', '4112', '三门峡市', '411281', '义马市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411282', '4112', '00,41,4112', '灵宝市', '41', '河南省', '4112', '三门峡市', '411282', '灵宝市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4113', '41', '00,41', '南阳市', '41', '河南省', '4113', '南阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411302', '4113', '00,41,4113', '宛城区', '41', '河南省', '4113', '南阳市', '411302', '宛城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411303', '4113', '00,41,4113', '卧龙区', '41', '河南省', '4113', '南阳市', '411303', '卧龙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411321', '4113', '00,41,4113', '南召县', '41', '河南省', '4113', '南阳市', '411321', '南召县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411322', '4113', '00,41,4113', '方城县', '41', '河南省', '4113', '南阳市', '411322', '方城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411323', '4113', '00,41,4113', '西峡县', '41', '河南省', '4113', '南阳市', '411323', '西峡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411324', '4113', '00,41,4113', '镇平县', '41', '河南省', '4113', '南阳市', '411324', '镇平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411325', '4113', '00,41,4113', '内乡县', '41', '河南省', '4113', '南阳市', '411325', '内乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411326', '4113', '00,41,4113', '淅川县', '41', '河南省', '4113', '南阳市', '411326', '淅川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411327', '4113', '00,41,4113', '社旗县', '41', '河南省', '4113', '南阳市', '411327', '社旗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411328', '4113', '00,41,4113', '唐河县', '41', '河南省', '4113', '南阳市', '411328', '唐河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411329', '4113', '00,41,4113', '新野县', '41', '河南省', '4113', '南阳市', '411329', '新野县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411330', '4113', '00,41,4113', '桐柏县', '41', '河南省', '4113', '南阳市', '411330', '桐柏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411381', '4113', '00,41,4113', '邓州市', '41', '河南省', '4113', '南阳市', '411381', '邓州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4114', '41', '00,41', '商丘市', '41', '河南省', '4114', '商丘市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411402', '4114', '00,41,4114', '梁园区', '41', '河南省', '4114', '商丘市', '411402', '梁园区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411403', '4114', '00,41,4114', '睢阳区', '41', '河南省', '4114', '商丘市', '411403', '睢阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411421', '4114', '00,41,4114', '民权县', '41', '河南省', '4114', '商丘市', '411421', '民权县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411422', '4114', '00,41,4114', '睢县', '41', '河南省', '4114', '商丘市', '411422', '睢县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411423', '4114', '00,41,4114', '宁陵县', '41', '河南省', '4114', '商丘市', '411423', '宁陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411424', '4114', '00,41,4114', '柘城县', '41', '河南省', '4114', '商丘市', '411424', '柘城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522327', '5223', '00,52,5223', '册亨县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522327', '册亨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450305', '4503', '00,45,4503', '七星区', '45', '广西壮族自治区', '4503', '桂林市', '450305', '七星区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411426', '4114', '00,41,4114', '夏邑县', '41', '河南省', '4114', '商丘市', '411426', '夏邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440281', '4402', '00,44,4402', '乐昌市', '44', '广东省', '4402', '韶关市', '440281', '乐昌市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440282', '4402', '00,44,4402', '南雄市', '44', '广东省', '4402', '韶关市', '440282', '南雄市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4403', '44', '00,44', '深圳市', '44', '广东省', '4403', '深圳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440303', '4403', '00,44,4403', '罗湖区', '44', '广东省', '4403', '深圳市', '440303', '罗湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440304', '4403', '00,44,4403', '福田区', '44', '广东省', '4403', '深圳市', '440304', '福田区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440305', '4403', '00,44,4403', '南山区', '44', '广东省', '4403', '深圳市', '440305', '南山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440306', '4403', '00,44,4403', '宝安区', '44', '广东省', '4403', '深圳市', '440306', '宝安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440307', '4403', '00,44,4403', '龙岗区', '44', '广东省', '4403', '深圳市', '440307', '龙岗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440308', '4403', '00,44,4403', '盐田区', '44', '广东省', '4403', '深圳市', '440308', '盐田区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440309', '4403', '00,44,4403', '龙华区', '44', '广东省', '4403', '深圳市', '440309', '龙华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440310', '4403', '00,44,4403', '坪山区', '44', '广东省', '4403', '深圳市', '440310', '坪山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4604', '46', '00,46', '儋州市', '46', '海南省', '4604', '儋州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440311', '4403', '00,44,4403', '光明区', '44', '广东省', '4403', '深圳市', '440311', '光明区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4404', '44', '00,44', '珠海市', '44', '广东省', '4404', '珠海市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440402', '4404', '00,44,4404', '香洲区', '44', '广东省', '4404', '珠海市', '440402', '香洲区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440403', '4404', '00,44,4404', '斗门区', '44', '广东省', '4404', '珠海市', '440403', '斗门区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440404', '4404', '00,44,4404', '金湾区', '44', '广东省', '4404', '珠海市', '440404', '金湾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4405', '44', '00,44', '汕头市', '44', '广东省', '4405', '汕头市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440507', '4405', '00,44,4405', '龙湖区', '44', '广东省', '4405', '汕头市', '440507', '龙湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440511', '4405', '00,44,4405', '金平区', '44', '广东省', '4405', '汕头市', '440511', '金平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440512', '4405', '00,44,4405', '濠江区', '44', '广东省', '4405', '汕头市', '440512', '濠江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440513', '4405', '00,44,4405', '潮阳区', '44', '广东省', '4405', '汕头市', '440513', '潮阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440514', '4405', '00,44,4405', '潮南区', '44', '广东省', '4405', '汕头市', '440514', '潮南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440515', '4405', '00,44,4405', '澄海区', '44', '广东省', '4405', '汕头市', '440515', '澄海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440523', '4405', '00,44,4405', '南澳县', '44', '广东省', '4405', '汕头市', '440523', '南澳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4406', '44', '00,44', '佛山市', '44', '广东省', '4406', '佛山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440604', '4406', '00,44,4406', '禅城区', '44', '广东省', '4406', '佛山市', '440604', '禅城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440605', '4406', '00,44,4406', '南海区', '44', '广东省', '4406', '佛山市', '440605', '南海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440606', '4406', '00,44,4406', '顺德区', '44', '广东省', '4406', '佛山市', '440606', '顺德区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440607', '4406', '00,44,4406', '三水区', '44', '广东省', '4406', '佛山市', '440607', '三水区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440608', '4406', '00,44,4406', '高明区', '44', '广东省', '4406', '佛山市', '440608', '高明区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4407', '44', '00,44', '江门市', '44', '广东省', '4407', '江门市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440703', '4407', '00,44,4407', '蓬江区', '44', '广东省', '4407', '江门市', '440703', '蓬江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440704', '4407', '00,44,4407', '江海区', '44', '广东省', '4407', '江门市', '440704', '江海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440705', '4407', '00,44,4407', '新会区', '44', '广东省', '4407', '江门市', '440705', '新会区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440781', '4407', '00,44,4407', '台山市', '44', '广东省', '4407', '江门市', '440781', '台山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440783', '4407', '00,44,4407', '开平市', '44', '广东省', '4407', '江门市', '440783', '开平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440784', '4407', '00,44,4407', '鹤山市', '44', '广东省', '4407', '江门市', '440784', '鹤山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440785', '4407', '00,44,4407', '恩平市', '44', '广东省', '4407', '江门市', '440785', '恩平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4408', '44', '00,44', '湛江市', '44', '广东省', '4408', '湛江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440802', '4408', '00,44,4408', '赤坎区', '44', '广东省', '4408', '湛江市', '440802', '赤坎区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440803', '4408', '00,44,4408', '霞山区', '44', '广东省', '4408', '湛江市', '440803', '霞山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440804', '4408', '00,44,4408', '坡头区', '44', '广东省', '4408', '湛江市', '440804', '坡头区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440811', '4408', '00,44,4408', '麻章区', '44', '广东省', '4408', '湛江市', '440811', '麻章区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440823', '4408', '00,44,4408', '遂溪县', '44', '广东省', '4408', '湛江市', '440823', '遂溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440825', '4408', '00,44,4408', '徐闻县', '44', '广东省', '4408', '湛江市', '440825', '徐闻县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440881', '4408', '00,44,4408', '廉江市', '44', '广东省', '4408', '湛江市', '440881', '廉江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440882', '4408', '00,44,4408', '雷州市', '44', '广东省', '4408', '湛江市', '440882', '雷州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440883', '4408', '00,44,4408', '吴川市', '44', '广东省', '4408', '湛江市', '440883', '吴川市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4409', '44', '00,44', '茂名市', '44', '广东省', '4409', '茂名市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440902', '4409', '00,44,4409', '茂南区', '44', '广东省', '4409', '茂名市', '440902', '茂南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440904', '4409', '00,44,4409', '电白区', '44', '广东省', '4409', '茂名市', '440904', '电白区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440981', '4409', '00,44,4409', '高州市', '44', '广东省', '4409', '茂名市', '440981', '高州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440982', '4409', '00,44,4409', '化州市', '44', '广东省', '4409', '茂名市', '440982', '化州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440983', '4409', '00,44,4409', '信宜市', '44', '广东省', '4409', '茂名市', '440983', '信宜市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4412', '44', '00,44', '肇庆市', '44', '广东省', '4412', '肇庆市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441202', '4412', '00,44,4412', '端州区', '44', '广东省', '4412', '肇庆市', '441202', '端州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441203', '4412', '00,44,4412', '鼎湖区', '44', '广东省', '4412', '肇庆市', '441203', '鼎湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441204', '4412', '00,44,4412', '高要区', '44', '广东省', '4412', '肇庆市', '441204', '高要区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441223', '4412', '00,44,4412', '广宁县', '44', '广东省', '4412', '肇庆市', '441223', '广宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441224', '4412', '00,44,4412', '怀集县', '44', '广东省', '4412', '肇庆市', '441224', '怀集县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441225', '4412', '00,44,4412', '封开县', '44', '广东省', '4412', '肇庆市', '441225', '封开县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441226', '4412', '00,44,4412', '德庆县', '44', '广东省', '4412', '肇庆市', '441226', '德庆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441284', '4412', '00,44,4412', '四会市', '44', '广东省', '4412', '肇庆市', '441284', '四会市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4413', '44', '00,44', '惠州市', '44', '广东省', '4413', '惠州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441302', '4413', '00,44,4413', '惠城区', '44', '广东省', '4413', '惠州市', '441302', '惠城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441303', '4413', '00,44,4413', '惠阳区', '44', '广东省', '4413', '惠州市', '441303', '惠阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441322', '4413', '00,44,4413', '博罗县', '44', '广东省', '4413', '惠州市', '441322', '博罗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441323', '4413', '00,44,4413', '惠东县', '44', '广东省', '4413', '惠州市', '441323', '惠东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441324', '4413', '00,44,4413', '龙门县', '44', '广东省', '4413', '惠州市', '441324', '龙门县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4414', '44', '00,44', '梅州市', '44', '广东省', '4414', '梅州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441402', '4414', '00,44,4414', '梅江区', '44', '广东省', '4414', '梅州市', '441402', '梅江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441403', '4414', '00,44,4414', '梅县区', '44', '广东省', '4414', '梅州市', '441403', '梅县区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441422', '4414', '00,44,4414', '大埔县', '44', '广东省', '4414', '梅州市', '441422', '大埔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441423', '4414', '00,44,4414', '丰顺县', '44', '广东省', '4414', '梅州市', '441423', '丰顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441424', '4414', '00,44,4414', '五华县', '44', '广东省', '4414', '梅州市', '441424', '五华县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410527', '4105', '00,41,4105', '内黄县', '41', '河南省', '4105', '安阳市', '410527', '内黄县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410581', '4105', '00,41,4105', '林州市', '41', '河南省', '4105', '安阳市', '410581', '林州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4106', '41', '00,41', '鹤壁市', '41', '河南省', '4106', '鹤壁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410602', '4106', '00,41,4106', '鹤山区', '41', '河南省', '4106', '鹤壁市', '410602', '鹤山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411481', '4114', '00,41,4114', '永城市', '41', '河南省', '4114', '商丘市', '411481', '永城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4115', '41', '00,41', '信阳市', '41', '河南省', '4115', '信阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411502', '4115', '00,41,4115', '浉河区', '41', '河南省', '4115', '信阳市', '411502', '浉河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411503', '4115', '00,41,4115', '平桥区', '41', '河南省', '4115', '信阳市', '411503', '平桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340882', '3408', '00,34,3408', '潜山市', '34', '安徽省', '3408', '安庆市', '340882', '潜山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4206', '42', '00,42', '襄阳市', '42', '湖北省', '4206', '襄阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430923', '4309', '00,43,4309', '安化县', '43', '湖南省', '4309', '益阳市', '430923', '安化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430981', '4309', '00,43,4309', '沅江市', '43', '湖南省', '4309', '益阳市', '430981', '沅江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4310', '43', '00,43', '郴州市', '43', '湖南省', '4310', '郴州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431002', '4310', '00,43,4310', '北湖区', '43', '湖南省', '4310', '郴州市', '431002', '北湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431003', '4310', '00,43,4310', '苏仙区', '43', '湖南省', '4310', '郴州市', '431003', '苏仙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431021', '4310', '00,43,4310', '桂阳县', '43', '湖南省', '4310', '郴州市', '431021', '桂阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431022', '4310', '00,43,4310', '宜章县', '43', '湖南省', '4310', '郴州市', '431022', '宜章县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431023', '4310', '00,43,4310', '永兴县', '43', '湖南省', '4310', '郴州市', '431023', '永兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431024', '4310', '00,43,4310', '嘉禾县', '43', '湖南省', '4310', '郴州市', '431024', '嘉禾县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431025', '4310', '00,43,4310', '临武县', '43', '湖南省', '4310', '郴州市', '431025', '临武县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431026', '4310', '00,43,4310', '汝城县', '43', '湖南省', '4310', '郴州市', '431026', '汝城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431027', '4310', '00,43,4310', '桂东县', '43', '湖南省', '4310', '郴州市', '431027', '桂东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431028', '4310', '00,43,4310', '安仁县', '43', '湖南省', '4310', '郴州市', '431028', '安仁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431081', '4310', '00,43,4310', '资兴市', '43', '湖南省', '4310', '郴州市', '431081', '资兴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4311', '43', '00,43', '永州市', '43', '湖南省', '4311', '永州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431102', '4311', '00,43,4311', '零陵区', '43', '湖南省', '4311', '永州市', '431102', '零陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431103', '4311', '00,43,4311', '冷水滩区', '43', '湖南省', '4311', '永州市', '431103', '冷水滩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431121', '4311', '00,43,4311', '祁阳县', '43', '湖南省', '4311', '永州市', '431121', '祁阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431122', '4311', '00,43,4311', '东安县', '43', '湖南省', '4311', '永州市', '431122', '东安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431123', '4311', '00,43,4311', '双牌县', '43', '湖南省', '4311', '永州市', '431123', '双牌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431124', '4311', '00,43,4311', '道县', '43', '湖南省', '4311', '永州市', '431124', '道县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431125', '4311', '00,43,4311', '江永县', '43', '湖南省', '4311', '永州市', '431125', '江永县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431126', '4311', '00,43,4311', '宁远县', '43', '湖南省', '4311', '永州市', '431126', '宁远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431127', '4311', '00,43,4311', '蓝山县', '43', '湖南省', '4311', '永州市', '431127', '蓝山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431128', '4311', '00,43,4311', '新田县', '43', '湖南省', '4311', '永州市', '431128', '新田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431129', '4311', '00,43,4311', '江华瑶族自治县', '43', '湖南省', '4311', '永州市', '431129', '江华瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4312', '43', '00,43', '怀化市', '43', '湖南省', '4312', '怀化市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431202', '4312', '00,43,4312', '鹤城区', '43', '湖南省', '4312', '怀化市', '431202', '鹤城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431221', '4312', '00,43,4312', '中方县', '43', '湖南省', '4312', '怀化市', '431221', '中方县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431222', '4312', '00,43,4312', '沅陵县', '43', '湖南省', '4312', '怀化市', '431222', '沅陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431223', '4312', '00,43,4312', '辰溪县', '43', '湖南省', '4312', '怀化市', '431223', '辰溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431224', '4312', '00,43,4312', '溆浦县', '43', '湖南省', '4312', '怀化市', '431224', '溆浦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431225', '4312', '00,43,4312', '会同县', '43', '湖南省', '4312', '怀化市', '431225', '会同县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431226', '4312', '00,43,4312', '麻阳苗族自治县', '43', '湖南省', '4312', '怀化市', '431226', '麻阳苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431227', '4312', '00,43,4312', '新晃侗族自治县', '43', '湖南省', '4312', '怀化市', '431227', '新晃侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431228', '4312', '00,43,4312', '芷江侗族自治县', '43', '湖南省', '4312', '怀化市', '431228', '芷江侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431229', '4312', '00,43,4312', '靖州苗族侗族自治县', '43', '湖南省', '4312', '怀化市', '431229', '靖州苗族侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431230', '4312', '00,43,4312', '通道侗族自治县', '43', '湖南省', '4312', '怀化市', '431230', '通道侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431281', '4312', '00,43,4312', '洪江市', '43', '湖南省', '4312', '怀化市', '431281', '洪江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4313', '43', '00,43', '娄底市', '43', '湖南省', '4313', '娄底市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431302', '4313', '00,43,4313', '娄星区', '43', '湖南省', '4313', '娄底市', '431302', '娄星区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431321', '4313', '00,43,4313', '双峰县', '43', '湖南省', '4313', '娄底市', '431321', '双峰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431322', '4313', '00,43,4313', '新化县', '43', '湖南省', '4313', '娄底市', '431322', '新化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431381', '4313', '00,43,4313', '冷水江市', '43', '湖南省', '4313', '娄底市', '431381', '冷水江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431382', '4313', '00,43,4313', '涟源市', '43', '湖南省', '4313', '娄底市', '431382', '涟源市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4331', '43', '00,43', '湘西土家族苗族自治州', '43', '湖南省', '4331', '湘西土家族苗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433101', '4331', '00,43,4331', '吉首市', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433101', '吉首市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433122', '4331', '00,43,4331', '泸溪县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433122', '泸溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433123', '4331', '00,43,4331', '凤凰县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433123', '凤凰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433124', '4331', '00,43,4331', '花垣县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433124', '花垣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433125', '4331', '00,43,4331', '保靖县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433125', '保靖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433126', '4331', '00,43,4331', '古丈县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433126', '古丈县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433127', '4331', '00,43,4331', '永顺县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433127', '永顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433130', '4331', '00,43,4331', '龙山县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433130', '龙山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('44', '00', '00', '广东省', '44', '广东省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4401', '44', '00,44', '广州市', '44', '广东省', '4401', '广州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440103', '4401', '00,44,4401', '荔湾区', '44', '广东省', '4401', '广州市', '440103', '荔湾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440104', '4401', '00,44,4401', '越秀区', '44', '广东省', '4401', '广州市', '440104', '越秀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440105', '4401', '00,44,4401', '海珠区', '44', '广东省', '4401', '广州市', '440105', '海珠区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440106', '4401', '00,44,4401', '天河区', '44', '广东省', '4401', '广州市', '440106', '天河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440111', '4401', '00,44,4401', '白云区', '44', '广东省', '4401', '广州市', '440111', '白云区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440112', '4401', '00,44,4401', '黄埔区', '44', '广东省', '4401', '广州市', '440112', '黄埔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440113', '4401', '00,44,4401', '番禺区', '44', '广东省', '4401', '广州市', '440113', '番禺区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440114', '4401', '00,44,4401', '花都区', '44', '广东省', '4401', '广州市', '440114', '花都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440115', '4401', '00,44,4401', '南沙区', '44', '广东省', '4401', '广州市', '440115', '南沙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440117', '4401', '00,44,4401', '从化区', '44', '广东省', '4401', '广州市', '440117', '从化区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440118', '4401', '00,44,4401', '增城区', '44', '广东省', '4401', '广州市', '440118', '增城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4402', '44', '00,44', '韶关市', '44', '广东省', '4402', '韶关市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440203', '4402', '00,44,4402', '武江区', '44', '广东省', '4402', '韶关市', '440203', '武江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440204', '4402', '00,44,4402', '浈江区', '44', '广东省', '4402', '韶关市', '440204', '浈江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440205', '4402', '00,44,4402', '曲江区', '44', '广东省', '4402', '韶关市', '440205', '曲江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440222', '4402', '00,44,4402', '始兴县', '44', '广东省', '4402', '韶关市', '440222', '始兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440224', '4402', '00,44,4402', '仁化县', '44', '广东省', '4402', '韶关市', '440224', '仁化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440229', '4402', '00,44,4402', '翁源县', '44', '广东省', '4402', '韶关市', '440229', '翁源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411425', '4114', '00,41,4114', '虞城县', '41', '河南省', '4114', '商丘市', '411425', '虞城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440233', '4402', '00,44,4402', '新丰县', '44', '广东省', '4402', '韶关市', '440233', '新丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420625', '4206', '00,42,4206', '谷城县', '42', '湖北省', '4206', '襄阳市', '420625', '谷城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420626', '4206', '00,42,4206', '保康县', '42', '湖北省', '4206', '襄阳市', '420626', '保康县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420682', '4206', '00,42,4206', '老河口市', '42', '湖北省', '4206', '襄阳市', '420682', '老河口市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420683', '4206', '00,42,4206', '枣阳市', '42', '湖北省', '4206', '襄阳市', '420683', '枣阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420684', '4206', '00,42,4206', '宜城市', '42', '湖北省', '4206', '襄阳市', '420684', '宜城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4207', '42', '00,42', '鄂州市', '42', '湖北省', '4207', '鄂州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420702', '4207', '00,42,4207', '梁子湖区', '42', '湖北省', '4207', '鄂州市', '420702', '梁子湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420703', '4207', '00,42,4207', '华容区', '42', '湖北省', '4207', '鄂州市', '420703', '华容区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420704', '4207', '00,42,4207', '鄂城区', '42', '湖北省', '4207', '鄂州市', '420704', '鄂城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4208', '42', '00,42', '荆门市', '42', '湖北省', '4208', '荆门市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420802', '4208', '00,42,4208', '东宝区', '42', '湖北省', '4208', '荆门市', '420802', '东宝区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420804', '4208', '00,42,4208', '掇刀区', '42', '湖北省', '4208', '荆门市', '420804', '掇刀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420822', '4208', '00,42,4208', '沙洋县', '42', '湖北省', '4208', '荆门市', '420822', '沙洋县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420881', '4208', '00,42,4208', '钟祥市', '42', '湖北省', '4208', '荆门市', '420881', '钟祥市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420882', '4208', '00,42,4208', '京山市', '42', '湖北省', '4208', '荆门市', '420882', '京山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4209', '42', '00,42', '孝感市', '42', '湖北省', '4209', '孝感市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420902', '4209', '00,42,4209', '孝南区', '42', '湖北省', '4209', '孝感市', '420902', '孝南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420921', '4209', '00,42,4209', '孝昌县', '42', '湖北省', '4209', '孝感市', '420921', '孝昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420922', '4209', '00,42,4209', '大悟县', '42', '湖北省', '4209', '孝感市', '420922', '大悟县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420923', '4209', '00,42,4209', '云梦县', '42', '湖北省', '4209', '孝感市', '420923', '云梦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420981', '4209', '00,42,4209', '应城市', '42', '湖北省', '4209', '孝感市', '420981', '应城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420982', '4209', '00,42,4209', '安陆市', '42', '湖北省', '4209', '孝感市', '420982', '安陆市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420984', '4209', '00,42,4209', '汉川市', '42', '湖北省', '4209', '孝感市', '420984', '汉川市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4210', '42', '00,42', '荆州市', '42', '湖北省', '4210', '荆州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421002', '4210', '00,42,4210', '沙市区', '42', '湖北省', '4210', '荆州市', '421002', '沙市区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421003', '4210', '00,42,4210', '荆州区', '42', '湖北省', '4210', '荆州市', '421003', '荆州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421022', '4210', '00,42,4210', '公安县', '42', '湖北省', '4210', '荆州市', '421022', '公安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421023', '4210', '00,42,4210', '监利县', '42', '湖北省', '4210', '荆州市', '421023', '监利县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421024', '4210', '00,42,4210', '江陵县', '42', '湖北省', '4210', '荆州市', '421024', '江陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421081', '4210', '00,42,4210', '石首市', '42', '湖北省', '4210', '荆州市', '421081', '石首市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421083', '4210', '00,42,4210', '洪湖市', '42', '湖北省', '4210', '荆州市', '421083', '洪湖市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421087', '4210', '00,42,4210', '松滋市', '42', '湖北省', '4210', '荆州市', '421087', '松滋市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4211', '42', '00,42', '黄冈市', '42', '湖北省', '4211', '黄冈市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421102', '4211', '00,42,4211', '黄州区', '42', '湖北省', '4211', '黄冈市', '421102', '黄州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421121', '4211', '00,42,4211', '团风县', '42', '湖北省', '4211', '黄冈市', '421121', '团风县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421122', '4211', '00,42,4211', '红安县', '42', '湖北省', '4211', '黄冈市', '421122', '红安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421123', '4211', '00,42,4211', '罗田县', '42', '湖北省', '4211', '黄冈市', '421123', '罗田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421124', '4211', '00,42,4211', '英山县', '42', '湖北省', '4211', '黄冈市', '421124', '英山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421125', '4211', '00,42,4211', '浠水县', '42', '湖北省', '4211', '黄冈市', '421125', '浠水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421126', '4211', '00,42,4211', '蕲春县', '42', '湖北省', '4211', '黄冈市', '421126', '蕲春县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421127', '4211', '00,42,4211', '黄梅县', '42', '湖北省', '4211', '黄冈市', '421127', '黄梅县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421181', '4211', '00,42,4211', '麻城市', '42', '湖北省', '4211', '黄冈市', '421181', '麻城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421182', '4211', '00,42,4211', '武穴市', '42', '湖北省', '4211', '黄冈市', '421182', '武穴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4212', '42', '00,42', '咸宁市', '42', '湖北省', '4212', '咸宁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421202', '4212', '00,42,4212', '咸安区', '42', '湖北省', '4212', '咸宁市', '421202', '咸安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421221', '4212', '00,42,4212', '嘉鱼县', '42', '湖北省', '4212', '咸宁市', '421221', '嘉鱼县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421222', '4212', '00,42,4212', '通城县', '42', '湖北省', '4212', '咸宁市', '421222', '通城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421223', '4212', '00,42,4212', '崇阳县', '42', '湖北省', '4212', '咸宁市', '421223', '崇阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421224', '4212', '00,42,4212', '通山县', '42', '湖北省', '4212', '咸宁市', '421224', '通山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421281', '4212', '00,42,4212', '赤壁市', '42', '湖北省', '4212', '咸宁市', '421281', '赤壁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4213', '42', '00,42', '随州市', '42', '湖北省', '4213', '随州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421303', '4213', '00,42,4213', '曾都区', '42', '湖北省', '4213', '随州市', '421303', '曾都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421321', '4213', '00,42,4213', '随县', '42', '湖北省', '4213', '随州市', '421321', '随县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421381', '4213', '00,42,4213', '广水市', '42', '湖北省', '4213', '随州市', '421381', '广水市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4228', '42', '00,42', '恩施土家族苗族自治州', '42', '湖北省', '4228', '恩施土家族苗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422801', '4228', '00,42,4228', '恩施市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422801', '恩施市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422802', '4228', '00,42,4228', '利川市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422802', '利川市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422822', '4228', '00,42,4228', '建始县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422822', '建始县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422823', '4228', '00,42,4228', '巴东县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422823', '巴东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422825', '4228', '00,42,4228', '宣恩县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422825', '宣恩县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422826', '4228', '00,42,4228', '咸丰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422826', '咸丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422827', '4228', '00,42,4228', '来凤县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422827', '来凤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422828', '4228', '00,42,4228', '鹤峰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422828', '鹤峰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4290', '42', '00,42', '省直辖县级行政区', '42', '湖北省', '4290', '省直辖县级行政区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('429004', '4290', '00,42,4290', '仙桃市', '42', '湖北省', '4290', '省直辖县级行政区', '429004', '仙桃市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('429005', '4290', '00,42,4290', '潜江市', '42', '湖北省', '4290', '省直辖县级行政区', '429005', '潜江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('429006', '4290', '00,42,4290', '天门市', '42', '湖北省', '4290', '省直辖县级行政区', '429006', '天门市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('429021', '4290', '00,42,4290', '神农架林区', '42', '湖北省', '4290', '省直辖县级行政区', '429021', '神农架林区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('43', '00', '00', '湖南省', '43', '湖南省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4301', '43', '00,43', '长沙市', '43', '湖南省', '4301', '长沙市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430102', '4301', '00,43,4301', '芙蓉区', '43', '湖南省', '4301', '长沙市', '430102', '芙蓉区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430103', '4301', '00,43,4301', '天心区', '43', '湖南省', '4301', '长沙市', '430103', '天心区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430104', '4301', '00,43,4301', '岳麓区', '43', '湖南省', '4301', '长沙市', '430104', '岳麓区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441481', '4414', '00,44,4414', '兴宁市', '44', '广东省', '4414', '梅州市', '441481', '兴宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441502', '4415', '00,44,4415', '城区', '44', '广东省', '4415', '汕尾市', '441502', '城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5117', '51', '00,51', '达州市', '51', '四川省', '5117', '达州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650502', '6505', '00,65,6505', '伊州区', '65', '新疆维吾尔自治区', '6505', '哈密市', '650502', '伊州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513434', '5134', '00,51,5134', '越西县', '51', '四川省', '5134', '凉山彝族自治州', '513434', '越西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451123', '4511', '00,45,4511', '富川瑶族自治县', '45', '广西壮族自治区', '4511', '贺州市', '451123', '富川瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4512', '45', '00,45', '河池市', '45', '广西壮族自治区', '4512', '河池市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451202', '4512', '00,45,4512', '金城江区', '45', '广西壮族自治区', '4512', '河池市', '451202', '金城江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451203', '4512', '00,45,4512', '宜州区', '45', '广西壮族自治区', '4512', '河池市', '451203', '宜州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451221', '4512', '00,45,4512', '南丹县', '45', '广西壮族自治区', '4512', '河池市', '451221', '南丹县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451222', '4512', '00,45,4512', '天峨县', '45', '广西壮族自治区', '4512', '河池市', '451222', '天峨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451223', '4512', '00,45,4512', '凤山县', '45', '广西壮族自治区', '4512', '河池市', '451223', '凤山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451224', '4512', '00,45,4512', '东兰县', '45', '广西壮族自治区', '4512', '河池市', '451224', '东兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451225', '4512', '00,45,4512', '罗城仫佬族自治县', '45', '广西壮族自治区', '4512', '河池市', '451225', '罗城仫佬族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451226', '4512', '00,45,4512', '环江毛南族自治县', '45', '广西壮族自治区', '4512', '河池市', '451226', '环江毛南族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451227', '4512', '00,45,4512', '巴马瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451227', '巴马瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451228', '4512', '00,45,4512', '都安瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451228', '都安瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451229', '4512', '00,45,4512', '大化瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451229', '大化瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4513', '45', '00,45', '来宾市', '45', '广西壮族自治区', '4513', '来宾市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451302', '4513', '00,45,4513', '兴宾区', '45', '广西壮族自治区', '4513', '来宾市', '451302', '兴宾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451321', '4513', '00,45,4513', '忻城县', '45', '广西壮族自治区', '4513', '来宾市', '451321', '忻城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451322', '4513', '00,45,4513', '象州县', '45', '广西壮族自治区', '4513', '来宾市', '451322', '象州县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451323', '4513', '00,45,4513', '武宣县', '45', '广西壮族自治区', '4513', '来宾市', '451323', '武宣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451324', '4513', '00,45,4513', '金秀瑶族自治县', '45', '广西壮族自治区', '4513', '来宾市', '451324', '金秀瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451381', '4513', '00,45,4513', '合山市', '45', '广西壮族自治区', '4513', '来宾市', '451381', '合山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4514', '45', '00,45', '崇左市', '45', '广西壮族自治区', '4514', '崇左市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451402', '4514', '00,45,4514', '江州区', '45', '广西壮族自治区', '4514', '崇左市', '451402', '江州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451421', '4514', '00,45,4514', '扶绥县', '45', '广西壮族自治区', '4514', '崇左市', '451421', '扶绥县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451422', '4514', '00,45,4514', '宁明县', '45', '广西壮族自治区', '4514', '崇左市', '451422', '宁明县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451423', '4514', '00,45,4514', '龙州县', '45', '广西壮族自治区', '4514', '崇左市', '451423', '龙州县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451424', '4514', '00,45,4514', '大新县', '45', '广西壮族自治区', '4514', '崇左市', '451424', '大新县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451425', '4514', '00,45,4514', '天等县', '45', '广西壮族自治区', '4514', '崇左市', '451425', '天等县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451481', '4514', '00,45,4514', '凭祥市', '45', '广西壮族自治区', '4514', '崇左市', '451481', '凭祥市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('46', '00', '00', '海南省', '46', '海南省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4601', '46', '00,46', '海口市', '46', '海南省', '4601', '海口市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460105', '4601', '00,46,4601', '秀英区', '46', '海南省', '4601', '海口市', '460105', '秀英区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460106', '4601', '00,46,4601', '龙华区', '46', '海南省', '4601', '海口市', '460106', '龙华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460107', '4601', '00,46,4601', '琼山区', '46', '海南省', '4601', '海口市', '460107', '琼山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460108', '4601', '00,46,4601', '美兰区', '46', '海南省', '4601', '海口市', '460108', '美兰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4602', '46', '00,46', '三亚市', '46', '海南省', '4602', '三亚市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460202', '4602', '00,46,4602', '海棠区', '46', '海南省', '4602', '三亚市', '460202', '海棠区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460203', '4602', '00,46,4602', '吉阳区', '46', '海南省', '4602', '三亚市', '460203', '吉阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460204', '4602', '00,46,4602', '天涯区', '46', '海南省', '4602', '三亚市', '460204', '天涯区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460205', '4602', '00,46,4602', '崖州区', '46', '海南省', '4602', '三亚市', '460205', '崖州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4603', '46', '00,46', '三沙市', '46', '海南省', '4603', '三沙市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460400', '4604', '00,46,4604', '儋州市', '46', '海南省', '4604', '儋州市', '460400', '儋州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4690', '46', '00,46', '省直辖县级行政区', '46', '海南省', '4690', '省直辖县级行政区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469001', '4690', '00,46,4690', '五指山市', '46', '海南省', '4690', '省直辖县级行政区', '469001', '五指山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469002', '4690', '00,46,4690', '琼海市', '46', '海南省', '4690', '省直辖县级行政区', '469002', '琼海市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469005', '4690', '00,46,4690', '文昌市', '46', '海南省', '4690', '省直辖县级行政区', '469005', '文昌市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469006', '4690', '00,46,4690', '万宁市', '46', '海南省', '4690', '省直辖县级行政区', '469006', '万宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469007', '4690', '00,46,4690', '东方市', '46', '海南省', '4690', '省直辖县级行政区', '469007', '东方市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469021', '4690', '00,46,4690', '定安县', '46', '海南省', '4690', '省直辖县级行政区', '469021', '定安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469022', '4690', '00,46,4690', '屯昌县', '46', '海南省', '4690', '省直辖县级行政区', '469022', '屯昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469023', '4690', '00,46,4690', '澄迈县', '46', '海南省', '4690', '省直辖县级行政区', '469023', '澄迈县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469024', '4690', '00,46,4690', '临高县', '46', '海南省', '4690', '省直辖县级行政区', '469024', '临高县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469025', '4690', '00,46,4690', '白沙黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469025', '白沙黎族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469026', '4690', '00,46,4690', '昌江黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469026', '昌江黎族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469027', '4690', '00,46,4690', '乐东黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469027', '乐东黎族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469028', '4690', '00,46,4690', '陵水黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469028', '陵水黎族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469029', '4690', '00,46,4690', '保亭黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469029', '保亭黎族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469030', '4690', '00,46,4690', '琼中黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469030', '琼中黎族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('50', '00', '00', '重庆市', '50', '重庆市', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5001', '50', '00,50', '重庆市', '50', '重庆市', '5001', '重庆市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500101', '5001', '00,50,5001', '万州区', '50', '重庆市', '5001', '重庆市', '500101', '万州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500102', '5001', '00,50,5001', '涪陵区', '50', '重庆市', '5001', '重庆市', '500102', '涪陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500103', '5001', '00,50,5001', '渝中区', '50', '重庆市', '5001', '重庆市', '500103', '渝中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500104', '5001', '00,50,5001', '大渡口区', '50', '重庆市', '5001', '重庆市', '500104', '大渡口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500105', '5001', '00,50,5001', '江北区', '50', '重庆市', '5001', '重庆市', '500105', '江北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500106', '5001', '00,50,5001', '沙坪坝区', '50', '重庆市', '5001', '重庆市', '500106', '沙坪坝区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500107', '5001', '00,50,5001', '九龙坡区', '50', '重庆市', '5001', '重庆市', '500107', '九龙坡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500108', '5001', '00,50,5001', '南岸区', '50', '重庆市', '5001', '重庆市', '500108', '南岸区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420607', '4206', '00,42,4206', '襄州区', '42', '湖北省', '4206', '襄阳市', '420607', '襄州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420624', '4206', '00,42,4206', '南漳县', '42', '湖北省', '4206', '襄阳市', '420624', '南漳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511724', '5117', '00,51,5117', '大竹县', '51', '四川省', '5117', '达州市', '511724', '大竹县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511725', '5117', '00,51,5117', '渠县', '51', '四川省', '5117', '达州市', '511725', '渠县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511781', '5117', '00,51,5117', '万源市', '51', '四川省', '5117', '达州市', '511781', '万源市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5118', '51', '00,51', '雅安市', '51', '四川省', '5118', '雅安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511802', '5118', '00,51,5118', '雨城区', '51', '四川省', '5118', '雅安市', '511802', '雨城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511803', '5118', '00,51,5118', '名山区', '51', '四川省', '5118', '雅安市', '511803', '名山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511822', '5118', '00,51,5118', '荥经县', '51', '四川省', '5118', '雅安市', '511822', '荥经县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511823', '5118', '00,51,5118', '汉源县', '51', '四川省', '5118', '雅安市', '511823', '汉源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511824', '5118', '00,51,5118', '石棉县', '51', '四川省', '5118', '雅安市', '511824', '石棉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511825', '5118', '00,51,5118', '天全县', '51', '四川省', '5118', '雅安市', '511825', '天全县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511826', '5118', '00,51,5118', '芦山县', '51', '四川省', '5118', '雅安市', '511826', '芦山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511827', '5118', '00,51,5118', '宝兴县', '51', '四川省', '5118', '雅安市', '511827', '宝兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5119', '51', '00,51', '巴中市', '51', '四川省', '5119', '巴中市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511902', '5119', '00,51,5119', '巴州区', '51', '四川省', '5119', '巴中市', '511902', '巴州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511903', '5119', '00,51,5119', '恩阳区', '51', '四川省', '5119', '巴中市', '511903', '恩阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511921', '5119', '00,51,5119', '通江县', '51', '四川省', '5119', '巴中市', '511921', '通江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511922', '5119', '00,51,5119', '南江县', '51', '四川省', '5119', '巴中市', '511922', '南江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511923', '5119', '00,51,5119', '平昌县', '51', '四川省', '5119', '巴中市', '511923', '平昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5120', '51', '00,51', '资阳市', '51', '四川省', '5120', '资阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('512002', '5120', '00,51,5120', '雁江区', '51', '四川省', '5120', '资阳市', '512002', '雁江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('512021', '5120', '00,51,5120', '安岳县', '51', '四川省', '5120', '资阳市', '512021', '安岳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('512022', '5120', '00,51,5120', '乐至县', '51', '四川省', '5120', '资阳市', '512022', '乐至县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5132', '51', '00,51', '阿坝藏族羌族自治州', '51', '四川省', '5132', '阿坝藏族羌族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513201', '5132', '00,51,5132', '马尔康市', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513201', '马尔康市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513221', '5132', '00,51,5132', '汶川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513221', '汶川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513222', '5132', '00,51,5132', '理县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513222', '理县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513223', '5132', '00,51,5132', '茂县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513223', '茂县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513224', '5132', '00,51,5132', '松潘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513224', '松潘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513225', '5132', '00,51,5132', '九寨沟县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513225', '九寨沟县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513226', '5132', '00,51,5132', '金川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513226', '金川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513227', '5132', '00,51,5132', '小金县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513227', '小金县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513228', '5132', '00,51,5132', '黑水县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513228', '黑水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513230', '5132', '00,51,5132', '壤塘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513230', '壤塘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513231', '5132', '00,51,5132', '阿坝县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513231', '阿坝县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513232', '5132', '00,51,5132', '若尔盖县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513232', '若尔盖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513233', '5132', '00,51,5132', '红原县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513233', '红原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5133', '51', '00,51', '甘孜藏族自治州', '51', '四川省', '5133', '甘孜藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513301', '5133', '00,51,5133', '康定市', '51', '四川省', '5133', '甘孜藏族自治州', '513301', '康定市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513322', '5133', '00,51,5133', '泸定县', '51', '四川省', '5133', '甘孜藏族自治州', '513322', '泸定县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513323', '5133', '00,51,5133', '丹巴县', '51', '四川省', '5133', '甘孜藏族自治州', '513323', '丹巴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513324', '5133', '00,51,5133', '九龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513324', '九龙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513325', '5133', '00,51,5133', '雅江县', '51', '四川省', '5133', '甘孜藏族自治州', '513325', '雅江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513326', '5133', '00,51,5133', '道孚县', '51', '四川省', '5133', '甘孜藏族自治州', '513326', '道孚县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513327', '5133', '00,51,5133', '炉霍县', '51', '四川省', '5133', '甘孜藏族自治州', '513327', '炉霍县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513328', '5133', '00,51,5133', '甘孜县', '51', '四川省', '5133', '甘孜藏族自治州', '513328', '甘孜县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513329', '5133', '00,51,5133', '新龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513329', '新龙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513330', '5133', '00,51,5133', '德格县', '51', '四川省', '5133', '甘孜藏族自治州', '513330', '德格县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513331', '5133', '00,51,5133', '白玉县', '51', '四川省', '5133', '甘孜藏族自治州', '513331', '白玉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513332', '5133', '00,51,5133', '石渠县', '51', '四川省', '5133', '甘孜藏族自治州', '513332', '石渠县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513333', '5133', '00,51,5133', '色达县', '51', '四川省', '5133', '甘孜藏族自治州', '513333', '色达县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513334', '5133', '00,51,5133', '理塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513334', '理塘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513335', '5133', '00,51,5133', '巴塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513335', '巴塘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513336', '5133', '00,51,5133', '乡城县', '51', '四川省', '5133', '甘孜藏族自治州', '513336', '乡城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513337', '5133', '00,51,5133', '稻城县', '51', '四川省', '5133', '甘孜藏族自治州', '513337', '稻城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513338', '5133', '00,51,5133', '得荣县', '51', '四川省', '5133', '甘孜藏族自治州', '513338', '得荣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5134', '51', '00,51', '凉山彝族自治州', '51', '四川省', '5134', '凉山彝族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513401', '5134', '00,51,5134', '西昌市', '51', '四川省', '5134', '凉山彝族自治州', '513401', '西昌市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513422', '5134', '00,51,5134', '木里藏族自治县', '51', '四川省', '5134', '凉山彝族自治州', '513422', '木里藏族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513423', '5134', '00,51,5134', '盐源县', '51', '四川省', '5134', '凉山彝族自治州', '513423', '盐源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513424', '5134', '00,51,5134', '德昌县', '51', '四川省', '5134', '凉山彝族自治州', '513424', '德昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513425', '5134', '00,51,5134', '会理县', '51', '四川省', '5134', '凉山彝族自治州', '513425', '会理县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513426', '5134', '00,51,5134', '会东县', '51', '四川省', '5134', '凉山彝族自治州', '513426', '会东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513427', '5134', '00,51,5134', '宁南县', '51', '四川省', '5134', '凉山彝族自治州', '513427', '宁南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513428', '5134', '00,51,5134', '普格县', '51', '四川省', '5134', '凉山彝族自治州', '513428', '普格县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513429', '5134', '00,51,5134', '布拖县', '51', '四川省', '5134', '凉山彝族自治州', '513429', '布拖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513430', '5134', '00,51,5134', '金阳县', '51', '四川省', '5134', '凉山彝族自治州', '513430', '金阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513431', '5134', '00,51,5134', '昭觉县', '51', '四川省', '5134', '凉山彝族自治州', '513431', '昭觉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513432', '5134', '00,51,5134', '喜德县', '51', '四川省', '5134', '凉山彝族自治州', '513432', '喜德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513433', '5134', '00,51,5134', '冕宁县', '51', '四川省', '5134', '凉山彝族自治州', '513433', '冕宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410603', '4106', '00,41,4106', '山城区', '41', '河南省', '4106', '鹤壁市', '410603', '山城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500112', '5001', '00,50,5001', '渝北区', '50', '重庆市', '5001', '重庆市', '500112', '渝北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500113', '5001', '00,50,5001', '巴南区', '50', '重庆市', '5001', '重庆市', '500113', '巴南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500114', '5001', '00,50,5001', '黔江区', '50', '重庆市', '5001', '重庆市', '500114', '黔江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500115', '5001', '00,50,5001', '长寿区', '50', '重庆市', '5001', '重庆市', '500115', '长寿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500116', '5001', '00,50,5001', '江津区', '50', '重庆市', '5001', '重庆市', '500116', '江津区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500117', '5001', '00,50,5001', '合川区', '50', '重庆市', '5001', '重庆市', '500117', '合川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500118', '5001', '00,50,5001', '永川区', '50', '重庆市', '5001', '重庆市', '500118', '永川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500119', '5001', '00,50,5001', '南川区', '50', '重庆市', '5001', '重庆市', '500119', '南川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500120', '5001', '00,50,5001', '璧山区', '50', '重庆市', '5001', '重庆市', '500120', '璧山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500151', '5001', '00,50,5001', '铜梁区', '50', '重庆市', '5001', '重庆市', '500151', '铜梁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500152', '5001', '00,50,5001', '潼南区', '50', '重庆市', '5001', '重庆市', '500152', '潼南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500153', '5001', '00,50,5001', '荣昌区', '50', '重庆市', '5001', '重庆市', '500153', '荣昌区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500154', '5001', '00,50,5001', '开州区', '50', '重庆市', '5001', '重庆市', '500154', '开州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500155', '5001', '00,50,5001', '梁平区', '50', '重庆市', '5001', '重庆市', '500155', '梁平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500156', '5001', '00,50,5001', '武隆区', '50', '重庆市', '5001', '重庆市', '500156', '武隆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5002', '50', '00,50', '重庆市', '50', '重庆市', '5002', '重庆市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500229', '5002', '00,50,5002', '城口县', '50', '重庆市', '5002', '重庆市', '500229', '城口县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500230', '5002', '00,50,5002', '丰都县', '50', '重庆市', '5002', '重庆市', '500230', '丰都县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500231', '5002', '00,50,5002', '垫江县', '50', '重庆市', '5002', '重庆市', '500231', '垫江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500233', '5002', '00,50,5002', '忠县', '50', '重庆市', '5002', '重庆市', '500233', '忠县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500235', '5002', '00,50,5002', '云阳县', '50', '重庆市', '5002', '重庆市', '500235', '云阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500236', '5002', '00,50,5002', '奉节县', '50', '重庆市', '5002', '重庆市', '500236', '奉节县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500237', '5002', '00,50,5002', '巫山县', '50', '重庆市', '5002', '重庆市', '500237', '巫山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500238', '5002', '00,50,5002', '巫溪县', '50', '重庆市', '5002', '重庆市', '500238', '巫溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500240', '5002', '00,50,5002', '石柱土家族自治县', '50', '重庆市', '5002', '重庆市', '500240', '石柱土家族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500241', '5002', '00,50,5002', '秀山土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500241', '秀山土家族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500242', '5002', '00,50,5002', '酉阳土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500242', '酉阳土家族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500243', '5002', '00,50,5002', '彭水苗族土家族自治县', '50', '重庆市', '5002', '重庆市', '500243', '彭水苗族土家族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('51', '00', '00', '四川省', '51', '四川省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5101', '51', '00,51', '成都市', '51', '四川省', '5101', '成都市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510104', '5101', '00,51,5101', '锦江区', '51', '四川省', '5101', '成都市', '510104', '锦江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510105', '5101', '00,51,5101', '青羊区', '51', '四川省', '5101', '成都市', '510105', '青羊区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510106', '5101', '00,51,5101', '金牛区', '51', '四川省', '5101', '成都市', '510106', '金牛区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510107', '5101', '00,51,5101', '武侯区', '51', '四川省', '5101', '成都市', '510107', '武侯区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510108', '5101', '00,51,5101', '成华区', '51', '四川省', '5101', '成都市', '510108', '成华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510112', '5101', '00,51,5101', '龙泉驿区', '51', '四川省', '5101', '成都市', '510112', '龙泉驿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510113', '5101', '00,51,5101', '青白江区', '51', '四川省', '5101', '成都市', '510113', '青白江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510114', '5101', '00,51,5101', '新都区', '51', '四川省', '5101', '成都市', '510114', '新都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510115', '5101', '00,51,5101', '温江区', '51', '四川省', '5101', '成都市', '510115', '温江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510116', '5101', '00,51,5101', '双流区', '51', '四川省', '5101', '成都市', '510116', '双流区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510117', '5101', '00,51,5101', '郫都区', '51', '四川省', '5101', '成都市', '510117', '郫都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510121', '5101', '00,51,5101', '金堂县', '51', '四川省', '5101', '成都市', '510121', '金堂县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510129', '5101', '00,51,5101', '大邑县', '51', '四川省', '5101', '成都市', '510129', '大邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510131', '5101', '00,51,5101', '蒲江县', '51', '四川省', '5101', '成都市', '510131', '蒲江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510132', '5101', '00,51,5101', '新津县', '51', '四川省', '5101', '成都市', '510132', '新津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510181', '5101', '00,51,5101', '都江堰市', '51', '四川省', '5101', '成都市', '510181', '都江堰市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510182', '5101', '00,51,5101', '彭州市', '51', '四川省', '5101', '成都市', '510182', '彭州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510183', '5101', '00,51,5101', '邛崃市', '51', '四川省', '5101', '成都市', '510183', '邛崃市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510184', '5101', '00,51,5101', '崇州市', '51', '四川省', '5101', '成都市', '510184', '崇州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510185', '5101', '00,51,5101', '简阳市', '51', '四川省', '5101', '成都市', '510185', '简阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5103', '51', '00,51', '自贡市', '51', '四川省', '5103', '自贡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510302', '5103', '00,51,5103', '自流井区', '51', '四川省', '5103', '自贡市', '510302', '自流井区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510303', '5103', '00,51,5103', '贡井区', '51', '四川省', '5103', '自贡市', '510303', '贡井区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510304', '5103', '00,51,5103', '大安区', '51', '四川省', '5103', '自贡市', '510304', '大安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510311', '5103', '00,51,5103', '沿滩区', '51', '四川省', '5103', '自贡市', '510311', '沿滩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510321', '5103', '00,51,5103', '荣县', '51', '四川省', '5103', '自贡市', '510321', '荣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510322', '5103', '00,51,5103', '富顺县', '51', '四川省', '5103', '自贡市', '510322', '富顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5104', '51', '00,51', '攀枝花市', '51', '四川省', '5104', '攀枝花市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510402', '5104', '00,51,5104', '东区', '51', '四川省', '5104', '攀枝花市', '510402', '东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510403', '5104', '00,51,5104', '西区', '51', '四川省', '5104', '攀枝花市', '510403', '西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510411', '5104', '00,51,5104', '仁和区', '51', '四川省', '5104', '攀枝花市', '510411', '仁和区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510421', '5104', '00,51,5104', '米易县', '51', '四川省', '5104', '攀枝花市', '510421', '米易县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510422', '5104', '00,51,5104', '盐边县', '51', '四川省', '5104', '攀枝花市', '510422', '盐边县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5105', '51', '00,51', '泸州市', '51', '四川省', '5105', '泸州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510502', '5105', '00,51,5105', '江阳区', '51', '四川省', '5105', '泸州市', '510502', '江阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510503', '5105', '00,51,5105', '纳溪区', '51', '四川省', '5105', '泸州市', '510503', '纳溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510504', '5105', '00,51,5105', '龙马潭区', '51', '四川省', '5105', '泸州市', '510504', '龙马潭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510521', '5105', '00,51,5105', '泸县', '51', '四川省', '5105', '泸州市', '510521', '泸县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510522', '5105', '00,51,5105', '合江县', '51', '四川省', '5105', '泸州市', '510522', '合江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510524', '5105', '00,51,5105', '叙永县', '51', '四川省', '5105', '泸州市', '510524', '叙永县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510525', '5105', '00,51,5105', '古蔺县', '51', '四川省', '5105', '泸州市', '510525', '古蔺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5106', '51', '00,51', '德阳市', '51', '四川省', '5106', '德阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510603', '5106', '00,51,5106', '旌阳区', '51', '四川省', '5106', '德阳市', '510603', '旌阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510604', '5106', '00,51,5106', '罗江区', '51', '四川省', '5106', '德阳市', '510604', '罗江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510623', '5106', '00,51,5106', '中江县', '51', '四川省', '5106', '德阳市', '510623', '中江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510681', '5106', '00,51,5106', '广汉市', '51', '四川省', '5106', '德阳市', '510681', '广汉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510682', '5106', '00,51,5106', '什邡市', '51', '四川省', '5106', '德阳市', '510682', '什邡市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510683', '5106', '00,51,5106', '绵竹市', '51', '四川省', '5106', '德阳市', '510683', '绵竹市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5107', '51', '00,51', '绵阳市', '51', '四川省', '5107', '绵阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513435', '5134', '00,51,5134', '甘洛县', '51', '四川省', '5134', '凉山彝族自治州', '513435', '甘洛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513436', '5134', '00,51,5134', '美姑县', '51', '四川省', '5134', '凉山彝族自治州', '513436', '美姑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513437', '5134', '00,51,5134', '雷波县', '51', '四川省', '5134', '凉山彝族自治州', '513437', '雷波县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('52', '00', '00', '贵州省', '52', '贵州省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5201', '52', '00,52', '贵阳市', '52', '贵州省', '5201', '贵阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520102', '5201', '00,52,5201', '南明区', '52', '贵州省', '5201', '贵阳市', '520102', '南明区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520103', '5201', '00,52,5201', '云岩区', '52', '贵州省', '5201', '贵阳市', '520103', '云岩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520111', '5201', '00,52,5201', '花溪区', '52', '贵州省', '5201', '贵阳市', '520111', '花溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520112', '5201', '00,52,5201', '乌当区', '52', '贵州省', '5201', '贵阳市', '520112', '乌当区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520113', '5201', '00,52,5201', '白云区', '52', '贵州省', '5201', '贵阳市', '520113', '白云区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520115', '5201', '00,52,5201', '观山湖区', '52', '贵州省', '5201', '贵阳市', '520115', '观山湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520121', '5201', '00,52,5201', '开阳县', '52', '贵州省', '5201', '贵阳市', '520121', '开阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520122', '5201', '00,52,5201', '息烽县', '52', '贵州省', '5201', '贵阳市', '520122', '息烽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520123', '5201', '00,52,5201', '修文县', '52', '贵州省', '5201', '贵阳市', '520123', '修文县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520181', '5201', '00,52,5201', '清镇市', '52', '贵州省', '5201', '贵阳市', '520181', '清镇市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5202', '52', '00,52', '六盘水市', '52', '贵州省', '5202', '六盘水市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520201', '5202', '00,52,5202', '钟山区', '52', '贵州省', '5202', '六盘水市', '520201', '钟山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520203', '5202', '00,52,5202', '六枝特区', '52', '贵州省', '5202', '六盘水市', '520203', '六枝特区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520221', '5202', '00,52,5202', '水城县', '52', '贵州省', '5202', '六盘水市', '520221', '水城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520281', '5202', '00,52,5202', '盘州市', '52', '贵州省', '5202', '六盘水市', '520281', '盘州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5203', '52', '00,52', '遵义市', '52', '贵州省', '5203', '遵义市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520302', '5203', '00,52,5203', '红花岗区', '52', '贵州省', '5203', '遵义市', '520302', '红花岗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520303', '5203', '00,52,5203', '汇川区', '52', '贵州省', '5203', '遵义市', '520303', '汇川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520304', '5203', '00,52,5203', '播州区', '52', '贵州省', '5203', '遵义市', '520304', '播州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520322', '5203', '00,52,5203', '桐梓县', '52', '贵州省', '5203', '遵义市', '520322', '桐梓县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520323', '5203', '00,52,5203', '绥阳县', '52', '贵州省', '5203', '遵义市', '520323', '绥阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520324', '5203', '00,52,5203', '正安县', '52', '贵州省', '5203', '遵义市', '520324', '正安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520325', '5203', '00,52,5203', '道真仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520325', '道真仡佬族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520326', '5203', '00,52,5203', '务川仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520326', '务川仡佬族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520327', '5203', '00,52,5203', '凤冈县', '52', '贵州省', '5203', '遵义市', '520327', '凤冈县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520328', '5203', '00,52,5203', '湄潭县', '52', '贵州省', '5203', '遵义市', '520328', '湄潭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520329', '5203', '00,52,5203', '余庆县', '52', '贵州省', '5203', '遵义市', '520329', '余庆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520330', '5203', '00,52,5203', '习水县', '52', '贵州省', '5203', '遵义市', '520330', '习水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520381', '5203', '00,52,5203', '赤水市', '52', '贵州省', '5203', '遵义市', '520381', '赤水市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520382', '5203', '00,52,5203', '仁怀市', '52', '贵州省', '5203', '遵义市', '520382', '仁怀市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5204', '52', '00,52', '安顺市', '52', '贵州省', '5204', '安顺市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520402', '5204', '00,52,5204', '西秀区', '52', '贵州省', '5204', '安顺市', '520402', '西秀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520403', '5204', '00,52,5204', '平坝区', '52', '贵州省', '5204', '安顺市', '520403', '平坝区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520422', '5204', '00,52,5204', '普定县', '52', '贵州省', '5204', '安顺市', '520422', '普定县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520423', '5204', '00,52,5204', '镇宁布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520423', '镇宁布依族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520424', '5204', '00,52,5204', '关岭布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520424', '关岭布依族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520425', '5204', '00,52,5204', '紫云苗族布依族自治县', '52', '贵州省', '5204', '安顺市', '520425', '紫云苗族布依族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5205', '52', '00,52', '毕节市', '52', '贵州省', '5205', '毕节市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520502', '5205', '00,52,5205', '七星关区', '52', '贵州省', '5205', '毕节市', '520502', '七星关区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520521', '5205', '00,52,5205', '大方县', '52', '贵州省', '5205', '毕节市', '520521', '大方县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520522', '5205', '00,52,5205', '黔西县', '52', '贵州省', '5205', '毕节市', '520522', '黔西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520523', '5205', '00,52,5205', '金沙县', '52', '贵州省', '5205', '毕节市', '520523', '金沙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520524', '5205', '00,52,5205', '织金县', '52', '贵州省', '5205', '毕节市', '520524', '织金县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520525', '5205', '00,52,5205', '纳雍县', '52', '贵州省', '5205', '毕节市', '520525', '纳雍县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520526', '5205', '00,52,5205', '威宁彝族回族苗族自治县', '52', '贵州省', '5205', '毕节市', '520526', '威宁彝族回族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520527', '5205', '00,52,5205', '赫章县', '52', '贵州省', '5205', '毕节市', '520527', '赫章县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5206', '52', '00,52', '铜仁市', '52', '贵州省', '5206', '铜仁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520602', '5206', '00,52,5206', '碧江区', '52', '贵州省', '5206', '铜仁市', '520602', '碧江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520603', '5206', '00,52,5206', '万山区', '52', '贵州省', '5206', '铜仁市', '520603', '万山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520621', '5206', '00,52,5206', '江口县', '52', '贵州省', '5206', '铜仁市', '520621', '江口县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520622', '5206', '00,52,5206', '玉屏侗族自治县', '52', '贵州省', '5206', '铜仁市', '520622', '玉屏侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520623', '5206', '00,52,5206', '石阡县', '52', '贵州省', '5206', '铜仁市', '520623', '石阡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520624', '5206', '00,52,5206', '思南县', '52', '贵州省', '5206', '铜仁市', '520624', '思南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520625', '5206', '00,52,5206', '印江土家族苗族自治县', '52', '贵州省', '5206', '铜仁市', '520625', '印江土家族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520626', '5206', '00,52,5206', '德江县', '52', '贵州省', '5206', '铜仁市', '520626', '德江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520627', '5206', '00,52,5206', '沿河土家族自治县', '52', '贵州省', '5206', '铜仁市', '520627', '沿河土家族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520628', '5206', '00,52,5206', '松桃苗族自治县', '52', '贵州省', '5206', '铜仁市', '520628', '松桃苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5223', '52', '00,52', '黔西南布依族苗族自治州', '52', '贵州省', '5223', '黔西南布依族苗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522301', '5223', '00,52,5223', '兴义市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522301', '兴义市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522302', '5223', '00,52,5223', '兴仁市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522302', '兴仁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522323', '5223', '00,52,5223', '普安县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522323', '普安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522324', '5223', '00,52,5223', '晴隆县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522324', '晴隆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522325', '5223', '00,52,5223', '贞丰县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522325', '贞丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522326', '5223', '00,52,5223', '望谟县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522326', '望谟县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540235', '5402', '00,54,5402', '聂拉木县', '54', '西藏自治区', '5402', '日喀则市', '540235', '聂拉木县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610729', '6107', '00,61,6107', '留坝县', '61', '陕西省', '6107', '汉中市', '610729', '留坝县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610730', '6107', '00,61,6107', '佛坪县', '61', '陕西省', '6107', '汉中市', '610730', '佛坪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632223', '6322', '00,63,6322', '海晏县', '63', '青海省', '6322', '海北藏族自治州', '632223', '海晏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522601', '5226', '00,52,5226', '凯里市', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522601', '凯里市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522622', '5226', '00,52,5226', '黄平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522622', '黄平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522623', '5226', '00,52,5226', '施秉县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522623', '施秉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522624', '5226', '00,52,5226', '三穗县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522624', '三穗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522625', '5226', '00,52,5226', '镇远县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522625', '镇远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522626', '5226', '00,52,5226', '岑巩县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522626', '岑巩县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522627', '5226', '00,52,5226', '天柱县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522627', '天柱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522628', '5226', '00,52,5226', '锦屏县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522628', '锦屏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522629', '5226', '00,52,5226', '剑河县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522629', '剑河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522630', '5226', '00,52,5226', '台江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522630', '台江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522631', '5226', '00,52,5226', '黎平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522631', '黎平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522632', '5226', '00,52,5226', '榕江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522632', '榕江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522633', '5226', '00,52,5226', '从江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522633', '从江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522634', '5226', '00,52,5226', '雷山县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522634', '雷山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522635', '5226', '00,52,5226', '麻江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522635', '麻江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522636', '5226', '00,52,5226', '丹寨县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522636', '丹寨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5227', '52', '00,52', '黔南布依族苗族自治州', '52', '贵州省', '5227', '黔南布依族苗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522701', '5227', '00,52,5227', '都匀市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522701', '都匀市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522702', '5227', '00,52,5227', '福泉市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522702', '福泉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522722', '5227', '00,52,5227', '荔波县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522722', '荔波县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522723', '5227', '00,52,5227', '贵定县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522723', '贵定县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522725', '5227', '00,52,5227', '瓮安县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522725', '瓮安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522726', '5227', '00,52,5227', '独山县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522726', '独山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522727', '5227', '00,52,5227', '平塘县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522727', '平塘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522728', '5227', '00,52,5227', '罗甸县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522728', '罗甸县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522729', '5227', '00,52,5227', '长顺县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522729', '长顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522730', '5227', '00,52,5227', '龙里县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522730', '龙里县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522731', '5227', '00,52,5227', '惠水县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522731', '惠水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522732', '5227', '00,52,5227', '三都水族自治县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522732', '三都水族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('53', '00', '00', '云南省', '53', '云南省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5301', '53', '00,53', '昆明市', '53', '云南省', '5301', '昆明市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530102', '5301', '00,53,5301', '五华区', '53', '云南省', '5301', '昆明市', '530102', '五华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530103', '5301', '00,53,5301', '盘龙区', '53', '云南省', '5301', '昆明市', '530103', '盘龙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530111', '5301', '00,53,5301', '官渡区', '53', '云南省', '5301', '昆明市', '530111', '官渡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530112', '5301', '00,53,5301', '西山区', '53', '云南省', '5301', '昆明市', '530112', '西山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530113', '5301', '00,53,5301', '东川区', '53', '云南省', '5301', '昆明市', '530113', '东川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530114', '5301', '00,53,5301', '呈贡区', '53', '云南省', '5301', '昆明市', '530114', '呈贡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530115', '5301', '00,53,5301', '晋宁区', '53', '云南省', '5301', '昆明市', '530115', '晋宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530124', '5301', '00,53,5301', '富民县', '53', '云南省', '5301', '昆明市', '530124', '富民县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530125', '5301', '00,53,5301', '宜良县', '53', '云南省', '5301', '昆明市', '530125', '宜良县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530126', '5301', '00,53,5301', '石林彝族自治县', '53', '云南省', '5301', '昆明市', '530126', '石林彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530127', '5301', '00,53,5301', '嵩明县', '53', '云南省', '5301', '昆明市', '530127', '嵩明县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530128', '5301', '00,53,5301', '禄劝彝族苗族自治县', '53', '云南省', '5301', '昆明市', '530128', '禄劝彝族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530129', '5301', '00,53,5301', '寻甸回族彝族自治县', '53', '云南省', '5301', '昆明市', '530129', '寻甸回族彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530181', '5301', '00,53,5301', '安宁市', '53', '云南省', '5301', '昆明市', '530181', '安宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5303', '53', '00,53', '曲靖市', '53', '云南省', '5303', '曲靖市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530302', '5303', '00,53,5303', '麒麟区', '53', '云南省', '5303', '曲靖市', '530302', '麒麟区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530303', '5303', '00,53,5303', '沾益区', '53', '云南省', '5303', '曲靖市', '530303', '沾益区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530304', '5303', '00,53,5303', '马龙区', '53', '云南省', '5303', '曲靖市', '530304', '马龙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530322', '5303', '00,53,5303', '陆良县', '53', '云南省', '5303', '曲靖市', '530322', '陆良县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530323', '5303', '00,53,5303', '师宗县', '53', '云南省', '5303', '曲靖市', '530323', '师宗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530324', '5303', '00,53,5303', '罗平县', '53', '云南省', '5303', '曲靖市', '530324', '罗平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530325', '5303', '00,53,5303', '富源县', '53', '云南省', '5303', '曲靖市', '530325', '富源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530326', '5303', '00,53,5303', '会泽县', '53', '云南省', '5303', '曲靖市', '530326', '会泽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530381', '5303', '00,53,5303', '宣威市', '53', '云南省', '5303', '曲靖市', '530381', '宣威市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5304', '53', '00,53', '玉溪市', '53', '云南省', '5304', '玉溪市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530402', '5304', '00,53,5304', '红塔区', '53', '云南省', '5304', '玉溪市', '530402', '红塔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530403', '5304', '00,53,5304', '江川区', '53', '云南省', '5304', '玉溪市', '530403', '江川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530423', '5304', '00,53,5304', '通海县', '53', '云南省', '5304', '玉溪市', '530423', '通海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530424', '5304', '00,53,5304', '华宁县', '53', '云南省', '5304', '玉溪市', '530424', '华宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530425', '5304', '00,53,5304', '易门县', '53', '云南省', '5304', '玉溪市', '530425', '易门县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530426', '5304', '00,53,5304', '峨山彝族自治县', '53', '云南省', '5304', '玉溪市', '530426', '峨山彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530427', '5304', '00,53,5304', '新平彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530427', '新平彝族傣族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530428', '5304', '00,53,5304', '元江哈尼族彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530428', '元江哈尼族彝族傣族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530481', '5304', '00,53,5304', '澄江市', '53', '云南省', '5304', '玉溪市', '530481', '澄江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5305', '53', '00,53', '保山市', '53', '云南省', '5305', '保山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530502', '5305', '00,53,5305', '隆阳区', '53', '云南省', '5305', '保山市', '530502', '隆阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530521', '5305', '00,53,5305', '施甸县', '53', '云南省', '5305', '保山市', '530521', '施甸县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530523', '5305', '00,53,5305', '龙陵县', '53', '云南省', '5305', '保山市', '530523', '龙陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530524', '5305', '00,53,5305', '昌宁县', '53', '云南省', '5305', '保山市', '530524', '昌宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530581', '5305', '00,53,5305', '腾冲市', '53', '云南省', '5305', '保山市', '530581', '腾冲市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5306', '53', '00,53', '昭通市', '53', '云南省', '5306', '昭通市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530602', '5306', '00,53,5306', '昭阳区', '53', '云南省', '5306', '昭通市', '530602', '昭阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530621', '5306', '00,53,5306', '鲁甸县', '53', '云南省', '5306', '昭通市', '530621', '鲁甸县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530622', '5306', '00,53,5306', '巧家县', '53', '云南省', '5306', '昭通市', '530622', '巧家县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530623', '5306', '00,53,5306', '盐津县', '53', '云南省', '5306', '昭通市', '530623', '盐津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530624', '5306', '00,53,5306', '大关县', '53', '云南省', '5306', '昭通市', '530624', '大关县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530625', '5306', '00,53,5306', '永善县', '53', '云南省', '5306', '昭通市', '530625', '永善县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530626', '5306', '00,53,5306', '绥江县', '53', '云南省', '5306', '昭通市', '530626', '绥江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530627', '5306', '00,53,5306', '镇雄县', '53', '云南省', '5306', '昭通市', '530627', '镇雄县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530628', '5306', '00,53,5306', '彝良县', '53', '云南省', '5306', '昭通市', '530628', '彝良县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530629', '5306', '00,53,5306', '威信县', '53', '云南省', '5306', '昭通市', '530629', '威信县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530681', '5306', '00,53,5306', '水富市', '53', '云南省', '5306', '昭通市', '530681', '水富市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5307', '53', '00,53', '丽江市', '53', '云南省', '5307', '丽江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530702', '5307', '00,53,5307', '古城区', '53', '云南省', '5307', '丽江市', '530702', '古城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530721', '5307', '00,53,5307', '玉龙纳西族自治县', '53', '云南省', '5307', '丽江市', '530721', '玉龙纳西族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530722', '5307', '00,53,5307', '永胜县', '53', '云南省', '5307', '丽江市', '530722', '永胜县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530723', '5307', '00,53,5307', '华坪县', '53', '云南省', '5307', '丽江市', '530723', '华坪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530724', '5307', '00,53,5307', '宁蒗彝族自治县', '53', '云南省', '5307', '丽江市', '530724', '宁蒗彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5308', '53', '00,53', '普洱市', '53', '云南省', '5308', '普洱市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530802', '5308', '00,53,5308', '思茅区', '53', '云南省', '5308', '普洱市', '530802', '思茅区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530821', '5308', '00,53,5308', '宁洱哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530821', '宁洱哈尼族彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530822', '5308', '00,53,5308', '墨江哈尼族自治县', '53', '云南省', '5308', '普洱市', '530822', '墨江哈尼族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530823', '5308', '00,53,5308', '景东彝族自治县', '53', '云南省', '5308', '普洱市', '530823', '景东彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530824', '5308', '00,53,5308', '景谷傣族彝族自治县', '53', '云南省', '5308', '普洱市', '530824', '景谷傣族彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530825', '5308', '00,53,5308', '镇沅彝族哈尼族拉祜族自治县', '53', '云南省', '5308', '普洱市', '530825', '镇沅彝族哈尼族拉祜族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530826', '5308', '00,53,5308', '江城哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530826', '江城哈尼族彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530827', '5308', '00,53,5308', '孟连傣族拉祜族佤族自治县', '53', '云南省', '5308', '普洱市', '530827', '孟连傣族拉祜族佤族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530828', '5308', '00,53,5308', '澜沧拉祜族自治县', '53', '云南省', '5308', '普洱市', '530828', '澜沧拉祜族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530829', '5308', '00,53,5308', '西盟佤族自治县', '53', '云南省', '5308', '普洱市', '530829', '西盟佤族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5309', '53', '00,53', '临沧市', '53', '云南省', '5309', '临沧市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530902', '5309', '00,53,5309', '临翔区', '53', '云南省', '5309', '临沧市', '530902', '临翔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530921', '5309', '00,53,5309', '凤庆县', '53', '云南省', '5309', '临沧市', '530921', '凤庆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530922', '5309', '00,53,5309', '云县', '53', '云南省', '5309', '临沧市', '530922', '云县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530923', '5309', '00,53,5309', '永德县', '53', '云南省', '5309', '临沧市', '530923', '永德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530924', '5309', '00,53,5309', '镇康县', '53', '云南省', '5309', '临沧市', '530924', '镇康县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530925', '5309', '00,53,5309', '双江拉祜族佤族布朗族傣族自治县', '53', '云南省', '5309', '临沧市', '530925', '双江拉祜族佤族布朗族傣族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530926', '5309', '00,53,5309', '耿马傣族佤族自治县', '53', '云南省', '5309', '临沧市', '530926', '耿马傣族佤族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530927', '5309', '00,53,5309', '沧源佤族自治县', '53', '云南省', '5309', '临沧市', '530927', '沧源佤族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5323', '53', '00,53', '楚雄彝族自治州', '53', '云南省', '5323', '楚雄彝族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532301', '5323', '00,53,5323', '楚雄市', '53', '云南省', '5323', '楚雄彝族自治州', '532301', '楚雄市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532322', '5323', '00,53,5323', '双柏县', '53', '云南省', '5323', '楚雄彝族自治州', '532322', '双柏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532323', '5323', '00,53,5323', '牟定县', '53', '云南省', '5323', '楚雄彝族自治州', '532323', '牟定县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532324', '5323', '00,53,5323', '南华县', '53', '云南省', '5323', '楚雄彝族自治州', '532324', '南华县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532325', '5323', '00,53,5323', '姚安县', '53', '云南省', '5323', '楚雄彝族自治州', '532325', '姚安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532326', '5323', '00,53,5323', '大姚县', '53', '云南省', '5323', '楚雄彝族自治州', '532326', '大姚县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532327', '5323', '00,53,5323', '永仁县', '53', '云南省', '5323', '楚雄彝族自治州', '532327', '永仁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532328', '5323', '00,53,5323', '元谋县', '53', '云南省', '5323', '楚雄彝族自治州', '532328', '元谋县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532329', '5323', '00,53,5323', '武定县', '53', '云南省', '5323', '楚雄彝族自治州', '532329', '武定县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532331', '5323', '00,53,5323', '禄丰县', '53', '云南省', '5323', '楚雄彝族自治州', '532331', '禄丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5325', '53', '00,53', '红河哈尼族彝族自治州', '53', '云南省', '5325', '红河哈尼族彝族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532501', '5325', '00,53,5325', '个旧市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532501', '个旧市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532502', '5325', '00,53,5325', '开远市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532502', '开远市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532503', '5325', '00,53,5325', '蒙自市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532503', '蒙自市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532504', '5325', '00,53,5325', '弥勒市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532504', '弥勒市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532523', '5325', '00,53,5325', '屏边苗族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532523', '屏边苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532524', '5325', '00,53,5325', '建水县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532524', '建水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532525', '5325', '00,53,5325', '石屏县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532525', '石屏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532527', '5325', '00,53,5325', '泸西县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532527', '泸西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532528', '5325', '00,53,5325', '元阳县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532528', '元阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532529', '5325', '00,53,5325', '红河县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532529', '红河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532530', '5325', '00,53,5325', '金平苗族瑶族傣族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532530', '金平苗族瑶族傣族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532531', '5325', '00,53,5325', '绿春县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532531', '绿春县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532532', '5325', '00,53,5325', '河口瑶族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532532', '河口瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451121', '4511', '00,45,4511', '昭平县', '45', '广西壮族自治区', '4511', '贺州市', '451121', '昭平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450311', '4503', '00,45,4503', '雁山区', '45', '广西壮族自治区', '4503', '桂林市', '450311', '雁山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650521', '6505', '00,65,6505', '巴里坤哈萨克自治县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650521', '巴里坤哈萨克自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510703', '5107', '00,51,5107', '涪城区', '51', '四川省', '5107', '绵阳市', '510703', '涪城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510704', '5107', '00,51,5107', '游仙区', '51', '四川省', '5107', '绵阳市', '510704', '游仙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510705', '5107', '00,51,5107', '安州区', '51', '四川省', '5107', '绵阳市', '510705', '安州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510722', '5107', '00,51,5107', '三台县', '51', '四川省', '5107', '绵阳市', '510722', '三台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510723', '5107', '00,51,5107', '盐亭县', '51', '四川省', '5107', '绵阳市', '510723', '盐亭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510725', '5107', '00,51,5107', '梓潼县', '51', '四川省', '5107', '绵阳市', '510725', '梓潼县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510726', '5107', '00,51,5107', '北川羌族自治县', '51', '四川省', '5107', '绵阳市', '510726', '北川羌族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510727', '5107', '00,51,5107', '平武县', '51', '四川省', '5107', '绵阳市', '510727', '平武县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510781', '5107', '00,51,5107', '江油市', '51', '四川省', '5107', '绵阳市', '510781', '江油市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5108', '51', '00,51', '广元市', '51', '四川省', '5108', '广元市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510802', '5108', '00,51,5108', '利州区', '51', '四川省', '5108', '广元市', '510802', '利州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510811', '5108', '00,51,5108', '昭化区', '51', '四川省', '5108', '广元市', '510811', '昭化区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510812', '5108', '00,51,5108', '朝天区', '51', '四川省', '5108', '广元市', '510812', '朝天区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510821', '5108', '00,51,5108', '旺苍县', '51', '四川省', '5108', '广元市', '510821', '旺苍县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510822', '5108', '00,51,5108', '青川县', '51', '四川省', '5108', '广元市', '510822', '青川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510823', '5108', '00,51,5108', '剑阁县', '51', '四川省', '5108', '广元市', '510823', '剑阁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510824', '5108', '00,51,5108', '苍溪县', '51', '四川省', '5108', '广元市', '510824', '苍溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5109', '51', '00,51', '遂宁市', '51', '四川省', '5109', '遂宁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510903', '5109', '00,51,5109', '船山区', '51', '四川省', '5109', '遂宁市', '510903', '船山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510904', '5109', '00,51,5109', '安居区', '51', '四川省', '5109', '遂宁市', '510904', '安居区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510921', '5109', '00,51,5109', '蓬溪县', '51', '四川省', '5109', '遂宁市', '510921', '蓬溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510923', '5109', '00,51,5109', '大英县', '51', '四川省', '5109', '遂宁市', '510923', '大英县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510981', '5109', '00,51,5109', '射洪市', '51', '四川省', '5109', '遂宁市', '510981', '射洪市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5110', '51', '00,51', '内江市', '51', '四川省', '5110', '内江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511002', '5110', '00,51,5110', '市中区', '51', '四川省', '5110', '内江市', '511002', '市中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511011', '5110', '00,51,5110', '东兴区', '51', '四川省', '5110', '内江市', '511011', '东兴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511024', '5110', '00,51,5110', '威远县', '51', '四川省', '5110', '内江市', '511024', '威远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511025', '5110', '00,51,5110', '资中县', '51', '四川省', '5110', '内江市', '511025', '资中县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511083', '5110', '00,51,5110', '隆昌市', '51', '四川省', '5110', '内江市', '511083', '隆昌市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5111', '51', '00,51', '乐山市', '51', '四川省', '5111', '乐山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511102', '5111', '00,51,5111', '市中区', '51', '四川省', '5111', '乐山市', '511102', '市中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511111', '5111', '00,51,5111', '沙湾区', '51', '四川省', '5111', '乐山市', '511111', '沙湾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511112', '5111', '00,51,5111', '五通桥区', '51', '四川省', '5111', '乐山市', '511112', '五通桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511113', '5111', '00,51,5111', '金口河区', '51', '四川省', '5111', '乐山市', '511113', '金口河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511123', '5111', '00,51,5111', '犍为县', '51', '四川省', '5111', '乐山市', '511123', '犍为县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511124', '5111', '00,51,5111', '井研县', '51', '四川省', '5111', '乐山市', '511124', '井研县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511126', '5111', '00,51,5111', '夹江县', '51', '四川省', '5111', '乐山市', '511126', '夹江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511129', '5111', '00,51,5111', '沐川县', '51', '四川省', '5111', '乐山市', '511129', '沐川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511132', '5111', '00,51,5111', '峨边彝族自治县', '51', '四川省', '5111', '乐山市', '511132', '峨边彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511133', '5111', '00,51,5111', '马边彝族自治县', '51', '四川省', '5111', '乐山市', '511133', '马边彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511181', '5111', '00,51,5111', '峨眉山市', '51', '四川省', '5111', '乐山市', '511181', '峨眉山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5113', '51', '00,51', '南充市', '51', '四川省', '5113', '南充市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511302', '5113', '00,51,5113', '顺庆区', '51', '四川省', '5113', '南充市', '511302', '顺庆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511303', '5113', '00,51,5113', '高坪区', '51', '四川省', '5113', '南充市', '511303', '高坪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511304', '5113', '00,51,5113', '嘉陵区', '51', '四川省', '5113', '南充市', '511304', '嘉陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511321', '5113', '00,51,5113', '南部县', '51', '四川省', '5113', '南充市', '511321', '南部县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511322', '5113', '00,51,5113', '营山县', '51', '四川省', '5113', '南充市', '511322', '营山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511323', '5113', '00,51,5113', '蓬安县', '51', '四川省', '5113', '南充市', '511323', '蓬安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511324', '5113', '00,51,5113', '仪陇县', '51', '四川省', '5113', '南充市', '511324', '仪陇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511325', '5113', '00,51,5113', '西充县', '51', '四川省', '5113', '南充市', '511325', '西充县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511381', '5113', '00,51,5113', '阆中市', '51', '四川省', '5113', '南充市', '511381', '阆中市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5114', '51', '00,51', '眉山市', '51', '四川省', '5114', '眉山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511402', '5114', '00,51,5114', '东坡区', '51', '四川省', '5114', '眉山市', '511402', '东坡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511403', '5114', '00,51,5114', '彭山区', '51', '四川省', '5114', '眉山市', '511403', '彭山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511421', '5114', '00,51,5114', '仁寿县', '51', '四川省', '5114', '眉山市', '511421', '仁寿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511423', '5114', '00,51,5114', '洪雅县', '51', '四川省', '5114', '眉山市', '511423', '洪雅县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511424', '5114', '00,51,5114', '丹棱县', '51', '四川省', '5114', '眉山市', '511424', '丹棱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511425', '5114', '00,51,5114', '青神县', '51', '四川省', '5114', '眉山市', '511425', '青神县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5115', '51', '00,51', '宜宾市', '51', '四川省', '5115', '宜宾市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511502', '5115', '00,51,5115', '翠屏区', '51', '四川省', '5115', '宜宾市', '511502', '翠屏区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511503', '5115', '00,51,5115', '南溪区', '51', '四川省', '5115', '宜宾市', '511503', '南溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511504', '5115', '00,51,5115', '叙州区', '51', '四川省', '5115', '宜宾市', '511504', '叙州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511523', '5115', '00,51,5115', '江安县', '51', '四川省', '5115', '宜宾市', '511523', '江安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511524', '5115', '00,51,5115', '长宁县', '51', '四川省', '5115', '宜宾市', '511524', '长宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511525', '5115', '00,51,5115', '高县', '51', '四川省', '5115', '宜宾市', '511525', '高县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511526', '5115', '00,51,5115', '珙县', '51', '四川省', '5115', '宜宾市', '511526', '珙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511527', '5115', '00,51,5115', '筠连县', '51', '四川省', '5115', '宜宾市', '511527', '筠连县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511528', '5115', '00,51,5115', '兴文县', '51', '四川省', '5115', '宜宾市', '511528', '兴文县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511529', '5115', '00,51,5115', '屏山县', '51', '四川省', '5115', '宜宾市', '511529', '屏山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5116', '51', '00,51', '广安市', '51', '四川省', '5116', '广安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511602', '5116', '00,51,5116', '广安区', '51', '四川省', '5116', '广安市', '511602', '广安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511603', '5116', '00,51,5116', '前锋区', '51', '四川省', '5116', '广安市', '511603', '前锋区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511621', '5116', '00,51,5116', '岳池县', '51', '四川省', '5116', '广安市', '511621', '岳池县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511622', '5116', '00,51,5116', '武胜县', '51', '四川省', '5116', '广安市', '511622', '武胜县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511623', '5116', '00,51,5116', '邻水县', '51', '四川省', '5116', '广安市', '511623', '邻水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511681', '5116', '00,51,5116', '华蓥市', '51', '四川省', '5116', '广安市', '511681', '华蓥市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653124', '6531', '00,65,6531', '泽普县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653124', '泽普县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653125', '6531', '00,65,6531', '莎车县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653125', '莎车县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653126', '6531', '00,65,6531', '叶城县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653126', '叶城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653127', '6531', '00,65,6531', '麦盖提县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653127', '麦盖提县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653128', '6531', '00,65,6531', '岳普湖县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653128', '岳普湖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653129', '6531', '00,65,6531', '伽师县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653129', '伽师县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653130', '6531', '00,65,6531', '巴楚县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653130', '巴楚县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653131', '6531', '00,65,6531', '塔什库尔干塔吉克自治县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653131', '塔什库尔干塔吉克自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6532', '65', '00,65', '和田地区', '65', '新疆维吾尔自治区', '6532', '和田地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653201', '6532', '00,65,6532', '和田市', '65', '新疆维吾尔自治区', '6532', '和田地区', '653201', '和田市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653221', '6532', '00,65,6532', '和田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653221', '和田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653222', '6532', '00,65,6532', '墨玉县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653222', '墨玉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653223', '6532', '00,65,6532', '皮山县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653223', '皮山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653224', '6532', '00,65,6532', '洛浦县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653224', '洛浦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653225', '6532', '00,65,6532', '策勒县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653225', '策勒县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632822', '6328', '00,63,6328', '都兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632822', '都兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620524', '6205', '00,62,6205', '武山县', '62', '甘肃省', '6205', '天水市', '620524', '武山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620525', '6205', '00,62,6205', '张家川回族自治县', '62', '甘肃省', '6205', '天水市', '620525', '张家川回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6206', '62', '00,62', '武威市', '62', '甘肃省', '6206', '武威市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620602', '6206', '00,62,6206', '凉州区', '62', '甘肃省', '6206', '武威市', '620602', '凉州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620621', '6206', '00,62,6206', '民勤县', '62', '甘肃省', '6206', '武威市', '620621', '民勤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620622', '6206', '00,62,6206', '古浪县', '62', '甘肃省', '6206', '武威市', '620622', '古浪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620623', '6206', '00,62,6206', '天祝藏族自治县', '62', '甘肃省', '6206', '武威市', '620623', '天祝藏族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6207', '62', '00,62', '张掖市', '62', '甘肃省', '6207', '张掖市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620702', '6207', '00,62,6207', '甘州区', '62', '甘肃省', '6207', '张掖市', '620702', '甘州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620721', '6207', '00,62,6207', '肃南裕固族自治县', '62', '甘肃省', '6207', '张掖市', '620721', '肃南裕固族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620722', '6207', '00,62,6207', '民乐县', '62', '甘肃省', '6207', '张掖市', '620722', '民乐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620723', '6207', '00,62,6207', '临泽县', '62', '甘肃省', '6207', '张掖市', '620723', '临泽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620724', '6207', '00,62,6207', '高台县', '62', '甘肃省', '6207', '张掖市', '620724', '高台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620725', '6207', '00,62,6207', '山丹县', '62', '甘肃省', '6207', '张掖市', '620725', '山丹县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6208', '62', '00,62', '平凉市', '62', '甘肃省', '6208', '平凉市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620802', '6208', '00,62,6208', '崆峒区', '62', '甘肃省', '6208', '平凉市', '620802', '崆峒区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620821', '6208', '00,62,6208', '泾川县', '62', '甘肃省', '6208', '平凉市', '620821', '泾川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620822', '6208', '00,62,6208', '灵台县', '62', '甘肃省', '6208', '平凉市', '620822', '灵台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620823', '6208', '00,62,6208', '崇信县', '62', '甘肃省', '6208', '平凉市', '620823', '崇信县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620825', '6208', '00,62,6208', '庄浪县', '62', '甘肃省', '6208', '平凉市', '620825', '庄浪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620826', '6208', '00,62,6208', '静宁县', '62', '甘肃省', '6208', '平凉市', '620826', '静宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620881', '6208', '00,62,6208', '华亭市', '62', '甘肃省', '6208', '平凉市', '620881', '华亭市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6209', '62', '00,62', '酒泉市', '62', '甘肃省', '6209', '酒泉市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620902', '6209', '00,62,6209', '肃州区', '62', '甘肃省', '6209', '酒泉市', '620902', '肃州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620921', '6209', '00,62,6209', '金塔县', '62', '甘肃省', '6209', '酒泉市', '620921', '金塔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620922', '6209', '00,62,6209', '瓜州县', '62', '甘肃省', '6209', '酒泉市', '620922', '瓜州县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620923', '6209', '00,62,6209', '肃北蒙古族自治县', '62', '甘肃省', '6209', '酒泉市', '620923', '肃北蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620924', '6209', '00,62,6209', '阿克塞哈萨克族自治县', '62', '甘肃省', '6209', '酒泉市', '620924', '阿克塞哈萨克族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620981', '6209', '00,62,6209', '玉门市', '62', '甘肃省', '6209', '酒泉市', '620981', '玉门市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620982', '6209', '00,62,6209', '敦煌市', '62', '甘肃省', '6209', '酒泉市', '620982', '敦煌市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6210', '62', '00,62', '庆阳市', '62', '甘肃省', '6210', '庆阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621002', '6210', '00,62,6210', '西峰区', '62', '甘肃省', '6210', '庆阳市', '621002', '西峰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621021', '6210', '00,62,6210', '庆城县', '62', '甘肃省', '6210', '庆阳市', '621021', '庆城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621022', '6210', '00,62,6210', '环县', '62', '甘肃省', '6210', '庆阳市', '621022', '环县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621023', '6210', '00,62,6210', '华池县', '62', '甘肃省', '6210', '庆阳市', '621023', '华池县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621024', '6210', '00,62,6210', '合水县', '62', '甘肃省', '6210', '庆阳市', '621024', '合水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621025', '6210', '00,62,6210', '正宁县', '62', '甘肃省', '6210', '庆阳市', '621025', '正宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621026', '6210', '00,62,6210', '宁县', '62', '甘肃省', '6210', '庆阳市', '621026', '宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621027', '6210', '00,62,6210', '镇原县', '62', '甘肃省', '6210', '庆阳市', '621027', '镇原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6211', '62', '00,62', '定西市', '62', '甘肃省', '6211', '定西市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451122', '4511', '00,45,4511', '钟山县', '45', '广西壮族自治区', '4511', '贺州市', '451122', '钟山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659002', '6590', '00,65,6590', '阿拉尔市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659002', '阿拉尔市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659003', '6590', '00,65,6590', '图木舒克市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659003', '图木舒克市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659004', '6590', '00,65,6590', '五家渠市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659004', '五家渠市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659005', '6590', '00,65,6590', '北屯市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659005', '北屯市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659006', '6590', '00,65,6590', '铁门关市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659006', '铁门关市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659007', '6590', '00,65,6590', '双河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659007', '双河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659008', '6590', '00,65,6590', '可克达拉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659008', '可克达拉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659009', '6590', '00,65,6590', '昆玉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659009', '昆玉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659010', '6590', '00,65,6590', '胡杨河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659010', '胡杨河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('71', '00', '00', '台湾省', '71', '台湾省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('81', '00', '00', '香港特别行政区', '81', '香港特别行政区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('82', '00', '00', '澳门特别行政区', '82', '澳门特别行政区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610302', '6103', '00,61,6103', '渭滨区', '61', '陕西省', '6103', '宝鸡市', '610302', '渭滨区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610303', '6103', '00,61,6103', '金台区', '61', '陕西省', '6103', '宝鸡市', '610303', '金台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610304', '6103', '00,61,6103', '陈仓区', '61', '陕西省', '6103', '宝鸡市', '610304', '陈仓区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640422', '6404', '00,64,6404', '西吉县', '64', '宁夏回族自治区', '6404', '固原市', '640422', '西吉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640423', '6404', '00,64,6404', '隆德县', '64', '宁夏回族自治区', '6404', '固原市', '640423', '隆德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640424', '6404', '00,64,6404', '泾源县', '64', '宁夏回族自治区', '6404', '固原市', '640424', '泾源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640425', '6404', '00,64,6404', '彭阳县', '64', '宁夏回族自治区', '6404', '固原市', '640425', '彭阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6405', '64', '00,64', '中卫市', '64', '宁夏回族自治区', '6405', '中卫市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640502', '6405', '00,64,6405', '沙坡头区', '64', '宁夏回族自治区', '6405', '中卫市', '640502', '沙坡头区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640521', '6405', '00,64,6405', '中宁县', '64', '宁夏回族自治区', '6405', '中卫市', '640521', '中宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640522', '6405', '00,64,6405', '海原县', '64', '宁夏回族自治区', '6405', '中卫市', '640522', '海原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('65', '00', '00', '新疆维吾尔自治区', '65', '新疆维吾尔自治区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6501', '65', '00,65', '乌鲁木齐市', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650102', '6501', '00,65,6501', '天山区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650102', '天山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650103', '6501', '00,65,6501', '沙依巴克区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650103', '沙依巴克区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650104', '6501', '00,65,6501', '新市区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650104', '新市区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650105', '6501', '00,65,6501', '水磨沟区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650105', '水磨沟区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650106', '6501', '00,65,6501', '头屯河区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650106', '头屯河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650107', '6501', '00,65,6501', '达坂城区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650107', '达坂城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6108', '61', '00,61', '榆林市', '61', '陕西省', '6108', '榆林市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610802', '6108', '00,61,6108', '榆阳区', '61', '陕西省', '6108', '榆林市', '610802', '榆阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610803', '6108', '00,61,6108', '横山区', '61', '陕西省', '6108', '榆林市', '610803', '横山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610822', '6108', '00,61,6108', '府谷县', '61', '陕西省', '6108', '榆林市', '610822', '府谷县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610824', '6108', '00,61,6108', '靖边县', '61', '陕西省', '6108', '榆林市', '610824', '靖边县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610825', '6108', '00,61,6108', '定边县', '61', '陕西省', '6108', '榆林市', '610825', '定边县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610826', '6108', '00,61,6108', '绥德县', '61', '陕西省', '6108', '榆林市', '610826', '绥德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610827', '6108', '00,61,6108', '米脂县', '61', '陕西省', '6108', '榆林市', '610827', '米脂县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610828', '6108', '00,61,6108', '佳县', '61', '陕西省', '6108', '榆林市', '610828', '佳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610829', '6108', '00,61,6108', '吴堡县', '61', '陕西省', '6108', '榆林市', '610829', '吴堡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610830', '6108', '00,61,6108', '清涧县', '61', '陕西省', '6108', '榆林市', '610830', '清涧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610831', '6108', '00,61,6108', '子洲县', '61', '陕西省', '6108', '榆林市', '610831', '子洲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610881', '6108', '00,61,6108', '神木市', '61', '陕西省', '6108', '榆林市', '610881', '神木市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6109', '61', '00,61', '安康市', '61', '陕西省', '6109', '安康市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610902', '6109', '00,61,6109', '汉滨区', '61', '陕西省', '6109', '安康市', '610902', '汉滨区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610921', '6109', '00,61,6109', '汉阴县', '61', '陕西省', '6109', '安康市', '610921', '汉阴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610922', '6109', '00,61,6109', '石泉县', '61', '陕西省', '6109', '安康市', '610922', '石泉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610923', '6109', '00,61,6109', '宁陕县', '61', '陕西省', '6109', '安康市', '610923', '宁陕县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610924', '6109', '00,61,6109', '紫阳县', '61', '陕西省', '6109', '安康市', '610924', '紫阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610925', '6109', '00,61,6109', '岚皋县', '61', '陕西省', '6109', '安康市', '610925', '岚皋县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610926', '6109', '00,61,6109', '平利县', '61', '陕西省', '6109', '安康市', '610926', '平利县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610927', '6109', '00,61,6109', '镇坪县', '61', '陕西省', '6109', '安康市', '610927', '镇坪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610928', '6109', '00,61,6109', '旬阳县', '61', '陕西省', '6109', '安康市', '610928', '旬阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610929', '6109', '00,61,6109', '白河县', '61', '陕西省', '6109', '安康市', '610929', '白河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6110', '61', '00,61', '商洛市', '61', '陕西省', '6110', '商洛市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('611002', '6110', '00,61,6110', '商州区', '61', '陕西省', '6110', '商洛市', '611002', '商州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('611021', '6110', '00,61,6110', '洛南县', '61', '陕西省', '6110', '商洛市', '611021', '洛南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('611022', '6110', '00,61,6110', '丹凤县', '61', '陕西省', '6110', '商洛市', '611022', '丹凤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('611023', '6110', '00,61,6110', '商南县', '61', '陕西省', '6110', '商洛市', '611023', '商南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('611024', '6110', '00,61,6110', '山阳县', '61', '陕西省', '6110', '商洛市', '611024', '山阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('611025', '6110', '00,61,6110', '镇安县', '61', '陕西省', '6110', '商洛市', '611025', '镇安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('611026', '6110', '00,61,6110', '柞水县', '61', '陕西省', '6110', '商洛市', '611026', '柞水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('62', '00', '00', '甘肃省', '62', '甘肃省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6201', '62', '00,62', '兰州市', '62', '甘肃省', '6201', '兰州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620102', '6201', '00,62,6201', '城关区', '62', '甘肃省', '6201', '兰州市', '620102', '城关区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620103', '6201', '00,62,6201', '七里河区', '62', '甘肃省', '6201', '兰州市', '620103', '七里河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620104', '6201', '00,62,6201', '西固区', '62', '甘肃省', '6201', '兰州市', '620104', '西固区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620105', '6201', '00,62,6201', '安宁区', '62', '甘肃省', '6201', '兰州市', '620105', '安宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620111', '6201', '00,62,6201', '红古区', '62', '甘肃省', '6201', '兰州市', '620111', '红古区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620121', '6201', '00,62,6201', '永登县', '62', '甘肃省', '6201', '兰州市', '620121', '永登县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620122', '6201', '00,62,6201', '皋兰县', '62', '甘肃省', '6201', '兰州市', '620122', '皋兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620123', '6201', '00,62,6201', '榆中县', '62', '甘肃省', '6201', '兰州市', '620123', '榆中县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6202', '62', '00,62', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610322', '6103', '00,61,6103', '凤翔县', '61', '陕西省', '6103', '宝鸡市', '610322', '凤翔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610323', '6103', '00,61,6103', '岐山县', '61', '陕西省', '6103', '宝鸡市', '610323', '岐山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610324', '6103', '00,61,6103', '扶风县', '61', '陕西省', '6103', '宝鸡市', '610324', '扶风县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610326', '6103', '00,61,6103', '眉县', '61', '陕西省', '6103', '宝鸡市', '610326', '眉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610327', '6103', '00,61,6103', '陇县', '61', '陕西省', '6103', '宝鸡市', '610327', '陇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610328', '6103', '00,61,6103', '千阳县', '61', '陕西省', '6103', '宝鸡市', '610328', '千阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610329', '6103', '00,61,6103', '麟游县', '61', '陕西省', '6103', '宝鸡市', '610329', '麟游县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610330', '6103', '00,61,6103', '凤县', '61', '陕西省', '6103', '宝鸡市', '610330', '凤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610331', '6103', '00,61,6103', '太白县', '61', '陕西省', '6103', '宝鸡市', '610331', '太白县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6104', '61', '00,61', '咸阳市', '61', '陕西省', '6104', '咸阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610402', '6104', '00,61,6104', '秦都区', '61', '陕西省', '6104', '咸阳市', '610402', '秦都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610403', '6104', '00,61,6104', '杨陵区', '61', '陕西省', '6104', '咸阳市', '610403', '杨陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610404', '6104', '00,61,6104', '渭城区', '61', '陕西省', '6104', '咸阳市', '610404', '渭城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610422', '6104', '00,61,6104', '三原县', '61', '陕西省', '6104', '咸阳市', '610422', '三原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610423', '6104', '00,61,6104', '泾阳县', '61', '陕西省', '6104', '咸阳市', '610423', '泾阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610424', '6104', '00,61,6104', '乾县', '61', '陕西省', '6104', '咸阳市', '610424', '乾县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610425', '6104', '00,61,6104', '礼泉县', '61', '陕西省', '6104', '咸阳市', '610425', '礼泉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610426', '6104', '00,61,6104', '永寿县', '61', '陕西省', '6104', '咸阳市', '610426', '永寿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610428', '6104', '00,61,6104', '长武县', '61', '陕西省', '6104', '咸阳市', '610428', '长武县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610429', '6104', '00,61,6104', '旬邑县', '61', '陕西省', '6104', '咸阳市', '610429', '旬邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610430', '6104', '00,61,6104', '淳化县', '61', '陕西省', '6104', '咸阳市', '610430', '淳化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610431', '6104', '00,61,6104', '武功县', '61', '陕西省', '6104', '咸阳市', '610431', '武功县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610481', '6104', '00,61,6104', '兴平市', '61', '陕西省', '6104', '咸阳市', '610481', '兴平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610482', '6104', '00,61,6104', '彬州市', '61', '陕西省', '6104', '咸阳市', '610482', '彬州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6105', '61', '00,61', '渭南市', '61', '陕西省', '6105', '渭南市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610502', '6105', '00,61,6105', '临渭区', '61', '陕西省', '6105', '渭南市', '610502', '临渭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610503', '6105', '00,61,6105', '华州区', '61', '陕西省', '6105', '渭南市', '610503', '华州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610522', '6105', '00,61,6105', '潼关县', '61', '陕西省', '6105', '渭南市', '610522', '潼关县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610523', '6105', '00,61,6105', '大荔县', '61', '陕西省', '6105', '渭南市', '610523', '大荔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610524', '6105', '00,61,6105', '合阳县', '61', '陕西省', '6105', '渭南市', '610524', '合阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610525', '6105', '00,61,6105', '澄城县', '61', '陕西省', '6105', '渭南市', '610525', '澄城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610526', '6105', '00,61,6105', '蒲城县', '61', '陕西省', '6105', '渭南市', '610526', '蒲城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610527', '6105', '00,61,6105', '白水县', '61', '陕西省', '6105', '渭南市', '610527', '白水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610528', '6105', '00,61,6105', '富平县', '61', '陕西省', '6105', '渭南市', '610528', '富平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610581', '6105', '00,61,6105', '韩城市', '61', '陕西省', '6105', '渭南市', '610581', '韩城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610582', '6105', '00,61,6105', '华阴市', '61', '陕西省', '6105', '渭南市', '610582', '华阴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6106', '61', '00,61', '延安市', '61', '陕西省', '6106', '延安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610602', '6106', '00,61,6106', '宝塔区', '61', '陕西省', '6106', '延安市', '610602', '宝塔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610603', '6106', '00,61,6106', '安塞区', '61', '陕西省', '6106', '延安市', '610603', '安塞区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610621', '6106', '00,61,6106', '延长县', '61', '陕西省', '6106', '延安市', '610621', '延长县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610622', '6106', '00,61,6106', '延川县', '61', '陕西省', '6106', '延安市', '610622', '延川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610625', '6106', '00,61,6106', '志丹县', '61', '陕西省', '6106', '延安市', '610625', '志丹县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610626', '6106', '00,61,6106', '吴起县', '61', '陕西省', '6106', '延安市', '610626', '吴起县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610627', '6106', '00,61,6106', '甘泉县', '61', '陕西省', '6106', '延安市', '610627', '甘泉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610628', '6106', '00,61,6106', '富县', '61', '陕西省', '6106', '延安市', '610628', '富县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610629', '6106', '00,61,6106', '洛川县', '61', '陕西省', '6106', '延安市', '610629', '洛川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610630', '6106', '00,61,6106', '宜川县', '61', '陕西省', '6106', '延安市', '610630', '宜川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610631', '6106', '00,61,6106', '黄龙县', '61', '陕西省', '6106', '延安市', '610631', '黄龙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610632', '6106', '00,61,6106', '黄陵县', '61', '陕西省', '6106', '延安市', '610632', '黄陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610681', '6106', '00,61,6106', '子长市', '61', '陕西省', '6106', '延安市', '610681', '子长市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6107', '61', '00,61', '汉中市', '61', '陕西省', '6107', '汉中市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610702', '6107', '00,61,6107', '汉台区', '61', '陕西省', '6107', '汉中市', '610702', '汉台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610703', '6107', '00,61,6107', '南郑区', '61', '陕西省', '6107', '汉中市', '610703', '南郑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610722', '6107', '00,61,6107', '城固县', '61', '陕西省', '6107', '汉中市', '610722', '城固县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610723', '6107', '00,61,6107', '洋县', '61', '陕西省', '6107', '汉中市', '610723', '洋县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610724', '6107', '00,61,6107', '西乡县', '61', '陕西省', '6107', '汉中市', '610724', '西乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610725', '6107', '00,61,6107', '勉县', '61', '陕西省', '6107', '汉中市', '610725', '勉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610726', '6107', '00,61,6107', '宁强县', '61', '陕西省', '6107', '汉中市', '610726', '宁强县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610727', '6107', '00,61,6107', '略阳县', '61', '陕西省', '6107', '汉中市', '610727', '略阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610728', '6107', '00,61,6107', '镇巴县', '61', '陕西省', '6107', '汉中市', '610728', '镇巴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621123', '6211', '00,62,6211', '渭源县', '62', '甘肃省', '6211', '定西市', '621123', '渭源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621124', '6211', '00,62,6211', '临洮县', '62', '甘肃省', '6211', '定西市', '621124', '临洮县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621125', '6211', '00,62,6211', '漳县', '62', '甘肃省', '6211', '定西市', '621125', '漳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621126', '6211', '00,62,6211', '岷县', '62', '甘肃省', '6211', '定西市', '621126', '岷县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6212', '62', '00,62', '陇南市', '62', '甘肃省', '6212', '陇南市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621202', '6212', '00,62,6212', '武都区', '62', '甘肃省', '6212', '陇南市', '621202', '武都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621221', '6212', '00,62,6212', '成县', '62', '甘肃省', '6212', '陇南市', '621221', '成县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621222', '6212', '00,62,6212', '文县', '62', '甘肃省', '6212', '陇南市', '621222', '文县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621223', '6212', '00,62,6212', '宕昌县', '62', '甘肃省', '6212', '陇南市', '621223', '宕昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621224', '6212', '00,62,6212', '康县', '62', '甘肃省', '6212', '陇南市', '621224', '康县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621225', '6212', '00,62,6212', '西和县', '62', '甘肃省', '6212', '陇南市', '621225', '西和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621226', '6212', '00,62,6212', '礼县', '62', '甘肃省', '6212', '陇南市', '621226', '礼县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621227', '6212', '00,62,6212', '徽县', '62', '甘肃省', '6212', '陇南市', '621227', '徽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621228', '6212', '00,62,6212', '两当县', '62', '甘肃省', '6212', '陇南市', '621228', '两当县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6229', '62', '00,62', '临夏回族自治州', '62', '甘肃省', '6229', '临夏回族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622901', '6229', '00,62,6229', '临夏市', '62', '甘肃省', '6229', '临夏回族自治州', '622901', '临夏市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622921', '6229', '00,62,6229', '临夏县', '62', '甘肃省', '6229', '临夏回族自治州', '622921', '临夏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622922', '6229', '00,62,6229', '康乐县', '62', '甘肃省', '6229', '临夏回族自治州', '622922', '康乐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622923', '6229', '00,62,6229', '永靖县', '62', '甘肃省', '6229', '临夏回族自治州', '622923', '永靖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622924', '6229', '00,62,6229', '广河县', '62', '甘肃省', '6229', '临夏回族自治州', '622924', '广河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622925', '6229', '00,62,6229', '和政县', '62', '甘肃省', '6229', '临夏回族自治州', '622925', '和政县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622926', '6229', '00,62,6229', '东乡族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622926', '东乡族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622927', '6229', '00,62,6229', '积石山保安族东乡族撒拉族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622927', '积石山保安族东乡族撒拉族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6230', '62', '00,62', '甘南藏族自治州', '62', '甘肃省', '6230', '甘南藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623001', '6230', '00,62,6230', '合作市', '62', '甘肃省', '6230', '甘南藏族自治州', '623001', '合作市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623021', '6230', '00,62,6230', '临潭县', '62', '甘肃省', '6230', '甘南藏族自治州', '623021', '临潭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623022', '6230', '00,62,6230', '卓尼县', '62', '甘肃省', '6230', '甘南藏族自治州', '623022', '卓尼县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623023', '6230', '00,62,6230', '舟曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623023', '舟曲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623024', '6230', '00,62,6230', '迭部县', '62', '甘肃省', '6230', '甘南藏族自治州', '623024', '迭部县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623025', '6230', '00,62,6230', '玛曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623025', '玛曲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623026', '6230', '00,62,6230', '碌曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623026', '碌曲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623027', '6230', '00,62,6230', '夏河县', '62', '甘肃省', '6230', '甘南藏族自治州', '623027', '夏河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('63', '00', '00', '青海省', '63', '青海省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6301', '63', '00,63', '西宁市', '63', '青海省', '6301', '西宁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630102', '6301', '00,63,6301', '城东区', '63', '青海省', '6301', '西宁市', '630102', '城东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630103', '6301', '00,63,6301', '城中区', '63', '青海省', '6301', '西宁市', '630103', '城中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630104', '6301', '00,63,6301', '城西区', '63', '青海省', '6301', '西宁市', '630104', '城西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630105', '6301', '00,63,6301', '城北区', '63', '青海省', '6301', '西宁市', '630105', '城北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630106', '6301', '00,63,6301', '湟中区', '63', '青海省', '6301', '西宁市', '630106', '湟中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630121', '6301', '00,63,6301', '大通回族土族自治县', '63', '青海省', '6301', '西宁市', '630121', '大通回族土族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630123', '6301', '00,63,6301', '湟源县', '63', '青海省', '6301', '西宁市', '630123', '湟源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6302', '63', '00,63', '海东市', '63', '青海省', '6302', '海东市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630202', '6302', '00,63,6302', '乐都区', '63', '青海省', '6302', '海东市', '630202', '乐都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630203', '6302', '00,63,6302', '平安区', '63', '青海省', '6302', '海东市', '630203', '平安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630222', '6302', '00,63,6302', '民和回族土族自治县', '63', '青海省', '6302', '海东市', '630222', '民和回族土族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630223', '6302', '00,63,6302', '互助土族自治县', '63', '青海省', '6302', '海东市', '630223', '互助土族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630224', '6302', '00,63,6302', '化隆回族自治县', '63', '青海省', '6302', '海东市', '630224', '化隆回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630225', '6302', '00,63,6302', '循化撒拉族自治县', '63', '青海省', '6302', '海东市', '630225', '循化撒拉族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6322', '63', '00,63', '海北藏族自治州', '63', '青海省', '6322', '海北藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632221', '6322', '00,63,6322', '门源回族自治县', '63', '青海省', '6322', '海北藏族自治州', '632221', '门源回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632222', '6322', '00,63,6322', '祁连县', '63', '青海省', '6322', '海北藏族自治州', '632222', '祁连县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500110', '5001', '00,50,5001', '綦江区', '50', '重庆市', '5001', '重庆市', '500110', '綦江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500111', '5001', '00,50,5001', '大足区', '50', '重庆市', '5001', '重庆市', '500111', '大足区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533325', '5333', '00,53,5333', '兰坪白族普米族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533325', '兰坪白族普米族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5334', '53', '00,53', '迪庆藏族自治州', '53', '云南省', '5334', '迪庆藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533401', '5334', '00,53,5334', '香格里拉市', '53', '云南省', '5334', '迪庆藏族自治州', '533401', '香格里拉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533422', '5334', '00,53,5334', '德钦县', '53', '云南省', '5334', '迪庆藏族自治州', '533422', '德钦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533423', '5334', '00,53,5334', '维西傈僳族自治县', '53', '云南省', '5334', '迪庆藏族自治州', '533423', '维西傈僳族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('54', '00', '00', '西藏自治区', '54', '西藏自治区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5401', '54', '00,54', '拉萨市', '54', '西藏自治区', '5401', '拉萨市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540102', '5401', '00,54,5401', '城关区', '54', '西藏自治区', '5401', '拉萨市', '540102', '城关区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540103', '5401', '00,54,5401', '堆龙德庆区', '54', '西藏自治区', '5401', '拉萨市', '540103', '堆龙德庆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540104', '5401', '00,54,5401', '达孜区', '54', '西藏自治区', '5401', '拉萨市', '540104', '达孜区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540121', '5401', '00,54,5401', '林周县', '54', '西藏自治区', '5401', '拉萨市', '540121', '林周县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540122', '5401', '00,54,5401', '当雄县', '54', '西藏自治区', '5401', '拉萨市', '540122', '当雄县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540123', '5401', '00,54,5401', '尼木县', '54', '西藏自治区', '5401', '拉萨市', '540123', '尼木县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540124', '5401', '00,54,5401', '曲水县', '54', '西藏自治区', '5401', '拉萨市', '540124', '曲水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540127', '5401', '00,54,5401', '墨竹工卡县', '54', '西藏自治区', '5401', '拉萨市', '540127', '墨竹工卡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5402', '54', '00,54', '日喀则市', '54', '西藏自治区', '5402', '日喀则市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540202', '5402', '00,54,5402', '桑珠孜区', '54', '西藏自治区', '5402', '日喀则市', '540202', '桑珠孜区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540221', '5402', '00,54,5402', '南木林县', '54', '西藏自治区', '5402', '日喀则市', '540221', '南木林县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540222', '5402', '00,54,5402', '江孜县', '54', '西藏自治区', '5402', '日喀则市', '540222', '江孜县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540223', '5402', '00,54,5402', '定日县', '54', '西藏自治区', '5402', '日喀则市', '540223', '定日县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540224', '5402', '00,54,5402', '萨迦县', '54', '西藏自治区', '5402', '日喀则市', '540224', '萨迦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540225', '5402', '00,54,5402', '拉孜县', '54', '西藏自治区', '5402', '日喀则市', '540225', '拉孜县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540226', '5402', '00,54,5402', '昂仁县', '54', '西藏自治区', '5402', '日喀则市', '540226', '昂仁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540227', '5402', '00,54,5402', '谢通门县', '54', '西藏自治区', '5402', '日喀则市', '540227', '谢通门县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540228', '5402', '00,54,5402', '白朗县', '54', '西藏自治区', '5402', '日喀则市', '540228', '白朗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540229', '5402', '00,54,5402', '仁布县', '54', '西藏自治区', '5402', '日喀则市', '540229', '仁布县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540230', '5402', '00,54,5402', '康马县', '54', '西藏自治区', '5402', '日喀则市', '540230', '康马县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540231', '5402', '00,54,5402', '定结县', '54', '西藏自治区', '5402', '日喀则市', '540231', '定结县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540232', '5402', '00,54,5402', '仲巴县', '54', '西藏自治区', '5402', '日喀则市', '540232', '仲巴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540233', '5402', '00,54,5402', '亚东县', '54', '西藏自治区', '5402', '日喀则市', '540233', '亚东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540234', '5402', '00,54,5402', '吉隆县', '54', '西藏自治区', '5402', '日喀则市', '540234', '吉隆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653226', '6532', '00,65,6532', '于田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653226', '于田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653227', '6532', '00,65,6532', '民丰县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653227', '民丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6540', '65', '00,65', '伊犁哈萨克自治州', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654002', '6540', '00,65,6540', '伊宁市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654002', '伊宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654003', '6540', '00,65,6540', '奎屯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654003', '奎屯市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654004', '6540', '00,65,6540', '霍尔果斯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654004', '霍尔果斯市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654021', '6540', '00,65,6540', '伊宁县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654021', '伊宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654022', '6540', '00,65,6540', '察布查尔锡伯自治县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654022', '察布查尔锡伯自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654023', '6540', '00,65,6540', '霍城县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654023', '霍城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654024', '6540', '00,65,6540', '巩留县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654024', '巩留县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654025', '6540', '00,65,6540', '新源县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654025', '新源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654026', '6540', '00,65,6540', '昭苏县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654026', '昭苏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654027', '6540', '00,65,6540', '特克斯县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654027', '特克斯县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654028', '6540', '00,65,6540', '尼勒克县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654028', '尼勒克县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6542', '65', '00,65', '塔城地区', '65', '新疆维吾尔自治区', '6542', '塔城地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654201', '6542', '00,65,6542', '塔城市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654201', '塔城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654202', '6542', '00,65,6542', '乌苏市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654202', '乌苏市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654221', '6542', '00,65,6542', '额敏县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654221', '额敏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654223', '6542', '00,65,6542', '沙湾县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654223', '沙湾县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654224', '6542', '00,65,6542', '托里县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654224', '托里县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654225', '6542', '00,65,6542', '裕民县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654225', '裕民县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654226', '6542', '00,65,6542', '和布克赛尔蒙古自治县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654226', '和布克赛尔蒙古自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6543', '65', '00,65', '阿勒泰地区', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654301', '6543', '00,65,6543', '阿勒泰市', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654301', '阿勒泰市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654321', '6543', '00,65,6543', '布尔津县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654321', '布尔津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654322', '6543', '00,65,6543', '富蕴县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654322', '富蕴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654323', '6543', '00,65,6543', '福海县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654323', '福海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654324', '6543', '00,65,6543', '哈巴河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654324', '哈巴河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654325', '6543', '00,65,6543', '青河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654325', '青河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654326', '6543', '00,65,6543', '吉木乃县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654326', '吉木乃县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6590', '65', '00,65', '自治区直辖县级行政区', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659001', '6590', '00,65,6590', '石河子市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659001', '石河子市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540622', '5406', '00,54,5406', '比如县', '54', '西藏自治区', '5406', '那曲市', '540622', '比如县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650109', '6501', '00,65,6501', '米东区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650109', '米东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650121', '6501', '00,65,6501', '乌鲁木齐县', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650121', '乌鲁木齐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6502', '65', '00,65', '克拉玛依市', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650202', '6502', '00,65,6502', '独山子区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650202', '独山子区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650203', '6502', '00,65,6502', '克拉玛依区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650203', '克拉玛依区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650204', '6502', '00,65,6502', '白碱滩区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650204', '白碱滩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650205', '6502', '00,65,6502', '乌尔禾区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650205', '乌尔禾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6504', '65', '00,65', '吐鲁番市', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650402', '6504', '00,65,6504', '高昌区', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650402', '高昌区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650421', '6504', '00,65,6504', '鄯善县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650421', '鄯善县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650422', '6504', '00,65,6504', '托克逊县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650422', '托克逊县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6505', '65', '00,65', '哈密市', '65', '新疆维吾尔自治区', '6505', '哈密市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5326', '53', '00,53', '文山壮族苗族自治州', '53', '云南省', '5326', '文山壮族苗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532601', '5326', '00,53,5326', '文山市', '53', '云南省', '5326', '文山壮族苗族自治州', '532601', '文山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532622', '5326', '00,53,5326', '砚山县', '53', '云南省', '5326', '文山壮族苗族自治州', '532622', '砚山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532623', '5326', '00,53,5326', '西畴县', '53', '云南省', '5326', '文山壮族苗族自治州', '532623', '西畴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532624', '5326', '00,53,5326', '麻栗坡县', '53', '云南省', '5326', '文山壮族苗族自治州', '532624', '麻栗坡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532625', '5326', '00,53,5326', '马关县', '53', '云南省', '5326', '文山壮族苗族自治州', '532625', '马关县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532626', '5326', '00,53,5326', '丘北县', '53', '云南省', '5326', '文山壮族苗族自治州', '532626', '丘北县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532627', '5326', '00,53,5326', '广南县', '53', '云南省', '5326', '文山壮族苗族自治州', '532627', '广南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532628', '5326', '00,53,5326', '富宁县', '53', '云南省', '5326', '文山壮族苗族自治州', '532628', '富宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5328', '53', '00,53', '西双版纳傣族自治州', '53', '云南省', '5328', '西双版纳傣族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532801', '5328', '00,53,5328', '景洪市', '53', '云南省', '5328', '西双版纳傣族自治州', '532801', '景洪市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532822', '5328', '00,53,5328', '勐海县', '53', '云南省', '5328', '西双版纳傣族自治州', '532822', '勐海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532823', '5328', '00,53,5328', '勐腊县', '53', '云南省', '5328', '西双版纳傣族自治州', '532823', '勐腊县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5329', '53', '00,53', '大理白族自治州', '53', '云南省', '5329', '大理白族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532901', '5329', '00,53,5329', '大理市', '53', '云南省', '5329', '大理白族自治州', '532901', '大理市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532922', '5329', '00,53,5329', '漾濞彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532922', '漾濞彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532923', '5329', '00,53,5329', '祥云县', '53', '云南省', '5329', '大理白族自治州', '532923', '祥云县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532924', '5329', '00,53,5329', '宾川县', '53', '云南省', '5329', '大理白族自治州', '532924', '宾川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532925', '5329', '00,53,5329', '弥渡县', '53', '云南省', '5329', '大理白族自治州', '532925', '弥渡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532926', '5329', '00,53,5329', '南涧彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532926', '南涧彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532927', '5329', '00,53,5329', '巍山彝族回族自治县', '53', '云南省', '5329', '大理白族自治州', '532927', '巍山彝族回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532928', '5329', '00,53,5329', '永平县', '53', '云南省', '5329', '大理白族自治州', '532928', '永平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532929', '5329', '00,53,5329', '云龙县', '53', '云南省', '5329', '大理白族自治州', '532929', '云龙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532930', '5329', '00,53,5329', '洱源县', '53', '云南省', '5329', '大理白族自治州', '532930', '洱源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532931', '5329', '00,53,5329', '剑川县', '53', '云南省', '5329', '大理白族自治州', '532931', '剑川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532932', '5329', '00,53,5329', '鹤庆县', '53', '云南省', '5329', '大理白族自治州', '532932', '鹤庆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5331', '53', '00,53', '德宏傣族景颇族自治州', '53', '云南省', '5331', '德宏傣族景颇族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533102', '5331', '00,53,5331', '瑞丽市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533102', '瑞丽市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533103', '5331', '00,53,5331', '芒市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533103', '芒市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533122', '5331', '00,53,5331', '梁河县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533122', '梁河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533123', '5331', '00,53,5331', '盈江县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533123', '盈江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533124', '5331', '00,53,5331', '陇川县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533124', '陇川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5333', '53', '00,53', '怒江傈僳族自治州', '53', '云南省', '5333', '怒江傈僳族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533301', '5333', '00,53,5333', '泸水市', '53', '云南省', '5333', '怒江傈僳族自治州', '533301', '泸水市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533323', '5333', '00,53,5333', '福贡县', '53', '云南省', '5333', '怒江傈僳族自治州', '533323', '福贡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533324', '5333', '00,53,5333', '贡山独龙族怒族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533324', '贡山独龙族怒族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540623', '5406', '00,54,5406', '聂荣县', '54', '西藏自治区', '5406', '那曲市', '540623', '聂荣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540624', '5406', '00,54,5406', '安多县', '54', '西藏自治区', '5406', '那曲市', '540624', '安多县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540625', '5406', '00,54,5406', '申扎县', '54', '西藏自治区', '5406', '那曲市', '540625', '申扎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540626', '5406', '00,54,5406', '索县', '54', '西藏自治区', '5406', '那曲市', '540626', '索县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540627', '5406', '00,54,5406', '班戈县', '54', '西藏自治区', '5406', '那曲市', '540627', '班戈县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540628', '5406', '00,54,5406', '巴青县', '54', '西藏自治区', '5406', '那曲市', '540628', '巴青县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540629', '5406', '00,54,5406', '尼玛县', '54', '西藏自治区', '5406', '那曲市', '540629', '尼玛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540630', '5406', '00,54,5406', '双湖县', '54', '西藏自治区', '5406', '那曲市', '540630', '双湖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5425', '54', '00,54', '阿里地区', '54', '西藏自治区', '5425', '阿里地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('542521', '5425', '00,54,5425', '普兰县', '54', '西藏自治区', '5425', '阿里地区', '542521', '普兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('542522', '5425', '00,54,5425', '札达县', '54', '西藏自治区', '5425', '阿里地区', '542522', '札达县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('542523', '5425', '00,54,5425', '噶尔县', '54', '西藏自治区', '5425', '阿里地区', '542523', '噶尔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('542524', '5425', '00,54,5425', '日土县', '54', '西藏自治区', '5425', '阿里地区', '542524', '日土县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('542525', '5425', '00,54,5425', '革吉县', '54', '西藏自治区', '5425', '阿里地区', '542525', '革吉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('542526', '5425', '00,54,5425', '改则县', '54', '西藏自治区', '5425', '阿里地区', '542526', '改则县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('542527', '5425', '00,54,5425', '措勤县', '54', '西藏自治区', '5425', '阿里地区', '542527', '措勤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('61', '00', '00', '陕西省', '61', '陕西省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6101', '61', '00,61', '西安市', '61', '陕西省', '6101', '西安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610102', '6101', '00,61,6101', '新城区', '61', '陕西省', '6101', '西安市', '610102', '新城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610103', '6101', '00,61,6101', '碑林区', '61', '陕西省', '6101', '西安市', '610103', '碑林区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610104', '6101', '00,61,6101', '莲湖区', '61', '陕西省', '6101', '西安市', '610104', '莲湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610111', '6101', '00,61,6101', '灞桥区', '61', '陕西省', '6101', '西安市', '610111', '灞桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610112', '6101', '00,61,6101', '未央区', '61', '陕西省', '6101', '西安市', '610112', '未央区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610113', '6101', '00,61,6101', '雁塔区', '61', '陕西省', '6101', '西安市', '610113', '雁塔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610114', '6101', '00,61,6101', '阎良区', '61', '陕西省', '6101', '西安市', '610114', '阎良区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610115', '6101', '00,61,6101', '临潼区', '61', '陕西省', '6101', '西安市', '610115', '临潼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610116', '6101', '00,61,6101', '长安区', '61', '陕西省', '6101', '西安市', '610116', '长安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610117', '6101', '00,61,6101', '高陵区', '61', '陕西省', '6101', '西安市', '610117', '高陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610118', '6101', '00,61,6101', '鄠邑区', '61', '陕西省', '6101', '西安市', '610118', '鄠邑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610122', '6101', '00,61,6101', '蓝田县', '61', '陕西省', '6101', '西安市', '610122', '蓝田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610124', '6101', '00,61,6101', '周至县', '61', '陕西省', '6101', '西安市', '610124', '周至县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6102', '61', '00,61', '铜川市', '61', '陕西省', '6102', '铜川市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610202', '6102', '00,61,6102', '王益区', '61', '陕西省', '6102', '铜川市', '610202', '王益区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610203', '6102', '00,61,6102', '印台区', '61', '陕西省', '6102', '铜川市', '610203', '印台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610204', '6102', '00,61,6102', '耀州区', '61', '陕西省', '6102', '铜川市', '610204', '耀州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610222', '6102', '00,61,6102', '宜君县', '61', '陕西省', '6102', '铜川市', '610222', '宜君县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6103', '61', '00,61', '宝鸡市', '61', '陕西省', '6103', '宝鸡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632823', '6328', '00,63,6328', '天峻县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632823', '天峻县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('64', '00', '00', '宁夏回族自治区', '64', '宁夏回族自治区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6401', '64', '00,64', '银川市', '64', '宁夏回族自治区', '6401', '银川市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640104', '6401', '00,64,6401', '兴庆区', '64', '宁夏回族自治区', '6401', '银川市', '640104', '兴庆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640105', '6401', '00,64,6401', '西夏区', '64', '宁夏回族自治区', '6401', '银川市', '640105', '西夏区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640106', '6401', '00,64,6401', '金凤区', '64', '宁夏回族自治区', '6401', '银川市', '640106', '金凤区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640121', '6401', '00,64,6401', '永宁县', '64', '宁夏回族自治区', '6401', '银川市', '640121', '永宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640122', '6401', '00,64,6401', '贺兰县', '64', '宁夏回族自治区', '6401', '银川市', '640122', '贺兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640181', '6401', '00,64,6401', '灵武市', '64', '宁夏回族自治区', '6401', '银川市', '640181', '灵武市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6402', '64', '00,64', '石嘴山市', '64', '宁夏回族自治区', '6402', '石嘴山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640202', '6402', '00,64,6402', '大武口区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640202', '大武口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640205', '6402', '00,64,6402', '惠农区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640205', '惠农区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640221', '6402', '00,64,6402', '平罗县', '64', '宁夏回族自治区', '6402', '石嘴山市', '640221', '平罗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6403', '64', '00,64', '吴忠市', '64', '宁夏回族自治区', '6403', '吴忠市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640302', '6403', '00,64,6403', '利通区', '64', '宁夏回族自治区', '6403', '吴忠市', '640302', '利通区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640303', '6403', '00,64,6403', '红寺堡区', '64', '宁夏回族自治区', '6403', '吴忠市', '640303', '红寺堡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640323', '6403', '00,64,6403', '盐池县', '64', '宁夏回族自治区', '6403', '吴忠市', '640323', '盐池县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640324', '6403', '00,64,6403', '同心县', '64', '宁夏回族自治区', '6403', '吴忠市', '640324', '同心县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640381', '6403', '00,64,6403', '青铜峡市', '64', '宁夏回族自治区', '6403', '吴忠市', '640381', '青铜峡市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6404', '64', '00,64', '固原市', '64', '宁夏回族自治区', '6404', '固原市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640402', '6404', '00,64,6404', '原州区', '64', '宁夏回族自治区', '6404', '固原市', '640402', '原州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500109', '5001', '00,50,5001', '北碚区', '50', '重庆市', '5001', '重庆市', '500109', '北碚区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511722', '5117', '00,51,5117', '宣汉县', '51', '四川省', '5117', '达州市', '511722', '宣汉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511723', '5117', '00,51,5117', '开江县', '51', '四川省', '5117', '达州市', '511723', '开江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632224', '6322', '00,63,6322', '刚察县', '63', '青海省', '6322', '海北藏族自治州', '632224', '刚察县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6323', '63', '00,63', '黄南藏族自治州', '63', '青海省', '6323', '黄南藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632321', '6323', '00,63,6323', '同仁县', '63', '青海省', '6323', '黄南藏族自治州', '632321', '同仁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632322', '6323', '00,63,6323', '尖扎县', '63', '青海省', '6323', '黄南藏族自治州', '632322', '尖扎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632323', '6323', '00,63,6323', '泽库县', '63', '青海省', '6323', '黄南藏族自治州', '632323', '泽库县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632324', '6323', '00,63,6323', '河南蒙古族自治县', '63', '青海省', '6323', '黄南藏族自治州', '632324', '河南蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6325', '63', '00,63', '海南藏族自治州', '63', '青海省', '6325', '海南藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632521', '6325', '00,63,6325', '共和县', '63', '青海省', '6325', '海南藏族自治州', '632521', '共和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632522', '6325', '00,63,6325', '同德县', '63', '青海省', '6325', '海南藏族自治州', '632522', '同德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632523', '6325', '00,63,6325', '贵德县', '63', '青海省', '6325', '海南藏族自治州', '632523', '贵德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632524', '6325', '00,63,6325', '兴海县', '63', '青海省', '6325', '海南藏族自治州', '632524', '兴海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632525', '6325', '00,63,6325', '贵南县', '63', '青海省', '6325', '海南藏族自治州', '632525', '贵南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6326', '63', '00,63', '果洛藏族自治州', '63', '青海省', '6326', '果洛藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632621', '6326', '00,63,6326', '玛沁县', '63', '青海省', '6326', '果洛藏族自治州', '632621', '玛沁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632622', '6326', '00,63,6326', '班玛县', '63', '青海省', '6326', '果洛藏族自治州', '632622', '班玛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632623', '6326', '00,63,6326', '甘德县', '63', '青海省', '6326', '果洛藏族自治州', '632623', '甘德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632624', '6326', '00,63,6326', '达日县', '63', '青海省', '6326', '果洛藏族自治州', '632624', '达日县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632625', '6326', '00,63,6326', '久治县', '63', '青海省', '6326', '果洛藏族自治州', '632625', '久治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632626', '6326', '00,63,6326', '玛多县', '63', '青海省', '6326', '果洛藏族自治州', '632626', '玛多县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6327', '63', '00,63', '玉树藏族自治州', '63', '青海省', '6327', '玉树藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632701', '6327', '00,63,6327', '玉树市', '63', '青海省', '6327', '玉树藏族自治州', '632701', '玉树市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632722', '6327', '00,63,6327', '杂多县', '63', '青海省', '6327', '玉树藏族自治州', '632722', '杂多县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632723', '6327', '00,63,6327', '称多县', '63', '青海省', '6327', '玉树藏族自治州', '632723', '称多县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632724', '6327', '00,63,6327', '治多县', '63', '青海省', '6327', '玉树藏族自治州', '632724', '治多县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632725', '6327', '00,63,6327', '囊谦县', '63', '青海省', '6327', '玉树藏族自治州', '632725', '囊谦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632726', '6327', '00,63,6327', '曲麻莱县', '63', '青海省', '6327', '玉树藏族自治州', '632726', '曲麻莱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6328', '63', '00,63', '海西蒙古族藏族自治州', '63', '青海省', '6328', '海西蒙古族藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632801', '6328', '00,63,6328', '格尔木市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632801', '格尔木市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632802', '6328', '00,63,6328', '德令哈市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632802', '德令哈市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632803', '6328', '00,63,6328', '茫崖市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632803', '茫崖市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632821', '6328', '00,63,6328', '乌兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632821', '乌兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540236', '5402', '00,54,5402', '萨嘎县', '54', '西藏自治区', '5402', '日喀则市', '540236', '萨嘎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540237', '5402', '00,54,5402', '岗巴县', '54', '西藏自治区', '5402', '日喀则市', '540237', '岗巴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5403', '54', '00,54', '昌都市', '54', '西藏自治区', '5403', '昌都市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540302', '5403', '00,54,5403', '卡若区', '54', '西藏自治区', '5403', '昌都市', '540302', '卡若区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540321', '5403', '00,54,5403', '江达县', '54', '西藏自治区', '5403', '昌都市', '540321', '江达县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540322', '5403', '00,54,5403', '贡觉县', '54', '西藏自治区', '5403', '昌都市', '540322', '贡觉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540323', '5403', '00,54,5403', '类乌齐县', '54', '西藏自治区', '5403', '昌都市', '540323', '类乌齐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540324', '5403', '00,54,5403', '丁青县', '54', '西藏自治区', '5403', '昌都市', '540324', '丁青县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540325', '5403', '00,54,5403', '察雅县', '54', '西藏自治区', '5403', '昌都市', '540325', '察雅县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540326', '5403', '00,54,5403', '八宿县', '54', '西藏自治区', '5403', '昌都市', '540326', '八宿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540327', '5403', '00,54,5403', '左贡县', '54', '西藏自治区', '5403', '昌都市', '540327', '左贡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540328', '5403', '00,54,5403', '芒康县', '54', '西藏自治区', '5403', '昌都市', '540328', '芒康县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540329', '5403', '00,54,5403', '洛隆县', '54', '西藏自治区', '5403', '昌都市', '540329', '洛隆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540330', '5403', '00,54,5403', '边坝县', '54', '西藏自治区', '5403', '昌都市', '540330', '边坝县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5404', '54', '00,54', '林芝市', '54', '西藏自治区', '5404', '林芝市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540402', '5404', '00,54,5404', '巴宜区', '54', '西藏自治区', '5404', '林芝市', '540402', '巴宜区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540421', '5404', '00,54,5404', '工布江达县', '54', '西藏自治区', '5404', '林芝市', '540421', '工布江达县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540422', '5404', '00,54,5404', '米林县', '54', '西藏自治区', '5404', '林芝市', '540422', '米林县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540423', '5404', '00,54,5404', '墨脱县', '54', '西藏自治区', '5404', '林芝市', '540423', '墨脱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540424', '5404', '00,54,5404', '波密县', '54', '西藏自治区', '5404', '林芝市', '540424', '波密县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540425', '5404', '00,54,5404', '察隅县', '54', '西藏自治区', '5404', '林芝市', '540425', '察隅县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540426', '5404', '00,54,5404', '朗县', '54', '西藏自治区', '5404', '林芝市', '540426', '朗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5405', '54', '00,54', '山南市', '54', '西藏自治区', '5405', '山南市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540502', '5405', '00,54,5405', '乃东区', '54', '西藏自治区', '5405', '山南市', '540502', '乃东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540521', '5405', '00,54,5405', '扎囊县', '54', '西藏自治区', '5405', '山南市', '540521', '扎囊县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540522', '5405', '00,54,5405', '贡嘎县', '54', '西藏自治区', '5405', '山南市', '540522', '贡嘎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540523', '5405', '00,54,5405', '桑日县', '54', '西藏自治区', '5405', '山南市', '540523', '桑日县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540524', '5405', '00,54,5405', '琼结县', '54', '西藏自治区', '5405', '山南市', '540524', '琼结县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540525', '5405', '00,54,5405', '曲松县', '54', '西藏自治区', '5405', '山南市', '540525', '曲松县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540526', '5405', '00,54,5405', '措美县', '54', '西藏自治区', '5405', '山南市', '540526', '措美县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540527', '5405', '00,54,5405', '洛扎县', '54', '西藏自治区', '5405', '山南市', '540527', '洛扎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540528', '5405', '00,54,5405', '加查县', '54', '西藏自治区', '5405', '山南市', '540528', '加查县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540529', '5405', '00,54,5405', '隆子县', '54', '西藏自治区', '5405', '山南市', '540529', '隆子县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540530', '5405', '00,54,5405', '错那县', '54', '西藏自治区', '5405', '山南市', '540530', '错那县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540531', '5405', '00,54,5405', '浪卡子县', '54', '西藏自治区', '5405', '山南市', '540531', '浪卡子县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5406', '54', '00,54', '那曲市', '54', '西藏自治区', '5406', '那曲市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540602', '5406', '00,54,5406', '色尼区', '54', '西藏自治区', '5406', '那曲市', '540602', '色尼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540621', '5406', '00,54,5406', '嘉黎县', '54', '西藏自治区', '5406', '那曲市', '540621', '嘉黎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621102', '6211', '00,62,6211', '安定区', '62', '甘肃省', '6211', '定西市', '621102', '安定区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621121', '6211', '00,62,6211', '通渭县', '62', '甘肃省', '6211', '定西市', '621121', '通渭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621122', '6211', '00,62,6211', '陇西县', '62', '甘肃省', '6211', '定西市', '621122', '陇西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620200', '6202', '00,62,6202', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '620200', '嘉峪关市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6203', '62', '00,62', '金昌市', '62', '甘肃省', '6203', '金昌市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620302', '6203', '00,62,6203', '金川区', '62', '甘肃省', '6203', '金昌市', '620302', '金川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620321', '6203', '00,62,6203', '永昌县', '62', '甘肃省', '6203', '金昌市', '620321', '永昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6204', '62', '00,62', '白银市', '62', '甘肃省', '6204', '白银市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620402', '6204', '00,62,6204', '白银区', '62', '甘肃省', '6204', '白银市', '620402', '白银区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620403', '6204', '00,62,6204', '平川区', '62', '甘肃省', '6204', '白银市', '620403', '平川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620421', '6204', '00,62,6204', '靖远县', '62', '甘肃省', '6204', '白银市', '620421', '靖远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620422', '6204', '00,62,6204', '会宁县', '62', '甘肃省', '6204', '白银市', '620422', '会宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620423', '6204', '00,62,6204', '景泰县', '62', '甘肃省', '6204', '白银市', '620423', '景泰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6205', '62', '00,62', '天水市', '62', '甘肃省', '6205', '天水市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620502', '6205', '00,62,6205', '秦州区', '62', '甘肃省', '6205', '天水市', '620502', '秦州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620503', '6205', '00,62,6205', '麦积区', '62', '甘肃省', '6205', '天水市', '620503', '麦积区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620521', '6205', '00,62,6205', '清水县', '62', '甘肃省', '6205', '天水市', '620521', '清水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620522', '6205', '00,62,6205', '秦安县', '62', '甘肃省', '6205', '天水市', '620522', '秦安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620523', '6205', '00,62,6205', '甘谷县', '62', '甘肃省', '6205', '天水市', '620523', '甘谷县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650522', '6505', '00,65,6505', '伊吾县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650522', '伊吾县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6523', '65', '00,65', '昌吉回族自治州', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652301', '6523', '00,65,6523', '昌吉市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652301', '昌吉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652302', '6523', '00,65,6523', '阜康市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652302', '阜康市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652323', '6523', '00,65,6523', '呼图壁县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652323', '呼图壁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652324', '6523', '00,65,6523', '玛纳斯县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652324', '玛纳斯县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652325', '6523', '00,65,6523', '奇台县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652325', '奇台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652327', '6523', '00,65,6523', '吉木萨尔县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652327', '吉木萨尔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652328', '6523', '00,65,6523', '木垒哈萨克自治县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652328', '木垒哈萨克自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6527', '65', '00,65', '博尔塔拉蒙古自治州', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652701', '6527', '00,65,6527', '博乐市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652701', '博乐市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652702', '6527', '00,65,6527', '阿拉山口市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652702', '阿拉山口市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652722', '6527', '00,65,6527', '精河县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652722', '精河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652723', '6527', '00,65,6527', '温泉县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652723', '温泉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6528', '65', '00,65', '巴音郭楞蒙古自治州', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652801', '6528', '00,65,6528', '库尔勒市', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652801', '库尔勒市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652822', '6528', '00,65,6528', '轮台县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652822', '轮台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652823', '6528', '00,65,6528', '尉犁县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652823', '尉犁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652824', '6528', '00,65,6528', '若羌县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652824', '若羌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652825', '6528', '00,65,6528', '且末县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652825', '且末县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652826', '6528', '00,65,6528', '焉耆回族自治县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652826', '焉耆回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652827', '6528', '00,65,6528', '和静县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652827', '和静县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652828', '6528', '00,65,6528', '和硕县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652828', '和硕县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652829', '6528', '00,65,6528', '博湖县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652829', '博湖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6529', '65', '00,65', '阿克苏地区', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652901', '6529', '00,65,6529', '阿克苏市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652901', '阿克苏市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652902', '6529', '00,65,6529', '库车市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652902', '库车市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652922', '6529', '00,65,6529', '温宿县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652922', '温宿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652924', '6529', '00,65,6529', '沙雅县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652924', '沙雅县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652925', '6529', '00,65,6529', '新和县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652925', '新和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652926', '6529', '00,65,6529', '拜城县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652926', '拜城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652927', '6529', '00,65,6529', '乌什县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652927', '乌什县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652928', '6529', '00,65,6529', '阿瓦提县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652928', '阿瓦提县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652929', '6529', '00,65,6529', '柯坪县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652929', '柯坪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6530', '65', '00,65', '克孜勒苏柯尔克孜自治州', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653001', '6530', '00,65,6530', '阿图什市', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653001', '阿图什市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653022', '6530', '00,65,6530', '阿克陶县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653022', '阿克陶县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653023', '6530', '00,65,6530', '阿合奇县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653023', '阿合奇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653024', '6530', '00,65,6530', '乌恰县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653024', '乌恰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6531', '65', '00,65', '喀什地区', '65', '新疆维吾尔自治区', '6531', '喀什地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653101', '6531', '00,65,6531', '喀什市', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653101', '喀什市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653121', '6531', '00,65,6531', '疏附县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653121', '疏附县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653122', '6531', '00,65,6531', '疏勒县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653122', '疏勒县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653123', '6531', '00,65,6531', '英吉沙县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653123', '英吉沙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_REPORT_FILE
+-- ----------------------------
+-- DROP TABLE "BLADE_REPORT_FILE";
+CREATE TABLE "BLADE_REPORT_FILE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "NAME" NVARCHAR2(100) NOT NULL ,
+  "CONTENT" BLOB ,
+  "CREATE_TIME" DATE NOT NULL ,
+  "UPDATE_TIME" DATE NOT NULL ,
+  "IS_DELETED" NUMBER(11) DEFAULT 0
+
+
+
+
+
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_REPORT_FILE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_REPORT_FILE"."NAME" IS '文件名';
+COMMENT ON COLUMN "BLADE_REPORT_FILE"."CONTENT" IS '文件内容';
+COMMENT ON COLUMN "BLADE_REPORT_FILE"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_REPORT_FILE"."UPDATE_TIME" IS '更新时间';
+COMMENT ON COLUMN "BLADE_REPORT_FILE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_REPORT_FILE" IS '报表文件表';
+
+-- ----------------------------
+-- Table structure for BLADE_ROLE
+-- ----------------------------
+-- DROP TABLE "BLADE_ROLE";
+CREATE TABLE "BLADE_ROLE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "PARENT_ID" NUMBER(20) ,
+  "ROLE_NAME" NVARCHAR2(255) ,
+  "SORT" NUMBER(11) ,
+  "ROLE_ALIAS" NVARCHAR2(255) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_ROLE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_ROLE"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_ROLE"."PARENT_ID" IS '父主键';
+COMMENT ON COLUMN "BLADE_ROLE"."ROLE_NAME" IS '角色名';
+COMMENT ON COLUMN "BLADE_ROLE"."SORT" IS '排序';
+COMMENT ON COLUMN "BLADE_ROLE"."ROLE_ALIAS" IS '角色别名';
+COMMENT ON COLUMN "BLADE_ROLE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_ROLE" IS '角色表';
+
+-- ----------------------------
+-- Records of BLADE_ROLE
+-- ----------------------------
+INSERT INTO "BLADE_ROLE" VALUES ('1123598816738675201', '000000', '0', '超级管理员', '1', 'administrator', '0');
+INSERT INTO "BLADE_ROLE" VALUES ('1123598816738675202', '000000', '0', '用户', '2', 'user', '0');
+INSERT INTO "BLADE_ROLE" VALUES ('1123598816738675203', '000000', '1123598816738675202', '人事', '1', 'hr', '0');
+INSERT INTO "BLADE_ROLE" VALUES ('1123598816738675204', '000000', '1123598816738675202', '经理', '2', 'manager', '0');
+INSERT INTO "BLADE_ROLE" VALUES ('1123598816738675205', '000000', '1123598816738675202', '老板', '3', 'boss', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_ROLE_MENU
+-- ----------------------------
+-- DROP TABLE "BLADE_ROLE_MENU";
+CREATE TABLE "BLADE_ROLE_MENU" (
+  "ID" NUMBER(20) NOT NULL ,
+  "MENU_ID" NUMBER(20) ,
+  "ROLE_ID" NUMBER(20)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_ROLE_MENU"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_ROLE_MENU"."MENU_ID" IS '菜单ID';
+COMMENT ON COLUMN "BLADE_ROLE_MENU"."ROLE_ID" IS '角色ID';
+COMMENT ON TABLE "BLADE_ROLE_MENU" IS '角色菜单关联表';
+
+-- ----------------------------
+-- Records of BLADE_ROLE_MENU
+-- ----------------------------
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675401', '1123598815738675288', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675402', '1123598815738675289', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675403', '1123598815738675290', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675404', '1123598815738675291', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675405', '1123598815738675292', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675406', '1123598815738675293', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675407', '1123598815738675294', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675408', '1123598815738675295', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675409', '1123598815738675296', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675410', '1123598815738675297', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675411', '1123598815738675201', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675412', '1123598815738675202', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675413', '1123598815738675219', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675414', '1123598815738675220', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675415', '1123598815738675221', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675416', '1123598815738675222', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675417', '1123598815738675280', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675418', '1123598815738675281', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675419', '1123598815738675282', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675420', '1123598815738675283', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675421', '1123598815738675284', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675422', '1123598815738675285', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675423', '1123598815738675286', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675424', '1123598815738675287', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675425', '1123598815738675288', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675426', '1123598815738675289', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675427', '1123598815738675290', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675428', '1123598815738675291', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675429', '1123598815738675292', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675430', '1123598815738675293', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675431', '1123598815738675294', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675432', '1123598815738675295', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675433', '1123598815738675296', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675434', '1123598815738675297', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675435', '1123598815738675201', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675436', '1123598815738675202', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675437', '1123598815738675219', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675438', '1123598815738675220', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675439', '1123598815738675221', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675440', '1123598815738675222', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675441', '1123598815738675280', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675442', '1123598815738675281', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675443', '1123598815738675282', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675444', '1123598815738675283', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675445', '1123598815738675284', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675446', '1123598815738675285', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675447', '1123598815738675286', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675448', '1123598815738675287', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675449', '1123598815738675288', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675450', '1123598815738675289', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675451', '1123598815738675290', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675452', '1123598815738675291', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675453', '1123598815738675292', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675454', '1123598815738675293', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675455', '1123598815738675294', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675456', '1123598815738675295', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675457', '1123598815738675296', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675458', '1123598815738675297', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149888293856833539', '1123598815738675317', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666312130561', '1123598815738675201', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666370850818', '1123598815738675202', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666437959682', '1123598815738675219', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666505068546', '1123598815738675220', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666555400193', '1123598815738675221', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666614120449', '1123598815738675222', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666651869185', '1123598815738675280', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666723172353', '1123598815738675281', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666765115393', '1123598815738675282', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666815447041', '1123598815738675283', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666844807170', '1123598815738675284', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666886750210', '1123598815738675285', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666924498946', '1123598815738675286', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666966441986', '1123598815738675287', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667012579330', '1123598815738675288', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667054522370', '1123598815738675289', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667109048322', '1123598815738675290', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667146797058', '1123598815738675291', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667197128706', '1123598815738675292', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667234877441', '1123598815738675293', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667272626178', '1123598815738675294', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667314569218', '1123598815738675295', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667343929346', '1123598815738675296', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667398455298', '1123598815738675297', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667440398338', '1123598815738675210', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667478147073', '1123598815738675211', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667524284417', '1123598815738675212', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667574616065', '1123598815738675213', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667608170498', '1123598815738675214', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667641724929', '1123598815738675249', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667671085058', '1123598815738675215', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667708833793', '1123598815738675250', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667746582529', '1123598815738675216', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667784331265', '1123598815738675251', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667822080001', '1123598815738675217', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667843051522', '1123598815738675218', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667889188865', '1123598815738675252', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667926937602', '1123598815738675253', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667947909121', '1123598815738675254', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667989852161', '1123598815738675255', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668015017986', '1123598815738675266', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668061155330', '1123598815738675267', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668086321154', '1123598815738675268', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668136652802', '1123598815738675269', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668199567362', '1123598815738675270', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668262481922', '1123598815738675271', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668321202177', '1123598815738675272', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668367339521', '1123598815738675273', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668405088257', '1123598815738675274', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668438642689', '1123598815738675275', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668472197121', '1123598815738675276', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668509945858', '1123598815738675277', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668568666113', '1123598815738675278', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668631580673', '1123598815738675279', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668669329410', '1123598815738675298', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668719661057', '1123598815738675299', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668757409793', '1123598815738675301', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668803547138', '1123598815738675302', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668849684481', '1123598815738675303', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668883238913', '1123598815738675304', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668920987650', '1123598815738675305', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668950347777', '1123598815738675307', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668983902209', '1123598815738675308', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669013262338', '1123598815738675241', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669034233857', '1123598815738675242', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669055205378', '1123598815738675243', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669105537025', '1123598815738675244', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669164257282', '1123598815738675309', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669210394626', '1123598815738675310', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669243949058', '1123598815738675311', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669285892097', '1123598815738675312', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669336223745', '1123598815738675203', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669365583873', '1123598815738675204', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669394944001', '1123598815738675223', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669441081346', '1123598815738675224', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669487218689', '1123598815738675225', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669533356033', '1123598815738675226', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669571104770', '1123598815738675227', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669642407937', '1123598815738675228', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669671768065', '1123598815738675205', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225001', '1164733389668962251', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225002', '1164733389668962252', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225003', '1164733389668962253', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225004', '1164733389668962254', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225005', '1164733389668962255', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225006', '1164733389668962256', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226001', '1164733399668962201', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226002', '1164733399668962202', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226003', '1164733399668962203', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226004', '1164733399668962204', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226005', '1164733399668962205', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226006', '1164733399668962206', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226007', '1164733399668962207', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875227001', '1164733399669962201', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875227002', '1164733399669962202', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875227003', '1164733399669962203', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875227004', '1164733399669962204', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875228001', '1164733399669962301', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875228002', '1164733399669962302', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875228003', '1164733399669962303', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875228004', '1164733399669962304', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669696933889', '1123598815738675229', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669743071234', '1123598815738675230', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669797597186', '1123598815738675231', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669847928834', '1123598815738675232', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669919232001', '1123598815738675206', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669973757954', '1123598815738675233', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670019895298', '1123598815738675234', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670045061121', '1123598815738675235', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670095392770', '1123598815738675236', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670137335809', '1123598815738675207', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670196056065', '1123598815738675237', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670229610498', '1123598815738675238', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670267359234', '1123598815738675239', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670292525057', '1123598815738675240', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670355439617', '1123598815738675306', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670380605442', '1123598815738675208', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670443520001', '1123598815738675313', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670481268737', '1123598815738675314', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670506434561', '1123598815738675315', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670569349121', '1123598815738675316', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670594514945', '1123598815738675209', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670657429506', '1123598815738675245', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670682595330', '1123598815738675246', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670711955457', '1123598815738675247', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670745509889', '1123598815738675248', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670804230146', '1123598815738675256', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670841978881', '1123598815738675257', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670879727617', '1123598815738675258', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670913282050', '1123598815738675259', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670959419394', '1123598815738675260', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670988779521', '1123598815738675261', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891671039111170', '1123598815738675262', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891671068471297', '1123598815738675263', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891671110414338', '1123598815738675264', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891671152357378', '1123598815738675265', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272593873322991', '1161272593873321991', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272593873322992', '1161272593873321992', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272593873322993', '1161272593873321993', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272593873322994', '1161272593873321994', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272593873322995', '1161272593873321995', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272693873322991', '1164733369658963251', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272693873322992', '1164733369658963252', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272693873322993', '1164733369658963253', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272693873322994', '1164733369658963254', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272693873322995', '1164733369658963255', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272793873322991', '1164733379658963251', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272793873322992', '1164733379658963252', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272793873322993', '1164733379658963253', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272793873322994', '1164733379658963254', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272793873322995', '1164733379658963255', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873322991', '1164733389658963251', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222991', '1164733389658962251', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222992', '1164733389658962252', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222993', '1164733389658962253', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222994', '1164733389658962254', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222995', '1164733389658962255', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222996', '1164733389658962256', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675363', '1123598815738675201', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675364', '1123598815738675202', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675365', '1123598815738675219', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675366', '1123598815738675220', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675367', '1123598815738675221', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675368', '1123598815738675222', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675369', '1123598815738675280', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675370', '1123598815738675281', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675371', '1123598815738675282', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675372', '1123598815738675283', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675373', '1123598815738675284', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675374', '1123598815738675285', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675375', '1123598815738675286', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675376', '1123598815738675287', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675377', '1123598815738675288', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675378', '1123598815738675289', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675379', '1123598815738675290', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675380', '1123598815738675291', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675381', '1123598815738675292', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675382', '1123598815738675293', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675383', '1123598815738675294', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675384', '1123598815738675295', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675385', '1123598815738675296', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675386', '1123598815738675297', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675387', '1123598815738675201', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675388', '1123598815738675202', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675389', '1123598815738675219', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675390', '1123598815738675220', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675391', '1123598815738675221', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675392', '1123598815738675222', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675393', '1123598815738675280', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675394', '1123598815738675281', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675395', '1123598815738675282', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675396', '1123598815738675283', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675397', '1123598815738675284', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675398', '1123598815738675285', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675399', '1123598815738675286', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675400', '1123598815738675287', '1123598816738675203');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_ROLE_SCOPE
+-- ----------------------------
+-- DROP TABLE "BLADE_ROLE_SCOPE";
+CREATE TABLE "BLADE_ROLE_SCOPE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "SCOPE_CATEGORY" NUMBER(11) ,
+  "SCOPE_ID" NUMBER(20) ,
+  "ROLE_ID" NUMBER(20)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."SCOPE_CATEGORY" IS '权限类型(1:数据权限、2:接口权限)';
+COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."SCOPE_ID" IS '权限ID';
+COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."ROLE_ID" IS '角色ID';
+COMMENT ON TABLE "BLADE_ROLE_SCOPE" IS '角色数据权限关联表';
+
+-- ----------------------------
+-- Table structure for BLADE_SCOPE_API
+-- ----------------------------
+-- DROP TABLE "BLADE_SCOPE_API";
+CREATE TABLE "BLADE_SCOPE_API" (
+  "ID" NUMBER(20) NOT NULL ,
+  "MENU_ID" NUMBER(20) ,
+  "RESOURCE_CODE" NVARCHAR2(255) ,
+  "SCOPE_NAME" NVARCHAR2(255) ,
+  "SCOPE_PATH" NVARCHAR2(255) ,
+  "SCOPE_TYPE" NUMBER(11) ,
+  "REMARK" NVARCHAR2(255) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_SCOPE_API"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."MENU_ID" IS '菜单主键';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."RESOURCE_CODE" IS '资源编号';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."SCOPE_NAME" IS '接口权限名';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."SCOPE_PATH" IS '接口权限地址';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."SCOPE_TYPE" IS '接口权限类型';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."REMARK" IS '接口权限备注';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_SCOPE_API" IS '接口权限表';
+
+-- ----------------------------
+-- Table structure for BLADE_SCOPE_DATA
+-- ----------------------------
+-- DROP TABLE "BLADE_SCOPE_DATA";
+CREATE TABLE "BLADE_SCOPE_DATA" (
+  "ID" NUMBER(20) NOT NULL ,
+  "MENU_ID" NUMBER(20) ,
+  "RESOURCE_CODE" NVARCHAR2(255) ,
+  "SCOPE_NAME" NVARCHAR2(255) ,
+  "SCOPE_FIELD" NVARCHAR2(255) ,
+  "SCOPE_CLASS" NVARCHAR2(500) ,
+  "SCOPE_COLUMN" NVARCHAR2(255) ,
+  "SCOPE_TYPE" NUMBER(11) ,
+  "SCOPE_VALUE" NCLOB ,
+  "REMARK" NVARCHAR2(255) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."MENU_ID" IS '菜单主键';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."RESOURCE_CODE" IS '资源编号';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_NAME" IS '数据权限名称';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_FIELD" IS '数据权限字段';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_CLASS" IS '数据权限类名';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_COLUMN" IS '数据权限字段';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_TYPE" IS '数据权限类型';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_VALUE" IS '数据权限值域';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."REMARK" IS '数据权限备注';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_SCOPE_DATA" IS '数据权限表';
+
+-- ----------------------------
+-- Table structure for BLADE_SMS
+-- ----------------------------
+-- DROP TABLE "BLADE_SMS";
+CREATE TABLE "BLADE_SMS" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "CATEGORY" NUMBER(11) ,
+  "SMS_CODE" VARCHAR2(12 BYTE) ,
+  "TEMPLATE_ID" VARCHAR2(64 BYTE) ,
+  "ACCESS_KEY" NVARCHAR2(255) ,
+  "SECRET_KEY" NVARCHAR2(255) ,
+  "REGION_ID" NVARCHAR2(255) ,
+  "SIGN_NAME" VARCHAR2(64 BYTE) ,
+  "REMARK" NVARCHAR2(255) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_SMS"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_SMS"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_SMS"."CATEGORY" IS '分类';
+COMMENT ON COLUMN "BLADE_SMS"."SMS_CODE" IS '资源编号';
+COMMENT ON COLUMN "BLADE_SMS"."TEMPLATE_ID" IS '模板ID';
+COMMENT ON COLUMN "BLADE_SMS"."ACCESS_KEY" IS 'accessKey';
+COMMENT ON COLUMN "BLADE_SMS"."SECRET_KEY" IS 'secretKey';
+COMMENT ON COLUMN "BLADE_SMS"."REGION_ID" IS 'regionId';
+COMMENT ON COLUMN "BLADE_SMS"."SIGN_NAME" IS '短信签名';
+COMMENT ON COLUMN "BLADE_SMS"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_SMS"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_SMS"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_SMS"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_SMS"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_SMS"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_SMS"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_SMS"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_SMS" IS '短信配置表';
+
+-- ----------------------------
+-- Table structure for BLADE_TENANT
+-- ----------------------------
+-- DROP TABLE "BLADE_TENANT";
+CREATE TABLE "BLADE_TENANT" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "TENANT_NAME" NVARCHAR2(50) NOT NULL ,
+  "DOMAIN_URL" VARCHAR2(255 BYTE) ,
+  "BACKGROUND_URL" VARCHAR2(1000 BYTE) ,
+  "LINKMAN" NVARCHAR2(20) ,
+  "CONTACT_NUMBER" NVARCHAR2(20) ,
+  "ADDRESS" NVARCHAR2(255) ,
+  "ACCOUNT_NUMBER" NUMBER DEFAULT -1            ,
+  "EXPIRE_TIME" DATE ,
+  "PACKAGE_ID" NUMBER(20) ,
+  "DATASOURCE_ID" NUMBER(20) ,
+  "LICENSE_KEY" VARCHAR2(1000 BYTE) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_TENANT"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_TENANT"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_TENANT"."TENANT_NAME" IS '租户名称';
+COMMENT ON COLUMN "BLADE_TENANT"."DOMAIN_URL" IS '域名地址';
+COMMENT ON COLUMN "BLADE_TENANT"."BACKGROUND_URL" IS '系统背景';
+COMMENT ON COLUMN "BLADE_TENANT"."LINKMAN" IS '联系人';
+COMMENT ON COLUMN "BLADE_TENANT"."CONTACT_NUMBER" IS '联系电话';
+COMMENT ON COLUMN "BLADE_TENANT"."ADDRESS" IS '联系地址';
+COMMENT ON COLUMN "BLADE_TENANT"."ACCOUNT_NUMBER" IS '账号额度';
+COMMENT ON COLUMN "BLADE_TENANT"."EXPIRE_TIME" IS '过期时间';
+COMMENT ON COLUMN "BLADE_TENANT"."PACKAGE_ID" IS '产品包ID';
+COMMENT ON COLUMN "BLADE_TENANT"."DATASOURCE_ID" IS '数据源ID';
+COMMENT ON COLUMN "BLADE_TENANT"."LICENSE_KEY" IS '授权码';
+COMMENT ON COLUMN "BLADE_TENANT"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_TENANT"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_TENANT"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_TENANT"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_TENANT"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_TENANT"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_TENANT"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_TENANT" IS '租户表';
+
+-- ----------------------------
+-- Records of BLADE_TENANT
+-- ----------------------------
+INSERT INTO "BLADE_TENANT" VALUES ('1123598820738675201', '000000', '管理组', NULL, NULL, 'admin', '666666', '管理组', '-1', NULL, NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-01-01 00:00:39', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-01-01 00:00:39', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_TENANT_PACKAGE
+-- ----------------------------
+-- DROP TABLE "BLADE_TENANT_PACKAGE";
+CREATE TABLE "BLADE_TENANT_PACKAGE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "PACKAGE_NAME" NVARCHAR2(50) ,
+  "MENU_ID" NVARCHAR2(2000) ,
+  "REMARK" NVARCHAR2(255) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."PACKAGE_NAME" IS '产品包名';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."MENU_ID" IS '菜单ID';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_TENANT_PACKAGE" IS '租户产品表';
+
+-- ----------------------------
+-- Table structure for BLADE_TOP_MENU
+-- ----------------------------
+-- DROP TABLE "BLADE_TOP_MENU";
+CREATE TABLE "BLADE_TOP_MENU" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "CODE" NVARCHAR2(255) ,
+  "NAME" NVARCHAR2(255) ,
+  "SOURCE" NVARCHAR2(255) ,
+  "SORT" NUMBER(11) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_TOP_MENU"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."CODE" IS '顶部菜单编号';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."NAME" IS '顶部菜单名';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."SOURCE" IS '顶部菜单资源';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."SORT" IS '顶部菜单排序';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_TOP_MENU" IS '顶部菜单表';
+
+-- ----------------------------
+-- Table structure for BLADE_TOP_MENU_SETTING
+-- ----------------------------
+-- DROP TABLE "BLADE_TOP_MENU_SETTING";
+CREATE TABLE "BLADE_TOP_MENU_SETTING" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TOP_MENU_ID" NUMBER(20) ,
+  "MENU_ID" NUMBER(20)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_TOP_MENU_SETTING"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_TOP_MENU_SETTING"."TOP_MENU_ID" IS '顶部菜单主键';
+COMMENT ON COLUMN "BLADE_TOP_MENU_SETTING"."MENU_ID" IS '菜单主键';
+COMMENT ON TABLE "BLADE_TOP_MENU_SETTING" IS '顶部菜单配置表';
+
+-- ----------------------------
+-- Table structure for BLADE_USER
+-- ----------------------------
+-- DROP TABLE "BLADE_USER";
+CREATE TABLE "BLADE_USER" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "CODE" NVARCHAR2(12) ,
+  "USER_TYPE" NUMBER(6) ,
+  "ACCOUNT" NVARCHAR2(45) ,
+  "PASSWORD" NVARCHAR2(45) ,
+  "NAME" NVARCHAR2(20) ,
+  "REAL_NAME" NVARCHAR2(10) ,
+  "AVATAR" NVARCHAR2(500) ,
+  "EMAIL" NVARCHAR2(45) ,
+  "PHONE" NVARCHAR2(45) ,
+  "BIRTHDAY" DATE ,
+  "SEX" NUMBER(6) ,
+  "ROLE_ID" NVARCHAR2(1000) ,
+  "DEPT_ID" NVARCHAR2(1000) ,
+  "POST_ID" NVARCHAR2(1000) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_USER"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_USER"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_USER"."CODE" IS '用户编号';
+COMMENT ON COLUMN "BLADE_USER"."USER_TYPE" IS '用户平台';
+COMMENT ON COLUMN "BLADE_USER"."ACCOUNT" IS '账号';
+COMMENT ON COLUMN "BLADE_USER"."PASSWORD" IS '密码';
+COMMENT ON COLUMN "BLADE_USER"."NAME" IS '昵称';
+COMMENT ON COLUMN "BLADE_USER"."REAL_NAME" IS '真名';
+COMMENT ON COLUMN "BLADE_USER"."EMAIL" IS '邮箱';
+COMMENT ON COLUMN "BLADE_USER"."PHONE" IS '手机';
+COMMENT ON COLUMN "BLADE_USER"."BIRTHDAY" IS '生日';
+COMMENT ON COLUMN "BLADE_USER"."SEX" IS '性别';
+COMMENT ON COLUMN "BLADE_USER"."ROLE_ID" IS '角色ID';
+COMMENT ON COLUMN "BLADE_USER"."DEPT_ID" IS '部门ID';
+COMMENT ON COLUMN "BLADE_USER"."POST_ID" IS '岗位ID';
+COMMENT ON COLUMN "BLADE_USER"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_USER"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_USER"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_USER"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_USER"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_USER"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_USER"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_USER" IS '用户表';
+
+-- ----------------------------
+-- Records of BLADE_USER
+-- ----------------------------
+INSERT INTO "BLADE_USER" VALUES ('1123598821738675201', '000000', NULL, '1', 'admin', '90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad', '管理员', '管理员', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'admin@bladex.vip', '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675201', '1123598813738675201', '1123598817738675201', '1123598821738675201', '1123598813738675201', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_USER" VALUES ('1123598821738675202', '000000', NULL, '1', 'hr', '5e79b90f7bba52d54115f086e48f539016a27ec6', '人事', '人事', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'hr@bladex.vip', '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675203', '1123598813738675202', '1123598817738675207', '1123598821738675201', '1123598813738675201', TO_DATE('2019-04-27 17:03:10', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-04-27 17:03:10', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_USER" VALUES ('1123598821738675203', '000000', NULL, '1', 'manager', 'dfbaa3b61caa3a319f463cc165085aa8c822d2ce', '经理', '经理', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'manager@bladex.vip', '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675204', '1123598813738675202', '1123598817738675206', '1123598821738675201', '1123598813738675201', TO_DATE('2019-04-27 17:03:38', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-04-27 17:03:38', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_USER" VALUES ('1123598821738675204', '000000', NULL, '1', 'boss', 'abe57d23e18f7ad8ea99c86e430c90a05119a9d3', '老板', '老板', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'boss@bladex.vip', '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675205', '1123598813738675202', '1123598817738675201', '1123598821738675201', '1123598813738675201', TO_DATE('2019-04-27 17:03:55', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-04-27 17:03:55', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_USER_APP
+-- ----------------------------
+-- DROP TABLE "BLADE_USER_APP";
+CREATE TABLE "BLADE_USER_APP" (
+  "ID" NUMBER(20) NOT NULL ,
+  "USER_ID" NUMBER(20) ,
+  "USER_EXT" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_USER_APP"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_USER_APP"."USER_ID" IS '用户ID';
+COMMENT ON COLUMN "BLADE_USER_APP"."USER_EXT" IS '用户拓展信息';
+COMMENT ON TABLE "BLADE_USER_APP" IS '用户平台拓展表';
+
+-- ----------------------------
+-- Table structure for BLADE_USER_DEPT
+-- ----------------------------
+-- DROP TABLE "BLADE_USER_DEPT";
+CREATE TABLE "BLADE_USER_DEPT" (
+  "ID" NUMBER(20) NOT NULL ,
+  "USER_ID" NUMBER(20) ,
+  "DEPT_ID" NUMBER(20)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_USER_DEPT"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_USER_DEPT"."USER_ID" IS '用户ID';
+COMMENT ON COLUMN "BLADE_USER_DEPT"."DEPT_ID" IS '部门ID';
+COMMENT ON TABLE "BLADE_USER_DEPT" IS '用户部门表';
+
+-- ----------------------------
+-- Records of BLADE_USER_DEPT
+-- ----------------------------
+INSERT INTO "BLADE_USER_DEPT" VALUES ('1203503640757788674', '1123598821738675201', '1123598813738675201');
+INSERT INTO "BLADE_USER_DEPT" VALUES ('1203503653323923458', '1123598821738675202', '1123598813738675202');
+INSERT INTO "BLADE_USER_DEPT" VALUES ('1203503663402835969', '1123598821738675203', '1123598813738675202');
+INSERT INTO "BLADE_USER_DEPT" VALUES ('1203503672911323137', '1123598821738675204', '1123598813738675202');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_USER_OAUTH
+-- ----------------------------
+-- DROP TABLE "BLADE_USER_OAUTH";
+CREATE TABLE "BLADE_USER_OAUTH" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" VARCHAR2(12 BYTE) ,
+  "UUID" VARCHAR2(64 BYTE) ,
+  "USER_ID" NUMBER(20) ,
+  "USERNAME" VARCHAR2(32 BYTE) ,
+  "NICKNAME" VARCHAR2(64 BYTE) ,
+  "AVATAR" VARCHAR2(1000 BYTE) ,
+  "BLOG" VARCHAR2(50 BYTE) ,
+  "COMPANY" VARCHAR2(255 BYTE) ,
+  "LOCATION" VARCHAR2(255 BYTE) ,
+  "EMAIL" VARCHAR2(255 BYTE) ,
+  "REMARK" VARCHAR2(255 BYTE) ,
+  "GENDER" VARCHAR2(16 BYTE) ,
+  "SOURCE" VARCHAR2(16 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."UUID" IS '第三方系统用户ID';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."USER_ID" IS '用户ID';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."USERNAME" IS '账号';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."NICKNAME" IS '用户名';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."AVATAR" IS '头像';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."BLOG" IS '应用主页';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."COMPANY" IS '公司名';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."LOCATION" IS '地址';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."EMAIL" IS '邮件';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."GENDER" IS '性别';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."SOURCE" IS '来源';
+COMMENT ON TABLE "BLADE_USER_OAUTH" IS '用户第三方认证表';
+
+-- ----------------------------
+-- Table structure for BLADE_USER_OTHER
+-- ----------------------------
+-- DROP TABLE "BLADE_USER_OTHER";
+CREATE TABLE "BLADE_USER_OTHER" (
+  "ID" NUMBER(20) NOT NULL ,
+  "USER_ID" NUMBER(20) ,
+  "USER_EXT" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_USER_OTHER"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_USER_OTHER"."USER_ID" IS '用户ID';
+COMMENT ON COLUMN "BLADE_USER_OTHER"."USER_EXT" IS '用户拓展信息';
+COMMENT ON TABLE "BLADE_USER_OTHER" IS '用户平台拓展表';
+
+-- ----------------------------
+-- Table structure for BLADE_USER_WEB
+-- ----------------------------
+-- DROP TABLE "BLADE_USER_WEB";
+CREATE TABLE "BLADE_USER_WEB" (
+  "ID" NUMBER(20) NOT NULL ,
+  "USER_ID" NUMBER(20) ,
+  "USER_EXT" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_USER_WEB"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_USER_WEB"."USER_ID" IS '用户ID';
+COMMENT ON COLUMN "BLADE_USER_WEB"."USER_EXT" IS '用户拓展信息';
+COMMENT ON TABLE "BLADE_USER_WEB" IS '用户平台拓展表';
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_ATTACH
+-- ----------------------------
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0017502" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_ATTACH
+-- ----------------------------
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0011087" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0011850" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0013435" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0017501" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0024233" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0027137" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0031811" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_CLIENT
+-- ----------------------------
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012757" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_CLIENT
+-- ----------------------------
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011088" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011089" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011090" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011091" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011092" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011093" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011094" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011095" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011096" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011851" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011852" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011853" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011854" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011855" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011856" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011857" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011858" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011859" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012727" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012728" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012729" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012730" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012731" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012732" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012733" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012734" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012735" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013278" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013279" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013280" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013281" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013282" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013283" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013284" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013285" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013286" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013436" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013437" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013438" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013439" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013440" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013441" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013442" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013443" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013444" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017039" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017040" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017041" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017042" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017043" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017044" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017045" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017046" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017047" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017167" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017168" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017169" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017170" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017171" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017172" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017173" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017174" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017175" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019181" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019182" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019183" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019184" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019185" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019186" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019187" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019188" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019189" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019472" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019473" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019474" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019475" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019476" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019477" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019478" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019479" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019480" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020246" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020247" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020248" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020249" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020250" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020251" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020252" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020253" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020254" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021985" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021986" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021987" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021988" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021989" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021990" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021991" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021992" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021993" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023367" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023368" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023369" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023370" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023371" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023372" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023373" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023374" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023375" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0024234" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0024235" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0024236" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0024237" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0024238" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0024239" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0024240" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0024241" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0024242" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027138" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027139" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027140" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027141" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027142" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027143" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027144" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027145" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027146" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0031812" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0031813" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0031814" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0031815" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0031816" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0031817" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0031818" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0031819" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0031820" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_CODE
+-- ----------------------------
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0012758" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_CODE
+-- ----------------------------
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0011097" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0011860" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0012736" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0013287" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0013445" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0017048" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0017176" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0019190" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0019481" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0020255" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0021994" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0023376" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0024243" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0027147" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0031821" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_DATASOURCE
+-- ----------------------------
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0017121" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_DATASOURCE
+-- ----------------------------
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0011098" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0011861" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0013288" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0013446" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0017120" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0017177" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0019191" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0019482" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0020256" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0021995" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0023377" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0024244" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0027148" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0031822" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_DEPT
+-- ----------------------------
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0012759" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_DEPT
+-- ----------------------------
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0011099" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0011862" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0012737" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0013289" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0013447" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0017049" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0017178" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0019192" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0019483" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0020257" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0021996" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0023378" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0024245" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0027149" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0031823" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_DICT
+-- ----------------------------
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0012760" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_DICT
+-- ----------------------------
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0011100" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0011863" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0012738" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0013290" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0013448" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0017050" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0017179" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0019193" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0019484" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0020258" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0021997" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0023379" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0024246" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0027150" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0031824" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_DICT_BIZ
+-- ----------------------------
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0019296" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_DICT_BIZ
+-- ----------------------------
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0011101" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0011864" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0013291" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0013449" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0017180" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0019295" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0019485" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0020259" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0021998" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0023380" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0024247" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0027151" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0031825" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_LOG_API
+-- ----------------------------
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0012761" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_LOG_API
+-- ----------------------------
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0011102" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0011865" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0012739" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0013292" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0013450" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0017051" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0017181" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0019194" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0019486" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0020260" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0021999" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0023381" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0024248" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0027152" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0031826" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_LOG_ERROR
+-- ----------------------------
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0012762" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_LOG_ERROR
+-- ----------------------------
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0011103" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0011866" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0012740" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0013293" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0013451" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0017052" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0017182" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0019195" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0019487" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0020261" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0022000" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0023382" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0024249" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0027153" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0031827" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_LOG_USUAL
+-- ----------------------------
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0012763" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_LOG_USUAL
+-- ----------------------------
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0011104" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0011867" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0012741" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0013294" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0013452" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0017053" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0017183" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0019196" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0019488" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0020262" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0022001" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0023383" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0024250" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0027154" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0031828" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_MENU
+-- ----------------------------
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0012764" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_MENU
+-- ----------------------------
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0011105" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0011868" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0012742" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0013295" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0013453" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0017054" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0017184" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0019197" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0019489" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0020263" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0022002" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0023384" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0024251" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0027155" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0031829" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_MODEL
+-- ----------------------------
+ALTER TABLE "BLADE_MODEL" ADD CONSTRAINT "SYS_C0011707" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_MODEL
+-- ----------------------------
+ALTER TABLE "BLADE_MODEL" ADD CONSTRAINT "SYS_C0011706" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_MODEL_PROTOTYPE
+-- ----------------------------
+ALTER TABLE "BLADE_MODEL_PROTOTYPE" ADD CONSTRAINT "SYS_C0011709" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_MODEL_PROTOTYPE
+-- ----------------------------
+ALTER TABLE "BLADE_MODEL_PROTOTYPE" ADD CONSTRAINT "SYS_C0011708" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_NOTICE
+-- ----------------------------
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0012765" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_NOTICE
+-- ----------------------------
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0011106" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0011869" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0012743" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0013296" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0013454" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0017055" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0017185" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0019198" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0019490" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0020264" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0022003" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0023385" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0024252" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0027156" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0031830" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_OSS
+-- ----------------------------
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0012766" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_OSS
+-- ----------------------------
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0011107" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0011870" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0012744" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0013297" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0013455" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0017056" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0017186" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0019199" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0019491" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0020265" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0022004" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0023386" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0024253" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0027157" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0031831" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_PARAM
+-- ----------------------------
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0012767" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_PARAM
+-- ----------------------------
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0011108" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0011871" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0012745" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0013298" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0013456" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0017057" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0017187" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0019200" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0019492" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0020266" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0022005" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0023387" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0024254" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0027158" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0031832" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_POST
+-- ----------------------------
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0023620" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_POST
+-- ----------------------------
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0011109" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0011872" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0013299" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0013457" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0017188" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0023619" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0024255" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0027159" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0031833" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_PROCESS_LEAVE
+-- ----------------------------
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0012768" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_PROCESS_LEAVE
+-- ----------------------------
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0011110" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0011873" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0012746" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0013300" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0013458" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0017058" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0017189" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0019201" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0019493" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0020267" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0022006" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0023388" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0024256" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0027160" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0031834" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_REGION
+-- ----------------------------
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0013572" PRIMARY KEY ("CODE");
+
+-- ----------------------------
+-- Checks structure for table BLADE_REGION
+-- ----------------------------
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0011111" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0011112" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0011113" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0011874" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0011875" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0011876" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0013459" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0013460" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0013461" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0013569" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0013570" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0013571" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0017190" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0017191" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0017192" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0024257" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0024258" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0024259" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0027161" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0027162" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0027163" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0031835" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0031836" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0031837" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_REPORT_FILE
+-- ----------------------------
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0012230" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_REPORT_FILE
+-- ----------------------------
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0011114" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0011115" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0011116" CHECK ("CREATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0011117" CHECK ("UPDATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0012226" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0012227" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0012228" CHECK ("CREATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0012229" CHECK ("UPDATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0013462" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0013463" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0013464" CHECK ("CREATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0013465" CHECK ("UPDATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0024260" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0024261" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0024262" CHECK ("CREATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0024263" CHECK ("UPDATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0027164" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0027165" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0027166" CHECK ("CREATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0027167" CHECK ("UPDATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0031838" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0031839" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0031840" CHECK ("CREATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0031841" CHECK ("UPDATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_ROLE
+-- ----------------------------
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0012769" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_ROLE
+-- ----------------------------
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0011118" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0011877" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0012747" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0013301" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0013466" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0017059" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0017193" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0019202" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0019494" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0020268" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0022007" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0023389" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0024264" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0027168" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0031842" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_ROLE_MENU
+-- ----------------------------
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0012770" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_ROLE_MENU
+-- ----------------------------
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0011119" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0011878" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0012748" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0013302" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0013467" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0017060" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0017194" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0019203" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0019495" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0020269" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0022008" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0023390" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0024265" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0027169" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0031843" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_ROLE_SCOPE
+-- ----------------------------
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0012771" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_ROLE_SCOPE
+-- ----------------------------
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0011120" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0011879" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0012749" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0013303" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0013468" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0017061" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0017195" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0019204" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0019496" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0020270" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0022009" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0023391" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0024266" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0027170" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0031844" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_SCOPE_API
+-- ----------------------------
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0012772" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_SCOPE_API
+-- ----------------------------
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0011121" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0011880" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0012750" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0013304" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0013469" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0017062" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0017196" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0019205" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0019497" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0020271" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0022010" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0023392" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0024267" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0027171" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0031845" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_SCOPE_DATA
+-- ----------------------------
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0012773" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_SCOPE_DATA
+-- ----------------------------
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0011122" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0011881" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0012751" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0013305" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0013470" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0017063" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0017197" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0019206" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0019498" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0020272" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0022011" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0023393" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0024268" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0027172" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0031846" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_SMS
+-- ----------------------------
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0022202" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_SMS
+-- ----------------------------
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0011123" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0011882" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0013306" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0013471" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0017198" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0022201" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0023394" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0024269" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0027173" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0031847" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_TENANT
+-- ----------------------------
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0012774" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_TENANT
+-- ----------------------------
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0011124" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0011125" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0011883" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0011884" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0012752" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0012753" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0013307" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0013308" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0013472" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0013473" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0017064" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0017065" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0017199" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0017200" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0019207" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0019208" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0019499" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0019500" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0020273" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0020274" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0022012" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0022013" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0023395" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0023396" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0024270" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0024271" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0027174" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0027175" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0031848" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0031849" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_TENANT_PACKAGE
+-- ----------------------------
+ALTER TABLE "BLADE_TENANT_PACKAGE" ADD CONSTRAINT "SYS_C0014005" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_TENANT_PACKAGE
+-- ----------------------------
+ALTER TABLE "BLADE_TENANT_PACKAGE" ADD CONSTRAINT "SYS_C0011126" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT_PACKAGE" ADD CONSTRAINT "SYS_C0014004" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_TOP_MENU
+-- ----------------------------
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0012775" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_TOP_MENU
+-- ----------------------------
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0011127" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0011885" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0012754" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0013309" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0013474" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0017066" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0017201" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0019209" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0019501" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0020275" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0022014" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0023397" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0024272" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0027176" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0031850" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_TOP_MENU_SETTING
+-- ----------------------------
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0012776" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_TOP_MENU_SETTING
+-- ----------------------------
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0011128" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0011886" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0012755" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0013310" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0013475" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0017067" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0017202" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0019210" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0019502" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0020276" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0022015" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0023398" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0024273" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0027177" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0031851" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_USER
+-- ----------------------------
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0012777" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_USER
+-- ----------------------------
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0011129" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0011887" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0012756" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0013311" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0013476" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0017068" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0017203" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0019211" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0019503" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0020277" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0022016" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0023399" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0024274" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0027178" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0031852" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_USER_APP
+-- ----------------------------
+ALTER TABLE "BLADE_USER_APP" ADD CONSTRAINT "SYS_C0027609" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_USER_APP
+-- ----------------------------
+ALTER TABLE "BLADE_USER_APP" ADD CONSTRAINT "SYS_C0011130" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_APP" ADD CONSTRAINT "SYS_C0013477" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_APP" ADD CONSTRAINT "SYS_C0027608" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_APP" ADD CONSTRAINT "SYS_C0031853" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_USER_DEPT
+-- ----------------------------
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0019621" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_USER_DEPT
+-- ----------------------------
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0011131" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0011888" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0013312" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0013478" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0017204" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0019620" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0020278" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0022017" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0023400" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0024275" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0027179" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0031854" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_USER_OAUTH
+-- ----------------------------
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0013568" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_USER_OAUTH
+-- ----------------------------
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0011132" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0011889" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0013479" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0013567" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0017205" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0024276" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0027180" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0031855" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_USER_OTHER
+-- ----------------------------
+ALTER TABLE "BLADE_USER_OTHER" ADD CONSTRAINT "SYS_C0027611" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_USER_OTHER
+-- ----------------------------
+ALTER TABLE "BLADE_USER_OTHER" ADD CONSTRAINT "SYS_C0011133" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OTHER" ADD CONSTRAINT "SYS_C0013480" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OTHER" ADD CONSTRAINT "SYS_C0027610" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OTHER" ADD CONSTRAINT "SYS_C0031856" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_USER_WEB
+-- ----------------------------
+ALTER TABLE "BLADE_USER_WEB" ADD CONSTRAINT "SYS_C0027607" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_USER_WEB
+-- ----------------------------
+ALTER TABLE "BLADE_USER_WEB" ADD CONSTRAINT "SYS_C0011134" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_WEB" ADD CONSTRAINT "SYS_C0013481" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_WEB" ADD CONSTRAINT "SYS_C0027606" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_WEB" ADD CONSTRAINT "SYS_C0031857" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
diff --git a/skjcmanager/doc/sql/oracle/bladex-sword-oracle.sql b/skjcmanager/doc/sql/oracle/bladex-sword-oracle.sql
new file mode 100644
index 0000000..4c8ab59
--- /dev/null
+++ b/skjcmanager/doc/sql/oracle/bladex-sword-oracle.sql
@@ -0,0 +1,6498 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : oracle_localhost
+ Source Server Type    : Oracle
+ Source Server Version : 110200
+ Source Host           : 127.0.0.1:1521
+ Source Schema         : BLADEX
+
+ Target Server Type    : Oracle
+ Target Server Version : 110200
+ File Encoding         : 65001
+
+ Date: 07/08/2022 18:26:37
+*/
+
+
+-- ----------------------------
+-- Table structure for BLADE_ATTACH
+-- ----------------------------
+-- DROP TABLE "BLADE_ATTACH";
+CREATE TABLE "BLADE_ATTACH" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "LINK" VARCHAR2(1000 BYTE) ,
+  "DOMAIN_URL" VARCHAR2(500 BYTE) ,
+  "NAME" VARCHAR2(500 BYTE) ,
+  "ORIGINAL_NAME" VARCHAR2(500 BYTE) ,
+  "EXTENSION" VARCHAR2(12 BYTE) ,
+  "ATTACH_SIZE" NUMBER(20) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_ATTACH"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_ATTACH"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_ATTACH"."LINK" IS '附件地址';
+COMMENT ON COLUMN "BLADE_ATTACH"."DOMAIN_URL" IS '附件域名';
+COMMENT ON COLUMN "BLADE_ATTACH"."NAME" IS '附件名称';
+COMMENT ON COLUMN "BLADE_ATTACH"."ORIGINAL_NAME" IS '附件原名';
+COMMENT ON COLUMN "BLADE_ATTACH"."EXTENSION" IS '附件拓展名';
+COMMENT ON COLUMN "BLADE_ATTACH"."ATTACH_SIZE" IS '附件大小';
+COMMENT ON COLUMN "BLADE_ATTACH"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_ATTACH"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_ATTACH"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_ATTACH"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_ATTACH"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_ATTACH"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_ATTACH"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_ATTACH" IS '附件表';
+
+-- ----------------------------
+-- Table structure for BLADE_CLIENT
+-- ----------------------------
+-- DROP TABLE "BLADE_CLIENT";
+CREATE TABLE "BLADE_CLIENT" (
+  "ID" NUMBER(20) NOT NULL ,
+  "CLIENT_ID" NVARCHAR2(48) NOT NULL ,
+  "CLIENT_SECRET" NVARCHAR2(256) NOT NULL ,
+  "RESOURCE_IDS" NVARCHAR2(256) ,
+  "SCOPE" NVARCHAR2(256) NOT NULL ,
+  "AUTHORIZED_GRANT_TYPES" NVARCHAR2(256) NOT NULL ,
+  "WEB_SERVER_REDIRECT_URI" NVARCHAR2(256) ,
+  "AUTHORITIES" NVARCHAR2(256) ,
+  "ACCESS_TOKEN_VALIDITY" NUMBER(11) NOT NULL ,
+  "REFRESH_TOKEN_VALIDITY" NUMBER(11) NOT NULL ,
+  "ADDITIONAL_INFORMATION" NCLOB ,
+  "AUTOAPPROVE" NVARCHAR2(256) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) NOT NULL ,
+  "IS_DELETED" NUMBER(11) NOT NULL
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_CLIENT"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_CLIENT"."CLIENT_ID" IS '客户端ID';
+COMMENT ON COLUMN "BLADE_CLIENT"."CLIENT_SECRET" IS '客户端密钥';
+COMMENT ON COLUMN "BLADE_CLIENT"."RESOURCE_IDS" IS '资源集合';
+COMMENT ON COLUMN "BLADE_CLIENT"."SCOPE" IS '授权范围';
+COMMENT ON COLUMN "BLADE_CLIENT"."AUTHORIZED_GRANT_TYPES" IS '授权类型';
+COMMENT ON COLUMN "BLADE_CLIENT"."WEB_SERVER_REDIRECT_URI" IS '回调地址';
+COMMENT ON COLUMN "BLADE_CLIENT"."AUTHORITIES" IS '权限';
+COMMENT ON COLUMN "BLADE_CLIENT"."ACCESS_TOKEN_VALIDITY" IS '令牌过期秒数';
+COMMENT ON COLUMN "BLADE_CLIENT"."REFRESH_TOKEN_VALIDITY" IS '刷新令牌过期秒数';
+COMMENT ON COLUMN "BLADE_CLIENT"."ADDITIONAL_INFORMATION" IS '附加说明';
+COMMENT ON COLUMN "BLADE_CLIENT"."AUTOAPPROVE" IS '自动授权';
+COMMENT ON COLUMN "BLADE_CLIENT"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_CLIENT"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_CLIENT"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_CLIENT"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_CLIENT"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_CLIENT"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_CLIENT"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_CLIENT" IS '客户端表';
+
+-- ----------------------------
+-- Records of BLADE_CLIENT
+-- ----------------------------
+INSERT INTO "BLADE_CLIENT" VALUES ('1123598811738675201', 'sword', 'sword_secret', NULL, 'all', 'refresh_token,password,authorization_code,captcha,social', 'http://localhost:8888', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2019-03-24 10:40:55', 'SYYYY-MM-DD HH24:MI:SS'), '1123598815738675201', TO_DATE('2019-03-24 10:40:59', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_CLIENT" VALUES ('1123598811738675202', 'saber', 'saber_secret', NULL, 'all', 'refresh_token,password,authorization_code,captcha,social', 'http://localhost:1888', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2019-03-24 10:42:29', 'SYYYY-MM-DD HH24:MI:SS'), '1123598815738675201', TO_DATE('2019-03-24 10:42:32', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_CODE
+-- ----------------------------
+-- DROP TABLE "BLADE_CODE";
+CREATE TABLE "BLADE_CODE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "MODEL_ID" NUMBER(20) ,
+  "SERVICE_NAME" NVARCHAR2(64) ,
+  "CODE_NAME" NVARCHAR2(64) ,
+  "TABLE_NAME" NVARCHAR2(64) ,
+  "TABLE_PREFIX" NVARCHAR2(64) ,
+  "PK_NAME" NVARCHAR2(32) ,
+  "PACKAGE_NAME" NVARCHAR2(500) ,
+  "TEMPLATE_TYPE" NVARCHAR2(32) ,
+  "AUTHOR" NVARCHAR2(32) ,
+  "SUB_MODEL_ID" NVARCHAR2(32) ,
+  "SUB_FK_ID" NVARCHAR2(32) ,
+  "TREE_ID" NVARCHAR2(32) ,
+  "TREE_PID" NVARCHAR2(32) ,
+  "TREE_NAME" NVARCHAR2(64)  ,
+  "BASE_MODE" NUMBER(11) ,
+  "WRAP_MODE" NUMBER(11) ,
+  "FEIGN_MODE" NUMBER(11) ,
+  "CODE_STYLE" NVARCHAR2(32) ,
+  "API_PATH" NCLOB ,
+  "WEB_PATH" NCLOB ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_CODE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_CODE"."MODEL_ID" IS '数据模型主键';
+COMMENT ON COLUMN "BLADE_CODE"."SERVICE_NAME" IS '服务名称';
+COMMENT ON COLUMN "BLADE_CODE"."CODE_NAME" IS '模块名称';
+COMMENT ON COLUMN "BLADE_CODE"."TABLE_NAME" IS '表名';
+COMMENT ON COLUMN "BLADE_CODE"."TABLE_PREFIX" IS '表前缀';
+COMMENT ON COLUMN "BLADE_CODE"."PK_NAME" IS '主键名';
+COMMENT ON COLUMN "BLADE_CODE"."PACKAGE_NAME" IS '后端包名';
+COMMENT ON COLUMN "BLADE_CODE"."TEMPLATE_TYPE" IS '模版类型';
+COMMENT ON COLUMN "BLADE_CODE"."AUTHOR" IS '作者信息';
+COMMENT ON COLUMN "BLADE_CODE"."SUB_MODEL_ID" IS '子表模型主键';
+COMMENT ON COLUMN "BLADE_CODE"."SUB_FK_ID" IS '子表绑定外键';
+COMMENT ON COLUMN "BLADE_CODE"."TREE_ID" IS '树主键字段';
+COMMENT ON COLUMN "BLADE_CODE"."TREE_PID" IS '树父主键字段';
+COMMENT ON COLUMN "BLADE_CODE"."TREE_NAME" IS '树名称字段';
+COMMENT ON COLUMN "BLADE_CODE"."BASE_MODE" IS '基础业务模式';
+COMMENT ON COLUMN "BLADE_CODE"."WRAP_MODE" IS '包装器模式';
+COMMENT ON COLUMN "BLADE_CODE"."FEIGN_MODE" IS '远程调用模式';
+COMMENT ON COLUMN "BLADE_CODE"."CODE_STYLE" IS '代码风格';
+COMMENT ON COLUMN "BLADE_CODE"."API_PATH" IS '后端路径';
+COMMENT ON COLUMN "BLADE_CODE"."WEB_PATH" IS '前端路径';
+COMMENT ON COLUMN "BLADE_CODE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_CODE" IS '代码生成表';
+
+
+-- ----------------------------
+-- Table structure for BLADE_DATASOURCE
+-- ----------------------------
+-- DROP TABLE "BLADE_DATASOURCE";
+CREATE TABLE "BLADE_DATASOURCE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "NAME" NVARCHAR2(100) ,
+  "DRIVER_CLASS" NVARCHAR2(100) ,
+  "URL" NVARCHAR2(500) ,
+  "USERNAME" NVARCHAR2(45) ,
+  "PASSWORD" NVARCHAR2(45) ,
+  "REMARK" NVARCHAR2(500) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_DATASOURCE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."NAME" IS '名称';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."DRIVER_CLASS" IS '驱动类';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."URL" IS '链接地址';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."USERNAME" IS '用户名';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."PASSWORD" IS '密码';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_DATASOURCE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_DATASOURCE" IS '数据源配置表';
+
+-- ----------------------------
+-- Records of BLADE_DATASOURCE
+-- ----------------------------
+INSERT INTO "BLADE_DATASOURCE" VALUES ('1161483357481541634', 'mysql', 'com.mysql.cj.jdbc.Driver', 'jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true', 'root', 'root', 'mysql', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:06', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-08-08 12:20:06', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_DATASOURCE" VALUES ('1161483504353484802', 'postgresql', 'org.postgresql.Driver', 'jdbc:postgresql://127.0.0.1:5432/bladex', 'postgres', '123456', 'postgresql', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:02', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-08-08 12:20:02', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_DATASOURCE" VALUES ('1161483594023510018', 'oracle', 'oracle.jdbc.OracleDriver', 'jdbc:oracle:thin:@127.0.0.1:1521:orcl', 'BLADEX', 'BLADEX', 'oracle', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_DATASOURCE" VALUES ('1161483594023510020', 'sqlserver', 'com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex', 'bladex', 'bladex', 'sqlserver', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_DEPT
+-- ----------------------------
+-- DROP TABLE "BLADE_DEPT";
+CREATE TABLE "BLADE_DEPT" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "PARENT_ID" NUMBER(20) ,
+  "ANCESTORS" NCLOB ,
+  "DEPT_CATEGORY" NUMBER(11) ,
+  "DEPT_NAME" NVARCHAR2(45) ,
+  "FULL_NAME" NVARCHAR2(45) ,
+  "SORT" NUMBER(11) ,
+  "REMARK" NVARCHAR2(255) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_DEPT"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_DEPT"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_DEPT"."PARENT_ID" IS '父主键';
+COMMENT ON COLUMN "BLADE_DEPT"."ANCESTORS" IS '祖级列表';
+COMMENT ON COLUMN "BLADE_DEPT"."DEPT_CATEGORY" IS '部门类型';
+COMMENT ON COLUMN "BLADE_DEPT"."DEPT_NAME" IS '部门名';
+COMMENT ON COLUMN "BLADE_DEPT"."FULL_NAME" IS '部门全称';
+COMMENT ON COLUMN "BLADE_DEPT"."SORT" IS '排序';
+COMMENT ON COLUMN "BLADE_DEPT"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_DEPT"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_DEPT" IS '机构表';
+
+-- ----------------------------
+-- Records of BLADE_DEPT
+-- ----------------------------
+INSERT INTO "BLADE_DEPT" VALUES ('1123598813738675201', '000000', '0', '0', '1', '布雷德科技', '上海布雷德科技有限公司', '1', NULL, '0');
+INSERT INTO "BLADE_DEPT" VALUES ('1123598813738675202', '000000', '1123598813738675201', '0,1123598813738675201', '1', '常州布雷德', '常州布雷德科技有限公司', '1', NULL, '0');
+INSERT INTO "BLADE_DEPT" VALUES ('1123598813738675203', '000000', '1123598813738675201', '0,1123598813738675201', '1', '苏州布雷德', '苏州布雷德科技有限公司', '1', NULL, '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_DICT
+-- ----------------------------
+-- DROP TABLE "BLADE_DICT";
+CREATE TABLE "BLADE_DICT" (
+  "ID" NUMBER(20) NOT NULL ,
+  "PARENT_ID" NUMBER(20) ,
+  "CODE" NVARCHAR2(255) ,
+  "DICT_KEY" NVARCHAR2(255) ,
+  "DICT_VALUE" NVARCHAR2(255) ,
+  "SORT" NUMBER(11) ,
+  "REMARK" NVARCHAR2(255) ,
+  "IS_SEALED" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_DICT"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_DICT"."PARENT_ID" IS '父主键';
+COMMENT ON COLUMN "BLADE_DICT"."CODE" IS '字典码';
+COMMENT ON COLUMN "BLADE_DICT"."DICT_KEY" IS '字典值';
+COMMENT ON COLUMN "BLADE_DICT"."DICT_VALUE" IS '字典名称';
+COMMENT ON COLUMN "BLADE_DICT"."SORT" IS '排序';
+COMMENT ON COLUMN "BLADE_DICT"."REMARK" IS '字典备注';
+COMMENT ON COLUMN "BLADE_DICT"."IS_SEALED" IS '是否已封存';
+COMMENT ON COLUMN "BLADE_DICT"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_DICT" IS '字典表';
+
+-- ----------------------------
+-- Records of BLADE_DICT
+-- ----------------------------
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675201', '0', 'sex', '-1', '性别', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675202', '1123598814738675201', 'sex', '1', '男', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675203', '1123598814738675201', 'sex', '2', '女', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675204', '0', 'notice', '-1', '通知类型', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675205', '1123598814738675204', 'notice', '1', '发布通知', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675206', '1123598814738675204', 'notice', '2', '批转通知', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675207', '1123598814738675204', 'notice', '3', '转发通知', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675208', '1123598814738675204', 'notice', '4', '指示通知', '4', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675209', '1123598814738675204', 'notice', '5', '任免通知', '5', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675210', '1123598814738675204', 'notice', '6', '事务通知', '6', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675211', '0', 'menu_category', '-1', '菜单类型', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675212', '1123598814738675211', 'menu_category', '1', '菜单', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675213', '1123598814738675211', 'menu_category', '2', '按钮', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675214', '0', 'button_func', '-1', '按钮功能', '4', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675215', '1123598814738675214', 'button_func', '1', '工具栏', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675216', '1123598814738675214', 'button_func', '2', '操作栏', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675217', '1123598814738675214', 'button_func', '3', '工具操作栏', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675218', '0', 'yes_no', '-1', '是否', '5', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675219', '1123598814738675218', 'yes_no', '1', '否', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675220', '1123598814738675218', 'yes_no', '2', '是', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675221', '0', 'flow', '-1', '流程类型', '5', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675222', '1123598814738675221', 'flow', '1', '请假流程', '1', 'leave', '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675223', '1123598814738675221', 'flow', '2', '报销流程', '2', 'expense', '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675227', '0', 'org_category', '-1', '机构类型', '7', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675228', '1123598814738675227', 'org_category', '1', '公司', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675229', '1123598814738675227', 'org_category', '2', '部门', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675230', '1123598814738675227', 'org_category', '3', '小组', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675231', '0', 'data_scope_type', '-1', '数据权限', '8', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675232', '1123598814738675231', 'data_scope_type', '1', '全部可见', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675233', '1123598814738675231', 'data_scope_type', '2', '本人可见', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675234', '1123598814738675231', 'data_scope_type', '3', '所在机构可见', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675235', '1123598814738675231', 'data_scope_type', '4', '所在机构及子级可见', '4', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675236', '1123598814738675231', 'data_scope_type', '5', '自定义', '5', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675237', '0', 'api_scope_type', '-1', '接口权限', '10', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675238', '1123598814738675237', 'api_scope_type', '1', '系统接口', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675239', '1123598814738675237', 'api_scope_type', '2', '业务接口', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675240', '0', 'scope_category', '-1', '权限类型', '10', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675241', '1123598814738675240', 'scope_category', '1', '数据权限', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738675242', '1123598814738675240', 'scope_category', '2', '接口权限', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738676224', '0', 'oss', '-1', '对象存储类型', '6', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738676225', '1123598814738676224', 'oss', '1', 'minio', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738676226', '1123598814738676224', 'oss', '2', 'qiniu', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738676227', '1123598814738676224', 'oss', '3', 'ali', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738676228', '1123598814738676224', 'oss', '4', 'tencent', '4', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738677220', '0', 'sms', '-1', '短信服务类型', '11', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738677221', '1123598814738677220', 'sms', '1', 'yunpian', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738677222', '1123598814738677220', 'sms', '2', 'qiniu', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738677223', '1123598814738677220', 'sms', '3', 'ali', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738677224', '1123598814738677220', 'sms', '4', 'tencent', '4', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777220', '0', 'post_category', '-1', '岗位类型', '12', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777221', '1123598814738777220', 'post_category', '1', '高层', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777222', '1123598814738777220', 'post_category', '2', '中层', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777223', '1123598814738777220', 'post_category', '3', '基层', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777224', '1123598814738777220', 'post_category', '4', '其他', '4', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777230', '0', 'region', '-1', '行政区划', '13', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777231', '1123598814738777230', 'region', '0', '国家', '0', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777232', '1123598814738777230', 'region', '1', '省份/直辖市', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777233', '1123598814738777230', 'region', '2', '地市', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777234', '1123598814738777230', 'region', '3', '区县', '3', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777235', '1123598814738777230', 'region', '4', '乡镇', '4', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738777236', '1123598814738777230', 'region', '5', '村委', '5', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738778200', '0', 'user_type', '-1', '用户平台', '14', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738778201', '1123598814738778200', 'user_type', '1', 'WEB', '1', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738778202', '1123598814738778200', 'user_type', '2', 'APP', '2', NULL, '0', '0');
+INSERT INTO "BLADE_DICT" VALUES ('1123598814738778203', '1123598814738778200', 'user_type', '3', 'OTHER', '3', NULL, '0', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_DICT_BIZ
+-- ----------------------------
+-- DROP TABLE "BLADE_DICT_BIZ";
+CREATE TABLE "BLADE_DICT_BIZ" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "PARENT_ID" NUMBER(20) ,
+  "CODE" NVARCHAR2(255) ,
+  "DICT_KEY" NVARCHAR2(255) ,
+  "DICT_VALUE" NVARCHAR2(255) ,
+  "SORT" NUMBER(11) ,
+  "REMARK" NVARCHAR2(255) ,
+  "IS_SEALED" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."PARENT_ID" IS '父主键';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."CODE" IS '字典码';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."DICT_KEY" IS '字典值';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."DICT_VALUE" IS '字典名称';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."SORT" IS '排序';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."REMARK" IS '字典备注';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."IS_SEALED" IS '是否已封存';
+COMMENT ON COLUMN "BLADE_DICT_BIZ"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_DICT_BIZ" IS '数据源配置表';
+
+-- ----------------------------
+-- Table structure for BLADE_LOG_API
+-- ----------------------------
+-- DROP TABLE "BLADE_LOG_API";
+CREATE TABLE "BLADE_LOG_API" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "SERVICE_ID" NVARCHAR2(32) ,
+  "SERVER_HOST" NVARCHAR2(255) ,
+  "SERVER_IP" NVARCHAR2(255) ,
+  "ENV" NVARCHAR2(255) ,
+  "TYPE" NCHAR(1) ,
+  "TITLE" NVARCHAR2(255) ,
+  "METHOD" NVARCHAR2(10) ,
+  "REQUEST_URI" NVARCHAR2(255) ,
+  "USER_AGENT" NVARCHAR2(1000) ,
+  "REMOTE_IP" NVARCHAR2(255) ,
+  "METHOD_CLASS" NVARCHAR2(255) ,
+  "METHOD_NAME" NVARCHAR2(255) ,
+  "PARAMS" NCLOB ,
+  "TIME" NVARCHAR2(64) ,
+  "CREATE_BY" NVARCHAR2(64) ,
+  "CREATE_TIME" DATE
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_LOG_API"."ID" IS '编号';
+COMMENT ON COLUMN "BLADE_LOG_API"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_LOG_API"."SERVICE_ID" IS '服务ID';
+COMMENT ON COLUMN "BLADE_LOG_API"."SERVER_HOST" IS '服务器名';
+COMMENT ON COLUMN "BLADE_LOG_API"."SERVER_IP" IS '服务器IP地址';
+COMMENT ON COLUMN "BLADE_LOG_API"."ENV" IS '服务器环境';
+COMMENT ON COLUMN "BLADE_LOG_API"."TYPE" IS '日志类型';
+COMMENT ON COLUMN "BLADE_LOG_API"."TITLE" IS '日志标题';
+COMMENT ON COLUMN "BLADE_LOG_API"."METHOD" IS '操作方式';
+COMMENT ON COLUMN "BLADE_LOG_API"."REQUEST_URI" IS '请求URI';
+COMMENT ON COLUMN "BLADE_LOG_API"."USER_AGENT" IS '用户代理';
+COMMENT ON COLUMN "BLADE_LOG_API"."REMOTE_IP" IS '操作IP地址';
+COMMENT ON COLUMN "BLADE_LOG_API"."METHOD_CLASS" IS '方法类';
+COMMENT ON COLUMN "BLADE_LOG_API"."METHOD_NAME" IS '方法名';
+COMMENT ON COLUMN "BLADE_LOG_API"."PARAMS" IS '操作提交的数据';
+COMMENT ON COLUMN "BLADE_LOG_API"."TIME" IS '执行时间';
+COMMENT ON COLUMN "BLADE_LOG_API"."CREATE_BY" IS '创建者';
+COMMENT ON COLUMN "BLADE_LOG_API"."CREATE_TIME" IS '创建时间';
+COMMENT ON TABLE "BLADE_LOG_API" IS '接口日志表';
+
+-- ----------------------------
+-- Table structure for BLADE_LOG_ERROR
+-- ----------------------------
+-- DROP TABLE "BLADE_LOG_ERROR";
+CREATE TABLE "BLADE_LOG_ERROR" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "SERVICE_ID" NVARCHAR2(32) ,
+  "SERVER_HOST" NVARCHAR2(255) ,
+  "SERVER_IP" NVARCHAR2(255) ,
+  "ENV" NVARCHAR2(255) ,
+  "METHOD" NVARCHAR2(10) ,
+  "REQUEST_URI" NVARCHAR2(255) ,
+  "USER_AGENT" NVARCHAR2(1000) ,
+  "STACK_TRACE" NCLOB ,
+  "EXCEPTION_NAME" NVARCHAR2(255) ,
+  "MESSAGE" NCLOB ,
+  "LINE_NUMBER" NUMBER(11) ,
+  "REMOTE_IP" NVARCHAR2(255) ,
+  "METHOD_CLASS" NVARCHAR2(255) ,
+  "FILE_NAME" NVARCHAR2(1000) ,
+  "METHOD_NAME" NVARCHAR2(255) ,
+  "PARAMS" NCLOB ,
+  "CREATE_BY" NVARCHAR2(64) ,
+  "CREATE_TIME" DATE
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."ID" IS '编号';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."SERVICE_ID" IS '服务ID';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."SERVER_HOST" IS '服务器名';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."SERVER_IP" IS '服务器IP地址';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."ENV" IS '系统环境';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."METHOD" IS '操作方式';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."REQUEST_URI" IS '请求URI';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."USER_AGENT" IS '用户代理';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."STACK_TRACE" IS '堆栈';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."EXCEPTION_NAME" IS '异常名';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."MESSAGE" IS '异常信息';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."LINE_NUMBER" IS '错误行数';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."REMOTE_IP" IS '操作IP地址';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."METHOD_CLASS" IS '方法类';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."FILE_NAME" IS '文件名';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."METHOD_NAME" IS '方法名';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."PARAMS" IS '操作提交的数据';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."CREATE_BY" IS '创建者';
+COMMENT ON COLUMN "BLADE_LOG_ERROR"."CREATE_TIME" IS '创建时间';
+COMMENT ON TABLE "BLADE_LOG_ERROR" IS '错误日志表';
+
+-- ----------------------------
+-- Table structure for BLADE_LOG_USUAL
+-- ----------------------------
+-- DROP TABLE "BLADE_LOG_USUAL";
+CREATE TABLE "BLADE_LOG_USUAL" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "SERVICE_ID" NVARCHAR2(32) ,
+  "SERVER_HOST" NVARCHAR2(255) ,
+  "SERVER_IP" NVARCHAR2(255) ,
+  "ENV" NVARCHAR2(255) ,
+  "LOG_LEVEL" NVARCHAR2(10) ,
+  "LOG_ID" NVARCHAR2(100) ,
+  "LOG_DATA" NCLOB ,
+  "METHOD" NVARCHAR2(10) ,
+  "REQUEST_URI" NVARCHAR2(255) ,
+  "REMOTE_IP" NVARCHAR2(255) ,
+  "METHOD_CLASS" NVARCHAR2(255) ,
+  "METHOD_NAME" NVARCHAR2(255) ,
+  "USER_AGENT" NVARCHAR2(1000) ,
+  "PARAMS" NCLOB ,
+  "CREATE_BY" NVARCHAR2(64) ,
+  "CREATE_TIME" DATE
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."ID" IS '编号';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."SERVICE_ID" IS '服务ID';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."SERVER_HOST" IS '服务器名';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."SERVER_IP" IS '服务器IP地址';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."ENV" IS '系统环境';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."LOG_LEVEL" IS '日志级别';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."LOG_ID" IS '日志业务ID';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."LOG_DATA" IS '日志数据';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."METHOD" IS '操作方式';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."REQUEST_URI" IS '请求URI';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."REMOTE_IP" IS '操作IP地址';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."METHOD_CLASS" IS '方法类';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."METHOD_NAME" IS '方法名';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."USER_AGENT" IS '用户代理';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."PARAMS" IS '操作提交的数据';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."CREATE_BY" IS '创建者';
+COMMENT ON COLUMN "BLADE_LOG_USUAL"."CREATE_TIME" IS '创建时间';
+COMMENT ON TABLE "BLADE_LOG_USUAL" IS '通用日志表';
+
+-- ----------------------------
+-- Table structure for BLADE_MENU
+-- ----------------------------
+-- DROP TABLE "BLADE_MENU";
+CREATE TABLE "BLADE_MENU" (
+  "ID" NUMBER(20) NOT NULL ,
+  "PARENT_ID" NUMBER(20) ,
+  "CODE" NVARCHAR2(255) ,
+  "NAME" NVARCHAR2(255) ,
+  "ALIAS" NVARCHAR2(255) ,
+  "PATH" NVARCHAR2(255) ,
+  "SOURCE" NVARCHAR2(255) ,
+  "SORT" NUMBER(11) ,
+  "CATEGORY" NUMBER(11) ,
+  "ACTION" NUMBER(11) ,
+  "IS_OPEN" NUMBER(11) ,
+  "COMPONENT" NVARCHAR2(255) ,
+  "REMARK" NVARCHAR2(255) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_MENU"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_MENU"."PARENT_ID" IS '父级菜单';
+COMMENT ON COLUMN "BLADE_MENU"."CODE" IS '菜单编号';
+COMMENT ON COLUMN "BLADE_MENU"."NAME" IS '菜单名称';
+COMMENT ON COLUMN "BLADE_MENU"."ALIAS" IS '菜单别名';
+COMMENT ON COLUMN "BLADE_MENU"."PATH" IS '请求地址';
+COMMENT ON COLUMN "BLADE_MENU"."SOURCE" IS '菜单资源';
+COMMENT ON COLUMN "BLADE_MENU"."SORT" IS '排序';
+COMMENT ON COLUMN "BLADE_MENU"."CATEGORY" IS '菜单类型';
+COMMENT ON COLUMN "BLADE_MENU"."ACTION" IS '操作按钮类型';
+COMMENT ON COLUMN "BLADE_MENU"."IS_OPEN" IS '是否打开新页面';
+COMMENT ON COLUMN "BLADE_MENU"."COMPONENT" IS '组件地址';
+COMMENT ON COLUMN "BLADE_MENU"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_MENU"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_MENU" IS '菜单表';
+
+-- ----------------------------
+-- Records of BLADE_MENU
+-- ----------------------------
+INSERT INTO "BLADE_MENU" VALUES ('1161272593873321994', '1161272593873321991', 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', '3', '2', '3', '3', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389658962253', '1164733389658962251', 'sms_edit', '修改', 'edit', '/resource/sms/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389658962254', '1164733389658962251', 'sms_delete', '删除', 'delete', '/api/blade-resource/sms/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389658962255', '1164733389658962251', 'sms_view', '查看', 'view', '/resource/sms/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389658962256', '1164733389658962251', 'sms_enable', '启用', 'enable', '/api/blade-resource/sms/enable', 'key', '5', '2', '2', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389658962251', '1123598815738675298', 'sms', '短信配置', 'menu', '/resource/sms', NULL, '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389668962251', '1123598815738675203', 'post', '岗位管理', 'menu', '/system/post', NULL, '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389668962252', '1164733389668962251', 'post_add', '新增', 'add', '/system/post/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389668962253', '1164733389668962251', 'post_edit', '修改', 'edit', '/system/post/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389668962254', '1164733389668962251', 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389668962255', '1164733389668962251', 'post_view', '查看', 'view', '/system/post/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389658962252', '1164733389658962251', 'sms_add', '新增', 'add', '/resource/sms/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675201', '0', 'desk', '工作台', 'menu', '/desk', 'desktop', '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675202', '1123598815738675201', 'notice', '通知公告', 'menu', '/desk/notice', NULL, '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675203', '0', 'system', '系统管理', 'menu', '/system', 'setting', '99', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675204', '1123598815738675203', 'user', '用户管理', 'menu', '/system/user', NULL, '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675205', '1123598815738675203', 'dept', '机构管理', 'menu', '/system/dept', NULL, '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675206', '1123598815738675203', 'dict', '系统字典', 'menu', '/system/dict', NULL, '4', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675207', '1123598815738675203', 'menu', '菜单管理', 'menu', '/system/menu', NULL, '6', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675208', '1123598815738675203', 'topmenu', '顶部菜单', 'menu', '/system/topmenu', NULL, '7', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675209', '1123598815738675203', 'param', '参数管理', 'menu', '/system/param', NULL, '8', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675210', '0', 'monitor', '系统监控', 'menu', '/monitor', 'fund', '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675211', '1123598815738675210', 'doc', '接口文档', 'menu', 'http://localhost:18000/doc.html', NULL, '1', '1', '0', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675212', '1123598815738675210', 'admin', '服务治理', 'menu', 'http://localhost:7002', NULL, '2', '1', '0', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675213', '1123598815738675210', 'log', '日志管理', 'menu', '/monitor/log', NULL, '8', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675214', '1123598815738675213', 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675215', '1123598815738675213', 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675216', '1123598815738675213', 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675217', '0', 'tool', '研发工具', 'menu', '/tool', 'tool', '4', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675218', '1123598815738675217', 'code', '代码生成', 'menu', '/tool/code', NULL, '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675219', '1123598815738675202', 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675220', '1123598815738675202', 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675221', '1123598815738675202', 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675222', '1123598815738675202', 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675223', '1123598815738675204', 'user_add', '新增', 'add', '/system/user/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675224', '1123598815738675204', 'user_edit', '修改', 'edit', '/system/user/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675225', '1123598815738675204', 'user_delete', '删除', 'delete', '/api/blade-user/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675226', '1123598815738675204', 'user_role', '角色配置', 'role', NULL, 'user-add', '4', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675227', '1123598815738675204', 'user_reset', '密码重置', 'reset-password', '/api/blade-user/reset-password', 'retweet', '5', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675228', '1123598815738675204', 'user_view', '查看', 'view', '/system/user/view', 'file-text', '6', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675229', '1123598815738675205', 'dept_add', '新增', 'add', '/system/dept/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675230', '1123598815738675205', 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675231', '1123598815738675205', 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675232', '1123598815738675205', 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675233', '1123598815738675206', 'dict_add', '新增', 'add', '/system/dict/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675234', '1123598815738675206', 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675235', '1123598815738675206', 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675236', '1123598815738675206', 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675237', '1123598815738675207', 'menu_add', '新增', 'add', '/system/menu/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675238', '1123598815738675207', 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675239', '1123598815738675207', 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675240', '1123598815738675207', 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675241', '1123598815738675308', 'role_add', '新增', 'add', '/authority/role/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675242', '1123598815738675308', 'role_edit', '修改', 'edit', '/authority/role/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675243', '1123598815738675308', 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675244', '1123598815738675308', 'role_view', '查看', 'view', '/authority/role/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675245', '1123598815738675209', 'param_add', '新增', 'add', '/system/param/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675246', '1123598815738675209', 'param_edit', '修改', 'edit', '/system/param/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675247', '1123598815738675209', 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675248', '1123598815738675209', 'param_view', '查看', 'view', '/system/param/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675249', '1123598815738675214', 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675250', '1123598815738675215', 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675251', '1123598815738675216', 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675252', '1123598815738675218', 'code_add', '新增', 'add', '/tool/code/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675253', '1123598815738675218', 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675254', '1123598815738675218', 'code_delete', '删除', 'delete', '/api/blade-develop/code/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675255', '1123598815738675218', 'code_view', '查看', 'view', '/tool/code/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675256', '1123598815738675203', 'tenant', '租户管理', 'menu', '/system/tenant', NULL, '9', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675257', '1123598815738675256', 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675258', '1123598815738675256', 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675259', '1123598815738675256', 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1161272593873321995', '1161272593873321991', 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', '4', '2', '2', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733369658963251', '1123598815738675210', 'elk', 'ELK监控', 'menu', 'http://localhost:5601/', NULL, '3', '1', '0', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962301', '0', 'report', '报表管理', 'menu', '/report', 'bar-chart', '5', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962302', '1164733399669962301', 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', NULL, '1', '1', '0', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962303', '1164733399669962301', 'report_list', '报表列表', 'menu', '/report/reportlist', NULL, '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962304', '1164733399669962301', 'report_notice', '公告报表', 'menu', 'http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml', NULL, '3', '1', '0', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733369658963252', '1123598815738675210', 'zipkin', 'Zipkin监控', 'menu', 'http://localhost:9411/', NULL, '4', '1', '0', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733369658963253', '1123598815738675210', 'turbine', 'Turbine监控', 'menu', 'http://localhost:7003/hystrix', NULL, '5', '1', '0', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733369658963254', '1123598815738675210', 'sentinel', 'Sentinel管理', 'menu', 'http://localhost:8858', NULL, '6', '1', '0', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733369658963255', '1123598815738675210', 'es', 'Elasticsearch管理', 'menu', 'http://localhost:9100/', NULL, '7', '1', '0', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733379658963251', '1123598815738675203', 'dictbiz', '业务字典', 'menu', '/system/dictbiz', NULL, '5', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733379658963252', '1164733379658963251', 'dictbiz_add', '新增', 'add', '/system/dictbiz/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733379658963253', '1164733379658963251', 'dictbiz_edit', '修改', 'edit', '/system/dictbiz/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733379658963254', '1164733379658963251', 'dictbiz_delete', '删除', 'delete', '/api/blade-system/dict-biz/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733379658963255', '1164733379658963251', 'dictbiz_view', '查看', 'view', '/system/dictbiz/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733389658963251', '1123598815738675298', 'xxljob', '任务调度', 'menu', 'http://localhost:7009/xxl-job-admin', NULL, '5', '1', '0', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675260', '1123598815738675256', 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675261', '1123598815738675203', 'client', '应用管理', 'menu', '/system/client', NULL, '10', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675262', '1123598815738675261', 'client_add', '新增', 'add', '/system/client/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675263', '1123598815738675261', 'client_edit', '修改', 'edit', '/system/client/edit', 'form', '2', '2', '2', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675264', '1123598815738675261', 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', '3', '2', '3', '3', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675265', '1123598815738675261', 'client_view', '查看', 'view', '/system/client/view', 'file-text', '4', '2', '2', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675266', '0', 'flow', '流程管理', 'menu', '/flow', 'stock', '5', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675267', '1123598815738675266', 'flow_model', '模型管理', 'menu', '/flow/model', NULL, '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675268', '1123598815738675267', 'flow_model_create', '创建', 'create', NULL, 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675269', '1123598815738675267', 'flow_model_update', '编辑', 'update', NULL, 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675270', '1123598815738675267', 'flow_model_deploy', '部署', 'deploy', NULL, 'cloud-upload', '3', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675271', '1123598815738675267', 'flow_model_download', '下载', 'download', NULL, 'download', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675272', '1123598815738675267', 'flow_model_delete', '删除', 'delete', '/api/blade-flow/model/remove', 'delete', '5', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675273', '1123598815738675266', 'flow_deploy', '流程部署', 'menu', '/flow/deploy', NULL, '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675274', '1123598815738675266', 'flow_manager', '流程管理', 'menu', '/flow/manager', NULL, '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675275', '1123598815738675274', 'flow_manager_state', '变更状态', 'state', NULL, 'plus', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675276', '1123598815738675274', 'flow_manager_image', '流程图', 'image', NULL, 'image', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675277', '1123598815738675274', 'flow_manager_remove', '删除', 'remove', NULL, 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675278', '1123598815738675266', 'flow_follow', '流程跟踪', 'menu', '/flow/follow', NULL, '4', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675279', '1123598815738675278', 'flow_follow_delete', '删除', 'remove', NULL, 'remove', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962201', '1123598815738675298', 'attach', '附件管理', 'menu', '/resource/attach', NULL, '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962202', '1164733399669962201', 'attach_upload', '上传', 'upload', '/resource/attach/upload', NULL, '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962203', '1164733399669962201', 'attach_download', '下载', 'download', '/resource/attach/download', NULL, '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399669962204', '1164733399669962201', 'attach_delete', '删除', 'delete', '/api/blade-resource/attach/remove', NULL, '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675280', '0', 'work', '我的事务', 'menu', '/work', 'bell', '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675281', '1123598815738675280', 'work_start', '发起事务', 'menu', '/work/start', NULL, '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675282', '1123598815738675281', 'work_start_flow', '发起', 'flow', NULL, 'flow', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675283', '1123598815738675281', 'work_start_image', '流程图', 'image', NULL, 'image', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675284', '1123598815738675280', 'work_claim', '待签事务', 'menu', '/work/claim', NULL, '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675285', '1123598815738675284', 'work_claim_sign', '签收', 'sign', NULL, 'sign', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675286', '1123598815738675284', 'work_claim_detail', '详情', 'detail', NULL, 'detail', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675287', '1123598815738675284', 'work_claim_follow', '跟踪', 'follow', NULL, 'follow', '3', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675288', '1123598815738675280', 'work_todo', '待办事务', 'menu', '/work/todo', NULL, '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675289', '1123598815738675288', 'work_todo_handle', '办理', 'handle', NULL, 'handle', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675290', '1123598815738675288', 'work_todo_detail', '详情', 'detail', NULL, 'detail', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675291', '1123598815738675288', 'work_todo_follow', '跟踪', 'follow', NULL, 'follow', '3', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675292', '1123598815738675280', 'work_send', '已发事务', 'menu', '/work/send', NULL, '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675293', '1123598815738675292', 'work_send_detail', '详情', 'detail', NULL, 'detail', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675294', '1123598815738675292', 'work_send_follow', '跟踪', 'follow', NULL, 'follow', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675295', '1123598815738675280', 'work_done', '办结事务', 'menu', '/work/done', NULL, '4', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675296', '1123598815738675295', 'work_done_detail', '详情', 'detail', NULL, 'detail', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675297', '1123598815738675295', 'work_done_follow', '跟踪', 'follow', NULL, 'follow', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675298', '0', 'resource', '资源管理', 'menu', '/resource', 'bg-colors', '6', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675299', '1123598815738675298', 'oss', '对象存储', 'menu', '/resource/oss', NULL, '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675301', '1123598815738675299', 'oss_add', '新增', 'add', '/resource/oss/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675302', '1123598815738675299', 'oss_edit', '修改', 'edit', '/resource/oss/edit', 'form', '2', '2', '2', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675303', '1123598815738675299', 'oss_delete', '删除', 'delete', '/api/blade-resource/oss/remove', 'delete', '3', '2', '3', '3', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675304', '1123598815738675299', 'oss_view', '查看', 'view', '/resource/oss/view', 'file-text', '4', '2', '2', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675305', '1123598815738675299', 'oss_enable', '启用', 'enable', '/api/blade-resource/oss/enable', 'key', '5', '2', '2', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675307', '0', 'authority', '权限管理', 'menu', '/authority', 'safety-certificate', '98', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675308', '1123598815738675307', 'role', '角色管理', 'menu', '/authority/role', NULL, '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399668962201', '0', 'base', '基础配置', 'menu', '/base', 'sliders', '97', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399668962202', '1164733399668962201', 'region', '行政区划', 'menu', '/base/region', NULL, '1', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399668962203', '1164733399668962202', 'region_add', '新增下级', 'add', NULL, NULL, '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399668962204', '1164733399668962202', 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', NULL, '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399668962205', '1164733399668962202', 'region_import', '导入', 'import', NULL, NULL, '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399668962206', '1164733399668962202', 'region_export', '导出', 'export', NULL, NULL, '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1164733399668962207', '1164733399668962202', 'region_debug', '调试', 'debug', NULL, NULL, '5', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675309', '1123598815738675307', 'data_scope', '数据权限', 'menu', '/authority/datascope', NULL, '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675310', '1123598815738675309', 'data_scope_setting', '权限配置', 'setting', NULL, 'setting', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675311', '1123598815738675307', 'api_scope', '接口权限', 'menu', '/authority/apiscope', NULL, '3', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675312', '1123598815738675311', 'api_scope_setting', '权限配置', 'setting', NULL, 'setting', '1', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675313', '1123598815738675208', 'topmenu_add', '新增', 'add', '/system/topmenu/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675314', '1123598815738675208', 'topmenu_edit', '修改', 'edit', '/system/topmenu/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675315', '1123598815738675208', 'topmenu_delete', '删除', 'delete', '/api/blade-system/topmenu/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675316', '1123598815738675208', 'topmenu_view', '查看', 'view', '/system/topmenu/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1123598815738675317', '1123598815738675208', 'topmenu_setting', '菜单配置', 'setting', NULL, 'setting', '5', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1161272593873321991', '1123598815738675217', 'datasource', '数据源管理', 'menu', '/tool/datasource', NULL, '2', '1', '0', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1161272593873321992', '1161272593873321991', 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1161272593873321993', '1161272593873321991', 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', '2', '2', '2', '2', NULL, NULL, '0');
+INSERT INTO "BLADE_MENU" VALUES ('1161272593873321996', '1123598815738675217', 'model', '数据模型设计', 'menu', '/tool/model', NULL, '3', '1', '0', '1', NULL, NULL, '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_MODEL
+-- ----------------------------
+-- DROP TABLE "BLADE_MODEL";
+CREATE TABLE "BLADE_MODEL" (
+  "ID" NUMBER(20) NOT NULL ,
+  "DATASOURCE_ID" NUMBER(20) ,
+  "MODEL_NAME" NVARCHAR2(50) ,
+  "MODEL_CODE" NVARCHAR2(50) ,
+  "MODEL_TABLE" NVARCHAR2(100) ,
+  "MODEL_CLASS" NVARCHAR2(100) ,
+  "MODEL_REMARK" NVARCHAR2(500) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_MODEL"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_MODEL"."DATASOURCE_ID" IS '数据源主键';
+COMMENT ON COLUMN "BLADE_MODEL"."MODEL_NAME" IS '模型名称';
+COMMENT ON COLUMN "BLADE_MODEL"."MODEL_CODE" IS '模型编号';
+COMMENT ON COLUMN "BLADE_MODEL"."MODEL_TABLE" IS '物理表名';
+COMMENT ON COLUMN "BLADE_MODEL"."MODEL_CLASS" IS '模型类名';
+COMMENT ON COLUMN "BLADE_MODEL"."MODEL_REMARK" IS '模型备注';
+COMMENT ON COLUMN "BLADE_MODEL"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_MODEL"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_MODEL"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_MODEL"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_MODEL"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_MODEL"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_MODEL"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_MODEL" IS '数据模型表';
+
+-- ----------------------------
+-- Table structure for BLADE_MODEL_PROTOTYPE
+-- ----------------------------
+-- DROP TABLE "BLADE_MODEL_PROTOTYPE";
+CREATE TABLE "BLADE_MODEL_PROTOTYPE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "MODEL_ID" NUMBER(20) ,
+  "JDBC_NAME" NVARCHAR2(50) ,
+  "JDBC_TYPE" NVARCHAR2(20) ,
+  "COMMENT" NVARCHAR2(500) ,
+  "PROPERTY_TYPE" NVARCHAR2(20) ,
+  "PROPERTY_ENTITY" NVARCHAR2(500) ,
+  "PROPERTY_NAME" NVARCHAR2(50) ,
+  "IS_LIST" NUMBER(11) ,
+  "IS_FORM" NUMBER(11) ,
+  "IS_ROW" NUMBER(11) ,
+  "COMPONENT_TYPE" NVARCHAR2(50) ,
+  "DICT_CODE" NVARCHAR2(50) ,
+  "IS_REQUIRED" NUMBER(11) ,
+  "IS_QUERY" NUMBER(11) ,
+  "QUERY_TYPE" NVARCHAR2(50) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."MODEL_ID" IS '模型主键';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."JDBC_NAME" IS '物理列名';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."JDBC_TYPE" IS '物理类型';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."COMMENT" IS '注释说明';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."PROPERTY_TYPE" IS '实体类型';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."PROPERTY_ENTITY" IS '实体类型引用';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."PROPERTY_NAME" IS '实体列名';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_LIST" IS '列表显示';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_FORM" IS '表单显示';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_ROW" IS '独占一行';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."COMPONENT_TYPE" IS '组件类型';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."DICT_CODE" IS '字典编码';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_REQUIRED" IS '是否必填';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_QUERY" IS '查询配置';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."QUERY_TYPE" IS '查询类型';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_MODEL_PROTOTYPE" IS '数据原型表';
+
+-- ----------------------------
+-- Table structure for BLADE_NOTICE
+-- ----------------------------
+-- DROP TABLE "BLADE_NOTICE";
+CREATE TABLE "BLADE_NOTICE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "TITLE" NVARCHAR2(255) ,
+  "CATEGORY" NUMBER(11) ,
+  "RELEASE_TIME" DATE ,
+  "CONTENT" NVARCHAR2(2000) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_NOTICE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_NOTICE"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_NOTICE"."TITLE" IS '标题';
+COMMENT ON COLUMN "BLADE_NOTICE"."CATEGORY" IS '类型';
+COMMENT ON COLUMN "BLADE_NOTICE"."RELEASE_TIME" IS '发布时间';
+COMMENT ON COLUMN "BLADE_NOTICE"."CONTENT" IS '内容';
+COMMENT ON COLUMN "BLADE_NOTICE"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_NOTICE"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_NOTICE"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_NOTICE"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_NOTICE"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_NOTICE"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_NOTICE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_NOTICE" IS '通知公告表';
+
+-- ----------------------------
+-- Records of BLADE_NOTICE
+-- ----------------------------
+INSERT INTO "BLADE_NOTICE" VALUES ('1123598818738675223', '000000', '测试公告', '3', TO_DATE('2018-12-31 20:03:31', 'SYYYY-MM-DD HH24:MI:SS'), '222', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-05 20:03:31', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 11:10:51', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_NOTICE" VALUES ('1123598818738675224', '000000', '测试公告2', '1', TO_DATE('2018-12-05 20:03:31', 'SYYYY-MM-DD HH24:MI:SS'), '333', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 10:32:26', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 11:10:34', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_NOTICE" VALUES ('1123598818738675225', '000000', '测试公告3', '6', TO_DATE('2018-12-29 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '11111', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 11:03:44', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 11:10:28', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_OSS
+-- ----------------------------
+-- DROP TABLE "BLADE_OSS";
+CREATE TABLE "BLADE_OSS" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "CATEGORY" NUMBER(11) ,
+  "OSS_CODE" NVARCHAR2(32) ,
+  "ENDPOINT" NVARCHAR2(255) ,
+  "ACCESS_KEY" NVARCHAR2(255) ,
+  "SECRET_KEY" NVARCHAR2(255) ,
+  "BUCKET_NAME" NVARCHAR2(255) ,
+  "APP_ID" NVARCHAR2(255) ,
+  "REGION" NVARCHAR2(255) ,
+  "REMARK" NVARCHAR2(255) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_OSS"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_OSS"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_OSS"."CATEGORY" IS '分类';
+COMMENT ON COLUMN "BLADE_OSS"."OSS_CODE" IS '资源编号';
+COMMENT ON COLUMN "BLADE_OSS"."ENDPOINT" IS '资源地址';
+COMMENT ON COLUMN "BLADE_OSS"."ACCESS_KEY" IS 'accessKey';
+COMMENT ON COLUMN "BLADE_OSS"."SECRET_KEY" IS 'secretKey';
+COMMENT ON COLUMN "BLADE_OSS"."BUCKET_NAME" IS '空间名';
+COMMENT ON COLUMN "BLADE_OSS"."APP_ID" IS '应用ID';
+COMMENT ON COLUMN "BLADE_OSS"."REGION" IS '地域简称';
+COMMENT ON COLUMN "BLADE_OSS"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_OSS"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_OSS"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_OSS"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_OSS"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_OSS"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_OSS"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_OSS"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_OSS" IS '对象存储表';
+
+-- ----------------------------
+-- Records of BLADE_OSS
+-- ----------------------------
+INSERT INTO "BLADE_OSS" VALUES ('1132486733992468482', '000000', '1', 'minio', 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:20:52', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-05-27 08:34:55', 'SYYYY-MM-DD HH24:MI:SS'), '2', '0');
+INSERT INTO "BLADE_OSS" VALUES ('1132487155981393922', '000000', '2', 'qiniu', 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:22:33', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-05-26 23:27:56', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_PARAM
+-- ----------------------------
+-- DROP TABLE "BLADE_PARAM";
+CREATE TABLE "BLADE_PARAM" (
+  "ID" NUMBER(20) NOT NULL ,
+  "PARAM_NAME" NVARCHAR2(255) ,
+  "PARAM_KEY" NVARCHAR2(255) ,
+  "PARAM_VALUE" NVARCHAR2(255) ,
+  "REMARK" NVARCHAR2(255) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_PARAM"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_PARAM"."PARAM_NAME" IS '参数名';
+COMMENT ON COLUMN "BLADE_PARAM"."PARAM_KEY" IS '参数键';
+COMMENT ON COLUMN "BLADE_PARAM"."PARAM_VALUE" IS '参数值';
+COMMENT ON COLUMN "BLADE_PARAM"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_PARAM"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_PARAM"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_PARAM"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_PARAM"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_PARAM"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_PARAM"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_PARAM"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_PARAM" IS '参数表';
+
+-- ----------------------------
+-- Records of BLADE_PARAM
+-- ----------------------------
+INSERT INTO "BLADE_PARAM" VALUES ('1123598819738675201', '是否开启注册功能', 'account.registerUser', 'true', '开启注册', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_PARAM" VALUES ('1123598819738675202', '账号初始密码', 'account.initPassword', '123456', '初始密码', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_PARAM" VALUES ('1123598819738675203', '账号错误锁定次数', 'account.failCount', '5', '锁定次数', '1123598821738675201', '1123598813738675201', TO_DATE('2021-12-01 12:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2021-12-01 12:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_PARAM" VALUES ('1238706101399142402', '租户默认管理密码', 'tenant.default.password', 'admin', NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2020-03-14 13:58:43', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-03-14 13:58:43', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_PARAM" VALUES ('1238706160295559170', '租户默认账号额度', 'tenant.default.accountNumber', '100', NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2020-03-14 13:58:57', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-03-14 13:58:57', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_PARAM" VALUES ('1238706330076790786', '租户默认菜单集合', 'tenant.default.menuCode', 'desk,flow,work,monitor,resource,role,user,dept,post,dictbiz,topmenu', NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2020-03-14 13:59:38', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-03-14 13:59:38', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_POST
+-- ----------------------------
+-- DROP TABLE "BLADE_POST";
+CREATE TABLE "BLADE_POST" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "CATEGORY" NUMBER(11) ,
+  "POST_CODE" VARCHAR2(12 BYTE) ,
+  "POST_NAME" VARCHAR2(64 BYTE) ,
+  "SORT" NUMBER(11) ,
+  "REMARK" NVARCHAR2(255) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_POST"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_POST"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_POST"."CATEGORY" IS '岗位类型';
+COMMENT ON COLUMN "BLADE_POST"."POST_CODE" IS '岗位编号';
+COMMENT ON COLUMN "BLADE_POST"."POST_NAME" IS '岗位名称';
+COMMENT ON COLUMN "BLADE_POST"."SORT" IS '岗位排序';
+COMMENT ON COLUMN "BLADE_POST"."REMARK" IS '岗位描述';
+COMMENT ON COLUMN "BLADE_POST"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_POST"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_POST"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_POST"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_POST"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_POST"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_POST"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_POST" IS '岗位表';
+
+-- ----------------------------
+-- Records of BLADE_POST
+-- ----------------------------
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675201', '000000', '1', 'ceo', '首席执行官', '1', '总经理', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675202', '000000', '1', 'coo', '首席运营官', '2', '常务总经理', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675203', '000000', '1', 'cfo', '首席财务官', '3', '财务总经理', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675204', '000000', '1', 'cto', '首席技术官', '4', '技术总监', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675205', '000000', '1', 'cio', '首席信息官', '5', '信息总监', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675206', '000000', '2', 'pm', '技术经理', '6', '研发和产品是永远的朋友', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675207', '000000', '2', 'hrm', '人力经理', '7', '人力资源部门工作管理者', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_POST" VALUES ('1123598817738675208', '000000', '3', 'staff', '普通员工', '8', '普通员工', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_PROCESS_LEAVE
+-- ----------------------------
+-- DROP TABLE "BLADE_PROCESS_LEAVE";
+CREATE TABLE "BLADE_PROCESS_LEAVE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "PROCESS_DEFINITION_ID" NVARCHAR2(64) ,
+  "PROCESS_INSTANCE_ID" NVARCHAR2(64) ,
+  "START_TIME" DATE ,
+  "END_TIME" DATE ,
+  "REASON" NVARCHAR2(255) ,
+  "TASK_USER" NVARCHAR2(255) ,
+  "apply_TIME" DATE ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."ID" IS '编号';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."PROCESS_DEFINITION_ID" IS '流程定义主键';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."PROCESS_INSTANCE_ID" IS '流程实例主键';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."START_TIME" IS '开始时间';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."END_TIME" IS '结束时间';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."REASON" IS '请假理由';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."TASK_USER" IS '第一级审批人';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."apply_TIME" IS '申请时间';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_PROCESS_LEAVE" IS '流程请假业务表';
+
+-- ----------------------------
+-- Table structure for BLADE_REGION
+-- ----------------------------
+-- DROP TABLE "BLADE_REGION";
+CREATE TABLE "BLADE_REGION" (
+  "CODE" VARCHAR2(12 BYTE) NOT NULL ,
+  "PARENT_CODE" VARCHAR2(12 BYTE) ,
+  "ANCESTORS" VARCHAR2(255 BYTE) ,
+  "NAME" VARCHAR2(64 BYTE) ,
+  "PROVINCE_CODE" VARCHAR2(12 BYTE) ,
+  "PROVINCE_NAME" VARCHAR2(64 BYTE) ,
+  "CITY_CODE" VARCHAR2(12 BYTE) ,
+  "CITY_NAME" VARCHAR2(64 BYTE) ,
+  "DISTRICT_CODE" VARCHAR2(12 BYTE) ,
+  "DISTRICT_NAME" VARCHAR2(64 BYTE) ,
+  "TOWN_CODE" VARCHAR2(12 BYTE) ,
+  "TOWN_NAME" VARCHAR2(64 BYTE) ,
+  "VILLAGE_CODE" VARCHAR2(12 BYTE) ,
+  "VILLAGE_NAME" VARCHAR2(64 BYTE) ,
+  "REGION_LEVEL" NUMBER(11) NOT NULL ,
+  "SORT" NUMBER(11) NOT NULL ,
+  "REMARK" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_REGION"."CODE" IS '区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."PARENT_CODE" IS '父区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."ANCESTORS" IS '祖区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."NAME" IS '区划名称';
+COMMENT ON COLUMN "BLADE_REGION"."PROVINCE_CODE" IS '省级区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."PROVINCE_NAME" IS '省级名称';
+COMMENT ON COLUMN "BLADE_REGION"."CITY_CODE" IS '市级区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."CITY_NAME" IS '市级名称';
+COMMENT ON COLUMN "BLADE_REGION"."DISTRICT_CODE" IS '区级区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."DISTRICT_NAME" IS '区级名称';
+COMMENT ON COLUMN "BLADE_REGION"."TOWN_CODE" IS '镇级区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."TOWN_NAME" IS '镇级名称';
+COMMENT ON COLUMN "BLADE_REGION"."VILLAGE_CODE" IS '村级区划编号';
+COMMENT ON COLUMN "BLADE_REGION"."VILLAGE_NAME" IS '村级名称';
+COMMENT ON COLUMN "BLADE_REGION"."REGION_LEVEL" IS '层级';
+COMMENT ON COLUMN "BLADE_REGION"."SORT" IS '排序';
+COMMENT ON COLUMN "BLADE_REGION"."REMARK" IS '备注';
+COMMENT ON TABLE "BLADE_REGION" IS '行政区划表';
+
+-- ----------------------------
+-- Records of BLADE_REGION
+-- ----------------------------
+INSERT INTO "BLADE_REGION" VALUES ('1101', '11', '00,11', '北京市', '11', '北京市', '1101', '北京市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110101', '1101', '00,11,1101', '东城区', '11', '北京市', '1101', '北京市', '110101', '东城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110102', '1101', '00,11,1101', '西城区', '11', '北京市', '1101', '北京市', '110102', '西城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110105', '1101', '00,11,1101', '朝阳区', '11', '北京市', '1101', '北京市', '110105', '朝阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110106', '1101', '00,11,1101', '丰台区', '11', '北京市', '1101', '北京市', '110106', '丰台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110107', '1101', '00,11,1101', '石景山区', '11', '北京市', '1101', '北京市', '110107', '石景山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110108', '1101', '00,11,1101', '海淀区', '11', '北京市', '1101', '北京市', '110108', '海淀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110109', '1101', '00,11,1101', '门头沟区', '11', '北京市', '1101', '北京市', '110109', '门头沟区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110111', '1101', '00,11,1101', '房山区', '11', '北京市', '1101', '北京市', '110111', '房山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110112', '1101', '00,11,1101', '通州区', '11', '北京市', '1101', '北京市', '110112', '通州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110113', '1101', '00,11,1101', '顺义区', '11', '北京市', '1101', '北京市', '110113', '顺义区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110114', '1101', '00,11,1101', '昌平区', '11', '北京市', '1101', '北京市', '110114', '昌平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110115', '1101', '00,11,1101', '大兴区', '11', '北京市', '1101', '北京市', '110115', '大兴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110116', '1101', '00,11,1101', '怀柔区', '11', '北京市', '1101', '北京市', '110116', '怀柔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110117', '1101', '00,11,1101', '平谷区', '11', '北京市', '1101', '北京市', '110117', '平谷区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110118', '1101', '00,11,1101', '密云区', '11', '北京市', '1101', '北京市', '110118', '密云区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('110119', '1101', '00,11,1101', '延庆区', '11', '北京市', '1101', '北京市', '110119', '延庆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('12', '00', '00', '天津市', '12', '天津市', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1201', '12', '00,12', '天津市', '12', '天津市', '1201', '天津市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120101', '1201', '00,12,1201', '和平区', '12', '天津市', '1201', '天津市', '120101', '和平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120102', '1201', '00,12,1201', '河东区', '12', '天津市', '1201', '天津市', '120102', '河东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120103', '1201', '00,12,1201', '河西区', '12', '天津市', '1201', '天津市', '120103', '河西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120104', '1201', '00,12,1201', '南开区', '12', '天津市', '1201', '天津市', '120104', '南开区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120105', '1201', '00,12,1201', '河北区', '12', '天津市', '1201', '天津市', '120105', '河北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120106', '1201', '00,12,1201', '红桥区', '12', '天津市', '1201', '天津市', '120106', '红桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120110', '1201', '00,12,1201', '东丽区', '12', '天津市', '1201', '天津市', '120110', '东丽区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120111', '1201', '00,12,1201', '西青区', '12', '天津市', '1201', '天津市', '120111', '西青区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120112', '1201', '00,12,1201', '津南区', '12', '天津市', '1201', '天津市', '120112', '津南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120113', '1201', '00,12,1201', '北辰区', '12', '天津市', '1201', '天津市', '120113', '北辰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120114', '1201', '00,12,1201', '武清区', '12', '天津市', '1201', '天津市', '120114', '武清区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120115', '1201', '00,12,1201', '宝坻区', '12', '天津市', '1201', '天津市', '120115', '宝坻区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120116', '1201', '00,12,1201', '滨海新区', '12', '天津市', '1201', '天津市', '120116', '滨海新区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120117', '1201', '00,12,1201', '宁河区', '12', '天津市', '1201', '天津市', '120117', '宁河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120118', '1201', '00,12,1201', '静海区', '12', '天津市', '1201', '天津市', '120118', '静海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('120119', '1201', '00,12,1201', '蓟州区', '12', '天津市', '1201', '天津市', '120119', '蓟州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('13', '00', '00', '河北省', '13', '河北省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1301', '13', '00,13', '石家庄市', '13', '河北省', '1301', '石家庄市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130102', '1301', '00,13,1301', '长安区', '13', '河北省', '1301', '石家庄市', '130102', '长安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130104', '1301', '00,13,1301', '桥西区', '13', '河北省', '1301', '石家庄市', '130104', '桥西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130105', '1301', '00,13,1301', '新华区', '13', '河北省', '1301', '石家庄市', '130105', '新华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130107', '1301', '00,13,1301', '井陉矿区', '13', '河北省', '1301', '石家庄市', '130107', '井陉矿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130108', '1301', '00,13,1301', '裕华区', '13', '河北省', '1301', '石家庄市', '130108', '裕华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130109', '1301', '00,13,1301', '藁城区', '13', '河北省', '1301', '石家庄市', '130109', '藁城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130110', '1301', '00,13,1301', '鹿泉区', '13', '河北省', '1301', '石家庄市', '130110', '鹿泉区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130111', '1301', '00,13,1301', '栾城区', '13', '河北省', '1301', '石家庄市', '130111', '栾城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130121', '1301', '00,13,1301', '井陉县', '13', '河北省', '1301', '石家庄市', '130121', '井陉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130123', '1301', '00,13,1301', '正定县', '13', '河北省', '1301', '石家庄市', '130123', '正定县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130125', '1301', '00,13,1301', '行唐县', '13', '河北省', '1301', '石家庄市', '130125', '行唐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130126', '1301', '00,13,1301', '灵寿县', '13', '河北省', '1301', '石家庄市', '130126', '灵寿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130127', '1301', '00,13,1301', '高邑县', '13', '河北省', '1301', '石家庄市', '130127', '高邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130128', '1301', '00,13,1301', '深泽县', '13', '河北省', '1301', '石家庄市', '130128', '深泽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130129', '1301', '00,13,1301', '赞皇县', '13', '河北省', '1301', '石家庄市', '130129', '赞皇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130130', '1301', '00,13,1301', '无极县', '13', '河北省', '1301', '石家庄市', '130130', '无极县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130131', '1301', '00,13,1301', '平山县', '13', '河北省', '1301', '石家庄市', '130131', '平山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130132', '1301', '00,13,1301', '元氏县', '13', '河北省', '1301', '石家庄市', '130132', '元氏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130133', '1301', '00,13,1301', '赵县', '13', '河北省', '1301', '石家庄市', '130133', '赵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130181', '1301', '00,13,1301', '辛集市', '13', '河北省', '1301', '石家庄市', '130181', '辛集市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130183', '1301', '00,13,1301', '晋州市', '13', '河北省', '1301', '石家庄市', '130183', '晋州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130184', '1301', '00,13,1301', '新乐市', '13', '河北省', '1301', '石家庄市', '130184', '新乐市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1302', '13', '00,13', '唐山市', '13', '河北省', '1302', '唐山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130202', '1302', '00,13,1302', '路南区', '13', '河北省', '1302', '唐山市', '130202', '路南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130203', '1302', '00,13,1302', '路北区', '13', '河北省', '1302', '唐山市', '130203', '路北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130204', '1302', '00,13,1302', '古冶区', '13', '河北省', '1302', '唐山市', '130204', '古冶区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130205', '1302', '00,13,1302', '开平区', '13', '河北省', '1302', '唐山市', '130205', '开平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130207', '1302', '00,13,1302', '丰南区', '13', '河北省', '1302', '唐山市', '130207', '丰南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130208', '1302', '00,13,1302', '丰润区', '13', '河北省', '1302', '唐山市', '130208', '丰润区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130209', '1302', '00,13,1302', '曹妃甸区', '13', '河北省', '1302', '唐山市', '130209', '曹妃甸区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130224', '1302', '00,13,1302', '滦南县', '13', '河北省', '1302', '唐山市', '130224', '滦南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130225', '1302', '00,13,1302', '乐亭县', '13', '河北省', '1302', '唐山市', '130225', '乐亭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130227', '1302', '00,13,1302', '迁西县', '13', '河北省', '1302', '唐山市', '130227', '迁西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130229', '1302', '00,13,1302', '玉田县', '13', '河北省', '1302', '唐山市', '130229', '玉田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130281', '1302', '00,13,1302', '遵化市', '13', '河北省', '1302', '唐山市', '130281', '遵化市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130283', '1302', '00,13,1302', '迁安市', '13', '河北省', '1302', '唐山市', '130283', '迁安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130284', '1302', '00,13,1302', '滦州市', '13', '河北省', '1302', '唐山市', '130284', '滦州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1303', '13', '00,13', '秦皇岛市', '13', '河北省', '1303', '秦皇岛市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130302', '1303', '00,13,1303', '海港区', '13', '河北省', '1303', '秦皇岛市', '130302', '海港区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130303', '1303', '00,13,1303', '山海关区', '13', '河北省', '1303', '秦皇岛市', '130303', '山海关区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130304', '1303', '00,13,1303', '北戴河区', '13', '河北省', '1303', '秦皇岛市', '130304', '北戴河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130724', '1307', '00,13,1307', '沽源县', '13', '河北省', '1307', '张家口市', '130724', '沽源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130725', '1307', '00,13,1307', '尚义县', '13', '河北省', '1307', '张家口市', '130725', '尚义县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130726', '1307', '00,13,1307', '蔚县', '13', '河北省', '1307', '张家口市', '130726', '蔚县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130727', '1307', '00,13,1307', '阳原县', '13', '河北省', '1307', '张家口市', '130727', '阳原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130728', '1307', '00,13,1307', '怀安县', '13', '河北省', '1307', '张家口市', '130728', '怀安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130730', '1307', '00,13,1307', '怀来县', '13', '河北省', '1307', '张家口市', '130730', '怀来县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130731', '1307', '00,13,1307', '涿鹿县', '13', '河北省', '1307', '张家口市', '130731', '涿鹿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130732', '1307', '00,13,1307', '赤城县', '13', '河北省', '1307', '张家口市', '130732', '赤城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1308', '13', '00,13', '承德市', '13', '河北省', '1308', '承德市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130802', '1308', '00,13,1308', '双桥区', '13', '河北省', '1308', '承德市', '130802', '双桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130803', '1308', '00,13,1308', '双滦区', '13', '河北省', '1308', '承德市', '130803', '双滦区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130804', '1308', '00,13,1308', '鹰手营子矿区', '13', '河北省', '1308', '承德市', '130804', '鹰手营子矿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130821', '1308', '00,13,1308', '承德县', '13', '河北省', '1308', '承德市', '130821', '承德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130822', '1308', '00,13,1308', '兴隆县', '13', '河北省', '1308', '承德市', '130822', '兴隆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130824', '1308', '00,13,1308', '滦平县', '13', '河北省', '1308', '承德市', '130824', '滦平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130825', '1308', '00,13,1308', '隆化县', '13', '河北省', '1308', '承德市', '130825', '隆化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130826', '1308', '00,13,1308', '丰宁满族自治县', '13', '河北省', '1308', '承德市', '130826', '丰宁满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130827', '1308', '00,13,1308', '宽城满族自治县', '13', '河北省', '1308', '承德市', '130827', '宽城满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130828', '1308', '00,13,1308', '围场满族蒙古族自治县', '13', '河北省', '1308', '承德市', '130828', '围场满族蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130881', '1308', '00,13,1308', '平泉市', '13', '河北省', '1308', '承德市', '130881', '平泉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1309', '13', '00,13', '沧州市', '13', '河北省', '1309', '沧州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130902', '1309', '00,13,1309', '新华区', '13', '河北省', '1309', '沧州市', '130902', '新华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130903', '1309', '00,13,1309', '运河区', '13', '河北省', '1309', '沧州市', '130903', '运河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130921', '1309', '00,13,1309', '沧县', '13', '河北省', '1309', '沧州市', '130921', '沧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130922', '1309', '00,13,1309', '青县', '13', '河北省', '1309', '沧州市', '130922', '青县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130923', '1309', '00,13,1309', '东光县', '13', '河北省', '1309', '沧州市', '130923', '东光县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130924', '1309', '00,13,1309', '海兴县', '13', '河北省', '1309', '沧州市', '130924', '海兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130925', '1309', '00,13,1309', '盐山县', '13', '河北省', '1309', '沧州市', '130925', '盐山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130926', '1309', '00,13,1309', '肃宁县', '13', '河北省', '1309', '沧州市', '130926', '肃宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130927', '1309', '00,13,1309', '南皮县', '13', '河北省', '1309', '沧州市', '130927', '南皮县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130928', '1309', '00,13,1309', '吴桥县', '13', '河北省', '1309', '沧州市', '130928', '吴桥县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130929', '1309', '00,13,1309', '献县', '13', '河北省', '1309', '沧州市', '130929', '献县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130930', '1309', '00,13,1309', '孟村回族自治县', '13', '河北省', '1309', '沧州市', '130930', '孟村回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130981', '1309', '00,13,1309', '泊头市', '13', '河北省', '1309', '沧州市', '130981', '泊头市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130982', '1309', '00,13,1309', '任丘市', '13', '河北省', '1309', '沧州市', '130982', '任丘市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130983', '1309', '00,13,1309', '黄骅市', '13', '河北省', '1309', '沧州市', '130983', '黄骅市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130984', '1309', '00,13,1309', '河间市', '13', '河北省', '1309', '沧州市', '130984', '河间市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1310', '13', '00,13', '廊坊市', '13', '河北省', '1310', '廊坊市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131002', '1310', '00,13,1310', '安次区', '13', '河北省', '1310', '廊坊市', '131002', '安次区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3403', '34', '00,34', '蚌埠市', '34', '安徽省', '3403', '蚌埠市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131003', '1310', '00,13,1310', '广阳区', '13', '河北省', '1310', '廊坊市', '131003', '广阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131022', '1310', '00,13,1310', '固安县', '13', '河北省', '1310', '廊坊市', '131022', '固安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131023', '1310', '00,13,1310', '永清县', '13', '河北省', '1310', '廊坊市', '131023', '永清县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131024', '1310', '00,13,1310', '香河县', '13', '河北省', '1310', '廊坊市', '131024', '香河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131025', '1310', '00,13,1310', '大城县', '13', '河北省', '1310', '廊坊市', '131025', '大城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131026', '1310', '00,13,1310', '文安县', '13', '河北省', '1310', '廊坊市', '131026', '文安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131028', '1310', '00,13,1310', '大厂回族自治县', '13', '河北省', '1310', '廊坊市', '131028', '大厂回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131081', '1310', '00,13,1310', '霸州市', '13', '河北省', '1310', '廊坊市', '131081', '霸州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131082', '1310', '00,13,1310', '三河市', '13', '河北省', '1310', '廊坊市', '131082', '三河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1311', '13', '00,13', '衡水市', '13', '河北省', '1311', '衡水市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131102', '1311', '00,13,1311', '桃城区', '13', '河北省', '1311', '衡水市', '131102', '桃城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131103', '1311', '00,13,1311', '冀州区', '13', '河北省', '1311', '衡水市', '131103', '冀州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131121', '1311', '00,13,1311', '枣强县', '13', '河北省', '1311', '衡水市', '131121', '枣强县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131122', '1311', '00,13,1311', '武邑县', '13', '河北省', '1311', '衡水市', '131122', '武邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131123', '1311', '00,13,1311', '武强县', '13', '河北省', '1311', '衡水市', '131123', '武强县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131124', '1311', '00,13,1311', '饶阳县', '13', '河北省', '1311', '衡水市', '131124', '饶阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131125', '1311', '00,13,1311', '安平县', '13', '河北省', '1311', '衡水市', '131125', '安平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131126', '1311', '00,13,1311', '故城县', '13', '河北省', '1311', '衡水市', '131126', '故城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131127', '1311', '00,13,1311', '景县', '13', '河北省', '1311', '衡水市', '131127', '景县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131128', '1311', '00,13,1311', '阜城县', '13', '河北省', '1311', '衡水市', '131128', '阜城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('131182', '1311', '00,13,1311', '深州市', '13', '河北省', '1311', '衡水市', '131182', '深州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('14', '00', '00', '山西省', '14', '山西省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1401', '14', '00,14', '太原市', '14', '山西省', '1401', '太原市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140105', '1401', '00,14,1401', '小店区', '14', '山西省', '1401', '太原市', '140105', '小店区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140106', '1401', '00,14,1401', '迎泽区', '14', '山西省', '1401', '太原市', '140106', '迎泽区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140107', '1401', '00,14,1401', '杏花岭区', '14', '山西省', '1401', '太原市', '140107', '杏花岭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140108', '1401', '00,14,1401', '尖草坪区', '14', '山西省', '1401', '太原市', '140108', '尖草坪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140109', '1401', '00,14,1401', '万柏林区', '14', '山西省', '1401', '太原市', '140109', '万柏林区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140110', '1401', '00,14,1401', '晋源区', '14', '山西省', '1401', '太原市', '140110', '晋源区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140121', '1401', '00,14,1401', '清徐县', '14', '山西省', '1401', '太原市', '140121', '清徐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140122', '1401', '00,14,1401', '阳曲县', '14', '山西省', '1401', '太原市', '140122', '阳曲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140123', '1401', '00,14,1401', '娄烦县', '14', '山西省', '1401', '太原市', '140123', '娄烦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140181', '1401', '00,14,1401', '古交市', '14', '山西省', '1401', '太原市', '140181', '古交市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1402', '14', '00,14', '大同市', '14', '山西省', '1402', '大同市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140212', '1402', '00,14,1402', '新荣区', '14', '山西省', '1402', '大同市', '140212', '新荣区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140213', '1402', '00,14,1402', '平城区', '14', '山西省', '1402', '大同市', '140213', '平城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140214', '1402', '00,14,1402', '云冈区', '14', '山西省', '1402', '大同市', '140214', '云冈区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140215', '1402', '00,14,1402', '云州区', '14', '山西省', '1402', '大同市', '140215', '云州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140221', '1402', '00,14,1402', '阳高县', '14', '山西省', '1402', '大同市', '140221', '阳高县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130306', '1303', '00,13,1303', '抚宁区', '13', '河北省', '1303', '秦皇岛市', '130306', '抚宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130321', '1303', '00,13,1303', '青龙满族自治县', '13', '河北省', '1303', '秦皇岛市', '130321', '青龙满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130322', '1303', '00,13,1303', '昌黎县', '13', '河北省', '1303', '秦皇岛市', '130322', '昌黎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130324', '1303', '00,13,1303', '卢龙县', '13', '河北省', '1303', '秦皇岛市', '130324', '卢龙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1304', '13', '00,13', '邯郸市', '13', '河北省', '1304', '邯郸市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130402', '1304', '00,13,1304', '邯山区', '13', '河北省', '1304', '邯郸市', '130402', '邯山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130403', '1304', '00,13,1304', '丛台区', '13', '河北省', '1304', '邯郸市', '130403', '丛台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130404', '1304', '00,13,1304', '复兴区', '13', '河北省', '1304', '邯郸市', '130404', '复兴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130406', '1304', '00,13,1304', '峰峰矿区', '13', '河北省', '1304', '邯郸市', '130406', '峰峰矿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130407', '1304', '00,13,1304', '肥乡区', '13', '河北省', '1304', '邯郸市', '130407', '肥乡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130408', '1304', '00,13,1304', '永年区', '13', '河北省', '1304', '邯郸市', '130408', '永年区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130423', '1304', '00,13,1304', '临漳县', '13', '河北省', '1304', '邯郸市', '130423', '临漳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130424', '1304', '00,13,1304', '成安县', '13', '河北省', '1304', '邯郸市', '130424', '成安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130425', '1304', '00,13,1304', '大名县', '13', '河北省', '1304', '邯郸市', '130425', '大名县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130426', '1304', '00,13,1304', '涉县', '13', '河北省', '1304', '邯郸市', '130426', '涉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130427', '1304', '00,13,1304', '磁县', '13', '河北省', '1304', '邯郸市', '130427', '磁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130430', '1304', '00,13,1304', '邱县', '13', '河北省', '1304', '邯郸市', '130430', '邱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130431', '1304', '00,13,1304', '鸡泽县', '13', '河北省', '1304', '邯郸市', '130431', '鸡泽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130432', '1304', '00,13,1304', '广平县', '13', '河北省', '1304', '邯郸市', '130432', '广平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130433', '1304', '00,13,1304', '馆陶县', '13', '河北省', '1304', '邯郸市', '130433', '馆陶县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130434', '1304', '00,13,1304', '魏县', '13', '河北省', '1304', '邯郸市', '130434', '魏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130435', '1304', '00,13,1304', '曲周县', '13', '河北省', '1304', '邯郸市', '130435', '曲周县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130481', '1304', '00,13,1304', '武安市', '13', '河北省', '1304', '邯郸市', '130481', '武安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1305', '13', '00,13', '邢台市', '13', '河北省', '1305', '邢台市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130502', '1305', '00,13,1305', '桥东区', '13', '河北省', '1305', '邢台市', '130502', '桥东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130503', '1305', '00,13,1305', '桥西区', '13', '河北省', '1305', '邢台市', '130503', '桥西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130521', '1305', '00,13,1305', '邢台县', '13', '河北省', '1305', '邢台市', '130521', '邢台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130522', '1305', '00,13,1305', '临城县', '13', '河北省', '1305', '邢台市', '130522', '临城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130523', '1305', '00,13,1305', '内丘县', '13', '河北省', '1305', '邢台市', '130523', '内丘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130524', '1305', '00,13,1305', '柏乡县', '13', '河北省', '1305', '邢台市', '130524', '柏乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130525', '1305', '00,13,1305', '隆尧县', '13', '河北省', '1305', '邢台市', '130525', '隆尧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130526', '1305', '00,13,1305', '任县', '13', '河北省', '1305', '邢台市', '130526', '任县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130527', '1305', '00,13,1305', '南和县', '13', '河北省', '1305', '邢台市', '130527', '南和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130528', '1305', '00,13,1305', '宁晋县', '13', '河北省', '1305', '邢台市', '130528', '宁晋县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130529', '1305', '00,13,1305', '巨鹿县', '13', '河北省', '1305', '邢台市', '130529', '巨鹿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130530', '1305', '00,13,1305', '新河县', '13', '河北省', '1305', '邢台市', '130530', '新河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130531', '1305', '00,13,1305', '广宗县', '13', '河北省', '1305', '邢台市', '130531', '广宗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130532', '1305', '00,13,1305', '平乡县', '13', '河北省', '1305', '邢台市', '130532', '平乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130533', '1305', '00,13,1305', '威县', '13', '河北省', '1305', '邢台市', '130533', '威县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130534', '1305', '00,13,1305', '清河县', '13', '河北省', '1305', '邢台市', '130534', '清河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130535', '1305', '00,13,1305', '临西县', '13', '河北省', '1305', '邢台市', '130535', '临西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130581', '1305', '00,13,1305', '南宫市', '13', '河北省', '1305', '邢台市', '130581', '南宫市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130582', '1305', '00,13,1305', '沙河市', '13', '河北省', '1305', '邢台市', '130582', '沙河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1306', '13', '00,13', '保定市', '13', '河北省', '1306', '保定市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130602', '1306', '00,13,1306', '竞秀区', '13', '河北省', '1306', '保定市', '130602', '竞秀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130606', '1306', '00,13,1306', '莲池区', '13', '河北省', '1306', '保定市', '130606', '莲池区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130607', '1306', '00,13,1306', '满城区', '13', '河北省', '1306', '保定市', '130607', '满城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130608', '1306', '00,13,1306', '清苑区', '13', '河北省', '1306', '保定市', '130608', '清苑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130609', '1306', '00,13,1306', '徐水区', '13', '河北省', '1306', '保定市', '130609', '徐水区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130623', '1306', '00,13,1306', '涞水县', '13', '河北省', '1306', '保定市', '130623', '涞水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130624', '1306', '00,13,1306', '阜平县', '13', '河北省', '1306', '保定市', '130624', '阜平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130626', '1306', '00,13,1306', '定兴县', '13', '河北省', '1306', '保定市', '130626', '定兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130627', '1306', '00,13,1306', '唐县', '13', '河北省', '1306', '保定市', '130627', '唐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130628', '1306', '00,13,1306', '高阳县', '13', '河北省', '1306', '保定市', '130628', '高阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130629', '1306', '00,13,1306', '容城县', '13', '河北省', '1306', '保定市', '130629', '容城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130630', '1306', '00,13,1306', '涞源县', '13', '河北省', '1306', '保定市', '130630', '涞源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130631', '1306', '00,13,1306', '望都县', '13', '河北省', '1306', '保定市', '130631', '望都县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130632', '1306', '00,13,1306', '安新县', '13', '河北省', '1306', '保定市', '130632', '安新县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130633', '1306', '00,13,1306', '易县', '13', '河北省', '1306', '保定市', '130633', '易县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130634', '1306', '00,13,1306', '曲阳县', '13', '河北省', '1306', '保定市', '130634', '曲阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130635', '1306', '00,13,1306', '蠡县', '13', '河北省', '1306', '保定市', '130635', '蠡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130636', '1306', '00,13,1306', '顺平县', '13', '河北省', '1306', '保定市', '130636', '顺平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130637', '1306', '00,13,1306', '博野县', '13', '河北省', '1306', '保定市', '130637', '博野县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130638', '1306', '00,13,1306', '雄县', '13', '河北省', '1306', '保定市', '130638', '雄县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130681', '1306', '00,13,1306', '涿州市', '13', '河北省', '1306', '保定市', '130681', '涿州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130682', '1306', '00,13,1306', '定州市', '13', '河北省', '1306', '保定市', '130682', '定州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130683', '1306', '00,13,1306', '安国市', '13', '河北省', '1306', '保定市', '130683', '安国市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130684', '1306', '00,13,1306', '高碑店市', '13', '河北省', '1306', '保定市', '130684', '高碑店市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1307', '13', '00,13', '张家口市', '13', '河北省', '1307', '张家口市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130702', '1307', '00,13,1307', '桥东区', '13', '河北省', '1307', '张家口市', '130702', '桥东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130703', '1307', '00,13,1307', '桥西区', '13', '河北省', '1307', '张家口市', '130703', '桥西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130705', '1307', '00,13,1307', '宣化区', '13', '河北省', '1307', '张家口市', '130705', '宣化区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130706', '1307', '00,13,1307', '下花园区', '13', '河北省', '1307', '张家口市', '130706', '下花园区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130708', '1307', '00,13,1307', '万全区', '13', '河北省', '1307', '张家口市', '130708', '万全区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130709', '1307', '00,13,1307', '崇礼区', '13', '河北省', '1307', '张家口市', '130709', '崇礼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130722', '1307', '00,13,1307', '张北县', '13', '河北省', '1307', '张家口市', '130722', '张北县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('130723', '1307', '00,13,1307', '康保县', '13', '河北省', '1307', '张家口市', '130723', '康保县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140222', '1402', '00,14,1402', '天镇县', '14', '山西省', '1402', '大同市', '140222', '天镇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140223', '1402', '00,14,1402', '广灵县', '14', '山西省', '1402', '大同市', '140223', '广灵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140224', '1402', '00,14,1402', '灵丘县', '14', '山西省', '1402', '大同市', '140224', '灵丘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140225', '1402', '00,14,1402', '浑源县', '14', '山西省', '1402', '大同市', '140225', '浑源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140226', '1402', '00,14,1402', '左云县', '14', '山西省', '1402', '大同市', '140226', '左云县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1403', '14', '00,14', '阳泉市', '14', '山西省', '1403', '阳泉市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140302', '1403', '00,14,1403', '城区', '14', '山西省', '1403', '阳泉市', '140302', '城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140303', '1403', '00,14,1403', '矿区', '14', '山西省', '1403', '阳泉市', '140303', '矿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140311', '1403', '00,14,1403', '郊区', '14', '山西省', '1403', '阳泉市', '140311', '郊区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140321', '1403', '00,14,1403', '平定县', '14', '山西省', '1403', '阳泉市', '140321', '平定县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140322', '1403', '00,14,1403', '盂县', '14', '山西省', '1403', '阳泉市', '140322', '盂县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1404', '14', '00,14', '长治市', '14', '山西省', '1404', '长治市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140403', '1404', '00,14,1404', '潞州区', '14', '山西省', '1404', '长治市', '140403', '潞州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140404', '1404', '00,14,1404', '上党区', '14', '山西省', '1404', '长治市', '140404', '上党区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140405', '1404', '00,14,1404', '屯留区', '14', '山西省', '1404', '长治市', '140405', '屯留区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140406', '1404', '00,14,1404', '潞城区', '14', '山西省', '1404', '长治市', '140406', '潞城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140423', '1404', '00,14,1404', '襄垣县', '14', '山西省', '1404', '长治市', '140423', '襄垣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140425', '1404', '00,14,1404', '平顺县', '14', '山西省', '1404', '长治市', '140425', '平顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140426', '1404', '00,14,1404', '黎城县', '14', '山西省', '1404', '长治市', '140426', '黎城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140427', '1404', '00,14,1404', '壶关县', '14', '山西省', '1404', '长治市', '140427', '壶关县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140428', '1404', '00,14,1404', '长子县', '14', '山西省', '1404', '长治市', '140428', '长子县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140429', '1404', '00,14,1404', '武乡县', '14', '山西省', '1404', '长治市', '140429', '武乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140430', '1404', '00,14,1404', '沁县', '14', '山西省', '1404', '长治市', '140430', '沁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140431', '1404', '00,14,1404', '沁源县', '14', '山西省', '1404', '长治市', '140431', '沁源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1405', '14', '00,14', '晋城市', '14', '山西省', '1405', '晋城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140502', '1405', '00,14,1405', '城区', '14', '山西省', '1405', '晋城市', '140502', '城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140521', '1405', '00,14,1405', '沁水县', '14', '山西省', '1405', '晋城市', '140521', '沁水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140522', '1405', '00,14,1405', '阳城县', '14', '山西省', '1405', '晋城市', '140522', '阳城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140524', '1405', '00,14,1405', '陵川县', '14', '山西省', '1405', '晋城市', '140524', '陵川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140525', '1405', '00,14,1405', '泽州县', '14', '山西省', '1405', '晋城市', '140525', '泽州县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140581', '1405', '00,14,1405', '高平市', '14', '山西省', '1405', '晋城市', '140581', '高平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1406', '14', '00,14', '朔州市', '14', '山西省', '1406', '朔州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140602', '1406', '00,14,1406', '朔城区', '14', '山西省', '1406', '朔州市', '140602', '朔城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140603', '1406', '00,14,1406', '平鲁区', '14', '山西省', '1406', '朔州市', '140603', '平鲁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140621', '1406', '00,14,1406', '山阴县', '14', '山西省', '1406', '朔州市', '140621', '山阴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140622', '1406', '00,14,1406', '应县', '14', '山西省', '1406', '朔州市', '140622', '应县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140623', '1406', '00,14,1406', '右玉县', '14', '山西省', '1406', '朔州市', '140623', '右玉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140681', '1406', '00,14,1406', '怀仁市', '14', '山西省', '1406', '朔州市', '140681', '怀仁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1407', '14', '00,14', '晋中市', '14', '山西省', '1407', '晋中市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140702', '1407', '00,14,1407', '榆次区', '14', '山西省', '1407', '晋中市', '140702', '榆次区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140703', '1407', '00,14,1407', '太谷区', '14', '山西省', '1407', '晋中市', '140703', '太谷区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140721', '1407', '00,14,1407', '榆社县', '14', '山西省', '1407', '晋中市', '140721', '榆社县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140722', '1407', '00,14,1407', '左权县', '14', '山西省', '1407', '晋中市', '140722', '左权县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140723', '1407', '00,14,1407', '和顺县', '14', '山西省', '1407', '晋中市', '140723', '和顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140724', '1407', '00,14,1407', '昔阳县', '14', '山西省', '1407', '晋中市', '140724', '昔阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140725', '1407', '00,14,1407', '寿阳县', '14', '山西省', '1407', '晋中市', '140725', '寿阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140727', '1407', '00,14,1407', '祁县', '14', '山西省', '1407', '晋中市', '140727', '祁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140728', '1407', '00,14,1407', '平遥县', '14', '山西省', '1407', '晋中市', '140728', '平遥县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140729', '1407', '00,14,1407', '灵石县', '14', '山西省', '1407', '晋中市', '140729', '灵石县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140781', '1407', '00,14,1407', '介休市', '14', '山西省', '1407', '晋中市', '140781', '介休市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1408', '14', '00,14', '运城市', '14', '山西省', '1408', '运城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140802', '1408', '00,14,1408', '盐湖区', '14', '山西省', '1408', '运城市', '140802', '盐湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140821', '1408', '00,14,1408', '临猗县', '14', '山西省', '1408', '运城市', '140821', '临猗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140822', '1408', '00,14,1408', '万荣县', '14', '山西省', '1408', '运城市', '140822', '万荣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140823', '1408', '00,14,1408', '闻喜县', '14', '山西省', '1408', '运城市', '140823', '闻喜县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140824', '1408', '00,14,1408', '稷山县', '14', '山西省', '1408', '运城市', '140824', '稷山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140825', '1408', '00,14,1408', '新绛县', '14', '山西省', '1408', '运城市', '140825', '新绛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140826', '1408', '00,14,1408', '绛县', '14', '山西省', '1408', '运城市', '140826', '绛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140827', '1408', '00,14,1408', '垣曲县', '14', '山西省', '1408', '运城市', '140827', '垣曲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140828', '1408', '00,14,1408', '夏县', '14', '山西省', '1408', '运城市', '140828', '夏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140829', '1408', '00,14,1408', '平陆县', '14', '山西省', '1408', '运城市', '140829', '平陆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140830', '1408', '00,14,1408', '芮城县', '14', '山西省', '1408', '运城市', '140830', '芮城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140881', '1408', '00,14,1408', '永济市', '14', '山西省', '1408', '运城市', '140881', '永济市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140882', '1408', '00,14,1408', '河津市', '14', '山西省', '1408', '运城市', '140882', '河津市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1409', '14', '00,14', '忻州市', '14', '山西省', '1409', '忻州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140902', '1409', '00,14,1409', '忻府区', '14', '山西省', '1409', '忻州市', '140902', '忻府区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140921', '1409', '00,14,1409', '定襄县', '14', '山西省', '1409', '忻州市', '140921', '定襄县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140922', '1409', '00,14,1409', '五台县', '14', '山西省', '1409', '忻州市', '140922', '五台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140923', '1409', '00,14,1409', '代县', '14', '山西省', '1409', '忻州市', '140923', '代县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140924', '1409', '00,14,1409', '繁峙县', '14', '山西省', '1409', '忻州市', '140924', '繁峙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140925', '1409', '00,14,1409', '宁武县', '14', '山西省', '1409', '忻州市', '140925', '宁武县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140926', '1409', '00,14,1409', '静乐县', '14', '山西省', '1409', '忻州市', '140926', '静乐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140927', '1409', '00,14,1409', '神池县', '14', '山西省', '1409', '忻州市', '140927', '神池县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140928', '1409', '00,14,1409', '五寨县', '14', '山西省', '1409', '忻州市', '140928', '五寨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140929', '1409', '00,14,1409', '岢岚县', '14', '山西省', '1409', '忻州市', '140929', '岢岚县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140930', '1409', '00,14,1409', '河曲县', '14', '山西省', '1409', '忻州市', '140930', '河曲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140931', '1409', '00,14,1409', '保德县', '14', '山西省', '1409', '忻州市', '140931', '保德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140932', '1409', '00,14,1409', '偏关县', '14', '山西省', '1409', '忻州市', '140932', '偏关县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('140981', '1409', '00,14,1409', '原平市', '14', '山西省', '1409', '忻州市', '140981', '原平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1410', '14', '00,14', '临汾市', '14', '山西省', '1410', '临汾市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141002', '1410', '00,14,1410', '尧都区', '14', '山西省', '1410', '临汾市', '141002', '尧都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141021', '1410', '00,14,1410', '曲沃县', '14', '山西省', '1410', '临汾市', '141021', '曲沃县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141022', '1410', '00,14,1410', '翼城县', '14', '山西省', '1410', '临汾市', '141022', '翼城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141023', '1410', '00,14,1410', '襄汾县', '14', '山西省', '1410', '临汾市', '141023', '襄汾县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141024', '1410', '00,14,1410', '洪洞县', '14', '山西省', '1410', '临汾市', '141024', '洪洞县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141025', '1410', '00,14,1410', '古县', '14', '山西省', '1410', '临汾市', '141025', '古县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141026', '1410', '00,14,1410', '安泽县', '14', '山西省', '1410', '临汾市', '141026', '安泽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141027', '1410', '00,14,1410', '浮山县', '14', '山西省', '1410', '临汾市', '141027', '浮山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141028', '1410', '00,14,1410', '吉县', '14', '山西省', '1410', '临汾市', '141028', '吉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141029', '1410', '00,14,1410', '乡宁县', '14', '山西省', '1410', '临汾市', '141029', '乡宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141030', '1410', '00,14,1410', '大宁县', '14', '山西省', '1410', '临汾市', '141030', '大宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141031', '1410', '00,14,1410', '隰县', '14', '山西省', '1410', '临汾市', '141031', '隰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141032', '1410', '00,14,1410', '永和县', '14', '山西省', '1410', '临汾市', '141032', '永和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141033', '1410', '00,14,1410', '蒲县', '14', '山西省', '1410', '临汾市', '141033', '蒲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141034', '1410', '00,14,1410', '汾西县', '14', '山西省', '1410', '临汾市', '141034', '汾西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141081', '1410', '00,14,1410', '侯马市', '14', '山西省', '1410', '临汾市', '141081', '侯马市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141082', '1410', '00,14,1410', '霍州市', '14', '山西省', '1410', '临汾市', '141082', '霍州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1411', '14', '00,14', '吕梁市', '14', '山西省', '1411', '吕梁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141102', '1411', '00,14,1411', '离石区', '14', '山西省', '1411', '吕梁市', '141102', '离石区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141121', '1411', '00,14,1411', '文水县', '14', '山西省', '1411', '吕梁市', '141121', '文水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141122', '1411', '00,14,1411', '交城县', '14', '山西省', '1411', '吕梁市', '141122', '交城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141123', '1411', '00,14,1411', '兴县', '14', '山西省', '1411', '吕梁市', '141123', '兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141124', '1411', '00,14,1411', '临县', '14', '山西省', '1411', '吕梁市', '141124', '临县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141125', '1411', '00,14,1411', '柳林县', '14', '山西省', '1411', '吕梁市', '141125', '柳林县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141126', '1411', '00,14,1411', '石楼县', '14', '山西省', '1411', '吕梁市', '141126', '石楼县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141127', '1411', '00,14,1411', '岚县', '14', '山西省', '1411', '吕梁市', '141127', '岚县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141128', '1411', '00,14,1411', '方山县', '14', '山西省', '1411', '吕梁市', '141128', '方山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141129', '1411', '00,14,1411', '中阳县', '14', '山西省', '1411', '吕梁市', '141129', '中阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141130', '1411', '00,14,1411', '交口县', '14', '山西省', '1411', '吕梁市', '141130', '交口县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141181', '1411', '00,14,1411', '孝义市', '14', '山西省', '1411', '吕梁市', '141181', '孝义市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('141182', '1411', '00,14,1411', '汾阳市', '14', '山西省', '1411', '吕梁市', '141182', '汾阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('15', '00', '00', '内蒙古自治区', '15', '内蒙古自治区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1501', '15', '00,15', '呼和浩特市', '15', '内蒙古自治区', '1501', '呼和浩特市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150102', '1501', '00,15,1501', '新城区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150102', '新城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150103', '1501', '00,15,1501', '回民区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150103', '回民区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150104', '1501', '00,15,1501', '玉泉区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150104', '玉泉区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150105', '1501', '00,15,1501', '赛罕区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150105', '赛罕区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150121', '1501', '00,15,1501', '土默特左旗', '15', '内蒙古自治区', '1501', '呼和浩特市', '150121', '土默特左旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150122', '1501', '00,15,1501', '托克托县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150122', '托克托县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150123', '1501', '00,15,1501', '和林格尔县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150123', '和林格尔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150124', '1501', '00,15,1501', '清水河县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150124', '清水河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150125', '1501', '00,15,1501', '武川县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150125', '武川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1502', '15', '00,15', '包头市', '15', '内蒙古自治区', '1502', '包头市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150202', '1502', '00,15,1502', '东河区', '15', '内蒙古自治区', '1502', '包头市', '150202', '东河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150203', '1502', '00,15,1502', '昆都仑区', '15', '内蒙古自治区', '1502', '包头市', '150203', '昆都仑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150204', '1502', '00,15,1502', '青山区', '15', '内蒙古自治区', '1502', '包头市', '150204', '青山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150205', '1502', '00,15,1502', '石拐区', '15', '内蒙古自治区', '1502', '包头市', '150205', '石拐区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150206', '1502', '00,15,1502', '白云鄂博矿区', '15', '内蒙古自治区', '1502', '包头市', '150206', '白云鄂博矿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150207', '1502', '00,15,1502', '九原区', '15', '内蒙古自治区', '1502', '包头市', '150207', '九原区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150221', '1502', '00,15,1502', '土默特右旗', '15', '内蒙古自治区', '1502', '包头市', '150221', '土默特右旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150222', '1502', '00,15,1502', '固阳县', '15', '内蒙古自治区', '1502', '包头市', '150222', '固阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150223', '1502', '00,15,1502', '达尔罕茂明安联合旗', '15', '内蒙古自治区', '1502', '包头市', '150223', '达尔罕茂明安联合旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1503', '15', '00,15', '乌海市', '15', '内蒙古自治区', '1503', '乌海市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150302', '1503', '00,15,1503', '海勃湾区', '15', '内蒙古自治区', '1503', '乌海市', '150302', '海勃湾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150303', '1503', '00,15,1503', '海南区', '15', '内蒙古自治区', '1503', '乌海市', '150303', '海南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150304', '1503', '00,15,1503', '乌达区', '15', '内蒙古自治区', '1503', '乌海市', '150304', '乌达区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1504', '15', '00,15', '赤峰市', '15', '内蒙古自治区', '1504', '赤峰市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150402', '1504', '00,15,1504', '红山区', '15', '内蒙古自治区', '1504', '赤峰市', '150402', '红山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150403', '1504', '00,15,1504', '元宝山区', '15', '内蒙古自治区', '1504', '赤峰市', '150403', '元宝山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150404', '1504', '00,15,1504', '松山区', '15', '内蒙古自治区', '1504', '赤峰市', '150404', '松山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150421', '1504', '00,15,1504', '阿鲁科尔沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150421', '阿鲁科尔沁旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150422', '1504', '00,15,1504', '巴林左旗', '15', '内蒙古自治区', '1504', '赤峰市', '150422', '巴林左旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150423', '1504', '00,15,1504', '巴林右旗', '15', '内蒙古自治区', '1504', '赤峰市', '150423', '巴林右旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150424', '1504', '00,15,1504', '林西县', '15', '内蒙古自治区', '1504', '赤峰市', '150424', '林西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150425', '1504', '00,15,1504', '克什克腾旗', '15', '内蒙古自治区', '1504', '赤峰市', '150425', '克什克腾旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150426', '1504', '00,15,1504', '翁牛特旗', '15', '内蒙古自治区', '1504', '赤峰市', '150426', '翁牛特旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150428', '1504', '00,15,1504', '喀喇沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150428', '喀喇沁旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150429', '1504', '00,15,1504', '宁城县', '15', '内蒙古自治区', '1504', '赤峰市', '150429', '宁城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150430', '1504', '00,15,1504', '敖汉旗', '15', '内蒙古自治区', '1504', '赤峰市', '150430', '敖汉旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1505', '15', '00,15', '通辽市', '15', '内蒙古自治区', '1505', '通辽市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150502', '1505', '00,15,1505', '科尔沁区', '15', '内蒙古自治区', '1505', '通辽市', '150502', '科尔沁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150521', '1505', '00,15,1505', '科尔沁左翼中旗', '15', '内蒙古自治区', '1505', '通辽市', '150521', '科尔沁左翼中旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('00', '0', '0', '中华人民共和国', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('11', '00', '00', '北京市', '11', '北京市', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231086', '2310', '00,23,2310', '东宁市', '23', '黑龙江省', '2310', '牡丹江市', '231086', '东宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2311', '23', '00,23', '黑河市', '23', '黑龙江省', '2311', '黑河市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150526', '1505', '00,15,1505', '扎鲁特旗', '15', '内蒙古自治区', '1505', '通辽市', '150526', '扎鲁特旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150581', '1505', '00,15,1505', '霍林郭勒市', '15', '内蒙古自治区', '1505', '通辽市', '150581', '霍林郭勒市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1506', '15', '00,15', '鄂尔多斯市', '15', '内蒙古自治区', '1506', '鄂尔多斯市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150602', '1506', '00,15,1506', '东胜区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150602', '东胜区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150603', '1506', '00,15,1506', '康巴什区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150603', '康巴什区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150621', '1506', '00,15,1506', '达拉特旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150621', '达拉特旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150622', '1506', '00,15,1506', '准格尔旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150622', '准格尔旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150623', '1506', '00,15,1506', '鄂托克前旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150623', '鄂托克前旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150624', '1506', '00,15,1506', '鄂托克旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150624', '鄂托克旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150625', '1506', '00,15,1506', '杭锦旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150625', '杭锦旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150626', '1506', '00,15,1506', '乌审旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150626', '乌审旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150627', '1506', '00,15,1506', '伊金霍洛旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150627', '伊金霍洛旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1507', '15', '00,15', '呼伦贝尔市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150702', '1507', '00,15,1507', '海拉尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150702', '海拉尔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150703', '1507', '00,15,1507', '扎赉诺尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150703', '扎赉诺尔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150721', '1507', '00,15,1507', '阿荣旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150721', '阿荣旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150722', '1507', '00,15,1507', '莫力达瓦达斡尔族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150722', '莫力达瓦达斡尔族自治旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150723', '1507', '00,15,1507', '鄂伦春自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150723', '鄂伦春自治旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150724', '1507', '00,15,1507', '鄂温克族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150724', '鄂温克族自治旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150725', '1507', '00,15,1507', '陈巴尔虎旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150725', '陈巴尔虎旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150726', '1507', '00,15,1507', '新巴尔虎左旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150726', '新巴尔虎左旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150727', '1507', '00,15,1507', '新巴尔虎右旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150727', '新巴尔虎右旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150781', '1507', '00,15,1507', '满洲里市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150781', '满洲里市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150782', '1507', '00,15,1507', '牙克石市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150782', '牙克石市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150783', '1507', '00,15,1507', '扎兰屯市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150783', '扎兰屯市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150784', '1507', '00,15,1507', '额尔古纳市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150784', '额尔古纳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150785', '1507', '00,15,1507', '根河市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150785', '根河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1508', '15', '00,15', '巴彦淖尔市', '15', '内蒙古自治区', '1508', '巴彦淖尔市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150802', '1508', '00,15,1508', '临河区', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150802', '临河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150821', '1508', '00,15,1508', '五原县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150821', '五原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150822', '1508', '00,15,1508', '磴口县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150822', '磴口县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150823', '1508', '00,15,1508', '乌拉特前旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150823', '乌拉特前旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150824', '1508', '00,15,1508', '乌拉特中旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150824', '乌拉特中旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150825', '1508', '00,15,1508', '乌拉特后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150825', '乌拉特后旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150826', '1508', '00,15,1508', '杭锦后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150826', '杭锦后旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1509', '15', '00,15', '乌兰察布市', '15', '内蒙古自治区', '1509', '乌兰察布市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150902', '1509', '00,15,1509', '集宁区', '15', '内蒙古自治区', '1509', '乌兰察布市', '150902', '集宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150921', '1509', '00,15,1509', '卓资县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150921', '卓资县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150922', '1509', '00,15,1509', '化德县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150922', '化德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150923', '1509', '00,15,1509', '商都县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150923', '商都县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150924', '1509', '00,15,1509', '兴和县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150924', '兴和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150925', '1509', '00,15,1509', '凉城县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150925', '凉城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150926', '1509', '00,15,1509', '察哈尔右翼前旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150926', '察哈尔右翼前旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150927', '1509', '00,15,1509', '察哈尔右翼中旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150927', '察哈尔右翼中旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150928', '1509', '00,15,1509', '察哈尔右翼后旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150928', '察哈尔右翼后旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150929', '1509', '00,15,1509', '四子王旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150929', '四子王旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150981', '1509', '00,15,1509', '丰镇市', '15', '内蒙古自治区', '1509', '乌兰察布市', '150981', '丰镇市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1522', '15', '00,15', '兴安盟', '15', '内蒙古自治区', '1522', '兴安盟', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152201', '1522', '00,15,1522', '乌兰浩特市', '15', '内蒙古自治区', '1522', '兴安盟', '152201', '乌兰浩特市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152202', '1522', '00,15,1522', '阿尔山市', '15', '内蒙古自治区', '1522', '兴安盟', '152202', '阿尔山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152221', '1522', '00,15,1522', '科尔沁右翼前旗', '15', '内蒙古自治区', '1522', '兴安盟', '152221', '科尔沁右翼前旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152222', '1522', '00,15,1522', '科尔沁右翼中旗', '15', '内蒙古自治区', '1522', '兴安盟', '152222', '科尔沁右翼中旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152223', '1522', '00,15,1522', '扎赉特旗', '15', '内蒙古自治区', '1522', '兴安盟', '152223', '扎赉特旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152224', '1522', '00,15,1522', '突泉县', '15', '内蒙古自治区', '1522', '兴安盟', '152224', '突泉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1525', '15', '00,15', '锡林郭勒盟', '15', '内蒙古自治区', '1525', '锡林郭勒盟', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211421', '2114', '00,21,2114', '绥中县', '21', '辽宁省', '2114', '葫芦岛市', '211421', '绥中县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152501', '1525', '00,15,1525', '二连浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152501', '二连浩特市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152502', '1525', '00,15,1525', '锡林浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152502', '锡林浩特市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152522', '1525', '00,15,1525', '阿巴嘎旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152522', '阿巴嘎旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152523', '1525', '00,15,1525', '苏尼特左旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152523', '苏尼特左旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370681', '3706', '00,37,3706', '龙口市', '37', '山东省', '3706', '烟台市', '370681', '龙口市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370682', '3706', '00,37,3706', '莱阳市', '37', '山东省', '3706', '烟台市', '370682', '莱阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330106', '3301', '00,33,3301', '西湖区', '33', '浙江省', '3301', '杭州市', '330106', '西湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330108', '3301', '00,33,3301', '滨江区', '33', '浙江省', '3301', '杭州市', '330108', '滨江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320411', '3204', '00,32,3204', '新北区', '32', '江苏省', '3204', '常州市', '320411', '新北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320412', '3204', '00,32,3204', '武进区', '32', '江苏省', '3204', '常州市', '320412', '武进区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320413', '3204', '00,32,3204', '金坛区', '32', '江苏省', '3204', '常州市', '320413', '金坛区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320481', '3204', '00,32,3204', '溧阳市', '32', '江苏省', '3204', '常州市', '320481', '溧阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3205', '32', '00,32', '苏州市', '32', '江苏省', '3205', '苏州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320505', '3205', '00,32,3205', '虎丘区', '32', '江苏省', '3205', '苏州市', '320505', '虎丘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320506', '3205', '00,32,3205', '吴中区', '32', '江苏省', '3205', '苏州市', '320506', '吴中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320507', '3205', '00,32,3205', '相城区', '32', '江苏省', '3205', '苏州市', '320507', '相城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320508', '3205', '00,32,3205', '姑苏区', '32', '江苏省', '3205', '苏州市', '320508', '姑苏区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320509', '3205', '00,32,3205', '吴江区', '32', '江苏省', '3205', '苏州市', '320509', '吴江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320581', '3205', '00,32,3205', '常熟市', '32', '江苏省', '3205', '苏州市', '320581', '常熟市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320582', '3205', '00,32,3205', '张家港市', '32', '江苏省', '3205', '苏州市', '320582', '张家港市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320583', '3205', '00,32,3205', '昆山市', '32', '江苏省', '3205', '苏州市', '320583', '昆山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320585', '3205', '00,32,3205', '太仓市', '32', '江苏省', '3205', '苏州市', '320585', '太仓市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3206', '32', '00,32', '南通市', '32', '江苏省', '3206', '南通市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320602', '3206', '00,32,3206', '崇川区', '32', '江苏省', '3206', '南通市', '320602', '崇川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320611', '3206', '00,32,3206', '港闸区', '32', '江苏省', '3206', '南通市', '320611', '港闸区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320612', '3206', '00,32,3206', '通州区', '32', '江苏省', '3206', '南通市', '320612', '通州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320623', '3206', '00,32,3206', '如东县', '32', '江苏省', '3206', '南通市', '320623', '如东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320681', '3206', '00,32,3206', '启东市', '32', '江苏省', '3206', '南通市', '320681', '启东市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320682', '3206', '00,32,3206', '如皋市', '32', '江苏省', '3206', '南通市', '320682', '如皋市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320684', '3206', '00,32,3206', '海门市', '32', '江苏省', '3206', '南通市', '320684', '海门市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320685', '3206', '00,32,3206', '海安市', '32', '江苏省', '3206', '南通市', '320685', '海安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3207', '32', '00,32', '连云港市', '32', '江苏省', '3207', '连云港市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320703', '3207', '00,32,3207', '连云区', '32', '江苏省', '3207', '连云港市', '320703', '连云区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320706', '3207', '00,32,3207', '海州区', '32', '江苏省', '3207', '连云港市', '320706', '海州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320707', '3207', '00,32,3207', '赣榆区', '32', '江苏省', '3207', '连云港市', '320707', '赣榆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320722', '3207', '00,32,3207', '东海县', '32', '江苏省', '3207', '连云港市', '320722', '东海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320723', '3207', '00,32,3207', '灌云县', '32', '江苏省', '3207', '连云港市', '320723', '灌云县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320724', '3207', '00,32,3207', '灌南县', '32', '江苏省', '3207', '连云港市', '320724', '灌南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3208', '32', '00,32', '淮安市', '32', '江苏省', '3208', '淮安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320803', '3208', '00,32,3208', '淮安区', '32', '江苏省', '3208', '淮安市', '320803', '淮安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320804', '3208', '00,32,3208', '淮阴区', '32', '江苏省', '3208', '淮安市', '320804', '淮阴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320812', '3208', '00,32,3208', '清江浦区', '32', '江苏省', '3208', '淮安市', '320812', '清江浦区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320813', '3208', '00,32,3208', '洪泽区', '32', '江苏省', '3208', '淮安市', '320813', '洪泽区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320826', '3208', '00,32,3208', '涟水县', '32', '江苏省', '3208', '淮安市', '320826', '涟水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320830', '3208', '00,32,3208', '盱眙县', '32', '江苏省', '3208', '淮安市', '320830', '盱眙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320831', '3208', '00,32,3208', '金湖县', '32', '江苏省', '3208', '淮安市', '320831', '金湖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3209', '32', '00,32', '盐城市', '32', '江苏省', '3209', '盐城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320902', '3209', '00,32,3209', '亭湖区', '32', '江苏省', '3209', '盐城市', '320902', '亭湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320903', '3209', '00,32,3209', '盐都区', '32', '江苏省', '3209', '盐城市', '320903', '盐都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320904', '3209', '00,32,3209', '大丰区', '32', '江苏省', '3209', '盐城市', '320904', '大丰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320921', '3209', '00,32,3209', '响水县', '32', '江苏省', '3209', '盐城市', '320921', '响水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320922', '3209', '00,32,3209', '滨海县', '32', '江苏省', '3209', '盐城市', '320922', '滨海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320923', '3209', '00,32,3209', '阜宁县', '32', '江苏省', '3209', '盐城市', '320923', '阜宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320924', '3209', '00,32,3209', '射阳县', '32', '江苏省', '3209', '盐城市', '320924', '射阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320925', '3209', '00,32,3209', '建湖县', '32', '江苏省', '3209', '盐城市', '320925', '建湖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320981', '3209', '00,32,3209', '东台市', '32', '江苏省', '3209', '盐城市', '320981', '东台市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3210', '32', '00,32', '扬州市', '32', '江苏省', '3210', '扬州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321002', '3210', '00,32,3210', '广陵区', '32', '江苏省', '3210', '扬州市', '321002', '广陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321003', '3210', '00,32,3210', '邗江区', '32', '江苏省', '3210', '扬州市', '321003', '邗江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321012', '3210', '00,32,3210', '江都区', '32', '江苏省', '3210', '扬州市', '321012', '江都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321023', '3210', '00,32,3210', '宝应县', '32', '江苏省', '3210', '扬州市', '321023', '宝应县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321081', '3210', '00,32,3210', '仪征市', '32', '江苏省', '3210', '扬州市', '321081', '仪征市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321084', '3210', '00,32,3210', '高邮市', '32', '江苏省', '3210', '扬州市', '321084', '高邮市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3211', '32', '00,32', '镇江市', '32', '江苏省', '3211', '镇江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321102', '3211', '00,32,3211', '京口区', '32', '江苏省', '3211', '镇江市', '321102', '京口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321111', '3211', '00,32,3211', '润州区', '32', '江苏省', '3211', '镇江市', '321111', '润州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321112', '3211', '00,32,3211', '丹徒区', '32', '江苏省', '3211', '镇江市', '321112', '丹徒区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321181', '3211', '00,32,3211', '丹阳市', '32', '江苏省', '3211', '镇江市', '321181', '丹阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321182', '3211', '00,32,3211', '扬中市', '32', '江苏省', '3211', '镇江市', '321182', '扬中市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321183', '3211', '00,32,3211', '句容市', '32', '江苏省', '3211', '镇江市', '321183', '句容市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3212', '32', '00,32', '泰州市', '32', '江苏省', '3212', '泰州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321202', '3212', '00,32,3212', '海陵区', '32', '江苏省', '3212', '泰州市', '321202', '海陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321203', '3212', '00,32,3212', '高港区', '32', '江苏省', '3212', '泰州市', '321203', '高港区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321204', '3212', '00,32,3212', '姜堰区', '32', '江苏省', '3212', '泰州市', '321204', '姜堰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321281', '3212', '00,32,3212', '兴化市', '32', '江苏省', '3212', '泰州市', '321281', '兴化市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321282', '3212', '00,32,3212', '靖江市', '32', '江苏省', '3212', '泰州市', '321282', '靖江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321283', '3212', '00,32,3212', '泰兴市', '32', '江苏省', '3212', '泰州市', '321283', '泰兴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3213', '32', '00,32', '宿迁市', '32', '江苏省', '3213', '宿迁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321302', '3213', '00,32,3213', '宿城区', '32', '江苏省', '3213', '宿迁市', '321302', '宿城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321311', '3213', '00,32,3213', '宿豫区', '32', '江苏省', '3213', '宿迁市', '321311', '宿豫区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321322', '3213', '00,32,3213', '沭阳县', '32', '江苏省', '3213', '宿迁市', '321322', '沭阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321323', '3213', '00,32,3213', '泗阳县', '32', '江苏省', '3213', '宿迁市', '321323', '泗阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('321324', '3213', '00,32,3213', '泗洪县', '32', '江苏省', '3213', '宿迁市', '321324', '泗洪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('33', '00', '00', '浙江省', '33', '浙江省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3301', '33', '00,33', '杭州市', '33', '浙江省', '3301', '杭州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330102', '3301', '00,33,3301', '上城区', '33', '浙江省', '3301', '杭州市', '330102', '上城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330103', '3301', '00,33,3301', '下城区', '33', '浙江省', '3301', '杭州市', '330103', '下城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330104', '3301', '00,33,3301', '江干区', '33', '浙江省', '3301', '杭州市', '330104', '江干区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210881', '2108', '00,21,2108', '盖州市', '21', '辽宁省', '2108', '营口市', '210881', '盖州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210882', '2108', '00,21,2108', '大石桥市', '21', '辽宁省', '2108', '营口市', '210882', '大石桥市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2109', '21', '00,21', '阜新市', '21', '辽宁省', '2109', '阜新市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210902', '2109', '00,21,2109', '海州区', '21', '辽宁省', '2109', '阜新市', '210902', '海州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210903', '2109', '00,21,2109', '新邱区', '21', '辽宁省', '2109', '阜新市', '210903', '新邱区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210904', '2109', '00,21,2109', '太平区', '21', '辽宁省', '2109', '阜新市', '210904', '太平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210905', '2109', '00,21,2109', '清河门区', '21', '辽宁省', '2109', '阜新市', '210905', '清河门区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210911', '2109', '00,21,2109', '细河区', '21', '辽宁省', '2109', '阜新市', '210911', '细河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210921', '2109', '00,21,2109', '阜新蒙古族自治县', '21', '辽宁省', '2109', '阜新市', '210921', '阜新蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210922', '2109', '00,21,2109', '彰武县', '21', '辽宁省', '2109', '阜新市', '210922', '彰武县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2110', '21', '00,21', '辽阳市', '21', '辽宁省', '2110', '辽阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211002', '2110', '00,21,2110', '白塔区', '21', '辽宁省', '2110', '辽阳市', '211002', '白塔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211003', '2110', '00,21,2110', '文圣区', '21', '辽宁省', '2110', '辽阳市', '211003', '文圣区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211004', '2110', '00,21,2110', '宏伟区', '21', '辽宁省', '2110', '辽阳市', '211004', '宏伟区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211005', '2110', '00,21,2110', '弓长岭区', '21', '辽宁省', '2110', '辽阳市', '211005', '弓长岭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211011', '2110', '00,21,2110', '太子河区', '21', '辽宁省', '2110', '辽阳市', '211011', '太子河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211021', '2110', '00,21,2110', '辽阳县', '21', '辽宁省', '2110', '辽阳市', '211021', '辽阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211081', '2110', '00,21,2110', '灯塔市', '21', '辽宁省', '2110', '辽阳市', '211081', '灯塔市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2111', '21', '00,21', '盘锦市', '21', '辽宁省', '2111', '盘锦市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211102', '2111', '00,21,2111', '双台子区', '21', '辽宁省', '2111', '盘锦市', '211102', '双台子区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211103', '2111', '00,21,2111', '兴隆台区', '21', '辽宁省', '2111', '盘锦市', '211103', '兴隆台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211104', '2111', '00,21,2111', '大洼区', '21', '辽宁省', '2111', '盘锦市', '211104', '大洼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211122', '2111', '00,21,2111', '盘山县', '21', '辽宁省', '2111', '盘锦市', '211122', '盘山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2112', '21', '00,21', '铁岭市', '21', '辽宁省', '2112', '铁岭市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211202', '2112', '00,21,2112', '银州区', '21', '辽宁省', '2112', '铁岭市', '211202', '银州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211204', '2112', '00,21,2112', '清河区', '21', '辽宁省', '2112', '铁岭市', '211204', '清河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211221', '2112', '00,21,2112', '铁岭县', '21', '辽宁省', '2112', '铁岭市', '211221', '铁岭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211223', '2112', '00,21,2112', '西丰县', '21', '辽宁省', '2112', '铁岭市', '211223', '西丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211224', '2112', '00,21,2112', '昌图县', '21', '辽宁省', '2112', '铁岭市', '211224', '昌图县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211281', '2112', '00,21,2112', '调兵山市', '21', '辽宁省', '2112', '铁岭市', '211281', '调兵山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211282', '2112', '00,21,2112', '开原市', '21', '辽宁省', '2112', '铁岭市', '211282', '开原市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2113', '21', '00,21', '朝阳市', '21', '辽宁省', '2113', '朝阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211302', '2113', '00,21,2113', '双塔区', '21', '辽宁省', '2113', '朝阳市', '211302', '双塔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211303', '2113', '00,21,2113', '龙城区', '21', '辽宁省', '2113', '朝阳市', '211303', '龙城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211321', '2113', '00,21,2113', '朝阳县', '21', '辽宁省', '2113', '朝阳市', '211321', '朝阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211322', '2113', '00,21,2113', '建平县', '21', '辽宁省', '2113', '朝阳市', '211322', '建平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211324', '2113', '00,21,2113', '喀喇沁左翼蒙古族自治县', '21', '辽宁省', '2113', '朝阳市', '211324', '喀喇沁左翼蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211381', '2113', '00,21,2113', '北票市', '21', '辽宁省', '2113', '朝阳市', '211381', '北票市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211382', '2113', '00,21,2113', '凌源市', '21', '辽宁省', '2113', '朝阳市', '211382', '凌源市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2114', '21', '00,21', '葫芦岛市', '21', '辽宁省', '2114', '葫芦岛市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211402', '2114', '00,21,2114', '连山区', '21', '辽宁省', '2114', '葫芦岛市', '211402', '连山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211403', '2114', '00,21,2114', '龙港区', '21', '辽宁省', '2114', '葫芦岛市', '211403', '龙港区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211404', '2114', '00,21,2114', '南票区', '21', '辽宁省', '2114', '葫芦岛市', '211404', '南票区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211422', '2114', '00,21,2114', '建昌县', '21', '辽宁省', '2114', '葫芦岛市', '211422', '建昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('211481', '2114', '00,21,2114', '兴城市', '21', '辽宁省', '2114', '葫芦岛市', '211481', '兴城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('22', '00', '00', '吉林省', '22', '吉林省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2201', '22', '00,22', '长春市', '22', '吉林省', '2201', '长春市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220102', '2201', '00,22,2201', '南关区', '22', '吉林省', '2201', '长春市', '220102', '南关区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220103', '2201', '00,22,2201', '宽城区', '22', '吉林省', '2201', '长春市', '220103', '宽城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220104', '2201', '00,22,2201', '朝阳区', '22', '吉林省', '2201', '长春市', '220104', '朝阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220105', '2201', '00,22,2201', '二道区', '22', '吉林省', '2201', '长春市', '220105', '二道区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220106', '2201', '00,22,2201', '绿园区', '22', '吉林省', '2201', '长春市', '220106', '绿园区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220112', '2201', '00,22,2201', '双阳区', '22', '吉林省', '2201', '长春市', '220112', '双阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220113', '2201', '00,22,2201', '九台区', '22', '吉林省', '2201', '长春市', '220113', '九台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220122', '2201', '00,22,2201', '农安县', '22', '吉林省', '2201', '长春市', '220122', '农安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220182', '2201', '00,22,2201', '榆树市', '22', '吉林省', '2201', '长春市', '220182', '榆树市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220183', '2201', '00,22,2201', '德惠市', '22', '吉林省', '2201', '长春市', '220183', '德惠市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2202', '22', '00,22', '吉林市', '22', '吉林省', '2202', '吉林市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220202', '2202', '00,22,2202', '昌邑区', '22', '吉林省', '2202', '吉林市', '220202', '昌邑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220203', '2202', '00,22,2202', '龙潭区', '22', '吉林省', '2202', '吉林市', '220203', '龙潭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220204', '2202', '00,22,2202', '船营区', '22', '吉林省', '2202', '吉林市', '220204', '船营区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220211', '2202', '00,22,2202', '丰满区', '22', '吉林省', '2202', '吉林市', '220211', '丰满区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220221', '2202', '00,22,2202', '永吉县', '22', '吉林省', '2202', '吉林市', '220221', '永吉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220281', '2202', '00,22,2202', '蛟河市', '22', '吉林省', '2202', '吉林市', '220281', '蛟河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220282', '2202', '00,22,2202', '桦甸市', '22', '吉林省', '2202', '吉林市', '220282', '桦甸市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220283', '2202', '00,22,2202', '舒兰市', '22', '吉林省', '2202', '吉林市', '220283', '舒兰市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220284', '2202', '00,22,2202', '磐石市', '22', '吉林省', '2202', '吉林市', '220284', '磐石市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2203', '22', '00,22', '四平市', '22', '吉林省', '2203', '四平市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220302', '2203', '00,22,2203', '铁西区', '22', '吉林省', '2203', '四平市', '220302', '铁西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220303', '2203', '00,22,2203', '铁东区', '22', '吉林省', '2203', '四平市', '220303', '铁东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220322', '2203', '00,22,2203', '梨树县', '22', '吉林省', '2203', '四平市', '220322', '梨树县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220323', '2203', '00,22,2203', '伊通满族自治县', '22', '吉林省', '2203', '四平市', '220323', '伊通满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220381', '2203', '00,22,2203', '公主岭市', '22', '吉林省', '2203', '四平市', '220381', '公主岭市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220382', '2203', '00,22,2203', '双辽市', '22', '吉林省', '2203', '四平市', '220382', '双辽市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2204', '22', '00,22', '辽源市', '22', '吉林省', '2204', '辽源市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220402', '2204', '00,22,2204', '龙山区', '22', '吉林省', '2204', '辽源市', '220402', '龙山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220403', '2204', '00,22,2204', '西安区', '22', '吉林省', '2204', '辽源市', '220403', '西安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220421', '2204', '00,22,2204', '东丰县', '22', '吉林省', '2204', '辽源市', '220421', '东丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152524', '1525', '00,15,1525', '苏尼特右旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152524', '苏尼特右旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2303', '23', '00,23', '鸡西市', '23', '黑龙江省', '2303', '鸡西市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330109', '3301', '00,33,3301', '萧山区', '33', '浙江省', '3301', '杭州市', '330109', '萧山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330110', '3301', '00,33,3301', '余杭区', '33', '浙江省', '3301', '杭州市', '330110', '余杭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330111', '3301', '00,33,3301', '富阳区', '33', '浙江省', '3301', '杭州市', '330111', '富阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330112', '3301', '00,33,3301', '临安区', '33', '浙江省', '3301', '杭州市', '330112', '临安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330122', '3301', '00,33,3301', '桐庐县', '33', '浙江省', '3301', '杭州市', '330122', '桐庐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330127', '3301', '00,33,3301', '淳安县', '33', '浙江省', '3301', '杭州市', '330127', '淳安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330182', '3301', '00,33,3301', '建德市', '33', '浙江省', '3301', '杭州市', '330182', '建德市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3302', '33', '00,33', '宁波市', '33', '浙江省', '3302', '宁波市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330203', '3302', '00,33,3302', '海曙区', '33', '浙江省', '3302', '宁波市', '330203', '海曙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330205', '3302', '00,33,3302', '江北区', '33', '浙江省', '3302', '宁波市', '330205', '江北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330206', '3302', '00,33,3302', '北仑区', '33', '浙江省', '3302', '宁波市', '330206', '北仑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330211', '3302', '00,33,3302', '镇海区', '33', '浙江省', '3302', '宁波市', '330211', '镇海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330212', '3302', '00,33,3302', '鄞州区', '33', '浙江省', '3302', '宁波市', '330212', '鄞州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330213', '3302', '00,33,3302', '奉化区', '33', '浙江省', '3302', '宁波市', '330213', '奉化区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330225', '3302', '00,33,3302', '象山县', '33', '浙江省', '3302', '宁波市', '330225', '象山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330226', '3302', '00,33,3302', '宁海县', '33', '浙江省', '3302', '宁波市', '330226', '宁海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330281', '3302', '00,33,3302', '余姚市', '33', '浙江省', '3302', '宁波市', '330281', '余姚市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330282', '3302', '00,33,3302', '慈溪市', '33', '浙江省', '3302', '宁波市', '330282', '慈溪市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3303', '33', '00,33', '温州市', '33', '浙江省', '3303', '温州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330302', '3303', '00,33,3303', '鹿城区', '33', '浙江省', '3303', '温州市', '330302', '鹿城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330303', '3303', '00,33,3303', '龙湾区', '33', '浙江省', '3303', '温州市', '330303', '龙湾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330304', '3303', '00,33,3303', '瓯海区', '33', '浙江省', '3303', '温州市', '330304', '瓯海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330305', '3303', '00,33,3303', '洞头区', '33', '浙江省', '3303', '温州市', '330305', '洞头区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330324', '3303', '00,33,3303', '永嘉县', '33', '浙江省', '3303', '温州市', '330324', '永嘉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330326', '3303', '00,33,3303', '平阳县', '33', '浙江省', '3303', '温州市', '330326', '平阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330327', '3303', '00,33,3303', '苍南县', '33', '浙江省', '3303', '温州市', '330327', '苍南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330328', '3303', '00,33,3303', '文成县', '33', '浙江省', '3303', '温州市', '330328', '文成县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330329', '3303', '00,33,3303', '泰顺县', '33', '浙江省', '3303', '温州市', '330329', '泰顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330381', '3303', '00,33,3303', '瑞安市', '33', '浙江省', '3303', '温州市', '330381', '瑞安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330382', '3303', '00,33,3303', '乐清市', '33', '浙江省', '3303', '温州市', '330382', '乐清市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330383', '3303', '00,33,3303', '龙港市', '33', '浙江省', '3303', '温州市', '330383', '龙港市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3304', '33', '00,33', '嘉兴市', '33', '浙江省', '3304', '嘉兴市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330402', '3304', '00,33,3304', '南湖区', '33', '浙江省', '3304', '嘉兴市', '330402', '南湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330411', '3304', '00,33,3304', '秀洲区', '33', '浙江省', '3304', '嘉兴市', '330411', '秀洲区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330421', '3304', '00,33,3304', '嘉善县', '33', '浙江省', '3304', '嘉兴市', '330421', '嘉善县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330424', '3304', '00,33,3304', '海盐县', '33', '浙江省', '3304', '嘉兴市', '330424', '海盐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330481', '3304', '00,33,3304', '海宁市', '33', '浙江省', '3304', '嘉兴市', '330481', '海宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330482', '3304', '00,33,3304', '平湖市', '33', '浙江省', '3304', '嘉兴市', '330482', '平湖市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330483', '3304', '00,33,3304', '桐乡市', '33', '浙江省', '3304', '嘉兴市', '330483', '桐乡市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3305', '33', '00,33', '湖州市', '33', '浙江省', '3305', '湖州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330502', '3305', '00,33,3305', '吴兴区', '33', '浙江省', '3305', '湖州市', '330502', '吴兴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330503', '3305', '00,33,3305', '南浔区', '33', '浙江省', '3305', '湖州市', '330503', '南浔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330521', '3305', '00,33,3305', '德清县', '33', '浙江省', '3305', '湖州市', '330521', '德清县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330522', '3305', '00,33,3305', '长兴县', '33', '浙江省', '3305', '湖州市', '330522', '长兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330523', '3305', '00,33,3305', '安吉县', '33', '浙江省', '3305', '湖州市', '330523', '安吉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3306', '33', '00,33', '绍兴市', '33', '浙江省', '3306', '绍兴市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330602', '3306', '00,33,3306', '越城区', '33', '浙江省', '3306', '绍兴市', '330602', '越城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330603', '3306', '00,33,3306', '柯桥区', '33', '浙江省', '3306', '绍兴市', '330603', '柯桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330604', '3306', '00,33,3306', '上虞区', '33', '浙江省', '3306', '绍兴市', '330604', '上虞区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330624', '3306', '00,33,3306', '新昌县', '33', '浙江省', '3306', '绍兴市', '330624', '新昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330681', '3306', '00,33,3306', '诸暨市', '33', '浙江省', '3306', '绍兴市', '330681', '诸暨市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330683', '3306', '00,33,3306', '嵊州市', '33', '浙江省', '3306', '绍兴市', '330683', '嵊州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3307', '33', '00,33', '金华市', '33', '浙江省', '3307', '金华市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330702', '3307', '00,33,3307', '婺城区', '33', '浙江省', '3307', '金华市', '330702', '婺城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330703', '3307', '00,33,3307', '金东区', '33', '浙江省', '3307', '金华市', '330703', '金东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330723', '3307', '00,33,3307', '武义县', '33', '浙江省', '3307', '金华市', '330723', '武义县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330726', '3307', '00,33,3307', '浦江县', '33', '浙江省', '3307', '金华市', '330726', '浦江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330727', '3307', '00,33,3307', '磐安县', '33', '浙江省', '3307', '金华市', '330727', '磐安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330781', '3307', '00,33,3307', '兰溪市', '33', '浙江省', '3307', '金华市', '330781', '兰溪市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330782', '3307', '00,33,3307', '义乌市', '33', '浙江省', '3307', '金华市', '330782', '义乌市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330783', '3307', '00,33,3307', '东阳市', '33', '浙江省', '3307', '金华市', '330783', '东阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330784', '3307', '00,33,3307', '永康市', '33', '浙江省', '3307', '金华市', '330784', '永康市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3308', '33', '00,33', '衢州市', '33', '浙江省', '3308', '衢州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330802', '3308', '00,33,3308', '柯城区', '33', '浙江省', '3308', '衢州市', '330802', '柯城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330803', '3308', '00,33,3308', '衢江区', '33', '浙江省', '3308', '衢州市', '330803', '衢江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330822', '3308', '00,33,3308', '常山县', '33', '浙江省', '3308', '衢州市', '330822', '常山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330824', '3308', '00,33,3308', '开化县', '33', '浙江省', '3308', '衢州市', '330824', '开化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330825', '3308', '00,33,3308', '龙游县', '33', '浙江省', '3308', '衢州市', '330825', '龙游县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330881', '3308', '00,33,3308', '江山市', '33', '浙江省', '3308', '衢州市', '330881', '江山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3309', '33', '00,33', '舟山市', '33', '浙江省', '3309', '舟山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330902', '3309', '00,33,3309', '定海区', '33', '浙江省', '3309', '舟山市', '330902', '定海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330903', '3309', '00,33,3309', '普陀区', '33', '浙江省', '3309', '舟山市', '330903', '普陀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330921', '3309', '00,33,3309', '岱山县', '33', '浙江省', '3309', '舟山市', '330921', '岱山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330922', '3309', '00,33,3309', '嵊泗县', '33', '浙江省', '3309', '舟山市', '330922', '嵊泗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3310', '33', '00,33', '台州市', '33', '浙江省', '3310', '台州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2108', '21', '00,21', '营口市', '21', '辽宁省', '2108', '营口市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210802', '2108', '00,21,2108', '站前区', '21', '辽宁省', '2108', '营口市', '210802', '站前区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210803', '2108', '00,21,2108', '西市区', '21', '辽宁省', '2108', '营口市', '210803', '西市区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210804', '2108', '00,21,2108', '鲅鱼圈区', '21', '辽宁省', '2108', '营口市', '210804', '鲅鱼圈区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210811', '2108', '00,21,2108', '老边区', '21', '辽宁省', '2108', '营口市', '210811', '老边区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230304', '2303', '00,23,2303', '滴道区', '23', '黑龙江省', '2303', '鸡西市', '230304', '滴道区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230305', '2303', '00,23,2303', '梨树区', '23', '黑龙江省', '2303', '鸡西市', '230305', '梨树区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230306', '2303', '00,23,2303', '城子河区', '23', '黑龙江省', '2303', '鸡西市', '230306', '城子河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230307', '2303', '00,23,2303', '麻山区', '23', '黑龙江省', '2303', '鸡西市', '230307', '麻山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230321', '2303', '00,23,2303', '鸡东县', '23', '黑龙江省', '2303', '鸡西市', '230321', '鸡东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230381', '2303', '00,23,2303', '虎林市', '23', '黑龙江省', '2303', '鸡西市', '230381', '虎林市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230382', '2303', '00,23,2303', '密山市', '23', '黑龙江省', '2303', '鸡西市', '230382', '密山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2304', '23', '00,23', '鹤岗市', '23', '黑龙江省', '2304', '鹤岗市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230402', '2304', '00,23,2304', '向阳区', '23', '黑龙江省', '2304', '鹤岗市', '230402', '向阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230403', '2304', '00,23,2304', '工农区', '23', '黑龙江省', '2304', '鹤岗市', '230403', '工农区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230404', '2304', '00,23,2304', '南山区', '23', '黑龙江省', '2304', '鹤岗市', '230404', '南山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230405', '2304', '00,23,2304', '兴安区', '23', '黑龙江省', '2304', '鹤岗市', '230405', '兴安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230406', '2304', '00,23,2304', '东山区', '23', '黑龙江省', '2304', '鹤岗市', '230406', '东山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230407', '2304', '00,23,2304', '兴山区', '23', '黑龙江省', '2304', '鹤岗市', '230407', '兴山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230421', '2304', '00,23,2304', '萝北县', '23', '黑龙江省', '2304', '鹤岗市', '230421', '萝北县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230422', '2304', '00,23,2304', '绥滨县', '23', '黑龙江省', '2304', '鹤岗市', '230422', '绥滨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2305', '23', '00,23', '双鸭山市', '23', '黑龙江省', '2305', '双鸭山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230502', '2305', '00,23,2305', '尖山区', '23', '黑龙江省', '2305', '双鸭山市', '230502', '尖山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230503', '2305', '00,23,2305', '岭东区', '23', '黑龙江省', '2305', '双鸭山市', '230503', '岭东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230505', '2305', '00,23,2305', '四方台区', '23', '黑龙江省', '2305', '双鸭山市', '230505', '四方台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230506', '2305', '00,23,2305', '宝山区', '23', '黑龙江省', '2305', '双鸭山市', '230506', '宝山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230521', '2305', '00,23,2305', '集贤县', '23', '黑龙江省', '2305', '双鸭山市', '230521', '集贤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230522', '2305', '00,23,2305', '友谊县', '23', '黑龙江省', '2305', '双鸭山市', '230522', '友谊县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230523', '2305', '00,23,2305', '宝清县', '23', '黑龙江省', '2305', '双鸭山市', '230523', '宝清县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230524', '2305', '00,23,2305', '饶河县', '23', '黑龙江省', '2305', '双鸭山市', '230524', '饶河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2306', '23', '00,23', '大庆市', '23', '黑龙江省', '2306', '大庆市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230602', '2306', '00,23,2306', '萨尔图区', '23', '黑龙江省', '2306', '大庆市', '230602', '萨尔图区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230603', '2306', '00,23,2306', '龙凤区', '23', '黑龙江省', '2306', '大庆市', '230603', '龙凤区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230604', '2306', '00,23,2306', '让胡路区', '23', '黑龙江省', '2306', '大庆市', '230604', '让胡路区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230605', '2306', '00,23,2306', '红岗区', '23', '黑龙江省', '2306', '大庆市', '230605', '红岗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230606', '2306', '00,23,2306', '大同区', '23', '黑龙江省', '2306', '大庆市', '230606', '大同区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230621', '2306', '00,23,2306', '肇州县', '23', '黑龙江省', '2306', '大庆市', '230621', '肇州县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230622', '2306', '00,23,2306', '肇源县', '23', '黑龙江省', '2306', '大庆市', '230622', '肇源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230623', '2306', '00,23,2306', '林甸县', '23', '黑龙江省', '2306', '大庆市', '230623', '林甸县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230624', '2306', '00,23,2306', '杜尔伯特蒙古族自治县', '23', '黑龙江省', '2306', '大庆市', '230624', '杜尔伯特蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2307', '23', '00,23', '伊春市', '23', '黑龙江省', '2307', '伊春市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230717', '2307', '00,23,2307', '伊美区', '23', '黑龙江省', '2307', '伊春市', '230717', '伊美区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230718', '2307', '00,23,2307', '乌翠区', '23', '黑龙江省', '2307', '伊春市', '230718', '乌翠区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230719', '2307', '00,23,2307', '友好区', '23', '黑龙江省', '2307', '伊春市', '230719', '友好区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230722', '2307', '00,23,2307', '嘉荫县', '23', '黑龙江省', '2307', '伊春市', '230722', '嘉荫县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230723', '2307', '00,23,2307', '汤旺县', '23', '黑龙江省', '2307', '伊春市', '230723', '汤旺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230724', '2307', '00,23,2307', '丰林县', '23', '黑龙江省', '2307', '伊春市', '230724', '丰林县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230725', '2307', '00,23,2307', '大箐山县', '23', '黑龙江省', '2307', '伊春市', '230725', '大箐山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230726', '2307', '00,23,2307', '南岔县', '23', '黑龙江省', '2307', '伊春市', '230726', '南岔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230751', '2307', '00,23,2307', '金林区', '23', '黑龙江省', '2307', '伊春市', '230751', '金林区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230781', '2307', '00,23,2307', '铁力市', '23', '黑龙江省', '2307', '伊春市', '230781', '铁力市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2308', '23', '00,23', '佳木斯市', '23', '黑龙江省', '2308', '佳木斯市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230803', '2308', '00,23,2308', '向阳区', '23', '黑龙江省', '2308', '佳木斯市', '230803', '向阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230804', '2308', '00,23,2308', '前进区', '23', '黑龙江省', '2308', '佳木斯市', '230804', '前进区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230805', '2308', '00,23,2308', '东风区', '23', '黑龙江省', '2308', '佳木斯市', '230805', '东风区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230811', '2308', '00,23,2308', '郊区', '23', '黑龙江省', '2308', '佳木斯市', '230811', '郊区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230822', '2308', '00,23,2308', '桦南县', '23', '黑龙江省', '2308', '佳木斯市', '230822', '桦南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230826', '2308', '00,23,2308', '桦川县', '23', '黑龙江省', '2308', '佳木斯市', '230826', '桦川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230828', '2308', '00,23,2308', '汤原县', '23', '黑龙江省', '2308', '佳木斯市', '230828', '汤原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230881', '2308', '00,23,2308', '同江市', '23', '黑龙江省', '2308', '佳木斯市', '230881', '同江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230882', '2308', '00,23,2308', '富锦市', '23', '黑龙江省', '2308', '佳木斯市', '230882', '富锦市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230883', '2308', '00,23,2308', '抚远市', '23', '黑龙江省', '2308', '佳木斯市', '230883', '抚远市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2309', '23', '00,23', '七台河市', '23', '黑龙江省', '2309', '七台河市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230902', '2309', '00,23,2309', '新兴区', '23', '黑龙江省', '2309', '七台河市', '230902', '新兴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230903', '2309', '00,23,2309', '桃山区', '23', '黑龙江省', '2309', '七台河市', '230903', '桃山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230904', '2309', '00,23,2309', '茄子河区', '23', '黑龙江省', '2309', '七台河市', '230904', '茄子河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230921', '2309', '00,23,2309', '勃利县', '23', '黑龙江省', '2309', '七台河市', '230921', '勃利县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2310', '23', '00,23', '牡丹江市', '23', '黑龙江省', '2310', '牡丹江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231002', '2310', '00,23,2310', '东安区', '23', '黑龙江省', '2310', '牡丹江市', '231002', '东安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231003', '2310', '00,23,2310', '阳明区', '23', '黑龙江省', '2310', '牡丹江市', '231003', '阳明区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231004', '2310', '00,23,2310', '爱民区', '23', '黑龙江省', '2310', '牡丹江市', '231004', '爱民区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231005', '2310', '00,23,2310', '西安区', '23', '黑龙江省', '2310', '牡丹江市', '231005', '西安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231025', '2310', '00,23,2310', '林口县', '23', '黑龙江省', '2310', '牡丹江市', '231025', '林口县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231081', '2310', '00,23,2310', '绥芬河市', '23', '黑龙江省', '2310', '牡丹江市', '231081', '绥芬河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231083', '2310', '00,23,2310', '海林市', '23', '黑龙江省', '2310', '牡丹江市', '231083', '海林市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231084', '2310', '00,23,2310', '宁安市', '23', '黑龙江省', '2310', '牡丹江市', '231084', '宁安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152525', '1525', '00,15,1525', '东乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152525', '东乌珠穆沁旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152526', '1525', '00,15,1525', '西乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152526', '西乌珠穆沁旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152527', '1525', '00,15,1525', '太仆寺旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152527', '太仆寺旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231102', '2311', '00,23,2311', '爱辉区', '23', '黑龙江省', '2311', '黑河市', '231102', '爱辉区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231123', '2311', '00,23,2311', '逊克县', '23', '黑龙江省', '2311', '黑河市', '231123', '逊克县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231124', '2311', '00,23,2311', '孙吴县', '23', '黑龙江省', '2311', '黑河市', '231124', '孙吴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231181', '2311', '00,23,2311', '北安市', '23', '黑龙江省', '2311', '黑河市', '231181', '北安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231182', '2311', '00,23,2311', '五大连池市', '23', '黑龙江省', '2311', '黑河市', '231182', '五大连池市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231183', '2311', '00,23,2311', '嫩江市', '23', '黑龙江省', '2311', '黑河市', '231183', '嫩江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2312', '23', '00,23', '绥化市', '23', '黑龙江省', '2312', '绥化市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231202', '2312', '00,23,2312', '北林区', '23', '黑龙江省', '2312', '绥化市', '231202', '北林区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231221', '2312', '00,23,2312', '望奎县', '23', '黑龙江省', '2312', '绥化市', '231221', '望奎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231222', '2312', '00,23,2312', '兰西县', '23', '黑龙江省', '2312', '绥化市', '231222', '兰西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231223', '2312', '00,23,2312', '青冈县', '23', '黑龙江省', '2312', '绥化市', '231223', '青冈县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231224', '2312', '00,23,2312', '庆安县', '23', '黑龙江省', '2312', '绥化市', '231224', '庆安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231225', '2312', '00,23,2312', '明水县', '23', '黑龙江省', '2312', '绥化市', '231225', '明水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231226', '2312', '00,23,2312', '绥棱县', '23', '黑龙江省', '2312', '绥化市', '231226', '绥棱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231281', '2312', '00,23,2312', '安达市', '23', '黑龙江省', '2312', '绥化市', '231281', '安达市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231282', '2312', '00,23,2312', '肇东市', '23', '黑龙江省', '2312', '绥化市', '231282', '肇东市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231283', '2312', '00,23,2312', '海伦市', '23', '黑龙江省', '2312', '绥化市', '231283', '海伦市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2327', '23', '00,23', '大兴安岭地区', '23', '黑龙江省', '2327', '大兴安岭地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('232701', '2327', '00,23,2327', '漠河市', '23', '黑龙江省', '2327', '大兴安岭地区', '232701', '漠河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('232721', '2327', '00,23,2327', '呼玛县', '23', '黑龙江省', '2327', '大兴安岭地区', '232721', '呼玛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('232722', '2327', '00,23,2327', '塔河县', '23', '黑龙江省', '2327', '大兴安岭地区', '232722', '塔河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('31', '00', '00', '上海市', '31', '上海市', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3101', '31', '00,31', '上海市', '31', '上海市', '3101', '上海市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310101', '3101', '00,31,3101', '黄浦区', '31', '上海市', '3101', '上海市', '310101', '黄浦区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310104', '3101', '00,31,3101', '徐汇区', '31', '上海市', '3101', '上海市', '310104', '徐汇区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310105', '3101', '00,31,3101', '长宁区', '31', '上海市', '3101', '上海市', '310105', '长宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310106', '3101', '00,31,3101', '静安区', '31', '上海市', '3101', '上海市', '310106', '静安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310107', '3101', '00,31,3101', '普陀区', '31', '上海市', '3101', '上海市', '310107', '普陀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310109', '3101', '00,31,3101', '虹口区', '31', '上海市', '3101', '上海市', '310109', '虹口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310110', '3101', '00,31,3101', '杨浦区', '31', '上海市', '3101', '上海市', '310110', '杨浦区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310112', '3101', '00,31,3101', '闵行区', '31', '上海市', '3101', '上海市', '310112', '闵行区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310113', '3101', '00,31,3101', '宝山区', '31', '上海市', '3101', '上海市', '310113', '宝山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310114', '3101', '00,31,3101', '嘉定区', '31', '上海市', '3101', '上海市', '310114', '嘉定区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310115', '3101', '00,31,3101', '浦东新区', '31', '上海市', '3101', '上海市', '310115', '浦东新区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310116', '3101', '00,31,3101', '金山区', '31', '上海市', '3101', '上海市', '310116', '金山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310117', '3101', '00,31,3101', '松江区', '31', '上海市', '3101', '上海市', '310117', '松江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310118', '3101', '00,31,3101', '青浦区', '31', '上海市', '3101', '上海市', '310118', '青浦区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310120', '3101', '00,31,3101', '奉贤区', '31', '上海市', '3101', '上海市', '310120', '奉贤区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('310151', '3101', '00,31,3101', '崇明区', '31', '上海市', '3101', '上海市', '310151', '崇明区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('32', '00', '00', '江苏省', '32', '江苏省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3201', '32', '00,32', '南京市', '32', '江苏省', '3201', '南京市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320102', '3201', '00,32,3201', '玄武区', '32', '江苏省', '3201', '南京市', '320102', '玄武区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320104', '3201', '00,32,3201', '秦淮区', '32', '江苏省', '3201', '南京市', '320104', '秦淮区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320105', '3201', '00,32,3201', '建邺区', '32', '江苏省', '3201', '南京市', '320105', '建邺区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320106', '3201', '00,32,3201', '鼓楼区', '32', '江苏省', '3201', '南京市', '320106', '鼓楼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320111', '3201', '00,32,3201', '浦口区', '32', '江苏省', '3201', '南京市', '320111', '浦口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320113', '3201', '00,32,3201', '栖霞区', '32', '江苏省', '3201', '南京市', '320113', '栖霞区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320114', '3201', '00,32,3201', '雨花台区', '32', '江苏省', '3201', '南京市', '320114', '雨花台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320115', '3201', '00,32,3201', '江宁区', '32', '江苏省', '3201', '南京市', '320115', '江宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320116', '3201', '00,32,3201', '六合区', '32', '江苏省', '3201', '南京市', '320116', '六合区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320117', '3201', '00,32,3201', '溧水区', '32', '江苏省', '3201', '南京市', '320117', '溧水区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320118', '3201', '00,32,3201', '高淳区', '32', '江苏省', '3201', '南京市', '320118', '高淳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3202', '32', '00,32', '无锡市', '32', '江苏省', '3202', '无锡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320205', '3202', '00,32,3202', '锡山区', '32', '江苏省', '3202', '无锡市', '320205', '锡山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320206', '3202', '00,32,3202', '惠山区', '32', '江苏省', '3202', '无锡市', '320206', '惠山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320211', '3202', '00,32,3202', '滨湖区', '32', '江苏省', '3202', '无锡市', '320211', '滨湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320213', '3202', '00,32,3202', '梁溪区', '32', '江苏省', '3202', '无锡市', '320213', '梁溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320214', '3202', '00,32,3202', '新吴区', '32', '江苏省', '3202', '无锡市', '320214', '新吴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320281', '3202', '00,32,3202', '江阴市', '32', '江苏省', '3202', '无锡市', '320281', '江阴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320282', '3202', '00,32,3202', '宜兴市', '32', '江苏省', '3202', '无锡市', '320282', '宜兴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3203', '32', '00,32', '徐州市', '32', '江苏省', '3203', '徐州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320302', '3203', '00,32,3203', '鼓楼区', '32', '江苏省', '3203', '徐州市', '320302', '鼓楼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320303', '3203', '00,32,3203', '云龙区', '32', '江苏省', '3203', '徐州市', '320303', '云龙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320305', '3203', '00,32,3203', '贾汪区', '32', '江苏省', '3203', '徐州市', '320305', '贾汪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320311', '3203', '00,32,3203', '泉山区', '32', '江苏省', '3203', '徐州市', '320311', '泉山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320312', '3203', '00,32,3203', '铜山区', '32', '江苏省', '3203', '徐州市', '320312', '铜山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320321', '3203', '00,32,3203', '丰县', '32', '江苏省', '3203', '徐州市', '320321', '丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320322', '3203', '00,32,3203', '沛县', '32', '江苏省', '3203', '徐州市', '320322', '沛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320324', '3203', '00,32,3203', '睢宁县', '32', '江苏省', '3203', '徐州市', '320324', '睢宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320381', '3203', '00,32,3203', '新沂市', '32', '江苏省', '3203', '徐州市', '320381', '新沂市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320382', '3203', '00,32,3203', '邳州市', '32', '江苏省', '3203', '徐州市', '320382', '邳州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3204', '32', '00,32', '常州市', '32', '江苏省', '3204', '常州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320402', '3204', '00,32,3204', '天宁区', '32', '江苏省', '3204', '常州市', '320402', '天宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150522', '1505', '00,15,1505', '科尔沁左翼后旗', '15', '内蒙古自治区', '1505', '通辽市', '150522', '科尔沁左翼后旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150523', '1505', '00,15,1505', '开鲁县', '15', '内蒙古自治区', '1505', '通辽市', '150523', '开鲁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150524', '1505', '00,15,1505', '库伦旗', '15', '内蒙古自治区', '1505', '通辽市', '150524', '库伦旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('150525', '1505', '00,15,1505', '奈曼旗', '15', '内蒙古自治区', '1505', '通辽市', '150525', '奈曼旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('330105', '3301', '00,33,3301', '拱墅区', '33', '浙江省', '3301', '杭州市', '330105', '拱墅区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2205', '22', '00,22', '通化市', '22', '吉林省', '2205', '通化市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220502', '2205', '00,22,2205', '东昌区', '22', '吉林省', '2205', '通化市', '220502', '东昌区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220503', '2205', '00,22,2205', '二道江区', '22', '吉林省', '2205', '通化市', '220503', '二道江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220521', '2205', '00,22,2205', '通化县', '22', '吉林省', '2205', '通化市', '220521', '通化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220523', '2205', '00,22,2205', '辉南县', '22', '吉林省', '2205', '通化市', '220523', '辉南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220524', '2205', '00,22,2205', '柳河县', '22', '吉林省', '2205', '通化市', '220524', '柳河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220581', '2205', '00,22,2205', '梅河口市', '22', '吉林省', '2205', '通化市', '220581', '梅河口市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220582', '2205', '00,22,2205', '集安市', '22', '吉林省', '2205', '通化市', '220582', '集安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2206', '22', '00,22', '白山市', '22', '吉林省', '2206', '白山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220602', '2206', '00,22,2206', '浑江区', '22', '吉林省', '2206', '白山市', '220602', '浑江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220605', '2206', '00,22,2206', '江源区', '22', '吉林省', '2206', '白山市', '220605', '江源区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220621', '2206', '00,22,2206', '抚松县', '22', '吉林省', '2206', '白山市', '220621', '抚松县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220622', '2206', '00,22,2206', '靖宇县', '22', '吉林省', '2206', '白山市', '220622', '靖宇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220623', '2206', '00,22,2206', '长白朝鲜族自治县', '22', '吉林省', '2206', '白山市', '220623', '长白朝鲜族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220681', '2206', '00,22,2206', '临江市', '22', '吉林省', '2206', '白山市', '220681', '临江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2207', '22', '00,22', '松原市', '22', '吉林省', '2207', '松原市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220702', '2207', '00,22,2207', '宁江区', '22', '吉林省', '2207', '松原市', '220702', '宁江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220721', '2207', '00,22,2207', '前郭尔罗斯蒙古族自治县', '22', '吉林省', '2207', '松原市', '220721', '前郭尔罗斯蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220722', '2207', '00,22,2207', '长岭县', '22', '吉林省', '2207', '松原市', '220722', '长岭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220723', '2207', '00,22,2207', '乾安县', '22', '吉林省', '2207', '松原市', '220723', '乾安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220781', '2207', '00,22,2207', '扶余市', '22', '吉林省', '2207', '松原市', '220781', '扶余市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2208', '22', '00,22', '白城市', '22', '吉林省', '2208', '白城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220802', '2208', '00,22,2208', '洮北区', '22', '吉林省', '2208', '白城市', '220802', '洮北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220821', '2208', '00,22,2208', '镇赉县', '22', '吉林省', '2208', '白城市', '220821', '镇赉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220822', '2208', '00,22,2208', '通榆县', '22', '吉林省', '2208', '白城市', '220822', '通榆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220881', '2208', '00,22,2208', '洮南市', '22', '吉林省', '2208', '白城市', '220881', '洮南市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220882', '2208', '00,22,2208', '大安市', '22', '吉林省', '2208', '白城市', '220882', '大安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2224', '22', '00,22', '延边朝鲜族自治州', '22', '吉林省', '2224', '延边朝鲜族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222401', '2224', '00,22,2224', '延吉市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222401', '延吉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222402', '2224', '00,22,2224', '图们市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222402', '图们市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222403', '2224', '00,22,2224', '敦化市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222403', '敦化市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222404', '2224', '00,22,2224', '珲春市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222404', '珲春市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222405', '2224', '00,22,2224', '龙井市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222405', '龙井市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222406', '2224', '00,22,2224', '和龙市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222406', '和龙市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222424', '2224', '00,22,2224', '汪清县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222424', '汪清县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('222426', '2224', '00,22,2224', '安图县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222426', '安图县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('23', '00', '00', '黑龙江省', '23', '黑龙江省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2301', '23', '00,23', '哈尔滨市', '23', '黑龙江省', '2301', '哈尔滨市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230102', '2301', '00,23,2301', '道里区', '23', '黑龙江省', '2301', '哈尔滨市', '230102', '道里区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230103', '2301', '00,23,2301', '南岗区', '23', '黑龙江省', '2301', '哈尔滨市', '230103', '南岗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230104', '2301', '00,23,2301', '道外区', '23', '黑龙江省', '2301', '哈尔滨市', '230104', '道外区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230108', '2301', '00,23,2301', '平房区', '23', '黑龙江省', '2301', '哈尔滨市', '230108', '平房区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230109', '2301', '00,23,2301', '松北区', '23', '黑龙江省', '2301', '哈尔滨市', '230109', '松北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230110', '2301', '00,23,2301', '香坊区', '23', '黑龙江省', '2301', '哈尔滨市', '230110', '香坊区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230111', '2301', '00,23,2301', '呼兰区', '23', '黑龙江省', '2301', '哈尔滨市', '230111', '呼兰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230112', '2301', '00,23,2301', '阿城区', '23', '黑龙江省', '2301', '哈尔滨市', '230112', '阿城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230113', '2301', '00,23,2301', '双城区', '23', '黑龙江省', '2301', '哈尔滨市', '230113', '双城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230123', '2301', '00,23,2301', '依兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230123', '依兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230124', '2301', '00,23,2301', '方正县', '23', '黑龙江省', '2301', '哈尔滨市', '230124', '方正县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230125', '2301', '00,23,2301', '宾县', '23', '黑龙江省', '2301', '哈尔滨市', '230125', '宾县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230126', '2301', '00,23,2301', '巴彦县', '23', '黑龙江省', '2301', '哈尔滨市', '230126', '巴彦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230127', '2301', '00,23,2301', '木兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230127', '木兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230128', '2301', '00,23,2301', '通河县', '23', '黑龙江省', '2301', '哈尔滨市', '230128', '通河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230129', '2301', '00,23,2301', '延寿县', '23', '黑龙江省', '2301', '哈尔滨市', '230129', '延寿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230183', '2301', '00,23,2301', '尚志市', '23', '黑龙江省', '2301', '哈尔滨市', '230183', '尚志市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230184', '2301', '00,23,2301', '五常市', '23', '黑龙江省', '2301', '哈尔滨市', '230184', '五常市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2302', '23', '00,23', '齐齐哈尔市', '23', '黑龙江省', '2302', '齐齐哈尔市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230202', '2302', '00,23,2302', '龙沙区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230202', '龙沙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230203', '2302', '00,23,2302', '建华区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230203', '建华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230204', '2302', '00,23,2302', '铁锋区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230204', '铁锋区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230205', '2302', '00,23,2302', '昂昂溪区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230205', '昂昂溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230206', '2302', '00,23,2302', '富拉尔基区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230206', '富拉尔基区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230207', '2302', '00,23,2302', '碾子山区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230207', '碾子山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230208', '2302', '00,23,2302', '梅里斯达斡尔族区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230208', '梅里斯达斡尔族区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230221', '2302', '00,23,2302', '龙江县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230221', '龙江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230223', '2302', '00,23,2302', '依安县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230223', '依安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230224', '2302', '00,23,2302', '泰来县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230224', '泰来县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230225', '2302', '00,23,2302', '甘南县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230225', '甘南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230227', '2302', '00,23,2302', '富裕县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230227', '富裕县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230229', '2302', '00,23,2302', '克山县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230229', '克山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230230', '2302', '00,23,2302', '克东县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230230', '克东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230231', '2302', '00,23,2302', '拜泉县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230231', '拜泉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230281', '2302', '00,23,2302', '讷河市', '23', '黑龙江省', '2302', '齐齐哈尔市', '230281', '讷河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152528', '1525', '00,15,1525', '镶黄旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152528', '镶黄旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152529', '1525', '00,15,1525', '正镶白旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152529', '正镶白旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152530', '1525', '00,15,1525', '正蓝旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152530', '正蓝旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152531', '1525', '00,15,1525', '多伦县', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152531', '多伦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('1529', '15', '00,15', '阿拉善盟', '15', '内蒙古自治区', '1529', '阿拉善盟', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152921', '1529', '00,15,1529', '阿拉善左旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152921', '阿拉善左旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152922', '1529', '00,15,1529', '阿拉善右旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152922', '阿拉善右旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('152923', '1529', '00,15,1529', '额济纳旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152923', '额济纳旗', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('21', '00', '00', '辽宁省', '21', '辽宁省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2101', '21', '00,21', '沈阳市', '21', '辽宁省', '2101', '沈阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210102', '2101', '00,21,2101', '和平区', '21', '辽宁省', '2101', '沈阳市', '210102', '和平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210103', '2101', '00,21,2101', '沈河区', '21', '辽宁省', '2101', '沈阳市', '210103', '沈河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210104', '2101', '00,21,2101', '大东区', '21', '辽宁省', '2101', '沈阳市', '210104', '大东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210105', '2101', '00,21,2101', '皇姑区', '21', '辽宁省', '2101', '沈阳市', '210105', '皇姑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210106', '2101', '00,21,2101', '铁西区', '21', '辽宁省', '2101', '沈阳市', '210106', '铁西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210111', '2101', '00,21,2101', '苏家屯区', '21', '辽宁省', '2101', '沈阳市', '210111', '苏家屯区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210112', '2101', '00,21,2101', '浑南区', '21', '辽宁省', '2101', '沈阳市', '210112', '浑南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210113', '2101', '00,21,2101', '沈北新区', '21', '辽宁省', '2101', '沈阳市', '210113', '沈北新区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210114', '2101', '00,21,2101', '于洪区', '21', '辽宁省', '2101', '沈阳市', '210114', '于洪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210115', '2101', '00,21,2101', '辽中区', '21', '辽宁省', '2101', '沈阳市', '210115', '辽中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210123', '2101', '00,21,2101', '康平县', '21', '辽宁省', '2101', '沈阳市', '210123', '康平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210124', '2101', '00,21,2101', '法库县', '21', '辽宁省', '2101', '沈阳市', '210124', '法库县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210181', '2101', '00,21,2101', '新民市', '21', '辽宁省', '2101', '沈阳市', '210181', '新民市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2102', '21', '00,21', '大连市', '21', '辽宁省', '2102', '大连市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210202', '2102', '00,21,2102', '中山区', '21', '辽宁省', '2102', '大连市', '210202', '中山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210203', '2102', '00,21,2102', '西岗区', '21', '辽宁省', '2102', '大连市', '210203', '西岗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210204', '2102', '00,21,2102', '沙河口区', '21', '辽宁省', '2102', '大连市', '210204', '沙河口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210211', '2102', '00,21,2102', '甘井子区', '21', '辽宁省', '2102', '大连市', '210211', '甘井子区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210212', '2102', '00,21,2102', '旅顺口区', '21', '辽宁省', '2102', '大连市', '210212', '旅顺口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210213', '2102', '00,21,2102', '金州区', '21', '辽宁省', '2102', '大连市', '210213', '金州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210214', '2102', '00,21,2102', '普兰店区', '21', '辽宁省', '2102', '大连市', '210214', '普兰店区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210224', '2102', '00,21,2102', '长海县', '21', '辽宁省', '2102', '大连市', '210224', '长海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210281', '2102', '00,21,2102', '瓦房店市', '21', '辽宁省', '2102', '大连市', '210281', '瓦房店市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210283', '2102', '00,21,2102', '庄河市', '21', '辽宁省', '2102', '大连市', '210283', '庄河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2103', '21', '00,21', '鞍山市', '21', '辽宁省', '2103', '鞍山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210302', '2103', '00,21,2103', '铁东区', '21', '辽宁省', '2103', '鞍山市', '210302', '铁东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210303', '2103', '00,21,2103', '铁西区', '21', '辽宁省', '2103', '鞍山市', '210303', '铁西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210304', '2103', '00,21,2103', '立山区', '21', '辽宁省', '2103', '鞍山市', '210304', '立山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210311', '2103', '00,21,2103', '千山区', '21', '辽宁省', '2103', '鞍山市', '210311', '千山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210321', '2103', '00,21,2103', '台安县', '21', '辽宁省', '2103', '鞍山市', '210321', '台安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210323', '2103', '00,21,2103', '岫岩满族自治县', '21', '辽宁省', '2103', '鞍山市', '210323', '岫岩满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210381', '2103', '00,21,2103', '海城市', '21', '辽宁省', '2103', '鞍山市', '210381', '海城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2104', '21', '00,21', '抚顺市', '21', '辽宁省', '2104', '抚顺市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210402', '2104', '00,21,2104', '新抚区', '21', '辽宁省', '2104', '抚顺市', '210402', '新抚区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210403', '2104', '00,21,2104', '东洲区', '21', '辽宁省', '2104', '抚顺市', '210403', '东洲区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210404', '2104', '00,21,2104', '望花区', '21', '辽宁省', '2104', '抚顺市', '210404', '望花区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210411', '2104', '00,21,2104', '顺城区', '21', '辽宁省', '2104', '抚顺市', '210411', '顺城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210421', '2104', '00,21,2104', '抚顺县', '21', '辽宁省', '2104', '抚顺市', '210421', '抚顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210422', '2104', '00,21,2104', '新宾满族自治县', '21', '辽宁省', '2104', '抚顺市', '210422', '新宾满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210423', '2104', '00,21,2104', '清原满族自治县', '21', '辽宁省', '2104', '抚顺市', '210423', '清原满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2105', '21', '00,21', '本溪市', '21', '辽宁省', '2105', '本溪市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210502', '2105', '00,21,2105', '平山区', '21', '辽宁省', '2105', '本溪市', '210502', '平山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210503', '2105', '00,21,2105', '溪湖区', '21', '辽宁省', '2105', '本溪市', '210503', '溪湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210504', '2105', '00,21,2105', '明山区', '21', '辽宁省', '2105', '本溪市', '210504', '明山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210505', '2105', '00,21,2105', '南芬区', '21', '辽宁省', '2105', '本溪市', '210505', '南芬区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210521', '2105', '00,21,2105', '本溪满族自治县', '21', '辽宁省', '2105', '本溪市', '210521', '本溪满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210522', '2105', '00,21,2105', '桓仁满族自治县', '21', '辽宁省', '2105', '本溪市', '210522', '桓仁满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2106', '21', '00,21', '丹东市', '21', '辽宁省', '2106', '丹东市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210602', '2106', '00,21,2106', '元宝区', '21', '辽宁省', '2106', '丹东市', '210602', '元宝区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210603', '2106', '00,21,2106', '振兴区', '21', '辽宁省', '2106', '丹东市', '210603', '振兴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210604', '2106', '00,21,2106', '振安区', '21', '辽宁省', '2106', '丹东市', '210604', '振安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210624', '2106', '00,21,2106', '宽甸满族自治县', '21', '辽宁省', '2106', '丹东市', '210624', '宽甸满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210681', '2106', '00,21,2106', '东港市', '21', '辽宁省', '2106', '丹东市', '210681', '东港市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210682', '2106', '00,21,2106', '凤城市', '21', '辽宁省', '2106', '丹东市', '210682', '凤城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('2107', '21', '00,21', '锦州市', '21', '辽宁省', '2107', '锦州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210702', '2107', '00,21,2107', '古塔区', '21', '辽宁省', '2107', '锦州市', '210702', '古塔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210703', '2107', '00,21,2107', '凌河区', '21', '辽宁省', '2107', '锦州市', '210703', '凌河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210711', '2107', '00,21,2107', '太和区', '21', '辽宁省', '2107', '锦州市', '210711', '太和区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210726', '2107', '00,21,2107', '黑山县', '21', '辽宁省', '2107', '锦州市', '210726', '黑山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210727', '2107', '00,21,2107', '义县', '21', '辽宁省', '2107', '锦州市', '210727', '义县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210781', '2107', '00,21,2107', '凌海市', '21', '辽宁省', '2107', '锦州市', '210781', '凌海市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('210782', '2107', '00,21,2107', '北镇市', '21', '辽宁省', '2107', '锦州市', '210782', '北镇市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('320404', '3204', '00,32,3204', '钟楼区', '32', '江苏省', '3204', '常州市', '320404', '钟楼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360113', '3601', '00,36,3601', '红谷滩区', '36', '江西省', '3601', '南昌市', '360113', '红谷滩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('231085', '2310', '00,23,2310', '穆棱市', '23', '黑龙江省', '2310', '牡丹江市', '231085', '穆棱市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3410', '34', '00,34', '黄山市', '34', '安徽省', '3410', '黄山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441427', '4414', '00,44,4414', '蕉岭县', '44', '广东省', '4414', '梅州市', '441427', '蕉岭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360121', '3601', '00,36,3601', '南昌县', '36', '江西省', '3601', '南昌市', '360121', '南昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360123', '3601', '00,36,3601', '安义县', '36', '江西省', '3601', '南昌市', '360123', '安义县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360124', '3601', '00,36,3601', '进贤县', '36', '江西省', '3601', '南昌市', '360124', '进贤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3602', '36', '00,36', '景德镇市', '36', '江西省', '3602', '景德镇市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360202', '3602', '00,36,3602', '昌江区', '36', '江西省', '3602', '景德镇市', '360202', '昌江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360203', '3602', '00,36,3602', '珠山区', '36', '江西省', '3602', '景德镇市', '360203', '珠山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360222', '3602', '00,36,3602', '浮梁县', '36', '江西省', '3602', '景德镇市', '360222', '浮梁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360281', '3602', '00,36,3602', '乐平市', '36', '江西省', '3602', '景德镇市', '360281', '乐平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3603', '36', '00,36', '萍乡市', '36', '江西省', '3603', '萍乡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360302', '3603', '00,36,3603', '安源区', '36', '江西省', '3603', '萍乡市', '360302', '安源区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360313', '3603', '00,36,3603', '湘东区', '36', '江西省', '3603', '萍乡市', '360313', '湘东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360321', '3603', '00,36,3603', '莲花县', '36', '江西省', '3603', '萍乡市', '360321', '莲花县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360322', '3603', '00,36,3603', '上栗县', '36', '江西省', '3603', '萍乡市', '360322', '上栗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360323', '3603', '00,36,3603', '芦溪县', '36', '江西省', '3603', '萍乡市', '360323', '芦溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3604', '36', '00,36', '九江市', '36', '江西省', '3604', '九江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360402', '3604', '00,36,3604', '濂溪区', '36', '江西省', '3604', '九江市', '360402', '濂溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360403', '3604', '00,36,3604', '浔阳区', '36', '江西省', '3604', '九江市', '360403', '浔阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360404', '3604', '00,36,3604', '柴桑区', '36', '江西省', '3604', '九江市', '360404', '柴桑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360423', '3604', '00,36,3604', '武宁县', '36', '江西省', '3604', '九江市', '360423', '武宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360424', '3604', '00,36,3604', '修水县', '36', '江西省', '3604', '九江市', '360424', '修水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360425', '3604', '00,36,3604', '永修县', '36', '江西省', '3604', '九江市', '360425', '永修县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360426', '3604', '00,36,3604', '德安县', '36', '江西省', '3604', '九江市', '360426', '德安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360428', '3604', '00,36,3604', '都昌县', '36', '江西省', '3604', '九江市', '360428', '都昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360429', '3604', '00,36,3604', '湖口县', '36', '江西省', '3604', '九江市', '360429', '湖口县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360430', '3604', '00,36,3604', '彭泽县', '36', '江西省', '3604', '九江市', '360430', '彭泽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360481', '3604', '00,36,3604', '瑞昌市', '36', '江西省', '3604', '九江市', '360481', '瑞昌市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360482', '3604', '00,36,3604', '共青城市', '36', '江西省', '3604', '九江市', '360482', '共青城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360483', '3604', '00,36,3604', '庐山市', '36', '江西省', '3604', '九江市', '360483', '庐山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3605', '36', '00,36', '新余市', '36', '江西省', '3605', '新余市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360502', '3605', '00,36,3605', '渝水区', '36', '江西省', '3605', '新余市', '360502', '渝水区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360521', '3605', '00,36,3605', '分宜县', '36', '江西省', '3605', '新余市', '360521', '分宜县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3606', '36', '00,36', '鹰潭市', '36', '江西省', '3606', '鹰潭市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360602', '3606', '00,36,3606', '月湖区', '36', '江西省', '3606', '鹰潭市', '360602', '月湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360603', '3606', '00,36,3606', '余江区', '36', '江西省', '3606', '鹰潭市', '360603', '余江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360681', '3606', '00,36,3606', '贵溪市', '36', '江西省', '3606', '鹰潭市', '360681', '贵溪市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3607', '36', '00,36', '赣州市', '36', '江西省', '3607', '赣州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360702', '3607', '00,36,3607', '章贡区', '36', '江西省', '3607', '赣州市', '360702', '章贡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360703', '3607', '00,36,3607', '南康区', '36', '江西省', '3607', '赣州市', '360703', '南康区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360704', '3607', '00,36,3607', '赣县区', '36', '江西省', '3607', '赣州市', '360704', '赣县区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360722', '3607', '00,36,3607', '信丰县', '36', '江西省', '3607', '赣州市', '360722', '信丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360723', '3607', '00,36,3607', '大余县', '36', '江西省', '3607', '赣州市', '360723', '大余县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360724', '3607', '00,36,3607', '上犹县', '36', '江西省', '3607', '赣州市', '360724', '上犹县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360725', '3607', '00,36,3607', '崇义县', '36', '江西省', '3607', '赣州市', '360725', '崇义县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360726', '3607', '00,36,3607', '安远县', '36', '江西省', '3607', '赣州市', '360726', '安远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360727', '3607', '00,36,3607', '龙南县', '36', '江西省', '3607', '赣州市', '360727', '龙南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360728', '3607', '00,36,3607', '定南县', '36', '江西省', '3607', '赣州市', '360728', '定南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360729', '3607', '00,36,3607', '全南县', '36', '江西省', '3607', '赣州市', '360729', '全南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360730', '3607', '00,36,3607', '宁都县', '36', '江西省', '3607', '赣州市', '360730', '宁都县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360731', '3607', '00,36,3607', '于都县', '36', '江西省', '3607', '赣州市', '360731', '于都县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360732', '3607', '00,36,3607', '兴国县', '36', '江西省', '3607', '赣州市', '360732', '兴国县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360733', '3607', '00,36,3607', '会昌县', '36', '江西省', '3607', '赣州市', '360733', '会昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360734', '3607', '00,36,3607', '寻乌县', '36', '江西省', '3607', '赣州市', '360734', '寻乌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360735', '3607', '00,36,3607', '石城县', '36', '江西省', '3607', '赣州市', '360735', '石城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360781', '3607', '00,36,3607', '瑞金市', '36', '江西省', '3607', '赣州市', '360781', '瑞金市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3608', '36', '00,36', '吉安市', '36', '江西省', '3608', '吉安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360802', '3608', '00,36,3608', '吉州区', '36', '江西省', '3608', '吉安市', '360802', '吉州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360803', '3608', '00,36,3608', '青原区', '36', '江西省', '3608', '吉安市', '360803', '青原区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360821', '3608', '00,36,3608', '吉安县', '36', '江西省', '3608', '吉安市', '360821', '吉安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360822', '3608', '00,36,3608', '吉水县', '36', '江西省', '3608', '吉安市', '360822', '吉水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360823', '3608', '00,36,3608', '峡江县', '36', '江西省', '3608', '吉安市', '360823', '峡江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360824', '3608', '00,36,3608', '新干县', '36', '江西省', '3608', '吉安市', '360824', '新干县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360825', '3608', '00,36,3608', '永丰县', '36', '江西省', '3608', '吉安市', '360825', '永丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360826', '3608', '00,36,3608', '泰和县', '36', '江西省', '3608', '吉安市', '360826', '泰和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360827', '3608', '00,36,3608', '遂川县', '36', '江西省', '3608', '吉安市', '360827', '遂川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360828', '3608', '00,36,3608', '万安县', '36', '江西省', '3608', '吉安市', '360828', '万安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360829', '3608', '00,36,3608', '安福县', '36', '江西省', '3608', '吉安市', '360829', '安福县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360830', '3608', '00,36,3608', '永新县', '36', '江西省', '3608', '吉安市', '360830', '永新县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360881', '3608', '00,36,3608', '井冈山市', '36', '江西省', '3608', '吉安市', '360881', '井冈山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3609', '36', '00,36', '宜春市', '36', '江西省', '3609', '宜春市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360902', '3609', '00,36,3609', '袁州区', '36', '江西省', '3609', '宜春市', '360902', '袁州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360921', '3609', '00,36,3609', '奉新县', '36', '江西省', '3609', '宜春市', '360921', '奉新县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360922', '3609', '00,36,3609', '万载县', '36', '江西省', '3609', '宜春市', '360922', '万载县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360923', '3609', '00,36,3609', '上高县', '36', '江西省', '3609', '宜春市', '360923', '上高县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360924', '3609', '00,36,3609', '宜丰县', '36', '江西省', '3609', '宜春市', '360924', '宜丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360925', '3609', '00,36,3609', '靖安县', '36', '江西省', '3609', '宜春市', '360925', '靖安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360926', '3609', '00,36,3609', '铜鼓县', '36', '江西省', '3609', '宜春市', '360926', '铜鼓县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360981', '3609', '00,36,3609', '丰城市', '36', '江西省', '3609', '宜春市', '360981', '丰城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360982', '3609', '00,36,3609', '樟树市', '36', '江西省', '3609', '宜春市', '360982', '樟树市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360983', '3609', '00,36,3609', '高安市', '36', '江西省', '3609', '宜春市', '360983', '高安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331002', '3310', '00,33,3310', '椒江区', '33', '浙江省', '3310', '台州市', '331002', '椒江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('220422', '2204', '00,22,2204', '东辽县', '22', '吉林省', '2204', '辽源市', '220422', '东辽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341002', '3410', '00,34,3410', '屯溪区', '34', '安徽省', '3410', '黄山市', '341002', '屯溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341003', '3410', '00,34,3410', '黄山区', '34', '安徽省', '3410', '黄山市', '341003', '黄山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341004', '3410', '00,34,3410', '徽州区', '34', '安徽省', '3410', '黄山市', '341004', '徽州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341021', '3410', '00,34,3410', '歙县', '34', '安徽省', '3410', '黄山市', '341021', '歙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341022', '3410', '00,34,3410', '休宁县', '34', '安徽省', '3410', '黄山市', '341022', '休宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341023', '3410', '00,34,3410', '黟县', '34', '安徽省', '3410', '黄山市', '341023', '黟县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341024', '3410', '00,34,3410', '祁门县', '34', '安徽省', '3410', '黄山市', '341024', '祁门县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3411', '34', '00,34', '滁州市', '34', '安徽省', '3411', '滁州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341102', '3411', '00,34,3411', '琅琊区', '34', '安徽省', '3411', '滁州市', '341102', '琅琊区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341103', '3411', '00,34,3411', '南谯区', '34', '安徽省', '3411', '滁州市', '341103', '南谯区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341122', '3411', '00,34,3411', '来安县', '34', '安徽省', '3411', '滁州市', '341122', '来安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341124', '3411', '00,34,3411', '全椒县', '34', '安徽省', '3411', '滁州市', '341124', '全椒县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341125', '3411', '00,34,3411', '定远县', '34', '安徽省', '3411', '滁州市', '341125', '定远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341126', '3411', '00,34,3411', '凤阳县', '34', '安徽省', '3411', '滁州市', '341126', '凤阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341181', '3411', '00,34,3411', '天长市', '34', '安徽省', '3411', '滁州市', '341181', '天长市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341182', '3411', '00,34,3411', '明光市', '34', '安徽省', '3411', '滁州市', '341182', '明光市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3412', '34', '00,34', '阜阳市', '34', '安徽省', '3412', '阜阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341202', '3412', '00,34,3412', '颍州区', '34', '安徽省', '3412', '阜阳市', '341202', '颍州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341203', '3412', '00,34,3412', '颍东区', '34', '安徽省', '3412', '阜阳市', '341203', '颍东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341204', '3412', '00,34,3412', '颍泉区', '34', '安徽省', '3412', '阜阳市', '341204', '颍泉区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341221', '3412', '00,34,3412', '临泉县', '34', '安徽省', '3412', '阜阳市', '341221', '临泉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341222', '3412', '00,34,3412', '太和县', '34', '安徽省', '3412', '阜阳市', '341222', '太和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341225', '3412', '00,34,3412', '阜南县', '34', '安徽省', '3412', '阜阳市', '341225', '阜南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341226', '3412', '00,34,3412', '颍上县', '34', '安徽省', '3412', '阜阳市', '341226', '颍上县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341282', '3412', '00,34,3412', '界首市', '34', '安徽省', '3412', '阜阳市', '341282', '界首市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3413', '34', '00,34', '宿州市', '34', '安徽省', '3413', '宿州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341302', '3413', '00,34,3413', '埇桥区', '34', '安徽省', '3413', '宿州市', '341302', '埇桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341321', '3413', '00,34,3413', '砀山县', '34', '安徽省', '3413', '宿州市', '341321', '砀山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341322', '3413', '00,34,3413', '萧县', '34', '安徽省', '3413', '宿州市', '341322', '萧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341323', '3413', '00,34,3413', '灵璧县', '34', '安徽省', '3413', '宿州市', '341323', '灵璧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341324', '3413', '00,34,3413', '泗县', '34', '安徽省', '3413', '宿州市', '341324', '泗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3415', '34', '00,34', '六安市', '34', '安徽省', '3415', '六安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341502', '3415', '00,34,3415', '金安区', '34', '安徽省', '3415', '六安市', '341502', '金安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341503', '3415', '00,34,3415', '裕安区', '34', '安徽省', '3415', '六安市', '341503', '裕安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341504', '3415', '00,34,3415', '叶集区', '34', '安徽省', '3415', '六安市', '341504', '叶集区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341522', '3415', '00,34,3415', '霍邱县', '34', '安徽省', '3415', '六安市', '341522', '霍邱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341523', '3415', '00,34,3415', '舒城县', '34', '安徽省', '3415', '六安市', '341523', '舒城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341524', '3415', '00,34,3415', '金寨县', '34', '安徽省', '3415', '六安市', '341524', '金寨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341525', '3415', '00,34,3415', '霍山县', '34', '安徽省', '3415', '六安市', '341525', '霍山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3416', '34', '00,34', '亳州市', '34', '安徽省', '3416', '亳州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341602', '3416', '00,34,3416', '谯城区', '34', '安徽省', '3416', '亳州市', '341602', '谯城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341621', '3416', '00,34,3416', '涡阳县', '34', '安徽省', '3416', '亳州市', '341621', '涡阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341622', '3416', '00,34,3416', '蒙城县', '34', '安徽省', '3416', '亳州市', '341622', '蒙城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341623', '3416', '00,34,3416', '利辛县', '34', '安徽省', '3416', '亳州市', '341623', '利辛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3417', '34', '00,34', '池州市', '34', '安徽省', '3417', '池州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341702', '3417', '00,34,3417', '贵池区', '34', '安徽省', '3417', '池州市', '341702', '贵池区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341721', '3417', '00,34,3417', '东至县', '34', '安徽省', '3417', '池州市', '341721', '东至县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341722', '3417', '00,34,3417', '石台县', '34', '安徽省', '3417', '池州市', '341722', '石台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341723', '3417', '00,34,3417', '青阳县', '34', '安徽省', '3417', '池州市', '341723', '青阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3418', '34', '00,34', '宣城市', '34', '安徽省', '3418', '宣城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341802', '3418', '00,34,3418', '宣州区', '34', '安徽省', '3418', '宣城市', '341802', '宣州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341821', '3418', '00,34,3418', '郎溪县', '34', '安徽省', '3418', '宣城市', '341821', '郎溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341823', '3418', '00,34,3418', '泾县', '34', '安徽省', '3418', '宣城市', '341823', '泾县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341824', '3418', '00,34,3418', '绩溪县', '34', '安徽省', '3418', '宣城市', '341824', '绩溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341825', '3418', '00,34,3418', '旌德县', '34', '安徽省', '3418', '宣城市', '341825', '旌德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341881', '3418', '00,34,3418', '宁国市', '34', '安徽省', '3418', '宣城市', '341881', '宁国市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('341882', '3418', '00,34,3418', '广德市', '34', '安徽省', '3418', '宣城市', '341882', '广德市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('35', '00', '00', '福建省', '35', '福建省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3501', '35', '00,35', '福州市', '35', '福建省', '3501', '福州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350102', '3501', '00,35,3501', '鼓楼区', '35', '福建省', '3501', '福州市', '350102', '鼓楼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350103', '3501', '00,35,3501', '台江区', '35', '福建省', '3501', '福州市', '350103', '台江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350104', '3501', '00,35,3501', '仓山区', '35', '福建省', '3501', '福州市', '350104', '仓山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350105', '3501', '00,35,3501', '马尾区', '35', '福建省', '3501', '福州市', '350105', '马尾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350111', '3501', '00,35,3501', '晋安区', '35', '福建省', '3501', '福州市', '350111', '晋安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350112', '3501', '00,35,3501', '长乐区', '35', '福建省', '3501', '福州市', '350112', '长乐区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350121', '3501', '00,35,3501', '闽侯县', '35', '福建省', '3501', '福州市', '350121', '闽侯县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350122', '3501', '00,35,3501', '连江县', '35', '福建省', '3501', '福州市', '350122', '连江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350123', '3501', '00,35,3501', '罗源县', '35', '福建省', '3501', '福州市', '350123', '罗源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350124', '3501', '00,35,3501', '闽清县', '35', '福建省', '3501', '福州市', '350124', '闽清县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350125', '3501', '00,35,3501', '永泰县', '35', '福建省', '3501', '福州市', '350125', '永泰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350128', '3501', '00,35,3501', '平潭县', '35', '福建省', '3501', '福州市', '350128', '平潭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350181', '3501', '00,35,3501', '福清市', '35', '福建省', '3501', '福州市', '350181', '福清市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3502', '35', '00,35', '厦门市', '35', '福建省', '3502', '厦门市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350203', '3502', '00,35,3502', '思明区', '35', '福建省', '3502', '厦门市', '350203', '思明区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350205', '3502', '00,35,3502', '海沧区', '35', '福建省', '3502', '厦门市', '350205', '海沧区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350206', '3502', '00,35,3502', '湖里区', '35', '福建省', '3502', '厦门市', '350206', '湖里区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350211', '3502', '00,35,3502', '集美区', '35', '福建省', '3502', '厦门市', '350211', '集美区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350212', '3502', '00,35,3502', '同安区', '35', '福建省', '3502', '厦门市', '350212', '同安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350213', '3502', '00,35,3502', '翔安区', '35', '福建省', '3502', '厦门市', '350213', '翔安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3503', '35', '00,35', '莆田市', '35', '福建省', '3503', '莆田市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350302', '3503', '00,35,3503', '城厢区', '35', '福建省', '3503', '莆田市', '350302', '城厢区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350303', '3503', '00,35,3503', '涵江区', '35', '福建省', '3503', '莆田市', '350303', '涵江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350304', '3503', '00,35,3503', '荔城区', '35', '福建省', '3503', '莆田市', '350304', '荔城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350305', '3503', '00,35,3503', '秀屿区', '35', '福建省', '3503', '莆田市', '350305', '秀屿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350322', '3503', '00,35,3503', '仙游县', '35', '福建省', '3503', '莆田市', '350322', '仙游县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3504', '35', '00,35', '三明市', '35', '福建省', '3504', '三明市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350402', '3504', '00,35,3504', '梅列区', '35', '福建省', '3504', '三明市', '350402', '梅列区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350403', '3504', '00,35,3504', '三元区', '35', '福建省', '3504', '三明市', '350403', '三元区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350421', '3504', '00,35,3504', '明溪县', '35', '福建省', '3504', '三明市', '350421', '明溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350423', '3504', '00,35,3504', '清流县', '35', '福建省', '3504', '三明市', '350423', '清流县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350424', '3504', '00,35,3504', '宁化县', '35', '福建省', '3504', '三明市', '350424', '宁化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350425', '3504', '00,35,3504', '大田县', '35', '福建省', '3504', '三明市', '350425', '大田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350426', '3504', '00,35,3504', '尤溪县', '35', '福建省', '3504', '三明市', '350426', '尤溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350427', '3504', '00,35,3504', '沙县', '35', '福建省', '3504', '三明市', '350427', '沙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350428', '3504', '00,35,3504', '将乐县', '35', '福建省', '3504', '三明市', '350428', '将乐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350429', '3504', '00,35,3504', '泰宁县', '35', '福建省', '3504', '三明市', '350429', '泰宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350430', '3504', '00,35,3504', '建宁县', '35', '福建省', '3504', '三明市', '350430', '建宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350481', '3504', '00,35,3504', '永安市', '35', '福建省', '3504', '三明市', '350481', '永安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3505', '35', '00,35', '泉州市', '35', '福建省', '3505', '泉州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350502', '3505', '00,35,3505', '鲤城区', '35', '福建省', '3505', '泉州市', '350502', '鲤城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350503', '3505', '00,35,3505', '丰泽区', '35', '福建省', '3505', '泉州市', '350503', '丰泽区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350504', '3505', '00,35,3505', '洛江区', '35', '福建省', '3505', '泉州市', '350504', '洛江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350505', '3505', '00,35,3505', '泉港区', '35', '福建省', '3505', '泉州市', '350505', '泉港区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350521', '3505', '00,35,3505', '惠安县', '35', '福建省', '3505', '泉州市', '350521', '惠安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350524', '3505', '00,35,3505', '安溪县', '35', '福建省', '3505', '泉州市', '350524', '安溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350525', '3505', '00,35,3505', '永春县', '35', '福建省', '3505', '泉州市', '350525', '永春县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350526', '3505', '00,35,3505', '德化县', '35', '福建省', '3505', '泉州市', '350526', '德化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350527', '3505', '00,35,3505', '金门县', '35', '福建省', '3505', '泉州市', '350527', '金门县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350581', '3505', '00,35,3505', '石狮市', '35', '福建省', '3505', '泉州市', '350581', '石狮市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350582', '3505', '00,35,3505', '晋江市', '35', '福建省', '3505', '泉州市', '350582', '晋江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350583', '3505', '00,35,3505', '南安市', '35', '福建省', '3505', '泉州市', '350583', '南安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3506', '35', '00,35', '漳州市', '35', '福建省', '3506', '漳州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350602', '3506', '00,35,3506', '芗城区', '35', '福建省', '3506', '漳州市', '350602', '芗城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350603', '3506', '00,35,3506', '龙文区', '35', '福建省', '3506', '漳州市', '350603', '龙文区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350622', '3506', '00,35,3506', '云霄县', '35', '福建省', '3506', '漳州市', '350622', '云霄县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350623', '3506', '00,35,3506', '漳浦县', '35', '福建省', '3506', '漳州市', '350623', '漳浦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350624', '3506', '00,35,3506', '诏安县', '35', '福建省', '3506', '漳州市', '350624', '诏安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350625', '3506', '00,35,3506', '长泰县', '35', '福建省', '3506', '漳州市', '350625', '长泰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350626', '3506', '00,35,3506', '东山县', '35', '福建省', '3506', '漳州市', '350626', '东山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350627', '3506', '00,35,3506', '南靖县', '35', '福建省', '3506', '漳州市', '350627', '南靖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350628', '3506', '00,35,3506', '平和县', '35', '福建省', '3506', '漳州市', '350628', '平和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350629', '3506', '00,35,3506', '华安县', '35', '福建省', '3506', '漳州市', '350629', '华安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350681', '3506', '00,35,3506', '龙海市', '35', '福建省', '3506', '漳州市', '350681', '龙海市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3507', '35', '00,35', '南平市', '35', '福建省', '3507', '南平市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350702', '3507', '00,35,3507', '延平区', '35', '福建省', '3507', '南平市', '350702', '延平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350703', '3507', '00,35,3507', '建阳区', '35', '福建省', '3507', '南平市', '350703', '建阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350721', '3507', '00,35,3507', '顺昌县', '35', '福建省', '3507', '南平市', '350721', '顺昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350722', '3507', '00,35,3507', '浦城县', '35', '福建省', '3507', '南平市', '350722', '浦城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350723', '3507', '00,35,3507', '光泽县', '35', '福建省', '3507', '南平市', '350723', '光泽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350724', '3507', '00,35,3507', '松溪县', '35', '福建省', '3507', '南平市', '350724', '松溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350725', '3507', '00,35,3507', '政和县', '35', '福建省', '3507', '南平市', '350725', '政和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350781', '3507', '00,35,3507', '邵武市', '35', '福建省', '3507', '南平市', '350781', '邵武市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350782', '3507', '00,35,3507', '武夷山市', '35', '福建省', '3507', '南平市', '350782', '武夷山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350783', '3507', '00,35,3507', '建瓯市', '35', '福建省', '3507', '南平市', '350783', '建瓯市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3508', '35', '00,35', '龙岩市', '35', '福建省', '3508', '龙岩市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350802', '3508', '00,35,3508', '新罗区', '35', '福建省', '3508', '龙岩市', '350802', '新罗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350803', '3508', '00,35,3508', '永定区', '35', '福建省', '3508', '龙岩市', '350803', '永定区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350821', '3508', '00,35,3508', '长汀县', '35', '福建省', '3508', '龙岩市', '350821', '长汀县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350823', '3508', '00,35,3508', '上杭县', '35', '福建省', '3508', '龙岩市', '350823', '上杭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350824', '3508', '00,35,3508', '武平县', '35', '福建省', '3508', '龙岩市', '350824', '武平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350825', '3508', '00,35,3508', '连城县', '35', '福建省', '3508', '龙岩市', '350825', '连城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350881', '3508', '00,35,3508', '漳平市', '35', '福建省', '3508', '龙岩市', '350881', '漳平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3509', '35', '00,35', '宁德市', '35', '福建省', '3509', '宁德市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350902', '3509', '00,35,3509', '蕉城区', '35', '福建省', '3509', '宁德市', '350902', '蕉城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350921', '3509', '00,35,3509', '霞浦县', '35', '福建省', '3509', '宁德市', '350921', '霞浦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350922', '3509', '00,35,3509', '古田县', '35', '福建省', '3509', '宁德市', '350922', '古田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350923', '3509', '00,35,3509', '屏南县', '35', '福建省', '3509', '宁德市', '350923', '屏南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350924', '3509', '00,35,3509', '寿宁县', '35', '福建省', '3509', '宁德市', '350924', '寿宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350925', '3509', '00,35,3509', '周宁县', '35', '福建省', '3509', '宁德市', '350925', '周宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350926', '3509', '00,35,3509', '柘荣县', '35', '福建省', '3509', '宁德市', '350926', '柘荣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350981', '3509', '00,35,3509', '福安市', '35', '福建省', '3509', '宁德市', '350981', '福安市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('350982', '3509', '00,35,3509', '福鼎市', '35', '福建省', '3509', '宁德市', '350982', '福鼎市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('36', '00', '00', '江西省', '36', '江西省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3601', '36', '00,36', '南昌市', '36', '江西省', '3601', '南昌市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360102', '3601', '00,36,3601', '东湖区', '36', '江西省', '3601', '南昌市', '360102', '东湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360103', '3601', '00,36,3601', '西湖区', '36', '江西省', '3601', '南昌市', '360103', '西湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360104', '3601', '00,36,3601', '青云谱区', '36', '江西省', '3601', '南昌市', '360104', '青云谱区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360111', '3601', '00,36,3601', '青山湖区', '36', '江西省', '3601', '南昌市', '360111', '青山湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3610', '36', '00,36', '抚州市', '36', '江西省', '3610', '抚州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361002', '3610', '00,36,3610', '临川区', '36', '江西省', '3610', '抚州市', '361002', '临川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361003', '3610', '00,36,3610', '东乡区', '36', '江西省', '3610', '抚州市', '361003', '东乡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361021', '3610', '00,36,3610', '南城县', '36', '江西省', '3610', '抚州市', '361021', '南城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361022', '3610', '00,36,3610', '黎川县', '36', '江西省', '3610', '抚州市', '361022', '黎川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361023', '3610', '00,36,3610', '南丰县', '36', '江西省', '3610', '抚州市', '361023', '南丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361024', '3610', '00,36,3610', '崇仁县', '36', '江西省', '3610', '抚州市', '361024', '崇仁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361025', '3610', '00,36,3610', '乐安县', '36', '江西省', '3610', '抚州市', '361025', '乐安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361026', '3610', '00,36,3610', '宜黄县', '36', '江西省', '3610', '抚州市', '361026', '宜黄县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361027', '3610', '00,36,3610', '金溪县', '36', '江西省', '3610', '抚州市', '361027', '金溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361028', '3610', '00,36,3610', '资溪县', '36', '江西省', '3610', '抚州市', '361028', '资溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361030', '3610', '00,36,3610', '广昌县', '36', '江西省', '3610', '抚州市', '361030', '广昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3611', '36', '00,36', '上饶市', '36', '江西省', '3611', '上饶市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361102', '3611', '00,36,3611', '信州区', '36', '江西省', '3611', '上饶市', '361102', '信州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361103', '3611', '00,36,3611', '广丰区', '36', '江西省', '3611', '上饶市', '361103', '广丰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361104', '3611', '00,36,3611', '广信区', '36', '江西省', '3611', '上饶市', '361104', '广信区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361123', '3611', '00,36,3611', '玉山县', '36', '江西省', '3611', '上饶市', '361123', '玉山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361124', '3611', '00,36,3611', '铅山县', '36', '江西省', '3611', '上饶市', '361124', '铅山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361125', '3611', '00,36,3611', '横峰县', '36', '江西省', '3611', '上饶市', '361125', '横峰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361126', '3611', '00,36,3611', '弋阳县', '36', '江西省', '3611', '上饶市', '361126', '弋阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361127', '3611', '00,36,3611', '余干县', '36', '江西省', '3611', '上饶市', '361127', '余干县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361128', '3611', '00,36,3611', '鄱阳县', '36', '江西省', '3611', '上饶市', '361128', '鄱阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361129', '3611', '00,36,3611', '万年县', '36', '江西省', '3611', '上饶市', '361129', '万年县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361130', '3611', '00,36,3611', '婺源县', '36', '江西省', '3611', '上饶市', '361130', '婺源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('361181', '3611', '00,36,3611', '德兴市', '36', '江西省', '3611', '上饶市', '361181', '德兴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('37', '00', '00', '山东省', '37', '山东省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3701', '37', '00,37', '济南市', '37', '山东省', '3701', '济南市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370102', '3701', '00,37,3701', '历下区', '37', '山东省', '3701', '济南市', '370102', '历下区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370103', '3701', '00,37,3701', '市中区', '37', '山东省', '3701', '济南市', '370103', '市中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370104', '3701', '00,37,3701', '槐荫区', '37', '山东省', '3701', '济南市', '370104', '槐荫区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370105', '3701', '00,37,3701', '天桥区', '37', '山东省', '3701', '济南市', '370105', '天桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370112', '3701', '00,37,3701', '历城区', '37', '山东省', '3701', '济南市', '370112', '历城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370113', '3701', '00,37,3701', '长清区', '37', '山东省', '3701', '济南市', '370113', '长清区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370114', '3701', '00,37,3701', '章丘区', '37', '山东省', '3701', '济南市', '370114', '章丘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370115', '3701', '00,37,3701', '济阳区', '37', '山东省', '3701', '济南市', '370115', '济阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370116', '3701', '00,37,3701', '莱芜区', '37', '山东省', '3701', '济南市', '370116', '莱芜区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370117', '3701', '00,37,3701', '钢城区', '37', '山东省', '3701', '济南市', '370117', '钢城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370124', '3701', '00,37,3701', '平阴县', '37', '山东省', '3701', '济南市', '370124', '平阴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370126', '3701', '00,37,3701', '商河县', '37', '山东省', '3701', '济南市', '370126', '商河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3702', '37', '00,37', '青岛市', '37', '山东省', '3702', '青岛市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370202', '3702', '00,37,3702', '市南区', '37', '山东省', '3702', '青岛市', '370202', '市南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370203', '3702', '00,37,3702', '市北区', '37', '山东省', '3702', '青岛市', '370203', '市北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370211', '3702', '00,37,3702', '黄岛区', '37', '山东省', '3702', '青岛市', '370211', '黄岛区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370212', '3702', '00,37,3702', '崂山区', '37', '山东省', '3702', '青岛市', '370212', '崂山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370213', '3702', '00,37,3702', '李沧区', '37', '山东省', '3702', '青岛市', '370213', '李沧区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370214', '3702', '00,37,3702', '城阳区', '37', '山东省', '3702', '青岛市', '370214', '城阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370215', '3702', '00,37,3702', '即墨区', '37', '山东省', '3702', '青岛市', '370215', '即墨区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370281', '3702', '00,37,3702', '胶州市', '37', '山东省', '3702', '青岛市', '370281', '胶州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370283', '3702', '00,37,3702', '平度市', '37', '山东省', '3702', '青岛市', '370283', '平度市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370285', '3702', '00,37,3702', '莱西市', '37', '山东省', '3702', '青岛市', '370285', '莱西市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3703', '37', '00,37', '淄博市', '37', '山东省', '3703', '淄博市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370302', '3703', '00,37,3703', '淄川区', '37', '山东省', '3703', '淄博市', '370302', '淄川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370303', '3703', '00,37,3703', '张店区', '37', '山东省', '3703', '淄博市', '370303', '张店区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370304', '3703', '00,37,3703', '博山区', '37', '山东省', '3703', '淄博市', '370304', '博山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370305', '3703', '00,37,3703', '临淄区', '37', '山东省', '3703', '淄博市', '370305', '临淄区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370306', '3703', '00,37,3703', '周村区', '37', '山东省', '3703', '淄博市', '370306', '周村区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370321', '3703', '00,37,3703', '桓台县', '37', '山东省', '3703', '淄博市', '370321', '桓台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370322', '3703', '00,37,3703', '高青县', '37', '山东省', '3703', '淄博市', '370322', '高青县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370323', '3703', '00,37,3703', '沂源县', '37', '山东省', '3703', '淄博市', '370323', '沂源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3704', '37', '00,37', '枣庄市', '37', '山东省', '3704', '枣庄市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370402', '3704', '00,37,3704', '市中区', '37', '山东省', '3704', '枣庄市', '370402', '市中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370403', '3704', '00,37,3704', '薛城区', '37', '山东省', '3704', '枣庄市', '370403', '薛城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370404', '3704', '00,37,3704', '峄城区', '37', '山东省', '3704', '枣庄市', '370404', '峄城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370405', '3704', '00,37,3704', '台儿庄区', '37', '山东省', '3704', '枣庄市', '370405', '台儿庄区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370406', '3704', '00,37,3704', '山亭区', '37', '山东省', '3704', '枣庄市', '370406', '山亭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370481', '3704', '00,37,3704', '滕州市', '37', '山东省', '3704', '枣庄市', '370481', '滕州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3705', '37', '00,37', '东营市', '37', '山东省', '3705', '东营市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370502', '3705', '00,37,3705', '东营区', '37', '山东省', '3705', '东营市', '370502', '东营区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370503', '3705', '00,37,3705', '河口区', '37', '山东省', '3705', '东营市', '370503', '河口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370505', '3705', '00,37,3705', '垦利区', '37', '山东省', '3705', '东营市', '370505', '垦利区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370522', '3705', '00,37,3705', '利津县', '37', '山东省', '3705', '东营市', '370522', '利津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370523', '3705', '00,37,3705', '广饶县', '37', '山东省', '3705', '东营市', '370523', '广饶县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3706', '37', '00,37', '烟台市', '37', '山东省', '3706', '烟台市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370602', '3706', '00,37,3706', '芝罘区', '37', '山东省', '3706', '烟台市', '370602', '芝罘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370611', '3706', '00,37,3706', '福山区', '37', '山东省', '3706', '烟台市', '370611', '福山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370612', '3706', '00,37,3706', '牟平区', '37', '山东省', '3706', '烟台市', '370612', '牟平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370613', '3706', '00,37,3706', '莱山区', '37', '山东省', '3706', '烟台市', '370613', '莱山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370634', '3706', '00,37,3706', '长岛县', '37', '山东省', '3706', '烟台市', '370634', '长岛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4415', '44', '00,44', '汕尾市', '44', '广东省', '4415', '汕尾市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230302', '2303', '00,23,2303', '鸡冠区', '23', '黑龙江省', '2303', '鸡西市', '230302', '鸡冠区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('230303', '2303', '00,23,2303', '恒山区', '23', '黑龙江省', '2303', '鸡西市', '230303', '恒山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371581', '3715', '00,37,3715', '临清市', '37', '山东省', '3715', '聊城市', '371581', '临清市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3716', '37', '00,37', '滨州市', '37', '山东省', '3716', '滨州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371602', '3716', '00,37,3716', '滨城区', '37', '山东省', '3716', '滨州市', '371602', '滨城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371603', '3716', '00,37,3716', '沾化区', '37', '山东省', '3716', '滨州市', '371603', '沾化区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371621', '3716', '00,37,3716', '惠民县', '37', '山东省', '3716', '滨州市', '371621', '惠民县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371622', '3716', '00,37,3716', '阳信县', '37', '山东省', '3716', '滨州市', '371622', '阳信县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371623', '3716', '00,37,3716', '无棣县', '37', '山东省', '3716', '滨州市', '371623', '无棣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371625', '3716', '00,37,3716', '博兴县', '37', '山东省', '3716', '滨州市', '371625', '博兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371681', '3716', '00,37,3716', '邹平市', '37', '山东省', '3716', '滨州市', '371681', '邹平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3717', '37', '00,37', '菏泽市', '37', '山东省', '3717', '菏泽市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371702', '3717', '00,37,3717', '牡丹区', '37', '山东省', '3717', '菏泽市', '371702', '牡丹区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371703', '3717', '00,37,3717', '定陶区', '37', '山东省', '3717', '菏泽市', '371703', '定陶区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371721', '3717', '00,37,3717', '曹县', '37', '山东省', '3717', '菏泽市', '371721', '曹县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371722', '3717', '00,37,3717', '单县', '37', '山东省', '3717', '菏泽市', '371722', '单县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371723', '3717', '00,37,3717', '成武县', '37', '山东省', '3717', '菏泽市', '371723', '成武县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371724', '3717', '00,37,3717', '巨野县', '37', '山东省', '3717', '菏泽市', '371724', '巨野县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371725', '3717', '00,37,3717', '郓城县', '37', '山东省', '3717', '菏泽市', '371725', '郓城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371726', '3717', '00,37,3717', '鄄城县', '37', '山东省', '3717', '菏泽市', '371726', '鄄城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371728', '3717', '00,37,3717', '东明县', '37', '山东省', '3717', '菏泽市', '371728', '东明县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('41', '00', '00', '河南省', '41', '河南省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4101', '41', '00,41', '郑州市', '41', '河南省', '4101', '郑州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410102', '4101', '00,41,4101', '中原区', '41', '河南省', '4101', '郑州市', '410102', '中原区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410103', '4101', '00,41,4101', '二七区', '41', '河南省', '4101', '郑州市', '410103', '二七区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410104', '4101', '00,41,4101', '管城回族区', '41', '河南省', '4101', '郑州市', '410104', '管城回族区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410105', '4101', '00,41,4101', '金水区', '41', '河南省', '4101', '郑州市', '410105', '金水区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410106', '4101', '00,41,4101', '上街区', '41', '河南省', '4101', '郑州市', '410106', '上街区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410108', '4101', '00,41,4101', '惠济区', '41', '河南省', '4101', '郑州市', '410108', '惠济区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410122', '4101', '00,41,4101', '中牟县', '41', '河南省', '4101', '郑州市', '410122', '中牟县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410181', '4101', '00,41,4101', '巩义市', '41', '河南省', '4101', '郑州市', '410181', '巩义市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410182', '4101', '00,41,4101', '荥阳市', '41', '河南省', '4101', '郑州市', '410182', '荥阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410183', '4101', '00,41,4101', '新密市', '41', '河南省', '4101', '郑州市', '410183', '新密市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410184', '4101', '00,41,4101', '新郑市', '41', '河南省', '4101', '郑州市', '410184', '新郑市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410185', '4101', '00,41,4101', '登封市', '41', '河南省', '4101', '郑州市', '410185', '登封市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4102', '41', '00,41', '开封市', '41', '河南省', '4102', '开封市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410202', '4102', '00,41,4102', '龙亭区', '41', '河南省', '4102', '开封市', '410202', '龙亭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410203', '4102', '00,41,4102', '顺河回族区', '41', '河南省', '4102', '开封市', '410203', '顺河回族区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410204', '4102', '00,41,4102', '鼓楼区', '41', '河南省', '4102', '开封市', '410204', '鼓楼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410205', '4102', '00,41,4102', '禹王台区', '41', '河南省', '4102', '开封市', '410205', '禹王台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410212', '4102', '00,41,4102', '祥符区', '41', '河南省', '4102', '开封市', '410212', '祥符区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410221', '4102', '00,41,4102', '杞县', '41', '河南省', '4102', '开封市', '410221', '杞县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410222', '4102', '00,41,4102', '通许县', '41', '河南省', '4102', '开封市', '410222', '通许县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410223', '4102', '00,41,4102', '尉氏县', '41', '河南省', '4102', '开封市', '410223', '尉氏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410225', '4102', '00,41,4102', '兰考县', '41', '河南省', '4102', '开封市', '410225', '兰考县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4103', '41', '00,41', '洛阳市', '41', '河南省', '4103', '洛阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410302', '4103', '00,41,4103', '老城区', '41', '河南省', '4103', '洛阳市', '410302', '老城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410303', '4103', '00,41,4103', '西工区', '41', '河南省', '4103', '洛阳市', '410303', '西工区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410304', '4103', '00,41,4103', '瀍河回族区', '41', '河南省', '4103', '洛阳市', '410304', '瀍河回族区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410305', '4103', '00,41,4103', '涧西区', '41', '河南省', '4103', '洛阳市', '410305', '涧西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410306', '4103', '00,41,4103', '吉利区', '41', '河南省', '4103', '洛阳市', '410306', '吉利区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410311', '4103', '00,41,4103', '洛龙区', '41', '河南省', '4103', '洛阳市', '410311', '洛龙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410322', '4103', '00,41,4103', '孟津县', '41', '河南省', '4103', '洛阳市', '410322', '孟津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410323', '4103', '00,41,4103', '新安县', '41', '河南省', '4103', '洛阳市', '410323', '新安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410324', '4103', '00,41,4103', '栾川县', '41', '河南省', '4103', '洛阳市', '410324', '栾川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410325', '4103', '00,41,4103', '嵩县', '41', '河南省', '4103', '洛阳市', '410325', '嵩县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410326', '4103', '00,41,4103', '汝阳县', '41', '河南省', '4103', '洛阳市', '410326', '汝阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410327', '4103', '00,41,4103', '宜阳县', '41', '河南省', '4103', '洛阳市', '410327', '宜阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410328', '4103', '00,41,4103', '洛宁县', '41', '河南省', '4103', '洛阳市', '410328', '洛宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410329', '4103', '00,41,4103', '伊川县', '41', '河南省', '4103', '洛阳市', '410329', '伊川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410381', '4103', '00,41,4103', '偃师市', '41', '河南省', '4103', '洛阳市', '410381', '偃师市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4104', '41', '00,41', '平顶山市', '41', '河南省', '4104', '平顶山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410402', '4104', '00,41,4104', '新华区', '41', '河南省', '4104', '平顶山市', '410402', '新华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410403', '4104', '00,41,4104', '卫东区', '41', '河南省', '4104', '平顶山市', '410403', '卫东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410404', '4104', '00,41,4104', '石龙区', '41', '河南省', '4104', '平顶山市', '410404', '石龙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410411', '4104', '00,41,4104', '湛河区', '41', '河南省', '4104', '平顶山市', '410411', '湛河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410421', '4104', '00,41,4104', '宝丰县', '41', '河南省', '4104', '平顶山市', '410421', '宝丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410422', '4104', '00,41,4104', '叶县', '41', '河南省', '4104', '平顶山市', '410422', '叶县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410423', '4104', '00,41,4104', '鲁山县', '41', '河南省', '4104', '平顶山市', '410423', '鲁山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410425', '4104', '00,41,4104', '郏县', '41', '河南省', '4104', '平顶山市', '410425', '郏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410481', '4104', '00,41,4104', '舞钢市', '41', '河南省', '4104', '平顶山市', '410481', '舞钢市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410482', '4104', '00,41,4104', '汝州市', '41', '河南省', '4104', '平顶山市', '410482', '汝州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4105', '41', '00,41', '安阳市', '41', '河南省', '4105', '安阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410502', '4105', '00,41,4105', '文峰区', '41', '河南省', '4105', '安阳市', '410502', '文峰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410503', '4105', '00,41,4105', '北关区', '41', '河南省', '4105', '安阳市', '410503', '北关区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410505', '4105', '00,41,4105', '殷都区', '41', '河南省', '4105', '安阳市', '410505', '殷都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410506', '4105', '00,41,4105', '龙安区', '41', '河南省', '4105', '安阳市', '410506', '龙安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410522', '4105', '00,41,4105', '安阳县', '41', '河南省', '4105', '安阳市', '410522', '安阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410523', '4105', '00,41,4105', '汤阴县', '41', '河南省', '4105', '安阳市', '410523', '汤阴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410526', '4105', '00,41,4105', '滑县', '41', '河南省', '4105', '安阳市', '410526', '滑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('360112', '3601', '00,36,3601', '新建区', '36', '江西省', '3601', '南昌市', '360112', '新建区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441426', '4414', '00,44,4414', '平远县', '44', '广东省', '4414', '梅州市', '441426', '平远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331022', '3310', '00,33,3310', '三门县', '33', '浙江省', '3310', '台州市', '331022', '三门县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331023', '3310', '00,33,3310', '天台县', '33', '浙江省', '3310', '台州市', '331023', '天台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331024', '3310', '00,33,3310', '仙居县', '33', '浙江省', '3310', '台州市', '331024', '仙居县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331081', '3310', '00,33,3310', '温岭市', '33', '浙江省', '3310', '台州市', '331081', '温岭市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331082', '3310', '00,33,3310', '临海市', '33', '浙江省', '3310', '台州市', '331082', '临海市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331083', '3310', '00,33,3310', '玉环市', '33', '浙江省', '3310', '台州市', '331083', '玉环市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3311', '33', '00,33', '丽水市', '33', '浙江省', '3311', '丽水市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331102', '3311', '00,33,3311', '莲都区', '33', '浙江省', '3311', '丽水市', '331102', '莲都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331121', '3311', '00,33,3311', '青田县', '33', '浙江省', '3311', '丽水市', '331121', '青田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331122', '3311', '00,33,3311', '缙云县', '33', '浙江省', '3311', '丽水市', '331122', '缙云县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331123', '3311', '00,33,3311', '遂昌县', '33', '浙江省', '3311', '丽水市', '331123', '遂昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331124', '3311', '00,33,3311', '松阳县', '33', '浙江省', '3311', '丽水市', '331124', '松阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331125', '3311', '00,33,3311', '云和县', '33', '浙江省', '3311', '丽水市', '331125', '云和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331126', '3311', '00,33,3311', '庆元县', '33', '浙江省', '3311', '丽水市', '331126', '庆元县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331127', '3311', '00,33,3311', '景宁畲族自治县', '33', '浙江省', '3311', '丽水市', '331127', '景宁畲族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331181', '3311', '00,33,3311', '龙泉市', '33', '浙江省', '3311', '丽水市', '331181', '龙泉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('34', '00', '00', '安徽省', '34', '安徽省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3401', '34', '00,34', '合肥市', '34', '安徽省', '3401', '合肥市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340102', '3401', '00,34,3401', '瑶海区', '34', '安徽省', '3401', '合肥市', '340102', '瑶海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340103', '3401', '00,34,3401', '庐阳区', '34', '安徽省', '3401', '合肥市', '340103', '庐阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340104', '3401', '00,34,3401', '蜀山区', '34', '安徽省', '3401', '合肥市', '340104', '蜀山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340111', '3401', '00,34,3401', '包河区', '34', '安徽省', '3401', '合肥市', '340111', '包河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340121', '3401', '00,34,3401', '长丰县', '34', '安徽省', '3401', '合肥市', '340121', '长丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340122', '3401', '00,34,3401', '肥东县', '34', '安徽省', '3401', '合肥市', '340122', '肥东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340123', '3401', '00,34,3401', '肥西县', '34', '安徽省', '3401', '合肥市', '340123', '肥西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340124', '3401', '00,34,3401', '庐江县', '34', '安徽省', '3401', '合肥市', '340124', '庐江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340181', '3401', '00,34,3401', '巢湖市', '34', '安徽省', '3401', '合肥市', '340181', '巢湖市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3402', '34', '00,34', '芜湖市', '34', '安徽省', '3402', '芜湖市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340202', '3402', '00,34,3402', '镜湖区', '34', '安徽省', '3402', '芜湖市', '340202', '镜湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340203', '3402', '00,34,3402', '弋江区', '34', '安徽省', '3402', '芜湖市', '340203', '弋江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340207', '3402', '00,34,3402', '鸠江区', '34', '安徽省', '3402', '芜湖市', '340207', '鸠江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340208', '3402', '00,34,3402', '三山区', '34', '安徽省', '3402', '芜湖市', '340208', '三山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340221', '3402', '00,34,3402', '芜湖县', '34', '安徽省', '3402', '芜湖市', '340221', '芜湖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340222', '3402', '00,34,3402', '繁昌县', '34', '安徽省', '3402', '芜湖市', '340222', '繁昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340223', '3402', '00,34,3402', '南陵县', '34', '安徽省', '3402', '芜湖市', '340223', '南陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340281', '3402', '00,34,3402', '无为市', '34', '安徽省', '3402', '芜湖市', '340281', '无为市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340302', '3403', '00,34,3403', '龙子湖区', '34', '安徽省', '3403', '蚌埠市', '340302', '龙子湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340303', '3403', '00,34,3403', '蚌山区', '34', '安徽省', '3403', '蚌埠市', '340303', '蚌山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340304', '3403', '00,34,3403', '禹会区', '34', '安徽省', '3403', '蚌埠市', '340304', '禹会区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340311', '3403', '00,34,3403', '淮上区', '34', '安徽省', '3403', '蚌埠市', '340311', '淮上区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340321', '3403', '00,34,3403', '怀远县', '34', '安徽省', '3403', '蚌埠市', '340321', '怀远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340322', '3403', '00,34,3403', '五河县', '34', '安徽省', '3403', '蚌埠市', '340322', '五河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340323', '3403', '00,34,3403', '固镇县', '34', '安徽省', '3403', '蚌埠市', '340323', '固镇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3404', '34', '00,34', '淮南市', '34', '安徽省', '3404', '淮南市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340402', '3404', '00,34,3404', '大通区', '34', '安徽省', '3404', '淮南市', '340402', '大通区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340403', '3404', '00,34,3404', '田家庵区', '34', '安徽省', '3404', '淮南市', '340403', '田家庵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340404', '3404', '00,34,3404', '谢家集区', '34', '安徽省', '3404', '淮南市', '340404', '谢家集区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340405', '3404', '00,34,3404', '八公山区', '34', '安徽省', '3404', '淮南市', '340405', '八公山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340406', '3404', '00,34,3404', '潘集区', '34', '安徽省', '3404', '淮南市', '340406', '潘集区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340421', '3404', '00,34,3404', '凤台县', '34', '安徽省', '3404', '淮南市', '340421', '凤台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340422', '3404', '00,34,3404', '寿县', '34', '安徽省', '3404', '淮南市', '340422', '寿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3405', '34', '00,34', '马鞍山市', '34', '安徽省', '3405', '马鞍山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340503', '3405', '00,34,3405', '花山区', '34', '安徽省', '3405', '马鞍山市', '340503', '花山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340504', '3405', '00,34,3405', '雨山区', '34', '安徽省', '3405', '马鞍山市', '340504', '雨山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340506', '3405', '00,34,3405', '博望区', '34', '安徽省', '3405', '马鞍山市', '340506', '博望区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340521', '3405', '00,34,3405', '当涂县', '34', '安徽省', '3405', '马鞍山市', '340521', '当涂县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340522', '3405', '00,34,3405', '含山县', '34', '安徽省', '3405', '马鞍山市', '340522', '含山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340523', '3405', '00,34,3405', '和县', '34', '安徽省', '3405', '马鞍山市', '340523', '和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3406', '34', '00,34', '淮北市', '34', '安徽省', '3406', '淮北市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340602', '3406', '00,34,3406', '杜集区', '34', '安徽省', '3406', '淮北市', '340602', '杜集区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340603', '3406', '00,34,3406', '相山区', '34', '安徽省', '3406', '淮北市', '340603', '相山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340604', '3406', '00,34,3406', '烈山区', '34', '安徽省', '3406', '淮北市', '340604', '烈山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340621', '3406', '00,34,3406', '濉溪县', '34', '安徽省', '3406', '淮北市', '340621', '濉溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3407', '34', '00,34', '铜陵市', '34', '安徽省', '3407', '铜陵市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340705', '3407', '00,34,3407', '铜官区', '34', '安徽省', '3407', '铜陵市', '340705', '铜官区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340706', '3407', '00,34,3407', '义安区', '34', '安徽省', '3407', '铜陵市', '340706', '义安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340711', '3407', '00,34,3407', '郊区', '34', '安徽省', '3407', '铜陵市', '340711', '郊区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340722', '3407', '00,34,3407', '枞阳县', '34', '安徽省', '3407', '铜陵市', '340722', '枞阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3408', '34', '00,34', '安庆市', '34', '安徽省', '3408', '安庆市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340802', '3408', '00,34,3408', '迎江区', '34', '安徽省', '3408', '安庆市', '340802', '迎江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340803', '3408', '00,34,3408', '大观区', '34', '安徽省', '3408', '安庆市', '340803', '大观区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340811', '3408', '00,34,3408', '宜秀区', '34', '安徽省', '3408', '安庆市', '340811', '宜秀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340822', '3408', '00,34,3408', '怀宁县', '34', '安徽省', '3408', '安庆市', '340822', '怀宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340825', '3408', '00,34,3408', '太湖县', '34', '安徽省', '3408', '安庆市', '340825', '太湖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340826', '3408', '00,34,3408', '宿松县', '34', '安徽省', '3408', '安庆市', '340826', '宿松县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340827', '3408', '00,34,3408', '望江县', '34', '安徽省', '3408', '安庆市', '340827', '望江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340828', '3408', '00,34,3408', '岳西县', '34', '安徽省', '3408', '安庆市', '340828', '岳西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340881', '3408', '00,34,3408', '桐城市', '34', '安徽省', '3408', '安庆市', '340881', '桐城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('340882', '3408', '00,34,3408', '潜山市', '34', '安徽省', '3408', '安庆市', '340882', '潜山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370683', '3706', '00,37,3706', '莱州市', '37', '山东省', '3706', '烟台市', '370683', '莱州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370684', '3706', '00,37,3706', '蓬莱市', '37', '山东省', '3706', '烟台市', '370684', '蓬莱市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370685', '3706', '00,37,3706', '招远市', '37', '山东省', '3706', '烟台市', '370685', '招远市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370686', '3706', '00,37,3706', '栖霞市', '37', '山东省', '3706', '烟台市', '370686', '栖霞市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370687', '3706', '00,37,3706', '海阳市', '37', '山东省', '3706', '烟台市', '370687', '海阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3707', '37', '00,37', '潍坊市', '37', '山东省', '3707', '潍坊市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370702', '3707', '00,37,3707', '潍城区', '37', '山东省', '3707', '潍坊市', '370702', '潍城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370703', '3707', '00,37,3707', '寒亭区', '37', '山东省', '3707', '潍坊市', '370703', '寒亭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370704', '3707', '00,37,3707', '坊子区', '37', '山东省', '3707', '潍坊市', '370704', '坊子区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370705', '3707', '00,37,3707', '奎文区', '37', '山东省', '3707', '潍坊市', '370705', '奎文区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370724', '3707', '00,37,3707', '临朐县', '37', '山东省', '3707', '潍坊市', '370724', '临朐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370725', '3707', '00,37,3707', '昌乐县', '37', '山东省', '3707', '潍坊市', '370725', '昌乐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370781', '3707', '00,37,3707', '青州市', '37', '山东省', '3707', '潍坊市', '370781', '青州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370782', '3707', '00,37,3707', '诸城市', '37', '山东省', '3707', '潍坊市', '370782', '诸城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370783', '3707', '00,37,3707', '寿光市', '37', '山东省', '3707', '潍坊市', '370783', '寿光市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370784', '3707', '00,37,3707', '安丘市', '37', '山东省', '3707', '潍坊市', '370784', '安丘市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370785', '3707', '00,37,3707', '高密市', '37', '山东省', '3707', '潍坊市', '370785', '高密市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370786', '3707', '00,37,3707', '昌邑市', '37', '山东省', '3707', '潍坊市', '370786', '昌邑市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3708', '37', '00,37', '济宁市', '37', '山东省', '3708', '济宁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370811', '3708', '00,37,3708', '任城区', '37', '山东省', '3708', '济宁市', '370811', '任城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370812', '3708', '00,37,3708', '兖州区', '37', '山东省', '3708', '济宁市', '370812', '兖州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370826', '3708', '00,37,3708', '微山县', '37', '山东省', '3708', '济宁市', '370826', '微山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370827', '3708', '00,37,3708', '鱼台县', '37', '山东省', '3708', '济宁市', '370827', '鱼台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370828', '3708', '00,37,3708', '金乡县', '37', '山东省', '3708', '济宁市', '370828', '金乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370829', '3708', '00,37,3708', '嘉祥县', '37', '山东省', '3708', '济宁市', '370829', '嘉祥县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370830', '3708', '00,37,3708', '汶上县', '37', '山东省', '3708', '济宁市', '370830', '汶上县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370831', '3708', '00,37,3708', '泗水县', '37', '山东省', '3708', '济宁市', '370831', '泗水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370832', '3708', '00,37,3708', '梁山县', '37', '山东省', '3708', '济宁市', '370832', '梁山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370881', '3708', '00,37,3708', '曲阜市', '37', '山东省', '3708', '济宁市', '370881', '曲阜市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370883', '3708', '00,37,3708', '邹城市', '37', '山东省', '3708', '济宁市', '370883', '邹城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3709', '37', '00,37', '泰安市', '37', '山东省', '3709', '泰安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370902', '3709', '00,37,3709', '泰山区', '37', '山东省', '3709', '泰安市', '370902', '泰山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370911', '3709', '00,37,3709', '岱岳区', '37', '山东省', '3709', '泰安市', '370911', '岱岳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370921', '3709', '00,37,3709', '宁阳县', '37', '山东省', '3709', '泰安市', '370921', '宁阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370923', '3709', '00,37,3709', '东平县', '37', '山东省', '3709', '泰安市', '370923', '东平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370982', '3709', '00,37,3709', '新泰市', '37', '山东省', '3709', '泰安市', '370982', '新泰市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('370983', '3709', '00,37,3709', '肥城市', '37', '山东省', '3709', '泰安市', '370983', '肥城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3710', '37', '00,37', '威海市', '37', '山东省', '3710', '威海市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371002', '3710', '00,37,3710', '环翠区', '37', '山东省', '3710', '威海市', '371002', '环翠区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371003', '3710', '00,37,3710', '文登区', '37', '山东省', '3710', '威海市', '371003', '文登区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371082', '3710', '00,37,3710', '荣成市', '37', '山东省', '3710', '威海市', '371082', '荣成市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371083', '3710', '00,37,3710', '乳山市', '37', '山东省', '3710', '威海市', '371083', '乳山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3711', '37', '00,37', '日照市', '37', '山东省', '3711', '日照市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371102', '3711', '00,37,3711', '东港区', '37', '山东省', '3711', '日照市', '371102', '东港区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371103', '3711', '00,37,3711', '岚山区', '37', '山东省', '3711', '日照市', '371103', '岚山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371121', '3711', '00,37,3711', '五莲县', '37', '山东省', '3711', '日照市', '371121', '五莲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371122', '3711', '00,37,3711', '莒县', '37', '山东省', '3711', '日照市', '371122', '莒县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3713', '37', '00,37', '临沂市', '37', '山东省', '3713', '临沂市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371302', '3713', '00,37,3713', '兰山区', '37', '山东省', '3713', '临沂市', '371302', '兰山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371311', '3713', '00,37,3713', '罗庄区', '37', '山东省', '3713', '临沂市', '371311', '罗庄区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371312', '3713', '00,37,3713', '河东区', '37', '山东省', '3713', '临沂市', '371312', '河东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371321', '3713', '00,37,3713', '沂南县', '37', '山东省', '3713', '临沂市', '371321', '沂南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371322', '3713', '00,37,3713', '郯城县', '37', '山东省', '3713', '临沂市', '371322', '郯城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371323', '3713', '00,37,3713', '沂水县', '37', '山东省', '3713', '临沂市', '371323', '沂水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371324', '3713', '00,37,3713', '兰陵县', '37', '山东省', '3713', '临沂市', '371324', '兰陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371325', '3713', '00,37,3713', '费县', '37', '山东省', '3713', '临沂市', '371325', '费县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371326', '3713', '00,37,3713', '平邑县', '37', '山东省', '3713', '临沂市', '371326', '平邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371327', '3713', '00,37,3713', '莒南县', '37', '山东省', '3713', '临沂市', '371327', '莒南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371328', '3713', '00,37,3713', '蒙阴县', '37', '山东省', '3713', '临沂市', '371328', '蒙阴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371329', '3713', '00,37,3713', '临沭县', '37', '山东省', '3713', '临沂市', '371329', '临沭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3714', '37', '00,37', '德州市', '37', '山东省', '3714', '德州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371402', '3714', '00,37,3714', '德城区', '37', '山东省', '3714', '德州市', '371402', '德城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371403', '3714', '00,37,3714', '陵城区', '37', '山东省', '3714', '德州市', '371403', '陵城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371422', '3714', '00,37,3714', '宁津县', '37', '山东省', '3714', '德州市', '371422', '宁津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371423', '3714', '00,37,3714', '庆云县', '37', '山东省', '3714', '德州市', '371423', '庆云县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371424', '3714', '00,37,3714', '临邑县', '37', '山东省', '3714', '德州市', '371424', '临邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371425', '3714', '00,37,3714', '齐河县', '37', '山东省', '3714', '德州市', '371425', '齐河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371426', '3714', '00,37,3714', '平原县', '37', '山东省', '3714', '德州市', '371426', '平原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371427', '3714', '00,37,3714', '夏津县', '37', '山东省', '3714', '德州市', '371427', '夏津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371428', '3714', '00,37,3714', '武城县', '37', '山东省', '3714', '德州市', '371428', '武城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371481', '3714', '00,37,3714', '乐陵市', '37', '山东省', '3714', '德州市', '371481', '乐陵市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371482', '3714', '00,37,3714', '禹城市', '37', '山东省', '3714', '德州市', '371482', '禹城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('3715', '37', '00,37', '聊城市', '37', '山东省', '3715', '聊城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371502', '3715', '00,37,3715', '东昌府区', '37', '山东省', '3715', '聊城市', '371502', '东昌府区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371503', '3715', '00,37,3715', '茌平区', '37', '山东省', '3715', '聊城市', '371503', '茌平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371521', '3715', '00,37,3715', '阳谷县', '37', '山东省', '3715', '聊城市', '371521', '阳谷县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371522', '3715', '00,37,3715', '莘县', '37', '山东省', '3715', '聊城市', '371522', '莘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371524', '3715', '00,37,3715', '东阿县', '37', '山东省', '3715', '聊城市', '371524', '东阿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371525', '3715', '00,37,3715', '冠县', '37', '山东省', '3715', '聊城市', '371525', '冠县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440281', '4402', '00,44,4402', '乐昌市', '44', '广东省', '4402', '韶关市', '440281', '乐昌市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410611', '4106', '00,41,4106', '淇滨区', '41', '河南省', '4106', '鹤壁市', '410611', '淇滨区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410621', '4106', '00,41,4106', '浚县', '41', '河南省', '4106', '鹤壁市', '410621', '浚县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410622', '4106', '00,41,4106', '淇县', '41', '河南省', '4106', '鹤壁市', '410622', '淇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4107', '41', '00,41', '新乡市', '41', '河南省', '4107', '新乡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410702', '4107', '00,41,4107', '红旗区', '41', '河南省', '4107', '新乡市', '410702', '红旗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410703', '4107', '00,41,4107', '卫滨区', '41', '河南省', '4107', '新乡市', '410703', '卫滨区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410704', '4107', '00,41,4107', '凤泉区', '41', '河南省', '4107', '新乡市', '410704', '凤泉区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410711', '4107', '00,41,4107', '牧野区', '41', '河南省', '4107', '新乡市', '410711', '牧野区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410721', '4107', '00,41,4107', '新乡县', '41', '河南省', '4107', '新乡市', '410721', '新乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410724', '4107', '00,41,4107', '获嘉县', '41', '河南省', '4107', '新乡市', '410724', '获嘉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410725', '4107', '00,41,4107', '原阳县', '41', '河南省', '4107', '新乡市', '410725', '原阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410726', '4107', '00,41,4107', '延津县', '41', '河南省', '4107', '新乡市', '410726', '延津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410727', '4107', '00,41,4107', '封丘县', '41', '河南省', '4107', '新乡市', '410727', '封丘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410781', '4107', '00,41,4107', '卫辉市', '41', '河南省', '4107', '新乡市', '410781', '卫辉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410782', '4107', '00,41,4107', '辉县市', '41', '河南省', '4107', '新乡市', '410782', '辉县市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410783', '4107', '00,41,4107', '长垣市', '41', '河南省', '4107', '新乡市', '410783', '长垣市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4108', '41', '00,41', '焦作市', '41', '河南省', '4108', '焦作市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410802', '4108', '00,41,4108', '解放区', '41', '河南省', '4108', '焦作市', '410802', '解放区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410803', '4108', '00,41,4108', '中站区', '41', '河南省', '4108', '焦作市', '410803', '中站区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410804', '4108', '00,41,4108', '马村区', '41', '河南省', '4108', '焦作市', '410804', '马村区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410811', '4108', '00,41,4108', '山阳区', '41', '河南省', '4108', '焦作市', '410811', '山阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410821', '4108', '00,41,4108', '修武县', '41', '河南省', '4108', '焦作市', '410821', '修武县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410822', '4108', '00,41,4108', '博爱县', '41', '河南省', '4108', '焦作市', '410822', '博爱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410823', '4108', '00,41,4108', '武陟县', '41', '河南省', '4108', '焦作市', '410823', '武陟县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410825', '4108', '00,41,4108', '温县', '41', '河南省', '4108', '焦作市', '410825', '温县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410882', '4108', '00,41,4108', '沁阳市', '41', '河南省', '4108', '焦作市', '410882', '沁阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410883', '4108', '00,41,4108', '孟州市', '41', '河南省', '4108', '焦作市', '410883', '孟州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4109', '41', '00,41', '濮阳市', '41', '河南省', '4109', '濮阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410902', '4109', '00,41,4109', '华龙区', '41', '河南省', '4109', '濮阳市', '410902', '华龙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410922', '4109', '00,41,4109', '清丰县', '41', '河南省', '4109', '濮阳市', '410922', '清丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410923', '4109', '00,41,4109', '南乐县', '41', '河南省', '4109', '濮阳市', '410923', '南乐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410926', '4109', '00,41,4109', '范县', '41', '河南省', '4109', '濮阳市', '410926', '范县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410927', '4109', '00,41,4109', '台前县', '41', '河南省', '4109', '濮阳市', '410927', '台前县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410928', '4109', '00,41,4109', '濮阳县', '41', '河南省', '4109', '濮阳市', '410928', '濮阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4110', '41', '00,41', '许昌市', '41', '河南省', '4110', '许昌市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411002', '4110', '00,41,4110', '魏都区', '41', '河南省', '4110', '许昌市', '411002', '魏都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411003', '4110', '00,41,4110', '建安区', '41', '河南省', '4110', '许昌市', '411003', '建安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411024', '4110', '00,41,4110', '鄢陵县', '41', '河南省', '4110', '许昌市', '411024', '鄢陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411025', '4110', '00,41,4110', '襄城县', '41', '河南省', '4110', '许昌市', '411025', '襄城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411081', '4110', '00,41,4110', '禹州市', '41', '河南省', '4110', '许昌市', '411081', '禹州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411082', '4110', '00,41,4110', '长葛市', '41', '河南省', '4110', '许昌市', '411082', '长葛市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4111', '41', '00,41', '漯河市', '41', '河南省', '4111', '漯河市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411102', '4111', '00,41,4111', '源汇区', '41', '河南省', '4111', '漯河市', '411102', '源汇区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411103', '4111', '00,41,4111', '郾城区', '41', '河南省', '4111', '漯河市', '411103', '郾城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411104', '4111', '00,41,4111', '召陵区', '41', '河南省', '4111', '漯河市', '411104', '召陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411121', '4111', '00,41,4111', '舞阳县', '41', '河南省', '4111', '漯河市', '411121', '舞阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411122', '4111', '00,41,4111', '临颍县', '41', '河南省', '4111', '漯河市', '411122', '临颍县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4112', '41', '00,41', '三门峡市', '41', '河南省', '4112', '三门峡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411202', '4112', '00,41,4112', '湖滨区', '41', '河南省', '4112', '三门峡市', '411202', '湖滨区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411203', '4112', '00,41,4112', '陕州区', '41', '河南省', '4112', '三门峡市', '411203', '陕州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411221', '4112', '00,41,4112', '渑池县', '41', '河南省', '4112', '三门峡市', '411221', '渑池县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411224', '4112', '00,41,4112', '卢氏县', '41', '河南省', '4112', '三门峡市', '411224', '卢氏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411281', '4112', '00,41,4112', '义马市', '41', '河南省', '4112', '三门峡市', '411281', '义马市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411282', '4112', '00,41,4112', '灵宝市', '41', '河南省', '4112', '三门峡市', '411282', '灵宝市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4113', '41', '00,41', '南阳市', '41', '河南省', '4113', '南阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411302', '4113', '00,41,4113', '宛城区', '41', '河南省', '4113', '南阳市', '411302', '宛城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411303', '4113', '00,41,4113', '卧龙区', '41', '河南省', '4113', '南阳市', '411303', '卧龙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411321', '4113', '00,41,4113', '南召县', '41', '河南省', '4113', '南阳市', '411321', '南召县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411322', '4113', '00,41,4113', '方城县', '41', '河南省', '4113', '南阳市', '411322', '方城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411323', '4113', '00,41,4113', '西峡县', '41', '河南省', '4113', '南阳市', '411323', '西峡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411324', '4113', '00,41,4113', '镇平县', '41', '河南省', '4113', '南阳市', '411324', '镇平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411325', '4113', '00,41,4113', '内乡县', '41', '河南省', '4113', '南阳市', '411325', '内乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411326', '4113', '00,41,4113', '淅川县', '41', '河南省', '4113', '南阳市', '411326', '淅川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411327', '4113', '00,41,4113', '社旗县', '41', '河南省', '4113', '南阳市', '411327', '社旗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411328', '4113', '00,41,4113', '唐河县', '41', '河南省', '4113', '南阳市', '411328', '唐河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411329', '4113', '00,41,4113', '新野县', '41', '河南省', '4113', '南阳市', '411329', '新野县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411330', '4113', '00,41,4113', '桐柏县', '41', '河南省', '4113', '南阳市', '411330', '桐柏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411381', '4113', '00,41,4113', '邓州市', '41', '河南省', '4113', '南阳市', '411381', '邓州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4114', '41', '00,41', '商丘市', '41', '河南省', '4114', '商丘市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411402', '4114', '00,41,4114', '梁园区', '41', '河南省', '4114', '商丘市', '411402', '梁园区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411403', '4114', '00,41,4114', '睢阳区', '41', '河南省', '4114', '商丘市', '411403', '睢阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411421', '4114', '00,41,4114', '民权县', '41', '河南省', '4114', '商丘市', '411421', '民权县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411422', '4114', '00,41,4114', '睢县', '41', '河南省', '4114', '商丘市', '411422', '睢县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411423', '4114', '00,41,4114', '宁陵县', '41', '河南省', '4114', '商丘市', '411423', '宁陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411424', '4114', '00,41,4114', '柘城县', '41', '河南省', '4114', '商丘市', '411424', '柘城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522327', '5223', '00,52,5223', '册亨县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522327', '册亨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450305', '4503', '00,45,4503', '七星区', '45', '广西壮族自治区', '4503', '桂林市', '450305', '七星区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450311', '4503', '00,45,4503', '雁山区', '45', '广西壮族自治区', '4503', '桂林市', '450311', '雁山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331003', '3310', '00,33,3310', '黄岩区', '33', '浙江省', '3310', '台州市', '331003', '黄岩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('331004', '3310', '00,33,3310', '路桥区', '33', '浙江省', '3310', '台州市', '331004', '路桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441481', '4414', '00,44,4414', '兴宁市', '44', '广东省', '4414', '梅州市', '441481', '兴宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441502', '4415', '00,44,4415', '城区', '44', '广东省', '4415', '汕尾市', '441502', '城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441521', '4415', '00,44,4415', '海丰县', '44', '广东省', '4415', '汕尾市', '441521', '海丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441523', '4415', '00,44,4415', '陆河县', '44', '广东省', '4415', '汕尾市', '441523', '陆河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441581', '4415', '00,44,4415', '陆丰市', '44', '广东省', '4415', '汕尾市', '441581', '陆丰市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4416', '44', '00,44', '河源市', '44', '广东省', '4416', '河源市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441602', '4416', '00,44,4416', '源城区', '44', '广东省', '4416', '河源市', '441602', '源城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441621', '4416', '00,44,4416', '紫金县', '44', '广东省', '4416', '河源市', '441621', '紫金县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441622', '4416', '00,44,4416', '龙川县', '44', '广东省', '4416', '河源市', '441622', '龙川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441623', '4416', '00,44,4416', '连平县', '44', '广东省', '4416', '河源市', '441623', '连平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441624', '4416', '00,44,4416', '和平县', '44', '广东省', '4416', '河源市', '441624', '和平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441625', '4416', '00,44,4416', '东源县', '44', '广东省', '4416', '河源市', '441625', '东源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4417', '44', '00,44', '阳江市', '44', '广东省', '4417', '阳江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441702', '4417', '00,44,4417', '江城区', '44', '广东省', '4417', '阳江市', '441702', '江城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441704', '4417', '00,44,4417', '阳东区', '44', '广东省', '4417', '阳江市', '441704', '阳东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441721', '4417', '00,44,4417', '阳西县', '44', '广东省', '4417', '阳江市', '441721', '阳西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441781', '4417', '00,44,4417', '阳春市', '44', '广东省', '4417', '阳江市', '441781', '阳春市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4418', '44', '00,44', '清远市', '44', '广东省', '4418', '清远市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441802', '4418', '00,44,4418', '清城区', '44', '广东省', '4418', '清远市', '441802', '清城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441803', '4418', '00,44,4418', '清新区', '44', '广东省', '4418', '清远市', '441803', '清新区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441821', '4418', '00,44,4418', '佛冈县', '44', '广东省', '4418', '清远市', '441821', '佛冈县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441823', '4418', '00,44,4418', '阳山县', '44', '广东省', '4418', '清远市', '441823', '阳山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441825', '4418', '00,44,4418', '连山壮族瑶族自治县', '44', '广东省', '4418', '清远市', '441825', '连山壮族瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441826', '4418', '00,44,4418', '连南瑶族自治县', '44', '广东省', '4418', '清远市', '441826', '连南瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441881', '4418', '00,44,4418', '英德市', '44', '广东省', '4418', '清远市', '441881', '英德市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441882', '4418', '00,44,4418', '连州市', '44', '广东省', '4418', '清远市', '441882', '连州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4419', '44', '00,44', '东莞市', '44', '广东省', '4419', '东莞市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441900', '4419', '00,44,4419', '东莞市', '44', '广东省', '4419', '东莞市', '441900', '东莞市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4420', '44', '00,44', '中山市', '44', '广东省', '4420', '中山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('442000', '4420', '00,44,4420', '中山市', '44', '广东省', '4420', '中山市', '442000', '中山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4451', '44', '00,44', '潮州市', '44', '广东省', '4451', '潮州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445102', '4451', '00,44,4451', '湘桥区', '44', '广东省', '4451', '潮州市', '445102', '湘桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445103', '4451', '00,44,4451', '潮安区', '44', '广东省', '4451', '潮州市', '445103', '潮安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445122', '4451', '00,44,4451', '饶平县', '44', '广东省', '4451', '潮州市', '445122', '饶平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4452', '44', '00,44', '揭阳市', '44', '广东省', '4452', '揭阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445202', '4452', '00,44,4452', '榕城区', '44', '广东省', '4452', '揭阳市', '445202', '榕城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445203', '4452', '00,44,4452', '揭东区', '44', '广东省', '4452', '揭阳市', '445203', '揭东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445222', '4452', '00,44,4452', '揭西县', '44', '广东省', '4452', '揭阳市', '445222', '揭西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445224', '4452', '00,44,4452', '惠来县', '44', '广东省', '4452', '揭阳市', '445224', '惠来县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445281', '4452', '00,44,4452', '普宁市', '44', '广东省', '4452', '揭阳市', '445281', '普宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4453', '44', '00,44', '云浮市', '44', '广东省', '4453', '云浮市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445302', '4453', '00,44,4453', '云城区', '44', '广东省', '4453', '云浮市', '445302', '云城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445303', '4453', '00,44,4453', '云安区', '44', '广东省', '4453', '云浮市', '445303', '云安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445321', '4453', '00,44,4453', '新兴县', '44', '广东省', '4453', '云浮市', '445321', '新兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445322', '4453', '00,44,4453', '郁南县', '44', '广东省', '4453', '云浮市', '445322', '郁南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('445381', '4453', '00,44,4453', '罗定市', '44', '广东省', '4453', '云浮市', '445381', '罗定市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('45', '00', '00', '广西壮族自治区', '45', '广西壮族自治区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4501', '45', '00,45', '南宁市', '45', '广西壮族自治区', '4501', '南宁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450102', '4501', '00,45,4501', '兴宁区', '45', '广西壮族自治区', '4501', '南宁市', '450102', '兴宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450103', '4501', '00,45,4501', '青秀区', '45', '广西壮族自治区', '4501', '南宁市', '450103', '青秀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450105', '4501', '00,45,4501', '江南区', '45', '广西壮族自治区', '4501', '南宁市', '450105', '江南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450107', '4501', '00,45,4501', '西乡塘区', '45', '广西壮族自治区', '4501', '南宁市', '450107', '西乡塘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450108', '4501', '00,45,4501', '良庆区', '45', '广西壮族自治区', '4501', '南宁市', '450108', '良庆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450109', '4501', '00,45,4501', '邕宁区', '45', '广西壮族自治区', '4501', '南宁市', '450109', '邕宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450110', '4501', '00,45,4501', '武鸣区', '45', '广西壮族自治区', '4501', '南宁市', '450110', '武鸣区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450123', '4501', '00,45,4501', '隆安县', '45', '广西壮族自治区', '4501', '南宁市', '450123', '隆安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450124', '4501', '00,45,4501', '马山县', '45', '广西壮族自治区', '4501', '南宁市', '450124', '马山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450125', '4501', '00,45,4501', '上林县', '45', '广西壮族自治区', '4501', '南宁市', '450125', '上林县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450126', '4501', '00,45,4501', '宾阳县', '45', '广西壮族自治区', '4501', '南宁市', '450126', '宾阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450127', '4501', '00,45,4501', '横县', '45', '广西壮族自治区', '4501', '南宁市', '450127', '横县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4502', '45', '00,45', '柳州市', '45', '广西壮族自治区', '4502', '柳州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450202', '4502', '00,45,4502', '城中区', '45', '广西壮族自治区', '4502', '柳州市', '450202', '城中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450203', '4502', '00,45,4502', '鱼峰区', '45', '广西壮族自治区', '4502', '柳州市', '450203', '鱼峰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450204', '4502', '00,45,4502', '柳南区', '45', '广西壮族自治区', '4502', '柳州市', '450204', '柳南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450205', '4502', '00,45,4502', '柳北区', '45', '广西壮族自治区', '4502', '柳州市', '450205', '柳北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450206', '4502', '00,45,4502', '柳江区', '45', '广西壮族自治区', '4502', '柳州市', '450206', '柳江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450222', '4502', '00,45,4502', '柳城县', '45', '广西壮族自治区', '4502', '柳州市', '450222', '柳城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450223', '4502', '00,45,4502', '鹿寨县', '45', '广西壮族自治区', '4502', '柳州市', '450223', '鹿寨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450224', '4502', '00,45,4502', '融安县', '45', '广西壮族自治区', '4502', '柳州市', '450224', '融安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450225', '4502', '00,45,4502', '融水苗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450225', '融水苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450226', '4502', '00,45,4502', '三江侗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450226', '三江侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4503', '45', '00,45', '桂林市', '45', '广西壮族自治区', '4503', '桂林市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450302', '4503', '00,45,4503', '秀峰区', '45', '广西壮族自治区', '4503', '桂林市', '450302', '秀峰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450303', '4503', '00,45,4503', '叠彩区', '45', '广西壮族自治区', '4503', '桂林市', '450303', '叠彩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4206', '42', '00,42', '襄阳市', '42', '湖北省', '4206', '襄阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420602', '4206', '00,42,4206', '襄城区', '42', '湖北省', '4206', '襄阳市', '420602', '襄城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420606', '4206', '00,42,4206', '樊城区', '42', '湖北省', '4206', '襄阳市', '420606', '樊城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420607', '4206', '00,42,4206', '襄州区', '42', '湖北省', '4206', '襄阳市', '420607', '襄州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420624', '4206', '00,42,4206', '南漳县', '42', '湖北省', '4206', '襄阳市', '420624', '南漳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420625', '4206', '00,42,4206', '谷城县', '42', '湖北省', '4206', '襄阳市', '420625', '谷城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420626', '4206', '00,42,4206', '保康县', '42', '湖北省', '4206', '襄阳市', '420626', '保康县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420682', '4206', '00,42,4206', '老河口市', '42', '湖北省', '4206', '襄阳市', '420682', '老河口市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420683', '4206', '00,42,4206', '枣阳市', '42', '湖北省', '4206', '襄阳市', '420683', '枣阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420684', '4206', '00,42,4206', '宜城市', '42', '湖北省', '4206', '襄阳市', '420684', '宜城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4207', '42', '00,42', '鄂州市', '42', '湖北省', '4207', '鄂州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420702', '4207', '00,42,4207', '梁子湖区', '42', '湖北省', '4207', '鄂州市', '420702', '梁子湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420703', '4207', '00,42,4207', '华容区', '42', '湖北省', '4207', '鄂州市', '420703', '华容区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420704', '4207', '00,42,4207', '鄂城区', '42', '湖北省', '4207', '鄂州市', '420704', '鄂城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4208', '42', '00,42', '荆门市', '42', '湖北省', '4208', '荆门市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420802', '4208', '00,42,4208', '东宝区', '42', '湖北省', '4208', '荆门市', '420802', '东宝区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420804', '4208', '00,42,4208', '掇刀区', '42', '湖北省', '4208', '荆门市', '420804', '掇刀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420822', '4208', '00,42,4208', '沙洋县', '42', '湖北省', '4208', '荆门市', '420822', '沙洋县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420881', '4208', '00,42,4208', '钟祥市', '42', '湖北省', '4208', '荆门市', '420881', '钟祥市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420882', '4208', '00,42,4208', '京山市', '42', '湖北省', '4208', '荆门市', '420882', '京山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4209', '42', '00,42', '孝感市', '42', '湖北省', '4209', '孝感市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420902', '4209', '00,42,4209', '孝南区', '42', '湖北省', '4209', '孝感市', '420902', '孝南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420921', '4209', '00,42,4209', '孝昌县', '42', '湖北省', '4209', '孝感市', '420921', '孝昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420922', '4209', '00,42,4209', '大悟县', '42', '湖北省', '4209', '孝感市', '420922', '大悟县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420923', '4209', '00,42,4209', '云梦县', '42', '湖北省', '4209', '孝感市', '420923', '云梦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420981', '4209', '00,42,4209', '应城市', '42', '湖北省', '4209', '孝感市', '420981', '应城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420982', '4209', '00,42,4209', '安陆市', '42', '湖北省', '4209', '孝感市', '420982', '安陆市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420984', '4209', '00,42,4209', '汉川市', '42', '湖北省', '4209', '孝感市', '420984', '汉川市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4210', '42', '00,42', '荆州市', '42', '湖北省', '4210', '荆州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421002', '4210', '00,42,4210', '沙市区', '42', '湖北省', '4210', '荆州市', '421002', '沙市区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421003', '4210', '00,42,4210', '荆州区', '42', '湖北省', '4210', '荆州市', '421003', '荆州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421022', '4210', '00,42,4210', '公安县', '42', '湖北省', '4210', '荆州市', '421022', '公安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421023', '4210', '00,42,4210', '监利县', '42', '湖北省', '4210', '荆州市', '421023', '监利县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421024', '4210', '00,42,4210', '江陵县', '42', '湖北省', '4210', '荆州市', '421024', '江陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421081', '4210', '00,42,4210', '石首市', '42', '湖北省', '4210', '荆州市', '421081', '石首市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421083', '4210', '00,42,4210', '洪湖市', '42', '湖北省', '4210', '荆州市', '421083', '洪湖市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421087', '4210', '00,42,4210', '松滋市', '42', '湖北省', '4210', '荆州市', '421087', '松滋市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4211', '42', '00,42', '黄冈市', '42', '湖北省', '4211', '黄冈市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421102', '4211', '00,42,4211', '黄州区', '42', '湖北省', '4211', '黄冈市', '421102', '黄州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421121', '4211', '00,42,4211', '团风县', '42', '湖北省', '4211', '黄冈市', '421121', '团风县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421122', '4211', '00,42,4211', '红安县', '42', '湖北省', '4211', '黄冈市', '421122', '红安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421123', '4211', '00,42,4211', '罗田县', '42', '湖北省', '4211', '黄冈市', '421123', '罗田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421124', '4211', '00,42,4211', '英山县', '42', '湖北省', '4211', '黄冈市', '421124', '英山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421125', '4211', '00,42,4211', '浠水县', '42', '湖北省', '4211', '黄冈市', '421125', '浠水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421126', '4211', '00,42,4211', '蕲春县', '42', '湖北省', '4211', '黄冈市', '421126', '蕲春县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421127', '4211', '00,42,4211', '黄梅县', '42', '湖北省', '4211', '黄冈市', '421127', '黄梅县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421181', '4211', '00,42,4211', '麻城市', '42', '湖北省', '4211', '黄冈市', '421181', '麻城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421182', '4211', '00,42,4211', '武穴市', '42', '湖北省', '4211', '黄冈市', '421182', '武穴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4212', '42', '00,42', '咸宁市', '42', '湖北省', '4212', '咸宁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421202', '4212', '00,42,4212', '咸安区', '42', '湖北省', '4212', '咸宁市', '421202', '咸安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421221', '4212', '00,42,4212', '嘉鱼县', '42', '湖北省', '4212', '咸宁市', '421221', '嘉鱼县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421222', '4212', '00,42,4212', '通城县', '42', '湖北省', '4212', '咸宁市', '421222', '通城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421223', '4212', '00,42,4212', '崇阳县', '42', '湖北省', '4212', '咸宁市', '421223', '崇阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421224', '4212', '00,42,4212', '通山县', '42', '湖北省', '4212', '咸宁市', '421224', '通山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421281', '4212', '00,42,4212', '赤壁市', '42', '湖北省', '4212', '咸宁市', '421281', '赤壁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4213', '42', '00,42', '随州市', '42', '湖北省', '4213', '随州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421303', '4213', '00,42,4213', '曾都区', '42', '湖北省', '4213', '随州市', '421303', '曾都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421321', '4213', '00,42,4213', '随县', '42', '湖北省', '4213', '随州市', '421321', '随县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('421381', '4213', '00,42,4213', '广水市', '42', '湖北省', '4213', '随州市', '421381', '广水市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4228', '42', '00,42', '恩施土家族苗族自治州', '42', '湖北省', '4228', '恩施土家族苗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422801', '4228', '00,42,4228', '恩施市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422801', '恩施市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422802', '4228', '00,42,4228', '利川市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422802', '利川市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422822', '4228', '00,42,4228', '建始县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422822', '建始县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422823', '4228', '00,42,4228', '巴东县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422823', '巴东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422825', '4228', '00,42,4228', '宣恩县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422825', '宣恩县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422826', '4228', '00,42,4228', '咸丰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422826', '咸丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422827', '4228', '00,42,4228', '来凤县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422827', '来凤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('422828', '4228', '00,42,4228', '鹤峰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422828', '鹤峰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4290', '42', '00,42', '省直辖县级行政区', '42', '湖北省', '4290', '省直辖县级行政区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('429004', '4290', '00,42,4290', '仙桃市', '42', '湖北省', '4290', '省直辖县级行政区', '429004', '仙桃市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('429005', '4290', '00,42,4290', '潜江市', '42', '湖北省', '4290', '省直辖县级行政区', '429005', '潜江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('429006', '4290', '00,42,4290', '天门市', '42', '湖北省', '4290', '省直辖县级行政区', '429006', '天门市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('429021', '4290', '00,42,4290', '神农架林区', '42', '湖北省', '4290', '省直辖县级行政区', '429021', '神农架林区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('43', '00', '00', '湖南省', '43', '湖南省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4301', '43', '00,43', '长沙市', '43', '湖南省', '4301', '长沙市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430102', '4301', '00,43,4301', '芙蓉区', '43', '湖南省', '4301', '长沙市', '430102', '芙蓉区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430922', '4309', '00,43,4309', '桃江县', '43', '湖南省', '4309', '益阳市', '430922', '桃江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('371526', '3715', '00,37,3715', '高唐县', '37', '山东省', '3715', '聊城市', '371526', '高唐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430921', '4309', '00,43,4309', '南县', '43', '湖南省', '4309', '益阳市', '430921', '南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450312', '4503', '00,45,4503', '临桂区', '45', '广西壮族自治区', '4503', '桂林市', '450312', '临桂区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450321', '4503', '00,45,4503', '阳朔县', '45', '广西壮族自治区', '4503', '桂林市', '450321', '阳朔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450323', '4503', '00,45,4503', '灵川县', '45', '广西壮族自治区', '4503', '桂林市', '450323', '灵川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450324', '4503', '00,45,4503', '全州县', '45', '广西壮族自治区', '4503', '桂林市', '450324', '全州县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450325', '4503', '00,45,4503', '兴安县', '45', '广西壮族自治区', '4503', '桂林市', '450325', '兴安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450326', '4503', '00,45,4503', '永福县', '45', '广西壮族自治区', '4503', '桂林市', '450326', '永福县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450327', '4503', '00,45,4503', '灌阳县', '45', '广西壮族自治区', '4503', '桂林市', '450327', '灌阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450328', '4503', '00,45,4503', '龙胜各族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450328', '龙胜各族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450329', '4503', '00,45,4503', '资源县', '45', '广西壮族自治区', '4503', '桂林市', '450329', '资源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450330', '4503', '00,45,4503', '平乐县', '45', '广西壮族自治区', '4503', '桂林市', '450330', '平乐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450332', '4503', '00,45,4503', '恭城瑶族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450332', '恭城瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450381', '4503', '00,45,4503', '荔浦市', '45', '广西壮族自治区', '4503', '桂林市', '450381', '荔浦市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4504', '45', '00,45', '梧州市', '45', '广西壮族自治区', '4504', '梧州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450403', '4504', '00,45,4504', '万秀区', '45', '广西壮族自治区', '4504', '梧州市', '450403', '万秀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450405', '4504', '00,45,4504', '长洲区', '45', '广西壮族自治区', '4504', '梧州市', '450405', '长洲区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450406', '4504', '00,45,4504', '龙圩区', '45', '广西壮族自治区', '4504', '梧州市', '450406', '龙圩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450421', '4504', '00,45,4504', '苍梧县', '45', '广西壮族自治区', '4504', '梧州市', '450421', '苍梧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450422', '4504', '00,45,4504', '藤县', '45', '广西壮族自治区', '4504', '梧州市', '450422', '藤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450423', '4504', '00,45,4504', '蒙山县', '45', '广西壮族自治区', '4504', '梧州市', '450423', '蒙山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450481', '4504', '00,45,4504', '岑溪市', '45', '广西壮族自治区', '4504', '梧州市', '450481', '岑溪市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4505', '45', '00,45', '北海市', '45', '广西壮族自治区', '4505', '北海市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450502', '4505', '00,45,4505', '海城区', '45', '广西壮族自治区', '4505', '北海市', '450502', '海城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450503', '4505', '00,45,4505', '银海区', '45', '广西壮族自治区', '4505', '北海市', '450503', '银海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450512', '4505', '00,45,4505', '铁山港区', '45', '广西壮族自治区', '4505', '北海市', '450512', '铁山港区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450521', '4505', '00,45,4505', '合浦县', '45', '广西壮族自治区', '4505', '北海市', '450521', '合浦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4506', '45', '00,45', '防城港市', '45', '广西壮族自治区', '4506', '防城港市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450602', '4506', '00,45,4506', '港口区', '45', '广西壮族自治区', '4506', '防城港市', '450602', '港口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450603', '4506', '00,45,4506', '防城区', '45', '广西壮族自治区', '4506', '防城港市', '450603', '防城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450621', '4506', '00,45,4506', '上思县', '45', '广西壮族自治区', '4506', '防城港市', '450621', '上思县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450681', '4506', '00,45,4506', '东兴市', '45', '广西壮族自治区', '4506', '防城港市', '450681', '东兴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4507', '45', '00,45', '钦州市', '45', '广西壮族自治区', '4507', '钦州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450702', '4507', '00,45,4507', '钦南区', '45', '广西壮族自治区', '4507', '钦州市', '450702', '钦南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450703', '4507', '00,45,4507', '钦北区', '45', '广西壮族自治区', '4507', '钦州市', '450703', '钦北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450721', '4507', '00,45,4507', '灵山县', '45', '广西壮族自治区', '4507', '钦州市', '450721', '灵山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450722', '4507', '00,45,4507', '浦北县', '45', '广西壮族自治区', '4507', '钦州市', '450722', '浦北县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4508', '45', '00,45', '贵港市', '45', '广西壮族自治区', '4508', '贵港市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450802', '4508', '00,45,4508', '港北区', '45', '广西壮族自治区', '4508', '贵港市', '450802', '港北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450803', '4508', '00,45,4508', '港南区', '45', '广西壮族自治区', '4508', '贵港市', '450803', '港南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450804', '4508', '00,45,4508', '覃塘区', '45', '广西壮族自治区', '4508', '贵港市', '450804', '覃塘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450821', '4508', '00,45,4508', '平南县', '45', '广西壮族自治区', '4508', '贵港市', '450821', '平南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450881', '4508', '00,45,4508', '桂平市', '45', '广西壮族自治区', '4508', '贵港市', '450881', '桂平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4509', '45', '00,45', '玉林市', '45', '广西壮族自治区', '4509', '玉林市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450902', '4509', '00,45,4509', '玉州区', '45', '广西壮族自治区', '4509', '玉林市', '450902', '玉州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450903', '4509', '00,45,4509', '福绵区', '45', '广西壮族自治区', '4509', '玉林市', '450903', '福绵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450921', '4509', '00,45,4509', '容县', '45', '广西壮族自治区', '4509', '玉林市', '450921', '容县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450922', '4509', '00,45,4509', '陆川县', '45', '广西壮族自治区', '4509', '玉林市', '450922', '陆川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450923', '4509', '00,45,4509', '博白县', '45', '广西壮族自治区', '4509', '玉林市', '450923', '博白县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460300', '4603', '00,46,4603', '三沙市', '46', '海南省', '4603', '三沙市', '460300', '三沙市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450924', '4509', '00,45,4509', '兴业县', '45', '广西壮族自治区', '4509', '玉林市', '450924', '兴业县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450981', '4509', '00,45,4509', '北流市', '45', '广西壮族自治区', '4509', '玉林市', '450981', '北流市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4510', '45', '00,45', '百色市', '45', '广西壮族自治区', '4510', '百色市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451002', '4510', '00,45,4510', '右江区', '45', '广西壮族自治区', '4510', '百色市', '451002', '右江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451003', '4510', '00,45,4510', '田阳区', '45', '广西壮族自治区', '4510', '百色市', '451003', '田阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451022', '4510', '00,45,4510', '田东县', '45', '广西壮族自治区', '4510', '百色市', '451022', '田东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451024', '4510', '00,45,4510', '德保县', '45', '广西壮族自治区', '4510', '百色市', '451024', '德保县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451026', '4510', '00,45,4510', '那坡县', '45', '广西壮族自治区', '4510', '百色市', '451026', '那坡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451027', '4510', '00,45,4510', '凌云县', '45', '广西壮族自治区', '4510', '百色市', '451027', '凌云县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451028', '4510', '00,45,4510', '乐业县', '45', '广西壮族自治区', '4510', '百色市', '451028', '乐业县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451029', '4510', '00,45,4510', '田林县', '45', '广西壮族自治区', '4510', '百色市', '451029', '田林县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451030', '4510', '00,45,4510', '西林县', '45', '广西壮族自治区', '4510', '百色市', '451030', '西林县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451031', '4510', '00,45,4510', '隆林各族自治县', '45', '广西壮族自治区', '4510', '百色市', '451031', '隆林各族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451081', '4510', '00,45,4510', '靖西市', '45', '广西壮族自治区', '4510', '百色市', '451081', '靖西市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451082', '4510', '00,45,4510', '平果市', '45', '广西壮族自治区', '4510', '百色市', '451082', '平果市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4511', '45', '00,45', '贺州市', '45', '广西壮族自治区', '4511', '贺州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451102', '4511', '00,45,4511', '八步区', '45', '广西壮族自治区', '4511', '贺州市', '451102', '八步区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451103', '4511', '00,45,4511', '平桂区', '45', '广西壮族自治区', '4511', '贺州市', '451103', '平桂区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420529', '4205', '00,42,4205', '五峰土家族自治县', '42', '湖北省', '4205', '宜昌市', '420529', '五峰土家族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420581', '4205', '00,42,4205', '宜都市', '42', '湖北省', '4205', '宜昌市', '420581', '宜都市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420582', '4205', '00,42,4205', '当阳市', '42', '湖北省', '4205', '宜昌市', '420582', '当阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420583', '4205', '00,42,4205', '枝江市', '42', '湖北省', '4205', '宜昌市', '420583', '枝江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430981', '4309', '00,43,4309', '沅江市', '43', '湖南省', '4309', '益阳市', '430981', '沅江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4310', '43', '00,43', '郴州市', '43', '湖南省', '4310', '郴州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431002', '4310', '00,43,4310', '北湖区', '43', '湖南省', '4310', '郴州市', '431002', '北湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431003', '4310', '00,43,4310', '苏仙区', '43', '湖南省', '4310', '郴州市', '431003', '苏仙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431021', '4310', '00,43,4310', '桂阳县', '43', '湖南省', '4310', '郴州市', '431021', '桂阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431022', '4310', '00,43,4310', '宜章县', '43', '湖南省', '4310', '郴州市', '431022', '宜章县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431023', '4310', '00,43,4310', '永兴县', '43', '湖南省', '4310', '郴州市', '431023', '永兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431024', '4310', '00,43,4310', '嘉禾县', '43', '湖南省', '4310', '郴州市', '431024', '嘉禾县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431025', '4310', '00,43,4310', '临武县', '43', '湖南省', '4310', '郴州市', '431025', '临武县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431026', '4310', '00,43,4310', '汝城县', '43', '湖南省', '4310', '郴州市', '431026', '汝城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431027', '4310', '00,43,4310', '桂东县', '43', '湖南省', '4310', '郴州市', '431027', '桂东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431028', '4310', '00,43,4310', '安仁县', '43', '湖南省', '4310', '郴州市', '431028', '安仁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431081', '4310', '00,43,4310', '资兴市', '43', '湖南省', '4310', '郴州市', '431081', '资兴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4311', '43', '00,43', '永州市', '43', '湖南省', '4311', '永州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431102', '4311', '00,43,4311', '零陵区', '43', '湖南省', '4311', '永州市', '431102', '零陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431103', '4311', '00,43,4311', '冷水滩区', '43', '湖南省', '4311', '永州市', '431103', '冷水滩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431121', '4311', '00,43,4311', '祁阳县', '43', '湖南省', '4311', '永州市', '431121', '祁阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431122', '4311', '00,43,4311', '东安县', '43', '湖南省', '4311', '永州市', '431122', '东安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431123', '4311', '00,43,4311', '双牌县', '43', '湖南省', '4311', '永州市', '431123', '双牌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431124', '4311', '00,43,4311', '道县', '43', '湖南省', '4311', '永州市', '431124', '道县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431125', '4311', '00,43,4311', '江永县', '43', '湖南省', '4311', '永州市', '431125', '江永县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431126', '4311', '00,43,4311', '宁远县', '43', '湖南省', '4311', '永州市', '431126', '宁远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431127', '4311', '00,43,4311', '蓝山县', '43', '湖南省', '4311', '永州市', '431127', '蓝山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431128', '4311', '00,43,4311', '新田县', '43', '湖南省', '4311', '永州市', '431128', '新田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431129', '4311', '00,43,4311', '江华瑶族自治县', '43', '湖南省', '4311', '永州市', '431129', '江华瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4312', '43', '00,43', '怀化市', '43', '湖南省', '4312', '怀化市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431202', '4312', '00,43,4312', '鹤城区', '43', '湖南省', '4312', '怀化市', '431202', '鹤城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431221', '4312', '00,43,4312', '中方县', '43', '湖南省', '4312', '怀化市', '431221', '中方县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431222', '4312', '00,43,4312', '沅陵县', '43', '湖南省', '4312', '怀化市', '431222', '沅陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431223', '4312', '00,43,4312', '辰溪县', '43', '湖南省', '4312', '怀化市', '431223', '辰溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431224', '4312', '00,43,4312', '溆浦县', '43', '湖南省', '4312', '怀化市', '431224', '溆浦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431225', '4312', '00,43,4312', '会同县', '43', '湖南省', '4312', '怀化市', '431225', '会同县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431226', '4312', '00,43,4312', '麻阳苗族自治县', '43', '湖南省', '4312', '怀化市', '431226', '麻阳苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431227', '4312', '00,43,4312', '新晃侗族自治县', '43', '湖南省', '4312', '怀化市', '431227', '新晃侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431228', '4312', '00,43,4312', '芷江侗族自治县', '43', '湖南省', '4312', '怀化市', '431228', '芷江侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431229', '4312', '00,43,4312', '靖州苗族侗族自治县', '43', '湖南省', '4312', '怀化市', '431229', '靖州苗族侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431230', '4312', '00,43,4312', '通道侗族自治县', '43', '湖南省', '4312', '怀化市', '431230', '通道侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431281', '4312', '00,43,4312', '洪江市', '43', '湖南省', '4312', '怀化市', '431281', '洪江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4313', '43', '00,43', '娄底市', '43', '湖南省', '4313', '娄底市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431302', '4313', '00,43,4313', '娄星区', '43', '湖南省', '4313', '娄底市', '431302', '娄星区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431321', '4313', '00,43,4313', '双峰县', '43', '湖南省', '4313', '娄底市', '431321', '双峰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431322', '4313', '00,43,4313', '新化县', '43', '湖南省', '4313', '娄底市', '431322', '新化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431381', '4313', '00,43,4313', '冷水江市', '43', '湖南省', '4313', '娄底市', '431381', '冷水江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('431382', '4313', '00,43,4313', '涟源市', '43', '湖南省', '4313', '娄底市', '431382', '涟源市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4331', '43', '00,43', '湘西土家族苗族自治州', '43', '湖南省', '4331', '湘西土家族苗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433101', '4331', '00,43,4331', '吉首市', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433101', '吉首市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433122', '4331', '00,43,4331', '泸溪县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433122', '泸溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433123', '4331', '00,43,4331', '凤凰县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433123', '凤凰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433124', '4331', '00,43,4331', '花垣县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433124', '花垣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433125', '4331', '00,43,4331', '保靖县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433125', '保靖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433126', '4331', '00,43,4331', '古丈县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433126', '古丈县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433127', '4331', '00,43,4331', '永顺县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433127', '永顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('433130', '4331', '00,43,4331', '龙山县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433130', '龙山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('44', '00', '00', '广东省', '44', '广东省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4401', '44', '00,44', '广州市', '44', '广东省', '4401', '广州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440103', '4401', '00,44,4401', '荔湾区', '44', '广东省', '4401', '广州市', '440103', '荔湾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440104', '4401', '00,44,4401', '越秀区', '44', '广东省', '4401', '广州市', '440104', '越秀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440105', '4401', '00,44,4401', '海珠区', '44', '广东省', '4401', '广州市', '440105', '海珠区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440106', '4401', '00,44,4401', '天河区', '44', '广东省', '4401', '广州市', '440106', '天河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440111', '4401', '00,44,4401', '白云区', '44', '广东省', '4401', '广州市', '440111', '白云区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440112', '4401', '00,44,4401', '黄埔区', '44', '广东省', '4401', '广州市', '440112', '黄埔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440113', '4401', '00,44,4401', '番禺区', '44', '广东省', '4401', '广州市', '440113', '番禺区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440114', '4401', '00,44,4401', '花都区', '44', '广东省', '4401', '广州市', '440114', '花都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440115', '4401', '00,44,4401', '南沙区', '44', '广东省', '4401', '广州市', '440115', '南沙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440117', '4401', '00,44,4401', '从化区', '44', '广东省', '4401', '广州市', '440117', '从化区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440118', '4401', '00,44,4401', '增城区', '44', '广东省', '4401', '广州市', '440118', '增城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4402', '44', '00,44', '韶关市', '44', '广东省', '4402', '韶关市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440203', '4402', '00,44,4402', '武江区', '44', '广东省', '4402', '韶关市', '440203', '武江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440204', '4402', '00,44,4402', '浈江区', '44', '广东省', '4402', '韶关市', '440204', '浈江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440205', '4402', '00,44,4402', '曲江区', '44', '广东省', '4402', '韶关市', '440205', '曲江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440222', '4402', '00,44,4402', '始兴县', '44', '广东省', '4402', '韶关市', '440222', '始兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440224', '4402', '00,44,4402', '仁化县', '44', '广东省', '4402', '韶关市', '440224', '仁化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440229', '4402', '00,44,4402', '翁源县', '44', '广东省', '4402', '韶关市', '440229', '翁源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411425', '4114', '00,41,4114', '虞城县', '41', '河南省', '4114', '商丘市', '411425', '虞城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411426', '4114', '00,41,4114', '夏邑县', '41', '河南省', '4114', '商丘市', '411426', '夏邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411481', '4114', '00,41,4114', '永城市', '41', '河南省', '4114', '商丘市', '411481', '永城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440282', '4402', '00,44,4402', '南雄市', '44', '广东省', '4402', '韶关市', '440282', '南雄市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4403', '44', '00,44', '深圳市', '44', '广东省', '4403', '深圳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440303', '4403', '00,44,4403', '罗湖区', '44', '广东省', '4403', '深圳市', '440303', '罗湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440304', '4403', '00,44,4403', '福田区', '44', '广东省', '4403', '深圳市', '440304', '福田区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440305', '4403', '00,44,4403', '南山区', '44', '广东省', '4403', '深圳市', '440305', '南山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440306', '4403', '00,44,4403', '宝安区', '44', '广东省', '4403', '深圳市', '440306', '宝安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440307', '4403', '00,44,4403', '龙岗区', '44', '广东省', '4403', '深圳市', '440307', '龙岗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440308', '4403', '00,44,4403', '盐田区', '44', '广东省', '4403', '深圳市', '440308', '盐田区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440309', '4403', '00,44,4403', '龙华区', '44', '广东省', '4403', '深圳市', '440309', '龙华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440310', '4403', '00,44,4403', '坪山区', '44', '广东省', '4403', '深圳市', '440310', '坪山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4604', '46', '00,46', '儋州市', '46', '海南省', '4604', '儋州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440311', '4403', '00,44,4403', '光明区', '44', '广东省', '4403', '深圳市', '440311', '光明区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4404', '44', '00,44', '珠海市', '44', '广东省', '4404', '珠海市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440402', '4404', '00,44,4404', '香洲区', '44', '广东省', '4404', '珠海市', '440402', '香洲区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440403', '4404', '00,44,4404', '斗门区', '44', '广东省', '4404', '珠海市', '440403', '斗门区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440404', '4404', '00,44,4404', '金湾区', '44', '广东省', '4404', '珠海市', '440404', '金湾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4405', '44', '00,44', '汕头市', '44', '广东省', '4405', '汕头市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440507', '4405', '00,44,4405', '龙湖区', '44', '广东省', '4405', '汕头市', '440507', '龙湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440511', '4405', '00,44,4405', '金平区', '44', '广东省', '4405', '汕头市', '440511', '金平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440512', '4405', '00,44,4405', '濠江区', '44', '广东省', '4405', '汕头市', '440512', '濠江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440513', '4405', '00,44,4405', '潮阳区', '44', '广东省', '4405', '汕头市', '440513', '潮阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440514', '4405', '00,44,4405', '潮南区', '44', '广东省', '4405', '汕头市', '440514', '潮南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440515', '4405', '00,44,4405', '澄海区', '44', '广东省', '4405', '汕头市', '440515', '澄海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440523', '4405', '00,44,4405', '南澳县', '44', '广东省', '4405', '汕头市', '440523', '南澳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4406', '44', '00,44', '佛山市', '44', '广东省', '4406', '佛山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440604', '4406', '00,44,4406', '禅城区', '44', '广东省', '4406', '佛山市', '440604', '禅城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440605', '4406', '00,44,4406', '南海区', '44', '广东省', '4406', '佛山市', '440605', '南海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440606', '4406', '00,44,4406', '顺德区', '44', '广东省', '4406', '佛山市', '440606', '顺德区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440607', '4406', '00,44,4406', '三水区', '44', '广东省', '4406', '佛山市', '440607', '三水区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440608', '4406', '00,44,4406', '高明区', '44', '广东省', '4406', '佛山市', '440608', '高明区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4407', '44', '00,44', '江门市', '44', '广东省', '4407', '江门市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440703', '4407', '00,44,4407', '蓬江区', '44', '广东省', '4407', '江门市', '440703', '蓬江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440704', '4407', '00,44,4407', '江海区', '44', '广东省', '4407', '江门市', '440704', '江海区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440705', '4407', '00,44,4407', '新会区', '44', '广东省', '4407', '江门市', '440705', '新会区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440781', '4407', '00,44,4407', '台山市', '44', '广东省', '4407', '江门市', '440781', '台山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440783', '4407', '00,44,4407', '开平市', '44', '广东省', '4407', '江门市', '440783', '开平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440784', '4407', '00,44,4407', '鹤山市', '44', '广东省', '4407', '江门市', '440784', '鹤山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440785', '4407', '00,44,4407', '恩平市', '44', '广东省', '4407', '江门市', '440785', '恩平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4408', '44', '00,44', '湛江市', '44', '广东省', '4408', '湛江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440802', '4408', '00,44,4408', '赤坎区', '44', '广东省', '4408', '湛江市', '440802', '赤坎区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440803', '4408', '00,44,4408', '霞山区', '44', '广东省', '4408', '湛江市', '440803', '霞山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440804', '4408', '00,44,4408', '坡头区', '44', '广东省', '4408', '湛江市', '440804', '坡头区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440811', '4408', '00,44,4408', '麻章区', '44', '广东省', '4408', '湛江市', '440811', '麻章区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440823', '4408', '00,44,4408', '遂溪县', '44', '广东省', '4408', '湛江市', '440823', '遂溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440825', '4408', '00,44,4408', '徐闻县', '44', '广东省', '4408', '湛江市', '440825', '徐闻县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440881', '4408', '00,44,4408', '廉江市', '44', '广东省', '4408', '湛江市', '440881', '廉江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440882', '4408', '00,44,4408', '雷州市', '44', '广东省', '4408', '湛江市', '440882', '雷州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440883', '4408', '00,44,4408', '吴川市', '44', '广东省', '4408', '湛江市', '440883', '吴川市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4409', '44', '00,44', '茂名市', '44', '广东省', '4409', '茂名市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440902', '4409', '00,44,4409', '茂南区', '44', '广东省', '4409', '茂名市', '440902', '茂南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440904', '4409', '00,44,4409', '电白区', '44', '广东省', '4409', '茂名市', '440904', '电白区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440981', '4409', '00,44,4409', '高州市', '44', '广东省', '4409', '茂名市', '440981', '高州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440982', '4409', '00,44,4409', '化州市', '44', '广东省', '4409', '茂名市', '440982', '化州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440983', '4409', '00,44,4409', '信宜市', '44', '广东省', '4409', '茂名市', '440983', '信宜市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4412', '44', '00,44', '肇庆市', '44', '广东省', '4412', '肇庆市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441202', '4412', '00,44,4412', '端州区', '44', '广东省', '4412', '肇庆市', '441202', '端州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441203', '4412', '00,44,4412', '鼎湖区', '44', '广东省', '4412', '肇庆市', '441203', '鼎湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441204', '4412', '00,44,4412', '高要区', '44', '广东省', '4412', '肇庆市', '441204', '高要区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441223', '4412', '00,44,4412', '广宁县', '44', '广东省', '4412', '肇庆市', '441223', '广宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441224', '4412', '00,44,4412', '怀集县', '44', '广东省', '4412', '肇庆市', '441224', '怀集县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441225', '4412', '00,44,4412', '封开县', '44', '广东省', '4412', '肇庆市', '441225', '封开县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441226', '4412', '00,44,4412', '德庆县', '44', '广东省', '4412', '肇庆市', '441226', '德庆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441284', '4412', '00,44,4412', '四会市', '44', '广东省', '4412', '肇庆市', '441284', '四会市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4413', '44', '00,44', '惠州市', '44', '广东省', '4413', '惠州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441302', '4413', '00,44,4413', '惠城区', '44', '广东省', '4413', '惠州市', '441302', '惠城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441303', '4413', '00,44,4413', '惠阳区', '44', '广东省', '4413', '惠州市', '441303', '惠阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441322', '4413', '00,44,4413', '博罗县', '44', '广东省', '4413', '惠州市', '441322', '博罗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441323', '4413', '00,44,4413', '惠东县', '44', '广东省', '4413', '惠州市', '441323', '惠东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441324', '4413', '00,44,4413', '龙门县', '44', '广东省', '4413', '惠州市', '441324', '龙门县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4414', '44', '00,44', '梅州市', '44', '广东省', '4414', '梅州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441402', '4414', '00,44,4414', '梅江区', '44', '广东省', '4414', '梅州市', '441402', '梅江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441403', '4414', '00,44,4414', '梅县区', '44', '广东省', '4414', '梅州市', '441403', '梅县区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441422', '4414', '00,44,4414', '大埔县', '44', '广东省', '4414', '梅州市', '441422', '大埔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441423', '4414', '00,44,4414', '丰顺县', '44', '广东省', '4414', '梅州市', '441423', '丰顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('441424', '4414', '00,44,4414', '五华县', '44', '广东省', '4414', '梅州市', '441424', '五华县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410527', '4105', '00,41,4105', '内黄县', '41', '河南省', '4105', '安阳市', '410527', '内黄县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410581', '4105', '00,41,4105', '林州市', '41', '河南省', '4105', '安阳市', '410581', '林州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4106', '41', '00,41', '鹤壁市', '41', '河南省', '4106', '鹤壁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410602', '4106', '00,41,4106', '鹤山区', '41', '河南省', '4106', '鹤壁市', '410602', '鹤山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('410603', '4106', '00,41,4106', '山城区', '41', '河南省', '4106', '鹤壁市', '410603', '山城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('450304', '4503', '00,45,4503', '象山区', '45', '广西壮族自治区', '4503', '桂林市', '450304', '象山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440232', '4402', '00,44,4402', '乳源瑶族自治县', '44', '广东省', '4402', '韶关市', '440232', '乳源瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('440233', '4402', '00,44,4402', '新丰县', '44', '广东省', '4402', '韶关市', '440233', '新丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430105', '4301', '00,43,4301', '开福区', '43', '湖南省', '4301', '长沙市', '430105', '开福区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430111', '4301', '00,43,4301', '雨花区', '43', '湖南省', '4301', '长沙市', '430111', '雨花区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430112', '4301', '00,43,4301', '望城区', '43', '湖南省', '4301', '长沙市', '430112', '望城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430121', '4301', '00,43,4301', '长沙县', '43', '湖南省', '4301', '长沙市', '430121', '长沙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430181', '4301', '00,43,4301', '浏阳市', '43', '湖南省', '4301', '长沙市', '430181', '浏阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430182', '4301', '00,43,4301', '宁乡市', '43', '湖南省', '4301', '长沙市', '430182', '宁乡市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4302', '43', '00,43', '株洲市', '43', '湖南省', '4302', '株洲市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430202', '4302', '00,43,4302', '荷塘区', '43', '湖南省', '4302', '株洲市', '430202', '荷塘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430203', '4302', '00,43,4302', '芦淞区', '43', '湖南省', '4302', '株洲市', '430203', '芦淞区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430204', '4302', '00,43,4302', '石峰区', '43', '湖南省', '4302', '株洲市', '430204', '石峰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430211', '4302', '00,43,4302', '天元区', '43', '湖南省', '4302', '株洲市', '430211', '天元区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430212', '4302', '00,43,4302', '渌口区', '43', '湖南省', '4302', '株洲市', '430212', '渌口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430223', '4302', '00,43,4302', '攸县', '43', '湖南省', '4302', '株洲市', '430223', '攸县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430224', '4302', '00,43,4302', '茶陵县', '43', '湖南省', '4302', '株洲市', '430224', '茶陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430225', '4302', '00,43,4302', '炎陵县', '43', '湖南省', '4302', '株洲市', '430225', '炎陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430281', '4302', '00,43,4302', '醴陵市', '43', '湖南省', '4302', '株洲市', '430281', '醴陵市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4303', '43', '00,43', '湘潭市', '43', '湖南省', '4303', '湘潭市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430302', '4303', '00,43,4303', '雨湖区', '43', '湖南省', '4303', '湘潭市', '430302', '雨湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430304', '4303', '00,43,4303', '岳塘区', '43', '湖南省', '4303', '湘潭市', '430304', '岳塘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430321', '4303', '00,43,4303', '湘潭县', '43', '湖南省', '4303', '湘潭市', '430321', '湘潭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430381', '4303', '00,43,4303', '湘乡市', '43', '湖南省', '4303', '湘潭市', '430381', '湘乡市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430382', '4303', '00,43,4303', '韶山市', '43', '湖南省', '4303', '湘潭市', '430382', '韶山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4304', '43', '00,43', '衡阳市', '43', '湖南省', '4304', '衡阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430405', '4304', '00,43,4304', '珠晖区', '43', '湖南省', '4304', '衡阳市', '430405', '珠晖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430406', '4304', '00,43,4304', '雁峰区', '43', '湖南省', '4304', '衡阳市', '430406', '雁峰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430407', '4304', '00,43,4304', '石鼓区', '43', '湖南省', '4304', '衡阳市', '430407', '石鼓区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430408', '4304', '00,43,4304', '蒸湘区', '43', '湖南省', '4304', '衡阳市', '430408', '蒸湘区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430412', '4304', '00,43,4304', '南岳区', '43', '湖南省', '4304', '衡阳市', '430412', '南岳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430421', '4304', '00,43,4304', '衡阳县', '43', '湖南省', '4304', '衡阳市', '430421', '衡阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430422', '4304', '00,43,4304', '衡南县', '43', '湖南省', '4304', '衡阳市', '430422', '衡南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430423', '4304', '00,43,4304', '衡山县', '43', '湖南省', '4304', '衡阳市', '430423', '衡山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430424', '4304', '00,43,4304', '衡东县', '43', '湖南省', '4304', '衡阳市', '430424', '衡东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430426', '4304', '00,43,4304', '祁东县', '43', '湖南省', '4304', '衡阳市', '430426', '祁东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430481', '4304', '00,43,4304', '耒阳市', '43', '湖南省', '4304', '衡阳市', '430481', '耒阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430482', '4304', '00,43,4304', '常宁市', '43', '湖南省', '4304', '衡阳市', '430482', '常宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4305', '43', '00,43', '邵阳市', '43', '湖南省', '4305', '邵阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430502', '4305', '00,43,4305', '双清区', '43', '湖南省', '4305', '邵阳市', '430502', '双清区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430503', '4305', '00,43,4305', '大祥区', '43', '湖南省', '4305', '邵阳市', '430503', '大祥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430511', '4305', '00,43,4305', '北塔区', '43', '湖南省', '4305', '邵阳市', '430511', '北塔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430522', '4305', '00,43,4305', '新邵县', '43', '湖南省', '4305', '邵阳市', '430522', '新邵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430523', '4305', '00,43,4305', '邵阳县', '43', '湖南省', '4305', '邵阳市', '430523', '邵阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430524', '4305', '00,43,4305', '隆回县', '43', '湖南省', '4305', '邵阳市', '430524', '隆回县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430525', '4305', '00,43,4305', '洞口县', '43', '湖南省', '4305', '邵阳市', '430525', '洞口县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430527', '4305', '00,43,4305', '绥宁县', '43', '湖南省', '4305', '邵阳市', '430527', '绥宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430528', '4305', '00,43,4305', '新宁县', '43', '湖南省', '4305', '邵阳市', '430528', '新宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430529', '4305', '00,43,4305', '城步苗族自治县', '43', '湖南省', '4305', '邵阳市', '430529', '城步苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430581', '4305', '00,43,4305', '武冈市', '43', '湖南省', '4305', '邵阳市', '430581', '武冈市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430582', '4305', '00,43,4305', '邵东市', '43', '湖南省', '4305', '邵阳市', '430582', '邵东市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4306', '43', '00,43', '岳阳市', '43', '湖南省', '4306', '岳阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430602', '4306', '00,43,4306', '岳阳楼区', '43', '湖南省', '4306', '岳阳市', '430602', '岳阳楼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430603', '4306', '00,43,4306', '云溪区', '43', '湖南省', '4306', '岳阳市', '430603', '云溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430611', '4306', '00,43,4306', '君山区', '43', '湖南省', '4306', '岳阳市', '430611', '君山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430621', '4306', '00,43,4306', '岳阳县', '43', '湖南省', '4306', '岳阳市', '430621', '岳阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430623', '4306', '00,43,4306', '华容县', '43', '湖南省', '4306', '岳阳市', '430623', '华容县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430624', '4306', '00,43,4306', '湘阴县', '43', '湖南省', '4306', '岳阳市', '430624', '湘阴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430626', '4306', '00,43,4306', '平江县', '43', '湖南省', '4306', '岳阳市', '430626', '平江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430681', '4306', '00,43,4306', '汨罗市', '43', '湖南省', '4306', '岳阳市', '430681', '汨罗市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430682', '4306', '00,43,4306', '临湘市', '43', '湖南省', '4306', '岳阳市', '430682', '临湘市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4307', '43', '00,43', '常德市', '43', '湖南省', '4307', '常德市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430702', '4307', '00,43,4307', '武陵区', '43', '湖南省', '4307', '常德市', '430702', '武陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430703', '4307', '00,43,4307', '鼎城区', '43', '湖南省', '4307', '常德市', '430703', '鼎城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430721', '4307', '00,43,4307', '安乡县', '43', '湖南省', '4307', '常德市', '430721', '安乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430722', '4307', '00,43,4307', '汉寿县', '43', '湖南省', '4307', '常德市', '430722', '汉寿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430723', '4307', '00,43,4307', '澧县', '43', '湖南省', '4307', '常德市', '430723', '澧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430724', '4307', '00,43,4307', '临澧县', '43', '湖南省', '4307', '常德市', '430724', '临澧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430725', '4307', '00,43,4307', '桃源县', '43', '湖南省', '4307', '常德市', '430725', '桃源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430726', '4307', '00,43,4307', '石门县', '43', '湖南省', '4307', '常德市', '430726', '石门县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430781', '4307', '00,43,4307', '津市市', '43', '湖南省', '4307', '常德市', '430781', '津市市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4308', '43', '00,43', '张家界市', '43', '湖南省', '4308', '张家界市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430802', '4308', '00,43,4308', '永定区', '43', '湖南省', '4308', '张家界市', '430802', '永定区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430811', '4308', '00,43,4308', '武陵源区', '43', '湖南省', '4308', '张家界市', '430811', '武陵源区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430821', '4308', '00,43,4308', '慈利县', '43', '湖南省', '4308', '张家界市', '430821', '慈利县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430822', '4308', '00,43,4308', '桑植县', '43', '湖南省', '4308', '张家界市', '430822', '桑植县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4309', '43', '00,43', '益阳市', '43', '湖南省', '4309', '益阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430902', '4309', '00,43,4309', '资阳区', '43', '湖南省', '4309', '益阳市', '430902', '资阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430903', '4309', '00,43,4309', '赫山区', '43', '湖南省', '4309', '益阳市', '430903', '赫山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4115', '41', '00,41', '信阳市', '41', '河南省', '4115', '信阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411502', '4115', '00,41,4115', '浉河区', '41', '河南省', '4115', '信阳市', '411502', '浉河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411503', '4115', '00,41,4115', '平桥区', '41', '河南省', '4115', '信阳市', '411503', '平桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411521', '4115', '00,41,4115', '罗山县', '41', '河南省', '4115', '信阳市', '411521', '罗山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411522', '4115', '00,41,4115', '光山县', '41', '河南省', '4115', '信阳市', '411522', '光山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411523', '4115', '00,41,4115', '新县', '41', '河南省', '4115', '信阳市', '411523', '新县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411524', '4115', '00,41,4115', '商城县', '41', '河南省', '4115', '信阳市', '411524', '商城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411525', '4115', '00,41,4115', '固始县', '41', '河南省', '4115', '信阳市', '411525', '固始县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411526', '4115', '00,41,4115', '潢川县', '41', '河南省', '4115', '信阳市', '411526', '潢川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411527', '4115', '00,41,4115', '淮滨县', '41', '河南省', '4115', '信阳市', '411527', '淮滨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411528', '4115', '00,41,4115', '息县', '41', '河南省', '4115', '信阳市', '411528', '息县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4116', '41', '00,41', '周口市', '41', '河南省', '4116', '周口市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411602', '4116', '00,41,4116', '川汇区', '41', '河南省', '4116', '周口市', '411602', '川汇区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411603', '4116', '00,41,4116', '淮阳区', '41', '河南省', '4116', '周口市', '411603', '淮阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411621', '4116', '00,41,4116', '扶沟县', '41', '河南省', '4116', '周口市', '411621', '扶沟县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411622', '4116', '00,41,4116', '西华县', '41', '河南省', '4116', '周口市', '411622', '西华县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411623', '4116', '00,41,4116', '商水县', '41', '河南省', '4116', '周口市', '411623', '商水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411624', '4116', '00,41,4116', '沈丘县', '41', '河南省', '4116', '周口市', '411624', '沈丘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411625', '4116', '00,41,4116', '郸城县', '41', '河南省', '4116', '周口市', '411625', '郸城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411627', '4116', '00,41,4116', '太康县', '41', '河南省', '4116', '周口市', '411627', '太康县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411628', '4116', '00,41,4116', '鹿邑县', '41', '河南省', '4116', '周口市', '411628', '鹿邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411681', '4116', '00,41,4116', '项城市', '41', '河南省', '4116', '周口市', '411681', '项城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4117', '41', '00,41', '驻马店市', '41', '河南省', '4117', '驻马店市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411702', '4117', '00,41,4117', '驿城区', '41', '河南省', '4117', '驻马店市', '411702', '驿城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411721', '4117', '00,41,4117', '西平县', '41', '河南省', '4117', '驻马店市', '411721', '西平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411722', '4117', '00,41,4117', '上蔡县', '41', '河南省', '4117', '驻马店市', '411722', '上蔡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411723', '4117', '00,41,4117', '平舆县', '41', '河南省', '4117', '驻马店市', '411723', '平舆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411724', '4117', '00,41,4117', '正阳县', '41', '河南省', '4117', '驻马店市', '411724', '正阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411725', '4117', '00,41,4117', '确山县', '41', '河南省', '4117', '驻马店市', '411725', '确山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411726', '4117', '00,41,4117', '泌阳县', '41', '河南省', '4117', '驻马店市', '411726', '泌阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411727', '4117', '00,41,4117', '汝南县', '41', '河南省', '4117', '驻马店市', '411727', '汝南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411728', '4117', '00,41,4117', '遂平县', '41', '河南省', '4117', '驻马店市', '411728', '遂平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('411729', '4117', '00,41,4117', '新蔡县', '41', '河南省', '4117', '驻马店市', '411729', '新蔡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4190', '41', '00,41', '省直辖县级行政区', '41', '河南省', '4190', '省直辖县级行政区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('419001', '4190', '00,41,4190', '济源市', '41', '河南省', '4190', '省直辖县级行政区', '419001', '济源市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('42', '00', '00', '湖北省', '42', '湖北省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4201', '42', '00,42', '武汉市', '42', '湖北省', '4201', '武汉市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420102', '4201', '00,42,4201', '江岸区', '42', '湖北省', '4201', '武汉市', '420102', '江岸区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420103', '4201', '00,42,4201', '江汉区', '42', '湖北省', '4201', '武汉市', '420103', '江汉区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420104', '4201', '00,42,4201', '硚口区', '42', '湖北省', '4201', '武汉市', '420104', '硚口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420105', '4201', '00,42,4201', '汉阳区', '42', '湖北省', '4201', '武汉市', '420105', '汉阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420106', '4201', '00,42,4201', '武昌区', '42', '湖北省', '4201', '武汉市', '420106', '武昌区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420107', '4201', '00,42,4201', '青山区', '42', '湖北省', '4201', '武汉市', '420107', '青山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420111', '4201', '00,42,4201', '洪山区', '42', '湖北省', '4201', '武汉市', '420111', '洪山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420112', '4201', '00,42,4201', '东西湖区', '42', '湖北省', '4201', '武汉市', '420112', '东西湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420113', '4201', '00,42,4201', '汉南区', '42', '湖北省', '4201', '武汉市', '420113', '汉南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420114', '4201', '00,42,4201', '蔡甸区', '42', '湖北省', '4201', '武汉市', '420114', '蔡甸区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420115', '4201', '00,42,4201', '江夏区', '42', '湖北省', '4201', '武汉市', '420115', '江夏区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420116', '4201', '00,42,4201', '黄陂区', '42', '湖北省', '4201', '武汉市', '420116', '黄陂区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420117', '4201', '00,42,4201', '新洲区', '42', '湖北省', '4201', '武汉市', '420117', '新洲区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4202', '42', '00,42', '黄石市', '42', '湖北省', '4202', '黄石市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420202', '4202', '00,42,4202', '黄石港区', '42', '湖北省', '4202', '黄石市', '420202', '黄石港区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420203', '4202', '00,42,4202', '西塞山区', '42', '湖北省', '4202', '黄石市', '420203', '西塞山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420204', '4202', '00,42,4202', '下陆区', '42', '湖北省', '4202', '黄石市', '420204', '下陆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420205', '4202', '00,42,4202', '铁山区', '42', '湖北省', '4202', '黄石市', '420205', '铁山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420222', '4202', '00,42,4202', '阳新县', '42', '湖北省', '4202', '黄石市', '420222', '阳新县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420281', '4202', '00,42,4202', '大冶市', '42', '湖北省', '4202', '黄石市', '420281', '大冶市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4203', '42', '00,42', '十堰市', '42', '湖北省', '4203', '十堰市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420302', '4203', '00,42,4203', '茅箭区', '42', '湖北省', '4203', '十堰市', '420302', '茅箭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420303', '4203', '00,42,4203', '张湾区', '42', '湖北省', '4203', '十堰市', '420303', '张湾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420304', '4203', '00,42,4203', '郧阳区', '42', '湖北省', '4203', '十堰市', '420304', '郧阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420322', '4203', '00,42,4203', '郧西县', '42', '湖北省', '4203', '十堰市', '420322', '郧西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420323', '4203', '00,42,4203', '竹山县', '42', '湖北省', '4203', '十堰市', '420323', '竹山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420324', '4203', '00,42,4203', '竹溪县', '42', '湖北省', '4203', '十堰市', '420324', '竹溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420325', '4203', '00,42,4203', '房县', '42', '湖北省', '4203', '十堰市', '420325', '房县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420381', '4203', '00,42,4203', '丹江口市', '42', '湖北省', '4203', '十堰市', '420381', '丹江口市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4205', '42', '00,42', '宜昌市', '42', '湖北省', '4205', '宜昌市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420502', '4205', '00,42,4205', '西陵区', '42', '湖北省', '4205', '宜昌市', '420502', '西陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420503', '4205', '00,42,4205', '伍家岗区', '42', '湖北省', '4205', '宜昌市', '420503', '伍家岗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420504', '4205', '00,42,4205', '点军区', '42', '湖北省', '4205', '宜昌市', '420504', '点军区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420505', '4205', '00,42,4205', '猇亭区', '42', '湖北省', '4205', '宜昌市', '420505', '猇亭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420506', '4205', '00,42,4205', '夷陵区', '42', '湖北省', '4205', '宜昌市', '420506', '夷陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420525', '4205', '00,42,4205', '远安县', '42', '湖北省', '4205', '宜昌市', '420525', '远安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420526', '4205', '00,42,4205', '兴山县', '42', '湖北省', '4205', '宜昌市', '420526', '兴山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420527', '4205', '00,42,4205', '秭归县', '42', '湖北省', '4205', '宜昌市', '420527', '秭归县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('420528', '4205', '00,42,4205', '长阳土家族自治县', '42', '湖北省', '4205', '宜昌市', '420528', '长阳土家族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511702', '5117', '00,51,5117', '通川区', '51', '四川省', '5117', '达州市', '511702', '通川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511703', '5117', '00,51,5117', '达川区', '51', '四川省', '5117', '达州市', '511703', '达川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5117', '51', '00,51', '达州市', '51', '四川省', '5117', '达州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650502', '6505', '00,65,6505', '伊州区', '65', '新疆维吾尔自治区', '6505', '哈密市', '650502', '伊州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511722', '5117', '00,51,5117', '宣汉县', '51', '四川省', '5117', '达州市', '511722', '宣汉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511723', '5117', '00,51,5117', '开江县', '51', '四川省', '5117', '达州市', '511723', '开江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511724', '5117', '00,51,5117', '大竹县', '51', '四川省', '5117', '达州市', '511724', '大竹县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511725', '5117', '00,51,5117', '渠县', '51', '四川省', '5117', '达州市', '511725', '渠县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511781', '5117', '00,51,5117', '万源市', '51', '四川省', '5117', '达州市', '511781', '万源市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5118', '51', '00,51', '雅安市', '51', '四川省', '5118', '雅安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511802', '5118', '00,51,5118', '雨城区', '51', '四川省', '5118', '雅安市', '511802', '雨城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511803', '5118', '00,51,5118', '名山区', '51', '四川省', '5118', '雅安市', '511803', '名山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511822', '5118', '00,51,5118', '荥经县', '51', '四川省', '5118', '雅安市', '511822', '荥经县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511823', '5118', '00,51,5118', '汉源县', '51', '四川省', '5118', '雅安市', '511823', '汉源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511824', '5118', '00,51,5118', '石棉县', '51', '四川省', '5118', '雅安市', '511824', '石棉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511825', '5118', '00,51,5118', '天全县', '51', '四川省', '5118', '雅安市', '511825', '天全县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511826', '5118', '00,51,5118', '芦山县', '51', '四川省', '5118', '雅安市', '511826', '芦山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511827', '5118', '00,51,5118', '宝兴县', '51', '四川省', '5118', '雅安市', '511827', '宝兴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5119', '51', '00,51', '巴中市', '51', '四川省', '5119', '巴中市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511902', '5119', '00,51,5119', '巴州区', '51', '四川省', '5119', '巴中市', '511902', '巴州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511903', '5119', '00,51,5119', '恩阳区', '51', '四川省', '5119', '巴中市', '511903', '恩阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511921', '5119', '00,51,5119', '通江县', '51', '四川省', '5119', '巴中市', '511921', '通江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511922', '5119', '00,51,5119', '南江县', '51', '四川省', '5119', '巴中市', '511922', '南江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511923', '5119', '00,51,5119', '平昌县', '51', '四川省', '5119', '巴中市', '511923', '平昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5120', '51', '00,51', '资阳市', '51', '四川省', '5120', '资阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('512002', '5120', '00,51,5120', '雁江区', '51', '四川省', '5120', '资阳市', '512002', '雁江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('512021', '5120', '00,51,5120', '安岳县', '51', '四川省', '5120', '资阳市', '512021', '安岳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('512022', '5120', '00,51,5120', '乐至县', '51', '四川省', '5120', '资阳市', '512022', '乐至县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5132', '51', '00,51', '阿坝藏族羌族自治州', '51', '四川省', '5132', '阿坝藏族羌族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513201', '5132', '00,51,5132', '马尔康市', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513201', '马尔康市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513221', '5132', '00,51,5132', '汶川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513221', '汶川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513222', '5132', '00,51,5132', '理县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513222', '理县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513223', '5132', '00,51,5132', '茂县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513223', '茂县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513224', '5132', '00,51,5132', '松潘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513224', '松潘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513225', '5132', '00,51,5132', '九寨沟县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513225', '九寨沟县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513226', '5132', '00,51,5132', '金川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513226', '金川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513227', '5132', '00,51,5132', '小金县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513227', '小金县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513228', '5132', '00,51,5132', '黑水县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513228', '黑水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513230', '5132', '00,51,5132', '壤塘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513230', '壤塘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513231', '5132', '00,51,5132', '阿坝县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513231', '阿坝县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513232', '5132', '00,51,5132', '若尔盖县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513232', '若尔盖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513233', '5132', '00,51,5132', '红原县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513233', '红原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5133', '51', '00,51', '甘孜藏族自治州', '51', '四川省', '5133', '甘孜藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513301', '5133', '00,51,5133', '康定市', '51', '四川省', '5133', '甘孜藏族自治州', '513301', '康定市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513322', '5133', '00,51,5133', '泸定县', '51', '四川省', '5133', '甘孜藏族自治州', '513322', '泸定县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513323', '5133', '00,51,5133', '丹巴县', '51', '四川省', '5133', '甘孜藏族自治州', '513323', '丹巴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513324', '5133', '00,51,5133', '九龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513324', '九龙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513325', '5133', '00,51,5133', '雅江县', '51', '四川省', '5133', '甘孜藏族自治州', '513325', '雅江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513326', '5133', '00,51,5133', '道孚县', '51', '四川省', '5133', '甘孜藏族自治州', '513326', '道孚县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513327', '5133', '00,51,5133', '炉霍县', '51', '四川省', '5133', '甘孜藏族自治州', '513327', '炉霍县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513328', '5133', '00,51,5133', '甘孜县', '51', '四川省', '5133', '甘孜藏族自治州', '513328', '甘孜县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513329', '5133', '00,51,5133', '新龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513329', '新龙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513330', '5133', '00,51,5133', '德格县', '51', '四川省', '5133', '甘孜藏族自治州', '513330', '德格县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513331', '5133', '00,51,5133', '白玉县', '51', '四川省', '5133', '甘孜藏族自治州', '513331', '白玉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513332', '5133', '00,51,5133', '石渠县', '51', '四川省', '5133', '甘孜藏族自治州', '513332', '石渠县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513333', '5133', '00,51,5133', '色达县', '51', '四川省', '5133', '甘孜藏族自治州', '513333', '色达县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513334', '5133', '00,51,5133', '理塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513334', '理塘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513335', '5133', '00,51,5133', '巴塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513335', '巴塘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513336', '5133', '00,51,5133', '乡城县', '51', '四川省', '5133', '甘孜藏族自治州', '513336', '乡城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513337', '5133', '00,51,5133', '稻城县', '51', '四川省', '5133', '甘孜藏族自治州', '513337', '稻城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513338', '5133', '00,51,5133', '得荣县', '51', '四川省', '5133', '甘孜藏族自治州', '513338', '得荣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5134', '51', '00,51', '凉山彝族自治州', '51', '四川省', '5134', '凉山彝族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513401', '5134', '00,51,5134', '西昌市', '51', '四川省', '5134', '凉山彝族自治州', '513401', '西昌市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513422', '5134', '00,51,5134', '木里藏族自治县', '51', '四川省', '5134', '凉山彝族自治州', '513422', '木里藏族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513423', '5134', '00,51,5134', '盐源县', '51', '四川省', '5134', '凉山彝族自治州', '513423', '盐源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513424', '5134', '00,51,5134', '德昌县', '51', '四川省', '5134', '凉山彝族自治州', '513424', '德昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513425', '5134', '00,51,5134', '会理县', '51', '四川省', '5134', '凉山彝族自治州', '513425', '会理县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513426', '5134', '00,51,5134', '会东县', '51', '四川省', '5134', '凉山彝族自治州', '513426', '会东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513427', '5134', '00,51,5134', '宁南县', '51', '四川省', '5134', '凉山彝族自治州', '513427', '宁南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513428', '5134', '00,51,5134', '普格县', '51', '四川省', '5134', '凉山彝族自治州', '513428', '普格县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513429', '5134', '00,51,5134', '布拖县', '51', '四川省', '5134', '凉山彝族自治州', '513429', '布拖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513430', '5134', '00,51,5134', '金阳县', '51', '四川省', '5134', '凉山彝族自治州', '513430', '金阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513431', '5134', '00,51,5134', '昭觉县', '51', '四川省', '5134', '凉山彝族自治州', '513431', '昭觉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513432', '5134', '00,51,5134', '喜德县', '51', '四川省', '5134', '凉山彝族自治州', '513432', '喜德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513433', '5134', '00,51,5134', '冕宁县', '51', '四川省', '5134', '凉山彝族自治州', '513433', '冕宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500111', '5001', '00,50,5001', '大足区', '50', '重庆市', '5001', '重庆市', '500111', '大足区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500112', '5001', '00,50,5001', '渝北区', '50', '重庆市', '5001', '重庆市', '500112', '渝北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500113', '5001', '00,50,5001', '巴南区', '50', '重庆市', '5001', '重庆市', '500113', '巴南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500114', '5001', '00,50,5001', '黔江区', '50', '重庆市', '5001', '重庆市', '500114', '黔江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500115', '5001', '00,50,5001', '长寿区', '50', '重庆市', '5001', '重庆市', '500115', '长寿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500116', '5001', '00,50,5001', '江津区', '50', '重庆市', '5001', '重庆市', '500116', '江津区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500117', '5001', '00,50,5001', '合川区', '50', '重庆市', '5001', '重庆市', '500117', '合川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500118', '5001', '00,50,5001', '永川区', '50', '重庆市', '5001', '重庆市', '500118', '永川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500119', '5001', '00,50,5001', '南川区', '50', '重庆市', '5001', '重庆市', '500119', '南川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500120', '5001', '00,50,5001', '璧山区', '50', '重庆市', '5001', '重庆市', '500120', '璧山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500151', '5001', '00,50,5001', '铜梁区', '50', '重庆市', '5001', '重庆市', '500151', '铜梁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500152', '5001', '00,50,5001', '潼南区', '50', '重庆市', '5001', '重庆市', '500152', '潼南区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500153', '5001', '00,50,5001', '荣昌区', '50', '重庆市', '5001', '重庆市', '500153', '荣昌区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500154', '5001', '00,50,5001', '开州区', '50', '重庆市', '5001', '重庆市', '500154', '开州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500155', '5001', '00,50,5001', '梁平区', '50', '重庆市', '5001', '重庆市', '500155', '梁平区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500156', '5001', '00,50,5001', '武隆区', '50', '重庆市', '5001', '重庆市', '500156', '武隆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5002', '50', '00,50', '重庆市', '50', '重庆市', '5002', '重庆市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500229', '5002', '00,50,5002', '城口县', '50', '重庆市', '5002', '重庆市', '500229', '城口县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500230', '5002', '00,50,5002', '丰都县', '50', '重庆市', '5002', '重庆市', '500230', '丰都县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500231', '5002', '00,50,5002', '垫江县', '50', '重庆市', '5002', '重庆市', '500231', '垫江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500233', '5002', '00,50,5002', '忠县', '50', '重庆市', '5002', '重庆市', '500233', '忠县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500235', '5002', '00,50,5002', '云阳县', '50', '重庆市', '5002', '重庆市', '500235', '云阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500236', '5002', '00,50,5002', '奉节县', '50', '重庆市', '5002', '重庆市', '500236', '奉节县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500237', '5002', '00,50,5002', '巫山县', '50', '重庆市', '5002', '重庆市', '500237', '巫山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500238', '5002', '00,50,5002', '巫溪县', '50', '重庆市', '5002', '重庆市', '500238', '巫溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500240', '5002', '00,50,5002', '石柱土家族自治县', '50', '重庆市', '5002', '重庆市', '500240', '石柱土家族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500241', '5002', '00,50,5002', '秀山土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500241', '秀山土家族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500242', '5002', '00,50,5002', '酉阳土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500242', '酉阳土家族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500243', '5002', '00,50,5002', '彭水苗族土家族自治县', '50', '重庆市', '5002', '重庆市', '500243', '彭水苗族土家族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('51', '00', '00', '四川省', '51', '四川省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5101', '51', '00,51', '成都市', '51', '四川省', '5101', '成都市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510104', '5101', '00,51,5101', '锦江区', '51', '四川省', '5101', '成都市', '510104', '锦江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510105', '5101', '00,51,5101', '青羊区', '51', '四川省', '5101', '成都市', '510105', '青羊区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510106', '5101', '00,51,5101', '金牛区', '51', '四川省', '5101', '成都市', '510106', '金牛区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510107', '5101', '00,51,5101', '武侯区', '51', '四川省', '5101', '成都市', '510107', '武侯区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510108', '5101', '00,51,5101', '成华区', '51', '四川省', '5101', '成都市', '510108', '成华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510112', '5101', '00,51,5101', '龙泉驿区', '51', '四川省', '5101', '成都市', '510112', '龙泉驿区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510113', '5101', '00,51,5101', '青白江区', '51', '四川省', '5101', '成都市', '510113', '青白江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510114', '5101', '00,51,5101', '新都区', '51', '四川省', '5101', '成都市', '510114', '新都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510115', '5101', '00,51,5101', '温江区', '51', '四川省', '5101', '成都市', '510115', '温江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510116', '5101', '00,51,5101', '双流区', '51', '四川省', '5101', '成都市', '510116', '双流区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510117', '5101', '00,51,5101', '郫都区', '51', '四川省', '5101', '成都市', '510117', '郫都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510121', '5101', '00,51,5101', '金堂县', '51', '四川省', '5101', '成都市', '510121', '金堂县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510129', '5101', '00,51,5101', '大邑县', '51', '四川省', '5101', '成都市', '510129', '大邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510131', '5101', '00,51,5101', '蒲江县', '51', '四川省', '5101', '成都市', '510131', '蒲江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510132', '5101', '00,51,5101', '新津县', '51', '四川省', '5101', '成都市', '510132', '新津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510181', '5101', '00,51,5101', '都江堰市', '51', '四川省', '5101', '成都市', '510181', '都江堰市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510182', '5101', '00,51,5101', '彭州市', '51', '四川省', '5101', '成都市', '510182', '彭州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510183', '5101', '00,51,5101', '邛崃市', '51', '四川省', '5101', '成都市', '510183', '邛崃市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510184', '5101', '00,51,5101', '崇州市', '51', '四川省', '5101', '成都市', '510184', '崇州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510185', '5101', '00,51,5101', '简阳市', '51', '四川省', '5101', '成都市', '510185', '简阳市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5103', '51', '00,51', '自贡市', '51', '四川省', '5103', '自贡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510302', '5103', '00,51,5103', '自流井区', '51', '四川省', '5103', '自贡市', '510302', '自流井区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510303', '5103', '00,51,5103', '贡井区', '51', '四川省', '5103', '自贡市', '510303', '贡井区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510304', '5103', '00,51,5103', '大安区', '51', '四川省', '5103', '自贡市', '510304', '大安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510311', '5103', '00,51,5103', '沿滩区', '51', '四川省', '5103', '自贡市', '510311', '沿滩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510321', '5103', '00,51,5103', '荣县', '51', '四川省', '5103', '自贡市', '510321', '荣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510322', '5103', '00,51,5103', '富顺县', '51', '四川省', '5103', '自贡市', '510322', '富顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5104', '51', '00,51', '攀枝花市', '51', '四川省', '5104', '攀枝花市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510402', '5104', '00,51,5104', '东区', '51', '四川省', '5104', '攀枝花市', '510402', '东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510403', '5104', '00,51,5104', '西区', '51', '四川省', '5104', '攀枝花市', '510403', '西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510411', '5104', '00,51,5104', '仁和区', '51', '四川省', '5104', '攀枝花市', '510411', '仁和区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510421', '5104', '00,51,5104', '米易县', '51', '四川省', '5104', '攀枝花市', '510421', '米易县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510422', '5104', '00,51,5104', '盐边县', '51', '四川省', '5104', '攀枝花市', '510422', '盐边县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5105', '51', '00,51', '泸州市', '51', '四川省', '5105', '泸州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510502', '5105', '00,51,5105', '江阳区', '51', '四川省', '5105', '泸州市', '510502', '江阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510503', '5105', '00,51,5105', '纳溪区', '51', '四川省', '5105', '泸州市', '510503', '纳溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510504', '5105', '00,51,5105', '龙马潭区', '51', '四川省', '5105', '泸州市', '510504', '龙马潭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510521', '5105', '00,51,5105', '泸县', '51', '四川省', '5105', '泸州市', '510521', '泸县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510522', '5105', '00,51,5105', '合江县', '51', '四川省', '5105', '泸州市', '510522', '合江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510524', '5105', '00,51,5105', '叙永县', '51', '四川省', '5105', '泸州市', '510524', '叙永县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510525', '5105', '00,51,5105', '古蔺县', '51', '四川省', '5105', '泸州市', '510525', '古蔺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5106', '51', '00,51', '德阳市', '51', '四川省', '5106', '德阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510603', '5106', '00,51,5106', '旌阳区', '51', '四川省', '5106', '德阳市', '510603', '旌阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510604', '5106', '00,51,5106', '罗江区', '51', '四川省', '5106', '德阳市', '510604', '罗江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510623', '5106', '00,51,5106', '中江县', '51', '四川省', '5106', '德阳市', '510623', '中江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510681', '5106', '00,51,5106', '广汉市', '51', '四川省', '5106', '德阳市', '510681', '广汉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510682', '5106', '00,51,5106', '什邡市', '51', '四川省', '5106', '德阳市', '510682', '什邡市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510683', '5106', '00,51,5106', '绵竹市', '51', '四川省', '5106', '德阳市', '510683', '绵竹市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5107', '51', '00,51', '绵阳市', '51', '四川省', '5107', '绵阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510703', '5107', '00,51,5107', '涪城区', '51', '四川省', '5107', '绵阳市', '510703', '涪城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510704', '5107', '00,51,5107', '游仙区', '51', '四川省', '5107', '绵阳市', '510704', '游仙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510705', '5107', '00,51,5107', '安州区', '51', '四川省', '5107', '绵阳市', '510705', '安州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510722', '5107', '00,51,5107', '三台县', '51', '四川省', '5107', '绵阳市', '510722', '三台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510723', '5107', '00,51,5107', '盐亭县', '51', '四川省', '5107', '绵阳市', '510723', '盐亭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510725', '5107', '00,51,5107', '梓潼县', '51', '四川省', '5107', '绵阳市', '510725', '梓潼县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510726', '5107', '00,51,5107', '北川羌族自治县', '51', '四川省', '5107', '绵阳市', '510726', '北川羌族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510727', '5107', '00,51,5107', '平武县', '51', '四川省', '5107', '绵阳市', '510727', '平武县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510781', '5107', '00,51,5107', '江油市', '51', '四川省', '5107', '绵阳市', '510781', '江油市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5108', '51', '00,51', '广元市', '51', '四川省', '5108', '广元市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510802', '5108', '00,51,5108', '利州区', '51', '四川省', '5108', '广元市', '510802', '利州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510811', '5108', '00,51,5108', '昭化区', '51', '四川省', '5108', '广元市', '510811', '昭化区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510812', '5108', '00,51,5108', '朝天区', '51', '四川省', '5108', '广元市', '510812', '朝天区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510821', '5108', '00,51,5108', '旺苍县', '51', '四川省', '5108', '广元市', '510821', '旺苍县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510822', '5108', '00,51,5108', '青川县', '51', '四川省', '5108', '广元市', '510822', '青川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510823', '5108', '00,51,5108', '剑阁县', '51', '四川省', '5108', '广元市', '510823', '剑阁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510824', '5108', '00,51,5108', '苍溪县', '51', '四川省', '5108', '广元市', '510824', '苍溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5109', '51', '00,51', '遂宁市', '51', '四川省', '5109', '遂宁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510903', '5109', '00,51,5109', '船山区', '51', '四川省', '5109', '遂宁市', '510903', '船山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510904', '5109', '00,51,5109', '安居区', '51', '四川省', '5109', '遂宁市', '510904', '安居区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510921', '5109', '00,51,5109', '蓬溪县', '51', '四川省', '5109', '遂宁市', '510921', '蓬溪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510923', '5109', '00,51,5109', '大英县', '51', '四川省', '5109', '遂宁市', '510923', '大英县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('510981', '5109', '00,51,5109', '射洪市', '51', '四川省', '5109', '遂宁市', '510981', '射洪市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5110', '51', '00,51', '内江市', '51', '四川省', '5110', '内江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511002', '5110', '00,51,5110', '市中区', '51', '四川省', '5110', '内江市', '511002', '市中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511011', '5110', '00,51,5110', '东兴区', '51', '四川省', '5110', '内江市', '511011', '东兴区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511024', '5110', '00,51,5110', '威远县', '51', '四川省', '5110', '内江市', '511024', '威远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511025', '5110', '00,51,5110', '资中县', '51', '四川省', '5110', '内江市', '511025', '资中县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511083', '5110', '00,51,5110', '隆昌市', '51', '四川省', '5110', '内江市', '511083', '隆昌市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5111', '51', '00,51', '乐山市', '51', '四川省', '5111', '乐山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511102', '5111', '00,51,5111', '市中区', '51', '四川省', '5111', '乐山市', '511102', '市中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511111', '5111', '00,51,5111', '沙湾区', '51', '四川省', '5111', '乐山市', '511111', '沙湾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511112', '5111', '00,51,5111', '五通桥区', '51', '四川省', '5111', '乐山市', '511112', '五通桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511113', '5111', '00,51,5111', '金口河区', '51', '四川省', '5111', '乐山市', '511113', '金口河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511123', '5111', '00,51,5111', '犍为县', '51', '四川省', '5111', '乐山市', '511123', '犍为县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511124', '5111', '00,51,5111', '井研县', '51', '四川省', '5111', '乐山市', '511124', '井研县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511126', '5111', '00,51,5111', '夹江县', '51', '四川省', '5111', '乐山市', '511126', '夹江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511129', '5111', '00,51,5111', '沐川县', '51', '四川省', '5111', '乐山市', '511129', '沐川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511132', '5111', '00,51,5111', '峨边彝族自治县', '51', '四川省', '5111', '乐山市', '511132', '峨边彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511133', '5111', '00,51,5111', '马边彝族自治县', '51', '四川省', '5111', '乐山市', '511133', '马边彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511181', '5111', '00,51,5111', '峨眉山市', '51', '四川省', '5111', '乐山市', '511181', '峨眉山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5113', '51', '00,51', '南充市', '51', '四川省', '5113', '南充市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511302', '5113', '00,51,5113', '顺庆区', '51', '四川省', '5113', '南充市', '511302', '顺庆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511303', '5113', '00,51,5113', '高坪区', '51', '四川省', '5113', '南充市', '511303', '高坪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511304', '5113', '00,51,5113', '嘉陵区', '51', '四川省', '5113', '南充市', '511304', '嘉陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511321', '5113', '00,51,5113', '南部县', '51', '四川省', '5113', '南充市', '511321', '南部县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511322', '5113', '00,51,5113', '营山县', '51', '四川省', '5113', '南充市', '511322', '营山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511323', '5113', '00,51,5113', '蓬安县', '51', '四川省', '5113', '南充市', '511323', '蓬安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511324', '5113', '00,51,5113', '仪陇县', '51', '四川省', '5113', '南充市', '511324', '仪陇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511325', '5113', '00,51,5113', '西充县', '51', '四川省', '5113', '南充市', '511325', '西充县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511381', '5113', '00,51,5113', '阆中市', '51', '四川省', '5113', '南充市', '511381', '阆中市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5114', '51', '00,51', '眉山市', '51', '四川省', '5114', '眉山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511402', '5114', '00,51,5114', '东坡区', '51', '四川省', '5114', '眉山市', '511402', '东坡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511403', '5114', '00,51,5114', '彭山区', '51', '四川省', '5114', '眉山市', '511403', '彭山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511421', '5114', '00,51,5114', '仁寿县', '51', '四川省', '5114', '眉山市', '511421', '仁寿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511423', '5114', '00,51,5114', '洪雅县', '51', '四川省', '5114', '眉山市', '511423', '洪雅县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511424', '5114', '00,51,5114', '丹棱县', '51', '四川省', '5114', '眉山市', '511424', '丹棱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511425', '5114', '00,51,5114', '青神县', '51', '四川省', '5114', '眉山市', '511425', '青神县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5115', '51', '00,51', '宜宾市', '51', '四川省', '5115', '宜宾市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511502', '5115', '00,51,5115', '翠屏区', '51', '四川省', '5115', '宜宾市', '511502', '翠屏区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511503', '5115', '00,51,5115', '南溪区', '51', '四川省', '5115', '宜宾市', '511503', '南溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511504', '5115', '00,51,5115', '叙州区', '51', '四川省', '5115', '宜宾市', '511504', '叙州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511523', '5115', '00,51,5115', '江安县', '51', '四川省', '5115', '宜宾市', '511523', '江安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511524', '5115', '00,51,5115', '长宁县', '51', '四川省', '5115', '宜宾市', '511524', '长宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511525', '5115', '00,51,5115', '高县', '51', '四川省', '5115', '宜宾市', '511525', '高县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511526', '5115', '00,51,5115', '珙县', '51', '四川省', '5115', '宜宾市', '511526', '珙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511527', '5115', '00,51,5115', '筠连县', '51', '四川省', '5115', '宜宾市', '511527', '筠连县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511528', '5115', '00,51,5115', '兴文县', '51', '四川省', '5115', '宜宾市', '511528', '兴文县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511529', '5115', '00,51,5115', '屏山县', '51', '四川省', '5115', '宜宾市', '511529', '屏山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5116', '51', '00,51', '广安市', '51', '四川省', '5116', '广安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511602', '5116', '00,51,5116', '广安区', '51', '四川省', '5116', '广安市', '511602', '广安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511603', '5116', '00,51,5116', '前锋区', '51', '四川省', '5116', '广安市', '511603', '前锋区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511621', '5116', '00,51,5116', '岳池县', '51', '四川省', '5116', '广安市', '511621', '岳池县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511622', '5116', '00,51,5116', '武胜县', '51', '四川省', '5116', '广安市', '511622', '武胜县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511623', '5116', '00,51,5116', '邻水县', '51', '四川省', '5116', '广安市', '511623', '邻水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620121', '6201', '00,62,6201', '永登县', '62', '甘肃省', '6201', '兰州市', '620121', '永登县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513434', '5134', '00,51,5134', '越西县', '51', '四川省', '5134', '凉山彝族自治州', '513434', '越西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513435', '5134', '00,51,5134', '甘洛县', '51', '四川省', '5134', '凉山彝族自治州', '513435', '甘洛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513436', '5134', '00,51,5134', '美姑县', '51', '四川省', '5134', '凉山彝族自治州', '513436', '美姑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('513437', '5134', '00,51,5134', '雷波县', '51', '四川省', '5134', '凉山彝族自治州', '513437', '雷波县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('52', '00', '00', '贵州省', '52', '贵州省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5201', '52', '00,52', '贵阳市', '52', '贵州省', '5201', '贵阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520102', '5201', '00,52,5201', '南明区', '52', '贵州省', '5201', '贵阳市', '520102', '南明区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520103', '5201', '00,52,5201', '云岩区', '52', '贵州省', '5201', '贵阳市', '520103', '云岩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520111', '5201', '00,52,5201', '花溪区', '52', '贵州省', '5201', '贵阳市', '520111', '花溪区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520112', '5201', '00,52,5201', '乌当区', '52', '贵州省', '5201', '贵阳市', '520112', '乌当区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520113', '5201', '00,52,5201', '白云区', '52', '贵州省', '5201', '贵阳市', '520113', '白云区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520115', '5201', '00,52,5201', '观山湖区', '52', '贵州省', '5201', '贵阳市', '520115', '观山湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520121', '5201', '00,52,5201', '开阳县', '52', '贵州省', '5201', '贵阳市', '520121', '开阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520122', '5201', '00,52,5201', '息烽县', '52', '贵州省', '5201', '贵阳市', '520122', '息烽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520123', '5201', '00,52,5201', '修文县', '52', '贵州省', '5201', '贵阳市', '520123', '修文县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520181', '5201', '00,52,5201', '清镇市', '52', '贵州省', '5201', '贵阳市', '520181', '清镇市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5202', '52', '00,52', '六盘水市', '52', '贵州省', '5202', '六盘水市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520201', '5202', '00,52,5202', '钟山区', '52', '贵州省', '5202', '六盘水市', '520201', '钟山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520203', '5202', '00,52,5202', '六枝特区', '52', '贵州省', '5202', '六盘水市', '520203', '六枝特区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520221', '5202', '00,52,5202', '水城县', '52', '贵州省', '5202', '六盘水市', '520221', '水城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520281', '5202', '00,52,5202', '盘州市', '52', '贵州省', '5202', '六盘水市', '520281', '盘州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5203', '52', '00,52', '遵义市', '52', '贵州省', '5203', '遵义市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520302', '5203', '00,52,5203', '红花岗区', '52', '贵州省', '5203', '遵义市', '520302', '红花岗区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520303', '5203', '00,52,5203', '汇川区', '52', '贵州省', '5203', '遵义市', '520303', '汇川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520304', '5203', '00,52,5203', '播州区', '52', '贵州省', '5203', '遵义市', '520304', '播州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520322', '5203', '00,52,5203', '桐梓县', '52', '贵州省', '5203', '遵义市', '520322', '桐梓县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520323', '5203', '00,52,5203', '绥阳县', '52', '贵州省', '5203', '遵义市', '520323', '绥阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520324', '5203', '00,52,5203', '正安县', '52', '贵州省', '5203', '遵义市', '520324', '正安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520325', '5203', '00,52,5203', '道真仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520325', '道真仡佬族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520326', '5203', '00,52,5203', '务川仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520326', '务川仡佬族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520327', '5203', '00,52,5203', '凤冈县', '52', '贵州省', '5203', '遵义市', '520327', '凤冈县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520328', '5203', '00,52,5203', '湄潭县', '52', '贵州省', '5203', '遵义市', '520328', '湄潭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520329', '5203', '00,52,5203', '余庆县', '52', '贵州省', '5203', '遵义市', '520329', '余庆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520330', '5203', '00,52,5203', '习水县', '52', '贵州省', '5203', '遵义市', '520330', '习水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520381', '5203', '00,52,5203', '赤水市', '52', '贵州省', '5203', '遵义市', '520381', '赤水市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520382', '5203', '00,52,5203', '仁怀市', '52', '贵州省', '5203', '遵义市', '520382', '仁怀市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5204', '52', '00,52', '安顺市', '52', '贵州省', '5204', '安顺市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520402', '5204', '00,52,5204', '西秀区', '52', '贵州省', '5204', '安顺市', '520402', '西秀区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520403', '5204', '00,52,5204', '平坝区', '52', '贵州省', '5204', '安顺市', '520403', '平坝区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520422', '5204', '00,52,5204', '普定县', '52', '贵州省', '5204', '安顺市', '520422', '普定县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520423', '5204', '00,52,5204', '镇宁布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520423', '镇宁布依族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520424', '5204', '00,52,5204', '关岭布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520424', '关岭布依族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520425', '5204', '00,52,5204', '紫云苗族布依族自治县', '52', '贵州省', '5204', '安顺市', '520425', '紫云苗族布依族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5205', '52', '00,52', '毕节市', '52', '贵州省', '5205', '毕节市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520502', '5205', '00,52,5205', '七星关区', '52', '贵州省', '5205', '毕节市', '520502', '七星关区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520521', '5205', '00,52,5205', '大方县', '52', '贵州省', '5205', '毕节市', '520521', '大方县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520522', '5205', '00,52,5205', '黔西县', '52', '贵州省', '5205', '毕节市', '520522', '黔西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520523', '5205', '00,52,5205', '金沙县', '52', '贵州省', '5205', '毕节市', '520523', '金沙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520524', '5205', '00,52,5205', '织金县', '52', '贵州省', '5205', '毕节市', '520524', '织金县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520525', '5205', '00,52,5205', '纳雍县', '52', '贵州省', '5205', '毕节市', '520525', '纳雍县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520526', '5205', '00,52,5205', '威宁彝族回族苗族自治县', '52', '贵州省', '5205', '毕节市', '520526', '威宁彝族回族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520527', '5205', '00,52,5205', '赫章县', '52', '贵州省', '5205', '毕节市', '520527', '赫章县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5206', '52', '00,52', '铜仁市', '52', '贵州省', '5206', '铜仁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520602', '5206', '00,52,5206', '碧江区', '52', '贵州省', '5206', '铜仁市', '520602', '碧江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520603', '5206', '00,52,5206', '万山区', '52', '贵州省', '5206', '铜仁市', '520603', '万山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520621', '5206', '00,52,5206', '江口县', '52', '贵州省', '5206', '铜仁市', '520621', '江口县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520622', '5206', '00,52,5206', '玉屏侗族自治县', '52', '贵州省', '5206', '铜仁市', '520622', '玉屏侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520623', '5206', '00,52,5206', '石阡县', '52', '贵州省', '5206', '铜仁市', '520623', '石阡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520624', '5206', '00,52,5206', '思南县', '52', '贵州省', '5206', '铜仁市', '520624', '思南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520625', '5206', '00,52,5206', '印江土家族苗族自治县', '52', '贵州省', '5206', '铜仁市', '520625', '印江土家族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520626', '5206', '00,52,5206', '德江县', '52', '贵州省', '5206', '铜仁市', '520626', '德江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520627', '5206', '00,52,5206', '沿河土家族自治县', '52', '贵州省', '5206', '铜仁市', '520627', '沿河土家族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('520628', '5206', '00,52,5206', '松桃苗族自治县', '52', '贵州省', '5206', '铜仁市', '520628', '松桃苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5223', '52', '00,52', '黔西南布依族苗族自治州', '52', '贵州省', '5223', '黔西南布依族苗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522301', '5223', '00,52,5223', '兴义市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522301', '兴义市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522302', '5223', '00,52,5223', '兴仁市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522302', '兴仁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522323', '5223', '00,52,5223', '普安县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522323', '普安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522324', '5223', '00,52,5223', '晴隆县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522324', '晴隆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522325', '5223', '00,52,5223', '贞丰县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522325', '贞丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522326', '5223', '00,52,5223', '望谟县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522326', '望谟县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540235', '5402', '00,54,5402', '聂拉木县', '54', '西藏自治区', '5402', '日喀则市', '540235', '聂拉木县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430923', '4309', '00,43,4309', '安化县', '43', '湖南省', '4309', '益阳市', '430923', '安化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530523', '5305', '00,53,5305', '龙陵县', '53', '云南省', '5305', '保山市', '530523', '龙陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530524', '5305', '00,53,5305', '昌宁县', '53', '云南省', '5305', '保山市', '530524', '昌宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530581', '5305', '00,53,5305', '腾冲市', '53', '云南省', '5305', '保山市', '530581', '腾冲市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5306', '53', '00,53', '昭通市', '53', '云南省', '5306', '昭通市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530602', '5306', '00,53,5306', '昭阳区', '53', '云南省', '5306', '昭通市', '530602', '昭阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530621', '5306', '00,53,5306', '鲁甸县', '53', '云南省', '5306', '昭通市', '530621', '鲁甸县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530622', '5306', '00,53,5306', '巧家县', '53', '云南省', '5306', '昭通市', '530622', '巧家县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530623', '5306', '00,53,5306', '盐津县', '53', '云南省', '5306', '昭通市', '530623', '盐津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530624', '5306', '00,53,5306', '大关县', '53', '云南省', '5306', '昭通市', '530624', '大关县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530625', '5306', '00,53,5306', '永善县', '53', '云南省', '5306', '昭通市', '530625', '永善县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530626', '5306', '00,53,5306', '绥江县', '53', '云南省', '5306', '昭通市', '530626', '绥江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530627', '5306', '00,53,5306', '镇雄县', '53', '云南省', '5306', '昭通市', '530627', '镇雄县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530628', '5306', '00,53,5306', '彝良县', '53', '云南省', '5306', '昭通市', '530628', '彝良县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530629', '5306', '00,53,5306', '威信县', '53', '云南省', '5306', '昭通市', '530629', '威信县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530681', '5306', '00,53,5306', '水富市', '53', '云南省', '5306', '昭通市', '530681', '水富市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5307', '53', '00,53', '丽江市', '53', '云南省', '5307', '丽江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530702', '5307', '00,53,5307', '古城区', '53', '云南省', '5307', '丽江市', '530702', '古城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530721', '5307', '00,53,5307', '玉龙纳西族自治县', '53', '云南省', '5307', '丽江市', '530721', '玉龙纳西族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530722', '5307', '00,53,5307', '永胜县', '53', '云南省', '5307', '丽江市', '530722', '永胜县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530723', '5307', '00,53,5307', '华坪县', '53', '云南省', '5307', '丽江市', '530723', '华坪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530724', '5307', '00,53,5307', '宁蒗彝族自治县', '53', '云南省', '5307', '丽江市', '530724', '宁蒗彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5308', '53', '00,53', '普洱市', '53', '云南省', '5308', '普洱市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530802', '5308', '00,53,5308', '思茅区', '53', '云南省', '5308', '普洱市', '530802', '思茅区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530821', '5308', '00,53,5308', '宁洱哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530821', '宁洱哈尼族彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530822', '5308', '00,53,5308', '墨江哈尼族自治县', '53', '云南省', '5308', '普洱市', '530822', '墨江哈尼族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530823', '5308', '00,53,5308', '景东彝族自治县', '53', '云南省', '5308', '普洱市', '530823', '景东彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530824', '5308', '00,53,5308', '景谷傣族彝族自治县', '53', '云南省', '5308', '普洱市', '530824', '景谷傣族彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530825', '5308', '00,53,5308', '镇沅彝族哈尼族拉祜族自治县', '53', '云南省', '5308', '普洱市', '530825', '镇沅彝族哈尼族拉祜族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530826', '5308', '00,53,5308', '江城哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530826', '江城哈尼族彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530827', '5308', '00,53,5308', '孟连傣族拉祜族佤族自治县', '53', '云南省', '5308', '普洱市', '530827', '孟连傣族拉祜族佤族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530828', '5308', '00,53,5308', '澜沧拉祜族自治县', '53', '云南省', '5308', '普洱市', '530828', '澜沧拉祜族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530829', '5308', '00,53,5308', '西盟佤族自治县', '53', '云南省', '5308', '普洱市', '530829', '西盟佤族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5309', '53', '00,53', '临沧市', '53', '云南省', '5309', '临沧市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530902', '5309', '00,53,5309', '临翔区', '53', '云南省', '5309', '临沧市', '530902', '临翔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530921', '5309', '00,53,5309', '凤庆县', '53', '云南省', '5309', '临沧市', '530921', '凤庆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530922', '5309', '00,53,5309', '云县', '53', '云南省', '5309', '临沧市', '530922', '云县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530923', '5309', '00,53,5309', '永德县', '53', '云南省', '5309', '临沧市', '530923', '永德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530924', '5309', '00,53,5309', '镇康县', '53', '云南省', '5309', '临沧市', '530924', '镇康县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530925', '5309', '00,53,5309', '双江拉祜族佤族布朗族傣族自治县', '53', '云南省', '5309', '临沧市', '530925', '双江拉祜族佤族布朗族傣族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530926', '5309', '00,53,5309', '耿马傣族佤族自治县', '53', '云南省', '5309', '临沧市', '530926', '耿马傣族佤族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530927', '5309', '00,53,5309', '沧源佤族自治县', '53', '云南省', '5309', '临沧市', '530927', '沧源佤族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5323', '53', '00,53', '楚雄彝族自治州', '53', '云南省', '5323', '楚雄彝族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532301', '5323', '00,53,5323', '楚雄市', '53', '云南省', '5323', '楚雄彝族自治州', '532301', '楚雄市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532322', '5323', '00,53,5323', '双柏县', '53', '云南省', '5323', '楚雄彝族自治州', '532322', '双柏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532323', '5323', '00,53,5323', '牟定县', '53', '云南省', '5323', '楚雄彝族自治州', '532323', '牟定县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532324', '5323', '00,53,5323', '南华县', '53', '云南省', '5323', '楚雄彝族自治州', '532324', '南华县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532325', '5323', '00,53,5323', '姚安县', '53', '云南省', '5323', '楚雄彝族自治州', '532325', '姚安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532326', '5323', '00,53,5323', '大姚县', '53', '云南省', '5323', '楚雄彝族自治州', '532326', '大姚县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532327', '5323', '00,53,5323', '永仁县', '53', '云南省', '5323', '楚雄彝族自治州', '532327', '永仁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532328', '5323', '00,53,5323', '元谋县', '53', '云南省', '5323', '楚雄彝族自治州', '532328', '元谋县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532329', '5323', '00,53,5323', '武定县', '53', '云南省', '5323', '楚雄彝族自治州', '532329', '武定县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532331', '5323', '00,53,5323', '禄丰县', '53', '云南省', '5323', '楚雄彝族自治州', '532331', '禄丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5325', '53', '00,53', '红河哈尼族彝族自治州', '53', '云南省', '5325', '红河哈尼族彝族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532501', '5325', '00,53,5325', '个旧市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532501', '个旧市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532502', '5325', '00,53,5325', '开远市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532502', '开远市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532503', '5325', '00,53,5325', '蒙自市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532503', '蒙自市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532504', '5325', '00,53,5325', '弥勒市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532504', '弥勒市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532523', '5325', '00,53,5325', '屏边苗族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532523', '屏边苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532524', '5325', '00,53,5325', '建水县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532524', '建水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532525', '5325', '00,53,5325', '石屏县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532525', '石屏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532527', '5325', '00,53,5325', '泸西县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532527', '泸西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532528', '5325', '00,53,5325', '元阳县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532528', '元阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532529', '5325', '00,53,5325', '红河县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532529', '红河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532530', '5325', '00,53,5325', '金平苗族瑶族傣族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532530', '金平苗族瑶族傣族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532531', '5325', '00,53,5325', '绿春县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532531', '绿春县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532532', '5325', '00,53,5325', '河口瑶族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532532', '河口瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451121', '4511', '00,45,4511', '昭平县', '45', '广西壮族自治区', '4511', '贺州市', '451121', '昭平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430103', '4301', '00,43,4301', '天心区', '43', '湖南省', '4301', '长沙市', '430103', '天心区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('511681', '5116', '00,51,5116', '华蓥市', '51', '四川省', '5116', '广安市', '511681', '华蓥市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('430104', '4301', '00,43,4301', '岳麓区', '43', '湖南省', '4301', '长沙市', '430104', '岳麓区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451123', '4511', '00,45,4511', '富川瑶族自治县', '45', '广西壮族自治区', '4511', '贺州市', '451123', '富川瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4512', '45', '00,45', '河池市', '45', '广西壮族自治区', '4512', '河池市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451202', '4512', '00,45,4512', '金城江区', '45', '广西壮族自治区', '4512', '河池市', '451202', '金城江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451203', '4512', '00,45,4512', '宜州区', '45', '广西壮族自治区', '4512', '河池市', '451203', '宜州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451221', '4512', '00,45,4512', '南丹县', '45', '广西壮族自治区', '4512', '河池市', '451221', '南丹县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451222', '4512', '00,45,4512', '天峨县', '45', '广西壮族自治区', '4512', '河池市', '451222', '天峨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451223', '4512', '00,45,4512', '凤山县', '45', '广西壮族自治区', '4512', '河池市', '451223', '凤山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451224', '4512', '00,45,4512', '东兰县', '45', '广西壮族自治区', '4512', '河池市', '451224', '东兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451225', '4512', '00,45,4512', '罗城仫佬族自治县', '45', '广西壮族自治区', '4512', '河池市', '451225', '罗城仫佬族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451226', '4512', '00,45,4512', '环江毛南族自治县', '45', '广西壮族自治区', '4512', '河池市', '451226', '环江毛南族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451227', '4512', '00,45,4512', '巴马瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451227', '巴马瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451228', '4512', '00,45,4512', '都安瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451228', '都安瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451229', '4512', '00,45,4512', '大化瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451229', '大化瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4513', '45', '00,45', '来宾市', '45', '广西壮族自治区', '4513', '来宾市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451302', '4513', '00,45,4513', '兴宾区', '45', '广西壮族自治区', '4513', '来宾市', '451302', '兴宾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451321', '4513', '00,45,4513', '忻城县', '45', '广西壮族自治区', '4513', '来宾市', '451321', '忻城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451322', '4513', '00,45,4513', '象州县', '45', '广西壮族自治区', '4513', '来宾市', '451322', '象州县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451323', '4513', '00,45,4513', '武宣县', '45', '广西壮族自治区', '4513', '来宾市', '451323', '武宣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451324', '4513', '00,45,4513', '金秀瑶族自治县', '45', '广西壮族自治区', '4513', '来宾市', '451324', '金秀瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451381', '4513', '00,45,4513', '合山市', '45', '广西壮族自治区', '4513', '来宾市', '451381', '合山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4514', '45', '00,45', '崇左市', '45', '广西壮族自治区', '4514', '崇左市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451402', '4514', '00,45,4514', '江州区', '45', '广西壮族自治区', '4514', '崇左市', '451402', '江州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451421', '4514', '00,45,4514', '扶绥县', '45', '广西壮族自治区', '4514', '崇左市', '451421', '扶绥县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451422', '4514', '00,45,4514', '宁明县', '45', '广西壮族自治区', '4514', '崇左市', '451422', '宁明县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451423', '4514', '00,45,4514', '龙州县', '45', '广西壮族自治区', '4514', '崇左市', '451423', '龙州县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451424', '4514', '00,45,4514', '大新县', '45', '广西壮族自治区', '4514', '崇左市', '451424', '大新县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451425', '4514', '00,45,4514', '天等县', '45', '广西壮族自治区', '4514', '崇左市', '451425', '天等县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451481', '4514', '00,45,4514', '凭祥市', '45', '广西壮族自治区', '4514', '崇左市', '451481', '凭祥市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('46', '00', '00', '海南省', '46', '海南省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4601', '46', '00,46', '海口市', '46', '海南省', '4601', '海口市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460105', '4601', '00,46,4601', '秀英区', '46', '海南省', '4601', '海口市', '460105', '秀英区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460106', '4601', '00,46,4601', '龙华区', '46', '海南省', '4601', '海口市', '460106', '龙华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460107', '4601', '00,46,4601', '琼山区', '46', '海南省', '4601', '海口市', '460107', '琼山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460108', '4601', '00,46,4601', '美兰区', '46', '海南省', '4601', '海口市', '460108', '美兰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4602', '46', '00,46', '三亚市', '46', '海南省', '4602', '三亚市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460202', '4602', '00,46,4602', '海棠区', '46', '海南省', '4602', '三亚市', '460202', '海棠区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460203', '4602', '00,46,4602', '吉阳区', '46', '海南省', '4602', '三亚市', '460203', '吉阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460204', '4602', '00,46,4602', '天涯区', '46', '海南省', '4602', '三亚市', '460204', '天涯区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460205', '4602', '00,46,4602', '崖州区', '46', '海南省', '4602', '三亚市', '460205', '崖州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4603', '46', '00,46', '三沙市', '46', '海南省', '4603', '三沙市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('460400', '4604', '00,46,4604', '儋州市', '46', '海南省', '4604', '儋州市', '460400', '儋州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('4690', '46', '00,46', '省直辖县级行政区', '46', '海南省', '4690', '省直辖县级行政区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469001', '4690', '00,46,4690', '五指山市', '46', '海南省', '4690', '省直辖县级行政区', '469001', '五指山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469002', '4690', '00,46,4690', '琼海市', '46', '海南省', '4690', '省直辖县级行政区', '469002', '琼海市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469005', '4690', '00,46,4690', '文昌市', '46', '海南省', '4690', '省直辖县级行政区', '469005', '文昌市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469006', '4690', '00,46,4690', '万宁市', '46', '海南省', '4690', '省直辖县级行政区', '469006', '万宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469007', '4690', '00,46,4690', '东方市', '46', '海南省', '4690', '省直辖县级行政区', '469007', '东方市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469021', '4690', '00,46,4690', '定安县', '46', '海南省', '4690', '省直辖县级行政区', '469021', '定安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469022', '4690', '00,46,4690', '屯昌县', '46', '海南省', '4690', '省直辖县级行政区', '469022', '屯昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469023', '4690', '00,46,4690', '澄迈县', '46', '海南省', '4690', '省直辖县级行政区', '469023', '澄迈县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469024', '4690', '00,46,4690', '临高县', '46', '海南省', '4690', '省直辖县级行政区', '469024', '临高县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469025', '4690', '00,46,4690', '白沙黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469025', '白沙黎族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469026', '4690', '00,46,4690', '昌江黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469026', '昌江黎族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469027', '4690', '00,46,4690', '乐东黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469027', '乐东黎族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469028', '4690', '00,46,4690', '陵水黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469028', '陵水黎族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469029', '4690', '00,46,4690', '保亭黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469029', '保亭黎族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('469030', '4690', '00,46,4690', '琼中黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469030', '琼中黎族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('50', '00', '00', '重庆市', '50', '重庆市', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5001', '50', '00,50', '重庆市', '50', '重庆市', '5001', '重庆市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500101', '5001', '00,50,5001', '万州区', '50', '重庆市', '5001', '重庆市', '500101', '万州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500102', '5001', '00,50,5001', '涪陵区', '50', '重庆市', '5001', '重庆市', '500102', '涪陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500103', '5001', '00,50,5001', '渝中区', '50', '重庆市', '5001', '重庆市', '500103', '渝中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500104', '5001', '00,50,5001', '大渡口区', '50', '重庆市', '5001', '重庆市', '500104', '大渡口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500105', '5001', '00,50,5001', '江北区', '50', '重庆市', '5001', '重庆市', '500105', '江北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500106', '5001', '00,50,5001', '沙坪坝区', '50', '重庆市', '5001', '重庆市', '500106', '沙坪坝区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500107', '5001', '00,50,5001', '九龙坡区', '50', '重庆市', '5001', '重庆市', '500107', '九龙坡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500108', '5001', '00,50,5001', '南岸区', '50', '重庆市', '5001', '重庆市', '500108', '南岸区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500109', '5001', '00,50,5001', '北碚区', '50', '重庆市', '5001', '重庆市', '500109', '北碚区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('500110', '5001', '00,50,5001', '綦江区', '50', '重庆市', '5001', '重庆市', '500110', '綦江区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522328', '5223', '00,52,5223', '安龙县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522328', '安龙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5226', '52', '00,52', '黔东南苗族侗族自治州', '52', '贵州省', '5226', '黔东南苗族侗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522601', '5226', '00,52,5226', '凯里市', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522601', '凯里市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522622', '5226', '00,52,5226', '黄平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522622', '黄平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522623', '5226', '00,52,5226', '施秉县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522623', '施秉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522624', '5226', '00,52,5226', '三穗县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522624', '三穗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522625', '5226', '00,52,5226', '镇远县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522625', '镇远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522626', '5226', '00,52,5226', '岑巩县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522626', '岑巩县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522627', '5226', '00,52,5226', '天柱县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522627', '天柱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522628', '5226', '00,52,5226', '锦屏县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522628', '锦屏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522629', '5226', '00,52,5226', '剑河县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522629', '剑河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522630', '5226', '00,52,5226', '台江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522630', '台江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522631', '5226', '00,52,5226', '黎平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522631', '黎平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522632', '5226', '00,52,5226', '榕江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522632', '榕江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522633', '5226', '00,52,5226', '从江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522633', '从江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522634', '5226', '00,52,5226', '雷山县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522634', '雷山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522635', '5226', '00,52,5226', '麻江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522635', '麻江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522636', '5226', '00,52,5226', '丹寨县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522636', '丹寨县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5227', '52', '00,52', '黔南布依族苗族自治州', '52', '贵州省', '5227', '黔南布依族苗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522701', '5227', '00,52,5227', '都匀市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522701', '都匀市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522702', '5227', '00,52,5227', '福泉市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522702', '福泉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522722', '5227', '00,52,5227', '荔波县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522722', '荔波县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522723', '5227', '00,52,5227', '贵定县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522723', '贵定县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522725', '5227', '00,52,5227', '瓮安县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522725', '瓮安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522726', '5227', '00,52,5227', '独山县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522726', '独山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522727', '5227', '00,52,5227', '平塘县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522727', '平塘县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522728', '5227', '00,52,5227', '罗甸县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522728', '罗甸县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522729', '5227', '00,52,5227', '长顺县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522729', '长顺县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522730', '5227', '00,52,5227', '龙里县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522730', '龙里县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522731', '5227', '00,52,5227', '惠水县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522731', '惠水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('522732', '5227', '00,52,5227', '三都水族自治县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522732', '三都水族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('53', '00', '00', '云南省', '53', '云南省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5301', '53', '00,53', '昆明市', '53', '云南省', '5301', '昆明市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530102', '5301', '00,53,5301', '五华区', '53', '云南省', '5301', '昆明市', '530102', '五华区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530103', '5301', '00,53,5301', '盘龙区', '53', '云南省', '5301', '昆明市', '530103', '盘龙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530111', '5301', '00,53,5301', '官渡区', '53', '云南省', '5301', '昆明市', '530111', '官渡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530112', '5301', '00,53,5301', '西山区', '53', '云南省', '5301', '昆明市', '530112', '西山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530113', '5301', '00,53,5301', '东川区', '53', '云南省', '5301', '昆明市', '530113', '东川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530114', '5301', '00,53,5301', '呈贡区', '53', '云南省', '5301', '昆明市', '530114', '呈贡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530115', '5301', '00,53,5301', '晋宁区', '53', '云南省', '5301', '昆明市', '530115', '晋宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530124', '5301', '00,53,5301', '富民县', '53', '云南省', '5301', '昆明市', '530124', '富民县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530125', '5301', '00,53,5301', '宜良县', '53', '云南省', '5301', '昆明市', '530125', '宜良县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530126', '5301', '00,53,5301', '石林彝族自治县', '53', '云南省', '5301', '昆明市', '530126', '石林彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530127', '5301', '00,53,5301', '嵩明县', '53', '云南省', '5301', '昆明市', '530127', '嵩明县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530128', '5301', '00,53,5301', '禄劝彝族苗族自治县', '53', '云南省', '5301', '昆明市', '530128', '禄劝彝族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530129', '5301', '00,53,5301', '寻甸回族彝族自治县', '53', '云南省', '5301', '昆明市', '530129', '寻甸回族彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530181', '5301', '00,53,5301', '安宁市', '53', '云南省', '5301', '昆明市', '530181', '安宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5303', '53', '00,53', '曲靖市', '53', '云南省', '5303', '曲靖市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530302', '5303', '00,53,5303', '麒麟区', '53', '云南省', '5303', '曲靖市', '530302', '麒麟区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530303', '5303', '00,53,5303', '沾益区', '53', '云南省', '5303', '曲靖市', '530303', '沾益区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530304', '5303', '00,53,5303', '马龙区', '53', '云南省', '5303', '曲靖市', '530304', '马龙区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530322', '5303', '00,53,5303', '陆良县', '53', '云南省', '5303', '曲靖市', '530322', '陆良县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530323', '5303', '00,53,5303', '师宗县', '53', '云南省', '5303', '曲靖市', '530323', '师宗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530324', '5303', '00,53,5303', '罗平县', '53', '云南省', '5303', '曲靖市', '530324', '罗平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530325', '5303', '00,53,5303', '富源县', '53', '云南省', '5303', '曲靖市', '530325', '富源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530326', '5303', '00,53,5303', '会泽县', '53', '云南省', '5303', '曲靖市', '530326', '会泽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530381', '5303', '00,53,5303', '宣威市', '53', '云南省', '5303', '曲靖市', '530381', '宣威市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5304', '53', '00,53', '玉溪市', '53', '云南省', '5304', '玉溪市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530402', '5304', '00,53,5304', '红塔区', '53', '云南省', '5304', '玉溪市', '530402', '红塔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530403', '5304', '00,53,5304', '江川区', '53', '云南省', '5304', '玉溪市', '530403', '江川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530423', '5304', '00,53,5304', '通海县', '53', '云南省', '5304', '玉溪市', '530423', '通海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530424', '5304', '00,53,5304', '华宁县', '53', '云南省', '5304', '玉溪市', '530424', '华宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530425', '5304', '00,53,5304', '易门县', '53', '云南省', '5304', '玉溪市', '530425', '易门县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530426', '5304', '00,53,5304', '峨山彝族自治县', '53', '云南省', '5304', '玉溪市', '530426', '峨山彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530427', '5304', '00,53,5304', '新平彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530427', '新平彝族傣族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530428', '5304', '00,53,5304', '元江哈尼族彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530428', '元江哈尼族彝族傣族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530481', '5304', '00,53,5304', '澄江市', '53', '云南省', '5304', '玉溪市', '530481', '澄江市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5305', '53', '00,53', '保山市', '53', '云南省', '5305', '保山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530502', '5305', '00,53,5305', '隆阳区', '53', '云南省', '5305', '保山市', '530502', '隆阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654221', '6542', '00,65,6542', '额敏县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654221', '额敏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654223', '6542', '00,65,6542', '沙湾县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654223', '沙湾县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654224', '6542', '00,65,6542', '托里县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654224', '托里县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654225', '6542', '00,65,6542', '裕民县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654225', '裕民县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654226', '6542', '00,65,6542', '和布克赛尔蒙古自治县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654226', '和布克赛尔蒙古自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6543', '65', '00,65', '阿勒泰地区', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654301', '6543', '00,65,6543', '阿勒泰市', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654301', '阿勒泰市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654321', '6543', '00,65,6543', '布尔津县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654321', '布尔津县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654322', '6543', '00,65,6543', '富蕴县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654322', '富蕴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654323', '6543', '00,65,6543', '福海县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654323', '福海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654324', '6543', '00,65,6543', '哈巴河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654324', '哈巴河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654325', '6543', '00,65,6543', '青河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654325', '青河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654326', '6543', '00,65,6543', '吉木乃县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654326', '吉木乃县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6590', '65', '00,65', '自治区直辖县级行政区', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659001', '6590', '00,65,6590', '石河子市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659001', '石河子市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('451122', '4511', '00,45,4511', '钟山县', '45', '广西壮族自治区', '4511', '贺州市', '451122', '钟山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650521', '6505', '00,65,6505', '巴里坤哈萨克自治县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650521', '巴里坤哈萨克自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650522', '6505', '00,65,6505', '伊吾县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650522', '伊吾县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6523', '65', '00,65', '昌吉回族自治州', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652301', '6523', '00,65,6523', '昌吉市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652301', '昌吉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652302', '6523', '00,65,6523', '阜康市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652302', '阜康市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652323', '6523', '00,65,6523', '呼图壁县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652323', '呼图壁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652324', '6523', '00,65,6523', '玛纳斯县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652324', '玛纳斯县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652325', '6523', '00,65,6523', '奇台县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652325', '奇台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652327', '6523', '00,65,6523', '吉木萨尔县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652327', '吉木萨尔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652328', '6523', '00,65,6523', '木垒哈萨克自治县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652328', '木垒哈萨克自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6527', '65', '00,65', '博尔塔拉蒙古自治州', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652701', '6527', '00,65,6527', '博乐市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652701', '博乐市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652702', '6527', '00,65,6527', '阿拉山口市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652702', '阿拉山口市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652722', '6527', '00,65,6527', '精河县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652722', '精河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652723', '6527', '00,65,6527', '温泉县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652723', '温泉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6528', '65', '00,65', '巴音郭楞蒙古自治州', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652801', '6528', '00,65,6528', '库尔勒市', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652801', '库尔勒市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652822', '6528', '00,65,6528', '轮台县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652822', '轮台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652823', '6528', '00,65,6528', '尉犁县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652823', '尉犁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652824', '6528', '00,65,6528', '若羌县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652824', '若羌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652825', '6528', '00,65,6528', '且末县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652825', '且末县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652826', '6528', '00,65,6528', '焉耆回族自治县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652826', '焉耆回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652827', '6528', '00,65,6528', '和静县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652827', '和静县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652828', '6528', '00,65,6528', '和硕县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652828', '和硕县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652829', '6528', '00,65,6528', '博湖县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652829', '博湖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6529', '65', '00,65', '阿克苏地区', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652901', '6529', '00,65,6529', '阿克苏市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652901', '阿克苏市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652902', '6529', '00,65,6529', '库车市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652902', '库车市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652922', '6529', '00,65,6529', '温宿县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652922', '温宿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652924', '6529', '00,65,6529', '沙雅县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652924', '沙雅县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652925', '6529', '00,65,6529', '新和县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652925', '新和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652926', '6529', '00,65,6529', '拜城县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652926', '拜城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652927', '6529', '00,65,6529', '乌什县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652927', '乌什县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652928', '6529', '00,65,6529', '阿瓦提县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652928', '阿瓦提县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('652929', '6529', '00,65,6529', '柯坪县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652929', '柯坪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6530', '65', '00,65', '克孜勒苏柯尔克孜自治州', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653001', '6530', '00,65,6530', '阿图什市', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653001', '阿图什市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653022', '6530', '00,65,6530', '阿克陶县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653022', '阿克陶县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653023', '6530', '00,65,6530', '阿合奇县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653023', '阿合奇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653024', '6530', '00,65,6530', '乌恰县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653024', '乌恰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6531', '65', '00,65', '喀什地区', '65', '新疆维吾尔自治区', '6531', '喀什地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653101', '6531', '00,65,6531', '喀什市', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653101', '喀什市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653121', '6531', '00,65,6531', '疏附县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653121', '疏附县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653122', '6531', '00,65,6531', '疏勒县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653122', '疏勒县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653123', '6531', '00,65,6531', '英吉沙县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653123', '英吉沙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653124', '6531', '00,65,6531', '泽普县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653124', '泽普县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653125', '6531', '00,65,6531', '莎车县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653125', '莎车县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653126', '6531', '00,65,6531', '叶城县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653126', '叶城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653127', '6531', '00,65,6531', '麦盖提县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653127', '麦盖提县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653128', '6531', '00,65,6531', '岳普湖县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653128', '岳普湖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653129', '6531', '00,65,6531', '伽师县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653129', '伽师县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653130', '6531', '00,65,6531', '巴楚县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653130', '巴楚县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653131', '6531', '00,65,6531', '塔什库尔干塔吉克自治县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653131', '塔什库尔干塔吉克自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6532', '65', '00,65', '和田地区', '65', '新疆维吾尔自治区', '6532', '和田地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653201', '6532', '00,65,6532', '和田市', '65', '新疆维吾尔自治区', '6532', '和田地区', '653201', '和田市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653221', '6532', '00,65,6532', '和田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653221', '和田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653222', '6532', '00,65,6532', '墨玉县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653222', '墨玉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653223', '6532', '00,65,6532', '皮山县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653223', '皮山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653224', '6532', '00,65,6532', '洛浦县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653224', '洛浦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610730', '6107', '00,61,6107', '佛坪县', '61', '陕西省', '6107', '汉中市', '610730', '佛坪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6108', '61', '00,61', '榆林市', '61', '陕西省', '6108', '榆林市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610802', '6108', '00,61,6108', '榆阳区', '61', '陕西省', '6108', '榆林市', '610802', '榆阳区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610803', '6108', '00,61,6108', '横山区', '61', '陕西省', '6108', '榆林市', '610803', '横山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610822', '6108', '00,61,6108', '府谷县', '61', '陕西省', '6108', '榆林市', '610822', '府谷县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610824', '6108', '00,61,6108', '靖边县', '61', '陕西省', '6108', '榆林市', '610824', '靖边县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610825', '6108', '00,61,6108', '定边县', '61', '陕西省', '6108', '榆林市', '610825', '定边县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610826', '6108', '00,61,6108', '绥德县', '61', '陕西省', '6108', '榆林市', '610826', '绥德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610827', '6108', '00,61,6108', '米脂县', '61', '陕西省', '6108', '榆林市', '610827', '米脂县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610828', '6108', '00,61,6108', '佳县', '61', '陕西省', '6108', '榆林市', '610828', '佳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610829', '6108', '00,61,6108', '吴堡县', '61', '陕西省', '6108', '榆林市', '610829', '吴堡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610830', '6108', '00,61,6108', '清涧县', '61', '陕西省', '6108', '榆林市', '610830', '清涧县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610831', '6108', '00,61,6108', '子洲县', '61', '陕西省', '6108', '榆林市', '610831', '子洲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610881', '6108', '00,61,6108', '神木市', '61', '陕西省', '6108', '榆林市', '610881', '神木市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6109', '61', '00,61', '安康市', '61', '陕西省', '6109', '安康市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610902', '6109', '00,61,6109', '汉滨区', '61', '陕西省', '6109', '安康市', '610902', '汉滨区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610921', '6109', '00,61,6109', '汉阴县', '61', '陕西省', '6109', '安康市', '610921', '汉阴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610922', '6109', '00,61,6109', '石泉县', '61', '陕西省', '6109', '安康市', '610922', '石泉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610923', '6109', '00,61,6109', '宁陕县', '61', '陕西省', '6109', '安康市', '610923', '宁陕县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610924', '6109', '00,61,6109', '紫阳县', '61', '陕西省', '6109', '安康市', '610924', '紫阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610925', '6109', '00,61,6109', '岚皋县', '61', '陕西省', '6109', '安康市', '610925', '岚皋县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610926', '6109', '00,61,6109', '平利县', '61', '陕西省', '6109', '安康市', '610926', '平利县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610927', '6109', '00,61,6109', '镇坪县', '61', '陕西省', '6109', '安康市', '610927', '镇坪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610928', '6109', '00,61,6109', '旬阳县', '61', '陕西省', '6109', '安康市', '610928', '旬阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610929', '6109', '00,61,6109', '白河县', '61', '陕西省', '6109', '安康市', '610929', '白河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6110', '61', '00,61', '商洛市', '61', '陕西省', '6110', '商洛市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('611002', '6110', '00,61,6110', '商州区', '61', '陕西省', '6110', '商洛市', '611002', '商州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('611021', '6110', '00,61,6110', '洛南县', '61', '陕西省', '6110', '商洛市', '611021', '洛南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('611022', '6110', '00,61,6110', '丹凤县', '61', '陕西省', '6110', '商洛市', '611022', '丹凤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('611023', '6110', '00,61,6110', '商南县', '61', '陕西省', '6110', '商洛市', '611023', '商南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('611024', '6110', '00,61,6110', '山阳县', '61', '陕西省', '6110', '商洛市', '611024', '山阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('611025', '6110', '00,61,6110', '镇安县', '61', '陕西省', '6110', '商洛市', '611025', '镇安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('611026', '6110', '00,61,6110', '柞水县', '61', '陕西省', '6110', '商洛市', '611026', '柞水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('62', '00', '00', '甘肃省', '62', '甘肃省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6201', '62', '00,62', '兰州市', '62', '甘肃省', '6201', '兰州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620102', '6201', '00,62,6201', '城关区', '62', '甘肃省', '6201', '兰州市', '620102', '城关区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620103', '6201', '00,62,6201', '七里河区', '62', '甘肃省', '6201', '兰州市', '620103', '七里河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620104', '6201', '00,62,6201', '西固区', '62', '甘肃省', '6201', '兰州市', '620104', '西固区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620105', '6201', '00,62,6201', '安宁区', '62', '甘肃省', '6201', '兰州市', '620105', '安宁区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620111', '6201', '00,62,6201', '红古区', '62', '甘肃省', '6201', '兰州市', '620111', '红古区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620122', '6201', '00,62,6201', '皋兰县', '62', '甘肃省', '6201', '兰州市', '620122', '皋兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620123', '6201', '00,62,6201', '榆中县', '62', '甘肃省', '6201', '兰州市', '620123', '榆中县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6202', '62', '00,62', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620200', '6202', '00,62,6202', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '620200', '嘉峪关市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6203', '62', '00,62', '金昌市', '62', '甘肃省', '6203', '金昌市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620302', '6203', '00,62,6203', '金川区', '62', '甘肃省', '6203', '金昌市', '620302', '金川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620321', '6203', '00,62,6203', '永昌县', '62', '甘肃省', '6203', '金昌市', '620321', '永昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6204', '62', '00,62', '白银市', '62', '甘肃省', '6204', '白银市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620402', '6204', '00,62,6204', '白银区', '62', '甘肃省', '6204', '白银市', '620402', '白银区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620403', '6204', '00,62,6204', '平川区', '62', '甘肃省', '6204', '白银市', '620403', '平川区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620421', '6204', '00,62,6204', '靖远县', '62', '甘肃省', '6204', '白银市', '620421', '靖远县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620422', '6204', '00,62,6204', '会宁县', '62', '甘肃省', '6204', '白银市', '620422', '会宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620423', '6204', '00,62,6204', '景泰县', '62', '甘肃省', '6204', '白银市', '620423', '景泰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6205', '62', '00,62', '天水市', '62', '甘肃省', '6205', '天水市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620502', '6205', '00,62,6205', '秦州区', '62', '甘肃省', '6205', '天水市', '620502', '秦州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620503', '6205', '00,62,6205', '麦积区', '62', '甘肃省', '6205', '天水市', '620503', '麦积区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620521', '6205', '00,62,6205', '清水县', '62', '甘肃省', '6205', '天水市', '620521', '清水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620522', '6205', '00,62,6205', '秦安县', '62', '甘肃省', '6205', '天水市', '620522', '秦安县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620523', '6205', '00,62,6205', '甘谷县', '62', '甘肃省', '6205', '天水市', '620523', '甘谷县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623027', '6230', '00,62,6230', '夏河县', '62', '甘肃省', '6230', '甘南藏族自治州', '623027', '夏河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('63', '00', '00', '青海省', '63', '青海省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6301', '63', '00,63', '西宁市', '63', '青海省', '6301', '西宁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630102', '6301', '00,63,6301', '城东区', '63', '青海省', '6301', '西宁市', '630102', '城东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630103', '6301', '00,63,6301', '城中区', '63', '青海省', '6301', '西宁市', '630103', '城中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630104', '6301', '00,63,6301', '城西区', '63', '青海省', '6301', '西宁市', '630104', '城西区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630105', '6301', '00,63,6301', '城北区', '63', '青海省', '6301', '西宁市', '630105', '城北区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630106', '6301', '00,63,6301', '湟中区', '63', '青海省', '6301', '西宁市', '630106', '湟中区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630121', '6301', '00,63,6301', '大通回族土族自治县', '63', '青海省', '6301', '西宁市', '630121', '大通回族土族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630123', '6301', '00,63,6301', '湟源县', '63', '青海省', '6301', '西宁市', '630123', '湟源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6302', '63', '00,63', '海东市', '63', '青海省', '6302', '海东市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630202', '6302', '00,63,6302', '乐都区', '63', '青海省', '6302', '海东市', '630202', '乐都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630203', '6302', '00,63,6302', '平安区', '63', '青海省', '6302', '海东市', '630203', '平安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630222', '6302', '00,63,6302', '民和回族土族自治县', '63', '青海省', '6302', '海东市', '630222', '民和回族土族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630223', '6302', '00,63,6302', '互助土族自治县', '63', '青海省', '6302', '海东市', '630223', '互助土族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630224', '6302', '00,63,6302', '化隆回族自治县', '63', '青海省', '6302', '海东市', '630224', '化隆回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('630225', '6302', '00,63,6302', '循化撒拉族自治县', '63', '青海省', '6302', '海东市', '630225', '循化撒拉族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6322', '63', '00,63', '海北藏族自治州', '63', '青海省', '6322', '海北藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632221', '6322', '00,63,6322', '门源回族自治县', '63', '青海省', '6322', '海北藏族自治州', '632221', '门源回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632222', '6322', '00,63,6322', '祁连县', '63', '青海省', '6322', '海北藏族自治州', '632222', '祁连县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632223', '6322', '00,63,6322', '海晏县', '63', '青海省', '6322', '海北藏族自治州', '632223', '海晏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632224', '6322', '00,63,6322', '刚察县', '63', '青海省', '6322', '海北藏族自治州', '632224', '刚察县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6323', '63', '00,63', '黄南藏族自治州', '63', '青海省', '6323', '黄南藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632321', '6323', '00,63,6323', '同仁县', '63', '青海省', '6323', '黄南藏族自治州', '632321', '同仁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632322', '6323', '00,63,6323', '尖扎县', '63', '青海省', '6323', '黄南藏族自治州', '632322', '尖扎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632323', '6323', '00,63,6323', '泽库县', '63', '青海省', '6323', '黄南藏族自治州', '632323', '泽库县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632324', '6323', '00,63,6323', '河南蒙古族自治县', '63', '青海省', '6323', '黄南藏族自治州', '632324', '河南蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6325', '63', '00,63', '海南藏族自治州', '63', '青海省', '6325', '海南藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632521', '6325', '00,63,6325', '共和县', '63', '青海省', '6325', '海南藏族自治州', '632521', '共和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632522', '6325', '00,63,6325', '同德县', '63', '青海省', '6325', '海南藏族自治州', '632522', '同德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632523', '6325', '00,63,6325', '贵德县', '63', '青海省', '6325', '海南藏族自治州', '632523', '贵德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632524', '6325', '00,63,6325', '兴海县', '63', '青海省', '6325', '海南藏族自治州', '632524', '兴海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632525', '6325', '00,63,6325', '贵南县', '63', '青海省', '6325', '海南藏族自治州', '632525', '贵南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6326', '63', '00,63', '果洛藏族自治州', '63', '青海省', '6326', '果洛藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632621', '6326', '00,63,6326', '玛沁县', '63', '青海省', '6326', '果洛藏族自治州', '632621', '玛沁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632622', '6326', '00,63,6326', '班玛县', '63', '青海省', '6326', '果洛藏族自治州', '632622', '班玛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632623', '6326', '00,63,6326', '甘德县', '63', '青海省', '6326', '果洛藏族自治州', '632623', '甘德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('530521', '5305', '00,53,5305', '施甸县', '53', '云南省', '5305', '保山市', '530521', '施甸县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623026', '6230', '00,62,6230', '碌曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623026', '碌曲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659002', '6590', '00,65,6590', '阿拉尔市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659002', '阿拉尔市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659003', '6590', '00,65,6590', '图木舒克市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659003', '图木舒克市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659004', '6590', '00,65,6590', '五家渠市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659004', '五家渠市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659005', '6590', '00,65,6590', '北屯市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659005', '北屯市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659006', '6590', '00,65,6590', '铁门关市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659006', '铁门关市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659007', '6590', '00,65,6590', '双河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659007', '双河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659008', '6590', '00,65,6590', '可克达拉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659008', '可克达拉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659009', '6590', '00,65,6590', '昆玉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659009', '昆玉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('659010', '6590', '00,65,6590', '胡杨河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659010', '胡杨河市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('71', '00', '00', '台湾省', '71', '台湾省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('81', '00', '00', '香港特别行政区', '81', '香港特别行政区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('82', '00', '00', '澳门特别行政区', '82', '澳门特别行政区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610302', '6103', '00,61,6103', '渭滨区', '61', '陕西省', '6103', '宝鸡市', '610302', '渭滨区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610303', '6103', '00,61,6103', '金台区', '61', '陕西省', '6103', '宝鸡市', '610303', '金台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610304', '6103', '00,61,6103', '陈仓区', '61', '陕西省', '6103', '宝鸡市', '610304', '陈仓区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610322', '6103', '00,61,6103', '凤翔县', '61', '陕西省', '6103', '宝鸡市', '610322', '凤翔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610323', '6103', '00,61,6103', '岐山县', '61', '陕西省', '6103', '宝鸡市', '610323', '岐山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610324', '6103', '00,61,6103', '扶风县', '61', '陕西省', '6103', '宝鸡市', '610324', '扶风县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610326', '6103', '00,61,6103', '眉县', '61', '陕西省', '6103', '宝鸡市', '610326', '眉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610327', '6103', '00,61,6103', '陇县', '61', '陕西省', '6103', '宝鸡市', '610327', '陇县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610328', '6103', '00,61,6103', '千阳县', '61', '陕西省', '6103', '宝鸡市', '610328', '千阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610329', '6103', '00,61,6103', '麟游县', '61', '陕西省', '6103', '宝鸡市', '610329', '麟游县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610330', '6103', '00,61,6103', '凤县', '61', '陕西省', '6103', '宝鸡市', '610330', '凤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610331', '6103', '00,61,6103', '太白县', '61', '陕西省', '6103', '宝鸡市', '610331', '太白县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6104', '61', '00,61', '咸阳市', '61', '陕西省', '6104', '咸阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610402', '6104', '00,61,6104', '秦都区', '61', '陕西省', '6104', '咸阳市', '610402', '秦都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610403', '6104', '00,61,6104', '杨陵区', '61', '陕西省', '6104', '咸阳市', '610403', '杨陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610404', '6104', '00,61,6104', '渭城区', '61', '陕西省', '6104', '咸阳市', '610404', '渭城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610422', '6104', '00,61,6104', '三原县', '61', '陕西省', '6104', '咸阳市', '610422', '三原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610423', '6104', '00,61,6104', '泾阳县', '61', '陕西省', '6104', '咸阳市', '610423', '泾阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610424', '6104', '00,61,6104', '乾县', '61', '陕西省', '6104', '咸阳市', '610424', '乾县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610425', '6104', '00,61,6104', '礼泉县', '61', '陕西省', '6104', '咸阳市', '610425', '礼泉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610426', '6104', '00,61,6104', '永寿县', '61', '陕西省', '6104', '咸阳市', '610426', '永寿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610428', '6104', '00,61,6104', '长武县', '61', '陕西省', '6104', '咸阳市', '610428', '长武县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610429', '6104', '00,61,6104', '旬邑县', '61', '陕西省', '6104', '咸阳市', '610429', '旬邑县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610430', '6104', '00,61,6104', '淳化县', '61', '陕西省', '6104', '咸阳市', '610430', '淳化县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610431', '6104', '00,61,6104', '武功县', '61', '陕西省', '6104', '咸阳市', '610431', '武功县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610481', '6104', '00,61,6104', '兴平市', '61', '陕西省', '6104', '咸阳市', '610481', '兴平市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610482', '6104', '00,61,6104', '彬州市', '61', '陕西省', '6104', '咸阳市', '610482', '彬州市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6105', '61', '00,61', '渭南市', '61', '陕西省', '6105', '渭南市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610502', '6105', '00,61,6105', '临渭区', '61', '陕西省', '6105', '渭南市', '610502', '临渭区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610503', '6105', '00,61,6105', '华州区', '61', '陕西省', '6105', '渭南市', '610503', '华州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610522', '6105', '00,61,6105', '潼关县', '61', '陕西省', '6105', '渭南市', '610522', '潼关县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610523', '6105', '00,61,6105', '大荔县', '61', '陕西省', '6105', '渭南市', '610523', '大荔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610524', '6105', '00,61,6105', '合阳县', '61', '陕西省', '6105', '渭南市', '610524', '合阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610525', '6105', '00,61,6105', '澄城县', '61', '陕西省', '6105', '渭南市', '610525', '澄城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610526', '6105', '00,61,6105', '蒲城县', '61', '陕西省', '6105', '渭南市', '610526', '蒲城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610527', '6105', '00,61,6105', '白水县', '61', '陕西省', '6105', '渭南市', '610527', '白水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610528', '6105', '00,61,6105', '富平县', '61', '陕西省', '6105', '渭南市', '610528', '富平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610581', '6105', '00,61,6105', '韩城市', '61', '陕西省', '6105', '渭南市', '610581', '韩城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610582', '6105', '00,61,6105', '华阴市', '61', '陕西省', '6105', '渭南市', '610582', '华阴市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6106', '61', '00,61', '延安市', '61', '陕西省', '6106', '延安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610602', '6106', '00,61,6106', '宝塔区', '61', '陕西省', '6106', '延安市', '610602', '宝塔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610603', '6106', '00,61,6106', '安塞区', '61', '陕西省', '6106', '延安市', '610603', '安塞区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610621', '6106', '00,61,6106', '延长县', '61', '陕西省', '6106', '延安市', '610621', '延长县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610622', '6106', '00,61,6106', '延川县', '61', '陕西省', '6106', '延安市', '610622', '延川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610625', '6106', '00,61,6106', '志丹县', '61', '陕西省', '6106', '延安市', '610625', '志丹县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610626', '6106', '00,61,6106', '吴起县', '61', '陕西省', '6106', '延安市', '610626', '吴起县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610627', '6106', '00,61,6106', '甘泉县', '61', '陕西省', '6106', '延安市', '610627', '甘泉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610628', '6106', '00,61,6106', '富县', '61', '陕西省', '6106', '延安市', '610628', '富县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610629', '6106', '00,61,6106', '洛川县', '61', '陕西省', '6106', '延安市', '610629', '洛川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610630', '6106', '00,61,6106', '宜川县', '61', '陕西省', '6106', '延安市', '610630', '宜川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610631', '6106', '00,61,6106', '黄龙县', '61', '陕西省', '6106', '延安市', '610631', '黄龙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610632', '6106', '00,61,6106', '黄陵县', '61', '陕西省', '6106', '延安市', '610632', '黄陵县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610681', '6106', '00,61,6106', '子长市', '61', '陕西省', '6106', '延安市', '610681', '子长市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6107', '61', '00,61', '汉中市', '61', '陕西省', '6107', '汉中市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610702', '6107', '00,61,6107', '汉台区', '61', '陕西省', '6107', '汉中市', '610702', '汉台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610703', '6107', '00,61,6107', '南郑区', '61', '陕西省', '6107', '汉中市', '610703', '南郑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610722', '6107', '00,61,6107', '城固县', '61', '陕西省', '6107', '汉中市', '610722', '城固县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610723', '6107', '00,61,6107', '洋县', '61', '陕西省', '6107', '汉中市', '610723', '洋县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610724', '6107', '00,61,6107', '西乡县', '61', '陕西省', '6107', '汉中市', '610724', '西乡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610725', '6107', '00,61,6107', '勉县', '61', '陕西省', '6107', '汉中市', '610725', '勉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610726', '6107', '00,61,6107', '宁强县', '61', '陕西省', '6107', '汉中市', '610726', '宁强县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610727', '6107', '00,61,6107', '略阳县', '61', '陕西省', '6107', '汉中市', '610727', '略阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610728', '6107', '00,61,6107', '镇巴县', '61', '陕西省', '6107', '汉中市', '610728', '镇巴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610729', '6107', '00,61,6107', '留坝县', '61', '陕西省', '6107', '汉中市', '610729', '留坝县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632624', '6326', '00,63,6326', '达日县', '63', '青海省', '6326', '果洛藏族自治州', '632624', '达日县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632625', '6326', '00,63,6326', '久治县', '63', '青海省', '6326', '果洛藏族自治州', '632625', '久治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632626', '6326', '00,63,6326', '玛多县', '63', '青海省', '6326', '果洛藏族自治州', '632626', '玛多县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6327', '63', '00,63', '玉树藏族自治州', '63', '青海省', '6327', '玉树藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632701', '6327', '00,63,6327', '玉树市', '63', '青海省', '6327', '玉树藏族自治州', '632701', '玉树市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632722', '6327', '00,63,6327', '杂多县', '63', '青海省', '6327', '玉树藏族自治州', '632722', '杂多县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632723', '6327', '00,63,6327', '称多县', '63', '青海省', '6327', '玉树藏族自治州', '632723', '称多县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632724', '6327', '00,63,6327', '治多县', '63', '青海省', '6327', '玉树藏族自治州', '632724', '治多县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632725', '6327', '00,63,6327', '囊谦县', '63', '青海省', '6327', '玉树藏族自治州', '632725', '囊谦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632726', '6327', '00,63,6327', '曲麻莱县', '63', '青海省', '6327', '玉树藏族自治州', '632726', '曲麻莱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6328', '63', '00,63', '海西蒙古族藏族自治州', '63', '青海省', '6328', '海西蒙古族藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632801', '6328', '00,63,6328', '格尔木市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632801', '格尔木市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632802', '6328', '00,63,6328', '德令哈市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632802', '德令哈市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632803', '6328', '00,63,6328', '茫崖市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632803', '茫崖市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632821', '6328', '00,63,6328', '乌兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632821', '乌兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540236', '5402', '00,54,5402', '萨嘎县', '54', '西藏自治区', '5402', '日喀则市', '540236', '萨嘎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540237', '5402', '00,54,5402', '岗巴县', '54', '西藏自治区', '5402', '日喀则市', '540237', '岗巴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5403', '54', '00,54', '昌都市', '54', '西藏自治区', '5403', '昌都市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540302', '5403', '00,54,5403', '卡若区', '54', '西藏自治区', '5403', '昌都市', '540302', '卡若区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540321', '5403', '00,54,5403', '江达县', '54', '西藏自治区', '5403', '昌都市', '540321', '江达县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540322', '5403', '00,54,5403', '贡觉县', '54', '西藏自治区', '5403', '昌都市', '540322', '贡觉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540323', '5403', '00,54,5403', '类乌齐县', '54', '西藏自治区', '5403', '昌都市', '540323', '类乌齐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540324', '5403', '00,54,5403', '丁青县', '54', '西藏自治区', '5403', '昌都市', '540324', '丁青县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540325', '5403', '00,54,5403', '察雅县', '54', '西藏自治区', '5403', '昌都市', '540325', '察雅县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540326', '5403', '00,54,5403', '八宿县', '54', '西藏自治区', '5403', '昌都市', '540326', '八宿县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540327', '5403', '00,54,5403', '左贡县', '54', '西藏自治区', '5403', '昌都市', '540327', '左贡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540328', '5403', '00,54,5403', '芒康县', '54', '西藏自治区', '5403', '昌都市', '540328', '芒康县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540329', '5403', '00,54,5403', '洛隆县', '54', '西藏自治区', '5403', '昌都市', '540329', '洛隆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540330', '5403', '00,54,5403', '边坝县', '54', '西藏自治区', '5403', '昌都市', '540330', '边坝县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5404', '54', '00,54', '林芝市', '54', '西藏自治区', '5404', '林芝市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540402', '5404', '00,54,5404', '巴宜区', '54', '西藏自治区', '5404', '林芝市', '540402', '巴宜区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540421', '5404', '00,54,5404', '工布江达县', '54', '西藏自治区', '5404', '林芝市', '540421', '工布江达县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540422', '5404', '00,54,5404', '米林县', '54', '西藏自治区', '5404', '林芝市', '540422', '米林县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540423', '5404', '00,54,5404', '墨脱县', '54', '西藏自治区', '5404', '林芝市', '540423', '墨脱县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540424', '5404', '00,54,5404', '波密县', '54', '西藏自治区', '5404', '林芝市', '540424', '波密县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540425', '5404', '00,54,5404', '察隅县', '54', '西藏自治区', '5404', '林芝市', '540425', '察隅县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540426', '5404', '00,54,5404', '朗县', '54', '西藏自治区', '5404', '林芝市', '540426', '朗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5405', '54', '00,54', '山南市', '54', '西藏自治区', '5405', '山南市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540502', '5405', '00,54,5405', '乃东区', '54', '西藏自治区', '5405', '山南市', '540502', '乃东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540521', '5405', '00,54,5405', '扎囊县', '54', '西藏自治区', '5405', '山南市', '540521', '扎囊县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540522', '5405', '00,54,5405', '贡嘎县', '54', '西藏自治区', '5405', '山南市', '540522', '贡嘎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540523', '5405', '00,54,5405', '桑日县', '54', '西藏自治区', '5405', '山南市', '540523', '桑日县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540524', '5405', '00,54,5405', '琼结县', '54', '西藏自治区', '5405', '山南市', '540524', '琼结县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540525', '5405', '00,54,5405', '曲松县', '54', '西藏自治区', '5405', '山南市', '540525', '曲松县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540526', '5405', '00,54,5405', '措美县', '54', '西藏自治区', '5405', '山南市', '540526', '措美县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540527', '5405', '00,54,5405', '洛扎县', '54', '西藏自治区', '5405', '山南市', '540527', '洛扎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540528', '5405', '00,54,5405', '加查县', '54', '西藏自治区', '5405', '山南市', '540528', '加查县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540529', '5405', '00,54,5405', '隆子县', '54', '西藏自治区', '5405', '山南市', '540529', '隆子县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540530', '5405', '00,54,5405', '错那县', '54', '西藏自治区', '5405', '山南市', '540530', '错那县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540531', '5405', '00,54,5405', '浪卡子县', '54', '西藏自治区', '5405', '山南市', '540531', '浪卡子县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5406', '54', '00,54', '那曲市', '54', '西藏自治区', '5406', '那曲市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540602', '5406', '00,54,5406', '色尼区', '54', '西藏自治区', '5406', '那曲市', '540602', '色尼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540621', '5406', '00,54,5406', '嘉黎县', '54', '西藏自治区', '5406', '那曲市', '540621', '嘉黎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540622', '5406', '00,54,5406', '比如县', '54', '西藏自治区', '5406', '那曲市', '540622', '比如县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540623', '5406', '00,54,5406', '聂荣县', '54', '西藏自治区', '5406', '那曲市', '540623', '聂荣县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540624', '5406', '00,54,5406', '安多县', '54', '西藏自治区', '5406', '那曲市', '540624', '安多县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540625', '5406', '00,54,5406', '申扎县', '54', '西藏自治区', '5406', '那曲市', '540625', '申扎县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540626', '5406', '00,54,5406', '索县', '54', '西藏自治区', '5406', '那曲市', '540626', '索县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540627', '5406', '00,54,5406', '班戈县', '54', '西藏自治区', '5406', '那曲市', '540627', '班戈县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540628', '5406', '00,54,5406', '巴青县', '54', '西藏自治区', '5406', '那曲市', '540628', '巴青县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540629', '5406', '00,54,5406', '尼玛县', '54', '西藏自治区', '5406', '那曲市', '540629', '尼玛县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540630', '5406', '00,54,5406', '双湖县', '54', '西藏自治区', '5406', '那曲市', '540630', '双湖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5425', '54', '00,54', '阿里地区', '54', '西藏自治区', '5425', '阿里地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('542521', '5425', '00,54,5425', '普兰县', '54', '西藏自治区', '5425', '阿里地区', '542521', '普兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('542522', '5425', '00,54,5425', '札达县', '54', '西藏自治区', '5425', '阿里地区', '542522', '札达县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('542523', '5425', '00,54,5425', '噶尔县', '54', '西藏自治区', '5425', '阿里地区', '542523', '噶尔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('542524', '5425', '00,54,5425', '日土县', '54', '西藏自治区', '5425', '阿里地区', '542524', '日土县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('542525', '5425', '00,54,5425', '革吉县', '54', '西藏自治区', '5425', '阿里地区', '542525', '革吉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('542526', '5425', '00,54,5425', '改则县', '54', '西藏自治区', '5425', '阿里地区', '542526', '改则县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('542527', '5425', '00,54,5425', '措勤县', '54', '西藏自治区', '5425', '阿里地区', '542527', '措勤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('61', '00', '00', '陕西省', '61', '陕西省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6101', '61', '00,61', '西安市', '61', '陕西省', '6101', '西安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610102', '6101', '00,61,6101', '新城区', '61', '陕西省', '6101', '西安市', '610102', '新城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532624', '5326', '00,53,5326', '麻栗坡县', '53', '云南省', '5326', '文山壮族苗族自治州', '532624', '麻栗坡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532625', '5326', '00,53,5326', '马关县', '53', '云南省', '5326', '文山壮族苗族自治州', '532625', '马关县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532626', '5326', '00,53,5326', '丘北县', '53', '云南省', '5326', '文山壮族苗族自治州', '532626', '丘北县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532627', '5326', '00,53,5326', '广南县', '53', '云南省', '5326', '文山壮族苗族自治州', '532627', '广南县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532628', '5326', '00,53,5326', '富宁县', '53', '云南省', '5326', '文山壮族苗族自治州', '532628', '富宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5328', '53', '00,53', '西双版纳傣族自治州', '53', '云南省', '5328', '西双版纳傣族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532801', '5328', '00,53,5328', '景洪市', '53', '云南省', '5328', '西双版纳傣族自治州', '532801', '景洪市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532822', '5328', '00,53,5328', '勐海县', '53', '云南省', '5328', '西双版纳傣族自治州', '532822', '勐海县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532823', '5328', '00,53,5328', '勐腊县', '53', '云南省', '5328', '西双版纳傣族自治州', '532823', '勐腊县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5329', '53', '00,53', '大理白族自治州', '53', '云南省', '5329', '大理白族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532901', '5329', '00,53,5329', '大理市', '53', '云南省', '5329', '大理白族自治州', '532901', '大理市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532922', '5329', '00,53,5329', '漾濞彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532922', '漾濞彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532923', '5329', '00,53,5329', '祥云县', '53', '云南省', '5329', '大理白族自治州', '532923', '祥云县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532924', '5329', '00,53,5329', '宾川县', '53', '云南省', '5329', '大理白族自治州', '532924', '宾川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532925', '5329', '00,53,5329', '弥渡县', '53', '云南省', '5329', '大理白族自治州', '532925', '弥渡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532926', '5329', '00,53,5329', '南涧彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532926', '南涧彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532927', '5329', '00,53,5329', '巍山彝族回族自治县', '53', '云南省', '5329', '大理白族自治州', '532927', '巍山彝族回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532928', '5329', '00,53,5329', '永平县', '53', '云南省', '5329', '大理白族自治州', '532928', '永平县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532929', '5329', '00,53,5329', '云龙县', '53', '云南省', '5329', '大理白族自治州', '532929', '云龙县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532930', '5329', '00,53,5329', '洱源县', '53', '云南省', '5329', '大理白族自治州', '532930', '洱源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532931', '5329', '00,53,5329', '剑川县', '53', '云南省', '5329', '大理白族自治州', '532931', '剑川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532932', '5329', '00,53,5329', '鹤庆县', '53', '云南省', '5329', '大理白族自治州', '532932', '鹤庆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5331', '53', '00,53', '德宏傣族景颇族自治州', '53', '云南省', '5331', '德宏傣族景颇族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533102', '5331', '00,53,5331', '瑞丽市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533102', '瑞丽市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533103', '5331', '00,53,5331', '芒市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533103', '芒市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533122', '5331', '00,53,5331', '梁河县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533122', '梁河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533123', '5331', '00,53,5331', '盈江县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533123', '盈江县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533124', '5331', '00,53,5331', '陇川县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533124', '陇川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5333', '53', '00,53', '怒江傈僳族自治州', '53', '云南省', '5333', '怒江傈僳族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533301', '5333', '00,53,5333', '泸水市', '53', '云南省', '5333', '怒江傈僳族自治州', '533301', '泸水市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533323', '5333', '00,53,5333', '福贡县', '53', '云南省', '5333', '怒江傈僳族自治州', '533323', '福贡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533324', '5333', '00,53,5333', '贡山独龙族怒族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533324', '贡山独龙族怒族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533325', '5333', '00,53,5333', '兰坪白族普米族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533325', '兰坪白族普米族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5334', '53', '00,53', '迪庆藏族自治州', '53', '云南省', '5334', '迪庆藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533401', '5334', '00,53,5334', '香格里拉市', '53', '云南省', '5334', '迪庆藏族自治州', '533401', '香格里拉市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533422', '5334', '00,53,5334', '德钦县', '53', '云南省', '5334', '迪庆藏族自治州', '533422', '德钦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('533423', '5334', '00,53,5334', '维西傈僳族自治县', '53', '云南省', '5334', '迪庆藏族自治州', '533423', '维西傈僳族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('54', '00', '00', '西藏自治区', '54', '西藏自治区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5401', '54', '00,54', '拉萨市', '54', '西藏自治区', '5401', '拉萨市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540102', '5401', '00,54,5401', '城关区', '54', '西藏自治区', '5401', '拉萨市', '540102', '城关区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540103', '5401', '00,54,5401', '堆龙德庆区', '54', '西藏自治区', '5401', '拉萨市', '540103', '堆龙德庆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540104', '5401', '00,54,5401', '达孜区', '54', '西藏自治区', '5401', '拉萨市', '540104', '达孜区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540121', '5401', '00,54,5401', '林周县', '54', '西藏自治区', '5401', '拉萨市', '540121', '林周县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540122', '5401', '00,54,5401', '当雄县', '54', '西藏自治区', '5401', '拉萨市', '540122', '当雄县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540123', '5401', '00,54,5401', '尼木县', '54', '西藏自治区', '5401', '拉萨市', '540123', '尼木县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540124', '5401', '00,54,5401', '曲水县', '54', '西藏自治区', '5401', '拉萨市', '540124', '曲水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540127', '5401', '00,54,5401', '墨竹工卡县', '54', '西藏自治区', '5401', '拉萨市', '540127', '墨竹工卡县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5402', '54', '00,54', '日喀则市', '54', '西藏自治区', '5402', '日喀则市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540202', '5402', '00,54,5402', '桑珠孜区', '54', '西藏自治区', '5402', '日喀则市', '540202', '桑珠孜区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653225', '6532', '00,65,6532', '策勒县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653225', '策勒县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632822', '6328', '00,63,6328', '都兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632822', '都兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620524', '6205', '00,62,6205', '武山县', '62', '甘肃省', '6205', '天水市', '620524', '武山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620525', '6205', '00,62,6205', '张家川回族自治县', '62', '甘肃省', '6205', '天水市', '620525', '张家川回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6206', '62', '00,62', '武威市', '62', '甘肃省', '6206', '武威市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620602', '6206', '00,62,6206', '凉州区', '62', '甘肃省', '6206', '武威市', '620602', '凉州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620621', '6206', '00,62,6206', '民勤县', '62', '甘肃省', '6206', '武威市', '620621', '民勤县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620622', '6206', '00,62,6206', '古浪县', '62', '甘肃省', '6206', '武威市', '620622', '古浪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620623', '6206', '00,62,6206', '天祝藏族自治县', '62', '甘肃省', '6206', '武威市', '620623', '天祝藏族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6207', '62', '00,62', '张掖市', '62', '甘肃省', '6207', '张掖市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620702', '6207', '00,62,6207', '甘州区', '62', '甘肃省', '6207', '张掖市', '620702', '甘州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620721', '6207', '00,62,6207', '肃南裕固族自治县', '62', '甘肃省', '6207', '张掖市', '620721', '肃南裕固族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620722', '6207', '00,62,6207', '民乐县', '62', '甘肃省', '6207', '张掖市', '620722', '民乐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620723', '6207', '00,62,6207', '临泽县', '62', '甘肃省', '6207', '张掖市', '620723', '临泽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620724', '6207', '00,62,6207', '高台县', '62', '甘肃省', '6207', '张掖市', '620724', '高台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620725', '6207', '00,62,6207', '山丹县', '62', '甘肃省', '6207', '张掖市', '620725', '山丹县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6208', '62', '00,62', '平凉市', '62', '甘肃省', '6208', '平凉市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620802', '6208', '00,62,6208', '崆峒区', '62', '甘肃省', '6208', '平凉市', '620802', '崆峒区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620821', '6208', '00,62,6208', '泾川县', '62', '甘肃省', '6208', '平凉市', '620821', '泾川县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620822', '6208', '00,62,6208', '灵台县', '62', '甘肃省', '6208', '平凉市', '620822', '灵台县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620823', '6208', '00,62,6208', '崇信县', '62', '甘肃省', '6208', '平凉市', '620823', '崇信县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620825', '6208', '00,62,6208', '庄浪县', '62', '甘肃省', '6208', '平凉市', '620825', '庄浪县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620826', '6208', '00,62,6208', '静宁县', '62', '甘肃省', '6208', '平凉市', '620826', '静宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620881', '6208', '00,62,6208', '华亭市', '62', '甘肃省', '6208', '平凉市', '620881', '华亭市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6209', '62', '00,62', '酒泉市', '62', '甘肃省', '6209', '酒泉市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620902', '6209', '00,62,6209', '肃州区', '62', '甘肃省', '6209', '酒泉市', '620902', '肃州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620921', '6209', '00,62,6209', '金塔县', '62', '甘肃省', '6209', '酒泉市', '620921', '金塔县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620922', '6209', '00,62,6209', '瓜州县', '62', '甘肃省', '6209', '酒泉市', '620922', '瓜州县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620923', '6209', '00,62,6209', '肃北蒙古族自治县', '62', '甘肃省', '6209', '酒泉市', '620923', '肃北蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620924', '6209', '00,62,6209', '阿克塞哈萨克族自治县', '62', '甘肃省', '6209', '酒泉市', '620924', '阿克塞哈萨克族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620981', '6209', '00,62,6209', '玉门市', '62', '甘肃省', '6209', '酒泉市', '620981', '玉门市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('620982', '6209', '00,62,6209', '敦煌市', '62', '甘肃省', '6209', '酒泉市', '620982', '敦煌市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6210', '62', '00,62', '庆阳市', '62', '甘肃省', '6210', '庆阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621002', '6210', '00,62,6210', '西峰区', '62', '甘肃省', '6210', '庆阳市', '621002', '西峰区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621021', '6210', '00,62,6210', '庆城县', '62', '甘肃省', '6210', '庆阳市', '621021', '庆城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621022', '6210', '00,62,6210', '环县', '62', '甘肃省', '6210', '庆阳市', '621022', '环县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621023', '6210', '00,62,6210', '华池县', '62', '甘肃省', '6210', '庆阳市', '621023', '华池县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621024', '6210', '00,62,6210', '合水县', '62', '甘肃省', '6210', '庆阳市', '621024', '合水县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621025', '6210', '00,62,6210', '正宁县', '62', '甘肃省', '6210', '庆阳市', '621025', '正宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621026', '6210', '00,62,6210', '宁县', '62', '甘肃省', '6210', '庆阳市', '621026', '宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621027', '6210', '00,62,6210', '镇原县', '62', '甘肃省', '6210', '庆阳市', '621027', '镇原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6211', '62', '00,62', '定西市', '62', '甘肃省', '6211', '定西市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621102', '6211', '00,62,6211', '安定区', '62', '甘肃省', '6211', '定西市', '621102', '安定区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621121', '6211', '00,62,6211', '通渭县', '62', '甘肃省', '6211', '定西市', '621121', '通渭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621122', '6211', '00,62,6211', '陇西县', '62', '甘肃省', '6211', '定西市', '621122', '陇西县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621123', '6211', '00,62,6211', '渭源县', '62', '甘肃省', '6211', '定西市', '621123', '渭源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621124', '6211', '00,62,6211', '临洮县', '62', '甘肃省', '6211', '定西市', '621124', '临洮县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621125', '6211', '00,62,6211', '漳县', '62', '甘肃省', '6211', '定西市', '621125', '漳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621126', '6211', '00,62,6211', '岷县', '62', '甘肃省', '6211', '定西市', '621126', '岷县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6212', '62', '00,62', '陇南市', '62', '甘肃省', '6212', '陇南市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621202', '6212', '00,62,6212', '武都区', '62', '甘肃省', '6212', '陇南市', '621202', '武都区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621221', '6212', '00,62,6212', '成县', '62', '甘肃省', '6212', '陇南市', '621221', '成县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621222', '6212', '00,62,6212', '文县', '62', '甘肃省', '6212', '陇南市', '621222', '文县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621223', '6212', '00,62,6212', '宕昌县', '62', '甘肃省', '6212', '陇南市', '621223', '宕昌县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621224', '6212', '00,62,6212', '康县', '62', '甘肃省', '6212', '陇南市', '621224', '康县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621225', '6212', '00,62,6212', '西和县', '62', '甘肃省', '6212', '陇南市', '621225', '西和县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621226', '6212', '00,62,6212', '礼县', '62', '甘肃省', '6212', '陇南市', '621226', '礼县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621227', '6212', '00,62,6212', '徽县', '62', '甘肃省', '6212', '陇南市', '621227', '徽县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('621228', '6212', '00,62,6212', '两当县', '62', '甘肃省', '6212', '陇南市', '621228', '两当县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6229', '62', '00,62', '临夏回族自治州', '62', '甘肃省', '6229', '临夏回族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622901', '6229', '00,62,6229', '临夏市', '62', '甘肃省', '6229', '临夏回族自治州', '622901', '临夏市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622921', '6229', '00,62,6229', '临夏县', '62', '甘肃省', '6229', '临夏回族自治州', '622921', '临夏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622922', '6229', '00,62,6229', '康乐县', '62', '甘肃省', '6229', '临夏回族自治州', '622922', '康乐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622923', '6229', '00,62,6229', '永靖县', '62', '甘肃省', '6229', '临夏回族自治州', '622923', '永靖县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622924', '6229', '00,62,6229', '广河县', '62', '甘肃省', '6229', '临夏回族自治州', '622924', '广河县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622925', '6229', '00,62,6229', '和政县', '62', '甘肃省', '6229', '临夏回族自治州', '622925', '和政县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622926', '6229', '00,62,6229', '东乡族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622926', '东乡族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('622927', '6229', '00,62,6229', '积石山保安族东乡族撒拉族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622927', '积石山保安族东乡族撒拉族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6230', '62', '00,62', '甘南藏族自治州', '62', '甘肃省', '6230', '甘南藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623001', '6230', '00,62,6230', '合作市', '62', '甘肃省', '6230', '甘南藏族自治州', '623001', '合作市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623021', '6230', '00,62,6230', '临潭县', '62', '甘肃省', '6230', '甘南藏族自治州', '623021', '临潭县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623022', '6230', '00,62,6230', '卓尼县', '62', '甘肃省', '6230', '甘南藏族自治州', '623022', '卓尼县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623023', '6230', '00,62,6230', '舟曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623023', '舟曲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623024', '6230', '00,62,6230', '迭部县', '62', '甘肃省', '6230', '甘南藏族自治州', '623024', '迭部县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('623025', '6230', '00,62,6230', '玛曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623025', '玛曲县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610103', '6101', '00,61,6101', '碑林区', '61', '陕西省', '6101', '西安市', '610103', '碑林区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610104', '6101', '00,61,6101', '莲湖区', '61', '陕西省', '6101', '西安市', '610104', '莲湖区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610111', '6101', '00,61,6101', '灞桥区', '61', '陕西省', '6101', '西安市', '610111', '灞桥区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610112', '6101', '00,61,6101', '未央区', '61', '陕西省', '6101', '西安市', '610112', '未央区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610113', '6101', '00,61,6101', '雁塔区', '61', '陕西省', '6101', '西安市', '610113', '雁塔区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610114', '6101', '00,61,6101', '阎良区', '61', '陕西省', '6101', '西安市', '610114', '阎良区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610115', '6101', '00,61,6101', '临潼区', '61', '陕西省', '6101', '西安市', '610115', '临潼区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610116', '6101', '00,61,6101', '长安区', '61', '陕西省', '6101', '西安市', '610116', '长安区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610117', '6101', '00,61,6101', '高陵区', '61', '陕西省', '6101', '西安市', '610117', '高陵区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610118', '6101', '00,61,6101', '鄠邑区', '61', '陕西省', '6101', '西安市', '610118', '鄠邑区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610122', '6101', '00,61,6101', '蓝田县', '61', '陕西省', '6101', '西安市', '610122', '蓝田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610124', '6101', '00,61,6101', '周至县', '61', '陕西省', '6101', '西安市', '610124', '周至县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6102', '61', '00,61', '铜川市', '61', '陕西省', '6102', '铜川市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610202', '6102', '00,61,6102', '王益区', '61', '陕西省', '6102', '铜川市', '610202', '王益区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610203', '6102', '00,61,6102', '印台区', '61', '陕西省', '6102', '铜川市', '610203', '印台区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610204', '6102', '00,61,6102', '耀州区', '61', '陕西省', '6102', '铜川市', '610204', '耀州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('610222', '6102', '00,61,6102', '宜君县', '61', '陕西省', '6102', '铜川市', '610222', '宜君县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6103', '61', '00,61', '宝鸡市', '61', '陕西省', '6103', '宝鸡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('632823', '6328', '00,63,6328', '天峻县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632823', '天峻县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('64', '00', '00', '宁夏回族自治区', '64', '宁夏回族自治区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6401', '64', '00,64', '银川市', '64', '宁夏回族自治区', '6401', '银川市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640104', '6401', '00,64,6401', '兴庆区', '64', '宁夏回族自治区', '6401', '银川市', '640104', '兴庆区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640105', '6401', '00,64,6401', '西夏区', '64', '宁夏回族自治区', '6401', '银川市', '640105', '西夏区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640106', '6401', '00,64,6401', '金凤区', '64', '宁夏回族自治区', '6401', '银川市', '640106', '金凤区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640121', '6401', '00,64,6401', '永宁县', '64', '宁夏回族自治区', '6401', '银川市', '640121', '永宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640122', '6401', '00,64,6401', '贺兰县', '64', '宁夏回族自治区', '6401', '银川市', '640122', '贺兰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640181', '6401', '00,64,6401', '灵武市', '64', '宁夏回族自治区', '6401', '银川市', '640181', '灵武市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6402', '64', '00,64', '石嘴山市', '64', '宁夏回族自治区', '6402', '石嘴山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640202', '6402', '00,64,6402', '大武口区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640202', '大武口区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640205', '6402', '00,64,6402', '惠农区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640205', '惠农区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640221', '6402', '00,64,6402', '平罗县', '64', '宁夏回族自治区', '6402', '石嘴山市', '640221', '平罗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6403', '64', '00,64', '吴忠市', '64', '宁夏回族自治区', '6403', '吴忠市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640302', '6403', '00,64,6403', '利通区', '64', '宁夏回族自治区', '6403', '吴忠市', '640302', '利通区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640303', '6403', '00,64,6403', '红寺堡区', '64', '宁夏回族自治区', '6403', '吴忠市', '640303', '红寺堡区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640323', '6403', '00,64,6403', '盐池县', '64', '宁夏回族自治区', '6403', '吴忠市', '640323', '盐池县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640324', '6403', '00,64,6403', '同心县', '64', '宁夏回族自治区', '6403', '吴忠市', '640324', '同心县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640381', '6403', '00,64,6403', '青铜峡市', '64', '宁夏回族自治区', '6403', '吴忠市', '640381', '青铜峡市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6404', '64', '00,64', '固原市', '64', '宁夏回族自治区', '6404', '固原市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640402', '6404', '00,64,6404', '原州区', '64', '宁夏回族自治区', '6404', '固原市', '640402', '原州区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640422', '6404', '00,64,6404', '西吉县', '64', '宁夏回族自治区', '6404', '固原市', '640422', '西吉县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640423', '6404', '00,64,6404', '隆德县', '64', '宁夏回族自治区', '6404', '固原市', '640423', '隆德县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640424', '6404', '00,64,6404', '泾源县', '64', '宁夏回族自治区', '6404', '固原市', '640424', '泾源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640425', '6404', '00,64,6404', '彭阳县', '64', '宁夏回族自治区', '6404', '固原市', '640425', '彭阳县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6405', '64', '00,64', '中卫市', '64', '宁夏回族自治区', '6405', '中卫市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640502', '6405', '00,64,6405', '沙坡头区', '64', '宁夏回族自治区', '6405', '中卫市', '640502', '沙坡头区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640521', '6405', '00,64,6405', '中宁县', '64', '宁夏回族自治区', '6405', '中卫市', '640521', '中宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('640522', '6405', '00,64,6405', '海原县', '64', '宁夏回族自治区', '6405', '中卫市', '640522', '海原县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('65', '00', '00', '新疆维吾尔自治区', '65', '新疆维吾尔自治区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6501', '65', '00,65', '乌鲁木齐市', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650102', '6501', '00,65,6501', '天山区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650102', '天山区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650103', '6501', '00,65,6501', '沙依巴克区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650103', '沙依巴克区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650104', '6501', '00,65,6501', '新市区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650104', '新市区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650105', '6501', '00,65,6501', '水磨沟区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650105', '水磨沟区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650106', '6501', '00,65,6501', '头屯河区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650106', '头屯河区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650107', '6501', '00,65,6501', '达坂城区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650107', '达坂城区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650109', '6501', '00,65,6501', '米东区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650109', '米东区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650121', '6501', '00,65,6501', '乌鲁木齐县', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650121', '乌鲁木齐县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6502', '65', '00,65', '克拉玛依市', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650202', '6502', '00,65,6502', '独山子区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650202', '独山子区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650203', '6502', '00,65,6502', '克拉玛依区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650203', '克拉玛依区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650204', '6502', '00,65,6502', '白碱滩区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650204', '白碱滩区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650205', '6502', '00,65,6502', '乌尔禾区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650205', '乌尔禾区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6504', '65', '00,65', '吐鲁番市', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650402', '6504', '00,65,6504', '高昌区', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650402', '高昌区', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650421', '6504', '00,65,6504', '鄯善县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650421', '鄯善县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('650422', '6504', '00,65,6504', '托克逊县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650422', '托克逊县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6505', '65', '00,65', '哈密市', '65', '新疆维吾尔自治区', '6505', '哈密市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('5326', '53', '00,53', '文山壮族苗族自治州', '53', '云南省', '5326', '文山壮族苗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532601', '5326', '00,53,5326', '文山市', '53', '云南省', '5326', '文山壮族苗族自治州', '532601', '文山市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532622', '5326', '00,53,5326', '砚山县', '53', '云南省', '5326', '文山壮族苗族自治州', '532622', '砚山县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('532623', '5326', '00,53,5326', '西畴县', '53', '云南省', '5326', '文山壮族苗族自治州', '532623', '西畴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540221', '5402', '00,54,5402', '南木林县', '54', '西藏自治区', '5402', '日喀则市', '540221', '南木林县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540222', '5402', '00,54,5402', '江孜县', '54', '西藏自治区', '5402', '日喀则市', '540222', '江孜县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540223', '5402', '00,54,5402', '定日县', '54', '西藏自治区', '5402', '日喀则市', '540223', '定日县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540224', '5402', '00,54,5402', '萨迦县', '54', '西藏自治区', '5402', '日喀则市', '540224', '萨迦县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540225', '5402', '00,54,5402', '拉孜县', '54', '西藏自治区', '5402', '日喀则市', '540225', '拉孜县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540226', '5402', '00,54,5402', '昂仁县', '54', '西藏自治区', '5402', '日喀则市', '540226', '昂仁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540227', '5402', '00,54,5402', '谢通门县', '54', '西藏自治区', '5402', '日喀则市', '540227', '谢通门县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540228', '5402', '00,54,5402', '白朗县', '54', '西藏自治区', '5402', '日喀则市', '540228', '白朗县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540229', '5402', '00,54,5402', '仁布县', '54', '西藏自治区', '5402', '日喀则市', '540229', '仁布县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540230', '5402', '00,54,5402', '康马县', '54', '西藏自治区', '5402', '日喀则市', '540230', '康马县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540231', '5402', '00,54,5402', '定结县', '54', '西藏自治区', '5402', '日喀则市', '540231', '定结县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540232', '5402', '00,54,5402', '仲巴县', '54', '西藏自治区', '5402', '日喀则市', '540232', '仲巴县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540233', '5402', '00,54,5402', '亚东县', '54', '西藏自治区', '5402', '日喀则市', '540233', '亚东县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('540234', '5402', '00,54,5402', '吉隆县', '54', '西藏自治区', '5402', '日喀则市', '540234', '吉隆县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653226', '6532', '00,65,6532', '于田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653226', '于田县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('653227', '6532', '00,65,6532', '民丰县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653227', '民丰县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6540', '65', '00,65', '伊犁哈萨克自治州', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654002', '6540', '00,65,6540', '伊宁市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654002', '伊宁市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654003', '6540', '00,65,6540', '奎屯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654003', '奎屯市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654004', '6540', '00,65,6540', '霍尔果斯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654004', '霍尔果斯市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654021', '6540', '00,65,6540', '伊宁县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654021', '伊宁县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654022', '6540', '00,65,6540', '察布查尔锡伯自治县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654022', '察布查尔锡伯自治县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654023', '6540', '00,65,6540', '霍城县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654023', '霍城县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654024', '6540', '00,65,6540', '巩留县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654024', '巩留县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654025', '6540', '00,65,6540', '新源县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654025', '新源县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654026', '6540', '00,65,6540', '昭苏县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654026', '昭苏县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654027', '6540', '00,65,6540', '特克斯县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654027', '特克斯县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654028', '6540', '00,65,6540', '尼勒克县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654028', '尼勒克县', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('6542', '65', '00,65', '塔城地区', '65', '新疆维吾尔自治区', '6542', '塔城地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654201', '6542', '00,65,6542', '塔城市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654201', '塔城市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+INSERT INTO "BLADE_REGION" VALUES ('654202', '6542', '00,65,6542', '乌苏市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654202', '乌苏市', NULL, NULL, NULL, NULL, '3', '1', NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_REPORT_FILE
+-- ----------------------------
+-- DROP TABLE "BLADE_REPORT_FILE";
+CREATE TABLE "BLADE_REPORT_FILE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "NAME" NVARCHAR2(100) NOT NULL ,
+  "CONTENT" BLOB ,
+  "CREATE_TIME" DATE NOT NULL ,
+  "UPDATE_TIME" DATE NOT NULL ,
+  "IS_DELETED" NUMBER(11) DEFAULT 0
+
+
+
+
+
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_REPORT_FILE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_REPORT_FILE"."NAME" IS '文件名';
+COMMENT ON COLUMN "BLADE_REPORT_FILE"."CONTENT" IS '文件内容';
+COMMENT ON COLUMN "BLADE_REPORT_FILE"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_REPORT_FILE"."UPDATE_TIME" IS '更新时间';
+COMMENT ON COLUMN "BLADE_REPORT_FILE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_REPORT_FILE" IS '报表文件表';
+
+-- ----------------------------
+-- Table structure for BLADE_ROLE
+-- ----------------------------
+-- DROP TABLE "BLADE_ROLE";
+CREATE TABLE "BLADE_ROLE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "PARENT_ID" NUMBER(20) ,
+  "ROLE_NAME" NVARCHAR2(255) ,
+  "SORT" NUMBER(11) ,
+  "ROLE_ALIAS" NVARCHAR2(255) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_ROLE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_ROLE"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_ROLE"."PARENT_ID" IS '父主键';
+COMMENT ON COLUMN "BLADE_ROLE"."ROLE_NAME" IS '角色名';
+COMMENT ON COLUMN "BLADE_ROLE"."SORT" IS '排序';
+COMMENT ON COLUMN "BLADE_ROLE"."ROLE_ALIAS" IS '角色别名';
+COMMENT ON COLUMN "BLADE_ROLE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_ROLE" IS '角色表';
+
+-- ----------------------------
+-- Records of BLADE_ROLE
+-- ----------------------------
+INSERT INTO "BLADE_ROLE" VALUES ('1123598816738675201', '000000', '0', '超级管理员', '1', 'administrator', '0');
+INSERT INTO "BLADE_ROLE" VALUES ('1123598816738675202', '000000', '0', '用户', '2', 'user', '0');
+INSERT INTO "BLADE_ROLE" VALUES ('1123598816738675203', '000000', '1123598816738675202', '人事', '1', 'hr', '0');
+INSERT INTO "BLADE_ROLE" VALUES ('1123598816738675204', '000000', '1123598816738675202', '经理', '2', 'manager', '0');
+INSERT INTO "BLADE_ROLE" VALUES ('1123598816738675205', '000000', '1123598816738675202', '老板', '3', 'boss', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_ROLE_MENU
+-- ----------------------------
+-- DROP TABLE "BLADE_ROLE_MENU";
+CREATE TABLE "BLADE_ROLE_MENU" (
+  "ID" NUMBER(20) NOT NULL ,
+  "MENU_ID" NUMBER(20) ,
+  "ROLE_ID" NUMBER(20)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_ROLE_MENU"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_ROLE_MENU"."MENU_ID" IS '菜单ID';
+COMMENT ON COLUMN "BLADE_ROLE_MENU"."ROLE_ID" IS '角色ID';
+COMMENT ON TABLE "BLADE_ROLE_MENU" IS '角色菜单关联表';
+
+-- ----------------------------
+-- Records of BLADE_ROLE_MENU
+-- ----------------------------
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667314569218', '1123598815738675295', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667343929346', '1123598815738675296', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667398455298', '1123598815738675297', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667440398338', '1123598815738675210', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667478147073', '1123598815738675211', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667524284417', '1123598815738675212', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667574616065', '1123598815738675213', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667608170498', '1123598815738675214', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667641724929', '1123598815738675249', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667671085058', '1123598815738675215', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667708833793', '1123598815738675250', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667746582529', '1123598815738675216', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667784331265', '1123598815738675251', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667822080001', '1123598815738675217', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667843051522', '1123598815738675218', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667889188865', '1123598815738675252', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667926937602', '1123598815738675253', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667947909121', '1123598815738675254', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667989852161', '1123598815738675255', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668015017986', '1123598815738675266', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668061155330', '1123598815738675267', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668086321154', '1123598815738675268', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668136652802', '1123598815738675269', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668199567362', '1123598815738675270', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668262481922', '1123598815738675271', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668321202177', '1123598815738675272', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668367339521', '1123598815738675273', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668405088257', '1123598815738675274', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668438642689', '1123598815738675275', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668472197121', '1123598815738675276', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668509945858', '1123598815738675277', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668568666113', '1123598815738675278', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668631580673', '1123598815738675279', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668669329410', '1123598815738675298', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668719661057', '1123598815738675299', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668757409793', '1123598815738675301', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668803547138', '1123598815738675302', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668849684481', '1123598815738675303', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668883238913', '1123598815738675304', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668920987650', '1123598815738675305', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668950347777', '1123598815738675307', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668983902209', '1123598815738675308', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669013262338', '1123598815738675241', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669034233857', '1123598815738675242', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669055205378', '1123598815738675243', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669105537025', '1123598815738675244', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669164257282', '1123598815738675309', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669210394626', '1123598815738675310', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669243949058', '1123598815738675311', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669285892097', '1123598815738675312', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669336223745', '1123598815738675203', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669365583873', '1123598815738675204', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669394944001', '1123598815738675223', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669441081346', '1123598815738675224', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669487218689', '1123598815738675225', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669533356033', '1123598815738675226', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669571104770', '1123598815738675227', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669642407937', '1123598815738675228', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669671768065', '1123598815738675205', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225001', '1164733389668962251', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225002', '1164733389668962252', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225003', '1164733389668962253', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225004', '1164733389668962254', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225005', '1164733389668962255', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225006', '1164733389668962256', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226001', '1164733399668962201', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226002', '1164733399668962202', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226003', '1164733399668962203', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226004', '1164733399668962204', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226005', '1164733399668962205', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226006', '1164733399668962206', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226007', '1164733399668962207', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875227001', '1164733399669962201', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875227002', '1164733399669962202', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875227003', '1164733399669962203', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875227004', '1164733399669962204', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875228001', '1164733399669962301', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875228002', '1164733399669962302', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875228003', '1164733399669962303', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875228004', '1164733399669962304', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669696933889', '1123598815738675229', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669743071234', '1123598815738675230', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669797597186', '1123598815738675231', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669847928834', '1123598815738675232', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669919232001', '1123598815738675206', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669973757954', '1123598815738675233', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670019895298', '1123598815738675234', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670045061121', '1123598815738675235', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670095392770', '1123598815738675236', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670137335809', '1123598815738675207', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670196056065', '1123598815738675237', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670229610498', '1123598815738675238', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670267359234', '1123598815738675239', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670292525057', '1123598815738675240', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670355439617', '1123598815738675306', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670380605442', '1123598815738675208', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670443520001', '1123598815738675313', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670481268737', '1123598815738675314', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670506434561', '1123598815738675315', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670569349121', '1123598815738675316', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670594514945', '1123598815738675209', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670657429506', '1123598815738675245', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670682595330', '1123598815738675246', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670711955457', '1123598815738675247', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670745509889', '1123598815738675248', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670804230146', '1123598815738675256', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670841978881', '1123598815738675257', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670879727617', '1123598815738675258', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670913282050', '1123598815738675259', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670959419394', '1123598815738675260', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670988779521', '1123598815738675261', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891671039111170', '1123598815738675262', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891671068471297', '1123598815738675263', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891671110414338', '1123598815738675264', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891671152357378', '1123598815738675265', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272593873322991', '1161272593873321991', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272593873322992', '1161272593873321992', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272593873322993', '1161272593873321993', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272593873322994', '1161272593873321994', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272593873322995', '1161272593873321995', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272693873322991', '1164733369658963251', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272693873322992', '1164733369658963252', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272693873322993', '1164733369658963253', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272693873322994', '1164733369658963254', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272693873322995', '1164733369658963255', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272793873322991', '1164733379658963251', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272793873322992', '1164733379658963252', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272793873322993', '1164733379658963253', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272793873322994', '1164733379658963254', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272793873322995', '1164733379658963255', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873322991', '1164733389658963251', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222991', '1164733389658962251', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222992', '1164733389658962252', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222993', '1164733389658962253', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222994', '1164733389658962254', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222995', '1164733389658962255', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222996', '1164733389658962256', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675363', '1123598815738675201', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675364', '1123598815738675202', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675365', '1123598815738675219', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675366', '1123598815738675220', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675367', '1123598815738675221', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675368', '1123598815738675222', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675369', '1123598815738675280', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675370', '1123598815738675281', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675371', '1123598815738675282', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675372', '1123598815738675283', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675373', '1123598815738675284', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675374', '1123598815738675285', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675375', '1123598815738675286', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675376', '1123598815738675287', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675377', '1123598815738675288', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675378', '1123598815738675289', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675379', '1123598815738675290', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675380', '1123598815738675291', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675381', '1123598815738675292', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675382', '1123598815738675293', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675383', '1123598815738675294', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675384', '1123598815738675295', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675385', '1123598815738675296', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675386', '1123598815738675297', '1123598816738675202');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675387', '1123598815738675201', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675388', '1123598815738675202', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675389', '1123598815738675219', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675390', '1123598815738675220', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675391', '1123598815738675221', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675392', '1123598815738675222', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675393', '1123598815738675280', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675394', '1123598815738675281', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675395', '1123598815738675282', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675396', '1123598815738675283', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675397', '1123598815738675284', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675398', '1123598815738675285', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675399', '1123598815738675286', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675400', '1123598815738675287', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675401', '1123598815738675288', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675402', '1123598815738675289', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675403', '1123598815738675290', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675404', '1123598815738675291', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675405', '1123598815738675292', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675406', '1123598815738675293', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675407', '1123598815738675294', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675408', '1123598815738675295', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675409', '1123598815738675296', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675410', '1123598815738675297', '1123598816738675203');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675411', '1123598815738675201', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675412', '1123598815738675202', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675413', '1123598815738675219', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675414', '1123598815738675220', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675415', '1123598815738675221', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675416', '1123598815738675222', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675417', '1123598815738675280', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675418', '1123598815738675281', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675419', '1123598815738675282', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675420', '1123598815738675283', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675421', '1123598815738675284', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675422', '1123598815738675285', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675423', '1123598815738675286', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675424', '1123598815738675287', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675425', '1123598815738675288', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675426', '1123598815738675289', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675427', '1123598815738675290', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675428', '1123598815738675291', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675429', '1123598815738675292', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675430', '1123598815738675293', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675431', '1123598815738675294', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675432', '1123598815738675295', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675433', '1123598815738675296', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675434', '1123598815738675297', '1123598816738675204');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675435', '1123598815738675201', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675436', '1123598815738675202', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675437', '1123598815738675219', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675438', '1123598815738675220', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675439', '1123598815738675221', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675440', '1123598815738675222', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675441', '1123598815738675280', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675442', '1123598815738675281', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675443', '1123598815738675282', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675444', '1123598815738675283', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675445', '1123598815738675284', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675446', '1123598815738675285', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675447', '1123598815738675286', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675448', '1123598815738675287', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675449', '1123598815738675288', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675450', '1123598815738675289', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675451', '1123598815738675290', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675452', '1123598815738675291', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675453', '1123598815738675292', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675454', '1123598815738675293', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675455', '1123598815738675294', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675456', '1123598815738675295', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675457', '1123598815738675296', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675458', '1123598815738675297', '1123598816738675205');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149888293856833539', '1123598815738675317', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666312130561', '1123598815738675201', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666370850818', '1123598815738675202', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666437959682', '1123598815738675219', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666505068546', '1123598815738675220', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666555400193', '1123598815738675221', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666614120449', '1123598815738675222', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666651869185', '1123598815738675280', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666723172353', '1123598815738675281', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666765115393', '1123598815738675282', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666815447041', '1123598815738675283', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666844807170', '1123598815738675284', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666886750210', '1123598815738675285', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666924498946', '1123598815738675286', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666966441986', '1123598815738675287', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667012579330', '1123598815738675288', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667054522370', '1123598815738675289', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667109048322', '1123598815738675290', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667146797058', '1123598815738675291', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667197128706', '1123598815738675292', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667234877441', '1123598815738675293', '1123598816738675201');
+INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667272626178', '1123598815738675294', '1123598816738675201');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_ROLE_SCOPE
+-- ----------------------------
+-- DROP TABLE "BLADE_ROLE_SCOPE";
+CREATE TABLE "BLADE_ROLE_SCOPE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "SCOPE_CATEGORY" NUMBER(11) ,
+  "SCOPE_ID" NUMBER(20) ,
+  "ROLE_ID" NUMBER(20)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."SCOPE_CATEGORY" IS '权限类型(1:数据权限、2:接口权限)';
+COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."SCOPE_ID" IS '权限ID';
+COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."ROLE_ID" IS '角色ID';
+COMMENT ON TABLE "BLADE_ROLE_SCOPE" IS '角色数据权限关联表';
+
+-- ----------------------------
+-- Table structure for BLADE_SCOPE_API
+-- ----------------------------
+-- DROP TABLE "BLADE_SCOPE_API";
+CREATE TABLE "BLADE_SCOPE_API" (
+  "ID" NUMBER(20) NOT NULL ,
+  "MENU_ID" NUMBER(20) ,
+  "RESOURCE_CODE" NVARCHAR2(255) ,
+  "SCOPE_NAME" NVARCHAR2(255) ,
+  "SCOPE_PATH" NVARCHAR2(255) ,
+  "SCOPE_TYPE" NUMBER(11) ,
+  "REMARK" NVARCHAR2(255) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_SCOPE_API"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."MENU_ID" IS '菜单主键';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."RESOURCE_CODE" IS '资源编号';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."SCOPE_NAME" IS '接口权限名';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."SCOPE_PATH" IS '接口权限地址';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."SCOPE_TYPE" IS '接口权限类型';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."REMARK" IS '接口权限备注';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_SCOPE_API"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_SCOPE_API" IS '接口权限表';
+
+-- ----------------------------
+-- Table structure for BLADE_SCOPE_DATA
+-- ----------------------------
+-- DROP TABLE "BLADE_SCOPE_DATA";
+CREATE TABLE "BLADE_SCOPE_DATA" (
+  "ID" NUMBER(20) NOT NULL ,
+  "MENU_ID" NUMBER(20) ,
+  "RESOURCE_CODE" NVARCHAR2(255) ,
+  "SCOPE_NAME" NVARCHAR2(255) ,
+  "SCOPE_FIELD" NVARCHAR2(255) ,
+  "SCOPE_CLASS" NVARCHAR2(500) ,
+  "SCOPE_COLUMN" NVARCHAR2(255) ,
+  "SCOPE_TYPE" NUMBER(11) ,
+  "SCOPE_VALUE" NCLOB ,
+  "REMARK" NVARCHAR2(255) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."MENU_ID" IS '菜单主键';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."RESOURCE_CODE" IS '资源编号';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_NAME" IS '数据权限名称';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_FIELD" IS '数据权限字段';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_CLASS" IS '数据权限类名';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_COLUMN" IS '数据权限字段';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_TYPE" IS '数据权限类型';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_VALUE" IS '数据权限值域';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."REMARK" IS '数据权限备注';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_SCOPE_DATA"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_SCOPE_DATA" IS '数据权限表';
+
+-- ----------------------------
+-- Table structure for BLADE_SMS
+-- ----------------------------
+-- DROP TABLE "BLADE_SMS";
+CREATE TABLE "BLADE_SMS" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "CATEGORY" NUMBER(11) ,
+  "SMS_CODE" VARCHAR2(12 BYTE) ,
+  "TEMPLATE_ID" VARCHAR2(64 BYTE) ,
+  "ACCESS_KEY" NVARCHAR2(255) ,
+  "SECRET_KEY" NVARCHAR2(255) ,
+  "REGION_ID" NVARCHAR2(255) ,
+  "SIGN_NAME" VARCHAR2(64 BYTE) ,
+  "REMARK" NVARCHAR2(255) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_SMS"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_SMS"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_SMS"."CATEGORY" IS '分类';
+COMMENT ON COLUMN "BLADE_SMS"."SMS_CODE" IS '资源编号';
+COMMENT ON COLUMN "BLADE_SMS"."TEMPLATE_ID" IS '模板ID';
+COMMENT ON COLUMN "BLADE_SMS"."ACCESS_KEY" IS 'accessKey';
+COMMENT ON COLUMN "BLADE_SMS"."SECRET_KEY" IS 'secretKey';
+COMMENT ON COLUMN "BLADE_SMS"."REGION_ID" IS 'regionId';
+COMMENT ON COLUMN "BLADE_SMS"."SIGN_NAME" IS '短信签名';
+COMMENT ON COLUMN "BLADE_SMS"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_SMS"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_SMS"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_SMS"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_SMS"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_SMS"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_SMS"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_SMS"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_SMS" IS '短信配置表';
+
+-- ----------------------------
+-- Table structure for BLADE_TENANT
+-- ----------------------------
+-- DROP TABLE "BLADE_TENANT";
+CREATE TABLE "BLADE_TENANT" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "TENANT_NAME" NVARCHAR2(50) NOT NULL ,
+  "DOMAIN_URL" VARCHAR2(255 BYTE) ,
+  "BACKGROUND_URL" VARCHAR2(1000 BYTE) ,
+  "LINKMAN" NVARCHAR2(20) ,
+  "CONTACT_NUMBER" NVARCHAR2(20) ,
+  "ADDRESS" NVARCHAR2(255) ,
+  "ACCOUNT_NUMBER" NUMBER DEFAULT -1            ,
+  "EXPIRE_TIME" DATE ,
+  "PACKAGE_ID" NUMBER(20) ,
+  "DATASOURCE_ID" NUMBER(20) ,
+  "LICENSE_KEY" VARCHAR2(1000 BYTE) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_TENANT"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_TENANT"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_TENANT"."TENANT_NAME" IS '租户名称';
+COMMENT ON COLUMN "BLADE_TENANT"."DOMAIN_URL" IS '域名地址';
+COMMENT ON COLUMN "BLADE_TENANT"."BACKGROUND_URL" IS '系统背景';
+COMMENT ON COLUMN "BLADE_TENANT"."LINKMAN" IS '联系人';
+COMMENT ON COLUMN "BLADE_TENANT"."CONTACT_NUMBER" IS '联系电话';
+COMMENT ON COLUMN "BLADE_TENANT"."ADDRESS" IS '联系地址';
+COMMENT ON COLUMN "BLADE_TENANT"."ACCOUNT_NUMBER" IS '账号额度';
+COMMENT ON COLUMN "BLADE_TENANT"."EXPIRE_TIME" IS '过期时间';
+COMMENT ON COLUMN "BLADE_TENANT"."PACKAGE_ID" IS '产品包ID';
+COMMENT ON COLUMN "BLADE_TENANT"."DATASOURCE_ID" IS '数据源ID';
+COMMENT ON COLUMN "BLADE_TENANT"."LICENSE_KEY" IS '授权码';
+COMMENT ON COLUMN "BLADE_TENANT"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_TENANT"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_TENANT"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_TENANT"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_TENANT"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_TENANT"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_TENANT"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_TENANT" IS '租户表';
+
+-- ----------------------------
+-- Records of BLADE_TENANT
+-- ----------------------------
+INSERT INTO "BLADE_TENANT" VALUES ('1123598820738675201', '000000', '管理组', NULL, NULL, 'admin', '666666', '管理组', '-1', NULL, NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-01-01 00:00:39', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-01-01 00:00:39', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_TENANT_PACKAGE
+-- ----------------------------
+-- DROP TABLE "BLADE_TENANT_PACKAGE";
+CREATE TABLE "BLADE_TENANT_PACKAGE" (
+  "ID" NUMBER(20) NOT NULL ,
+  "PACKAGE_NAME" NVARCHAR2(50) ,
+  "MENU_ID" NVARCHAR2(2000) ,
+  "REMARK" NVARCHAR2(255) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."PACKAGE_NAME" IS '产品包名';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."MENU_ID" IS '菜单ID';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_TENANT_PACKAGE" IS '租户产品表';
+
+-- ----------------------------
+-- Table structure for BLADE_TOP_MENU
+-- ----------------------------
+-- DROP TABLE "BLADE_TOP_MENU";
+CREATE TABLE "BLADE_TOP_MENU" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "CODE" NVARCHAR2(255) ,
+  "NAME" NVARCHAR2(255) ,
+  "SOURCE" NVARCHAR2(255) ,
+  "SORT" NUMBER(11) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_TOP_MENU"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."CODE" IS '顶部菜单编号';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."NAME" IS '顶部菜单名';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."SOURCE" IS '顶部菜单资源';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."SORT" IS '顶部菜单排序';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_TOP_MENU"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_TOP_MENU" IS '顶部菜单表';
+
+-- ----------------------------
+-- Table structure for BLADE_TOP_MENU_SETTING
+-- ----------------------------
+-- DROP TABLE "BLADE_TOP_MENU_SETTING";
+CREATE TABLE "BLADE_TOP_MENU_SETTING" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TOP_MENU_ID" NUMBER(20) ,
+  "MENU_ID" NUMBER(20)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_TOP_MENU_SETTING"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_TOP_MENU_SETTING"."TOP_MENU_ID" IS '顶部菜单主键';
+COMMENT ON COLUMN "BLADE_TOP_MENU_SETTING"."MENU_ID" IS '菜单主键';
+COMMENT ON TABLE "BLADE_TOP_MENU_SETTING" IS '顶部菜单配置表';
+
+-- ----------------------------
+-- Table structure for BLADE_USER
+-- ----------------------------
+-- DROP TABLE "BLADE_USER";
+CREATE TABLE "BLADE_USER" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" NVARCHAR2(12) ,
+  "CODE" NVARCHAR2(12) ,
+  "USER_TYPE" NUMBER(6) ,
+  "ACCOUNT" NVARCHAR2(45) ,
+  "PASSWORD" NVARCHAR2(45) ,
+  "NAME" NVARCHAR2(20) ,
+  "REAL_NAME" NVARCHAR2(10) ,
+  "AVATAR" NVARCHAR2(500) ,
+  "EMAIL" NVARCHAR2(45) ,
+  "PHONE" NVARCHAR2(45) ,
+  "BIRTHDAY" DATE ,
+  "SEX" NUMBER(6) ,
+  "ROLE_ID" NVARCHAR2(1000) ,
+  "DEPT_ID" NVARCHAR2(1000) ,
+  "POST_ID" NVARCHAR2(1000) ,
+  "CREATE_USER" NUMBER(20) ,
+  "CREATE_DEPT" NUMBER(20) ,
+  "CREATE_TIME" DATE ,
+  "UPDATE_USER" NUMBER(20) ,
+  "UPDATE_TIME" DATE ,
+  "STATUS" NUMBER(11) ,
+  "IS_DELETED" NUMBER(11)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_USER"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_USER"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_USER"."CODE" IS '用户编号';
+COMMENT ON COLUMN "BLADE_USER"."USER_TYPE" IS '用户平台';
+COMMENT ON COLUMN "BLADE_USER"."ACCOUNT" IS '账号';
+COMMENT ON COLUMN "BLADE_USER"."PASSWORD" IS '密码';
+COMMENT ON COLUMN "BLADE_USER"."NAME" IS '昵称';
+COMMENT ON COLUMN "BLADE_USER"."REAL_NAME" IS '真名';
+COMMENT ON COLUMN "BLADE_USER"."EMAIL" IS '邮箱';
+COMMENT ON COLUMN "BLADE_USER"."PHONE" IS '手机';
+COMMENT ON COLUMN "BLADE_USER"."BIRTHDAY" IS '生日';
+COMMENT ON COLUMN "BLADE_USER"."SEX" IS '性别';
+COMMENT ON COLUMN "BLADE_USER"."ROLE_ID" IS '角色ID';
+COMMENT ON COLUMN "BLADE_USER"."DEPT_ID" IS '部门ID';
+COMMENT ON COLUMN "BLADE_USER"."POST_ID" IS '岗位ID';
+COMMENT ON COLUMN "BLADE_USER"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADE_USER"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADE_USER"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADE_USER"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADE_USER"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADE_USER"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADE_USER"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADE_USER" IS '用户表';
+
+-- ----------------------------
+-- Records of BLADE_USER
+-- ----------------------------
+INSERT INTO "BLADE_USER" VALUES ('1123598821738675201', '000000', NULL, '1', 'admin', '90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad', '管理员', '管理员', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'admin@bladex.vip', '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675201', '1123598813738675201', '1123598817738675201', '1123598821738675201', '1123598813738675201', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_USER" VALUES ('1123598821738675202', '000000', NULL, '1', 'hr', '5e79b90f7bba52d54115f086e48f539016a27ec6', '人事', '人事', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'hr@bladex.vip', '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675203', '1123598813738675202', '1123598817738675207', '1123598821738675201', '1123598813738675201', TO_DATE('2019-04-27 17:03:10', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-04-27 17:03:10', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_USER" VALUES ('1123598821738675203', '000000', NULL, '1', 'manager', 'dfbaa3b61caa3a319f463cc165085aa8c822d2ce', '经理', '经理', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'manager@bladex.vip', '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675204', '1123598813738675202', '1123598817738675206', '1123598821738675201', '1123598813738675201', TO_DATE('2019-04-27 17:03:38', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-04-27 17:03:38', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+INSERT INTO "BLADE_USER" VALUES ('1123598821738675204', '000000', NULL, '1', 'boss', 'abe57d23e18f7ad8ea99c86e430c90a05119a9d3', '老板', '老板', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'boss@bladex.vip', '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675205', '1123598813738675202', '1123598817738675201', '1123598821738675201', '1123598813738675201', TO_DATE('2019-04-27 17:03:55', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-04-27 17:03:55', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_USER_APP
+-- ----------------------------
+-- DROP TABLE "BLADE_USER_APP";
+CREATE TABLE "BLADE_USER_APP" (
+  "ID" NUMBER(20) NOT NULL ,
+  "USER_ID" NUMBER(20) ,
+  "USER_EXT" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_USER_APP"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_USER_APP"."USER_ID" IS '用户ID';
+COMMENT ON COLUMN "BLADE_USER_APP"."USER_EXT" IS '用户拓展信息';
+COMMENT ON TABLE "BLADE_USER_APP" IS '用户平台拓展表';
+
+-- ----------------------------
+-- Table structure for BLADE_USER_DEPT
+-- ----------------------------
+-- DROP TABLE "BLADE_USER_DEPT";
+CREATE TABLE "BLADE_USER_DEPT" (
+  "ID" NUMBER(20) NOT NULL ,
+  "USER_ID" NUMBER(20) ,
+  "DEPT_ID" NUMBER(20)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  INITIAL 65536
+  NEXT 1048576
+  MINEXTENTS 1
+  MAXEXTENTS 2147483645
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_USER_DEPT"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_USER_DEPT"."USER_ID" IS '用户ID';
+COMMENT ON COLUMN "BLADE_USER_DEPT"."DEPT_ID" IS '部门ID';
+COMMENT ON TABLE "BLADE_USER_DEPT" IS '用户部门表';
+
+-- ----------------------------
+-- Records of BLADE_USER_DEPT
+-- ----------------------------
+INSERT INTO "BLADE_USER_DEPT" VALUES ('1203503640757788674', '1123598821738675201', '1123598813738675201');
+INSERT INTO "BLADE_USER_DEPT" VALUES ('1203503653323923458', '1123598821738675202', '1123598813738675202');
+INSERT INTO "BLADE_USER_DEPT" VALUES ('1203503663402835969', '1123598821738675203', '1123598813738675202');
+INSERT INTO "BLADE_USER_DEPT" VALUES ('1203503672911323137', '1123598821738675204', '1123598813738675202');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for BLADE_USER_OAUTH
+-- ----------------------------
+-- DROP TABLE "BLADE_USER_OAUTH";
+CREATE TABLE "BLADE_USER_OAUTH" (
+  "ID" NUMBER(20) NOT NULL ,
+  "TENANT_ID" VARCHAR2(12 BYTE) ,
+  "UUID" VARCHAR2(64 BYTE) ,
+  "USER_ID" NUMBER(20) ,
+  "USERNAME" VARCHAR2(32 BYTE) ,
+  "NICKNAME" VARCHAR2(64 BYTE) ,
+  "AVATAR" VARCHAR2(1000 BYTE) ,
+  "BLOG" VARCHAR2(50 BYTE) ,
+  "COMPANY" VARCHAR2(255 BYTE) ,
+  "LOCATION" VARCHAR2(255 BYTE) ,
+  "EMAIL" VARCHAR2(255 BYTE) ,
+  "REMARK" VARCHAR2(255 BYTE) ,
+  "GENDER" VARCHAR2(16 BYTE) ,
+  "SOURCE" VARCHAR2(16 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."TENANT_ID" IS '租户ID';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."UUID" IS '第三方系统用户ID';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."USER_ID" IS '用户ID';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."USERNAME" IS '账号';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."NICKNAME" IS '用户名';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."AVATAR" IS '头像';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."BLOG" IS '应用主页';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."COMPANY" IS '公司名';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."LOCATION" IS '地址';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."EMAIL" IS '邮件';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."REMARK" IS '备注';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."GENDER" IS '性别';
+COMMENT ON COLUMN "BLADE_USER_OAUTH"."SOURCE" IS '来源';
+COMMENT ON TABLE "BLADE_USER_OAUTH" IS '用户第三方认证表';
+
+-- ----------------------------
+-- Table structure for BLADE_USER_OTHER
+-- ----------------------------
+-- DROP TABLE "BLADE_USER_OTHER";
+CREATE TABLE "BLADE_USER_OTHER" (
+  "ID" NUMBER(20) NOT NULL ,
+  "USER_ID" NUMBER(20) ,
+  "USER_EXT" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_USER_OTHER"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_USER_OTHER"."USER_ID" IS '用户ID';
+COMMENT ON COLUMN "BLADE_USER_OTHER"."USER_EXT" IS '用户拓展信息';
+COMMENT ON TABLE "BLADE_USER_OTHER" IS '用户平台拓展表';
+
+-- ----------------------------
+-- Table structure for BLADE_USER_WEB
+-- ----------------------------
+-- DROP TABLE "BLADE_USER_WEB";
+CREATE TABLE "BLADE_USER_WEB" (
+  "ID" NUMBER(20) NOT NULL ,
+  "USER_ID" NUMBER(20) ,
+  "USER_EXT" VARCHAR2(255 BYTE)
+)
+TABLESPACE "USERS"
+LOGGING
+NOCOMPRESS
+PCTFREE 10
+INITRANS 1
+STORAGE (
+  BUFFER_POOL DEFAULT
+)
+PARALLEL 1
+NOCACHE
+DISABLE ROW MOVEMENT
+;
+COMMENT ON COLUMN "BLADE_USER_WEB"."ID" IS '主键';
+COMMENT ON COLUMN "BLADE_USER_WEB"."USER_ID" IS '用户ID';
+COMMENT ON COLUMN "BLADE_USER_WEB"."USER_EXT" IS '用户拓展信息';
+COMMENT ON TABLE "BLADE_USER_WEB" IS '用户平台拓展表';
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_ATTACH
+-- ----------------------------
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0017502" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_ATTACH
+-- ----------------------------
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0011710" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0011850" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0013589" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0014006" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0017501" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0022775" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ATTACH" ADD CONSTRAINT "SYS_C0027612" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_CLIENT
+-- ----------------------------
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012757" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_CLIENT
+-- ----------------------------
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011711" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011712" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011713" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011714" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011715" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011716" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011717" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011718" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011719" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011851" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011852" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011853" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011854" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011855" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011856" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011857" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011858" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0011859" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012727" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012728" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012729" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012730" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012731" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012732" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012733" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012734" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0012735" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013278" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013279" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013280" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013281" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013282" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013283" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013284" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013285" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013286" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013590" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013591" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013592" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013593" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013594" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013595" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013596" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013597" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0013598" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0014007" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0014008" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0014009" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0014010" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0014011" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0014012" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0014013" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0014014" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0014015" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017039" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017040" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017041" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017042" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017043" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017044" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017045" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017046" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017047" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017167" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017168" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017169" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017170" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017171" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017172" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017173" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017174" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0017175" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019181" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019182" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019183" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019184" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019185" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019186" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019187" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019188" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019189" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019472" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019473" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019474" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019475" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019476" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019477" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019478" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019479" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0019480" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020246" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020247" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020248" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020249" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020250" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020251" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020252" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020253" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0020254" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021985" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021986" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021987" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021988" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021989" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021990" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021991" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021992" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0021993" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0022776" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0022777" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0022778" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0022779" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0022780" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0022781" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0022782" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0022783" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0022784" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023367" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023368" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023369" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023370" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023371" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023372" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023373" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023374" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0023375" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027613" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027614" CHECK ("CLIENT_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027615" CHECK ("CLIENT_SECRET" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027616" CHECK ("SCOPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027617" CHECK ("AUTHORIZED_GRANT_TYPES" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027618" CHECK ("ACCESS_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027619" CHECK ("REFRESH_TOKEN_VALIDITY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027620" CHECK ("STATUS" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CLIENT" ADD CONSTRAINT "SYS_C0027621" CHECK ("IS_DELETED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_CODE
+-- ----------------------------
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0012758" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_CODE
+-- ----------------------------
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0011720" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0011860" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0012736" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0013287" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0013599" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0014016" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0017048" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0017176" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0019190" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0019481" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0020255" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0021994" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0022785" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0023376" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_CODE" ADD CONSTRAINT "SYS_C0027622" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_DATASOURCE
+-- ----------------------------
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0017121" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_DATASOURCE
+-- ----------------------------
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0011721" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0011861" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0013288" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0013600" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0014017" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0017120" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0017177" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0019191" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0019482" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0020256" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0021995" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0022786" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0023377" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DATASOURCE" ADD CONSTRAINT "SYS_C0027623" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_DEPT
+-- ----------------------------
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0012759" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_DEPT
+-- ----------------------------
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0011722" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0011862" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0012737" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0013289" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0013601" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0014018" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0017049" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0017178" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0019192" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0019483" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0020257" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0021996" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0022787" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0023378" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DEPT" ADD CONSTRAINT "SYS_C0027624" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_DICT
+-- ----------------------------
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0012760" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_DICT
+-- ----------------------------
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0011723" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0011863" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0012738" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0013290" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0013602" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0014019" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0017050" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0017179" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0019193" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0019484" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0020258" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0021997" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0022788" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0023379" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT" ADD CONSTRAINT "SYS_C0027625" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_DICT_BIZ
+-- ----------------------------
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0019296" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_DICT_BIZ
+-- ----------------------------
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0011724" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0011864" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0013291" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0013603" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0014020" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0017180" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0019295" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0019485" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0020259" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0021998" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0022789" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0023380" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_DICT_BIZ" ADD CONSTRAINT "SYS_C0027626" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_LOG_API
+-- ----------------------------
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0012761" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_LOG_API
+-- ----------------------------
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0011725" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0011865" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0012739" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0013292" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0013604" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0014021" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0017051" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0017181" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0019194" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0019486" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0020260" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0021999" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0022790" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0023381" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_API" ADD CONSTRAINT "SYS_C0027627" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_LOG_ERROR
+-- ----------------------------
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0012762" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_LOG_ERROR
+-- ----------------------------
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0011726" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0011866" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0012740" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0013293" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0013605" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0014022" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0017052" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0017182" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0019195" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0019487" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0020261" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0022000" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0022791" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0023382" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_ERROR" ADD CONSTRAINT "SYS_C0027628" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_LOG_USUAL
+-- ----------------------------
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0012763" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_LOG_USUAL
+-- ----------------------------
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0011727" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0011867" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0012741" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0013294" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0013606" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0014023" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0017053" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0017183" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0019196" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0019488" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0020262" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0022001" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0022792" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0023383" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_LOG_USUAL" ADD CONSTRAINT "SYS_C0027629" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_MENU
+-- ----------------------------
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0012764" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_MENU
+-- ----------------------------
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0011728" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0011868" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0012742" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0013295" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0013607" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0014024" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0017054" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0017184" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0019197" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0019489" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0020263" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0022002" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0022793" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0023384" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_MENU" ADD CONSTRAINT "SYS_C0027630" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_MODEL
+-- ----------------------------
+ALTER TABLE "BLADE_MODEL" ADD CONSTRAINT "SYS_C0012327" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_MODEL
+-- ----------------------------
+ALTER TABLE "BLADE_MODEL" ADD CONSTRAINT "SYS_C0012326" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_MODEL_PROTOTYPE
+-- ----------------------------
+ALTER TABLE "BLADE_MODEL_PROTOTYPE" ADD CONSTRAINT "SYS_C0012329" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_MODEL_PROTOTYPE
+-- ----------------------------
+ALTER TABLE "BLADE_MODEL_PROTOTYPE" ADD CONSTRAINT "SYS_C0012328" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_NOTICE
+-- ----------------------------
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0012765" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_NOTICE
+-- ----------------------------
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0011729" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0011869" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0012743" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0013296" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0013608" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0014025" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0017055" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0017185" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0019198" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0019490" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0020264" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0022003" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0022794" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0023385" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_NOTICE" ADD CONSTRAINT "SYS_C0027631" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_OSS
+-- ----------------------------
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0012766" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_OSS
+-- ----------------------------
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0011730" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0011870" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0012744" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0013297" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0013609" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0014026" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0017056" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0017186" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0019199" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0019491" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0020265" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0022004" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0022795" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0023386" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_OSS" ADD CONSTRAINT "SYS_C0027632" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_PARAM
+-- ----------------------------
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0012767" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_PARAM
+-- ----------------------------
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0011731" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0011871" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0012745" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0013298" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0013610" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0014027" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0017057" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0017187" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0019200" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0019492" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0020266" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0022005" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0022796" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0023387" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PARAM" ADD CONSTRAINT "SYS_C0027633" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_POST
+-- ----------------------------
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0023620" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_POST
+-- ----------------------------
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0011732" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0011872" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0013299" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0013611" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0014028" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0017188" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0022797" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0023619" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_POST" ADD CONSTRAINT "SYS_C0027634" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_PROCESS_LEAVE
+-- ----------------------------
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0012768" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_PROCESS_LEAVE
+-- ----------------------------
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0011733" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0011873" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0012746" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0013300" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0013612" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0014029" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0017058" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0017189" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0019201" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0019493" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0020267" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0022006" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0022798" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0023388" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_PROCESS_LEAVE" ADD CONSTRAINT "SYS_C0027635" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_REGION
+-- ----------------------------
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0013572" PRIMARY KEY ("CODE");
+
+-- ----------------------------
+-- Checks structure for table BLADE_REGION
+-- ----------------------------
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0011734" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0011735" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0011736" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0011874" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0011875" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0011876" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0013569" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0013570" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0013571" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0013613" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0013614" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0013615" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0014030" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0014031" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0014032" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0017190" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0017191" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0017192" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0022799" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0022800" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0022801" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0027636" CHECK ("CODE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0027637" CHECK ("REGION_LEVEL" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REGION" ADD CONSTRAINT "SYS_C0027638" CHECK ("SORT" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_REPORT_FILE
+-- ----------------------------
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0012230" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_REPORT_FILE
+-- ----------------------------
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0011737" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0011738" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0011739" CHECK ("CREATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0011740" CHECK ("UPDATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0012226" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0012227" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0012228" CHECK ("CREATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0012229" CHECK ("UPDATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0013616" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0013617" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0013618" CHECK ("CREATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0013619" CHECK ("UPDATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0014033" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0014034" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0014035" CHECK ("CREATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0014036" CHECK ("UPDATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0022802" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0022803" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0022804" CHECK ("CREATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0022805" CHECK ("UPDATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0027639" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0027640" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0027641" CHECK ("CREATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_REPORT_FILE" ADD CONSTRAINT "SYS_C0027642" CHECK ("UPDATE_TIME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_ROLE
+-- ----------------------------
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0012769" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_ROLE
+-- ----------------------------
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0011741" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0011877" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0012747" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0013301" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0013620" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0014037" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0017059" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0017193" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0019202" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0019494" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0020268" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0022007" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0022806" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0023389" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE" ADD CONSTRAINT "SYS_C0027643" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_ROLE_MENU
+-- ----------------------------
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0012770" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_ROLE_MENU
+-- ----------------------------
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0011742" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0011878" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0012748" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0013302" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0013621" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0014038" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0017060" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0017194" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0019203" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0019495" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0020269" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0022008" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0022807" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0023390" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_MENU" ADD CONSTRAINT "SYS_C0027644" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_ROLE_SCOPE
+-- ----------------------------
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0012771" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_ROLE_SCOPE
+-- ----------------------------
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0011743" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0011879" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0012749" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0013303" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0013622" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0014039" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0017061" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0017195" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0019204" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0019496" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0020270" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0022009" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0022808" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0023391" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_ROLE_SCOPE" ADD CONSTRAINT "SYS_C0027645" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_SCOPE_API
+-- ----------------------------
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0012772" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_SCOPE_API
+-- ----------------------------
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0011744" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0011880" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0012750" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0013304" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0013623" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0014040" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0017062" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0017196" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0019205" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0019497" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0020271" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0022010" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0022809" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0023392" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_API" ADD CONSTRAINT "SYS_C0027646" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_SCOPE_DATA
+-- ----------------------------
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0012773" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_SCOPE_DATA
+-- ----------------------------
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0011745" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0011881" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0012751" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0013305" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0013624" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0014041" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0017063" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0017197" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0019206" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0019498" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0020272" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0022011" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0022810" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0023393" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SCOPE_DATA" ADD CONSTRAINT "SYS_C0027647" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_SMS
+-- ----------------------------
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0022202" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_SMS
+-- ----------------------------
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0011746" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0011882" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0013306" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0013625" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0014042" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0017198" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0022201" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0022811" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0023394" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_SMS" ADD CONSTRAINT "SYS_C0027648" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_TENANT
+-- ----------------------------
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0012774" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_TENANT
+-- ----------------------------
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0011747" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0011748" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0011883" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0011884" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0012752" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0012753" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0013307" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0013308" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0013626" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0013627" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0014043" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0014044" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0017064" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0017065" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0017199" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0017200" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0019207" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0019208" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0019499" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0019500" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0020273" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0020274" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0022012" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0022013" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0022812" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0022813" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0023395" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0023396" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0027649" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT" ADD CONSTRAINT "SYS_C0027650" CHECK ("TENANT_NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_TENANT_PACKAGE
+-- ----------------------------
+ALTER TABLE "BLADE_TENANT_PACKAGE" ADD CONSTRAINT "SYS_C0014573" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_TENANT_PACKAGE
+-- ----------------------------
+ALTER TABLE "BLADE_TENANT_PACKAGE" ADD CONSTRAINT "SYS_C0011749" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TENANT_PACKAGE" ADD CONSTRAINT "SYS_C0014572" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_TOP_MENU
+-- ----------------------------
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0012775" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_TOP_MENU
+-- ----------------------------
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0011750" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0011885" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0012754" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0013309" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0013628" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0014045" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0017066" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0017201" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0019209" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0019501" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0020275" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0022014" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0022814" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0023397" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU" ADD CONSTRAINT "SYS_C0027651" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_TOP_MENU_SETTING
+-- ----------------------------
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0012776" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_TOP_MENU_SETTING
+-- ----------------------------
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0011751" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0011886" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0012755" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0013310" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0013629" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0014046" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0017067" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0017202" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0019210" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0019502" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0020276" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0022015" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0022815" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0023398" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD CONSTRAINT "SYS_C0027652" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_USER
+-- ----------------------------
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0012777" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_USER
+-- ----------------------------
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0011752" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0011887" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0012756" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0013311" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0013630" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0014047" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0017068" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0017203" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0019211" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0019503" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0020277" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0022016" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0022816" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0023399" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER" ADD CONSTRAINT "SYS_C0027653" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_USER_APP
+-- ----------------------------
+ALTER TABLE "BLADE_USER_APP" ADD CONSTRAINT "SYS_C0028128" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_USER_APP
+-- ----------------------------
+ALTER TABLE "BLADE_USER_APP" ADD CONSTRAINT "SYS_C0011753" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_APP" ADD CONSTRAINT "SYS_C0014048" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_APP" ADD CONSTRAINT "SYS_C0028127" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_USER_DEPT
+-- ----------------------------
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0019621" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_USER_DEPT
+-- ----------------------------
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0011754" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0011888" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0013312" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0013631" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0014049" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0017204" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0019620" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0020278" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0022017" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0022817" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0023400" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_DEPT" ADD CONSTRAINT "SYS_C0027654" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_USER_OAUTH
+-- ----------------------------
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0013568" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_USER_OAUTH
+-- ----------------------------
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0011755" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0011889" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0013567" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0013632" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0014050" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0017205" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0022818" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OAUTH" ADD CONSTRAINT "SYS_C0027655" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_USER_OTHER
+-- ----------------------------
+ALTER TABLE "BLADE_USER_OTHER" ADD CONSTRAINT "SYS_C0028130" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_USER_OTHER
+-- ----------------------------
+ALTER TABLE "BLADE_USER_OTHER" ADD CONSTRAINT "SYS_C0011756" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OTHER" ADD CONSTRAINT "SYS_C0014051" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_OTHER" ADD CONSTRAINT "SYS_C0028129" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+
+-- ----------------------------
+-- Primary Key structure for table BLADE_USER_WEB
+-- ----------------------------
+ALTER TABLE "BLADE_USER_WEB" ADD CONSTRAINT "SYS_C0028126" PRIMARY KEY ("ID");
+
+-- ----------------------------
+-- Checks structure for table BLADE_USER_WEB
+-- ----------------------------
+ALTER TABLE "BLADE_USER_WEB" ADD CONSTRAINT "SYS_C0011757" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_WEB" ADD CONSTRAINT "SYS_C0014052" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
+ALTER TABLE "BLADE_USER_WEB" ADD CONSTRAINT "SYS_C0028125" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE;
diff --git a/skjcmanager/doc/sql/postgresql/bladex-flowable-postgresql.sql b/skjcmanager/doc/sql/postgresql/bladex-flowable-postgresql.sql
new file mode 100644
index 0000000..729298d
--- /dev/null
+++ b/skjcmanager/doc/sql/postgresql/bladex-flowable-postgresql.sql
@@ -0,0 +1,2741 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : postgres_localhost
+ Source Server Type    : PostgreSQL
+ Source Server Version : 110001
+ Source Host           : localhost:5432
+ Source Catalog        : bladex_flow
+ Source Schema         : public
+
+ Target Server Type    : PostgreSQL
+ Target Server Version : 110001
+ File Encoding         : 65001
+
+ Date: 20/03/2022 11:17:08
+*/
+
+
+-- ----------------------------
+-- Sequence structure for act_evt_log_log_nr__seq
+-- ----------------------------
+DROP SEQUENCE IF EXISTS "act_evt_log_log_nr__seq";
+CREATE SEQUENCE "act_evt_log_log_nr__seq"
+INCREMENT 1
+MINVALUE  1
+MAXVALUE 2147483647
+START 1
+CACHE 1;
+
+-- ----------------------------
+-- Sequence structure for act_hi_tsk_log_id__seq
+-- ----------------------------
+DROP SEQUENCE IF EXISTS "act_hi_tsk_log_id__seq";
+CREATE SEQUENCE "act_hi_tsk_log_id__seq"
+INCREMENT 1
+MINVALUE  1
+MAXVALUE 2147483647
+START 1
+CACHE 1;
+
+-- ----------------------------
+-- Table structure for act_app_appdef
+-- ----------------------------
+DROP TABLE IF EXISTS "act_app_appdef";
+CREATE TABLE "act_app_appdef" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4 NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "key_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "version_" int4 NOT NULL,
+  "category_" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "resource_name_" varchar(4000) COLLATE "pg_catalog"."default",
+  "description_" varchar(4000) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_app_databasechangelog
+-- ----------------------------
+DROP TABLE IF EXISTS "act_app_databasechangelog";
+CREATE TABLE "act_app_databasechangelog" (
+  "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "author" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "filename" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "dateexecuted" timestamp(6) NOT NULL,
+  "orderexecuted" int4 NOT NULL,
+  "exectype" varchar(10) COLLATE "pg_catalog"."default" NOT NULL,
+  "md5sum" varchar(35) COLLATE "pg_catalog"."default",
+  "description" varchar(255) COLLATE "pg_catalog"."default",
+  "comments" varchar(255) COLLATE "pg_catalog"."default",
+  "tag" varchar(255) COLLATE "pg_catalog"."default",
+  "liquibase" varchar(20) COLLATE "pg_catalog"."default",
+  "contexts" varchar(255) COLLATE "pg_catalog"."default",
+  "labels" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id" varchar(10) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Records of act_app_databasechangelog
+-- ----------------------------
+BEGIN;
+INSERT INTO "act_app_databasechangelog" VALUES ('1', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', '2019-08-01 11:14:44.941879', 1, 'EXECUTED', '8:496fc778bdf2ab13f2e1926d0e63e0a2', 'createTable tableName=ACT_APP_DEPLOYMENT; createTable tableName=ACT_APP_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_APP_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_APP_RSRC_DPL, referencedTableName=ACT_APP_DEPLOYMENT; createIndex...', '', NULL, '3.6.3', NULL, NULL, '4629284892');
+INSERT INTO "act_app_databasechangelog" VALUES ('3', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', '2019-08-01 11:14:44.954037', 2, 'EXECUTED', '8:f1f8aff320aade831944ebad24355f3d', 'createIndex indexName=ACT_IDX_APP_DEF_UNIQ, tableName=ACT_APP_APPDEF', '', NULL, '3.6.3', NULL, NULL, '4629284892');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for act_app_databasechangeloglock
+-- ----------------------------
+DROP TABLE IF EXISTS "act_app_databasechangeloglock";
+CREATE TABLE "act_app_databasechangeloglock" (
+  "id" int4 NOT NULL,
+  "locked" bool NOT NULL,
+  "lockgranted" timestamp(6),
+  "lockedby" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Records of act_app_databasechangeloglock
+-- ----------------------------
+BEGIN;
+INSERT INTO "act_app_databasechangeloglock" VALUES (1, 'f', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for act_app_deployment
+-- ----------------------------
+DROP TABLE IF EXISTS "act_app_deployment";
+CREATE TABLE "act_app_deployment" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "category_" varchar(255) COLLATE "pg_catalog"."default",
+  "key_" varchar(255) COLLATE "pg_catalog"."default",
+  "deploy_time_" timestamp(6),
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_app_deployment_resource
+-- ----------------------------
+DROP TABLE IF EXISTS "act_app_deployment_resource";
+CREATE TABLE "act_app_deployment_resource" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "resource_bytes_" bytea
+)
+;
+
+-- ----------------------------
+-- Table structure for act_cmmn_casedef
+-- ----------------------------
+DROP TABLE IF EXISTS "act_cmmn_casedef";
+CREATE TABLE "act_cmmn_casedef" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4 NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "key_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "version_" int4 NOT NULL,
+  "category_" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "resource_name_" varchar(4000) COLLATE "pg_catalog"."default",
+  "description_" varchar(4000) COLLATE "pg_catalog"."default",
+  "has_graphical_notation_" bool,
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
+  "dgrm_resource_name_" varchar(4000) COLLATE "pg_catalog"."default",
+  "has_start_form_key_" bool
+)
+;
+
+-- ----------------------------
+-- Table structure for act_cmmn_databasechangelog
+-- ----------------------------
+DROP TABLE IF EXISTS "act_cmmn_databasechangelog";
+CREATE TABLE "act_cmmn_databasechangelog" (
+  "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "author" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "filename" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "dateexecuted" timestamp(6) NOT NULL,
+  "orderexecuted" int4 NOT NULL,
+  "exectype" varchar(10) COLLATE "pg_catalog"."default" NOT NULL,
+  "md5sum" varchar(35) COLLATE "pg_catalog"."default",
+  "description" varchar(255) COLLATE "pg_catalog"."default",
+  "comments" varchar(255) COLLATE "pg_catalog"."default",
+  "tag" varchar(255) COLLATE "pg_catalog"."default",
+  "liquibase" varchar(20) COLLATE "pg_catalog"."default",
+  "contexts" varchar(255) COLLATE "pg_catalog"."default",
+  "labels" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id" varchar(10) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Records of act_cmmn_databasechangelog
+-- ----------------------------
+BEGIN;
+INSERT INTO "act_cmmn_databasechangelog" VALUES ('1', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 11:14:44.726809', 1, 'EXECUTED', '8:8b4b922d90b05ff27483abefc9597aa6', 'createTable tableName=ACT_CMMN_DEPLOYMENT; createTable tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_CMMN_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_CMMN_RSRC_DPL, referencedTableName=ACT_CMMN_DEPLOYMENT; create...', '', NULL, '3.6.3', NULL, NULL, '4629284549');
+INSERT INTO "act_cmmn_databasechangelog" VALUES ('2', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 11:14:44.745381', 2, 'EXECUTED', '8:65e39b3d385706bb261cbeffe7533cbe', 'addColumn tableName=ACT_CMMN_CASEDEF; addColumn tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST', '', NULL, '3.6.3', NULL, NULL, '4629284549');
+INSERT INTO "act_cmmn_databasechangelog" VALUES ('3', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 11:14:44.760777', 3, 'EXECUTED', '8:c01f6e802b49436b4489040da3012359', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_PLAN_ITEM_STAGE_INST, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableNam...', '', NULL, '3.6.3', NULL, NULL, '4629284549');
+INSERT INTO "act_cmmn_databasechangelog" VALUES ('4', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 11:14:44.77726', 4, 'EXECUTED', '8:e40d29cb79345b7fb5afd38a7f0ba8fc', 'createTable tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_MIL_INST; addColumn tableName=ACT_CMMN_HI_MIL_INST', '', NULL, '3.6.3', NULL, NULL, '4629284549');
+INSERT INTO "act_cmmn_databasechangelog" VALUES ('6', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 11:14:44.786077', 5, 'EXECUTED', '8:10e82e26a7fee94c32a92099c059c18c', 'createIndex indexName=ACT_IDX_CASE_DEF_UNIQ, tableName=ACT_CMMN_CASEDEF', '', NULL, '3.6.3', NULL, NULL, '4629284549');
+INSERT INTO "act_cmmn_databasechangelog" VALUES ('7', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 11:14:44.810331', 6, 'EXECUTED', '8:530bc81a1e30618ccf4a2da1f7c6c043', 'renameColumn newColumnName=CREATE_TIME_, oldColumnName=START_TIME_, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; renameColumn newColumnName=CREATE_TIME_, oldColumnName=CREATED_TIME_, tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_P...', '', NULL, '3.6.3', NULL, NULL, '4629284549');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for act_cmmn_databasechangeloglock
+-- ----------------------------
+DROP TABLE IF EXISTS "act_cmmn_databasechangeloglock";
+CREATE TABLE "act_cmmn_databasechangeloglock" (
+  "id" int4 NOT NULL,
+  "locked" bool NOT NULL,
+  "lockgranted" timestamp(6),
+  "lockedby" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Records of act_cmmn_databasechangeloglock
+-- ----------------------------
+BEGIN;
+INSERT INTO "act_cmmn_databasechangeloglock" VALUES (1, 'f', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for act_cmmn_deployment
+-- ----------------------------
+DROP TABLE IF EXISTS "act_cmmn_deployment";
+CREATE TABLE "act_cmmn_deployment" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "category_" varchar(255) COLLATE "pg_catalog"."default",
+  "key_" varchar(255) COLLATE "pg_catalog"."default",
+  "deploy_time_" timestamp(6),
+  "parent_deployment_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_cmmn_deployment_resource
+-- ----------------------------
+DROP TABLE IF EXISTS "act_cmmn_deployment_resource";
+CREATE TABLE "act_cmmn_deployment_resource" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "resource_bytes_" bytea,
+  "generated_" bool
+)
+;
+
+-- ----------------------------
+-- Table structure for act_cmmn_hi_case_inst
+-- ----------------------------
+DROP TABLE IF EXISTS "act_cmmn_hi_case_inst";
+CREATE TABLE "act_cmmn_hi_case_inst" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4 NOT NULL,
+  "business_key_" varchar(255) COLLATE "pg_catalog"."default",
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "parent_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "case_def_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "state_" varchar(255) COLLATE "pg_catalog"."default",
+  "start_time_" timestamp(6),
+  "end_time_" timestamp(6),
+  "start_user_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "callback_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "callback_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_cmmn_hi_mil_inst
+-- ----------------------------
+DROP TABLE IF EXISTS "act_cmmn_hi_mil_inst";
+CREATE TABLE "act_cmmn_hi_mil_inst" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4 NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "time_stamp_" timestamp(6) NOT NULL,
+  "case_inst_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "case_def_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "element_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_cmmn_hi_plan_item_inst
+-- ----------------------------
+DROP TABLE IF EXISTS "act_cmmn_hi_plan_item_inst";
+CREATE TABLE "act_cmmn_hi_plan_item_inst" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4 NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "state_" varchar(255) COLLATE "pg_catalog"."default",
+  "case_def_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "case_inst_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "stage_inst_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "is_stage_" bool,
+  "element_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "item_definition_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "item_definition_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "create_time_" timestamp(6),
+  "last_available_time_" timestamp(6),
+  "last_enabled_time_" timestamp(6),
+  "last_disabled_time_" timestamp(6),
+  "last_started_time_" timestamp(6),
+  "last_suspended_time_" timestamp(6),
+  "completed_time_" timestamp(6),
+  "occurred_time_" timestamp(6),
+  "terminated_time_" timestamp(6),
+  "exit_time_" timestamp(6),
+  "ended_time_" timestamp(6),
+  "last_updated_time_" timestamp(6),
+  "start_user_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "reference_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "reference_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
+  "entry_criterion_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "exit_criterion_id_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_cmmn_ru_case_inst
+-- ----------------------------
+DROP TABLE IF EXISTS "act_cmmn_ru_case_inst";
+CREATE TABLE "act_cmmn_ru_case_inst" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4 NOT NULL,
+  "business_key_" varchar(255) COLLATE "pg_catalog"."default",
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "parent_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "case_def_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "state_" varchar(255) COLLATE "pg_catalog"."default",
+  "start_time_" timestamp(6),
+  "start_user_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "callback_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "callback_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
+  "lock_time_" timestamp(6),
+  "is_completeable_" bool
+)
+;
+
+-- ----------------------------
+-- Table structure for act_cmmn_ru_mil_inst
+-- ----------------------------
+DROP TABLE IF EXISTS "act_cmmn_ru_mil_inst";
+CREATE TABLE "act_cmmn_ru_mil_inst" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "time_stamp_" timestamp(6) NOT NULL,
+  "case_inst_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "case_def_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "element_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_cmmn_ru_plan_item_inst
+-- ----------------------------
+DROP TABLE IF EXISTS "act_cmmn_ru_plan_item_inst";
+CREATE TABLE "act_cmmn_ru_plan_item_inst" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4 NOT NULL,
+  "case_def_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "case_inst_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "stage_inst_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "is_stage_" bool,
+  "element_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "state_" varchar(255) COLLATE "pg_catalog"."default",
+  "create_time_" timestamp(6),
+  "start_user_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "reference_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "reference_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
+  "item_definition_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "item_definition_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "is_completeable_" bool,
+  "is_count_enabled_" bool,
+  "var_count_" int4,
+  "sentry_part_inst_count_" int4,
+  "last_available_time_" timestamp(3),
+  "last_enabled_time_" timestamp(3),
+  "last_disabled_time_" timestamp(3),
+  "last_started_time_" timestamp(3),
+  "last_suspended_time_" timestamp(3),
+  "completed_time_" timestamp(3),
+  "occurred_time_" timestamp(3),
+  "terminated_time_" timestamp(3),
+  "exit_time_" timestamp(3),
+  "ended_time_" timestamp(3),
+  "entry_criterion_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "exit_criterion_id_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_cmmn_ru_sentry_part_inst
+-- ----------------------------
+DROP TABLE IF EXISTS "act_cmmn_ru_sentry_part_inst";
+CREATE TABLE "act_cmmn_ru_sentry_part_inst" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4 NOT NULL,
+  "case_def_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "case_inst_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "plan_item_inst_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "on_part_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "if_part_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "time_stamp_" timestamp(6)
+)
+;
+
+-- ----------------------------
+-- Table structure for act_co_content_item
+-- ----------------------------
+DROP TABLE IF EXISTS "act_co_content_item";
+CREATE TABLE "act_co_content_item" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "mime_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "task_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "proc_inst_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "content_store_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "content_store_name_" varchar(255) COLLATE "pg_catalog"."default",
+  "field_" varchar(400) COLLATE "pg_catalog"."default",
+  "content_available_" bool DEFAULT false,
+  "created_" timestamp(6),
+  "created_by_" varchar(255) COLLATE "pg_catalog"."default",
+  "last_modified_" timestamp(6),
+  "last_modified_by_" varchar(255) COLLATE "pg_catalog"."default",
+  "content_size_" int8 DEFAULT 0,
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_co_databasechangelog
+-- ----------------------------
+DROP TABLE IF EXISTS "act_co_databasechangelog";
+CREATE TABLE "act_co_databasechangelog" (
+  "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "author" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "filename" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "dateexecuted" timestamp(6) NOT NULL,
+  "orderexecuted" int4 NOT NULL,
+  "exectype" varchar(10) COLLATE "pg_catalog"."default" NOT NULL,
+  "md5sum" varchar(35) COLLATE "pg_catalog"."default",
+  "description" varchar(255) COLLATE "pg_catalog"."default",
+  "comments" varchar(255) COLLATE "pg_catalog"."default",
+  "tag" varchar(255) COLLATE "pg_catalog"."default",
+  "liquibase" varchar(20) COLLATE "pg_catalog"."default",
+  "contexts" varchar(255) COLLATE "pg_catalog"."default",
+  "labels" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id" varchar(10) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Records of act_co_databasechangelog
+-- ----------------------------
+BEGIN;
+INSERT INTO "act_co_databasechangelog" VALUES ('1', 'activiti', 'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', '2019-08-01 11:14:44.385299', 1, 'EXECUTED', '8:7644d7165cfe799200a2abdd3419e8b6', 'createTable tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_taskid, tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_procid, tableName=ACT_CO_CONTENT_ITEM', '', NULL, '3.6.3', NULL, NULL, '4629284351');
+INSERT INTO "act_co_databasechangelog" VALUES ('2', 'flowable', 'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', '2019-08-01 11:14:44.398737', 2, 'EXECUTED', '8:fe7b11ac7dbbf9c43006b23bbab60bab', 'addColumn tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_scope, tableName=ACT_CO_CONTENT_ITEM', '', NULL, '3.6.3', NULL, NULL, '4629284351');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for act_co_databasechangeloglock
+-- ----------------------------
+DROP TABLE IF EXISTS "act_co_databasechangeloglock";
+CREATE TABLE "act_co_databasechangeloglock" (
+  "id" int4 NOT NULL,
+  "locked" bool NOT NULL,
+  "lockgranted" timestamp(6),
+  "lockedby" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Records of act_co_databasechangeloglock
+-- ----------------------------
+BEGIN;
+INSERT INTO "act_co_databasechangeloglock" VALUES (1, 'f', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for act_de_databasechangelog
+-- ----------------------------
+DROP TABLE IF EXISTS "act_de_databasechangelog";
+CREATE TABLE "act_de_databasechangelog" (
+  "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "author" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "filename" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "dateexecuted" timestamp(6) NOT NULL,
+  "orderexecuted" int4 NOT NULL,
+  "exectype" varchar(10) COLLATE "pg_catalog"."default" NOT NULL,
+  "md5sum" varchar(35) COLLATE "pg_catalog"."default",
+  "description" varchar(255) COLLATE "pg_catalog"."default",
+  "comments" varchar(255) COLLATE "pg_catalog"."default",
+  "tag" varchar(255) COLLATE "pg_catalog"."default",
+  "liquibase" varchar(20) COLLATE "pg_catalog"."default",
+  "contexts" varchar(255) COLLATE "pg_catalog"."default",
+  "labels" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id" varchar(10) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Records of act_de_databasechangelog
+-- ----------------------------
+BEGIN;
+INSERT INTO "act_de_databasechangelog" VALUES ('1', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', '2019-08-01 11:15:20.699493', 1, 'EXECUTED', '8:e70d1d9d3899a734296b2514ccc71501', 'createTable tableName=ACT_DE_MODEL; createIndex indexName=idx_proc_mod_created, tableName=ACT_DE_MODEL; createTable tableName=ACT_DE_MODEL_HISTORY; createIndex indexName=idx_proc_mod_history_proc, tableName=ACT_DE_MODEL_HISTORY; createTable tableN...', '', NULL, '3.6.3', NULL, NULL, '4629320613');
+INSERT INTO "act_de_databasechangelog" VALUES ('3', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', '2019-08-01 11:15:20.714118', 2, 'EXECUTED', '8:3a9143bef2e45f2316231cc1369138b6', 'addColumn tableName=ACT_DE_MODEL; addColumn tableName=ACT_DE_MODEL_HISTORY', '', NULL, '3.6.3', NULL, NULL, '4629320613');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for act_de_databasechangeloglock
+-- ----------------------------
+DROP TABLE IF EXISTS "act_de_databasechangeloglock";
+CREATE TABLE "act_de_databasechangeloglock" (
+  "id" int4 NOT NULL,
+  "locked" bool NOT NULL,
+  "lockgranted" timestamp(6),
+  "lockedby" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Records of act_de_databasechangeloglock
+-- ----------------------------
+BEGIN;
+INSERT INTO "act_de_databasechangeloglock" VALUES (1, 'f', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for act_de_model
+-- ----------------------------
+DROP TABLE IF EXISTS "act_de_model";
+CREATE TABLE "act_de_model" (
+  "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "name" varchar(400) COLLATE "pg_catalog"."default" NOT NULL,
+  "model_key" varchar(400) COLLATE "pg_catalog"."default" NOT NULL,
+  "description" varchar(4000) COLLATE "pg_catalog"."default",
+  "model_comment" varchar(4000) COLLATE "pg_catalog"."default",
+  "created" timestamp(6),
+  "created_by" varchar(255) COLLATE "pg_catalog"."default",
+  "last_updated" timestamp(6),
+  "last_updated_by" varchar(255) COLLATE "pg_catalog"."default",
+  "version" int4,
+  "model_editor_json" text COLLATE "pg_catalog"."default",
+  "model_editor_xml" text COLLATE "pg_catalog"."default",
+  "thumbnail" bytea,
+  "model_type" int4,
+  "tenant_id" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_de_model_history
+-- ----------------------------
+DROP TABLE IF EXISTS "act_de_model_history";
+CREATE TABLE "act_de_model_history" (
+  "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "name" varchar(400) COLLATE "pg_catalog"."default" NOT NULL,
+  "model_key" varchar(400) COLLATE "pg_catalog"."default" NOT NULL,
+  "description" varchar(4000) COLLATE "pg_catalog"."default",
+  "model_comment" varchar(4000) COLLATE "pg_catalog"."default",
+  "created" timestamp(6),
+  "created_by" varchar(255) COLLATE "pg_catalog"."default",
+  "last_updated" timestamp(6),
+  "last_updated_by" varchar(255) COLLATE "pg_catalog"."default",
+  "removal_date" timestamp(6),
+  "version" int4,
+  "model_editor_json" text COLLATE "pg_catalog"."default",
+  "model_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "model_type" int4,
+  "tenant_id" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_de_model_relation
+-- ----------------------------
+DROP TABLE IF EXISTS "act_de_model_relation";
+CREATE TABLE "act_de_model_relation" (
+  "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "parent_model_id" varchar(255) COLLATE "pg_catalog"."default",
+  "model_id" varchar(255) COLLATE "pg_catalog"."default",
+  "relation_type" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_dmn_databasechangelog
+-- ----------------------------
+DROP TABLE IF EXISTS "act_dmn_databasechangelog";
+CREATE TABLE "act_dmn_databasechangelog" (
+  "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "author" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "filename" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "dateexecuted" timestamp(6) NOT NULL,
+  "orderexecuted" int4 NOT NULL,
+  "exectype" varchar(10) COLLATE "pg_catalog"."default" NOT NULL,
+  "md5sum" varchar(35) COLLATE "pg_catalog"."default",
+  "description" varchar(255) COLLATE "pg_catalog"."default",
+  "comments" varchar(255) COLLATE "pg_catalog"."default",
+  "tag" varchar(255) COLLATE "pg_catalog"."default",
+  "liquibase" varchar(20) COLLATE "pg_catalog"."default",
+  "contexts" varchar(255) COLLATE "pg_catalog"."default",
+  "labels" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id" varchar(10) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Records of act_dmn_databasechangelog
+-- ----------------------------
+BEGIN;
+INSERT INTO "act_dmn_databasechangelog" VALUES ('1', 'activiti', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 11:14:44.107764', 1, 'EXECUTED', '8:c8701f1c71018b55029f450b2e9a10a1', 'createTable tableName=ACT_DMN_DEPLOYMENT; createTable tableName=ACT_DMN_DEPLOYMENT_RESOURCE; createTable tableName=ACT_DMN_DECISION_TABLE', '', NULL, '3.6.3', NULL, NULL, '4629284058');
+INSERT INTO "act_dmn_databasechangelog" VALUES ('2', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 11:14:44.126839', 2, 'EXECUTED', '8:47f94b27feb7df8a30d4e338c7bd5fb8', 'createTable tableName=ACT_DMN_HI_DECISION_EXECUTION', '', NULL, '3.6.3', NULL, NULL, '4629284058');
+INSERT INTO "act_dmn_databasechangelog" VALUES ('3', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 11:14:44.132822', 3, 'EXECUTED', '8:ac17eae89fbdccb6e08daf3c7797b579', 'addColumn tableName=ACT_DMN_HI_DECISION_EXECUTION', '', NULL, '3.6.3', NULL, NULL, '4629284058');
+INSERT INTO "act_dmn_databasechangelog" VALUES ('4', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 11:14:44.140014', 4, 'EXECUTED', '8:f73aabc4529e7292c2942073d1cff6f9', 'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_DMN_DECISION_TABLE', '', NULL, '3.6.3', NULL, NULL, '4629284058');
+INSERT INTO "act_dmn_databasechangelog" VALUES ('6', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 11:14:44.147178', 5, 'EXECUTED', '8:646c6a061e0b6e8a62e69844ff96abb0', 'createIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE', '', NULL, '3.6.3', NULL, NULL, '4629284058');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for act_dmn_databasechangeloglock
+-- ----------------------------
+DROP TABLE IF EXISTS "act_dmn_databasechangeloglock";
+CREATE TABLE "act_dmn_databasechangeloglock" (
+  "id" int4 NOT NULL,
+  "locked" bool NOT NULL,
+  "lockgranted" timestamp(6),
+  "lockedby" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Records of act_dmn_databasechangeloglock
+-- ----------------------------
+BEGIN;
+INSERT INTO "act_dmn_databasechangeloglock" VALUES (1, 'f', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for act_dmn_decision_table
+-- ----------------------------
+DROP TABLE IF EXISTS "act_dmn_decision_table";
+CREATE TABLE "act_dmn_decision_table" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "version_" int4,
+  "key_" varchar(255) COLLATE "pg_catalog"."default",
+  "category_" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "resource_name_" varchar(255) COLLATE "pg_catalog"."default",
+  "description_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_dmn_deployment
+-- ----------------------------
+DROP TABLE IF EXISTS "act_dmn_deployment";
+CREATE TABLE "act_dmn_deployment" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "category_" varchar(255) COLLATE "pg_catalog"."default",
+  "deploy_time_" timestamp(6),
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "parent_deployment_id_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_dmn_deployment_resource
+-- ----------------------------
+DROP TABLE IF EXISTS "act_dmn_deployment_resource";
+CREATE TABLE "act_dmn_deployment_resource" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "resource_bytes_" bytea
+)
+;
+
+-- ----------------------------
+-- Table structure for act_dmn_hi_decision_execution
+-- ----------------------------
+DROP TABLE IF EXISTS "act_dmn_hi_decision_execution";
+CREATE TABLE "act_dmn_hi_decision_execution" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "decision_definition_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "start_time_" timestamp(6),
+  "end_time_" timestamp(6),
+  "instance_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "execution_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "activity_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "failed_" bool DEFAULT false,
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "execution_json_" text COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_evt_log
+-- ----------------------------
+DROP TABLE IF EXISTS "act_evt_log";
+CREATE TABLE "act_evt_log" (
+  "log_nr_" int4 NOT NULL DEFAULT nextval('act_evt_log_log_nr__seq'::regclass),
+  "type_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "execution_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "task_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "time_stamp_" timestamp(6) NOT NULL,
+  "user_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "data_" bytea,
+  "lock_owner_" varchar(255) COLLATE "pg_catalog"."default",
+  "lock_time_" timestamp(6),
+  "is_processed_" int2 DEFAULT 0
+)
+;
+
+-- ----------------------------
+-- Table structure for act_fo_databasechangelog
+-- ----------------------------
+DROP TABLE IF EXISTS "act_fo_databasechangelog";
+CREATE TABLE "act_fo_databasechangelog" (
+  "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "author" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "filename" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "dateexecuted" timestamp(6) NOT NULL,
+  "orderexecuted" int4 NOT NULL,
+  "exectype" varchar(10) COLLATE "pg_catalog"."default" NOT NULL,
+  "md5sum" varchar(35) COLLATE "pg_catalog"."default",
+  "description" varchar(255) COLLATE "pg_catalog"."default",
+  "comments" varchar(255) COLLATE "pg_catalog"."default",
+  "tag" varchar(255) COLLATE "pg_catalog"."default",
+  "liquibase" varchar(20) COLLATE "pg_catalog"."default",
+  "contexts" varchar(255) COLLATE "pg_catalog"."default",
+  "labels" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id" varchar(10) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Records of act_fo_databasechangelog
+-- ----------------------------
+BEGIN;
+INSERT INTO "act_fo_databasechangelog" VALUES ('1', 'activiti', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 11:14:44.257713', 1, 'EXECUTED', '8:033ebf9380889aed7c453927ecc3250d', 'createTable tableName=ACT_FO_FORM_DEPLOYMENT; createTable tableName=ACT_FO_FORM_RESOURCE; createTable tableName=ACT_FO_FORM_DEFINITION; createTable tableName=ACT_FO_FORM_INSTANCE', '', NULL, '3.6.3', NULL, NULL, '4629284208');
+INSERT INTO "act_fo_databasechangelog" VALUES ('2', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 11:14:44.269617', 2, 'EXECUTED', '8:986365ceb40445ce3b27a8e6b40f159b', 'addColumn tableName=ACT_FO_FORM_INSTANCE', '', NULL, '3.6.3', NULL, NULL, '4629284208');
+INSERT INTO "act_fo_databasechangelog" VALUES ('3', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 11:14:44.276052', 3, 'EXECUTED', '8:abf482518ceb09830ef674e52c06bf15', 'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_FO_FORM_DEFINITION', '', NULL, '3.6.3', NULL, NULL, '4629284208');
+INSERT INTO "act_fo_databasechangelog" VALUES ('5', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 11:14:44.2847', 4, 'EXECUTED', '8:b4be732b89e5ca028bdd520c6ad4d446', 'createIndex indexName=ACT_IDX_FORM_DEF_UNIQ, tableName=ACT_FO_FORM_DEFINITION', '', NULL, '3.6.3', NULL, NULL, '4629284208');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for act_fo_databasechangeloglock
+-- ----------------------------
+DROP TABLE IF EXISTS "act_fo_databasechangeloglock";
+CREATE TABLE "act_fo_databasechangeloglock" (
+  "id" int4 NOT NULL,
+  "locked" bool NOT NULL,
+  "lockgranted" timestamp(6),
+  "lockedby" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Records of act_fo_databasechangeloglock
+-- ----------------------------
+BEGIN;
+INSERT INTO "act_fo_databasechangeloglock" VALUES (1, 'f', NULL, NULL);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for act_fo_form_definition
+-- ----------------------------
+DROP TABLE IF EXISTS "act_fo_form_definition";
+CREATE TABLE "act_fo_form_definition" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "version_" int4,
+  "key_" varchar(255) COLLATE "pg_catalog"."default",
+  "category_" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "resource_name_" varchar(255) COLLATE "pg_catalog"."default",
+  "description_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_fo_form_deployment
+-- ----------------------------
+DROP TABLE IF EXISTS "act_fo_form_deployment";
+CREATE TABLE "act_fo_form_deployment" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "category_" varchar(255) COLLATE "pg_catalog"."default",
+  "deploy_time_" timestamp(6),
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "parent_deployment_id_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_fo_form_instance
+-- ----------------------------
+DROP TABLE IF EXISTS "act_fo_form_instance";
+CREATE TABLE "act_fo_form_instance" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "form_definition_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "task_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "proc_inst_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "proc_def_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "submitted_date_" timestamp(6),
+  "submitted_by_" varchar(255) COLLATE "pg_catalog"."default",
+  "form_values_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_fo_form_resource
+-- ----------------------------
+DROP TABLE IF EXISTS "act_fo_form_resource";
+CREATE TABLE "act_fo_form_resource" (
+  "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "resource_bytes_" bytea
+)
+;
+
+-- ----------------------------
+-- Table structure for act_ge_bytearray
+-- ----------------------------
+DROP TABLE IF EXISTS "act_ge_bytearray";
+CREATE TABLE "act_ge_bytearray" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "deployment_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "bytes_" bytea,
+  "generated_" bool
+)
+;
+
+-- ----------------------------
+-- Table structure for act_ge_property
+-- ----------------------------
+DROP TABLE IF EXISTS "act_ge_property";
+CREATE TABLE "act_ge_property" (
+  "name_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "value_" varchar(300) COLLATE "pg_catalog"."default",
+  "rev_" int4
+)
+;
+
+-- ----------------------------
+-- Records of act_ge_property
+-- ----------------------------
+BEGIN;
+INSERT INTO "act_ge_property" VALUES ('common.schema.version', '6.5.0.1', 1);
+INSERT INTO "act_ge_property" VALUES ('next.dbid', '1', 1);
+INSERT INTO "act_ge_property" VALUES ('identitylink.schema.version', '6.5.0.1', 1);
+INSERT INTO "act_ge_property" VALUES ('entitylink.schema.version', '6.5.0.1', 1);
+INSERT INTO "act_ge_property" VALUES ('eventsubscription.schema.version', '6.5.0.1', 1);
+INSERT INTO "act_ge_property" VALUES ('task.schema.version', '6.5.0.1', 1);
+INSERT INTO "act_ge_property" VALUES ('variable.schema.version', '6.5.0.1', 1);
+INSERT INTO "act_ge_property" VALUES ('job.schema.version', '6.5.0.1', 1);
+INSERT INTO "act_ge_property" VALUES ('schema.version', '6.5.0.1', 1);
+INSERT INTO "act_ge_property" VALUES ('schema.history', 'create(6.5.0.1)', 1);
+INSERT INTO "act_ge_property" VALUES ('cfg.execution-related-entities-count', 'true', 1);
+INSERT INTO "act_ge_property" VALUES ('cfg.task-related-entities-count', 'true', 1);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for act_hi_actinst
+-- ----------------------------
+DROP TABLE IF EXISTS "act_hi_actinst";
+CREATE TABLE "act_hi_actinst" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4 DEFAULT 1,
+  "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "execution_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "act_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "task_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "call_proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "act_name_" varchar(255) COLLATE "pg_catalog"."default",
+  "act_type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "assignee_" varchar(255) COLLATE "pg_catalog"."default",
+  "start_time_" timestamp(6) NOT NULL,
+  "end_time_" timestamp(6),
+  "duration_" int8,
+  "delete_reason_" varchar(4000) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_hi_attachment
+-- ----------------------------
+DROP TABLE IF EXISTS "act_hi_attachment";
+CREATE TABLE "act_hi_attachment" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "user_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "description_" varchar(4000) COLLATE "pg_catalog"."default",
+  "type_" varchar(255) COLLATE "pg_catalog"."default",
+  "task_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "url_" varchar(4000) COLLATE "pg_catalog"."default",
+  "content_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "time_" timestamp(6)
+)
+;
+
+-- ----------------------------
+-- Table structure for act_hi_comment
+-- ----------------------------
+DROP TABLE IF EXISTS "act_hi_comment";
+CREATE TABLE "act_hi_comment" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "type_" varchar(255) COLLATE "pg_catalog"."default",
+  "time_" timestamp(6) NOT NULL,
+  "user_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "task_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "action_" varchar(255) COLLATE "pg_catalog"."default",
+  "message_" varchar(4000) COLLATE "pg_catalog"."default",
+  "full_msg_" bytea
+)
+;
+
+-- ----------------------------
+-- Table structure for act_hi_detail
+-- ----------------------------
+DROP TABLE IF EXISTS "act_hi_detail";
+CREATE TABLE "act_hi_detail" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "execution_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "task_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "act_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "name_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "var_type_" varchar(64) COLLATE "pg_catalog"."default",
+  "rev_" int4,
+  "time_" timestamp(6) NOT NULL,
+  "bytearray_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "double_" float8,
+  "long_" int8,
+  "text_" varchar(4000) COLLATE "pg_catalog"."default",
+  "text2_" varchar(4000) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_hi_entitylink
+-- ----------------------------
+DROP TABLE IF EXISTS "act_hi_entitylink";
+CREATE TABLE "act_hi_entitylink" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "link_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "create_time_" timestamp(6),
+  "scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "ref_scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "ref_scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "ref_scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "hierarchy_type_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_hi_identitylink
+-- ----------------------------
+DROP TABLE IF EXISTS "act_hi_identitylink";
+CREATE TABLE "act_hi_identitylink" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "group_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "type_" varchar(255) COLLATE "pg_catalog"."default",
+  "user_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "task_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "create_time_" timestamp(6),
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_hi_procinst
+-- ----------------------------
+DROP TABLE IF EXISTS "act_hi_procinst";
+CREATE TABLE "act_hi_procinst" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4 DEFAULT 1,
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "business_key_" varchar(255) COLLATE "pg_catalog"."default",
+  "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "start_time_" timestamp(6) NOT NULL,
+  "end_time_" timestamp(6),
+  "duration_" int8,
+  "start_user_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "start_act_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "end_act_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "super_process_instance_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "delete_reason_" varchar(4000) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "callback_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "callback_type_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_hi_taskinst
+-- ----------------------------
+DROP TABLE IF EXISTS "act_hi_taskinst";
+CREATE TABLE "act_hi_taskinst" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4 DEFAULT 1,
+  "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "task_def_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "task_def_key_" varchar(255) COLLATE "pg_catalog"."default",
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "execution_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "parent_task_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "description_" varchar(4000) COLLATE "pg_catalog"."default",
+  "owner_" varchar(255) COLLATE "pg_catalog"."default",
+  "assignee_" varchar(255) COLLATE "pg_catalog"."default",
+  "start_time_" timestamp(6) NOT NULL,
+  "claim_time_" timestamp(6),
+  "end_time_" timestamp(6),
+  "duration_" int8,
+  "delete_reason_" varchar(4000) COLLATE "pg_catalog"."default",
+  "priority_" int4,
+  "due_date_" timestamp(6),
+  "form_key_" varchar(255) COLLATE "pg_catalog"."default",
+  "category_" varchar(255) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
+  "last_updated_time_" timestamp(6)
+)
+;
+
+-- ----------------------------
+-- Table structure for act_hi_tsk_log
+-- ----------------------------
+DROP TABLE IF EXISTS "act_hi_tsk_log";
+CREATE TABLE "act_hi_tsk_log" (
+  "id_" int4 NOT NULL DEFAULT nextval('act_hi_tsk_log_id__seq'::regclass),
+  "type_" varchar(64) COLLATE "pg_catalog"."default",
+  "task_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "time_stamp_" timestamp(6) NOT NULL,
+  "user_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "data_" varchar(4000) COLLATE "pg_catalog"."default",
+  "execution_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_hi_varinst
+-- ----------------------------
+DROP TABLE IF EXISTS "act_hi_varinst";
+CREATE TABLE "act_hi_varinst" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4 DEFAULT 1,
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "execution_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "task_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "name_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "var_type_" varchar(100) COLLATE "pg_catalog"."default",
+  "scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "bytearray_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "double_" float8,
+  "long_" int8,
+  "text_" varchar(4000) COLLATE "pg_catalog"."default",
+  "text2_" varchar(4000) COLLATE "pg_catalog"."default",
+  "create_time_" timestamp(6),
+  "last_updated_time_" timestamp(6)
+)
+;
+
+-- ----------------------------
+-- Table structure for act_id_bytearray
+-- ----------------------------
+DROP TABLE IF EXISTS "act_id_bytearray";
+CREATE TABLE "act_id_bytearray" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "bytes_" bytea
+)
+;
+
+-- ----------------------------
+-- Table structure for act_id_group
+-- ----------------------------
+DROP TABLE IF EXISTS "act_id_group";
+CREATE TABLE "act_id_group" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "type_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_id_info
+-- ----------------------------
+DROP TABLE IF EXISTS "act_id_info";
+CREATE TABLE "act_id_info" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "user_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "type_" varchar(64) COLLATE "pg_catalog"."default",
+  "key_" varchar(255) COLLATE "pg_catalog"."default",
+  "value_" varchar(255) COLLATE "pg_catalog"."default",
+  "password_" bytea,
+  "parent_id_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_id_membership
+-- ----------------------------
+DROP TABLE IF EXISTS "act_id_membership";
+CREATE TABLE "act_id_membership" (
+  "user_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "group_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL
+)
+;
+
+-- ----------------------------
+-- Table structure for act_id_priv
+-- ----------------------------
+DROP TABLE IF EXISTS "act_id_priv";
+CREATE TABLE "act_id_priv" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL
+)
+;
+
+-- ----------------------------
+-- Table structure for act_id_priv_mapping
+-- ----------------------------
+DROP TABLE IF EXISTS "act_id_priv_mapping";
+CREATE TABLE "act_id_priv_mapping" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "priv_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "user_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "group_id_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_id_property
+-- ----------------------------
+DROP TABLE IF EXISTS "act_id_property";
+CREATE TABLE "act_id_property" (
+  "name_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "value_" varchar(300) COLLATE "pg_catalog"."default",
+  "rev_" int4
+)
+;
+
+-- ----------------------------
+-- Records of act_id_property
+-- ----------------------------
+BEGIN;
+INSERT INTO "act_id_property" VALUES ('schema.version', '6.5.0.1', 1);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for act_id_token
+-- ----------------------------
+DROP TABLE IF EXISTS "act_id_token";
+CREATE TABLE "act_id_token" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "token_value_" varchar(255) COLLATE "pg_catalog"."default",
+  "token_date_" timestamp(6),
+  "ip_address_" varchar(255) COLLATE "pg_catalog"."default",
+  "user_agent_" varchar(255) COLLATE "pg_catalog"."default",
+  "user_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "token_data_" varchar(2000) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_id_user
+-- ----------------------------
+DROP TABLE IF EXISTS "act_id_user";
+CREATE TABLE "act_id_user" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "first_" varchar(255) COLLATE "pg_catalog"."default",
+  "last_" varchar(255) COLLATE "pg_catalog"."default",
+  "display_name_" varchar(255) COLLATE "pg_catalog"."default",
+  "email_" varchar(255) COLLATE "pg_catalog"."default",
+  "pwd_" varchar(255) COLLATE "pg_catalog"."default",
+  "picture_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_procdef_info
+-- ----------------------------
+DROP TABLE IF EXISTS "act_procdef_info";
+CREATE TABLE "act_procdef_info" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "info_json_id_" varchar(64) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_re_deployment
+-- ----------------------------
+DROP TABLE IF EXISTS "act_re_deployment";
+CREATE TABLE "act_re_deployment" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "category_" varchar(255) COLLATE "pg_catalog"."default",
+  "key_" varchar(255) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
+  "deploy_time_" timestamp(6),
+  "derived_from_" varchar(64) COLLATE "pg_catalog"."default",
+  "derived_from_root_" varchar(64) COLLATE "pg_catalog"."default",
+  "parent_deployment_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "engine_version_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_re_model
+-- ----------------------------
+DROP TABLE IF EXISTS "act_re_model";
+CREATE TABLE "act_re_model" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "key_" varchar(255) COLLATE "pg_catalog"."default",
+  "category_" varchar(255) COLLATE "pg_catalog"."default",
+  "create_time_" timestamp(6),
+  "last_update_time_" timestamp(6),
+  "version_" int4,
+  "meta_info_" varchar(4000) COLLATE "pg_catalog"."default",
+  "deployment_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "editor_source_value_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "editor_source_extra_value_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_re_procdef
+-- ----------------------------
+DROP TABLE IF EXISTS "act_re_procdef";
+CREATE TABLE "act_re_procdef" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "category_" varchar(255) COLLATE "pg_catalog"."default",
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "key_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "version_" int4 NOT NULL,
+  "deployment_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "resource_name_" varchar(4000) COLLATE "pg_catalog"."default",
+  "dgrm_resource_name_" varchar(4000) COLLATE "pg_catalog"."default",
+  "description_" varchar(4000) COLLATE "pg_catalog"."default",
+  "has_start_form_key_" bool,
+  "has_graphical_notation_" bool,
+  "suspension_state_" int4,
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
+  "derived_from_" varchar(64) COLLATE "pg_catalog"."default",
+  "derived_from_root_" varchar(64) COLLATE "pg_catalog"."default",
+  "derived_version_" int4 NOT NULL DEFAULT 0,
+  "engine_version_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_ru_actinst
+-- ----------------------------
+DROP TABLE IF EXISTS "act_ru_actinst";
+CREATE TABLE "act_ru_actinst" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4 DEFAULT 1,
+  "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "execution_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "act_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "task_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "call_proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "act_name_" varchar(255) COLLATE "pg_catalog"."default",
+  "act_type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "assignee_" varchar(255) COLLATE "pg_catalog"."default",
+  "start_time_" timestamp(6) NOT NULL,
+  "end_time_" timestamp(6),
+  "duration_" int8,
+  "delete_reason_" varchar(4000) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_ru_deadletter_job
+-- ----------------------------
+DROP TABLE IF EXISTS "act_ru_deadletter_job";
+CREATE TABLE "act_ru_deadletter_job" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "exclusive_" bool,
+  "execution_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "process_instance_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "element_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "element_name_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "exception_stack_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "exception_msg_" varchar(4000) COLLATE "pg_catalog"."default",
+  "duedate_" timestamp(6),
+  "repeat_" varchar(255) COLLATE "pg_catalog"."default",
+  "handler_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "handler_cfg_" varchar(4000) COLLATE "pg_catalog"."default",
+  "custom_values_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "create_time_" timestamp(6),
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_ru_entitylink
+-- ----------------------------
+DROP TABLE IF EXISTS "act_ru_entitylink";
+CREATE TABLE "act_ru_entitylink" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "create_time_" timestamp(6),
+  "link_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "ref_scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "ref_scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "ref_scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "hierarchy_type_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_ru_event_subscr
+-- ----------------------------
+DROP TABLE IF EXISTS "act_ru_event_subscr";
+CREATE TABLE "act_ru_event_subscr" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "event_type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "event_name_" varchar(255) COLLATE "pg_catalog"."default",
+  "execution_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "activity_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "configuration_" varchar(255) COLLATE "pg_catalog"."default",
+  "created_" timestamp(6) NOT NULL,
+  "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "sub_scope_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "scope_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "scope_definition_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(64) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_ru_execution
+-- ----------------------------
+DROP TABLE IF EXISTS "act_ru_execution";
+CREATE TABLE "act_ru_execution" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "business_key_" varchar(255) COLLATE "pg_catalog"."default",
+  "parent_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "super_exec_" varchar(64) COLLATE "pg_catalog"."default",
+  "root_proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "act_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "is_active_" bool,
+  "is_concurrent_" bool,
+  "is_scope_" bool,
+  "is_event_scope_" bool,
+  "is_mi_root_" bool,
+  "suspension_state_" int4,
+  "cached_ent_state_" int4,
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "start_act_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "start_time_" timestamp(6),
+  "start_user_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "lock_time_" timestamp(6),
+  "is_count_enabled_" bool,
+  "evt_subscr_count_" int4,
+  "task_count_" int4,
+  "job_count_" int4,
+  "timer_job_count_" int4,
+  "susp_job_count_" int4,
+  "deadletter_job_count_" int4,
+  "var_count_" int4,
+  "id_link_count_" int4,
+  "callback_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "callback_type_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_ru_history_job
+-- ----------------------------
+DROP TABLE IF EXISTS "act_ru_history_job";
+CREATE TABLE "act_ru_history_job" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "lock_exp_time_" timestamp(6),
+  "lock_owner_" varchar(255) COLLATE "pg_catalog"."default",
+  "retries_" int4,
+  "exception_stack_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "exception_msg_" varchar(4000) COLLATE "pg_catalog"."default",
+  "handler_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "handler_cfg_" varchar(4000) COLLATE "pg_catalog"."default",
+  "custom_values_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "adv_handler_cfg_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "create_time_" timestamp(6),
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_ru_identitylink
+-- ----------------------------
+DROP TABLE IF EXISTS "act_ru_identitylink";
+CREATE TABLE "act_ru_identitylink" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "group_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "type_" varchar(255) COLLATE "pg_catalog"."default",
+  "user_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "task_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Table structure for act_ru_job
+-- ----------------------------
+DROP TABLE IF EXISTS "act_ru_job";
+CREATE TABLE "act_ru_job" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "lock_exp_time_" timestamp(6),
+  "lock_owner_" varchar(255) COLLATE "pg_catalog"."default",
+  "exclusive_" bool,
+  "execution_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "process_instance_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "element_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "element_name_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "retries_" int4,
+  "exception_stack_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "exception_msg_" varchar(4000) COLLATE "pg_catalog"."default",
+  "duedate_" timestamp(6),
+  "repeat_" varchar(255) COLLATE "pg_catalog"."default",
+  "handler_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "handler_cfg_" varchar(4000) COLLATE "pg_catalog"."default",
+  "custom_values_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "create_time_" timestamp(6),
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_ru_suspended_job
+-- ----------------------------
+DROP TABLE IF EXISTS "act_ru_suspended_job";
+CREATE TABLE "act_ru_suspended_job" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "exclusive_" bool,
+  "execution_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "process_instance_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "element_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "element_name_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "retries_" int4,
+  "exception_stack_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "exception_msg_" varchar(4000) COLLATE "pg_catalog"."default",
+  "duedate_" timestamp(6),
+  "repeat_" varchar(255) COLLATE "pg_catalog"."default",
+  "handler_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "handler_cfg_" varchar(4000) COLLATE "pg_catalog"."default",
+  "custom_values_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "create_time_" timestamp(6),
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_ru_task
+-- ----------------------------
+DROP TABLE IF EXISTS "act_ru_task";
+CREATE TABLE "act_ru_task" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "execution_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "task_def_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "name_" varchar(255) COLLATE "pg_catalog"."default",
+  "parent_task_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "description_" varchar(4000) COLLATE "pg_catalog"."default",
+  "task_def_key_" varchar(255) COLLATE "pg_catalog"."default",
+  "owner_" varchar(255) COLLATE "pg_catalog"."default",
+  "assignee_" varchar(255) COLLATE "pg_catalog"."default",
+  "delegation_" varchar(64) COLLATE "pg_catalog"."default",
+  "priority_" int4,
+  "create_time_" timestamp(6),
+  "due_date_" timestamp(6),
+  "category_" varchar(255) COLLATE "pg_catalog"."default",
+  "suspension_state_" int4,
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
+  "form_key_" varchar(255) COLLATE "pg_catalog"."default",
+  "claim_time_" timestamp(6),
+  "is_count_enabled_" bool,
+  "var_count_" int4,
+  "id_link_count_" int4,
+  "sub_task_count_" int4
+)
+;
+
+-- ----------------------------
+-- Table structure for act_ru_timer_job
+-- ----------------------------
+DROP TABLE IF EXISTS "act_ru_timer_job";
+CREATE TABLE "act_ru_timer_job" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "lock_exp_time_" timestamp(6),
+  "lock_owner_" varchar(255) COLLATE "pg_catalog"."default",
+  "exclusive_" bool,
+  "execution_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "process_instance_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "element_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "element_name_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "retries_" int4,
+  "exception_stack_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "exception_msg_" varchar(4000) COLLATE "pg_catalog"."default",
+  "duedate_" timestamp(6),
+  "repeat_" varchar(255) COLLATE "pg_catalog"."default",
+  "handler_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "handler_cfg_" varchar(4000) COLLATE "pg_catalog"."default",
+  "custom_values_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "create_time_" timestamp(6),
+  "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying
+)
+;
+
+-- ----------------------------
+-- Table structure for act_ru_variable
+-- ----------------------------
+DROP TABLE IF EXISTS "act_ru_variable";
+CREATE TABLE "act_ru_variable" (
+  "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL,
+  "rev_" int4,
+  "type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "name_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL,
+  "execution_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "task_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type_" varchar(255) COLLATE "pg_catalog"."default",
+  "bytearray_id_" varchar(64) COLLATE "pg_catalog"."default",
+  "double_" float8,
+  "long_" int8,
+  "text_" varchar(4000) COLLATE "pg_catalog"."default",
+  "text2_" varchar(4000) COLLATE "pg_catalog"."default"
+)
+;
+
+-- ----------------------------
+-- Alter sequences owned by
+-- ----------------------------
+ALTER SEQUENCE "act_evt_log_log_nr__seq"
+OWNED BY "act_evt_log"."log_nr_";
+SELECT setval('"act_evt_log_log_nr__seq"', 2, false);
+ALTER SEQUENCE "act_hi_tsk_log_id__seq"
+OWNED BY "act_hi_tsk_log"."id_";
+SELECT setval('"act_hi_tsk_log_id__seq"', 2, false);
+
+-- ----------------------------
+-- Indexes structure for table act_app_appdef
+-- ----------------------------
+CREATE INDEX "act_idx_app_def_dply" ON "act_app_appdef" USING btree (
+  "deployment_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE UNIQUE INDEX "act_idx_app_def_uniq" ON "act_app_appdef" USING btree (
+  "key_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "version_" "pg_catalog"."int4_ops" ASC NULLS LAST,
+  "tenant_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_app_appdef
+-- ----------------------------
+ALTER TABLE "act_app_appdef" ADD CONSTRAINT "act_app_appdef_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_app_databasechangeloglock
+-- ----------------------------
+ALTER TABLE "act_app_databasechangeloglock" ADD CONSTRAINT "act_app_databasechangeloglock_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table act_app_deployment
+-- ----------------------------
+ALTER TABLE "act_app_deployment" ADD CONSTRAINT "act_app_deployment_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_app_deployment_resource
+-- ----------------------------
+CREATE INDEX "act_idx_app_rsrc_dpl" ON "act_app_deployment_resource" USING btree (
+  "deployment_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_app_deployment_resource
+-- ----------------------------
+ALTER TABLE "act_app_deployment_resource" ADD CONSTRAINT "pk_app_deployment_resource" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_cmmn_casedef
+-- ----------------------------
+CREATE INDEX "act_idx_case_def_dply" ON "act_cmmn_casedef" USING btree (
+  "deployment_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE UNIQUE INDEX "act_idx_case_def_uniq" ON "act_cmmn_casedef" USING btree (
+  "key_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "version_" "pg_catalog"."int4_ops" ASC NULLS LAST,
+  "tenant_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_cmmn_casedef
+-- ----------------------------
+ALTER TABLE "act_cmmn_casedef" ADD CONSTRAINT "act_cmmn_casedef_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_cmmn_databasechangeloglock
+-- ----------------------------
+ALTER TABLE "act_cmmn_databasechangeloglock" ADD CONSTRAINT "act_cmmn_databasechangeloglock_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table act_cmmn_deployment
+-- ----------------------------
+ALTER TABLE "act_cmmn_deployment" ADD CONSTRAINT "act_cmmn_deployment_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_cmmn_deployment_resource
+-- ----------------------------
+CREATE INDEX "act_idx_cmmn_rsrc_dpl" ON "act_cmmn_deployment_resource" USING btree (
+  "deployment_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_cmmn_deployment_resource
+-- ----------------------------
+ALTER TABLE "act_cmmn_deployment_resource" ADD CONSTRAINT "pk_cmmn_deployment_resource" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_cmmn_hi_case_inst
+-- ----------------------------
+ALTER TABLE "act_cmmn_hi_case_inst" ADD CONSTRAINT "act_cmmn_hi_case_inst_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_cmmn_hi_mil_inst
+-- ----------------------------
+ALTER TABLE "act_cmmn_hi_mil_inst" ADD CONSTRAINT "act_cmmn_hi_mil_inst_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_cmmn_hi_plan_item_inst
+-- ----------------------------
+ALTER TABLE "act_cmmn_hi_plan_item_inst" ADD CONSTRAINT "act_cmmn_hi_plan_item_inst_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_cmmn_ru_case_inst
+-- ----------------------------
+CREATE INDEX "act_idx_case_inst_case_def" ON "act_cmmn_ru_case_inst" USING btree (
+  "case_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_case_inst_parent" ON "act_cmmn_ru_case_inst" USING btree (
+  "parent_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_cmmn_ru_case_inst
+-- ----------------------------
+ALTER TABLE "act_cmmn_ru_case_inst" ADD CONSTRAINT "act_cmmn_ru_case_inst_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_cmmn_ru_mil_inst
+-- ----------------------------
+CREATE INDEX "act_idx_mil_case_def" ON "act_cmmn_ru_mil_inst" USING btree (
+  "case_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_mil_case_inst" ON "act_cmmn_ru_mil_inst" USING btree (
+  "case_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_cmmn_ru_mil_inst
+-- ----------------------------
+ALTER TABLE "act_cmmn_ru_mil_inst" ADD CONSTRAINT "act_cmmn_ru_mil_inst_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_cmmn_ru_plan_item_inst
+-- ----------------------------
+CREATE INDEX "act_idx_plan_item_case_def" ON "act_cmmn_ru_plan_item_inst" USING btree (
+  "case_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_plan_item_case_inst" ON "act_cmmn_ru_plan_item_inst" USING btree (
+  "case_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_plan_item_stage_inst" ON "act_cmmn_ru_plan_item_inst" USING btree (
+  "stage_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_cmmn_ru_plan_item_inst
+-- ----------------------------
+ALTER TABLE "act_cmmn_ru_plan_item_inst" ADD CONSTRAINT "pk_cmmn_plan_item_inst" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_cmmn_ru_sentry_part_inst
+-- ----------------------------
+CREATE INDEX "act_idx_sentry_case_def" ON "act_cmmn_ru_sentry_part_inst" USING btree (
+  "case_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_sentry_case_inst" ON "act_cmmn_ru_sentry_part_inst" USING btree (
+  "case_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_sentry_plan_item" ON "act_cmmn_ru_sentry_part_inst" USING btree (
+  "plan_item_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_cmmn_ru_sentry_part_inst
+-- ----------------------------
+ALTER TABLE "act_cmmn_ru_sentry_part_inst" ADD CONSTRAINT "pk_cmmn_sentry_part_inst" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_co_content_item
+-- ----------------------------
+CREATE INDEX "idx_contitem_procid" ON "act_co_content_item" USING btree (
+  "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_contitem_scope" ON "act_co_content_item" USING btree (
+  "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "idx_contitem_taskid" ON "act_co_content_item" USING btree (
+  "task_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_co_content_item
+-- ----------------------------
+ALTER TABLE "act_co_content_item" ADD CONSTRAINT "act_co_content_item_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_co_databasechangeloglock
+-- ----------------------------
+ALTER TABLE "act_co_databasechangeloglock" ADD CONSTRAINT "act_co_databasechangeloglock_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table act_de_databasechangeloglock
+-- ----------------------------
+ALTER TABLE "act_de_databasechangeloglock" ADD CONSTRAINT "act_de_databasechangeloglock_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Indexes structure for table act_de_model
+-- ----------------------------
+CREATE INDEX "idx_proc_mod_created" ON "act_de_model" USING btree (
+  "created_by" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_de_model
+-- ----------------------------
+ALTER TABLE "act_de_model" ADD CONSTRAINT "act_de_model_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Indexes structure for table act_de_model_history
+-- ----------------------------
+CREATE INDEX "idx_proc_mod_history_proc" ON "act_de_model_history" USING btree (
+  "model_id" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_de_model_history
+-- ----------------------------
+ALTER TABLE "act_de_model_history" ADD CONSTRAINT "act_de_model_history_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table act_de_model_relation
+-- ----------------------------
+ALTER TABLE "act_de_model_relation" ADD CONSTRAINT "act_de_model_relation_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table act_dmn_databasechangeloglock
+-- ----------------------------
+ALTER TABLE "act_dmn_databasechangeloglock" ADD CONSTRAINT "act_dmn_databasechangeloglock_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Indexes structure for table act_dmn_decision_table
+-- ----------------------------
+CREATE UNIQUE INDEX "act_idx_dec_tbl_uniq" ON "act_dmn_decision_table" USING btree (
+  "key_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "version_" "pg_catalog"."int4_ops" ASC NULLS LAST,
+  "tenant_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_dmn_decision_table
+-- ----------------------------
+ALTER TABLE "act_dmn_decision_table" ADD CONSTRAINT "act_dmn_decision_table_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_dmn_deployment
+-- ----------------------------
+ALTER TABLE "act_dmn_deployment" ADD CONSTRAINT "act_dmn_deployment_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_dmn_deployment_resource
+-- ----------------------------
+ALTER TABLE "act_dmn_deployment_resource" ADD CONSTRAINT "act_dmn_deployment_resource_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_dmn_hi_decision_execution
+-- ----------------------------
+ALTER TABLE "act_dmn_hi_decision_execution" ADD CONSTRAINT "act_dmn_hi_decision_execution_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_evt_log
+-- ----------------------------
+ALTER TABLE "act_evt_log" ADD CONSTRAINT "act_evt_log_pkey" PRIMARY KEY ("log_nr_");
+
+-- ----------------------------
+-- Primary Key structure for table act_fo_databasechangeloglock
+-- ----------------------------
+ALTER TABLE "act_fo_databasechangeloglock" ADD CONSTRAINT "act_fo_databasechangeloglock_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Indexes structure for table act_fo_form_definition
+-- ----------------------------
+CREATE UNIQUE INDEX "act_idx_form_def_uniq" ON "act_fo_form_definition" USING btree (
+  "key_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "version_" "pg_catalog"."int4_ops" ASC NULLS LAST,
+  "tenant_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_fo_form_definition
+-- ----------------------------
+ALTER TABLE "act_fo_form_definition" ADD CONSTRAINT "act_fo_form_definition_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_fo_form_deployment
+-- ----------------------------
+ALTER TABLE "act_fo_form_deployment" ADD CONSTRAINT "act_fo_form_deployment_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_fo_form_instance
+-- ----------------------------
+ALTER TABLE "act_fo_form_instance" ADD CONSTRAINT "act_fo_form_instance_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_fo_form_resource
+-- ----------------------------
+ALTER TABLE "act_fo_form_resource" ADD CONSTRAINT "act_fo_form_resource_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_ge_bytearray
+-- ----------------------------
+CREATE INDEX "act_idx_bytear_depl" ON "act_ge_bytearray" USING btree (
+  "deployment_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_ge_bytearray
+-- ----------------------------
+ALTER TABLE "act_ge_bytearray" ADD CONSTRAINT "act_ge_bytearray_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_ge_property
+-- ----------------------------
+ALTER TABLE "act_ge_property" ADD CONSTRAINT "act_ge_property_pkey" PRIMARY KEY ("name_");
+
+-- ----------------------------
+-- Indexes structure for table act_hi_actinst
+-- ----------------------------
+CREATE INDEX "act_idx_hi_act_inst_end" ON "act_hi_actinst" USING btree (
+  "end_time_" "pg_catalog"."timestamp_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_act_inst_exec" ON "act_hi_actinst" USING btree (
+  "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "act_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_act_inst_procinst" ON "act_hi_actinst" USING btree (
+  "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "act_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_act_inst_start" ON "act_hi_actinst" USING btree (
+  "start_time_" "pg_catalog"."timestamp_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_hi_actinst
+-- ----------------------------
+ALTER TABLE "act_hi_actinst" ADD CONSTRAINT "act_hi_actinst_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_hi_attachment
+-- ----------------------------
+ALTER TABLE "act_hi_attachment" ADD CONSTRAINT "act_hi_attachment_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_hi_comment
+-- ----------------------------
+ALTER TABLE "act_hi_comment" ADD CONSTRAINT "act_hi_comment_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_hi_detail
+-- ----------------------------
+CREATE INDEX "act_idx_hi_detail_act_inst" ON "act_hi_detail" USING btree (
+  "act_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_detail_name" ON "act_hi_detail" USING btree (
+  "name_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_detail_proc_inst" ON "act_hi_detail" USING btree (
+  "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_detail_task_id" ON "act_hi_detail" USING btree (
+  "task_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_detail_time" ON "act_hi_detail" USING btree (
+  "time_" "pg_catalog"."timestamp_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_hi_detail
+-- ----------------------------
+ALTER TABLE "act_hi_detail" ADD CONSTRAINT "act_hi_detail_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_hi_entitylink
+-- ----------------------------
+CREATE INDEX "act_idx_hi_ent_lnk_scope" ON "act_hi_entitylink" USING btree (
+  "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "link_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_ent_lnk_scope_def" ON "act_hi_entitylink" USING btree (
+  "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "link_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_hi_entitylink
+-- ----------------------------
+ALTER TABLE "act_hi_entitylink" ADD CONSTRAINT "act_hi_entitylink_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_hi_identitylink
+-- ----------------------------
+CREATE INDEX "act_idx_hi_ident_lnk_procinst" ON "act_hi_identitylink" USING btree (
+  "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_ident_lnk_scope" ON "act_hi_identitylink" USING btree (
+  "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_ident_lnk_scope_def" ON "act_hi_identitylink" USING btree (
+  "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_ident_lnk_task" ON "act_hi_identitylink" USING btree (
+  "task_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_ident_lnk_user" ON "act_hi_identitylink" USING btree (
+  "user_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_hi_identitylink
+-- ----------------------------
+ALTER TABLE "act_hi_identitylink" ADD CONSTRAINT "act_hi_identitylink_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_hi_procinst
+-- ----------------------------
+CREATE INDEX "act_idx_hi_pro_i_buskey" ON "act_hi_procinst" USING btree (
+  "business_key_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_pro_inst_end" ON "act_hi_procinst" USING btree (
+  "end_time_" "pg_catalog"."timestamp_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Uniques structure for table act_hi_procinst
+-- ----------------------------
+ALTER TABLE "act_hi_procinst" ADD CONSTRAINT "act_hi_procinst_proc_inst_id__key" UNIQUE ("proc_inst_id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_hi_procinst
+-- ----------------------------
+ALTER TABLE "act_hi_procinst" ADD CONSTRAINT "act_hi_procinst_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_hi_taskinst
+-- ----------------------------
+CREATE INDEX "act_idx_hi_task_inst_procinst" ON "act_hi_taskinst" USING btree (
+  "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_task_scope" ON "act_hi_taskinst" USING btree (
+  "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_task_scope_def" ON "act_hi_taskinst" USING btree (
+  "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_task_sub_scope" ON "act_hi_taskinst" USING btree (
+  "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_hi_taskinst
+-- ----------------------------
+ALTER TABLE "act_hi_taskinst" ADD CONSTRAINT "act_hi_taskinst_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_hi_tsk_log
+-- ----------------------------
+ALTER TABLE "act_hi_tsk_log" ADD CONSTRAINT "act_hi_tsk_log_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_hi_varinst
+-- ----------------------------
+CREATE INDEX "act_idx_hi_procvar_exe" ON "act_hi_varinst" USING btree (
+  "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_procvar_name_type" ON "act_hi_varinst" USING btree (
+  "name_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "var_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_procvar_proc_inst" ON "act_hi_varinst" USING btree (
+  "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_procvar_task_id" ON "act_hi_varinst" USING btree (
+  "task_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_var_scope_id_type" ON "act_hi_varinst" USING btree (
+  "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_hi_var_sub_id_type" ON "act_hi_varinst" USING btree (
+  "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_hi_varinst
+-- ----------------------------
+ALTER TABLE "act_hi_varinst" ADD CONSTRAINT "act_hi_varinst_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_id_bytearray
+-- ----------------------------
+ALTER TABLE "act_id_bytearray" ADD CONSTRAINT "act_id_bytearray_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_id_group
+-- ----------------------------
+ALTER TABLE "act_id_group" ADD CONSTRAINT "act_id_group_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_id_info
+-- ----------------------------
+ALTER TABLE "act_id_info" ADD CONSTRAINT "act_id_info_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_id_membership
+-- ----------------------------
+CREATE INDEX "act_idx_memb_group" ON "act_id_membership" USING btree (
+  "group_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_memb_user" ON "act_id_membership" USING btree (
+  "user_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_id_membership
+-- ----------------------------
+ALTER TABLE "act_id_membership" ADD CONSTRAINT "act_id_membership_pkey" PRIMARY KEY ("user_id_", "group_id_");
+
+-- ----------------------------
+-- Uniques structure for table act_id_priv
+-- ----------------------------
+ALTER TABLE "act_id_priv" ADD CONSTRAINT "act_uniq_priv_name" UNIQUE ("name_");
+
+-- ----------------------------
+-- Primary Key structure for table act_id_priv
+-- ----------------------------
+ALTER TABLE "act_id_priv" ADD CONSTRAINT "act_id_priv_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_id_priv_mapping
+-- ----------------------------
+CREATE INDEX "act_idx_priv_group" ON "act_id_priv_mapping" USING btree (
+  "group_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_priv_mapping" ON "act_id_priv_mapping" USING btree (
+  "priv_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_priv_user" ON "act_id_priv_mapping" USING btree (
+  "user_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_id_priv_mapping
+-- ----------------------------
+ALTER TABLE "act_id_priv_mapping" ADD CONSTRAINT "act_id_priv_mapping_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_id_property
+-- ----------------------------
+ALTER TABLE "act_id_property" ADD CONSTRAINT "act_id_property_pkey" PRIMARY KEY ("name_");
+
+-- ----------------------------
+-- Primary Key structure for table act_id_token
+-- ----------------------------
+ALTER TABLE "act_id_token" ADD CONSTRAINT "act_id_token_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_id_user
+-- ----------------------------
+ALTER TABLE "act_id_user" ADD CONSTRAINT "act_id_user_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_procdef_info
+-- ----------------------------
+CREATE INDEX "act_idx_procdef_info_json" ON "act_procdef_info" USING btree (
+  "info_json_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_procdef_info_proc" ON "act_procdef_info" USING btree (
+  "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Uniques structure for table act_procdef_info
+-- ----------------------------
+ALTER TABLE "act_procdef_info" ADD CONSTRAINT "act_uniq_info_procdef" UNIQUE ("proc_def_id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_procdef_info
+-- ----------------------------
+ALTER TABLE "act_procdef_info" ADD CONSTRAINT "act_procdef_info_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_re_deployment
+-- ----------------------------
+ALTER TABLE "act_re_deployment" ADD CONSTRAINT "act_re_deployment_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_re_model
+-- ----------------------------
+CREATE INDEX "act_idx_model_deployment" ON "act_re_model" USING btree (
+  "deployment_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_model_source" ON "act_re_model" USING btree (
+  "editor_source_value_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_model_source_extra" ON "act_re_model" USING btree (
+  "editor_source_extra_value_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_re_model
+-- ----------------------------
+ALTER TABLE "act_re_model" ADD CONSTRAINT "act_re_model_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Uniques structure for table act_re_procdef
+-- ----------------------------
+ALTER TABLE "act_re_procdef" ADD CONSTRAINT "act_uniq_procdef" UNIQUE ("key_", "version_", "derived_version_", "tenant_id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_re_procdef
+-- ----------------------------
+ALTER TABLE "act_re_procdef" ADD CONSTRAINT "act_re_procdef_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_ru_actinst
+-- ----------------------------
+CREATE INDEX "act_idx_ru_acti_end" ON "act_ru_actinst" USING btree (
+  "end_time_" "pg_catalog"."timestamp_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_ru_acti_exec" ON "act_ru_actinst" USING btree (
+  "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_ru_acti_exec_act" ON "act_ru_actinst" USING btree (
+  "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "act_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_ru_acti_proc" ON "act_ru_actinst" USING btree (
+  "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_ru_acti_proc_act" ON "act_ru_actinst" USING btree (
+  "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "act_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_ru_acti_start" ON "act_ru_actinst" USING btree (
+  "start_time_" "pg_catalog"."timestamp_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_ru_actinst
+-- ----------------------------
+ALTER TABLE "act_ru_actinst" ADD CONSTRAINT "act_ru_actinst_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_ru_deadletter_job
+-- ----------------------------
+CREATE INDEX "act_idx_deadletter_job_custom_values_id" ON "act_ru_deadletter_job" USING btree (
+  "custom_values_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_deadletter_job_exception_stack_id" ON "act_ru_deadletter_job" USING btree (
+  "exception_stack_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_deadletter_job_execution_id" ON "act_ru_deadletter_job" USING btree (
+  "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_deadletter_job_proc_def_id" ON "act_ru_deadletter_job" USING btree (
+  "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_deadletter_job_process_instance_id" ON "act_ru_deadletter_job" USING btree (
+  "process_instance_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_djob_scope" ON "act_ru_deadletter_job" USING btree (
+  "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_djob_scope_def" ON "act_ru_deadletter_job" USING btree (
+  "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_djob_sub_scope" ON "act_ru_deadletter_job" USING btree (
+  "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_ru_deadletter_job
+-- ----------------------------
+ALTER TABLE "act_ru_deadletter_job" ADD CONSTRAINT "act_ru_deadletter_job_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_ru_entitylink
+-- ----------------------------
+CREATE INDEX "act_idx_ent_lnk_scope" ON "act_ru_entitylink" USING btree (
+  "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "link_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_ent_lnk_scope_def" ON "act_ru_entitylink" USING btree (
+  "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "link_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_ru_entitylink
+-- ----------------------------
+ALTER TABLE "act_ru_entitylink" ADD CONSTRAINT "act_ru_entitylink_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_ru_event_subscr
+-- ----------------------------
+CREATE INDEX "act_idx_event_subscr" ON "act_ru_event_subscr" USING btree (
+  "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_event_subscr_config_" ON "act_ru_event_subscr" USING btree (
+  "configuration_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_ru_event_subscr
+-- ----------------------------
+ALTER TABLE "act_ru_event_subscr" ADD CONSTRAINT "act_ru_event_subscr_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_ru_execution
+-- ----------------------------
+CREATE INDEX "act_idx_exe_parent" ON "act_ru_execution" USING btree (
+  "parent_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_exe_procdef" ON "act_ru_execution" USING btree (
+  "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_exe_procinst" ON "act_ru_execution" USING btree (
+  "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_exe_root" ON "act_ru_execution" USING btree (
+  "root_proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_exe_super" ON "act_ru_execution" USING btree (
+  "super_exec_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_exec_buskey" ON "act_ru_execution" USING btree (
+  "business_key_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_ru_execution
+-- ----------------------------
+ALTER TABLE "act_ru_execution" ADD CONSTRAINT "act_ru_execution_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Primary Key structure for table act_ru_history_job
+-- ----------------------------
+ALTER TABLE "act_ru_history_job" ADD CONSTRAINT "act_ru_history_job_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_ru_identitylink
+-- ----------------------------
+CREATE INDEX "act_idx_athrz_procedef" ON "act_ru_identitylink" USING btree (
+  "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_ident_lnk_group" ON "act_ru_identitylink" USING btree (
+  "group_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_ident_lnk_scope" ON "act_ru_identitylink" USING btree (
+  "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_ident_lnk_scope_def" ON "act_ru_identitylink" USING btree (
+  "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_ident_lnk_user" ON "act_ru_identitylink" USING btree (
+  "user_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_idl_procinst" ON "act_ru_identitylink" USING btree (
+  "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_tskass_task" ON "act_ru_identitylink" USING btree (
+  "task_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_ru_identitylink
+-- ----------------------------
+ALTER TABLE "act_ru_identitylink" ADD CONSTRAINT "act_ru_identitylink_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_ru_job
+-- ----------------------------
+CREATE INDEX "act_idx_job_custom_values_id" ON "act_ru_job" USING btree (
+  "custom_values_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_job_exception_stack_id" ON "act_ru_job" USING btree (
+  "exception_stack_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_job_execution_id" ON "act_ru_job" USING btree (
+  "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_job_proc_def_id" ON "act_ru_job" USING btree (
+  "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_job_process_instance_id" ON "act_ru_job" USING btree (
+  "process_instance_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_job_scope" ON "act_ru_job" USING btree (
+  "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_job_scope_def" ON "act_ru_job" USING btree (
+  "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_job_sub_scope" ON "act_ru_job" USING btree (
+  "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_ru_job
+-- ----------------------------
+ALTER TABLE "act_ru_job" ADD CONSTRAINT "act_ru_job_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_ru_suspended_job
+-- ----------------------------
+CREATE INDEX "act_idx_sjob_scope" ON "act_ru_suspended_job" USING btree (
+  "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_sjob_scope_def" ON "act_ru_suspended_job" USING btree (
+  "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_sjob_sub_scope" ON "act_ru_suspended_job" USING btree (
+  "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_suspended_job_custom_values_id" ON "act_ru_suspended_job" USING btree (
+  "custom_values_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_suspended_job_exception_stack_id" ON "act_ru_suspended_job" USING btree (
+  "exception_stack_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_suspended_job_execution_id" ON "act_ru_suspended_job" USING btree (
+  "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_suspended_job_proc_def_id" ON "act_ru_suspended_job" USING btree (
+  "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_suspended_job_process_instance_id" ON "act_ru_suspended_job" USING btree (
+  "process_instance_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_ru_suspended_job
+-- ----------------------------
+ALTER TABLE "act_ru_suspended_job" ADD CONSTRAINT "act_ru_suspended_job_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_ru_task
+-- ----------------------------
+CREATE INDEX "act_idx_task_create" ON "act_ru_task" USING btree (
+  "create_time_" "pg_catalog"."timestamp_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_task_exec" ON "act_ru_task" USING btree (
+  "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_task_procdef" ON "act_ru_task" USING btree (
+  "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_task_procinst" ON "act_ru_task" USING btree (
+  "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_task_scope" ON "act_ru_task" USING btree (
+  "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_task_scope_def" ON "act_ru_task" USING btree (
+  "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_task_sub_scope" ON "act_ru_task" USING btree (
+  "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_ru_task
+-- ----------------------------
+ALTER TABLE "act_ru_task" ADD CONSTRAINT "act_ru_task_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_ru_timer_job
+-- ----------------------------
+CREATE INDEX "act_idx_timer_job_custom_values_id" ON "act_ru_timer_job" USING btree (
+  "custom_values_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_timer_job_exception_stack_id" ON "act_ru_timer_job" USING btree (
+  "exception_stack_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_timer_job_execution_id" ON "act_ru_timer_job" USING btree (
+  "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_timer_job_proc_def_id" ON "act_ru_timer_job" USING btree (
+  "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_timer_job_process_instance_id" ON "act_ru_timer_job" USING btree (
+  "process_instance_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_tjob_scope" ON "act_ru_timer_job" USING btree (
+  "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_tjob_scope_def" ON "act_ru_timer_job" USING btree (
+  "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_tjob_sub_scope" ON "act_ru_timer_job" USING btree (
+  "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_ru_timer_job
+-- ----------------------------
+ALTER TABLE "act_ru_timer_job" ADD CONSTRAINT "act_ru_timer_job_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Indexes structure for table act_ru_variable
+-- ----------------------------
+CREATE INDEX "act_idx_ru_var_scope_id_type" ON "act_ru_variable" USING btree (
+  "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_ru_var_sub_id_type" ON "act_ru_variable" USING btree (
+  "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST,
+  "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_var_bytearray" ON "act_ru_variable" USING btree (
+  "bytearray_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_var_exe" ON "act_ru_variable" USING btree (
+  "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_var_procinst" ON "act_ru_variable" USING btree (
+  "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+CREATE INDEX "act_idx_variable_task_id" ON "act_ru_variable" USING btree (
+  "task_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST
+);
+
+-- ----------------------------
+-- Primary Key structure for table act_ru_variable
+-- ----------------------------
+ALTER TABLE "act_ru_variable" ADD CONSTRAINT "act_ru_variable_pkey" PRIMARY KEY ("id_");
+
+-- ----------------------------
+-- Foreign Keys structure for table act_app_appdef
+-- ----------------------------
+ALTER TABLE "act_app_appdef" ADD CONSTRAINT "act_fk_app_def_dply" FOREIGN KEY ("deployment_id_") REFERENCES "act_app_deployment" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_app_deployment_resource
+-- ----------------------------
+ALTER TABLE "act_app_deployment_resource" ADD CONSTRAINT "act_fk_app_rsrc_dpl" FOREIGN KEY ("deployment_id_") REFERENCES "act_app_deployment" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_cmmn_casedef
+-- ----------------------------
+ALTER TABLE "act_cmmn_casedef" ADD CONSTRAINT "act_fk_case_def_dply" FOREIGN KEY ("deployment_id_") REFERENCES "act_cmmn_deployment" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_cmmn_deployment_resource
+-- ----------------------------
+ALTER TABLE "act_cmmn_deployment_resource" ADD CONSTRAINT "act_fk_cmmn_rsrc_dpl" FOREIGN KEY ("deployment_id_") REFERENCES "act_cmmn_deployment" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_cmmn_ru_case_inst
+-- ----------------------------
+ALTER TABLE "act_cmmn_ru_case_inst" ADD CONSTRAINT "act_fk_case_inst_case_def" FOREIGN KEY ("case_def_id_") REFERENCES "act_cmmn_casedef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_cmmn_ru_mil_inst
+-- ----------------------------
+ALTER TABLE "act_cmmn_ru_mil_inst" ADD CONSTRAINT "act_fk_mil_case_def" FOREIGN KEY ("case_def_id_") REFERENCES "act_cmmn_casedef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_cmmn_ru_mil_inst" ADD CONSTRAINT "act_fk_mil_case_inst" FOREIGN KEY ("case_inst_id_") REFERENCES "act_cmmn_ru_case_inst" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_cmmn_ru_plan_item_inst
+-- ----------------------------
+ALTER TABLE "act_cmmn_ru_plan_item_inst" ADD CONSTRAINT "act_fk_plan_item_case_def" FOREIGN KEY ("case_def_id_") REFERENCES "act_cmmn_casedef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_cmmn_ru_plan_item_inst" ADD CONSTRAINT "act_fk_plan_item_case_inst" FOREIGN KEY ("case_inst_id_") REFERENCES "act_cmmn_ru_case_inst" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_cmmn_ru_sentry_part_inst
+-- ----------------------------
+ALTER TABLE "act_cmmn_ru_sentry_part_inst" ADD CONSTRAINT "act_fk_sentry_case_def" FOREIGN KEY ("case_def_id_") REFERENCES "act_cmmn_casedef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_cmmn_ru_sentry_part_inst" ADD CONSTRAINT "act_fk_sentry_case_inst" FOREIGN KEY ("case_inst_id_") REFERENCES "act_cmmn_ru_case_inst" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_cmmn_ru_sentry_part_inst" ADD CONSTRAINT "act_fk_sentry_plan_item" FOREIGN KEY ("plan_item_inst_id_") REFERENCES "act_cmmn_ru_plan_item_inst" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_de_model_relation
+-- ----------------------------
+ALTER TABLE "act_de_model_relation" ADD CONSTRAINT "fk_relation_child" FOREIGN KEY ("model_id") REFERENCES "act_de_model" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_de_model_relation" ADD CONSTRAINT "fk_relation_parent" FOREIGN KEY ("parent_model_id") REFERENCES "act_de_model" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_ge_bytearray
+-- ----------------------------
+ALTER TABLE "act_ge_bytearray" ADD CONSTRAINT "act_fk_bytearr_depl" FOREIGN KEY ("deployment_id_") REFERENCES "act_re_deployment" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_id_membership
+-- ----------------------------
+ALTER TABLE "act_id_membership" ADD CONSTRAINT "act_fk_memb_group" FOREIGN KEY ("group_id_") REFERENCES "act_id_group" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_id_membership" ADD CONSTRAINT "act_fk_memb_user" FOREIGN KEY ("user_id_") REFERENCES "act_id_user" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_id_priv_mapping
+-- ----------------------------
+ALTER TABLE "act_id_priv_mapping" ADD CONSTRAINT "act_fk_priv_mapping" FOREIGN KEY ("priv_id_") REFERENCES "act_id_priv" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_procdef_info
+-- ----------------------------
+ALTER TABLE "act_procdef_info" ADD CONSTRAINT "act_fk_info_json_ba" FOREIGN KEY ("info_json_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_procdef_info" ADD CONSTRAINT "act_fk_info_procdef" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_re_model
+-- ----------------------------
+ALTER TABLE "act_re_model" ADD CONSTRAINT "act_fk_model_deployment" FOREIGN KEY ("deployment_id_") REFERENCES "act_re_deployment" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_re_model" ADD CONSTRAINT "act_fk_model_source" FOREIGN KEY ("editor_source_value_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_re_model" ADD CONSTRAINT "act_fk_model_source_extra" FOREIGN KEY ("editor_source_extra_value_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_ru_deadletter_job
+-- ----------------------------
+ALTER TABLE "act_ru_deadletter_job" ADD CONSTRAINT "act_fk_deadletter_job_custom_values" FOREIGN KEY ("custom_values_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_deadletter_job" ADD CONSTRAINT "act_fk_deadletter_job_exception" FOREIGN KEY ("exception_stack_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_deadletter_job" ADD CONSTRAINT "act_fk_deadletter_job_execution" FOREIGN KEY ("execution_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_deadletter_job" ADD CONSTRAINT "act_fk_deadletter_job_proc_def" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_deadletter_job" ADD CONSTRAINT "act_fk_deadletter_job_process_instance" FOREIGN KEY ("process_instance_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_ru_event_subscr
+-- ----------------------------
+ALTER TABLE "act_ru_event_subscr" ADD CONSTRAINT "act_fk_event_exec" FOREIGN KEY ("execution_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_ru_execution
+-- ----------------------------
+ALTER TABLE "act_ru_execution" ADD CONSTRAINT "act_fk_exe_parent" FOREIGN KEY ("parent_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_execution" ADD CONSTRAINT "act_fk_exe_procdef" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_execution" ADD CONSTRAINT "act_fk_exe_procinst" FOREIGN KEY ("proc_inst_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_execution" ADD CONSTRAINT "act_fk_exe_super" FOREIGN KEY ("super_exec_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_ru_identitylink
+-- ----------------------------
+ALTER TABLE "act_ru_identitylink" ADD CONSTRAINT "act_fk_athrz_procedef" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_identitylink" ADD CONSTRAINT "act_fk_idl_procinst" FOREIGN KEY ("proc_inst_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_identitylink" ADD CONSTRAINT "act_fk_tskass_task" FOREIGN KEY ("task_id_") REFERENCES "act_ru_task" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_ru_job
+-- ----------------------------
+ALTER TABLE "act_ru_job" ADD CONSTRAINT "act_fk_job_custom_values" FOREIGN KEY ("custom_values_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_job" ADD CONSTRAINT "act_fk_job_exception" FOREIGN KEY ("exception_stack_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_job" ADD CONSTRAINT "act_fk_job_execution" FOREIGN KEY ("execution_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_job" ADD CONSTRAINT "act_fk_job_proc_def" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_job" ADD CONSTRAINT "act_fk_job_process_instance" FOREIGN KEY ("process_instance_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_ru_suspended_job
+-- ----------------------------
+ALTER TABLE "act_ru_suspended_job" ADD CONSTRAINT "act_fk_suspended_job_custom_values" FOREIGN KEY ("custom_values_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_suspended_job" ADD CONSTRAINT "act_fk_suspended_job_exception" FOREIGN KEY ("exception_stack_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_suspended_job" ADD CONSTRAINT "act_fk_suspended_job_execution" FOREIGN KEY ("execution_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_suspended_job" ADD CONSTRAINT "act_fk_suspended_job_proc_def" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_suspended_job" ADD CONSTRAINT "act_fk_suspended_job_process_instance" FOREIGN KEY ("process_instance_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_ru_task
+-- ----------------------------
+ALTER TABLE "act_ru_task" ADD CONSTRAINT "act_fk_task_exe" FOREIGN KEY ("execution_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_task" ADD CONSTRAINT "act_fk_task_procdef" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_task" ADD CONSTRAINT "act_fk_task_procinst" FOREIGN KEY ("proc_inst_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_ru_timer_job
+-- ----------------------------
+ALTER TABLE "act_ru_timer_job" ADD CONSTRAINT "act_fk_timer_job_custom_values" FOREIGN KEY ("custom_values_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_timer_job" ADD CONSTRAINT "act_fk_timer_job_exception" FOREIGN KEY ("exception_stack_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_timer_job" ADD CONSTRAINT "act_fk_timer_job_execution" FOREIGN KEY ("execution_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_timer_job" ADD CONSTRAINT "act_fk_timer_job_proc_def" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_timer_job" ADD CONSTRAINT "act_fk_timer_job_process_instance" FOREIGN KEY ("process_instance_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+
+-- ----------------------------
+-- Foreign Keys structure for table act_ru_variable
+-- ----------------------------
+ALTER TABLE "act_ru_variable" ADD CONSTRAINT "act_fk_var_bytearray" FOREIGN KEY ("bytearray_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_variable" ADD CONSTRAINT "act_fk_var_exe" FOREIGN KEY ("execution_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
+ALTER TABLE "act_ru_variable" ADD CONSTRAINT "act_fk_var_procinst" FOREIGN KEY ("proc_inst_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION;
diff --git a/skjcmanager/doc/sql/postgresql/bladex-saber-postgresql.sql b/skjcmanager/doc/sql/postgresql/bladex-saber-postgresql.sql
new file mode 100644
index 0000000..40b21a0
--- /dev/null
+++ b/skjcmanager/doc/sql/postgresql/bladex-saber-postgresql.sql
@@ -0,0 +1,5285 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : postgres_localhost
+ Source Server Type    : PostgreSQL
+ Source Server Version : 110001
+ Source Host           : localhost:5432
+ Source Catalog        : bladex
+ Source Schema         : public
+
+ Target Server Type    : PostgreSQL
+ Target Server Version : 110001
+ File Encoding         : 65001
+
+ Date: 07/08/2022 17:27:10
+*/
+
+
+-- ----------------------------
+-- Table structure for blade_attach
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_attach";
+CREATE TABLE "blade_attach" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "link" varchar(1000) COLLATE "pg_catalog"."default",
+  "domain_url" varchar(500) COLLATE "pg_catalog"."default",
+  "name" varchar(500) COLLATE "pg_catalog"."default",
+  "original_name" varchar(500) COLLATE "pg_catalog"."default",
+  "extension" varchar(12) COLLATE "pg_catalog"."default",
+  "attach_size" int8,
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_attach"."id" IS '主键';
+COMMENT ON COLUMN "blade_attach"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_attach"."link" IS '附件地址';
+COMMENT ON COLUMN "blade_attach"."domain_url" IS '附件域名';
+COMMENT ON COLUMN "blade_attach"."name" IS '附件名称';
+COMMENT ON COLUMN "blade_attach"."original_name" IS '附件原名';
+COMMENT ON COLUMN "blade_attach"."extension" IS '附件拓展名';
+COMMENT ON COLUMN "blade_attach"."attach_size" IS '附件大小';
+COMMENT ON COLUMN "blade_attach"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_attach"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_attach"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_attach"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_attach"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_attach"."status" IS '状态';
+COMMENT ON COLUMN "blade_attach"."is_deleted" IS '是否已删除';
+
+-- ----------------------------
+-- Table structure for blade_client
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_client";
+CREATE TABLE "blade_client" (
+  "id" int8 NOT NULL,
+  "client_id" varchar(48) COLLATE "pg_catalog"."default" NOT NULL,
+  "client_secret" varchar(256) COLLATE "pg_catalog"."default" NOT NULL,
+  "resource_ids" varchar(256) COLLATE "pg_catalog"."default",
+  "scope" varchar(256) COLLATE "pg_catalog"."default" NOT NULL,
+  "authorized_grant_types" varchar(256) COLLATE "pg_catalog"."default" NOT NULL,
+  "web_server_redirect_uri" varchar(256) COLLATE "pg_catalog"."default",
+  "authorities" varchar(256) COLLATE "pg_catalog"."default",
+  "access_token_validity" int4 NOT NULL,
+  "refresh_token_validity" int4 NOT NULL,
+  "additional_information" varchar(4096) COLLATE "pg_catalog"."default",
+  "autoapprove" varchar(256) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4 NOT NULL,
+  "is_deleted" int4 NOT NULL
+)
+;
+COMMENT ON COLUMN "blade_client"."id" IS '主键';
+COMMENT ON COLUMN "blade_client"."client_id" IS '客户端id';
+COMMENT ON COLUMN "blade_client"."client_secret" IS '客户端密钥';
+COMMENT ON COLUMN "blade_client"."resource_ids" IS '资源集合';
+COMMENT ON COLUMN "blade_client"."scope" IS '授权范围';
+COMMENT ON COLUMN "blade_client"."authorized_grant_types" IS '授权类型';
+COMMENT ON COLUMN "blade_client"."web_server_redirect_uri" IS '回调地址';
+COMMENT ON COLUMN "blade_client"."authorities" IS '权限';
+COMMENT ON COLUMN "blade_client"."access_token_validity" IS '令牌过期秒数';
+COMMENT ON COLUMN "blade_client"."refresh_token_validity" IS '刷新令牌过期秒数';
+COMMENT ON COLUMN "blade_client"."additional_information" IS '附加说明';
+COMMENT ON COLUMN "blade_client"."autoapprove" IS '自动授权';
+COMMENT ON COLUMN "blade_client"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_client"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_client"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_client"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_client"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_client"."status" IS '状态';
+COMMENT ON COLUMN "blade_client"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_client" IS '客户端表';
+
+-- ----------------------------
+-- Records of blade_client
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_client" VALUES (1123598811738675201, 'sword', 'sword_secret', NULL, 'all', 'refresh_token,password,authorization_code,captcha,social', 'http://localhost:8888', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2019-03-24 10:40:55', 1123598815738675201, '2019-03-24 10:40:59', 1, 0);
+INSERT INTO "blade_client" VALUES (1123598811738675202, 'saber', 'saber_secret', NULL, 'all', 'refresh_token,password,authorization_code,captcha,social', 'http://localhost:1888', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2019-03-24 10:42:29', 1123598815738675201, '2019-03-24 10:42:32', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_code
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_code";
+CREATE TABLE "blade_code" (
+  "id" int8 NOT NULL,
+  "model_id" int8,
+  "service_name" varchar(64) COLLATE "pg_catalog"."default",
+  "code_name" varchar(64) COLLATE "pg_catalog"."default",
+  "table_name" varchar(64) COLLATE "pg_catalog"."default",
+  "table_prefix" varchar(64) COLLATE "pg_catalog"."default",
+  "pk_name" varchar(32) COLLATE "pg_catalog"."default",
+  "package_name" varchar(500) COLLATE "pg_catalog"."default",
+  "base_mode" int2,
+  "wrap_mode" int2,
+  "feign_mode" int2,
+  "code_style" varchar(32) COLLATE "pg_catalog"."default",
+  "api_path" varchar(2000) COLLATE "pg_catalog"."default",
+  "web_path" varchar(2000) COLLATE "pg_catalog"."default",
+  "is_deleted" int4,
+  "template_type" varchar(32) COLLATE "pg_catalog"."default",
+  "author" varchar(32) COLLATE "pg_catalog"."default",
+  "sub_model_id" varchar(32) COLLATE "pg_catalog"."default",
+  "sub_fk_id" varchar(32) COLLATE "pg_catalog"."default",
+  "tree_id" varchar(32) COLLATE "pg_catalog"."default",
+  "tree_pid" varchar(32) COLLATE "pg_catalog"."default",
+  "tree_name" varchar(64) COLLATE "pg_catalog"."default"
+)
+;
+COMMENT ON COLUMN "blade_code"."id" IS '主键';
+COMMENT ON COLUMN "blade_code"."model_id" IS '数据模型主键';
+COMMENT ON COLUMN "blade_code"."service_name" IS '服务名称';
+COMMENT ON COLUMN "blade_code"."code_name" IS '模块名称';
+COMMENT ON COLUMN "blade_code"."table_name" IS '表名';
+COMMENT ON COLUMN "blade_code"."table_prefix" IS '表前缀';
+COMMENT ON COLUMN "blade_code"."pk_name" IS '主键名';
+COMMENT ON COLUMN "blade_code"."package_name" IS '后端包名';
+COMMENT ON COLUMN "blade_code"."base_mode" IS '基础业务模式';
+COMMENT ON COLUMN "blade_code"."wrap_mode" IS '包装器模式';
+COMMENT ON COLUMN "blade_code"."feign_mode" IS '远程调用模式';
+COMMENT ON COLUMN "blade_code"."code_style" IS '代码风格';
+COMMENT ON COLUMN "blade_code"."api_path" IS '后端路径';
+COMMENT ON COLUMN "blade_code"."web_path" IS '前端路径';
+COMMENT ON COLUMN "blade_code"."is_deleted" IS '是否已删除';
+COMMENT ON COLUMN "blade_code"."template_type" IS '模版类型';
+COMMENT ON COLUMN "blade_code"."author" IS '作者信息';
+COMMENT ON COLUMN "blade_code"."sub_model_id" IS '子表模型主键';
+COMMENT ON COLUMN "blade_code"."sub_fk_id" IS '子表绑定外键';
+COMMENT ON COLUMN "blade_code"."tree_id" IS '树主键字段';
+COMMENT ON COLUMN "blade_code"."tree_pid" IS '树父主键字段';
+COMMENT ON COLUMN "blade_code"."tree_name" IS '树名称字段';
+COMMENT ON TABLE "blade_code" IS '代码生成表';
+
+-- ----------------------------
+-- Table structure for blade_datasource
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_datasource";
+CREATE TABLE "blade_datasource" (
+  "id" int8 NOT NULL,
+  "name" varchar(100) COLLATE "pg_catalog"."default",
+  "driver_class" varchar(100) COLLATE "pg_catalog"."default",
+  "url" varchar(500) COLLATE "pg_catalog"."default",
+  "username" varchar(45) COLLATE "pg_catalog"."default",
+  "password" varchar(45) COLLATE "pg_catalog"."default",
+  "remark" varchar(500) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_datasource"."id" IS '主键';
+COMMENT ON COLUMN "blade_datasource"."name" IS '名称';
+COMMENT ON COLUMN "blade_datasource"."driver_class" IS '驱动类';
+COMMENT ON COLUMN "blade_datasource"."url" IS '链接地址';
+COMMENT ON COLUMN "blade_datasource"."username" IS '用户名';
+COMMENT ON COLUMN "blade_datasource"."password" IS '密码';
+COMMENT ON COLUMN "blade_datasource"."remark" IS '备注';
+COMMENT ON COLUMN "blade_datasource"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_datasource"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_datasource"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_datasource"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_datasource"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_datasource"."status" IS '状态';
+COMMENT ON COLUMN "blade_datasource"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_datasource" IS '数据源配置表';
+
+-- ----------------------------
+-- Records of blade_datasource
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_datasource" VALUES (1161483357481541634, 'mysql', 'com.mysql.cj.jdbc.Driver', 'jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true', 'root', 'root', 'mysql', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:06', 1123598821738675201, '2020-08-08 12:20:06', 1, 0);
+INSERT INTO "blade_datasource" VALUES (1161483504353484802, 'postgresql', 'org.postgresql.Driver', 'jdbc:postgresql://127.0.0.1:5432/bladex', 'postgres', '123456', 'postgresql', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:02', 1123598821738675201, '2020-08-08 12:20:02', 1, 0);
+INSERT INTO "blade_datasource" VALUES (1161483594023510018, 'oracle', 'oracle.jdbc.OracleDriver', 'jdbc:oracle:thin:@127.0.0.1:1521:orcl', 'BLADEX', 'BLADEX', 'oracle', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:03', 1123598821738675201, '2020-08-08 12:20:03', 1, 0);
+INSERT INTO "blade_datasource" VALUES (1161483594023510020, 'sqlserver', 'com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex', 'bladex', 'bladex', 'sqlserver', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:03', 1123598821738675201, '2020-08-08 12:20:03', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_dept
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_dept";
+CREATE TABLE "blade_dept" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "parent_id" int8,
+  "ancestors" varchar(2000) COLLATE "pg_catalog"."default",
+  "dept_category" int4,
+  "dept_name" varchar(45) COLLATE "pg_catalog"."default",
+  "full_name" varchar(45) COLLATE "pg_catalog"."default",
+  "sort" int4,
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_dept"."id" IS '主键';
+COMMENT ON COLUMN "blade_dept"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_dept"."parent_id" IS '父主键';
+COMMENT ON COLUMN "blade_dept"."ancestors" IS '祖级列表';
+COMMENT ON COLUMN "blade_dept"."dept_category" IS '部门类型';
+COMMENT ON COLUMN "blade_dept"."dept_name" IS '部门名';
+COMMENT ON COLUMN "blade_dept"."full_name" IS '部门全称';
+COMMENT ON COLUMN "blade_dept"."sort" IS '排序';
+COMMENT ON COLUMN "blade_dept"."remark" IS '备注';
+COMMENT ON COLUMN "blade_dept"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_dept" IS '机构表';
+
+-- ----------------------------
+-- Records of blade_dept
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_dept" VALUES (1123598813738675201, '000000', 0, '0', 1, '布雷德科技', '上海布雷德科技有限公司', 1, NULL, 0);
+INSERT INTO "blade_dept" VALUES (1123598813738675202, '000000', 1123598813738675201, '0,1123598813738675201', 1, '常州布雷德', '常州布雷德科技有限公司', 1, NULL, 0);
+INSERT INTO "blade_dept" VALUES (1123598813738675203, '000000', 1123598813738675201, '0,1123598813738675201', 1, '苏州布雷德', '苏州布雷德科技有限公司', 1, NULL, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_dict
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_dict";
+CREATE TABLE "blade_dict" (
+  "id" int8 NOT NULL,
+  "parent_id" int8,
+  "code" varchar(255) COLLATE "pg_catalog"."default",
+  "dict_key" varchar(255) COLLATE "pg_catalog"."default",
+  "dict_value" varchar(255) COLLATE "pg_catalog"."default",
+  "sort" int4,
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "is_sealed" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_dict"."id" IS '主键';
+COMMENT ON COLUMN "blade_dict"."parent_id" IS '父主键';
+COMMENT ON COLUMN "blade_dict"."code" IS '字典码';
+COMMENT ON COLUMN "blade_dict"."dict_key" IS '字典值';
+COMMENT ON COLUMN "blade_dict"."dict_value" IS '字典名称';
+COMMENT ON COLUMN "blade_dict"."sort" IS '排序';
+COMMENT ON COLUMN "blade_dict"."remark" IS '字典备注';
+COMMENT ON COLUMN "blade_dict"."is_sealed" IS '是否已封存';
+COMMENT ON COLUMN "blade_dict"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_dict" IS '字典表';
+
+-- ----------------------------
+-- Records of blade_dict
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_dict" VALUES (1123598814738675201, 0, 'sex', '-1', '性别', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675202, 1123598814738675201, 'sex', '1', '男', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675203, 1123598814738675201, 'sex', '2', '女', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675204, 0, 'notice', '-1', '通知类型', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675205, 1123598814738675204, 'notice', '1', '发布通知', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675206, 1123598814738675204, 'notice', '2', '批转通知', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675207, 1123598814738675204, 'notice', '3', '转发通知', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675208, 1123598814738675204, 'notice', '4', '指示通知', 4, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675209, 1123598814738675204, 'notice', '5', '任免通知', 5, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675210, 1123598814738675204, 'notice', '6', '事务通知', 6, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675211, 0, 'menu_category', '-1', '菜单类型', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675212, 1123598814738675211, 'menu_category', '1', '菜单', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675213, 1123598814738675211, 'menu_category', '2', '按钮', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675214, 0, 'button_func', '-1', '按钮功能', 4, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675215, 1123598814738675214, 'button_func', '1', '工具栏', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675216, 1123598814738675214, 'button_func', '2', '操作栏', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675217, 1123598814738675214, 'button_func', '3', '工具操作栏', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675218, 0, 'yes_no', '-1', '是否', 5, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675219, 1123598814738675218, 'yes_no', '1', '否', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675220, 1123598814738675218, 'yes_no', '2', '是', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675221, 0, 'flow', '-1', '流程类型', 5, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675222, 1123598814738675221, 'flow', '1', '请假流程', 1, 'leave', 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675223, 1123598814738675221, 'flow', '2', '报销流程', 2, 'expense', 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675227, 0, 'org_category', '-1', '机构类型', 7, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675228, 1123598814738675227, 'org_category', '1', '公司', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675229, 1123598814738675227, 'org_category', '2', '部门', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675230, 1123598814738675227, 'org_category', '3', '小组', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675231, 0, 'data_scope_type', '-1', '数据权限', 8, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675232, 1123598814738675231, 'data_scope_type', '1', '全部可见', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675233, 1123598814738675231, 'data_scope_type', '2', '本人可见', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675234, 1123598814738675231, 'data_scope_type', '3', '所在机构可见', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675235, 1123598814738675231, 'data_scope_type', '4', '所在机构及子级可见', 4, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675236, 1123598814738675231, 'data_scope_type', '5', '自定义', 5, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675237, 0, 'api_scope_type', '-1', '接口权限', 10, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675238, 1123598814738675237, 'api_scope_type', '1', '系统接口', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675239, 1123598814738675237, 'api_scope_type', '2', '业务接口', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675240, 0, 'scope_category', '-1', '权限类型', 10, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675241, 1123598814738675240, 'scope_category', '1', '数据权限', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675242, 1123598814738675240, 'scope_category', '2', '接口权限', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738676224, 0, 'oss', '-1', '对象存储类型', 6, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738676225, 1123598814738676224, 'oss', '1', 'minio', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738677220, 0, 'sms', '-1', '短信服务类型', 11, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738676226, 1123598814738676224, 'oss', '2', '七牛云', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738677222, 1123598814738677220, 'sms', '2', '七牛云', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738677221, 1123598814738677220, 'sms', '1', '云片', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738676227, 1123598814738676224, 'oss', '3', '阿里云', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738677223, 1123598814738677220, 'sms', '3', '阿里云', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738677224, 1123598814738677220, 'sms', '4', '腾讯云', 4, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738676228, 1123598814738676224, 'oss', '4', '腾讯云', 4, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777220, 0, 'post_category', '-1', '岗位类型', 12, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777221, 1123598814738777220, 'post_category', '1', '高层', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777222, 1123598814738777220, 'post_category', '2', '中层', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777223, 1123598814738777220, 'post_category', '3', '基层', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777224, 1123598814738777220, 'post_category', '4', '其他', 4, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777230, 0, 'region', '-1', '行政区划', 13, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777231, 1123598814738777230, 'region', '0', '国家', 0, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777232, 1123598814738777230, 'region', '1', '省份/直辖市', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777233, 1123598814738777230, 'region', '2', '地市', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777234, 1123598814738777230, 'region', '3', '区县', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777235, 1123598814738777230, 'region', '4', '乡镇', 4, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777236, 1123598814738777230, 'region', '5', '村委', 5, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738778200, 0, 'user_type', '-1', '用户平台', 14, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738778201, 1123598814738778200, 'user_type', '1', 'WEB', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738778202, 1123598814738778200, 'user_type', '2', 'APP', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738778203, 1123598814738778200, 'user_type', '3', 'OTHER', 3, NULL, 0, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_dict_biz
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_dict_biz";
+CREATE TABLE "blade_dict_biz" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "parent_id" int8,
+  "code" varchar(255) COLLATE "pg_catalog"."default",
+  "dict_key" varchar(255) COLLATE "pg_catalog"."default",
+  "dict_value" varchar(255) COLLATE "pg_catalog"."default",
+  "sort" int4,
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "is_sealed" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_dict_biz"."id" IS '主键';
+COMMENT ON COLUMN "blade_dict_biz"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_dict_biz"."parent_id" IS '父主键';
+COMMENT ON COLUMN "blade_dict_biz"."code" IS '字典码';
+COMMENT ON COLUMN "blade_dict_biz"."dict_key" IS '字典值';
+COMMENT ON COLUMN "blade_dict_biz"."dict_value" IS '字典名称';
+COMMENT ON COLUMN "blade_dict_biz"."sort" IS '排序';
+COMMENT ON COLUMN "blade_dict_biz"."remark" IS '字典备注';
+COMMENT ON COLUMN "blade_dict_biz"."is_sealed" IS '是否已封存';
+COMMENT ON COLUMN "blade_dict_biz"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_dict_biz" IS '业务字典表';
+
+-- ----------------------------
+-- Table structure for blade_log_api
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_log_api";
+CREATE TABLE "blade_log_api" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "service_id" varchar(32) COLLATE "pg_catalog"."default",
+  "server_host" varchar(255) COLLATE "pg_catalog"."default",
+  "server_ip" varchar(255) COLLATE "pg_catalog"."default",
+  "env" varchar(255) COLLATE "pg_catalog"."default",
+  "type" char(1) COLLATE "pg_catalog"."default",
+  "title" varchar(255) COLLATE "pg_catalog"."default",
+  "method" varchar(10) COLLATE "pg_catalog"."default",
+  "request_uri" varchar(255) COLLATE "pg_catalog"."default",
+  "user_agent" varchar(1000) COLLATE "pg_catalog"."default",
+  "remote_ip" varchar(255) COLLATE "pg_catalog"."default",
+  "method_class" varchar(255) COLLATE "pg_catalog"."default",
+  "method_name" varchar(255) COLLATE "pg_catalog"."default",
+  "params" text COLLATE "pg_catalog"."default",
+  "time" varchar(64) COLLATE "pg_catalog"."default",
+  "create_by" varchar(64) COLLATE "pg_catalog"."default",
+  "create_time" timestamp(6)
+)
+;
+COMMENT ON COLUMN "blade_log_api"."id" IS '编号';
+COMMENT ON COLUMN "blade_log_api"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_log_api"."service_id" IS '服务ID';
+COMMENT ON COLUMN "blade_log_api"."server_host" IS '服务器名';
+COMMENT ON COLUMN "blade_log_api"."server_ip" IS '服务器IP地址';
+COMMENT ON COLUMN "blade_log_api"."env" IS '服务器环境';
+COMMENT ON COLUMN "blade_log_api"."type" IS '日志类型';
+COMMENT ON COLUMN "blade_log_api"."title" IS '日志标题';
+COMMENT ON COLUMN "blade_log_api"."method" IS '操作方式';
+COMMENT ON COLUMN "blade_log_api"."request_uri" IS '请求URI';
+COMMENT ON COLUMN "blade_log_api"."user_agent" IS '用户代理';
+COMMENT ON COLUMN "blade_log_api"."remote_ip" IS '操作IP地址';
+COMMENT ON COLUMN "blade_log_api"."method_class" IS '方法类';
+COMMENT ON COLUMN "blade_log_api"."method_name" IS '方法名';
+COMMENT ON COLUMN "blade_log_api"."params" IS '操作提交的数据';
+COMMENT ON COLUMN "blade_log_api"."time" IS '执行时间';
+COMMENT ON COLUMN "blade_log_api"."create_by" IS '创建者';
+COMMENT ON COLUMN "blade_log_api"."create_time" IS '创建时间';
+COMMENT ON TABLE "blade_log_api" IS '接口日志表';
+
+-- ----------------------------
+-- Table structure for blade_log_error
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_log_error";
+CREATE TABLE "blade_log_error" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "service_id" varchar(32) COLLATE "pg_catalog"."default",
+  "server_host" varchar(255) COLLATE "pg_catalog"."default",
+  "server_ip" varchar(255) COLLATE "pg_catalog"."default",
+  "env" varchar(255) COLLATE "pg_catalog"."default",
+  "method" varchar(10) COLLATE "pg_catalog"."default",
+  "request_uri" varchar(255) COLLATE "pg_catalog"."default",
+  "user_agent" varchar(1000) COLLATE "pg_catalog"."default",
+  "stack_trace" text COLLATE "pg_catalog"."default",
+  "exception_name" varchar(255) COLLATE "pg_catalog"."default",
+  "message" text COLLATE "pg_catalog"."default",
+  "line_number" int4,
+  "remote_ip" varchar(255) COLLATE "pg_catalog"."default",
+  "method_class" varchar(255) COLLATE "pg_catalog"."default",
+  "file_name" varchar(1000) COLLATE "pg_catalog"."default",
+  "method_name" varchar(255) COLLATE "pg_catalog"."default",
+  "params" text COLLATE "pg_catalog"."default",
+  "create_by" varchar(64) COLLATE "pg_catalog"."default",
+  "create_time" timestamp(6)
+)
+;
+COMMENT ON COLUMN "blade_log_error"."id" IS '编号';
+COMMENT ON COLUMN "blade_log_error"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_log_error"."service_id" IS '服务ID';
+COMMENT ON COLUMN "blade_log_error"."server_host" IS '服务器名';
+COMMENT ON COLUMN "blade_log_error"."server_ip" IS '服务器IP地址';
+COMMENT ON COLUMN "blade_log_error"."env" IS '系统环境';
+COMMENT ON COLUMN "blade_log_error"."method" IS '操作方式';
+COMMENT ON COLUMN "blade_log_error"."request_uri" IS '请求URI';
+COMMENT ON COLUMN "blade_log_error"."user_agent" IS '用户代理';
+COMMENT ON COLUMN "blade_log_error"."stack_trace" IS '堆栈';
+COMMENT ON COLUMN "blade_log_error"."exception_name" IS '异常名';
+COMMENT ON COLUMN "blade_log_error"."message" IS '异常信息';
+COMMENT ON COLUMN "blade_log_error"."line_number" IS '错误行数';
+COMMENT ON COLUMN "blade_log_error"."remote_ip" IS '操作IP地址';
+COMMENT ON COLUMN "blade_log_error"."method_class" IS '方法类';
+COMMENT ON COLUMN "blade_log_error"."file_name" IS '文件名';
+COMMENT ON COLUMN "blade_log_error"."method_name" IS '方法名';
+COMMENT ON COLUMN "blade_log_error"."params" IS '操作提交的数据';
+COMMENT ON COLUMN "blade_log_error"."create_by" IS '创建者';
+COMMENT ON COLUMN "blade_log_error"."create_time" IS '创建时间';
+COMMENT ON TABLE "blade_log_error" IS '错误日志表';
+
+-- ----------------------------
+-- Table structure for blade_log_usual
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_log_usual";
+CREATE TABLE "blade_log_usual" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "service_id" varchar(32) COLLATE "pg_catalog"."default",
+  "server_host" varchar(255) COLLATE "pg_catalog"."default",
+  "server_ip" varchar(255) COLLATE "pg_catalog"."default",
+  "env" varchar(255) COLLATE "pg_catalog"."default",
+  "log_level" varchar(10) COLLATE "pg_catalog"."default",
+  "log_id" varchar(100) COLLATE "pg_catalog"."default",
+  "log_data" text COLLATE "pg_catalog"."default",
+  "method" varchar(10) COLLATE "pg_catalog"."default",
+  "request_uri" varchar(255) COLLATE "pg_catalog"."default",
+  "remote_ip" varchar(255) COLLATE "pg_catalog"."default",
+  "method_class" varchar(255) COLLATE "pg_catalog"."default",
+  "method_name" varchar(255) COLLATE "pg_catalog"."default",
+  "user_agent" varchar(1000) COLLATE "pg_catalog"."default",
+  "params" text COLLATE "pg_catalog"."default",
+  "create_by" varchar(64) COLLATE "pg_catalog"."default",
+  "create_time" timestamp(6)
+)
+;
+COMMENT ON COLUMN "blade_log_usual"."id" IS '编号';
+COMMENT ON COLUMN "blade_log_usual"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_log_usual"."service_id" IS '服务ID';
+COMMENT ON COLUMN "blade_log_usual"."server_host" IS '服务器名';
+COMMENT ON COLUMN "blade_log_usual"."server_ip" IS '服务器IP地址';
+COMMENT ON COLUMN "blade_log_usual"."env" IS '系统环境';
+COMMENT ON COLUMN "blade_log_usual"."log_level" IS '日志级别';
+COMMENT ON COLUMN "blade_log_usual"."log_id" IS '日志业务id';
+COMMENT ON COLUMN "blade_log_usual"."log_data" IS '日志数据';
+COMMENT ON COLUMN "blade_log_usual"."method" IS '操作方式';
+COMMENT ON COLUMN "blade_log_usual"."request_uri" IS '请求URI';
+COMMENT ON COLUMN "blade_log_usual"."remote_ip" IS '操作IP地址';
+COMMENT ON COLUMN "blade_log_usual"."method_class" IS '方法类';
+COMMENT ON COLUMN "blade_log_usual"."method_name" IS '方法名';
+COMMENT ON COLUMN "blade_log_usual"."user_agent" IS '用户代理';
+COMMENT ON COLUMN "blade_log_usual"."params" IS '操作提交的数据';
+COMMENT ON COLUMN "blade_log_usual"."create_by" IS '创建者';
+COMMENT ON COLUMN "blade_log_usual"."create_time" IS '创建时间';
+COMMENT ON TABLE "blade_log_usual" IS '通用日志表';
+
+-- ----------------------------
+-- Table structure for blade_menu
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_menu";
+CREATE TABLE "blade_menu" (
+  "id" int8 NOT NULL,
+  "parent_id" int8,
+  "code" varchar(255) COLLATE "pg_catalog"."default",
+  "name" varchar(255) COLLATE "pg_catalog"."default",
+  "alias" varchar(255) COLLATE "pg_catalog"."default",
+  "path" varchar(255) COLLATE "pg_catalog"."default",
+  "source" varchar(255) COLLATE "pg_catalog"."default",
+  "sort" int4,
+  "category" int4,
+  "action" int4,
+  "is_open" int4,
+  "component" varchar(255) COLLATE "pg_catalog"."default",
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_menu"."id" IS '主键';
+COMMENT ON COLUMN "blade_menu"."parent_id" IS '父级菜单';
+COMMENT ON COLUMN "blade_menu"."code" IS '菜单编号';
+COMMENT ON COLUMN "blade_menu"."name" IS '菜单名称';
+COMMENT ON COLUMN "blade_menu"."alias" IS '菜单别名';
+COMMENT ON COLUMN "blade_menu"."path" IS '请求地址';
+COMMENT ON COLUMN "blade_menu"."source" IS '菜单资源';
+COMMENT ON COLUMN "blade_menu"."sort" IS '排序';
+COMMENT ON COLUMN "blade_menu"."category" IS '菜单类型';
+COMMENT ON COLUMN "blade_menu"."action" IS '操作按钮类型';
+COMMENT ON COLUMN "blade_menu"."is_open" IS '是否打开新页面';
+COMMENT ON COLUMN "blade_menu"."component" IS '组件地址';
+COMMENT ON COLUMN "blade_menu"."remark" IS '备注';
+COMMENT ON COLUMN "blade_menu"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_menu" IS '菜单表';
+
+-- ----------------------------
+-- Records of blade_menu
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_menu" VALUES (1123598815738675201, 0, 'desk', '工作台', 'menu', '/desk', 'iconfont iconicon_airplay', 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675202, 1123598815738675201, 'notice', '通知公告', 'menu', '/desk/notice', 'iconfont iconicon_sms', 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675203, 0, 'system', '系统管理', 'menu', '/system', 'iconfont iconicon_setting', 99, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675204, 1123598815738675203, 'user', '用户管理', 'menu', '/system/user', 'iconfont iconicon_principal', 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675205, 1123598815738675203, 'dept', '机构管理', 'menu', '/system/dept', 'iconfont iconicon_group', 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675210, 0, 'monitor', '系统监控', 'menu', '/monitor', 'iconfont icon-yanzhengma', 3, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675213, 1123598815738675210, 'log', '日志管理', 'menu', '/monitor/log', 'iconfont iconicon_doc', 8, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675214, 1123598815738675213, 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675215, 1123598815738675213, 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675216, 1123598815738675213, 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, 3, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675217, 0, 'tool', '研发工具', 'menu', '/tool', 'iconfont icon-wxbgongju', 4, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675218, 1123598815738675217, 'code', '代码生成', 'menu', '/tool/code', 'iconfont iconicon_savememo', 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675219, 1123598815738675202, 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675220, 1123598815738675202, 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675221, 1123598815738675202, 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675222, 1123598815738675202, 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675223, 1123598815738675204, 'user_add', '新增', 'add', '/system/user/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675224, 1123598815738675204, 'user_edit', '修改', 'edit', '/system/user/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675225, 1123598815738675204, 'user_delete', '删除', 'delete', '/api/blade-user/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675226, 1123598815738675204, 'user_role', '角色配置', 'role', NULL, 'user-add', 4, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675227, 1123598815738675204, 'user_reset', '密码重置', 'reset-password', '/api/blade-user/reset-password', 'retweet', 5, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675228, 1123598815738675204, 'user_view', '查看', 'view', '/system/user/view', 'file-text', 6, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675229, 1123598815738675205, 'dept_add', '新增', 'add', '/system/dept/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675230, 1123598815738675205, 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675231, 1123598815738675205, 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675232, 1123598815738675205, 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675233, 1123598815738675206, 'dict_add', '新增', 'add', '/system/dict/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675234, 1123598815738675206, 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675235, 1123598815738675206, 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675236, 1123598815738675206, 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675237, 1123598815738675207, 'menu_add', '新增', 'add', '/system/menu/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675238, 1123598815738675207, 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675239, 1123598815738675207, 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675240, 1123598815738675207, 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675241, 1123598815738675308, 'role_add', '新增', 'add', '/authority/role/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675242, 1123598815738675308, 'role_edit', '修改', 'edit', '/authority/role/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675243, 1123598815738675308, 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675244, 1123598815738675308, 'role_view', '查看', 'view', '/authority/role/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675245, 1123598815738675209, 'param_add', '新增', 'add', '/system/param/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675246, 1123598815738675209, 'param_edit', '修改', 'edit', '/system/param/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675247, 1123598815738675209, 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675248, 1123598815738675209, 'param_view', '查看', 'view', '/system/param/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675249, 1123598815738675214, 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675250, 1123598815738675215, 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675251, 1123598815738675216, 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675252, 1123598815738675218, 'code_add', '新增', 'add', '/tool/code/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675253, 1123598815738675218, 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675254, 1123598815738675218, 'code_delete', '删除', 'delete', '/api/blade-system/code/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675255, 1123598815738675218, 'code_view', '查看', 'view', '/tool/code/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675257, 1123598815738675256, 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675258, 1123598815738675256, 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675259, 1123598815738675256, 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675260, 1123598815738675256, 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675262, 1123598815738675261, 'client_add', '新增', 'add', '/system/client/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675208, 1123598815738675203, 'topmenu', '顶部菜单', 'menu', '/system/topmenu', 'iconfont icon-canshu', 7, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675209, 1123598815738675203, 'param', '参数管理', 'menu', '/system/param', 'iconfont iconicon_community_line', 8, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675207, 1123598815738675203, 'menu', '菜单管理', 'menu', '/system/menu', 'iconfont iconicon_subordinate', 6, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675256, 1123598815738675203, 'tenant', '租户管理', 'menu', '/system/tenant', 'iconfont icon-quanxian', 9, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675261, 1123598815738675203, 'client', '应用管理', 'menu', '/system/client', 'iconfont iconicon_mobilephone', 10, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675212, 1123598815738675210, 'admin', '服务治理', 'menu', 'http://localhost:7002', 'iconfont icon-canshu', 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675263, 1123598815738675261, 'client_edit', '修改', 'edit', '/system/client/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675266, 0, 'flow', '流程管理', 'menu', '/flow', 'iconfont iconicon_send', 5, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675267, 1123598815738675266, 'flow_model', '模型管理', 'menu', '/flow/model', 'iconfont iconicon_discovery', 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675268, 1123598815738675267, 'flow_model_create', '创建', 'create', '', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675269, 1123598815738675267, 'flow_model_update', '编辑', 'update', '', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675270, 1123598815738675267, 'flow_model_deploy', '部署', 'deploy', '', 'cloud-upload', 3, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675271, 1123598815738675267, 'flow_model_download', '下载', 'download', '', 'download', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675272, 1123598815738675267, 'flow_model_delete', '删除', 'delete', '/api/blade-flow/model/remove', 'delete', 5, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675273, 1123598815738675266, 'flow_deploy', '流程部署', 'menu', '/flow/deploy', 'iconfont iconicon_cspace', 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675274, 1123598815738675266, 'flow_manager', '流程管理', 'menu', '/flow/manager', 'iconfont iconicon_cloud_history', 3, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675275, 1123598815738675274, 'flow_manager_state', '变更状态', 'state', '', 'plus', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675276, 1123598815738675274, 'flow_manager_image', '流程图', 'image', '', 'image', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675277, 1123598815738675274, 'flow_manager_remove', '删除', 'remove', '', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675278, 1123598815738675266, 'flow_follow', '流程跟踪', 'menu', '/flow/follow', 'iconfont iconicon_GPS', 4, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675279, 1123598815738675278, 'flow_follow_delete', '删除', 'remove', '', 'remove', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675280, 0, 'work', '我的事务', 'menu', '/work', 'iconfont iconicon_notice', 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675281, 1123598815738675280, 'work_start', '发起事务', 'menu', '/work/start', 'iconfont iconicon_compile', 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675282, 1123598815738675281, 'work_start_flow', '发起', 'flow', '', 'flow', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675283, 1123598815738675281, 'work_start_image', '流程图', 'image', '', 'image', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675284, 1123598815738675280, 'work_claim', '待签事务', 'menu', '/work/claim', 'iconfont iconicon_ding', 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675285, 1123598815738675284, 'work_claim_sign', '签收', 'sign', '', 'sign', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675286, 1123598815738675284, 'work_claim_detail', '详情', 'detail', '', 'detail', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675287, 1123598815738675284, 'work_claim_follow', '跟踪', 'follow', '', 'follow', 3, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675288, 1123598815738675280, 'work_todo', '待办事务', 'menu', '/work/todo', 'iconfont iconicon_savememo', 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675289, 1123598815738675288, 'work_todo_handle', '办理', 'handle', '', 'handle', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675290, 1123598815738675288, 'work_todo_detail', '详情', 'detail', '', 'detail', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675291, 1123598815738675288, 'work_todo_follow', '跟踪', 'follow', '', 'follow', 3, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675292, 1123598815738675280, 'work_send', '已发事务', 'menu', '/work/send', 'iconfont iconicon_doc', 3, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675293, 1123598815738675292, 'work_send_detail', '详情', 'detail', '', 'detail', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675294, 1123598815738675292, 'work_send_follow', '跟踪', 'follow', '', 'follow', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675295, 1123598815738675280, 'work_done', '办结事务', 'menu', '/work/done', 'iconfont iconicon_dispose', 4, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675296, 1123598815738675295, 'work_done_detail', '详情', 'detail', '', 'detail', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675297, 1123598815738675295, 'work_done_follow', '跟踪', 'follow', '', 'follow', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675298, 0, 'resource', '资源管理', 'menu', '/resource', 'iconfont iconicon_coinpurse_line', 6, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675299, 1123598815738675298, 'oss', '对象存储', 'menu', '/resource/oss', 'iconfont iconicon_subordinate', 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675301, 1123598815738675299, 'oss_add', '新增', 'add', '/resource/oss/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675307, 0, 'authority', '权限管理', 'menu', '/authority', 'iconfont icon-bofangqi-suoping', 98, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675308, 1123598815738675307, 'role', '角色管理', 'menu', '/authority/role', 'iconfont iconicon_boss', 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675309, 1123598815738675307, 'data_scope', '数据权限', 'menu', '/authority/datascope', 'iconfont icon-shujuzhanshi2', 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675310, 1123598815738675309, 'data_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675311, 1123598815738675307, 'api_scope', '接口权限', 'menu', '/authority/apiscope', 'iconfont icon-iconset0216', 3, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675312, 1123598815738675311, 'api_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675313, 1123598815738675208, 'topmenu_add', '新增', 'add', '/system/topmenu/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675314, 1123598815738675208, 'topmenu_edit', '修改', 'edit', '/system/topmenu/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675315, 1123598815738675208, 'topmenu_delete', '删除', 'delete', '/api/blade-system/topmenu/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675316, 1123598815738675208, 'topmenu_view', '查看', 'view', '/system/topmenu/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675317, 1123598815738675208, 'topmenu_setting', '菜单配置', 'setting', NULL, 'setting', 5, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1161272593873321991, 1123598815738675217, 'datasource', '数据源管理', 'menu', '/tool/datasource', 'iconfont icon-caidanguanli', 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1161272593873321992, 1161272593873321991, 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675265, 1123598815738675261, 'client_view', '查看', 'view', '/system/client/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675302, 1123598815738675299, 'oss_edit', '修改', 'edit', '/resource/oss/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675303, 1123598815738675299, 'oss_delete', '删除', 'delete', '/api/blade-resource/oss/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675304, 1123598815738675299, 'oss_view', '查看', 'view', '/resource/oss/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675305, 1123598815738675299, 'oss_enable', '启用', 'enable', '/api/blade-resource/oss/enable', 'key', 5, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1161272593873321993, 1161272593873321991, 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1161272593873321994, 1161272593873321991, 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1161272593873321995, 1161272593873321991, 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1161272593873321996, 1123598815738675217, 'model', '数据模型设计', 'menu', '/tool/model', 'iconfont icon-biaodan', 3, 1, 0, 1, '', '', 0);
+INSERT INTO "blade_menu" VALUES (1164733369658963251, 1123598815738675210, 'elk', 'ELK监控', 'menu', 'http://localhost:5601/', 'iconfont iconicon_cspace', 3, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733369658963252, 1123598815738675210, 'zipkin', 'Zipkin监控', 'menu', 'http://localhost:9411/', 'iconfont iconicon_task', 4, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733369658963253, 1123598815738675210, 'turbine', 'Turbine监控', 'menu', 'http://localhost:7003/hystrix', 'iconfont iconicon_subordinate', 5, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733379658963252, 1164733379658963251, 'dictbiz_add', '新增', 'add', '/system/dictbiz/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733379658963253, 1164733379658963251, 'dictbiz_edit', '修改', 'edit', '/system/dictbiz/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733379658963254, 1164733379658963251, 'dictbiz_delete', '删除', 'delete', '/api/blade-system/dict-biz/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733379658963255, 1164733379658963251, 'dictbiz_view', '查看', 'view', '/system/dictbiz/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389658962251, 1123598815738675298, 'sms', '短信配置', 'menu', '/resource/sms', 'iconfont iconicon_message', 3, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389658962252, 1164733389658962251, 'sms_add', '新增', 'add', '/resource/sms/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389658962253, 1164733389658962251, 'sms_edit', '修改', 'edit', '/resource/sms/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389658962254, 1164733389658962251, 'sms_delete', '删除', 'delete', '/api/blade-resource/sms/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389658962255, 1164733389658962251, 'sms_view', '查看', 'view', '/resource/sms/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389668962252, 1164733389668962251, 'post_add', '新增', 'add', '/system/post/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389668962253, 1164733389668962251, 'post_edit', '修改', 'edit', '/system/post/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389668962254, 1164733389668962251, 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389668962255, 1164733389668962251, 'post_view', '查看', 'view', '/system/post/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389668962251, 1123598815738675203, 'post', '岗位管理', 'menu', '/system/post', 'iconfont iconicon_message', 3, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675206, 1123598815738675203, 'dict', '系统字典', 'menu', '/system/dict', 'iconfont iconicon_addresslist', 4, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733379658963251, 1123598815738675203, 'dictbiz', '业务字典', 'menu', '/system/dictbiz', 'iconfont iconicon_study', 5, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399668962201, 0, 'base', '基础配置', 'menu', '/base', 'iconfont iconicon_affiliations_li', 97, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399668962202, 1164733399668962201, 'region', '行政区划', 'menu', '/base/region', 'iconfont icon-iframe', 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399668962203, 1164733399668962202, 'region_add', '新增下级', 'add', '', '', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399668962204, 1164733399668962202, 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', '', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399668962205, 1164733399668962202, 'region_import', '导入', 'import', '', '', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399668962206, 1164733399668962202, 'region_export', '导出', 'export', '', '', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399668962207, 1164733399668962202, 'region_debug', '调试', 'debug', '', '', 5, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962201, 1123598815738675298, 'attach', '附件管理', 'menu', '/resource/attach', 'iconfont iconicon_ding', 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962202, 1164733399669962201, 'attach_upload', '上传', 'upload', '/resource/attach/upload', '', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962203, 1164733399669962201, 'attach_download', '下载', 'download', '/resource/attach/download', '', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962204, 1164733399669962201, 'attach_delete', '删除', 'delete', '/api/blade-resource/attach/remove', '', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962301, 0, 'report', '报表管理', 'menu', '/report', 'iconfont icon-shujuzhanshi2', 5, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962303, 1164733399669962301, 'report_list', '报表列表', 'menu', '/report/reportlist', 'iconfont icon-biaodan', 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675211, 1123598815738675210, 'doc', '接口文档', 'menu', 'http://localhost:18000/doc.html', 'iconfont iconicon_study', 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675264, 1123598815738675261, 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733369658963254, 1123598815738675210, 'sentinel', 'Sentinel管理', 'menu', 'http://localhost:8858', 'iconfont iconicon_safety', 6, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733369658963255, 1123598815738675210, 'es', 'Elasticsearch管理', 'menu', 'http://localhost:9100/', 'iconfont iconfont iconicon_search', 7, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389658962256, 1164733389658962251, 'sms_enable', '启用', 'enable', '/api/blade-resource/sms/enable', 'key', 5, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389658963251, 1123598815738675298, 'xxljob', '任务调度', 'menu', 'http://localhost:7009/xxl-job-admin', 'iconfont iconicon_cspace', 5, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962302, 1164733399669962301, 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', 'iconfont icon-rizhi', 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962304, 1164733399669962301, 'report_notice', '公告报表', 'menu', 'http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml', 'iconfont iconicon_sms', 3, 1, 0, 1, '', NULL, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_model
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_model";
+CREATE TABLE "blade_model" (
+  "id" int8 NOT NULL,
+  "datasource_id" int8,
+  "model_name" varchar(50) COLLATE "pg_catalog"."default",
+  "model_code" varchar(50) COLLATE "pg_catalog"."default",
+  "model_table" varchar(100) COLLATE "pg_catalog"."default",
+  "model_class" varchar(100) COLLATE "pg_catalog"."default",
+  "model_remark" varchar(500) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_model"."id" IS '主键';
+COMMENT ON COLUMN "blade_model"."datasource_id" IS '数据源主键';
+COMMENT ON COLUMN "blade_model"."model_name" IS '模型名称';
+COMMENT ON COLUMN "blade_model"."model_code" IS '模型编号';
+COMMENT ON COLUMN "blade_model"."model_table" IS '物理表名';
+COMMENT ON COLUMN "blade_model"."model_class" IS '模型类名';
+COMMENT ON COLUMN "blade_model"."model_remark" IS '模型备注';
+COMMENT ON COLUMN "blade_model"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_model"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_model"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_model"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_model"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_model"."status" IS '状态';
+COMMENT ON COLUMN "blade_model"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_model" IS '数据模型表';
+
+-- ----------------------------
+-- Table structure for blade_model_prototype
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_model_prototype";
+CREATE TABLE "blade_model_prototype" (
+  "id" int8 NOT NULL,
+  "model_id" int8,
+  "jdbc_name" varchar(50) COLLATE "pg_catalog"."default",
+  "jdbc_type" varchar(20) COLLATE "pg_catalog"."default",
+  "comment" varchar(500) COLLATE "pg_catalog"."default",
+  "property_type" varchar(20) COLLATE "pg_catalog"."default",
+  "property_entity" varchar(500) COLLATE "pg_catalog"."default",
+  "property_name" varchar(50) COLLATE "pg_catalog"."default",
+  "is_list" int4,
+  "is_form" int4,
+  "is_row" int4,
+  "component_type" varchar(50) COLLATE "pg_catalog"."default",
+  "dict_code" varchar(50) COLLATE "pg_catalog"."default",
+  "is_required" int4,
+  "validate_type" varchar(50) COLLATE "pg_catalog"."default",
+  "is_query" int4,
+  "query_type" varchar(50) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_model_prototype"."id" IS '主键';
+COMMENT ON COLUMN "blade_model_prototype"."model_id" IS '模型主键';
+COMMENT ON COLUMN "blade_model_prototype"."jdbc_name" IS '物理列名';
+COMMENT ON COLUMN "blade_model_prototype"."jdbc_type" IS '物理类型';
+COMMENT ON COLUMN "blade_model_prototype"."comment" IS '注释说明';
+COMMENT ON COLUMN "blade_model_prototype"."property_type" IS '实体类型';
+COMMENT ON COLUMN "blade_model_prototype"."property_entity" IS '实体类型引用';
+COMMENT ON COLUMN "blade_model_prototype"."property_name" IS '实体列名';
+COMMENT ON COLUMN "blade_model_prototype"."is_list" IS '列表显示';
+COMMENT ON COLUMN "blade_model_prototype"."is_form" IS '表单显示';
+COMMENT ON COLUMN "blade_model_prototype"."is_row" IS '独占一行';
+COMMENT ON COLUMN "blade_model_prototype"."component_type" IS '组件类型';
+COMMENT ON COLUMN "blade_model_prototype"."dict_code" IS '字典编码';
+COMMENT ON COLUMN "blade_model_prototype"."is_required" IS '是否必填';
+COMMENT ON COLUMN "blade_model_prototype"."validate_type" IS '验证类型';
+COMMENT ON COLUMN "blade_model_prototype"."is_query" IS '查询配置';
+COMMENT ON COLUMN "blade_model_prototype"."query_type" IS '查询类型';
+COMMENT ON COLUMN "blade_model_prototype"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_model_prototype"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_model_prototype"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_model_prototype"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_model_prototype"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_model_prototype"."status" IS '状态';
+COMMENT ON COLUMN "blade_model_prototype"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_model_prototype" IS '数据原型表';
+
+-- ----------------------------
+-- Table structure for blade_notice
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_notice";
+CREATE TABLE "blade_notice" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "title" varchar(255) COLLATE "pg_catalog"."default",
+  "category" int4,
+  "release_time" timestamp(6),
+  "content" varchar(2000) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_notice"."id" IS '主键';
+COMMENT ON COLUMN "blade_notice"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_notice"."title" IS '标题';
+COMMENT ON COLUMN "blade_notice"."category" IS '类型';
+COMMENT ON COLUMN "blade_notice"."release_time" IS '发布时间';
+COMMENT ON COLUMN "blade_notice"."content" IS '内容';
+COMMENT ON COLUMN "blade_notice"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_notice"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_notice"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_notice"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_notice"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_notice"."status" IS '状态';
+COMMENT ON COLUMN "blade_notice"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_notice" IS '通知公告表';
+
+-- ----------------------------
+-- Records of blade_notice
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_notice" VALUES (1123598818738675223, '000000', '测试公告', 3, '2018-12-31 20:03:31', '222', 1123598821738675201, 1123598813738675201, '2018-12-05 20:03:31', 1123598821738675201, '2018-12-28 11:10:51', 1, 0);
+INSERT INTO "blade_notice" VALUES (1123598818738675224, '000000', '测试公告2', 1, '2018-12-05 20:03:31', '333', 1123598821738675201, 1123598813738675201, '2018-12-28 10:32:26', 1123598821738675201, '2018-12-28 11:10:34', 1, 0);
+INSERT INTO "blade_notice" VALUES (1123598818738675225, '000000', '测试公告3', 6, '2018-12-29 00:00:00', '11111', 1123598821738675201, 1123598813738675201, '2018-12-28 11:03:44', 1123598821738675201, '2018-12-28 11:10:28', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_oss
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_oss";
+CREATE TABLE "blade_oss" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "category" int4,
+  "oss_code" varchar(32) COLLATE "pg_catalog"."default",
+  "endpoint" varchar(255) COLLATE "pg_catalog"."default",
+  "access_key" varchar(255) COLLATE "pg_catalog"."default",
+  "secret_key" varchar(255) COLLATE "pg_catalog"."default",
+  "bucket_name" varchar(255) COLLATE "pg_catalog"."default",
+  "app_id" varchar(255) COLLATE "pg_catalog"."default",
+  "region" varchar(255) COLLATE "pg_catalog"."default",
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_oss"."id" IS '主键';
+COMMENT ON COLUMN "blade_oss"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_oss"."category" IS '分类';
+COMMENT ON COLUMN "blade_oss"."oss_code" IS '资源编号';
+COMMENT ON COLUMN "blade_oss"."endpoint" IS '资源地址';
+COMMENT ON COLUMN "blade_oss"."access_key" IS 'accessKey';
+COMMENT ON COLUMN "blade_oss"."secret_key" IS 'secretKey';
+COMMENT ON COLUMN "blade_oss"."bucket_name" IS '空间名';
+COMMENT ON COLUMN "blade_oss"."app_id" IS '应用ID';
+COMMENT ON COLUMN "blade_oss"."region" IS '地域简称';
+COMMENT ON COLUMN "blade_oss"."remark" IS '备注';
+COMMENT ON COLUMN "blade_oss"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_oss"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_oss"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_oss"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_oss"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_oss"."status" IS '状态';
+COMMENT ON COLUMN "blade_oss"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_oss" IS '对象存储表';
+
+-- ----------------------------
+-- Records of blade_oss
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_oss" VALUES (1132486733992468482, '000000', 1, 'minio', 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:20:52', 1123598821738675201, '2019-05-27 08:34:55', 2, 0);
+INSERT INTO "blade_oss" VALUES (1132487155981393922, '000000', 2, 'qiniu', 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:22:33', 1123598821738675201, '2019-05-26 23:27:56', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_param
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_param";
+CREATE TABLE "blade_param" (
+  "id" int8 NOT NULL,
+  "param_name" varchar(255) COLLATE "pg_catalog"."default",
+  "param_key" varchar(255) COLLATE "pg_catalog"."default",
+  "param_value" varchar(255) COLLATE "pg_catalog"."default",
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_param"."id" IS '主键';
+COMMENT ON COLUMN "blade_param"."param_name" IS '参数名';
+COMMENT ON COLUMN "blade_param"."param_key" IS '参数键';
+COMMENT ON COLUMN "blade_param"."param_value" IS '参数值';
+COMMENT ON COLUMN "blade_param"."remark" IS '备注';
+COMMENT ON COLUMN "blade_param"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_param"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_param"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_param"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_param"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_param"."status" IS '状态';
+COMMENT ON COLUMN "blade_param"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_param" IS '参数表';
+
+-- ----------------------------
+-- Records of blade_param
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_param" VALUES (1123598819738675201, '是否开启注册功能', 'account.registerUser', 'true', '开启注册', 1123598821738675201, 1123598813738675201, '2018-12-28 12:19:01', 1123598821738675201, '2018-12-28 12:19:01', 1, 0);
+INSERT INTO "blade_param" VALUES (1123598819738675202, '账号初始密码', 'account.initPassword', '123456', '初始密码', 1123598821738675201, 1123598813738675201, '2018-12-28 12:19:01', 1123598821738675201, '2018-12-28 12:19:01', 1, 0);
+INSERT INTO "blade_param" VALUES (1123598819738675203, '账号错误锁定次数', 'account.failCount', '5', '锁定次数', 1123598821738675201, 1123598813738675201, '2021-12-01 12:00:00', 1123598821738675201, '2021-12-01 12:00:00', 1, 0);
+INSERT INTO "blade_param" VALUES (1238706101399142402, '租户默认管理密码', 'tenant.default.password', 'admin', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:58:43', 1123598821738675201, '2020-03-14 13:58:43', 1, 0);
+INSERT INTO "blade_param" VALUES (1238706160295559170, '租户默认账号额度', 'tenant.default.accountNumber', '100', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:58:57', 1123598821738675201, '2020-03-14 13:58:57', 1, 0);
+INSERT INTO "blade_param" VALUES (1238706330076790786, '租户默认菜单集合', 'tenant.default.menuCode', 'desk,flow,work,monitor,resource,role,user,dept,post,dictbiz,topmenu', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:59:38', 1123598821738675201, '2020-03-14 13:59:38', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_post
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_post";
+CREATE TABLE "blade_post" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "category" int4,
+  "post_code" varchar(12) COLLATE "pg_catalog"."default",
+  "post_name" varchar(64) COLLATE "pg_catalog"."default",
+  "sort" int4,
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_post"."id" IS '主键';
+COMMENT ON COLUMN "blade_post"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_post"."category" IS '岗位类型';
+COMMENT ON COLUMN "blade_post"."post_code" IS '岗位编号';
+COMMENT ON COLUMN "blade_post"."post_name" IS '岗位名称';
+COMMENT ON COLUMN "blade_post"."sort" IS '岗位排序';
+COMMENT ON COLUMN "blade_post"."remark" IS '岗位排序';
+COMMENT ON COLUMN "blade_post"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_post"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_post"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_post"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_post"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_post"."status" IS '状态';
+COMMENT ON COLUMN "blade_post"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_post" IS '岗位表';
+
+-- ----------------------------
+-- Records of blade_post
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_post" VALUES (1123598817738675201, '000000', 1, 'ceo', '首席执行官', 1, '总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+INSERT INTO "blade_post" VALUES (1123598817738675202, '000000', 1, 'coo', '首席运营官', 2, '常务总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+INSERT INTO "blade_post" VALUES (1123598817738675203, '000000', 1, 'cfo', '首席财务官', 3, '财务总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+INSERT INTO "blade_post" VALUES (1123598817738675204, '000000', 1, 'cto', '首席技术官', 4, '技术总监', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+INSERT INTO "blade_post" VALUES (1123598817738675205, '000000', 1, 'cio', '首席信息官', 5, '信息总监', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+INSERT INTO "blade_post" VALUES (1123598817738675206, '000000', 2, 'pm', '技术经理', 6, '研发和产品是永远的朋友', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+INSERT INTO "blade_post" VALUES (1123598817738675207, '000000', 2, 'hrm', '人力经理', 7, '人力资源部门工作管理者', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+INSERT INTO "blade_post" VALUES (1123598817738675208, '000000', 3, 'staff', '普通员工', 8, '普通员工', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_process_leave
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_process_leave";
+CREATE TABLE "blade_process_leave" (
+  "id" int8 NOT NULL,
+  "process_definition_id" varchar(64) COLLATE "pg_catalog"."default",
+  "process_instance_id" varchar(64) COLLATE "pg_catalog"."default",
+  "start_time" timestamp(6),
+  "end_time" timestamp(6),
+  "reason" varchar(255) COLLATE "pg_catalog"."default",
+  "task_user" varchar(255) COLLATE "pg_catalog"."default",
+  "apply_time" timestamp(6),
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_process_leave"."id" IS '编号';
+COMMENT ON COLUMN "blade_process_leave"."process_definition_id" IS '流程定义主键';
+COMMENT ON COLUMN "blade_process_leave"."process_instance_id" IS '流程实例主键';
+COMMENT ON COLUMN "blade_process_leave"."start_time" IS '开始时间';
+COMMENT ON COLUMN "blade_process_leave"."end_time" IS '结束时间';
+COMMENT ON COLUMN "blade_process_leave"."reason" IS '请假理由';
+COMMENT ON COLUMN "blade_process_leave"."task_user" IS '第一级审批人';
+COMMENT ON COLUMN "blade_process_leave"."apply_time" IS '申请时间';
+COMMENT ON COLUMN "blade_process_leave"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_process_leave"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_process_leave"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_process_leave"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_process_leave"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_process_leave"."status" IS '状态';
+COMMENT ON COLUMN "blade_process_leave"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_process_leave" IS '流程请假业务表';
+
+-- ----------------------------
+-- Table structure for blade_region
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_region";
+CREATE TABLE "blade_region" (
+  "code" varchar(12) COLLATE "pg_catalog"."default" NOT NULL,
+  "parent_code" varchar(12) COLLATE "pg_catalog"."default",
+  "ancestors" varchar(255) COLLATE "pg_catalog"."default",
+  "name" varchar(32) COLLATE "pg_catalog"."default",
+  "province_code" varchar(12) COLLATE "pg_catalog"."default",
+  "province_name" varchar(32) COLLATE "pg_catalog"."default",
+  "city_code" varchar(12) COLLATE "pg_catalog"."default",
+  "city_name" varchar(32) COLLATE "pg_catalog"."default",
+  "district_code" varchar(12) COLLATE "pg_catalog"."default",
+  "district_name" varchar(32) COLLATE "pg_catalog"."default",
+  "town_code" varchar(12) COLLATE "pg_catalog"."default",
+  "town_name" varchar(32) COLLATE "pg_catalog"."default",
+  "village_code" varchar(12) COLLATE "pg_catalog"."default",
+  "village_name" varchar(32) COLLATE "pg_catalog"."default",
+  "region_level" int4,
+  "sort" int4,
+  "remark" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+COMMENT ON COLUMN "blade_region"."code" IS '区划编号';
+COMMENT ON COLUMN "blade_region"."parent_code" IS '父区划编号';
+COMMENT ON COLUMN "blade_region"."ancestors" IS '祖区划编号';
+COMMENT ON COLUMN "blade_region"."name" IS '区划名称';
+COMMENT ON COLUMN "blade_region"."province_code" IS '省级区划编号';
+COMMENT ON COLUMN "blade_region"."province_name" IS '省级名称';
+COMMENT ON COLUMN "blade_region"."city_code" IS '市级区划编号';
+COMMENT ON COLUMN "blade_region"."city_name" IS '市级名称';
+COMMENT ON COLUMN "blade_region"."district_code" IS '区级区划编号';
+COMMENT ON COLUMN "blade_region"."district_name" IS '区级名称';
+COMMENT ON COLUMN "blade_region"."town_code" IS '镇级区划编号';
+COMMENT ON COLUMN "blade_region"."town_name" IS '镇级名称';
+COMMENT ON COLUMN "blade_region"."village_code" IS '村级区划编号';
+COMMENT ON COLUMN "blade_region"."village_name" IS '村级名称';
+COMMENT ON COLUMN "blade_region"."region_level" IS '层级';
+COMMENT ON COLUMN "blade_region"."sort" IS '排序';
+COMMENT ON COLUMN "blade_region"."remark" IS '备注';
+COMMENT ON TABLE "blade_region" IS '行政区划表';
+
+-- ----------------------------
+-- Records of blade_region
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_region" VALUES ('00', '0', '0', '中华人民共和国', '', '', '', '', '', '', '', '', '', '', 0, 1, '');
+INSERT INTO "blade_region" VALUES ('11', '00', '00', '北京市', '11', '北京市', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('1101', '11', '00,11', '北京市', '11', '北京市', '1101', '北京市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('110101', '1101', '00,11,1101', '东城区', '11', '北京市', '1101', '北京市', '110101', '东城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110102', '1101', '00,11,1101', '西城区', '11', '北京市', '1101', '北京市', '110102', '西城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110105', '1101', '00,11,1101', '朝阳区', '11', '北京市', '1101', '北京市', '110105', '朝阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110106', '1101', '00,11,1101', '丰台区', '11', '北京市', '1101', '北京市', '110106', '丰台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110107', '1101', '00,11,1101', '石景山区', '11', '北京市', '1101', '北京市', '110107', '石景山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110108', '1101', '00,11,1101', '海淀区', '11', '北京市', '1101', '北京市', '110108', '海淀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110109', '1101', '00,11,1101', '门头沟区', '11', '北京市', '1101', '北京市', '110109', '门头沟区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110111', '1101', '00,11,1101', '房山区', '11', '北京市', '1101', '北京市', '110111', '房山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110112', '1101', '00,11,1101', '通州区', '11', '北京市', '1101', '北京市', '110112', '通州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110113', '1101', '00,11,1101', '顺义区', '11', '北京市', '1101', '北京市', '110113', '顺义区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110114', '1101', '00,11,1101', '昌平区', '11', '北京市', '1101', '北京市', '110114', '昌平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110115', '1101', '00,11,1101', '大兴区', '11', '北京市', '1101', '北京市', '110115', '大兴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110116', '1101', '00,11,1101', '怀柔区', '11', '北京市', '1101', '北京市', '110116', '怀柔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110117', '1101', '00,11,1101', '平谷区', '11', '北京市', '1101', '北京市', '110117', '平谷区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110118', '1101', '00,11,1101', '密云区', '11', '北京市', '1101', '北京市', '110118', '密云区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110119', '1101', '00,11,1101', '延庆区', '11', '北京市', '1101', '北京市', '110119', '延庆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('12', '00', '00', '天津市', '12', '天津市', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('1201', '12', '00,12', '天津市', '12', '天津市', '1201', '天津市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('120101', '1201', '00,12,1201', '和平区', '12', '天津市', '1201', '天津市', '120101', '和平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120102', '1201', '00,12,1201', '河东区', '12', '天津市', '1201', '天津市', '120102', '河东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120103', '1201', '00,12,1201', '河西区', '12', '天津市', '1201', '天津市', '120103', '河西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120104', '1201', '00,12,1201', '南开区', '12', '天津市', '1201', '天津市', '120104', '南开区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120105', '1201', '00,12,1201', '河北区', '12', '天津市', '1201', '天津市', '120105', '河北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120106', '1201', '00,12,1201', '红桥区', '12', '天津市', '1201', '天津市', '120106', '红桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120110', '1201', '00,12,1201', '东丽区', '12', '天津市', '1201', '天津市', '120110', '东丽区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120111', '1201', '00,12,1201', '西青区', '12', '天津市', '1201', '天津市', '120111', '西青区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120112', '1201', '00,12,1201', '津南区', '12', '天津市', '1201', '天津市', '120112', '津南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120113', '1201', '00,12,1201', '北辰区', '12', '天津市', '1201', '天津市', '120113', '北辰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120114', '1201', '00,12,1201', '武清区', '12', '天津市', '1201', '天津市', '120114', '武清区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120115', '1201', '00,12,1201', '宝坻区', '12', '天津市', '1201', '天津市', '120115', '宝坻区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120116', '1201', '00,12,1201', '滨海新区', '12', '天津市', '1201', '天津市', '120116', '滨海新区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120117', '1201', '00,12,1201', '宁河区', '12', '天津市', '1201', '天津市', '120117', '宁河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120118', '1201', '00,12,1201', '静海区', '12', '天津市', '1201', '天津市', '120118', '静海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120119', '1201', '00,12,1201', '蓟州区', '12', '天津市', '1201', '天津市', '120119', '蓟州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('13', '00', '00', '河北省', '13', '河北省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('1301', '13', '00,13', '石家庄市', '13', '河北省', '1301', '石家庄市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130102', '1301', '00,13,1301', '长安区', '13', '河北省', '1301', '石家庄市', '130102', '长安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130104', '1301', '00,13,1301', '桥西区', '13', '河北省', '1301', '石家庄市', '130104', '桥西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130105', '1301', '00,13,1301', '新华区', '13', '河北省', '1301', '石家庄市', '130105', '新华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130107', '1301', '00,13,1301', '井陉矿区', '13', '河北省', '1301', '石家庄市', '130107', '井陉矿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130108', '1301', '00,13,1301', '裕华区', '13', '河北省', '1301', '石家庄市', '130108', '裕华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130109', '1301', '00,13,1301', '藁城区', '13', '河北省', '1301', '石家庄市', '130109', '藁城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130110', '1301', '00,13,1301', '鹿泉区', '13', '河北省', '1301', '石家庄市', '130110', '鹿泉区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130111', '1301', '00,13,1301', '栾城区', '13', '河北省', '1301', '石家庄市', '130111', '栾城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130121', '1301', '00,13,1301', '井陉县', '13', '河北省', '1301', '石家庄市', '130121', '井陉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130123', '1301', '00,13,1301', '正定县', '13', '河北省', '1301', '石家庄市', '130123', '正定县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130125', '1301', '00,13,1301', '行唐县', '13', '河北省', '1301', '石家庄市', '130125', '行唐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130126', '1301', '00,13,1301', '灵寿县', '13', '河北省', '1301', '石家庄市', '130126', '灵寿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130127', '1301', '00,13,1301', '高邑县', '13', '河北省', '1301', '石家庄市', '130127', '高邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130128', '1301', '00,13,1301', '深泽县', '13', '河北省', '1301', '石家庄市', '130128', '深泽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130129', '1301', '00,13,1301', '赞皇县', '13', '河北省', '1301', '石家庄市', '130129', '赞皇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130130', '1301', '00,13,1301', '无极县', '13', '河北省', '1301', '石家庄市', '130130', '无极县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130131', '1301', '00,13,1301', '平山县', '13', '河北省', '1301', '石家庄市', '130131', '平山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130132', '1301', '00,13,1301', '元氏县', '13', '河北省', '1301', '石家庄市', '130132', '元氏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130133', '1301', '00,13,1301', '赵县', '13', '河北省', '1301', '石家庄市', '130133', '赵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130181', '1301', '00,13,1301', '辛集市', '13', '河北省', '1301', '石家庄市', '130181', '辛集市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130183', '1301', '00,13,1301', '晋州市', '13', '河北省', '1301', '石家庄市', '130183', '晋州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130184', '1301', '00,13,1301', '新乐市', '13', '河北省', '1301', '石家庄市', '130184', '新乐市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1302', '13', '00,13', '唐山市', '13', '河北省', '1302', '唐山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130202', '1302', '00,13,1302', '路南区', '13', '河北省', '1302', '唐山市', '130202', '路南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130203', '1302', '00,13,1302', '路北区', '13', '河北省', '1302', '唐山市', '130203', '路北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130204', '1302', '00,13,1302', '古冶区', '13', '河北省', '1302', '唐山市', '130204', '古冶区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130205', '1302', '00,13,1302', '开平区', '13', '河北省', '1302', '唐山市', '130205', '开平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130207', '1302', '00,13,1302', '丰南区', '13', '河北省', '1302', '唐山市', '130207', '丰南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130208', '1302', '00,13,1302', '丰润区', '13', '河北省', '1302', '唐山市', '130208', '丰润区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130209', '1302', '00,13,1302', '曹妃甸区', '13', '河北省', '1302', '唐山市', '130209', '曹妃甸区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130224', '1302', '00,13,1302', '滦南县', '13', '河北省', '1302', '唐山市', '130224', '滦南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130225', '1302', '00,13,1302', '乐亭县', '13', '河北省', '1302', '唐山市', '130225', '乐亭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130227', '1302', '00,13,1302', '迁西县', '13', '河北省', '1302', '唐山市', '130227', '迁西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130229', '1302', '00,13,1302', '玉田县', '13', '河北省', '1302', '唐山市', '130229', '玉田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130281', '1302', '00,13,1302', '遵化市', '13', '河北省', '1302', '唐山市', '130281', '遵化市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130283', '1302', '00,13,1302', '迁安市', '13', '河北省', '1302', '唐山市', '130283', '迁安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130284', '1302', '00,13,1302', '滦州市', '13', '河北省', '1302', '唐山市', '130284', '滦州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1303', '13', '00,13', '秦皇岛市', '13', '河北省', '1303', '秦皇岛市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130302', '1303', '00,13,1303', '海港区', '13', '河北省', '1303', '秦皇岛市', '130302', '海港区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130303', '1303', '00,13,1303', '山海关区', '13', '河北省', '1303', '秦皇岛市', '130303', '山海关区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130304', '1303', '00,13,1303', '北戴河区', '13', '河北省', '1303', '秦皇岛市', '130304', '北戴河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130306', '1303', '00,13,1303', '抚宁区', '13', '河北省', '1303', '秦皇岛市', '130306', '抚宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130321', '1303', '00,13,1303', '青龙满族自治县', '13', '河北省', '1303', '秦皇岛市', '130321', '青龙满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130322', '1303', '00,13,1303', '昌黎县', '13', '河北省', '1303', '秦皇岛市', '130322', '昌黎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130324', '1303', '00,13,1303', '卢龙县', '13', '河北省', '1303', '秦皇岛市', '130324', '卢龙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1304', '13', '00,13', '邯郸市', '13', '河北省', '1304', '邯郸市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130402', '1304', '00,13,1304', '邯山区', '13', '河北省', '1304', '邯郸市', '130402', '邯山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130403', '1304', '00,13,1304', '丛台区', '13', '河北省', '1304', '邯郸市', '130403', '丛台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130404', '1304', '00,13,1304', '复兴区', '13', '河北省', '1304', '邯郸市', '130404', '复兴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130406', '1304', '00,13,1304', '峰峰矿区', '13', '河北省', '1304', '邯郸市', '130406', '峰峰矿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130407', '1304', '00,13,1304', '肥乡区', '13', '河北省', '1304', '邯郸市', '130407', '肥乡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130408', '1304', '00,13,1304', '永年区', '13', '河北省', '1304', '邯郸市', '130408', '永年区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130423', '1304', '00,13,1304', '临漳县', '13', '河北省', '1304', '邯郸市', '130423', '临漳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130424', '1304', '00,13,1304', '成安县', '13', '河北省', '1304', '邯郸市', '130424', '成安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130425', '1304', '00,13,1304', '大名县', '13', '河北省', '1304', '邯郸市', '130425', '大名县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130426', '1304', '00,13,1304', '涉县', '13', '河北省', '1304', '邯郸市', '130426', '涉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130427', '1304', '00,13,1304', '磁县', '13', '河北省', '1304', '邯郸市', '130427', '磁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130430', '1304', '00,13,1304', '邱县', '13', '河北省', '1304', '邯郸市', '130430', '邱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130431', '1304', '00,13,1304', '鸡泽县', '13', '河北省', '1304', '邯郸市', '130431', '鸡泽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130432', '1304', '00,13,1304', '广平县', '13', '河北省', '1304', '邯郸市', '130432', '广平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130433', '1304', '00,13,1304', '馆陶县', '13', '河北省', '1304', '邯郸市', '130433', '馆陶县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130434', '1304', '00,13,1304', '魏县', '13', '河北省', '1304', '邯郸市', '130434', '魏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130435', '1304', '00,13,1304', '曲周县', '13', '河北省', '1304', '邯郸市', '130435', '曲周县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130481', '1304', '00,13,1304', '武安市', '13', '河北省', '1304', '邯郸市', '130481', '武安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1305', '13', '00,13', '邢台市', '13', '河北省', '1305', '邢台市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130502', '1305', '00,13,1305', '桥东区', '13', '河北省', '1305', '邢台市', '130502', '桥东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130503', '1305', '00,13,1305', '桥西区', '13', '河北省', '1305', '邢台市', '130503', '桥西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130521', '1305', '00,13,1305', '邢台县', '13', '河北省', '1305', '邢台市', '130521', '邢台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130522', '1305', '00,13,1305', '临城县', '13', '河北省', '1305', '邢台市', '130522', '临城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130523', '1305', '00,13,1305', '内丘县', '13', '河北省', '1305', '邢台市', '130523', '内丘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130524', '1305', '00,13,1305', '柏乡县', '13', '河北省', '1305', '邢台市', '130524', '柏乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130525', '1305', '00,13,1305', '隆尧县', '13', '河北省', '1305', '邢台市', '130525', '隆尧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130526', '1305', '00,13,1305', '任县', '13', '河北省', '1305', '邢台市', '130526', '任县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130527', '1305', '00,13,1305', '南和县', '13', '河北省', '1305', '邢台市', '130527', '南和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130528', '1305', '00,13,1305', '宁晋县', '13', '河北省', '1305', '邢台市', '130528', '宁晋县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130529', '1305', '00,13,1305', '巨鹿县', '13', '河北省', '1305', '邢台市', '130529', '巨鹿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130530', '1305', '00,13,1305', '新河县', '13', '河北省', '1305', '邢台市', '130530', '新河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130531', '1305', '00,13,1305', '广宗县', '13', '河北省', '1305', '邢台市', '130531', '广宗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130532', '1305', '00,13,1305', '平乡县', '13', '河北省', '1305', '邢台市', '130532', '平乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130533', '1305', '00,13,1305', '威县', '13', '河北省', '1305', '邢台市', '130533', '威县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130534', '1305', '00,13,1305', '清河县', '13', '河北省', '1305', '邢台市', '130534', '清河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130535', '1305', '00,13,1305', '临西县', '13', '河北省', '1305', '邢台市', '130535', '临西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130581', '1305', '00,13,1305', '南宫市', '13', '河北省', '1305', '邢台市', '130581', '南宫市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130582', '1305', '00,13,1305', '沙河市', '13', '河北省', '1305', '邢台市', '130582', '沙河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1306', '13', '00,13', '保定市', '13', '河北省', '1306', '保定市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130602', '1306', '00,13,1306', '竞秀区', '13', '河北省', '1306', '保定市', '130602', '竞秀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130606', '1306', '00,13,1306', '莲池区', '13', '河北省', '1306', '保定市', '130606', '莲池区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130607', '1306', '00,13,1306', '满城区', '13', '河北省', '1306', '保定市', '130607', '满城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130608', '1306', '00,13,1306', '清苑区', '13', '河北省', '1306', '保定市', '130608', '清苑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130609', '1306', '00,13,1306', '徐水区', '13', '河北省', '1306', '保定市', '130609', '徐水区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130623', '1306', '00,13,1306', '涞水县', '13', '河北省', '1306', '保定市', '130623', '涞水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130624', '1306', '00,13,1306', '阜平县', '13', '河北省', '1306', '保定市', '130624', '阜平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130626', '1306', '00,13,1306', '定兴县', '13', '河北省', '1306', '保定市', '130626', '定兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130627', '1306', '00,13,1306', '唐县', '13', '河北省', '1306', '保定市', '130627', '唐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130628', '1306', '00,13,1306', '高阳县', '13', '河北省', '1306', '保定市', '130628', '高阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130629', '1306', '00,13,1306', '容城县', '13', '河北省', '1306', '保定市', '130629', '容城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130630', '1306', '00,13,1306', '涞源县', '13', '河北省', '1306', '保定市', '130630', '涞源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130631', '1306', '00,13,1306', '望都县', '13', '河北省', '1306', '保定市', '130631', '望都县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130632', '1306', '00,13,1306', '安新县', '13', '河北省', '1306', '保定市', '130632', '安新县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130633', '1306', '00,13,1306', '易县', '13', '河北省', '1306', '保定市', '130633', '易县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130634', '1306', '00,13,1306', '曲阳县', '13', '河北省', '1306', '保定市', '130634', '曲阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130635', '1306', '00,13,1306', '蠡县', '13', '河北省', '1306', '保定市', '130635', '蠡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130636', '1306', '00,13,1306', '顺平县', '13', '河北省', '1306', '保定市', '130636', '顺平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130637', '1306', '00,13,1306', '博野县', '13', '河北省', '1306', '保定市', '130637', '博野县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130638', '1306', '00,13,1306', '雄县', '13', '河北省', '1306', '保定市', '130638', '雄县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130681', '1306', '00,13,1306', '涿州市', '13', '河北省', '1306', '保定市', '130681', '涿州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130682', '1306', '00,13,1306', '定州市', '13', '河北省', '1306', '保定市', '130682', '定州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130683', '1306', '00,13,1306', '安国市', '13', '河北省', '1306', '保定市', '130683', '安国市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130684', '1306', '00,13,1306', '高碑店市', '13', '河北省', '1306', '保定市', '130684', '高碑店市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1307', '13', '00,13', '张家口市', '13', '河北省', '1307', '张家口市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130702', '1307', '00,13,1307', '桥东区', '13', '河北省', '1307', '张家口市', '130702', '桥东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130703', '1307', '00,13,1307', '桥西区', '13', '河北省', '1307', '张家口市', '130703', '桥西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130705', '1307', '00,13,1307', '宣化区', '13', '河北省', '1307', '张家口市', '130705', '宣化区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130706', '1307', '00,13,1307', '下花园区', '13', '河北省', '1307', '张家口市', '130706', '下花园区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130708', '1307', '00,13,1307', '万全区', '13', '河北省', '1307', '张家口市', '130708', '万全区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130709', '1307', '00,13,1307', '崇礼区', '13', '河北省', '1307', '张家口市', '130709', '崇礼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130722', '1307', '00,13,1307', '张北县', '13', '河北省', '1307', '张家口市', '130722', '张北县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130723', '1307', '00,13,1307', '康保县', '13', '河北省', '1307', '张家口市', '130723', '康保县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130724', '1307', '00,13,1307', '沽源县', '13', '河北省', '1307', '张家口市', '130724', '沽源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130725', '1307', '00,13,1307', '尚义县', '13', '河北省', '1307', '张家口市', '130725', '尚义县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130726', '1307', '00,13,1307', '蔚县', '13', '河北省', '1307', '张家口市', '130726', '蔚县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130727', '1307', '00,13,1307', '阳原县', '13', '河北省', '1307', '张家口市', '130727', '阳原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130728', '1307', '00,13,1307', '怀安县', '13', '河北省', '1307', '张家口市', '130728', '怀安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130730', '1307', '00,13,1307', '怀来县', '13', '河北省', '1307', '张家口市', '130730', '怀来县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130731', '1307', '00,13,1307', '涿鹿县', '13', '河北省', '1307', '张家口市', '130731', '涿鹿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130732', '1307', '00,13,1307', '赤城县', '13', '河北省', '1307', '张家口市', '130732', '赤城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1308', '13', '00,13', '承德市', '13', '河北省', '1308', '承德市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130802', '1308', '00,13,1308', '双桥区', '13', '河北省', '1308', '承德市', '130802', '双桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130803', '1308', '00,13,1308', '双滦区', '13', '河北省', '1308', '承德市', '130803', '双滦区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130804', '1308', '00,13,1308', '鹰手营子矿区', '13', '河北省', '1308', '承德市', '130804', '鹰手营子矿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130821', '1308', '00,13,1308', '承德县', '13', '河北省', '1308', '承德市', '130821', '承德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130822', '1308', '00,13,1308', '兴隆县', '13', '河北省', '1308', '承德市', '130822', '兴隆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130824', '1308', '00,13,1308', '滦平县', '13', '河北省', '1308', '承德市', '130824', '滦平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130825', '1308', '00,13,1308', '隆化县', '13', '河北省', '1308', '承德市', '130825', '隆化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130826', '1308', '00,13,1308', '丰宁满族自治县', '13', '河北省', '1308', '承德市', '130826', '丰宁满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130827', '1308', '00,13,1308', '宽城满族自治县', '13', '河北省', '1308', '承德市', '130827', '宽城满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130828', '1308', '00,13,1308', '围场满族蒙古族自治县', '13', '河北省', '1308', '承德市', '130828', '围场满族蒙古族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130881', '1308', '00,13,1308', '平泉市', '13', '河北省', '1308', '承德市', '130881', '平泉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1309', '13', '00,13', '沧州市', '13', '河北省', '1309', '沧州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130902', '1309', '00,13,1309', '新华区', '13', '河北省', '1309', '沧州市', '130902', '新华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130903', '1309', '00,13,1309', '运河区', '13', '河北省', '1309', '沧州市', '130903', '运河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130921', '1309', '00,13,1309', '沧县', '13', '河北省', '1309', '沧州市', '130921', '沧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130922', '1309', '00,13,1309', '青县', '13', '河北省', '1309', '沧州市', '130922', '青县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130923', '1309', '00,13,1309', '东光县', '13', '河北省', '1309', '沧州市', '130923', '东光县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130924', '1309', '00,13,1309', '海兴县', '13', '河北省', '1309', '沧州市', '130924', '海兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130925', '1309', '00,13,1309', '盐山县', '13', '河北省', '1309', '沧州市', '130925', '盐山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130926', '1309', '00,13,1309', '肃宁县', '13', '河北省', '1309', '沧州市', '130926', '肃宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130927', '1309', '00,13,1309', '南皮县', '13', '河北省', '1309', '沧州市', '130927', '南皮县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130928', '1309', '00,13,1309', '吴桥县', '13', '河北省', '1309', '沧州市', '130928', '吴桥县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130929', '1309', '00,13,1309', '献县', '13', '河北省', '1309', '沧州市', '130929', '献县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130930', '1309', '00,13,1309', '孟村回族自治县', '13', '河北省', '1309', '沧州市', '130930', '孟村回族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130981', '1309', '00,13,1309', '泊头市', '13', '河北省', '1309', '沧州市', '130981', '泊头市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130982', '1309', '00,13,1309', '任丘市', '13', '河北省', '1309', '沧州市', '130982', '任丘市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130983', '1309', '00,13,1309', '黄骅市', '13', '河北省', '1309', '沧州市', '130983', '黄骅市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130984', '1309', '00,13,1309', '河间市', '13', '河北省', '1309', '沧州市', '130984', '河间市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1310', '13', '00,13', '廊坊市', '13', '河北省', '1310', '廊坊市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('131002', '1310', '00,13,1310', '安次区', '13', '河北省', '1310', '廊坊市', '131002', '安次区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3403', '34', '00,34', '蚌埠市', '34', '安徽省', '3403', '蚌埠市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('131003', '1310', '00,13,1310', '广阳区', '13', '河北省', '1310', '廊坊市', '131003', '广阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131022', '1310', '00,13,1310', '固安县', '13', '河北省', '1310', '廊坊市', '131022', '固安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131023', '1310', '00,13,1310', '永清县', '13', '河北省', '1310', '廊坊市', '131023', '永清县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131024', '1310', '00,13,1310', '香河县', '13', '河北省', '1310', '廊坊市', '131024', '香河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131025', '1310', '00,13,1310', '大城县', '13', '河北省', '1310', '廊坊市', '131025', '大城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131026', '1310', '00,13,1310', '文安县', '13', '河北省', '1310', '廊坊市', '131026', '文安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131028', '1310', '00,13,1310', '大厂回族自治县', '13', '河北省', '1310', '廊坊市', '131028', '大厂回族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131081', '1310', '00,13,1310', '霸州市', '13', '河北省', '1310', '廊坊市', '131081', '霸州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131082', '1310', '00,13,1310', '三河市', '13', '河北省', '1310', '廊坊市', '131082', '三河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1311', '13', '00,13', '衡水市', '13', '河北省', '1311', '衡水市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('131102', '1311', '00,13,1311', '桃城区', '13', '河北省', '1311', '衡水市', '131102', '桃城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131103', '1311', '00,13,1311', '冀州区', '13', '河北省', '1311', '衡水市', '131103', '冀州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131121', '1311', '00,13,1311', '枣强县', '13', '河北省', '1311', '衡水市', '131121', '枣强县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131122', '1311', '00,13,1311', '武邑县', '13', '河北省', '1311', '衡水市', '131122', '武邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131123', '1311', '00,13,1311', '武强县', '13', '河北省', '1311', '衡水市', '131123', '武强县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131124', '1311', '00,13,1311', '饶阳县', '13', '河北省', '1311', '衡水市', '131124', '饶阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131125', '1311', '00,13,1311', '安平县', '13', '河北省', '1311', '衡水市', '131125', '安平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131126', '1311', '00,13,1311', '故城县', '13', '河北省', '1311', '衡水市', '131126', '故城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131127', '1311', '00,13,1311', '景县', '13', '河北省', '1311', '衡水市', '131127', '景县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131128', '1311', '00,13,1311', '阜城县', '13', '河北省', '1311', '衡水市', '131128', '阜城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131182', '1311', '00,13,1311', '深州市', '13', '河北省', '1311', '衡水市', '131182', '深州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('14', '00', '00', '山西省', '14', '山西省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('1401', '14', '00,14', '太原市', '14', '山西省', '1401', '太原市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140105', '1401', '00,14,1401', '小店区', '14', '山西省', '1401', '太原市', '140105', '小店区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140106', '1401', '00,14,1401', '迎泽区', '14', '山西省', '1401', '太原市', '140106', '迎泽区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140107', '1401', '00,14,1401', '杏花岭区', '14', '山西省', '1401', '太原市', '140107', '杏花岭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140108', '1401', '00,14,1401', '尖草坪区', '14', '山西省', '1401', '太原市', '140108', '尖草坪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140109', '1401', '00,14,1401', '万柏林区', '14', '山西省', '1401', '太原市', '140109', '万柏林区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140110', '1401', '00,14,1401', '晋源区', '14', '山西省', '1401', '太原市', '140110', '晋源区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140121', '1401', '00,14,1401', '清徐县', '14', '山西省', '1401', '太原市', '140121', '清徐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140122', '1401', '00,14,1401', '阳曲县', '14', '山西省', '1401', '太原市', '140122', '阳曲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140123', '1401', '00,14,1401', '娄烦县', '14', '山西省', '1401', '太原市', '140123', '娄烦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140181', '1401', '00,14,1401', '古交市', '14', '山西省', '1401', '太原市', '140181', '古交市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1402', '14', '00,14', '大同市', '14', '山西省', '1402', '大同市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140212', '1402', '00,14,1402', '新荣区', '14', '山西省', '1402', '大同市', '140212', '新荣区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140213', '1402', '00,14,1402', '平城区', '14', '山西省', '1402', '大同市', '140213', '平城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140214', '1402', '00,14,1402', '云冈区', '14', '山西省', '1402', '大同市', '140214', '云冈区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140215', '1402', '00,14,1402', '云州区', '14', '山西省', '1402', '大同市', '140215', '云州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140221', '1402', '00,14,1402', '阳高县', '14', '山西省', '1402', '大同市', '140221', '阳高县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140222', '1402', '00,14,1402', '天镇县', '14', '山西省', '1402', '大同市', '140222', '天镇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140223', '1402', '00,14,1402', '广灵县', '14', '山西省', '1402', '大同市', '140223', '广灵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140224', '1402', '00,14,1402', '灵丘县', '14', '山西省', '1402', '大同市', '140224', '灵丘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140225', '1402', '00,14,1402', '浑源县', '14', '山西省', '1402', '大同市', '140225', '浑源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140226', '1402', '00,14,1402', '左云县', '14', '山西省', '1402', '大同市', '140226', '左云县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1403', '14', '00,14', '阳泉市', '14', '山西省', '1403', '阳泉市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140302', '1403', '00,14,1403', '城区', '14', '山西省', '1403', '阳泉市', '140302', '城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140303', '1403', '00,14,1403', '矿区', '14', '山西省', '1403', '阳泉市', '140303', '矿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140311', '1403', '00,14,1403', '郊区', '14', '山西省', '1403', '阳泉市', '140311', '郊区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140321', '1403', '00,14,1403', '平定县', '14', '山西省', '1403', '阳泉市', '140321', '平定县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140322', '1403', '00,14,1403', '盂县', '14', '山西省', '1403', '阳泉市', '140322', '盂县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1404', '14', '00,14', '长治市', '14', '山西省', '1404', '长治市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140403', '1404', '00,14,1404', '潞州区', '14', '山西省', '1404', '长治市', '140403', '潞州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140404', '1404', '00,14,1404', '上党区', '14', '山西省', '1404', '长治市', '140404', '上党区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140405', '1404', '00,14,1404', '屯留区', '14', '山西省', '1404', '长治市', '140405', '屯留区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140406', '1404', '00,14,1404', '潞城区', '14', '山西省', '1404', '长治市', '140406', '潞城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140423', '1404', '00,14,1404', '襄垣县', '14', '山西省', '1404', '长治市', '140423', '襄垣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140425', '1404', '00,14,1404', '平顺县', '14', '山西省', '1404', '长治市', '140425', '平顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140426', '1404', '00,14,1404', '黎城县', '14', '山西省', '1404', '长治市', '140426', '黎城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140427', '1404', '00,14,1404', '壶关县', '14', '山西省', '1404', '长治市', '140427', '壶关县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140428', '1404', '00,14,1404', '长子县', '14', '山西省', '1404', '长治市', '140428', '长子县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140429', '1404', '00,14,1404', '武乡县', '14', '山西省', '1404', '长治市', '140429', '武乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140430', '1404', '00,14,1404', '沁县', '14', '山西省', '1404', '长治市', '140430', '沁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140431', '1404', '00,14,1404', '沁源县', '14', '山西省', '1404', '长治市', '140431', '沁源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1405', '14', '00,14', '晋城市', '14', '山西省', '1405', '晋城市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140502', '1405', '00,14,1405', '城区', '14', '山西省', '1405', '晋城市', '140502', '城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140521', '1405', '00,14,1405', '沁水县', '14', '山西省', '1405', '晋城市', '140521', '沁水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140522', '1405', '00,14,1405', '阳城县', '14', '山西省', '1405', '晋城市', '140522', '阳城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140524', '1405', '00,14,1405', '陵川县', '14', '山西省', '1405', '晋城市', '140524', '陵川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140525', '1405', '00,14,1405', '泽州县', '14', '山西省', '1405', '晋城市', '140525', '泽州县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140581', '1405', '00,14,1405', '高平市', '14', '山西省', '1405', '晋城市', '140581', '高平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1406', '14', '00,14', '朔州市', '14', '山西省', '1406', '朔州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140602', '1406', '00,14,1406', '朔城区', '14', '山西省', '1406', '朔州市', '140602', '朔城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140603', '1406', '00,14,1406', '平鲁区', '14', '山西省', '1406', '朔州市', '140603', '平鲁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140621', '1406', '00,14,1406', '山阴县', '14', '山西省', '1406', '朔州市', '140621', '山阴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140622', '1406', '00,14,1406', '应县', '14', '山西省', '1406', '朔州市', '140622', '应县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140623', '1406', '00,14,1406', '右玉县', '14', '山西省', '1406', '朔州市', '140623', '右玉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140681', '1406', '00,14,1406', '怀仁市', '14', '山西省', '1406', '朔州市', '140681', '怀仁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1407', '14', '00,14', '晋中市', '14', '山西省', '1407', '晋中市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140702', '1407', '00,14,1407', '榆次区', '14', '山西省', '1407', '晋中市', '140702', '榆次区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140703', '1407', '00,14,1407', '太谷区', '14', '山西省', '1407', '晋中市', '140703', '太谷区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140721', '1407', '00,14,1407', '榆社县', '14', '山西省', '1407', '晋中市', '140721', '榆社县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140722', '1407', '00,14,1407', '左权县', '14', '山西省', '1407', '晋中市', '140722', '左权县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140723', '1407', '00,14,1407', '和顺县', '14', '山西省', '1407', '晋中市', '140723', '和顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140724', '1407', '00,14,1407', '昔阳县', '14', '山西省', '1407', '晋中市', '140724', '昔阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140725', '1407', '00,14,1407', '寿阳县', '14', '山西省', '1407', '晋中市', '140725', '寿阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140727', '1407', '00,14,1407', '祁县', '14', '山西省', '1407', '晋中市', '140727', '祁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140728', '1407', '00,14,1407', '平遥县', '14', '山西省', '1407', '晋中市', '140728', '平遥县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140729', '1407', '00,14,1407', '灵石县', '14', '山西省', '1407', '晋中市', '140729', '灵石县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140781', '1407', '00,14,1407', '介休市', '14', '山西省', '1407', '晋中市', '140781', '介休市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1408', '14', '00,14', '运城市', '14', '山西省', '1408', '运城市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140802', '1408', '00,14,1408', '盐湖区', '14', '山西省', '1408', '运城市', '140802', '盐湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140821', '1408', '00,14,1408', '临猗县', '14', '山西省', '1408', '运城市', '140821', '临猗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140822', '1408', '00,14,1408', '万荣县', '14', '山西省', '1408', '运城市', '140822', '万荣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140823', '1408', '00,14,1408', '闻喜县', '14', '山西省', '1408', '运城市', '140823', '闻喜县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140824', '1408', '00,14,1408', '稷山县', '14', '山西省', '1408', '运城市', '140824', '稷山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140825', '1408', '00,14,1408', '新绛县', '14', '山西省', '1408', '运城市', '140825', '新绛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140826', '1408', '00,14,1408', '绛县', '14', '山西省', '1408', '运城市', '140826', '绛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140827', '1408', '00,14,1408', '垣曲县', '14', '山西省', '1408', '运城市', '140827', '垣曲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140828', '1408', '00,14,1408', '夏县', '14', '山西省', '1408', '运城市', '140828', '夏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140829', '1408', '00,14,1408', '平陆县', '14', '山西省', '1408', '运城市', '140829', '平陆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140830', '1408', '00,14,1408', '芮城县', '14', '山西省', '1408', '运城市', '140830', '芮城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140881', '1408', '00,14,1408', '永济市', '14', '山西省', '1408', '运城市', '140881', '永济市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140882', '1408', '00,14,1408', '河津市', '14', '山西省', '1408', '运城市', '140882', '河津市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1409', '14', '00,14', '忻州市', '14', '山西省', '1409', '忻州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140902', '1409', '00,14,1409', '忻府区', '14', '山西省', '1409', '忻州市', '140902', '忻府区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140921', '1409', '00,14,1409', '定襄县', '14', '山西省', '1409', '忻州市', '140921', '定襄县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140922', '1409', '00,14,1409', '五台县', '14', '山西省', '1409', '忻州市', '140922', '五台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140923', '1409', '00,14,1409', '代县', '14', '山西省', '1409', '忻州市', '140923', '代县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140924', '1409', '00,14,1409', '繁峙县', '14', '山西省', '1409', '忻州市', '140924', '繁峙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140925', '1409', '00,14,1409', '宁武县', '14', '山西省', '1409', '忻州市', '140925', '宁武县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140926', '1409', '00,14,1409', '静乐县', '14', '山西省', '1409', '忻州市', '140926', '静乐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140927', '1409', '00,14,1409', '神池县', '14', '山西省', '1409', '忻州市', '140927', '神池县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140928', '1409', '00,14,1409', '五寨县', '14', '山西省', '1409', '忻州市', '140928', '五寨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140929', '1409', '00,14,1409', '岢岚县', '14', '山西省', '1409', '忻州市', '140929', '岢岚县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140930', '1409', '00,14,1409', '河曲县', '14', '山西省', '1409', '忻州市', '140930', '河曲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140931', '1409', '00,14,1409', '保德县', '14', '山西省', '1409', '忻州市', '140931', '保德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140932', '1409', '00,14,1409', '偏关县', '14', '山西省', '1409', '忻州市', '140932', '偏关县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140981', '1409', '00,14,1409', '原平市', '14', '山西省', '1409', '忻州市', '140981', '原平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1410', '14', '00,14', '临汾市', '14', '山西省', '1410', '临汾市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('141002', '1410', '00,14,1410', '尧都区', '14', '山西省', '1410', '临汾市', '141002', '尧都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141021', '1410', '00,14,1410', '曲沃县', '14', '山西省', '1410', '临汾市', '141021', '曲沃县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141022', '1410', '00,14,1410', '翼城县', '14', '山西省', '1410', '临汾市', '141022', '翼城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141023', '1410', '00,14,1410', '襄汾县', '14', '山西省', '1410', '临汾市', '141023', '襄汾县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141024', '1410', '00,14,1410', '洪洞县', '14', '山西省', '1410', '临汾市', '141024', '洪洞县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141025', '1410', '00,14,1410', '古县', '14', '山西省', '1410', '临汾市', '141025', '古县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141026', '1410', '00,14,1410', '安泽县', '14', '山西省', '1410', '临汾市', '141026', '安泽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141027', '1410', '00,14,1410', '浮山县', '14', '山西省', '1410', '临汾市', '141027', '浮山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141028', '1410', '00,14,1410', '吉县', '14', '山西省', '1410', '临汾市', '141028', '吉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141029', '1410', '00,14,1410', '乡宁县', '14', '山西省', '1410', '临汾市', '141029', '乡宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141030', '1410', '00,14,1410', '大宁县', '14', '山西省', '1410', '临汾市', '141030', '大宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141031', '1410', '00,14,1410', '隰县', '14', '山西省', '1410', '临汾市', '141031', '隰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141032', '1410', '00,14,1410', '永和县', '14', '山西省', '1410', '临汾市', '141032', '永和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141033', '1410', '00,14,1410', '蒲县', '14', '山西省', '1410', '临汾市', '141033', '蒲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141034', '1410', '00,14,1410', '汾西县', '14', '山西省', '1410', '临汾市', '141034', '汾西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141081', '1410', '00,14,1410', '侯马市', '14', '山西省', '1410', '临汾市', '141081', '侯马市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141082', '1410', '00,14,1410', '霍州市', '14', '山西省', '1410', '临汾市', '141082', '霍州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1411', '14', '00,14', '吕梁市', '14', '山西省', '1411', '吕梁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('141102', '1411', '00,14,1411', '离石区', '14', '山西省', '1411', '吕梁市', '141102', '离石区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141121', '1411', '00,14,1411', '文水县', '14', '山西省', '1411', '吕梁市', '141121', '文水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141122', '1411', '00,14,1411', '交城县', '14', '山西省', '1411', '吕梁市', '141122', '交城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141123', '1411', '00,14,1411', '兴县', '14', '山西省', '1411', '吕梁市', '141123', '兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141124', '1411', '00,14,1411', '临县', '14', '山西省', '1411', '吕梁市', '141124', '临县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141125', '1411', '00,14,1411', '柳林县', '14', '山西省', '1411', '吕梁市', '141125', '柳林县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141126', '1411', '00,14,1411', '石楼县', '14', '山西省', '1411', '吕梁市', '141126', '石楼县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141127', '1411', '00,14,1411', '岚县', '14', '山西省', '1411', '吕梁市', '141127', '岚县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141128', '1411', '00,14,1411', '方山县', '14', '山西省', '1411', '吕梁市', '141128', '方山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141129', '1411', '00,14,1411', '中阳县', '14', '山西省', '1411', '吕梁市', '141129', '中阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141130', '1411', '00,14,1411', '交口县', '14', '山西省', '1411', '吕梁市', '141130', '交口县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141181', '1411', '00,14,1411', '孝义市', '14', '山西省', '1411', '吕梁市', '141181', '孝义市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141182', '1411', '00,14,1411', '汾阳市', '14', '山西省', '1411', '吕梁市', '141182', '汾阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('15', '00', '00', '内蒙古自治区', '15', '内蒙古自治区', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('1501', '15', '00,15', '呼和浩特市', '15', '内蒙古自治区', '1501', '呼和浩特市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150102', '1501', '00,15,1501', '新城区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150102', '新城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150103', '1501', '00,15,1501', '回民区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150103', '回民区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150104', '1501', '00,15,1501', '玉泉区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150104', '玉泉区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150105', '1501', '00,15,1501', '赛罕区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150105', '赛罕区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150121', '1501', '00,15,1501', '土默特左旗', '15', '内蒙古自治区', '1501', '呼和浩特市', '150121', '土默特左旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150122', '1501', '00,15,1501', '托克托县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150122', '托克托县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150123', '1501', '00,15,1501', '和林格尔县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150123', '和林格尔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150124', '1501', '00,15,1501', '清水河县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150124', '清水河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150125', '1501', '00,15,1501', '武川县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150125', '武川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1502', '15', '00,15', '包头市', '15', '内蒙古自治区', '1502', '包头市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150202', '1502', '00,15,1502', '东河区', '15', '内蒙古自治区', '1502', '包头市', '150202', '东河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150203', '1502', '00,15,1502', '昆都仑区', '15', '内蒙古自治区', '1502', '包头市', '150203', '昆都仑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150204', '1502', '00,15,1502', '青山区', '15', '内蒙古自治区', '1502', '包头市', '150204', '青山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150205', '1502', '00,15,1502', '石拐区', '15', '内蒙古自治区', '1502', '包头市', '150205', '石拐区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150206', '1502', '00,15,1502', '白云鄂博矿区', '15', '内蒙古自治区', '1502', '包头市', '150206', '白云鄂博矿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150207', '1502', '00,15,1502', '九原区', '15', '内蒙古自治区', '1502', '包头市', '150207', '九原区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150221', '1502', '00,15,1502', '土默特右旗', '15', '内蒙古自治区', '1502', '包头市', '150221', '土默特右旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150222', '1502', '00,15,1502', '固阳县', '15', '内蒙古自治区', '1502', '包头市', '150222', '固阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150223', '1502', '00,15,1502', '达尔罕茂明安联合旗', '15', '内蒙古自治区', '1502', '包头市', '150223', '达尔罕茂明安联合旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1503', '15', '00,15', '乌海市', '15', '内蒙古自治区', '1503', '乌海市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150302', '1503', '00,15,1503', '海勃湾区', '15', '内蒙古自治区', '1503', '乌海市', '150302', '海勃湾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150303', '1503', '00,15,1503', '海南区', '15', '内蒙古自治区', '1503', '乌海市', '150303', '海南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150304', '1503', '00,15,1503', '乌达区', '15', '内蒙古自治区', '1503', '乌海市', '150304', '乌达区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1504', '15', '00,15', '赤峰市', '15', '内蒙古自治区', '1504', '赤峰市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150402', '1504', '00,15,1504', '红山区', '15', '内蒙古自治区', '1504', '赤峰市', '150402', '红山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150403', '1504', '00,15,1504', '元宝山区', '15', '内蒙古自治区', '1504', '赤峰市', '150403', '元宝山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150404', '1504', '00,15,1504', '松山区', '15', '内蒙古自治区', '1504', '赤峰市', '150404', '松山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150421', '1504', '00,15,1504', '阿鲁科尔沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150421', '阿鲁科尔沁旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150422', '1504', '00,15,1504', '巴林左旗', '15', '内蒙古自治区', '1504', '赤峰市', '150422', '巴林左旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150423', '1504', '00,15,1504', '巴林右旗', '15', '内蒙古自治区', '1504', '赤峰市', '150423', '巴林右旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150424', '1504', '00,15,1504', '林西县', '15', '内蒙古自治区', '1504', '赤峰市', '150424', '林西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150425', '1504', '00,15,1504', '克什克腾旗', '15', '内蒙古自治区', '1504', '赤峰市', '150425', '克什克腾旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150426', '1504', '00,15,1504', '翁牛特旗', '15', '内蒙古自治区', '1504', '赤峰市', '150426', '翁牛特旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150428', '1504', '00,15,1504', '喀喇沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150428', '喀喇沁旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150429', '1504', '00,15,1504', '宁城县', '15', '内蒙古自治区', '1504', '赤峰市', '150429', '宁城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150430', '1504', '00,15,1504', '敖汉旗', '15', '内蒙古自治区', '1504', '赤峰市', '150430', '敖汉旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1505', '15', '00,15', '通辽市', '15', '内蒙古自治区', '1505', '通辽市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150502', '1505', '00,15,1505', '科尔沁区', '15', '内蒙古自治区', '1505', '通辽市', '150502', '科尔沁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150521', '1505', '00,15,1505', '科尔沁左翼中旗', '15', '内蒙古自治区', '1505', '通辽市', '150521', '科尔沁左翼中旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150522', '1505', '00,15,1505', '科尔沁左翼后旗', '15', '内蒙古自治区', '1505', '通辽市', '150522', '科尔沁左翼后旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150523', '1505', '00,15,1505', '开鲁县', '15', '内蒙古自治区', '1505', '通辽市', '150523', '开鲁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150524', '1505', '00,15,1505', '库伦旗', '15', '内蒙古自治区', '1505', '通辽市', '150524', '库伦旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150525', '1505', '00,15,1505', '奈曼旗', '15', '内蒙古自治区', '1505', '通辽市', '150525', '奈曼旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150526', '1505', '00,15,1505', '扎鲁特旗', '15', '内蒙古自治区', '1505', '通辽市', '150526', '扎鲁特旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150581', '1505', '00,15,1505', '霍林郭勒市', '15', '内蒙古自治区', '1505', '通辽市', '150581', '霍林郭勒市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1506', '15', '00,15', '鄂尔多斯市', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150602', '1506', '00,15,1506', '东胜区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150602', '东胜区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150603', '1506', '00,15,1506', '康巴什区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150603', '康巴什区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150621', '1506', '00,15,1506', '达拉特旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150621', '达拉特旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150622', '1506', '00,15,1506', '准格尔旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150622', '准格尔旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150623', '1506', '00,15,1506', '鄂托克前旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150623', '鄂托克前旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150624', '1506', '00,15,1506', '鄂托克旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150624', '鄂托克旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150625', '1506', '00,15,1506', '杭锦旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150625', '杭锦旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150626', '1506', '00,15,1506', '乌审旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150626', '乌审旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150627', '1506', '00,15,1506', '伊金霍洛旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150627', '伊金霍洛旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1507', '15', '00,15', '呼伦贝尔市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150702', '1507', '00,15,1507', '海拉尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150702', '海拉尔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150703', '1507', '00,15,1507', '扎赉诺尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150703', '扎赉诺尔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150721', '1507', '00,15,1507', '阿荣旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150721', '阿荣旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150722', '1507', '00,15,1507', '莫力达瓦达斡尔族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150722', '莫力达瓦达斡尔族自治旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150723', '1507', '00,15,1507', '鄂伦春自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150723', '鄂伦春自治旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150724', '1507', '00,15,1507', '鄂温克族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150724', '鄂温克族自治旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150725', '1507', '00,15,1507', '陈巴尔虎旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150725', '陈巴尔虎旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150726', '1507', '00,15,1507', '新巴尔虎左旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150726', '新巴尔虎左旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150727', '1507', '00,15,1507', '新巴尔虎右旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150727', '新巴尔虎右旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150781', '1507', '00,15,1507', '满洲里市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150781', '满洲里市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150782', '1507', '00,15,1507', '牙克石市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150782', '牙克石市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150783', '1507', '00,15,1507', '扎兰屯市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150783', '扎兰屯市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150784', '1507', '00,15,1507', '额尔古纳市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150784', '额尔古纳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150785', '1507', '00,15,1507', '根河市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150785', '根河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1508', '15', '00,15', '巴彦淖尔市', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150802', '1508', '00,15,1508', '临河区', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150802', '临河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150821', '1508', '00,15,1508', '五原县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150821', '五原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150822', '1508', '00,15,1508', '磴口县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150822', '磴口县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150823', '1508', '00,15,1508', '乌拉特前旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150823', '乌拉特前旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150824', '1508', '00,15,1508', '乌拉特中旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150824', '乌拉特中旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150825', '1508', '00,15,1508', '乌拉特后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150825', '乌拉特后旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150826', '1508', '00,15,1508', '杭锦后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150826', '杭锦后旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1509', '15', '00,15', '乌兰察布市', '15', '内蒙古自治区', '1509', '乌兰察布市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150902', '1509', '00,15,1509', '集宁区', '15', '内蒙古自治区', '1509', '乌兰察布市', '150902', '集宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150921', '1509', '00,15,1509', '卓资县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150921', '卓资县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150922', '1509', '00,15,1509', '化德县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150922', '化德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150923', '1509', '00,15,1509', '商都县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150923', '商都县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150924', '1509', '00,15,1509', '兴和县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150924', '兴和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150925', '1509', '00,15,1509', '凉城县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150925', '凉城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150926', '1509', '00,15,1509', '察哈尔右翼前旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150926', '察哈尔右翼前旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150927', '1509', '00,15,1509', '察哈尔右翼中旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150927', '察哈尔右翼中旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150928', '1509', '00,15,1509', '察哈尔右翼后旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150928', '察哈尔右翼后旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150929', '1509', '00,15,1509', '四子王旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150929', '四子王旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150981', '1509', '00,15,1509', '丰镇市', '15', '内蒙古自治区', '1509', '乌兰察布市', '150981', '丰镇市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1522', '15', '00,15', '兴安盟', '15', '内蒙古自治区', '1522', '兴安盟', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('152201', '1522', '00,15,1522', '乌兰浩特市', '15', '内蒙古自治区', '1522', '兴安盟', '152201', '乌兰浩特市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152202', '1522', '00,15,1522', '阿尔山市', '15', '内蒙古自治区', '1522', '兴安盟', '152202', '阿尔山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152221', '1522', '00,15,1522', '科尔沁右翼前旗', '15', '内蒙古自治区', '1522', '兴安盟', '152221', '科尔沁右翼前旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152222', '1522', '00,15,1522', '科尔沁右翼中旗', '15', '内蒙古自治区', '1522', '兴安盟', '152222', '科尔沁右翼中旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152223', '1522', '00,15,1522', '扎赉特旗', '15', '内蒙古自治区', '1522', '兴安盟', '152223', '扎赉特旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152224', '1522', '00,15,1522', '突泉县', '15', '内蒙古自治区', '1522', '兴安盟', '152224', '突泉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1525', '15', '00,15', '锡林郭勒盟', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('211421', '2114', '00,21,2114', '绥中县', '21', '辽宁省', '2114', '葫芦岛市', '211421', '绥中县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152501', '1525', '00,15,1525', '二连浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152501', '二连浩特市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152502', '1525', '00,15,1525', '锡林浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152502', '锡林浩特市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152522', '1525', '00,15,1525', '阿巴嘎旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152522', '阿巴嘎旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152523', '1525', '00,15,1525', '苏尼特左旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152523', '苏尼特左旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152524', '1525', '00,15,1525', '苏尼特右旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152524', '苏尼特右旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152525', '1525', '00,15,1525', '东乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152525', '东乌珠穆沁旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152526', '1525', '00,15,1525', '西乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152526', '西乌珠穆沁旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152527', '1525', '00,15,1525', '太仆寺旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152527', '太仆寺旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152528', '1525', '00,15,1525', '镶黄旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152528', '镶黄旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152529', '1525', '00,15,1525', '正镶白旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152529', '正镶白旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152530', '1525', '00,15,1525', '正蓝旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152530', '正蓝旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152531', '1525', '00,15,1525', '多伦县', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152531', '多伦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1529', '15', '00,15', '阿拉善盟', '15', '内蒙古自治区', '1529', '阿拉善盟', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('152921', '1529', '00,15,1529', '阿拉善左旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152921', '阿拉善左旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152922', '1529', '00,15,1529', '阿拉善右旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152922', '阿拉善右旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152923', '1529', '00,15,1529', '额济纳旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152923', '额济纳旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('21', '00', '00', '辽宁省', '21', '辽宁省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('2101', '21', '00,21', '沈阳市', '21', '辽宁省', '2101', '沈阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210102', '2101', '00,21,2101', '和平区', '21', '辽宁省', '2101', '沈阳市', '210102', '和平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210103', '2101', '00,21,2101', '沈河区', '21', '辽宁省', '2101', '沈阳市', '210103', '沈河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210104', '2101', '00,21,2101', '大东区', '21', '辽宁省', '2101', '沈阳市', '210104', '大东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210105', '2101', '00,21,2101', '皇姑区', '21', '辽宁省', '2101', '沈阳市', '210105', '皇姑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210106', '2101', '00,21,2101', '铁西区', '21', '辽宁省', '2101', '沈阳市', '210106', '铁西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210111', '2101', '00,21,2101', '苏家屯区', '21', '辽宁省', '2101', '沈阳市', '210111', '苏家屯区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210112', '2101', '00,21,2101', '浑南区', '21', '辽宁省', '2101', '沈阳市', '210112', '浑南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210113', '2101', '00,21,2101', '沈北新区', '21', '辽宁省', '2101', '沈阳市', '210113', '沈北新区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210114', '2101', '00,21,2101', '于洪区', '21', '辽宁省', '2101', '沈阳市', '210114', '于洪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210115', '2101', '00,21,2101', '辽中区', '21', '辽宁省', '2101', '沈阳市', '210115', '辽中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210123', '2101', '00,21,2101', '康平县', '21', '辽宁省', '2101', '沈阳市', '210123', '康平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210124', '2101', '00,21,2101', '法库县', '21', '辽宁省', '2101', '沈阳市', '210124', '法库县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210181', '2101', '00,21,2101', '新民市', '21', '辽宁省', '2101', '沈阳市', '210181', '新民市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2102', '21', '00,21', '大连市', '21', '辽宁省', '2102', '大连市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210202', '2102', '00,21,2102', '中山区', '21', '辽宁省', '2102', '大连市', '210202', '中山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210203', '2102', '00,21,2102', '西岗区', '21', '辽宁省', '2102', '大连市', '210203', '西岗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210204', '2102', '00,21,2102', '沙河口区', '21', '辽宁省', '2102', '大连市', '210204', '沙河口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210211', '2102', '00,21,2102', '甘井子区', '21', '辽宁省', '2102', '大连市', '210211', '甘井子区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210212', '2102', '00,21,2102', '旅顺口区', '21', '辽宁省', '2102', '大连市', '210212', '旅顺口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210213', '2102', '00,21,2102', '金州区', '21', '辽宁省', '2102', '大连市', '210213', '金州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210214', '2102', '00,21,2102', '普兰店区', '21', '辽宁省', '2102', '大连市', '210214', '普兰店区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210224', '2102', '00,21,2102', '长海县', '21', '辽宁省', '2102', '大连市', '210224', '长海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210281', '2102', '00,21,2102', '瓦房店市', '21', '辽宁省', '2102', '大连市', '210281', '瓦房店市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210283', '2102', '00,21,2102', '庄河市', '21', '辽宁省', '2102', '大连市', '210283', '庄河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2103', '21', '00,21', '鞍山市', '21', '辽宁省', '2103', '鞍山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210302', '2103', '00,21,2103', '铁东区', '21', '辽宁省', '2103', '鞍山市', '210302', '铁东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210303', '2103', '00,21,2103', '铁西区', '21', '辽宁省', '2103', '鞍山市', '210303', '铁西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210304', '2103', '00,21,2103', '立山区', '21', '辽宁省', '2103', '鞍山市', '210304', '立山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210311', '2103', '00,21,2103', '千山区', '21', '辽宁省', '2103', '鞍山市', '210311', '千山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210321', '2103', '00,21,2103', '台安县', '21', '辽宁省', '2103', '鞍山市', '210321', '台安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210323', '2103', '00,21,2103', '岫岩满族自治县', '21', '辽宁省', '2103', '鞍山市', '210323', '岫岩满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210381', '2103', '00,21,2103', '海城市', '21', '辽宁省', '2103', '鞍山市', '210381', '海城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2104', '21', '00,21', '抚顺市', '21', '辽宁省', '2104', '抚顺市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210402', '2104', '00,21,2104', '新抚区', '21', '辽宁省', '2104', '抚顺市', '210402', '新抚区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210403', '2104', '00,21,2104', '东洲区', '21', '辽宁省', '2104', '抚顺市', '210403', '东洲区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210404', '2104', '00,21,2104', '望花区', '21', '辽宁省', '2104', '抚顺市', '210404', '望花区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210411', '2104', '00,21,2104', '顺城区', '21', '辽宁省', '2104', '抚顺市', '210411', '顺城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210421', '2104', '00,21,2104', '抚顺县', '21', '辽宁省', '2104', '抚顺市', '210421', '抚顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210422', '2104', '00,21,2104', '新宾满族自治县', '21', '辽宁省', '2104', '抚顺市', '210422', '新宾满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210423', '2104', '00,21,2104', '清原满族自治县', '21', '辽宁省', '2104', '抚顺市', '210423', '清原满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2105', '21', '00,21', '本溪市', '21', '辽宁省', '2105', '本溪市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210502', '2105', '00,21,2105', '平山区', '21', '辽宁省', '2105', '本溪市', '210502', '平山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210503', '2105', '00,21,2105', '溪湖区', '21', '辽宁省', '2105', '本溪市', '210503', '溪湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210504', '2105', '00,21,2105', '明山区', '21', '辽宁省', '2105', '本溪市', '210504', '明山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210505', '2105', '00,21,2105', '南芬区', '21', '辽宁省', '2105', '本溪市', '210505', '南芬区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210521', '2105', '00,21,2105', '本溪满族自治县', '21', '辽宁省', '2105', '本溪市', '210521', '本溪满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210522', '2105', '00,21,2105', '桓仁满族自治县', '21', '辽宁省', '2105', '本溪市', '210522', '桓仁满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2106', '21', '00,21', '丹东市', '21', '辽宁省', '2106', '丹东市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210602', '2106', '00,21,2106', '元宝区', '21', '辽宁省', '2106', '丹东市', '210602', '元宝区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210603', '2106', '00,21,2106', '振兴区', '21', '辽宁省', '2106', '丹东市', '210603', '振兴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210604', '2106', '00,21,2106', '振安区', '21', '辽宁省', '2106', '丹东市', '210604', '振安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210624', '2106', '00,21,2106', '宽甸满族自治县', '21', '辽宁省', '2106', '丹东市', '210624', '宽甸满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210681', '2106', '00,21,2106', '东港市', '21', '辽宁省', '2106', '丹东市', '210681', '东港市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210682', '2106', '00,21,2106', '凤城市', '21', '辽宁省', '2106', '丹东市', '210682', '凤城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2107', '21', '00,21', '锦州市', '21', '辽宁省', '2107', '锦州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210702', '2107', '00,21,2107', '古塔区', '21', '辽宁省', '2107', '锦州市', '210702', '古塔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210703', '2107', '00,21,2107', '凌河区', '21', '辽宁省', '2107', '锦州市', '210703', '凌河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210711', '2107', '00,21,2107', '太和区', '21', '辽宁省', '2107', '锦州市', '210711', '太和区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210726', '2107', '00,21,2107', '黑山县', '21', '辽宁省', '2107', '锦州市', '210726', '黑山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210727', '2107', '00,21,2107', '义县', '21', '辽宁省', '2107', '锦州市', '210727', '义县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210781', '2107', '00,21,2107', '凌海市', '21', '辽宁省', '2107', '锦州市', '210781', '凌海市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210782', '2107', '00,21,2107', '北镇市', '21', '辽宁省', '2107', '锦州市', '210782', '北镇市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2108', '21', '00,21', '营口市', '21', '辽宁省', '2108', '营口市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210802', '2108', '00,21,2108', '站前区', '21', '辽宁省', '2108', '营口市', '210802', '站前区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210803', '2108', '00,21,2108', '西市区', '21', '辽宁省', '2108', '营口市', '210803', '西市区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210804', '2108', '00,21,2108', '鲅鱼圈区', '21', '辽宁省', '2108', '营口市', '210804', '鲅鱼圈区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210811', '2108', '00,21,2108', '老边区', '21', '辽宁省', '2108', '营口市', '210811', '老边区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210881', '2108', '00,21,2108', '盖州市', '21', '辽宁省', '2108', '营口市', '210881', '盖州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210882', '2108', '00,21,2108', '大石桥市', '21', '辽宁省', '2108', '营口市', '210882', '大石桥市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2109', '21', '00,21', '阜新市', '21', '辽宁省', '2109', '阜新市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210902', '2109', '00,21,2109', '海州区', '21', '辽宁省', '2109', '阜新市', '210902', '海州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210903', '2109', '00,21,2109', '新邱区', '21', '辽宁省', '2109', '阜新市', '210903', '新邱区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210904', '2109', '00,21,2109', '太平区', '21', '辽宁省', '2109', '阜新市', '210904', '太平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210905', '2109', '00,21,2109', '清河门区', '21', '辽宁省', '2109', '阜新市', '210905', '清河门区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210911', '2109', '00,21,2109', '细河区', '21', '辽宁省', '2109', '阜新市', '210911', '细河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210921', '2109', '00,21,2109', '阜新蒙古族自治县', '21', '辽宁省', '2109', '阜新市', '210921', '阜新蒙古族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210922', '2109', '00,21,2109', '彰武县', '21', '辽宁省', '2109', '阜新市', '210922', '彰武县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2110', '21', '00,21', '辽阳市', '21', '辽宁省', '2110', '辽阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('211002', '2110', '00,21,2110', '白塔区', '21', '辽宁省', '2110', '辽阳市', '211002', '白塔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211003', '2110', '00,21,2110', '文圣区', '21', '辽宁省', '2110', '辽阳市', '211003', '文圣区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211004', '2110', '00,21,2110', '宏伟区', '21', '辽宁省', '2110', '辽阳市', '211004', '宏伟区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211005', '2110', '00,21,2110', '弓长岭区', '21', '辽宁省', '2110', '辽阳市', '211005', '弓长岭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211011', '2110', '00,21,2110', '太子河区', '21', '辽宁省', '2110', '辽阳市', '211011', '太子河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211021', '2110', '00,21,2110', '辽阳县', '21', '辽宁省', '2110', '辽阳市', '211021', '辽阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211081', '2110', '00,21,2110', '灯塔市', '21', '辽宁省', '2110', '辽阳市', '211081', '灯塔市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2111', '21', '00,21', '盘锦市', '21', '辽宁省', '2111', '盘锦市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('211102', '2111', '00,21,2111', '双台子区', '21', '辽宁省', '2111', '盘锦市', '211102', '双台子区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211103', '2111', '00,21,2111', '兴隆台区', '21', '辽宁省', '2111', '盘锦市', '211103', '兴隆台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211104', '2111', '00,21,2111', '大洼区', '21', '辽宁省', '2111', '盘锦市', '211104', '大洼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211122', '2111', '00,21,2111', '盘山县', '21', '辽宁省', '2111', '盘锦市', '211122', '盘山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2112', '21', '00,21', '铁岭市', '21', '辽宁省', '2112', '铁岭市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('211202', '2112', '00,21,2112', '银州区', '21', '辽宁省', '2112', '铁岭市', '211202', '银州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211204', '2112', '00,21,2112', '清河区', '21', '辽宁省', '2112', '铁岭市', '211204', '清河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211221', '2112', '00,21,2112', '铁岭县', '21', '辽宁省', '2112', '铁岭市', '211221', '铁岭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211223', '2112', '00,21,2112', '西丰县', '21', '辽宁省', '2112', '铁岭市', '211223', '西丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211224', '2112', '00,21,2112', '昌图县', '21', '辽宁省', '2112', '铁岭市', '211224', '昌图县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211281', '2112', '00,21,2112', '调兵山市', '21', '辽宁省', '2112', '铁岭市', '211281', '调兵山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211282', '2112', '00,21,2112', '开原市', '21', '辽宁省', '2112', '铁岭市', '211282', '开原市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2113', '21', '00,21', '朝阳市', '21', '辽宁省', '2113', '朝阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('211302', '2113', '00,21,2113', '双塔区', '21', '辽宁省', '2113', '朝阳市', '211302', '双塔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211303', '2113', '00,21,2113', '龙城区', '21', '辽宁省', '2113', '朝阳市', '211303', '龙城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211321', '2113', '00,21,2113', '朝阳县', '21', '辽宁省', '2113', '朝阳市', '211321', '朝阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211322', '2113', '00,21,2113', '建平县', '21', '辽宁省', '2113', '朝阳市', '211322', '建平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211324', '2113', '00,21,2113', '喀喇沁左翼蒙古族自治县', '21', '辽宁省', '2113', '朝阳市', '211324', '喀喇沁左翼蒙古族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211381', '2113', '00,21,2113', '北票市', '21', '辽宁省', '2113', '朝阳市', '211381', '北票市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211382', '2113', '00,21,2113', '凌源市', '21', '辽宁省', '2113', '朝阳市', '211382', '凌源市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2114', '21', '00,21', '葫芦岛市', '21', '辽宁省', '2114', '葫芦岛市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('211402', '2114', '00,21,2114', '连山区', '21', '辽宁省', '2114', '葫芦岛市', '211402', '连山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211403', '2114', '00,21,2114', '龙港区', '21', '辽宁省', '2114', '葫芦岛市', '211403', '龙港区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211404', '2114', '00,21,2114', '南票区', '21', '辽宁省', '2114', '葫芦岛市', '211404', '南票区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211422', '2114', '00,21,2114', '建昌县', '21', '辽宁省', '2114', '葫芦岛市', '211422', '建昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211481', '2114', '00,21,2114', '兴城市', '21', '辽宁省', '2114', '葫芦岛市', '211481', '兴城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('22', '00', '00', '吉林省', '22', '吉林省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('2201', '22', '00,22', '长春市', '22', '吉林省', '2201', '长春市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220102', '2201', '00,22,2201', '南关区', '22', '吉林省', '2201', '长春市', '220102', '南关区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220103', '2201', '00,22,2201', '宽城区', '22', '吉林省', '2201', '长春市', '220103', '宽城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220104', '2201', '00,22,2201', '朝阳区', '22', '吉林省', '2201', '长春市', '220104', '朝阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220105', '2201', '00,22,2201', '二道区', '22', '吉林省', '2201', '长春市', '220105', '二道区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220106', '2201', '00,22,2201', '绿园区', '22', '吉林省', '2201', '长春市', '220106', '绿园区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220112', '2201', '00,22,2201', '双阳区', '22', '吉林省', '2201', '长春市', '220112', '双阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220113', '2201', '00,22,2201', '九台区', '22', '吉林省', '2201', '长春市', '220113', '九台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220122', '2201', '00,22,2201', '农安县', '22', '吉林省', '2201', '长春市', '220122', '农安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220182', '2201', '00,22,2201', '榆树市', '22', '吉林省', '2201', '长春市', '220182', '榆树市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220183', '2201', '00,22,2201', '德惠市', '22', '吉林省', '2201', '长春市', '220183', '德惠市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2202', '22', '00,22', '吉林市', '22', '吉林省', '2202', '吉林市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220202', '2202', '00,22,2202', '昌邑区', '22', '吉林省', '2202', '吉林市', '220202', '昌邑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220203', '2202', '00,22,2202', '龙潭区', '22', '吉林省', '2202', '吉林市', '220203', '龙潭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220204', '2202', '00,22,2202', '船营区', '22', '吉林省', '2202', '吉林市', '220204', '船营区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220211', '2202', '00,22,2202', '丰满区', '22', '吉林省', '2202', '吉林市', '220211', '丰满区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220221', '2202', '00,22,2202', '永吉县', '22', '吉林省', '2202', '吉林市', '220221', '永吉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220281', '2202', '00,22,2202', '蛟河市', '22', '吉林省', '2202', '吉林市', '220281', '蛟河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220282', '2202', '00,22,2202', '桦甸市', '22', '吉林省', '2202', '吉林市', '220282', '桦甸市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220283', '2202', '00,22,2202', '舒兰市', '22', '吉林省', '2202', '吉林市', '220283', '舒兰市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220284', '2202', '00,22,2202', '磐石市', '22', '吉林省', '2202', '吉林市', '220284', '磐石市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2203', '22', '00,22', '四平市', '22', '吉林省', '2203', '四平市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220302', '2203', '00,22,2203', '铁西区', '22', '吉林省', '2203', '四平市', '220302', '铁西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220303', '2203', '00,22,2203', '铁东区', '22', '吉林省', '2203', '四平市', '220303', '铁东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220322', '2203', '00,22,2203', '梨树县', '22', '吉林省', '2203', '四平市', '220322', '梨树县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220323', '2203', '00,22,2203', '伊通满族自治县', '22', '吉林省', '2203', '四平市', '220323', '伊通满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220381', '2203', '00,22,2203', '公主岭市', '22', '吉林省', '2203', '四平市', '220381', '公主岭市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220382', '2203', '00,22,2203', '双辽市', '22', '吉林省', '2203', '四平市', '220382', '双辽市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2204', '22', '00,22', '辽源市', '22', '吉林省', '2204', '辽源市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220402', '2204', '00,22,2204', '龙山区', '22', '吉林省', '2204', '辽源市', '220402', '龙山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220403', '2204', '00,22,2204', '西安区', '22', '吉林省', '2204', '辽源市', '220403', '西安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220421', '2204', '00,22,2204', '东丰县', '22', '吉林省', '2204', '辽源市', '220421', '东丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220422', '2204', '00,22,2204', '东辽县', '22', '吉林省', '2204', '辽源市', '220422', '东辽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2205', '22', '00,22', '通化市', '22', '吉林省', '2205', '通化市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220502', '2205', '00,22,2205', '东昌区', '22', '吉林省', '2205', '通化市', '220502', '东昌区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220503', '2205', '00,22,2205', '二道江区', '22', '吉林省', '2205', '通化市', '220503', '二道江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220521', '2205', '00,22,2205', '通化县', '22', '吉林省', '2205', '通化市', '220521', '通化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220523', '2205', '00,22,2205', '辉南县', '22', '吉林省', '2205', '通化市', '220523', '辉南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220524', '2205', '00,22,2205', '柳河县', '22', '吉林省', '2205', '通化市', '220524', '柳河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220581', '2205', '00,22,2205', '梅河口市', '22', '吉林省', '2205', '通化市', '220581', '梅河口市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220582', '2205', '00,22,2205', '集安市', '22', '吉林省', '2205', '通化市', '220582', '集安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2206', '22', '00,22', '白山市', '22', '吉林省', '2206', '白山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220602', '2206', '00,22,2206', '浑江区', '22', '吉林省', '2206', '白山市', '220602', '浑江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220605', '2206', '00,22,2206', '江源区', '22', '吉林省', '2206', '白山市', '220605', '江源区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220621', '2206', '00,22,2206', '抚松县', '22', '吉林省', '2206', '白山市', '220621', '抚松县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220622', '2206', '00,22,2206', '靖宇县', '22', '吉林省', '2206', '白山市', '220622', '靖宇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220623', '2206', '00,22,2206', '长白朝鲜族自治县', '22', '吉林省', '2206', '白山市', '220623', '长白朝鲜族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220681', '2206', '00,22,2206', '临江市', '22', '吉林省', '2206', '白山市', '220681', '临江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2207', '22', '00,22', '松原市', '22', '吉林省', '2207', '松原市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220702', '2207', '00,22,2207', '宁江区', '22', '吉林省', '2207', '松原市', '220702', '宁江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220721', '2207', '00,22,2207', '前郭尔罗斯蒙古族自治县', '22', '吉林省', '2207', '松原市', '220721', '前郭尔罗斯蒙古族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220722', '2207', '00,22,2207', '长岭县', '22', '吉林省', '2207', '松原市', '220722', '长岭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220723', '2207', '00,22,2207', '乾安县', '22', '吉林省', '2207', '松原市', '220723', '乾安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220781', '2207', '00,22,2207', '扶余市', '22', '吉林省', '2207', '松原市', '220781', '扶余市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2208', '22', '00,22', '白城市', '22', '吉林省', '2208', '白城市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220802', '2208', '00,22,2208', '洮北区', '22', '吉林省', '2208', '白城市', '220802', '洮北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220821', '2208', '00,22,2208', '镇赉县', '22', '吉林省', '2208', '白城市', '220821', '镇赉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220822', '2208', '00,22,2208', '通榆县', '22', '吉林省', '2208', '白城市', '220822', '通榆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220881', '2208', '00,22,2208', '洮南市', '22', '吉林省', '2208', '白城市', '220881', '洮南市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220882', '2208', '00,22,2208', '大安市', '22', '吉林省', '2208', '白城市', '220882', '大安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2224', '22', '00,22', '延边朝鲜族自治州', '22', '吉林省', '2224', '延边朝鲜族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('222401', '2224', '00,22,2224', '延吉市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222401', '延吉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('222402', '2224', '00,22,2224', '图们市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222402', '图们市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('222403', '2224', '00,22,2224', '敦化市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222403', '敦化市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('222404', '2224', '00,22,2224', '珲春市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222404', '珲春市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('222405', '2224', '00,22,2224', '龙井市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222405', '龙井市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('222406', '2224', '00,22,2224', '和龙市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222406', '和龙市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('222424', '2224', '00,22,2224', '汪清县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222424', '汪清县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('222426', '2224', '00,22,2224', '安图县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222426', '安图县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('23', '00', '00', '黑龙江省', '23', '黑龙江省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('2301', '23', '00,23', '哈尔滨市', '23', '黑龙江省', '2301', '哈尔滨市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230102', '2301', '00,23,2301', '道里区', '23', '黑龙江省', '2301', '哈尔滨市', '230102', '道里区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230103', '2301', '00,23,2301', '南岗区', '23', '黑龙江省', '2301', '哈尔滨市', '230103', '南岗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230104', '2301', '00,23,2301', '道外区', '23', '黑龙江省', '2301', '哈尔滨市', '230104', '道外区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230108', '2301', '00,23,2301', '平房区', '23', '黑龙江省', '2301', '哈尔滨市', '230108', '平房区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230109', '2301', '00,23,2301', '松北区', '23', '黑龙江省', '2301', '哈尔滨市', '230109', '松北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230110', '2301', '00,23,2301', '香坊区', '23', '黑龙江省', '2301', '哈尔滨市', '230110', '香坊区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230111', '2301', '00,23,2301', '呼兰区', '23', '黑龙江省', '2301', '哈尔滨市', '230111', '呼兰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230112', '2301', '00,23,2301', '阿城区', '23', '黑龙江省', '2301', '哈尔滨市', '230112', '阿城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230113', '2301', '00,23,2301', '双城区', '23', '黑龙江省', '2301', '哈尔滨市', '230113', '双城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230123', '2301', '00,23,2301', '依兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230123', '依兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230124', '2301', '00,23,2301', '方正县', '23', '黑龙江省', '2301', '哈尔滨市', '230124', '方正县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230125', '2301', '00,23,2301', '宾县', '23', '黑龙江省', '2301', '哈尔滨市', '230125', '宾县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230126', '2301', '00,23,2301', '巴彦县', '23', '黑龙江省', '2301', '哈尔滨市', '230126', '巴彦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230127', '2301', '00,23,2301', '木兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230127', '木兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230128', '2301', '00,23,2301', '通河县', '23', '黑龙江省', '2301', '哈尔滨市', '230128', '通河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230129', '2301', '00,23,2301', '延寿县', '23', '黑龙江省', '2301', '哈尔滨市', '230129', '延寿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230183', '2301', '00,23,2301', '尚志市', '23', '黑龙江省', '2301', '哈尔滨市', '230183', '尚志市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230184', '2301', '00,23,2301', '五常市', '23', '黑龙江省', '2301', '哈尔滨市', '230184', '五常市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2302', '23', '00,23', '齐齐哈尔市', '23', '黑龙江省', '2302', '齐齐哈尔市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230202', '2302', '00,23,2302', '龙沙区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230202', '龙沙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230203', '2302', '00,23,2302', '建华区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230203', '建华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230204', '2302', '00,23,2302', '铁锋区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230204', '铁锋区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230205', '2302', '00,23,2302', '昂昂溪区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230205', '昂昂溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230206', '2302', '00,23,2302', '富拉尔基区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230206', '富拉尔基区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230207', '2302', '00,23,2302', '碾子山区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230207', '碾子山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230208', '2302', '00,23,2302', '梅里斯达斡尔族区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230208', '梅里斯达斡尔族区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230221', '2302', '00,23,2302', '龙江县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230221', '龙江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230223', '2302', '00,23,2302', '依安县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230223', '依安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230224', '2302', '00,23,2302', '泰来县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230224', '泰来县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230225', '2302', '00,23,2302', '甘南县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230225', '甘南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230227', '2302', '00,23,2302', '富裕县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230227', '富裕县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230229', '2302', '00,23,2302', '克山县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230229', '克山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230230', '2302', '00,23,2302', '克东县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230230', '克东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230231', '2302', '00,23,2302', '拜泉县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230231', '拜泉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230281', '2302', '00,23,2302', '讷河市', '23', '黑龙江省', '2302', '齐齐哈尔市', '230281', '讷河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2303', '23', '00,23', '鸡西市', '23', '黑龙江省', '2303', '鸡西市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230302', '2303', '00,23,2303', '鸡冠区', '23', '黑龙江省', '2303', '鸡西市', '230302', '鸡冠区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230303', '2303', '00,23,2303', '恒山区', '23', '黑龙江省', '2303', '鸡西市', '230303', '恒山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230304', '2303', '00,23,2303', '滴道区', '23', '黑龙江省', '2303', '鸡西市', '230304', '滴道区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230305', '2303', '00,23,2303', '梨树区', '23', '黑龙江省', '2303', '鸡西市', '230305', '梨树区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230306', '2303', '00,23,2303', '城子河区', '23', '黑龙江省', '2303', '鸡西市', '230306', '城子河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230307', '2303', '00,23,2303', '麻山区', '23', '黑龙江省', '2303', '鸡西市', '230307', '麻山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230321', '2303', '00,23,2303', '鸡东县', '23', '黑龙江省', '2303', '鸡西市', '230321', '鸡东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230381', '2303', '00,23,2303', '虎林市', '23', '黑龙江省', '2303', '鸡西市', '230381', '虎林市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230382', '2303', '00,23,2303', '密山市', '23', '黑龙江省', '2303', '鸡西市', '230382', '密山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2304', '23', '00,23', '鹤岗市', '23', '黑龙江省', '2304', '鹤岗市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230402', '2304', '00,23,2304', '向阳区', '23', '黑龙江省', '2304', '鹤岗市', '230402', '向阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230403', '2304', '00,23,2304', '工农区', '23', '黑龙江省', '2304', '鹤岗市', '230403', '工农区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230404', '2304', '00,23,2304', '南山区', '23', '黑龙江省', '2304', '鹤岗市', '230404', '南山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230405', '2304', '00,23,2304', '兴安区', '23', '黑龙江省', '2304', '鹤岗市', '230405', '兴安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230406', '2304', '00,23,2304', '东山区', '23', '黑龙江省', '2304', '鹤岗市', '230406', '东山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230407', '2304', '00,23,2304', '兴山区', '23', '黑龙江省', '2304', '鹤岗市', '230407', '兴山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230421', '2304', '00,23,2304', '萝北县', '23', '黑龙江省', '2304', '鹤岗市', '230421', '萝北县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230422', '2304', '00,23,2304', '绥滨县', '23', '黑龙江省', '2304', '鹤岗市', '230422', '绥滨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2305', '23', '00,23', '双鸭山市', '23', '黑龙江省', '2305', '双鸭山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230502', '2305', '00,23,2305', '尖山区', '23', '黑龙江省', '2305', '双鸭山市', '230502', '尖山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230503', '2305', '00,23,2305', '岭东区', '23', '黑龙江省', '2305', '双鸭山市', '230503', '岭东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230505', '2305', '00,23,2305', '四方台区', '23', '黑龙江省', '2305', '双鸭山市', '230505', '四方台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230506', '2305', '00,23,2305', '宝山区', '23', '黑龙江省', '2305', '双鸭山市', '230506', '宝山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230521', '2305', '00,23,2305', '集贤县', '23', '黑龙江省', '2305', '双鸭山市', '230521', '集贤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230522', '2305', '00,23,2305', '友谊县', '23', '黑龙江省', '2305', '双鸭山市', '230522', '友谊县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230523', '2305', '00,23,2305', '宝清县', '23', '黑龙江省', '2305', '双鸭山市', '230523', '宝清县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230524', '2305', '00,23,2305', '饶河县', '23', '黑龙江省', '2305', '双鸭山市', '230524', '饶河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2306', '23', '00,23', '大庆市', '23', '黑龙江省', '2306', '大庆市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230602', '2306', '00,23,2306', '萨尔图区', '23', '黑龙江省', '2306', '大庆市', '230602', '萨尔图区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230603', '2306', '00,23,2306', '龙凤区', '23', '黑龙江省', '2306', '大庆市', '230603', '龙凤区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230604', '2306', '00,23,2306', '让胡路区', '23', '黑龙江省', '2306', '大庆市', '230604', '让胡路区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230605', '2306', '00,23,2306', '红岗区', '23', '黑龙江省', '2306', '大庆市', '230605', '红岗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230606', '2306', '00,23,2306', '大同区', '23', '黑龙江省', '2306', '大庆市', '230606', '大同区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230621', '2306', '00,23,2306', '肇州县', '23', '黑龙江省', '2306', '大庆市', '230621', '肇州县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230622', '2306', '00,23,2306', '肇源县', '23', '黑龙江省', '2306', '大庆市', '230622', '肇源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230623', '2306', '00,23,2306', '林甸县', '23', '黑龙江省', '2306', '大庆市', '230623', '林甸县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230624', '2306', '00,23,2306', '杜尔伯特蒙古族自治县', '23', '黑龙江省', '2306', '大庆市', '230624', '杜尔伯特蒙古族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2307', '23', '00,23', '伊春市', '23', '黑龙江省', '2307', '伊春市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230717', '2307', '00,23,2307', '伊美区', '23', '黑龙江省', '2307', '伊春市', '230717', '伊美区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230718', '2307', '00,23,2307', '乌翠区', '23', '黑龙江省', '2307', '伊春市', '230718', '乌翠区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230719', '2307', '00,23,2307', '友好区', '23', '黑龙江省', '2307', '伊春市', '230719', '友好区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230722', '2307', '00,23,2307', '嘉荫县', '23', '黑龙江省', '2307', '伊春市', '230722', '嘉荫县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230723', '2307', '00,23,2307', '汤旺县', '23', '黑龙江省', '2307', '伊春市', '230723', '汤旺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230724', '2307', '00,23,2307', '丰林县', '23', '黑龙江省', '2307', '伊春市', '230724', '丰林县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230725', '2307', '00,23,2307', '大箐山县', '23', '黑龙江省', '2307', '伊春市', '230725', '大箐山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230726', '2307', '00,23,2307', '南岔县', '23', '黑龙江省', '2307', '伊春市', '230726', '南岔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230751', '2307', '00,23,2307', '金林区', '23', '黑龙江省', '2307', '伊春市', '230751', '金林区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230781', '2307', '00,23,2307', '铁力市', '23', '黑龙江省', '2307', '伊春市', '230781', '铁力市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2308', '23', '00,23', '佳木斯市', '23', '黑龙江省', '2308', '佳木斯市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230803', '2308', '00,23,2308', '向阳区', '23', '黑龙江省', '2308', '佳木斯市', '230803', '向阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230804', '2308', '00,23,2308', '前进区', '23', '黑龙江省', '2308', '佳木斯市', '230804', '前进区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230805', '2308', '00,23,2308', '东风区', '23', '黑龙江省', '2308', '佳木斯市', '230805', '东风区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230811', '2308', '00,23,2308', '郊区', '23', '黑龙江省', '2308', '佳木斯市', '230811', '郊区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230822', '2308', '00,23,2308', '桦南县', '23', '黑龙江省', '2308', '佳木斯市', '230822', '桦南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230826', '2308', '00,23,2308', '桦川县', '23', '黑龙江省', '2308', '佳木斯市', '230826', '桦川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230828', '2308', '00,23,2308', '汤原县', '23', '黑龙江省', '2308', '佳木斯市', '230828', '汤原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230881', '2308', '00,23,2308', '同江市', '23', '黑龙江省', '2308', '佳木斯市', '230881', '同江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230882', '2308', '00,23,2308', '富锦市', '23', '黑龙江省', '2308', '佳木斯市', '230882', '富锦市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230883', '2308', '00,23,2308', '抚远市', '23', '黑龙江省', '2308', '佳木斯市', '230883', '抚远市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2309', '23', '00,23', '七台河市', '23', '黑龙江省', '2309', '七台河市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230902', '2309', '00,23,2309', '新兴区', '23', '黑龙江省', '2309', '七台河市', '230902', '新兴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230903', '2309', '00,23,2309', '桃山区', '23', '黑龙江省', '2309', '七台河市', '230903', '桃山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230904', '2309', '00,23,2309', '茄子河区', '23', '黑龙江省', '2309', '七台河市', '230904', '茄子河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230921', '2309', '00,23,2309', '勃利县', '23', '黑龙江省', '2309', '七台河市', '230921', '勃利县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2310', '23', '00,23', '牡丹江市', '23', '黑龙江省', '2310', '牡丹江市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('231002', '2310', '00,23,2310', '东安区', '23', '黑龙江省', '2310', '牡丹江市', '231002', '东安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231003', '2310', '00,23,2310', '阳明区', '23', '黑龙江省', '2310', '牡丹江市', '231003', '阳明区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231004', '2310', '00,23,2310', '爱民区', '23', '黑龙江省', '2310', '牡丹江市', '231004', '爱民区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231005', '2310', '00,23,2310', '西安区', '23', '黑龙江省', '2310', '牡丹江市', '231005', '西安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231025', '2310', '00,23,2310', '林口县', '23', '黑龙江省', '2310', '牡丹江市', '231025', '林口县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231081', '2310', '00,23,2310', '绥芬河市', '23', '黑龙江省', '2310', '牡丹江市', '231081', '绥芬河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231083', '2310', '00,23,2310', '海林市', '23', '黑龙江省', '2310', '牡丹江市', '231083', '海林市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231084', '2310', '00,23,2310', '宁安市', '23', '黑龙江省', '2310', '牡丹江市', '231084', '宁安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231085', '2310', '00,23,2310', '穆棱市', '23', '黑龙江省', '2310', '牡丹江市', '231085', '穆棱市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231086', '2310', '00,23,2310', '东宁市', '23', '黑龙江省', '2310', '牡丹江市', '231086', '东宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2311', '23', '00,23', '黑河市', '23', '黑龙江省', '2311', '黑河市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('231102', '2311', '00,23,2311', '爱辉区', '23', '黑龙江省', '2311', '黑河市', '231102', '爱辉区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231123', '2311', '00,23,2311', '逊克县', '23', '黑龙江省', '2311', '黑河市', '231123', '逊克县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231124', '2311', '00,23,2311', '孙吴县', '23', '黑龙江省', '2311', '黑河市', '231124', '孙吴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231181', '2311', '00,23,2311', '北安市', '23', '黑龙江省', '2311', '黑河市', '231181', '北安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231182', '2311', '00,23,2311', '五大连池市', '23', '黑龙江省', '2311', '黑河市', '231182', '五大连池市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231183', '2311', '00,23,2311', '嫩江市', '23', '黑龙江省', '2311', '黑河市', '231183', '嫩江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2312', '23', '00,23', '绥化市', '23', '黑龙江省', '2312', '绥化市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('231202', '2312', '00,23,2312', '北林区', '23', '黑龙江省', '2312', '绥化市', '231202', '北林区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231221', '2312', '00,23,2312', '望奎县', '23', '黑龙江省', '2312', '绥化市', '231221', '望奎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231222', '2312', '00,23,2312', '兰西县', '23', '黑龙江省', '2312', '绥化市', '231222', '兰西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231223', '2312', '00,23,2312', '青冈县', '23', '黑龙江省', '2312', '绥化市', '231223', '青冈县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231224', '2312', '00,23,2312', '庆安县', '23', '黑龙江省', '2312', '绥化市', '231224', '庆安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231225', '2312', '00,23,2312', '明水县', '23', '黑龙江省', '2312', '绥化市', '231225', '明水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231226', '2312', '00,23,2312', '绥棱县', '23', '黑龙江省', '2312', '绥化市', '231226', '绥棱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231281', '2312', '00,23,2312', '安达市', '23', '黑龙江省', '2312', '绥化市', '231281', '安达市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231282', '2312', '00,23,2312', '肇东市', '23', '黑龙江省', '2312', '绥化市', '231282', '肇东市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231283', '2312', '00,23,2312', '海伦市', '23', '黑龙江省', '2312', '绥化市', '231283', '海伦市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2327', '23', '00,23', '大兴安岭地区', '23', '黑龙江省', '2327', '大兴安岭地区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('232701', '2327', '00,23,2327', '漠河市', '23', '黑龙江省', '2327', '大兴安岭地区', '232701', '漠河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('232721', '2327', '00,23,2327', '呼玛县', '23', '黑龙江省', '2327', '大兴安岭地区', '232721', '呼玛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('232722', '2327', '00,23,2327', '塔河县', '23', '黑龙江省', '2327', '大兴安岭地区', '232722', '塔河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('31', '00', '00', '上海市', '31', '上海市', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('3101', '31', '00,31', '上海市', '31', '上海市', '3101', '上海市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('310101', '3101', '00,31,3101', '黄浦区', '31', '上海市', '3101', '上海市', '310101', '黄浦区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310104', '3101', '00,31,3101', '徐汇区', '31', '上海市', '3101', '上海市', '310104', '徐汇区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310105', '3101', '00,31,3101', '长宁区', '31', '上海市', '3101', '上海市', '310105', '长宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310106', '3101', '00,31,3101', '静安区', '31', '上海市', '3101', '上海市', '310106', '静安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310107', '3101', '00,31,3101', '普陀区', '31', '上海市', '3101', '上海市', '310107', '普陀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310109', '3101', '00,31,3101', '虹口区', '31', '上海市', '3101', '上海市', '310109', '虹口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310110', '3101', '00,31,3101', '杨浦区', '31', '上海市', '3101', '上海市', '310110', '杨浦区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310112', '3101', '00,31,3101', '闵行区', '31', '上海市', '3101', '上海市', '310112', '闵行区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310113', '3101', '00,31,3101', '宝山区', '31', '上海市', '3101', '上海市', '310113', '宝山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310114', '3101', '00,31,3101', '嘉定区', '31', '上海市', '3101', '上海市', '310114', '嘉定区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310115', '3101', '00,31,3101', '浦东新区', '31', '上海市', '3101', '上海市', '310115', '浦东新区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310116', '3101', '00,31,3101', '金山区', '31', '上海市', '3101', '上海市', '310116', '金山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310117', '3101', '00,31,3101', '松江区', '31', '上海市', '3101', '上海市', '310117', '松江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310118', '3101', '00,31,3101', '青浦区', '31', '上海市', '3101', '上海市', '310118', '青浦区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310120', '3101', '00,31,3101', '奉贤区', '31', '上海市', '3101', '上海市', '310120', '奉贤区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310151', '3101', '00,31,3101', '崇明区', '31', '上海市', '3101', '上海市', '310151', '崇明区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('32', '00', '00', '江苏省', '32', '江苏省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('3201', '32', '00,32', '南京市', '32', '江苏省', '3201', '南京市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320102', '3201', '00,32,3201', '玄武区', '32', '江苏省', '3201', '南京市', '320102', '玄武区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320104', '3201', '00,32,3201', '秦淮区', '32', '江苏省', '3201', '南京市', '320104', '秦淮区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320105', '3201', '00,32,3201', '建邺区', '32', '江苏省', '3201', '南京市', '320105', '建邺区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320106', '3201', '00,32,3201', '鼓楼区', '32', '江苏省', '3201', '南京市', '320106', '鼓楼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320111', '3201', '00,32,3201', '浦口区', '32', '江苏省', '3201', '南京市', '320111', '浦口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320113', '3201', '00,32,3201', '栖霞区', '32', '江苏省', '3201', '南京市', '320113', '栖霞区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320114', '3201', '00,32,3201', '雨花台区', '32', '江苏省', '3201', '南京市', '320114', '雨花台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320115', '3201', '00,32,3201', '江宁区', '32', '江苏省', '3201', '南京市', '320115', '江宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320116', '3201', '00,32,3201', '六合区', '32', '江苏省', '3201', '南京市', '320116', '六合区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320117', '3201', '00,32,3201', '溧水区', '32', '江苏省', '3201', '南京市', '320117', '溧水区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320118', '3201', '00,32,3201', '高淳区', '32', '江苏省', '3201', '南京市', '320118', '高淳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3202', '32', '00,32', '无锡市', '32', '江苏省', '3202', '无锡市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320205', '3202', '00,32,3202', '锡山区', '32', '江苏省', '3202', '无锡市', '320205', '锡山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320206', '3202', '00,32,3202', '惠山区', '32', '江苏省', '3202', '无锡市', '320206', '惠山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320211', '3202', '00,32,3202', '滨湖区', '32', '江苏省', '3202', '无锡市', '320211', '滨湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320213', '3202', '00,32,3202', '梁溪区', '32', '江苏省', '3202', '无锡市', '320213', '梁溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320214', '3202', '00,32,3202', '新吴区', '32', '江苏省', '3202', '无锡市', '320214', '新吴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320281', '3202', '00,32,3202', '江阴市', '32', '江苏省', '3202', '无锡市', '320281', '江阴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320282', '3202', '00,32,3202', '宜兴市', '32', '江苏省', '3202', '无锡市', '320282', '宜兴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3203', '32', '00,32', '徐州市', '32', '江苏省', '3203', '徐州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320302', '3203', '00,32,3203', '鼓楼区', '32', '江苏省', '3203', '徐州市', '320302', '鼓楼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320303', '3203', '00,32,3203', '云龙区', '32', '江苏省', '3203', '徐州市', '320303', '云龙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320305', '3203', '00,32,3203', '贾汪区', '32', '江苏省', '3203', '徐州市', '320305', '贾汪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320311', '3203', '00,32,3203', '泉山区', '32', '江苏省', '3203', '徐州市', '320311', '泉山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320312', '3203', '00,32,3203', '铜山区', '32', '江苏省', '3203', '徐州市', '320312', '铜山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320321', '3203', '00,32,3203', '丰县', '32', '江苏省', '3203', '徐州市', '320321', '丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320322', '3203', '00,32,3203', '沛县', '32', '江苏省', '3203', '徐州市', '320322', '沛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320324', '3203', '00,32,3203', '睢宁县', '32', '江苏省', '3203', '徐州市', '320324', '睢宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320381', '3203', '00,32,3203', '新沂市', '32', '江苏省', '3203', '徐州市', '320381', '新沂市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320382', '3203', '00,32,3203', '邳州市', '32', '江苏省', '3203', '徐州市', '320382', '邳州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3204', '32', '00,32', '常州市', '32', '江苏省', '3204', '常州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320402', '3204', '00,32,3204', '天宁区', '32', '江苏省', '3204', '常州市', '320402', '天宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320404', '3204', '00,32,3204', '钟楼区', '32', '江苏省', '3204', '常州市', '320404', '钟楼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320411', '3204', '00,32,3204', '新北区', '32', '江苏省', '3204', '常州市', '320411', '新北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320412', '3204', '00,32,3204', '武进区', '32', '江苏省', '3204', '常州市', '320412', '武进区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320413', '3204', '00,32,3204', '金坛区', '32', '江苏省', '3204', '常州市', '320413', '金坛区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320481', '3204', '00,32,3204', '溧阳市', '32', '江苏省', '3204', '常州市', '320481', '溧阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3205', '32', '00,32', '苏州市', '32', '江苏省', '3205', '苏州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320505', '3205', '00,32,3205', '虎丘区', '32', '江苏省', '3205', '苏州市', '320505', '虎丘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320506', '3205', '00,32,3205', '吴中区', '32', '江苏省', '3205', '苏州市', '320506', '吴中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320507', '3205', '00,32,3205', '相城区', '32', '江苏省', '3205', '苏州市', '320507', '相城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320508', '3205', '00,32,3205', '姑苏区', '32', '江苏省', '3205', '苏州市', '320508', '姑苏区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320509', '3205', '00,32,3205', '吴江区', '32', '江苏省', '3205', '苏州市', '320509', '吴江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320581', '3205', '00,32,3205', '常熟市', '32', '江苏省', '3205', '苏州市', '320581', '常熟市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320582', '3205', '00,32,3205', '张家港市', '32', '江苏省', '3205', '苏州市', '320582', '张家港市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320583', '3205', '00,32,3205', '昆山市', '32', '江苏省', '3205', '苏州市', '320583', '昆山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320585', '3205', '00,32,3205', '太仓市', '32', '江苏省', '3205', '苏州市', '320585', '太仓市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3206', '32', '00,32', '南通市', '32', '江苏省', '3206', '南通市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320602', '3206', '00,32,3206', '崇川区', '32', '江苏省', '3206', '南通市', '320602', '崇川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320611', '3206', '00,32,3206', '港闸区', '32', '江苏省', '3206', '南通市', '320611', '港闸区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320612', '3206', '00,32,3206', '通州区', '32', '江苏省', '3206', '南通市', '320612', '通州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320623', '3206', '00,32,3206', '如东县', '32', '江苏省', '3206', '南通市', '320623', '如东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320681', '3206', '00,32,3206', '启东市', '32', '江苏省', '3206', '南通市', '320681', '启东市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320682', '3206', '00,32,3206', '如皋市', '32', '江苏省', '3206', '南通市', '320682', '如皋市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320684', '3206', '00,32,3206', '海门市', '32', '江苏省', '3206', '南通市', '320684', '海门市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320685', '3206', '00,32,3206', '海安市', '32', '江苏省', '3206', '南通市', '320685', '海安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3207', '32', '00,32', '连云港市', '32', '江苏省', '3207', '连云港市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320703', '3207', '00,32,3207', '连云区', '32', '江苏省', '3207', '连云港市', '320703', '连云区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320706', '3207', '00,32,3207', '海州区', '32', '江苏省', '3207', '连云港市', '320706', '海州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320707', '3207', '00,32,3207', '赣榆区', '32', '江苏省', '3207', '连云港市', '320707', '赣榆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320722', '3207', '00,32,3207', '东海县', '32', '江苏省', '3207', '连云港市', '320722', '东海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320723', '3207', '00,32,3207', '灌云县', '32', '江苏省', '3207', '连云港市', '320723', '灌云县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320724', '3207', '00,32,3207', '灌南县', '32', '江苏省', '3207', '连云港市', '320724', '灌南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3208', '32', '00,32', '淮安市', '32', '江苏省', '3208', '淮安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320803', '3208', '00,32,3208', '淮安区', '32', '江苏省', '3208', '淮安市', '320803', '淮安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320804', '3208', '00,32,3208', '淮阴区', '32', '江苏省', '3208', '淮安市', '320804', '淮阴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320812', '3208', '00,32,3208', '清江浦区', '32', '江苏省', '3208', '淮安市', '320812', '清江浦区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320813', '3208', '00,32,3208', '洪泽区', '32', '江苏省', '3208', '淮安市', '320813', '洪泽区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320826', '3208', '00,32,3208', '涟水县', '32', '江苏省', '3208', '淮安市', '320826', '涟水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320830', '3208', '00,32,3208', '盱眙县', '32', '江苏省', '3208', '淮安市', '320830', '盱眙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320831', '3208', '00,32,3208', '金湖县', '32', '江苏省', '3208', '淮安市', '320831', '金湖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3209', '32', '00,32', '盐城市', '32', '江苏省', '3209', '盐城市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320902', '3209', '00,32,3209', '亭湖区', '32', '江苏省', '3209', '盐城市', '320902', '亭湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320903', '3209', '00,32,3209', '盐都区', '32', '江苏省', '3209', '盐城市', '320903', '盐都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320904', '3209', '00,32,3209', '大丰区', '32', '江苏省', '3209', '盐城市', '320904', '大丰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320921', '3209', '00,32,3209', '响水县', '32', '江苏省', '3209', '盐城市', '320921', '响水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320922', '3209', '00,32,3209', '滨海县', '32', '江苏省', '3209', '盐城市', '320922', '滨海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320923', '3209', '00,32,3209', '阜宁县', '32', '江苏省', '3209', '盐城市', '320923', '阜宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320924', '3209', '00,32,3209', '射阳县', '32', '江苏省', '3209', '盐城市', '320924', '射阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320925', '3209', '00,32,3209', '建湖县', '32', '江苏省', '3209', '盐城市', '320925', '建湖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320981', '3209', '00,32,3209', '东台市', '32', '江苏省', '3209', '盐城市', '320981', '东台市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3210', '32', '00,32', '扬州市', '32', '江苏省', '3210', '扬州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('321002', '3210', '00,32,3210', '广陵区', '32', '江苏省', '3210', '扬州市', '321002', '广陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321003', '3210', '00,32,3210', '邗江区', '32', '江苏省', '3210', '扬州市', '321003', '邗江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321012', '3210', '00,32,3210', '江都区', '32', '江苏省', '3210', '扬州市', '321012', '江都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321023', '3210', '00,32,3210', '宝应县', '32', '江苏省', '3210', '扬州市', '321023', '宝应县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321081', '3210', '00,32,3210', '仪征市', '32', '江苏省', '3210', '扬州市', '321081', '仪征市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321084', '3210', '00,32,3210', '高邮市', '32', '江苏省', '3210', '扬州市', '321084', '高邮市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3211', '32', '00,32', '镇江市', '32', '江苏省', '3211', '镇江市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('321102', '3211', '00,32,3211', '京口区', '32', '江苏省', '3211', '镇江市', '321102', '京口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321111', '3211', '00,32,3211', '润州区', '32', '江苏省', '3211', '镇江市', '321111', '润州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321112', '3211', '00,32,3211', '丹徒区', '32', '江苏省', '3211', '镇江市', '321112', '丹徒区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321181', '3211', '00,32,3211', '丹阳市', '32', '江苏省', '3211', '镇江市', '321181', '丹阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321182', '3211', '00,32,3211', '扬中市', '32', '江苏省', '3211', '镇江市', '321182', '扬中市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321183', '3211', '00,32,3211', '句容市', '32', '江苏省', '3211', '镇江市', '321183', '句容市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3212', '32', '00,32', '泰州市', '32', '江苏省', '3212', '泰州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('321202', '3212', '00,32,3212', '海陵区', '32', '江苏省', '3212', '泰州市', '321202', '海陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321203', '3212', '00,32,3212', '高港区', '32', '江苏省', '3212', '泰州市', '321203', '高港区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321204', '3212', '00,32,3212', '姜堰区', '32', '江苏省', '3212', '泰州市', '321204', '姜堰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321281', '3212', '00,32,3212', '兴化市', '32', '江苏省', '3212', '泰州市', '321281', '兴化市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321282', '3212', '00,32,3212', '靖江市', '32', '江苏省', '3212', '泰州市', '321282', '靖江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321283', '3212', '00,32,3212', '泰兴市', '32', '江苏省', '3212', '泰州市', '321283', '泰兴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3213', '32', '00,32', '宿迁市', '32', '江苏省', '3213', '宿迁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('321302', '3213', '00,32,3213', '宿城区', '32', '江苏省', '3213', '宿迁市', '321302', '宿城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321311', '3213', '00,32,3213', '宿豫区', '32', '江苏省', '3213', '宿迁市', '321311', '宿豫区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321322', '3213', '00,32,3213', '沭阳县', '32', '江苏省', '3213', '宿迁市', '321322', '沭阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321323', '3213', '00,32,3213', '泗阳县', '32', '江苏省', '3213', '宿迁市', '321323', '泗阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321324', '3213', '00,32,3213', '泗洪县', '32', '江苏省', '3213', '宿迁市', '321324', '泗洪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('33', '00', '00', '浙江省', '33', '浙江省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('3301', '33', '00,33', '杭州市', '33', '浙江省', '3301', '杭州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330102', '3301', '00,33,3301', '上城区', '33', '浙江省', '3301', '杭州市', '330102', '上城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330103', '3301', '00,33,3301', '下城区', '33', '浙江省', '3301', '杭州市', '330103', '下城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330104', '3301', '00,33,3301', '江干区', '33', '浙江省', '3301', '杭州市', '330104', '江干区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330105', '3301', '00,33,3301', '拱墅区', '33', '浙江省', '3301', '杭州市', '330105', '拱墅区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330106', '3301', '00,33,3301', '西湖区', '33', '浙江省', '3301', '杭州市', '330106', '西湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330108', '3301', '00,33,3301', '滨江区', '33', '浙江省', '3301', '杭州市', '330108', '滨江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330109', '3301', '00,33,3301', '萧山区', '33', '浙江省', '3301', '杭州市', '330109', '萧山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330110', '3301', '00,33,3301', '余杭区', '33', '浙江省', '3301', '杭州市', '330110', '余杭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330111', '3301', '00,33,3301', '富阳区', '33', '浙江省', '3301', '杭州市', '330111', '富阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330112', '3301', '00,33,3301', '临安区', '33', '浙江省', '3301', '杭州市', '330112', '临安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330122', '3301', '00,33,3301', '桐庐县', '33', '浙江省', '3301', '杭州市', '330122', '桐庐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330127', '3301', '00,33,3301', '淳安县', '33', '浙江省', '3301', '杭州市', '330127', '淳安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330182', '3301', '00,33,3301', '建德市', '33', '浙江省', '3301', '杭州市', '330182', '建德市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3302', '33', '00,33', '宁波市', '33', '浙江省', '3302', '宁波市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330203', '3302', '00,33,3302', '海曙区', '33', '浙江省', '3302', '宁波市', '330203', '海曙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330205', '3302', '00,33,3302', '江北区', '33', '浙江省', '3302', '宁波市', '330205', '江北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330206', '3302', '00,33,3302', '北仑区', '33', '浙江省', '3302', '宁波市', '330206', '北仑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330211', '3302', '00,33,3302', '镇海区', '33', '浙江省', '3302', '宁波市', '330211', '镇海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330212', '3302', '00,33,3302', '鄞州区', '33', '浙江省', '3302', '宁波市', '330212', '鄞州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330213', '3302', '00,33,3302', '奉化区', '33', '浙江省', '3302', '宁波市', '330213', '奉化区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330225', '3302', '00,33,3302', '象山县', '33', '浙江省', '3302', '宁波市', '330225', '象山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330226', '3302', '00,33,3302', '宁海县', '33', '浙江省', '3302', '宁波市', '330226', '宁海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330281', '3302', '00,33,3302', '余姚市', '33', '浙江省', '3302', '宁波市', '330281', '余姚市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330282', '3302', '00,33,3302', '慈溪市', '33', '浙江省', '3302', '宁波市', '330282', '慈溪市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3303', '33', '00,33', '温州市', '33', '浙江省', '3303', '温州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330302', '3303', '00,33,3303', '鹿城区', '33', '浙江省', '3303', '温州市', '330302', '鹿城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330303', '3303', '00,33,3303', '龙湾区', '33', '浙江省', '3303', '温州市', '330303', '龙湾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330304', '3303', '00,33,3303', '瓯海区', '33', '浙江省', '3303', '温州市', '330304', '瓯海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330305', '3303', '00,33,3303', '洞头区', '33', '浙江省', '3303', '温州市', '330305', '洞头区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330324', '3303', '00,33,3303', '永嘉县', '33', '浙江省', '3303', '温州市', '330324', '永嘉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330326', '3303', '00,33,3303', '平阳县', '33', '浙江省', '3303', '温州市', '330326', '平阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330327', '3303', '00,33,3303', '苍南县', '33', '浙江省', '3303', '温州市', '330327', '苍南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330328', '3303', '00,33,3303', '文成县', '33', '浙江省', '3303', '温州市', '330328', '文成县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330329', '3303', '00,33,3303', '泰顺县', '33', '浙江省', '3303', '温州市', '330329', '泰顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330381', '3303', '00,33,3303', '瑞安市', '33', '浙江省', '3303', '温州市', '330381', '瑞安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330382', '3303', '00,33,3303', '乐清市', '33', '浙江省', '3303', '温州市', '330382', '乐清市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330383', '3303', '00,33,3303', '龙港市', '33', '浙江省', '3303', '温州市', '330383', '龙港市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3304', '33', '00,33', '嘉兴市', '33', '浙江省', '3304', '嘉兴市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330402', '3304', '00,33,3304', '南湖区', '33', '浙江省', '3304', '嘉兴市', '330402', '南湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330411', '3304', '00,33,3304', '秀洲区', '33', '浙江省', '3304', '嘉兴市', '330411', '秀洲区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330421', '3304', '00,33,3304', '嘉善县', '33', '浙江省', '3304', '嘉兴市', '330421', '嘉善县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330424', '3304', '00,33,3304', '海盐县', '33', '浙江省', '3304', '嘉兴市', '330424', '海盐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330481', '3304', '00,33,3304', '海宁市', '33', '浙江省', '3304', '嘉兴市', '330481', '海宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330482', '3304', '00,33,3304', '平湖市', '33', '浙江省', '3304', '嘉兴市', '330482', '平湖市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330483', '3304', '00,33,3304', '桐乡市', '33', '浙江省', '3304', '嘉兴市', '330483', '桐乡市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3305', '33', '00,33', '湖州市', '33', '浙江省', '3305', '湖州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330502', '3305', '00,33,3305', '吴兴区', '33', '浙江省', '3305', '湖州市', '330502', '吴兴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330503', '3305', '00,33,3305', '南浔区', '33', '浙江省', '3305', '湖州市', '330503', '南浔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330521', '3305', '00,33,3305', '德清县', '33', '浙江省', '3305', '湖州市', '330521', '德清县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330522', '3305', '00,33,3305', '长兴县', '33', '浙江省', '3305', '湖州市', '330522', '长兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330523', '3305', '00,33,3305', '安吉县', '33', '浙江省', '3305', '湖州市', '330523', '安吉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3306', '33', '00,33', '绍兴市', '33', '浙江省', '3306', '绍兴市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330602', '3306', '00,33,3306', '越城区', '33', '浙江省', '3306', '绍兴市', '330602', '越城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330603', '3306', '00,33,3306', '柯桥区', '33', '浙江省', '3306', '绍兴市', '330603', '柯桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330604', '3306', '00,33,3306', '上虞区', '33', '浙江省', '3306', '绍兴市', '330604', '上虞区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330624', '3306', '00,33,3306', '新昌县', '33', '浙江省', '3306', '绍兴市', '330624', '新昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330681', '3306', '00,33,3306', '诸暨市', '33', '浙江省', '3306', '绍兴市', '330681', '诸暨市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330683', '3306', '00,33,3306', '嵊州市', '33', '浙江省', '3306', '绍兴市', '330683', '嵊州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3307', '33', '00,33', '金华市', '33', '浙江省', '3307', '金华市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330702', '3307', '00,33,3307', '婺城区', '33', '浙江省', '3307', '金华市', '330702', '婺城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330703', '3307', '00,33,3307', '金东区', '33', '浙江省', '3307', '金华市', '330703', '金东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330723', '3307', '00,33,3307', '武义县', '33', '浙江省', '3307', '金华市', '330723', '武义县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330726', '3307', '00,33,3307', '浦江县', '33', '浙江省', '3307', '金华市', '330726', '浦江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330727', '3307', '00,33,3307', '磐安县', '33', '浙江省', '3307', '金华市', '330727', '磐安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330781', '3307', '00,33,3307', '兰溪市', '33', '浙江省', '3307', '金华市', '330781', '兰溪市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330782', '3307', '00,33,3307', '义乌市', '33', '浙江省', '3307', '金华市', '330782', '义乌市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330783', '3307', '00,33,3307', '东阳市', '33', '浙江省', '3307', '金华市', '330783', '东阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330784', '3307', '00,33,3307', '永康市', '33', '浙江省', '3307', '金华市', '330784', '永康市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3308', '33', '00,33', '衢州市', '33', '浙江省', '3308', '衢州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330802', '3308', '00,33,3308', '柯城区', '33', '浙江省', '3308', '衢州市', '330802', '柯城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330803', '3308', '00,33,3308', '衢江区', '33', '浙江省', '3308', '衢州市', '330803', '衢江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330822', '3308', '00,33,3308', '常山县', '33', '浙江省', '3308', '衢州市', '330822', '常山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330824', '3308', '00,33,3308', '开化县', '33', '浙江省', '3308', '衢州市', '330824', '开化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330825', '3308', '00,33,3308', '龙游县', '33', '浙江省', '3308', '衢州市', '330825', '龙游县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330881', '3308', '00,33,3308', '江山市', '33', '浙江省', '3308', '衢州市', '330881', '江山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3309', '33', '00,33', '舟山市', '33', '浙江省', '3309', '舟山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330902', '3309', '00,33,3309', '定海区', '33', '浙江省', '3309', '舟山市', '330902', '定海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330903', '3309', '00,33,3309', '普陀区', '33', '浙江省', '3309', '舟山市', '330903', '普陀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330921', '3309', '00,33,3309', '岱山县', '33', '浙江省', '3309', '舟山市', '330921', '岱山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330922', '3309', '00,33,3309', '嵊泗县', '33', '浙江省', '3309', '舟山市', '330922', '嵊泗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3310', '33', '00,33', '台州市', '33', '浙江省', '3310', '台州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('331002', '3310', '00,33,3310', '椒江区', '33', '浙江省', '3310', '台州市', '331002', '椒江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331003', '3310', '00,33,3310', '黄岩区', '33', '浙江省', '3310', '台州市', '331003', '黄岩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331004', '3310', '00,33,3310', '路桥区', '33', '浙江省', '3310', '台州市', '331004', '路桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331022', '3310', '00,33,3310', '三门县', '33', '浙江省', '3310', '台州市', '331022', '三门县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331023', '3310', '00,33,3310', '天台县', '33', '浙江省', '3310', '台州市', '331023', '天台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331024', '3310', '00,33,3310', '仙居县', '33', '浙江省', '3310', '台州市', '331024', '仙居县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331081', '3310', '00,33,3310', '温岭市', '33', '浙江省', '3310', '台州市', '331081', '温岭市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331082', '3310', '00,33,3310', '临海市', '33', '浙江省', '3310', '台州市', '331082', '临海市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331083', '3310', '00,33,3310', '玉环市', '33', '浙江省', '3310', '台州市', '331083', '玉环市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3311', '33', '00,33', '丽水市', '33', '浙江省', '3311', '丽水市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('331102', '3311', '00,33,3311', '莲都区', '33', '浙江省', '3311', '丽水市', '331102', '莲都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331121', '3311', '00,33,3311', '青田县', '33', '浙江省', '3311', '丽水市', '331121', '青田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331122', '3311', '00,33,3311', '缙云县', '33', '浙江省', '3311', '丽水市', '331122', '缙云县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331123', '3311', '00,33,3311', '遂昌县', '33', '浙江省', '3311', '丽水市', '331123', '遂昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331124', '3311', '00,33,3311', '松阳县', '33', '浙江省', '3311', '丽水市', '331124', '松阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331125', '3311', '00,33,3311', '云和县', '33', '浙江省', '3311', '丽水市', '331125', '云和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331126', '3311', '00,33,3311', '庆元县', '33', '浙江省', '3311', '丽水市', '331126', '庆元县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331127', '3311', '00,33,3311', '景宁畲族自治县', '33', '浙江省', '3311', '丽水市', '331127', '景宁畲族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331181', '3311', '00,33,3311', '龙泉市', '33', '浙江省', '3311', '丽水市', '331181', '龙泉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('34', '00', '00', '安徽省', '34', '安徽省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('3401', '34', '00,34', '合肥市', '34', '安徽省', '3401', '合肥市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('340102', '3401', '00,34,3401', '瑶海区', '34', '安徽省', '3401', '合肥市', '340102', '瑶海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340103', '3401', '00,34,3401', '庐阳区', '34', '安徽省', '3401', '合肥市', '340103', '庐阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340104', '3401', '00,34,3401', '蜀山区', '34', '安徽省', '3401', '合肥市', '340104', '蜀山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340111', '3401', '00,34,3401', '包河区', '34', '安徽省', '3401', '合肥市', '340111', '包河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340121', '3401', '00,34,3401', '长丰县', '34', '安徽省', '3401', '合肥市', '340121', '长丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340122', '3401', '00,34,3401', '肥东县', '34', '安徽省', '3401', '合肥市', '340122', '肥东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340123', '3401', '00,34,3401', '肥西县', '34', '安徽省', '3401', '合肥市', '340123', '肥西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340124', '3401', '00,34,3401', '庐江县', '34', '安徽省', '3401', '合肥市', '340124', '庐江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340181', '3401', '00,34,3401', '巢湖市', '34', '安徽省', '3401', '合肥市', '340181', '巢湖市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3402', '34', '00,34', '芜湖市', '34', '安徽省', '3402', '芜湖市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('340202', '3402', '00,34,3402', '镜湖区', '34', '安徽省', '3402', '芜湖市', '340202', '镜湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340203', '3402', '00,34,3402', '弋江区', '34', '安徽省', '3402', '芜湖市', '340203', '弋江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340207', '3402', '00,34,3402', '鸠江区', '34', '安徽省', '3402', '芜湖市', '340207', '鸠江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340208', '3402', '00,34,3402', '三山区', '34', '安徽省', '3402', '芜湖市', '340208', '三山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340221', '3402', '00,34,3402', '芜湖县', '34', '安徽省', '3402', '芜湖市', '340221', '芜湖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340222', '3402', '00,34,3402', '繁昌县', '34', '安徽省', '3402', '芜湖市', '340222', '繁昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340223', '3402', '00,34,3402', '南陵县', '34', '安徽省', '3402', '芜湖市', '340223', '南陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340281', '3402', '00,34,3402', '无为市', '34', '安徽省', '3402', '芜湖市', '340281', '无为市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340302', '3403', '00,34,3403', '龙子湖区', '34', '安徽省', '3403', '蚌埠市', '340302', '龙子湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340303', '3403', '00,34,3403', '蚌山区', '34', '安徽省', '3403', '蚌埠市', '340303', '蚌山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340304', '3403', '00,34,3403', '禹会区', '34', '安徽省', '3403', '蚌埠市', '340304', '禹会区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340311', '3403', '00,34,3403', '淮上区', '34', '安徽省', '3403', '蚌埠市', '340311', '淮上区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340321', '3403', '00,34,3403', '怀远县', '34', '安徽省', '3403', '蚌埠市', '340321', '怀远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340322', '3403', '00,34,3403', '五河县', '34', '安徽省', '3403', '蚌埠市', '340322', '五河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340323', '3403', '00,34,3403', '固镇县', '34', '安徽省', '3403', '蚌埠市', '340323', '固镇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3404', '34', '00,34', '淮南市', '34', '安徽省', '3404', '淮南市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('340402', '3404', '00,34,3404', '大通区', '34', '安徽省', '3404', '淮南市', '340402', '大通区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340403', '3404', '00,34,3404', '田家庵区', '34', '安徽省', '3404', '淮南市', '340403', '田家庵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340404', '3404', '00,34,3404', '谢家集区', '34', '安徽省', '3404', '淮南市', '340404', '谢家集区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340405', '3404', '00,34,3404', '八公山区', '34', '安徽省', '3404', '淮南市', '340405', '八公山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340406', '3404', '00,34,3404', '潘集区', '34', '安徽省', '3404', '淮南市', '340406', '潘集区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340421', '3404', '00,34,3404', '凤台县', '34', '安徽省', '3404', '淮南市', '340421', '凤台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340422', '3404', '00,34,3404', '寿县', '34', '安徽省', '3404', '淮南市', '340422', '寿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3405', '34', '00,34', '马鞍山市', '34', '安徽省', '3405', '马鞍山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('340503', '3405', '00,34,3405', '花山区', '34', '安徽省', '3405', '马鞍山市', '340503', '花山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340504', '3405', '00,34,3405', '雨山区', '34', '安徽省', '3405', '马鞍山市', '340504', '雨山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340506', '3405', '00,34,3405', '博望区', '34', '安徽省', '3405', '马鞍山市', '340506', '博望区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340521', '3405', '00,34,3405', '当涂县', '34', '安徽省', '3405', '马鞍山市', '340521', '当涂县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340522', '3405', '00,34,3405', '含山县', '34', '安徽省', '3405', '马鞍山市', '340522', '含山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340523', '3405', '00,34,3405', '和县', '34', '安徽省', '3405', '马鞍山市', '340523', '和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3406', '34', '00,34', '淮北市', '34', '安徽省', '3406', '淮北市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('340602', '3406', '00,34,3406', '杜集区', '34', '安徽省', '3406', '淮北市', '340602', '杜集区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340603', '3406', '00,34,3406', '相山区', '34', '安徽省', '3406', '淮北市', '340603', '相山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340604', '3406', '00,34,3406', '烈山区', '34', '安徽省', '3406', '淮北市', '340604', '烈山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340621', '3406', '00,34,3406', '濉溪县', '34', '安徽省', '3406', '淮北市', '340621', '濉溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3407', '34', '00,34', '铜陵市', '34', '安徽省', '3407', '铜陵市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('340705', '3407', '00,34,3407', '铜官区', '34', '安徽省', '3407', '铜陵市', '340705', '铜官区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340706', '3407', '00,34,3407', '义安区', '34', '安徽省', '3407', '铜陵市', '340706', '义安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340711', '3407', '00,34,3407', '郊区', '34', '安徽省', '3407', '铜陵市', '340711', '郊区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340722', '3407', '00,34,3407', '枞阳县', '34', '安徽省', '3407', '铜陵市', '340722', '枞阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3408', '34', '00,34', '安庆市', '34', '安徽省', '3408', '安庆市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('340802', '3408', '00,34,3408', '迎江区', '34', '安徽省', '3408', '安庆市', '340802', '迎江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340803', '3408', '00,34,3408', '大观区', '34', '安徽省', '3408', '安庆市', '340803', '大观区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340811', '3408', '00,34,3408', '宜秀区', '34', '安徽省', '3408', '安庆市', '340811', '宜秀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340822', '3408', '00,34,3408', '怀宁县', '34', '安徽省', '3408', '安庆市', '340822', '怀宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340825', '3408', '00,34,3408', '太湖县', '34', '安徽省', '3408', '安庆市', '340825', '太湖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340826', '3408', '00,34,3408', '宿松县', '34', '安徽省', '3408', '安庆市', '340826', '宿松县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340827', '3408', '00,34,3408', '望江县', '34', '安徽省', '3408', '安庆市', '340827', '望江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340828', '3408', '00,34,3408', '岳西县', '34', '安徽省', '3408', '安庆市', '340828', '岳西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340881', '3408', '00,34,3408', '桐城市', '34', '安徽省', '3408', '安庆市', '340881', '桐城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340882', '3408', '00,34,3408', '潜山市', '34', '安徽省', '3408', '安庆市', '340882', '潜山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3410', '34', '00,34', '黄山市', '34', '安徽省', '3410', '黄山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341002', '3410', '00,34,3410', '屯溪区', '34', '安徽省', '3410', '黄山市', '341002', '屯溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341003', '3410', '00,34,3410', '黄山区', '34', '安徽省', '3410', '黄山市', '341003', '黄山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341004', '3410', '00,34,3410', '徽州区', '34', '安徽省', '3410', '黄山市', '341004', '徽州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341021', '3410', '00,34,3410', '歙县', '34', '安徽省', '3410', '黄山市', '341021', '歙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341022', '3410', '00,34,3410', '休宁县', '34', '安徽省', '3410', '黄山市', '341022', '休宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341023', '3410', '00,34,3410', '黟县', '34', '安徽省', '3410', '黄山市', '341023', '黟县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341024', '3410', '00,34,3410', '祁门县', '34', '安徽省', '3410', '黄山市', '341024', '祁门县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3411', '34', '00,34', '滁州市', '34', '安徽省', '3411', '滁州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341102', '3411', '00,34,3411', '琅琊区', '34', '安徽省', '3411', '滁州市', '341102', '琅琊区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341103', '3411', '00,34,3411', '南谯区', '34', '安徽省', '3411', '滁州市', '341103', '南谯区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341122', '3411', '00,34,3411', '来安县', '34', '安徽省', '3411', '滁州市', '341122', '来安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341124', '3411', '00,34,3411', '全椒县', '34', '安徽省', '3411', '滁州市', '341124', '全椒县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341125', '3411', '00,34,3411', '定远县', '34', '安徽省', '3411', '滁州市', '341125', '定远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341126', '3411', '00,34,3411', '凤阳县', '34', '安徽省', '3411', '滁州市', '341126', '凤阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341181', '3411', '00,34,3411', '天长市', '34', '安徽省', '3411', '滁州市', '341181', '天长市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341182', '3411', '00,34,3411', '明光市', '34', '安徽省', '3411', '滁州市', '341182', '明光市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3412', '34', '00,34', '阜阳市', '34', '安徽省', '3412', '阜阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341202', '3412', '00,34,3412', '颍州区', '34', '安徽省', '3412', '阜阳市', '341202', '颍州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341203', '3412', '00,34,3412', '颍东区', '34', '安徽省', '3412', '阜阳市', '341203', '颍东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341204', '3412', '00,34,3412', '颍泉区', '34', '安徽省', '3412', '阜阳市', '341204', '颍泉区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341221', '3412', '00,34,3412', '临泉县', '34', '安徽省', '3412', '阜阳市', '341221', '临泉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341222', '3412', '00,34,3412', '太和县', '34', '安徽省', '3412', '阜阳市', '341222', '太和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341225', '3412', '00,34,3412', '阜南县', '34', '安徽省', '3412', '阜阳市', '341225', '阜南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341226', '3412', '00,34,3412', '颍上县', '34', '安徽省', '3412', '阜阳市', '341226', '颍上县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341282', '3412', '00,34,3412', '界首市', '34', '安徽省', '3412', '阜阳市', '341282', '界首市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3413', '34', '00,34', '宿州市', '34', '安徽省', '3413', '宿州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341302', '3413', '00,34,3413', '埇桥区', '34', '安徽省', '3413', '宿州市', '341302', '埇桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341321', '3413', '00,34,3413', '砀山县', '34', '安徽省', '3413', '宿州市', '341321', '砀山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341322', '3413', '00,34,3413', '萧县', '34', '安徽省', '3413', '宿州市', '341322', '萧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341323', '3413', '00,34,3413', '灵璧县', '34', '安徽省', '3413', '宿州市', '341323', '灵璧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341324', '3413', '00,34,3413', '泗县', '34', '安徽省', '3413', '宿州市', '341324', '泗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3415', '34', '00,34', '六安市', '34', '安徽省', '3415', '六安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341502', '3415', '00,34,3415', '金安区', '34', '安徽省', '3415', '六安市', '341502', '金安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341503', '3415', '00,34,3415', '裕安区', '34', '安徽省', '3415', '六安市', '341503', '裕安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341504', '3415', '00,34,3415', '叶集区', '34', '安徽省', '3415', '六安市', '341504', '叶集区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341522', '3415', '00,34,3415', '霍邱县', '34', '安徽省', '3415', '六安市', '341522', '霍邱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341523', '3415', '00,34,3415', '舒城县', '34', '安徽省', '3415', '六安市', '341523', '舒城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341524', '3415', '00,34,3415', '金寨县', '34', '安徽省', '3415', '六安市', '341524', '金寨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341525', '3415', '00,34,3415', '霍山县', '34', '安徽省', '3415', '六安市', '341525', '霍山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3416', '34', '00,34', '亳州市', '34', '安徽省', '3416', '亳州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341602', '3416', '00,34,3416', '谯城区', '34', '安徽省', '3416', '亳州市', '341602', '谯城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341621', '3416', '00,34,3416', '涡阳县', '34', '安徽省', '3416', '亳州市', '341621', '涡阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341622', '3416', '00,34,3416', '蒙城县', '34', '安徽省', '3416', '亳州市', '341622', '蒙城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341623', '3416', '00,34,3416', '利辛县', '34', '安徽省', '3416', '亳州市', '341623', '利辛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3417', '34', '00,34', '池州市', '34', '安徽省', '3417', '池州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341702', '3417', '00,34,3417', '贵池区', '34', '安徽省', '3417', '池州市', '341702', '贵池区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341721', '3417', '00,34,3417', '东至县', '34', '安徽省', '3417', '池州市', '341721', '东至县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341722', '3417', '00,34,3417', '石台县', '34', '安徽省', '3417', '池州市', '341722', '石台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341723', '3417', '00,34,3417', '青阳县', '34', '安徽省', '3417', '池州市', '341723', '青阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3418', '34', '00,34', '宣城市', '34', '安徽省', '3418', '宣城市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341802', '3418', '00,34,3418', '宣州区', '34', '安徽省', '3418', '宣城市', '341802', '宣州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341821', '3418', '00,34,3418', '郎溪县', '34', '安徽省', '3418', '宣城市', '341821', '郎溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341823', '3418', '00,34,3418', '泾县', '34', '安徽省', '3418', '宣城市', '341823', '泾县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341824', '3418', '00,34,3418', '绩溪县', '34', '安徽省', '3418', '宣城市', '341824', '绩溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341825', '3418', '00,34,3418', '旌德县', '34', '安徽省', '3418', '宣城市', '341825', '旌德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341881', '3418', '00,34,3418', '宁国市', '34', '安徽省', '3418', '宣城市', '341881', '宁国市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341882', '3418', '00,34,3418', '广德市', '34', '安徽省', '3418', '宣城市', '341882', '广德市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('35', '00', '00', '福建省', '35', '福建省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('3501', '35', '00,35', '福州市', '35', '福建省', '3501', '福州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350102', '3501', '00,35,3501', '鼓楼区', '35', '福建省', '3501', '福州市', '350102', '鼓楼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350103', '3501', '00,35,3501', '台江区', '35', '福建省', '3501', '福州市', '350103', '台江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350104', '3501', '00,35,3501', '仓山区', '35', '福建省', '3501', '福州市', '350104', '仓山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350105', '3501', '00,35,3501', '马尾区', '35', '福建省', '3501', '福州市', '350105', '马尾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350111', '3501', '00,35,3501', '晋安区', '35', '福建省', '3501', '福州市', '350111', '晋安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350112', '3501', '00,35,3501', '长乐区', '35', '福建省', '3501', '福州市', '350112', '长乐区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350121', '3501', '00,35,3501', '闽侯县', '35', '福建省', '3501', '福州市', '350121', '闽侯县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350122', '3501', '00,35,3501', '连江县', '35', '福建省', '3501', '福州市', '350122', '连江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350123', '3501', '00,35,3501', '罗源县', '35', '福建省', '3501', '福州市', '350123', '罗源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350124', '3501', '00,35,3501', '闽清县', '35', '福建省', '3501', '福州市', '350124', '闽清县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350125', '3501', '00,35,3501', '永泰县', '35', '福建省', '3501', '福州市', '350125', '永泰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350128', '3501', '00,35,3501', '平潭县', '35', '福建省', '3501', '福州市', '350128', '平潭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350181', '3501', '00,35,3501', '福清市', '35', '福建省', '3501', '福州市', '350181', '福清市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3502', '35', '00,35', '厦门市', '35', '福建省', '3502', '厦门市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350203', '3502', '00,35,3502', '思明区', '35', '福建省', '3502', '厦门市', '350203', '思明区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350205', '3502', '00,35,3502', '海沧区', '35', '福建省', '3502', '厦门市', '350205', '海沧区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350206', '3502', '00,35,3502', '湖里区', '35', '福建省', '3502', '厦门市', '350206', '湖里区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350211', '3502', '00,35,3502', '集美区', '35', '福建省', '3502', '厦门市', '350211', '集美区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350212', '3502', '00,35,3502', '同安区', '35', '福建省', '3502', '厦门市', '350212', '同安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350213', '3502', '00,35,3502', '翔安区', '35', '福建省', '3502', '厦门市', '350213', '翔安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3503', '35', '00,35', '莆田市', '35', '福建省', '3503', '莆田市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350302', '3503', '00,35,3503', '城厢区', '35', '福建省', '3503', '莆田市', '350302', '城厢区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350303', '3503', '00,35,3503', '涵江区', '35', '福建省', '3503', '莆田市', '350303', '涵江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350304', '3503', '00,35,3503', '荔城区', '35', '福建省', '3503', '莆田市', '350304', '荔城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350305', '3503', '00,35,3503', '秀屿区', '35', '福建省', '3503', '莆田市', '350305', '秀屿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350322', '3503', '00,35,3503', '仙游县', '35', '福建省', '3503', '莆田市', '350322', '仙游县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3504', '35', '00,35', '三明市', '35', '福建省', '3504', '三明市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350402', '3504', '00,35,3504', '梅列区', '35', '福建省', '3504', '三明市', '350402', '梅列区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350403', '3504', '00,35,3504', '三元区', '35', '福建省', '3504', '三明市', '350403', '三元区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350421', '3504', '00,35,3504', '明溪县', '35', '福建省', '3504', '三明市', '350421', '明溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350423', '3504', '00,35,3504', '清流县', '35', '福建省', '3504', '三明市', '350423', '清流县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350424', '3504', '00,35,3504', '宁化县', '35', '福建省', '3504', '三明市', '350424', '宁化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350425', '3504', '00,35,3504', '大田县', '35', '福建省', '3504', '三明市', '350425', '大田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350426', '3504', '00,35,3504', '尤溪县', '35', '福建省', '3504', '三明市', '350426', '尤溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350427', '3504', '00,35,3504', '沙县', '35', '福建省', '3504', '三明市', '350427', '沙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350428', '3504', '00,35,3504', '将乐县', '35', '福建省', '3504', '三明市', '350428', '将乐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350429', '3504', '00,35,3504', '泰宁县', '35', '福建省', '3504', '三明市', '350429', '泰宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350430', '3504', '00,35,3504', '建宁县', '35', '福建省', '3504', '三明市', '350430', '建宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350481', '3504', '00,35,3504', '永安市', '35', '福建省', '3504', '三明市', '350481', '永安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3505', '35', '00,35', '泉州市', '35', '福建省', '3505', '泉州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350502', '3505', '00,35,3505', '鲤城区', '35', '福建省', '3505', '泉州市', '350502', '鲤城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350503', '3505', '00,35,3505', '丰泽区', '35', '福建省', '3505', '泉州市', '350503', '丰泽区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350504', '3505', '00,35,3505', '洛江区', '35', '福建省', '3505', '泉州市', '350504', '洛江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350505', '3505', '00,35,3505', '泉港区', '35', '福建省', '3505', '泉州市', '350505', '泉港区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350521', '3505', '00,35,3505', '惠安县', '35', '福建省', '3505', '泉州市', '350521', '惠安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350524', '3505', '00,35,3505', '安溪县', '35', '福建省', '3505', '泉州市', '350524', '安溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350525', '3505', '00,35,3505', '永春县', '35', '福建省', '3505', '泉州市', '350525', '永春县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350526', '3505', '00,35,3505', '德化县', '35', '福建省', '3505', '泉州市', '350526', '德化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350527', '3505', '00,35,3505', '金门县', '35', '福建省', '3505', '泉州市', '350527', '金门县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350581', '3505', '00,35,3505', '石狮市', '35', '福建省', '3505', '泉州市', '350581', '石狮市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350582', '3505', '00,35,3505', '晋江市', '35', '福建省', '3505', '泉州市', '350582', '晋江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350583', '3505', '00,35,3505', '南安市', '35', '福建省', '3505', '泉州市', '350583', '南安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3506', '35', '00,35', '漳州市', '35', '福建省', '3506', '漳州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350602', '3506', '00,35,3506', '芗城区', '35', '福建省', '3506', '漳州市', '350602', '芗城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350603', '3506', '00,35,3506', '龙文区', '35', '福建省', '3506', '漳州市', '350603', '龙文区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350622', '3506', '00,35,3506', '云霄县', '35', '福建省', '3506', '漳州市', '350622', '云霄县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350623', '3506', '00,35,3506', '漳浦县', '35', '福建省', '3506', '漳州市', '350623', '漳浦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350624', '3506', '00,35,3506', '诏安县', '35', '福建省', '3506', '漳州市', '350624', '诏安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350625', '3506', '00,35,3506', '长泰县', '35', '福建省', '3506', '漳州市', '350625', '长泰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350626', '3506', '00,35,3506', '东山县', '35', '福建省', '3506', '漳州市', '350626', '东山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350627', '3506', '00,35,3506', '南靖县', '35', '福建省', '3506', '漳州市', '350627', '南靖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350628', '3506', '00,35,3506', '平和县', '35', '福建省', '3506', '漳州市', '350628', '平和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350629', '3506', '00,35,3506', '华安县', '35', '福建省', '3506', '漳州市', '350629', '华安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350681', '3506', '00,35,3506', '龙海市', '35', '福建省', '3506', '漳州市', '350681', '龙海市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3507', '35', '00,35', '南平市', '35', '福建省', '3507', '南平市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350702', '3507', '00,35,3507', '延平区', '35', '福建省', '3507', '南平市', '350702', '延平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350703', '3507', '00,35,3507', '建阳区', '35', '福建省', '3507', '南平市', '350703', '建阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350721', '3507', '00,35,3507', '顺昌县', '35', '福建省', '3507', '南平市', '350721', '顺昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350722', '3507', '00,35,3507', '浦城县', '35', '福建省', '3507', '南平市', '350722', '浦城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350723', '3507', '00,35,3507', '光泽县', '35', '福建省', '3507', '南平市', '350723', '光泽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350724', '3507', '00,35,3507', '松溪县', '35', '福建省', '3507', '南平市', '350724', '松溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350725', '3507', '00,35,3507', '政和县', '35', '福建省', '3507', '南平市', '350725', '政和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350781', '3507', '00,35,3507', '邵武市', '35', '福建省', '3507', '南平市', '350781', '邵武市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350782', '3507', '00,35,3507', '武夷山市', '35', '福建省', '3507', '南平市', '350782', '武夷山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350783', '3507', '00,35,3507', '建瓯市', '35', '福建省', '3507', '南平市', '350783', '建瓯市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3508', '35', '00,35', '龙岩市', '35', '福建省', '3508', '龙岩市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350802', '3508', '00,35,3508', '新罗区', '35', '福建省', '3508', '龙岩市', '350802', '新罗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350803', '3508', '00,35,3508', '永定区', '35', '福建省', '3508', '龙岩市', '350803', '永定区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350821', '3508', '00,35,3508', '长汀县', '35', '福建省', '3508', '龙岩市', '350821', '长汀县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350823', '3508', '00,35,3508', '上杭县', '35', '福建省', '3508', '龙岩市', '350823', '上杭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350824', '3508', '00,35,3508', '武平县', '35', '福建省', '3508', '龙岩市', '350824', '武平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350825', '3508', '00,35,3508', '连城县', '35', '福建省', '3508', '龙岩市', '350825', '连城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350881', '3508', '00,35,3508', '漳平市', '35', '福建省', '3508', '龙岩市', '350881', '漳平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3509', '35', '00,35', '宁德市', '35', '福建省', '3509', '宁德市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350902', '3509', '00,35,3509', '蕉城区', '35', '福建省', '3509', '宁德市', '350902', '蕉城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350921', '3509', '00,35,3509', '霞浦县', '35', '福建省', '3509', '宁德市', '350921', '霞浦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350922', '3509', '00,35,3509', '古田县', '35', '福建省', '3509', '宁德市', '350922', '古田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350923', '3509', '00,35,3509', '屏南县', '35', '福建省', '3509', '宁德市', '350923', '屏南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350924', '3509', '00,35,3509', '寿宁县', '35', '福建省', '3509', '宁德市', '350924', '寿宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350925', '3509', '00,35,3509', '周宁县', '35', '福建省', '3509', '宁德市', '350925', '周宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350926', '3509', '00,35,3509', '柘荣县', '35', '福建省', '3509', '宁德市', '350926', '柘荣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350981', '3509', '00,35,3509', '福安市', '35', '福建省', '3509', '宁德市', '350981', '福安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350982', '3509', '00,35,3509', '福鼎市', '35', '福建省', '3509', '宁德市', '350982', '福鼎市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('36', '00', '00', '江西省', '36', '江西省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('3601', '36', '00,36', '南昌市', '36', '江西省', '3601', '南昌市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360102', '3601', '00,36,3601', '东湖区', '36', '江西省', '3601', '南昌市', '360102', '东湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360103', '3601', '00,36,3601', '西湖区', '36', '江西省', '3601', '南昌市', '360103', '西湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360104', '3601', '00,36,3601', '青云谱区', '36', '江西省', '3601', '南昌市', '360104', '青云谱区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360111', '3601', '00,36,3601', '青山湖区', '36', '江西省', '3601', '南昌市', '360111', '青山湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360112', '3601', '00,36,3601', '新建区', '36', '江西省', '3601', '南昌市', '360112', '新建区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360113', '3601', '00,36,3601', '红谷滩区', '36', '江西省', '3601', '南昌市', '360113', '红谷滩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360121', '3601', '00,36,3601', '南昌县', '36', '江西省', '3601', '南昌市', '360121', '南昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360123', '3601', '00,36,3601', '安义县', '36', '江西省', '3601', '南昌市', '360123', '安义县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360124', '3601', '00,36,3601', '进贤县', '36', '江西省', '3601', '南昌市', '360124', '进贤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3602', '36', '00,36', '景德镇市', '36', '江西省', '3602', '景德镇市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360202', '3602', '00,36,3602', '昌江区', '36', '江西省', '3602', '景德镇市', '360202', '昌江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360203', '3602', '00,36,3602', '珠山区', '36', '江西省', '3602', '景德镇市', '360203', '珠山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360222', '3602', '00,36,3602', '浮梁县', '36', '江西省', '3602', '景德镇市', '360222', '浮梁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360281', '3602', '00,36,3602', '乐平市', '36', '江西省', '3602', '景德镇市', '360281', '乐平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3603', '36', '00,36', '萍乡市', '36', '江西省', '3603', '萍乡市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360302', '3603', '00,36,3603', '安源区', '36', '江西省', '3603', '萍乡市', '360302', '安源区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360313', '3603', '00,36,3603', '湘东区', '36', '江西省', '3603', '萍乡市', '360313', '湘东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360321', '3603', '00,36,3603', '莲花县', '36', '江西省', '3603', '萍乡市', '360321', '莲花县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360322', '3603', '00,36,3603', '上栗县', '36', '江西省', '3603', '萍乡市', '360322', '上栗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360323', '3603', '00,36,3603', '芦溪县', '36', '江西省', '3603', '萍乡市', '360323', '芦溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3604', '36', '00,36', '九江市', '36', '江西省', '3604', '九江市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360402', '3604', '00,36,3604', '濂溪区', '36', '江西省', '3604', '九江市', '360402', '濂溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360403', '3604', '00,36,3604', '浔阳区', '36', '江西省', '3604', '九江市', '360403', '浔阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360404', '3604', '00,36,3604', '柴桑区', '36', '江西省', '3604', '九江市', '360404', '柴桑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360423', '3604', '00,36,3604', '武宁县', '36', '江西省', '3604', '九江市', '360423', '武宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360424', '3604', '00,36,3604', '修水县', '36', '江西省', '3604', '九江市', '360424', '修水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360425', '3604', '00,36,3604', '永修县', '36', '江西省', '3604', '九江市', '360425', '永修县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360426', '3604', '00,36,3604', '德安县', '36', '江西省', '3604', '九江市', '360426', '德安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360428', '3604', '00,36,3604', '都昌县', '36', '江西省', '3604', '九江市', '360428', '都昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360429', '3604', '00,36,3604', '湖口县', '36', '江西省', '3604', '九江市', '360429', '湖口县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360430', '3604', '00,36,3604', '彭泽县', '36', '江西省', '3604', '九江市', '360430', '彭泽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360481', '3604', '00,36,3604', '瑞昌市', '36', '江西省', '3604', '九江市', '360481', '瑞昌市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360482', '3604', '00,36,3604', '共青城市', '36', '江西省', '3604', '九江市', '360482', '共青城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360483', '3604', '00,36,3604', '庐山市', '36', '江西省', '3604', '九江市', '360483', '庐山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3605', '36', '00,36', '新余市', '36', '江西省', '3605', '新余市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360502', '3605', '00,36,3605', '渝水区', '36', '江西省', '3605', '新余市', '360502', '渝水区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360521', '3605', '00,36,3605', '分宜县', '36', '江西省', '3605', '新余市', '360521', '分宜县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3606', '36', '00,36', '鹰潭市', '36', '江西省', '3606', '鹰潭市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360602', '3606', '00,36,3606', '月湖区', '36', '江西省', '3606', '鹰潭市', '360602', '月湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360603', '3606', '00,36,3606', '余江区', '36', '江西省', '3606', '鹰潭市', '360603', '余江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360681', '3606', '00,36,3606', '贵溪市', '36', '江西省', '3606', '鹰潭市', '360681', '贵溪市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3607', '36', '00,36', '赣州市', '36', '江西省', '3607', '赣州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360702', '3607', '00,36,3607', '章贡区', '36', '江西省', '3607', '赣州市', '360702', '章贡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360703', '3607', '00,36,3607', '南康区', '36', '江西省', '3607', '赣州市', '360703', '南康区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360704', '3607', '00,36,3607', '赣县区', '36', '江西省', '3607', '赣州市', '360704', '赣县区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360722', '3607', '00,36,3607', '信丰县', '36', '江西省', '3607', '赣州市', '360722', '信丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360723', '3607', '00,36,3607', '大余县', '36', '江西省', '3607', '赣州市', '360723', '大余县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360724', '3607', '00,36,3607', '上犹县', '36', '江西省', '3607', '赣州市', '360724', '上犹县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360725', '3607', '00,36,3607', '崇义县', '36', '江西省', '3607', '赣州市', '360725', '崇义县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360726', '3607', '00,36,3607', '安远县', '36', '江西省', '3607', '赣州市', '360726', '安远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360727', '3607', '00,36,3607', '龙南县', '36', '江西省', '3607', '赣州市', '360727', '龙南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360728', '3607', '00,36,3607', '定南县', '36', '江西省', '3607', '赣州市', '360728', '定南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360729', '3607', '00,36,3607', '全南县', '36', '江西省', '3607', '赣州市', '360729', '全南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360730', '3607', '00,36,3607', '宁都县', '36', '江西省', '3607', '赣州市', '360730', '宁都县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360731', '3607', '00,36,3607', '于都县', '36', '江西省', '3607', '赣州市', '360731', '于都县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360732', '3607', '00,36,3607', '兴国县', '36', '江西省', '3607', '赣州市', '360732', '兴国县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360733', '3607', '00,36,3607', '会昌县', '36', '江西省', '3607', '赣州市', '360733', '会昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360734', '3607', '00,36,3607', '寻乌县', '36', '江西省', '3607', '赣州市', '360734', '寻乌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360735', '3607', '00,36,3607', '石城县', '36', '江西省', '3607', '赣州市', '360735', '石城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360781', '3607', '00,36,3607', '瑞金市', '36', '江西省', '3607', '赣州市', '360781', '瑞金市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3608', '36', '00,36', '吉安市', '36', '江西省', '3608', '吉安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360802', '3608', '00,36,3608', '吉州区', '36', '江西省', '3608', '吉安市', '360802', '吉州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360803', '3608', '00,36,3608', '青原区', '36', '江西省', '3608', '吉安市', '360803', '青原区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360821', '3608', '00,36,3608', '吉安县', '36', '江西省', '3608', '吉安市', '360821', '吉安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360822', '3608', '00,36,3608', '吉水县', '36', '江西省', '3608', '吉安市', '360822', '吉水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360823', '3608', '00,36,3608', '峡江县', '36', '江西省', '3608', '吉安市', '360823', '峡江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360824', '3608', '00,36,3608', '新干县', '36', '江西省', '3608', '吉安市', '360824', '新干县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360825', '3608', '00,36,3608', '永丰县', '36', '江西省', '3608', '吉安市', '360825', '永丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360826', '3608', '00,36,3608', '泰和县', '36', '江西省', '3608', '吉安市', '360826', '泰和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360827', '3608', '00,36,3608', '遂川县', '36', '江西省', '3608', '吉安市', '360827', '遂川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360828', '3608', '00,36,3608', '万安县', '36', '江西省', '3608', '吉安市', '360828', '万安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360829', '3608', '00,36,3608', '安福县', '36', '江西省', '3608', '吉安市', '360829', '安福县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360830', '3608', '00,36,3608', '永新县', '36', '江西省', '3608', '吉安市', '360830', '永新县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360881', '3608', '00,36,3608', '井冈山市', '36', '江西省', '3608', '吉安市', '360881', '井冈山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3609', '36', '00,36', '宜春市', '36', '江西省', '3609', '宜春市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360902', '3609', '00,36,3609', '袁州区', '36', '江西省', '3609', '宜春市', '360902', '袁州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360921', '3609', '00,36,3609', '奉新县', '36', '江西省', '3609', '宜春市', '360921', '奉新县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360922', '3609', '00,36,3609', '万载县', '36', '江西省', '3609', '宜春市', '360922', '万载县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360923', '3609', '00,36,3609', '上高县', '36', '江西省', '3609', '宜春市', '360923', '上高县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360924', '3609', '00,36,3609', '宜丰县', '36', '江西省', '3609', '宜春市', '360924', '宜丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360925', '3609', '00,36,3609', '靖安县', '36', '江西省', '3609', '宜春市', '360925', '靖安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360926', '3609', '00,36,3609', '铜鼓县', '36', '江西省', '3609', '宜春市', '360926', '铜鼓县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360981', '3609', '00,36,3609', '丰城市', '36', '江西省', '3609', '宜春市', '360981', '丰城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360982', '3609', '00,36,3609', '樟树市', '36', '江西省', '3609', '宜春市', '360982', '樟树市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360983', '3609', '00,36,3609', '高安市', '36', '江西省', '3609', '宜春市', '360983', '高安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3610', '36', '00,36', '抚州市', '36', '江西省', '3610', '抚州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('361002', '3610', '00,36,3610', '临川区', '36', '江西省', '3610', '抚州市', '361002', '临川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361003', '3610', '00,36,3610', '东乡区', '36', '江西省', '3610', '抚州市', '361003', '东乡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361021', '3610', '00,36,3610', '南城县', '36', '江西省', '3610', '抚州市', '361021', '南城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361022', '3610', '00,36,3610', '黎川县', '36', '江西省', '3610', '抚州市', '361022', '黎川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361023', '3610', '00,36,3610', '南丰县', '36', '江西省', '3610', '抚州市', '361023', '南丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361024', '3610', '00,36,3610', '崇仁县', '36', '江西省', '3610', '抚州市', '361024', '崇仁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361025', '3610', '00,36,3610', '乐安县', '36', '江西省', '3610', '抚州市', '361025', '乐安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361026', '3610', '00,36,3610', '宜黄县', '36', '江西省', '3610', '抚州市', '361026', '宜黄县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361027', '3610', '00,36,3610', '金溪县', '36', '江西省', '3610', '抚州市', '361027', '金溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361028', '3610', '00,36,3610', '资溪县', '36', '江西省', '3610', '抚州市', '361028', '资溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361030', '3610', '00,36,3610', '广昌县', '36', '江西省', '3610', '抚州市', '361030', '广昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3611', '36', '00,36', '上饶市', '36', '江西省', '3611', '上饶市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('361102', '3611', '00,36,3611', '信州区', '36', '江西省', '3611', '上饶市', '361102', '信州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361103', '3611', '00,36,3611', '广丰区', '36', '江西省', '3611', '上饶市', '361103', '广丰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361104', '3611', '00,36,3611', '广信区', '36', '江西省', '3611', '上饶市', '361104', '广信区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361123', '3611', '00,36,3611', '玉山县', '36', '江西省', '3611', '上饶市', '361123', '玉山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361124', '3611', '00,36,3611', '铅山县', '36', '江西省', '3611', '上饶市', '361124', '铅山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361125', '3611', '00,36,3611', '横峰县', '36', '江西省', '3611', '上饶市', '361125', '横峰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361126', '3611', '00,36,3611', '弋阳县', '36', '江西省', '3611', '上饶市', '361126', '弋阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361127', '3611', '00,36,3611', '余干县', '36', '江西省', '3611', '上饶市', '361127', '余干县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361128', '3611', '00,36,3611', '鄱阳县', '36', '江西省', '3611', '上饶市', '361128', '鄱阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361129', '3611', '00,36,3611', '万年县', '36', '江西省', '3611', '上饶市', '361129', '万年县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361130', '3611', '00,36,3611', '婺源县', '36', '江西省', '3611', '上饶市', '361130', '婺源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361181', '3611', '00,36,3611', '德兴市', '36', '江西省', '3611', '上饶市', '361181', '德兴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('37', '00', '00', '山东省', '37', '山东省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('3701', '37', '00,37', '济南市', '37', '山东省', '3701', '济南市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370102', '3701', '00,37,3701', '历下区', '37', '山东省', '3701', '济南市', '370102', '历下区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370103', '3701', '00,37,3701', '市中区', '37', '山东省', '3701', '济南市', '370103', '市中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370104', '3701', '00,37,3701', '槐荫区', '37', '山东省', '3701', '济南市', '370104', '槐荫区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370105', '3701', '00,37,3701', '天桥区', '37', '山东省', '3701', '济南市', '370105', '天桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370112', '3701', '00,37,3701', '历城区', '37', '山东省', '3701', '济南市', '370112', '历城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370113', '3701', '00,37,3701', '长清区', '37', '山东省', '3701', '济南市', '370113', '长清区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370114', '3701', '00,37,3701', '章丘区', '37', '山东省', '3701', '济南市', '370114', '章丘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370115', '3701', '00,37,3701', '济阳区', '37', '山东省', '3701', '济南市', '370115', '济阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370116', '3701', '00,37,3701', '莱芜区', '37', '山东省', '3701', '济南市', '370116', '莱芜区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370117', '3701', '00,37,3701', '钢城区', '37', '山东省', '3701', '济南市', '370117', '钢城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370124', '3701', '00,37,3701', '平阴县', '37', '山东省', '3701', '济南市', '370124', '平阴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370126', '3701', '00,37,3701', '商河县', '37', '山东省', '3701', '济南市', '370126', '商河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3702', '37', '00,37', '青岛市', '37', '山东省', '3702', '青岛市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370202', '3702', '00,37,3702', '市南区', '37', '山东省', '3702', '青岛市', '370202', '市南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370203', '3702', '00,37,3702', '市北区', '37', '山东省', '3702', '青岛市', '370203', '市北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370211', '3702', '00,37,3702', '黄岛区', '37', '山东省', '3702', '青岛市', '370211', '黄岛区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370212', '3702', '00,37,3702', '崂山区', '37', '山东省', '3702', '青岛市', '370212', '崂山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370213', '3702', '00,37,3702', '李沧区', '37', '山东省', '3702', '青岛市', '370213', '李沧区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370214', '3702', '00,37,3702', '城阳区', '37', '山东省', '3702', '青岛市', '370214', '城阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370215', '3702', '00,37,3702', '即墨区', '37', '山东省', '3702', '青岛市', '370215', '即墨区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370281', '3702', '00,37,3702', '胶州市', '37', '山东省', '3702', '青岛市', '370281', '胶州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370283', '3702', '00,37,3702', '平度市', '37', '山东省', '3702', '青岛市', '370283', '平度市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370285', '3702', '00,37,3702', '莱西市', '37', '山东省', '3702', '青岛市', '370285', '莱西市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3703', '37', '00,37', '淄博市', '37', '山东省', '3703', '淄博市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370302', '3703', '00,37,3703', '淄川区', '37', '山东省', '3703', '淄博市', '370302', '淄川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370303', '3703', '00,37,3703', '张店区', '37', '山东省', '3703', '淄博市', '370303', '张店区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370304', '3703', '00,37,3703', '博山区', '37', '山东省', '3703', '淄博市', '370304', '博山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370305', '3703', '00,37,3703', '临淄区', '37', '山东省', '3703', '淄博市', '370305', '临淄区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370306', '3703', '00,37,3703', '周村区', '37', '山东省', '3703', '淄博市', '370306', '周村区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370321', '3703', '00,37,3703', '桓台县', '37', '山东省', '3703', '淄博市', '370321', '桓台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370322', '3703', '00,37,3703', '高青县', '37', '山东省', '3703', '淄博市', '370322', '高青县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370323', '3703', '00,37,3703', '沂源县', '37', '山东省', '3703', '淄博市', '370323', '沂源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3704', '37', '00,37', '枣庄市', '37', '山东省', '3704', '枣庄市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370402', '3704', '00,37,3704', '市中区', '37', '山东省', '3704', '枣庄市', '370402', '市中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370403', '3704', '00,37,3704', '薛城区', '37', '山东省', '3704', '枣庄市', '370403', '薛城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370404', '3704', '00,37,3704', '峄城区', '37', '山东省', '3704', '枣庄市', '370404', '峄城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370405', '3704', '00,37,3704', '台儿庄区', '37', '山东省', '3704', '枣庄市', '370405', '台儿庄区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370406', '3704', '00,37,3704', '山亭区', '37', '山东省', '3704', '枣庄市', '370406', '山亭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370481', '3704', '00,37,3704', '滕州市', '37', '山东省', '3704', '枣庄市', '370481', '滕州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3705', '37', '00,37', '东营市', '37', '山东省', '3705', '东营市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370502', '3705', '00,37,3705', '东营区', '37', '山东省', '3705', '东营市', '370502', '东营区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370503', '3705', '00,37,3705', '河口区', '37', '山东省', '3705', '东营市', '370503', '河口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370505', '3705', '00,37,3705', '垦利区', '37', '山东省', '3705', '东营市', '370505', '垦利区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370522', '3705', '00,37,3705', '利津县', '37', '山东省', '3705', '东营市', '370522', '利津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370523', '3705', '00,37,3705', '广饶县', '37', '山东省', '3705', '东营市', '370523', '广饶县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3706', '37', '00,37', '烟台市', '37', '山东省', '3706', '烟台市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370602', '3706', '00,37,3706', '芝罘区', '37', '山东省', '3706', '烟台市', '370602', '芝罘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370611', '3706', '00,37,3706', '福山区', '37', '山东省', '3706', '烟台市', '370611', '福山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370612', '3706', '00,37,3706', '牟平区', '37', '山东省', '3706', '烟台市', '370612', '牟平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370613', '3706', '00,37,3706', '莱山区', '37', '山东省', '3706', '烟台市', '370613', '莱山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370634', '3706', '00,37,3706', '长岛县', '37', '山东省', '3706', '烟台市', '370634', '长岛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370681', '3706', '00,37,3706', '龙口市', '37', '山东省', '3706', '烟台市', '370681', '龙口市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370682', '3706', '00,37,3706', '莱阳市', '37', '山东省', '3706', '烟台市', '370682', '莱阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370683', '3706', '00,37,3706', '莱州市', '37', '山东省', '3706', '烟台市', '370683', '莱州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370684', '3706', '00,37,3706', '蓬莱市', '37', '山东省', '3706', '烟台市', '370684', '蓬莱市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370685', '3706', '00,37,3706', '招远市', '37', '山东省', '3706', '烟台市', '370685', '招远市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370686', '3706', '00,37,3706', '栖霞市', '37', '山东省', '3706', '烟台市', '370686', '栖霞市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370687', '3706', '00,37,3706', '海阳市', '37', '山东省', '3706', '烟台市', '370687', '海阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3707', '37', '00,37', '潍坊市', '37', '山东省', '3707', '潍坊市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370702', '3707', '00,37,3707', '潍城区', '37', '山东省', '3707', '潍坊市', '370702', '潍城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370703', '3707', '00,37,3707', '寒亭区', '37', '山东省', '3707', '潍坊市', '370703', '寒亭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370704', '3707', '00,37,3707', '坊子区', '37', '山东省', '3707', '潍坊市', '370704', '坊子区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370705', '3707', '00,37,3707', '奎文区', '37', '山东省', '3707', '潍坊市', '370705', '奎文区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370724', '3707', '00,37,3707', '临朐县', '37', '山东省', '3707', '潍坊市', '370724', '临朐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370725', '3707', '00,37,3707', '昌乐县', '37', '山东省', '3707', '潍坊市', '370725', '昌乐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370781', '3707', '00,37,3707', '青州市', '37', '山东省', '3707', '潍坊市', '370781', '青州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370782', '3707', '00,37,3707', '诸城市', '37', '山东省', '3707', '潍坊市', '370782', '诸城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370783', '3707', '00,37,3707', '寿光市', '37', '山东省', '3707', '潍坊市', '370783', '寿光市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370784', '3707', '00,37,3707', '安丘市', '37', '山东省', '3707', '潍坊市', '370784', '安丘市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370785', '3707', '00,37,3707', '高密市', '37', '山东省', '3707', '潍坊市', '370785', '高密市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370786', '3707', '00,37,3707', '昌邑市', '37', '山东省', '3707', '潍坊市', '370786', '昌邑市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3708', '37', '00,37', '济宁市', '37', '山东省', '3708', '济宁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370811', '3708', '00,37,3708', '任城区', '37', '山东省', '3708', '济宁市', '370811', '任城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370812', '3708', '00,37,3708', '兖州区', '37', '山东省', '3708', '济宁市', '370812', '兖州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370826', '3708', '00,37,3708', '微山县', '37', '山东省', '3708', '济宁市', '370826', '微山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370827', '3708', '00,37,3708', '鱼台县', '37', '山东省', '3708', '济宁市', '370827', '鱼台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370828', '3708', '00,37,3708', '金乡县', '37', '山东省', '3708', '济宁市', '370828', '金乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370829', '3708', '00,37,3708', '嘉祥县', '37', '山东省', '3708', '济宁市', '370829', '嘉祥县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370830', '3708', '00,37,3708', '汶上县', '37', '山东省', '3708', '济宁市', '370830', '汶上县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370831', '3708', '00,37,3708', '泗水县', '37', '山东省', '3708', '济宁市', '370831', '泗水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370832', '3708', '00,37,3708', '梁山县', '37', '山东省', '3708', '济宁市', '370832', '梁山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370881', '3708', '00,37,3708', '曲阜市', '37', '山东省', '3708', '济宁市', '370881', '曲阜市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370883', '3708', '00,37,3708', '邹城市', '37', '山东省', '3708', '济宁市', '370883', '邹城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3709', '37', '00,37', '泰安市', '37', '山东省', '3709', '泰安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370902', '3709', '00,37,3709', '泰山区', '37', '山东省', '3709', '泰安市', '370902', '泰山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370911', '3709', '00,37,3709', '岱岳区', '37', '山东省', '3709', '泰安市', '370911', '岱岳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370921', '3709', '00,37,3709', '宁阳县', '37', '山东省', '3709', '泰安市', '370921', '宁阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370923', '3709', '00,37,3709', '东平县', '37', '山东省', '3709', '泰安市', '370923', '东平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370982', '3709', '00,37,3709', '新泰市', '37', '山东省', '3709', '泰安市', '370982', '新泰市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370983', '3709', '00,37,3709', '肥城市', '37', '山东省', '3709', '泰安市', '370983', '肥城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3710', '37', '00,37', '威海市', '37', '山东省', '3710', '威海市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('371002', '3710', '00,37,3710', '环翠区', '37', '山东省', '3710', '威海市', '371002', '环翠区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371003', '3710', '00,37,3710', '文登区', '37', '山东省', '3710', '威海市', '371003', '文登区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371082', '3710', '00,37,3710', '荣成市', '37', '山东省', '3710', '威海市', '371082', '荣成市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371083', '3710', '00,37,3710', '乳山市', '37', '山东省', '3710', '威海市', '371083', '乳山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3711', '37', '00,37', '日照市', '37', '山东省', '3711', '日照市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('371102', '3711', '00,37,3711', '东港区', '37', '山东省', '3711', '日照市', '371102', '东港区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371103', '3711', '00,37,3711', '岚山区', '37', '山东省', '3711', '日照市', '371103', '岚山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371121', '3711', '00,37,3711', '五莲县', '37', '山东省', '3711', '日照市', '371121', '五莲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371122', '3711', '00,37,3711', '莒县', '37', '山东省', '3711', '日照市', '371122', '莒县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3713', '37', '00,37', '临沂市', '37', '山东省', '3713', '临沂市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('371302', '3713', '00,37,3713', '兰山区', '37', '山东省', '3713', '临沂市', '371302', '兰山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371311', '3713', '00,37,3713', '罗庄区', '37', '山东省', '3713', '临沂市', '371311', '罗庄区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371312', '3713', '00,37,3713', '河东区', '37', '山东省', '3713', '临沂市', '371312', '河东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371321', '3713', '00,37,3713', '沂南县', '37', '山东省', '3713', '临沂市', '371321', '沂南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371322', '3713', '00,37,3713', '郯城县', '37', '山东省', '3713', '临沂市', '371322', '郯城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371323', '3713', '00,37,3713', '沂水县', '37', '山东省', '3713', '临沂市', '371323', '沂水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371324', '3713', '00,37,3713', '兰陵县', '37', '山东省', '3713', '临沂市', '371324', '兰陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371325', '3713', '00,37,3713', '费县', '37', '山东省', '3713', '临沂市', '371325', '费县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371326', '3713', '00,37,3713', '平邑县', '37', '山东省', '3713', '临沂市', '371326', '平邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371327', '3713', '00,37,3713', '莒南县', '37', '山东省', '3713', '临沂市', '371327', '莒南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371328', '3713', '00,37,3713', '蒙阴县', '37', '山东省', '3713', '临沂市', '371328', '蒙阴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371329', '3713', '00,37,3713', '临沭县', '37', '山东省', '3713', '临沂市', '371329', '临沭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3714', '37', '00,37', '德州市', '37', '山东省', '3714', '德州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('371402', '3714', '00,37,3714', '德城区', '37', '山东省', '3714', '德州市', '371402', '德城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371403', '3714', '00,37,3714', '陵城区', '37', '山东省', '3714', '德州市', '371403', '陵城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371422', '3714', '00,37,3714', '宁津县', '37', '山东省', '3714', '德州市', '371422', '宁津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371423', '3714', '00,37,3714', '庆云县', '37', '山东省', '3714', '德州市', '371423', '庆云县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371424', '3714', '00,37,3714', '临邑县', '37', '山东省', '3714', '德州市', '371424', '临邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371425', '3714', '00,37,3714', '齐河县', '37', '山东省', '3714', '德州市', '371425', '齐河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371426', '3714', '00,37,3714', '平原县', '37', '山东省', '3714', '德州市', '371426', '平原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371427', '3714', '00,37,3714', '夏津县', '37', '山东省', '3714', '德州市', '371427', '夏津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371428', '3714', '00,37,3714', '武城县', '37', '山东省', '3714', '德州市', '371428', '武城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371481', '3714', '00,37,3714', '乐陵市', '37', '山东省', '3714', '德州市', '371481', '乐陵市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371482', '3714', '00,37,3714', '禹城市', '37', '山东省', '3714', '德州市', '371482', '禹城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3715', '37', '00,37', '聊城市', '37', '山东省', '3715', '聊城市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('371502', '3715', '00,37,3715', '东昌府区', '37', '山东省', '3715', '聊城市', '371502', '东昌府区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371503', '3715', '00,37,3715', '茌平区', '37', '山东省', '3715', '聊城市', '371503', '茌平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371521', '3715', '00,37,3715', '阳谷县', '37', '山东省', '3715', '聊城市', '371521', '阳谷县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371522', '3715', '00,37,3715', '莘县', '37', '山东省', '3715', '聊城市', '371522', '莘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371524', '3715', '00,37,3715', '东阿县', '37', '山东省', '3715', '聊城市', '371524', '东阿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371525', '3715', '00,37,3715', '冠县', '37', '山东省', '3715', '聊城市', '371525', '冠县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371526', '3715', '00,37,3715', '高唐县', '37', '山东省', '3715', '聊城市', '371526', '高唐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371581', '3715', '00,37,3715', '临清市', '37', '山东省', '3715', '聊城市', '371581', '临清市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3716', '37', '00,37', '滨州市', '37', '山东省', '3716', '滨州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('371602', '3716', '00,37,3716', '滨城区', '37', '山东省', '3716', '滨州市', '371602', '滨城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371603', '3716', '00,37,3716', '沾化区', '37', '山东省', '3716', '滨州市', '371603', '沾化区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371621', '3716', '00,37,3716', '惠民县', '37', '山东省', '3716', '滨州市', '371621', '惠民县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371622', '3716', '00,37,3716', '阳信县', '37', '山东省', '3716', '滨州市', '371622', '阳信县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371623', '3716', '00,37,3716', '无棣县', '37', '山东省', '3716', '滨州市', '371623', '无棣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371625', '3716', '00,37,3716', '博兴县', '37', '山东省', '3716', '滨州市', '371625', '博兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371681', '3716', '00,37,3716', '邹平市', '37', '山东省', '3716', '滨州市', '371681', '邹平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3717', '37', '00,37', '菏泽市', '37', '山东省', '3717', '菏泽市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('371702', '3717', '00,37,3717', '牡丹区', '37', '山东省', '3717', '菏泽市', '371702', '牡丹区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371703', '3717', '00,37,3717', '定陶区', '37', '山东省', '3717', '菏泽市', '371703', '定陶区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371721', '3717', '00,37,3717', '曹县', '37', '山东省', '3717', '菏泽市', '371721', '曹县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371722', '3717', '00,37,3717', '单县', '37', '山东省', '3717', '菏泽市', '371722', '单县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371723', '3717', '00,37,3717', '成武县', '37', '山东省', '3717', '菏泽市', '371723', '成武县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371724', '3717', '00,37,3717', '巨野县', '37', '山东省', '3717', '菏泽市', '371724', '巨野县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371725', '3717', '00,37,3717', '郓城县', '37', '山东省', '3717', '菏泽市', '371725', '郓城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371726', '3717', '00,37,3717', '鄄城县', '37', '山东省', '3717', '菏泽市', '371726', '鄄城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371728', '3717', '00,37,3717', '东明县', '37', '山东省', '3717', '菏泽市', '371728', '东明县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('41', '00', '00', '河南省', '41', '河南省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('4101', '41', '00,41', '郑州市', '41', '河南省', '4101', '郑州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410102', '4101', '00,41,4101', '中原区', '41', '河南省', '4101', '郑州市', '410102', '中原区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410103', '4101', '00,41,4101', '二七区', '41', '河南省', '4101', '郑州市', '410103', '二七区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410104', '4101', '00,41,4101', '管城回族区', '41', '河南省', '4101', '郑州市', '410104', '管城回族区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410105', '4101', '00,41,4101', '金水区', '41', '河南省', '4101', '郑州市', '410105', '金水区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410106', '4101', '00,41,4101', '上街区', '41', '河南省', '4101', '郑州市', '410106', '上街区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410108', '4101', '00,41,4101', '惠济区', '41', '河南省', '4101', '郑州市', '410108', '惠济区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410122', '4101', '00,41,4101', '中牟县', '41', '河南省', '4101', '郑州市', '410122', '中牟县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410181', '4101', '00,41,4101', '巩义市', '41', '河南省', '4101', '郑州市', '410181', '巩义市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410182', '4101', '00,41,4101', '荥阳市', '41', '河南省', '4101', '郑州市', '410182', '荥阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410183', '4101', '00,41,4101', '新密市', '41', '河南省', '4101', '郑州市', '410183', '新密市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410184', '4101', '00,41,4101', '新郑市', '41', '河南省', '4101', '郑州市', '410184', '新郑市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410185', '4101', '00,41,4101', '登封市', '41', '河南省', '4101', '郑州市', '410185', '登封市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4102', '41', '00,41', '开封市', '41', '河南省', '4102', '开封市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410202', '4102', '00,41,4102', '龙亭区', '41', '河南省', '4102', '开封市', '410202', '龙亭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410203', '4102', '00,41,4102', '顺河回族区', '41', '河南省', '4102', '开封市', '410203', '顺河回族区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410204', '4102', '00,41,4102', '鼓楼区', '41', '河南省', '4102', '开封市', '410204', '鼓楼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410205', '4102', '00,41,4102', '禹王台区', '41', '河南省', '4102', '开封市', '410205', '禹王台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410212', '4102', '00,41,4102', '祥符区', '41', '河南省', '4102', '开封市', '410212', '祥符区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410221', '4102', '00,41,4102', '杞县', '41', '河南省', '4102', '开封市', '410221', '杞县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410222', '4102', '00,41,4102', '通许县', '41', '河南省', '4102', '开封市', '410222', '通许县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410223', '4102', '00,41,4102', '尉氏县', '41', '河南省', '4102', '开封市', '410223', '尉氏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410225', '4102', '00,41,4102', '兰考县', '41', '河南省', '4102', '开封市', '410225', '兰考县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4103', '41', '00,41', '洛阳市', '41', '河南省', '4103', '洛阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410302', '4103', '00,41,4103', '老城区', '41', '河南省', '4103', '洛阳市', '410302', '老城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410303', '4103', '00,41,4103', '西工区', '41', '河南省', '4103', '洛阳市', '410303', '西工区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410304', '4103', '00,41,4103', '瀍河回族区', '41', '河南省', '4103', '洛阳市', '410304', '瀍河回族区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410305', '4103', '00,41,4103', '涧西区', '41', '河南省', '4103', '洛阳市', '410305', '涧西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410306', '4103', '00,41,4103', '吉利区', '41', '河南省', '4103', '洛阳市', '410306', '吉利区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410311', '4103', '00,41,4103', '洛龙区', '41', '河南省', '4103', '洛阳市', '410311', '洛龙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410322', '4103', '00,41,4103', '孟津县', '41', '河南省', '4103', '洛阳市', '410322', '孟津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410323', '4103', '00,41,4103', '新安县', '41', '河南省', '4103', '洛阳市', '410323', '新安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410324', '4103', '00,41,4103', '栾川县', '41', '河南省', '4103', '洛阳市', '410324', '栾川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410325', '4103', '00,41,4103', '嵩县', '41', '河南省', '4103', '洛阳市', '410325', '嵩县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410326', '4103', '00,41,4103', '汝阳县', '41', '河南省', '4103', '洛阳市', '410326', '汝阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410327', '4103', '00,41,4103', '宜阳县', '41', '河南省', '4103', '洛阳市', '410327', '宜阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410328', '4103', '00,41,4103', '洛宁县', '41', '河南省', '4103', '洛阳市', '410328', '洛宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410329', '4103', '00,41,4103', '伊川县', '41', '河南省', '4103', '洛阳市', '410329', '伊川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410381', '4103', '00,41,4103', '偃师市', '41', '河南省', '4103', '洛阳市', '410381', '偃师市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4104', '41', '00,41', '平顶山市', '41', '河南省', '4104', '平顶山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410402', '4104', '00,41,4104', '新华区', '41', '河南省', '4104', '平顶山市', '410402', '新华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410403', '4104', '00,41,4104', '卫东区', '41', '河南省', '4104', '平顶山市', '410403', '卫东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410404', '4104', '00,41,4104', '石龙区', '41', '河南省', '4104', '平顶山市', '410404', '石龙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410411', '4104', '00,41,4104', '湛河区', '41', '河南省', '4104', '平顶山市', '410411', '湛河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410421', '4104', '00,41,4104', '宝丰县', '41', '河南省', '4104', '平顶山市', '410421', '宝丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410422', '4104', '00,41,4104', '叶县', '41', '河南省', '4104', '平顶山市', '410422', '叶县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410423', '4104', '00,41,4104', '鲁山县', '41', '河南省', '4104', '平顶山市', '410423', '鲁山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410425', '4104', '00,41,4104', '郏县', '41', '河南省', '4104', '平顶山市', '410425', '郏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410481', '4104', '00,41,4104', '舞钢市', '41', '河南省', '4104', '平顶山市', '410481', '舞钢市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410482', '4104', '00,41,4104', '汝州市', '41', '河南省', '4104', '平顶山市', '410482', '汝州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4105', '41', '00,41', '安阳市', '41', '河南省', '4105', '安阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410502', '4105', '00,41,4105', '文峰区', '41', '河南省', '4105', '安阳市', '410502', '文峰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410503', '4105', '00,41,4105', '北关区', '41', '河南省', '4105', '安阳市', '410503', '北关区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410505', '4105', '00,41,4105', '殷都区', '41', '河南省', '4105', '安阳市', '410505', '殷都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410506', '4105', '00,41,4105', '龙安区', '41', '河南省', '4105', '安阳市', '410506', '龙安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410522', '4105', '00,41,4105', '安阳县', '41', '河南省', '4105', '安阳市', '410522', '安阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410523', '4105', '00,41,4105', '汤阴县', '41', '河南省', '4105', '安阳市', '410523', '汤阴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410526', '4105', '00,41,4105', '滑县', '41', '河南省', '4105', '安阳市', '410526', '滑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410527', '4105', '00,41,4105', '内黄县', '41', '河南省', '4105', '安阳市', '410527', '内黄县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410581', '4105', '00,41,4105', '林州市', '41', '河南省', '4105', '安阳市', '410581', '林州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4106', '41', '00,41', '鹤壁市', '41', '河南省', '4106', '鹤壁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410602', '4106', '00,41,4106', '鹤山区', '41', '河南省', '4106', '鹤壁市', '410602', '鹤山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410603', '4106', '00,41,4106', '山城区', '41', '河南省', '4106', '鹤壁市', '410603', '山城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410611', '4106', '00,41,4106', '淇滨区', '41', '河南省', '4106', '鹤壁市', '410611', '淇滨区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410621', '4106', '00,41,4106', '浚县', '41', '河南省', '4106', '鹤壁市', '410621', '浚县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410622', '4106', '00,41,4106', '淇县', '41', '河南省', '4106', '鹤壁市', '410622', '淇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4107', '41', '00,41', '新乡市', '41', '河南省', '4107', '新乡市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410702', '4107', '00,41,4107', '红旗区', '41', '河南省', '4107', '新乡市', '410702', '红旗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410703', '4107', '00,41,4107', '卫滨区', '41', '河南省', '4107', '新乡市', '410703', '卫滨区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410704', '4107', '00,41,4107', '凤泉区', '41', '河南省', '4107', '新乡市', '410704', '凤泉区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410711', '4107', '00,41,4107', '牧野区', '41', '河南省', '4107', '新乡市', '410711', '牧野区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410721', '4107', '00,41,4107', '新乡县', '41', '河南省', '4107', '新乡市', '410721', '新乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410724', '4107', '00,41,4107', '获嘉县', '41', '河南省', '4107', '新乡市', '410724', '获嘉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410725', '4107', '00,41,4107', '原阳县', '41', '河南省', '4107', '新乡市', '410725', '原阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410726', '4107', '00,41,4107', '延津县', '41', '河南省', '4107', '新乡市', '410726', '延津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410727', '4107', '00,41,4107', '封丘县', '41', '河南省', '4107', '新乡市', '410727', '封丘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410781', '4107', '00,41,4107', '卫辉市', '41', '河南省', '4107', '新乡市', '410781', '卫辉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410782', '4107', '00,41,4107', '辉县市', '41', '河南省', '4107', '新乡市', '410782', '辉县市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410783', '4107', '00,41,4107', '长垣市', '41', '河南省', '4107', '新乡市', '410783', '长垣市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4108', '41', '00,41', '焦作市', '41', '河南省', '4108', '焦作市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410802', '4108', '00,41,4108', '解放区', '41', '河南省', '4108', '焦作市', '410802', '解放区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410803', '4108', '00,41,4108', '中站区', '41', '河南省', '4108', '焦作市', '410803', '中站区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410804', '4108', '00,41,4108', '马村区', '41', '河南省', '4108', '焦作市', '410804', '马村区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410811', '4108', '00,41,4108', '山阳区', '41', '河南省', '4108', '焦作市', '410811', '山阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410821', '4108', '00,41,4108', '修武县', '41', '河南省', '4108', '焦作市', '410821', '修武县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410822', '4108', '00,41,4108', '博爱县', '41', '河南省', '4108', '焦作市', '410822', '博爱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410823', '4108', '00,41,4108', '武陟县', '41', '河南省', '4108', '焦作市', '410823', '武陟县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410825', '4108', '00,41,4108', '温县', '41', '河南省', '4108', '焦作市', '410825', '温县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410882', '4108', '00,41,4108', '沁阳市', '41', '河南省', '4108', '焦作市', '410882', '沁阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410883', '4108', '00,41,4108', '孟州市', '41', '河南省', '4108', '焦作市', '410883', '孟州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4109', '41', '00,41', '濮阳市', '41', '河南省', '4109', '濮阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410902', '4109', '00,41,4109', '华龙区', '41', '河南省', '4109', '濮阳市', '410902', '华龙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410922', '4109', '00,41,4109', '清丰县', '41', '河南省', '4109', '濮阳市', '410922', '清丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410923', '4109', '00,41,4109', '南乐县', '41', '河南省', '4109', '濮阳市', '410923', '南乐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410926', '4109', '00,41,4109', '范县', '41', '河南省', '4109', '濮阳市', '410926', '范县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410927', '4109', '00,41,4109', '台前县', '41', '河南省', '4109', '濮阳市', '410927', '台前县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410928', '4109', '00,41,4109', '濮阳县', '41', '河南省', '4109', '濮阳市', '410928', '濮阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4110', '41', '00,41', '许昌市', '41', '河南省', '4110', '许昌市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411002', '4110', '00,41,4110', '魏都区', '41', '河南省', '4110', '许昌市', '411002', '魏都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411003', '4110', '00,41,4110', '建安区', '41', '河南省', '4110', '许昌市', '411003', '建安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411024', '4110', '00,41,4110', '鄢陵县', '41', '河南省', '4110', '许昌市', '411024', '鄢陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411025', '4110', '00,41,4110', '襄城县', '41', '河南省', '4110', '许昌市', '411025', '襄城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411081', '4110', '00,41,4110', '禹州市', '41', '河南省', '4110', '许昌市', '411081', '禹州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411082', '4110', '00,41,4110', '长葛市', '41', '河南省', '4110', '许昌市', '411082', '长葛市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4111', '41', '00,41', '漯河市', '41', '河南省', '4111', '漯河市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411102', '4111', '00,41,4111', '源汇区', '41', '河南省', '4111', '漯河市', '411102', '源汇区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411103', '4111', '00,41,4111', '郾城区', '41', '河南省', '4111', '漯河市', '411103', '郾城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411104', '4111', '00,41,4111', '召陵区', '41', '河南省', '4111', '漯河市', '411104', '召陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411121', '4111', '00,41,4111', '舞阳县', '41', '河南省', '4111', '漯河市', '411121', '舞阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411122', '4111', '00,41,4111', '临颍县', '41', '河南省', '4111', '漯河市', '411122', '临颍县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4112', '41', '00,41', '三门峡市', '41', '河南省', '4112', '三门峡市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411202', '4112', '00,41,4112', '湖滨区', '41', '河南省', '4112', '三门峡市', '411202', '湖滨区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411203', '4112', '00,41,4112', '陕州区', '41', '河南省', '4112', '三门峡市', '411203', '陕州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411221', '4112', '00,41,4112', '渑池县', '41', '河南省', '4112', '三门峡市', '411221', '渑池县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411224', '4112', '00,41,4112', '卢氏县', '41', '河南省', '4112', '三门峡市', '411224', '卢氏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411281', '4112', '00,41,4112', '义马市', '41', '河南省', '4112', '三门峡市', '411281', '义马市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411282', '4112', '00,41,4112', '灵宝市', '41', '河南省', '4112', '三门峡市', '411282', '灵宝市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4113', '41', '00,41', '南阳市', '41', '河南省', '4113', '南阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411302', '4113', '00,41,4113', '宛城区', '41', '河南省', '4113', '南阳市', '411302', '宛城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411303', '4113', '00,41,4113', '卧龙区', '41', '河南省', '4113', '南阳市', '411303', '卧龙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411321', '4113', '00,41,4113', '南召县', '41', '河南省', '4113', '南阳市', '411321', '南召县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411322', '4113', '00,41,4113', '方城县', '41', '河南省', '4113', '南阳市', '411322', '方城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411323', '4113', '00,41,4113', '西峡县', '41', '河南省', '4113', '南阳市', '411323', '西峡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411324', '4113', '00,41,4113', '镇平县', '41', '河南省', '4113', '南阳市', '411324', '镇平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411325', '4113', '00,41,4113', '内乡县', '41', '河南省', '4113', '南阳市', '411325', '内乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411326', '4113', '00,41,4113', '淅川县', '41', '河南省', '4113', '南阳市', '411326', '淅川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411327', '4113', '00,41,4113', '社旗县', '41', '河南省', '4113', '南阳市', '411327', '社旗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411328', '4113', '00,41,4113', '唐河县', '41', '河南省', '4113', '南阳市', '411328', '唐河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411329', '4113', '00,41,4113', '新野县', '41', '河南省', '4113', '南阳市', '411329', '新野县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411330', '4113', '00,41,4113', '桐柏县', '41', '河南省', '4113', '南阳市', '411330', '桐柏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411381', '4113', '00,41,4113', '邓州市', '41', '河南省', '4113', '南阳市', '411381', '邓州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4114', '41', '00,41', '商丘市', '41', '河南省', '4114', '商丘市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411402', '4114', '00,41,4114', '梁园区', '41', '河南省', '4114', '商丘市', '411402', '梁园区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411403', '4114', '00,41,4114', '睢阳区', '41', '河南省', '4114', '商丘市', '411403', '睢阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411421', '4114', '00,41,4114', '民权县', '41', '河南省', '4114', '商丘市', '411421', '民权县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411422', '4114', '00,41,4114', '睢县', '41', '河南省', '4114', '商丘市', '411422', '睢县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411423', '4114', '00,41,4114', '宁陵县', '41', '河南省', '4114', '商丘市', '411423', '宁陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411424', '4114', '00,41,4114', '柘城县', '41', '河南省', '4114', '商丘市', '411424', '柘城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4415', '44', '00,44', '汕尾市', '44', '广东省', '4415', '汕尾市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411425', '4114', '00,41,4114', '虞城县', '41', '河南省', '4114', '商丘市', '411425', '虞城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411426', '4114', '00,41,4114', '夏邑县', '41', '河南省', '4114', '商丘市', '411426', '夏邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411481', '4114', '00,41,4114', '永城市', '41', '河南省', '4114', '商丘市', '411481', '永城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4115', '41', '00,41', '信阳市', '41', '河南省', '4115', '信阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411502', '4115', '00,41,4115', '浉河区', '41', '河南省', '4115', '信阳市', '411502', '浉河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411503', '4115', '00,41,4115', '平桥区', '41', '河南省', '4115', '信阳市', '411503', '平桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411521', '4115', '00,41,4115', '罗山县', '41', '河南省', '4115', '信阳市', '411521', '罗山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411522', '4115', '00,41,4115', '光山县', '41', '河南省', '4115', '信阳市', '411522', '光山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411523', '4115', '00,41,4115', '新县', '41', '河南省', '4115', '信阳市', '411523', '新县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411524', '4115', '00,41,4115', '商城县', '41', '河南省', '4115', '信阳市', '411524', '商城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411525', '4115', '00,41,4115', '固始县', '41', '河南省', '4115', '信阳市', '411525', '固始县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411526', '4115', '00,41,4115', '潢川县', '41', '河南省', '4115', '信阳市', '411526', '潢川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411527', '4115', '00,41,4115', '淮滨县', '41', '河南省', '4115', '信阳市', '411527', '淮滨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411528', '4115', '00,41,4115', '息县', '41', '河南省', '4115', '信阳市', '411528', '息县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4116', '41', '00,41', '周口市', '41', '河南省', '4116', '周口市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411602', '4116', '00,41,4116', '川汇区', '41', '河南省', '4116', '周口市', '411602', '川汇区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411603', '4116', '00,41,4116', '淮阳区', '41', '河南省', '4116', '周口市', '411603', '淮阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411621', '4116', '00,41,4116', '扶沟县', '41', '河南省', '4116', '周口市', '411621', '扶沟县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411622', '4116', '00,41,4116', '西华县', '41', '河南省', '4116', '周口市', '411622', '西华县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411623', '4116', '00,41,4116', '商水县', '41', '河南省', '4116', '周口市', '411623', '商水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411624', '4116', '00,41,4116', '沈丘县', '41', '河南省', '4116', '周口市', '411624', '沈丘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411625', '4116', '00,41,4116', '郸城县', '41', '河南省', '4116', '周口市', '411625', '郸城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411627', '4116', '00,41,4116', '太康县', '41', '河南省', '4116', '周口市', '411627', '太康县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411628', '4116', '00,41,4116', '鹿邑县', '41', '河南省', '4116', '周口市', '411628', '鹿邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411681', '4116', '00,41,4116', '项城市', '41', '河南省', '4116', '周口市', '411681', '项城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4117', '41', '00,41', '驻马店市', '41', '河南省', '4117', '驻马店市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411702', '4117', '00,41,4117', '驿城区', '41', '河南省', '4117', '驻马店市', '411702', '驿城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411721', '4117', '00,41,4117', '西平县', '41', '河南省', '4117', '驻马店市', '411721', '西平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411722', '4117', '00,41,4117', '上蔡县', '41', '河南省', '4117', '驻马店市', '411722', '上蔡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411723', '4117', '00,41,4117', '平舆县', '41', '河南省', '4117', '驻马店市', '411723', '平舆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411724', '4117', '00,41,4117', '正阳县', '41', '河南省', '4117', '驻马店市', '411724', '正阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411725', '4117', '00,41,4117', '确山县', '41', '河南省', '4117', '驻马店市', '411725', '确山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411726', '4117', '00,41,4117', '泌阳县', '41', '河南省', '4117', '驻马店市', '411726', '泌阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411727', '4117', '00,41,4117', '汝南县', '41', '河南省', '4117', '驻马店市', '411727', '汝南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411728', '4117', '00,41,4117', '遂平县', '41', '河南省', '4117', '驻马店市', '411728', '遂平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411729', '4117', '00,41,4117', '新蔡县', '41', '河南省', '4117', '驻马店市', '411729', '新蔡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4190', '41', '00,41', '省直辖县级行政区', '41', '河南省', '4190', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('419001', '4190', '00,41,4190', '济源市', '41', '河南省', '4190', '省直辖县级行政区', '419001', '济源市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('42', '00', '00', '湖北省', '42', '湖北省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('4201', '42', '00,42', '武汉市', '42', '湖北省', '4201', '武汉市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420102', '4201', '00,42,4201', '江岸区', '42', '湖北省', '4201', '武汉市', '420102', '江岸区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420103', '4201', '00,42,4201', '江汉区', '42', '湖北省', '4201', '武汉市', '420103', '江汉区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420104', '4201', '00,42,4201', '硚口区', '42', '湖北省', '4201', '武汉市', '420104', '硚口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420105', '4201', '00,42,4201', '汉阳区', '42', '湖北省', '4201', '武汉市', '420105', '汉阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420106', '4201', '00,42,4201', '武昌区', '42', '湖北省', '4201', '武汉市', '420106', '武昌区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420107', '4201', '00,42,4201', '青山区', '42', '湖北省', '4201', '武汉市', '420107', '青山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420111', '4201', '00,42,4201', '洪山区', '42', '湖北省', '4201', '武汉市', '420111', '洪山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420112', '4201', '00,42,4201', '东西湖区', '42', '湖北省', '4201', '武汉市', '420112', '东西湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420113', '4201', '00,42,4201', '汉南区', '42', '湖北省', '4201', '武汉市', '420113', '汉南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420114', '4201', '00,42,4201', '蔡甸区', '42', '湖北省', '4201', '武汉市', '420114', '蔡甸区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420115', '4201', '00,42,4201', '江夏区', '42', '湖北省', '4201', '武汉市', '420115', '江夏区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420116', '4201', '00,42,4201', '黄陂区', '42', '湖北省', '4201', '武汉市', '420116', '黄陂区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420117', '4201', '00,42,4201', '新洲区', '42', '湖北省', '4201', '武汉市', '420117', '新洲区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4202', '42', '00,42', '黄石市', '42', '湖北省', '4202', '黄石市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420202', '4202', '00,42,4202', '黄石港区', '42', '湖北省', '4202', '黄石市', '420202', '黄石港区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420203', '4202', '00,42,4202', '西塞山区', '42', '湖北省', '4202', '黄石市', '420203', '西塞山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420204', '4202', '00,42,4202', '下陆区', '42', '湖北省', '4202', '黄石市', '420204', '下陆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420205', '4202', '00,42,4202', '铁山区', '42', '湖北省', '4202', '黄石市', '420205', '铁山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420222', '4202', '00,42,4202', '阳新县', '42', '湖北省', '4202', '黄石市', '420222', '阳新县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420281', '4202', '00,42,4202', '大冶市', '42', '湖北省', '4202', '黄石市', '420281', '大冶市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4203', '42', '00,42', '十堰市', '42', '湖北省', '4203', '十堰市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420302', '4203', '00,42,4203', '茅箭区', '42', '湖北省', '4203', '十堰市', '420302', '茅箭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420303', '4203', '00,42,4203', '张湾区', '42', '湖北省', '4203', '十堰市', '420303', '张湾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420304', '4203', '00,42,4203', '郧阳区', '42', '湖北省', '4203', '十堰市', '420304', '郧阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420322', '4203', '00,42,4203', '郧西县', '42', '湖北省', '4203', '十堰市', '420322', '郧西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420323', '4203', '00,42,4203', '竹山县', '42', '湖北省', '4203', '十堰市', '420323', '竹山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420324', '4203', '00,42,4203', '竹溪县', '42', '湖北省', '4203', '十堰市', '420324', '竹溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420325', '4203', '00,42,4203', '房县', '42', '湖北省', '4203', '十堰市', '420325', '房县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420381', '4203', '00,42,4203', '丹江口市', '42', '湖北省', '4203', '十堰市', '420381', '丹江口市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4205', '42', '00,42', '宜昌市', '42', '湖北省', '4205', '宜昌市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420502', '4205', '00,42,4205', '西陵区', '42', '湖北省', '4205', '宜昌市', '420502', '西陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420503', '4205', '00,42,4205', '伍家岗区', '42', '湖北省', '4205', '宜昌市', '420503', '伍家岗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420504', '4205', '00,42,4205', '点军区', '42', '湖北省', '4205', '宜昌市', '420504', '点军区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420505', '4205', '00,42,4205', '猇亭区', '42', '湖北省', '4205', '宜昌市', '420505', '猇亭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420506', '4205', '00,42,4205', '夷陵区', '42', '湖北省', '4205', '宜昌市', '420506', '夷陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420525', '4205', '00,42,4205', '远安县', '42', '湖北省', '4205', '宜昌市', '420525', '远安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420526', '4205', '00,42,4205', '兴山县', '42', '湖北省', '4205', '宜昌市', '420526', '兴山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420527', '4205', '00,42,4205', '秭归县', '42', '湖北省', '4205', '宜昌市', '420527', '秭归县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420528', '4205', '00,42,4205', '长阳土家族自治县', '42', '湖北省', '4205', '宜昌市', '420528', '长阳土家族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420529', '4205', '00,42,4205', '五峰土家族自治县', '42', '湖北省', '4205', '宜昌市', '420529', '五峰土家族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420581', '4205', '00,42,4205', '宜都市', '42', '湖北省', '4205', '宜昌市', '420581', '宜都市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420582', '4205', '00,42,4205', '当阳市', '42', '湖北省', '4205', '宜昌市', '420582', '当阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420583', '4205', '00,42,4205', '枝江市', '42', '湖北省', '4205', '宜昌市', '420583', '枝江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4206', '42', '00,42', '襄阳市', '42', '湖北省', '4206', '襄阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420602', '4206', '00,42,4206', '襄城区', '42', '湖北省', '4206', '襄阳市', '420602', '襄城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420606', '4206', '00,42,4206', '樊城区', '42', '湖北省', '4206', '襄阳市', '420606', '樊城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420607', '4206', '00,42,4206', '襄州区', '42', '湖北省', '4206', '襄阳市', '420607', '襄州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420624', '4206', '00,42,4206', '南漳县', '42', '湖北省', '4206', '襄阳市', '420624', '南漳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420625', '4206', '00,42,4206', '谷城县', '42', '湖北省', '4206', '襄阳市', '420625', '谷城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420626', '4206', '00,42,4206', '保康县', '42', '湖北省', '4206', '襄阳市', '420626', '保康县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420682', '4206', '00,42,4206', '老河口市', '42', '湖北省', '4206', '襄阳市', '420682', '老河口市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420683', '4206', '00,42,4206', '枣阳市', '42', '湖北省', '4206', '襄阳市', '420683', '枣阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420684', '4206', '00,42,4206', '宜城市', '42', '湖北省', '4206', '襄阳市', '420684', '宜城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4207', '42', '00,42', '鄂州市', '42', '湖北省', '4207', '鄂州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420702', '4207', '00,42,4207', '梁子湖区', '42', '湖北省', '4207', '鄂州市', '420702', '梁子湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420703', '4207', '00,42,4207', '华容区', '42', '湖北省', '4207', '鄂州市', '420703', '华容区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420704', '4207', '00,42,4207', '鄂城区', '42', '湖北省', '4207', '鄂州市', '420704', '鄂城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4208', '42', '00,42', '荆门市', '42', '湖北省', '4208', '荆门市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420802', '4208', '00,42,4208', '东宝区', '42', '湖北省', '4208', '荆门市', '420802', '东宝区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420804', '4208', '00,42,4208', '掇刀区', '42', '湖北省', '4208', '荆门市', '420804', '掇刀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420822', '4208', '00,42,4208', '沙洋县', '42', '湖北省', '4208', '荆门市', '420822', '沙洋县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420881', '4208', '00,42,4208', '钟祥市', '42', '湖北省', '4208', '荆门市', '420881', '钟祥市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420882', '4208', '00,42,4208', '京山市', '42', '湖北省', '4208', '荆门市', '420882', '京山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4209', '42', '00,42', '孝感市', '42', '湖北省', '4209', '孝感市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420902', '4209', '00,42,4209', '孝南区', '42', '湖北省', '4209', '孝感市', '420902', '孝南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420921', '4209', '00,42,4209', '孝昌县', '42', '湖北省', '4209', '孝感市', '420921', '孝昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420922', '4209', '00,42,4209', '大悟县', '42', '湖北省', '4209', '孝感市', '420922', '大悟县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420923', '4209', '00,42,4209', '云梦县', '42', '湖北省', '4209', '孝感市', '420923', '云梦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420981', '4209', '00,42,4209', '应城市', '42', '湖北省', '4209', '孝感市', '420981', '应城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420982', '4209', '00,42,4209', '安陆市', '42', '湖北省', '4209', '孝感市', '420982', '安陆市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420984', '4209', '00,42,4209', '汉川市', '42', '湖北省', '4209', '孝感市', '420984', '汉川市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4210', '42', '00,42', '荆州市', '42', '湖北省', '4210', '荆州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('421002', '4210', '00,42,4210', '沙市区', '42', '湖北省', '4210', '荆州市', '421002', '沙市区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421003', '4210', '00,42,4210', '荆州区', '42', '湖北省', '4210', '荆州市', '421003', '荆州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421022', '4210', '00,42,4210', '公安县', '42', '湖北省', '4210', '荆州市', '421022', '公安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421023', '4210', '00,42,4210', '监利县', '42', '湖北省', '4210', '荆州市', '421023', '监利县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421024', '4210', '00,42,4210', '江陵县', '42', '湖北省', '4210', '荆州市', '421024', '江陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421081', '4210', '00,42,4210', '石首市', '42', '湖北省', '4210', '荆州市', '421081', '石首市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421083', '4210', '00,42,4210', '洪湖市', '42', '湖北省', '4210', '荆州市', '421083', '洪湖市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421087', '4210', '00,42,4210', '松滋市', '42', '湖北省', '4210', '荆州市', '421087', '松滋市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4211', '42', '00,42', '黄冈市', '42', '湖北省', '4211', '黄冈市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('421102', '4211', '00,42,4211', '黄州区', '42', '湖北省', '4211', '黄冈市', '421102', '黄州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421121', '4211', '00,42,4211', '团风县', '42', '湖北省', '4211', '黄冈市', '421121', '团风县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421122', '4211', '00,42,4211', '红安县', '42', '湖北省', '4211', '黄冈市', '421122', '红安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421123', '4211', '00,42,4211', '罗田县', '42', '湖北省', '4211', '黄冈市', '421123', '罗田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421124', '4211', '00,42,4211', '英山县', '42', '湖北省', '4211', '黄冈市', '421124', '英山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421125', '4211', '00,42,4211', '浠水县', '42', '湖北省', '4211', '黄冈市', '421125', '浠水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421126', '4211', '00,42,4211', '蕲春县', '42', '湖北省', '4211', '黄冈市', '421126', '蕲春县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421127', '4211', '00,42,4211', '黄梅县', '42', '湖北省', '4211', '黄冈市', '421127', '黄梅县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421181', '4211', '00,42,4211', '麻城市', '42', '湖北省', '4211', '黄冈市', '421181', '麻城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421182', '4211', '00,42,4211', '武穴市', '42', '湖北省', '4211', '黄冈市', '421182', '武穴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4212', '42', '00,42', '咸宁市', '42', '湖北省', '4212', '咸宁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('421202', '4212', '00,42,4212', '咸安区', '42', '湖北省', '4212', '咸宁市', '421202', '咸安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421221', '4212', '00,42,4212', '嘉鱼县', '42', '湖北省', '4212', '咸宁市', '421221', '嘉鱼县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421222', '4212', '00,42,4212', '通城县', '42', '湖北省', '4212', '咸宁市', '421222', '通城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421223', '4212', '00,42,4212', '崇阳县', '42', '湖北省', '4212', '咸宁市', '421223', '崇阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421224', '4212', '00,42,4212', '通山县', '42', '湖北省', '4212', '咸宁市', '421224', '通山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421281', '4212', '00,42,4212', '赤壁市', '42', '湖北省', '4212', '咸宁市', '421281', '赤壁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4213', '42', '00,42', '随州市', '42', '湖北省', '4213', '随州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('421303', '4213', '00,42,4213', '曾都区', '42', '湖北省', '4213', '随州市', '421303', '曾都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421321', '4213', '00,42,4213', '随县', '42', '湖北省', '4213', '随州市', '421321', '随县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421381', '4213', '00,42,4213', '广水市', '42', '湖北省', '4213', '随州市', '421381', '广水市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4228', '42', '00,42', '恩施土家族苗族自治州', '42', '湖北省', '4228', '恩施土家族苗族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('422801', '4228', '00,42,4228', '恩施市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422801', '恩施市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('422802', '4228', '00,42,4228', '利川市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422802', '利川市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('422822', '4228', '00,42,4228', '建始县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422822', '建始县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('422823', '4228', '00,42,4228', '巴东县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422823', '巴东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('422825', '4228', '00,42,4228', '宣恩县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422825', '宣恩县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('422826', '4228', '00,42,4228', '咸丰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422826', '咸丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('422827', '4228', '00,42,4228', '来凤县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422827', '来凤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('422828', '4228', '00,42,4228', '鹤峰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422828', '鹤峰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4290', '42', '00,42', '省直辖县级行政区', '42', '湖北省', '4290', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('429004', '4290', '00,42,4290', '仙桃市', '42', '湖北省', '4290', '省直辖县级行政区', '429004', '仙桃市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('429005', '4290', '00,42,4290', '潜江市', '42', '湖北省', '4290', '省直辖县级行政区', '429005', '潜江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('429006', '4290', '00,42,4290', '天门市', '42', '湖北省', '4290', '省直辖县级行政区', '429006', '天门市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('429021', '4290', '00,42,4290', '神农架林区', '42', '湖北省', '4290', '省直辖县级行政区', '429021', '神农架林区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('43', '00', '00', '湖南省', '43', '湖南省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('4301', '43', '00,43', '长沙市', '43', '湖南省', '4301', '长沙市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430102', '4301', '00,43,4301', '芙蓉区', '43', '湖南省', '4301', '长沙市', '430102', '芙蓉区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430103', '4301', '00,43,4301', '天心区', '43', '湖南省', '4301', '长沙市', '430103', '天心区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430104', '4301', '00,43,4301', '岳麓区', '43', '湖南省', '4301', '长沙市', '430104', '岳麓区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430105', '4301', '00,43,4301', '开福区', '43', '湖南省', '4301', '长沙市', '430105', '开福区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430111', '4301', '00,43,4301', '雨花区', '43', '湖南省', '4301', '长沙市', '430111', '雨花区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430112', '4301', '00,43,4301', '望城区', '43', '湖南省', '4301', '长沙市', '430112', '望城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430121', '4301', '00,43,4301', '长沙县', '43', '湖南省', '4301', '长沙市', '430121', '长沙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430181', '4301', '00,43,4301', '浏阳市', '43', '湖南省', '4301', '长沙市', '430181', '浏阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430182', '4301', '00,43,4301', '宁乡市', '43', '湖南省', '4301', '长沙市', '430182', '宁乡市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4302', '43', '00,43', '株洲市', '43', '湖南省', '4302', '株洲市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430202', '4302', '00,43,4302', '荷塘区', '43', '湖南省', '4302', '株洲市', '430202', '荷塘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430203', '4302', '00,43,4302', '芦淞区', '43', '湖南省', '4302', '株洲市', '430203', '芦淞区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430204', '4302', '00,43,4302', '石峰区', '43', '湖南省', '4302', '株洲市', '430204', '石峰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430211', '4302', '00,43,4302', '天元区', '43', '湖南省', '4302', '株洲市', '430211', '天元区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430212', '4302', '00,43,4302', '渌口区', '43', '湖南省', '4302', '株洲市', '430212', '渌口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430223', '4302', '00,43,4302', '攸县', '43', '湖南省', '4302', '株洲市', '430223', '攸县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430224', '4302', '00,43,4302', '茶陵县', '43', '湖南省', '4302', '株洲市', '430224', '茶陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430225', '4302', '00,43,4302', '炎陵县', '43', '湖南省', '4302', '株洲市', '430225', '炎陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430281', '4302', '00,43,4302', '醴陵市', '43', '湖南省', '4302', '株洲市', '430281', '醴陵市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4303', '43', '00,43', '湘潭市', '43', '湖南省', '4303', '湘潭市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430302', '4303', '00,43,4303', '雨湖区', '43', '湖南省', '4303', '湘潭市', '430302', '雨湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430304', '4303', '00,43,4303', '岳塘区', '43', '湖南省', '4303', '湘潭市', '430304', '岳塘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430321', '4303', '00,43,4303', '湘潭县', '43', '湖南省', '4303', '湘潭市', '430321', '湘潭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430381', '4303', '00,43,4303', '湘乡市', '43', '湖南省', '4303', '湘潭市', '430381', '湘乡市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430382', '4303', '00,43,4303', '韶山市', '43', '湖南省', '4303', '湘潭市', '430382', '韶山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4304', '43', '00,43', '衡阳市', '43', '湖南省', '4304', '衡阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430405', '4304', '00,43,4304', '珠晖区', '43', '湖南省', '4304', '衡阳市', '430405', '珠晖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430406', '4304', '00,43,4304', '雁峰区', '43', '湖南省', '4304', '衡阳市', '430406', '雁峰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430407', '4304', '00,43,4304', '石鼓区', '43', '湖南省', '4304', '衡阳市', '430407', '石鼓区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430408', '4304', '00,43,4304', '蒸湘区', '43', '湖南省', '4304', '衡阳市', '430408', '蒸湘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430412', '4304', '00,43,4304', '南岳区', '43', '湖南省', '4304', '衡阳市', '430412', '南岳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430421', '4304', '00,43,4304', '衡阳县', '43', '湖南省', '4304', '衡阳市', '430421', '衡阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430422', '4304', '00,43,4304', '衡南县', '43', '湖南省', '4304', '衡阳市', '430422', '衡南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430423', '4304', '00,43,4304', '衡山县', '43', '湖南省', '4304', '衡阳市', '430423', '衡山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430424', '4304', '00,43,4304', '衡东县', '43', '湖南省', '4304', '衡阳市', '430424', '衡东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430426', '4304', '00,43,4304', '祁东县', '43', '湖南省', '4304', '衡阳市', '430426', '祁东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430481', '4304', '00,43,4304', '耒阳市', '43', '湖南省', '4304', '衡阳市', '430481', '耒阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430482', '4304', '00,43,4304', '常宁市', '43', '湖南省', '4304', '衡阳市', '430482', '常宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4305', '43', '00,43', '邵阳市', '43', '湖南省', '4305', '邵阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430502', '4305', '00,43,4305', '双清区', '43', '湖南省', '4305', '邵阳市', '430502', '双清区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430503', '4305', '00,43,4305', '大祥区', '43', '湖南省', '4305', '邵阳市', '430503', '大祥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430511', '4305', '00,43,4305', '北塔区', '43', '湖南省', '4305', '邵阳市', '430511', '北塔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430522', '4305', '00,43,4305', '新邵县', '43', '湖南省', '4305', '邵阳市', '430522', '新邵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430523', '4305', '00,43,4305', '邵阳县', '43', '湖南省', '4305', '邵阳市', '430523', '邵阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430524', '4305', '00,43,4305', '隆回县', '43', '湖南省', '4305', '邵阳市', '430524', '隆回县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430525', '4305', '00,43,4305', '洞口县', '43', '湖南省', '4305', '邵阳市', '430525', '洞口县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430527', '4305', '00,43,4305', '绥宁县', '43', '湖南省', '4305', '邵阳市', '430527', '绥宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430528', '4305', '00,43,4305', '新宁县', '43', '湖南省', '4305', '邵阳市', '430528', '新宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430529', '4305', '00,43,4305', '城步苗族自治县', '43', '湖南省', '4305', '邵阳市', '430529', '城步苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430581', '4305', '00,43,4305', '武冈市', '43', '湖南省', '4305', '邵阳市', '430581', '武冈市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430582', '4305', '00,43,4305', '邵东市', '43', '湖南省', '4305', '邵阳市', '430582', '邵东市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4306', '43', '00,43', '岳阳市', '43', '湖南省', '4306', '岳阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430602', '4306', '00,43,4306', '岳阳楼区', '43', '湖南省', '4306', '岳阳市', '430602', '岳阳楼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430603', '4306', '00,43,4306', '云溪区', '43', '湖南省', '4306', '岳阳市', '430603', '云溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430611', '4306', '00,43,4306', '君山区', '43', '湖南省', '4306', '岳阳市', '430611', '君山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430621', '4306', '00,43,4306', '岳阳县', '43', '湖南省', '4306', '岳阳市', '430621', '岳阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430623', '4306', '00,43,4306', '华容县', '43', '湖南省', '4306', '岳阳市', '430623', '华容县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430624', '4306', '00,43,4306', '湘阴县', '43', '湖南省', '4306', '岳阳市', '430624', '湘阴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430626', '4306', '00,43,4306', '平江县', '43', '湖南省', '4306', '岳阳市', '430626', '平江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430681', '4306', '00,43,4306', '汨罗市', '43', '湖南省', '4306', '岳阳市', '430681', '汨罗市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430682', '4306', '00,43,4306', '临湘市', '43', '湖南省', '4306', '岳阳市', '430682', '临湘市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4307', '43', '00,43', '常德市', '43', '湖南省', '4307', '常德市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430702', '4307', '00,43,4307', '武陵区', '43', '湖南省', '4307', '常德市', '430702', '武陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430703', '4307', '00,43,4307', '鼎城区', '43', '湖南省', '4307', '常德市', '430703', '鼎城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430721', '4307', '00,43,4307', '安乡县', '43', '湖南省', '4307', '常德市', '430721', '安乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430722', '4307', '00,43,4307', '汉寿县', '43', '湖南省', '4307', '常德市', '430722', '汉寿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430723', '4307', '00,43,4307', '澧县', '43', '湖南省', '4307', '常德市', '430723', '澧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430724', '4307', '00,43,4307', '临澧县', '43', '湖南省', '4307', '常德市', '430724', '临澧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430725', '4307', '00,43,4307', '桃源县', '43', '湖南省', '4307', '常德市', '430725', '桃源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430726', '4307', '00,43,4307', '石门县', '43', '湖南省', '4307', '常德市', '430726', '石门县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430781', '4307', '00,43,4307', '津市市', '43', '湖南省', '4307', '常德市', '430781', '津市市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4308', '43', '00,43', '张家界市', '43', '湖南省', '4308', '张家界市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430802', '4308', '00,43,4308', '永定区', '43', '湖南省', '4308', '张家界市', '430802', '永定区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430811', '4308', '00,43,4308', '武陵源区', '43', '湖南省', '4308', '张家界市', '430811', '武陵源区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430821', '4308', '00,43,4308', '慈利县', '43', '湖南省', '4308', '张家界市', '430821', '慈利县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430822', '4308', '00,43,4308', '桑植县', '43', '湖南省', '4308', '张家界市', '430822', '桑植县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4309', '43', '00,43', '益阳市', '43', '湖南省', '4309', '益阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430902', '4309', '00,43,4309', '资阳区', '43', '湖南省', '4309', '益阳市', '430902', '资阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430903', '4309', '00,43,4309', '赫山区', '43', '湖南省', '4309', '益阳市', '430903', '赫山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430921', '4309', '00,43,4309', '南县', '43', '湖南省', '4309', '益阳市', '430921', '南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430922', '4309', '00,43,4309', '桃江县', '43', '湖南省', '4309', '益阳市', '430922', '桃江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430923', '4309', '00,43,4309', '安化县', '43', '湖南省', '4309', '益阳市', '430923', '安化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430981', '4309', '00,43,4309', '沅江市', '43', '湖南省', '4309', '益阳市', '430981', '沅江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4310', '43', '00,43', '郴州市', '43', '湖南省', '4310', '郴州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('431002', '4310', '00,43,4310', '北湖区', '43', '湖南省', '4310', '郴州市', '431002', '北湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431003', '4310', '00,43,4310', '苏仙区', '43', '湖南省', '4310', '郴州市', '431003', '苏仙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431021', '4310', '00,43,4310', '桂阳县', '43', '湖南省', '4310', '郴州市', '431021', '桂阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431022', '4310', '00,43,4310', '宜章县', '43', '湖南省', '4310', '郴州市', '431022', '宜章县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431023', '4310', '00,43,4310', '永兴县', '43', '湖南省', '4310', '郴州市', '431023', '永兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431024', '4310', '00,43,4310', '嘉禾县', '43', '湖南省', '4310', '郴州市', '431024', '嘉禾县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431025', '4310', '00,43,4310', '临武县', '43', '湖南省', '4310', '郴州市', '431025', '临武县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431026', '4310', '00,43,4310', '汝城县', '43', '湖南省', '4310', '郴州市', '431026', '汝城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431027', '4310', '00,43,4310', '桂东县', '43', '湖南省', '4310', '郴州市', '431027', '桂东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431028', '4310', '00,43,4310', '安仁县', '43', '湖南省', '4310', '郴州市', '431028', '安仁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431081', '4310', '00,43,4310', '资兴市', '43', '湖南省', '4310', '郴州市', '431081', '资兴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4311', '43', '00,43', '永州市', '43', '湖南省', '4311', '永州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('431102', '4311', '00,43,4311', '零陵区', '43', '湖南省', '4311', '永州市', '431102', '零陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431103', '4311', '00,43,4311', '冷水滩区', '43', '湖南省', '4311', '永州市', '431103', '冷水滩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431121', '4311', '00,43,4311', '祁阳县', '43', '湖南省', '4311', '永州市', '431121', '祁阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431122', '4311', '00,43,4311', '东安县', '43', '湖南省', '4311', '永州市', '431122', '东安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431123', '4311', '00,43,4311', '双牌县', '43', '湖南省', '4311', '永州市', '431123', '双牌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431124', '4311', '00,43,4311', '道县', '43', '湖南省', '4311', '永州市', '431124', '道县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431125', '4311', '00,43,4311', '江永县', '43', '湖南省', '4311', '永州市', '431125', '江永县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431126', '4311', '00,43,4311', '宁远县', '43', '湖南省', '4311', '永州市', '431126', '宁远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431127', '4311', '00,43,4311', '蓝山县', '43', '湖南省', '4311', '永州市', '431127', '蓝山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431128', '4311', '00,43,4311', '新田县', '43', '湖南省', '4311', '永州市', '431128', '新田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431129', '4311', '00,43,4311', '江华瑶族自治县', '43', '湖南省', '4311', '永州市', '431129', '江华瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4312', '43', '00,43', '怀化市', '43', '湖南省', '4312', '怀化市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('431202', '4312', '00,43,4312', '鹤城区', '43', '湖南省', '4312', '怀化市', '431202', '鹤城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431221', '4312', '00,43,4312', '中方县', '43', '湖南省', '4312', '怀化市', '431221', '中方县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431222', '4312', '00,43,4312', '沅陵县', '43', '湖南省', '4312', '怀化市', '431222', '沅陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431223', '4312', '00,43,4312', '辰溪县', '43', '湖南省', '4312', '怀化市', '431223', '辰溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431224', '4312', '00,43,4312', '溆浦县', '43', '湖南省', '4312', '怀化市', '431224', '溆浦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431225', '4312', '00,43,4312', '会同县', '43', '湖南省', '4312', '怀化市', '431225', '会同县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431226', '4312', '00,43,4312', '麻阳苗族自治县', '43', '湖南省', '4312', '怀化市', '431226', '麻阳苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431227', '4312', '00,43,4312', '新晃侗族自治县', '43', '湖南省', '4312', '怀化市', '431227', '新晃侗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431228', '4312', '00,43,4312', '芷江侗族自治县', '43', '湖南省', '4312', '怀化市', '431228', '芷江侗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431229', '4312', '00,43,4312', '靖州苗族侗族自治县', '43', '湖南省', '4312', '怀化市', '431229', '靖州苗族侗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431230', '4312', '00,43,4312', '通道侗族自治县', '43', '湖南省', '4312', '怀化市', '431230', '通道侗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431281', '4312', '00,43,4312', '洪江市', '43', '湖南省', '4312', '怀化市', '431281', '洪江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4313', '43', '00,43', '娄底市', '43', '湖南省', '4313', '娄底市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('431302', '4313', '00,43,4313', '娄星区', '43', '湖南省', '4313', '娄底市', '431302', '娄星区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431321', '4313', '00,43,4313', '双峰县', '43', '湖南省', '4313', '娄底市', '431321', '双峰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431322', '4313', '00,43,4313', '新化县', '43', '湖南省', '4313', '娄底市', '431322', '新化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431381', '4313', '00,43,4313', '冷水江市', '43', '湖南省', '4313', '娄底市', '431381', '冷水江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431382', '4313', '00,43,4313', '涟源市', '43', '湖南省', '4313', '娄底市', '431382', '涟源市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4331', '43', '00,43', '湘西土家族苗族自治州', '43', '湖南省', '4331', '湘西土家族苗族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('433101', '4331', '00,43,4331', '吉首市', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433101', '吉首市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('433122', '4331', '00,43,4331', '泸溪县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433122', '泸溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('433123', '4331', '00,43,4331', '凤凰县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433123', '凤凰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('433124', '4331', '00,43,4331', '花垣县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433124', '花垣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('433125', '4331', '00,43,4331', '保靖县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433125', '保靖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('433126', '4331', '00,43,4331', '古丈县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433126', '古丈县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('433127', '4331', '00,43,4331', '永顺县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433127', '永顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('433130', '4331', '00,43,4331', '龙山县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433130', '龙山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('44', '00', '00', '广东省', '44', '广东省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('4401', '44', '00,44', '广州市', '44', '广东省', '4401', '广州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440103', '4401', '00,44,4401', '荔湾区', '44', '广东省', '4401', '广州市', '440103', '荔湾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440104', '4401', '00,44,4401', '越秀区', '44', '广东省', '4401', '广州市', '440104', '越秀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440105', '4401', '00,44,4401', '海珠区', '44', '广东省', '4401', '广州市', '440105', '海珠区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440106', '4401', '00,44,4401', '天河区', '44', '广东省', '4401', '广州市', '440106', '天河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440111', '4401', '00,44,4401', '白云区', '44', '广东省', '4401', '广州市', '440111', '白云区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440112', '4401', '00,44,4401', '黄埔区', '44', '广东省', '4401', '广州市', '440112', '黄埔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440113', '4401', '00,44,4401', '番禺区', '44', '广东省', '4401', '广州市', '440113', '番禺区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440114', '4401', '00,44,4401', '花都区', '44', '广东省', '4401', '广州市', '440114', '花都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440115', '4401', '00,44,4401', '南沙区', '44', '广东省', '4401', '广州市', '440115', '南沙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440117', '4401', '00,44,4401', '从化区', '44', '广东省', '4401', '广州市', '440117', '从化区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440118', '4401', '00,44,4401', '增城区', '44', '广东省', '4401', '广州市', '440118', '增城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4402', '44', '00,44', '韶关市', '44', '广东省', '4402', '韶关市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440203', '4402', '00,44,4402', '武江区', '44', '广东省', '4402', '韶关市', '440203', '武江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440204', '4402', '00,44,4402', '浈江区', '44', '广东省', '4402', '韶关市', '440204', '浈江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440205', '4402', '00,44,4402', '曲江区', '44', '广东省', '4402', '韶关市', '440205', '曲江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440222', '4402', '00,44,4402', '始兴县', '44', '广东省', '4402', '韶关市', '440222', '始兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440224', '4402', '00,44,4402', '仁化县', '44', '广东省', '4402', '韶关市', '440224', '仁化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440229', '4402', '00,44,4402', '翁源县', '44', '广东省', '4402', '韶关市', '440229', '翁源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440232', '4402', '00,44,4402', '乳源瑶族自治县', '44', '广东省', '4402', '韶关市', '440232', '乳源瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440233', '4402', '00,44,4402', '新丰县', '44', '广东省', '4402', '韶关市', '440233', '新丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440281', '4402', '00,44,4402', '乐昌市', '44', '广东省', '4402', '韶关市', '440281', '乐昌市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440282', '4402', '00,44,4402', '南雄市', '44', '广东省', '4402', '韶关市', '440282', '南雄市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4403', '44', '00,44', '深圳市', '44', '广东省', '4403', '深圳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440303', '4403', '00,44,4403', '罗湖区', '44', '广东省', '4403', '深圳市', '440303', '罗湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440304', '4403', '00,44,4403', '福田区', '44', '广东省', '4403', '深圳市', '440304', '福田区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440305', '4403', '00,44,4403', '南山区', '44', '广东省', '4403', '深圳市', '440305', '南山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440306', '4403', '00,44,4403', '宝安区', '44', '广东省', '4403', '深圳市', '440306', '宝安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440307', '4403', '00,44,4403', '龙岗区', '44', '广东省', '4403', '深圳市', '440307', '龙岗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440308', '4403', '00,44,4403', '盐田区', '44', '广东省', '4403', '深圳市', '440308', '盐田区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440309', '4403', '00,44,4403', '龙华区', '44', '广东省', '4403', '深圳市', '440309', '龙华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440310', '4403', '00,44,4403', '坪山区', '44', '广东省', '4403', '深圳市', '440310', '坪山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4604', '46', '00,46', '儋州市', '46', '海南省', '4604', '儋州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440311', '4403', '00,44,4403', '光明区', '44', '广东省', '4403', '深圳市', '440311', '光明区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4404', '44', '00,44', '珠海市', '44', '广东省', '4404', '珠海市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440402', '4404', '00,44,4404', '香洲区', '44', '广东省', '4404', '珠海市', '440402', '香洲区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440403', '4404', '00,44,4404', '斗门区', '44', '广东省', '4404', '珠海市', '440403', '斗门区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440404', '4404', '00,44,4404', '金湾区', '44', '广东省', '4404', '珠海市', '440404', '金湾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4405', '44', '00,44', '汕头市', '44', '广东省', '4405', '汕头市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440507', '4405', '00,44,4405', '龙湖区', '44', '广东省', '4405', '汕头市', '440507', '龙湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440511', '4405', '00,44,4405', '金平区', '44', '广东省', '4405', '汕头市', '440511', '金平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440512', '4405', '00,44,4405', '濠江区', '44', '广东省', '4405', '汕头市', '440512', '濠江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440513', '4405', '00,44,4405', '潮阳区', '44', '广东省', '4405', '汕头市', '440513', '潮阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440514', '4405', '00,44,4405', '潮南区', '44', '广东省', '4405', '汕头市', '440514', '潮南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440515', '4405', '00,44,4405', '澄海区', '44', '广东省', '4405', '汕头市', '440515', '澄海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440523', '4405', '00,44,4405', '南澳县', '44', '广东省', '4405', '汕头市', '440523', '南澳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4406', '44', '00,44', '佛山市', '44', '广东省', '4406', '佛山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440604', '4406', '00,44,4406', '禅城区', '44', '广东省', '4406', '佛山市', '440604', '禅城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440605', '4406', '00,44,4406', '南海区', '44', '广东省', '4406', '佛山市', '440605', '南海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440606', '4406', '00,44,4406', '顺德区', '44', '广东省', '4406', '佛山市', '440606', '顺德区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440607', '4406', '00,44,4406', '三水区', '44', '广东省', '4406', '佛山市', '440607', '三水区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440608', '4406', '00,44,4406', '高明区', '44', '广东省', '4406', '佛山市', '440608', '高明区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4407', '44', '00,44', '江门市', '44', '广东省', '4407', '江门市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440703', '4407', '00,44,4407', '蓬江区', '44', '广东省', '4407', '江门市', '440703', '蓬江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440704', '4407', '00,44,4407', '江海区', '44', '广东省', '4407', '江门市', '440704', '江海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440705', '4407', '00,44,4407', '新会区', '44', '广东省', '4407', '江门市', '440705', '新会区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440781', '4407', '00,44,4407', '台山市', '44', '广东省', '4407', '江门市', '440781', '台山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440783', '4407', '00,44,4407', '开平市', '44', '广东省', '4407', '江门市', '440783', '开平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440784', '4407', '00,44,4407', '鹤山市', '44', '广东省', '4407', '江门市', '440784', '鹤山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440785', '4407', '00,44,4407', '恩平市', '44', '广东省', '4407', '江门市', '440785', '恩平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4408', '44', '00,44', '湛江市', '44', '广东省', '4408', '湛江市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440802', '4408', '00,44,4408', '赤坎区', '44', '广东省', '4408', '湛江市', '440802', '赤坎区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440803', '4408', '00,44,4408', '霞山区', '44', '广东省', '4408', '湛江市', '440803', '霞山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440804', '4408', '00,44,4408', '坡头区', '44', '广东省', '4408', '湛江市', '440804', '坡头区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440811', '4408', '00,44,4408', '麻章区', '44', '广东省', '4408', '湛江市', '440811', '麻章区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440823', '4408', '00,44,4408', '遂溪县', '44', '广东省', '4408', '湛江市', '440823', '遂溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440825', '4408', '00,44,4408', '徐闻县', '44', '广东省', '4408', '湛江市', '440825', '徐闻县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440881', '4408', '00,44,4408', '廉江市', '44', '广东省', '4408', '湛江市', '440881', '廉江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440882', '4408', '00,44,4408', '雷州市', '44', '广东省', '4408', '湛江市', '440882', '雷州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440883', '4408', '00,44,4408', '吴川市', '44', '广东省', '4408', '湛江市', '440883', '吴川市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4409', '44', '00,44', '茂名市', '44', '广东省', '4409', '茂名市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440902', '4409', '00,44,4409', '茂南区', '44', '广东省', '4409', '茂名市', '440902', '茂南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440904', '4409', '00,44,4409', '电白区', '44', '广东省', '4409', '茂名市', '440904', '电白区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440981', '4409', '00,44,4409', '高州市', '44', '广东省', '4409', '茂名市', '440981', '高州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440982', '4409', '00,44,4409', '化州市', '44', '广东省', '4409', '茂名市', '440982', '化州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440983', '4409', '00,44,4409', '信宜市', '44', '广东省', '4409', '茂名市', '440983', '信宜市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4412', '44', '00,44', '肇庆市', '44', '广东省', '4412', '肇庆市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('441202', '4412', '00,44,4412', '端州区', '44', '广东省', '4412', '肇庆市', '441202', '端州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441203', '4412', '00,44,4412', '鼎湖区', '44', '广东省', '4412', '肇庆市', '441203', '鼎湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441204', '4412', '00,44,4412', '高要区', '44', '广东省', '4412', '肇庆市', '441204', '高要区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441223', '4412', '00,44,4412', '广宁县', '44', '广东省', '4412', '肇庆市', '441223', '广宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441224', '4412', '00,44,4412', '怀集县', '44', '广东省', '4412', '肇庆市', '441224', '怀集县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441225', '4412', '00,44,4412', '封开县', '44', '广东省', '4412', '肇庆市', '441225', '封开县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441226', '4412', '00,44,4412', '德庆县', '44', '广东省', '4412', '肇庆市', '441226', '德庆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441284', '4412', '00,44,4412', '四会市', '44', '广东省', '4412', '肇庆市', '441284', '四会市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4413', '44', '00,44', '惠州市', '44', '广东省', '4413', '惠州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('441302', '4413', '00,44,4413', '惠城区', '44', '广东省', '4413', '惠州市', '441302', '惠城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441303', '4413', '00,44,4413', '惠阳区', '44', '广东省', '4413', '惠州市', '441303', '惠阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441322', '4413', '00,44,4413', '博罗县', '44', '广东省', '4413', '惠州市', '441322', '博罗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441323', '4413', '00,44,4413', '惠东县', '44', '广东省', '4413', '惠州市', '441323', '惠东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441324', '4413', '00,44,4413', '龙门县', '44', '广东省', '4413', '惠州市', '441324', '龙门县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4414', '44', '00,44', '梅州市', '44', '广东省', '4414', '梅州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('441402', '4414', '00,44,4414', '梅江区', '44', '广东省', '4414', '梅州市', '441402', '梅江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441403', '4414', '00,44,4414', '梅县区', '44', '广东省', '4414', '梅州市', '441403', '梅县区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441422', '4414', '00,44,4414', '大埔县', '44', '广东省', '4414', '梅州市', '441422', '大埔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441423', '4414', '00,44,4414', '丰顺县', '44', '广东省', '4414', '梅州市', '441423', '丰顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441424', '4414', '00,44,4414', '五华县', '44', '广东省', '4414', '梅州市', '441424', '五华县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441426', '4414', '00,44,4414', '平远县', '44', '广东省', '4414', '梅州市', '441426', '平远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441427', '4414', '00,44,4414', '蕉岭县', '44', '广东省', '4414', '梅州市', '441427', '蕉岭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441481', '4414', '00,44,4414', '兴宁市', '44', '广东省', '4414', '梅州市', '441481', '兴宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441502', '4415', '00,44,4415', '城区', '44', '广东省', '4415', '汕尾市', '441502', '城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441521', '4415', '00,44,4415', '海丰县', '44', '广东省', '4415', '汕尾市', '441521', '海丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441523', '4415', '00,44,4415', '陆河县', '44', '广东省', '4415', '汕尾市', '441523', '陆河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441581', '4415', '00,44,4415', '陆丰市', '44', '广东省', '4415', '汕尾市', '441581', '陆丰市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4416', '44', '00,44', '河源市', '44', '广东省', '4416', '河源市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('441602', '4416', '00,44,4416', '源城区', '44', '广东省', '4416', '河源市', '441602', '源城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441621', '4416', '00,44,4416', '紫金县', '44', '广东省', '4416', '河源市', '441621', '紫金县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441622', '4416', '00,44,4416', '龙川县', '44', '广东省', '4416', '河源市', '441622', '龙川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441623', '4416', '00,44,4416', '连平县', '44', '广东省', '4416', '河源市', '441623', '连平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441624', '4416', '00,44,4416', '和平县', '44', '广东省', '4416', '河源市', '441624', '和平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441625', '4416', '00,44,4416', '东源县', '44', '广东省', '4416', '河源市', '441625', '东源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4417', '44', '00,44', '阳江市', '44', '广东省', '4417', '阳江市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('441702', '4417', '00,44,4417', '江城区', '44', '广东省', '4417', '阳江市', '441702', '江城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441704', '4417', '00,44,4417', '阳东区', '44', '广东省', '4417', '阳江市', '441704', '阳东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441721', '4417', '00,44,4417', '阳西县', '44', '广东省', '4417', '阳江市', '441721', '阳西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441781', '4417', '00,44,4417', '阳春市', '44', '广东省', '4417', '阳江市', '441781', '阳春市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4418', '44', '00,44', '清远市', '44', '广东省', '4418', '清远市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('441802', '4418', '00,44,4418', '清城区', '44', '广东省', '4418', '清远市', '441802', '清城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441803', '4418', '00,44,4418', '清新区', '44', '广东省', '4418', '清远市', '441803', '清新区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441821', '4418', '00,44,4418', '佛冈县', '44', '广东省', '4418', '清远市', '441821', '佛冈县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441823', '4418', '00,44,4418', '阳山县', '44', '广东省', '4418', '清远市', '441823', '阳山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441825', '4418', '00,44,4418', '连山壮族瑶族自治县', '44', '广东省', '4418', '清远市', '441825', '连山壮族瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441826', '4418', '00,44,4418', '连南瑶族自治县', '44', '广东省', '4418', '清远市', '441826', '连南瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441881', '4418', '00,44,4418', '英德市', '44', '广东省', '4418', '清远市', '441881', '英德市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441882', '4418', '00,44,4418', '连州市', '44', '广东省', '4418', '清远市', '441882', '连州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4419', '44', '00,44', '东莞市', '44', '广东省', '4419', '东莞市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('441900', '4419', '00,44,4419', '东莞市', '44', '广东省', '4419', '东莞市', '441900', '东莞市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4420', '44', '00,44', '中山市', '44', '广东省', '4420', '中山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('442000', '4420', '00,44,4420', '中山市', '44', '广东省', '4420', '中山市', '442000', '中山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4451', '44', '00,44', '潮州市', '44', '广东省', '4451', '潮州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('445102', '4451', '00,44,4451', '湘桥区', '44', '广东省', '4451', '潮州市', '445102', '湘桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445103', '4451', '00,44,4451', '潮安区', '44', '广东省', '4451', '潮州市', '445103', '潮安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445122', '4451', '00,44,4451', '饶平县', '44', '广东省', '4451', '潮州市', '445122', '饶平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4452', '44', '00,44', '揭阳市', '44', '广东省', '4452', '揭阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('445202', '4452', '00,44,4452', '榕城区', '44', '广东省', '4452', '揭阳市', '445202', '榕城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445203', '4452', '00,44,4452', '揭东区', '44', '广东省', '4452', '揭阳市', '445203', '揭东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445222', '4452', '00,44,4452', '揭西县', '44', '广东省', '4452', '揭阳市', '445222', '揭西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445224', '4452', '00,44,4452', '惠来县', '44', '广东省', '4452', '揭阳市', '445224', '惠来县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445281', '4452', '00,44,4452', '普宁市', '44', '广东省', '4452', '揭阳市', '445281', '普宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4453', '44', '00,44', '云浮市', '44', '广东省', '4453', '云浮市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('445302', '4453', '00,44,4453', '云城区', '44', '广东省', '4453', '云浮市', '445302', '云城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445303', '4453', '00,44,4453', '云安区', '44', '广东省', '4453', '云浮市', '445303', '云安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445321', '4453', '00,44,4453', '新兴县', '44', '广东省', '4453', '云浮市', '445321', '新兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445322', '4453', '00,44,4453', '郁南县', '44', '广东省', '4453', '云浮市', '445322', '郁南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445381', '4453', '00,44,4453', '罗定市', '44', '广东省', '4453', '云浮市', '445381', '罗定市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('45', '00', '00', '广西壮族自治区', '45', '广西壮族自治区', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('4501', '45', '00,45', '南宁市', '45', '广西壮族自治区', '4501', '南宁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450102', '4501', '00,45,4501', '兴宁区', '45', '广西壮族自治区', '4501', '南宁市', '450102', '兴宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450103', '4501', '00,45,4501', '青秀区', '45', '广西壮族自治区', '4501', '南宁市', '450103', '青秀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450105', '4501', '00,45,4501', '江南区', '45', '广西壮族自治区', '4501', '南宁市', '450105', '江南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450107', '4501', '00,45,4501', '西乡塘区', '45', '广西壮族自治区', '4501', '南宁市', '450107', '西乡塘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450108', '4501', '00,45,4501', '良庆区', '45', '广西壮族自治区', '4501', '南宁市', '450108', '良庆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450109', '4501', '00,45,4501', '邕宁区', '45', '广西壮族自治区', '4501', '南宁市', '450109', '邕宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450110', '4501', '00,45,4501', '武鸣区', '45', '广西壮族自治区', '4501', '南宁市', '450110', '武鸣区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450123', '4501', '00,45,4501', '隆安县', '45', '广西壮族自治区', '4501', '南宁市', '450123', '隆安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450124', '4501', '00,45,4501', '马山县', '45', '广西壮族自治区', '4501', '南宁市', '450124', '马山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450125', '4501', '00,45,4501', '上林县', '45', '广西壮族自治区', '4501', '南宁市', '450125', '上林县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450126', '4501', '00,45,4501', '宾阳县', '45', '广西壮族自治区', '4501', '南宁市', '450126', '宾阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450127', '4501', '00,45,4501', '横县', '45', '广西壮族自治区', '4501', '南宁市', '450127', '横县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4502', '45', '00,45', '柳州市', '45', '广西壮族自治区', '4502', '柳州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450202', '4502', '00,45,4502', '城中区', '45', '广西壮族自治区', '4502', '柳州市', '450202', '城中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450203', '4502', '00,45,4502', '鱼峰区', '45', '广西壮族自治区', '4502', '柳州市', '450203', '鱼峰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450204', '4502', '00,45,4502', '柳南区', '45', '广西壮族自治区', '4502', '柳州市', '450204', '柳南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450205', '4502', '00,45,4502', '柳北区', '45', '广西壮族自治区', '4502', '柳州市', '450205', '柳北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450206', '4502', '00,45,4502', '柳江区', '45', '广西壮族自治区', '4502', '柳州市', '450206', '柳江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450222', '4502', '00,45,4502', '柳城县', '45', '广西壮族自治区', '4502', '柳州市', '450222', '柳城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450223', '4502', '00,45,4502', '鹿寨县', '45', '广西壮族自治区', '4502', '柳州市', '450223', '鹿寨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450224', '4502', '00,45,4502', '融安县', '45', '广西壮族自治区', '4502', '柳州市', '450224', '融安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450225', '4502', '00,45,4502', '融水苗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450225', '融水苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450226', '4502', '00,45,4502', '三江侗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450226', '三江侗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4503', '45', '00,45', '桂林市', '45', '广西壮族自治区', '4503', '桂林市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450302', '4503', '00,45,4503', '秀峰区', '45', '广西壮族自治区', '4503', '桂林市', '450302', '秀峰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450303', '4503', '00,45,4503', '叠彩区', '45', '广西壮族自治区', '4503', '桂林市', '450303', '叠彩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450304', '4503', '00,45,4503', '象山区', '45', '广西壮族自治区', '4503', '桂林市', '450304', '象山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450305', '4503', '00,45,4503', '七星区', '45', '广西壮族自治区', '4503', '桂林市', '450305', '七星区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450311', '4503', '00,45,4503', '雁山区', '45', '广西壮族自治区', '4503', '桂林市', '450311', '雁山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450312', '4503', '00,45,4503', '临桂区', '45', '广西壮族自治区', '4503', '桂林市', '450312', '临桂区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450321', '4503', '00,45,4503', '阳朔县', '45', '广西壮族自治区', '4503', '桂林市', '450321', '阳朔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450323', '4503', '00,45,4503', '灵川县', '45', '广西壮族自治区', '4503', '桂林市', '450323', '灵川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450324', '4503', '00,45,4503', '全州县', '45', '广西壮族自治区', '4503', '桂林市', '450324', '全州县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450325', '4503', '00,45,4503', '兴安县', '45', '广西壮族自治区', '4503', '桂林市', '450325', '兴安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450326', '4503', '00,45,4503', '永福县', '45', '广西壮族自治区', '4503', '桂林市', '450326', '永福县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450327', '4503', '00,45,4503', '灌阳县', '45', '广西壮族自治区', '4503', '桂林市', '450327', '灌阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450328', '4503', '00,45,4503', '龙胜各族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450328', '龙胜各族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450329', '4503', '00,45,4503', '资源县', '45', '广西壮族自治区', '4503', '桂林市', '450329', '资源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450330', '4503', '00,45,4503', '平乐县', '45', '广西壮族自治区', '4503', '桂林市', '450330', '平乐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450332', '4503', '00,45,4503', '恭城瑶族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450332', '恭城瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450381', '4503', '00,45,4503', '荔浦市', '45', '广西壮族自治区', '4503', '桂林市', '450381', '荔浦市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4504', '45', '00,45', '梧州市', '45', '广西壮族自治区', '4504', '梧州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450403', '4504', '00,45,4504', '万秀区', '45', '广西壮族自治区', '4504', '梧州市', '450403', '万秀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450405', '4504', '00,45,4504', '长洲区', '45', '广西壮族自治区', '4504', '梧州市', '450405', '长洲区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450406', '4504', '00,45,4504', '龙圩区', '45', '广西壮族自治区', '4504', '梧州市', '450406', '龙圩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450421', '4504', '00,45,4504', '苍梧县', '45', '广西壮族自治区', '4504', '梧州市', '450421', '苍梧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450422', '4504', '00,45,4504', '藤县', '45', '广西壮族自治区', '4504', '梧州市', '450422', '藤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450423', '4504', '00,45,4504', '蒙山县', '45', '广西壮族自治区', '4504', '梧州市', '450423', '蒙山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450481', '4504', '00,45,4504', '岑溪市', '45', '广西壮族自治区', '4504', '梧州市', '450481', '岑溪市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4505', '45', '00,45', '北海市', '45', '广西壮族自治区', '4505', '北海市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450502', '4505', '00,45,4505', '海城区', '45', '广西壮族自治区', '4505', '北海市', '450502', '海城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450503', '4505', '00,45,4505', '银海区', '45', '广西壮族自治区', '4505', '北海市', '450503', '银海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450512', '4505', '00,45,4505', '铁山港区', '45', '广西壮族自治区', '4505', '北海市', '450512', '铁山港区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450521', '4505', '00,45,4505', '合浦县', '45', '广西壮族自治区', '4505', '北海市', '450521', '合浦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4506', '45', '00,45', '防城港市', '45', '广西壮族自治区', '4506', '防城港市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450602', '4506', '00,45,4506', '港口区', '45', '广西壮族自治区', '4506', '防城港市', '450602', '港口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450603', '4506', '00,45,4506', '防城区', '45', '广西壮族自治区', '4506', '防城港市', '450603', '防城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450621', '4506', '00,45,4506', '上思县', '45', '广西壮族自治区', '4506', '防城港市', '450621', '上思县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450681', '4506', '00,45,4506', '东兴市', '45', '广西壮族自治区', '4506', '防城港市', '450681', '东兴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4507', '45', '00,45', '钦州市', '45', '广西壮族自治区', '4507', '钦州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450702', '4507', '00,45,4507', '钦南区', '45', '广西壮族自治区', '4507', '钦州市', '450702', '钦南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450703', '4507', '00,45,4507', '钦北区', '45', '广西壮族自治区', '4507', '钦州市', '450703', '钦北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450721', '4507', '00,45,4507', '灵山县', '45', '广西壮族自治区', '4507', '钦州市', '450721', '灵山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450722', '4507', '00,45,4507', '浦北县', '45', '广西壮族自治区', '4507', '钦州市', '450722', '浦北县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4508', '45', '00,45', '贵港市', '45', '广西壮族自治区', '4508', '贵港市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450802', '4508', '00,45,4508', '港北区', '45', '广西壮族自治区', '4508', '贵港市', '450802', '港北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450803', '4508', '00,45,4508', '港南区', '45', '广西壮族自治区', '4508', '贵港市', '450803', '港南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450804', '4508', '00,45,4508', '覃塘区', '45', '广西壮族自治区', '4508', '贵港市', '450804', '覃塘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450821', '4508', '00,45,4508', '平南县', '45', '广西壮族自治区', '4508', '贵港市', '450821', '平南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450881', '4508', '00,45,4508', '桂平市', '45', '广西壮族自治区', '4508', '贵港市', '450881', '桂平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4509', '45', '00,45', '玉林市', '45', '广西壮族自治区', '4509', '玉林市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450902', '4509', '00,45,4509', '玉州区', '45', '广西壮族自治区', '4509', '玉林市', '450902', '玉州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450903', '4509', '00,45,4509', '福绵区', '45', '广西壮族自治区', '4509', '玉林市', '450903', '福绵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450921', '4509', '00,45,4509', '容县', '45', '广西壮族自治区', '4509', '玉林市', '450921', '容县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450922', '4509', '00,45,4509', '陆川县', '45', '广西壮族自治区', '4509', '玉林市', '450922', '陆川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450923', '4509', '00,45,4509', '博白县', '45', '广西壮族自治区', '4509', '玉林市', '450923', '博白县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('460300', '4603', '00,46,4603', '三沙市', '46', '海南省', '4603', '三沙市', '460300', '三沙市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450924', '4509', '00,45,4509', '兴业县', '45', '广西壮族自治区', '4509', '玉林市', '450924', '兴业县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450981', '4509', '00,45,4509', '北流市', '45', '广西壮族自治区', '4509', '玉林市', '450981', '北流市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4510', '45', '00,45', '百色市', '45', '广西壮族自治区', '4510', '百色市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('451002', '4510', '00,45,4510', '右江区', '45', '广西壮族自治区', '4510', '百色市', '451002', '右江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451003', '4510', '00,45,4510', '田阳区', '45', '广西壮族自治区', '4510', '百色市', '451003', '田阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451022', '4510', '00,45,4510', '田东县', '45', '广西壮族自治区', '4510', '百色市', '451022', '田东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451024', '4510', '00,45,4510', '德保县', '45', '广西壮族自治区', '4510', '百色市', '451024', '德保县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451026', '4510', '00,45,4510', '那坡县', '45', '广西壮族自治区', '4510', '百色市', '451026', '那坡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451027', '4510', '00,45,4510', '凌云县', '45', '广西壮族自治区', '4510', '百色市', '451027', '凌云县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451028', '4510', '00,45,4510', '乐业县', '45', '广西壮族自治区', '4510', '百色市', '451028', '乐业县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451029', '4510', '00,45,4510', '田林县', '45', '广西壮族自治区', '4510', '百色市', '451029', '田林县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451030', '4510', '00,45,4510', '西林县', '45', '广西壮族自治区', '4510', '百色市', '451030', '西林县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451031', '4510', '00,45,4510', '隆林各族自治县', '45', '广西壮族自治区', '4510', '百色市', '451031', '隆林各族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451081', '4510', '00,45,4510', '靖西市', '45', '广西壮族自治区', '4510', '百色市', '451081', '靖西市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451082', '4510', '00,45,4510', '平果市', '45', '广西壮族自治区', '4510', '百色市', '451082', '平果市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4511', '45', '00,45', '贺州市', '45', '广西壮族自治区', '4511', '贺州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('451102', '4511', '00,45,4511', '八步区', '45', '广西壮族自治区', '4511', '贺州市', '451102', '八步区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451103', '4511', '00,45,4511', '平桂区', '45', '广西壮族自治区', '4511', '贺州市', '451103', '平桂区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451121', '4511', '00,45,4511', '昭平县', '45', '广西壮族自治区', '4511', '贺州市', '451121', '昭平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451122', '4511', '00,45,4511', '钟山县', '45', '广西壮族自治区', '4511', '贺州市', '451122', '钟山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451123', '4511', '00,45,4511', '富川瑶族自治县', '45', '广西壮族自治区', '4511', '贺州市', '451123', '富川瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4512', '45', '00,45', '河池市', '45', '广西壮族自治区', '4512', '河池市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('451202', '4512', '00,45,4512', '金城江区', '45', '广西壮族自治区', '4512', '河池市', '451202', '金城江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451203', '4512', '00,45,4512', '宜州区', '45', '广西壮族自治区', '4512', '河池市', '451203', '宜州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451221', '4512', '00,45,4512', '南丹县', '45', '广西壮族自治区', '4512', '河池市', '451221', '南丹县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451222', '4512', '00,45,4512', '天峨县', '45', '广西壮族自治区', '4512', '河池市', '451222', '天峨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451223', '4512', '00,45,4512', '凤山县', '45', '广西壮族自治区', '4512', '河池市', '451223', '凤山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451224', '4512', '00,45,4512', '东兰县', '45', '广西壮族自治区', '4512', '河池市', '451224', '东兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451225', '4512', '00,45,4512', '罗城仫佬族自治县', '45', '广西壮族自治区', '4512', '河池市', '451225', '罗城仫佬族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451226', '4512', '00,45,4512', '环江毛南族自治县', '45', '广西壮族自治区', '4512', '河池市', '451226', '环江毛南族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451227', '4512', '00,45,4512', '巴马瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451227', '巴马瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451228', '4512', '00,45,4512', '都安瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451228', '都安瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451229', '4512', '00,45,4512', '大化瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451229', '大化瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4513', '45', '00,45', '来宾市', '45', '广西壮族自治区', '4513', '来宾市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('451302', '4513', '00,45,4513', '兴宾区', '45', '广西壮族自治区', '4513', '来宾市', '451302', '兴宾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451321', '4513', '00,45,4513', '忻城县', '45', '广西壮族自治区', '4513', '来宾市', '451321', '忻城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451322', '4513', '00,45,4513', '象州县', '45', '广西壮族自治区', '4513', '来宾市', '451322', '象州县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451323', '4513', '00,45,4513', '武宣县', '45', '广西壮族自治区', '4513', '来宾市', '451323', '武宣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451324', '4513', '00,45,4513', '金秀瑶族自治县', '45', '广西壮族自治区', '4513', '来宾市', '451324', '金秀瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451381', '4513', '00,45,4513', '合山市', '45', '广西壮族自治区', '4513', '来宾市', '451381', '合山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4514', '45', '00,45', '崇左市', '45', '广西壮族自治区', '4514', '崇左市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('451402', '4514', '00,45,4514', '江州区', '45', '广西壮族自治区', '4514', '崇左市', '451402', '江州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451421', '4514', '00,45,4514', '扶绥县', '45', '广西壮族自治区', '4514', '崇左市', '451421', '扶绥县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451422', '4514', '00,45,4514', '宁明县', '45', '广西壮族自治区', '4514', '崇左市', '451422', '宁明县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451423', '4514', '00,45,4514', '龙州县', '45', '广西壮族自治区', '4514', '崇左市', '451423', '龙州县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451424', '4514', '00,45,4514', '大新县', '45', '广西壮族自治区', '4514', '崇左市', '451424', '大新县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451425', '4514', '00,45,4514', '天等县', '45', '广西壮族自治区', '4514', '崇左市', '451425', '天等县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451481', '4514', '00,45,4514', '凭祥市', '45', '广西壮族自治区', '4514', '崇左市', '451481', '凭祥市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('46', '00', '00', '海南省', '46', '海南省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('4601', '46', '00,46', '海口市', '46', '海南省', '4601', '海口市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('460105', '4601', '00,46,4601', '秀英区', '46', '海南省', '4601', '海口市', '460105', '秀英区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('460106', '4601', '00,46,4601', '龙华区', '46', '海南省', '4601', '海口市', '460106', '龙华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('460107', '4601', '00,46,4601', '琼山区', '46', '海南省', '4601', '海口市', '460107', '琼山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('460108', '4601', '00,46,4601', '美兰区', '46', '海南省', '4601', '海口市', '460108', '美兰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4602', '46', '00,46', '三亚市', '46', '海南省', '4602', '三亚市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('460202', '4602', '00,46,4602', '海棠区', '46', '海南省', '4602', '三亚市', '460202', '海棠区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('460203', '4602', '00,46,4602', '吉阳区', '46', '海南省', '4602', '三亚市', '460203', '吉阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('460204', '4602', '00,46,4602', '天涯区', '46', '海南省', '4602', '三亚市', '460204', '天涯区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('460205', '4602', '00,46,4602', '崖州区', '46', '海南省', '4602', '三亚市', '460205', '崖州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4603', '46', '00,46', '三沙市', '46', '海南省', '4603', '三沙市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('460400', '4604', '00,46,4604', '儋州市', '46', '海南省', '4604', '儋州市', '460400', '儋州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4690', '46', '00,46', '省直辖县级行政区', '46', '海南省', '4690', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('469001', '4690', '00,46,4690', '五指山市', '46', '海南省', '4690', '省直辖县级行政区', '469001', '五指山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469002', '4690', '00,46,4690', '琼海市', '46', '海南省', '4690', '省直辖县级行政区', '469002', '琼海市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469005', '4690', '00,46,4690', '文昌市', '46', '海南省', '4690', '省直辖县级行政区', '469005', '文昌市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469006', '4690', '00,46,4690', '万宁市', '46', '海南省', '4690', '省直辖县级行政区', '469006', '万宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469007', '4690', '00,46,4690', '东方市', '46', '海南省', '4690', '省直辖县级行政区', '469007', '东方市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469021', '4690', '00,46,4690', '定安县', '46', '海南省', '4690', '省直辖县级行政区', '469021', '定安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469022', '4690', '00,46,4690', '屯昌县', '46', '海南省', '4690', '省直辖县级行政区', '469022', '屯昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469023', '4690', '00,46,4690', '澄迈县', '46', '海南省', '4690', '省直辖县级行政区', '469023', '澄迈县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469024', '4690', '00,46,4690', '临高县', '46', '海南省', '4690', '省直辖县级行政区', '469024', '临高县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469025', '4690', '00,46,4690', '白沙黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469025', '白沙黎族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469026', '4690', '00,46,4690', '昌江黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469026', '昌江黎族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469027', '4690', '00,46,4690', '乐东黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469027', '乐东黎族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469028', '4690', '00,46,4690', '陵水黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469028', '陵水黎族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469029', '4690', '00,46,4690', '保亭黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469029', '保亭黎族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469030', '4690', '00,46,4690', '琼中黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469030', '琼中黎族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('50', '00', '00', '重庆市', '50', '重庆市', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('5001', '50', '00,50', '重庆市', '50', '重庆市', '5001', '重庆市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('500101', '5001', '00,50,5001', '万州区', '50', '重庆市', '5001', '重庆市', '500101', '万州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500102', '5001', '00,50,5001', '涪陵区', '50', '重庆市', '5001', '重庆市', '500102', '涪陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500103', '5001', '00,50,5001', '渝中区', '50', '重庆市', '5001', '重庆市', '500103', '渝中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500104', '5001', '00,50,5001', '大渡口区', '50', '重庆市', '5001', '重庆市', '500104', '大渡口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500105', '5001', '00,50,5001', '江北区', '50', '重庆市', '5001', '重庆市', '500105', '江北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500106', '5001', '00,50,5001', '沙坪坝区', '50', '重庆市', '5001', '重庆市', '500106', '沙坪坝区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500107', '5001', '00,50,5001', '九龙坡区', '50', '重庆市', '5001', '重庆市', '500107', '九龙坡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500108', '5001', '00,50,5001', '南岸区', '50', '重庆市', '5001', '重庆市', '500108', '南岸区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500109', '5001', '00,50,5001', '北碚区', '50', '重庆市', '5001', '重庆市', '500109', '北碚区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500110', '5001', '00,50,5001', '綦江区', '50', '重庆市', '5001', '重庆市', '500110', '綦江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500111', '5001', '00,50,5001', '大足区', '50', '重庆市', '5001', '重庆市', '500111', '大足区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500112', '5001', '00,50,5001', '渝北区', '50', '重庆市', '5001', '重庆市', '500112', '渝北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500113', '5001', '00,50,5001', '巴南区', '50', '重庆市', '5001', '重庆市', '500113', '巴南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500114', '5001', '00,50,5001', '黔江区', '50', '重庆市', '5001', '重庆市', '500114', '黔江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500115', '5001', '00,50,5001', '长寿区', '50', '重庆市', '5001', '重庆市', '500115', '长寿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500116', '5001', '00,50,5001', '江津区', '50', '重庆市', '5001', '重庆市', '500116', '江津区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500117', '5001', '00,50,5001', '合川区', '50', '重庆市', '5001', '重庆市', '500117', '合川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500118', '5001', '00,50,5001', '永川区', '50', '重庆市', '5001', '重庆市', '500118', '永川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500119', '5001', '00,50,5001', '南川区', '50', '重庆市', '5001', '重庆市', '500119', '南川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500120', '5001', '00,50,5001', '璧山区', '50', '重庆市', '5001', '重庆市', '500120', '璧山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500151', '5001', '00,50,5001', '铜梁区', '50', '重庆市', '5001', '重庆市', '500151', '铜梁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500152', '5001', '00,50,5001', '潼南区', '50', '重庆市', '5001', '重庆市', '500152', '潼南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500153', '5001', '00,50,5001', '荣昌区', '50', '重庆市', '5001', '重庆市', '500153', '荣昌区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500154', '5001', '00,50,5001', '开州区', '50', '重庆市', '5001', '重庆市', '500154', '开州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500155', '5001', '00,50,5001', '梁平区', '50', '重庆市', '5001', '重庆市', '500155', '梁平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500156', '5001', '00,50,5001', '武隆区', '50', '重庆市', '5001', '重庆市', '500156', '武隆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5002', '50', '00,50', '重庆市', '50', '重庆市', '5002', '重庆市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('500229', '5002', '00,50,5002', '城口县', '50', '重庆市', '5002', '重庆市', '500229', '城口县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500230', '5002', '00,50,5002', '丰都县', '50', '重庆市', '5002', '重庆市', '500230', '丰都县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500231', '5002', '00,50,5002', '垫江县', '50', '重庆市', '5002', '重庆市', '500231', '垫江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500233', '5002', '00,50,5002', '忠县', '50', '重庆市', '5002', '重庆市', '500233', '忠县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500235', '5002', '00,50,5002', '云阳县', '50', '重庆市', '5002', '重庆市', '500235', '云阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500236', '5002', '00,50,5002', '奉节县', '50', '重庆市', '5002', '重庆市', '500236', '奉节县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500237', '5002', '00,50,5002', '巫山县', '50', '重庆市', '5002', '重庆市', '500237', '巫山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500238', '5002', '00,50,5002', '巫溪县', '50', '重庆市', '5002', '重庆市', '500238', '巫溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500240', '5002', '00,50,5002', '石柱土家族自治县', '50', '重庆市', '5002', '重庆市', '500240', '石柱土家族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500241', '5002', '00,50,5002', '秀山土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500241', '秀山土家族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500242', '5002', '00,50,5002', '酉阳土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500242', '酉阳土家族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500243', '5002', '00,50,5002', '彭水苗族土家族自治县', '50', '重庆市', '5002', '重庆市', '500243', '彭水苗族土家族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('51', '00', '00', '四川省', '51', '四川省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('5101', '51', '00,51', '成都市', '51', '四川省', '5101', '成都市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510104', '5101', '00,51,5101', '锦江区', '51', '四川省', '5101', '成都市', '510104', '锦江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510105', '5101', '00,51,5101', '青羊区', '51', '四川省', '5101', '成都市', '510105', '青羊区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510106', '5101', '00,51,5101', '金牛区', '51', '四川省', '5101', '成都市', '510106', '金牛区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510107', '5101', '00,51,5101', '武侯区', '51', '四川省', '5101', '成都市', '510107', '武侯区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510108', '5101', '00,51,5101', '成华区', '51', '四川省', '5101', '成都市', '510108', '成华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510112', '5101', '00,51,5101', '龙泉驿区', '51', '四川省', '5101', '成都市', '510112', '龙泉驿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510113', '5101', '00,51,5101', '青白江区', '51', '四川省', '5101', '成都市', '510113', '青白江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510114', '5101', '00,51,5101', '新都区', '51', '四川省', '5101', '成都市', '510114', '新都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510115', '5101', '00,51,5101', '温江区', '51', '四川省', '5101', '成都市', '510115', '温江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510116', '5101', '00,51,5101', '双流区', '51', '四川省', '5101', '成都市', '510116', '双流区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510117', '5101', '00,51,5101', '郫都区', '51', '四川省', '5101', '成都市', '510117', '郫都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510121', '5101', '00,51,5101', '金堂县', '51', '四川省', '5101', '成都市', '510121', '金堂县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510129', '5101', '00,51,5101', '大邑县', '51', '四川省', '5101', '成都市', '510129', '大邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510131', '5101', '00,51,5101', '蒲江县', '51', '四川省', '5101', '成都市', '510131', '蒲江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510132', '5101', '00,51,5101', '新津县', '51', '四川省', '5101', '成都市', '510132', '新津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510181', '5101', '00,51,5101', '都江堰市', '51', '四川省', '5101', '成都市', '510181', '都江堰市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510182', '5101', '00,51,5101', '彭州市', '51', '四川省', '5101', '成都市', '510182', '彭州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510183', '5101', '00,51,5101', '邛崃市', '51', '四川省', '5101', '成都市', '510183', '邛崃市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510184', '5101', '00,51,5101', '崇州市', '51', '四川省', '5101', '成都市', '510184', '崇州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510185', '5101', '00,51,5101', '简阳市', '51', '四川省', '5101', '成都市', '510185', '简阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5103', '51', '00,51', '自贡市', '51', '四川省', '5103', '自贡市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510302', '5103', '00,51,5103', '自流井区', '51', '四川省', '5103', '自贡市', '510302', '自流井区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510303', '5103', '00,51,5103', '贡井区', '51', '四川省', '5103', '自贡市', '510303', '贡井区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510304', '5103', '00,51,5103', '大安区', '51', '四川省', '5103', '自贡市', '510304', '大安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510311', '5103', '00,51,5103', '沿滩区', '51', '四川省', '5103', '自贡市', '510311', '沿滩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510321', '5103', '00,51,5103', '荣县', '51', '四川省', '5103', '自贡市', '510321', '荣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510322', '5103', '00,51,5103', '富顺县', '51', '四川省', '5103', '自贡市', '510322', '富顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5104', '51', '00,51', '攀枝花市', '51', '四川省', '5104', '攀枝花市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510402', '5104', '00,51,5104', '东区', '51', '四川省', '5104', '攀枝花市', '510402', '东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510403', '5104', '00,51,5104', '西区', '51', '四川省', '5104', '攀枝花市', '510403', '西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510411', '5104', '00,51,5104', '仁和区', '51', '四川省', '5104', '攀枝花市', '510411', '仁和区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510421', '5104', '00,51,5104', '米易县', '51', '四川省', '5104', '攀枝花市', '510421', '米易县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510422', '5104', '00,51,5104', '盐边县', '51', '四川省', '5104', '攀枝花市', '510422', '盐边县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5105', '51', '00,51', '泸州市', '51', '四川省', '5105', '泸州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510502', '5105', '00,51,5105', '江阳区', '51', '四川省', '5105', '泸州市', '510502', '江阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510503', '5105', '00,51,5105', '纳溪区', '51', '四川省', '5105', '泸州市', '510503', '纳溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510504', '5105', '00,51,5105', '龙马潭区', '51', '四川省', '5105', '泸州市', '510504', '龙马潭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510521', '5105', '00,51,5105', '泸县', '51', '四川省', '5105', '泸州市', '510521', '泸县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510522', '5105', '00,51,5105', '合江县', '51', '四川省', '5105', '泸州市', '510522', '合江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510524', '5105', '00,51,5105', '叙永县', '51', '四川省', '5105', '泸州市', '510524', '叙永县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510525', '5105', '00,51,5105', '古蔺县', '51', '四川省', '5105', '泸州市', '510525', '古蔺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5106', '51', '00,51', '德阳市', '51', '四川省', '5106', '德阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510603', '5106', '00,51,5106', '旌阳区', '51', '四川省', '5106', '德阳市', '510603', '旌阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510604', '5106', '00,51,5106', '罗江区', '51', '四川省', '5106', '德阳市', '510604', '罗江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510623', '5106', '00,51,5106', '中江县', '51', '四川省', '5106', '德阳市', '510623', '中江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510681', '5106', '00,51,5106', '广汉市', '51', '四川省', '5106', '德阳市', '510681', '广汉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510682', '5106', '00,51,5106', '什邡市', '51', '四川省', '5106', '德阳市', '510682', '什邡市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510683', '5106', '00,51,5106', '绵竹市', '51', '四川省', '5106', '德阳市', '510683', '绵竹市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5107', '51', '00,51', '绵阳市', '51', '四川省', '5107', '绵阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510703', '5107', '00,51,5107', '涪城区', '51', '四川省', '5107', '绵阳市', '510703', '涪城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510704', '5107', '00,51,5107', '游仙区', '51', '四川省', '5107', '绵阳市', '510704', '游仙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510705', '5107', '00,51,5107', '安州区', '51', '四川省', '5107', '绵阳市', '510705', '安州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510722', '5107', '00,51,5107', '三台县', '51', '四川省', '5107', '绵阳市', '510722', '三台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510723', '5107', '00,51,5107', '盐亭县', '51', '四川省', '5107', '绵阳市', '510723', '盐亭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510725', '5107', '00,51,5107', '梓潼县', '51', '四川省', '5107', '绵阳市', '510725', '梓潼县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510726', '5107', '00,51,5107', '北川羌族自治县', '51', '四川省', '5107', '绵阳市', '510726', '北川羌族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510727', '5107', '00,51,5107', '平武县', '51', '四川省', '5107', '绵阳市', '510727', '平武县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510781', '5107', '00,51,5107', '江油市', '51', '四川省', '5107', '绵阳市', '510781', '江油市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5108', '51', '00,51', '广元市', '51', '四川省', '5108', '广元市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510802', '5108', '00,51,5108', '利州区', '51', '四川省', '5108', '广元市', '510802', '利州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510811', '5108', '00,51,5108', '昭化区', '51', '四川省', '5108', '广元市', '510811', '昭化区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510812', '5108', '00,51,5108', '朝天区', '51', '四川省', '5108', '广元市', '510812', '朝天区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510821', '5108', '00,51,5108', '旺苍县', '51', '四川省', '5108', '广元市', '510821', '旺苍县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510822', '5108', '00,51,5108', '青川县', '51', '四川省', '5108', '广元市', '510822', '青川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510823', '5108', '00,51,5108', '剑阁县', '51', '四川省', '5108', '广元市', '510823', '剑阁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510824', '5108', '00,51,5108', '苍溪县', '51', '四川省', '5108', '广元市', '510824', '苍溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5109', '51', '00,51', '遂宁市', '51', '四川省', '5109', '遂宁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510903', '5109', '00,51,5109', '船山区', '51', '四川省', '5109', '遂宁市', '510903', '船山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510904', '5109', '00,51,5109', '安居区', '51', '四川省', '5109', '遂宁市', '510904', '安居区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510921', '5109', '00,51,5109', '蓬溪县', '51', '四川省', '5109', '遂宁市', '510921', '蓬溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510923', '5109', '00,51,5109', '大英县', '51', '四川省', '5109', '遂宁市', '510923', '大英县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510981', '5109', '00,51,5109', '射洪市', '51', '四川省', '5109', '遂宁市', '510981', '射洪市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5110', '51', '00,51', '内江市', '51', '四川省', '5110', '内江市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511002', '5110', '00,51,5110', '市中区', '51', '四川省', '5110', '内江市', '511002', '市中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511011', '5110', '00,51,5110', '东兴区', '51', '四川省', '5110', '内江市', '511011', '东兴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511024', '5110', '00,51,5110', '威远县', '51', '四川省', '5110', '内江市', '511024', '威远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511025', '5110', '00,51,5110', '资中县', '51', '四川省', '5110', '内江市', '511025', '资中县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511083', '5110', '00,51,5110', '隆昌市', '51', '四川省', '5110', '内江市', '511083', '隆昌市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5111', '51', '00,51', '乐山市', '51', '四川省', '5111', '乐山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511102', '5111', '00,51,5111', '市中区', '51', '四川省', '5111', '乐山市', '511102', '市中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511111', '5111', '00,51,5111', '沙湾区', '51', '四川省', '5111', '乐山市', '511111', '沙湾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511112', '5111', '00,51,5111', '五通桥区', '51', '四川省', '5111', '乐山市', '511112', '五通桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511113', '5111', '00,51,5111', '金口河区', '51', '四川省', '5111', '乐山市', '511113', '金口河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511123', '5111', '00,51,5111', '犍为县', '51', '四川省', '5111', '乐山市', '511123', '犍为县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511124', '5111', '00,51,5111', '井研县', '51', '四川省', '5111', '乐山市', '511124', '井研县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511126', '5111', '00,51,5111', '夹江县', '51', '四川省', '5111', '乐山市', '511126', '夹江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511129', '5111', '00,51,5111', '沐川县', '51', '四川省', '5111', '乐山市', '511129', '沐川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511132', '5111', '00,51,5111', '峨边彝族自治县', '51', '四川省', '5111', '乐山市', '511132', '峨边彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511133', '5111', '00,51,5111', '马边彝族自治县', '51', '四川省', '5111', '乐山市', '511133', '马边彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511181', '5111', '00,51,5111', '峨眉山市', '51', '四川省', '5111', '乐山市', '511181', '峨眉山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5113', '51', '00,51', '南充市', '51', '四川省', '5113', '南充市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511302', '5113', '00,51,5113', '顺庆区', '51', '四川省', '5113', '南充市', '511302', '顺庆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511303', '5113', '00,51,5113', '高坪区', '51', '四川省', '5113', '南充市', '511303', '高坪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511304', '5113', '00,51,5113', '嘉陵区', '51', '四川省', '5113', '南充市', '511304', '嘉陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511321', '5113', '00,51,5113', '南部县', '51', '四川省', '5113', '南充市', '511321', '南部县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511322', '5113', '00,51,5113', '营山县', '51', '四川省', '5113', '南充市', '511322', '营山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511323', '5113', '00,51,5113', '蓬安县', '51', '四川省', '5113', '南充市', '511323', '蓬安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511324', '5113', '00,51,5113', '仪陇县', '51', '四川省', '5113', '南充市', '511324', '仪陇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511325', '5113', '00,51,5113', '西充县', '51', '四川省', '5113', '南充市', '511325', '西充县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511381', '5113', '00,51,5113', '阆中市', '51', '四川省', '5113', '南充市', '511381', '阆中市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5114', '51', '00,51', '眉山市', '51', '四川省', '5114', '眉山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511402', '5114', '00,51,5114', '东坡区', '51', '四川省', '5114', '眉山市', '511402', '东坡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511403', '5114', '00,51,5114', '彭山区', '51', '四川省', '5114', '眉山市', '511403', '彭山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511421', '5114', '00,51,5114', '仁寿县', '51', '四川省', '5114', '眉山市', '511421', '仁寿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511423', '5114', '00,51,5114', '洪雅县', '51', '四川省', '5114', '眉山市', '511423', '洪雅县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511424', '5114', '00,51,5114', '丹棱县', '51', '四川省', '5114', '眉山市', '511424', '丹棱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511425', '5114', '00,51,5114', '青神县', '51', '四川省', '5114', '眉山市', '511425', '青神县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5115', '51', '00,51', '宜宾市', '51', '四川省', '5115', '宜宾市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511502', '5115', '00,51,5115', '翠屏区', '51', '四川省', '5115', '宜宾市', '511502', '翠屏区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511503', '5115', '00,51,5115', '南溪区', '51', '四川省', '5115', '宜宾市', '511503', '南溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511504', '5115', '00,51,5115', '叙州区', '51', '四川省', '5115', '宜宾市', '511504', '叙州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511523', '5115', '00,51,5115', '江安县', '51', '四川省', '5115', '宜宾市', '511523', '江安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511524', '5115', '00,51,5115', '长宁县', '51', '四川省', '5115', '宜宾市', '511524', '长宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511525', '5115', '00,51,5115', '高县', '51', '四川省', '5115', '宜宾市', '511525', '高县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511526', '5115', '00,51,5115', '珙县', '51', '四川省', '5115', '宜宾市', '511526', '珙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511527', '5115', '00,51,5115', '筠连县', '51', '四川省', '5115', '宜宾市', '511527', '筠连县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511528', '5115', '00,51,5115', '兴文县', '51', '四川省', '5115', '宜宾市', '511528', '兴文县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511529', '5115', '00,51,5115', '屏山县', '51', '四川省', '5115', '宜宾市', '511529', '屏山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5116', '51', '00,51', '广安市', '51', '四川省', '5116', '广安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511602', '5116', '00,51,5116', '广安区', '51', '四川省', '5116', '广安市', '511602', '广安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511603', '5116', '00,51,5116', '前锋区', '51', '四川省', '5116', '广安市', '511603', '前锋区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511621', '5116', '00,51,5116', '岳池县', '51', '四川省', '5116', '广安市', '511621', '岳池县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511622', '5116', '00,51,5116', '武胜县', '51', '四川省', '5116', '广安市', '511622', '武胜县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511623', '5116', '00,51,5116', '邻水县', '51', '四川省', '5116', '广安市', '511623', '邻水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511681', '5116', '00,51,5116', '华蓥市', '51', '四川省', '5116', '广安市', '511681', '华蓥市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5117', '51', '00,51', '达州市', '51', '四川省', '5117', '达州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511702', '5117', '00,51,5117', '通川区', '51', '四川省', '5117', '达州市', '511702', '通川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511703', '5117', '00,51,5117', '达川区', '51', '四川省', '5117', '达州市', '511703', '达川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511722', '5117', '00,51,5117', '宣汉县', '51', '四川省', '5117', '达州市', '511722', '宣汉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511723', '5117', '00,51,5117', '开江县', '51', '四川省', '5117', '达州市', '511723', '开江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511724', '5117', '00,51,5117', '大竹县', '51', '四川省', '5117', '达州市', '511724', '大竹县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511725', '5117', '00,51,5117', '渠县', '51', '四川省', '5117', '达州市', '511725', '渠县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511781', '5117', '00,51,5117', '万源市', '51', '四川省', '5117', '达州市', '511781', '万源市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5118', '51', '00,51', '雅安市', '51', '四川省', '5118', '雅安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511802', '5118', '00,51,5118', '雨城区', '51', '四川省', '5118', '雅安市', '511802', '雨城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511803', '5118', '00,51,5118', '名山区', '51', '四川省', '5118', '雅安市', '511803', '名山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511822', '5118', '00,51,5118', '荥经县', '51', '四川省', '5118', '雅安市', '511822', '荥经县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511823', '5118', '00,51,5118', '汉源县', '51', '四川省', '5118', '雅安市', '511823', '汉源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511824', '5118', '00,51,5118', '石棉县', '51', '四川省', '5118', '雅安市', '511824', '石棉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511825', '5118', '00,51,5118', '天全县', '51', '四川省', '5118', '雅安市', '511825', '天全县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511826', '5118', '00,51,5118', '芦山县', '51', '四川省', '5118', '雅安市', '511826', '芦山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511827', '5118', '00,51,5118', '宝兴县', '51', '四川省', '5118', '雅安市', '511827', '宝兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5119', '51', '00,51', '巴中市', '51', '四川省', '5119', '巴中市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511902', '5119', '00,51,5119', '巴州区', '51', '四川省', '5119', '巴中市', '511902', '巴州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511903', '5119', '00,51,5119', '恩阳区', '51', '四川省', '5119', '巴中市', '511903', '恩阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511921', '5119', '00,51,5119', '通江县', '51', '四川省', '5119', '巴中市', '511921', '通江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511922', '5119', '00,51,5119', '南江县', '51', '四川省', '5119', '巴中市', '511922', '南江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511923', '5119', '00,51,5119', '平昌县', '51', '四川省', '5119', '巴中市', '511923', '平昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5120', '51', '00,51', '资阳市', '51', '四川省', '5120', '资阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('512002', '5120', '00,51,5120', '雁江区', '51', '四川省', '5120', '资阳市', '512002', '雁江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('512021', '5120', '00,51,5120', '安岳县', '51', '四川省', '5120', '资阳市', '512021', '安岳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('512022', '5120', '00,51,5120', '乐至县', '51', '四川省', '5120', '资阳市', '512022', '乐至县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5132', '51', '00,51', '阿坝藏族羌族自治州', '51', '四川省', '5132', '阿坝藏族羌族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('513201', '5132', '00,51,5132', '马尔康市', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513201', '马尔康市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513221', '5132', '00,51,5132', '汶川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513221', '汶川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513222', '5132', '00,51,5132', '理县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513222', '理县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513223', '5132', '00,51,5132', '茂县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513223', '茂县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513224', '5132', '00,51,5132', '松潘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513224', '松潘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513225', '5132', '00,51,5132', '九寨沟县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513225', '九寨沟县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513226', '5132', '00,51,5132', '金川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513226', '金川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513227', '5132', '00,51,5132', '小金县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513227', '小金县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513228', '5132', '00,51,5132', '黑水县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513228', '黑水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513230', '5132', '00,51,5132', '壤塘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513230', '壤塘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513231', '5132', '00,51,5132', '阿坝县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513231', '阿坝县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513232', '5132', '00,51,5132', '若尔盖县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513232', '若尔盖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513233', '5132', '00,51,5132', '红原县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513233', '红原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5133', '51', '00,51', '甘孜藏族自治州', '51', '四川省', '5133', '甘孜藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('513301', '5133', '00,51,5133', '康定市', '51', '四川省', '5133', '甘孜藏族自治州', '513301', '康定市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513322', '5133', '00,51,5133', '泸定县', '51', '四川省', '5133', '甘孜藏族自治州', '513322', '泸定县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513323', '5133', '00,51,5133', '丹巴县', '51', '四川省', '5133', '甘孜藏族自治州', '513323', '丹巴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513324', '5133', '00,51,5133', '九龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513324', '九龙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513325', '5133', '00,51,5133', '雅江县', '51', '四川省', '5133', '甘孜藏族自治州', '513325', '雅江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513326', '5133', '00,51,5133', '道孚县', '51', '四川省', '5133', '甘孜藏族自治州', '513326', '道孚县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513327', '5133', '00,51,5133', '炉霍县', '51', '四川省', '5133', '甘孜藏族自治州', '513327', '炉霍县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513328', '5133', '00,51,5133', '甘孜县', '51', '四川省', '5133', '甘孜藏族自治州', '513328', '甘孜县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513329', '5133', '00,51,5133', '新龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513329', '新龙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513330', '5133', '00,51,5133', '德格县', '51', '四川省', '5133', '甘孜藏族自治州', '513330', '德格县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513331', '5133', '00,51,5133', '白玉县', '51', '四川省', '5133', '甘孜藏族自治州', '513331', '白玉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513332', '5133', '00,51,5133', '石渠县', '51', '四川省', '5133', '甘孜藏族自治州', '513332', '石渠县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513333', '5133', '00,51,5133', '色达县', '51', '四川省', '5133', '甘孜藏族自治州', '513333', '色达县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513334', '5133', '00,51,5133', '理塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513334', '理塘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513335', '5133', '00,51,5133', '巴塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513335', '巴塘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513336', '5133', '00,51,5133', '乡城县', '51', '四川省', '5133', '甘孜藏族自治州', '513336', '乡城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513337', '5133', '00,51,5133', '稻城县', '51', '四川省', '5133', '甘孜藏族自治州', '513337', '稻城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513338', '5133', '00,51,5133', '得荣县', '51', '四川省', '5133', '甘孜藏族自治州', '513338', '得荣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5134', '51', '00,51', '凉山彝族自治州', '51', '四川省', '5134', '凉山彝族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('513401', '5134', '00,51,5134', '西昌市', '51', '四川省', '5134', '凉山彝族自治州', '513401', '西昌市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513422', '5134', '00,51,5134', '木里藏族自治县', '51', '四川省', '5134', '凉山彝族自治州', '513422', '木里藏族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513423', '5134', '00,51,5134', '盐源县', '51', '四川省', '5134', '凉山彝族自治州', '513423', '盐源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513424', '5134', '00,51,5134', '德昌县', '51', '四川省', '5134', '凉山彝族自治州', '513424', '德昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513425', '5134', '00,51,5134', '会理县', '51', '四川省', '5134', '凉山彝族自治州', '513425', '会理县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513426', '5134', '00,51,5134', '会东县', '51', '四川省', '5134', '凉山彝族自治州', '513426', '会东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513427', '5134', '00,51,5134', '宁南县', '51', '四川省', '5134', '凉山彝族自治州', '513427', '宁南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513428', '5134', '00,51,5134', '普格县', '51', '四川省', '5134', '凉山彝族自治州', '513428', '普格县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513429', '5134', '00,51,5134', '布拖县', '51', '四川省', '5134', '凉山彝族自治州', '513429', '布拖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513430', '5134', '00,51,5134', '金阳县', '51', '四川省', '5134', '凉山彝族自治州', '513430', '金阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513431', '5134', '00,51,5134', '昭觉县', '51', '四川省', '5134', '凉山彝族自治州', '513431', '昭觉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513432', '5134', '00,51,5134', '喜德县', '51', '四川省', '5134', '凉山彝族自治州', '513432', '喜德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513433', '5134', '00,51,5134', '冕宁县', '51', '四川省', '5134', '凉山彝族自治州', '513433', '冕宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513434', '5134', '00,51,5134', '越西县', '51', '四川省', '5134', '凉山彝族自治州', '513434', '越西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513435', '5134', '00,51,5134', '甘洛县', '51', '四川省', '5134', '凉山彝族自治州', '513435', '甘洛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513436', '5134', '00,51,5134', '美姑县', '51', '四川省', '5134', '凉山彝族自治州', '513436', '美姑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513437', '5134', '00,51,5134', '雷波县', '51', '四川省', '5134', '凉山彝族自治州', '513437', '雷波县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('52', '00', '00', '贵州省', '52', '贵州省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('5201', '52', '00,52', '贵阳市', '52', '贵州省', '5201', '贵阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('520102', '5201', '00,52,5201', '南明区', '52', '贵州省', '5201', '贵阳市', '520102', '南明区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520103', '5201', '00,52,5201', '云岩区', '52', '贵州省', '5201', '贵阳市', '520103', '云岩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520111', '5201', '00,52,5201', '花溪区', '52', '贵州省', '5201', '贵阳市', '520111', '花溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520112', '5201', '00,52,5201', '乌当区', '52', '贵州省', '5201', '贵阳市', '520112', '乌当区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520113', '5201', '00,52,5201', '白云区', '52', '贵州省', '5201', '贵阳市', '520113', '白云区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520115', '5201', '00,52,5201', '观山湖区', '52', '贵州省', '5201', '贵阳市', '520115', '观山湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520121', '5201', '00,52,5201', '开阳县', '52', '贵州省', '5201', '贵阳市', '520121', '开阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520122', '5201', '00,52,5201', '息烽县', '52', '贵州省', '5201', '贵阳市', '520122', '息烽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520123', '5201', '00,52,5201', '修文县', '52', '贵州省', '5201', '贵阳市', '520123', '修文县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520181', '5201', '00,52,5201', '清镇市', '52', '贵州省', '5201', '贵阳市', '520181', '清镇市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5202', '52', '00,52', '六盘水市', '52', '贵州省', '5202', '六盘水市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('520201', '5202', '00,52,5202', '钟山区', '52', '贵州省', '5202', '六盘水市', '520201', '钟山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520203', '5202', '00,52,5202', '六枝特区', '52', '贵州省', '5202', '六盘水市', '520203', '六枝特区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520221', '5202', '00,52,5202', '水城县', '52', '贵州省', '5202', '六盘水市', '520221', '水城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520281', '5202', '00,52,5202', '盘州市', '52', '贵州省', '5202', '六盘水市', '520281', '盘州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5203', '52', '00,52', '遵义市', '52', '贵州省', '5203', '遵义市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('520302', '5203', '00,52,5203', '红花岗区', '52', '贵州省', '5203', '遵义市', '520302', '红花岗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520303', '5203', '00,52,5203', '汇川区', '52', '贵州省', '5203', '遵义市', '520303', '汇川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520304', '5203', '00,52,5203', '播州区', '52', '贵州省', '5203', '遵义市', '520304', '播州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520322', '5203', '00,52,5203', '桐梓县', '52', '贵州省', '5203', '遵义市', '520322', '桐梓县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520323', '5203', '00,52,5203', '绥阳县', '52', '贵州省', '5203', '遵义市', '520323', '绥阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520324', '5203', '00,52,5203', '正安县', '52', '贵州省', '5203', '遵义市', '520324', '正安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520325', '5203', '00,52,5203', '道真仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520325', '道真仡佬族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520326', '5203', '00,52,5203', '务川仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520326', '务川仡佬族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520327', '5203', '00,52,5203', '凤冈县', '52', '贵州省', '5203', '遵义市', '520327', '凤冈县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520328', '5203', '00,52,5203', '湄潭县', '52', '贵州省', '5203', '遵义市', '520328', '湄潭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520329', '5203', '00,52,5203', '余庆县', '52', '贵州省', '5203', '遵义市', '520329', '余庆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520330', '5203', '00,52,5203', '习水县', '52', '贵州省', '5203', '遵义市', '520330', '习水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520381', '5203', '00,52,5203', '赤水市', '52', '贵州省', '5203', '遵义市', '520381', '赤水市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520382', '5203', '00,52,5203', '仁怀市', '52', '贵州省', '5203', '遵义市', '520382', '仁怀市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5204', '52', '00,52', '安顺市', '52', '贵州省', '5204', '安顺市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('520402', '5204', '00,52,5204', '西秀区', '52', '贵州省', '5204', '安顺市', '520402', '西秀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520403', '5204', '00,52,5204', '平坝区', '52', '贵州省', '5204', '安顺市', '520403', '平坝区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520422', '5204', '00,52,5204', '普定县', '52', '贵州省', '5204', '安顺市', '520422', '普定县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520423', '5204', '00,52,5204', '镇宁布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520423', '镇宁布依族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520424', '5204', '00,52,5204', '关岭布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520424', '关岭布依族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520425', '5204', '00,52,5204', '紫云苗族布依族自治县', '52', '贵州省', '5204', '安顺市', '520425', '紫云苗族布依族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5205', '52', '00,52', '毕节市', '52', '贵州省', '5205', '毕节市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('520502', '5205', '00,52,5205', '七星关区', '52', '贵州省', '5205', '毕节市', '520502', '七星关区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520521', '5205', '00,52,5205', '大方县', '52', '贵州省', '5205', '毕节市', '520521', '大方县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520522', '5205', '00,52,5205', '黔西县', '52', '贵州省', '5205', '毕节市', '520522', '黔西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520523', '5205', '00,52,5205', '金沙县', '52', '贵州省', '5205', '毕节市', '520523', '金沙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520524', '5205', '00,52,5205', '织金县', '52', '贵州省', '5205', '毕节市', '520524', '织金县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520525', '5205', '00,52,5205', '纳雍县', '52', '贵州省', '5205', '毕节市', '520525', '纳雍县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520526', '5205', '00,52,5205', '威宁彝族回族苗族自治县', '52', '贵州省', '5205', '毕节市', '520526', '威宁彝族回族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520527', '5205', '00,52,5205', '赫章县', '52', '贵州省', '5205', '毕节市', '520527', '赫章县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5206', '52', '00,52', '铜仁市', '52', '贵州省', '5206', '铜仁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('520602', '5206', '00,52,5206', '碧江区', '52', '贵州省', '5206', '铜仁市', '520602', '碧江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520603', '5206', '00,52,5206', '万山区', '52', '贵州省', '5206', '铜仁市', '520603', '万山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520621', '5206', '00,52,5206', '江口县', '52', '贵州省', '5206', '铜仁市', '520621', '江口县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520622', '5206', '00,52,5206', '玉屏侗族自治县', '52', '贵州省', '5206', '铜仁市', '520622', '玉屏侗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520623', '5206', '00,52,5206', '石阡县', '52', '贵州省', '5206', '铜仁市', '520623', '石阡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520624', '5206', '00,52,5206', '思南县', '52', '贵州省', '5206', '铜仁市', '520624', '思南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520625', '5206', '00,52,5206', '印江土家族苗族自治县', '52', '贵州省', '5206', '铜仁市', '520625', '印江土家族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520626', '5206', '00,52,5206', '德江县', '52', '贵州省', '5206', '铜仁市', '520626', '德江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520627', '5206', '00,52,5206', '沿河土家族自治县', '52', '贵州省', '5206', '铜仁市', '520627', '沿河土家族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520628', '5206', '00,52,5206', '松桃苗族自治县', '52', '贵州省', '5206', '铜仁市', '520628', '松桃苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5223', '52', '00,52', '黔西南布依族苗族自治州', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('522301', '5223', '00,52,5223', '兴义市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522301', '兴义市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522302', '5223', '00,52,5223', '兴仁市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522302', '兴仁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522323', '5223', '00,52,5223', '普安县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522323', '普安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522324', '5223', '00,52,5223', '晴隆县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522324', '晴隆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522325', '5223', '00,52,5223', '贞丰县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522325', '贞丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522326', '5223', '00,52,5223', '望谟县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522326', '望谟县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522327', '5223', '00,52,5223', '册亨县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522327', '册亨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522328', '5223', '00,52,5223', '安龙县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522328', '安龙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5226', '52', '00,52', '黔东南苗族侗族自治州', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('522601', '5226', '00,52,5226', '凯里市', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522601', '凯里市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522622', '5226', '00,52,5226', '黄平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522622', '黄平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522623', '5226', '00,52,5226', '施秉县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522623', '施秉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522624', '5226', '00,52,5226', '三穗县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522624', '三穗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522625', '5226', '00,52,5226', '镇远县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522625', '镇远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522626', '5226', '00,52,5226', '岑巩县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522626', '岑巩县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522627', '5226', '00,52,5226', '天柱县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522627', '天柱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522628', '5226', '00,52,5226', '锦屏县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522628', '锦屏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522629', '5226', '00,52,5226', '剑河县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522629', '剑河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522630', '5226', '00,52,5226', '台江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522630', '台江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522631', '5226', '00,52,5226', '黎平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522631', '黎平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522632', '5226', '00,52,5226', '榕江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522632', '榕江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522633', '5226', '00,52,5226', '从江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522633', '从江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522634', '5226', '00,52,5226', '雷山县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522634', '雷山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522635', '5226', '00,52,5226', '麻江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522635', '麻江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522636', '5226', '00,52,5226', '丹寨县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522636', '丹寨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5227', '52', '00,52', '黔南布依族苗族自治州', '52', '贵州省', '5227', '黔南布依族苗族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('522701', '5227', '00,52,5227', '都匀市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522701', '都匀市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522702', '5227', '00,52,5227', '福泉市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522702', '福泉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522722', '5227', '00,52,5227', '荔波县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522722', '荔波县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522723', '5227', '00,52,5227', '贵定县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522723', '贵定县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522725', '5227', '00,52,5227', '瓮安县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522725', '瓮安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522726', '5227', '00,52,5227', '独山县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522726', '独山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522727', '5227', '00,52,5227', '平塘县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522727', '平塘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522728', '5227', '00,52,5227', '罗甸县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522728', '罗甸县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522729', '5227', '00,52,5227', '长顺县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522729', '长顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522730', '5227', '00,52,5227', '龙里县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522730', '龙里县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522731', '5227', '00,52,5227', '惠水县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522731', '惠水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522732', '5227', '00,52,5227', '三都水族自治县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522732', '三都水族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('53', '00', '00', '云南省', '53', '云南省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('5301', '53', '00,53', '昆明市', '53', '云南省', '5301', '昆明市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530102', '5301', '00,53,5301', '五华区', '53', '云南省', '5301', '昆明市', '530102', '五华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530103', '5301', '00,53,5301', '盘龙区', '53', '云南省', '5301', '昆明市', '530103', '盘龙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530111', '5301', '00,53,5301', '官渡区', '53', '云南省', '5301', '昆明市', '530111', '官渡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530112', '5301', '00,53,5301', '西山区', '53', '云南省', '5301', '昆明市', '530112', '西山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530113', '5301', '00,53,5301', '东川区', '53', '云南省', '5301', '昆明市', '530113', '东川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530114', '5301', '00,53,5301', '呈贡区', '53', '云南省', '5301', '昆明市', '530114', '呈贡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530115', '5301', '00,53,5301', '晋宁区', '53', '云南省', '5301', '昆明市', '530115', '晋宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530124', '5301', '00,53,5301', '富民县', '53', '云南省', '5301', '昆明市', '530124', '富民县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530125', '5301', '00,53,5301', '宜良县', '53', '云南省', '5301', '昆明市', '530125', '宜良县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530126', '5301', '00,53,5301', '石林彝族自治县', '53', '云南省', '5301', '昆明市', '530126', '石林彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530127', '5301', '00,53,5301', '嵩明县', '53', '云南省', '5301', '昆明市', '530127', '嵩明县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530128', '5301', '00,53,5301', '禄劝彝族苗族自治县', '53', '云南省', '5301', '昆明市', '530128', '禄劝彝族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530129', '5301', '00,53,5301', '寻甸回族彝族自治县', '53', '云南省', '5301', '昆明市', '530129', '寻甸回族彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530181', '5301', '00,53,5301', '安宁市', '53', '云南省', '5301', '昆明市', '530181', '安宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5303', '53', '00,53', '曲靖市', '53', '云南省', '5303', '曲靖市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530302', '5303', '00,53,5303', '麒麟区', '53', '云南省', '5303', '曲靖市', '530302', '麒麟区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530303', '5303', '00,53,5303', '沾益区', '53', '云南省', '5303', '曲靖市', '530303', '沾益区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530304', '5303', '00,53,5303', '马龙区', '53', '云南省', '5303', '曲靖市', '530304', '马龙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530322', '5303', '00,53,5303', '陆良县', '53', '云南省', '5303', '曲靖市', '530322', '陆良县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530323', '5303', '00,53,5303', '师宗县', '53', '云南省', '5303', '曲靖市', '530323', '师宗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530324', '5303', '00,53,5303', '罗平县', '53', '云南省', '5303', '曲靖市', '530324', '罗平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530325', '5303', '00,53,5303', '富源县', '53', '云南省', '5303', '曲靖市', '530325', '富源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530326', '5303', '00,53,5303', '会泽县', '53', '云南省', '5303', '曲靖市', '530326', '会泽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530381', '5303', '00,53,5303', '宣威市', '53', '云南省', '5303', '曲靖市', '530381', '宣威市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5304', '53', '00,53', '玉溪市', '53', '云南省', '5304', '玉溪市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530402', '5304', '00,53,5304', '红塔区', '53', '云南省', '5304', '玉溪市', '530402', '红塔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530403', '5304', '00,53,5304', '江川区', '53', '云南省', '5304', '玉溪市', '530403', '江川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530423', '5304', '00,53,5304', '通海县', '53', '云南省', '5304', '玉溪市', '530423', '通海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530424', '5304', '00,53,5304', '华宁县', '53', '云南省', '5304', '玉溪市', '530424', '华宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530425', '5304', '00,53,5304', '易门县', '53', '云南省', '5304', '玉溪市', '530425', '易门县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530426', '5304', '00,53,5304', '峨山彝族自治县', '53', '云南省', '5304', '玉溪市', '530426', '峨山彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530427', '5304', '00,53,5304', '新平彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530427', '新平彝族傣族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530428', '5304', '00,53,5304', '元江哈尼族彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530428', '元江哈尼族彝族傣族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530481', '5304', '00,53,5304', '澄江市', '53', '云南省', '5304', '玉溪市', '530481', '澄江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5305', '53', '00,53', '保山市', '53', '云南省', '5305', '保山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530502', '5305', '00,53,5305', '隆阳区', '53', '云南省', '5305', '保山市', '530502', '隆阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530521', '5305', '00,53,5305', '施甸县', '53', '云南省', '5305', '保山市', '530521', '施甸县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530523', '5305', '00,53,5305', '龙陵县', '53', '云南省', '5305', '保山市', '530523', '龙陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530524', '5305', '00,53,5305', '昌宁县', '53', '云南省', '5305', '保山市', '530524', '昌宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530581', '5305', '00,53,5305', '腾冲市', '53', '云南省', '5305', '保山市', '530581', '腾冲市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5306', '53', '00,53', '昭通市', '53', '云南省', '5306', '昭通市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530602', '5306', '00,53,5306', '昭阳区', '53', '云南省', '5306', '昭通市', '530602', '昭阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530621', '5306', '00,53,5306', '鲁甸县', '53', '云南省', '5306', '昭通市', '530621', '鲁甸县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530622', '5306', '00,53,5306', '巧家县', '53', '云南省', '5306', '昭通市', '530622', '巧家县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530623', '5306', '00,53,5306', '盐津县', '53', '云南省', '5306', '昭通市', '530623', '盐津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530624', '5306', '00,53,5306', '大关县', '53', '云南省', '5306', '昭通市', '530624', '大关县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530625', '5306', '00,53,5306', '永善县', '53', '云南省', '5306', '昭通市', '530625', '永善县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530626', '5306', '00,53,5306', '绥江县', '53', '云南省', '5306', '昭通市', '530626', '绥江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530627', '5306', '00,53,5306', '镇雄县', '53', '云南省', '5306', '昭通市', '530627', '镇雄县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530628', '5306', '00,53,5306', '彝良县', '53', '云南省', '5306', '昭通市', '530628', '彝良县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530629', '5306', '00,53,5306', '威信县', '53', '云南省', '5306', '昭通市', '530629', '威信县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530681', '5306', '00,53,5306', '水富市', '53', '云南省', '5306', '昭通市', '530681', '水富市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5307', '53', '00,53', '丽江市', '53', '云南省', '5307', '丽江市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530702', '5307', '00,53,5307', '古城区', '53', '云南省', '5307', '丽江市', '530702', '古城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530721', '5307', '00,53,5307', '玉龙纳西族自治县', '53', '云南省', '5307', '丽江市', '530721', '玉龙纳西族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530722', '5307', '00,53,5307', '永胜县', '53', '云南省', '5307', '丽江市', '530722', '永胜县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530723', '5307', '00,53,5307', '华坪县', '53', '云南省', '5307', '丽江市', '530723', '华坪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530724', '5307', '00,53,5307', '宁蒗彝族自治县', '53', '云南省', '5307', '丽江市', '530724', '宁蒗彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5308', '53', '00,53', '普洱市', '53', '云南省', '5308', '普洱市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530802', '5308', '00,53,5308', '思茅区', '53', '云南省', '5308', '普洱市', '530802', '思茅区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530821', '5308', '00,53,5308', '宁洱哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530821', '宁洱哈尼族彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530822', '5308', '00,53,5308', '墨江哈尼族自治县', '53', '云南省', '5308', '普洱市', '530822', '墨江哈尼族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530823', '5308', '00,53,5308', '景东彝族自治县', '53', '云南省', '5308', '普洱市', '530823', '景东彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530824', '5308', '00,53,5308', '景谷傣族彝族自治县', '53', '云南省', '5308', '普洱市', '530824', '景谷傣族彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530825', '5308', '00,53,5308', '镇沅彝族哈尼族拉祜族自治县', '53', '云南省', '5308', '普洱市', '530825', '镇沅彝族哈尼族拉祜族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530826', '5308', '00,53,5308', '江城哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530826', '江城哈尼族彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530827', '5308', '00,53,5308', '孟连傣族拉祜族佤族自治县', '53', '云南省', '5308', '普洱市', '530827', '孟连傣族拉祜族佤族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530828', '5308', '00,53,5308', '澜沧拉祜族自治县', '53', '云南省', '5308', '普洱市', '530828', '澜沧拉祜族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530829', '5308', '00,53,5308', '西盟佤族自治县', '53', '云南省', '5308', '普洱市', '530829', '西盟佤族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5309', '53', '00,53', '临沧市', '53', '云南省', '5309', '临沧市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530902', '5309', '00,53,5309', '临翔区', '53', '云南省', '5309', '临沧市', '530902', '临翔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530921', '5309', '00,53,5309', '凤庆县', '53', '云南省', '5309', '临沧市', '530921', '凤庆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530922', '5309', '00,53,5309', '云县', '53', '云南省', '5309', '临沧市', '530922', '云县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530923', '5309', '00,53,5309', '永德县', '53', '云南省', '5309', '临沧市', '530923', '永德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530924', '5309', '00,53,5309', '镇康县', '53', '云南省', '5309', '临沧市', '530924', '镇康县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530925', '5309', '00,53,5309', '双江拉祜族佤族布朗族傣族自治县', '53', '云南省', '5309', '临沧市', '530925', '双江拉祜族佤族布朗族傣族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530926', '5309', '00,53,5309', '耿马傣族佤族自治县', '53', '云南省', '5309', '临沧市', '530926', '耿马傣族佤族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530927', '5309', '00,53,5309', '沧源佤族自治县', '53', '云南省', '5309', '临沧市', '530927', '沧源佤族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5323', '53', '00,53', '楚雄彝族自治州', '53', '云南省', '5323', '楚雄彝族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('532301', '5323', '00,53,5323', '楚雄市', '53', '云南省', '5323', '楚雄彝族自治州', '532301', '楚雄市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532322', '5323', '00,53,5323', '双柏县', '53', '云南省', '5323', '楚雄彝族自治州', '532322', '双柏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532323', '5323', '00,53,5323', '牟定县', '53', '云南省', '5323', '楚雄彝族自治州', '532323', '牟定县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532324', '5323', '00,53,5323', '南华县', '53', '云南省', '5323', '楚雄彝族自治州', '532324', '南华县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532325', '5323', '00,53,5323', '姚安县', '53', '云南省', '5323', '楚雄彝族自治州', '532325', '姚安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532326', '5323', '00,53,5323', '大姚县', '53', '云南省', '5323', '楚雄彝族自治州', '532326', '大姚县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532327', '5323', '00,53,5323', '永仁县', '53', '云南省', '5323', '楚雄彝族自治州', '532327', '永仁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532328', '5323', '00,53,5323', '元谋县', '53', '云南省', '5323', '楚雄彝族自治州', '532328', '元谋县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532329', '5323', '00,53,5323', '武定县', '53', '云南省', '5323', '楚雄彝族自治州', '532329', '武定县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532331', '5323', '00,53,5323', '禄丰县', '53', '云南省', '5323', '楚雄彝族自治州', '532331', '禄丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5325', '53', '00,53', '红河哈尼族彝族自治州', '53', '云南省', '5325', '红河哈尼族彝族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('532501', '5325', '00,53,5325', '个旧市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532501', '个旧市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532502', '5325', '00,53,5325', '开远市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532502', '开远市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532503', '5325', '00,53,5325', '蒙自市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532503', '蒙自市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532504', '5325', '00,53,5325', '弥勒市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532504', '弥勒市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532523', '5325', '00,53,5325', '屏边苗族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532523', '屏边苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532524', '5325', '00,53,5325', '建水县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532524', '建水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532525', '5325', '00,53,5325', '石屏县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532525', '石屏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532527', '5325', '00,53,5325', '泸西县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532527', '泸西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532528', '5325', '00,53,5325', '元阳县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532528', '元阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532529', '5325', '00,53,5325', '红河县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532529', '红河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532530', '5325', '00,53,5325', '金平苗族瑶族傣族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532530', '金平苗族瑶族傣族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532531', '5325', '00,53,5325', '绿春县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532531', '绿春县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532532', '5325', '00,53,5325', '河口瑶族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532532', '河口瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5326', '53', '00,53', '文山壮族苗族自治州', '53', '云南省', '5326', '文山壮族苗族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('532601', '5326', '00,53,5326', '文山市', '53', '云南省', '5326', '文山壮族苗族自治州', '532601', '文山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532622', '5326', '00,53,5326', '砚山县', '53', '云南省', '5326', '文山壮族苗族自治州', '532622', '砚山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532623', '5326', '00,53,5326', '西畴县', '53', '云南省', '5326', '文山壮族苗族自治州', '532623', '西畴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532624', '5326', '00,53,5326', '麻栗坡县', '53', '云南省', '5326', '文山壮族苗族自治州', '532624', '麻栗坡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532625', '5326', '00,53,5326', '马关县', '53', '云南省', '5326', '文山壮族苗族自治州', '532625', '马关县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532626', '5326', '00,53,5326', '丘北县', '53', '云南省', '5326', '文山壮族苗族自治州', '532626', '丘北县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532627', '5326', '00,53,5326', '广南县', '53', '云南省', '5326', '文山壮族苗族自治州', '532627', '广南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532628', '5326', '00,53,5326', '富宁县', '53', '云南省', '5326', '文山壮族苗族自治州', '532628', '富宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5328', '53', '00,53', '西双版纳傣族自治州', '53', '云南省', '5328', '西双版纳傣族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('532801', '5328', '00,53,5328', '景洪市', '53', '云南省', '5328', '西双版纳傣族自治州', '532801', '景洪市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532822', '5328', '00,53,5328', '勐海县', '53', '云南省', '5328', '西双版纳傣族自治州', '532822', '勐海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532823', '5328', '00,53,5328', '勐腊县', '53', '云南省', '5328', '西双版纳傣族自治州', '532823', '勐腊县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5329', '53', '00,53', '大理白族自治州', '53', '云南省', '5329', '大理白族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('532901', '5329', '00,53,5329', '大理市', '53', '云南省', '5329', '大理白族自治州', '532901', '大理市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532922', '5329', '00,53,5329', '漾濞彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532922', '漾濞彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532923', '5329', '00,53,5329', '祥云县', '53', '云南省', '5329', '大理白族自治州', '532923', '祥云县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532924', '5329', '00,53,5329', '宾川县', '53', '云南省', '5329', '大理白族自治州', '532924', '宾川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532925', '5329', '00,53,5329', '弥渡县', '53', '云南省', '5329', '大理白族自治州', '532925', '弥渡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532926', '5329', '00,53,5329', '南涧彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532926', '南涧彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532927', '5329', '00,53,5329', '巍山彝族回族自治县', '53', '云南省', '5329', '大理白族自治州', '532927', '巍山彝族回族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532928', '5329', '00,53,5329', '永平县', '53', '云南省', '5329', '大理白族自治州', '532928', '永平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532929', '5329', '00,53,5329', '云龙县', '53', '云南省', '5329', '大理白族自治州', '532929', '云龙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532930', '5329', '00,53,5329', '洱源县', '53', '云南省', '5329', '大理白族自治州', '532930', '洱源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532931', '5329', '00,53,5329', '剑川县', '53', '云南省', '5329', '大理白族自治州', '532931', '剑川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532932', '5329', '00,53,5329', '鹤庆县', '53', '云南省', '5329', '大理白族自治州', '532932', '鹤庆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5331', '53', '00,53', '德宏傣族景颇族自治州', '53', '云南省', '5331', '德宏傣族景颇族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('533102', '5331', '00,53,5331', '瑞丽市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533102', '瑞丽市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533103', '5331', '00,53,5331', '芒市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533103', '芒市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533122', '5331', '00,53,5331', '梁河县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533122', '梁河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533123', '5331', '00,53,5331', '盈江县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533123', '盈江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533124', '5331', '00,53,5331', '陇川县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533124', '陇川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5333', '53', '00,53', '怒江傈僳族自治州', '53', '云南省', '5333', '怒江傈僳族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('533301', '5333', '00,53,5333', '泸水市', '53', '云南省', '5333', '怒江傈僳族自治州', '533301', '泸水市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533323', '5333', '00,53,5333', '福贡县', '53', '云南省', '5333', '怒江傈僳族自治州', '533323', '福贡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533324', '5333', '00,53,5333', '贡山独龙族怒族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533324', '贡山独龙族怒族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533325', '5333', '00,53,5333', '兰坪白族普米族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533325', '兰坪白族普米族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5334', '53', '00,53', '迪庆藏族自治州', '53', '云南省', '5334', '迪庆藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('533401', '5334', '00,53,5334', '香格里拉市', '53', '云南省', '5334', '迪庆藏族自治州', '533401', '香格里拉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533422', '5334', '00,53,5334', '德钦县', '53', '云南省', '5334', '迪庆藏族自治州', '533422', '德钦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533423', '5334', '00,53,5334', '维西傈僳族自治县', '53', '云南省', '5334', '迪庆藏族自治州', '533423', '维西傈僳族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('54', '00', '00', '西藏自治区', '54', '西藏自治区', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('5401', '54', '00,54', '拉萨市', '54', '西藏自治区', '5401', '拉萨市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('540102', '5401', '00,54,5401', '城关区', '54', '西藏自治区', '5401', '拉萨市', '540102', '城关区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540103', '5401', '00,54,5401', '堆龙德庆区', '54', '西藏自治区', '5401', '拉萨市', '540103', '堆龙德庆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540104', '5401', '00,54,5401', '达孜区', '54', '西藏自治区', '5401', '拉萨市', '540104', '达孜区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540121', '5401', '00,54,5401', '林周县', '54', '西藏自治区', '5401', '拉萨市', '540121', '林周县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540122', '5401', '00,54,5401', '当雄县', '54', '西藏自治区', '5401', '拉萨市', '540122', '当雄县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540123', '5401', '00,54,5401', '尼木县', '54', '西藏自治区', '5401', '拉萨市', '540123', '尼木县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540124', '5401', '00,54,5401', '曲水县', '54', '西藏自治区', '5401', '拉萨市', '540124', '曲水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540127', '5401', '00,54,5401', '墨竹工卡县', '54', '西藏自治区', '5401', '拉萨市', '540127', '墨竹工卡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5402', '54', '00,54', '日喀则市', '54', '西藏自治区', '5402', '日喀则市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('540202', '5402', '00,54,5402', '桑珠孜区', '54', '西藏自治区', '5402', '日喀则市', '540202', '桑珠孜区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540221', '5402', '00,54,5402', '南木林县', '54', '西藏自治区', '5402', '日喀则市', '540221', '南木林县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540222', '5402', '00,54,5402', '江孜县', '54', '西藏自治区', '5402', '日喀则市', '540222', '江孜县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540223', '5402', '00,54,5402', '定日县', '54', '西藏自治区', '5402', '日喀则市', '540223', '定日县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540224', '5402', '00,54,5402', '萨迦县', '54', '西藏自治区', '5402', '日喀则市', '540224', '萨迦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540225', '5402', '00,54,5402', '拉孜县', '54', '西藏自治区', '5402', '日喀则市', '540225', '拉孜县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540226', '5402', '00,54,5402', '昂仁县', '54', '西藏自治区', '5402', '日喀则市', '540226', '昂仁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540227', '5402', '00,54,5402', '谢通门县', '54', '西藏自治区', '5402', '日喀则市', '540227', '谢通门县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540228', '5402', '00,54,5402', '白朗县', '54', '西藏自治区', '5402', '日喀则市', '540228', '白朗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540229', '5402', '00,54,5402', '仁布县', '54', '西藏自治区', '5402', '日喀则市', '540229', '仁布县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540230', '5402', '00,54,5402', '康马县', '54', '西藏自治区', '5402', '日喀则市', '540230', '康马县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540231', '5402', '00,54,5402', '定结县', '54', '西藏自治区', '5402', '日喀则市', '540231', '定结县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540232', '5402', '00,54,5402', '仲巴县', '54', '西藏自治区', '5402', '日喀则市', '540232', '仲巴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540233', '5402', '00,54,5402', '亚东县', '54', '西藏自治区', '5402', '日喀则市', '540233', '亚东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540234', '5402', '00,54,5402', '吉隆县', '54', '西藏自治区', '5402', '日喀则市', '540234', '吉隆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540235', '5402', '00,54,5402', '聂拉木县', '54', '西藏自治区', '5402', '日喀则市', '540235', '聂拉木县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540236', '5402', '00,54,5402', '萨嘎县', '54', '西藏自治区', '5402', '日喀则市', '540236', '萨嘎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540237', '5402', '00,54,5402', '岗巴县', '54', '西藏自治区', '5402', '日喀则市', '540237', '岗巴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5403', '54', '00,54', '昌都市', '54', '西藏自治区', '5403', '昌都市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('540302', '5403', '00,54,5403', '卡若区', '54', '西藏自治区', '5403', '昌都市', '540302', '卡若区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540321', '5403', '00,54,5403', '江达县', '54', '西藏自治区', '5403', '昌都市', '540321', '江达县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540322', '5403', '00,54,5403', '贡觉县', '54', '西藏自治区', '5403', '昌都市', '540322', '贡觉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540323', '5403', '00,54,5403', '类乌齐县', '54', '西藏自治区', '5403', '昌都市', '540323', '类乌齐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540324', '5403', '00,54,5403', '丁青县', '54', '西藏自治区', '5403', '昌都市', '540324', '丁青县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540325', '5403', '00,54,5403', '察雅县', '54', '西藏自治区', '5403', '昌都市', '540325', '察雅县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540326', '5403', '00,54,5403', '八宿县', '54', '西藏自治区', '5403', '昌都市', '540326', '八宿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540327', '5403', '00,54,5403', '左贡县', '54', '西藏自治区', '5403', '昌都市', '540327', '左贡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540328', '5403', '00,54,5403', '芒康县', '54', '西藏自治区', '5403', '昌都市', '540328', '芒康县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540329', '5403', '00,54,5403', '洛隆县', '54', '西藏自治区', '5403', '昌都市', '540329', '洛隆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540330', '5403', '00,54,5403', '边坝县', '54', '西藏自治区', '5403', '昌都市', '540330', '边坝县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5404', '54', '00,54', '林芝市', '54', '西藏自治区', '5404', '林芝市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('540402', '5404', '00,54,5404', '巴宜区', '54', '西藏自治区', '5404', '林芝市', '540402', '巴宜区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540421', '5404', '00,54,5404', '工布江达县', '54', '西藏自治区', '5404', '林芝市', '540421', '工布江达县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540422', '5404', '00,54,5404', '米林县', '54', '西藏自治区', '5404', '林芝市', '540422', '米林县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540423', '5404', '00,54,5404', '墨脱县', '54', '西藏自治区', '5404', '林芝市', '540423', '墨脱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540424', '5404', '00,54,5404', '波密县', '54', '西藏自治区', '5404', '林芝市', '540424', '波密县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540425', '5404', '00,54,5404', '察隅县', '54', '西藏自治区', '5404', '林芝市', '540425', '察隅县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540426', '5404', '00,54,5404', '朗县', '54', '西藏自治区', '5404', '林芝市', '540426', '朗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5405', '54', '00,54', '山南市', '54', '西藏自治区', '5405', '山南市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('540502', '5405', '00,54,5405', '乃东区', '54', '西藏自治区', '5405', '山南市', '540502', '乃东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540521', '5405', '00,54,5405', '扎囊县', '54', '西藏自治区', '5405', '山南市', '540521', '扎囊县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540522', '5405', '00,54,5405', '贡嘎县', '54', '西藏自治区', '5405', '山南市', '540522', '贡嘎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540523', '5405', '00,54,5405', '桑日县', '54', '西藏自治区', '5405', '山南市', '540523', '桑日县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540524', '5405', '00,54,5405', '琼结县', '54', '西藏自治区', '5405', '山南市', '540524', '琼结县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540525', '5405', '00,54,5405', '曲松县', '54', '西藏自治区', '5405', '山南市', '540525', '曲松县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540526', '5405', '00,54,5405', '措美县', '54', '西藏自治区', '5405', '山南市', '540526', '措美县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540527', '5405', '00,54,5405', '洛扎县', '54', '西藏自治区', '5405', '山南市', '540527', '洛扎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540528', '5405', '00,54,5405', '加查县', '54', '西藏自治区', '5405', '山南市', '540528', '加查县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540529', '5405', '00,54,5405', '隆子县', '54', '西藏自治区', '5405', '山南市', '540529', '隆子县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540530', '5405', '00,54,5405', '错那县', '54', '西藏自治区', '5405', '山南市', '540530', '错那县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540531', '5405', '00,54,5405', '浪卡子县', '54', '西藏自治区', '5405', '山南市', '540531', '浪卡子县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5406', '54', '00,54', '那曲市', '54', '西藏自治区', '5406', '那曲市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('540602', '5406', '00,54,5406', '色尼区', '54', '西藏自治区', '5406', '那曲市', '540602', '色尼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540621', '5406', '00,54,5406', '嘉黎县', '54', '西藏自治区', '5406', '那曲市', '540621', '嘉黎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540622', '5406', '00,54,5406', '比如县', '54', '西藏自治区', '5406', '那曲市', '540622', '比如县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540623', '5406', '00,54,5406', '聂荣县', '54', '西藏自治区', '5406', '那曲市', '540623', '聂荣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540624', '5406', '00,54,5406', '安多县', '54', '西藏自治区', '5406', '那曲市', '540624', '安多县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540625', '5406', '00,54,5406', '申扎县', '54', '西藏自治区', '5406', '那曲市', '540625', '申扎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540626', '5406', '00,54,5406', '索县', '54', '西藏自治区', '5406', '那曲市', '540626', '索县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540627', '5406', '00,54,5406', '班戈县', '54', '西藏自治区', '5406', '那曲市', '540627', '班戈县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540628', '5406', '00,54,5406', '巴青县', '54', '西藏自治区', '5406', '那曲市', '540628', '巴青县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540629', '5406', '00,54,5406', '尼玛县', '54', '西藏自治区', '5406', '那曲市', '540629', '尼玛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540630', '5406', '00,54,5406', '双湖县', '54', '西藏自治区', '5406', '那曲市', '540630', '双湖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5425', '54', '00,54', '阿里地区', '54', '西藏自治区', '5425', '阿里地区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('542521', '5425', '00,54,5425', '普兰县', '54', '西藏自治区', '5425', '阿里地区', '542521', '普兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('542522', '5425', '00,54,5425', '札达县', '54', '西藏自治区', '5425', '阿里地区', '542522', '札达县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('542523', '5425', '00,54,5425', '噶尔县', '54', '西藏自治区', '5425', '阿里地区', '542523', '噶尔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('542524', '5425', '00,54,5425', '日土县', '54', '西藏自治区', '5425', '阿里地区', '542524', '日土县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('542525', '5425', '00,54,5425', '革吉县', '54', '西藏自治区', '5425', '阿里地区', '542525', '革吉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('542526', '5425', '00,54,5425', '改则县', '54', '西藏自治区', '5425', '阿里地区', '542526', '改则县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('542527', '5425', '00,54,5425', '措勤县', '54', '西藏自治区', '5425', '阿里地区', '542527', '措勤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('61', '00', '00', '陕西省', '61', '陕西省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('6101', '61', '00,61', '西安市', '61', '陕西省', '6101', '西安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610102', '6101', '00,61,6101', '新城区', '61', '陕西省', '6101', '西安市', '610102', '新城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610103', '6101', '00,61,6101', '碑林区', '61', '陕西省', '6101', '西安市', '610103', '碑林区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610104', '6101', '00,61,6101', '莲湖区', '61', '陕西省', '6101', '西安市', '610104', '莲湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610111', '6101', '00,61,6101', '灞桥区', '61', '陕西省', '6101', '西安市', '610111', '灞桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610112', '6101', '00,61,6101', '未央区', '61', '陕西省', '6101', '西安市', '610112', '未央区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610113', '6101', '00,61,6101', '雁塔区', '61', '陕西省', '6101', '西安市', '610113', '雁塔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610114', '6101', '00,61,6101', '阎良区', '61', '陕西省', '6101', '西安市', '610114', '阎良区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610115', '6101', '00,61,6101', '临潼区', '61', '陕西省', '6101', '西安市', '610115', '临潼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610116', '6101', '00,61,6101', '长安区', '61', '陕西省', '6101', '西安市', '610116', '长安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610117', '6101', '00,61,6101', '高陵区', '61', '陕西省', '6101', '西安市', '610117', '高陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610118', '6101', '00,61,6101', '鄠邑区', '61', '陕西省', '6101', '西安市', '610118', '鄠邑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610122', '6101', '00,61,6101', '蓝田县', '61', '陕西省', '6101', '西安市', '610122', '蓝田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610124', '6101', '00,61,6101', '周至县', '61', '陕西省', '6101', '西安市', '610124', '周至县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6102', '61', '00,61', '铜川市', '61', '陕西省', '6102', '铜川市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610202', '6102', '00,61,6102', '王益区', '61', '陕西省', '6102', '铜川市', '610202', '王益区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610203', '6102', '00,61,6102', '印台区', '61', '陕西省', '6102', '铜川市', '610203', '印台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610204', '6102', '00,61,6102', '耀州区', '61', '陕西省', '6102', '铜川市', '610204', '耀州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610222', '6102', '00,61,6102', '宜君县', '61', '陕西省', '6102', '铜川市', '610222', '宜君县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6103', '61', '00,61', '宝鸡市', '61', '陕西省', '6103', '宝鸡市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610302', '6103', '00,61,6103', '渭滨区', '61', '陕西省', '6103', '宝鸡市', '610302', '渭滨区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610303', '6103', '00,61,6103', '金台区', '61', '陕西省', '6103', '宝鸡市', '610303', '金台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610304', '6103', '00,61,6103', '陈仓区', '61', '陕西省', '6103', '宝鸡市', '610304', '陈仓区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610322', '6103', '00,61,6103', '凤翔县', '61', '陕西省', '6103', '宝鸡市', '610322', '凤翔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610323', '6103', '00,61,6103', '岐山县', '61', '陕西省', '6103', '宝鸡市', '610323', '岐山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610324', '6103', '00,61,6103', '扶风县', '61', '陕西省', '6103', '宝鸡市', '610324', '扶风县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610326', '6103', '00,61,6103', '眉县', '61', '陕西省', '6103', '宝鸡市', '610326', '眉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610327', '6103', '00,61,6103', '陇县', '61', '陕西省', '6103', '宝鸡市', '610327', '陇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610328', '6103', '00,61,6103', '千阳县', '61', '陕西省', '6103', '宝鸡市', '610328', '千阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610329', '6103', '00,61,6103', '麟游县', '61', '陕西省', '6103', '宝鸡市', '610329', '麟游县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610330', '6103', '00,61,6103', '凤县', '61', '陕西省', '6103', '宝鸡市', '610330', '凤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610331', '6103', '00,61,6103', '太白县', '61', '陕西省', '6103', '宝鸡市', '610331', '太白县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6104', '61', '00,61', '咸阳市', '61', '陕西省', '6104', '咸阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610402', '6104', '00,61,6104', '秦都区', '61', '陕西省', '6104', '咸阳市', '610402', '秦都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610403', '6104', '00,61,6104', '杨陵区', '61', '陕西省', '6104', '咸阳市', '610403', '杨陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610404', '6104', '00,61,6104', '渭城区', '61', '陕西省', '6104', '咸阳市', '610404', '渭城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610422', '6104', '00,61,6104', '三原县', '61', '陕西省', '6104', '咸阳市', '610422', '三原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610423', '6104', '00,61,6104', '泾阳县', '61', '陕西省', '6104', '咸阳市', '610423', '泾阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610424', '6104', '00,61,6104', '乾县', '61', '陕西省', '6104', '咸阳市', '610424', '乾县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610425', '6104', '00,61,6104', '礼泉县', '61', '陕西省', '6104', '咸阳市', '610425', '礼泉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610426', '6104', '00,61,6104', '永寿县', '61', '陕西省', '6104', '咸阳市', '610426', '永寿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610428', '6104', '00,61,6104', '长武县', '61', '陕西省', '6104', '咸阳市', '610428', '长武县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610429', '6104', '00,61,6104', '旬邑县', '61', '陕西省', '6104', '咸阳市', '610429', '旬邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610430', '6104', '00,61,6104', '淳化县', '61', '陕西省', '6104', '咸阳市', '610430', '淳化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610431', '6104', '00,61,6104', '武功县', '61', '陕西省', '6104', '咸阳市', '610431', '武功县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610481', '6104', '00,61,6104', '兴平市', '61', '陕西省', '6104', '咸阳市', '610481', '兴平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610482', '6104', '00,61,6104', '彬州市', '61', '陕西省', '6104', '咸阳市', '610482', '彬州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6105', '61', '00,61', '渭南市', '61', '陕西省', '6105', '渭南市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610502', '6105', '00,61,6105', '临渭区', '61', '陕西省', '6105', '渭南市', '610502', '临渭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610503', '6105', '00,61,6105', '华州区', '61', '陕西省', '6105', '渭南市', '610503', '华州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610522', '6105', '00,61,6105', '潼关县', '61', '陕西省', '6105', '渭南市', '610522', '潼关县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610523', '6105', '00,61,6105', '大荔县', '61', '陕西省', '6105', '渭南市', '610523', '大荔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610524', '6105', '00,61,6105', '合阳县', '61', '陕西省', '6105', '渭南市', '610524', '合阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610525', '6105', '00,61,6105', '澄城县', '61', '陕西省', '6105', '渭南市', '610525', '澄城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610526', '6105', '00,61,6105', '蒲城县', '61', '陕西省', '6105', '渭南市', '610526', '蒲城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610527', '6105', '00,61,6105', '白水县', '61', '陕西省', '6105', '渭南市', '610527', '白水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610528', '6105', '00,61,6105', '富平县', '61', '陕西省', '6105', '渭南市', '610528', '富平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610581', '6105', '00,61,6105', '韩城市', '61', '陕西省', '6105', '渭南市', '610581', '韩城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610582', '6105', '00,61,6105', '华阴市', '61', '陕西省', '6105', '渭南市', '610582', '华阴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6106', '61', '00,61', '延安市', '61', '陕西省', '6106', '延安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610602', '6106', '00,61,6106', '宝塔区', '61', '陕西省', '6106', '延安市', '610602', '宝塔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610603', '6106', '00,61,6106', '安塞区', '61', '陕西省', '6106', '延安市', '610603', '安塞区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610621', '6106', '00,61,6106', '延长县', '61', '陕西省', '6106', '延安市', '610621', '延长县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610622', '6106', '00,61,6106', '延川县', '61', '陕西省', '6106', '延安市', '610622', '延川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610625', '6106', '00,61,6106', '志丹县', '61', '陕西省', '6106', '延安市', '610625', '志丹县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610626', '6106', '00,61,6106', '吴起县', '61', '陕西省', '6106', '延安市', '610626', '吴起县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610627', '6106', '00,61,6106', '甘泉县', '61', '陕西省', '6106', '延安市', '610627', '甘泉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610628', '6106', '00,61,6106', '富县', '61', '陕西省', '6106', '延安市', '610628', '富县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610629', '6106', '00,61,6106', '洛川县', '61', '陕西省', '6106', '延安市', '610629', '洛川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610630', '6106', '00,61,6106', '宜川县', '61', '陕西省', '6106', '延安市', '610630', '宜川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610631', '6106', '00,61,6106', '黄龙县', '61', '陕西省', '6106', '延安市', '610631', '黄龙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610632', '6106', '00,61,6106', '黄陵县', '61', '陕西省', '6106', '延安市', '610632', '黄陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610681', '6106', '00,61,6106', '子长市', '61', '陕西省', '6106', '延安市', '610681', '子长市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6107', '61', '00,61', '汉中市', '61', '陕西省', '6107', '汉中市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610702', '6107', '00,61,6107', '汉台区', '61', '陕西省', '6107', '汉中市', '610702', '汉台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610703', '6107', '00,61,6107', '南郑区', '61', '陕西省', '6107', '汉中市', '610703', '南郑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610722', '6107', '00,61,6107', '城固县', '61', '陕西省', '6107', '汉中市', '610722', '城固县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610723', '6107', '00,61,6107', '洋县', '61', '陕西省', '6107', '汉中市', '610723', '洋县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610724', '6107', '00,61,6107', '西乡县', '61', '陕西省', '6107', '汉中市', '610724', '西乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610725', '6107', '00,61,6107', '勉县', '61', '陕西省', '6107', '汉中市', '610725', '勉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610726', '6107', '00,61,6107', '宁强县', '61', '陕西省', '6107', '汉中市', '610726', '宁强县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610727', '6107', '00,61,6107', '略阳县', '61', '陕西省', '6107', '汉中市', '610727', '略阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610728', '6107', '00,61,6107', '镇巴县', '61', '陕西省', '6107', '汉中市', '610728', '镇巴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610729', '6107', '00,61,6107', '留坝县', '61', '陕西省', '6107', '汉中市', '610729', '留坝县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610730', '6107', '00,61,6107', '佛坪县', '61', '陕西省', '6107', '汉中市', '610730', '佛坪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6108', '61', '00,61', '榆林市', '61', '陕西省', '6108', '榆林市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610802', '6108', '00,61,6108', '榆阳区', '61', '陕西省', '6108', '榆林市', '610802', '榆阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610803', '6108', '00,61,6108', '横山区', '61', '陕西省', '6108', '榆林市', '610803', '横山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610822', '6108', '00,61,6108', '府谷县', '61', '陕西省', '6108', '榆林市', '610822', '府谷县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610824', '6108', '00,61,6108', '靖边县', '61', '陕西省', '6108', '榆林市', '610824', '靖边县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610825', '6108', '00,61,6108', '定边县', '61', '陕西省', '6108', '榆林市', '610825', '定边县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610826', '6108', '00,61,6108', '绥德县', '61', '陕西省', '6108', '榆林市', '610826', '绥德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610827', '6108', '00,61,6108', '米脂县', '61', '陕西省', '6108', '榆林市', '610827', '米脂县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610828', '6108', '00,61,6108', '佳县', '61', '陕西省', '6108', '榆林市', '610828', '佳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610829', '6108', '00,61,6108', '吴堡县', '61', '陕西省', '6108', '榆林市', '610829', '吴堡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610830', '6108', '00,61,6108', '清涧县', '61', '陕西省', '6108', '榆林市', '610830', '清涧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610831', '6108', '00,61,6108', '子洲县', '61', '陕西省', '6108', '榆林市', '610831', '子洲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610881', '6108', '00,61,6108', '神木市', '61', '陕西省', '6108', '榆林市', '610881', '神木市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6109', '61', '00,61', '安康市', '61', '陕西省', '6109', '安康市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610902', '6109', '00,61,6109', '汉滨区', '61', '陕西省', '6109', '安康市', '610902', '汉滨区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610921', '6109', '00,61,6109', '汉阴县', '61', '陕西省', '6109', '安康市', '610921', '汉阴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610922', '6109', '00,61,6109', '石泉县', '61', '陕西省', '6109', '安康市', '610922', '石泉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610923', '6109', '00,61,6109', '宁陕县', '61', '陕西省', '6109', '安康市', '610923', '宁陕县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610924', '6109', '00,61,6109', '紫阳县', '61', '陕西省', '6109', '安康市', '610924', '紫阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610925', '6109', '00,61,6109', '岚皋县', '61', '陕西省', '6109', '安康市', '610925', '岚皋县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610926', '6109', '00,61,6109', '平利县', '61', '陕西省', '6109', '安康市', '610926', '平利县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610927', '6109', '00,61,6109', '镇坪县', '61', '陕西省', '6109', '安康市', '610927', '镇坪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610928', '6109', '00,61,6109', '旬阳县', '61', '陕西省', '6109', '安康市', '610928', '旬阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610929', '6109', '00,61,6109', '白河县', '61', '陕西省', '6109', '安康市', '610929', '白河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6110', '61', '00,61', '商洛市', '61', '陕西省', '6110', '商洛市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('611002', '6110', '00,61,6110', '商州区', '61', '陕西省', '6110', '商洛市', '611002', '商州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('611021', '6110', '00,61,6110', '洛南县', '61', '陕西省', '6110', '商洛市', '611021', '洛南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('611022', '6110', '00,61,6110', '丹凤县', '61', '陕西省', '6110', '商洛市', '611022', '丹凤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('611023', '6110', '00,61,6110', '商南县', '61', '陕西省', '6110', '商洛市', '611023', '商南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('611024', '6110', '00,61,6110', '山阳县', '61', '陕西省', '6110', '商洛市', '611024', '山阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('611025', '6110', '00,61,6110', '镇安县', '61', '陕西省', '6110', '商洛市', '611025', '镇安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('611026', '6110', '00,61,6110', '柞水县', '61', '陕西省', '6110', '商洛市', '611026', '柞水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('62', '00', '00', '甘肃省', '62', '甘肃省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('6201', '62', '00,62', '兰州市', '62', '甘肃省', '6201', '兰州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620102', '6201', '00,62,6201', '城关区', '62', '甘肃省', '6201', '兰州市', '620102', '城关区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620103', '6201', '00,62,6201', '七里河区', '62', '甘肃省', '6201', '兰州市', '620103', '七里河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620104', '6201', '00,62,6201', '西固区', '62', '甘肃省', '6201', '兰州市', '620104', '西固区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620105', '6201', '00,62,6201', '安宁区', '62', '甘肃省', '6201', '兰州市', '620105', '安宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620111', '6201', '00,62,6201', '红古区', '62', '甘肃省', '6201', '兰州市', '620111', '红古区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620121', '6201', '00,62,6201', '永登县', '62', '甘肃省', '6201', '兰州市', '620121', '永登县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620122', '6201', '00,62,6201', '皋兰县', '62', '甘肃省', '6201', '兰州市', '620122', '皋兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620123', '6201', '00,62,6201', '榆中县', '62', '甘肃省', '6201', '兰州市', '620123', '榆中县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6202', '62', '00,62', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620200', '6202', '00,62,6202', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '620200', '嘉峪关市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6203', '62', '00,62', '金昌市', '62', '甘肃省', '6203', '金昌市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620302', '6203', '00,62,6203', '金川区', '62', '甘肃省', '6203', '金昌市', '620302', '金川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620321', '6203', '00,62,6203', '永昌县', '62', '甘肃省', '6203', '金昌市', '620321', '永昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6204', '62', '00,62', '白银市', '62', '甘肃省', '6204', '白银市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620402', '6204', '00,62,6204', '白银区', '62', '甘肃省', '6204', '白银市', '620402', '白银区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620403', '6204', '00,62,6204', '平川区', '62', '甘肃省', '6204', '白银市', '620403', '平川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620421', '6204', '00,62,6204', '靖远县', '62', '甘肃省', '6204', '白银市', '620421', '靖远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620422', '6204', '00,62,6204', '会宁县', '62', '甘肃省', '6204', '白银市', '620422', '会宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620423', '6204', '00,62,6204', '景泰县', '62', '甘肃省', '6204', '白银市', '620423', '景泰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6205', '62', '00,62', '天水市', '62', '甘肃省', '6205', '天水市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620502', '6205', '00,62,6205', '秦州区', '62', '甘肃省', '6205', '天水市', '620502', '秦州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620503', '6205', '00,62,6205', '麦积区', '62', '甘肃省', '6205', '天水市', '620503', '麦积区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620521', '6205', '00,62,6205', '清水县', '62', '甘肃省', '6205', '天水市', '620521', '清水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620522', '6205', '00,62,6205', '秦安县', '62', '甘肃省', '6205', '天水市', '620522', '秦安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620523', '6205', '00,62,6205', '甘谷县', '62', '甘肃省', '6205', '天水市', '620523', '甘谷县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620524', '6205', '00,62,6205', '武山县', '62', '甘肃省', '6205', '天水市', '620524', '武山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620525', '6205', '00,62,6205', '张家川回族自治县', '62', '甘肃省', '6205', '天水市', '620525', '张家川回族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6206', '62', '00,62', '武威市', '62', '甘肃省', '6206', '武威市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620602', '6206', '00,62,6206', '凉州区', '62', '甘肃省', '6206', '武威市', '620602', '凉州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620621', '6206', '00,62,6206', '民勤县', '62', '甘肃省', '6206', '武威市', '620621', '民勤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620622', '6206', '00,62,6206', '古浪县', '62', '甘肃省', '6206', '武威市', '620622', '古浪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620623', '6206', '00,62,6206', '天祝藏族自治县', '62', '甘肃省', '6206', '武威市', '620623', '天祝藏族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6207', '62', '00,62', '张掖市', '62', '甘肃省', '6207', '张掖市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620702', '6207', '00,62,6207', '甘州区', '62', '甘肃省', '6207', '张掖市', '620702', '甘州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620721', '6207', '00,62,6207', '肃南裕固族自治县', '62', '甘肃省', '6207', '张掖市', '620721', '肃南裕固族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620722', '6207', '00,62,6207', '民乐县', '62', '甘肃省', '6207', '张掖市', '620722', '民乐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620723', '6207', '00,62,6207', '临泽县', '62', '甘肃省', '6207', '张掖市', '620723', '临泽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620724', '6207', '00,62,6207', '高台县', '62', '甘肃省', '6207', '张掖市', '620724', '高台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620725', '6207', '00,62,6207', '山丹县', '62', '甘肃省', '6207', '张掖市', '620725', '山丹县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6208', '62', '00,62', '平凉市', '62', '甘肃省', '6208', '平凉市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620802', '6208', '00,62,6208', '崆峒区', '62', '甘肃省', '6208', '平凉市', '620802', '崆峒区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620821', '6208', '00,62,6208', '泾川县', '62', '甘肃省', '6208', '平凉市', '620821', '泾川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620822', '6208', '00,62,6208', '灵台县', '62', '甘肃省', '6208', '平凉市', '620822', '灵台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620823', '6208', '00,62,6208', '崇信县', '62', '甘肃省', '6208', '平凉市', '620823', '崇信县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620825', '6208', '00,62,6208', '庄浪县', '62', '甘肃省', '6208', '平凉市', '620825', '庄浪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620826', '6208', '00,62,6208', '静宁县', '62', '甘肃省', '6208', '平凉市', '620826', '静宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620881', '6208', '00,62,6208', '华亭市', '62', '甘肃省', '6208', '平凉市', '620881', '华亭市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6209', '62', '00,62', '酒泉市', '62', '甘肃省', '6209', '酒泉市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620902', '6209', '00,62,6209', '肃州区', '62', '甘肃省', '6209', '酒泉市', '620902', '肃州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620921', '6209', '00,62,6209', '金塔县', '62', '甘肃省', '6209', '酒泉市', '620921', '金塔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620922', '6209', '00,62,6209', '瓜州县', '62', '甘肃省', '6209', '酒泉市', '620922', '瓜州县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620923', '6209', '00,62,6209', '肃北蒙古族自治县', '62', '甘肃省', '6209', '酒泉市', '620923', '肃北蒙古族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620924', '6209', '00,62,6209', '阿克塞哈萨克族自治县', '62', '甘肃省', '6209', '酒泉市', '620924', '阿克塞哈萨克族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620981', '6209', '00,62,6209', '玉门市', '62', '甘肃省', '6209', '酒泉市', '620981', '玉门市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620982', '6209', '00,62,6209', '敦煌市', '62', '甘肃省', '6209', '酒泉市', '620982', '敦煌市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6210', '62', '00,62', '庆阳市', '62', '甘肃省', '6210', '庆阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('621002', '6210', '00,62,6210', '西峰区', '62', '甘肃省', '6210', '庆阳市', '621002', '西峰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621021', '6210', '00,62,6210', '庆城县', '62', '甘肃省', '6210', '庆阳市', '621021', '庆城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621022', '6210', '00,62,6210', '环县', '62', '甘肃省', '6210', '庆阳市', '621022', '环县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621023', '6210', '00,62,6210', '华池县', '62', '甘肃省', '6210', '庆阳市', '621023', '华池县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621024', '6210', '00,62,6210', '合水县', '62', '甘肃省', '6210', '庆阳市', '621024', '合水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621025', '6210', '00,62,6210', '正宁县', '62', '甘肃省', '6210', '庆阳市', '621025', '正宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621026', '6210', '00,62,6210', '宁县', '62', '甘肃省', '6210', '庆阳市', '621026', '宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621027', '6210', '00,62,6210', '镇原县', '62', '甘肃省', '6210', '庆阳市', '621027', '镇原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6211', '62', '00,62', '定西市', '62', '甘肃省', '6211', '定西市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('621102', '6211', '00,62,6211', '安定区', '62', '甘肃省', '6211', '定西市', '621102', '安定区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621121', '6211', '00,62,6211', '通渭县', '62', '甘肃省', '6211', '定西市', '621121', '通渭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621122', '6211', '00,62,6211', '陇西县', '62', '甘肃省', '6211', '定西市', '621122', '陇西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621123', '6211', '00,62,6211', '渭源县', '62', '甘肃省', '6211', '定西市', '621123', '渭源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621124', '6211', '00,62,6211', '临洮县', '62', '甘肃省', '6211', '定西市', '621124', '临洮县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621125', '6211', '00,62,6211', '漳县', '62', '甘肃省', '6211', '定西市', '621125', '漳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621126', '6211', '00,62,6211', '岷县', '62', '甘肃省', '6211', '定西市', '621126', '岷县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6212', '62', '00,62', '陇南市', '62', '甘肃省', '6212', '陇南市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('621202', '6212', '00,62,6212', '武都区', '62', '甘肃省', '6212', '陇南市', '621202', '武都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621221', '6212', '00,62,6212', '成县', '62', '甘肃省', '6212', '陇南市', '621221', '成县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621222', '6212', '00,62,6212', '文县', '62', '甘肃省', '6212', '陇南市', '621222', '文县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621223', '6212', '00,62,6212', '宕昌县', '62', '甘肃省', '6212', '陇南市', '621223', '宕昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621224', '6212', '00,62,6212', '康县', '62', '甘肃省', '6212', '陇南市', '621224', '康县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621225', '6212', '00,62,6212', '西和县', '62', '甘肃省', '6212', '陇南市', '621225', '西和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621226', '6212', '00,62,6212', '礼县', '62', '甘肃省', '6212', '陇南市', '621226', '礼县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621227', '6212', '00,62,6212', '徽县', '62', '甘肃省', '6212', '陇南市', '621227', '徽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621228', '6212', '00,62,6212', '两当县', '62', '甘肃省', '6212', '陇南市', '621228', '两当县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6229', '62', '00,62', '临夏回族自治州', '62', '甘肃省', '6229', '临夏回族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('622901', '6229', '00,62,6229', '临夏市', '62', '甘肃省', '6229', '临夏回族自治州', '622901', '临夏市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('622921', '6229', '00,62,6229', '临夏县', '62', '甘肃省', '6229', '临夏回族自治州', '622921', '临夏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('622922', '6229', '00,62,6229', '康乐县', '62', '甘肃省', '6229', '临夏回族自治州', '622922', '康乐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('622923', '6229', '00,62,6229', '永靖县', '62', '甘肃省', '6229', '临夏回族自治州', '622923', '永靖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('622924', '6229', '00,62,6229', '广河县', '62', '甘肃省', '6229', '临夏回族自治州', '622924', '广河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('622925', '6229', '00,62,6229', '和政县', '62', '甘肃省', '6229', '临夏回族自治州', '622925', '和政县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('622926', '6229', '00,62,6229', '东乡族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622926', '东乡族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('622927', '6229', '00,62,6229', '积石山保安族东乡族撒拉族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622927', '积石山保安族东乡族撒拉族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6230', '62', '00,62', '甘南藏族自治州', '62', '甘肃省', '6230', '甘南藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('623001', '6230', '00,62,6230', '合作市', '62', '甘肃省', '6230', '甘南藏族自治州', '623001', '合作市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('623021', '6230', '00,62,6230', '临潭县', '62', '甘肃省', '6230', '甘南藏族自治州', '623021', '临潭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('623022', '6230', '00,62,6230', '卓尼县', '62', '甘肃省', '6230', '甘南藏族自治州', '623022', '卓尼县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('623023', '6230', '00,62,6230', '舟曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623023', '舟曲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('623024', '6230', '00,62,6230', '迭部县', '62', '甘肃省', '6230', '甘南藏族自治州', '623024', '迭部县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('623025', '6230', '00,62,6230', '玛曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623025', '玛曲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('623026', '6230', '00,62,6230', '碌曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623026', '碌曲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('623027', '6230', '00,62,6230', '夏河县', '62', '甘肃省', '6230', '甘南藏族自治州', '623027', '夏河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('63', '00', '00', '青海省', '63', '青海省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('6301', '63', '00,63', '西宁市', '63', '青海省', '6301', '西宁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('630102', '6301', '00,63,6301', '城东区', '63', '青海省', '6301', '西宁市', '630102', '城东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630103', '6301', '00,63,6301', '城中区', '63', '青海省', '6301', '西宁市', '630103', '城中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630104', '6301', '00,63,6301', '城西区', '63', '青海省', '6301', '西宁市', '630104', '城西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630105', '6301', '00,63,6301', '城北区', '63', '青海省', '6301', '西宁市', '630105', '城北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630106', '6301', '00,63,6301', '湟中区', '63', '青海省', '6301', '西宁市', '630106', '湟中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630121', '6301', '00,63,6301', '大通回族土族自治县', '63', '青海省', '6301', '西宁市', '630121', '大通回族土族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630123', '6301', '00,63,6301', '湟源县', '63', '青海省', '6301', '西宁市', '630123', '湟源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6302', '63', '00,63', '海东市', '63', '青海省', '6302', '海东市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('630202', '6302', '00,63,6302', '乐都区', '63', '青海省', '6302', '海东市', '630202', '乐都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630203', '6302', '00,63,6302', '平安区', '63', '青海省', '6302', '海东市', '630203', '平安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630222', '6302', '00,63,6302', '民和回族土族自治县', '63', '青海省', '6302', '海东市', '630222', '民和回族土族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630223', '6302', '00,63,6302', '互助土族自治县', '63', '青海省', '6302', '海东市', '630223', '互助土族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630224', '6302', '00,63,6302', '化隆回族自治县', '63', '青海省', '6302', '海东市', '630224', '化隆回族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630225', '6302', '00,63,6302', '循化撒拉族自治县', '63', '青海省', '6302', '海东市', '630225', '循化撒拉族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6322', '63', '00,63', '海北藏族自治州', '63', '青海省', '6322', '海北藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('632221', '6322', '00,63,6322', '门源回族自治县', '63', '青海省', '6322', '海北藏族自治州', '632221', '门源回族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632222', '6322', '00,63,6322', '祁连县', '63', '青海省', '6322', '海北藏族自治州', '632222', '祁连县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632223', '6322', '00,63,6322', '海晏县', '63', '青海省', '6322', '海北藏族自治州', '632223', '海晏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632224', '6322', '00,63,6322', '刚察县', '63', '青海省', '6322', '海北藏族自治州', '632224', '刚察县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6323', '63', '00,63', '黄南藏族自治州', '63', '青海省', '6323', '黄南藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('632321', '6323', '00,63,6323', '同仁县', '63', '青海省', '6323', '黄南藏族自治州', '632321', '同仁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632322', '6323', '00,63,6323', '尖扎县', '63', '青海省', '6323', '黄南藏族自治州', '632322', '尖扎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632323', '6323', '00,63,6323', '泽库县', '63', '青海省', '6323', '黄南藏族自治州', '632323', '泽库县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632324', '6323', '00,63,6323', '河南蒙古族自治县', '63', '青海省', '6323', '黄南藏族自治州', '632324', '河南蒙古族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6325', '63', '00,63', '海南藏族自治州', '63', '青海省', '6325', '海南藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('632521', '6325', '00,63,6325', '共和县', '63', '青海省', '6325', '海南藏族自治州', '632521', '共和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632522', '6325', '00,63,6325', '同德县', '63', '青海省', '6325', '海南藏族自治州', '632522', '同德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632523', '6325', '00,63,6325', '贵德县', '63', '青海省', '6325', '海南藏族自治州', '632523', '贵德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632524', '6325', '00,63,6325', '兴海县', '63', '青海省', '6325', '海南藏族自治州', '632524', '兴海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632525', '6325', '00,63,6325', '贵南县', '63', '青海省', '6325', '海南藏族自治州', '632525', '贵南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6326', '63', '00,63', '果洛藏族自治州', '63', '青海省', '6326', '果洛藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('632621', '6326', '00,63,6326', '玛沁县', '63', '青海省', '6326', '果洛藏族自治州', '632621', '玛沁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632622', '6326', '00,63,6326', '班玛县', '63', '青海省', '6326', '果洛藏族自治州', '632622', '班玛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632623', '6326', '00,63,6326', '甘德县', '63', '青海省', '6326', '果洛藏族自治州', '632623', '甘德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632624', '6326', '00,63,6326', '达日县', '63', '青海省', '6326', '果洛藏族自治州', '632624', '达日县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632625', '6326', '00,63,6326', '久治县', '63', '青海省', '6326', '果洛藏族自治州', '632625', '久治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632626', '6326', '00,63,6326', '玛多县', '63', '青海省', '6326', '果洛藏族自治州', '632626', '玛多县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6327', '63', '00,63', '玉树藏族自治州', '63', '青海省', '6327', '玉树藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('632701', '6327', '00,63,6327', '玉树市', '63', '青海省', '6327', '玉树藏族自治州', '632701', '玉树市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632722', '6327', '00,63,6327', '杂多县', '63', '青海省', '6327', '玉树藏族自治州', '632722', '杂多县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632723', '6327', '00,63,6327', '称多县', '63', '青海省', '6327', '玉树藏族自治州', '632723', '称多县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632724', '6327', '00,63,6327', '治多县', '63', '青海省', '6327', '玉树藏族自治州', '632724', '治多县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632725', '6327', '00,63,6327', '囊谦县', '63', '青海省', '6327', '玉树藏族自治州', '632725', '囊谦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632726', '6327', '00,63,6327', '曲麻莱县', '63', '青海省', '6327', '玉树藏族自治州', '632726', '曲麻莱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6328', '63', '00,63', '海西蒙古族藏族自治州', '63', '青海省', '6328', '海西蒙古族藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('632801', '6328', '00,63,6328', '格尔木市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632801', '格尔木市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632802', '6328', '00,63,6328', '德令哈市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632802', '德令哈市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632803', '6328', '00,63,6328', '茫崖市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632803', '茫崖市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632821', '6328', '00,63,6328', '乌兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632821', '乌兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632822', '6328', '00,63,6328', '都兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632822', '都兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632823', '6328', '00,63,6328', '天峻县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632823', '天峻县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('64', '00', '00', '宁夏回族自治区', '64', '宁夏回族自治区', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('6401', '64', '00,64', '银川市', '64', '宁夏回族自治区', '6401', '银川市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('640104', '6401', '00,64,6401', '兴庆区', '64', '宁夏回族自治区', '6401', '银川市', '640104', '兴庆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640105', '6401', '00,64,6401', '西夏区', '64', '宁夏回族自治区', '6401', '银川市', '640105', '西夏区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640106', '6401', '00,64,6401', '金凤区', '64', '宁夏回族自治区', '6401', '银川市', '640106', '金凤区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640121', '6401', '00,64,6401', '永宁县', '64', '宁夏回族自治区', '6401', '银川市', '640121', '永宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640122', '6401', '00,64,6401', '贺兰县', '64', '宁夏回族自治区', '6401', '银川市', '640122', '贺兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640181', '6401', '00,64,6401', '灵武市', '64', '宁夏回族自治区', '6401', '银川市', '640181', '灵武市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6402', '64', '00,64', '石嘴山市', '64', '宁夏回族自治区', '6402', '石嘴山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('640202', '6402', '00,64,6402', '大武口区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640202', '大武口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640205', '6402', '00,64,6402', '惠农区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640205', '惠农区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640221', '6402', '00,64,6402', '平罗县', '64', '宁夏回族自治区', '6402', '石嘴山市', '640221', '平罗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6403', '64', '00,64', '吴忠市', '64', '宁夏回族自治区', '6403', '吴忠市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('640302', '6403', '00,64,6403', '利通区', '64', '宁夏回族自治区', '6403', '吴忠市', '640302', '利通区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640303', '6403', '00,64,6403', '红寺堡区', '64', '宁夏回族自治区', '6403', '吴忠市', '640303', '红寺堡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640323', '6403', '00,64,6403', '盐池县', '64', '宁夏回族自治区', '6403', '吴忠市', '640323', '盐池县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640324', '6403', '00,64,6403', '同心县', '64', '宁夏回族自治区', '6403', '吴忠市', '640324', '同心县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640381', '6403', '00,64,6403', '青铜峡市', '64', '宁夏回族自治区', '6403', '吴忠市', '640381', '青铜峡市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6404', '64', '00,64', '固原市', '64', '宁夏回族自治区', '6404', '固原市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('640402', '6404', '00,64,6404', '原州区', '64', '宁夏回族自治区', '6404', '固原市', '640402', '原州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640422', '6404', '00,64,6404', '西吉县', '64', '宁夏回族自治区', '6404', '固原市', '640422', '西吉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640423', '6404', '00,64,6404', '隆德县', '64', '宁夏回族自治区', '6404', '固原市', '640423', '隆德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640424', '6404', '00,64,6404', '泾源县', '64', '宁夏回族自治区', '6404', '固原市', '640424', '泾源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640425', '6404', '00,64,6404', '彭阳县', '64', '宁夏回族自治区', '6404', '固原市', '640425', '彭阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6405', '64', '00,64', '中卫市', '64', '宁夏回族自治区', '6405', '中卫市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('640502', '6405', '00,64,6405', '沙坡头区', '64', '宁夏回族自治区', '6405', '中卫市', '640502', '沙坡头区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640521', '6405', '00,64,6405', '中宁县', '64', '宁夏回族自治区', '6405', '中卫市', '640521', '中宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640522', '6405', '00,64,6405', '海原县', '64', '宁夏回族自治区', '6405', '中卫市', '640522', '海原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('65', '00', '00', '新疆维吾尔自治区', '65', '新疆维吾尔自治区', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('6501', '65', '00,65', '乌鲁木齐市', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('650102', '6501', '00,65,6501', '天山区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650102', '天山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650103', '6501', '00,65,6501', '沙依巴克区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650103', '沙依巴克区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650104', '6501', '00,65,6501', '新市区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650104', '新市区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650105', '6501', '00,65,6501', '水磨沟区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650105', '水磨沟区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650106', '6501', '00,65,6501', '头屯河区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650106', '头屯河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650107', '6501', '00,65,6501', '达坂城区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650107', '达坂城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650109', '6501', '00,65,6501', '米东区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650109', '米东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650121', '6501', '00,65,6501', '乌鲁木齐县', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650121', '乌鲁木齐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6502', '65', '00,65', '克拉玛依市', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('650202', '6502', '00,65,6502', '独山子区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650202', '独山子区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650203', '6502', '00,65,6502', '克拉玛依区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650203', '克拉玛依区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650204', '6502', '00,65,6502', '白碱滩区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650204', '白碱滩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650205', '6502', '00,65,6502', '乌尔禾区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650205', '乌尔禾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6504', '65', '00,65', '吐鲁番市', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('650402', '6504', '00,65,6504', '高昌区', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650402', '高昌区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650421', '6504', '00,65,6504', '鄯善县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650421', '鄯善县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650422', '6504', '00,65,6504', '托克逊县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650422', '托克逊县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6505', '65', '00,65', '哈密市', '65', '新疆维吾尔自治区', '6505', '哈密市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('650502', '6505', '00,65,6505', '伊州区', '65', '新疆维吾尔自治区', '6505', '哈密市', '650502', '伊州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650521', '6505', '00,65,6505', '巴里坤哈萨克自治县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650521', '巴里坤哈萨克自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650522', '6505', '00,65,6505', '伊吾县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650522', '伊吾县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6523', '65', '00,65', '昌吉回族自治州', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('652301', '6523', '00,65,6523', '昌吉市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652301', '昌吉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652302', '6523', '00,65,6523', '阜康市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652302', '阜康市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652323', '6523', '00,65,6523', '呼图壁县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652323', '呼图壁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652324', '6523', '00,65,6523', '玛纳斯县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652324', '玛纳斯县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652325', '6523', '00,65,6523', '奇台县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652325', '奇台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652327', '6523', '00,65,6523', '吉木萨尔县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652327', '吉木萨尔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652328', '6523', '00,65,6523', '木垒哈萨克自治县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652328', '木垒哈萨克自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6527', '65', '00,65', '博尔塔拉蒙古自治州', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('652701', '6527', '00,65,6527', '博乐市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652701', '博乐市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652702', '6527', '00,65,6527', '阿拉山口市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652702', '阿拉山口市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652722', '6527', '00,65,6527', '精河县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652722', '精河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652723', '6527', '00,65,6527', '温泉县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652723', '温泉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6528', '65', '00,65', '巴音郭楞蒙古自治州', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('652801', '6528', '00,65,6528', '库尔勒市', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652801', '库尔勒市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652822', '6528', '00,65,6528', '轮台县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652822', '轮台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652823', '6528', '00,65,6528', '尉犁县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652823', '尉犁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652824', '6528', '00,65,6528', '若羌县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652824', '若羌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652825', '6528', '00,65,6528', '且末县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652825', '且末县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652826', '6528', '00,65,6528', '焉耆回族自治县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652826', '焉耆回族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652827', '6528', '00,65,6528', '和静县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652827', '和静县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652828', '6528', '00,65,6528', '和硕县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652828', '和硕县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652829', '6528', '00,65,6528', '博湖县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652829', '博湖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6529', '65', '00,65', '阿克苏地区', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('652901', '6529', '00,65,6529', '阿克苏市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652901', '阿克苏市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652902', '6529', '00,65,6529', '库车市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652902', '库车市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652922', '6529', '00,65,6529', '温宿县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652922', '温宿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652924', '6529', '00,65,6529', '沙雅县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652924', '沙雅县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652925', '6529', '00,65,6529', '新和县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652925', '新和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652926', '6529', '00,65,6529', '拜城县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652926', '拜城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652927', '6529', '00,65,6529', '乌什县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652927', '乌什县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652928', '6529', '00,65,6529', '阿瓦提县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652928', '阿瓦提县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652929', '6529', '00,65,6529', '柯坪县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652929', '柯坪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6530', '65', '00,65', '克孜勒苏柯尔克孜自治州', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('653001', '6530', '00,65,6530', '阿图什市', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653001', '阿图什市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653022', '6530', '00,65,6530', '阿克陶县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653022', '阿克陶县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653023', '6530', '00,65,6530', '阿合奇县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653023', '阿合奇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653024', '6530', '00,65,6530', '乌恰县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653024', '乌恰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6531', '65', '00,65', '喀什地区', '65', '新疆维吾尔自治区', '6531', '喀什地区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('653101', '6531', '00,65,6531', '喀什市', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653101', '喀什市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653121', '6531', '00,65,6531', '疏附县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653121', '疏附县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653122', '6531', '00,65,6531', '疏勒县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653122', '疏勒县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653123', '6531', '00,65,6531', '英吉沙县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653123', '英吉沙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653124', '6531', '00,65,6531', '泽普县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653124', '泽普县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653125', '6531', '00,65,6531', '莎车县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653125', '莎车县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653126', '6531', '00,65,6531', '叶城县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653126', '叶城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653127', '6531', '00,65,6531', '麦盖提县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653127', '麦盖提县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653128', '6531', '00,65,6531', '岳普湖县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653128', '岳普湖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653129', '6531', '00,65,6531', '伽师县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653129', '伽师县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653130', '6531', '00,65,6531', '巴楚县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653130', '巴楚县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653131', '6531', '00,65,6531', '塔什库尔干塔吉克自治县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653131', '塔什库尔干塔吉克自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6532', '65', '00,65', '和田地区', '65', '新疆维吾尔自治区', '6532', '和田地区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('653201', '6532', '00,65,6532', '和田市', '65', '新疆维吾尔自治区', '6532', '和田地区', '653201', '和田市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653221', '6532', '00,65,6532', '和田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653221', '和田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653222', '6532', '00,65,6532', '墨玉县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653222', '墨玉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653223', '6532', '00,65,6532', '皮山县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653223', '皮山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653224', '6532', '00,65,6532', '洛浦县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653224', '洛浦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653225', '6532', '00,65,6532', '策勒县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653225', '策勒县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653226', '6532', '00,65,6532', '于田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653226', '于田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653227', '6532', '00,65,6532', '民丰县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653227', '民丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6540', '65', '00,65', '伊犁哈萨克自治州', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('654002', '6540', '00,65,6540', '伊宁市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654002', '伊宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654003', '6540', '00,65,6540', '奎屯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654003', '奎屯市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654004', '6540', '00,65,6540', '霍尔果斯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654004', '霍尔果斯市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654021', '6540', '00,65,6540', '伊宁县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654021', '伊宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654022', '6540', '00,65,6540', '察布查尔锡伯自治县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654022', '察布查尔锡伯自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654023', '6540', '00,65,6540', '霍城县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654023', '霍城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654024', '6540', '00,65,6540', '巩留县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654024', '巩留县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654025', '6540', '00,65,6540', '新源县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654025', '新源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654026', '6540', '00,65,6540', '昭苏县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654026', '昭苏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654027', '6540', '00,65,6540', '特克斯县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654027', '特克斯县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654028', '6540', '00,65,6540', '尼勒克县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654028', '尼勒克县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6542', '65', '00,65', '塔城地区', '65', '新疆维吾尔自治区', '6542', '塔城地区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('654201', '6542', '00,65,6542', '塔城市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654201', '塔城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654202', '6542', '00,65,6542', '乌苏市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654202', '乌苏市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654221', '6542', '00,65,6542', '额敏县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654221', '额敏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654223', '6542', '00,65,6542', '沙湾县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654223', '沙湾县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654224', '6542', '00,65,6542', '托里县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654224', '托里县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654225', '6542', '00,65,6542', '裕民县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654225', '裕民县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654226', '6542', '00,65,6542', '和布克赛尔蒙古自治县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654226', '和布克赛尔蒙古自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6543', '65', '00,65', '阿勒泰地区', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('654301', '6543', '00,65,6543', '阿勒泰市', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654301', '阿勒泰市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654321', '6543', '00,65,6543', '布尔津县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654321', '布尔津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654322', '6543', '00,65,6543', '富蕴县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654322', '富蕴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654323', '6543', '00,65,6543', '福海县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654323', '福海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654324', '6543', '00,65,6543', '哈巴河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654324', '哈巴河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654325', '6543', '00,65,6543', '青河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654325', '青河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654326', '6543', '00,65,6543', '吉木乃县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654326', '吉木乃县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6590', '65', '00,65', '自治区直辖县级行政区', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('659001', '6590', '00,65,6590', '石河子市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659001', '石河子市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659002', '6590', '00,65,6590', '阿拉尔市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659002', '阿拉尔市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659003', '6590', '00,65,6590', '图木舒克市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659003', '图木舒克市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659004', '6590', '00,65,6590', '五家渠市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659004', '五家渠市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659005', '6590', '00,65,6590', '北屯市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659005', '北屯市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659006', '6590', '00,65,6590', '铁门关市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659006', '铁门关市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659007', '6590', '00,65,6590', '双河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659007', '双河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659008', '6590', '00,65,6590', '可克达拉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659008', '可克达拉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659009', '6590', '00,65,6590', '昆玉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659009', '昆玉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659010', '6590', '00,65,6590', '胡杨河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659010', '胡杨河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('71', '00', '00', '台湾省', '71', '台湾省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('81', '00', '00', '香港特别行政区', '81', '香港特别行政区', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('82', '00', '00', '澳门特别行政区', '82', '澳门特别行政区', '', '', '', '', '', '', '', '', 1, 1, '');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_report_file
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_report_file";
+CREATE TABLE "blade_report_file" (
+  "id" int8 NOT NULL,
+  "name" varchar(100) COLLATE "pg_catalog"."default" NOT NULL,
+  "content" bytea,
+  "create_time" timestamp(6) NOT NULL,
+  "update_time" timestamp(6) NOT NULL,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_report_file"."id" IS '主键';
+COMMENT ON COLUMN "blade_report_file"."name" IS '文件名';
+COMMENT ON COLUMN "blade_report_file"."content" IS '文件内容';
+COMMENT ON COLUMN "blade_report_file"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_report_file"."update_time" IS '更新时间';
+COMMENT ON COLUMN "blade_report_file"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_report_file" IS '报表文件表';
+
+-- ----------------------------
+-- Records of blade_report_file
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_report_file" VALUES (1291945594587201537, 'notice.ureport.xml', E'<?xml version="1.0" encoding="UTF-8"?><ureport><cell expand="Down" name="A1" row="1" col="1"><cell-style font-size="10" align="center" valign="middle"><left-border width="1" style="solid" color="0,0,0"/><right-border width="1" style="solid" color="0,0,0"/><top-border width="1" style="solid" color="0,0,0"/><bottom-border width="1" style="solid" color="0,0,0"/></cell-style><dataset-value dataset-name="notice" aggregate="group" property="tenant_id" order="none" mapping-type="simple"></dataset-value></cell><cell expand="Down" name="B1" row="1" col="2"><cell-style font-size="10" align="center" valign="middle"><left-border width="1" style="solid" color="0,0,0"/><right-border width="1" style="solid" color="0,0,0"/><top-border width="1" style="solid" color="0,0,0"/><bottom-border width="1" style="solid" color="0,0,0"/></cell-style><dataset-value dataset-name="notice" aggregate="group" property="title" order="none" mapping-type="simple"></dataset-value></cell><cell expand="Down" name="C1" row="1" col="3"><cell-style font-size="10" align="center" valign="middle"><left-border width="1" style="solid" color="0,0,0"/><right-border width="1" style="solid" color="0,0,0"/><top-border width="1" style="solid" color="0,0,0"/><bottom-border width="1" style="solid" color="0,0,0"/></cell-style><dataset-value dataset-name="notice" aggregate="group" property="release_time" order="none" mapping-type="simple"></dataset-value></cell><cell expand="None" name="D1" row="1" col="4"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="A2" row="2" col="1"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="B2" row="2" col="2"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="C2" row="2" col="3"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="D2" row="2" col="4"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="A3" row="3" col="1"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="B3" row="3" col="2"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="C3" row="3" col="3"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="D3" row="3" col="4"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><row row-number="1" height="18"/><row row-number="2" height="18"/><row row-number="3" height="18"/><column col-number="1" width="80"/><column col-number="2" width="80"/><column col-number="3" width="125"/><column col-number="4" width="80"/><datasource name="ReportDataSource" type="buildin"><dataset name="notice" type="sql"><sql><![CDATA[select * from blade_notice]]></sql><field name="id"/><field name="tenant_id"/><field name="title"/><field name="category"/><field name="release_time"/><field name="content"/><field name="create_user"/><field name="create_dept"/><field name="create_time"/><field name="update_user"/><field name="update_time"/><field name="status"/><field name="is_deleted"/></dataset></datasource><paper type="A4" left-margin="90" right-margin="90"\\012    top-margin="72" bottom-margin="72" paging-mode="fitpage" fixrows="0"\\012    width="595" height="842" orientation="portrait" html-report-align="left" bg-image="" html-interval-refresh-value="0" column-enabled="false"></paper></ureport>', '2020-08-08 11:53:27.595', '2020-08-08 13:02:11.393', 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_role
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_role";
+CREATE TABLE "blade_role" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "parent_id" int8,
+  "role_name" varchar(255) COLLATE "pg_catalog"."default",
+  "sort" int4,
+  "role_alias" varchar(255) COLLATE "pg_catalog"."default",
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_role"."id" IS '主键';
+COMMENT ON COLUMN "blade_role"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_role"."parent_id" IS '父主键';
+COMMENT ON COLUMN "blade_role"."role_name" IS '角色名';
+COMMENT ON COLUMN "blade_role"."sort" IS '排序';
+COMMENT ON COLUMN "blade_role"."role_alias" IS '角色别名';
+COMMENT ON COLUMN "blade_role"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_role" IS '角色表';
+
+-- ----------------------------
+-- Records of blade_role
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_role" VALUES (1123598816738675201, '000000', 0, '超级管理员', 1, 'administrator', 0);
+INSERT INTO "blade_role" VALUES (1123598816738675202, '000000', 0, '用户', 2, 'user', 0);
+INSERT INTO "blade_role" VALUES (1123598816738675203, '000000', 1123598816738675202, '人事', 1, 'hr', 0);
+INSERT INTO "blade_role" VALUES (1123598816738675204, '000000', 1123598816738675202, '经理', 2, 'manager', 0);
+INSERT INTO "blade_role" VALUES (1123598816738675205, '000000', 1123598816738675202, '老板', 3, 'boss', 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_role_menu
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_role_menu";
+CREATE TABLE "blade_role_menu" (
+  "id" int8 NOT NULL,
+  "menu_id" int8,
+  "role_id" int8
+)
+;
+COMMENT ON COLUMN "blade_role_menu"."id" IS '主键';
+COMMENT ON COLUMN "blade_role_menu"."menu_id" IS '菜单id';
+COMMENT ON COLUMN "blade_role_menu"."role_id" IS '角色id';
+COMMENT ON TABLE "blade_role_menu" IS '角色菜单关联表';
+
+-- ----------------------------
+-- Records of blade_role_menu
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_role_menu" VALUES (1123598817738675363, 1123598815738675201, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675364, 1123598815738675202, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675365, 1123598815738675219, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675366, 1123598815738675220, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675367, 1123598815738675221, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675368, 1123598815738675222, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675369, 1123598815738675280, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675370, 1123598815738675281, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675371, 1123598815738675282, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675372, 1123598815738675283, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675373, 1123598815738675284, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675374, 1123598815738675285, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675375, 1123598815738675286, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675376, 1123598815738675287, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675377, 1123598815738675288, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675378, 1123598815738675289, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675379, 1123598815738675290, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675380, 1123598815738675291, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675381, 1123598815738675292, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675382, 1123598815738675293, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675383, 1123598815738675294, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675384, 1123598815738675295, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675385, 1123598815738675296, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675386, 1123598815738675297, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675387, 1123598815738675201, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675388, 1123598815738675202, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675389, 1123598815738675219, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675390, 1123598815738675220, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675391, 1123598815738675221, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675392, 1123598815738675222, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675393, 1123598815738675280, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675394, 1123598815738675281, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675395, 1123598815738675282, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675396, 1123598815738675283, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675397, 1123598815738675284, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675398, 1123598815738675285, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675399, 1123598815738675286, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675400, 1123598815738675287, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675401, 1123598815738675288, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675402, 1123598815738675289, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675403, 1123598815738675290, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675404, 1123598815738675291, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675405, 1123598815738675292, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675406, 1123598815738675293, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675407, 1123598815738675294, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675408, 1123598815738675295, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675409, 1123598815738675296, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675410, 1123598815738675297, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675411, 1123598815738675201, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675412, 1123598815738675202, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675413, 1123598815738675219, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675414, 1123598815738675220, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675415, 1123598815738675221, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675416, 1123598815738675222, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675417, 1123598815738675280, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675418, 1123598815738675281, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675419, 1123598815738675282, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675420, 1123598815738675283, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675421, 1123598815738675284, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675422, 1123598815738675285, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675423, 1123598815738675286, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675424, 1123598815738675287, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675425, 1123598815738675288, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675426, 1123598815738675289, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675427, 1123598815738675290, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675428, 1123598815738675291, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675429, 1123598815738675292, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675430, 1123598815738675293, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675431, 1123598815738675294, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675432, 1123598815738675295, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675433, 1123598815738675296, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675434, 1123598815738675297, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675435, 1123598815738675201, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675436, 1123598815738675202, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675437, 1123598815738675219, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675438, 1123598815738675220, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675439, 1123598815738675221, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675440, 1123598815738675222, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675441, 1123598815738675280, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675442, 1123598815738675281, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675443, 1123598815738675282, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675444, 1123598815738675283, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675445, 1123598815738675284, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675446, 1123598815738675285, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675447, 1123598815738675286, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675448, 1123598815738675287, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675449, 1123598815738675288, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675450, 1123598815738675289, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675451, 1123598815738675290, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675452, 1123598815738675291, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675453, 1123598815738675292, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675454, 1123598815738675293, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675455, 1123598815738675294, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675456, 1123598815738675295, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675457, 1123598815738675296, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675458, 1123598815738675297, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1149888292426575874, 1123598815738675201, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292476907522, 1123598815738675202, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292489490433, 1123598815738675219, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292502073345, 1123598815738675220, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292518850561, 1123598815738675221, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292535627777, 1123598815738675222, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292548210690, 1123598815738675280, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292560793602, 1123598815738675281, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292577570817, 1123598815738675282, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292594348033, 1123598815738675283, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292611125249, 1123598815738675284, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292623708162, 1123598815738675285, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292640485377, 1123598815738675286, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292653068289, 1123598815738675287, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292669845506, 1123598815738675288, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292682428417, 1123598815738675289, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292699205634, 1123598815738675290, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292711788545, 1123598815738675291, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292724371458, 1123598815738675292, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292741148674, 1123598815738675293, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292753731585, 1123598815738675294, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292766314497, 1123598815738675295, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292778897410, 1123598815738675296, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292791480321, 1123598815738675297, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292808257537, 1123598815738675210, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292820840449, 1123598815738675211, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292833423362, 1123598815738675212, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292846006274, 1123598815738675213, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292862783489, 1123598815738675214, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292875366401, 1123598815738675249, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292887949313, 1123598815738675215, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292904726530, 1123598815738675250, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292917309442, 1123598815738675216, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292929892353, 1123598815738675251, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292942475265, 1123598815738675217, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292959252482, 1123598815738675218, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292971835393, 1123598815738675252, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292984418306, 1123598815738675253, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888292997001217, 1123598815738675254, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293009584129, 1123598815738675255, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293026361346, 1123598815738675266, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293043138562, 1123598815738675267, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293055721473, 1123598815738675268, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293072498690, 1123598815738675269, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293089275906, 1123598815738675270, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293101858817, 1123598815738675271, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293114441729, 1123598815738675272, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293127024642, 1123598815738675273, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293139607554, 1123598815738675274, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293152190465, 1123598815738675275, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293164773377, 1123598815738675276, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293177356290, 1123598815738675277, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293189939201, 1123598815738675278, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293202522113, 1123598815738675279, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293215105026, 1123598815738675298, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293227687938, 1123598815738675299, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293240270850, 1123598815738675301, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293252853762, 1123598815738675302, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293265436674, 1123598815738675303, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293278019586, 1123598815738675304, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293290602497, 1123598815738675305, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293303185410, 1123598815738675307, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293315768322, 1123598815738675308, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293328351234, 1123598815738675241, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293336739841, 1123598815738675242, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293349322753, 1123598815738675243, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293361905666, 1123598815738675244, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293374488578, 1123598815738675309, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293387071489, 1123598815738675310, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293399654402, 1123598815738675311, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293412237313, 1123598815738675312, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293424820226, 1123598815738675203, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293454180354, 1123598815738675204, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293483540481, 1123598815738675223, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293512900609, 1123598815738675224, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293529677826, 1123598815738675225, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293554843649, 1123598815738675226, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293571620866, 1123598815738675227, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293588398081, 1123598815738675228, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293605175297, 1123598815738675205, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293617758209, 1123598815738675229, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293630341121, 1123598815738675230, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293642924033, 1123598815738675231, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293659701250, 1123598815738675232, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293672284162, 1123598815738675206, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293684867074, 1123598815738675233, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293697449986, 1123598815738675234, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293710032897, 1123598815738675235, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293722615809, 1123598815738675236, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293735198722, 1123598815738675207, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293747781633, 1123598815738675237, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293760364545, 1123598815738675238, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293772947458, 1123598815738675239, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293785530370, 1123598815738675240, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293798113282, 1123598815738675306, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293810696194, 1123598815738675208, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293819084802, 1123598815738675313, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293831667714, 1123598815738675314, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293844250626, 1123598815738675315, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293856833538, 1123598815738675316, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293856833539, 1123598815738675317, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293869416450, 1123598815738675209, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293881999362, 1123598815738675245, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293894582274, 1123598815738675246, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293907165186, 1123598815738675247, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293919748097, 1123598815738675248, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293932331010, 1123598815738675256, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293940719618, 1123598815738675257, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293953302530, 1123598815738675258, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293965885441, 1123598815738675259, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293978468354, 1123598815738675260, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293986856962, 1123598815738675261, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888293999439874, 1123598815738675262, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888294007828482, 1123598815738675263, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888294020411393, 1123598815738675264, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149888294028800002, 1123598815738675265, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272593873322991, 1161272593873321991, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272593873322992, 1161272593873321992, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272593873322993, 1161272593873321993, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272593873322994, 1161272593873321994, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272593873322995, 1161272593873321995, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272693873322991, 1164733369658963251, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272693873322992, 1164733369658963252, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272693873322993, 1164733369658963253, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272693873322994, 1164733369658963254, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272693873322995, 1164733369658963255, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272793873322991, 1164733379658963251, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272793873322992, 1164733379658963252, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272793873322993, 1164733379658963253, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272793873322994, 1164733379658963254, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272793873322995, 1164733379658963255, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893873322991, 1164733389658963251, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893873222991, 1164733389658962251, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893873222992, 1164733389658962252, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893873222993, 1164733389658962253, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893873222994, 1164733389658962254, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893873222995, 1164733389658962255, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893873222996, 1164733389658962256, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875225001, 1164733389668962251, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875225002, 1164733389668962252, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875225003, 1164733389668962253, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875225004, 1164733389668962254, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875225005, 1164733389668962255, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875225006, 1164733389668962256, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875226001, 1164733399668962201, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875226002, 1164733399668962202, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875226003, 1164733399668962203, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875226004, 1164733399668962204, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875226005, 1164733399668962205, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875226006, 1164733399668962206, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875226007, 1164733399668962207, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875227001, 1164733399669962201, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875227002, 1164733399669962202, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875227003, 1164733399669962203, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875227004, 1164733399669962204, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875228001, 1164733399669962301, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875228002, 1164733399669962302, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875228003, 1164733399669962303, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875228004, 1164733399669962304, 1123598816738675201);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_role_scope
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_role_scope";
+CREATE TABLE "blade_role_scope" (
+  "id" int8 NOT NULL,
+  "scope_category" int4,
+  "scope_id" int8,
+  "role_id" int8
+)
+;
+COMMENT ON COLUMN "blade_role_scope"."id" IS '主键';
+COMMENT ON COLUMN "blade_role_scope"."scope_category" IS '权限类型(1:数据权限、2:接口权限)';
+COMMENT ON COLUMN "blade_role_scope"."scope_id" IS '权限id';
+COMMENT ON COLUMN "blade_role_scope"."role_id" IS '角色id';
+COMMENT ON TABLE "blade_role_scope" IS '角色数据权限关联表';
+
+-- ----------------------------
+-- Table structure for blade_scope_api
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_scope_api";
+CREATE TABLE "blade_scope_api" (
+  "id" int8 NOT NULL,
+  "menu_id" int8,
+  "resource_code" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_name" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_path" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type" int4,
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_scope_api"."id" IS '主键';
+COMMENT ON COLUMN "blade_scope_api"."menu_id" IS '菜单主键';
+COMMENT ON COLUMN "blade_scope_api"."resource_code" IS '资源编号';
+COMMENT ON COLUMN "blade_scope_api"."scope_name" IS '接口权限名';
+COMMENT ON COLUMN "blade_scope_api"."scope_path" IS '接口权限地址';
+COMMENT ON COLUMN "blade_scope_api"."scope_type" IS '接口权限类型';
+COMMENT ON COLUMN "blade_scope_api"."remark" IS '接口权限备注';
+COMMENT ON COLUMN "blade_scope_api"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_scope_api"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_scope_api"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_scope_api"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_scope_api"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_scope_api"."status" IS '状态';
+COMMENT ON COLUMN "blade_scope_api"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_scope_api" IS '接口权限表';
+
+-- ----------------------------
+-- Table structure for blade_scope_data
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_scope_data";
+CREATE TABLE "blade_scope_data" (
+  "id" int8 NOT NULL,
+  "menu_id" int8,
+  "resource_code" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_name" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_field" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_class" varchar(500) COLLATE "pg_catalog"."default",
+  "scope_column" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type" int4,
+  "scope_value" varchar(2000) COLLATE "pg_catalog"."default",
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_scope_data"."id" IS '主键';
+COMMENT ON COLUMN "blade_scope_data"."menu_id" IS '菜单主键';
+COMMENT ON COLUMN "blade_scope_data"."resource_code" IS '资源编号';
+COMMENT ON COLUMN "blade_scope_data"."scope_name" IS '数据权限名称';
+COMMENT ON COLUMN "blade_scope_data"."scope_field" IS '数据权限字段';
+COMMENT ON COLUMN "blade_scope_data"."scope_class" IS '数据权限类名';
+COMMENT ON COLUMN "blade_scope_data"."scope_column" IS '数据权限字段';
+COMMENT ON COLUMN "blade_scope_data"."scope_type" IS '数据权限类型';
+COMMENT ON COLUMN "blade_scope_data"."scope_value" IS '数据权限值域';
+COMMENT ON COLUMN "blade_scope_data"."remark" IS '数据权限备注';
+COMMENT ON COLUMN "blade_scope_data"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_scope_data"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_scope_data"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_scope_data"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_scope_data"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_scope_data"."status" IS '状态';
+COMMENT ON COLUMN "blade_scope_data"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_scope_data" IS '数据权限表';
+
+-- ----------------------------
+-- Table structure for blade_sms
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_sms";
+CREATE TABLE "blade_sms" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "category" int4,
+  "sms_code" varchar(12) COLLATE "pg_catalog"."default",
+  "template_id" varchar(64) COLLATE "pg_catalog"."default",
+  "access_key" varchar(255) COLLATE "pg_catalog"."default",
+  "secret_key" varchar(255) COLLATE "pg_catalog"."default",
+  "region_id" varchar(255) COLLATE "pg_catalog"."default",
+  "sign_name" varchar(64) COLLATE "pg_catalog"."default",
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_sms"."id" IS '主键';
+COMMENT ON COLUMN "blade_sms"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_sms"."category" IS '分类';
+COMMENT ON COLUMN "blade_sms"."sms_code" IS '资源编号';
+COMMENT ON COLUMN "blade_sms"."template_id" IS '模板ID';
+COMMENT ON COLUMN "blade_sms"."access_key" IS 'accessKey';
+COMMENT ON COLUMN "blade_sms"."secret_key" IS 'secretKey';
+COMMENT ON COLUMN "blade_sms"."region_id" IS 'regionId';
+COMMENT ON COLUMN "blade_sms"."sign_name" IS '短信签名';
+COMMENT ON COLUMN "blade_sms"."remark" IS '备注';
+COMMENT ON COLUMN "blade_sms"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_sms"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_sms"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_sms"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_sms"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_sms"."status" IS '状态';
+COMMENT ON COLUMN "blade_sms"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_sms" IS '短信配置表';
+
+-- ----------------------------
+-- Table structure for blade_tenant
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_tenant";
+CREATE TABLE "blade_tenant" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "tenant_name" varchar(50) COLLATE "pg_catalog"."default" NOT NULL,
+  "domain_url" varchar(255) COLLATE "pg_catalog"."default",
+  "background_url" varchar(1000) COLLATE "pg_catalog"."default",
+  "linkman" varchar(20) COLLATE "pg_catalog"."default",
+  "contact_number" varchar(20) COLLATE "pg_catalog"."default",
+  "address" varchar(255) COLLATE "pg_catalog"."default",
+  "account_number" int2 DEFAULT '-1'::integer,
+  "expire_time" timestamp(6),
+  "package_id" int8,
+  "datasource_id" int8,
+  "license_key" varchar(1000) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_tenant"."id" IS '主键';
+COMMENT ON COLUMN "blade_tenant"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_tenant"."tenant_name" IS '租户名称';
+COMMENT ON COLUMN "blade_tenant"."domain_url" IS '域名地址';
+COMMENT ON COLUMN "blade_tenant"."background_url" IS '系统背景';
+COMMENT ON COLUMN "blade_tenant"."linkman" IS '联系人';
+COMMENT ON COLUMN "blade_tenant"."contact_number" IS '联系电话';
+COMMENT ON COLUMN "blade_tenant"."address" IS '联系地址';
+COMMENT ON COLUMN "blade_tenant"."account_number" IS '账号额度';
+COMMENT ON COLUMN "blade_tenant"."expire_time" IS '过期时间';
+COMMENT ON COLUMN "blade_tenant"."package_id" IS '产品包ID';
+COMMENT ON COLUMN "blade_tenant"."datasource_id" IS '数据源ID';
+COMMENT ON COLUMN "blade_tenant"."license_key" IS '授权码';
+COMMENT ON COLUMN "blade_tenant"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_tenant"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_tenant"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_tenant"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_tenant"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_tenant"."status" IS '状态';
+COMMENT ON COLUMN "blade_tenant"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_tenant" IS '租户表';
+
+-- ----------------------------
+-- Records of blade_tenant
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_tenant" VALUES (1123598820738675201, '000000', '管理组', NULL, NULL, 'admin', '666666', '管理组', -1, NULL, NULL, NULL, NULL, 1123598821738675201, 1123598813738675201, '2019-01-01 00:00:39', 1123598821738675201, '2019-01-01 00:00:39', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_tenant_package
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_tenant_package";
+CREATE TABLE "blade_tenant_package" (
+  "id" int8 NOT NULL,
+  "package_name" varchar(50) COLLATE "pg_catalog"."default",
+  "menu_id" varchar(3000) COLLATE "pg_catalog"."default",
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_tenant_package"."id" IS '主键';
+COMMENT ON COLUMN "blade_tenant_package"."package_name" IS '产品包名';
+COMMENT ON COLUMN "blade_tenant_package"."menu_id" IS '菜单ID';
+COMMENT ON COLUMN "blade_tenant_package"."remark" IS '备注';
+COMMENT ON COLUMN "blade_tenant_package"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_tenant_package"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_tenant_package"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_tenant_package"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_tenant_package"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_tenant_package"."status" IS '状态';
+COMMENT ON COLUMN "blade_tenant_package"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_tenant_package" IS '租户产品表';
+
+-- ----------------------------
+-- Table structure for blade_top_menu
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_top_menu";
+CREATE TABLE "blade_top_menu" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "code" varchar(255) COLLATE "pg_catalog"."default",
+  "name" varchar(255) COLLATE "pg_catalog"."default",
+  "source" varchar(255) COLLATE "pg_catalog"."default",
+  "sort" int4,
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_top_menu"."id" IS '主键';
+COMMENT ON COLUMN "blade_top_menu"."tenant_id" IS '租户id';
+COMMENT ON COLUMN "blade_top_menu"."code" IS '顶部菜单编号';
+COMMENT ON COLUMN "blade_top_menu"."name" IS '顶部菜单名';
+COMMENT ON COLUMN "blade_top_menu"."source" IS '顶部菜单资源';
+COMMENT ON COLUMN "blade_top_menu"."sort" IS '顶部菜单排序';
+COMMENT ON COLUMN "blade_top_menu"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_top_menu"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_top_menu"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_top_menu"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_top_menu"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_top_menu"."status" IS '状态';
+COMMENT ON COLUMN "blade_top_menu"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_top_menu" IS '顶部菜单表';
+
+-- ----------------------------
+-- Table structure for blade_top_menu_setting
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_top_menu_setting";
+CREATE TABLE "blade_top_menu_setting" (
+  "id" int8 NOT NULL,
+  "top_menu_id" int8,
+  "menu_id" int8
+)
+;
+COMMENT ON COLUMN "blade_top_menu_setting"."id" IS '主键';
+COMMENT ON COLUMN "blade_top_menu_setting"."top_menu_id" IS '顶部菜单主键';
+COMMENT ON COLUMN "blade_top_menu_setting"."menu_id" IS '菜单主键';
+COMMENT ON TABLE "blade_top_menu_setting" IS '顶部菜单配置表';
+
+-- ----------------------------
+-- Table structure for blade_user
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_user";
+CREATE TABLE "blade_user" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "code" varchar(12) COLLATE "pg_catalog"."default",
+  "user_type" int2,
+  "account" varchar(45) COLLATE "pg_catalog"."default",
+  "password" varchar(45) COLLATE "pg_catalog"."default",
+  "name" varchar(20) COLLATE "pg_catalog"."default",
+  "real_name" varchar(10) COLLATE "pg_catalog"."default",
+  "avatar" varchar(500) COLLATE "pg_catalog"."default",
+  "email" varchar(45) COLLATE "pg_catalog"."default",
+  "phone" varchar(45) COLLATE "pg_catalog"."default",
+  "birthday" timestamp(6),
+  "sex" int2,
+  "role_id" varchar(1000) COLLATE "pg_catalog"."default",
+  "dept_id" varchar(1000) COLLATE "pg_catalog"."default",
+  "post_id" varchar(1000) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_user"."id" IS '主键';
+COMMENT ON COLUMN "blade_user"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_user"."code" IS '用户编号';
+COMMENT ON COLUMN "blade_user"."user_type" IS '用户平台';
+COMMENT ON COLUMN "blade_user"."account" IS '账号';
+COMMENT ON COLUMN "blade_user"."password" IS '密码';
+COMMENT ON COLUMN "blade_user"."name" IS '昵称';
+COMMENT ON COLUMN "blade_user"."real_name" IS '真名';
+COMMENT ON COLUMN "blade_user"."avatar" IS '头像';
+COMMENT ON COLUMN "blade_user"."email" IS '邮箱';
+COMMENT ON COLUMN "blade_user"."phone" IS '手机';
+COMMENT ON COLUMN "blade_user"."birthday" IS '生日';
+COMMENT ON COLUMN "blade_user"."sex" IS '性别';
+COMMENT ON COLUMN "blade_user"."role_id" IS '角色id';
+COMMENT ON COLUMN "blade_user"."dept_id" IS '部门id';
+COMMENT ON COLUMN "blade_user"."post_id" IS '岗位id';
+COMMENT ON COLUMN "blade_user"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_user"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_user"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_user"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_user"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_user"."status" IS '状态';
+COMMENT ON COLUMN "blade_user"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_user" IS '用户表';
+
+-- ----------------------------
+-- Records of blade_user
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_user" VALUES (1123598821738675201, '000000', NULL, 1, 'admin', '90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad', '管理员', '管理员', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'admin@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675201', '1123598813738675201', '1123598817738675201', 1123598821738675201, 1123598813738675201, '2018-08-08 00:00:00', 1123598821738675201, '2018-08-08 00:00:00', 1, 0);
+INSERT INTO "blade_user" VALUES (1123598821738675202, '000000', NULL, 1, 'hr', '5e79b90f7bba52d54115f086e48f539016a27ec6', '人事', '人事', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'hr@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675203', '1123598813738675202', '1123598817738675207', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:10', 1123598821738675201, '2019-04-27 17:03:10', 1, 0);
+INSERT INTO "blade_user" VALUES (1123598821738675203, '000000', NULL, 1, 'manager', 'dfbaa3b61caa3a319f463cc165085aa8c822d2ce', '经理', '经理', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'manager@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675204', '1123598813738675202', '1123598817738675206', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:38', 1123598821738675201, '2019-04-27 17:03:38', 1, 0);
+INSERT INTO "blade_user" VALUES (1123598821738675204, '000000', NULL, 1, 'boss', 'abe57d23e18f7ad8ea99c86e430c90a05119a9d3', '老板', '老板', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'boss@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675205', '1123598813738675202', '1123598817738675201', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:55', 1123598821738675201, '2019-04-27 17:03:55', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_user_app
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_user_app";
+CREATE TABLE "blade_user_app" (
+  "id" int8 NOT NULL,
+  "user_id" int8,
+  "user_ext" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+COMMENT ON COLUMN "blade_user_app"."id" IS '主键';
+COMMENT ON COLUMN "blade_user_app"."user_id" IS '用户ID';
+COMMENT ON COLUMN "blade_user_app"."user_ext" IS '用户拓展信息';
+COMMENT ON TABLE "blade_user_app" IS '用户平台拓展表';
+
+-- ----------------------------
+-- Table structure for blade_user_dept
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_user_dept";
+CREATE TABLE "blade_user_dept" (
+  "id" int8 NOT NULL,
+  "user_id" int8,
+  "dept_id" int8
+)
+;
+COMMENT ON COLUMN "blade_user_dept"."id" IS '主键';
+COMMENT ON COLUMN "blade_user_dept"."user_id" IS '用户ID';
+COMMENT ON COLUMN "blade_user_dept"."dept_id" IS '部门ID';
+COMMENT ON TABLE "blade_user_dept" IS '用户部门表';
+
+-- ----------------------------
+-- Records of blade_user_dept
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_user_dept" VALUES (1203503640757788674, 1123598821738675201, 1123598813738675201);
+INSERT INTO "blade_user_dept" VALUES (1203503653323923458, 1123598821738675202, 1123598813738675202);
+INSERT INTO "blade_user_dept" VALUES (1203503663402835969, 1123598821738675203, 1123598813738675202);
+INSERT INTO "blade_user_dept" VALUES (1203503672911323137, 1123598821738675204, 1123598813738675202);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_user_oauth
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_user_oauth";
+CREATE TABLE "blade_user_oauth" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "uuid" varchar(64) COLLATE "pg_catalog"."default",
+  "user_id" int8,
+  "username" varchar(32) COLLATE "pg_catalog"."default",
+  "nickname" varchar(64) COLLATE "pg_catalog"."default",
+  "avatar" varchar(1000) COLLATE "pg_catalog"."default",
+  "blog" varchar(50) COLLATE "pg_catalog"."default",
+  "company" varchar(255) COLLATE "pg_catalog"."default",
+  "location" varchar(255) COLLATE "pg_catalog"."default",
+  "email" varchar(255) COLLATE "pg_catalog"."default",
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "gender" varchar(16) COLLATE "pg_catalog"."default",
+  "source" varchar(16) COLLATE "pg_catalog"."default"
+)
+;
+COMMENT ON COLUMN "blade_user_oauth"."id" IS '主键';
+COMMENT ON COLUMN "blade_user_oauth"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_user_oauth"."uuid" IS '第三方系统用户ID';
+COMMENT ON COLUMN "blade_user_oauth"."user_id" IS '用户ID';
+COMMENT ON COLUMN "blade_user_oauth"."username" IS '账号';
+COMMENT ON COLUMN "blade_user_oauth"."nickname" IS '用户名';
+COMMENT ON COLUMN "blade_user_oauth"."avatar" IS '头像';
+COMMENT ON COLUMN "blade_user_oauth"."blog" IS '应用主页';
+COMMENT ON COLUMN "blade_user_oauth"."company" IS '公司名';
+COMMENT ON COLUMN "blade_user_oauth"."location" IS '地址';
+COMMENT ON COLUMN "blade_user_oauth"."email" IS '邮件';
+COMMENT ON COLUMN "blade_user_oauth"."remark" IS '备注';
+COMMENT ON COLUMN "blade_user_oauth"."gender" IS '性别';
+COMMENT ON COLUMN "blade_user_oauth"."source" IS '来源';
+COMMENT ON TABLE "blade_user_oauth" IS '用户第三方认证表';
+
+-- ----------------------------
+-- Table structure for blade_user_other
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_user_other";
+CREATE TABLE "blade_user_other" (
+  "id" int8 NOT NULL,
+  "user_id" int8,
+  "user_ext" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+COMMENT ON COLUMN "blade_user_other"."id" IS '主键';
+COMMENT ON COLUMN "blade_user_other"."user_id" IS '用户ID';
+COMMENT ON COLUMN "blade_user_other"."user_ext" IS '用户拓展信息';
+COMMENT ON TABLE "blade_user_other" IS '用户平台拓展表';
+
+-- ----------------------------
+-- Table structure for blade_user_web
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_user_web";
+CREATE TABLE "blade_user_web" (
+  "id" int8 NOT NULL,
+  "user_id" int8,
+  "user_ext" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+COMMENT ON COLUMN "blade_user_web"."id" IS '主键';
+COMMENT ON COLUMN "blade_user_web"."user_id" IS '用户ID';
+COMMENT ON COLUMN "blade_user_web"."user_ext" IS '用户拓展信息';
+COMMENT ON TABLE "blade_user_web" IS '用户平台拓展表';
+
+-- ----------------------------
+-- Primary Key structure for table blade_attach
+-- ----------------------------
+ALTER TABLE "blade_attach" ADD CONSTRAINT "blade_attach_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_client
+-- ----------------------------
+ALTER TABLE "blade_client" ADD CONSTRAINT "blade_client_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_code
+-- ----------------------------
+ALTER TABLE "blade_code" ADD CONSTRAINT "blade_code_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_datasource
+-- ----------------------------
+ALTER TABLE "blade_datasource" ADD CONSTRAINT "blade_datasource_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_dept
+-- ----------------------------
+ALTER TABLE "blade_dept" ADD CONSTRAINT "blade_dept_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_dict
+-- ----------------------------
+ALTER TABLE "blade_dict" ADD CONSTRAINT "blade_dict_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_dict_biz
+-- ----------------------------
+ALTER TABLE "blade_dict_biz" ADD CONSTRAINT "blade_dict_biz_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_log_api
+-- ----------------------------
+ALTER TABLE "blade_log_api" ADD CONSTRAINT "blade_log_api_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_log_error
+-- ----------------------------
+ALTER TABLE "blade_log_error" ADD CONSTRAINT "blade_log_error_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_log_usual
+-- ----------------------------
+ALTER TABLE "blade_log_usual" ADD CONSTRAINT "blade_log_usual_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_menu
+-- ----------------------------
+ALTER TABLE "blade_menu" ADD CONSTRAINT "blade_menu_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_model
+-- ----------------------------
+ALTER TABLE "blade_model" ADD CONSTRAINT "blade_model_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_model_prototype
+-- ----------------------------
+ALTER TABLE "blade_model_prototype" ADD CONSTRAINT "blade_model_prototype_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_notice
+-- ----------------------------
+ALTER TABLE "blade_notice" ADD CONSTRAINT "blade_notice_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_oss
+-- ----------------------------
+ALTER TABLE "blade_oss" ADD CONSTRAINT "blade_oss_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_param
+-- ----------------------------
+ALTER TABLE "blade_param" ADD CONSTRAINT "blade_param_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_post
+-- ----------------------------
+ALTER TABLE "blade_post" ADD CONSTRAINT "blade_post_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_process_leave
+-- ----------------------------
+ALTER TABLE "blade_process_leave" ADD CONSTRAINT "blade_process_leave_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_region
+-- ----------------------------
+ALTER TABLE "blade_region" ADD CONSTRAINT "blade_region_pkey" PRIMARY KEY ("code");
+
+-- ----------------------------
+-- Primary Key structure for table blade_report_file
+-- ----------------------------
+ALTER TABLE "blade_report_file" ADD CONSTRAINT "blade_report_file_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_role
+-- ----------------------------
+ALTER TABLE "blade_role" ADD CONSTRAINT "blade_role_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_role_menu
+-- ----------------------------
+ALTER TABLE "blade_role_menu" ADD CONSTRAINT "blade_role_menu_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_role_scope
+-- ----------------------------
+ALTER TABLE "blade_role_scope" ADD CONSTRAINT "blade_role_scope_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_scope_api
+-- ----------------------------
+ALTER TABLE "blade_scope_api" ADD CONSTRAINT "blade_scope_api_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_scope_data
+-- ----------------------------
+ALTER TABLE "blade_scope_data" ADD CONSTRAINT "blade_scope_data_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_sms
+-- ----------------------------
+ALTER TABLE "blade_sms" ADD CONSTRAINT "blade_sms_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_tenant
+-- ----------------------------
+ALTER TABLE "blade_tenant" ADD CONSTRAINT "blade_tenant_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_tenant_package
+-- ----------------------------
+ALTER TABLE "blade_tenant_package" ADD CONSTRAINT "blade_tenant_package_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_top_menu
+-- ----------------------------
+ALTER TABLE "blade_top_menu" ADD CONSTRAINT "blade_top_menu_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_top_menu_setting
+-- ----------------------------
+ALTER TABLE "blade_top_menu_setting" ADD CONSTRAINT "blade_top_menu_setting_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_user
+-- ----------------------------
+ALTER TABLE "blade_user" ADD CONSTRAINT "blade_user_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_app
+-- ----------------------------
+ALTER TABLE "blade_user_app" ADD CONSTRAINT "blade_user_app_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_dept
+-- ----------------------------
+ALTER TABLE "blade_user_dept" ADD CONSTRAINT "blade_user_dept_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_oauth
+-- ----------------------------
+ALTER TABLE "blade_user_oauth" ADD CONSTRAINT "blade_user_oauth_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_other
+-- ----------------------------
+ALTER TABLE "blade_user_other" ADD CONSTRAINT "blade_user_other_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_web
+-- ----------------------------
+ALTER TABLE "blade_user_web" ADD CONSTRAINT "blade_user_web_pkey" PRIMARY KEY ("id");
diff --git a/skjcmanager/doc/sql/postgresql/bladex-sword-postgresql.sql b/skjcmanager/doc/sql/postgresql/bladex-sword-postgresql.sql
new file mode 100644
index 0000000..e3afb8d
--- /dev/null
+++ b/skjcmanager/doc/sql/postgresql/bladex-sword-postgresql.sql
@@ -0,0 +1,5285 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : postgres_localhost
+ Source Server Type    : PostgreSQL
+ Source Server Version : 110001
+ Source Host           : localhost:5432
+ Source Catalog        : bladex
+ Source Schema         : public
+
+ Target Server Type    : PostgreSQL
+ Target Server Version : 110001
+ File Encoding         : 65001
+
+ Date: 07/08/2022 17:30:22
+*/
+
+
+-- ----------------------------
+-- Table structure for blade_attach
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_attach";
+CREATE TABLE "blade_attach" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "link" varchar(1000) COLLATE "pg_catalog"."default",
+  "domain_url" varchar(500) COLLATE "pg_catalog"."default",
+  "name" varchar(500) COLLATE "pg_catalog"."default",
+  "original_name" varchar(500) COLLATE "pg_catalog"."default",
+  "extension" varchar(12) COLLATE "pg_catalog"."default",
+  "attach_size" int8,
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_attach"."id" IS '主键';
+COMMENT ON COLUMN "blade_attach"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_attach"."link" IS '附件地址';
+COMMENT ON COLUMN "blade_attach"."domain_url" IS '附件域名';
+COMMENT ON COLUMN "blade_attach"."name" IS '附件名称';
+COMMENT ON COLUMN "blade_attach"."original_name" IS '附件原名';
+COMMENT ON COLUMN "blade_attach"."extension" IS '附件拓展名';
+COMMENT ON COLUMN "blade_attach"."attach_size" IS '附件大小';
+COMMENT ON COLUMN "blade_attach"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_attach"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_attach"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_attach"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_attach"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_attach"."status" IS '状态';
+COMMENT ON COLUMN "blade_attach"."is_deleted" IS '是否已删除';
+
+-- ----------------------------
+-- Table structure for blade_client
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_client";
+CREATE TABLE "blade_client" (
+  "id" int8 NOT NULL,
+  "client_id" varchar(48) COLLATE "pg_catalog"."default" NOT NULL,
+  "client_secret" varchar(256) COLLATE "pg_catalog"."default" NOT NULL,
+  "resource_ids" varchar(256) COLLATE "pg_catalog"."default",
+  "scope" varchar(256) COLLATE "pg_catalog"."default" NOT NULL,
+  "authorized_grant_types" varchar(256) COLLATE "pg_catalog"."default" NOT NULL,
+  "web_server_redirect_uri" varchar(256) COLLATE "pg_catalog"."default",
+  "authorities" varchar(256) COLLATE "pg_catalog"."default",
+  "access_token_validity" int4 NOT NULL,
+  "refresh_token_validity" int4 NOT NULL,
+  "additional_information" varchar(4096) COLLATE "pg_catalog"."default",
+  "autoapprove" varchar(256) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4 NOT NULL,
+  "is_deleted" int4 NOT NULL
+)
+;
+COMMENT ON COLUMN "blade_client"."id" IS '主键';
+COMMENT ON COLUMN "blade_client"."client_id" IS '客户端id';
+COMMENT ON COLUMN "blade_client"."client_secret" IS '客户端密钥';
+COMMENT ON COLUMN "blade_client"."resource_ids" IS '资源集合';
+COMMENT ON COLUMN "blade_client"."scope" IS '授权范围';
+COMMENT ON COLUMN "blade_client"."authorized_grant_types" IS '授权类型';
+COMMENT ON COLUMN "blade_client"."web_server_redirect_uri" IS '回调地址';
+COMMENT ON COLUMN "blade_client"."authorities" IS '权限';
+COMMENT ON COLUMN "blade_client"."access_token_validity" IS '令牌过期秒数';
+COMMENT ON COLUMN "blade_client"."refresh_token_validity" IS '刷新令牌过期秒数';
+COMMENT ON COLUMN "blade_client"."additional_information" IS '附加说明';
+COMMENT ON COLUMN "blade_client"."autoapprove" IS '自动授权';
+COMMENT ON COLUMN "blade_client"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_client"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_client"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_client"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_client"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_client"."status" IS '状态';
+COMMENT ON COLUMN "blade_client"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_client" IS '客户端表';
+
+-- ----------------------------
+-- Records of blade_client
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_client" VALUES (1123598811738675201, 'sword', 'sword_secret', NULL, 'all', 'refresh_token,password,authorization_code,captcha,social', 'http://localhost:8888', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2019-03-24 10:40:55', 1123598815738675201, '2019-03-24 10:40:59', 1, 0);
+INSERT INTO "blade_client" VALUES (1123598811738675202, 'saber', 'saber_secret', NULL, 'all', 'refresh_token,password,authorization_code,captcha,social', 'http://localhost:1888', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2019-03-24 10:42:29', 1123598815738675201, '2019-03-24 10:42:32', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_code
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_code";
+CREATE TABLE "blade_code" (
+  "id" int8 NOT NULL,
+  "model_id" int8,
+  "service_name" varchar(64) COLLATE "pg_catalog"."default",
+  "code_name" varchar(64) COLLATE "pg_catalog"."default",
+  "table_name" varchar(64) COLLATE "pg_catalog"."default",
+  "table_prefix" varchar(64) COLLATE "pg_catalog"."default",
+  "pk_name" varchar(32) COLLATE "pg_catalog"."default",
+  "package_name" varchar(500) COLLATE "pg_catalog"."default",
+  "base_mode" int2,
+  "wrap_mode" int2,
+  "feign_mode" int2,
+  "code_style" varchar(32) COLLATE "pg_catalog"."default",
+  "api_path" varchar(2000) COLLATE "pg_catalog"."default",
+  "web_path" varchar(2000) COLLATE "pg_catalog"."default",
+  "is_deleted" int4,
+  "template_type" varchar(32) COLLATE "pg_catalog"."default",
+  "author" varchar(32) COLLATE "pg_catalog"."default",
+  "sub_model_id" varchar(32) COLLATE "pg_catalog"."default",
+  "sub_fk_id" varchar(32) COLLATE "pg_catalog"."default",
+  "tree_id" varchar(32) COLLATE "pg_catalog"."default",
+  "tree_pid" varchar(32) COLLATE "pg_catalog"."default",
+  "tree_name" varchar(64) COLLATE "pg_catalog"."default"
+)
+;
+COMMENT ON COLUMN "blade_code"."id" IS '主键';
+COMMENT ON COLUMN "blade_code"."model_id" IS '数据模型主键';
+COMMENT ON COLUMN "blade_code"."service_name" IS '服务名称';
+COMMENT ON COLUMN "blade_code"."code_name" IS '模块名称';
+COMMENT ON COLUMN "blade_code"."table_name" IS '表名';
+COMMENT ON COLUMN "blade_code"."table_prefix" IS '表前缀';
+COMMENT ON COLUMN "blade_code"."pk_name" IS '主键名';
+COMMENT ON COLUMN "blade_code"."package_name" IS '后端包名';
+COMMENT ON COLUMN "blade_code"."base_mode" IS '基础业务模式';
+COMMENT ON COLUMN "blade_code"."wrap_mode" IS '包装器模式';
+COMMENT ON COLUMN "blade_code"."feign_mode" IS '远程调用模式';
+COMMENT ON COLUMN "blade_code"."code_style" IS '代码风格';
+COMMENT ON COLUMN "blade_code"."api_path" IS '后端路径';
+COMMENT ON COLUMN "blade_code"."web_path" IS '前端路径';
+COMMENT ON COLUMN "blade_code"."is_deleted" IS '是否已删除';
+COMMENT ON COLUMN "blade_code"."template_type" IS '模版类型';
+COMMENT ON COLUMN "blade_code"."author" IS '作者信息';
+COMMENT ON COLUMN "blade_code"."sub_model_id" IS '子表模型主键';
+COMMENT ON COLUMN "blade_code"."sub_fk_id" IS '子表绑定外键';
+COMMENT ON COLUMN "blade_code"."tree_id" IS '树主键字段';
+COMMENT ON COLUMN "blade_code"."tree_pid" IS '树父主键字段';
+COMMENT ON COLUMN "blade_code"."tree_name" IS '树名称字段';
+COMMENT ON TABLE "blade_code" IS '代码生成表';
+
+-- ----------------------------
+-- Table structure for blade_datasource
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_datasource";
+CREATE TABLE "blade_datasource" (
+  "id" int8 NOT NULL,
+  "name" varchar(100) COLLATE "pg_catalog"."default",
+  "driver_class" varchar(100) COLLATE "pg_catalog"."default",
+  "url" varchar(500) COLLATE "pg_catalog"."default",
+  "username" varchar(45) COLLATE "pg_catalog"."default",
+  "password" varchar(45) COLLATE "pg_catalog"."default",
+  "remark" varchar(500) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_datasource"."id" IS '主键';
+COMMENT ON COLUMN "blade_datasource"."name" IS '名称';
+COMMENT ON COLUMN "blade_datasource"."driver_class" IS '驱动类';
+COMMENT ON COLUMN "blade_datasource"."url" IS '链接地址';
+COMMENT ON COLUMN "blade_datasource"."username" IS '用户名';
+COMMENT ON COLUMN "blade_datasource"."password" IS '密码';
+COMMENT ON COLUMN "blade_datasource"."remark" IS '备注';
+COMMENT ON COLUMN "blade_datasource"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_datasource"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_datasource"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_datasource"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_datasource"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_datasource"."status" IS '状态';
+COMMENT ON COLUMN "blade_datasource"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_datasource" IS '数据源配置表';
+
+-- ----------------------------
+-- Records of blade_datasource
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_datasource" VALUES (1161483357481541634, 'mysql', 'com.mysql.cj.jdbc.Driver', 'jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true', 'root', 'root', 'mysql', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:06', 1123598821738675201, '2020-08-08 12:20:06', 1, 0);
+INSERT INTO "blade_datasource" VALUES (1161483504353484802, 'postgresql', 'org.postgresql.Driver', 'jdbc:postgresql://127.0.0.1:5432/bladex', 'postgres', '123456', 'postgresql', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:02', 1123598821738675201, '2020-08-08 12:20:02', 1, 0);
+INSERT INTO "blade_datasource" VALUES (1161483594023510018, 'oracle', 'oracle.jdbc.OracleDriver', 'jdbc:oracle:thin:@127.0.0.1:1521:orcl', 'BLADEX', 'BLADEX', 'oracle', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:03', 1123598821738675201, '2020-08-08 12:20:03', 1, 0);
+INSERT INTO "blade_datasource" VALUES (1161483594023510020, 'sqlserver', 'com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex', 'bladex', 'bladex', 'sqlserver', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:03', 1123598821738675201, '2020-08-08 12:20:03', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_dept
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_dept";
+CREATE TABLE "blade_dept" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "parent_id" int8,
+  "ancestors" varchar(2000) COLLATE "pg_catalog"."default",
+  "dept_category" int4,
+  "dept_name" varchar(45) COLLATE "pg_catalog"."default",
+  "full_name" varchar(45) COLLATE "pg_catalog"."default",
+  "sort" int4,
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_dept"."id" IS '主键';
+COMMENT ON COLUMN "blade_dept"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_dept"."parent_id" IS '父主键';
+COMMENT ON COLUMN "blade_dept"."ancestors" IS '祖级列表';
+COMMENT ON COLUMN "blade_dept"."dept_category" IS '部门类型';
+COMMENT ON COLUMN "blade_dept"."dept_name" IS '部门名';
+COMMENT ON COLUMN "blade_dept"."full_name" IS '部门全称';
+COMMENT ON COLUMN "blade_dept"."sort" IS '排序';
+COMMENT ON COLUMN "blade_dept"."remark" IS '备注';
+COMMENT ON COLUMN "blade_dept"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_dept" IS '机构表';
+
+-- ----------------------------
+-- Records of blade_dept
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_dept" VALUES (1123598813738675201, '000000', 0, '0', 1, '布雷德科技', '上海布雷德科技有限公司', 1, NULL, 0);
+INSERT INTO "blade_dept" VALUES (1123598813738675202, '000000', 1123598813738675201, '0,1123598813738675201', 1, '常州布雷德', '常州布雷德科技有限公司', 1, NULL, 0);
+INSERT INTO "blade_dept" VALUES (1123598813738675203, '000000', 1123598813738675201, '0,1123598813738675201', 1, '苏州布雷德', '苏州布雷德科技有限公司', 1, NULL, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_dict
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_dict";
+CREATE TABLE "blade_dict" (
+  "id" int8 NOT NULL,
+  "parent_id" int8,
+  "code" varchar(255) COLLATE "pg_catalog"."default",
+  "dict_key" varchar(255) COLLATE "pg_catalog"."default",
+  "dict_value" varchar(255) COLLATE "pg_catalog"."default",
+  "sort" int4,
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "is_sealed" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_dict"."id" IS '主键';
+COMMENT ON COLUMN "blade_dict"."parent_id" IS '父主键';
+COMMENT ON COLUMN "blade_dict"."code" IS '字典码';
+COMMENT ON COLUMN "blade_dict"."dict_key" IS '字典值';
+COMMENT ON COLUMN "blade_dict"."dict_value" IS '字典名称';
+COMMENT ON COLUMN "blade_dict"."sort" IS '排序';
+COMMENT ON COLUMN "blade_dict"."remark" IS '字典备注';
+COMMENT ON COLUMN "blade_dict"."is_sealed" IS '是否已封存';
+COMMENT ON COLUMN "blade_dict"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_dict" IS '字典表';
+
+-- ----------------------------
+-- Records of blade_dict
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_dict" VALUES (1123598814738675201, 0, 'sex', '-1', '性别', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675202, 1123598814738675201, 'sex', '1', '男', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675203, 1123598814738675201, 'sex', '2', '女', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675204, 0, 'notice', '-1', '通知类型', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675205, 1123598814738675204, 'notice', '1', '发布通知', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675206, 1123598814738675204, 'notice', '2', '批转通知', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675207, 1123598814738675204, 'notice', '3', '转发通知', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675208, 1123598814738675204, 'notice', '4', '指示通知', 4, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675209, 1123598814738675204, 'notice', '5', '任免通知', 5, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675210, 1123598814738675204, 'notice', '6', '事务通知', 6, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675211, 0, 'menu_category', '-1', '菜单类型', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675212, 1123598814738675211, 'menu_category', '1', '菜单', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675213, 1123598814738675211, 'menu_category', '2', '按钮', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675214, 0, 'button_func', '-1', '按钮功能', 4, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675215, 1123598814738675214, 'button_func', '1', '工具栏', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675216, 1123598814738675214, 'button_func', '2', '操作栏', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675217, 1123598814738675214, 'button_func', '3', '工具操作栏', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675218, 0, 'yes_no', '-1', '是否', 5, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675219, 1123598814738675218, 'yes_no', '1', '否', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675220, 1123598814738675218, 'yes_no', '2', '是', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675221, 0, 'flow', '-1', '流程类型', 5, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675222, 1123598814738675221, 'flow', '1', '请假流程', 1, 'leave', 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675223, 1123598814738675221, 'flow', '2', '报销流程', 2, 'expense', 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675227, 0, 'org_category', '-1', '机构类型', 7, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675228, 1123598814738675227, 'org_category', '1', '公司', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675229, 1123598814738675227, 'org_category', '2', '部门', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675230, 1123598814738675227, 'org_category', '3', '小组', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675231, 0, 'data_scope_type', '-1', '数据权限', 8, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675232, 1123598814738675231, 'data_scope_type', '1', '全部可见', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675233, 1123598814738675231, 'data_scope_type', '2', '本人可见', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675234, 1123598814738675231, 'data_scope_type', '3', '所在机构可见', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675235, 1123598814738675231, 'data_scope_type', '4', '所在机构及子级可见', 4, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675236, 1123598814738675231, 'data_scope_type', '5', '自定义', 5, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675237, 0, 'api_scope_type', '-1', '接口权限', 10, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675238, 1123598814738675237, 'api_scope_type', '1', '系统接口', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675239, 1123598814738675237, 'api_scope_type', '2', '业务接口', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675240, 0, 'scope_category', '-1', '权限类型', 10, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675241, 1123598814738675240, 'scope_category', '1', '数据权限', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738675242, 1123598814738675240, 'scope_category', '2', '接口权限', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738676224, 0, 'oss', '-1', '对象存储类型', 6, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738676225, 1123598814738676224, 'oss', '1', 'minio', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738677220, 0, 'sms', '-1', '短信服务类型', 11, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738676226, 1123598814738676224, 'oss', '2', '七牛云', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738676227, 1123598814738676224, 'oss', '3', '阿里云', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738677223, 1123598814738677220, 'sms', '3', '阿里云', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738677221, 1123598814738677220, 'sms', '1', '云片', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738677222, 1123598814738677220, 'sms', '2', '七牛云', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738677224, 1123598814738677220, 'sms', '4', '腾讯云', 4, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738676228, 1123598814738676224, 'oss', '4', '腾讯云', 4, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777220, 0, 'post_category', '-1', '岗位类型', 12, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777221, 1123598814738777220, 'post_category', '1', '高层', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777222, 1123598814738777220, 'post_category', '2', '中层', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777223, 1123598814738777220, 'post_category', '3', '基层', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777224, 1123598814738777220, 'post_category', '4', '其他', 4, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777230, 0, 'region', '-1', '行政区划', 13, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777231, 1123598814738777230, 'region', '0', '国家', 0, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777232, 1123598814738777230, 'region', '1', '省份/直辖市', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777233, 1123598814738777230, 'region', '2', '地市', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777234, 1123598814738777230, 'region', '3', '区县', 3, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777235, 1123598814738777230, 'region', '4', '乡镇', 4, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738777236, 1123598814738777230, 'region', '5', '村委', 5, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738778200, 0, 'user_type', '-1', '用户平台', 14, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738778201, 1123598814738778200, 'user_type', '1', 'WEB', 1, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738778202, 1123598814738778200, 'user_type', '2', 'APP', 2, NULL, 0, 0);
+INSERT INTO "blade_dict" VALUES (1123598814738778203, 1123598814738778200, 'user_type', '3', 'OTHER', 3, NULL, 0, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_dict_biz
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_dict_biz";
+CREATE TABLE "blade_dict_biz" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "parent_id" int8,
+  "code" varchar(255) COLLATE "pg_catalog"."default",
+  "dict_key" varchar(255) COLLATE "pg_catalog"."default",
+  "dict_value" varchar(255) COLLATE "pg_catalog"."default",
+  "sort" int4,
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "is_sealed" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_dict_biz"."id" IS '主键';
+COMMENT ON COLUMN "blade_dict_biz"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_dict_biz"."parent_id" IS '父主键';
+COMMENT ON COLUMN "blade_dict_biz"."code" IS '字典码';
+COMMENT ON COLUMN "blade_dict_biz"."dict_key" IS '字典值';
+COMMENT ON COLUMN "blade_dict_biz"."dict_value" IS '字典名称';
+COMMENT ON COLUMN "blade_dict_biz"."sort" IS '排序';
+COMMENT ON COLUMN "blade_dict_biz"."remark" IS '字典备注';
+COMMENT ON COLUMN "blade_dict_biz"."is_sealed" IS '是否已封存';
+COMMENT ON COLUMN "blade_dict_biz"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_dict_biz" IS '业务字典表';
+
+-- ----------------------------
+-- Table structure for blade_log_api
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_log_api";
+CREATE TABLE "blade_log_api" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "service_id" varchar(32) COLLATE "pg_catalog"."default",
+  "server_host" varchar(255) COLLATE "pg_catalog"."default",
+  "server_ip" varchar(255) COLLATE "pg_catalog"."default",
+  "env" varchar(255) COLLATE "pg_catalog"."default",
+  "type" char(1) COLLATE "pg_catalog"."default",
+  "title" varchar(255) COLLATE "pg_catalog"."default",
+  "method" varchar(10) COLLATE "pg_catalog"."default",
+  "request_uri" varchar(255) COLLATE "pg_catalog"."default",
+  "user_agent" varchar(1000) COLLATE "pg_catalog"."default",
+  "remote_ip" varchar(255) COLLATE "pg_catalog"."default",
+  "method_class" varchar(255) COLLATE "pg_catalog"."default",
+  "method_name" varchar(255) COLLATE "pg_catalog"."default",
+  "params" text COLLATE "pg_catalog"."default",
+  "time" varchar(64) COLLATE "pg_catalog"."default",
+  "create_by" varchar(64) COLLATE "pg_catalog"."default",
+  "create_time" timestamp(6)
+)
+;
+COMMENT ON COLUMN "blade_log_api"."id" IS '编号';
+COMMENT ON COLUMN "blade_log_api"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_log_api"."service_id" IS '服务ID';
+COMMENT ON COLUMN "blade_log_api"."server_host" IS '服务器名';
+COMMENT ON COLUMN "blade_log_api"."server_ip" IS '服务器IP地址';
+COMMENT ON COLUMN "blade_log_api"."env" IS '服务器环境';
+COMMENT ON COLUMN "blade_log_api"."type" IS '日志类型';
+COMMENT ON COLUMN "blade_log_api"."title" IS '日志标题';
+COMMENT ON COLUMN "blade_log_api"."method" IS '操作方式';
+COMMENT ON COLUMN "blade_log_api"."request_uri" IS '请求URI';
+COMMENT ON COLUMN "blade_log_api"."user_agent" IS '用户代理';
+COMMENT ON COLUMN "blade_log_api"."remote_ip" IS '操作IP地址';
+COMMENT ON COLUMN "blade_log_api"."method_class" IS '方法类';
+COMMENT ON COLUMN "blade_log_api"."method_name" IS '方法名';
+COMMENT ON COLUMN "blade_log_api"."params" IS '操作提交的数据';
+COMMENT ON COLUMN "blade_log_api"."time" IS '执行时间';
+COMMENT ON COLUMN "blade_log_api"."create_by" IS '创建者';
+COMMENT ON COLUMN "blade_log_api"."create_time" IS '创建时间';
+COMMENT ON TABLE "blade_log_api" IS '接口日志表';
+
+-- ----------------------------
+-- Table structure for blade_log_error
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_log_error";
+CREATE TABLE "blade_log_error" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "service_id" varchar(32) COLLATE "pg_catalog"."default",
+  "server_host" varchar(255) COLLATE "pg_catalog"."default",
+  "server_ip" varchar(255) COLLATE "pg_catalog"."default",
+  "env" varchar(255) COLLATE "pg_catalog"."default",
+  "method" varchar(10) COLLATE "pg_catalog"."default",
+  "request_uri" varchar(255) COLLATE "pg_catalog"."default",
+  "user_agent" varchar(1000) COLLATE "pg_catalog"."default",
+  "stack_trace" text COLLATE "pg_catalog"."default",
+  "exception_name" varchar(255) COLLATE "pg_catalog"."default",
+  "message" text COLLATE "pg_catalog"."default",
+  "line_number" int4,
+  "remote_ip" varchar(255) COLLATE "pg_catalog"."default",
+  "method_class" varchar(255) COLLATE "pg_catalog"."default",
+  "file_name" varchar(1000) COLLATE "pg_catalog"."default",
+  "method_name" varchar(255) COLLATE "pg_catalog"."default",
+  "params" text COLLATE "pg_catalog"."default",
+  "create_by" varchar(64) COLLATE "pg_catalog"."default",
+  "create_time" timestamp(6)
+)
+;
+COMMENT ON COLUMN "blade_log_error"."id" IS '编号';
+COMMENT ON COLUMN "blade_log_error"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_log_error"."service_id" IS '服务ID';
+COMMENT ON COLUMN "blade_log_error"."server_host" IS '服务器名';
+COMMENT ON COLUMN "blade_log_error"."server_ip" IS '服务器IP地址';
+COMMENT ON COLUMN "blade_log_error"."env" IS '系统环境';
+COMMENT ON COLUMN "blade_log_error"."method" IS '操作方式';
+COMMENT ON COLUMN "blade_log_error"."request_uri" IS '请求URI';
+COMMENT ON COLUMN "blade_log_error"."user_agent" IS '用户代理';
+COMMENT ON COLUMN "blade_log_error"."stack_trace" IS '堆栈';
+COMMENT ON COLUMN "blade_log_error"."exception_name" IS '异常名';
+COMMENT ON COLUMN "blade_log_error"."message" IS '异常信息';
+COMMENT ON COLUMN "blade_log_error"."line_number" IS '错误行数';
+COMMENT ON COLUMN "blade_log_error"."remote_ip" IS '操作IP地址';
+COMMENT ON COLUMN "blade_log_error"."method_class" IS '方法类';
+COMMENT ON COLUMN "blade_log_error"."file_name" IS '文件名';
+COMMENT ON COLUMN "blade_log_error"."method_name" IS '方法名';
+COMMENT ON COLUMN "blade_log_error"."params" IS '操作提交的数据';
+COMMENT ON COLUMN "blade_log_error"."create_by" IS '创建者';
+COMMENT ON COLUMN "blade_log_error"."create_time" IS '创建时间';
+COMMENT ON TABLE "blade_log_error" IS '错误日志表';
+
+-- ----------------------------
+-- Table structure for blade_log_usual
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_log_usual";
+CREATE TABLE "blade_log_usual" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "service_id" varchar(32) COLLATE "pg_catalog"."default",
+  "server_host" varchar(255) COLLATE "pg_catalog"."default",
+  "server_ip" varchar(255) COLLATE "pg_catalog"."default",
+  "env" varchar(255) COLLATE "pg_catalog"."default",
+  "log_level" varchar(10) COLLATE "pg_catalog"."default",
+  "log_id" varchar(100) COLLATE "pg_catalog"."default",
+  "log_data" text COLLATE "pg_catalog"."default",
+  "method" varchar(10) COLLATE "pg_catalog"."default",
+  "request_uri" varchar(255) COLLATE "pg_catalog"."default",
+  "remote_ip" varchar(255) COLLATE "pg_catalog"."default",
+  "method_class" varchar(255) COLLATE "pg_catalog"."default",
+  "method_name" varchar(255) COLLATE "pg_catalog"."default",
+  "user_agent" varchar(1000) COLLATE "pg_catalog"."default",
+  "params" text COLLATE "pg_catalog"."default",
+  "create_by" varchar(64) COLLATE "pg_catalog"."default",
+  "create_time" timestamp(6)
+)
+;
+COMMENT ON COLUMN "blade_log_usual"."id" IS '编号';
+COMMENT ON COLUMN "blade_log_usual"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_log_usual"."service_id" IS '服务ID';
+COMMENT ON COLUMN "blade_log_usual"."server_host" IS '服务器名';
+COMMENT ON COLUMN "blade_log_usual"."server_ip" IS '服务器IP地址';
+COMMENT ON COLUMN "blade_log_usual"."env" IS '系统环境';
+COMMENT ON COLUMN "blade_log_usual"."log_level" IS '日志级别';
+COMMENT ON COLUMN "blade_log_usual"."log_id" IS '日志业务id';
+COMMENT ON COLUMN "blade_log_usual"."log_data" IS '日志数据';
+COMMENT ON COLUMN "blade_log_usual"."method" IS '操作方式';
+COMMENT ON COLUMN "blade_log_usual"."request_uri" IS '请求URI';
+COMMENT ON COLUMN "blade_log_usual"."remote_ip" IS '操作IP地址';
+COMMENT ON COLUMN "blade_log_usual"."method_class" IS '方法类';
+COMMENT ON COLUMN "blade_log_usual"."method_name" IS '方法名';
+COMMENT ON COLUMN "blade_log_usual"."user_agent" IS '用户代理';
+COMMENT ON COLUMN "blade_log_usual"."params" IS '操作提交的数据';
+COMMENT ON COLUMN "blade_log_usual"."create_by" IS '创建者';
+COMMENT ON COLUMN "blade_log_usual"."create_time" IS '创建时间';
+COMMENT ON TABLE "blade_log_usual" IS '通用日志表';
+
+-- ----------------------------
+-- Table structure for blade_menu
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_menu";
+CREATE TABLE "blade_menu" (
+  "id" int8 NOT NULL,
+  "parent_id" int8,
+  "code" varchar(255) COLLATE "pg_catalog"."default",
+  "name" varchar(255) COLLATE "pg_catalog"."default",
+  "alias" varchar(255) COLLATE "pg_catalog"."default",
+  "path" varchar(255) COLLATE "pg_catalog"."default",
+  "source" varchar(255) COLLATE "pg_catalog"."default",
+  "sort" int4,
+  "category" int4,
+  "action" int4,
+  "is_open" int4,
+  "component" varchar(255) COLLATE "pg_catalog"."default",
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_menu"."id" IS '主键';
+COMMENT ON COLUMN "blade_menu"."parent_id" IS '父级菜单';
+COMMENT ON COLUMN "blade_menu"."code" IS '菜单编号';
+COMMENT ON COLUMN "blade_menu"."name" IS '菜单名称';
+COMMENT ON COLUMN "blade_menu"."alias" IS '菜单别名';
+COMMENT ON COLUMN "blade_menu"."path" IS '请求地址';
+COMMENT ON COLUMN "blade_menu"."source" IS '菜单资源';
+COMMENT ON COLUMN "blade_menu"."sort" IS '排序';
+COMMENT ON COLUMN "blade_menu"."category" IS '菜单类型';
+COMMENT ON COLUMN "blade_menu"."action" IS '操作按钮类型';
+COMMENT ON COLUMN "blade_menu"."is_open" IS '是否打开新页面';
+COMMENT ON COLUMN "blade_menu"."component" IS '组件地址';
+COMMENT ON COLUMN "blade_menu"."remark" IS '备注';
+COMMENT ON COLUMN "blade_menu"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_menu" IS '菜单表';
+
+-- ----------------------------
+-- Records of blade_menu
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_menu" VALUES (1123598815738675201, 0, 'desk', '工作台', 'menu', '/desk', 'desktop', 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675202, 1123598815738675201, 'notice', '通知公告', 'menu', '/desk/notice', NULL, 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675203, 0, 'system', '系统管理', 'menu', '/system', 'setting', 99, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675204, 1123598815738675203, 'user', '用户管理', 'menu', '/system/user', NULL, 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675205, 1123598815738675203, 'dept', '机构管理', 'menu', '/system/dept', NULL, 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675210, 0, 'monitor', '系统监控', 'menu', '/monitor', 'fund', 3, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675211, 1123598815738675210, 'doc', '接口文档', 'menu', 'http://localhost:18000/doc.html', NULL, 1, 1, 0, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675212, 1123598815738675210, 'admin', '服务治理', 'menu', 'http://localhost:7002', NULL, 2, 1, 0, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675213, 1123598815738675210, 'log', '日志管理', 'menu', '/monitor/log', NULL, 8, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675214, 1123598815738675213, 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675215, 1123598815738675213, 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675216, 1123598815738675213, 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, 3, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675217, 0, 'tool', '研发工具', 'menu', '/tool', 'tool', 4, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675218, 1123598815738675217, 'code', '代码生成', 'menu', '/tool/code', NULL, 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675219, 1123598815738675202, 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675220, 1123598815738675202, 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675221, 1123598815738675202, 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675222, 1123598815738675202, 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675223, 1123598815738675204, 'user_add', '新增', 'add', '/system/user/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675224, 1123598815738675204, 'user_edit', '修改', 'edit', '/system/user/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675225, 1123598815738675204, 'user_delete', '删除', 'delete', '/api/blade-user/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675226, 1123598815738675204, 'user_role', '角色配置', 'role', NULL, 'user-add', 4, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675227, 1123598815738675204, 'user_reset', '密码重置', 'reset-password', '/api/blade-user/reset-password', 'retweet', 5, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675228, 1123598815738675204, 'user_view', '查看', 'view', '/system/user/view', 'file-text', 6, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675229, 1123598815738675205, 'dept_add', '新增', 'add', '/system/dept/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675230, 1123598815738675205, 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675231, 1123598815738675205, 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675232, 1123598815738675205, 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675233, 1123598815738675206, 'dict_add', '新增', 'add', '/system/dict/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675234, 1123598815738675206, 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675235, 1123598815738675206, 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675236, 1123598815738675206, 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675237, 1123598815738675207, 'menu_add', '新增', 'add', '/system/menu/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675238, 1123598815738675207, 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675239, 1123598815738675207, 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675240, 1123598815738675207, 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675241, 1123598815738675308, 'role_add', '新增', 'add', '/authority/role/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675242, 1123598815738675308, 'role_edit', '修改', 'edit', '/authority/role/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675243, 1123598815738675308, 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675244, 1123598815738675308, 'role_view', '查看', 'view', '/authority/role/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675245, 1123598815738675209, 'param_add', '新增', 'add', '/system/param/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675246, 1123598815738675209, 'param_edit', '修改', 'edit', '/system/param/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675247, 1123598815738675209, 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675248, 1123598815738675209, 'param_view', '查看', 'view', '/system/param/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675249, 1123598815738675214, 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675250, 1123598815738675215, 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675251, 1123598815738675216, 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675252, 1123598815738675218, 'code_add', '新增', 'add', '/tool/code/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675253, 1123598815738675218, 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675254, 1123598815738675218, 'code_delete', '删除', 'delete', '/api/blade-develop/code/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675255, 1123598815738675218, 'code_view', '查看', 'view', '/tool/code/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675257, 1123598815738675256, 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675258, 1123598815738675256, 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675259, 1123598815738675256, 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675260, 1123598815738675256, 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675262, 1123598815738675261, 'client_add', '新增', 'add', '/system/client/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675263, 1123598815738675261, 'client_edit', '修改', 'edit', '/system/client/edit', 'form', 2, 2, 2, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675264, 1123598815738675261, 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', 3, 2, 3, 3, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675265, 1123598815738675261, 'client_view', '查看', 'view', '/system/client/view', 'file-text', 4, 2, 2, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675266, 0, 'flow', '流程管理', 'menu', '/flow', 'stock', 5, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675207, 1123598815738675203, 'menu', '菜单管理', 'menu', '/system/menu', NULL, 6, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675208, 1123598815738675203, 'topmenu', '顶部菜单', 'menu', '/system/topmenu', '', 7, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675256, 1123598815738675203, 'tenant', '租户管理', 'menu', '/system/tenant', NULL, 9, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675261, 1123598815738675203, 'client', '应用管理', 'menu', '/system/client', NULL, 10, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675267, 1123598815738675266, 'flow_model', '模型管理', 'menu', '/flow/model', NULL, 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675268, 1123598815738675267, 'flow_model_create', '创建', 'create', '', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675269, 1123598815738675267, 'flow_model_update', '编辑', 'update', '', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675270, 1123598815738675267, 'flow_model_deploy', '部署', 'deploy', '', 'cloud-upload', 3, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675271, 1123598815738675267, 'flow_model_download', '下载', 'download', '', 'download', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675272, 1123598815738675267, 'flow_model_delete', '删除', 'delete', '/api/blade-flow/model/remove', 'delete', 5, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675273, 1123598815738675266, 'flow_deploy', '流程部署', 'menu', '/flow/deploy', NULL, 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675274, 1123598815738675266, 'flow_manager', '流程管理', 'menu', '/flow/manager', NULL, 3, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675275, 1123598815738675274, 'flow_manager_state', '变更状态', 'state', '', 'plus', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675276, 1123598815738675274, 'flow_manager_image', '流程图', 'image', '', 'image', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675277, 1123598815738675274, 'flow_manager_remove', '删除', 'remove', '', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675278, 1123598815738675266, 'flow_follow', '流程跟踪', 'menu', '/flow/follow', NULL, 4, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675279, 1123598815738675278, 'flow_follow_delete', '删除', 'remove', '', 'remove', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675280, 0, 'work', '我的事务', 'menu', '/work', 'bell', 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675281, 1123598815738675280, 'work_start', '发起事务', 'menu', '/work/start', NULL, 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675282, 1123598815738675281, 'work_start_flow', '发起', 'flow', '', 'flow', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675283, 1123598815738675281, 'work_start_image', '流程图', 'image', '', 'image', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675284, 1123598815738675280, 'work_claim', '待签事务', 'menu', '/work/claim', NULL, 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675285, 1123598815738675284, 'work_claim_sign', '签收', 'sign', '', 'sign', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675286, 1123598815738675284, 'work_claim_detail', '详情', 'detail', '', 'detail', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675287, 1123598815738675284, 'work_claim_follow', '跟踪', 'follow', '', 'follow', 3, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675288, 1123598815738675280, 'work_todo', '待办事务', 'menu', '/work/todo', NULL, 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675289, 1123598815738675288, 'work_todo_handle', '办理', 'handle', '', 'handle', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675290, 1123598815738675288, 'work_todo_detail', '详情', 'detail', '', 'detail', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675291, 1123598815738675288, 'work_todo_follow', '跟踪', 'follow', '', 'follow', 3, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675292, 1123598815738675280, 'work_send', '已发事务', 'menu', '/work/send', NULL, 3, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675293, 1123598815738675292, 'work_send_detail', '详情', 'detail', '', 'detail', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675294, 1123598815738675292, 'work_send_follow', '跟踪', 'follow', '', 'follow', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675295, 1123598815738675280, 'work_done', '办结事务', 'menu', '/work/done', NULL, 4, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675296, 1123598815738675295, 'work_done_detail', '详情', 'detail', '', 'detail', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675297, 1123598815738675295, 'work_done_follow', '跟踪', 'follow', '', 'follow', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675298, 0, 'resource', '资源管理', 'menu', '/resource', 'bg-colors', 6, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675299, 1123598815738675298, 'oss', '对象存储', 'menu', '/resource/oss', NULL, 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675301, 1123598815738675299, 'oss_add', '新增', 'add', '/resource/oss/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675302, 1123598815738675299, 'oss_edit', '修改', 'edit', '/resource/oss/edit', 'form', 2, 2, 2, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675303, 1123598815738675299, 'oss_delete', '删除', 'delete', '/api/blade-resource/oss/remove', 'delete', 3, 2, 3, 3, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675304, 1123598815738675299, 'oss_view', '查看', 'view', '/resource/oss/view', 'file-text', 4, 2, 2, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675305, 1123598815738675299, 'oss_enable', '启用', 'enable', '/api/blade-resource/oss/enable', 'key', 5, 2, 2, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675307, 0, 'authority', '权限管理', 'menu', '/authority', 'safety-certificate', 98, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675308, 1123598815738675307, 'role', '角色管理', 'menu', '/authority/role', '', 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675309, 1123598815738675307, 'data_scope', '数据权限', 'menu', '/authority/datascope', '', 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675310, 1123598815738675309, 'data_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675311, 1123598815738675307, 'api_scope', '接口权限', 'menu', '/authority/apiscope', '', 3, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675312, 1123598815738675311, 'api_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675313, 1123598815738675208, 'topmenu_add', '新增', 'add', '/system/topmenu/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675314, 1123598815738675208, 'topmenu_edit', '修改', 'edit', '/system/topmenu/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675315, 1123598815738675208, 'topmenu_delete', '删除', 'delete', '/api/blade-system/topmenu/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675316, 1123598815738675208, 'topmenu_view', '查看', 'view', '/system/topmenu/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675317, 1123598815738675208, 'topmenu_setting', '菜单配置', 'setting', NULL, 'setting', 5, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1161272593873321991, 1123598815738675217, 'datasource', '数据源管理', 'menu', '/tool/datasource', NULL, 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1161272593873321992, 1161272593873321991, 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1161272593873321993, 1161272593873321991, 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', 2, 2, 2, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1161272593873321994, 1161272593873321991, 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', 3, 2, 3, 3, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1161272593873321995, 1161272593873321991, 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', 4, 2, 2, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1161272593873321996, 1123598815738675217, 'model', '数据模型设计', 'menu', '/tool/model', '', 3, 1, 0, 1, '', '', 0);
+INSERT INTO "blade_menu" VALUES (1164733369658963251, 1123598815738675210, 'elk', 'ELK监控', 'menu', 'http://localhost:5601/', '', 3, 1, 0, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733369658963252, 1123598815738675210, 'zipkin', 'Zipkin监控', 'menu', 'http://localhost:9411/', '', 4, 1, 0, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733369658963253, 1123598815738675210, 'turbine', 'Turbine监控', 'menu', 'http://localhost:7003/hystrix', '', 5, 1, 0, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733369658963254, 1123598815738675210, 'sentinel', 'Sentinel管理', 'menu', 'http://localhost:8858', '', 6, 1, 0, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733369658963255, 1123598815738675210, 'es', 'Elasticsearch管理', 'menu', 'http://localhost:9100/', '', 7, 1, 0, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733379658963252, 1164733379658963251, 'dictbiz_add', '新增', 'add', '/system/dictbiz/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733379658963253, 1164733379658963251, 'dictbiz_edit', '修改', 'edit', '/system/dictbiz/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733379658963254, 1164733379658963251, 'dictbiz_delete', '删除', 'delete', '/api/blade-system/dict-biz/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733379658963255, 1164733379658963251, 'dictbiz_view', '查看', 'view', '/system/dictbiz/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389658962252, 1164733389658962251, 'sms_add', '新增', 'add', '/resource/sms/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389658962251, 1123598815738675298, 'sms', '短信配置', 'menu', '/resource/sms', '', 3, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389658962253, 1164733389658962251, 'sms_edit', '修改', 'edit', '/resource/sms/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389658962254, 1164733389658962251, 'sms_delete', '删除', 'delete', '/api/blade-resource/sms/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389658962255, 1164733389658962251, 'sms_view', '查看', 'view', '/resource/sms/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389658962256, 1164733389658962251, 'sms_enable', '启用', 'enable', '/api/blade-resource/sms/enable', 'key', 5, 2, 2, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389658963251, 1123598815738675298, 'xxljob', '任务调度', 'menu', 'http://localhost:7009/xxl-job-admin', '', 5, 1, 0, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389668962252, 1164733389668962251, 'post_add', '新增', 'add', '/system/post/add', 'plus', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389668962253, 1164733389668962251, 'post_edit', '修改', 'edit', '/system/post/edit', 'form', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389668962254, 1164733389668962251, 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389668962255, 1164733389668962251, 'post_view', '查看', 'view', '/system/post/view', 'file-text', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675206, 1123598815738675203, 'dict', '系统字典', 'menu', '/system/dict', NULL, 4, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1123598815738675209, 1123598815738675203, 'param', '参数管理', 'menu', '/system/param', NULL, 8, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733379658963251, 1123598815738675203, 'dictbiz', '业务字典', 'menu', '/system/dictbiz', '', 5, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733389668962251, 1123598815738675203, 'post', '岗位管理', 'menu', '/system/post', '', 3, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399668962201, 0, 'base', '基础配置', 'menu', '/base', 'sliders', 97, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399668962202, 1164733399668962201, 'region', '行政区划', 'menu', '/base/region', '', 1, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399668962203, 1164733399668962202, 'region_add', '新增下级', 'add', '', '', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399668962204, 1164733399668962202, 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', '', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399668962205, 1164733399668962202, 'region_import', '导入', 'import', '', '', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399668962206, 1164733399668962202, 'region_export', '导出', 'export', '', '', 4, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399668962207, 1164733399668962202, 'region_debug', '调试', 'debug', '', '', 5, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962201, 1123598815738675298, 'attach', '附件管理', 'menu', '/resource/attach', '', 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962202, 1164733399669962201, 'attach_upload', '上传', 'upload', '/resource/attach/upload', '', 1, 2, 1, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962203, 1164733399669962201, 'attach_download', '下载', 'download', '/resource/attach/download', '', 2, 2, 2, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962204, 1164733399669962201, 'attach_delete', '删除', 'delete', '/api/blade-resource/attach/remove', '', 3, 2, 3, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962301, 0, 'report', '报表管理', 'menu', '/report', 'bar-chart', 5, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962302, 1164733399669962301, 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', '', 1, 1, 0, 2, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962303, 1164733399669962301, 'report_list', '报表列表', 'menu', '/report/reportlist', '', 2, 1, 0, 1, '', NULL, 0);
+INSERT INTO "blade_menu" VALUES (1164733399669962304, 1164733399669962301, 'report_notice', '公告报表', 'menu', 'http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml', '', 3, 1, 0, 2, '', NULL, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_model
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_model";
+CREATE TABLE "blade_model" (
+  "id" int8 NOT NULL,
+  "datasource_id" int8,
+  "model_name" varchar(50) COLLATE "pg_catalog"."default",
+  "model_code" varchar(50) COLLATE "pg_catalog"."default",
+  "model_table" varchar(100) COLLATE "pg_catalog"."default",
+  "model_class" varchar(100) COLLATE "pg_catalog"."default",
+  "model_remark" varchar(500) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_model"."id" IS '主键';
+COMMENT ON COLUMN "blade_model"."datasource_id" IS '数据源主键';
+COMMENT ON COLUMN "blade_model"."model_name" IS '模型名称';
+COMMENT ON COLUMN "blade_model"."model_code" IS '模型编号';
+COMMENT ON COLUMN "blade_model"."model_table" IS '物理表名';
+COMMENT ON COLUMN "blade_model"."model_class" IS '模型类名';
+COMMENT ON COLUMN "blade_model"."model_remark" IS '模型备注';
+COMMENT ON COLUMN "blade_model"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_model"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_model"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_model"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_model"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_model"."status" IS '状态';
+COMMENT ON COLUMN "blade_model"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_model" IS '数据模型表';
+
+-- ----------------------------
+-- Table structure for blade_model_prototype
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_model_prototype";
+CREATE TABLE "blade_model_prototype" (
+  "id" int8 NOT NULL,
+  "model_id" int8,
+  "jdbc_name" varchar(50) COLLATE "pg_catalog"."default",
+  "jdbc_type" varchar(20) COLLATE "pg_catalog"."default",
+  "comment" varchar(500) COLLATE "pg_catalog"."default",
+  "property_type" varchar(20) COLLATE "pg_catalog"."default",
+  "property_entity" varchar(500) COLLATE "pg_catalog"."default",
+  "property_name" varchar(50) COLLATE "pg_catalog"."default",
+  "is_list" int4,
+  "is_form" int4,
+  "is_row" int4,
+  "component_type" varchar(50) COLLATE "pg_catalog"."default",
+  "dict_code" varchar(50) COLLATE "pg_catalog"."default",
+  "is_required" int4,
+  "validate_type" varchar(50) COLLATE "pg_catalog"."default",
+  "is_query" int4,
+  "query_type" varchar(50) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_model_prototype"."id" IS '主键';
+COMMENT ON COLUMN "blade_model_prototype"."model_id" IS '模型主键';
+COMMENT ON COLUMN "blade_model_prototype"."jdbc_name" IS '物理列名';
+COMMENT ON COLUMN "blade_model_prototype"."jdbc_type" IS '物理类型';
+COMMENT ON COLUMN "blade_model_prototype"."comment" IS '注释说明';
+COMMENT ON COLUMN "blade_model_prototype"."property_type" IS '实体类型';
+COMMENT ON COLUMN "blade_model_prototype"."property_entity" IS '实体类型引用';
+COMMENT ON COLUMN "blade_model_prototype"."property_name" IS '实体列名';
+COMMENT ON COLUMN "blade_model_prototype"."is_list" IS '列表显示';
+COMMENT ON COLUMN "blade_model_prototype"."is_form" IS '表单显示';
+COMMENT ON COLUMN "blade_model_prototype"."is_row" IS '独占一行';
+COMMENT ON COLUMN "blade_model_prototype"."component_type" IS '组件类型';
+COMMENT ON COLUMN "blade_model_prototype"."dict_code" IS '字典编码';
+COMMENT ON COLUMN "blade_model_prototype"."is_required" IS '是否必填';
+COMMENT ON COLUMN "blade_model_prototype"."validate_type" IS '验证类型';
+COMMENT ON COLUMN "blade_model_prototype"."is_query" IS '查询配置';
+COMMENT ON COLUMN "blade_model_prototype"."query_type" IS '查询类型';
+COMMENT ON COLUMN "blade_model_prototype"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_model_prototype"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_model_prototype"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_model_prototype"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_model_prototype"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_model_prototype"."status" IS '状态';
+COMMENT ON COLUMN "blade_model_prototype"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_model_prototype" IS '数据原型表';
+
+-- ----------------------------
+-- Table structure for blade_notice
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_notice";
+CREATE TABLE "blade_notice" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "title" varchar(255) COLLATE "pg_catalog"."default",
+  "category" int4,
+  "release_time" timestamp(6),
+  "content" varchar(2000) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_notice"."id" IS '主键';
+COMMENT ON COLUMN "blade_notice"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_notice"."title" IS '标题';
+COMMENT ON COLUMN "blade_notice"."category" IS '类型';
+COMMENT ON COLUMN "blade_notice"."release_time" IS '发布时间';
+COMMENT ON COLUMN "blade_notice"."content" IS '内容';
+COMMENT ON COLUMN "blade_notice"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_notice"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_notice"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_notice"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_notice"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_notice"."status" IS '状态';
+COMMENT ON COLUMN "blade_notice"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_notice" IS '通知公告表';
+
+-- ----------------------------
+-- Records of blade_notice
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_notice" VALUES (1123598818738675223, '000000', '测试公告', 3, '2018-12-31 20:03:31', '222', 1123598821738675201, 1123598813738675201, '2018-12-05 20:03:31', 1123598821738675201, '2018-12-28 11:10:51', 1, 0);
+INSERT INTO "blade_notice" VALUES (1123598818738675224, '000000', '测试公告2', 1, '2018-12-05 20:03:31', '333', 1123598821738675201, 1123598813738675201, '2018-12-28 10:32:26', 1123598821738675201, '2018-12-28 11:10:34', 1, 0);
+INSERT INTO "blade_notice" VALUES (1123598818738675225, '000000', '测试公告3', 6, '2018-12-29 00:00:00', '11111', 1123598821738675201, 1123598813738675201, '2018-12-28 11:03:44', 1123598821738675201, '2018-12-28 11:10:28', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_oss
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_oss";
+CREATE TABLE "blade_oss" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "category" int4,
+  "oss_code" varchar(32) COLLATE "pg_catalog"."default",
+  "endpoint" varchar(255) COLLATE "pg_catalog"."default",
+  "access_key" varchar(255) COLLATE "pg_catalog"."default",
+  "secret_key" varchar(255) COLLATE "pg_catalog"."default",
+  "bucket_name" varchar(255) COLLATE "pg_catalog"."default",
+  "app_id" varchar(255) COLLATE "pg_catalog"."default",
+  "region" varchar(255) COLLATE "pg_catalog"."default",
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_oss"."id" IS '主键';
+COMMENT ON COLUMN "blade_oss"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_oss"."category" IS '分类';
+COMMENT ON COLUMN "blade_oss"."oss_code" IS '资源编号';
+COMMENT ON COLUMN "blade_oss"."endpoint" IS '资源地址';
+COMMENT ON COLUMN "blade_oss"."access_key" IS 'accessKey';
+COMMENT ON COLUMN "blade_oss"."secret_key" IS 'secretKey';
+COMMENT ON COLUMN "blade_oss"."bucket_name" IS '空间名';
+COMMENT ON COLUMN "blade_oss"."app_id" IS '应用ID';
+COMMENT ON COLUMN "blade_oss"."region" IS '地域简称';
+COMMENT ON COLUMN "blade_oss"."remark" IS '备注';
+COMMENT ON COLUMN "blade_oss"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_oss"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_oss"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_oss"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_oss"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_oss"."status" IS '状态';
+COMMENT ON COLUMN "blade_oss"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_oss" IS '对象存储表';
+
+-- ----------------------------
+-- Records of blade_oss
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_oss" VALUES (1132486733992468482, '000000', 1, 'minio', 'http://127.0.0.1:9000', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:20:52', 1123598821738675201, '2019-05-27 08:34:55', 2, 0);
+INSERT INTO "blade_oss" VALUES (1132487155981393922, '000000', 2, 'qiniu', 'http://ps458elcs.bkt.clouddn.com', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:22:33', 1123598821738675201, '2019-05-26 23:27:56', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_param
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_param";
+CREATE TABLE "blade_param" (
+  "id" int8 NOT NULL,
+  "param_name" varchar(255) COLLATE "pg_catalog"."default",
+  "param_key" varchar(255) COLLATE "pg_catalog"."default",
+  "param_value" varchar(255) COLLATE "pg_catalog"."default",
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_param"."id" IS '主键';
+COMMENT ON COLUMN "blade_param"."param_name" IS '参数名';
+COMMENT ON COLUMN "blade_param"."param_key" IS '参数键';
+COMMENT ON COLUMN "blade_param"."param_value" IS '参数值';
+COMMENT ON COLUMN "blade_param"."remark" IS '备注';
+COMMENT ON COLUMN "blade_param"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_param"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_param"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_param"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_param"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_param"."status" IS '状态';
+COMMENT ON COLUMN "blade_param"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_param" IS '参数表';
+
+-- ----------------------------
+-- Records of blade_param
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_param" VALUES (1123598819738675201, '是否开启注册功能', 'account.registerUser', 'true', '开启注册', 1123598821738675201, 1123598813738675201, '2018-12-28 12:19:01', 1123598821738675201, '2018-12-28 12:19:01', 1, 0);
+INSERT INTO "blade_param" VALUES (1123598819738675202, '账号初始密码', 'account.initPassword', '123456', '初始密码', 1123598821738675201, 1123598813738675201, '2018-12-28 12:19:01', 1123598821738675201, '2018-12-28 12:19:01', 1, 0);
+INSERT INTO "blade_param" VALUES (1123598819738675203, '账号错误锁定次数', 'account.failCount', '5', '锁定次数', 1123598821738675201, 1123598813738675201, '2021-12-01 12:00:00', 1123598821738675201, '2021-12-01 12:00:00', 1, 0);
+INSERT INTO "blade_param" VALUES (1238706101399142402, '租户默认管理密码', 'tenant.default.password', 'admin', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:58:43', 1123598821738675201, '2020-03-14 13:58:43', 1, 0);
+INSERT INTO "blade_param" VALUES (1238706160295559170, '租户默认账号额度', 'tenant.default.accountNumber', '100', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:58:57', 1123598821738675201, '2020-03-14 13:58:57', 1, 0);
+INSERT INTO "blade_param" VALUES (1238706330076790786, '租户默认菜单集合', 'tenant.default.menuCode', 'desk,flow,work,monitor,resource,role,user,dept,post,dictbiz,topmenu', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:59:38', 1123598821738675201, '2020-03-14 13:59:38', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_post
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_post";
+CREATE TABLE "blade_post" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "category" int4,
+  "post_code" varchar(12) COLLATE "pg_catalog"."default",
+  "post_name" varchar(64) COLLATE "pg_catalog"."default",
+  "sort" int4,
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_post"."id" IS '主键';
+COMMENT ON COLUMN "blade_post"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_post"."category" IS '岗位类型';
+COMMENT ON COLUMN "blade_post"."post_code" IS '岗位编号';
+COMMENT ON COLUMN "blade_post"."post_name" IS '岗位名称';
+COMMENT ON COLUMN "blade_post"."sort" IS '岗位排序';
+COMMENT ON COLUMN "blade_post"."remark" IS '岗位排序';
+COMMENT ON COLUMN "blade_post"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_post"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_post"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_post"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_post"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_post"."status" IS '状态';
+COMMENT ON COLUMN "blade_post"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_post" IS '岗位表';
+
+-- ----------------------------
+-- Records of blade_post
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_post" VALUES (1123598817738675201, '000000', 1, 'ceo', '首席执行官', 1, '总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+INSERT INTO "blade_post" VALUES (1123598817738675202, '000000', 1, 'coo', '首席运营官', 2, '常务总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+INSERT INTO "blade_post" VALUES (1123598817738675203, '000000', 1, 'cfo', '首席财务官', 3, '财务总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+INSERT INTO "blade_post" VALUES (1123598817738675204, '000000', 1, 'cto', '首席技术官', 4, '技术总监', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+INSERT INTO "blade_post" VALUES (1123598817738675205, '000000', 1, 'cio', '首席信息官', 5, '信息总监', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+INSERT INTO "blade_post" VALUES (1123598817738675206, '000000', 2, 'pm', '技术经理', 6, '研发和产品是永远的朋友', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+INSERT INTO "blade_post" VALUES (1123598817738675207, '000000', 2, 'hrm', '人力经理', 7, '人力资源部门工作管理者', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+INSERT INTO "blade_post" VALUES (1123598817738675208, '000000', 3, 'staff', '普通员工', 8, '普通员工', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_process_leave
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_process_leave";
+CREATE TABLE "blade_process_leave" (
+  "id" int8 NOT NULL,
+  "process_definition_id" varchar(64) COLLATE "pg_catalog"."default",
+  "process_instance_id" varchar(64) COLLATE "pg_catalog"."default",
+  "start_time" timestamp(6),
+  "end_time" timestamp(6),
+  "reason" varchar(255) COLLATE "pg_catalog"."default",
+  "task_user" varchar(255) COLLATE "pg_catalog"."default",
+  "apply_time" timestamp(6),
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_process_leave"."id" IS '编号';
+COMMENT ON COLUMN "blade_process_leave"."process_definition_id" IS '流程定义主键';
+COMMENT ON COLUMN "blade_process_leave"."process_instance_id" IS '流程实例主键';
+COMMENT ON COLUMN "blade_process_leave"."start_time" IS '开始时间';
+COMMENT ON COLUMN "blade_process_leave"."end_time" IS '结束时间';
+COMMENT ON COLUMN "blade_process_leave"."reason" IS '请假理由';
+COMMENT ON COLUMN "blade_process_leave"."task_user" IS '第一级审批人';
+COMMENT ON COLUMN "blade_process_leave"."apply_time" IS '申请时间';
+COMMENT ON COLUMN "blade_process_leave"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_process_leave"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_process_leave"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_process_leave"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_process_leave"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_process_leave"."status" IS '状态';
+COMMENT ON COLUMN "blade_process_leave"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_process_leave" IS '流程请假业务表';
+
+-- ----------------------------
+-- Table structure for blade_region
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_region";
+CREATE TABLE "blade_region" (
+  "code" varchar(12) COLLATE "pg_catalog"."default" NOT NULL,
+  "parent_code" varchar(12) COLLATE "pg_catalog"."default",
+  "ancestors" varchar(255) COLLATE "pg_catalog"."default",
+  "name" varchar(32) COLLATE "pg_catalog"."default",
+  "province_code" varchar(12) COLLATE "pg_catalog"."default",
+  "province_name" varchar(32) COLLATE "pg_catalog"."default",
+  "city_code" varchar(12) COLLATE "pg_catalog"."default",
+  "city_name" varchar(32) COLLATE "pg_catalog"."default",
+  "district_code" varchar(12) COLLATE "pg_catalog"."default",
+  "district_name" varchar(32) COLLATE "pg_catalog"."default",
+  "town_code" varchar(12) COLLATE "pg_catalog"."default",
+  "town_name" varchar(32) COLLATE "pg_catalog"."default",
+  "village_code" varchar(12) COLLATE "pg_catalog"."default",
+  "village_name" varchar(32) COLLATE "pg_catalog"."default",
+  "region_level" int4,
+  "sort" int4,
+  "remark" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+COMMENT ON COLUMN "blade_region"."code" IS '区划编号';
+COMMENT ON COLUMN "blade_region"."parent_code" IS '父区划编号';
+COMMENT ON COLUMN "blade_region"."ancestors" IS '祖区划编号';
+COMMENT ON COLUMN "blade_region"."name" IS '区划名称';
+COMMENT ON COLUMN "blade_region"."province_code" IS '省级区划编号';
+COMMENT ON COLUMN "blade_region"."province_name" IS '省级名称';
+COMMENT ON COLUMN "blade_region"."city_code" IS '市级区划编号';
+COMMENT ON COLUMN "blade_region"."city_name" IS '市级名称';
+COMMENT ON COLUMN "blade_region"."district_code" IS '区级区划编号';
+COMMENT ON COLUMN "blade_region"."district_name" IS '区级名称';
+COMMENT ON COLUMN "blade_region"."town_code" IS '镇级区划编号';
+COMMENT ON COLUMN "blade_region"."town_name" IS '镇级名称';
+COMMENT ON COLUMN "blade_region"."village_code" IS '村级区划编号';
+COMMENT ON COLUMN "blade_region"."village_name" IS '村级名称';
+COMMENT ON COLUMN "blade_region"."region_level" IS '层级';
+COMMENT ON COLUMN "blade_region"."sort" IS '排序';
+COMMENT ON COLUMN "blade_region"."remark" IS '备注';
+COMMENT ON TABLE "blade_region" IS '行政区划表';
+
+-- ----------------------------
+-- Records of blade_region
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_region" VALUES ('00', '0', '0', '中华人民共和国', '', '', '', '', '', '', '', '', '', '', 0, 1, '');
+INSERT INTO "blade_region" VALUES ('11', '00', '00', '北京市', '11', '北京市', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('1101', '11', '00,11', '北京市', '11', '北京市', '1101', '北京市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('110101', '1101', '00,11,1101', '东城区', '11', '北京市', '1101', '北京市', '110101', '东城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110102', '1101', '00,11,1101', '西城区', '11', '北京市', '1101', '北京市', '110102', '西城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110105', '1101', '00,11,1101', '朝阳区', '11', '北京市', '1101', '北京市', '110105', '朝阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110106', '1101', '00,11,1101', '丰台区', '11', '北京市', '1101', '北京市', '110106', '丰台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110107', '1101', '00,11,1101', '石景山区', '11', '北京市', '1101', '北京市', '110107', '石景山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110108', '1101', '00,11,1101', '海淀区', '11', '北京市', '1101', '北京市', '110108', '海淀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110109', '1101', '00,11,1101', '门头沟区', '11', '北京市', '1101', '北京市', '110109', '门头沟区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110111', '1101', '00,11,1101', '房山区', '11', '北京市', '1101', '北京市', '110111', '房山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110112', '1101', '00,11,1101', '通州区', '11', '北京市', '1101', '北京市', '110112', '通州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110113', '1101', '00,11,1101', '顺义区', '11', '北京市', '1101', '北京市', '110113', '顺义区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110114', '1101', '00,11,1101', '昌平区', '11', '北京市', '1101', '北京市', '110114', '昌平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110115', '1101', '00,11,1101', '大兴区', '11', '北京市', '1101', '北京市', '110115', '大兴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110116', '1101', '00,11,1101', '怀柔区', '11', '北京市', '1101', '北京市', '110116', '怀柔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110117', '1101', '00,11,1101', '平谷区', '11', '北京市', '1101', '北京市', '110117', '平谷区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110118', '1101', '00,11,1101', '密云区', '11', '北京市', '1101', '北京市', '110118', '密云区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('110119', '1101', '00,11,1101', '延庆区', '11', '北京市', '1101', '北京市', '110119', '延庆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('12', '00', '00', '天津市', '12', '天津市', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('1201', '12', '00,12', '天津市', '12', '天津市', '1201', '天津市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('120101', '1201', '00,12,1201', '和平区', '12', '天津市', '1201', '天津市', '120101', '和平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120102', '1201', '00,12,1201', '河东区', '12', '天津市', '1201', '天津市', '120102', '河东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120103', '1201', '00,12,1201', '河西区', '12', '天津市', '1201', '天津市', '120103', '河西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120104', '1201', '00,12,1201', '南开区', '12', '天津市', '1201', '天津市', '120104', '南开区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120105', '1201', '00,12,1201', '河北区', '12', '天津市', '1201', '天津市', '120105', '河北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120106', '1201', '00,12,1201', '红桥区', '12', '天津市', '1201', '天津市', '120106', '红桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120110', '1201', '00,12,1201', '东丽区', '12', '天津市', '1201', '天津市', '120110', '东丽区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120111', '1201', '00,12,1201', '西青区', '12', '天津市', '1201', '天津市', '120111', '西青区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120112', '1201', '00,12,1201', '津南区', '12', '天津市', '1201', '天津市', '120112', '津南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120113', '1201', '00,12,1201', '北辰区', '12', '天津市', '1201', '天津市', '120113', '北辰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120114', '1201', '00,12,1201', '武清区', '12', '天津市', '1201', '天津市', '120114', '武清区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120115', '1201', '00,12,1201', '宝坻区', '12', '天津市', '1201', '天津市', '120115', '宝坻区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120116', '1201', '00,12,1201', '滨海新区', '12', '天津市', '1201', '天津市', '120116', '滨海新区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120117', '1201', '00,12,1201', '宁河区', '12', '天津市', '1201', '天津市', '120117', '宁河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120118', '1201', '00,12,1201', '静海区', '12', '天津市', '1201', '天津市', '120118', '静海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('120119', '1201', '00,12,1201', '蓟州区', '12', '天津市', '1201', '天津市', '120119', '蓟州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('13', '00', '00', '河北省', '13', '河北省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('1301', '13', '00,13', '石家庄市', '13', '河北省', '1301', '石家庄市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130102', '1301', '00,13,1301', '长安区', '13', '河北省', '1301', '石家庄市', '130102', '长安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130104', '1301', '00,13,1301', '桥西区', '13', '河北省', '1301', '石家庄市', '130104', '桥西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130105', '1301', '00,13,1301', '新华区', '13', '河北省', '1301', '石家庄市', '130105', '新华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130107', '1301', '00,13,1301', '井陉矿区', '13', '河北省', '1301', '石家庄市', '130107', '井陉矿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130108', '1301', '00,13,1301', '裕华区', '13', '河北省', '1301', '石家庄市', '130108', '裕华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130109', '1301', '00,13,1301', '藁城区', '13', '河北省', '1301', '石家庄市', '130109', '藁城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130110', '1301', '00,13,1301', '鹿泉区', '13', '河北省', '1301', '石家庄市', '130110', '鹿泉区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130111', '1301', '00,13,1301', '栾城区', '13', '河北省', '1301', '石家庄市', '130111', '栾城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130121', '1301', '00,13,1301', '井陉县', '13', '河北省', '1301', '石家庄市', '130121', '井陉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130123', '1301', '00,13,1301', '正定县', '13', '河北省', '1301', '石家庄市', '130123', '正定县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130125', '1301', '00,13,1301', '行唐县', '13', '河北省', '1301', '石家庄市', '130125', '行唐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130126', '1301', '00,13,1301', '灵寿县', '13', '河北省', '1301', '石家庄市', '130126', '灵寿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130127', '1301', '00,13,1301', '高邑县', '13', '河北省', '1301', '石家庄市', '130127', '高邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130128', '1301', '00,13,1301', '深泽县', '13', '河北省', '1301', '石家庄市', '130128', '深泽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130129', '1301', '00,13,1301', '赞皇县', '13', '河北省', '1301', '石家庄市', '130129', '赞皇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130130', '1301', '00,13,1301', '无极县', '13', '河北省', '1301', '石家庄市', '130130', '无极县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130131', '1301', '00,13,1301', '平山县', '13', '河北省', '1301', '石家庄市', '130131', '平山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130132', '1301', '00,13,1301', '元氏县', '13', '河北省', '1301', '石家庄市', '130132', '元氏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130133', '1301', '00,13,1301', '赵县', '13', '河北省', '1301', '石家庄市', '130133', '赵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130181', '1301', '00,13,1301', '辛集市', '13', '河北省', '1301', '石家庄市', '130181', '辛集市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130183', '1301', '00,13,1301', '晋州市', '13', '河北省', '1301', '石家庄市', '130183', '晋州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130184', '1301', '00,13,1301', '新乐市', '13', '河北省', '1301', '石家庄市', '130184', '新乐市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1302', '13', '00,13', '唐山市', '13', '河北省', '1302', '唐山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130202', '1302', '00,13,1302', '路南区', '13', '河北省', '1302', '唐山市', '130202', '路南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130203', '1302', '00,13,1302', '路北区', '13', '河北省', '1302', '唐山市', '130203', '路北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130204', '1302', '00,13,1302', '古冶区', '13', '河北省', '1302', '唐山市', '130204', '古冶区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130205', '1302', '00,13,1302', '开平区', '13', '河北省', '1302', '唐山市', '130205', '开平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130207', '1302', '00,13,1302', '丰南区', '13', '河北省', '1302', '唐山市', '130207', '丰南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130208', '1302', '00,13,1302', '丰润区', '13', '河北省', '1302', '唐山市', '130208', '丰润区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130209', '1302', '00,13,1302', '曹妃甸区', '13', '河北省', '1302', '唐山市', '130209', '曹妃甸区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130224', '1302', '00,13,1302', '滦南县', '13', '河北省', '1302', '唐山市', '130224', '滦南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130225', '1302', '00,13,1302', '乐亭县', '13', '河北省', '1302', '唐山市', '130225', '乐亭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130227', '1302', '00,13,1302', '迁西县', '13', '河北省', '1302', '唐山市', '130227', '迁西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130229', '1302', '00,13,1302', '玉田县', '13', '河北省', '1302', '唐山市', '130229', '玉田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130281', '1302', '00,13,1302', '遵化市', '13', '河北省', '1302', '唐山市', '130281', '遵化市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130283', '1302', '00,13,1302', '迁安市', '13', '河北省', '1302', '唐山市', '130283', '迁安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130284', '1302', '00,13,1302', '滦州市', '13', '河北省', '1302', '唐山市', '130284', '滦州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1303', '13', '00,13', '秦皇岛市', '13', '河北省', '1303', '秦皇岛市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130302', '1303', '00,13,1303', '海港区', '13', '河北省', '1303', '秦皇岛市', '130302', '海港区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130303', '1303', '00,13,1303', '山海关区', '13', '河北省', '1303', '秦皇岛市', '130303', '山海关区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130304', '1303', '00,13,1303', '北戴河区', '13', '河北省', '1303', '秦皇岛市', '130304', '北戴河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130306', '1303', '00,13,1303', '抚宁区', '13', '河北省', '1303', '秦皇岛市', '130306', '抚宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130321', '1303', '00,13,1303', '青龙满族自治县', '13', '河北省', '1303', '秦皇岛市', '130321', '青龙满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130322', '1303', '00,13,1303', '昌黎县', '13', '河北省', '1303', '秦皇岛市', '130322', '昌黎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130324', '1303', '00,13,1303', '卢龙县', '13', '河北省', '1303', '秦皇岛市', '130324', '卢龙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1304', '13', '00,13', '邯郸市', '13', '河北省', '1304', '邯郸市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130402', '1304', '00,13,1304', '邯山区', '13', '河北省', '1304', '邯郸市', '130402', '邯山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130403', '1304', '00,13,1304', '丛台区', '13', '河北省', '1304', '邯郸市', '130403', '丛台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130404', '1304', '00,13,1304', '复兴区', '13', '河北省', '1304', '邯郸市', '130404', '复兴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130406', '1304', '00,13,1304', '峰峰矿区', '13', '河北省', '1304', '邯郸市', '130406', '峰峰矿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130407', '1304', '00,13,1304', '肥乡区', '13', '河北省', '1304', '邯郸市', '130407', '肥乡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130408', '1304', '00,13,1304', '永年区', '13', '河北省', '1304', '邯郸市', '130408', '永年区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130423', '1304', '00,13,1304', '临漳县', '13', '河北省', '1304', '邯郸市', '130423', '临漳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130424', '1304', '00,13,1304', '成安县', '13', '河北省', '1304', '邯郸市', '130424', '成安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130425', '1304', '00,13,1304', '大名县', '13', '河北省', '1304', '邯郸市', '130425', '大名县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130426', '1304', '00,13,1304', '涉县', '13', '河北省', '1304', '邯郸市', '130426', '涉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130427', '1304', '00,13,1304', '磁县', '13', '河北省', '1304', '邯郸市', '130427', '磁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130430', '1304', '00,13,1304', '邱县', '13', '河北省', '1304', '邯郸市', '130430', '邱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130431', '1304', '00,13,1304', '鸡泽县', '13', '河北省', '1304', '邯郸市', '130431', '鸡泽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130432', '1304', '00,13,1304', '广平县', '13', '河北省', '1304', '邯郸市', '130432', '广平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130433', '1304', '00,13,1304', '馆陶县', '13', '河北省', '1304', '邯郸市', '130433', '馆陶县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130434', '1304', '00,13,1304', '魏县', '13', '河北省', '1304', '邯郸市', '130434', '魏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130435', '1304', '00,13,1304', '曲周县', '13', '河北省', '1304', '邯郸市', '130435', '曲周县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130481', '1304', '00,13,1304', '武安市', '13', '河北省', '1304', '邯郸市', '130481', '武安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1305', '13', '00,13', '邢台市', '13', '河北省', '1305', '邢台市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130502', '1305', '00,13,1305', '桥东区', '13', '河北省', '1305', '邢台市', '130502', '桥东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130503', '1305', '00,13,1305', '桥西区', '13', '河北省', '1305', '邢台市', '130503', '桥西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130521', '1305', '00,13,1305', '邢台县', '13', '河北省', '1305', '邢台市', '130521', '邢台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130522', '1305', '00,13,1305', '临城县', '13', '河北省', '1305', '邢台市', '130522', '临城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130523', '1305', '00,13,1305', '内丘县', '13', '河北省', '1305', '邢台市', '130523', '内丘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130524', '1305', '00,13,1305', '柏乡县', '13', '河北省', '1305', '邢台市', '130524', '柏乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130525', '1305', '00,13,1305', '隆尧县', '13', '河北省', '1305', '邢台市', '130525', '隆尧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130526', '1305', '00,13,1305', '任县', '13', '河北省', '1305', '邢台市', '130526', '任县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130527', '1305', '00,13,1305', '南和县', '13', '河北省', '1305', '邢台市', '130527', '南和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130528', '1305', '00,13,1305', '宁晋县', '13', '河北省', '1305', '邢台市', '130528', '宁晋县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130529', '1305', '00,13,1305', '巨鹿县', '13', '河北省', '1305', '邢台市', '130529', '巨鹿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130530', '1305', '00,13,1305', '新河县', '13', '河北省', '1305', '邢台市', '130530', '新河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130531', '1305', '00,13,1305', '广宗县', '13', '河北省', '1305', '邢台市', '130531', '广宗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130532', '1305', '00,13,1305', '平乡县', '13', '河北省', '1305', '邢台市', '130532', '平乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130533', '1305', '00,13,1305', '威县', '13', '河北省', '1305', '邢台市', '130533', '威县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130534', '1305', '00,13,1305', '清河县', '13', '河北省', '1305', '邢台市', '130534', '清河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130535', '1305', '00,13,1305', '临西县', '13', '河北省', '1305', '邢台市', '130535', '临西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130581', '1305', '00,13,1305', '南宫市', '13', '河北省', '1305', '邢台市', '130581', '南宫市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130582', '1305', '00,13,1305', '沙河市', '13', '河北省', '1305', '邢台市', '130582', '沙河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1306', '13', '00,13', '保定市', '13', '河北省', '1306', '保定市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130602', '1306', '00,13,1306', '竞秀区', '13', '河北省', '1306', '保定市', '130602', '竞秀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130606', '1306', '00,13,1306', '莲池区', '13', '河北省', '1306', '保定市', '130606', '莲池区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130607', '1306', '00,13,1306', '满城区', '13', '河北省', '1306', '保定市', '130607', '满城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130608', '1306', '00,13,1306', '清苑区', '13', '河北省', '1306', '保定市', '130608', '清苑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130609', '1306', '00,13,1306', '徐水区', '13', '河北省', '1306', '保定市', '130609', '徐水区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130623', '1306', '00,13,1306', '涞水县', '13', '河北省', '1306', '保定市', '130623', '涞水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130624', '1306', '00,13,1306', '阜平县', '13', '河北省', '1306', '保定市', '130624', '阜平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130626', '1306', '00,13,1306', '定兴县', '13', '河北省', '1306', '保定市', '130626', '定兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130627', '1306', '00,13,1306', '唐县', '13', '河北省', '1306', '保定市', '130627', '唐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130628', '1306', '00,13,1306', '高阳县', '13', '河北省', '1306', '保定市', '130628', '高阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130629', '1306', '00,13,1306', '容城县', '13', '河北省', '1306', '保定市', '130629', '容城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130630', '1306', '00,13,1306', '涞源县', '13', '河北省', '1306', '保定市', '130630', '涞源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130631', '1306', '00,13,1306', '望都县', '13', '河北省', '1306', '保定市', '130631', '望都县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130632', '1306', '00,13,1306', '安新县', '13', '河北省', '1306', '保定市', '130632', '安新县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130633', '1306', '00,13,1306', '易县', '13', '河北省', '1306', '保定市', '130633', '易县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130634', '1306', '00,13,1306', '曲阳县', '13', '河北省', '1306', '保定市', '130634', '曲阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130635', '1306', '00,13,1306', '蠡县', '13', '河北省', '1306', '保定市', '130635', '蠡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130636', '1306', '00,13,1306', '顺平县', '13', '河北省', '1306', '保定市', '130636', '顺平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130637', '1306', '00,13,1306', '博野县', '13', '河北省', '1306', '保定市', '130637', '博野县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130638', '1306', '00,13,1306', '雄县', '13', '河北省', '1306', '保定市', '130638', '雄县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130681', '1306', '00,13,1306', '涿州市', '13', '河北省', '1306', '保定市', '130681', '涿州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130682', '1306', '00,13,1306', '定州市', '13', '河北省', '1306', '保定市', '130682', '定州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130683', '1306', '00,13,1306', '安国市', '13', '河北省', '1306', '保定市', '130683', '安国市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130684', '1306', '00,13,1306', '高碑店市', '13', '河北省', '1306', '保定市', '130684', '高碑店市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1307', '13', '00,13', '张家口市', '13', '河北省', '1307', '张家口市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130702', '1307', '00,13,1307', '桥东区', '13', '河北省', '1307', '张家口市', '130702', '桥东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130703', '1307', '00,13,1307', '桥西区', '13', '河北省', '1307', '张家口市', '130703', '桥西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130705', '1307', '00,13,1307', '宣化区', '13', '河北省', '1307', '张家口市', '130705', '宣化区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130706', '1307', '00,13,1307', '下花园区', '13', '河北省', '1307', '张家口市', '130706', '下花园区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130708', '1307', '00,13,1307', '万全区', '13', '河北省', '1307', '张家口市', '130708', '万全区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130709', '1307', '00,13,1307', '崇礼区', '13', '河北省', '1307', '张家口市', '130709', '崇礼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130722', '1307', '00,13,1307', '张北县', '13', '河北省', '1307', '张家口市', '130722', '张北县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130723', '1307', '00,13,1307', '康保县', '13', '河北省', '1307', '张家口市', '130723', '康保县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130724', '1307', '00,13,1307', '沽源县', '13', '河北省', '1307', '张家口市', '130724', '沽源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130725', '1307', '00,13,1307', '尚义县', '13', '河北省', '1307', '张家口市', '130725', '尚义县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130726', '1307', '00,13,1307', '蔚县', '13', '河北省', '1307', '张家口市', '130726', '蔚县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130727', '1307', '00,13,1307', '阳原县', '13', '河北省', '1307', '张家口市', '130727', '阳原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130728', '1307', '00,13,1307', '怀安县', '13', '河北省', '1307', '张家口市', '130728', '怀安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130730', '1307', '00,13,1307', '怀来县', '13', '河北省', '1307', '张家口市', '130730', '怀来县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130731', '1307', '00,13,1307', '涿鹿县', '13', '河北省', '1307', '张家口市', '130731', '涿鹿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130732', '1307', '00,13,1307', '赤城县', '13', '河北省', '1307', '张家口市', '130732', '赤城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1308', '13', '00,13', '承德市', '13', '河北省', '1308', '承德市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130802', '1308', '00,13,1308', '双桥区', '13', '河北省', '1308', '承德市', '130802', '双桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130803', '1308', '00,13,1308', '双滦区', '13', '河北省', '1308', '承德市', '130803', '双滦区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130804', '1308', '00,13,1308', '鹰手营子矿区', '13', '河北省', '1308', '承德市', '130804', '鹰手营子矿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130821', '1308', '00,13,1308', '承德县', '13', '河北省', '1308', '承德市', '130821', '承德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130822', '1308', '00,13,1308', '兴隆县', '13', '河北省', '1308', '承德市', '130822', '兴隆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130824', '1308', '00,13,1308', '滦平县', '13', '河北省', '1308', '承德市', '130824', '滦平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130825', '1308', '00,13,1308', '隆化县', '13', '河北省', '1308', '承德市', '130825', '隆化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130826', '1308', '00,13,1308', '丰宁满族自治县', '13', '河北省', '1308', '承德市', '130826', '丰宁满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130827', '1308', '00,13,1308', '宽城满族自治县', '13', '河北省', '1308', '承德市', '130827', '宽城满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130828', '1308', '00,13,1308', '围场满族蒙古族自治县', '13', '河北省', '1308', '承德市', '130828', '围场满族蒙古族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130881', '1308', '00,13,1308', '平泉市', '13', '河北省', '1308', '承德市', '130881', '平泉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1309', '13', '00,13', '沧州市', '13', '河北省', '1309', '沧州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('130902', '1309', '00,13,1309', '新华区', '13', '河北省', '1309', '沧州市', '130902', '新华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130903', '1309', '00,13,1309', '运河区', '13', '河北省', '1309', '沧州市', '130903', '运河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130921', '1309', '00,13,1309', '沧县', '13', '河北省', '1309', '沧州市', '130921', '沧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130922', '1309', '00,13,1309', '青县', '13', '河北省', '1309', '沧州市', '130922', '青县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130923', '1309', '00,13,1309', '东光县', '13', '河北省', '1309', '沧州市', '130923', '东光县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130924', '1309', '00,13,1309', '海兴县', '13', '河北省', '1309', '沧州市', '130924', '海兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130925', '1309', '00,13,1309', '盐山县', '13', '河北省', '1309', '沧州市', '130925', '盐山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130926', '1309', '00,13,1309', '肃宁县', '13', '河北省', '1309', '沧州市', '130926', '肃宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130927', '1309', '00,13,1309', '南皮县', '13', '河北省', '1309', '沧州市', '130927', '南皮县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130928', '1309', '00,13,1309', '吴桥县', '13', '河北省', '1309', '沧州市', '130928', '吴桥县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130929', '1309', '00,13,1309', '献县', '13', '河北省', '1309', '沧州市', '130929', '献县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130930', '1309', '00,13,1309', '孟村回族自治县', '13', '河北省', '1309', '沧州市', '130930', '孟村回族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130981', '1309', '00,13,1309', '泊头市', '13', '河北省', '1309', '沧州市', '130981', '泊头市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130982', '1309', '00,13,1309', '任丘市', '13', '河北省', '1309', '沧州市', '130982', '任丘市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130983', '1309', '00,13,1309', '黄骅市', '13', '河北省', '1309', '沧州市', '130983', '黄骅市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('130984', '1309', '00,13,1309', '河间市', '13', '河北省', '1309', '沧州市', '130984', '河间市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1310', '13', '00,13', '廊坊市', '13', '河北省', '1310', '廊坊市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('131002', '1310', '00,13,1310', '安次区', '13', '河北省', '1310', '廊坊市', '131002', '安次区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3403', '34', '00,34', '蚌埠市', '34', '安徽省', '3403', '蚌埠市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('131003', '1310', '00,13,1310', '广阳区', '13', '河北省', '1310', '廊坊市', '131003', '广阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131022', '1310', '00,13,1310', '固安县', '13', '河北省', '1310', '廊坊市', '131022', '固安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131023', '1310', '00,13,1310', '永清县', '13', '河北省', '1310', '廊坊市', '131023', '永清县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131024', '1310', '00,13,1310', '香河县', '13', '河北省', '1310', '廊坊市', '131024', '香河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131025', '1310', '00,13,1310', '大城县', '13', '河北省', '1310', '廊坊市', '131025', '大城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131026', '1310', '00,13,1310', '文安县', '13', '河北省', '1310', '廊坊市', '131026', '文安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131028', '1310', '00,13,1310', '大厂回族自治县', '13', '河北省', '1310', '廊坊市', '131028', '大厂回族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131081', '1310', '00,13,1310', '霸州市', '13', '河北省', '1310', '廊坊市', '131081', '霸州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131082', '1310', '00,13,1310', '三河市', '13', '河北省', '1310', '廊坊市', '131082', '三河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1311', '13', '00,13', '衡水市', '13', '河北省', '1311', '衡水市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('131102', '1311', '00,13,1311', '桃城区', '13', '河北省', '1311', '衡水市', '131102', '桃城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131103', '1311', '00,13,1311', '冀州区', '13', '河北省', '1311', '衡水市', '131103', '冀州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131121', '1311', '00,13,1311', '枣强县', '13', '河北省', '1311', '衡水市', '131121', '枣强县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131122', '1311', '00,13,1311', '武邑县', '13', '河北省', '1311', '衡水市', '131122', '武邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131123', '1311', '00,13,1311', '武强县', '13', '河北省', '1311', '衡水市', '131123', '武强县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131124', '1311', '00,13,1311', '饶阳县', '13', '河北省', '1311', '衡水市', '131124', '饶阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131125', '1311', '00,13,1311', '安平县', '13', '河北省', '1311', '衡水市', '131125', '安平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131126', '1311', '00,13,1311', '故城县', '13', '河北省', '1311', '衡水市', '131126', '故城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131127', '1311', '00,13,1311', '景县', '13', '河北省', '1311', '衡水市', '131127', '景县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131128', '1311', '00,13,1311', '阜城县', '13', '河北省', '1311', '衡水市', '131128', '阜城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('131182', '1311', '00,13,1311', '深州市', '13', '河北省', '1311', '衡水市', '131182', '深州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('14', '00', '00', '山西省', '14', '山西省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('1401', '14', '00,14', '太原市', '14', '山西省', '1401', '太原市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140105', '1401', '00,14,1401', '小店区', '14', '山西省', '1401', '太原市', '140105', '小店区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140106', '1401', '00,14,1401', '迎泽区', '14', '山西省', '1401', '太原市', '140106', '迎泽区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140107', '1401', '00,14,1401', '杏花岭区', '14', '山西省', '1401', '太原市', '140107', '杏花岭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140108', '1401', '00,14,1401', '尖草坪区', '14', '山西省', '1401', '太原市', '140108', '尖草坪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140109', '1401', '00,14,1401', '万柏林区', '14', '山西省', '1401', '太原市', '140109', '万柏林区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140110', '1401', '00,14,1401', '晋源区', '14', '山西省', '1401', '太原市', '140110', '晋源区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140121', '1401', '00,14,1401', '清徐县', '14', '山西省', '1401', '太原市', '140121', '清徐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140122', '1401', '00,14,1401', '阳曲县', '14', '山西省', '1401', '太原市', '140122', '阳曲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140123', '1401', '00,14,1401', '娄烦县', '14', '山西省', '1401', '太原市', '140123', '娄烦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140181', '1401', '00,14,1401', '古交市', '14', '山西省', '1401', '太原市', '140181', '古交市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1402', '14', '00,14', '大同市', '14', '山西省', '1402', '大同市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140212', '1402', '00,14,1402', '新荣区', '14', '山西省', '1402', '大同市', '140212', '新荣区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140213', '1402', '00,14,1402', '平城区', '14', '山西省', '1402', '大同市', '140213', '平城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140214', '1402', '00,14,1402', '云冈区', '14', '山西省', '1402', '大同市', '140214', '云冈区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140215', '1402', '00,14,1402', '云州区', '14', '山西省', '1402', '大同市', '140215', '云州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140221', '1402', '00,14,1402', '阳高县', '14', '山西省', '1402', '大同市', '140221', '阳高县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140222', '1402', '00,14,1402', '天镇县', '14', '山西省', '1402', '大同市', '140222', '天镇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140223', '1402', '00,14,1402', '广灵县', '14', '山西省', '1402', '大同市', '140223', '广灵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140224', '1402', '00,14,1402', '灵丘县', '14', '山西省', '1402', '大同市', '140224', '灵丘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140225', '1402', '00,14,1402', '浑源县', '14', '山西省', '1402', '大同市', '140225', '浑源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140226', '1402', '00,14,1402', '左云县', '14', '山西省', '1402', '大同市', '140226', '左云县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1403', '14', '00,14', '阳泉市', '14', '山西省', '1403', '阳泉市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140302', '1403', '00,14,1403', '城区', '14', '山西省', '1403', '阳泉市', '140302', '城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140303', '1403', '00,14,1403', '矿区', '14', '山西省', '1403', '阳泉市', '140303', '矿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140311', '1403', '00,14,1403', '郊区', '14', '山西省', '1403', '阳泉市', '140311', '郊区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140321', '1403', '00,14,1403', '平定县', '14', '山西省', '1403', '阳泉市', '140321', '平定县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140322', '1403', '00,14,1403', '盂县', '14', '山西省', '1403', '阳泉市', '140322', '盂县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1404', '14', '00,14', '长治市', '14', '山西省', '1404', '长治市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140403', '1404', '00,14,1404', '潞州区', '14', '山西省', '1404', '长治市', '140403', '潞州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140404', '1404', '00,14,1404', '上党区', '14', '山西省', '1404', '长治市', '140404', '上党区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140405', '1404', '00,14,1404', '屯留区', '14', '山西省', '1404', '长治市', '140405', '屯留区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140406', '1404', '00,14,1404', '潞城区', '14', '山西省', '1404', '长治市', '140406', '潞城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140423', '1404', '00,14,1404', '襄垣县', '14', '山西省', '1404', '长治市', '140423', '襄垣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140425', '1404', '00,14,1404', '平顺县', '14', '山西省', '1404', '长治市', '140425', '平顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140426', '1404', '00,14,1404', '黎城县', '14', '山西省', '1404', '长治市', '140426', '黎城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140427', '1404', '00,14,1404', '壶关县', '14', '山西省', '1404', '长治市', '140427', '壶关县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140428', '1404', '00,14,1404', '长子县', '14', '山西省', '1404', '长治市', '140428', '长子县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140429', '1404', '00,14,1404', '武乡县', '14', '山西省', '1404', '长治市', '140429', '武乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140430', '1404', '00,14,1404', '沁县', '14', '山西省', '1404', '长治市', '140430', '沁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140431', '1404', '00,14,1404', '沁源县', '14', '山西省', '1404', '长治市', '140431', '沁源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1405', '14', '00,14', '晋城市', '14', '山西省', '1405', '晋城市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140502', '1405', '00,14,1405', '城区', '14', '山西省', '1405', '晋城市', '140502', '城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140521', '1405', '00,14,1405', '沁水县', '14', '山西省', '1405', '晋城市', '140521', '沁水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140522', '1405', '00,14,1405', '阳城县', '14', '山西省', '1405', '晋城市', '140522', '阳城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140524', '1405', '00,14,1405', '陵川县', '14', '山西省', '1405', '晋城市', '140524', '陵川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140525', '1405', '00,14,1405', '泽州县', '14', '山西省', '1405', '晋城市', '140525', '泽州县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140581', '1405', '00,14,1405', '高平市', '14', '山西省', '1405', '晋城市', '140581', '高平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1406', '14', '00,14', '朔州市', '14', '山西省', '1406', '朔州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140602', '1406', '00,14,1406', '朔城区', '14', '山西省', '1406', '朔州市', '140602', '朔城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140603', '1406', '00,14,1406', '平鲁区', '14', '山西省', '1406', '朔州市', '140603', '平鲁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140621', '1406', '00,14,1406', '山阴县', '14', '山西省', '1406', '朔州市', '140621', '山阴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140622', '1406', '00,14,1406', '应县', '14', '山西省', '1406', '朔州市', '140622', '应县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140623', '1406', '00,14,1406', '右玉县', '14', '山西省', '1406', '朔州市', '140623', '右玉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140681', '1406', '00,14,1406', '怀仁市', '14', '山西省', '1406', '朔州市', '140681', '怀仁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1407', '14', '00,14', '晋中市', '14', '山西省', '1407', '晋中市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140702', '1407', '00,14,1407', '榆次区', '14', '山西省', '1407', '晋中市', '140702', '榆次区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140703', '1407', '00,14,1407', '太谷区', '14', '山西省', '1407', '晋中市', '140703', '太谷区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140721', '1407', '00,14,1407', '榆社县', '14', '山西省', '1407', '晋中市', '140721', '榆社县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140722', '1407', '00,14,1407', '左权县', '14', '山西省', '1407', '晋中市', '140722', '左权县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140723', '1407', '00,14,1407', '和顺县', '14', '山西省', '1407', '晋中市', '140723', '和顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140724', '1407', '00,14,1407', '昔阳县', '14', '山西省', '1407', '晋中市', '140724', '昔阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140725', '1407', '00,14,1407', '寿阳县', '14', '山西省', '1407', '晋中市', '140725', '寿阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140727', '1407', '00,14,1407', '祁县', '14', '山西省', '1407', '晋中市', '140727', '祁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140728', '1407', '00,14,1407', '平遥县', '14', '山西省', '1407', '晋中市', '140728', '平遥县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140729', '1407', '00,14,1407', '灵石县', '14', '山西省', '1407', '晋中市', '140729', '灵石县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140781', '1407', '00,14,1407', '介休市', '14', '山西省', '1407', '晋中市', '140781', '介休市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1408', '14', '00,14', '运城市', '14', '山西省', '1408', '运城市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140802', '1408', '00,14,1408', '盐湖区', '14', '山西省', '1408', '运城市', '140802', '盐湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140821', '1408', '00,14,1408', '临猗县', '14', '山西省', '1408', '运城市', '140821', '临猗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140822', '1408', '00,14,1408', '万荣县', '14', '山西省', '1408', '运城市', '140822', '万荣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140823', '1408', '00,14,1408', '闻喜县', '14', '山西省', '1408', '运城市', '140823', '闻喜县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140824', '1408', '00,14,1408', '稷山县', '14', '山西省', '1408', '运城市', '140824', '稷山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140825', '1408', '00,14,1408', '新绛县', '14', '山西省', '1408', '运城市', '140825', '新绛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140826', '1408', '00,14,1408', '绛县', '14', '山西省', '1408', '运城市', '140826', '绛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140827', '1408', '00,14,1408', '垣曲县', '14', '山西省', '1408', '运城市', '140827', '垣曲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140828', '1408', '00,14,1408', '夏县', '14', '山西省', '1408', '运城市', '140828', '夏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140829', '1408', '00,14,1408', '平陆县', '14', '山西省', '1408', '运城市', '140829', '平陆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140830', '1408', '00,14,1408', '芮城县', '14', '山西省', '1408', '运城市', '140830', '芮城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140881', '1408', '00,14,1408', '永济市', '14', '山西省', '1408', '运城市', '140881', '永济市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140882', '1408', '00,14,1408', '河津市', '14', '山西省', '1408', '运城市', '140882', '河津市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1409', '14', '00,14', '忻州市', '14', '山西省', '1409', '忻州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('140902', '1409', '00,14,1409', '忻府区', '14', '山西省', '1409', '忻州市', '140902', '忻府区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140921', '1409', '00,14,1409', '定襄县', '14', '山西省', '1409', '忻州市', '140921', '定襄县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140922', '1409', '00,14,1409', '五台县', '14', '山西省', '1409', '忻州市', '140922', '五台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140923', '1409', '00,14,1409', '代县', '14', '山西省', '1409', '忻州市', '140923', '代县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140924', '1409', '00,14,1409', '繁峙县', '14', '山西省', '1409', '忻州市', '140924', '繁峙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140925', '1409', '00,14,1409', '宁武县', '14', '山西省', '1409', '忻州市', '140925', '宁武县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140926', '1409', '00,14,1409', '静乐县', '14', '山西省', '1409', '忻州市', '140926', '静乐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140927', '1409', '00,14,1409', '神池县', '14', '山西省', '1409', '忻州市', '140927', '神池县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140928', '1409', '00,14,1409', '五寨县', '14', '山西省', '1409', '忻州市', '140928', '五寨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140929', '1409', '00,14,1409', '岢岚县', '14', '山西省', '1409', '忻州市', '140929', '岢岚县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140930', '1409', '00,14,1409', '河曲县', '14', '山西省', '1409', '忻州市', '140930', '河曲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140931', '1409', '00,14,1409', '保德县', '14', '山西省', '1409', '忻州市', '140931', '保德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140932', '1409', '00,14,1409', '偏关县', '14', '山西省', '1409', '忻州市', '140932', '偏关县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('140981', '1409', '00,14,1409', '原平市', '14', '山西省', '1409', '忻州市', '140981', '原平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1410', '14', '00,14', '临汾市', '14', '山西省', '1410', '临汾市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('141002', '1410', '00,14,1410', '尧都区', '14', '山西省', '1410', '临汾市', '141002', '尧都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141021', '1410', '00,14,1410', '曲沃县', '14', '山西省', '1410', '临汾市', '141021', '曲沃县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141022', '1410', '00,14,1410', '翼城县', '14', '山西省', '1410', '临汾市', '141022', '翼城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141023', '1410', '00,14,1410', '襄汾县', '14', '山西省', '1410', '临汾市', '141023', '襄汾县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141024', '1410', '00,14,1410', '洪洞县', '14', '山西省', '1410', '临汾市', '141024', '洪洞县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141025', '1410', '00,14,1410', '古县', '14', '山西省', '1410', '临汾市', '141025', '古县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141026', '1410', '00,14,1410', '安泽县', '14', '山西省', '1410', '临汾市', '141026', '安泽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141027', '1410', '00,14,1410', '浮山县', '14', '山西省', '1410', '临汾市', '141027', '浮山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141028', '1410', '00,14,1410', '吉县', '14', '山西省', '1410', '临汾市', '141028', '吉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141029', '1410', '00,14,1410', '乡宁县', '14', '山西省', '1410', '临汾市', '141029', '乡宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141030', '1410', '00,14,1410', '大宁县', '14', '山西省', '1410', '临汾市', '141030', '大宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141031', '1410', '00,14,1410', '隰县', '14', '山西省', '1410', '临汾市', '141031', '隰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141032', '1410', '00,14,1410', '永和县', '14', '山西省', '1410', '临汾市', '141032', '永和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141033', '1410', '00,14,1410', '蒲县', '14', '山西省', '1410', '临汾市', '141033', '蒲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141034', '1410', '00,14,1410', '汾西县', '14', '山西省', '1410', '临汾市', '141034', '汾西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141081', '1410', '00,14,1410', '侯马市', '14', '山西省', '1410', '临汾市', '141081', '侯马市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141082', '1410', '00,14,1410', '霍州市', '14', '山西省', '1410', '临汾市', '141082', '霍州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1411', '14', '00,14', '吕梁市', '14', '山西省', '1411', '吕梁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('141102', '1411', '00,14,1411', '离石区', '14', '山西省', '1411', '吕梁市', '141102', '离石区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141121', '1411', '00,14,1411', '文水县', '14', '山西省', '1411', '吕梁市', '141121', '文水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141122', '1411', '00,14,1411', '交城县', '14', '山西省', '1411', '吕梁市', '141122', '交城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141123', '1411', '00,14,1411', '兴县', '14', '山西省', '1411', '吕梁市', '141123', '兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141124', '1411', '00,14,1411', '临县', '14', '山西省', '1411', '吕梁市', '141124', '临县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141125', '1411', '00,14,1411', '柳林县', '14', '山西省', '1411', '吕梁市', '141125', '柳林县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141126', '1411', '00,14,1411', '石楼县', '14', '山西省', '1411', '吕梁市', '141126', '石楼县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141127', '1411', '00,14,1411', '岚县', '14', '山西省', '1411', '吕梁市', '141127', '岚县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141128', '1411', '00,14,1411', '方山县', '14', '山西省', '1411', '吕梁市', '141128', '方山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141129', '1411', '00,14,1411', '中阳县', '14', '山西省', '1411', '吕梁市', '141129', '中阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141130', '1411', '00,14,1411', '交口县', '14', '山西省', '1411', '吕梁市', '141130', '交口县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141181', '1411', '00,14,1411', '孝义市', '14', '山西省', '1411', '吕梁市', '141181', '孝义市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('141182', '1411', '00,14,1411', '汾阳市', '14', '山西省', '1411', '吕梁市', '141182', '汾阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('15', '00', '00', '内蒙古自治区', '15', '内蒙古自治区', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('1501', '15', '00,15', '呼和浩特市', '15', '内蒙古自治区', '1501', '呼和浩特市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150102', '1501', '00,15,1501', '新城区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150102', '新城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150103', '1501', '00,15,1501', '回民区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150103', '回民区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150104', '1501', '00,15,1501', '玉泉区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150104', '玉泉区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150105', '1501', '00,15,1501', '赛罕区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150105', '赛罕区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150121', '1501', '00,15,1501', '土默特左旗', '15', '内蒙古自治区', '1501', '呼和浩特市', '150121', '土默特左旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150122', '1501', '00,15,1501', '托克托县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150122', '托克托县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150123', '1501', '00,15,1501', '和林格尔县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150123', '和林格尔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150124', '1501', '00,15,1501', '清水河县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150124', '清水河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150125', '1501', '00,15,1501', '武川县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150125', '武川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1502', '15', '00,15', '包头市', '15', '内蒙古自治区', '1502', '包头市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150202', '1502', '00,15,1502', '东河区', '15', '内蒙古自治区', '1502', '包头市', '150202', '东河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150203', '1502', '00,15,1502', '昆都仑区', '15', '内蒙古自治区', '1502', '包头市', '150203', '昆都仑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150204', '1502', '00,15,1502', '青山区', '15', '内蒙古自治区', '1502', '包头市', '150204', '青山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150205', '1502', '00,15,1502', '石拐区', '15', '内蒙古自治区', '1502', '包头市', '150205', '石拐区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150206', '1502', '00,15,1502', '白云鄂博矿区', '15', '内蒙古自治区', '1502', '包头市', '150206', '白云鄂博矿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150207', '1502', '00,15,1502', '九原区', '15', '内蒙古自治区', '1502', '包头市', '150207', '九原区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150221', '1502', '00,15,1502', '土默特右旗', '15', '内蒙古自治区', '1502', '包头市', '150221', '土默特右旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150222', '1502', '00,15,1502', '固阳县', '15', '内蒙古自治区', '1502', '包头市', '150222', '固阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150223', '1502', '00,15,1502', '达尔罕茂明安联合旗', '15', '内蒙古自治区', '1502', '包头市', '150223', '达尔罕茂明安联合旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1503', '15', '00,15', '乌海市', '15', '内蒙古自治区', '1503', '乌海市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150302', '1503', '00,15,1503', '海勃湾区', '15', '内蒙古自治区', '1503', '乌海市', '150302', '海勃湾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150303', '1503', '00,15,1503', '海南区', '15', '内蒙古自治区', '1503', '乌海市', '150303', '海南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150304', '1503', '00,15,1503', '乌达区', '15', '内蒙古自治区', '1503', '乌海市', '150304', '乌达区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1504', '15', '00,15', '赤峰市', '15', '内蒙古自治区', '1504', '赤峰市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150402', '1504', '00,15,1504', '红山区', '15', '内蒙古自治区', '1504', '赤峰市', '150402', '红山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150403', '1504', '00,15,1504', '元宝山区', '15', '内蒙古自治区', '1504', '赤峰市', '150403', '元宝山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150404', '1504', '00,15,1504', '松山区', '15', '内蒙古自治区', '1504', '赤峰市', '150404', '松山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150421', '1504', '00,15,1504', '阿鲁科尔沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150421', '阿鲁科尔沁旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150422', '1504', '00,15,1504', '巴林左旗', '15', '内蒙古自治区', '1504', '赤峰市', '150422', '巴林左旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150423', '1504', '00,15,1504', '巴林右旗', '15', '内蒙古自治区', '1504', '赤峰市', '150423', '巴林右旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150424', '1504', '00,15,1504', '林西县', '15', '内蒙古自治区', '1504', '赤峰市', '150424', '林西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150425', '1504', '00,15,1504', '克什克腾旗', '15', '内蒙古自治区', '1504', '赤峰市', '150425', '克什克腾旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150426', '1504', '00,15,1504', '翁牛特旗', '15', '内蒙古自治区', '1504', '赤峰市', '150426', '翁牛特旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150428', '1504', '00,15,1504', '喀喇沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150428', '喀喇沁旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150429', '1504', '00,15,1504', '宁城县', '15', '内蒙古自治区', '1504', '赤峰市', '150429', '宁城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150430', '1504', '00,15,1504', '敖汉旗', '15', '内蒙古自治区', '1504', '赤峰市', '150430', '敖汉旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1505', '15', '00,15', '通辽市', '15', '内蒙古自治区', '1505', '通辽市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150502', '1505', '00,15,1505', '科尔沁区', '15', '内蒙古自治区', '1505', '通辽市', '150502', '科尔沁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150521', '1505', '00,15,1505', '科尔沁左翼中旗', '15', '内蒙古自治区', '1505', '通辽市', '150521', '科尔沁左翼中旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150522', '1505', '00,15,1505', '科尔沁左翼后旗', '15', '内蒙古自治区', '1505', '通辽市', '150522', '科尔沁左翼后旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150523', '1505', '00,15,1505', '开鲁县', '15', '内蒙古自治区', '1505', '通辽市', '150523', '开鲁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150524', '1505', '00,15,1505', '库伦旗', '15', '内蒙古自治区', '1505', '通辽市', '150524', '库伦旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150525', '1505', '00,15,1505', '奈曼旗', '15', '内蒙古自治区', '1505', '通辽市', '150525', '奈曼旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150526', '1505', '00,15,1505', '扎鲁特旗', '15', '内蒙古自治区', '1505', '通辽市', '150526', '扎鲁特旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150581', '1505', '00,15,1505', '霍林郭勒市', '15', '内蒙古自治区', '1505', '通辽市', '150581', '霍林郭勒市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1506', '15', '00,15', '鄂尔多斯市', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150602', '1506', '00,15,1506', '东胜区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150602', '东胜区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150603', '1506', '00,15,1506', '康巴什区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150603', '康巴什区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150621', '1506', '00,15,1506', '达拉特旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150621', '达拉特旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150622', '1506', '00,15,1506', '准格尔旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150622', '准格尔旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150623', '1506', '00,15,1506', '鄂托克前旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150623', '鄂托克前旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150624', '1506', '00,15,1506', '鄂托克旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150624', '鄂托克旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150625', '1506', '00,15,1506', '杭锦旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150625', '杭锦旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150626', '1506', '00,15,1506', '乌审旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150626', '乌审旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150627', '1506', '00,15,1506', '伊金霍洛旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150627', '伊金霍洛旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1507', '15', '00,15', '呼伦贝尔市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150702', '1507', '00,15,1507', '海拉尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150702', '海拉尔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150703', '1507', '00,15,1507', '扎赉诺尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150703', '扎赉诺尔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150721', '1507', '00,15,1507', '阿荣旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150721', '阿荣旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150722', '1507', '00,15,1507', '莫力达瓦达斡尔族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150722', '莫力达瓦达斡尔族自治旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150723', '1507', '00,15,1507', '鄂伦春自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150723', '鄂伦春自治旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150724', '1507', '00,15,1507', '鄂温克族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150724', '鄂温克族自治旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150725', '1507', '00,15,1507', '陈巴尔虎旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150725', '陈巴尔虎旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150726', '1507', '00,15,1507', '新巴尔虎左旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150726', '新巴尔虎左旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150727', '1507', '00,15,1507', '新巴尔虎右旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150727', '新巴尔虎右旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150781', '1507', '00,15,1507', '满洲里市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150781', '满洲里市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150782', '1507', '00,15,1507', '牙克石市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150782', '牙克石市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150783', '1507', '00,15,1507', '扎兰屯市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150783', '扎兰屯市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150784', '1507', '00,15,1507', '额尔古纳市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150784', '额尔古纳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150785', '1507', '00,15,1507', '根河市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150785', '根河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1508', '15', '00,15', '巴彦淖尔市', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150802', '1508', '00,15,1508', '临河区', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150802', '临河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150821', '1508', '00,15,1508', '五原县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150821', '五原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150822', '1508', '00,15,1508', '磴口县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150822', '磴口县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150823', '1508', '00,15,1508', '乌拉特前旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150823', '乌拉特前旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150824', '1508', '00,15,1508', '乌拉特中旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150824', '乌拉特中旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150825', '1508', '00,15,1508', '乌拉特后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150825', '乌拉特后旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150826', '1508', '00,15,1508', '杭锦后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150826', '杭锦后旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1509', '15', '00,15', '乌兰察布市', '15', '内蒙古自治区', '1509', '乌兰察布市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('150902', '1509', '00,15,1509', '集宁区', '15', '内蒙古自治区', '1509', '乌兰察布市', '150902', '集宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150921', '1509', '00,15,1509', '卓资县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150921', '卓资县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150922', '1509', '00,15,1509', '化德县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150922', '化德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150923', '1509', '00,15,1509', '商都县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150923', '商都县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150924', '1509', '00,15,1509', '兴和县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150924', '兴和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150925', '1509', '00,15,1509', '凉城县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150925', '凉城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150926', '1509', '00,15,1509', '察哈尔右翼前旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150926', '察哈尔右翼前旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150927', '1509', '00,15,1509', '察哈尔右翼中旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150927', '察哈尔右翼中旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150928', '1509', '00,15,1509', '察哈尔右翼后旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150928', '察哈尔右翼后旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150929', '1509', '00,15,1509', '四子王旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150929', '四子王旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('150981', '1509', '00,15,1509', '丰镇市', '15', '内蒙古自治区', '1509', '乌兰察布市', '150981', '丰镇市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1522', '15', '00,15', '兴安盟', '15', '内蒙古自治区', '1522', '兴安盟', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('152201', '1522', '00,15,1522', '乌兰浩特市', '15', '内蒙古自治区', '1522', '兴安盟', '152201', '乌兰浩特市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152202', '1522', '00,15,1522', '阿尔山市', '15', '内蒙古自治区', '1522', '兴安盟', '152202', '阿尔山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152221', '1522', '00,15,1522', '科尔沁右翼前旗', '15', '内蒙古自治区', '1522', '兴安盟', '152221', '科尔沁右翼前旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152222', '1522', '00,15,1522', '科尔沁右翼中旗', '15', '内蒙古自治区', '1522', '兴安盟', '152222', '科尔沁右翼中旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152223', '1522', '00,15,1522', '扎赉特旗', '15', '内蒙古自治区', '1522', '兴安盟', '152223', '扎赉特旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152224', '1522', '00,15,1522', '突泉县', '15', '内蒙古自治区', '1522', '兴安盟', '152224', '突泉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1525', '15', '00,15', '锡林郭勒盟', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('211421', '2114', '00,21,2114', '绥中县', '21', '辽宁省', '2114', '葫芦岛市', '211421', '绥中县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152501', '1525', '00,15,1525', '二连浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152501', '二连浩特市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152502', '1525', '00,15,1525', '锡林浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152502', '锡林浩特市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152522', '1525', '00,15,1525', '阿巴嘎旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152522', '阿巴嘎旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152523', '1525', '00,15,1525', '苏尼特左旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152523', '苏尼特左旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152524', '1525', '00,15,1525', '苏尼特右旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152524', '苏尼特右旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152525', '1525', '00,15,1525', '东乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152525', '东乌珠穆沁旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152526', '1525', '00,15,1525', '西乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152526', '西乌珠穆沁旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152527', '1525', '00,15,1525', '太仆寺旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152527', '太仆寺旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152528', '1525', '00,15,1525', '镶黄旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152528', '镶黄旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152529', '1525', '00,15,1525', '正镶白旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152529', '正镶白旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152530', '1525', '00,15,1525', '正蓝旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152530', '正蓝旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152531', '1525', '00,15,1525', '多伦县', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152531', '多伦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('1529', '15', '00,15', '阿拉善盟', '15', '内蒙古自治区', '1529', '阿拉善盟', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('152921', '1529', '00,15,1529', '阿拉善左旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152921', '阿拉善左旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152922', '1529', '00,15,1529', '阿拉善右旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152922', '阿拉善右旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('152923', '1529', '00,15,1529', '额济纳旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152923', '额济纳旗', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('21', '00', '00', '辽宁省', '21', '辽宁省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('2101', '21', '00,21', '沈阳市', '21', '辽宁省', '2101', '沈阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210102', '2101', '00,21,2101', '和平区', '21', '辽宁省', '2101', '沈阳市', '210102', '和平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210103', '2101', '00,21,2101', '沈河区', '21', '辽宁省', '2101', '沈阳市', '210103', '沈河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210104', '2101', '00,21,2101', '大东区', '21', '辽宁省', '2101', '沈阳市', '210104', '大东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210105', '2101', '00,21,2101', '皇姑区', '21', '辽宁省', '2101', '沈阳市', '210105', '皇姑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210106', '2101', '00,21,2101', '铁西区', '21', '辽宁省', '2101', '沈阳市', '210106', '铁西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210111', '2101', '00,21,2101', '苏家屯区', '21', '辽宁省', '2101', '沈阳市', '210111', '苏家屯区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210112', '2101', '00,21,2101', '浑南区', '21', '辽宁省', '2101', '沈阳市', '210112', '浑南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210113', '2101', '00,21,2101', '沈北新区', '21', '辽宁省', '2101', '沈阳市', '210113', '沈北新区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210114', '2101', '00,21,2101', '于洪区', '21', '辽宁省', '2101', '沈阳市', '210114', '于洪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210115', '2101', '00,21,2101', '辽中区', '21', '辽宁省', '2101', '沈阳市', '210115', '辽中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210123', '2101', '00,21,2101', '康平县', '21', '辽宁省', '2101', '沈阳市', '210123', '康平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210124', '2101', '00,21,2101', '法库县', '21', '辽宁省', '2101', '沈阳市', '210124', '法库县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210181', '2101', '00,21,2101', '新民市', '21', '辽宁省', '2101', '沈阳市', '210181', '新民市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2102', '21', '00,21', '大连市', '21', '辽宁省', '2102', '大连市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210202', '2102', '00,21,2102', '中山区', '21', '辽宁省', '2102', '大连市', '210202', '中山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210203', '2102', '00,21,2102', '西岗区', '21', '辽宁省', '2102', '大连市', '210203', '西岗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210204', '2102', '00,21,2102', '沙河口区', '21', '辽宁省', '2102', '大连市', '210204', '沙河口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210211', '2102', '00,21,2102', '甘井子区', '21', '辽宁省', '2102', '大连市', '210211', '甘井子区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210212', '2102', '00,21,2102', '旅顺口区', '21', '辽宁省', '2102', '大连市', '210212', '旅顺口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210213', '2102', '00,21,2102', '金州区', '21', '辽宁省', '2102', '大连市', '210213', '金州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210214', '2102', '00,21,2102', '普兰店区', '21', '辽宁省', '2102', '大连市', '210214', '普兰店区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210224', '2102', '00,21,2102', '长海县', '21', '辽宁省', '2102', '大连市', '210224', '长海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210281', '2102', '00,21,2102', '瓦房店市', '21', '辽宁省', '2102', '大连市', '210281', '瓦房店市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210283', '2102', '00,21,2102', '庄河市', '21', '辽宁省', '2102', '大连市', '210283', '庄河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2103', '21', '00,21', '鞍山市', '21', '辽宁省', '2103', '鞍山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210302', '2103', '00,21,2103', '铁东区', '21', '辽宁省', '2103', '鞍山市', '210302', '铁东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210303', '2103', '00,21,2103', '铁西区', '21', '辽宁省', '2103', '鞍山市', '210303', '铁西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210304', '2103', '00,21,2103', '立山区', '21', '辽宁省', '2103', '鞍山市', '210304', '立山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210311', '2103', '00,21,2103', '千山区', '21', '辽宁省', '2103', '鞍山市', '210311', '千山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210321', '2103', '00,21,2103', '台安县', '21', '辽宁省', '2103', '鞍山市', '210321', '台安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210323', '2103', '00,21,2103', '岫岩满族自治县', '21', '辽宁省', '2103', '鞍山市', '210323', '岫岩满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210381', '2103', '00,21,2103', '海城市', '21', '辽宁省', '2103', '鞍山市', '210381', '海城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2104', '21', '00,21', '抚顺市', '21', '辽宁省', '2104', '抚顺市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210402', '2104', '00,21,2104', '新抚区', '21', '辽宁省', '2104', '抚顺市', '210402', '新抚区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210403', '2104', '00,21,2104', '东洲区', '21', '辽宁省', '2104', '抚顺市', '210403', '东洲区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210404', '2104', '00,21,2104', '望花区', '21', '辽宁省', '2104', '抚顺市', '210404', '望花区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210411', '2104', '00,21,2104', '顺城区', '21', '辽宁省', '2104', '抚顺市', '210411', '顺城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210421', '2104', '00,21,2104', '抚顺县', '21', '辽宁省', '2104', '抚顺市', '210421', '抚顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210422', '2104', '00,21,2104', '新宾满族自治县', '21', '辽宁省', '2104', '抚顺市', '210422', '新宾满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210423', '2104', '00,21,2104', '清原满族自治县', '21', '辽宁省', '2104', '抚顺市', '210423', '清原满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2105', '21', '00,21', '本溪市', '21', '辽宁省', '2105', '本溪市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210502', '2105', '00,21,2105', '平山区', '21', '辽宁省', '2105', '本溪市', '210502', '平山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210503', '2105', '00,21,2105', '溪湖区', '21', '辽宁省', '2105', '本溪市', '210503', '溪湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210504', '2105', '00,21,2105', '明山区', '21', '辽宁省', '2105', '本溪市', '210504', '明山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210505', '2105', '00,21,2105', '南芬区', '21', '辽宁省', '2105', '本溪市', '210505', '南芬区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210521', '2105', '00,21,2105', '本溪满族自治县', '21', '辽宁省', '2105', '本溪市', '210521', '本溪满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210522', '2105', '00,21,2105', '桓仁满族自治县', '21', '辽宁省', '2105', '本溪市', '210522', '桓仁满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2106', '21', '00,21', '丹东市', '21', '辽宁省', '2106', '丹东市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210602', '2106', '00,21,2106', '元宝区', '21', '辽宁省', '2106', '丹东市', '210602', '元宝区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210603', '2106', '00,21,2106', '振兴区', '21', '辽宁省', '2106', '丹东市', '210603', '振兴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210604', '2106', '00,21,2106', '振安区', '21', '辽宁省', '2106', '丹东市', '210604', '振安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210624', '2106', '00,21,2106', '宽甸满族自治县', '21', '辽宁省', '2106', '丹东市', '210624', '宽甸满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210681', '2106', '00,21,2106', '东港市', '21', '辽宁省', '2106', '丹东市', '210681', '东港市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210682', '2106', '00,21,2106', '凤城市', '21', '辽宁省', '2106', '丹东市', '210682', '凤城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2107', '21', '00,21', '锦州市', '21', '辽宁省', '2107', '锦州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210702', '2107', '00,21,2107', '古塔区', '21', '辽宁省', '2107', '锦州市', '210702', '古塔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210703', '2107', '00,21,2107', '凌河区', '21', '辽宁省', '2107', '锦州市', '210703', '凌河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210711', '2107', '00,21,2107', '太和区', '21', '辽宁省', '2107', '锦州市', '210711', '太和区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210726', '2107', '00,21,2107', '黑山县', '21', '辽宁省', '2107', '锦州市', '210726', '黑山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210727', '2107', '00,21,2107', '义县', '21', '辽宁省', '2107', '锦州市', '210727', '义县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210781', '2107', '00,21,2107', '凌海市', '21', '辽宁省', '2107', '锦州市', '210781', '凌海市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210782', '2107', '00,21,2107', '北镇市', '21', '辽宁省', '2107', '锦州市', '210782', '北镇市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2108', '21', '00,21', '营口市', '21', '辽宁省', '2108', '营口市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210802', '2108', '00,21,2108', '站前区', '21', '辽宁省', '2108', '营口市', '210802', '站前区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210803', '2108', '00,21,2108', '西市区', '21', '辽宁省', '2108', '营口市', '210803', '西市区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210804', '2108', '00,21,2108', '鲅鱼圈区', '21', '辽宁省', '2108', '营口市', '210804', '鲅鱼圈区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210811', '2108', '00,21,2108', '老边区', '21', '辽宁省', '2108', '营口市', '210811', '老边区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210881', '2108', '00,21,2108', '盖州市', '21', '辽宁省', '2108', '营口市', '210881', '盖州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210882', '2108', '00,21,2108', '大石桥市', '21', '辽宁省', '2108', '营口市', '210882', '大石桥市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2109', '21', '00,21', '阜新市', '21', '辽宁省', '2109', '阜新市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('210902', '2109', '00,21,2109', '海州区', '21', '辽宁省', '2109', '阜新市', '210902', '海州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210903', '2109', '00,21,2109', '新邱区', '21', '辽宁省', '2109', '阜新市', '210903', '新邱区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210904', '2109', '00,21,2109', '太平区', '21', '辽宁省', '2109', '阜新市', '210904', '太平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210905', '2109', '00,21,2109', '清河门区', '21', '辽宁省', '2109', '阜新市', '210905', '清河门区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210911', '2109', '00,21,2109', '细河区', '21', '辽宁省', '2109', '阜新市', '210911', '细河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210921', '2109', '00,21,2109', '阜新蒙古族自治县', '21', '辽宁省', '2109', '阜新市', '210921', '阜新蒙古族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('210922', '2109', '00,21,2109', '彰武县', '21', '辽宁省', '2109', '阜新市', '210922', '彰武县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2110', '21', '00,21', '辽阳市', '21', '辽宁省', '2110', '辽阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('211002', '2110', '00,21,2110', '白塔区', '21', '辽宁省', '2110', '辽阳市', '211002', '白塔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211003', '2110', '00,21,2110', '文圣区', '21', '辽宁省', '2110', '辽阳市', '211003', '文圣区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211004', '2110', '00,21,2110', '宏伟区', '21', '辽宁省', '2110', '辽阳市', '211004', '宏伟区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211005', '2110', '00,21,2110', '弓长岭区', '21', '辽宁省', '2110', '辽阳市', '211005', '弓长岭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211011', '2110', '00,21,2110', '太子河区', '21', '辽宁省', '2110', '辽阳市', '211011', '太子河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211021', '2110', '00,21,2110', '辽阳县', '21', '辽宁省', '2110', '辽阳市', '211021', '辽阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211081', '2110', '00,21,2110', '灯塔市', '21', '辽宁省', '2110', '辽阳市', '211081', '灯塔市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2111', '21', '00,21', '盘锦市', '21', '辽宁省', '2111', '盘锦市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('211102', '2111', '00,21,2111', '双台子区', '21', '辽宁省', '2111', '盘锦市', '211102', '双台子区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211103', '2111', '00,21,2111', '兴隆台区', '21', '辽宁省', '2111', '盘锦市', '211103', '兴隆台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211104', '2111', '00,21,2111', '大洼区', '21', '辽宁省', '2111', '盘锦市', '211104', '大洼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211122', '2111', '00,21,2111', '盘山县', '21', '辽宁省', '2111', '盘锦市', '211122', '盘山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2112', '21', '00,21', '铁岭市', '21', '辽宁省', '2112', '铁岭市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('211202', '2112', '00,21,2112', '银州区', '21', '辽宁省', '2112', '铁岭市', '211202', '银州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211204', '2112', '00,21,2112', '清河区', '21', '辽宁省', '2112', '铁岭市', '211204', '清河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211221', '2112', '00,21,2112', '铁岭县', '21', '辽宁省', '2112', '铁岭市', '211221', '铁岭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211223', '2112', '00,21,2112', '西丰县', '21', '辽宁省', '2112', '铁岭市', '211223', '西丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211224', '2112', '00,21,2112', '昌图县', '21', '辽宁省', '2112', '铁岭市', '211224', '昌图县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211281', '2112', '00,21,2112', '调兵山市', '21', '辽宁省', '2112', '铁岭市', '211281', '调兵山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211282', '2112', '00,21,2112', '开原市', '21', '辽宁省', '2112', '铁岭市', '211282', '开原市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2113', '21', '00,21', '朝阳市', '21', '辽宁省', '2113', '朝阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('211302', '2113', '00,21,2113', '双塔区', '21', '辽宁省', '2113', '朝阳市', '211302', '双塔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211303', '2113', '00,21,2113', '龙城区', '21', '辽宁省', '2113', '朝阳市', '211303', '龙城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211321', '2113', '00,21,2113', '朝阳县', '21', '辽宁省', '2113', '朝阳市', '211321', '朝阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211322', '2113', '00,21,2113', '建平县', '21', '辽宁省', '2113', '朝阳市', '211322', '建平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211324', '2113', '00,21,2113', '喀喇沁左翼蒙古族自治县', '21', '辽宁省', '2113', '朝阳市', '211324', '喀喇沁左翼蒙古族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211381', '2113', '00,21,2113', '北票市', '21', '辽宁省', '2113', '朝阳市', '211381', '北票市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211382', '2113', '00,21,2113', '凌源市', '21', '辽宁省', '2113', '朝阳市', '211382', '凌源市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2114', '21', '00,21', '葫芦岛市', '21', '辽宁省', '2114', '葫芦岛市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('211402', '2114', '00,21,2114', '连山区', '21', '辽宁省', '2114', '葫芦岛市', '211402', '连山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211403', '2114', '00,21,2114', '龙港区', '21', '辽宁省', '2114', '葫芦岛市', '211403', '龙港区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211404', '2114', '00,21,2114', '南票区', '21', '辽宁省', '2114', '葫芦岛市', '211404', '南票区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211422', '2114', '00,21,2114', '建昌县', '21', '辽宁省', '2114', '葫芦岛市', '211422', '建昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('211481', '2114', '00,21,2114', '兴城市', '21', '辽宁省', '2114', '葫芦岛市', '211481', '兴城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('22', '00', '00', '吉林省', '22', '吉林省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('2201', '22', '00,22', '长春市', '22', '吉林省', '2201', '长春市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220102', '2201', '00,22,2201', '南关区', '22', '吉林省', '2201', '长春市', '220102', '南关区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220103', '2201', '00,22,2201', '宽城区', '22', '吉林省', '2201', '长春市', '220103', '宽城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220104', '2201', '00,22,2201', '朝阳区', '22', '吉林省', '2201', '长春市', '220104', '朝阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220105', '2201', '00,22,2201', '二道区', '22', '吉林省', '2201', '长春市', '220105', '二道区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220106', '2201', '00,22,2201', '绿园区', '22', '吉林省', '2201', '长春市', '220106', '绿园区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220112', '2201', '00,22,2201', '双阳区', '22', '吉林省', '2201', '长春市', '220112', '双阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220113', '2201', '00,22,2201', '九台区', '22', '吉林省', '2201', '长春市', '220113', '九台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220122', '2201', '00,22,2201', '农安县', '22', '吉林省', '2201', '长春市', '220122', '农安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220182', '2201', '00,22,2201', '榆树市', '22', '吉林省', '2201', '长春市', '220182', '榆树市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220183', '2201', '00,22,2201', '德惠市', '22', '吉林省', '2201', '长春市', '220183', '德惠市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2202', '22', '00,22', '吉林市', '22', '吉林省', '2202', '吉林市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220202', '2202', '00,22,2202', '昌邑区', '22', '吉林省', '2202', '吉林市', '220202', '昌邑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220203', '2202', '00,22,2202', '龙潭区', '22', '吉林省', '2202', '吉林市', '220203', '龙潭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220204', '2202', '00,22,2202', '船营区', '22', '吉林省', '2202', '吉林市', '220204', '船营区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220211', '2202', '00,22,2202', '丰满区', '22', '吉林省', '2202', '吉林市', '220211', '丰满区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220221', '2202', '00,22,2202', '永吉县', '22', '吉林省', '2202', '吉林市', '220221', '永吉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220281', '2202', '00,22,2202', '蛟河市', '22', '吉林省', '2202', '吉林市', '220281', '蛟河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220282', '2202', '00,22,2202', '桦甸市', '22', '吉林省', '2202', '吉林市', '220282', '桦甸市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220283', '2202', '00,22,2202', '舒兰市', '22', '吉林省', '2202', '吉林市', '220283', '舒兰市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220284', '2202', '00,22,2202', '磐石市', '22', '吉林省', '2202', '吉林市', '220284', '磐石市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2203', '22', '00,22', '四平市', '22', '吉林省', '2203', '四平市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220302', '2203', '00,22,2203', '铁西区', '22', '吉林省', '2203', '四平市', '220302', '铁西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220303', '2203', '00,22,2203', '铁东区', '22', '吉林省', '2203', '四平市', '220303', '铁东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220322', '2203', '00,22,2203', '梨树县', '22', '吉林省', '2203', '四平市', '220322', '梨树县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220323', '2203', '00,22,2203', '伊通满族自治县', '22', '吉林省', '2203', '四平市', '220323', '伊通满族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220381', '2203', '00,22,2203', '公主岭市', '22', '吉林省', '2203', '四平市', '220381', '公主岭市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220382', '2203', '00,22,2203', '双辽市', '22', '吉林省', '2203', '四平市', '220382', '双辽市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2204', '22', '00,22', '辽源市', '22', '吉林省', '2204', '辽源市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220402', '2204', '00,22,2204', '龙山区', '22', '吉林省', '2204', '辽源市', '220402', '龙山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220403', '2204', '00,22,2204', '西安区', '22', '吉林省', '2204', '辽源市', '220403', '西安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220421', '2204', '00,22,2204', '东丰县', '22', '吉林省', '2204', '辽源市', '220421', '东丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220422', '2204', '00,22,2204', '东辽县', '22', '吉林省', '2204', '辽源市', '220422', '东辽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2205', '22', '00,22', '通化市', '22', '吉林省', '2205', '通化市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220502', '2205', '00,22,2205', '东昌区', '22', '吉林省', '2205', '通化市', '220502', '东昌区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220503', '2205', '00,22,2205', '二道江区', '22', '吉林省', '2205', '通化市', '220503', '二道江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220521', '2205', '00,22,2205', '通化县', '22', '吉林省', '2205', '通化市', '220521', '通化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220523', '2205', '00,22,2205', '辉南县', '22', '吉林省', '2205', '通化市', '220523', '辉南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220524', '2205', '00,22,2205', '柳河县', '22', '吉林省', '2205', '通化市', '220524', '柳河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220581', '2205', '00,22,2205', '梅河口市', '22', '吉林省', '2205', '通化市', '220581', '梅河口市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220582', '2205', '00,22,2205', '集安市', '22', '吉林省', '2205', '通化市', '220582', '集安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2206', '22', '00,22', '白山市', '22', '吉林省', '2206', '白山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220602', '2206', '00,22,2206', '浑江区', '22', '吉林省', '2206', '白山市', '220602', '浑江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220605', '2206', '00,22,2206', '江源区', '22', '吉林省', '2206', '白山市', '220605', '江源区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220621', '2206', '00,22,2206', '抚松县', '22', '吉林省', '2206', '白山市', '220621', '抚松县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220622', '2206', '00,22,2206', '靖宇县', '22', '吉林省', '2206', '白山市', '220622', '靖宇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220623', '2206', '00,22,2206', '长白朝鲜族自治县', '22', '吉林省', '2206', '白山市', '220623', '长白朝鲜族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220681', '2206', '00,22,2206', '临江市', '22', '吉林省', '2206', '白山市', '220681', '临江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2207', '22', '00,22', '松原市', '22', '吉林省', '2207', '松原市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220702', '2207', '00,22,2207', '宁江区', '22', '吉林省', '2207', '松原市', '220702', '宁江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220721', '2207', '00,22,2207', '前郭尔罗斯蒙古族自治县', '22', '吉林省', '2207', '松原市', '220721', '前郭尔罗斯蒙古族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220722', '2207', '00,22,2207', '长岭县', '22', '吉林省', '2207', '松原市', '220722', '长岭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220723', '2207', '00,22,2207', '乾安县', '22', '吉林省', '2207', '松原市', '220723', '乾安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220781', '2207', '00,22,2207', '扶余市', '22', '吉林省', '2207', '松原市', '220781', '扶余市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2208', '22', '00,22', '白城市', '22', '吉林省', '2208', '白城市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('220802', '2208', '00,22,2208', '洮北区', '22', '吉林省', '2208', '白城市', '220802', '洮北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220821', '2208', '00,22,2208', '镇赉县', '22', '吉林省', '2208', '白城市', '220821', '镇赉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220822', '2208', '00,22,2208', '通榆县', '22', '吉林省', '2208', '白城市', '220822', '通榆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220881', '2208', '00,22,2208', '洮南市', '22', '吉林省', '2208', '白城市', '220881', '洮南市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('220882', '2208', '00,22,2208', '大安市', '22', '吉林省', '2208', '白城市', '220882', '大安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2224', '22', '00,22', '延边朝鲜族自治州', '22', '吉林省', '2224', '延边朝鲜族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('222401', '2224', '00,22,2224', '延吉市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222401', '延吉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('222402', '2224', '00,22,2224', '图们市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222402', '图们市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('222403', '2224', '00,22,2224', '敦化市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222403', '敦化市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('222404', '2224', '00,22,2224', '珲春市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222404', '珲春市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('222405', '2224', '00,22,2224', '龙井市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222405', '龙井市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('222406', '2224', '00,22,2224', '和龙市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222406', '和龙市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('222424', '2224', '00,22,2224', '汪清县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222424', '汪清县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('222426', '2224', '00,22,2224', '安图县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222426', '安图县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('23', '00', '00', '黑龙江省', '23', '黑龙江省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('2301', '23', '00,23', '哈尔滨市', '23', '黑龙江省', '2301', '哈尔滨市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230102', '2301', '00,23,2301', '道里区', '23', '黑龙江省', '2301', '哈尔滨市', '230102', '道里区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230103', '2301', '00,23,2301', '南岗区', '23', '黑龙江省', '2301', '哈尔滨市', '230103', '南岗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230104', '2301', '00,23,2301', '道外区', '23', '黑龙江省', '2301', '哈尔滨市', '230104', '道外区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230108', '2301', '00,23,2301', '平房区', '23', '黑龙江省', '2301', '哈尔滨市', '230108', '平房区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230109', '2301', '00,23,2301', '松北区', '23', '黑龙江省', '2301', '哈尔滨市', '230109', '松北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230110', '2301', '00,23,2301', '香坊区', '23', '黑龙江省', '2301', '哈尔滨市', '230110', '香坊区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230111', '2301', '00,23,2301', '呼兰区', '23', '黑龙江省', '2301', '哈尔滨市', '230111', '呼兰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230112', '2301', '00,23,2301', '阿城区', '23', '黑龙江省', '2301', '哈尔滨市', '230112', '阿城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230113', '2301', '00,23,2301', '双城区', '23', '黑龙江省', '2301', '哈尔滨市', '230113', '双城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230123', '2301', '00,23,2301', '依兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230123', '依兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230124', '2301', '00,23,2301', '方正县', '23', '黑龙江省', '2301', '哈尔滨市', '230124', '方正县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230125', '2301', '00,23,2301', '宾县', '23', '黑龙江省', '2301', '哈尔滨市', '230125', '宾县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230126', '2301', '00,23,2301', '巴彦县', '23', '黑龙江省', '2301', '哈尔滨市', '230126', '巴彦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230127', '2301', '00,23,2301', '木兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230127', '木兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230128', '2301', '00,23,2301', '通河县', '23', '黑龙江省', '2301', '哈尔滨市', '230128', '通河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230129', '2301', '00,23,2301', '延寿县', '23', '黑龙江省', '2301', '哈尔滨市', '230129', '延寿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230183', '2301', '00,23,2301', '尚志市', '23', '黑龙江省', '2301', '哈尔滨市', '230183', '尚志市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230184', '2301', '00,23,2301', '五常市', '23', '黑龙江省', '2301', '哈尔滨市', '230184', '五常市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2302', '23', '00,23', '齐齐哈尔市', '23', '黑龙江省', '2302', '齐齐哈尔市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230202', '2302', '00,23,2302', '龙沙区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230202', '龙沙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230203', '2302', '00,23,2302', '建华区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230203', '建华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230204', '2302', '00,23,2302', '铁锋区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230204', '铁锋区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230205', '2302', '00,23,2302', '昂昂溪区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230205', '昂昂溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230206', '2302', '00,23,2302', '富拉尔基区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230206', '富拉尔基区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230207', '2302', '00,23,2302', '碾子山区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230207', '碾子山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230208', '2302', '00,23,2302', '梅里斯达斡尔族区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230208', '梅里斯达斡尔族区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230221', '2302', '00,23,2302', '龙江县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230221', '龙江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230223', '2302', '00,23,2302', '依安县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230223', '依安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230224', '2302', '00,23,2302', '泰来县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230224', '泰来县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230225', '2302', '00,23,2302', '甘南县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230225', '甘南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230227', '2302', '00,23,2302', '富裕县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230227', '富裕县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230229', '2302', '00,23,2302', '克山县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230229', '克山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230230', '2302', '00,23,2302', '克东县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230230', '克东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230231', '2302', '00,23,2302', '拜泉县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230231', '拜泉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230281', '2302', '00,23,2302', '讷河市', '23', '黑龙江省', '2302', '齐齐哈尔市', '230281', '讷河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2303', '23', '00,23', '鸡西市', '23', '黑龙江省', '2303', '鸡西市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230302', '2303', '00,23,2303', '鸡冠区', '23', '黑龙江省', '2303', '鸡西市', '230302', '鸡冠区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230303', '2303', '00,23,2303', '恒山区', '23', '黑龙江省', '2303', '鸡西市', '230303', '恒山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230304', '2303', '00,23,2303', '滴道区', '23', '黑龙江省', '2303', '鸡西市', '230304', '滴道区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230305', '2303', '00,23,2303', '梨树区', '23', '黑龙江省', '2303', '鸡西市', '230305', '梨树区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230306', '2303', '00,23,2303', '城子河区', '23', '黑龙江省', '2303', '鸡西市', '230306', '城子河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230307', '2303', '00,23,2303', '麻山区', '23', '黑龙江省', '2303', '鸡西市', '230307', '麻山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230321', '2303', '00,23,2303', '鸡东县', '23', '黑龙江省', '2303', '鸡西市', '230321', '鸡东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230381', '2303', '00,23,2303', '虎林市', '23', '黑龙江省', '2303', '鸡西市', '230381', '虎林市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230382', '2303', '00,23,2303', '密山市', '23', '黑龙江省', '2303', '鸡西市', '230382', '密山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2304', '23', '00,23', '鹤岗市', '23', '黑龙江省', '2304', '鹤岗市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230402', '2304', '00,23,2304', '向阳区', '23', '黑龙江省', '2304', '鹤岗市', '230402', '向阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230403', '2304', '00,23,2304', '工农区', '23', '黑龙江省', '2304', '鹤岗市', '230403', '工农区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230404', '2304', '00,23,2304', '南山区', '23', '黑龙江省', '2304', '鹤岗市', '230404', '南山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230405', '2304', '00,23,2304', '兴安区', '23', '黑龙江省', '2304', '鹤岗市', '230405', '兴安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230406', '2304', '00,23,2304', '东山区', '23', '黑龙江省', '2304', '鹤岗市', '230406', '东山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230407', '2304', '00,23,2304', '兴山区', '23', '黑龙江省', '2304', '鹤岗市', '230407', '兴山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230421', '2304', '00,23,2304', '萝北县', '23', '黑龙江省', '2304', '鹤岗市', '230421', '萝北县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230422', '2304', '00,23,2304', '绥滨县', '23', '黑龙江省', '2304', '鹤岗市', '230422', '绥滨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2305', '23', '00,23', '双鸭山市', '23', '黑龙江省', '2305', '双鸭山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230502', '2305', '00,23,2305', '尖山区', '23', '黑龙江省', '2305', '双鸭山市', '230502', '尖山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230503', '2305', '00,23,2305', '岭东区', '23', '黑龙江省', '2305', '双鸭山市', '230503', '岭东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230505', '2305', '00,23,2305', '四方台区', '23', '黑龙江省', '2305', '双鸭山市', '230505', '四方台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230506', '2305', '00,23,2305', '宝山区', '23', '黑龙江省', '2305', '双鸭山市', '230506', '宝山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230521', '2305', '00,23,2305', '集贤县', '23', '黑龙江省', '2305', '双鸭山市', '230521', '集贤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230522', '2305', '00,23,2305', '友谊县', '23', '黑龙江省', '2305', '双鸭山市', '230522', '友谊县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230523', '2305', '00,23,2305', '宝清县', '23', '黑龙江省', '2305', '双鸭山市', '230523', '宝清县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230524', '2305', '00,23,2305', '饶河县', '23', '黑龙江省', '2305', '双鸭山市', '230524', '饶河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2306', '23', '00,23', '大庆市', '23', '黑龙江省', '2306', '大庆市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230602', '2306', '00,23,2306', '萨尔图区', '23', '黑龙江省', '2306', '大庆市', '230602', '萨尔图区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230603', '2306', '00,23,2306', '龙凤区', '23', '黑龙江省', '2306', '大庆市', '230603', '龙凤区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230604', '2306', '00,23,2306', '让胡路区', '23', '黑龙江省', '2306', '大庆市', '230604', '让胡路区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230605', '2306', '00,23,2306', '红岗区', '23', '黑龙江省', '2306', '大庆市', '230605', '红岗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230606', '2306', '00,23,2306', '大同区', '23', '黑龙江省', '2306', '大庆市', '230606', '大同区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230621', '2306', '00,23,2306', '肇州县', '23', '黑龙江省', '2306', '大庆市', '230621', '肇州县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230622', '2306', '00,23,2306', '肇源县', '23', '黑龙江省', '2306', '大庆市', '230622', '肇源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230623', '2306', '00,23,2306', '林甸县', '23', '黑龙江省', '2306', '大庆市', '230623', '林甸县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230624', '2306', '00,23,2306', '杜尔伯特蒙古族自治县', '23', '黑龙江省', '2306', '大庆市', '230624', '杜尔伯特蒙古族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2307', '23', '00,23', '伊春市', '23', '黑龙江省', '2307', '伊春市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230717', '2307', '00,23,2307', '伊美区', '23', '黑龙江省', '2307', '伊春市', '230717', '伊美区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230718', '2307', '00,23,2307', '乌翠区', '23', '黑龙江省', '2307', '伊春市', '230718', '乌翠区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230719', '2307', '00,23,2307', '友好区', '23', '黑龙江省', '2307', '伊春市', '230719', '友好区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230722', '2307', '00,23,2307', '嘉荫县', '23', '黑龙江省', '2307', '伊春市', '230722', '嘉荫县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230723', '2307', '00,23,2307', '汤旺县', '23', '黑龙江省', '2307', '伊春市', '230723', '汤旺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230724', '2307', '00,23,2307', '丰林县', '23', '黑龙江省', '2307', '伊春市', '230724', '丰林县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230725', '2307', '00,23,2307', '大箐山县', '23', '黑龙江省', '2307', '伊春市', '230725', '大箐山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230726', '2307', '00,23,2307', '南岔县', '23', '黑龙江省', '2307', '伊春市', '230726', '南岔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230751', '2307', '00,23,2307', '金林区', '23', '黑龙江省', '2307', '伊春市', '230751', '金林区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230781', '2307', '00,23,2307', '铁力市', '23', '黑龙江省', '2307', '伊春市', '230781', '铁力市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2308', '23', '00,23', '佳木斯市', '23', '黑龙江省', '2308', '佳木斯市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230803', '2308', '00,23,2308', '向阳区', '23', '黑龙江省', '2308', '佳木斯市', '230803', '向阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230804', '2308', '00,23,2308', '前进区', '23', '黑龙江省', '2308', '佳木斯市', '230804', '前进区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230805', '2308', '00,23,2308', '东风区', '23', '黑龙江省', '2308', '佳木斯市', '230805', '东风区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230811', '2308', '00,23,2308', '郊区', '23', '黑龙江省', '2308', '佳木斯市', '230811', '郊区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230822', '2308', '00,23,2308', '桦南县', '23', '黑龙江省', '2308', '佳木斯市', '230822', '桦南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230826', '2308', '00,23,2308', '桦川县', '23', '黑龙江省', '2308', '佳木斯市', '230826', '桦川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230828', '2308', '00,23,2308', '汤原县', '23', '黑龙江省', '2308', '佳木斯市', '230828', '汤原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230881', '2308', '00,23,2308', '同江市', '23', '黑龙江省', '2308', '佳木斯市', '230881', '同江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230882', '2308', '00,23,2308', '富锦市', '23', '黑龙江省', '2308', '佳木斯市', '230882', '富锦市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230883', '2308', '00,23,2308', '抚远市', '23', '黑龙江省', '2308', '佳木斯市', '230883', '抚远市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2309', '23', '00,23', '七台河市', '23', '黑龙江省', '2309', '七台河市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('230902', '2309', '00,23,2309', '新兴区', '23', '黑龙江省', '2309', '七台河市', '230902', '新兴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230903', '2309', '00,23,2309', '桃山区', '23', '黑龙江省', '2309', '七台河市', '230903', '桃山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230904', '2309', '00,23,2309', '茄子河区', '23', '黑龙江省', '2309', '七台河市', '230904', '茄子河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('230921', '2309', '00,23,2309', '勃利县', '23', '黑龙江省', '2309', '七台河市', '230921', '勃利县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2310', '23', '00,23', '牡丹江市', '23', '黑龙江省', '2310', '牡丹江市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('231002', '2310', '00,23,2310', '东安区', '23', '黑龙江省', '2310', '牡丹江市', '231002', '东安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231003', '2310', '00,23,2310', '阳明区', '23', '黑龙江省', '2310', '牡丹江市', '231003', '阳明区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231004', '2310', '00,23,2310', '爱民区', '23', '黑龙江省', '2310', '牡丹江市', '231004', '爱民区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231005', '2310', '00,23,2310', '西安区', '23', '黑龙江省', '2310', '牡丹江市', '231005', '西安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231025', '2310', '00,23,2310', '林口县', '23', '黑龙江省', '2310', '牡丹江市', '231025', '林口县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231081', '2310', '00,23,2310', '绥芬河市', '23', '黑龙江省', '2310', '牡丹江市', '231081', '绥芬河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231083', '2310', '00,23,2310', '海林市', '23', '黑龙江省', '2310', '牡丹江市', '231083', '海林市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231084', '2310', '00,23,2310', '宁安市', '23', '黑龙江省', '2310', '牡丹江市', '231084', '宁安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231085', '2310', '00,23,2310', '穆棱市', '23', '黑龙江省', '2310', '牡丹江市', '231085', '穆棱市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231086', '2310', '00,23,2310', '东宁市', '23', '黑龙江省', '2310', '牡丹江市', '231086', '东宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2311', '23', '00,23', '黑河市', '23', '黑龙江省', '2311', '黑河市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('231102', '2311', '00,23,2311', '爱辉区', '23', '黑龙江省', '2311', '黑河市', '231102', '爱辉区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231123', '2311', '00,23,2311', '逊克县', '23', '黑龙江省', '2311', '黑河市', '231123', '逊克县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231124', '2311', '00,23,2311', '孙吴县', '23', '黑龙江省', '2311', '黑河市', '231124', '孙吴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231181', '2311', '00,23,2311', '北安市', '23', '黑龙江省', '2311', '黑河市', '231181', '北安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231182', '2311', '00,23,2311', '五大连池市', '23', '黑龙江省', '2311', '黑河市', '231182', '五大连池市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231183', '2311', '00,23,2311', '嫩江市', '23', '黑龙江省', '2311', '黑河市', '231183', '嫩江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2312', '23', '00,23', '绥化市', '23', '黑龙江省', '2312', '绥化市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('231202', '2312', '00,23,2312', '北林区', '23', '黑龙江省', '2312', '绥化市', '231202', '北林区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231221', '2312', '00,23,2312', '望奎县', '23', '黑龙江省', '2312', '绥化市', '231221', '望奎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231222', '2312', '00,23,2312', '兰西县', '23', '黑龙江省', '2312', '绥化市', '231222', '兰西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231223', '2312', '00,23,2312', '青冈县', '23', '黑龙江省', '2312', '绥化市', '231223', '青冈县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231224', '2312', '00,23,2312', '庆安县', '23', '黑龙江省', '2312', '绥化市', '231224', '庆安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231225', '2312', '00,23,2312', '明水县', '23', '黑龙江省', '2312', '绥化市', '231225', '明水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231226', '2312', '00,23,2312', '绥棱县', '23', '黑龙江省', '2312', '绥化市', '231226', '绥棱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231281', '2312', '00,23,2312', '安达市', '23', '黑龙江省', '2312', '绥化市', '231281', '安达市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231282', '2312', '00,23,2312', '肇东市', '23', '黑龙江省', '2312', '绥化市', '231282', '肇东市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('231283', '2312', '00,23,2312', '海伦市', '23', '黑龙江省', '2312', '绥化市', '231283', '海伦市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('2327', '23', '00,23', '大兴安岭地区', '23', '黑龙江省', '2327', '大兴安岭地区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('232701', '2327', '00,23,2327', '漠河市', '23', '黑龙江省', '2327', '大兴安岭地区', '232701', '漠河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('232721', '2327', '00,23,2327', '呼玛县', '23', '黑龙江省', '2327', '大兴安岭地区', '232721', '呼玛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('232722', '2327', '00,23,2327', '塔河县', '23', '黑龙江省', '2327', '大兴安岭地区', '232722', '塔河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('31', '00', '00', '上海市', '31', '上海市', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('3101', '31', '00,31', '上海市', '31', '上海市', '3101', '上海市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('310101', '3101', '00,31,3101', '黄浦区', '31', '上海市', '3101', '上海市', '310101', '黄浦区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310104', '3101', '00,31,3101', '徐汇区', '31', '上海市', '3101', '上海市', '310104', '徐汇区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310105', '3101', '00,31,3101', '长宁区', '31', '上海市', '3101', '上海市', '310105', '长宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310106', '3101', '00,31,3101', '静安区', '31', '上海市', '3101', '上海市', '310106', '静安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310107', '3101', '00,31,3101', '普陀区', '31', '上海市', '3101', '上海市', '310107', '普陀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310109', '3101', '00,31,3101', '虹口区', '31', '上海市', '3101', '上海市', '310109', '虹口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310110', '3101', '00,31,3101', '杨浦区', '31', '上海市', '3101', '上海市', '310110', '杨浦区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310112', '3101', '00,31,3101', '闵行区', '31', '上海市', '3101', '上海市', '310112', '闵行区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310113', '3101', '00,31,3101', '宝山区', '31', '上海市', '3101', '上海市', '310113', '宝山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310114', '3101', '00,31,3101', '嘉定区', '31', '上海市', '3101', '上海市', '310114', '嘉定区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310115', '3101', '00,31,3101', '浦东新区', '31', '上海市', '3101', '上海市', '310115', '浦东新区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310116', '3101', '00,31,3101', '金山区', '31', '上海市', '3101', '上海市', '310116', '金山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310117', '3101', '00,31,3101', '松江区', '31', '上海市', '3101', '上海市', '310117', '松江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310118', '3101', '00,31,3101', '青浦区', '31', '上海市', '3101', '上海市', '310118', '青浦区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310120', '3101', '00,31,3101', '奉贤区', '31', '上海市', '3101', '上海市', '310120', '奉贤区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('310151', '3101', '00,31,3101', '崇明区', '31', '上海市', '3101', '上海市', '310151', '崇明区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('32', '00', '00', '江苏省', '32', '江苏省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('3201', '32', '00,32', '南京市', '32', '江苏省', '3201', '南京市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320102', '3201', '00,32,3201', '玄武区', '32', '江苏省', '3201', '南京市', '320102', '玄武区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320104', '3201', '00,32,3201', '秦淮区', '32', '江苏省', '3201', '南京市', '320104', '秦淮区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320105', '3201', '00,32,3201', '建邺区', '32', '江苏省', '3201', '南京市', '320105', '建邺区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320106', '3201', '00,32,3201', '鼓楼区', '32', '江苏省', '3201', '南京市', '320106', '鼓楼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320111', '3201', '00,32,3201', '浦口区', '32', '江苏省', '3201', '南京市', '320111', '浦口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320113', '3201', '00,32,3201', '栖霞区', '32', '江苏省', '3201', '南京市', '320113', '栖霞区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320114', '3201', '00,32,3201', '雨花台区', '32', '江苏省', '3201', '南京市', '320114', '雨花台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320115', '3201', '00,32,3201', '江宁区', '32', '江苏省', '3201', '南京市', '320115', '江宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320116', '3201', '00,32,3201', '六合区', '32', '江苏省', '3201', '南京市', '320116', '六合区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320117', '3201', '00,32,3201', '溧水区', '32', '江苏省', '3201', '南京市', '320117', '溧水区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320118', '3201', '00,32,3201', '高淳区', '32', '江苏省', '3201', '南京市', '320118', '高淳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3202', '32', '00,32', '无锡市', '32', '江苏省', '3202', '无锡市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320205', '3202', '00,32,3202', '锡山区', '32', '江苏省', '3202', '无锡市', '320205', '锡山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320206', '3202', '00,32,3202', '惠山区', '32', '江苏省', '3202', '无锡市', '320206', '惠山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320211', '3202', '00,32,3202', '滨湖区', '32', '江苏省', '3202', '无锡市', '320211', '滨湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320213', '3202', '00,32,3202', '梁溪区', '32', '江苏省', '3202', '无锡市', '320213', '梁溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320214', '3202', '00,32,3202', '新吴区', '32', '江苏省', '3202', '无锡市', '320214', '新吴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320281', '3202', '00,32,3202', '江阴市', '32', '江苏省', '3202', '无锡市', '320281', '江阴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320282', '3202', '00,32,3202', '宜兴市', '32', '江苏省', '3202', '无锡市', '320282', '宜兴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3203', '32', '00,32', '徐州市', '32', '江苏省', '3203', '徐州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320302', '3203', '00,32,3203', '鼓楼区', '32', '江苏省', '3203', '徐州市', '320302', '鼓楼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320303', '3203', '00,32,3203', '云龙区', '32', '江苏省', '3203', '徐州市', '320303', '云龙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320305', '3203', '00,32,3203', '贾汪区', '32', '江苏省', '3203', '徐州市', '320305', '贾汪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320311', '3203', '00,32,3203', '泉山区', '32', '江苏省', '3203', '徐州市', '320311', '泉山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320312', '3203', '00,32,3203', '铜山区', '32', '江苏省', '3203', '徐州市', '320312', '铜山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320321', '3203', '00,32,3203', '丰县', '32', '江苏省', '3203', '徐州市', '320321', '丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320322', '3203', '00,32,3203', '沛县', '32', '江苏省', '3203', '徐州市', '320322', '沛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320324', '3203', '00,32,3203', '睢宁县', '32', '江苏省', '3203', '徐州市', '320324', '睢宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320381', '3203', '00,32,3203', '新沂市', '32', '江苏省', '3203', '徐州市', '320381', '新沂市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320382', '3203', '00,32,3203', '邳州市', '32', '江苏省', '3203', '徐州市', '320382', '邳州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3204', '32', '00,32', '常州市', '32', '江苏省', '3204', '常州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320402', '3204', '00,32,3204', '天宁区', '32', '江苏省', '3204', '常州市', '320402', '天宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320404', '3204', '00,32,3204', '钟楼区', '32', '江苏省', '3204', '常州市', '320404', '钟楼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320411', '3204', '00,32,3204', '新北区', '32', '江苏省', '3204', '常州市', '320411', '新北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320412', '3204', '00,32,3204', '武进区', '32', '江苏省', '3204', '常州市', '320412', '武进区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320413', '3204', '00,32,3204', '金坛区', '32', '江苏省', '3204', '常州市', '320413', '金坛区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320481', '3204', '00,32,3204', '溧阳市', '32', '江苏省', '3204', '常州市', '320481', '溧阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3205', '32', '00,32', '苏州市', '32', '江苏省', '3205', '苏州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320505', '3205', '00,32,3205', '虎丘区', '32', '江苏省', '3205', '苏州市', '320505', '虎丘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320506', '3205', '00,32,3205', '吴中区', '32', '江苏省', '3205', '苏州市', '320506', '吴中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320507', '3205', '00,32,3205', '相城区', '32', '江苏省', '3205', '苏州市', '320507', '相城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320508', '3205', '00,32,3205', '姑苏区', '32', '江苏省', '3205', '苏州市', '320508', '姑苏区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320509', '3205', '00,32,3205', '吴江区', '32', '江苏省', '3205', '苏州市', '320509', '吴江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320581', '3205', '00,32,3205', '常熟市', '32', '江苏省', '3205', '苏州市', '320581', '常熟市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320582', '3205', '00,32,3205', '张家港市', '32', '江苏省', '3205', '苏州市', '320582', '张家港市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320583', '3205', '00,32,3205', '昆山市', '32', '江苏省', '3205', '苏州市', '320583', '昆山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320585', '3205', '00,32,3205', '太仓市', '32', '江苏省', '3205', '苏州市', '320585', '太仓市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3206', '32', '00,32', '南通市', '32', '江苏省', '3206', '南通市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320602', '3206', '00,32,3206', '崇川区', '32', '江苏省', '3206', '南通市', '320602', '崇川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320611', '3206', '00,32,3206', '港闸区', '32', '江苏省', '3206', '南通市', '320611', '港闸区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320612', '3206', '00,32,3206', '通州区', '32', '江苏省', '3206', '南通市', '320612', '通州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320623', '3206', '00,32,3206', '如东县', '32', '江苏省', '3206', '南通市', '320623', '如东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320681', '3206', '00,32,3206', '启东市', '32', '江苏省', '3206', '南通市', '320681', '启东市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320682', '3206', '00,32,3206', '如皋市', '32', '江苏省', '3206', '南通市', '320682', '如皋市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320684', '3206', '00,32,3206', '海门市', '32', '江苏省', '3206', '南通市', '320684', '海门市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320685', '3206', '00,32,3206', '海安市', '32', '江苏省', '3206', '南通市', '320685', '海安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3207', '32', '00,32', '连云港市', '32', '江苏省', '3207', '连云港市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320703', '3207', '00,32,3207', '连云区', '32', '江苏省', '3207', '连云港市', '320703', '连云区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320706', '3207', '00,32,3207', '海州区', '32', '江苏省', '3207', '连云港市', '320706', '海州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320707', '3207', '00,32,3207', '赣榆区', '32', '江苏省', '3207', '连云港市', '320707', '赣榆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320722', '3207', '00,32,3207', '东海县', '32', '江苏省', '3207', '连云港市', '320722', '东海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320723', '3207', '00,32,3207', '灌云县', '32', '江苏省', '3207', '连云港市', '320723', '灌云县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320724', '3207', '00,32,3207', '灌南县', '32', '江苏省', '3207', '连云港市', '320724', '灌南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3208', '32', '00,32', '淮安市', '32', '江苏省', '3208', '淮安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320803', '3208', '00,32,3208', '淮安区', '32', '江苏省', '3208', '淮安市', '320803', '淮安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320804', '3208', '00,32,3208', '淮阴区', '32', '江苏省', '3208', '淮安市', '320804', '淮阴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320812', '3208', '00,32,3208', '清江浦区', '32', '江苏省', '3208', '淮安市', '320812', '清江浦区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320813', '3208', '00,32,3208', '洪泽区', '32', '江苏省', '3208', '淮安市', '320813', '洪泽区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320826', '3208', '00,32,3208', '涟水县', '32', '江苏省', '3208', '淮安市', '320826', '涟水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320830', '3208', '00,32,3208', '盱眙县', '32', '江苏省', '3208', '淮安市', '320830', '盱眙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320831', '3208', '00,32,3208', '金湖县', '32', '江苏省', '3208', '淮安市', '320831', '金湖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3209', '32', '00,32', '盐城市', '32', '江苏省', '3209', '盐城市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('320902', '3209', '00,32,3209', '亭湖区', '32', '江苏省', '3209', '盐城市', '320902', '亭湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320903', '3209', '00,32,3209', '盐都区', '32', '江苏省', '3209', '盐城市', '320903', '盐都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320904', '3209', '00,32,3209', '大丰区', '32', '江苏省', '3209', '盐城市', '320904', '大丰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320921', '3209', '00,32,3209', '响水县', '32', '江苏省', '3209', '盐城市', '320921', '响水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320922', '3209', '00,32,3209', '滨海县', '32', '江苏省', '3209', '盐城市', '320922', '滨海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320923', '3209', '00,32,3209', '阜宁县', '32', '江苏省', '3209', '盐城市', '320923', '阜宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320924', '3209', '00,32,3209', '射阳县', '32', '江苏省', '3209', '盐城市', '320924', '射阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320925', '3209', '00,32,3209', '建湖县', '32', '江苏省', '3209', '盐城市', '320925', '建湖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('320981', '3209', '00,32,3209', '东台市', '32', '江苏省', '3209', '盐城市', '320981', '东台市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3210', '32', '00,32', '扬州市', '32', '江苏省', '3210', '扬州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('321002', '3210', '00,32,3210', '广陵区', '32', '江苏省', '3210', '扬州市', '321002', '广陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321003', '3210', '00,32,3210', '邗江区', '32', '江苏省', '3210', '扬州市', '321003', '邗江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321012', '3210', '00,32,3210', '江都区', '32', '江苏省', '3210', '扬州市', '321012', '江都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321023', '3210', '00,32,3210', '宝应县', '32', '江苏省', '3210', '扬州市', '321023', '宝应县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321081', '3210', '00,32,3210', '仪征市', '32', '江苏省', '3210', '扬州市', '321081', '仪征市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321084', '3210', '00,32,3210', '高邮市', '32', '江苏省', '3210', '扬州市', '321084', '高邮市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3211', '32', '00,32', '镇江市', '32', '江苏省', '3211', '镇江市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('321102', '3211', '00,32,3211', '京口区', '32', '江苏省', '3211', '镇江市', '321102', '京口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321111', '3211', '00,32,3211', '润州区', '32', '江苏省', '3211', '镇江市', '321111', '润州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321112', '3211', '00,32,3211', '丹徒区', '32', '江苏省', '3211', '镇江市', '321112', '丹徒区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321181', '3211', '00,32,3211', '丹阳市', '32', '江苏省', '3211', '镇江市', '321181', '丹阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321182', '3211', '00,32,3211', '扬中市', '32', '江苏省', '3211', '镇江市', '321182', '扬中市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321183', '3211', '00,32,3211', '句容市', '32', '江苏省', '3211', '镇江市', '321183', '句容市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3212', '32', '00,32', '泰州市', '32', '江苏省', '3212', '泰州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('321202', '3212', '00,32,3212', '海陵区', '32', '江苏省', '3212', '泰州市', '321202', '海陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321203', '3212', '00,32,3212', '高港区', '32', '江苏省', '3212', '泰州市', '321203', '高港区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321204', '3212', '00,32,3212', '姜堰区', '32', '江苏省', '3212', '泰州市', '321204', '姜堰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321281', '3212', '00,32,3212', '兴化市', '32', '江苏省', '3212', '泰州市', '321281', '兴化市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321282', '3212', '00,32,3212', '靖江市', '32', '江苏省', '3212', '泰州市', '321282', '靖江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321283', '3212', '00,32,3212', '泰兴市', '32', '江苏省', '3212', '泰州市', '321283', '泰兴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3213', '32', '00,32', '宿迁市', '32', '江苏省', '3213', '宿迁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('321302', '3213', '00,32,3213', '宿城区', '32', '江苏省', '3213', '宿迁市', '321302', '宿城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321311', '3213', '00,32,3213', '宿豫区', '32', '江苏省', '3213', '宿迁市', '321311', '宿豫区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321322', '3213', '00,32,3213', '沭阳县', '32', '江苏省', '3213', '宿迁市', '321322', '沭阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321323', '3213', '00,32,3213', '泗阳县', '32', '江苏省', '3213', '宿迁市', '321323', '泗阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('321324', '3213', '00,32,3213', '泗洪县', '32', '江苏省', '3213', '宿迁市', '321324', '泗洪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('33', '00', '00', '浙江省', '33', '浙江省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('3301', '33', '00,33', '杭州市', '33', '浙江省', '3301', '杭州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330102', '3301', '00,33,3301', '上城区', '33', '浙江省', '3301', '杭州市', '330102', '上城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330103', '3301', '00,33,3301', '下城区', '33', '浙江省', '3301', '杭州市', '330103', '下城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330104', '3301', '00,33,3301', '江干区', '33', '浙江省', '3301', '杭州市', '330104', '江干区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330105', '3301', '00,33,3301', '拱墅区', '33', '浙江省', '3301', '杭州市', '330105', '拱墅区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330106', '3301', '00,33,3301', '西湖区', '33', '浙江省', '3301', '杭州市', '330106', '西湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330108', '3301', '00,33,3301', '滨江区', '33', '浙江省', '3301', '杭州市', '330108', '滨江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330109', '3301', '00,33,3301', '萧山区', '33', '浙江省', '3301', '杭州市', '330109', '萧山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330110', '3301', '00,33,3301', '余杭区', '33', '浙江省', '3301', '杭州市', '330110', '余杭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330111', '3301', '00,33,3301', '富阳区', '33', '浙江省', '3301', '杭州市', '330111', '富阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330112', '3301', '00,33,3301', '临安区', '33', '浙江省', '3301', '杭州市', '330112', '临安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330122', '3301', '00,33,3301', '桐庐县', '33', '浙江省', '3301', '杭州市', '330122', '桐庐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330127', '3301', '00,33,3301', '淳安县', '33', '浙江省', '3301', '杭州市', '330127', '淳安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330182', '3301', '00,33,3301', '建德市', '33', '浙江省', '3301', '杭州市', '330182', '建德市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3302', '33', '00,33', '宁波市', '33', '浙江省', '3302', '宁波市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330203', '3302', '00,33,3302', '海曙区', '33', '浙江省', '3302', '宁波市', '330203', '海曙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330205', '3302', '00,33,3302', '江北区', '33', '浙江省', '3302', '宁波市', '330205', '江北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330206', '3302', '00,33,3302', '北仑区', '33', '浙江省', '3302', '宁波市', '330206', '北仑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330211', '3302', '00,33,3302', '镇海区', '33', '浙江省', '3302', '宁波市', '330211', '镇海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330212', '3302', '00,33,3302', '鄞州区', '33', '浙江省', '3302', '宁波市', '330212', '鄞州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330213', '3302', '00,33,3302', '奉化区', '33', '浙江省', '3302', '宁波市', '330213', '奉化区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330225', '3302', '00,33,3302', '象山县', '33', '浙江省', '3302', '宁波市', '330225', '象山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330226', '3302', '00,33,3302', '宁海县', '33', '浙江省', '3302', '宁波市', '330226', '宁海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330281', '3302', '00,33,3302', '余姚市', '33', '浙江省', '3302', '宁波市', '330281', '余姚市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330282', '3302', '00,33,3302', '慈溪市', '33', '浙江省', '3302', '宁波市', '330282', '慈溪市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3303', '33', '00,33', '温州市', '33', '浙江省', '3303', '温州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330302', '3303', '00,33,3303', '鹿城区', '33', '浙江省', '3303', '温州市', '330302', '鹿城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330303', '3303', '00,33,3303', '龙湾区', '33', '浙江省', '3303', '温州市', '330303', '龙湾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330304', '3303', '00,33,3303', '瓯海区', '33', '浙江省', '3303', '温州市', '330304', '瓯海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330305', '3303', '00,33,3303', '洞头区', '33', '浙江省', '3303', '温州市', '330305', '洞头区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330324', '3303', '00,33,3303', '永嘉县', '33', '浙江省', '3303', '温州市', '330324', '永嘉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330326', '3303', '00,33,3303', '平阳县', '33', '浙江省', '3303', '温州市', '330326', '平阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330327', '3303', '00,33,3303', '苍南县', '33', '浙江省', '3303', '温州市', '330327', '苍南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330328', '3303', '00,33,3303', '文成县', '33', '浙江省', '3303', '温州市', '330328', '文成县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330329', '3303', '00,33,3303', '泰顺县', '33', '浙江省', '3303', '温州市', '330329', '泰顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330381', '3303', '00,33,3303', '瑞安市', '33', '浙江省', '3303', '温州市', '330381', '瑞安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330382', '3303', '00,33,3303', '乐清市', '33', '浙江省', '3303', '温州市', '330382', '乐清市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330383', '3303', '00,33,3303', '龙港市', '33', '浙江省', '3303', '温州市', '330383', '龙港市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3304', '33', '00,33', '嘉兴市', '33', '浙江省', '3304', '嘉兴市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330402', '3304', '00,33,3304', '南湖区', '33', '浙江省', '3304', '嘉兴市', '330402', '南湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330411', '3304', '00,33,3304', '秀洲区', '33', '浙江省', '3304', '嘉兴市', '330411', '秀洲区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330421', '3304', '00,33,3304', '嘉善县', '33', '浙江省', '3304', '嘉兴市', '330421', '嘉善县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330424', '3304', '00,33,3304', '海盐县', '33', '浙江省', '3304', '嘉兴市', '330424', '海盐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330481', '3304', '00,33,3304', '海宁市', '33', '浙江省', '3304', '嘉兴市', '330481', '海宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330482', '3304', '00,33,3304', '平湖市', '33', '浙江省', '3304', '嘉兴市', '330482', '平湖市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330483', '3304', '00,33,3304', '桐乡市', '33', '浙江省', '3304', '嘉兴市', '330483', '桐乡市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3305', '33', '00,33', '湖州市', '33', '浙江省', '3305', '湖州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330502', '3305', '00,33,3305', '吴兴区', '33', '浙江省', '3305', '湖州市', '330502', '吴兴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330503', '3305', '00,33,3305', '南浔区', '33', '浙江省', '3305', '湖州市', '330503', '南浔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330521', '3305', '00,33,3305', '德清县', '33', '浙江省', '3305', '湖州市', '330521', '德清县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330522', '3305', '00,33,3305', '长兴县', '33', '浙江省', '3305', '湖州市', '330522', '长兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330523', '3305', '00,33,3305', '安吉县', '33', '浙江省', '3305', '湖州市', '330523', '安吉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3306', '33', '00,33', '绍兴市', '33', '浙江省', '3306', '绍兴市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330602', '3306', '00,33,3306', '越城区', '33', '浙江省', '3306', '绍兴市', '330602', '越城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330603', '3306', '00,33,3306', '柯桥区', '33', '浙江省', '3306', '绍兴市', '330603', '柯桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330604', '3306', '00,33,3306', '上虞区', '33', '浙江省', '3306', '绍兴市', '330604', '上虞区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330624', '3306', '00,33,3306', '新昌县', '33', '浙江省', '3306', '绍兴市', '330624', '新昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330681', '3306', '00,33,3306', '诸暨市', '33', '浙江省', '3306', '绍兴市', '330681', '诸暨市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330683', '3306', '00,33,3306', '嵊州市', '33', '浙江省', '3306', '绍兴市', '330683', '嵊州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3307', '33', '00,33', '金华市', '33', '浙江省', '3307', '金华市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330702', '3307', '00,33,3307', '婺城区', '33', '浙江省', '3307', '金华市', '330702', '婺城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330703', '3307', '00,33,3307', '金东区', '33', '浙江省', '3307', '金华市', '330703', '金东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330723', '3307', '00,33,3307', '武义县', '33', '浙江省', '3307', '金华市', '330723', '武义县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330726', '3307', '00,33,3307', '浦江县', '33', '浙江省', '3307', '金华市', '330726', '浦江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330727', '3307', '00,33,3307', '磐安县', '33', '浙江省', '3307', '金华市', '330727', '磐安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330781', '3307', '00,33,3307', '兰溪市', '33', '浙江省', '3307', '金华市', '330781', '兰溪市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330782', '3307', '00,33,3307', '义乌市', '33', '浙江省', '3307', '金华市', '330782', '义乌市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330783', '3307', '00,33,3307', '东阳市', '33', '浙江省', '3307', '金华市', '330783', '东阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330784', '3307', '00,33,3307', '永康市', '33', '浙江省', '3307', '金华市', '330784', '永康市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3308', '33', '00,33', '衢州市', '33', '浙江省', '3308', '衢州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330802', '3308', '00,33,3308', '柯城区', '33', '浙江省', '3308', '衢州市', '330802', '柯城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330803', '3308', '00,33,3308', '衢江区', '33', '浙江省', '3308', '衢州市', '330803', '衢江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330822', '3308', '00,33,3308', '常山县', '33', '浙江省', '3308', '衢州市', '330822', '常山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330824', '3308', '00,33,3308', '开化县', '33', '浙江省', '3308', '衢州市', '330824', '开化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330825', '3308', '00,33,3308', '龙游县', '33', '浙江省', '3308', '衢州市', '330825', '龙游县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330881', '3308', '00,33,3308', '江山市', '33', '浙江省', '3308', '衢州市', '330881', '江山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3309', '33', '00,33', '舟山市', '33', '浙江省', '3309', '舟山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('330902', '3309', '00,33,3309', '定海区', '33', '浙江省', '3309', '舟山市', '330902', '定海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330903', '3309', '00,33,3309', '普陀区', '33', '浙江省', '3309', '舟山市', '330903', '普陀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330921', '3309', '00,33,3309', '岱山县', '33', '浙江省', '3309', '舟山市', '330921', '岱山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('330922', '3309', '00,33,3309', '嵊泗县', '33', '浙江省', '3309', '舟山市', '330922', '嵊泗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3310', '33', '00,33', '台州市', '33', '浙江省', '3310', '台州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('331002', '3310', '00,33,3310', '椒江区', '33', '浙江省', '3310', '台州市', '331002', '椒江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331003', '3310', '00,33,3310', '黄岩区', '33', '浙江省', '3310', '台州市', '331003', '黄岩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331004', '3310', '00,33,3310', '路桥区', '33', '浙江省', '3310', '台州市', '331004', '路桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331022', '3310', '00,33,3310', '三门县', '33', '浙江省', '3310', '台州市', '331022', '三门县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331023', '3310', '00,33,3310', '天台县', '33', '浙江省', '3310', '台州市', '331023', '天台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331024', '3310', '00,33,3310', '仙居县', '33', '浙江省', '3310', '台州市', '331024', '仙居县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331081', '3310', '00,33,3310', '温岭市', '33', '浙江省', '3310', '台州市', '331081', '温岭市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331082', '3310', '00,33,3310', '临海市', '33', '浙江省', '3310', '台州市', '331082', '临海市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331083', '3310', '00,33,3310', '玉环市', '33', '浙江省', '3310', '台州市', '331083', '玉环市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3311', '33', '00,33', '丽水市', '33', '浙江省', '3311', '丽水市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('331102', '3311', '00,33,3311', '莲都区', '33', '浙江省', '3311', '丽水市', '331102', '莲都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331121', '3311', '00,33,3311', '青田县', '33', '浙江省', '3311', '丽水市', '331121', '青田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331122', '3311', '00,33,3311', '缙云县', '33', '浙江省', '3311', '丽水市', '331122', '缙云县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331123', '3311', '00,33,3311', '遂昌县', '33', '浙江省', '3311', '丽水市', '331123', '遂昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331124', '3311', '00,33,3311', '松阳县', '33', '浙江省', '3311', '丽水市', '331124', '松阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331125', '3311', '00,33,3311', '云和县', '33', '浙江省', '3311', '丽水市', '331125', '云和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331126', '3311', '00,33,3311', '庆元县', '33', '浙江省', '3311', '丽水市', '331126', '庆元县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331127', '3311', '00,33,3311', '景宁畲族自治县', '33', '浙江省', '3311', '丽水市', '331127', '景宁畲族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('331181', '3311', '00,33,3311', '龙泉市', '33', '浙江省', '3311', '丽水市', '331181', '龙泉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('34', '00', '00', '安徽省', '34', '安徽省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('3401', '34', '00,34', '合肥市', '34', '安徽省', '3401', '合肥市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('340102', '3401', '00,34,3401', '瑶海区', '34', '安徽省', '3401', '合肥市', '340102', '瑶海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340103', '3401', '00,34,3401', '庐阳区', '34', '安徽省', '3401', '合肥市', '340103', '庐阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340104', '3401', '00,34,3401', '蜀山区', '34', '安徽省', '3401', '合肥市', '340104', '蜀山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340111', '3401', '00,34,3401', '包河区', '34', '安徽省', '3401', '合肥市', '340111', '包河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340121', '3401', '00,34,3401', '长丰县', '34', '安徽省', '3401', '合肥市', '340121', '长丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340122', '3401', '00,34,3401', '肥东县', '34', '安徽省', '3401', '合肥市', '340122', '肥东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340123', '3401', '00,34,3401', '肥西县', '34', '安徽省', '3401', '合肥市', '340123', '肥西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340124', '3401', '00,34,3401', '庐江县', '34', '安徽省', '3401', '合肥市', '340124', '庐江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340181', '3401', '00,34,3401', '巢湖市', '34', '安徽省', '3401', '合肥市', '340181', '巢湖市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3402', '34', '00,34', '芜湖市', '34', '安徽省', '3402', '芜湖市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('340202', '3402', '00,34,3402', '镜湖区', '34', '安徽省', '3402', '芜湖市', '340202', '镜湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340203', '3402', '00,34,3402', '弋江区', '34', '安徽省', '3402', '芜湖市', '340203', '弋江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340207', '3402', '00,34,3402', '鸠江区', '34', '安徽省', '3402', '芜湖市', '340207', '鸠江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340208', '3402', '00,34,3402', '三山区', '34', '安徽省', '3402', '芜湖市', '340208', '三山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340221', '3402', '00,34,3402', '芜湖县', '34', '安徽省', '3402', '芜湖市', '340221', '芜湖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340222', '3402', '00,34,3402', '繁昌县', '34', '安徽省', '3402', '芜湖市', '340222', '繁昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340223', '3402', '00,34,3402', '南陵县', '34', '安徽省', '3402', '芜湖市', '340223', '南陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340281', '3402', '00,34,3402', '无为市', '34', '安徽省', '3402', '芜湖市', '340281', '无为市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340302', '3403', '00,34,3403', '龙子湖区', '34', '安徽省', '3403', '蚌埠市', '340302', '龙子湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340303', '3403', '00,34,3403', '蚌山区', '34', '安徽省', '3403', '蚌埠市', '340303', '蚌山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340304', '3403', '00,34,3403', '禹会区', '34', '安徽省', '3403', '蚌埠市', '340304', '禹会区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340311', '3403', '00,34,3403', '淮上区', '34', '安徽省', '3403', '蚌埠市', '340311', '淮上区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340321', '3403', '00,34,3403', '怀远县', '34', '安徽省', '3403', '蚌埠市', '340321', '怀远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340322', '3403', '00,34,3403', '五河县', '34', '安徽省', '3403', '蚌埠市', '340322', '五河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340323', '3403', '00,34,3403', '固镇县', '34', '安徽省', '3403', '蚌埠市', '340323', '固镇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3404', '34', '00,34', '淮南市', '34', '安徽省', '3404', '淮南市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('340402', '3404', '00,34,3404', '大通区', '34', '安徽省', '3404', '淮南市', '340402', '大通区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340403', '3404', '00,34,3404', '田家庵区', '34', '安徽省', '3404', '淮南市', '340403', '田家庵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340404', '3404', '00,34,3404', '谢家集区', '34', '安徽省', '3404', '淮南市', '340404', '谢家集区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340405', '3404', '00,34,3404', '八公山区', '34', '安徽省', '3404', '淮南市', '340405', '八公山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340406', '3404', '00,34,3404', '潘集区', '34', '安徽省', '3404', '淮南市', '340406', '潘集区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340421', '3404', '00,34,3404', '凤台县', '34', '安徽省', '3404', '淮南市', '340421', '凤台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340422', '3404', '00,34,3404', '寿县', '34', '安徽省', '3404', '淮南市', '340422', '寿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3405', '34', '00,34', '马鞍山市', '34', '安徽省', '3405', '马鞍山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('340503', '3405', '00,34,3405', '花山区', '34', '安徽省', '3405', '马鞍山市', '340503', '花山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340504', '3405', '00,34,3405', '雨山区', '34', '安徽省', '3405', '马鞍山市', '340504', '雨山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340506', '3405', '00,34,3405', '博望区', '34', '安徽省', '3405', '马鞍山市', '340506', '博望区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340521', '3405', '00,34,3405', '当涂县', '34', '安徽省', '3405', '马鞍山市', '340521', '当涂县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340522', '3405', '00,34,3405', '含山县', '34', '安徽省', '3405', '马鞍山市', '340522', '含山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340523', '3405', '00,34,3405', '和县', '34', '安徽省', '3405', '马鞍山市', '340523', '和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3406', '34', '00,34', '淮北市', '34', '安徽省', '3406', '淮北市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('340602', '3406', '00,34,3406', '杜集区', '34', '安徽省', '3406', '淮北市', '340602', '杜集区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340603', '3406', '00,34,3406', '相山区', '34', '安徽省', '3406', '淮北市', '340603', '相山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340604', '3406', '00,34,3406', '烈山区', '34', '安徽省', '3406', '淮北市', '340604', '烈山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340621', '3406', '00,34,3406', '濉溪县', '34', '安徽省', '3406', '淮北市', '340621', '濉溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3407', '34', '00,34', '铜陵市', '34', '安徽省', '3407', '铜陵市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('340705', '3407', '00,34,3407', '铜官区', '34', '安徽省', '3407', '铜陵市', '340705', '铜官区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340706', '3407', '00,34,3407', '义安区', '34', '安徽省', '3407', '铜陵市', '340706', '义安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340711', '3407', '00,34,3407', '郊区', '34', '安徽省', '3407', '铜陵市', '340711', '郊区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340722', '3407', '00,34,3407', '枞阳县', '34', '安徽省', '3407', '铜陵市', '340722', '枞阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3408', '34', '00,34', '安庆市', '34', '安徽省', '3408', '安庆市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('340802', '3408', '00,34,3408', '迎江区', '34', '安徽省', '3408', '安庆市', '340802', '迎江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340803', '3408', '00,34,3408', '大观区', '34', '安徽省', '3408', '安庆市', '340803', '大观区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340811', '3408', '00,34,3408', '宜秀区', '34', '安徽省', '3408', '安庆市', '340811', '宜秀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340822', '3408', '00,34,3408', '怀宁县', '34', '安徽省', '3408', '安庆市', '340822', '怀宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340825', '3408', '00,34,3408', '太湖县', '34', '安徽省', '3408', '安庆市', '340825', '太湖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340826', '3408', '00,34,3408', '宿松县', '34', '安徽省', '3408', '安庆市', '340826', '宿松县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340827', '3408', '00,34,3408', '望江县', '34', '安徽省', '3408', '安庆市', '340827', '望江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340828', '3408', '00,34,3408', '岳西县', '34', '安徽省', '3408', '安庆市', '340828', '岳西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340881', '3408', '00,34,3408', '桐城市', '34', '安徽省', '3408', '安庆市', '340881', '桐城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('340882', '3408', '00,34,3408', '潜山市', '34', '安徽省', '3408', '安庆市', '340882', '潜山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3410', '34', '00,34', '黄山市', '34', '安徽省', '3410', '黄山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341002', '3410', '00,34,3410', '屯溪区', '34', '安徽省', '3410', '黄山市', '341002', '屯溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341003', '3410', '00,34,3410', '黄山区', '34', '安徽省', '3410', '黄山市', '341003', '黄山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341004', '3410', '00,34,3410', '徽州区', '34', '安徽省', '3410', '黄山市', '341004', '徽州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341021', '3410', '00,34,3410', '歙县', '34', '安徽省', '3410', '黄山市', '341021', '歙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341022', '3410', '00,34,3410', '休宁县', '34', '安徽省', '3410', '黄山市', '341022', '休宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341023', '3410', '00,34,3410', '黟县', '34', '安徽省', '3410', '黄山市', '341023', '黟县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341024', '3410', '00,34,3410', '祁门县', '34', '安徽省', '3410', '黄山市', '341024', '祁门县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3411', '34', '00,34', '滁州市', '34', '安徽省', '3411', '滁州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341102', '3411', '00,34,3411', '琅琊区', '34', '安徽省', '3411', '滁州市', '341102', '琅琊区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341103', '3411', '00,34,3411', '南谯区', '34', '安徽省', '3411', '滁州市', '341103', '南谯区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341122', '3411', '00,34,3411', '来安县', '34', '安徽省', '3411', '滁州市', '341122', '来安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341124', '3411', '00,34,3411', '全椒县', '34', '安徽省', '3411', '滁州市', '341124', '全椒县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341125', '3411', '00,34,3411', '定远县', '34', '安徽省', '3411', '滁州市', '341125', '定远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341126', '3411', '00,34,3411', '凤阳县', '34', '安徽省', '3411', '滁州市', '341126', '凤阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341181', '3411', '00,34,3411', '天长市', '34', '安徽省', '3411', '滁州市', '341181', '天长市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341182', '3411', '00,34,3411', '明光市', '34', '安徽省', '3411', '滁州市', '341182', '明光市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3412', '34', '00,34', '阜阳市', '34', '安徽省', '3412', '阜阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341202', '3412', '00,34,3412', '颍州区', '34', '安徽省', '3412', '阜阳市', '341202', '颍州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341203', '3412', '00,34,3412', '颍东区', '34', '安徽省', '3412', '阜阳市', '341203', '颍东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341204', '3412', '00,34,3412', '颍泉区', '34', '安徽省', '3412', '阜阳市', '341204', '颍泉区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341221', '3412', '00,34,3412', '临泉县', '34', '安徽省', '3412', '阜阳市', '341221', '临泉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341222', '3412', '00,34,3412', '太和县', '34', '安徽省', '3412', '阜阳市', '341222', '太和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341225', '3412', '00,34,3412', '阜南县', '34', '安徽省', '3412', '阜阳市', '341225', '阜南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341226', '3412', '00,34,3412', '颍上县', '34', '安徽省', '3412', '阜阳市', '341226', '颍上县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341282', '3412', '00,34,3412', '界首市', '34', '安徽省', '3412', '阜阳市', '341282', '界首市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3413', '34', '00,34', '宿州市', '34', '安徽省', '3413', '宿州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341302', '3413', '00,34,3413', '埇桥区', '34', '安徽省', '3413', '宿州市', '341302', '埇桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341321', '3413', '00,34,3413', '砀山县', '34', '安徽省', '3413', '宿州市', '341321', '砀山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341322', '3413', '00,34,3413', '萧县', '34', '安徽省', '3413', '宿州市', '341322', '萧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341323', '3413', '00,34,3413', '灵璧县', '34', '安徽省', '3413', '宿州市', '341323', '灵璧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341324', '3413', '00,34,3413', '泗县', '34', '安徽省', '3413', '宿州市', '341324', '泗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3415', '34', '00,34', '六安市', '34', '安徽省', '3415', '六安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341502', '3415', '00,34,3415', '金安区', '34', '安徽省', '3415', '六安市', '341502', '金安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341503', '3415', '00,34,3415', '裕安区', '34', '安徽省', '3415', '六安市', '341503', '裕安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341504', '3415', '00,34,3415', '叶集区', '34', '安徽省', '3415', '六安市', '341504', '叶集区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341522', '3415', '00,34,3415', '霍邱县', '34', '安徽省', '3415', '六安市', '341522', '霍邱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341523', '3415', '00,34,3415', '舒城县', '34', '安徽省', '3415', '六安市', '341523', '舒城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341524', '3415', '00,34,3415', '金寨县', '34', '安徽省', '3415', '六安市', '341524', '金寨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341525', '3415', '00,34,3415', '霍山县', '34', '安徽省', '3415', '六安市', '341525', '霍山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3416', '34', '00,34', '亳州市', '34', '安徽省', '3416', '亳州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341602', '3416', '00,34,3416', '谯城区', '34', '安徽省', '3416', '亳州市', '341602', '谯城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341621', '3416', '00,34,3416', '涡阳县', '34', '安徽省', '3416', '亳州市', '341621', '涡阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341622', '3416', '00,34,3416', '蒙城县', '34', '安徽省', '3416', '亳州市', '341622', '蒙城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341623', '3416', '00,34,3416', '利辛县', '34', '安徽省', '3416', '亳州市', '341623', '利辛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3417', '34', '00,34', '池州市', '34', '安徽省', '3417', '池州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341702', '3417', '00,34,3417', '贵池区', '34', '安徽省', '3417', '池州市', '341702', '贵池区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341721', '3417', '00,34,3417', '东至县', '34', '安徽省', '3417', '池州市', '341721', '东至县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341722', '3417', '00,34,3417', '石台县', '34', '安徽省', '3417', '池州市', '341722', '石台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341723', '3417', '00,34,3417', '青阳县', '34', '安徽省', '3417', '池州市', '341723', '青阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3418', '34', '00,34', '宣城市', '34', '安徽省', '3418', '宣城市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('341802', '3418', '00,34,3418', '宣州区', '34', '安徽省', '3418', '宣城市', '341802', '宣州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341821', '3418', '00,34,3418', '郎溪县', '34', '安徽省', '3418', '宣城市', '341821', '郎溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341823', '3418', '00,34,3418', '泾县', '34', '安徽省', '3418', '宣城市', '341823', '泾县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341824', '3418', '00,34,3418', '绩溪县', '34', '安徽省', '3418', '宣城市', '341824', '绩溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341825', '3418', '00,34,3418', '旌德县', '34', '安徽省', '3418', '宣城市', '341825', '旌德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341881', '3418', '00,34,3418', '宁国市', '34', '安徽省', '3418', '宣城市', '341881', '宁国市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('341882', '3418', '00,34,3418', '广德市', '34', '安徽省', '3418', '宣城市', '341882', '广德市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('35', '00', '00', '福建省', '35', '福建省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('3501', '35', '00,35', '福州市', '35', '福建省', '3501', '福州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350102', '3501', '00,35,3501', '鼓楼区', '35', '福建省', '3501', '福州市', '350102', '鼓楼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350103', '3501', '00,35,3501', '台江区', '35', '福建省', '3501', '福州市', '350103', '台江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350104', '3501', '00,35,3501', '仓山区', '35', '福建省', '3501', '福州市', '350104', '仓山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350105', '3501', '00,35,3501', '马尾区', '35', '福建省', '3501', '福州市', '350105', '马尾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350111', '3501', '00,35,3501', '晋安区', '35', '福建省', '3501', '福州市', '350111', '晋安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350112', '3501', '00,35,3501', '长乐区', '35', '福建省', '3501', '福州市', '350112', '长乐区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350121', '3501', '00,35,3501', '闽侯县', '35', '福建省', '3501', '福州市', '350121', '闽侯县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350122', '3501', '00,35,3501', '连江县', '35', '福建省', '3501', '福州市', '350122', '连江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350123', '3501', '00,35,3501', '罗源县', '35', '福建省', '3501', '福州市', '350123', '罗源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350124', '3501', '00,35,3501', '闽清县', '35', '福建省', '3501', '福州市', '350124', '闽清县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350125', '3501', '00,35,3501', '永泰县', '35', '福建省', '3501', '福州市', '350125', '永泰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350128', '3501', '00,35,3501', '平潭县', '35', '福建省', '3501', '福州市', '350128', '平潭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350181', '3501', '00,35,3501', '福清市', '35', '福建省', '3501', '福州市', '350181', '福清市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3502', '35', '00,35', '厦门市', '35', '福建省', '3502', '厦门市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350203', '3502', '00,35,3502', '思明区', '35', '福建省', '3502', '厦门市', '350203', '思明区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350205', '3502', '00,35,3502', '海沧区', '35', '福建省', '3502', '厦门市', '350205', '海沧区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350206', '3502', '00,35,3502', '湖里区', '35', '福建省', '3502', '厦门市', '350206', '湖里区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350211', '3502', '00,35,3502', '集美区', '35', '福建省', '3502', '厦门市', '350211', '集美区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350212', '3502', '00,35,3502', '同安区', '35', '福建省', '3502', '厦门市', '350212', '同安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350213', '3502', '00,35,3502', '翔安区', '35', '福建省', '3502', '厦门市', '350213', '翔安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3503', '35', '00,35', '莆田市', '35', '福建省', '3503', '莆田市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350302', '3503', '00,35,3503', '城厢区', '35', '福建省', '3503', '莆田市', '350302', '城厢区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350303', '3503', '00,35,3503', '涵江区', '35', '福建省', '3503', '莆田市', '350303', '涵江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350304', '3503', '00,35,3503', '荔城区', '35', '福建省', '3503', '莆田市', '350304', '荔城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350305', '3503', '00,35,3503', '秀屿区', '35', '福建省', '3503', '莆田市', '350305', '秀屿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350322', '3503', '00,35,3503', '仙游县', '35', '福建省', '3503', '莆田市', '350322', '仙游县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3504', '35', '00,35', '三明市', '35', '福建省', '3504', '三明市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350402', '3504', '00,35,3504', '梅列区', '35', '福建省', '3504', '三明市', '350402', '梅列区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350403', '3504', '00,35,3504', '三元区', '35', '福建省', '3504', '三明市', '350403', '三元区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350421', '3504', '00,35,3504', '明溪县', '35', '福建省', '3504', '三明市', '350421', '明溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350423', '3504', '00,35,3504', '清流县', '35', '福建省', '3504', '三明市', '350423', '清流县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350424', '3504', '00,35,3504', '宁化县', '35', '福建省', '3504', '三明市', '350424', '宁化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350425', '3504', '00,35,3504', '大田县', '35', '福建省', '3504', '三明市', '350425', '大田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350426', '3504', '00,35,3504', '尤溪县', '35', '福建省', '3504', '三明市', '350426', '尤溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350427', '3504', '00,35,3504', '沙县', '35', '福建省', '3504', '三明市', '350427', '沙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350428', '3504', '00,35,3504', '将乐县', '35', '福建省', '3504', '三明市', '350428', '将乐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350429', '3504', '00,35,3504', '泰宁县', '35', '福建省', '3504', '三明市', '350429', '泰宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350430', '3504', '00,35,3504', '建宁县', '35', '福建省', '3504', '三明市', '350430', '建宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350481', '3504', '00,35,3504', '永安市', '35', '福建省', '3504', '三明市', '350481', '永安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3505', '35', '00,35', '泉州市', '35', '福建省', '3505', '泉州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350502', '3505', '00,35,3505', '鲤城区', '35', '福建省', '3505', '泉州市', '350502', '鲤城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350503', '3505', '00,35,3505', '丰泽区', '35', '福建省', '3505', '泉州市', '350503', '丰泽区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350504', '3505', '00,35,3505', '洛江区', '35', '福建省', '3505', '泉州市', '350504', '洛江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350505', '3505', '00,35,3505', '泉港区', '35', '福建省', '3505', '泉州市', '350505', '泉港区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350521', '3505', '00,35,3505', '惠安县', '35', '福建省', '3505', '泉州市', '350521', '惠安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350524', '3505', '00,35,3505', '安溪县', '35', '福建省', '3505', '泉州市', '350524', '安溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350525', '3505', '00,35,3505', '永春县', '35', '福建省', '3505', '泉州市', '350525', '永春县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350526', '3505', '00,35,3505', '德化县', '35', '福建省', '3505', '泉州市', '350526', '德化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350527', '3505', '00,35,3505', '金门县', '35', '福建省', '3505', '泉州市', '350527', '金门县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350581', '3505', '00,35,3505', '石狮市', '35', '福建省', '3505', '泉州市', '350581', '石狮市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350582', '3505', '00,35,3505', '晋江市', '35', '福建省', '3505', '泉州市', '350582', '晋江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350583', '3505', '00,35,3505', '南安市', '35', '福建省', '3505', '泉州市', '350583', '南安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3506', '35', '00,35', '漳州市', '35', '福建省', '3506', '漳州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350602', '3506', '00,35,3506', '芗城区', '35', '福建省', '3506', '漳州市', '350602', '芗城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350603', '3506', '00,35,3506', '龙文区', '35', '福建省', '3506', '漳州市', '350603', '龙文区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350622', '3506', '00,35,3506', '云霄县', '35', '福建省', '3506', '漳州市', '350622', '云霄县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350623', '3506', '00,35,3506', '漳浦县', '35', '福建省', '3506', '漳州市', '350623', '漳浦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350624', '3506', '00,35,3506', '诏安县', '35', '福建省', '3506', '漳州市', '350624', '诏安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350625', '3506', '00,35,3506', '长泰县', '35', '福建省', '3506', '漳州市', '350625', '长泰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350626', '3506', '00,35,3506', '东山县', '35', '福建省', '3506', '漳州市', '350626', '东山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350627', '3506', '00,35,3506', '南靖县', '35', '福建省', '3506', '漳州市', '350627', '南靖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350628', '3506', '00,35,3506', '平和县', '35', '福建省', '3506', '漳州市', '350628', '平和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350629', '3506', '00,35,3506', '华安县', '35', '福建省', '3506', '漳州市', '350629', '华安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350681', '3506', '00,35,3506', '龙海市', '35', '福建省', '3506', '漳州市', '350681', '龙海市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3507', '35', '00,35', '南平市', '35', '福建省', '3507', '南平市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350702', '3507', '00,35,3507', '延平区', '35', '福建省', '3507', '南平市', '350702', '延平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350703', '3507', '00,35,3507', '建阳区', '35', '福建省', '3507', '南平市', '350703', '建阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350721', '3507', '00,35,3507', '顺昌县', '35', '福建省', '3507', '南平市', '350721', '顺昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350722', '3507', '00,35,3507', '浦城县', '35', '福建省', '3507', '南平市', '350722', '浦城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350723', '3507', '00,35,3507', '光泽县', '35', '福建省', '3507', '南平市', '350723', '光泽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350724', '3507', '00,35,3507', '松溪县', '35', '福建省', '3507', '南平市', '350724', '松溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350725', '3507', '00,35,3507', '政和县', '35', '福建省', '3507', '南平市', '350725', '政和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350781', '3507', '00,35,3507', '邵武市', '35', '福建省', '3507', '南平市', '350781', '邵武市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350782', '3507', '00,35,3507', '武夷山市', '35', '福建省', '3507', '南平市', '350782', '武夷山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350783', '3507', '00,35,3507', '建瓯市', '35', '福建省', '3507', '南平市', '350783', '建瓯市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3508', '35', '00,35', '龙岩市', '35', '福建省', '3508', '龙岩市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350802', '3508', '00,35,3508', '新罗区', '35', '福建省', '3508', '龙岩市', '350802', '新罗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350803', '3508', '00,35,3508', '永定区', '35', '福建省', '3508', '龙岩市', '350803', '永定区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350821', '3508', '00,35,3508', '长汀县', '35', '福建省', '3508', '龙岩市', '350821', '长汀县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350823', '3508', '00,35,3508', '上杭县', '35', '福建省', '3508', '龙岩市', '350823', '上杭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350824', '3508', '00,35,3508', '武平县', '35', '福建省', '3508', '龙岩市', '350824', '武平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350825', '3508', '00,35,3508', '连城县', '35', '福建省', '3508', '龙岩市', '350825', '连城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350881', '3508', '00,35,3508', '漳平市', '35', '福建省', '3508', '龙岩市', '350881', '漳平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3509', '35', '00,35', '宁德市', '35', '福建省', '3509', '宁德市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('350902', '3509', '00,35,3509', '蕉城区', '35', '福建省', '3509', '宁德市', '350902', '蕉城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350921', '3509', '00,35,3509', '霞浦县', '35', '福建省', '3509', '宁德市', '350921', '霞浦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350922', '3509', '00,35,3509', '古田县', '35', '福建省', '3509', '宁德市', '350922', '古田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350923', '3509', '00,35,3509', '屏南县', '35', '福建省', '3509', '宁德市', '350923', '屏南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350924', '3509', '00,35,3509', '寿宁县', '35', '福建省', '3509', '宁德市', '350924', '寿宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350925', '3509', '00,35,3509', '周宁县', '35', '福建省', '3509', '宁德市', '350925', '周宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350926', '3509', '00,35,3509', '柘荣县', '35', '福建省', '3509', '宁德市', '350926', '柘荣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350981', '3509', '00,35,3509', '福安市', '35', '福建省', '3509', '宁德市', '350981', '福安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('350982', '3509', '00,35,3509', '福鼎市', '35', '福建省', '3509', '宁德市', '350982', '福鼎市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('36', '00', '00', '江西省', '36', '江西省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('3601', '36', '00,36', '南昌市', '36', '江西省', '3601', '南昌市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360102', '3601', '00,36,3601', '东湖区', '36', '江西省', '3601', '南昌市', '360102', '东湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360103', '3601', '00,36,3601', '西湖区', '36', '江西省', '3601', '南昌市', '360103', '西湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360104', '3601', '00,36,3601', '青云谱区', '36', '江西省', '3601', '南昌市', '360104', '青云谱区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360111', '3601', '00,36,3601', '青山湖区', '36', '江西省', '3601', '南昌市', '360111', '青山湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360112', '3601', '00,36,3601', '新建区', '36', '江西省', '3601', '南昌市', '360112', '新建区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360113', '3601', '00,36,3601', '红谷滩区', '36', '江西省', '3601', '南昌市', '360113', '红谷滩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360121', '3601', '00,36,3601', '南昌县', '36', '江西省', '3601', '南昌市', '360121', '南昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360123', '3601', '00,36,3601', '安义县', '36', '江西省', '3601', '南昌市', '360123', '安义县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360124', '3601', '00,36,3601', '进贤县', '36', '江西省', '3601', '南昌市', '360124', '进贤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3602', '36', '00,36', '景德镇市', '36', '江西省', '3602', '景德镇市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360202', '3602', '00,36,3602', '昌江区', '36', '江西省', '3602', '景德镇市', '360202', '昌江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360203', '3602', '00,36,3602', '珠山区', '36', '江西省', '3602', '景德镇市', '360203', '珠山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360222', '3602', '00,36,3602', '浮梁县', '36', '江西省', '3602', '景德镇市', '360222', '浮梁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360281', '3602', '00,36,3602', '乐平市', '36', '江西省', '3602', '景德镇市', '360281', '乐平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3603', '36', '00,36', '萍乡市', '36', '江西省', '3603', '萍乡市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360302', '3603', '00,36,3603', '安源区', '36', '江西省', '3603', '萍乡市', '360302', '安源区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360313', '3603', '00,36,3603', '湘东区', '36', '江西省', '3603', '萍乡市', '360313', '湘东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360321', '3603', '00,36,3603', '莲花县', '36', '江西省', '3603', '萍乡市', '360321', '莲花县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360322', '3603', '00,36,3603', '上栗县', '36', '江西省', '3603', '萍乡市', '360322', '上栗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360323', '3603', '00,36,3603', '芦溪县', '36', '江西省', '3603', '萍乡市', '360323', '芦溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3604', '36', '00,36', '九江市', '36', '江西省', '3604', '九江市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360402', '3604', '00,36,3604', '濂溪区', '36', '江西省', '3604', '九江市', '360402', '濂溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360403', '3604', '00,36,3604', '浔阳区', '36', '江西省', '3604', '九江市', '360403', '浔阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360404', '3604', '00,36,3604', '柴桑区', '36', '江西省', '3604', '九江市', '360404', '柴桑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360423', '3604', '00,36,3604', '武宁县', '36', '江西省', '3604', '九江市', '360423', '武宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360424', '3604', '00,36,3604', '修水县', '36', '江西省', '3604', '九江市', '360424', '修水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360425', '3604', '00,36,3604', '永修县', '36', '江西省', '3604', '九江市', '360425', '永修县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360426', '3604', '00,36,3604', '德安县', '36', '江西省', '3604', '九江市', '360426', '德安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360428', '3604', '00,36,3604', '都昌县', '36', '江西省', '3604', '九江市', '360428', '都昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360429', '3604', '00,36,3604', '湖口县', '36', '江西省', '3604', '九江市', '360429', '湖口县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360430', '3604', '00,36,3604', '彭泽县', '36', '江西省', '3604', '九江市', '360430', '彭泽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360481', '3604', '00,36,3604', '瑞昌市', '36', '江西省', '3604', '九江市', '360481', '瑞昌市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360482', '3604', '00,36,3604', '共青城市', '36', '江西省', '3604', '九江市', '360482', '共青城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360483', '3604', '00,36,3604', '庐山市', '36', '江西省', '3604', '九江市', '360483', '庐山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3605', '36', '00,36', '新余市', '36', '江西省', '3605', '新余市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360502', '3605', '00,36,3605', '渝水区', '36', '江西省', '3605', '新余市', '360502', '渝水区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360521', '3605', '00,36,3605', '分宜县', '36', '江西省', '3605', '新余市', '360521', '分宜县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3606', '36', '00,36', '鹰潭市', '36', '江西省', '3606', '鹰潭市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360602', '3606', '00,36,3606', '月湖区', '36', '江西省', '3606', '鹰潭市', '360602', '月湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360603', '3606', '00,36,3606', '余江区', '36', '江西省', '3606', '鹰潭市', '360603', '余江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360681', '3606', '00,36,3606', '贵溪市', '36', '江西省', '3606', '鹰潭市', '360681', '贵溪市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3607', '36', '00,36', '赣州市', '36', '江西省', '3607', '赣州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360702', '3607', '00,36,3607', '章贡区', '36', '江西省', '3607', '赣州市', '360702', '章贡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360703', '3607', '00,36,3607', '南康区', '36', '江西省', '3607', '赣州市', '360703', '南康区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360704', '3607', '00,36,3607', '赣县区', '36', '江西省', '3607', '赣州市', '360704', '赣县区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360722', '3607', '00,36,3607', '信丰县', '36', '江西省', '3607', '赣州市', '360722', '信丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360723', '3607', '00,36,3607', '大余县', '36', '江西省', '3607', '赣州市', '360723', '大余县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360724', '3607', '00,36,3607', '上犹县', '36', '江西省', '3607', '赣州市', '360724', '上犹县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360725', '3607', '00,36,3607', '崇义县', '36', '江西省', '3607', '赣州市', '360725', '崇义县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360726', '3607', '00,36,3607', '安远县', '36', '江西省', '3607', '赣州市', '360726', '安远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360727', '3607', '00,36,3607', '龙南县', '36', '江西省', '3607', '赣州市', '360727', '龙南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360728', '3607', '00,36,3607', '定南县', '36', '江西省', '3607', '赣州市', '360728', '定南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360729', '3607', '00,36,3607', '全南县', '36', '江西省', '3607', '赣州市', '360729', '全南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360730', '3607', '00,36,3607', '宁都县', '36', '江西省', '3607', '赣州市', '360730', '宁都县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360731', '3607', '00,36,3607', '于都县', '36', '江西省', '3607', '赣州市', '360731', '于都县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360732', '3607', '00,36,3607', '兴国县', '36', '江西省', '3607', '赣州市', '360732', '兴国县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360733', '3607', '00,36,3607', '会昌县', '36', '江西省', '3607', '赣州市', '360733', '会昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360734', '3607', '00,36,3607', '寻乌县', '36', '江西省', '3607', '赣州市', '360734', '寻乌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360735', '3607', '00,36,3607', '石城县', '36', '江西省', '3607', '赣州市', '360735', '石城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360781', '3607', '00,36,3607', '瑞金市', '36', '江西省', '3607', '赣州市', '360781', '瑞金市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3608', '36', '00,36', '吉安市', '36', '江西省', '3608', '吉安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360802', '3608', '00,36,3608', '吉州区', '36', '江西省', '3608', '吉安市', '360802', '吉州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360803', '3608', '00,36,3608', '青原区', '36', '江西省', '3608', '吉安市', '360803', '青原区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360821', '3608', '00,36,3608', '吉安县', '36', '江西省', '3608', '吉安市', '360821', '吉安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360822', '3608', '00,36,3608', '吉水县', '36', '江西省', '3608', '吉安市', '360822', '吉水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360823', '3608', '00,36,3608', '峡江县', '36', '江西省', '3608', '吉安市', '360823', '峡江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360824', '3608', '00,36,3608', '新干县', '36', '江西省', '3608', '吉安市', '360824', '新干县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360825', '3608', '00,36,3608', '永丰县', '36', '江西省', '3608', '吉安市', '360825', '永丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360826', '3608', '00,36,3608', '泰和县', '36', '江西省', '3608', '吉安市', '360826', '泰和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360827', '3608', '00,36,3608', '遂川县', '36', '江西省', '3608', '吉安市', '360827', '遂川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360828', '3608', '00,36,3608', '万安县', '36', '江西省', '3608', '吉安市', '360828', '万安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360829', '3608', '00,36,3608', '安福县', '36', '江西省', '3608', '吉安市', '360829', '安福县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360830', '3608', '00,36,3608', '永新县', '36', '江西省', '3608', '吉安市', '360830', '永新县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360881', '3608', '00,36,3608', '井冈山市', '36', '江西省', '3608', '吉安市', '360881', '井冈山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3609', '36', '00,36', '宜春市', '36', '江西省', '3609', '宜春市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('360902', '3609', '00,36,3609', '袁州区', '36', '江西省', '3609', '宜春市', '360902', '袁州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360921', '3609', '00,36,3609', '奉新县', '36', '江西省', '3609', '宜春市', '360921', '奉新县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360922', '3609', '00,36,3609', '万载县', '36', '江西省', '3609', '宜春市', '360922', '万载县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360923', '3609', '00,36,3609', '上高县', '36', '江西省', '3609', '宜春市', '360923', '上高县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360924', '3609', '00,36,3609', '宜丰县', '36', '江西省', '3609', '宜春市', '360924', '宜丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360925', '3609', '00,36,3609', '靖安县', '36', '江西省', '3609', '宜春市', '360925', '靖安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360926', '3609', '00,36,3609', '铜鼓县', '36', '江西省', '3609', '宜春市', '360926', '铜鼓县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360981', '3609', '00,36,3609', '丰城市', '36', '江西省', '3609', '宜春市', '360981', '丰城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360982', '3609', '00,36,3609', '樟树市', '36', '江西省', '3609', '宜春市', '360982', '樟树市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('360983', '3609', '00,36,3609', '高安市', '36', '江西省', '3609', '宜春市', '360983', '高安市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3610', '36', '00,36', '抚州市', '36', '江西省', '3610', '抚州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('361002', '3610', '00,36,3610', '临川区', '36', '江西省', '3610', '抚州市', '361002', '临川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361003', '3610', '00,36,3610', '东乡区', '36', '江西省', '3610', '抚州市', '361003', '东乡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361021', '3610', '00,36,3610', '南城县', '36', '江西省', '3610', '抚州市', '361021', '南城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361022', '3610', '00,36,3610', '黎川县', '36', '江西省', '3610', '抚州市', '361022', '黎川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361023', '3610', '00,36,3610', '南丰县', '36', '江西省', '3610', '抚州市', '361023', '南丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361024', '3610', '00,36,3610', '崇仁县', '36', '江西省', '3610', '抚州市', '361024', '崇仁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361025', '3610', '00,36,3610', '乐安县', '36', '江西省', '3610', '抚州市', '361025', '乐安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361026', '3610', '00,36,3610', '宜黄县', '36', '江西省', '3610', '抚州市', '361026', '宜黄县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361027', '3610', '00,36,3610', '金溪县', '36', '江西省', '3610', '抚州市', '361027', '金溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361028', '3610', '00,36,3610', '资溪县', '36', '江西省', '3610', '抚州市', '361028', '资溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361030', '3610', '00,36,3610', '广昌县', '36', '江西省', '3610', '抚州市', '361030', '广昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3611', '36', '00,36', '上饶市', '36', '江西省', '3611', '上饶市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('361102', '3611', '00,36,3611', '信州区', '36', '江西省', '3611', '上饶市', '361102', '信州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361103', '3611', '00,36,3611', '广丰区', '36', '江西省', '3611', '上饶市', '361103', '广丰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361104', '3611', '00,36,3611', '广信区', '36', '江西省', '3611', '上饶市', '361104', '广信区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361123', '3611', '00,36,3611', '玉山县', '36', '江西省', '3611', '上饶市', '361123', '玉山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361124', '3611', '00,36,3611', '铅山县', '36', '江西省', '3611', '上饶市', '361124', '铅山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361125', '3611', '00,36,3611', '横峰县', '36', '江西省', '3611', '上饶市', '361125', '横峰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361126', '3611', '00,36,3611', '弋阳县', '36', '江西省', '3611', '上饶市', '361126', '弋阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361127', '3611', '00,36,3611', '余干县', '36', '江西省', '3611', '上饶市', '361127', '余干县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361128', '3611', '00,36,3611', '鄱阳县', '36', '江西省', '3611', '上饶市', '361128', '鄱阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361129', '3611', '00,36,3611', '万年县', '36', '江西省', '3611', '上饶市', '361129', '万年县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361130', '3611', '00,36,3611', '婺源县', '36', '江西省', '3611', '上饶市', '361130', '婺源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('361181', '3611', '00,36,3611', '德兴市', '36', '江西省', '3611', '上饶市', '361181', '德兴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('37', '00', '00', '山东省', '37', '山东省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('3701', '37', '00,37', '济南市', '37', '山东省', '3701', '济南市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370102', '3701', '00,37,3701', '历下区', '37', '山东省', '3701', '济南市', '370102', '历下区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370103', '3701', '00,37,3701', '市中区', '37', '山东省', '3701', '济南市', '370103', '市中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370104', '3701', '00,37,3701', '槐荫区', '37', '山东省', '3701', '济南市', '370104', '槐荫区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370105', '3701', '00,37,3701', '天桥区', '37', '山东省', '3701', '济南市', '370105', '天桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370112', '3701', '00,37,3701', '历城区', '37', '山东省', '3701', '济南市', '370112', '历城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370113', '3701', '00,37,3701', '长清区', '37', '山东省', '3701', '济南市', '370113', '长清区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370114', '3701', '00,37,3701', '章丘区', '37', '山东省', '3701', '济南市', '370114', '章丘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370115', '3701', '00,37,3701', '济阳区', '37', '山东省', '3701', '济南市', '370115', '济阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370116', '3701', '00,37,3701', '莱芜区', '37', '山东省', '3701', '济南市', '370116', '莱芜区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370117', '3701', '00,37,3701', '钢城区', '37', '山东省', '3701', '济南市', '370117', '钢城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370124', '3701', '00,37,3701', '平阴县', '37', '山东省', '3701', '济南市', '370124', '平阴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370126', '3701', '00,37,3701', '商河县', '37', '山东省', '3701', '济南市', '370126', '商河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3702', '37', '00,37', '青岛市', '37', '山东省', '3702', '青岛市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370202', '3702', '00,37,3702', '市南区', '37', '山东省', '3702', '青岛市', '370202', '市南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370203', '3702', '00,37,3702', '市北区', '37', '山东省', '3702', '青岛市', '370203', '市北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370211', '3702', '00,37,3702', '黄岛区', '37', '山东省', '3702', '青岛市', '370211', '黄岛区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370212', '3702', '00,37,3702', '崂山区', '37', '山东省', '3702', '青岛市', '370212', '崂山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370213', '3702', '00,37,3702', '李沧区', '37', '山东省', '3702', '青岛市', '370213', '李沧区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370214', '3702', '00,37,3702', '城阳区', '37', '山东省', '3702', '青岛市', '370214', '城阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370215', '3702', '00,37,3702', '即墨区', '37', '山东省', '3702', '青岛市', '370215', '即墨区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370281', '3702', '00,37,3702', '胶州市', '37', '山东省', '3702', '青岛市', '370281', '胶州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370283', '3702', '00,37,3702', '平度市', '37', '山东省', '3702', '青岛市', '370283', '平度市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370285', '3702', '00,37,3702', '莱西市', '37', '山东省', '3702', '青岛市', '370285', '莱西市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3703', '37', '00,37', '淄博市', '37', '山东省', '3703', '淄博市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370302', '3703', '00,37,3703', '淄川区', '37', '山东省', '3703', '淄博市', '370302', '淄川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370303', '3703', '00,37,3703', '张店区', '37', '山东省', '3703', '淄博市', '370303', '张店区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370304', '3703', '00,37,3703', '博山区', '37', '山东省', '3703', '淄博市', '370304', '博山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370305', '3703', '00,37,3703', '临淄区', '37', '山东省', '3703', '淄博市', '370305', '临淄区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370306', '3703', '00,37,3703', '周村区', '37', '山东省', '3703', '淄博市', '370306', '周村区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370321', '3703', '00,37,3703', '桓台县', '37', '山东省', '3703', '淄博市', '370321', '桓台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370322', '3703', '00,37,3703', '高青县', '37', '山东省', '3703', '淄博市', '370322', '高青县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370323', '3703', '00,37,3703', '沂源县', '37', '山东省', '3703', '淄博市', '370323', '沂源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3704', '37', '00,37', '枣庄市', '37', '山东省', '3704', '枣庄市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370402', '3704', '00,37,3704', '市中区', '37', '山东省', '3704', '枣庄市', '370402', '市中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370403', '3704', '00,37,3704', '薛城区', '37', '山东省', '3704', '枣庄市', '370403', '薛城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370404', '3704', '00,37,3704', '峄城区', '37', '山东省', '3704', '枣庄市', '370404', '峄城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370405', '3704', '00,37,3704', '台儿庄区', '37', '山东省', '3704', '枣庄市', '370405', '台儿庄区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370406', '3704', '00,37,3704', '山亭区', '37', '山东省', '3704', '枣庄市', '370406', '山亭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370481', '3704', '00,37,3704', '滕州市', '37', '山东省', '3704', '枣庄市', '370481', '滕州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3705', '37', '00,37', '东营市', '37', '山东省', '3705', '东营市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370502', '3705', '00,37,3705', '东营区', '37', '山东省', '3705', '东营市', '370502', '东营区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370503', '3705', '00,37,3705', '河口区', '37', '山东省', '3705', '东营市', '370503', '河口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370505', '3705', '00,37,3705', '垦利区', '37', '山东省', '3705', '东营市', '370505', '垦利区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370522', '3705', '00,37,3705', '利津县', '37', '山东省', '3705', '东营市', '370522', '利津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370523', '3705', '00,37,3705', '广饶县', '37', '山东省', '3705', '东营市', '370523', '广饶县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3706', '37', '00,37', '烟台市', '37', '山东省', '3706', '烟台市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370602', '3706', '00,37,3706', '芝罘区', '37', '山东省', '3706', '烟台市', '370602', '芝罘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370611', '3706', '00,37,3706', '福山区', '37', '山东省', '3706', '烟台市', '370611', '福山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370612', '3706', '00,37,3706', '牟平区', '37', '山东省', '3706', '烟台市', '370612', '牟平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370613', '3706', '00,37,3706', '莱山区', '37', '山东省', '3706', '烟台市', '370613', '莱山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370634', '3706', '00,37,3706', '长岛县', '37', '山东省', '3706', '烟台市', '370634', '长岛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370681', '3706', '00,37,3706', '龙口市', '37', '山东省', '3706', '烟台市', '370681', '龙口市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370682', '3706', '00,37,3706', '莱阳市', '37', '山东省', '3706', '烟台市', '370682', '莱阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370683', '3706', '00,37,3706', '莱州市', '37', '山东省', '3706', '烟台市', '370683', '莱州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370684', '3706', '00,37,3706', '蓬莱市', '37', '山东省', '3706', '烟台市', '370684', '蓬莱市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370685', '3706', '00,37,3706', '招远市', '37', '山东省', '3706', '烟台市', '370685', '招远市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370686', '3706', '00,37,3706', '栖霞市', '37', '山东省', '3706', '烟台市', '370686', '栖霞市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370687', '3706', '00,37,3706', '海阳市', '37', '山东省', '3706', '烟台市', '370687', '海阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3707', '37', '00,37', '潍坊市', '37', '山东省', '3707', '潍坊市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370702', '3707', '00,37,3707', '潍城区', '37', '山东省', '3707', '潍坊市', '370702', '潍城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370703', '3707', '00,37,3707', '寒亭区', '37', '山东省', '3707', '潍坊市', '370703', '寒亭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370704', '3707', '00,37,3707', '坊子区', '37', '山东省', '3707', '潍坊市', '370704', '坊子区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370705', '3707', '00,37,3707', '奎文区', '37', '山东省', '3707', '潍坊市', '370705', '奎文区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370724', '3707', '00,37,3707', '临朐县', '37', '山东省', '3707', '潍坊市', '370724', '临朐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370725', '3707', '00,37,3707', '昌乐县', '37', '山东省', '3707', '潍坊市', '370725', '昌乐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370781', '3707', '00,37,3707', '青州市', '37', '山东省', '3707', '潍坊市', '370781', '青州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370782', '3707', '00,37,3707', '诸城市', '37', '山东省', '3707', '潍坊市', '370782', '诸城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370783', '3707', '00,37,3707', '寿光市', '37', '山东省', '3707', '潍坊市', '370783', '寿光市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370784', '3707', '00,37,3707', '安丘市', '37', '山东省', '3707', '潍坊市', '370784', '安丘市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370785', '3707', '00,37,3707', '高密市', '37', '山东省', '3707', '潍坊市', '370785', '高密市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370786', '3707', '00,37,3707', '昌邑市', '37', '山东省', '3707', '潍坊市', '370786', '昌邑市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3708', '37', '00,37', '济宁市', '37', '山东省', '3708', '济宁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370811', '3708', '00,37,3708', '任城区', '37', '山东省', '3708', '济宁市', '370811', '任城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370812', '3708', '00,37,3708', '兖州区', '37', '山东省', '3708', '济宁市', '370812', '兖州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370826', '3708', '00,37,3708', '微山县', '37', '山东省', '3708', '济宁市', '370826', '微山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370827', '3708', '00,37,3708', '鱼台县', '37', '山东省', '3708', '济宁市', '370827', '鱼台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370828', '3708', '00,37,3708', '金乡县', '37', '山东省', '3708', '济宁市', '370828', '金乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370829', '3708', '00,37,3708', '嘉祥县', '37', '山东省', '3708', '济宁市', '370829', '嘉祥县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370830', '3708', '00,37,3708', '汶上县', '37', '山东省', '3708', '济宁市', '370830', '汶上县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370831', '3708', '00,37,3708', '泗水县', '37', '山东省', '3708', '济宁市', '370831', '泗水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370832', '3708', '00,37,3708', '梁山县', '37', '山东省', '3708', '济宁市', '370832', '梁山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370881', '3708', '00,37,3708', '曲阜市', '37', '山东省', '3708', '济宁市', '370881', '曲阜市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370883', '3708', '00,37,3708', '邹城市', '37', '山东省', '3708', '济宁市', '370883', '邹城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3709', '37', '00,37', '泰安市', '37', '山东省', '3709', '泰安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('370902', '3709', '00,37,3709', '泰山区', '37', '山东省', '3709', '泰安市', '370902', '泰山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370911', '3709', '00,37,3709', '岱岳区', '37', '山东省', '3709', '泰安市', '370911', '岱岳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370921', '3709', '00,37,3709', '宁阳县', '37', '山东省', '3709', '泰安市', '370921', '宁阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370923', '3709', '00,37,3709', '东平县', '37', '山东省', '3709', '泰安市', '370923', '东平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370982', '3709', '00,37,3709', '新泰市', '37', '山东省', '3709', '泰安市', '370982', '新泰市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('370983', '3709', '00,37,3709', '肥城市', '37', '山东省', '3709', '泰安市', '370983', '肥城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3710', '37', '00,37', '威海市', '37', '山东省', '3710', '威海市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('371002', '3710', '00,37,3710', '环翠区', '37', '山东省', '3710', '威海市', '371002', '环翠区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371003', '3710', '00,37,3710', '文登区', '37', '山东省', '3710', '威海市', '371003', '文登区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371082', '3710', '00,37,3710', '荣成市', '37', '山东省', '3710', '威海市', '371082', '荣成市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371083', '3710', '00,37,3710', '乳山市', '37', '山东省', '3710', '威海市', '371083', '乳山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3711', '37', '00,37', '日照市', '37', '山东省', '3711', '日照市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('371102', '3711', '00,37,3711', '东港区', '37', '山东省', '3711', '日照市', '371102', '东港区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371103', '3711', '00,37,3711', '岚山区', '37', '山东省', '3711', '日照市', '371103', '岚山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371121', '3711', '00,37,3711', '五莲县', '37', '山东省', '3711', '日照市', '371121', '五莲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371122', '3711', '00,37,3711', '莒县', '37', '山东省', '3711', '日照市', '371122', '莒县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3713', '37', '00,37', '临沂市', '37', '山东省', '3713', '临沂市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('371302', '3713', '00,37,3713', '兰山区', '37', '山东省', '3713', '临沂市', '371302', '兰山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371311', '3713', '00,37,3713', '罗庄区', '37', '山东省', '3713', '临沂市', '371311', '罗庄区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371312', '3713', '00,37,3713', '河东区', '37', '山东省', '3713', '临沂市', '371312', '河东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371321', '3713', '00,37,3713', '沂南县', '37', '山东省', '3713', '临沂市', '371321', '沂南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371322', '3713', '00,37,3713', '郯城县', '37', '山东省', '3713', '临沂市', '371322', '郯城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371323', '3713', '00,37,3713', '沂水县', '37', '山东省', '3713', '临沂市', '371323', '沂水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371324', '3713', '00,37,3713', '兰陵县', '37', '山东省', '3713', '临沂市', '371324', '兰陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371325', '3713', '00,37,3713', '费县', '37', '山东省', '3713', '临沂市', '371325', '费县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371326', '3713', '00,37,3713', '平邑县', '37', '山东省', '3713', '临沂市', '371326', '平邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371327', '3713', '00,37,3713', '莒南县', '37', '山东省', '3713', '临沂市', '371327', '莒南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371328', '3713', '00,37,3713', '蒙阴县', '37', '山东省', '3713', '临沂市', '371328', '蒙阴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371329', '3713', '00,37,3713', '临沭县', '37', '山东省', '3713', '临沂市', '371329', '临沭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3714', '37', '00,37', '德州市', '37', '山东省', '3714', '德州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('371402', '3714', '00,37,3714', '德城区', '37', '山东省', '3714', '德州市', '371402', '德城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371403', '3714', '00,37,3714', '陵城区', '37', '山东省', '3714', '德州市', '371403', '陵城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371422', '3714', '00,37,3714', '宁津县', '37', '山东省', '3714', '德州市', '371422', '宁津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371423', '3714', '00,37,3714', '庆云县', '37', '山东省', '3714', '德州市', '371423', '庆云县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371424', '3714', '00,37,3714', '临邑县', '37', '山东省', '3714', '德州市', '371424', '临邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371425', '3714', '00,37,3714', '齐河县', '37', '山东省', '3714', '德州市', '371425', '齐河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371426', '3714', '00,37,3714', '平原县', '37', '山东省', '3714', '德州市', '371426', '平原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371427', '3714', '00,37,3714', '夏津县', '37', '山东省', '3714', '德州市', '371427', '夏津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371428', '3714', '00,37,3714', '武城县', '37', '山东省', '3714', '德州市', '371428', '武城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371481', '3714', '00,37,3714', '乐陵市', '37', '山东省', '3714', '德州市', '371481', '乐陵市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371482', '3714', '00,37,3714', '禹城市', '37', '山东省', '3714', '德州市', '371482', '禹城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3715', '37', '00,37', '聊城市', '37', '山东省', '3715', '聊城市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('371502', '3715', '00,37,3715', '东昌府区', '37', '山东省', '3715', '聊城市', '371502', '东昌府区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371503', '3715', '00,37,3715', '茌平区', '37', '山东省', '3715', '聊城市', '371503', '茌平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371521', '3715', '00,37,3715', '阳谷县', '37', '山东省', '3715', '聊城市', '371521', '阳谷县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371522', '3715', '00,37,3715', '莘县', '37', '山东省', '3715', '聊城市', '371522', '莘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371524', '3715', '00,37,3715', '东阿县', '37', '山东省', '3715', '聊城市', '371524', '东阿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371525', '3715', '00,37,3715', '冠县', '37', '山东省', '3715', '聊城市', '371525', '冠县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371526', '3715', '00,37,3715', '高唐县', '37', '山东省', '3715', '聊城市', '371526', '高唐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371581', '3715', '00,37,3715', '临清市', '37', '山东省', '3715', '聊城市', '371581', '临清市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3716', '37', '00,37', '滨州市', '37', '山东省', '3716', '滨州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('371602', '3716', '00,37,3716', '滨城区', '37', '山东省', '3716', '滨州市', '371602', '滨城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371603', '3716', '00,37,3716', '沾化区', '37', '山东省', '3716', '滨州市', '371603', '沾化区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371621', '3716', '00,37,3716', '惠民县', '37', '山东省', '3716', '滨州市', '371621', '惠民县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371622', '3716', '00,37,3716', '阳信县', '37', '山东省', '3716', '滨州市', '371622', '阳信县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371623', '3716', '00,37,3716', '无棣县', '37', '山东省', '3716', '滨州市', '371623', '无棣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371625', '3716', '00,37,3716', '博兴县', '37', '山东省', '3716', '滨州市', '371625', '博兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371681', '3716', '00,37,3716', '邹平市', '37', '山东省', '3716', '滨州市', '371681', '邹平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('3717', '37', '00,37', '菏泽市', '37', '山东省', '3717', '菏泽市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('371702', '3717', '00,37,3717', '牡丹区', '37', '山东省', '3717', '菏泽市', '371702', '牡丹区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371703', '3717', '00,37,3717', '定陶区', '37', '山东省', '3717', '菏泽市', '371703', '定陶区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371721', '3717', '00,37,3717', '曹县', '37', '山东省', '3717', '菏泽市', '371721', '曹县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371722', '3717', '00,37,3717', '单县', '37', '山东省', '3717', '菏泽市', '371722', '单县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371723', '3717', '00,37,3717', '成武县', '37', '山东省', '3717', '菏泽市', '371723', '成武县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371724', '3717', '00,37,3717', '巨野县', '37', '山东省', '3717', '菏泽市', '371724', '巨野县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371725', '3717', '00,37,3717', '郓城县', '37', '山东省', '3717', '菏泽市', '371725', '郓城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371726', '3717', '00,37,3717', '鄄城县', '37', '山东省', '3717', '菏泽市', '371726', '鄄城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('371728', '3717', '00,37,3717', '东明县', '37', '山东省', '3717', '菏泽市', '371728', '东明县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('41', '00', '00', '河南省', '41', '河南省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('4101', '41', '00,41', '郑州市', '41', '河南省', '4101', '郑州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410102', '4101', '00,41,4101', '中原区', '41', '河南省', '4101', '郑州市', '410102', '中原区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410103', '4101', '00,41,4101', '二七区', '41', '河南省', '4101', '郑州市', '410103', '二七区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410104', '4101', '00,41,4101', '管城回族区', '41', '河南省', '4101', '郑州市', '410104', '管城回族区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410105', '4101', '00,41,4101', '金水区', '41', '河南省', '4101', '郑州市', '410105', '金水区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410106', '4101', '00,41,4101', '上街区', '41', '河南省', '4101', '郑州市', '410106', '上街区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410108', '4101', '00,41,4101', '惠济区', '41', '河南省', '4101', '郑州市', '410108', '惠济区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410122', '4101', '00,41,4101', '中牟县', '41', '河南省', '4101', '郑州市', '410122', '中牟县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410181', '4101', '00,41,4101', '巩义市', '41', '河南省', '4101', '郑州市', '410181', '巩义市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410182', '4101', '00,41,4101', '荥阳市', '41', '河南省', '4101', '郑州市', '410182', '荥阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410183', '4101', '00,41,4101', '新密市', '41', '河南省', '4101', '郑州市', '410183', '新密市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410184', '4101', '00,41,4101', '新郑市', '41', '河南省', '4101', '郑州市', '410184', '新郑市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410185', '4101', '00,41,4101', '登封市', '41', '河南省', '4101', '郑州市', '410185', '登封市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4102', '41', '00,41', '开封市', '41', '河南省', '4102', '开封市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410202', '4102', '00,41,4102', '龙亭区', '41', '河南省', '4102', '开封市', '410202', '龙亭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410203', '4102', '00,41,4102', '顺河回族区', '41', '河南省', '4102', '开封市', '410203', '顺河回族区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410204', '4102', '00,41,4102', '鼓楼区', '41', '河南省', '4102', '开封市', '410204', '鼓楼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410205', '4102', '00,41,4102', '禹王台区', '41', '河南省', '4102', '开封市', '410205', '禹王台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410212', '4102', '00,41,4102', '祥符区', '41', '河南省', '4102', '开封市', '410212', '祥符区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410221', '4102', '00,41,4102', '杞县', '41', '河南省', '4102', '开封市', '410221', '杞县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410222', '4102', '00,41,4102', '通许县', '41', '河南省', '4102', '开封市', '410222', '通许县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410223', '4102', '00,41,4102', '尉氏县', '41', '河南省', '4102', '开封市', '410223', '尉氏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410225', '4102', '00,41,4102', '兰考县', '41', '河南省', '4102', '开封市', '410225', '兰考县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4103', '41', '00,41', '洛阳市', '41', '河南省', '4103', '洛阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410302', '4103', '00,41,4103', '老城区', '41', '河南省', '4103', '洛阳市', '410302', '老城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410303', '4103', '00,41,4103', '西工区', '41', '河南省', '4103', '洛阳市', '410303', '西工区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410304', '4103', '00,41,4103', '瀍河回族区', '41', '河南省', '4103', '洛阳市', '410304', '瀍河回族区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410305', '4103', '00,41,4103', '涧西区', '41', '河南省', '4103', '洛阳市', '410305', '涧西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410306', '4103', '00,41,4103', '吉利区', '41', '河南省', '4103', '洛阳市', '410306', '吉利区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410311', '4103', '00,41,4103', '洛龙区', '41', '河南省', '4103', '洛阳市', '410311', '洛龙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410322', '4103', '00,41,4103', '孟津县', '41', '河南省', '4103', '洛阳市', '410322', '孟津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410323', '4103', '00,41,4103', '新安县', '41', '河南省', '4103', '洛阳市', '410323', '新安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410324', '4103', '00,41,4103', '栾川县', '41', '河南省', '4103', '洛阳市', '410324', '栾川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410325', '4103', '00,41,4103', '嵩县', '41', '河南省', '4103', '洛阳市', '410325', '嵩县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410326', '4103', '00,41,4103', '汝阳县', '41', '河南省', '4103', '洛阳市', '410326', '汝阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410327', '4103', '00,41,4103', '宜阳县', '41', '河南省', '4103', '洛阳市', '410327', '宜阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410328', '4103', '00,41,4103', '洛宁县', '41', '河南省', '4103', '洛阳市', '410328', '洛宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410329', '4103', '00,41,4103', '伊川县', '41', '河南省', '4103', '洛阳市', '410329', '伊川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410381', '4103', '00,41,4103', '偃师市', '41', '河南省', '4103', '洛阳市', '410381', '偃师市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4104', '41', '00,41', '平顶山市', '41', '河南省', '4104', '平顶山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410402', '4104', '00,41,4104', '新华区', '41', '河南省', '4104', '平顶山市', '410402', '新华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410403', '4104', '00,41,4104', '卫东区', '41', '河南省', '4104', '平顶山市', '410403', '卫东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410404', '4104', '00,41,4104', '石龙区', '41', '河南省', '4104', '平顶山市', '410404', '石龙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410411', '4104', '00,41,4104', '湛河区', '41', '河南省', '4104', '平顶山市', '410411', '湛河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410421', '4104', '00,41,4104', '宝丰县', '41', '河南省', '4104', '平顶山市', '410421', '宝丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410422', '4104', '00,41,4104', '叶县', '41', '河南省', '4104', '平顶山市', '410422', '叶县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410423', '4104', '00,41,4104', '鲁山县', '41', '河南省', '4104', '平顶山市', '410423', '鲁山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410425', '4104', '00,41,4104', '郏县', '41', '河南省', '4104', '平顶山市', '410425', '郏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410481', '4104', '00,41,4104', '舞钢市', '41', '河南省', '4104', '平顶山市', '410481', '舞钢市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410482', '4104', '00,41,4104', '汝州市', '41', '河南省', '4104', '平顶山市', '410482', '汝州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4105', '41', '00,41', '安阳市', '41', '河南省', '4105', '安阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410502', '4105', '00,41,4105', '文峰区', '41', '河南省', '4105', '安阳市', '410502', '文峰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410503', '4105', '00,41,4105', '北关区', '41', '河南省', '4105', '安阳市', '410503', '北关区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410505', '4105', '00,41,4105', '殷都区', '41', '河南省', '4105', '安阳市', '410505', '殷都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410506', '4105', '00,41,4105', '龙安区', '41', '河南省', '4105', '安阳市', '410506', '龙安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410522', '4105', '00,41,4105', '安阳县', '41', '河南省', '4105', '安阳市', '410522', '安阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410523', '4105', '00,41,4105', '汤阴县', '41', '河南省', '4105', '安阳市', '410523', '汤阴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410526', '4105', '00,41,4105', '滑县', '41', '河南省', '4105', '安阳市', '410526', '滑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410527', '4105', '00,41,4105', '内黄县', '41', '河南省', '4105', '安阳市', '410527', '内黄县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410581', '4105', '00,41,4105', '林州市', '41', '河南省', '4105', '安阳市', '410581', '林州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4106', '41', '00,41', '鹤壁市', '41', '河南省', '4106', '鹤壁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410602', '4106', '00,41,4106', '鹤山区', '41', '河南省', '4106', '鹤壁市', '410602', '鹤山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410603', '4106', '00,41,4106', '山城区', '41', '河南省', '4106', '鹤壁市', '410603', '山城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410611', '4106', '00,41,4106', '淇滨区', '41', '河南省', '4106', '鹤壁市', '410611', '淇滨区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410621', '4106', '00,41,4106', '浚县', '41', '河南省', '4106', '鹤壁市', '410621', '浚县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410622', '4106', '00,41,4106', '淇县', '41', '河南省', '4106', '鹤壁市', '410622', '淇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4107', '41', '00,41', '新乡市', '41', '河南省', '4107', '新乡市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410702', '4107', '00,41,4107', '红旗区', '41', '河南省', '4107', '新乡市', '410702', '红旗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410703', '4107', '00,41,4107', '卫滨区', '41', '河南省', '4107', '新乡市', '410703', '卫滨区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410704', '4107', '00,41,4107', '凤泉区', '41', '河南省', '4107', '新乡市', '410704', '凤泉区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410711', '4107', '00,41,4107', '牧野区', '41', '河南省', '4107', '新乡市', '410711', '牧野区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410721', '4107', '00,41,4107', '新乡县', '41', '河南省', '4107', '新乡市', '410721', '新乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410724', '4107', '00,41,4107', '获嘉县', '41', '河南省', '4107', '新乡市', '410724', '获嘉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410725', '4107', '00,41,4107', '原阳县', '41', '河南省', '4107', '新乡市', '410725', '原阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410726', '4107', '00,41,4107', '延津县', '41', '河南省', '4107', '新乡市', '410726', '延津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410727', '4107', '00,41,4107', '封丘县', '41', '河南省', '4107', '新乡市', '410727', '封丘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410781', '4107', '00,41,4107', '卫辉市', '41', '河南省', '4107', '新乡市', '410781', '卫辉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410782', '4107', '00,41,4107', '辉县市', '41', '河南省', '4107', '新乡市', '410782', '辉县市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410783', '4107', '00,41,4107', '长垣市', '41', '河南省', '4107', '新乡市', '410783', '长垣市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4108', '41', '00,41', '焦作市', '41', '河南省', '4108', '焦作市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410802', '4108', '00,41,4108', '解放区', '41', '河南省', '4108', '焦作市', '410802', '解放区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410803', '4108', '00,41,4108', '中站区', '41', '河南省', '4108', '焦作市', '410803', '中站区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410804', '4108', '00,41,4108', '马村区', '41', '河南省', '4108', '焦作市', '410804', '马村区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410811', '4108', '00,41,4108', '山阳区', '41', '河南省', '4108', '焦作市', '410811', '山阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410821', '4108', '00,41,4108', '修武县', '41', '河南省', '4108', '焦作市', '410821', '修武县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410822', '4108', '00,41,4108', '博爱县', '41', '河南省', '4108', '焦作市', '410822', '博爱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410823', '4108', '00,41,4108', '武陟县', '41', '河南省', '4108', '焦作市', '410823', '武陟县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410825', '4108', '00,41,4108', '温县', '41', '河南省', '4108', '焦作市', '410825', '温县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410882', '4108', '00,41,4108', '沁阳市', '41', '河南省', '4108', '焦作市', '410882', '沁阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410883', '4108', '00,41,4108', '孟州市', '41', '河南省', '4108', '焦作市', '410883', '孟州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4109', '41', '00,41', '濮阳市', '41', '河南省', '4109', '濮阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('410902', '4109', '00,41,4109', '华龙区', '41', '河南省', '4109', '濮阳市', '410902', '华龙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410922', '4109', '00,41,4109', '清丰县', '41', '河南省', '4109', '濮阳市', '410922', '清丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410923', '4109', '00,41,4109', '南乐县', '41', '河南省', '4109', '濮阳市', '410923', '南乐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410926', '4109', '00,41,4109', '范县', '41', '河南省', '4109', '濮阳市', '410926', '范县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410927', '4109', '00,41,4109', '台前县', '41', '河南省', '4109', '濮阳市', '410927', '台前县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('410928', '4109', '00,41,4109', '濮阳县', '41', '河南省', '4109', '濮阳市', '410928', '濮阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4110', '41', '00,41', '许昌市', '41', '河南省', '4110', '许昌市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411002', '4110', '00,41,4110', '魏都区', '41', '河南省', '4110', '许昌市', '411002', '魏都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411003', '4110', '00,41,4110', '建安区', '41', '河南省', '4110', '许昌市', '411003', '建安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411024', '4110', '00,41,4110', '鄢陵县', '41', '河南省', '4110', '许昌市', '411024', '鄢陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411025', '4110', '00,41,4110', '襄城县', '41', '河南省', '4110', '许昌市', '411025', '襄城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411081', '4110', '00,41,4110', '禹州市', '41', '河南省', '4110', '许昌市', '411081', '禹州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411082', '4110', '00,41,4110', '长葛市', '41', '河南省', '4110', '许昌市', '411082', '长葛市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4111', '41', '00,41', '漯河市', '41', '河南省', '4111', '漯河市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411102', '4111', '00,41,4111', '源汇区', '41', '河南省', '4111', '漯河市', '411102', '源汇区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411103', '4111', '00,41,4111', '郾城区', '41', '河南省', '4111', '漯河市', '411103', '郾城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411104', '4111', '00,41,4111', '召陵区', '41', '河南省', '4111', '漯河市', '411104', '召陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411121', '4111', '00,41,4111', '舞阳县', '41', '河南省', '4111', '漯河市', '411121', '舞阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411122', '4111', '00,41,4111', '临颍县', '41', '河南省', '4111', '漯河市', '411122', '临颍县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4112', '41', '00,41', '三门峡市', '41', '河南省', '4112', '三门峡市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411202', '4112', '00,41,4112', '湖滨区', '41', '河南省', '4112', '三门峡市', '411202', '湖滨区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411203', '4112', '00,41,4112', '陕州区', '41', '河南省', '4112', '三门峡市', '411203', '陕州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411221', '4112', '00,41,4112', '渑池县', '41', '河南省', '4112', '三门峡市', '411221', '渑池县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411224', '4112', '00,41,4112', '卢氏县', '41', '河南省', '4112', '三门峡市', '411224', '卢氏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411281', '4112', '00,41,4112', '义马市', '41', '河南省', '4112', '三门峡市', '411281', '义马市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411282', '4112', '00,41,4112', '灵宝市', '41', '河南省', '4112', '三门峡市', '411282', '灵宝市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4113', '41', '00,41', '南阳市', '41', '河南省', '4113', '南阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411302', '4113', '00,41,4113', '宛城区', '41', '河南省', '4113', '南阳市', '411302', '宛城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411303', '4113', '00,41,4113', '卧龙区', '41', '河南省', '4113', '南阳市', '411303', '卧龙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411321', '4113', '00,41,4113', '南召县', '41', '河南省', '4113', '南阳市', '411321', '南召县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411322', '4113', '00,41,4113', '方城县', '41', '河南省', '4113', '南阳市', '411322', '方城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411323', '4113', '00,41,4113', '西峡县', '41', '河南省', '4113', '南阳市', '411323', '西峡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411324', '4113', '00,41,4113', '镇平县', '41', '河南省', '4113', '南阳市', '411324', '镇平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411325', '4113', '00,41,4113', '内乡县', '41', '河南省', '4113', '南阳市', '411325', '内乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411326', '4113', '00,41,4113', '淅川县', '41', '河南省', '4113', '南阳市', '411326', '淅川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411327', '4113', '00,41,4113', '社旗县', '41', '河南省', '4113', '南阳市', '411327', '社旗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411328', '4113', '00,41,4113', '唐河县', '41', '河南省', '4113', '南阳市', '411328', '唐河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411329', '4113', '00,41,4113', '新野县', '41', '河南省', '4113', '南阳市', '411329', '新野县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411330', '4113', '00,41,4113', '桐柏县', '41', '河南省', '4113', '南阳市', '411330', '桐柏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411381', '4113', '00,41,4113', '邓州市', '41', '河南省', '4113', '南阳市', '411381', '邓州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4114', '41', '00,41', '商丘市', '41', '河南省', '4114', '商丘市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411402', '4114', '00,41,4114', '梁园区', '41', '河南省', '4114', '商丘市', '411402', '梁园区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411403', '4114', '00,41,4114', '睢阳区', '41', '河南省', '4114', '商丘市', '411403', '睢阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411421', '4114', '00,41,4114', '民权县', '41', '河南省', '4114', '商丘市', '411421', '民权县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411422', '4114', '00,41,4114', '睢县', '41', '河南省', '4114', '商丘市', '411422', '睢县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411423', '4114', '00,41,4114', '宁陵县', '41', '河南省', '4114', '商丘市', '411423', '宁陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411424', '4114', '00,41,4114', '柘城县', '41', '河南省', '4114', '商丘市', '411424', '柘城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4415', '44', '00,44', '汕尾市', '44', '广东省', '4415', '汕尾市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411425', '4114', '00,41,4114', '虞城县', '41', '河南省', '4114', '商丘市', '411425', '虞城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411426', '4114', '00,41,4114', '夏邑县', '41', '河南省', '4114', '商丘市', '411426', '夏邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411481', '4114', '00,41,4114', '永城市', '41', '河南省', '4114', '商丘市', '411481', '永城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4115', '41', '00,41', '信阳市', '41', '河南省', '4115', '信阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411502', '4115', '00,41,4115', '浉河区', '41', '河南省', '4115', '信阳市', '411502', '浉河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411503', '4115', '00,41,4115', '平桥区', '41', '河南省', '4115', '信阳市', '411503', '平桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411521', '4115', '00,41,4115', '罗山县', '41', '河南省', '4115', '信阳市', '411521', '罗山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411522', '4115', '00,41,4115', '光山县', '41', '河南省', '4115', '信阳市', '411522', '光山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411523', '4115', '00,41,4115', '新县', '41', '河南省', '4115', '信阳市', '411523', '新县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411524', '4115', '00,41,4115', '商城县', '41', '河南省', '4115', '信阳市', '411524', '商城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411525', '4115', '00,41,4115', '固始县', '41', '河南省', '4115', '信阳市', '411525', '固始县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411526', '4115', '00,41,4115', '潢川县', '41', '河南省', '4115', '信阳市', '411526', '潢川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411527', '4115', '00,41,4115', '淮滨县', '41', '河南省', '4115', '信阳市', '411527', '淮滨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411528', '4115', '00,41,4115', '息县', '41', '河南省', '4115', '信阳市', '411528', '息县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4116', '41', '00,41', '周口市', '41', '河南省', '4116', '周口市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411602', '4116', '00,41,4116', '川汇区', '41', '河南省', '4116', '周口市', '411602', '川汇区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411603', '4116', '00,41,4116', '淮阳区', '41', '河南省', '4116', '周口市', '411603', '淮阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411621', '4116', '00,41,4116', '扶沟县', '41', '河南省', '4116', '周口市', '411621', '扶沟县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411622', '4116', '00,41,4116', '西华县', '41', '河南省', '4116', '周口市', '411622', '西华县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411623', '4116', '00,41,4116', '商水县', '41', '河南省', '4116', '周口市', '411623', '商水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411624', '4116', '00,41,4116', '沈丘县', '41', '河南省', '4116', '周口市', '411624', '沈丘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411625', '4116', '00,41,4116', '郸城县', '41', '河南省', '4116', '周口市', '411625', '郸城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411627', '4116', '00,41,4116', '太康县', '41', '河南省', '4116', '周口市', '411627', '太康县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411628', '4116', '00,41,4116', '鹿邑县', '41', '河南省', '4116', '周口市', '411628', '鹿邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411681', '4116', '00,41,4116', '项城市', '41', '河南省', '4116', '周口市', '411681', '项城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4117', '41', '00,41', '驻马店市', '41', '河南省', '4117', '驻马店市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('411702', '4117', '00,41,4117', '驿城区', '41', '河南省', '4117', '驻马店市', '411702', '驿城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411721', '4117', '00,41,4117', '西平县', '41', '河南省', '4117', '驻马店市', '411721', '西平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411722', '4117', '00,41,4117', '上蔡县', '41', '河南省', '4117', '驻马店市', '411722', '上蔡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411723', '4117', '00,41,4117', '平舆县', '41', '河南省', '4117', '驻马店市', '411723', '平舆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411724', '4117', '00,41,4117', '正阳县', '41', '河南省', '4117', '驻马店市', '411724', '正阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411725', '4117', '00,41,4117', '确山县', '41', '河南省', '4117', '驻马店市', '411725', '确山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411726', '4117', '00,41,4117', '泌阳县', '41', '河南省', '4117', '驻马店市', '411726', '泌阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411727', '4117', '00,41,4117', '汝南县', '41', '河南省', '4117', '驻马店市', '411727', '汝南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411728', '4117', '00,41,4117', '遂平县', '41', '河南省', '4117', '驻马店市', '411728', '遂平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('411729', '4117', '00,41,4117', '新蔡县', '41', '河南省', '4117', '驻马店市', '411729', '新蔡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4190', '41', '00,41', '省直辖县级行政区', '41', '河南省', '4190', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('419001', '4190', '00,41,4190', '济源市', '41', '河南省', '4190', '省直辖县级行政区', '419001', '济源市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('42', '00', '00', '湖北省', '42', '湖北省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('4201', '42', '00,42', '武汉市', '42', '湖北省', '4201', '武汉市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420102', '4201', '00,42,4201', '江岸区', '42', '湖北省', '4201', '武汉市', '420102', '江岸区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420103', '4201', '00,42,4201', '江汉区', '42', '湖北省', '4201', '武汉市', '420103', '江汉区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420104', '4201', '00,42,4201', '硚口区', '42', '湖北省', '4201', '武汉市', '420104', '硚口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420105', '4201', '00,42,4201', '汉阳区', '42', '湖北省', '4201', '武汉市', '420105', '汉阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420106', '4201', '00,42,4201', '武昌区', '42', '湖北省', '4201', '武汉市', '420106', '武昌区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420107', '4201', '00,42,4201', '青山区', '42', '湖北省', '4201', '武汉市', '420107', '青山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420111', '4201', '00,42,4201', '洪山区', '42', '湖北省', '4201', '武汉市', '420111', '洪山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420112', '4201', '00,42,4201', '东西湖区', '42', '湖北省', '4201', '武汉市', '420112', '东西湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420113', '4201', '00,42,4201', '汉南区', '42', '湖北省', '4201', '武汉市', '420113', '汉南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420114', '4201', '00,42,4201', '蔡甸区', '42', '湖北省', '4201', '武汉市', '420114', '蔡甸区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420115', '4201', '00,42,4201', '江夏区', '42', '湖北省', '4201', '武汉市', '420115', '江夏区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420116', '4201', '00,42,4201', '黄陂区', '42', '湖北省', '4201', '武汉市', '420116', '黄陂区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420117', '4201', '00,42,4201', '新洲区', '42', '湖北省', '4201', '武汉市', '420117', '新洲区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4202', '42', '00,42', '黄石市', '42', '湖北省', '4202', '黄石市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420202', '4202', '00,42,4202', '黄石港区', '42', '湖北省', '4202', '黄石市', '420202', '黄石港区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420203', '4202', '00,42,4202', '西塞山区', '42', '湖北省', '4202', '黄石市', '420203', '西塞山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420204', '4202', '00,42,4202', '下陆区', '42', '湖北省', '4202', '黄石市', '420204', '下陆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420205', '4202', '00,42,4202', '铁山区', '42', '湖北省', '4202', '黄石市', '420205', '铁山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420222', '4202', '00,42,4202', '阳新县', '42', '湖北省', '4202', '黄石市', '420222', '阳新县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420281', '4202', '00,42,4202', '大冶市', '42', '湖北省', '4202', '黄石市', '420281', '大冶市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4203', '42', '00,42', '十堰市', '42', '湖北省', '4203', '十堰市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420302', '4203', '00,42,4203', '茅箭区', '42', '湖北省', '4203', '十堰市', '420302', '茅箭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420303', '4203', '00,42,4203', '张湾区', '42', '湖北省', '4203', '十堰市', '420303', '张湾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420304', '4203', '00,42,4203', '郧阳区', '42', '湖北省', '4203', '十堰市', '420304', '郧阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420322', '4203', '00,42,4203', '郧西县', '42', '湖北省', '4203', '十堰市', '420322', '郧西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420323', '4203', '00,42,4203', '竹山县', '42', '湖北省', '4203', '十堰市', '420323', '竹山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420324', '4203', '00,42,4203', '竹溪县', '42', '湖北省', '4203', '十堰市', '420324', '竹溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420325', '4203', '00,42,4203', '房县', '42', '湖北省', '4203', '十堰市', '420325', '房县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420381', '4203', '00,42,4203', '丹江口市', '42', '湖北省', '4203', '十堰市', '420381', '丹江口市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4205', '42', '00,42', '宜昌市', '42', '湖北省', '4205', '宜昌市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420502', '4205', '00,42,4205', '西陵区', '42', '湖北省', '4205', '宜昌市', '420502', '西陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420503', '4205', '00,42,4205', '伍家岗区', '42', '湖北省', '4205', '宜昌市', '420503', '伍家岗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420504', '4205', '00,42,4205', '点军区', '42', '湖北省', '4205', '宜昌市', '420504', '点军区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420505', '4205', '00,42,4205', '猇亭区', '42', '湖北省', '4205', '宜昌市', '420505', '猇亭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420506', '4205', '00,42,4205', '夷陵区', '42', '湖北省', '4205', '宜昌市', '420506', '夷陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420525', '4205', '00,42,4205', '远安县', '42', '湖北省', '4205', '宜昌市', '420525', '远安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420526', '4205', '00,42,4205', '兴山县', '42', '湖北省', '4205', '宜昌市', '420526', '兴山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420527', '4205', '00,42,4205', '秭归县', '42', '湖北省', '4205', '宜昌市', '420527', '秭归县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420528', '4205', '00,42,4205', '长阳土家族自治县', '42', '湖北省', '4205', '宜昌市', '420528', '长阳土家族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420529', '4205', '00,42,4205', '五峰土家族自治县', '42', '湖北省', '4205', '宜昌市', '420529', '五峰土家族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420581', '4205', '00,42,4205', '宜都市', '42', '湖北省', '4205', '宜昌市', '420581', '宜都市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420582', '4205', '00,42,4205', '当阳市', '42', '湖北省', '4205', '宜昌市', '420582', '当阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420583', '4205', '00,42,4205', '枝江市', '42', '湖北省', '4205', '宜昌市', '420583', '枝江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4206', '42', '00,42', '襄阳市', '42', '湖北省', '4206', '襄阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420602', '4206', '00,42,4206', '襄城区', '42', '湖北省', '4206', '襄阳市', '420602', '襄城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420606', '4206', '00,42,4206', '樊城区', '42', '湖北省', '4206', '襄阳市', '420606', '樊城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420607', '4206', '00,42,4206', '襄州区', '42', '湖北省', '4206', '襄阳市', '420607', '襄州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420624', '4206', '00,42,4206', '南漳县', '42', '湖北省', '4206', '襄阳市', '420624', '南漳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420625', '4206', '00,42,4206', '谷城县', '42', '湖北省', '4206', '襄阳市', '420625', '谷城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420626', '4206', '00,42,4206', '保康县', '42', '湖北省', '4206', '襄阳市', '420626', '保康县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420682', '4206', '00,42,4206', '老河口市', '42', '湖北省', '4206', '襄阳市', '420682', '老河口市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420683', '4206', '00,42,4206', '枣阳市', '42', '湖北省', '4206', '襄阳市', '420683', '枣阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420684', '4206', '00,42,4206', '宜城市', '42', '湖北省', '4206', '襄阳市', '420684', '宜城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4207', '42', '00,42', '鄂州市', '42', '湖北省', '4207', '鄂州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420702', '4207', '00,42,4207', '梁子湖区', '42', '湖北省', '4207', '鄂州市', '420702', '梁子湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420703', '4207', '00,42,4207', '华容区', '42', '湖北省', '4207', '鄂州市', '420703', '华容区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420704', '4207', '00,42,4207', '鄂城区', '42', '湖北省', '4207', '鄂州市', '420704', '鄂城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4208', '42', '00,42', '荆门市', '42', '湖北省', '4208', '荆门市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420802', '4208', '00,42,4208', '东宝区', '42', '湖北省', '4208', '荆门市', '420802', '东宝区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420804', '4208', '00,42,4208', '掇刀区', '42', '湖北省', '4208', '荆门市', '420804', '掇刀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420822', '4208', '00,42,4208', '沙洋县', '42', '湖北省', '4208', '荆门市', '420822', '沙洋县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420881', '4208', '00,42,4208', '钟祥市', '42', '湖北省', '4208', '荆门市', '420881', '钟祥市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420882', '4208', '00,42,4208', '京山市', '42', '湖北省', '4208', '荆门市', '420882', '京山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4209', '42', '00,42', '孝感市', '42', '湖北省', '4209', '孝感市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('420902', '4209', '00,42,4209', '孝南区', '42', '湖北省', '4209', '孝感市', '420902', '孝南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420921', '4209', '00,42,4209', '孝昌县', '42', '湖北省', '4209', '孝感市', '420921', '孝昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420922', '4209', '00,42,4209', '大悟县', '42', '湖北省', '4209', '孝感市', '420922', '大悟县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420923', '4209', '00,42,4209', '云梦县', '42', '湖北省', '4209', '孝感市', '420923', '云梦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420981', '4209', '00,42,4209', '应城市', '42', '湖北省', '4209', '孝感市', '420981', '应城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420982', '4209', '00,42,4209', '安陆市', '42', '湖北省', '4209', '孝感市', '420982', '安陆市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('420984', '4209', '00,42,4209', '汉川市', '42', '湖北省', '4209', '孝感市', '420984', '汉川市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4210', '42', '00,42', '荆州市', '42', '湖北省', '4210', '荆州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('421002', '4210', '00,42,4210', '沙市区', '42', '湖北省', '4210', '荆州市', '421002', '沙市区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421003', '4210', '00,42,4210', '荆州区', '42', '湖北省', '4210', '荆州市', '421003', '荆州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421022', '4210', '00,42,4210', '公安县', '42', '湖北省', '4210', '荆州市', '421022', '公安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421023', '4210', '00,42,4210', '监利县', '42', '湖北省', '4210', '荆州市', '421023', '监利县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421024', '4210', '00,42,4210', '江陵县', '42', '湖北省', '4210', '荆州市', '421024', '江陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421081', '4210', '00,42,4210', '石首市', '42', '湖北省', '4210', '荆州市', '421081', '石首市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421083', '4210', '00,42,4210', '洪湖市', '42', '湖北省', '4210', '荆州市', '421083', '洪湖市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421087', '4210', '00,42,4210', '松滋市', '42', '湖北省', '4210', '荆州市', '421087', '松滋市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4211', '42', '00,42', '黄冈市', '42', '湖北省', '4211', '黄冈市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('421102', '4211', '00,42,4211', '黄州区', '42', '湖北省', '4211', '黄冈市', '421102', '黄州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421121', '4211', '00,42,4211', '团风县', '42', '湖北省', '4211', '黄冈市', '421121', '团风县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421122', '4211', '00,42,4211', '红安县', '42', '湖北省', '4211', '黄冈市', '421122', '红安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421123', '4211', '00,42,4211', '罗田县', '42', '湖北省', '4211', '黄冈市', '421123', '罗田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421124', '4211', '00,42,4211', '英山县', '42', '湖北省', '4211', '黄冈市', '421124', '英山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421125', '4211', '00,42,4211', '浠水县', '42', '湖北省', '4211', '黄冈市', '421125', '浠水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421126', '4211', '00,42,4211', '蕲春县', '42', '湖北省', '4211', '黄冈市', '421126', '蕲春县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421127', '4211', '00,42,4211', '黄梅县', '42', '湖北省', '4211', '黄冈市', '421127', '黄梅县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421181', '4211', '00,42,4211', '麻城市', '42', '湖北省', '4211', '黄冈市', '421181', '麻城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421182', '4211', '00,42,4211', '武穴市', '42', '湖北省', '4211', '黄冈市', '421182', '武穴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4212', '42', '00,42', '咸宁市', '42', '湖北省', '4212', '咸宁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('421202', '4212', '00,42,4212', '咸安区', '42', '湖北省', '4212', '咸宁市', '421202', '咸安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421221', '4212', '00,42,4212', '嘉鱼县', '42', '湖北省', '4212', '咸宁市', '421221', '嘉鱼县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421222', '4212', '00,42,4212', '通城县', '42', '湖北省', '4212', '咸宁市', '421222', '通城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421223', '4212', '00,42,4212', '崇阳县', '42', '湖北省', '4212', '咸宁市', '421223', '崇阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421224', '4212', '00,42,4212', '通山县', '42', '湖北省', '4212', '咸宁市', '421224', '通山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421281', '4212', '00,42,4212', '赤壁市', '42', '湖北省', '4212', '咸宁市', '421281', '赤壁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4213', '42', '00,42', '随州市', '42', '湖北省', '4213', '随州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('421303', '4213', '00,42,4213', '曾都区', '42', '湖北省', '4213', '随州市', '421303', '曾都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421321', '4213', '00,42,4213', '随县', '42', '湖北省', '4213', '随州市', '421321', '随县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('421381', '4213', '00,42,4213', '广水市', '42', '湖北省', '4213', '随州市', '421381', '广水市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4228', '42', '00,42', '恩施土家族苗族自治州', '42', '湖北省', '4228', '恩施土家族苗族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('422801', '4228', '00,42,4228', '恩施市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422801', '恩施市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('422802', '4228', '00,42,4228', '利川市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422802', '利川市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('422822', '4228', '00,42,4228', '建始县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422822', '建始县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('422823', '4228', '00,42,4228', '巴东县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422823', '巴东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('422825', '4228', '00,42,4228', '宣恩县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422825', '宣恩县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('422826', '4228', '00,42,4228', '咸丰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422826', '咸丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('422827', '4228', '00,42,4228', '来凤县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422827', '来凤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('422828', '4228', '00,42,4228', '鹤峰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422828', '鹤峰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4290', '42', '00,42', '省直辖县级行政区', '42', '湖北省', '4290', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('429004', '4290', '00,42,4290', '仙桃市', '42', '湖北省', '4290', '省直辖县级行政区', '429004', '仙桃市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('429005', '4290', '00,42,4290', '潜江市', '42', '湖北省', '4290', '省直辖县级行政区', '429005', '潜江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('429006', '4290', '00,42,4290', '天门市', '42', '湖北省', '4290', '省直辖县级行政区', '429006', '天门市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('429021', '4290', '00,42,4290', '神农架林区', '42', '湖北省', '4290', '省直辖县级行政区', '429021', '神农架林区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('43', '00', '00', '湖南省', '43', '湖南省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('4301', '43', '00,43', '长沙市', '43', '湖南省', '4301', '长沙市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430102', '4301', '00,43,4301', '芙蓉区', '43', '湖南省', '4301', '长沙市', '430102', '芙蓉区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430103', '4301', '00,43,4301', '天心区', '43', '湖南省', '4301', '长沙市', '430103', '天心区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430104', '4301', '00,43,4301', '岳麓区', '43', '湖南省', '4301', '长沙市', '430104', '岳麓区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430105', '4301', '00,43,4301', '开福区', '43', '湖南省', '4301', '长沙市', '430105', '开福区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430111', '4301', '00,43,4301', '雨花区', '43', '湖南省', '4301', '长沙市', '430111', '雨花区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430112', '4301', '00,43,4301', '望城区', '43', '湖南省', '4301', '长沙市', '430112', '望城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430121', '4301', '00,43,4301', '长沙县', '43', '湖南省', '4301', '长沙市', '430121', '长沙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430181', '4301', '00,43,4301', '浏阳市', '43', '湖南省', '4301', '长沙市', '430181', '浏阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430182', '4301', '00,43,4301', '宁乡市', '43', '湖南省', '4301', '长沙市', '430182', '宁乡市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4302', '43', '00,43', '株洲市', '43', '湖南省', '4302', '株洲市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430202', '4302', '00,43,4302', '荷塘区', '43', '湖南省', '4302', '株洲市', '430202', '荷塘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430203', '4302', '00,43,4302', '芦淞区', '43', '湖南省', '4302', '株洲市', '430203', '芦淞区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430204', '4302', '00,43,4302', '石峰区', '43', '湖南省', '4302', '株洲市', '430204', '石峰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430211', '4302', '00,43,4302', '天元区', '43', '湖南省', '4302', '株洲市', '430211', '天元区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430212', '4302', '00,43,4302', '渌口区', '43', '湖南省', '4302', '株洲市', '430212', '渌口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430223', '4302', '00,43,4302', '攸县', '43', '湖南省', '4302', '株洲市', '430223', '攸县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430224', '4302', '00,43,4302', '茶陵县', '43', '湖南省', '4302', '株洲市', '430224', '茶陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430225', '4302', '00,43,4302', '炎陵县', '43', '湖南省', '4302', '株洲市', '430225', '炎陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430281', '4302', '00,43,4302', '醴陵市', '43', '湖南省', '4302', '株洲市', '430281', '醴陵市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4303', '43', '00,43', '湘潭市', '43', '湖南省', '4303', '湘潭市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430302', '4303', '00,43,4303', '雨湖区', '43', '湖南省', '4303', '湘潭市', '430302', '雨湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430304', '4303', '00,43,4303', '岳塘区', '43', '湖南省', '4303', '湘潭市', '430304', '岳塘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430321', '4303', '00,43,4303', '湘潭县', '43', '湖南省', '4303', '湘潭市', '430321', '湘潭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430381', '4303', '00,43,4303', '湘乡市', '43', '湖南省', '4303', '湘潭市', '430381', '湘乡市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430382', '4303', '00,43,4303', '韶山市', '43', '湖南省', '4303', '湘潭市', '430382', '韶山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4304', '43', '00,43', '衡阳市', '43', '湖南省', '4304', '衡阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430405', '4304', '00,43,4304', '珠晖区', '43', '湖南省', '4304', '衡阳市', '430405', '珠晖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430406', '4304', '00,43,4304', '雁峰区', '43', '湖南省', '4304', '衡阳市', '430406', '雁峰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430407', '4304', '00,43,4304', '石鼓区', '43', '湖南省', '4304', '衡阳市', '430407', '石鼓区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430408', '4304', '00,43,4304', '蒸湘区', '43', '湖南省', '4304', '衡阳市', '430408', '蒸湘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430412', '4304', '00,43,4304', '南岳区', '43', '湖南省', '4304', '衡阳市', '430412', '南岳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430421', '4304', '00,43,4304', '衡阳县', '43', '湖南省', '4304', '衡阳市', '430421', '衡阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430422', '4304', '00,43,4304', '衡南县', '43', '湖南省', '4304', '衡阳市', '430422', '衡南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430423', '4304', '00,43,4304', '衡山县', '43', '湖南省', '4304', '衡阳市', '430423', '衡山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430424', '4304', '00,43,4304', '衡东县', '43', '湖南省', '4304', '衡阳市', '430424', '衡东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430426', '4304', '00,43,4304', '祁东县', '43', '湖南省', '4304', '衡阳市', '430426', '祁东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430481', '4304', '00,43,4304', '耒阳市', '43', '湖南省', '4304', '衡阳市', '430481', '耒阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430482', '4304', '00,43,4304', '常宁市', '43', '湖南省', '4304', '衡阳市', '430482', '常宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4305', '43', '00,43', '邵阳市', '43', '湖南省', '4305', '邵阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430502', '4305', '00,43,4305', '双清区', '43', '湖南省', '4305', '邵阳市', '430502', '双清区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430503', '4305', '00,43,4305', '大祥区', '43', '湖南省', '4305', '邵阳市', '430503', '大祥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430511', '4305', '00,43,4305', '北塔区', '43', '湖南省', '4305', '邵阳市', '430511', '北塔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430522', '4305', '00,43,4305', '新邵县', '43', '湖南省', '4305', '邵阳市', '430522', '新邵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430523', '4305', '00,43,4305', '邵阳县', '43', '湖南省', '4305', '邵阳市', '430523', '邵阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430524', '4305', '00,43,4305', '隆回县', '43', '湖南省', '4305', '邵阳市', '430524', '隆回县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430525', '4305', '00,43,4305', '洞口县', '43', '湖南省', '4305', '邵阳市', '430525', '洞口县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430527', '4305', '00,43,4305', '绥宁县', '43', '湖南省', '4305', '邵阳市', '430527', '绥宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430528', '4305', '00,43,4305', '新宁县', '43', '湖南省', '4305', '邵阳市', '430528', '新宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430529', '4305', '00,43,4305', '城步苗族自治县', '43', '湖南省', '4305', '邵阳市', '430529', '城步苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430581', '4305', '00,43,4305', '武冈市', '43', '湖南省', '4305', '邵阳市', '430581', '武冈市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430582', '4305', '00,43,4305', '邵东市', '43', '湖南省', '4305', '邵阳市', '430582', '邵东市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4306', '43', '00,43', '岳阳市', '43', '湖南省', '4306', '岳阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430602', '4306', '00,43,4306', '岳阳楼区', '43', '湖南省', '4306', '岳阳市', '430602', '岳阳楼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430603', '4306', '00,43,4306', '云溪区', '43', '湖南省', '4306', '岳阳市', '430603', '云溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430611', '4306', '00,43,4306', '君山区', '43', '湖南省', '4306', '岳阳市', '430611', '君山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430621', '4306', '00,43,4306', '岳阳县', '43', '湖南省', '4306', '岳阳市', '430621', '岳阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430623', '4306', '00,43,4306', '华容县', '43', '湖南省', '4306', '岳阳市', '430623', '华容县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430624', '4306', '00,43,4306', '湘阴县', '43', '湖南省', '4306', '岳阳市', '430624', '湘阴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430626', '4306', '00,43,4306', '平江县', '43', '湖南省', '4306', '岳阳市', '430626', '平江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430681', '4306', '00,43,4306', '汨罗市', '43', '湖南省', '4306', '岳阳市', '430681', '汨罗市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430682', '4306', '00,43,4306', '临湘市', '43', '湖南省', '4306', '岳阳市', '430682', '临湘市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4307', '43', '00,43', '常德市', '43', '湖南省', '4307', '常德市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430702', '4307', '00,43,4307', '武陵区', '43', '湖南省', '4307', '常德市', '430702', '武陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430703', '4307', '00,43,4307', '鼎城区', '43', '湖南省', '4307', '常德市', '430703', '鼎城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430721', '4307', '00,43,4307', '安乡县', '43', '湖南省', '4307', '常德市', '430721', '安乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430722', '4307', '00,43,4307', '汉寿县', '43', '湖南省', '4307', '常德市', '430722', '汉寿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430723', '4307', '00,43,4307', '澧县', '43', '湖南省', '4307', '常德市', '430723', '澧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430724', '4307', '00,43,4307', '临澧县', '43', '湖南省', '4307', '常德市', '430724', '临澧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430725', '4307', '00,43,4307', '桃源县', '43', '湖南省', '4307', '常德市', '430725', '桃源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430726', '4307', '00,43,4307', '石门县', '43', '湖南省', '4307', '常德市', '430726', '石门县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430781', '4307', '00,43,4307', '津市市', '43', '湖南省', '4307', '常德市', '430781', '津市市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4308', '43', '00,43', '张家界市', '43', '湖南省', '4308', '张家界市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430802', '4308', '00,43,4308', '永定区', '43', '湖南省', '4308', '张家界市', '430802', '永定区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430811', '4308', '00,43,4308', '武陵源区', '43', '湖南省', '4308', '张家界市', '430811', '武陵源区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430821', '4308', '00,43,4308', '慈利县', '43', '湖南省', '4308', '张家界市', '430821', '慈利县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430822', '4308', '00,43,4308', '桑植县', '43', '湖南省', '4308', '张家界市', '430822', '桑植县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4309', '43', '00,43', '益阳市', '43', '湖南省', '4309', '益阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('430902', '4309', '00,43,4309', '资阳区', '43', '湖南省', '4309', '益阳市', '430902', '资阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430903', '4309', '00,43,4309', '赫山区', '43', '湖南省', '4309', '益阳市', '430903', '赫山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430921', '4309', '00,43,4309', '南县', '43', '湖南省', '4309', '益阳市', '430921', '南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430922', '4309', '00,43,4309', '桃江县', '43', '湖南省', '4309', '益阳市', '430922', '桃江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430923', '4309', '00,43,4309', '安化县', '43', '湖南省', '4309', '益阳市', '430923', '安化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('430981', '4309', '00,43,4309', '沅江市', '43', '湖南省', '4309', '益阳市', '430981', '沅江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4310', '43', '00,43', '郴州市', '43', '湖南省', '4310', '郴州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('431002', '4310', '00,43,4310', '北湖区', '43', '湖南省', '4310', '郴州市', '431002', '北湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431003', '4310', '00,43,4310', '苏仙区', '43', '湖南省', '4310', '郴州市', '431003', '苏仙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431021', '4310', '00,43,4310', '桂阳县', '43', '湖南省', '4310', '郴州市', '431021', '桂阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431022', '4310', '00,43,4310', '宜章县', '43', '湖南省', '4310', '郴州市', '431022', '宜章县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431023', '4310', '00,43,4310', '永兴县', '43', '湖南省', '4310', '郴州市', '431023', '永兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431024', '4310', '00,43,4310', '嘉禾县', '43', '湖南省', '4310', '郴州市', '431024', '嘉禾县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431025', '4310', '00,43,4310', '临武县', '43', '湖南省', '4310', '郴州市', '431025', '临武县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431026', '4310', '00,43,4310', '汝城县', '43', '湖南省', '4310', '郴州市', '431026', '汝城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431027', '4310', '00,43,4310', '桂东县', '43', '湖南省', '4310', '郴州市', '431027', '桂东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431028', '4310', '00,43,4310', '安仁县', '43', '湖南省', '4310', '郴州市', '431028', '安仁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431081', '4310', '00,43,4310', '资兴市', '43', '湖南省', '4310', '郴州市', '431081', '资兴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4311', '43', '00,43', '永州市', '43', '湖南省', '4311', '永州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('431102', '4311', '00,43,4311', '零陵区', '43', '湖南省', '4311', '永州市', '431102', '零陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431103', '4311', '00,43,4311', '冷水滩区', '43', '湖南省', '4311', '永州市', '431103', '冷水滩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431121', '4311', '00,43,4311', '祁阳县', '43', '湖南省', '4311', '永州市', '431121', '祁阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431122', '4311', '00,43,4311', '东安县', '43', '湖南省', '4311', '永州市', '431122', '东安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431123', '4311', '00,43,4311', '双牌县', '43', '湖南省', '4311', '永州市', '431123', '双牌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431124', '4311', '00,43,4311', '道县', '43', '湖南省', '4311', '永州市', '431124', '道县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431125', '4311', '00,43,4311', '江永县', '43', '湖南省', '4311', '永州市', '431125', '江永县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431126', '4311', '00,43,4311', '宁远县', '43', '湖南省', '4311', '永州市', '431126', '宁远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431127', '4311', '00,43,4311', '蓝山县', '43', '湖南省', '4311', '永州市', '431127', '蓝山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431128', '4311', '00,43,4311', '新田县', '43', '湖南省', '4311', '永州市', '431128', '新田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431129', '4311', '00,43,4311', '江华瑶族自治县', '43', '湖南省', '4311', '永州市', '431129', '江华瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4312', '43', '00,43', '怀化市', '43', '湖南省', '4312', '怀化市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('431202', '4312', '00,43,4312', '鹤城区', '43', '湖南省', '4312', '怀化市', '431202', '鹤城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431221', '4312', '00,43,4312', '中方县', '43', '湖南省', '4312', '怀化市', '431221', '中方县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431222', '4312', '00,43,4312', '沅陵县', '43', '湖南省', '4312', '怀化市', '431222', '沅陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431223', '4312', '00,43,4312', '辰溪县', '43', '湖南省', '4312', '怀化市', '431223', '辰溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431224', '4312', '00,43,4312', '溆浦县', '43', '湖南省', '4312', '怀化市', '431224', '溆浦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431225', '4312', '00,43,4312', '会同县', '43', '湖南省', '4312', '怀化市', '431225', '会同县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431226', '4312', '00,43,4312', '麻阳苗族自治县', '43', '湖南省', '4312', '怀化市', '431226', '麻阳苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431227', '4312', '00,43,4312', '新晃侗族自治县', '43', '湖南省', '4312', '怀化市', '431227', '新晃侗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431228', '4312', '00,43,4312', '芷江侗族自治县', '43', '湖南省', '4312', '怀化市', '431228', '芷江侗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431229', '4312', '00,43,4312', '靖州苗族侗族自治县', '43', '湖南省', '4312', '怀化市', '431229', '靖州苗族侗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431230', '4312', '00,43,4312', '通道侗族自治县', '43', '湖南省', '4312', '怀化市', '431230', '通道侗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431281', '4312', '00,43,4312', '洪江市', '43', '湖南省', '4312', '怀化市', '431281', '洪江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4313', '43', '00,43', '娄底市', '43', '湖南省', '4313', '娄底市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('431302', '4313', '00,43,4313', '娄星区', '43', '湖南省', '4313', '娄底市', '431302', '娄星区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431321', '4313', '00,43,4313', '双峰县', '43', '湖南省', '4313', '娄底市', '431321', '双峰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431322', '4313', '00,43,4313', '新化县', '43', '湖南省', '4313', '娄底市', '431322', '新化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431381', '4313', '00,43,4313', '冷水江市', '43', '湖南省', '4313', '娄底市', '431381', '冷水江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('431382', '4313', '00,43,4313', '涟源市', '43', '湖南省', '4313', '娄底市', '431382', '涟源市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4331', '43', '00,43', '湘西土家族苗族自治州', '43', '湖南省', '4331', '湘西土家族苗族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('433101', '4331', '00,43,4331', '吉首市', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433101', '吉首市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('433122', '4331', '00,43,4331', '泸溪县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433122', '泸溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('433123', '4331', '00,43,4331', '凤凰县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433123', '凤凰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('433124', '4331', '00,43,4331', '花垣县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433124', '花垣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('433125', '4331', '00,43,4331', '保靖县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433125', '保靖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('433126', '4331', '00,43,4331', '古丈县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433126', '古丈县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('433127', '4331', '00,43,4331', '永顺县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433127', '永顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('433130', '4331', '00,43,4331', '龙山县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433130', '龙山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('44', '00', '00', '广东省', '44', '广东省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('4401', '44', '00,44', '广州市', '44', '广东省', '4401', '广州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440103', '4401', '00,44,4401', '荔湾区', '44', '广东省', '4401', '广州市', '440103', '荔湾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440104', '4401', '00,44,4401', '越秀区', '44', '广东省', '4401', '广州市', '440104', '越秀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440105', '4401', '00,44,4401', '海珠区', '44', '广东省', '4401', '广州市', '440105', '海珠区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440106', '4401', '00,44,4401', '天河区', '44', '广东省', '4401', '广州市', '440106', '天河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440111', '4401', '00,44,4401', '白云区', '44', '广东省', '4401', '广州市', '440111', '白云区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440112', '4401', '00,44,4401', '黄埔区', '44', '广东省', '4401', '广州市', '440112', '黄埔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440113', '4401', '00,44,4401', '番禺区', '44', '广东省', '4401', '广州市', '440113', '番禺区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440114', '4401', '00,44,4401', '花都区', '44', '广东省', '4401', '广州市', '440114', '花都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440115', '4401', '00,44,4401', '南沙区', '44', '广东省', '4401', '广州市', '440115', '南沙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440117', '4401', '00,44,4401', '从化区', '44', '广东省', '4401', '广州市', '440117', '从化区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440118', '4401', '00,44,4401', '增城区', '44', '广东省', '4401', '广州市', '440118', '增城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4402', '44', '00,44', '韶关市', '44', '广东省', '4402', '韶关市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440203', '4402', '00,44,4402', '武江区', '44', '广东省', '4402', '韶关市', '440203', '武江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440204', '4402', '00,44,4402', '浈江区', '44', '广东省', '4402', '韶关市', '440204', '浈江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440205', '4402', '00,44,4402', '曲江区', '44', '广东省', '4402', '韶关市', '440205', '曲江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440222', '4402', '00,44,4402', '始兴县', '44', '广东省', '4402', '韶关市', '440222', '始兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440224', '4402', '00,44,4402', '仁化县', '44', '广东省', '4402', '韶关市', '440224', '仁化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440229', '4402', '00,44,4402', '翁源县', '44', '广东省', '4402', '韶关市', '440229', '翁源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440232', '4402', '00,44,4402', '乳源瑶族自治县', '44', '广东省', '4402', '韶关市', '440232', '乳源瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440233', '4402', '00,44,4402', '新丰县', '44', '广东省', '4402', '韶关市', '440233', '新丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440281', '4402', '00,44,4402', '乐昌市', '44', '广东省', '4402', '韶关市', '440281', '乐昌市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440282', '4402', '00,44,4402', '南雄市', '44', '广东省', '4402', '韶关市', '440282', '南雄市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4403', '44', '00,44', '深圳市', '44', '广东省', '4403', '深圳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440303', '4403', '00,44,4403', '罗湖区', '44', '广东省', '4403', '深圳市', '440303', '罗湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440304', '4403', '00,44,4403', '福田区', '44', '广东省', '4403', '深圳市', '440304', '福田区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440305', '4403', '00,44,4403', '南山区', '44', '广东省', '4403', '深圳市', '440305', '南山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440306', '4403', '00,44,4403', '宝安区', '44', '广东省', '4403', '深圳市', '440306', '宝安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440307', '4403', '00,44,4403', '龙岗区', '44', '广东省', '4403', '深圳市', '440307', '龙岗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440308', '4403', '00,44,4403', '盐田区', '44', '广东省', '4403', '深圳市', '440308', '盐田区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440309', '4403', '00,44,4403', '龙华区', '44', '广东省', '4403', '深圳市', '440309', '龙华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440310', '4403', '00,44,4403', '坪山区', '44', '广东省', '4403', '深圳市', '440310', '坪山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4604', '46', '00,46', '儋州市', '46', '海南省', '4604', '儋州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440311', '4403', '00,44,4403', '光明区', '44', '广东省', '4403', '深圳市', '440311', '光明区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4404', '44', '00,44', '珠海市', '44', '广东省', '4404', '珠海市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440402', '4404', '00,44,4404', '香洲区', '44', '广东省', '4404', '珠海市', '440402', '香洲区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440403', '4404', '00,44,4404', '斗门区', '44', '广东省', '4404', '珠海市', '440403', '斗门区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440404', '4404', '00,44,4404', '金湾区', '44', '广东省', '4404', '珠海市', '440404', '金湾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4405', '44', '00,44', '汕头市', '44', '广东省', '4405', '汕头市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440507', '4405', '00,44,4405', '龙湖区', '44', '广东省', '4405', '汕头市', '440507', '龙湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440511', '4405', '00,44,4405', '金平区', '44', '广东省', '4405', '汕头市', '440511', '金平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440512', '4405', '00,44,4405', '濠江区', '44', '广东省', '4405', '汕头市', '440512', '濠江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440513', '4405', '00,44,4405', '潮阳区', '44', '广东省', '4405', '汕头市', '440513', '潮阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440514', '4405', '00,44,4405', '潮南区', '44', '广东省', '4405', '汕头市', '440514', '潮南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440515', '4405', '00,44,4405', '澄海区', '44', '广东省', '4405', '汕头市', '440515', '澄海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440523', '4405', '00,44,4405', '南澳县', '44', '广东省', '4405', '汕头市', '440523', '南澳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4406', '44', '00,44', '佛山市', '44', '广东省', '4406', '佛山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440604', '4406', '00,44,4406', '禅城区', '44', '广东省', '4406', '佛山市', '440604', '禅城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440605', '4406', '00,44,4406', '南海区', '44', '广东省', '4406', '佛山市', '440605', '南海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440606', '4406', '00,44,4406', '顺德区', '44', '广东省', '4406', '佛山市', '440606', '顺德区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440607', '4406', '00,44,4406', '三水区', '44', '广东省', '4406', '佛山市', '440607', '三水区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440608', '4406', '00,44,4406', '高明区', '44', '广东省', '4406', '佛山市', '440608', '高明区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4407', '44', '00,44', '江门市', '44', '广东省', '4407', '江门市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440703', '4407', '00,44,4407', '蓬江区', '44', '广东省', '4407', '江门市', '440703', '蓬江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440704', '4407', '00,44,4407', '江海区', '44', '广东省', '4407', '江门市', '440704', '江海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440705', '4407', '00,44,4407', '新会区', '44', '广东省', '4407', '江门市', '440705', '新会区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440781', '4407', '00,44,4407', '台山市', '44', '广东省', '4407', '江门市', '440781', '台山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440783', '4407', '00,44,4407', '开平市', '44', '广东省', '4407', '江门市', '440783', '开平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440784', '4407', '00,44,4407', '鹤山市', '44', '广东省', '4407', '江门市', '440784', '鹤山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440785', '4407', '00,44,4407', '恩平市', '44', '广东省', '4407', '江门市', '440785', '恩平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4408', '44', '00,44', '湛江市', '44', '广东省', '4408', '湛江市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440802', '4408', '00,44,4408', '赤坎区', '44', '广东省', '4408', '湛江市', '440802', '赤坎区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440803', '4408', '00,44,4408', '霞山区', '44', '广东省', '4408', '湛江市', '440803', '霞山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440804', '4408', '00,44,4408', '坡头区', '44', '广东省', '4408', '湛江市', '440804', '坡头区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440811', '4408', '00,44,4408', '麻章区', '44', '广东省', '4408', '湛江市', '440811', '麻章区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440823', '4408', '00,44,4408', '遂溪县', '44', '广东省', '4408', '湛江市', '440823', '遂溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440825', '4408', '00,44,4408', '徐闻县', '44', '广东省', '4408', '湛江市', '440825', '徐闻县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440881', '4408', '00,44,4408', '廉江市', '44', '广东省', '4408', '湛江市', '440881', '廉江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440882', '4408', '00,44,4408', '雷州市', '44', '广东省', '4408', '湛江市', '440882', '雷州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440883', '4408', '00,44,4408', '吴川市', '44', '广东省', '4408', '湛江市', '440883', '吴川市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4409', '44', '00,44', '茂名市', '44', '广东省', '4409', '茂名市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('440902', '4409', '00,44,4409', '茂南区', '44', '广东省', '4409', '茂名市', '440902', '茂南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440904', '4409', '00,44,4409', '电白区', '44', '广东省', '4409', '茂名市', '440904', '电白区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440981', '4409', '00,44,4409', '高州市', '44', '广东省', '4409', '茂名市', '440981', '高州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440982', '4409', '00,44,4409', '化州市', '44', '广东省', '4409', '茂名市', '440982', '化州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('440983', '4409', '00,44,4409', '信宜市', '44', '广东省', '4409', '茂名市', '440983', '信宜市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4412', '44', '00,44', '肇庆市', '44', '广东省', '4412', '肇庆市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('441202', '4412', '00,44,4412', '端州区', '44', '广东省', '4412', '肇庆市', '441202', '端州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441203', '4412', '00,44,4412', '鼎湖区', '44', '广东省', '4412', '肇庆市', '441203', '鼎湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441204', '4412', '00,44,4412', '高要区', '44', '广东省', '4412', '肇庆市', '441204', '高要区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441223', '4412', '00,44,4412', '广宁县', '44', '广东省', '4412', '肇庆市', '441223', '广宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441224', '4412', '00,44,4412', '怀集县', '44', '广东省', '4412', '肇庆市', '441224', '怀集县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441225', '4412', '00,44,4412', '封开县', '44', '广东省', '4412', '肇庆市', '441225', '封开县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441226', '4412', '00,44,4412', '德庆县', '44', '广东省', '4412', '肇庆市', '441226', '德庆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441284', '4412', '00,44,4412', '四会市', '44', '广东省', '4412', '肇庆市', '441284', '四会市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4413', '44', '00,44', '惠州市', '44', '广东省', '4413', '惠州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('441302', '4413', '00,44,4413', '惠城区', '44', '广东省', '4413', '惠州市', '441302', '惠城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441303', '4413', '00,44,4413', '惠阳区', '44', '广东省', '4413', '惠州市', '441303', '惠阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441322', '4413', '00,44,4413', '博罗县', '44', '广东省', '4413', '惠州市', '441322', '博罗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441323', '4413', '00,44,4413', '惠东县', '44', '广东省', '4413', '惠州市', '441323', '惠东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441324', '4413', '00,44,4413', '龙门县', '44', '广东省', '4413', '惠州市', '441324', '龙门县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4414', '44', '00,44', '梅州市', '44', '广东省', '4414', '梅州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('441402', '4414', '00,44,4414', '梅江区', '44', '广东省', '4414', '梅州市', '441402', '梅江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441403', '4414', '00,44,4414', '梅县区', '44', '广东省', '4414', '梅州市', '441403', '梅县区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441422', '4414', '00,44,4414', '大埔县', '44', '广东省', '4414', '梅州市', '441422', '大埔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441423', '4414', '00,44,4414', '丰顺县', '44', '广东省', '4414', '梅州市', '441423', '丰顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441424', '4414', '00,44,4414', '五华县', '44', '广东省', '4414', '梅州市', '441424', '五华县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441426', '4414', '00,44,4414', '平远县', '44', '广东省', '4414', '梅州市', '441426', '平远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441427', '4414', '00,44,4414', '蕉岭县', '44', '广东省', '4414', '梅州市', '441427', '蕉岭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441481', '4414', '00,44,4414', '兴宁市', '44', '广东省', '4414', '梅州市', '441481', '兴宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441502', '4415', '00,44,4415', '城区', '44', '广东省', '4415', '汕尾市', '441502', '城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441521', '4415', '00,44,4415', '海丰县', '44', '广东省', '4415', '汕尾市', '441521', '海丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441523', '4415', '00,44,4415', '陆河县', '44', '广东省', '4415', '汕尾市', '441523', '陆河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441581', '4415', '00,44,4415', '陆丰市', '44', '广东省', '4415', '汕尾市', '441581', '陆丰市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4416', '44', '00,44', '河源市', '44', '广东省', '4416', '河源市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('441602', '4416', '00,44,4416', '源城区', '44', '广东省', '4416', '河源市', '441602', '源城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441621', '4416', '00,44,4416', '紫金县', '44', '广东省', '4416', '河源市', '441621', '紫金县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441622', '4416', '00,44,4416', '龙川县', '44', '广东省', '4416', '河源市', '441622', '龙川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441623', '4416', '00,44,4416', '连平县', '44', '广东省', '4416', '河源市', '441623', '连平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441624', '4416', '00,44,4416', '和平县', '44', '广东省', '4416', '河源市', '441624', '和平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441625', '4416', '00,44,4416', '东源县', '44', '广东省', '4416', '河源市', '441625', '东源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4417', '44', '00,44', '阳江市', '44', '广东省', '4417', '阳江市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('441702', '4417', '00,44,4417', '江城区', '44', '广东省', '4417', '阳江市', '441702', '江城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441704', '4417', '00,44,4417', '阳东区', '44', '广东省', '4417', '阳江市', '441704', '阳东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441721', '4417', '00,44,4417', '阳西县', '44', '广东省', '4417', '阳江市', '441721', '阳西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441781', '4417', '00,44,4417', '阳春市', '44', '广东省', '4417', '阳江市', '441781', '阳春市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4418', '44', '00,44', '清远市', '44', '广东省', '4418', '清远市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('441802', '4418', '00,44,4418', '清城区', '44', '广东省', '4418', '清远市', '441802', '清城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441803', '4418', '00,44,4418', '清新区', '44', '广东省', '4418', '清远市', '441803', '清新区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441821', '4418', '00,44,4418', '佛冈县', '44', '广东省', '4418', '清远市', '441821', '佛冈县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441823', '4418', '00,44,4418', '阳山县', '44', '广东省', '4418', '清远市', '441823', '阳山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441825', '4418', '00,44,4418', '连山壮族瑶族自治县', '44', '广东省', '4418', '清远市', '441825', '连山壮族瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441826', '4418', '00,44,4418', '连南瑶族自治县', '44', '广东省', '4418', '清远市', '441826', '连南瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441881', '4418', '00,44,4418', '英德市', '44', '广东省', '4418', '清远市', '441881', '英德市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('441882', '4418', '00,44,4418', '连州市', '44', '广东省', '4418', '清远市', '441882', '连州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4419', '44', '00,44', '东莞市', '44', '广东省', '4419', '东莞市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('441900', '4419', '00,44,4419', '东莞市', '44', '广东省', '4419', '东莞市', '441900', '东莞市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4420', '44', '00,44', '中山市', '44', '广东省', '4420', '中山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('442000', '4420', '00,44,4420', '中山市', '44', '广东省', '4420', '中山市', '442000', '中山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4451', '44', '00,44', '潮州市', '44', '广东省', '4451', '潮州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('445102', '4451', '00,44,4451', '湘桥区', '44', '广东省', '4451', '潮州市', '445102', '湘桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445103', '4451', '00,44,4451', '潮安区', '44', '广东省', '4451', '潮州市', '445103', '潮安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445122', '4451', '00,44,4451', '饶平县', '44', '广东省', '4451', '潮州市', '445122', '饶平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4452', '44', '00,44', '揭阳市', '44', '广东省', '4452', '揭阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('445202', '4452', '00,44,4452', '榕城区', '44', '广东省', '4452', '揭阳市', '445202', '榕城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445203', '4452', '00,44,4452', '揭东区', '44', '广东省', '4452', '揭阳市', '445203', '揭东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445222', '4452', '00,44,4452', '揭西县', '44', '广东省', '4452', '揭阳市', '445222', '揭西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445224', '4452', '00,44,4452', '惠来县', '44', '广东省', '4452', '揭阳市', '445224', '惠来县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445281', '4452', '00,44,4452', '普宁市', '44', '广东省', '4452', '揭阳市', '445281', '普宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4453', '44', '00,44', '云浮市', '44', '广东省', '4453', '云浮市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('445302', '4453', '00,44,4453', '云城区', '44', '广东省', '4453', '云浮市', '445302', '云城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445303', '4453', '00,44,4453', '云安区', '44', '广东省', '4453', '云浮市', '445303', '云安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445321', '4453', '00,44,4453', '新兴县', '44', '广东省', '4453', '云浮市', '445321', '新兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445322', '4453', '00,44,4453', '郁南县', '44', '广东省', '4453', '云浮市', '445322', '郁南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('445381', '4453', '00,44,4453', '罗定市', '44', '广东省', '4453', '云浮市', '445381', '罗定市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('45', '00', '00', '广西壮族自治区', '45', '广西壮族自治区', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('4501', '45', '00,45', '南宁市', '45', '广西壮族自治区', '4501', '南宁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450102', '4501', '00,45,4501', '兴宁区', '45', '广西壮族自治区', '4501', '南宁市', '450102', '兴宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450103', '4501', '00,45,4501', '青秀区', '45', '广西壮族自治区', '4501', '南宁市', '450103', '青秀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450105', '4501', '00,45,4501', '江南区', '45', '广西壮族自治区', '4501', '南宁市', '450105', '江南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450107', '4501', '00,45,4501', '西乡塘区', '45', '广西壮族自治区', '4501', '南宁市', '450107', '西乡塘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450108', '4501', '00,45,4501', '良庆区', '45', '广西壮族自治区', '4501', '南宁市', '450108', '良庆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450109', '4501', '00,45,4501', '邕宁区', '45', '广西壮族自治区', '4501', '南宁市', '450109', '邕宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450110', '4501', '00,45,4501', '武鸣区', '45', '广西壮族自治区', '4501', '南宁市', '450110', '武鸣区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450123', '4501', '00,45,4501', '隆安县', '45', '广西壮族自治区', '4501', '南宁市', '450123', '隆安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450124', '4501', '00,45,4501', '马山县', '45', '广西壮族自治区', '4501', '南宁市', '450124', '马山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450125', '4501', '00,45,4501', '上林县', '45', '广西壮族自治区', '4501', '南宁市', '450125', '上林县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450126', '4501', '00,45,4501', '宾阳县', '45', '广西壮族自治区', '4501', '南宁市', '450126', '宾阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450127', '4501', '00,45,4501', '横县', '45', '广西壮族自治区', '4501', '南宁市', '450127', '横县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4502', '45', '00,45', '柳州市', '45', '广西壮族自治区', '4502', '柳州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450202', '4502', '00,45,4502', '城中区', '45', '广西壮族自治区', '4502', '柳州市', '450202', '城中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450203', '4502', '00,45,4502', '鱼峰区', '45', '广西壮族自治区', '4502', '柳州市', '450203', '鱼峰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450204', '4502', '00,45,4502', '柳南区', '45', '广西壮族自治区', '4502', '柳州市', '450204', '柳南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450205', '4502', '00,45,4502', '柳北区', '45', '广西壮族自治区', '4502', '柳州市', '450205', '柳北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450206', '4502', '00,45,4502', '柳江区', '45', '广西壮族自治区', '4502', '柳州市', '450206', '柳江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450222', '4502', '00,45,4502', '柳城县', '45', '广西壮族自治区', '4502', '柳州市', '450222', '柳城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450223', '4502', '00,45,4502', '鹿寨县', '45', '广西壮族自治区', '4502', '柳州市', '450223', '鹿寨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450224', '4502', '00,45,4502', '融安县', '45', '广西壮族自治区', '4502', '柳州市', '450224', '融安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450225', '4502', '00,45,4502', '融水苗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450225', '融水苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450226', '4502', '00,45,4502', '三江侗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450226', '三江侗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4503', '45', '00,45', '桂林市', '45', '广西壮族自治区', '4503', '桂林市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450302', '4503', '00,45,4503', '秀峰区', '45', '广西壮族自治区', '4503', '桂林市', '450302', '秀峰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450303', '4503', '00,45,4503', '叠彩区', '45', '广西壮族自治区', '4503', '桂林市', '450303', '叠彩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450304', '4503', '00,45,4503', '象山区', '45', '广西壮族自治区', '4503', '桂林市', '450304', '象山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450305', '4503', '00,45,4503', '七星区', '45', '广西壮族自治区', '4503', '桂林市', '450305', '七星区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450311', '4503', '00,45,4503', '雁山区', '45', '广西壮族自治区', '4503', '桂林市', '450311', '雁山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450312', '4503', '00,45,4503', '临桂区', '45', '广西壮族自治区', '4503', '桂林市', '450312', '临桂区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450321', '4503', '00,45,4503', '阳朔县', '45', '广西壮族自治区', '4503', '桂林市', '450321', '阳朔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450323', '4503', '00,45,4503', '灵川县', '45', '广西壮族自治区', '4503', '桂林市', '450323', '灵川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450324', '4503', '00,45,4503', '全州县', '45', '广西壮族自治区', '4503', '桂林市', '450324', '全州县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450325', '4503', '00,45,4503', '兴安县', '45', '广西壮族自治区', '4503', '桂林市', '450325', '兴安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450326', '4503', '00,45,4503', '永福县', '45', '广西壮族自治区', '4503', '桂林市', '450326', '永福县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450327', '4503', '00,45,4503', '灌阳县', '45', '广西壮族自治区', '4503', '桂林市', '450327', '灌阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450328', '4503', '00,45,4503', '龙胜各族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450328', '龙胜各族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450329', '4503', '00,45,4503', '资源县', '45', '广西壮族自治区', '4503', '桂林市', '450329', '资源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450330', '4503', '00,45,4503', '平乐县', '45', '广西壮族自治区', '4503', '桂林市', '450330', '平乐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450332', '4503', '00,45,4503', '恭城瑶族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450332', '恭城瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450381', '4503', '00,45,4503', '荔浦市', '45', '广西壮族自治区', '4503', '桂林市', '450381', '荔浦市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4504', '45', '00,45', '梧州市', '45', '广西壮族自治区', '4504', '梧州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450403', '4504', '00,45,4504', '万秀区', '45', '广西壮族自治区', '4504', '梧州市', '450403', '万秀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450405', '4504', '00,45,4504', '长洲区', '45', '广西壮族自治区', '4504', '梧州市', '450405', '长洲区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450406', '4504', '00,45,4504', '龙圩区', '45', '广西壮族自治区', '4504', '梧州市', '450406', '龙圩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450421', '4504', '00,45,4504', '苍梧县', '45', '广西壮族自治区', '4504', '梧州市', '450421', '苍梧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450422', '4504', '00,45,4504', '藤县', '45', '广西壮族自治区', '4504', '梧州市', '450422', '藤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450423', '4504', '00,45,4504', '蒙山县', '45', '广西壮族自治区', '4504', '梧州市', '450423', '蒙山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450481', '4504', '00,45,4504', '岑溪市', '45', '广西壮族自治区', '4504', '梧州市', '450481', '岑溪市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4505', '45', '00,45', '北海市', '45', '广西壮族自治区', '4505', '北海市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450502', '4505', '00,45,4505', '海城区', '45', '广西壮族自治区', '4505', '北海市', '450502', '海城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450503', '4505', '00,45,4505', '银海区', '45', '广西壮族自治区', '4505', '北海市', '450503', '银海区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450512', '4505', '00,45,4505', '铁山港区', '45', '广西壮族自治区', '4505', '北海市', '450512', '铁山港区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450521', '4505', '00,45,4505', '合浦县', '45', '广西壮族自治区', '4505', '北海市', '450521', '合浦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4506', '45', '00,45', '防城港市', '45', '广西壮族自治区', '4506', '防城港市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450602', '4506', '00,45,4506', '港口区', '45', '广西壮族自治区', '4506', '防城港市', '450602', '港口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450603', '4506', '00,45,4506', '防城区', '45', '广西壮族自治区', '4506', '防城港市', '450603', '防城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450621', '4506', '00,45,4506', '上思县', '45', '广西壮族自治区', '4506', '防城港市', '450621', '上思县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450681', '4506', '00,45,4506', '东兴市', '45', '广西壮族自治区', '4506', '防城港市', '450681', '东兴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4507', '45', '00,45', '钦州市', '45', '广西壮族自治区', '4507', '钦州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450702', '4507', '00,45,4507', '钦南区', '45', '广西壮族自治区', '4507', '钦州市', '450702', '钦南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450703', '4507', '00,45,4507', '钦北区', '45', '广西壮族自治区', '4507', '钦州市', '450703', '钦北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450721', '4507', '00,45,4507', '灵山县', '45', '广西壮族自治区', '4507', '钦州市', '450721', '灵山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450722', '4507', '00,45,4507', '浦北县', '45', '广西壮族自治区', '4507', '钦州市', '450722', '浦北县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4508', '45', '00,45', '贵港市', '45', '广西壮族自治区', '4508', '贵港市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450802', '4508', '00,45,4508', '港北区', '45', '广西壮族自治区', '4508', '贵港市', '450802', '港北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450803', '4508', '00,45,4508', '港南区', '45', '广西壮族自治区', '4508', '贵港市', '450803', '港南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450804', '4508', '00,45,4508', '覃塘区', '45', '广西壮族自治区', '4508', '贵港市', '450804', '覃塘区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450821', '4508', '00,45,4508', '平南县', '45', '广西壮族自治区', '4508', '贵港市', '450821', '平南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450881', '4508', '00,45,4508', '桂平市', '45', '广西壮族自治区', '4508', '贵港市', '450881', '桂平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4509', '45', '00,45', '玉林市', '45', '广西壮族自治区', '4509', '玉林市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('450902', '4509', '00,45,4509', '玉州区', '45', '广西壮族自治区', '4509', '玉林市', '450902', '玉州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450903', '4509', '00,45,4509', '福绵区', '45', '广西壮族自治区', '4509', '玉林市', '450903', '福绵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450921', '4509', '00,45,4509', '容县', '45', '广西壮族自治区', '4509', '玉林市', '450921', '容县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450922', '4509', '00,45,4509', '陆川县', '45', '广西壮族自治区', '4509', '玉林市', '450922', '陆川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450923', '4509', '00,45,4509', '博白县', '45', '广西壮族自治区', '4509', '玉林市', '450923', '博白县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('460300', '4603', '00,46,4603', '三沙市', '46', '海南省', '4603', '三沙市', '460300', '三沙市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450924', '4509', '00,45,4509', '兴业县', '45', '广西壮族自治区', '4509', '玉林市', '450924', '兴业县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('450981', '4509', '00,45,4509', '北流市', '45', '广西壮族自治区', '4509', '玉林市', '450981', '北流市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4510', '45', '00,45', '百色市', '45', '广西壮族自治区', '4510', '百色市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('451002', '4510', '00,45,4510', '右江区', '45', '广西壮族自治区', '4510', '百色市', '451002', '右江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451003', '4510', '00,45,4510', '田阳区', '45', '广西壮族自治区', '4510', '百色市', '451003', '田阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451022', '4510', '00,45,4510', '田东县', '45', '广西壮族自治区', '4510', '百色市', '451022', '田东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451024', '4510', '00,45,4510', '德保县', '45', '广西壮族自治区', '4510', '百色市', '451024', '德保县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451026', '4510', '00,45,4510', '那坡县', '45', '广西壮族自治区', '4510', '百色市', '451026', '那坡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451027', '4510', '00,45,4510', '凌云县', '45', '广西壮族自治区', '4510', '百色市', '451027', '凌云县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451028', '4510', '00,45,4510', '乐业县', '45', '广西壮族自治区', '4510', '百色市', '451028', '乐业县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451029', '4510', '00,45,4510', '田林县', '45', '广西壮族自治区', '4510', '百色市', '451029', '田林县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451030', '4510', '00,45,4510', '西林县', '45', '广西壮族自治区', '4510', '百色市', '451030', '西林县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451031', '4510', '00,45,4510', '隆林各族自治县', '45', '广西壮族自治区', '4510', '百色市', '451031', '隆林各族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451081', '4510', '00,45,4510', '靖西市', '45', '广西壮族自治区', '4510', '百色市', '451081', '靖西市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451082', '4510', '00,45,4510', '平果市', '45', '广西壮族自治区', '4510', '百色市', '451082', '平果市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4511', '45', '00,45', '贺州市', '45', '广西壮族自治区', '4511', '贺州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('451102', '4511', '00,45,4511', '八步区', '45', '广西壮族自治区', '4511', '贺州市', '451102', '八步区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451103', '4511', '00,45,4511', '平桂区', '45', '广西壮族自治区', '4511', '贺州市', '451103', '平桂区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451121', '4511', '00,45,4511', '昭平县', '45', '广西壮族自治区', '4511', '贺州市', '451121', '昭平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451122', '4511', '00,45,4511', '钟山县', '45', '广西壮族自治区', '4511', '贺州市', '451122', '钟山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451123', '4511', '00,45,4511', '富川瑶族自治县', '45', '广西壮族自治区', '4511', '贺州市', '451123', '富川瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4512', '45', '00,45', '河池市', '45', '广西壮族自治区', '4512', '河池市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('451202', '4512', '00,45,4512', '金城江区', '45', '广西壮族自治区', '4512', '河池市', '451202', '金城江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451203', '4512', '00,45,4512', '宜州区', '45', '广西壮族自治区', '4512', '河池市', '451203', '宜州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451221', '4512', '00,45,4512', '南丹县', '45', '广西壮族自治区', '4512', '河池市', '451221', '南丹县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451222', '4512', '00,45,4512', '天峨县', '45', '广西壮族自治区', '4512', '河池市', '451222', '天峨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451223', '4512', '00,45,4512', '凤山县', '45', '广西壮族自治区', '4512', '河池市', '451223', '凤山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451224', '4512', '00,45,4512', '东兰县', '45', '广西壮族自治区', '4512', '河池市', '451224', '东兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451225', '4512', '00,45,4512', '罗城仫佬族自治县', '45', '广西壮族自治区', '4512', '河池市', '451225', '罗城仫佬族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451226', '4512', '00,45,4512', '环江毛南族自治县', '45', '广西壮族自治区', '4512', '河池市', '451226', '环江毛南族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451227', '4512', '00,45,4512', '巴马瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451227', '巴马瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451228', '4512', '00,45,4512', '都安瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451228', '都安瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451229', '4512', '00,45,4512', '大化瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451229', '大化瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4513', '45', '00,45', '来宾市', '45', '广西壮族自治区', '4513', '来宾市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('451302', '4513', '00,45,4513', '兴宾区', '45', '广西壮族自治区', '4513', '来宾市', '451302', '兴宾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451321', '4513', '00,45,4513', '忻城县', '45', '广西壮族自治区', '4513', '来宾市', '451321', '忻城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451322', '4513', '00,45,4513', '象州县', '45', '广西壮族自治区', '4513', '来宾市', '451322', '象州县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451323', '4513', '00,45,4513', '武宣县', '45', '广西壮族自治区', '4513', '来宾市', '451323', '武宣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451324', '4513', '00,45,4513', '金秀瑶族自治县', '45', '广西壮族自治区', '4513', '来宾市', '451324', '金秀瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451381', '4513', '00,45,4513', '合山市', '45', '广西壮族自治区', '4513', '来宾市', '451381', '合山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4514', '45', '00,45', '崇左市', '45', '广西壮族自治区', '4514', '崇左市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('451402', '4514', '00,45,4514', '江州区', '45', '广西壮族自治区', '4514', '崇左市', '451402', '江州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451421', '4514', '00,45,4514', '扶绥县', '45', '广西壮族自治区', '4514', '崇左市', '451421', '扶绥县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451422', '4514', '00,45,4514', '宁明县', '45', '广西壮族自治区', '4514', '崇左市', '451422', '宁明县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451423', '4514', '00,45,4514', '龙州县', '45', '广西壮族自治区', '4514', '崇左市', '451423', '龙州县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451424', '4514', '00,45,4514', '大新县', '45', '广西壮族自治区', '4514', '崇左市', '451424', '大新县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451425', '4514', '00,45,4514', '天等县', '45', '广西壮族自治区', '4514', '崇左市', '451425', '天等县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('451481', '4514', '00,45,4514', '凭祥市', '45', '广西壮族自治区', '4514', '崇左市', '451481', '凭祥市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('46', '00', '00', '海南省', '46', '海南省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('4601', '46', '00,46', '海口市', '46', '海南省', '4601', '海口市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('460105', '4601', '00,46,4601', '秀英区', '46', '海南省', '4601', '海口市', '460105', '秀英区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('460106', '4601', '00,46,4601', '龙华区', '46', '海南省', '4601', '海口市', '460106', '龙华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('460107', '4601', '00,46,4601', '琼山区', '46', '海南省', '4601', '海口市', '460107', '琼山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('460108', '4601', '00,46,4601', '美兰区', '46', '海南省', '4601', '海口市', '460108', '美兰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4602', '46', '00,46', '三亚市', '46', '海南省', '4602', '三亚市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('460202', '4602', '00,46,4602', '海棠区', '46', '海南省', '4602', '三亚市', '460202', '海棠区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('460203', '4602', '00,46,4602', '吉阳区', '46', '海南省', '4602', '三亚市', '460203', '吉阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('460204', '4602', '00,46,4602', '天涯区', '46', '海南省', '4602', '三亚市', '460204', '天涯区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('460205', '4602', '00,46,4602', '崖州区', '46', '海南省', '4602', '三亚市', '460205', '崖州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4603', '46', '00,46', '三沙市', '46', '海南省', '4603', '三沙市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('460400', '4604', '00,46,4604', '儋州市', '46', '海南省', '4604', '儋州市', '460400', '儋州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('4690', '46', '00,46', '省直辖县级行政区', '46', '海南省', '4690', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('469001', '4690', '00,46,4690', '五指山市', '46', '海南省', '4690', '省直辖县级行政区', '469001', '五指山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469002', '4690', '00,46,4690', '琼海市', '46', '海南省', '4690', '省直辖县级行政区', '469002', '琼海市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469005', '4690', '00,46,4690', '文昌市', '46', '海南省', '4690', '省直辖县级行政区', '469005', '文昌市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469006', '4690', '00,46,4690', '万宁市', '46', '海南省', '4690', '省直辖县级行政区', '469006', '万宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469007', '4690', '00,46,4690', '东方市', '46', '海南省', '4690', '省直辖县级行政区', '469007', '东方市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469021', '4690', '00,46,4690', '定安县', '46', '海南省', '4690', '省直辖县级行政区', '469021', '定安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469022', '4690', '00,46,4690', '屯昌县', '46', '海南省', '4690', '省直辖县级行政区', '469022', '屯昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469023', '4690', '00,46,4690', '澄迈县', '46', '海南省', '4690', '省直辖县级行政区', '469023', '澄迈县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469024', '4690', '00,46,4690', '临高县', '46', '海南省', '4690', '省直辖县级行政区', '469024', '临高县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469025', '4690', '00,46,4690', '白沙黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469025', '白沙黎族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469026', '4690', '00,46,4690', '昌江黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469026', '昌江黎族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469027', '4690', '00,46,4690', '乐东黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469027', '乐东黎族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469028', '4690', '00,46,4690', '陵水黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469028', '陵水黎族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469029', '4690', '00,46,4690', '保亭黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469029', '保亭黎族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('469030', '4690', '00,46,4690', '琼中黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469030', '琼中黎族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('50', '00', '00', '重庆市', '50', '重庆市', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('5001', '50', '00,50', '重庆市', '50', '重庆市', '5001', '重庆市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('500101', '5001', '00,50,5001', '万州区', '50', '重庆市', '5001', '重庆市', '500101', '万州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500102', '5001', '00,50,5001', '涪陵区', '50', '重庆市', '5001', '重庆市', '500102', '涪陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500103', '5001', '00,50,5001', '渝中区', '50', '重庆市', '5001', '重庆市', '500103', '渝中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500104', '5001', '00,50,5001', '大渡口区', '50', '重庆市', '5001', '重庆市', '500104', '大渡口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500105', '5001', '00,50,5001', '江北区', '50', '重庆市', '5001', '重庆市', '500105', '江北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500106', '5001', '00,50,5001', '沙坪坝区', '50', '重庆市', '5001', '重庆市', '500106', '沙坪坝区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500107', '5001', '00,50,5001', '九龙坡区', '50', '重庆市', '5001', '重庆市', '500107', '九龙坡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500108', '5001', '00,50,5001', '南岸区', '50', '重庆市', '5001', '重庆市', '500108', '南岸区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500109', '5001', '00,50,5001', '北碚区', '50', '重庆市', '5001', '重庆市', '500109', '北碚区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500110', '5001', '00,50,5001', '綦江区', '50', '重庆市', '5001', '重庆市', '500110', '綦江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500111', '5001', '00,50,5001', '大足区', '50', '重庆市', '5001', '重庆市', '500111', '大足区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500112', '5001', '00,50,5001', '渝北区', '50', '重庆市', '5001', '重庆市', '500112', '渝北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500113', '5001', '00,50,5001', '巴南区', '50', '重庆市', '5001', '重庆市', '500113', '巴南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500114', '5001', '00,50,5001', '黔江区', '50', '重庆市', '5001', '重庆市', '500114', '黔江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500115', '5001', '00,50,5001', '长寿区', '50', '重庆市', '5001', '重庆市', '500115', '长寿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500116', '5001', '00,50,5001', '江津区', '50', '重庆市', '5001', '重庆市', '500116', '江津区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500117', '5001', '00,50,5001', '合川区', '50', '重庆市', '5001', '重庆市', '500117', '合川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500118', '5001', '00,50,5001', '永川区', '50', '重庆市', '5001', '重庆市', '500118', '永川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500119', '5001', '00,50,5001', '南川区', '50', '重庆市', '5001', '重庆市', '500119', '南川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500120', '5001', '00,50,5001', '璧山区', '50', '重庆市', '5001', '重庆市', '500120', '璧山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500151', '5001', '00,50,5001', '铜梁区', '50', '重庆市', '5001', '重庆市', '500151', '铜梁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500152', '5001', '00,50,5001', '潼南区', '50', '重庆市', '5001', '重庆市', '500152', '潼南区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500153', '5001', '00,50,5001', '荣昌区', '50', '重庆市', '5001', '重庆市', '500153', '荣昌区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500154', '5001', '00,50,5001', '开州区', '50', '重庆市', '5001', '重庆市', '500154', '开州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500155', '5001', '00,50,5001', '梁平区', '50', '重庆市', '5001', '重庆市', '500155', '梁平区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500156', '5001', '00,50,5001', '武隆区', '50', '重庆市', '5001', '重庆市', '500156', '武隆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5002', '50', '00,50', '重庆市', '50', '重庆市', '5002', '重庆市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('500229', '5002', '00,50,5002', '城口县', '50', '重庆市', '5002', '重庆市', '500229', '城口县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500230', '5002', '00,50,5002', '丰都县', '50', '重庆市', '5002', '重庆市', '500230', '丰都县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500231', '5002', '00,50,5002', '垫江县', '50', '重庆市', '5002', '重庆市', '500231', '垫江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500233', '5002', '00,50,5002', '忠县', '50', '重庆市', '5002', '重庆市', '500233', '忠县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500235', '5002', '00,50,5002', '云阳县', '50', '重庆市', '5002', '重庆市', '500235', '云阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500236', '5002', '00,50,5002', '奉节县', '50', '重庆市', '5002', '重庆市', '500236', '奉节县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500237', '5002', '00,50,5002', '巫山县', '50', '重庆市', '5002', '重庆市', '500237', '巫山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500238', '5002', '00,50,5002', '巫溪县', '50', '重庆市', '5002', '重庆市', '500238', '巫溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500240', '5002', '00,50,5002', '石柱土家族自治县', '50', '重庆市', '5002', '重庆市', '500240', '石柱土家族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500241', '5002', '00,50,5002', '秀山土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500241', '秀山土家族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500242', '5002', '00,50,5002', '酉阳土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500242', '酉阳土家族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('500243', '5002', '00,50,5002', '彭水苗族土家族自治县', '50', '重庆市', '5002', '重庆市', '500243', '彭水苗族土家族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('51', '00', '00', '四川省', '51', '四川省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('5101', '51', '00,51', '成都市', '51', '四川省', '5101', '成都市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510104', '5101', '00,51,5101', '锦江区', '51', '四川省', '5101', '成都市', '510104', '锦江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510105', '5101', '00,51,5101', '青羊区', '51', '四川省', '5101', '成都市', '510105', '青羊区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510106', '5101', '00,51,5101', '金牛区', '51', '四川省', '5101', '成都市', '510106', '金牛区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510107', '5101', '00,51,5101', '武侯区', '51', '四川省', '5101', '成都市', '510107', '武侯区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510108', '5101', '00,51,5101', '成华区', '51', '四川省', '5101', '成都市', '510108', '成华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510112', '5101', '00,51,5101', '龙泉驿区', '51', '四川省', '5101', '成都市', '510112', '龙泉驿区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510113', '5101', '00,51,5101', '青白江区', '51', '四川省', '5101', '成都市', '510113', '青白江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510114', '5101', '00,51,5101', '新都区', '51', '四川省', '5101', '成都市', '510114', '新都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510115', '5101', '00,51,5101', '温江区', '51', '四川省', '5101', '成都市', '510115', '温江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510116', '5101', '00,51,5101', '双流区', '51', '四川省', '5101', '成都市', '510116', '双流区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510117', '5101', '00,51,5101', '郫都区', '51', '四川省', '5101', '成都市', '510117', '郫都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510121', '5101', '00,51,5101', '金堂县', '51', '四川省', '5101', '成都市', '510121', '金堂县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510129', '5101', '00,51,5101', '大邑县', '51', '四川省', '5101', '成都市', '510129', '大邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510131', '5101', '00,51,5101', '蒲江县', '51', '四川省', '5101', '成都市', '510131', '蒲江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510132', '5101', '00,51,5101', '新津县', '51', '四川省', '5101', '成都市', '510132', '新津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510181', '5101', '00,51,5101', '都江堰市', '51', '四川省', '5101', '成都市', '510181', '都江堰市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510182', '5101', '00,51,5101', '彭州市', '51', '四川省', '5101', '成都市', '510182', '彭州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510183', '5101', '00,51,5101', '邛崃市', '51', '四川省', '5101', '成都市', '510183', '邛崃市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510184', '5101', '00,51,5101', '崇州市', '51', '四川省', '5101', '成都市', '510184', '崇州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510185', '5101', '00,51,5101', '简阳市', '51', '四川省', '5101', '成都市', '510185', '简阳市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5103', '51', '00,51', '自贡市', '51', '四川省', '5103', '自贡市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510302', '5103', '00,51,5103', '自流井区', '51', '四川省', '5103', '自贡市', '510302', '自流井区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510303', '5103', '00,51,5103', '贡井区', '51', '四川省', '5103', '自贡市', '510303', '贡井区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510304', '5103', '00,51,5103', '大安区', '51', '四川省', '5103', '自贡市', '510304', '大安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510311', '5103', '00,51,5103', '沿滩区', '51', '四川省', '5103', '自贡市', '510311', '沿滩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510321', '5103', '00,51,5103', '荣县', '51', '四川省', '5103', '自贡市', '510321', '荣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510322', '5103', '00,51,5103', '富顺县', '51', '四川省', '5103', '自贡市', '510322', '富顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5104', '51', '00,51', '攀枝花市', '51', '四川省', '5104', '攀枝花市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510402', '5104', '00,51,5104', '东区', '51', '四川省', '5104', '攀枝花市', '510402', '东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510403', '5104', '00,51,5104', '西区', '51', '四川省', '5104', '攀枝花市', '510403', '西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510411', '5104', '00,51,5104', '仁和区', '51', '四川省', '5104', '攀枝花市', '510411', '仁和区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510421', '5104', '00,51,5104', '米易县', '51', '四川省', '5104', '攀枝花市', '510421', '米易县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510422', '5104', '00,51,5104', '盐边县', '51', '四川省', '5104', '攀枝花市', '510422', '盐边县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5105', '51', '00,51', '泸州市', '51', '四川省', '5105', '泸州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510502', '5105', '00,51,5105', '江阳区', '51', '四川省', '5105', '泸州市', '510502', '江阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510503', '5105', '00,51,5105', '纳溪区', '51', '四川省', '5105', '泸州市', '510503', '纳溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510504', '5105', '00,51,5105', '龙马潭区', '51', '四川省', '5105', '泸州市', '510504', '龙马潭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510521', '5105', '00,51,5105', '泸县', '51', '四川省', '5105', '泸州市', '510521', '泸县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510522', '5105', '00,51,5105', '合江县', '51', '四川省', '5105', '泸州市', '510522', '合江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510524', '5105', '00,51,5105', '叙永县', '51', '四川省', '5105', '泸州市', '510524', '叙永县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510525', '5105', '00,51,5105', '古蔺县', '51', '四川省', '5105', '泸州市', '510525', '古蔺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5106', '51', '00,51', '德阳市', '51', '四川省', '5106', '德阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510603', '5106', '00,51,5106', '旌阳区', '51', '四川省', '5106', '德阳市', '510603', '旌阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510604', '5106', '00,51,5106', '罗江区', '51', '四川省', '5106', '德阳市', '510604', '罗江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510623', '5106', '00,51,5106', '中江县', '51', '四川省', '5106', '德阳市', '510623', '中江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510681', '5106', '00,51,5106', '广汉市', '51', '四川省', '5106', '德阳市', '510681', '广汉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510682', '5106', '00,51,5106', '什邡市', '51', '四川省', '5106', '德阳市', '510682', '什邡市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510683', '5106', '00,51,5106', '绵竹市', '51', '四川省', '5106', '德阳市', '510683', '绵竹市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5107', '51', '00,51', '绵阳市', '51', '四川省', '5107', '绵阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510703', '5107', '00,51,5107', '涪城区', '51', '四川省', '5107', '绵阳市', '510703', '涪城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510704', '5107', '00,51,5107', '游仙区', '51', '四川省', '5107', '绵阳市', '510704', '游仙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510705', '5107', '00,51,5107', '安州区', '51', '四川省', '5107', '绵阳市', '510705', '安州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510722', '5107', '00,51,5107', '三台县', '51', '四川省', '5107', '绵阳市', '510722', '三台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510723', '5107', '00,51,5107', '盐亭县', '51', '四川省', '5107', '绵阳市', '510723', '盐亭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510725', '5107', '00,51,5107', '梓潼县', '51', '四川省', '5107', '绵阳市', '510725', '梓潼县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510726', '5107', '00,51,5107', '北川羌族自治县', '51', '四川省', '5107', '绵阳市', '510726', '北川羌族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510727', '5107', '00,51,5107', '平武县', '51', '四川省', '5107', '绵阳市', '510727', '平武县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510781', '5107', '00,51,5107', '江油市', '51', '四川省', '5107', '绵阳市', '510781', '江油市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5108', '51', '00,51', '广元市', '51', '四川省', '5108', '广元市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510802', '5108', '00,51,5108', '利州区', '51', '四川省', '5108', '广元市', '510802', '利州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510811', '5108', '00,51,5108', '昭化区', '51', '四川省', '5108', '广元市', '510811', '昭化区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510812', '5108', '00,51,5108', '朝天区', '51', '四川省', '5108', '广元市', '510812', '朝天区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510821', '5108', '00,51,5108', '旺苍县', '51', '四川省', '5108', '广元市', '510821', '旺苍县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510822', '5108', '00,51,5108', '青川县', '51', '四川省', '5108', '广元市', '510822', '青川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510823', '5108', '00,51,5108', '剑阁县', '51', '四川省', '5108', '广元市', '510823', '剑阁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510824', '5108', '00,51,5108', '苍溪县', '51', '四川省', '5108', '广元市', '510824', '苍溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5109', '51', '00,51', '遂宁市', '51', '四川省', '5109', '遂宁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('510903', '5109', '00,51,5109', '船山区', '51', '四川省', '5109', '遂宁市', '510903', '船山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510904', '5109', '00,51,5109', '安居区', '51', '四川省', '5109', '遂宁市', '510904', '安居区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510921', '5109', '00,51,5109', '蓬溪县', '51', '四川省', '5109', '遂宁市', '510921', '蓬溪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510923', '5109', '00,51,5109', '大英县', '51', '四川省', '5109', '遂宁市', '510923', '大英县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('510981', '5109', '00,51,5109', '射洪市', '51', '四川省', '5109', '遂宁市', '510981', '射洪市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5110', '51', '00,51', '内江市', '51', '四川省', '5110', '内江市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511002', '5110', '00,51,5110', '市中区', '51', '四川省', '5110', '内江市', '511002', '市中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511011', '5110', '00,51,5110', '东兴区', '51', '四川省', '5110', '内江市', '511011', '东兴区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511024', '5110', '00,51,5110', '威远县', '51', '四川省', '5110', '内江市', '511024', '威远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511025', '5110', '00,51,5110', '资中县', '51', '四川省', '5110', '内江市', '511025', '资中县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511083', '5110', '00,51,5110', '隆昌市', '51', '四川省', '5110', '内江市', '511083', '隆昌市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5111', '51', '00,51', '乐山市', '51', '四川省', '5111', '乐山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511102', '5111', '00,51,5111', '市中区', '51', '四川省', '5111', '乐山市', '511102', '市中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511111', '5111', '00,51,5111', '沙湾区', '51', '四川省', '5111', '乐山市', '511111', '沙湾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511112', '5111', '00,51,5111', '五通桥区', '51', '四川省', '5111', '乐山市', '511112', '五通桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511113', '5111', '00,51,5111', '金口河区', '51', '四川省', '5111', '乐山市', '511113', '金口河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511123', '5111', '00,51,5111', '犍为县', '51', '四川省', '5111', '乐山市', '511123', '犍为县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511124', '5111', '00,51,5111', '井研县', '51', '四川省', '5111', '乐山市', '511124', '井研县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511126', '5111', '00,51,5111', '夹江县', '51', '四川省', '5111', '乐山市', '511126', '夹江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511129', '5111', '00,51,5111', '沐川县', '51', '四川省', '5111', '乐山市', '511129', '沐川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511132', '5111', '00,51,5111', '峨边彝族自治县', '51', '四川省', '5111', '乐山市', '511132', '峨边彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511133', '5111', '00,51,5111', '马边彝族自治县', '51', '四川省', '5111', '乐山市', '511133', '马边彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511181', '5111', '00,51,5111', '峨眉山市', '51', '四川省', '5111', '乐山市', '511181', '峨眉山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5113', '51', '00,51', '南充市', '51', '四川省', '5113', '南充市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511302', '5113', '00,51,5113', '顺庆区', '51', '四川省', '5113', '南充市', '511302', '顺庆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511303', '5113', '00,51,5113', '高坪区', '51', '四川省', '5113', '南充市', '511303', '高坪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511304', '5113', '00,51,5113', '嘉陵区', '51', '四川省', '5113', '南充市', '511304', '嘉陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511321', '5113', '00,51,5113', '南部县', '51', '四川省', '5113', '南充市', '511321', '南部县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511322', '5113', '00,51,5113', '营山县', '51', '四川省', '5113', '南充市', '511322', '营山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511323', '5113', '00,51,5113', '蓬安县', '51', '四川省', '5113', '南充市', '511323', '蓬安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511324', '5113', '00,51,5113', '仪陇县', '51', '四川省', '5113', '南充市', '511324', '仪陇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511325', '5113', '00,51,5113', '西充县', '51', '四川省', '5113', '南充市', '511325', '西充县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511381', '5113', '00,51,5113', '阆中市', '51', '四川省', '5113', '南充市', '511381', '阆中市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5114', '51', '00,51', '眉山市', '51', '四川省', '5114', '眉山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511402', '5114', '00,51,5114', '东坡区', '51', '四川省', '5114', '眉山市', '511402', '东坡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511403', '5114', '00,51,5114', '彭山区', '51', '四川省', '5114', '眉山市', '511403', '彭山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511421', '5114', '00,51,5114', '仁寿县', '51', '四川省', '5114', '眉山市', '511421', '仁寿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511423', '5114', '00,51,5114', '洪雅县', '51', '四川省', '5114', '眉山市', '511423', '洪雅县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511424', '5114', '00,51,5114', '丹棱县', '51', '四川省', '5114', '眉山市', '511424', '丹棱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511425', '5114', '00,51,5114', '青神县', '51', '四川省', '5114', '眉山市', '511425', '青神县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5115', '51', '00,51', '宜宾市', '51', '四川省', '5115', '宜宾市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511502', '5115', '00,51,5115', '翠屏区', '51', '四川省', '5115', '宜宾市', '511502', '翠屏区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511503', '5115', '00,51,5115', '南溪区', '51', '四川省', '5115', '宜宾市', '511503', '南溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511504', '5115', '00,51,5115', '叙州区', '51', '四川省', '5115', '宜宾市', '511504', '叙州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511523', '5115', '00,51,5115', '江安县', '51', '四川省', '5115', '宜宾市', '511523', '江安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511524', '5115', '00,51,5115', '长宁县', '51', '四川省', '5115', '宜宾市', '511524', '长宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511525', '5115', '00,51,5115', '高县', '51', '四川省', '5115', '宜宾市', '511525', '高县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511526', '5115', '00,51,5115', '珙县', '51', '四川省', '5115', '宜宾市', '511526', '珙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511527', '5115', '00,51,5115', '筠连县', '51', '四川省', '5115', '宜宾市', '511527', '筠连县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511528', '5115', '00,51,5115', '兴文县', '51', '四川省', '5115', '宜宾市', '511528', '兴文县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511529', '5115', '00,51,5115', '屏山县', '51', '四川省', '5115', '宜宾市', '511529', '屏山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5116', '51', '00,51', '广安市', '51', '四川省', '5116', '广安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511602', '5116', '00,51,5116', '广安区', '51', '四川省', '5116', '广安市', '511602', '广安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511603', '5116', '00,51,5116', '前锋区', '51', '四川省', '5116', '广安市', '511603', '前锋区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511621', '5116', '00,51,5116', '岳池县', '51', '四川省', '5116', '广安市', '511621', '岳池县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511622', '5116', '00,51,5116', '武胜县', '51', '四川省', '5116', '广安市', '511622', '武胜县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511623', '5116', '00,51,5116', '邻水县', '51', '四川省', '5116', '广安市', '511623', '邻水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511681', '5116', '00,51,5116', '华蓥市', '51', '四川省', '5116', '广安市', '511681', '华蓥市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5117', '51', '00,51', '达州市', '51', '四川省', '5117', '达州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511702', '5117', '00,51,5117', '通川区', '51', '四川省', '5117', '达州市', '511702', '通川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511703', '5117', '00,51,5117', '达川区', '51', '四川省', '5117', '达州市', '511703', '达川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511722', '5117', '00,51,5117', '宣汉县', '51', '四川省', '5117', '达州市', '511722', '宣汉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511723', '5117', '00,51,5117', '开江县', '51', '四川省', '5117', '达州市', '511723', '开江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511724', '5117', '00,51,5117', '大竹县', '51', '四川省', '5117', '达州市', '511724', '大竹县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511725', '5117', '00,51,5117', '渠县', '51', '四川省', '5117', '达州市', '511725', '渠县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511781', '5117', '00,51,5117', '万源市', '51', '四川省', '5117', '达州市', '511781', '万源市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5118', '51', '00,51', '雅安市', '51', '四川省', '5118', '雅安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511802', '5118', '00,51,5118', '雨城区', '51', '四川省', '5118', '雅安市', '511802', '雨城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511803', '5118', '00,51,5118', '名山区', '51', '四川省', '5118', '雅安市', '511803', '名山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511822', '5118', '00,51,5118', '荥经县', '51', '四川省', '5118', '雅安市', '511822', '荥经县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511823', '5118', '00,51,5118', '汉源县', '51', '四川省', '5118', '雅安市', '511823', '汉源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511824', '5118', '00,51,5118', '石棉县', '51', '四川省', '5118', '雅安市', '511824', '石棉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511825', '5118', '00,51,5118', '天全县', '51', '四川省', '5118', '雅安市', '511825', '天全县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511826', '5118', '00,51,5118', '芦山县', '51', '四川省', '5118', '雅安市', '511826', '芦山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511827', '5118', '00,51,5118', '宝兴县', '51', '四川省', '5118', '雅安市', '511827', '宝兴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5119', '51', '00,51', '巴中市', '51', '四川省', '5119', '巴中市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('511902', '5119', '00,51,5119', '巴州区', '51', '四川省', '5119', '巴中市', '511902', '巴州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511903', '5119', '00,51,5119', '恩阳区', '51', '四川省', '5119', '巴中市', '511903', '恩阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511921', '5119', '00,51,5119', '通江县', '51', '四川省', '5119', '巴中市', '511921', '通江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511922', '5119', '00,51,5119', '南江县', '51', '四川省', '5119', '巴中市', '511922', '南江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('511923', '5119', '00,51,5119', '平昌县', '51', '四川省', '5119', '巴中市', '511923', '平昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5120', '51', '00,51', '资阳市', '51', '四川省', '5120', '资阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('512002', '5120', '00,51,5120', '雁江区', '51', '四川省', '5120', '资阳市', '512002', '雁江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('512021', '5120', '00,51,5120', '安岳县', '51', '四川省', '5120', '资阳市', '512021', '安岳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('512022', '5120', '00,51,5120', '乐至县', '51', '四川省', '5120', '资阳市', '512022', '乐至县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5132', '51', '00,51', '阿坝藏族羌族自治州', '51', '四川省', '5132', '阿坝藏族羌族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('513201', '5132', '00,51,5132', '马尔康市', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513201', '马尔康市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513221', '5132', '00,51,5132', '汶川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513221', '汶川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513222', '5132', '00,51,5132', '理县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513222', '理县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513223', '5132', '00,51,5132', '茂县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513223', '茂县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513224', '5132', '00,51,5132', '松潘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513224', '松潘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513225', '5132', '00,51,5132', '九寨沟县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513225', '九寨沟县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513226', '5132', '00,51,5132', '金川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513226', '金川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513227', '5132', '00,51,5132', '小金县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513227', '小金县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513228', '5132', '00,51,5132', '黑水县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513228', '黑水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513230', '5132', '00,51,5132', '壤塘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513230', '壤塘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513231', '5132', '00,51,5132', '阿坝县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513231', '阿坝县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513232', '5132', '00,51,5132', '若尔盖县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513232', '若尔盖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513233', '5132', '00,51,5132', '红原县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513233', '红原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5133', '51', '00,51', '甘孜藏族自治州', '51', '四川省', '5133', '甘孜藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('513301', '5133', '00,51,5133', '康定市', '51', '四川省', '5133', '甘孜藏族自治州', '513301', '康定市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513322', '5133', '00,51,5133', '泸定县', '51', '四川省', '5133', '甘孜藏族自治州', '513322', '泸定县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513323', '5133', '00,51,5133', '丹巴县', '51', '四川省', '5133', '甘孜藏族自治州', '513323', '丹巴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513324', '5133', '00,51,5133', '九龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513324', '九龙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513325', '5133', '00,51,5133', '雅江县', '51', '四川省', '5133', '甘孜藏族自治州', '513325', '雅江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513326', '5133', '00,51,5133', '道孚县', '51', '四川省', '5133', '甘孜藏族自治州', '513326', '道孚县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513327', '5133', '00,51,5133', '炉霍县', '51', '四川省', '5133', '甘孜藏族自治州', '513327', '炉霍县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513328', '5133', '00,51,5133', '甘孜县', '51', '四川省', '5133', '甘孜藏族自治州', '513328', '甘孜县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513329', '5133', '00,51,5133', '新龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513329', '新龙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513330', '5133', '00,51,5133', '德格县', '51', '四川省', '5133', '甘孜藏族自治州', '513330', '德格县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513331', '5133', '00,51,5133', '白玉县', '51', '四川省', '5133', '甘孜藏族自治州', '513331', '白玉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513332', '5133', '00,51,5133', '石渠县', '51', '四川省', '5133', '甘孜藏族自治州', '513332', '石渠县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513333', '5133', '00,51,5133', '色达县', '51', '四川省', '5133', '甘孜藏族自治州', '513333', '色达县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513334', '5133', '00,51,5133', '理塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513334', '理塘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513335', '5133', '00,51,5133', '巴塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513335', '巴塘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513336', '5133', '00,51,5133', '乡城县', '51', '四川省', '5133', '甘孜藏族自治州', '513336', '乡城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513337', '5133', '00,51,5133', '稻城县', '51', '四川省', '5133', '甘孜藏族自治州', '513337', '稻城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513338', '5133', '00,51,5133', '得荣县', '51', '四川省', '5133', '甘孜藏族自治州', '513338', '得荣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5134', '51', '00,51', '凉山彝族自治州', '51', '四川省', '5134', '凉山彝族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('513401', '5134', '00,51,5134', '西昌市', '51', '四川省', '5134', '凉山彝族自治州', '513401', '西昌市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513422', '5134', '00,51,5134', '木里藏族自治县', '51', '四川省', '5134', '凉山彝族自治州', '513422', '木里藏族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513423', '5134', '00,51,5134', '盐源县', '51', '四川省', '5134', '凉山彝族自治州', '513423', '盐源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513424', '5134', '00,51,5134', '德昌县', '51', '四川省', '5134', '凉山彝族自治州', '513424', '德昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513425', '5134', '00,51,5134', '会理县', '51', '四川省', '5134', '凉山彝族自治州', '513425', '会理县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513426', '5134', '00,51,5134', '会东县', '51', '四川省', '5134', '凉山彝族自治州', '513426', '会东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513427', '5134', '00,51,5134', '宁南县', '51', '四川省', '5134', '凉山彝族自治州', '513427', '宁南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513428', '5134', '00,51,5134', '普格县', '51', '四川省', '5134', '凉山彝族自治州', '513428', '普格县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513429', '5134', '00,51,5134', '布拖县', '51', '四川省', '5134', '凉山彝族自治州', '513429', '布拖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513430', '5134', '00,51,5134', '金阳县', '51', '四川省', '5134', '凉山彝族自治州', '513430', '金阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513431', '5134', '00,51,5134', '昭觉县', '51', '四川省', '5134', '凉山彝族自治州', '513431', '昭觉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513432', '5134', '00,51,5134', '喜德县', '51', '四川省', '5134', '凉山彝族自治州', '513432', '喜德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513433', '5134', '00,51,5134', '冕宁县', '51', '四川省', '5134', '凉山彝族自治州', '513433', '冕宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513434', '5134', '00,51,5134', '越西县', '51', '四川省', '5134', '凉山彝族自治州', '513434', '越西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513435', '5134', '00,51,5134', '甘洛县', '51', '四川省', '5134', '凉山彝族自治州', '513435', '甘洛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513436', '5134', '00,51,5134', '美姑县', '51', '四川省', '5134', '凉山彝族自治州', '513436', '美姑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('513437', '5134', '00,51,5134', '雷波县', '51', '四川省', '5134', '凉山彝族自治州', '513437', '雷波县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('52', '00', '00', '贵州省', '52', '贵州省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('5201', '52', '00,52', '贵阳市', '52', '贵州省', '5201', '贵阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('520102', '5201', '00,52,5201', '南明区', '52', '贵州省', '5201', '贵阳市', '520102', '南明区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520103', '5201', '00,52,5201', '云岩区', '52', '贵州省', '5201', '贵阳市', '520103', '云岩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520111', '5201', '00,52,5201', '花溪区', '52', '贵州省', '5201', '贵阳市', '520111', '花溪区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520112', '5201', '00,52,5201', '乌当区', '52', '贵州省', '5201', '贵阳市', '520112', '乌当区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520113', '5201', '00,52,5201', '白云区', '52', '贵州省', '5201', '贵阳市', '520113', '白云区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520115', '5201', '00,52,5201', '观山湖区', '52', '贵州省', '5201', '贵阳市', '520115', '观山湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520121', '5201', '00,52,5201', '开阳县', '52', '贵州省', '5201', '贵阳市', '520121', '开阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520122', '5201', '00,52,5201', '息烽县', '52', '贵州省', '5201', '贵阳市', '520122', '息烽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520123', '5201', '00,52,5201', '修文县', '52', '贵州省', '5201', '贵阳市', '520123', '修文县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520181', '5201', '00,52,5201', '清镇市', '52', '贵州省', '5201', '贵阳市', '520181', '清镇市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5202', '52', '00,52', '六盘水市', '52', '贵州省', '5202', '六盘水市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('520201', '5202', '00,52,5202', '钟山区', '52', '贵州省', '5202', '六盘水市', '520201', '钟山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520203', '5202', '00,52,5202', '六枝特区', '52', '贵州省', '5202', '六盘水市', '520203', '六枝特区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520221', '5202', '00,52,5202', '水城县', '52', '贵州省', '5202', '六盘水市', '520221', '水城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520281', '5202', '00,52,5202', '盘州市', '52', '贵州省', '5202', '六盘水市', '520281', '盘州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5203', '52', '00,52', '遵义市', '52', '贵州省', '5203', '遵义市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('520302', '5203', '00,52,5203', '红花岗区', '52', '贵州省', '5203', '遵义市', '520302', '红花岗区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520303', '5203', '00,52,5203', '汇川区', '52', '贵州省', '5203', '遵义市', '520303', '汇川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520304', '5203', '00,52,5203', '播州区', '52', '贵州省', '5203', '遵义市', '520304', '播州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520322', '5203', '00,52,5203', '桐梓县', '52', '贵州省', '5203', '遵义市', '520322', '桐梓县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520323', '5203', '00,52,5203', '绥阳县', '52', '贵州省', '5203', '遵义市', '520323', '绥阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520324', '5203', '00,52,5203', '正安县', '52', '贵州省', '5203', '遵义市', '520324', '正安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520325', '5203', '00,52,5203', '道真仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520325', '道真仡佬族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520326', '5203', '00,52,5203', '务川仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520326', '务川仡佬族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520327', '5203', '00,52,5203', '凤冈县', '52', '贵州省', '5203', '遵义市', '520327', '凤冈县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520328', '5203', '00,52,5203', '湄潭县', '52', '贵州省', '5203', '遵义市', '520328', '湄潭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520329', '5203', '00,52,5203', '余庆县', '52', '贵州省', '5203', '遵义市', '520329', '余庆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520330', '5203', '00,52,5203', '习水县', '52', '贵州省', '5203', '遵义市', '520330', '习水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520381', '5203', '00,52,5203', '赤水市', '52', '贵州省', '5203', '遵义市', '520381', '赤水市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520382', '5203', '00,52,5203', '仁怀市', '52', '贵州省', '5203', '遵义市', '520382', '仁怀市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5204', '52', '00,52', '安顺市', '52', '贵州省', '5204', '安顺市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('520402', '5204', '00,52,5204', '西秀区', '52', '贵州省', '5204', '安顺市', '520402', '西秀区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520403', '5204', '00,52,5204', '平坝区', '52', '贵州省', '5204', '安顺市', '520403', '平坝区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520422', '5204', '00,52,5204', '普定县', '52', '贵州省', '5204', '安顺市', '520422', '普定县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520423', '5204', '00,52,5204', '镇宁布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520423', '镇宁布依族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520424', '5204', '00,52,5204', '关岭布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520424', '关岭布依族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520425', '5204', '00,52,5204', '紫云苗族布依族自治县', '52', '贵州省', '5204', '安顺市', '520425', '紫云苗族布依族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5205', '52', '00,52', '毕节市', '52', '贵州省', '5205', '毕节市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('520502', '5205', '00,52,5205', '七星关区', '52', '贵州省', '5205', '毕节市', '520502', '七星关区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520521', '5205', '00,52,5205', '大方县', '52', '贵州省', '5205', '毕节市', '520521', '大方县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520522', '5205', '00,52,5205', '黔西县', '52', '贵州省', '5205', '毕节市', '520522', '黔西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520523', '5205', '00,52,5205', '金沙县', '52', '贵州省', '5205', '毕节市', '520523', '金沙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520524', '5205', '00,52,5205', '织金县', '52', '贵州省', '5205', '毕节市', '520524', '织金县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520525', '5205', '00,52,5205', '纳雍县', '52', '贵州省', '5205', '毕节市', '520525', '纳雍县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520526', '5205', '00,52,5205', '威宁彝族回族苗族自治县', '52', '贵州省', '5205', '毕节市', '520526', '威宁彝族回族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520527', '5205', '00,52,5205', '赫章县', '52', '贵州省', '5205', '毕节市', '520527', '赫章县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5206', '52', '00,52', '铜仁市', '52', '贵州省', '5206', '铜仁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('520602', '5206', '00,52,5206', '碧江区', '52', '贵州省', '5206', '铜仁市', '520602', '碧江区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520603', '5206', '00,52,5206', '万山区', '52', '贵州省', '5206', '铜仁市', '520603', '万山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520621', '5206', '00,52,5206', '江口县', '52', '贵州省', '5206', '铜仁市', '520621', '江口县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520622', '5206', '00,52,5206', '玉屏侗族自治县', '52', '贵州省', '5206', '铜仁市', '520622', '玉屏侗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520623', '5206', '00,52,5206', '石阡县', '52', '贵州省', '5206', '铜仁市', '520623', '石阡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520624', '5206', '00,52,5206', '思南县', '52', '贵州省', '5206', '铜仁市', '520624', '思南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520625', '5206', '00,52,5206', '印江土家族苗族自治县', '52', '贵州省', '5206', '铜仁市', '520625', '印江土家族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520626', '5206', '00,52,5206', '德江县', '52', '贵州省', '5206', '铜仁市', '520626', '德江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520627', '5206', '00,52,5206', '沿河土家族自治县', '52', '贵州省', '5206', '铜仁市', '520627', '沿河土家族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('520628', '5206', '00,52,5206', '松桃苗族自治县', '52', '贵州省', '5206', '铜仁市', '520628', '松桃苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5223', '52', '00,52', '黔西南布依族苗族自治州', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('522301', '5223', '00,52,5223', '兴义市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522301', '兴义市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522302', '5223', '00,52,5223', '兴仁市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522302', '兴仁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522323', '5223', '00,52,5223', '普安县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522323', '普安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522324', '5223', '00,52,5223', '晴隆县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522324', '晴隆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522325', '5223', '00,52,5223', '贞丰县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522325', '贞丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522326', '5223', '00,52,5223', '望谟县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522326', '望谟县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522327', '5223', '00,52,5223', '册亨县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522327', '册亨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522328', '5223', '00,52,5223', '安龙县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522328', '安龙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5226', '52', '00,52', '黔东南苗族侗族自治州', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('522601', '5226', '00,52,5226', '凯里市', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522601', '凯里市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522622', '5226', '00,52,5226', '黄平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522622', '黄平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522623', '5226', '00,52,5226', '施秉县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522623', '施秉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522624', '5226', '00,52,5226', '三穗县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522624', '三穗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522625', '5226', '00,52,5226', '镇远县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522625', '镇远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522626', '5226', '00,52,5226', '岑巩县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522626', '岑巩县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522627', '5226', '00,52,5226', '天柱县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522627', '天柱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522628', '5226', '00,52,5226', '锦屏县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522628', '锦屏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522629', '5226', '00,52,5226', '剑河县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522629', '剑河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522630', '5226', '00,52,5226', '台江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522630', '台江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522631', '5226', '00,52,5226', '黎平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522631', '黎平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522632', '5226', '00,52,5226', '榕江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522632', '榕江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522633', '5226', '00,52,5226', '从江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522633', '从江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522634', '5226', '00,52,5226', '雷山县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522634', '雷山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522635', '5226', '00,52,5226', '麻江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522635', '麻江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522636', '5226', '00,52,5226', '丹寨县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522636', '丹寨县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5227', '52', '00,52', '黔南布依族苗族自治州', '52', '贵州省', '5227', '黔南布依族苗族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('522701', '5227', '00,52,5227', '都匀市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522701', '都匀市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522702', '5227', '00,52,5227', '福泉市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522702', '福泉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522722', '5227', '00,52,5227', '荔波县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522722', '荔波县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522723', '5227', '00,52,5227', '贵定县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522723', '贵定县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522725', '5227', '00,52,5227', '瓮安县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522725', '瓮安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522726', '5227', '00,52,5227', '独山县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522726', '独山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522727', '5227', '00,52,5227', '平塘县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522727', '平塘县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522728', '5227', '00,52,5227', '罗甸县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522728', '罗甸县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522729', '5227', '00,52,5227', '长顺县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522729', '长顺县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522730', '5227', '00,52,5227', '龙里县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522730', '龙里县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522731', '5227', '00,52,5227', '惠水县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522731', '惠水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('522732', '5227', '00,52,5227', '三都水族自治县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522732', '三都水族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('53', '00', '00', '云南省', '53', '云南省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('5301', '53', '00,53', '昆明市', '53', '云南省', '5301', '昆明市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530102', '5301', '00,53,5301', '五华区', '53', '云南省', '5301', '昆明市', '530102', '五华区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530103', '5301', '00,53,5301', '盘龙区', '53', '云南省', '5301', '昆明市', '530103', '盘龙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530111', '5301', '00,53,5301', '官渡区', '53', '云南省', '5301', '昆明市', '530111', '官渡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530112', '5301', '00,53,5301', '西山区', '53', '云南省', '5301', '昆明市', '530112', '西山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530113', '5301', '00,53,5301', '东川区', '53', '云南省', '5301', '昆明市', '530113', '东川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530114', '5301', '00,53,5301', '呈贡区', '53', '云南省', '5301', '昆明市', '530114', '呈贡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530115', '5301', '00,53,5301', '晋宁区', '53', '云南省', '5301', '昆明市', '530115', '晋宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530124', '5301', '00,53,5301', '富民县', '53', '云南省', '5301', '昆明市', '530124', '富民县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530125', '5301', '00,53,5301', '宜良县', '53', '云南省', '5301', '昆明市', '530125', '宜良县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530126', '5301', '00,53,5301', '石林彝族自治县', '53', '云南省', '5301', '昆明市', '530126', '石林彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530127', '5301', '00,53,5301', '嵩明县', '53', '云南省', '5301', '昆明市', '530127', '嵩明县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530128', '5301', '00,53,5301', '禄劝彝族苗族自治县', '53', '云南省', '5301', '昆明市', '530128', '禄劝彝族苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530129', '5301', '00,53,5301', '寻甸回族彝族自治县', '53', '云南省', '5301', '昆明市', '530129', '寻甸回族彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530181', '5301', '00,53,5301', '安宁市', '53', '云南省', '5301', '昆明市', '530181', '安宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5303', '53', '00,53', '曲靖市', '53', '云南省', '5303', '曲靖市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530302', '5303', '00,53,5303', '麒麟区', '53', '云南省', '5303', '曲靖市', '530302', '麒麟区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530303', '5303', '00,53,5303', '沾益区', '53', '云南省', '5303', '曲靖市', '530303', '沾益区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530304', '5303', '00,53,5303', '马龙区', '53', '云南省', '5303', '曲靖市', '530304', '马龙区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530322', '5303', '00,53,5303', '陆良县', '53', '云南省', '5303', '曲靖市', '530322', '陆良县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530323', '5303', '00,53,5303', '师宗县', '53', '云南省', '5303', '曲靖市', '530323', '师宗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530324', '5303', '00,53,5303', '罗平县', '53', '云南省', '5303', '曲靖市', '530324', '罗平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530325', '5303', '00,53,5303', '富源县', '53', '云南省', '5303', '曲靖市', '530325', '富源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530326', '5303', '00,53,5303', '会泽县', '53', '云南省', '5303', '曲靖市', '530326', '会泽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530381', '5303', '00,53,5303', '宣威市', '53', '云南省', '5303', '曲靖市', '530381', '宣威市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5304', '53', '00,53', '玉溪市', '53', '云南省', '5304', '玉溪市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530402', '5304', '00,53,5304', '红塔区', '53', '云南省', '5304', '玉溪市', '530402', '红塔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530403', '5304', '00,53,5304', '江川区', '53', '云南省', '5304', '玉溪市', '530403', '江川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530423', '5304', '00,53,5304', '通海县', '53', '云南省', '5304', '玉溪市', '530423', '通海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530424', '5304', '00,53,5304', '华宁县', '53', '云南省', '5304', '玉溪市', '530424', '华宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530425', '5304', '00,53,5304', '易门县', '53', '云南省', '5304', '玉溪市', '530425', '易门县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530426', '5304', '00,53,5304', '峨山彝族自治县', '53', '云南省', '5304', '玉溪市', '530426', '峨山彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530427', '5304', '00,53,5304', '新平彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530427', '新平彝族傣族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530428', '5304', '00,53,5304', '元江哈尼族彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530428', '元江哈尼族彝族傣族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530481', '5304', '00,53,5304', '澄江市', '53', '云南省', '5304', '玉溪市', '530481', '澄江市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5305', '53', '00,53', '保山市', '53', '云南省', '5305', '保山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530502', '5305', '00,53,5305', '隆阳区', '53', '云南省', '5305', '保山市', '530502', '隆阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530521', '5305', '00,53,5305', '施甸县', '53', '云南省', '5305', '保山市', '530521', '施甸县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530523', '5305', '00,53,5305', '龙陵县', '53', '云南省', '5305', '保山市', '530523', '龙陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530524', '5305', '00,53,5305', '昌宁县', '53', '云南省', '5305', '保山市', '530524', '昌宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530581', '5305', '00,53,5305', '腾冲市', '53', '云南省', '5305', '保山市', '530581', '腾冲市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5306', '53', '00,53', '昭通市', '53', '云南省', '5306', '昭通市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530602', '5306', '00,53,5306', '昭阳区', '53', '云南省', '5306', '昭通市', '530602', '昭阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530621', '5306', '00,53,5306', '鲁甸县', '53', '云南省', '5306', '昭通市', '530621', '鲁甸县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530622', '5306', '00,53,5306', '巧家县', '53', '云南省', '5306', '昭通市', '530622', '巧家县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530623', '5306', '00,53,5306', '盐津县', '53', '云南省', '5306', '昭通市', '530623', '盐津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530624', '5306', '00,53,5306', '大关县', '53', '云南省', '5306', '昭通市', '530624', '大关县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530625', '5306', '00,53,5306', '永善县', '53', '云南省', '5306', '昭通市', '530625', '永善县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530626', '5306', '00,53,5306', '绥江县', '53', '云南省', '5306', '昭通市', '530626', '绥江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530627', '5306', '00,53,5306', '镇雄县', '53', '云南省', '5306', '昭通市', '530627', '镇雄县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530628', '5306', '00,53,5306', '彝良县', '53', '云南省', '5306', '昭通市', '530628', '彝良县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530629', '5306', '00,53,5306', '威信县', '53', '云南省', '5306', '昭通市', '530629', '威信县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530681', '5306', '00,53,5306', '水富市', '53', '云南省', '5306', '昭通市', '530681', '水富市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5307', '53', '00,53', '丽江市', '53', '云南省', '5307', '丽江市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530702', '5307', '00,53,5307', '古城区', '53', '云南省', '5307', '丽江市', '530702', '古城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530721', '5307', '00,53,5307', '玉龙纳西族自治县', '53', '云南省', '5307', '丽江市', '530721', '玉龙纳西族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530722', '5307', '00,53,5307', '永胜县', '53', '云南省', '5307', '丽江市', '530722', '永胜县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530723', '5307', '00,53,5307', '华坪县', '53', '云南省', '5307', '丽江市', '530723', '华坪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530724', '5307', '00,53,5307', '宁蒗彝族自治县', '53', '云南省', '5307', '丽江市', '530724', '宁蒗彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5308', '53', '00,53', '普洱市', '53', '云南省', '5308', '普洱市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530802', '5308', '00,53,5308', '思茅区', '53', '云南省', '5308', '普洱市', '530802', '思茅区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530821', '5308', '00,53,5308', '宁洱哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530821', '宁洱哈尼族彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530822', '5308', '00,53,5308', '墨江哈尼族自治县', '53', '云南省', '5308', '普洱市', '530822', '墨江哈尼族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530823', '5308', '00,53,5308', '景东彝族自治县', '53', '云南省', '5308', '普洱市', '530823', '景东彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530824', '5308', '00,53,5308', '景谷傣族彝族自治县', '53', '云南省', '5308', '普洱市', '530824', '景谷傣族彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530825', '5308', '00,53,5308', '镇沅彝族哈尼族拉祜族自治县', '53', '云南省', '5308', '普洱市', '530825', '镇沅彝族哈尼族拉祜族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530826', '5308', '00,53,5308', '江城哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530826', '江城哈尼族彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530827', '5308', '00,53,5308', '孟连傣族拉祜族佤族自治县', '53', '云南省', '5308', '普洱市', '530827', '孟连傣族拉祜族佤族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530828', '5308', '00,53,5308', '澜沧拉祜族自治县', '53', '云南省', '5308', '普洱市', '530828', '澜沧拉祜族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530829', '5308', '00,53,5308', '西盟佤族自治县', '53', '云南省', '5308', '普洱市', '530829', '西盟佤族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5309', '53', '00,53', '临沧市', '53', '云南省', '5309', '临沧市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('530902', '5309', '00,53,5309', '临翔区', '53', '云南省', '5309', '临沧市', '530902', '临翔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530921', '5309', '00,53,5309', '凤庆县', '53', '云南省', '5309', '临沧市', '530921', '凤庆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530922', '5309', '00,53,5309', '云县', '53', '云南省', '5309', '临沧市', '530922', '云县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530923', '5309', '00,53,5309', '永德县', '53', '云南省', '5309', '临沧市', '530923', '永德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530924', '5309', '00,53,5309', '镇康县', '53', '云南省', '5309', '临沧市', '530924', '镇康县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530925', '5309', '00,53,5309', '双江拉祜族佤族布朗族傣族自治县', '53', '云南省', '5309', '临沧市', '530925', '双江拉祜族佤族布朗族傣族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530926', '5309', '00,53,5309', '耿马傣族佤族自治县', '53', '云南省', '5309', '临沧市', '530926', '耿马傣族佤族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('530927', '5309', '00,53,5309', '沧源佤族自治县', '53', '云南省', '5309', '临沧市', '530927', '沧源佤族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5323', '53', '00,53', '楚雄彝族自治州', '53', '云南省', '5323', '楚雄彝族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('532301', '5323', '00,53,5323', '楚雄市', '53', '云南省', '5323', '楚雄彝族自治州', '532301', '楚雄市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532322', '5323', '00,53,5323', '双柏县', '53', '云南省', '5323', '楚雄彝族自治州', '532322', '双柏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532323', '5323', '00,53,5323', '牟定县', '53', '云南省', '5323', '楚雄彝族自治州', '532323', '牟定县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532324', '5323', '00,53,5323', '南华县', '53', '云南省', '5323', '楚雄彝族自治州', '532324', '南华县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532325', '5323', '00,53,5323', '姚安县', '53', '云南省', '5323', '楚雄彝族自治州', '532325', '姚安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532326', '5323', '00,53,5323', '大姚县', '53', '云南省', '5323', '楚雄彝族自治州', '532326', '大姚县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532327', '5323', '00,53,5323', '永仁县', '53', '云南省', '5323', '楚雄彝族自治州', '532327', '永仁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532328', '5323', '00,53,5323', '元谋县', '53', '云南省', '5323', '楚雄彝族自治州', '532328', '元谋县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532329', '5323', '00,53,5323', '武定县', '53', '云南省', '5323', '楚雄彝族自治州', '532329', '武定县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532331', '5323', '00,53,5323', '禄丰县', '53', '云南省', '5323', '楚雄彝族自治州', '532331', '禄丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5325', '53', '00,53', '红河哈尼族彝族自治州', '53', '云南省', '5325', '红河哈尼族彝族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('532501', '5325', '00,53,5325', '个旧市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532501', '个旧市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532502', '5325', '00,53,5325', '开远市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532502', '开远市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532503', '5325', '00,53,5325', '蒙自市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532503', '蒙自市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532504', '5325', '00,53,5325', '弥勒市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532504', '弥勒市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532523', '5325', '00,53,5325', '屏边苗族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532523', '屏边苗族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532524', '5325', '00,53,5325', '建水县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532524', '建水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532525', '5325', '00,53,5325', '石屏县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532525', '石屏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532527', '5325', '00,53,5325', '泸西县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532527', '泸西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532528', '5325', '00,53,5325', '元阳县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532528', '元阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532529', '5325', '00,53,5325', '红河县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532529', '红河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532530', '5325', '00,53,5325', '金平苗族瑶族傣族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532530', '金平苗族瑶族傣族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532531', '5325', '00,53,5325', '绿春县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532531', '绿春县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532532', '5325', '00,53,5325', '河口瑶族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532532', '河口瑶族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5326', '53', '00,53', '文山壮族苗族自治州', '53', '云南省', '5326', '文山壮族苗族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('532601', '5326', '00,53,5326', '文山市', '53', '云南省', '5326', '文山壮族苗族自治州', '532601', '文山市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532622', '5326', '00,53,5326', '砚山县', '53', '云南省', '5326', '文山壮族苗族自治州', '532622', '砚山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532623', '5326', '00,53,5326', '西畴县', '53', '云南省', '5326', '文山壮族苗族自治州', '532623', '西畴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532624', '5326', '00,53,5326', '麻栗坡县', '53', '云南省', '5326', '文山壮族苗族自治州', '532624', '麻栗坡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532625', '5326', '00,53,5326', '马关县', '53', '云南省', '5326', '文山壮族苗族自治州', '532625', '马关县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532626', '5326', '00,53,5326', '丘北县', '53', '云南省', '5326', '文山壮族苗族自治州', '532626', '丘北县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532627', '5326', '00,53,5326', '广南县', '53', '云南省', '5326', '文山壮族苗族自治州', '532627', '广南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532628', '5326', '00,53,5326', '富宁县', '53', '云南省', '5326', '文山壮族苗族自治州', '532628', '富宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5328', '53', '00,53', '西双版纳傣族自治州', '53', '云南省', '5328', '西双版纳傣族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('532801', '5328', '00,53,5328', '景洪市', '53', '云南省', '5328', '西双版纳傣族自治州', '532801', '景洪市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532822', '5328', '00,53,5328', '勐海县', '53', '云南省', '5328', '西双版纳傣族自治州', '532822', '勐海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532823', '5328', '00,53,5328', '勐腊县', '53', '云南省', '5328', '西双版纳傣族自治州', '532823', '勐腊县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5329', '53', '00,53', '大理白族自治州', '53', '云南省', '5329', '大理白族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('532901', '5329', '00,53,5329', '大理市', '53', '云南省', '5329', '大理白族自治州', '532901', '大理市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532922', '5329', '00,53,5329', '漾濞彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532922', '漾濞彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532923', '5329', '00,53,5329', '祥云县', '53', '云南省', '5329', '大理白族自治州', '532923', '祥云县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532924', '5329', '00,53,5329', '宾川县', '53', '云南省', '5329', '大理白族自治州', '532924', '宾川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532925', '5329', '00,53,5329', '弥渡县', '53', '云南省', '5329', '大理白族自治州', '532925', '弥渡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532926', '5329', '00,53,5329', '南涧彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532926', '南涧彝族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532927', '5329', '00,53,5329', '巍山彝族回族自治县', '53', '云南省', '5329', '大理白族自治州', '532927', '巍山彝族回族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532928', '5329', '00,53,5329', '永平县', '53', '云南省', '5329', '大理白族自治州', '532928', '永平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532929', '5329', '00,53,5329', '云龙县', '53', '云南省', '5329', '大理白族自治州', '532929', '云龙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532930', '5329', '00,53,5329', '洱源县', '53', '云南省', '5329', '大理白族自治州', '532930', '洱源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532931', '5329', '00,53,5329', '剑川县', '53', '云南省', '5329', '大理白族自治州', '532931', '剑川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('532932', '5329', '00,53,5329', '鹤庆县', '53', '云南省', '5329', '大理白族自治州', '532932', '鹤庆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5331', '53', '00,53', '德宏傣族景颇族自治州', '53', '云南省', '5331', '德宏傣族景颇族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('533102', '5331', '00,53,5331', '瑞丽市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533102', '瑞丽市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533103', '5331', '00,53,5331', '芒市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533103', '芒市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533122', '5331', '00,53,5331', '梁河县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533122', '梁河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533123', '5331', '00,53,5331', '盈江县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533123', '盈江县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533124', '5331', '00,53,5331', '陇川县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533124', '陇川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5333', '53', '00,53', '怒江傈僳族自治州', '53', '云南省', '5333', '怒江傈僳族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('533301', '5333', '00,53,5333', '泸水市', '53', '云南省', '5333', '怒江傈僳族自治州', '533301', '泸水市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533323', '5333', '00,53,5333', '福贡县', '53', '云南省', '5333', '怒江傈僳族自治州', '533323', '福贡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533324', '5333', '00,53,5333', '贡山独龙族怒族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533324', '贡山独龙族怒族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533325', '5333', '00,53,5333', '兰坪白族普米族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533325', '兰坪白族普米族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5334', '53', '00,53', '迪庆藏族自治州', '53', '云南省', '5334', '迪庆藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('533401', '5334', '00,53,5334', '香格里拉市', '53', '云南省', '5334', '迪庆藏族自治州', '533401', '香格里拉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533422', '5334', '00,53,5334', '德钦县', '53', '云南省', '5334', '迪庆藏族自治州', '533422', '德钦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('533423', '5334', '00,53,5334', '维西傈僳族自治县', '53', '云南省', '5334', '迪庆藏族自治州', '533423', '维西傈僳族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('54', '00', '00', '西藏自治区', '54', '西藏自治区', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('5401', '54', '00,54', '拉萨市', '54', '西藏自治区', '5401', '拉萨市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('540102', '5401', '00,54,5401', '城关区', '54', '西藏自治区', '5401', '拉萨市', '540102', '城关区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540103', '5401', '00,54,5401', '堆龙德庆区', '54', '西藏自治区', '5401', '拉萨市', '540103', '堆龙德庆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540104', '5401', '00,54,5401', '达孜区', '54', '西藏自治区', '5401', '拉萨市', '540104', '达孜区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540121', '5401', '00,54,5401', '林周县', '54', '西藏自治区', '5401', '拉萨市', '540121', '林周县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540122', '5401', '00,54,5401', '当雄县', '54', '西藏自治区', '5401', '拉萨市', '540122', '当雄县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540123', '5401', '00,54,5401', '尼木县', '54', '西藏自治区', '5401', '拉萨市', '540123', '尼木县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540124', '5401', '00,54,5401', '曲水县', '54', '西藏自治区', '5401', '拉萨市', '540124', '曲水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540127', '5401', '00,54,5401', '墨竹工卡县', '54', '西藏自治区', '5401', '拉萨市', '540127', '墨竹工卡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5402', '54', '00,54', '日喀则市', '54', '西藏自治区', '5402', '日喀则市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('540202', '5402', '00,54,5402', '桑珠孜区', '54', '西藏自治区', '5402', '日喀则市', '540202', '桑珠孜区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540221', '5402', '00,54,5402', '南木林县', '54', '西藏自治区', '5402', '日喀则市', '540221', '南木林县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540222', '5402', '00,54,5402', '江孜县', '54', '西藏自治区', '5402', '日喀则市', '540222', '江孜县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540223', '5402', '00,54,5402', '定日县', '54', '西藏自治区', '5402', '日喀则市', '540223', '定日县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540224', '5402', '00,54,5402', '萨迦县', '54', '西藏自治区', '5402', '日喀则市', '540224', '萨迦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540225', '5402', '00,54,5402', '拉孜县', '54', '西藏自治区', '5402', '日喀则市', '540225', '拉孜县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540226', '5402', '00,54,5402', '昂仁县', '54', '西藏自治区', '5402', '日喀则市', '540226', '昂仁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540227', '5402', '00,54,5402', '谢通门县', '54', '西藏自治区', '5402', '日喀则市', '540227', '谢通门县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540228', '5402', '00,54,5402', '白朗县', '54', '西藏自治区', '5402', '日喀则市', '540228', '白朗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540229', '5402', '00,54,5402', '仁布县', '54', '西藏自治区', '5402', '日喀则市', '540229', '仁布县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540230', '5402', '00,54,5402', '康马县', '54', '西藏自治区', '5402', '日喀则市', '540230', '康马县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540231', '5402', '00,54,5402', '定结县', '54', '西藏自治区', '5402', '日喀则市', '540231', '定结县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540232', '5402', '00,54,5402', '仲巴县', '54', '西藏自治区', '5402', '日喀则市', '540232', '仲巴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540233', '5402', '00,54,5402', '亚东县', '54', '西藏自治区', '5402', '日喀则市', '540233', '亚东县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540234', '5402', '00,54,5402', '吉隆县', '54', '西藏自治区', '5402', '日喀则市', '540234', '吉隆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540235', '5402', '00,54,5402', '聂拉木县', '54', '西藏自治区', '5402', '日喀则市', '540235', '聂拉木县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540236', '5402', '00,54,5402', '萨嘎县', '54', '西藏自治区', '5402', '日喀则市', '540236', '萨嘎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540237', '5402', '00,54,5402', '岗巴县', '54', '西藏自治区', '5402', '日喀则市', '540237', '岗巴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5403', '54', '00,54', '昌都市', '54', '西藏自治区', '5403', '昌都市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('540302', '5403', '00,54,5403', '卡若区', '54', '西藏自治区', '5403', '昌都市', '540302', '卡若区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540321', '5403', '00,54,5403', '江达县', '54', '西藏自治区', '5403', '昌都市', '540321', '江达县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540322', '5403', '00,54,5403', '贡觉县', '54', '西藏自治区', '5403', '昌都市', '540322', '贡觉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540323', '5403', '00,54,5403', '类乌齐县', '54', '西藏自治区', '5403', '昌都市', '540323', '类乌齐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540324', '5403', '00,54,5403', '丁青县', '54', '西藏自治区', '5403', '昌都市', '540324', '丁青县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540325', '5403', '00,54,5403', '察雅县', '54', '西藏自治区', '5403', '昌都市', '540325', '察雅县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540326', '5403', '00,54,5403', '八宿县', '54', '西藏自治区', '5403', '昌都市', '540326', '八宿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540327', '5403', '00,54,5403', '左贡县', '54', '西藏自治区', '5403', '昌都市', '540327', '左贡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540328', '5403', '00,54,5403', '芒康县', '54', '西藏自治区', '5403', '昌都市', '540328', '芒康县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540329', '5403', '00,54,5403', '洛隆县', '54', '西藏自治区', '5403', '昌都市', '540329', '洛隆县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540330', '5403', '00,54,5403', '边坝县', '54', '西藏自治区', '5403', '昌都市', '540330', '边坝县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5404', '54', '00,54', '林芝市', '54', '西藏自治区', '5404', '林芝市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('540402', '5404', '00,54,5404', '巴宜区', '54', '西藏自治区', '5404', '林芝市', '540402', '巴宜区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540421', '5404', '00,54,5404', '工布江达县', '54', '西藏自治区', '5404', '林芝市', '540421', '工布江达县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540422', '5404', '00,54,5404', '米林县', '54', '西藏自治区', '5404', '林芝市', '540422', '米林县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540423', '5404', '00,54,5404', '墨脱县', '54', '西藏自治区', '5404', '林芝市', '540423', '墨脱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540424', '5404', '00,54,5404', '波密县', '54', '西藏自治区', '5404', '林芝市', '540424', '波密县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540425', '5404', '00,54,5404', '察隅县', '54', '西藏自治区', '5404', '林芝市', '540425', '察隅县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540426', '5404', '00,54,5404', '朗县', '54', '西藏自治区', '5404', '林芝市', '540426', '朗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5405', '54', '00,54', '山南市', '54', '西藏自治区', '5405', '山南市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('540502', '5405', '00,54,5405', '乃东区', '54', '西藏自治区', '5405', '山南市', '540502', '乃东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540521', '5405', '00,54,5405', '扎囊县', '54', '西藏自治区', '5405', '山南市', '540521', '扎囊县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540522', '5405', '00,54,5405', '贡嘎县', '54', '西藏自治区', '5405', '山南市', '540522', '贡嘎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540523', '5405', '00,54,5405', '桑日县', '54', '西藏自治区', '5405', '山南市', '540523', '桑日县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540524', '5405', '00,54,5405', '琼结县', '54', '西藏自治区', '5405', '山南市', '540524', '琼结县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540525', '5405', '00,54,5405', '曲松县', '54', '西藏自治区', '5405', '山南市', '540525', '曲松县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540526', '5405', '00,54,5405', '措美县', '54', '西藏自治区', '5405', '山南市', '540526', '措美县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540527', '5405', '00,54,5405', '洛扎县', '54', '西藏自治区', '5405', '山南市', '540527', '洛扎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540528', '5405', '00,54,5405', '加查县', '54', '西藏自治区', '5405', '山南市', '540528', '加查县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540529', '5405', '00,54,5405', '隆子县', '54', '西藏自治区', '5405', '山南市', '540529', '隆子县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540530', '5405', '00,54,5405', '错那县', '54', '西藏自治区', '5405', '山南市', '540530', '错那县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540531', '5405', '00,54,5405', '浪卡子县', '54', '西藏自治区', '5405', '山南市', '540531', '浪卡子县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5406', '54', '00,54', '那曲市', '54', '西藏自治区', '5406', '那曲市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('540602', '5406', '00,54,5406', '色尼区', '54', '西藏自治区', '5406', '那曲市', '540602', '色尼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540621', '5406', '00,54,5406', '嘉黎县', '54', '西藏自治区', '5406', '那曲市', '540621', '嘉黎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540622', '5406', '00,54,5406', '比如县', '54', '西藏自治区', '5406', '那曲市', '540622', '比如县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540623', '5406', '00,54,5406', '聂荣县', '54', '西藏自治区', '5406', '那曲市', '540623', '聂荣县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540624', '5406', '00,54,5406', '安多县', '54', '西藏自治区', '5406', '那曲市', '540624', '安多县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540625', '5406', '00,54,5406', '申扎县', '54', '西藏自治区', '5406', '那曲市', '540625', '申扎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540626', '5406', '00,54,5406', '索县', '54', '西藏自治区', '5406', '那曲市', '540626', '索县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540627', '5406', '00,54,5406', '班戈县', '54', '西藏自治区', '5406', '那曲市', '540627', '班戈县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540628', '5406', '00,54,5406', '巴青县', '54', '西藏自治区', '5406', '那曲市', '540628', '巴青县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540629', '5406', '00,54,5406', '尼玛县', '54', '西藏自治区', '5406', '那曲市', '540629', '尼玛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('540630', '5406', '00,54,5406', '双湖县', '54', '西藏自治区', '5406', '那曲市', '540630', '双湖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('5425', '54', '00,54', '阿里地区', '54', '西藏自治区', '5425', '阿里地区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('542521', '5425', '00,54,5425', '普兰县', '54', '西藏自治区', '5425', '阿里地区', '542521', '普兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('542522', '5425', '00,54,5425', '札达县', '54', '西藏自治区', '5425', '阿里地区', '542522', '札达县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('542523', '5425', '00,54,5425', '噶尔县', '54', '西藏自治区', '5425', '阿里地区', '542523', '噶尔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('542524', '5425', '00,54,5425', '日土县', '54', '西藏自治区', '5425', '阿里地区', '542524', '日土县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('542525', '5425', '00,54,5425', '革吉县', '54', '西藏自治区', '5425', '阿里地区', '542525', '革吉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('542526', '5425', '00,54,5425', '改则县', '54', '西藏自治区', '5425', '阿里地区', '542526', '改则县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('542527', '5425', '00,54,5425', '措勤县', '54', '西藏自治区', '5425', '阿里地区', '542527', '措勤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('61', '00', '00', '陕西省', '61', '陕西省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('6101', '61', '00,61', '西安市', '61', '陕西省', '6101', '西安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610102', '6101', '00,61,6101', '新城区', '61', '陕西省', '6101', '西安市', '610102', '新城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610103', '6101', '00,61,6101', '碑林区', '61', '陕西省', '6101', '西安市', '610103', '碑林区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610104', '6101', '00,61,6101', '莲湖区', '61', '陕西省', '6101', '西安市', '610104', '莲湖区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610111', '6101', '00,61,6101', '灞桥区', '61', '陕西省', '6101', '西安市', '610111', '灞桥区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610112', '6101', '00,61,6101', '未央区', '61', '陕西省', '6101', '西安市', '610112', '未央区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610113', '6101', '00,61,6101', '雁塔区', '61', '陕西省', '6101', '西安市', '610113', '雁塔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610114', '6101', '00,61,6101', '阎良区', '61', '陕西省', '6101', '西安市', '610114', '阎良区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610115', '6101', '00,61,6101', '临潼区', '61', '陕西省', '6101', '西安市', '610115', '临潼区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610116', '6101', '00,61,6101', '长安区', '61', '陕西省', '6101', '西安市', '610116', '长安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610117', '6101', '00,61,6101', '高陵区', '61', '陕西省', '6101', '西安市', '610117', '高陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610118', '6101', '00,61,6101', '鄠邑区', '61', '陕西省', '6101', '西安市', '610118', '鄠邑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610122', '6101', '00,61,6101', '蓝田县', '61', '陕西省', '6101', '西安市', '610122', '蓝田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610124', '6101', '00,61,6101', '周至县', '61', '陕西省', '6101', '西安市', '610124', '周至县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6102', '61', '00,61', '铜川市', '61', '陕西省', '6102', '铜川市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610202', '6102', '00,61,6102', '王益区', '61', '陕西省', '6102', '铜川市', '610202', '王益区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610203', '6102', '00,61,6102', '印台区', '61', '陕西省', '6102', '铜川市', '610203', '印台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610204', '6102', '00,61,6102', '耀州区', '61', '陕西省', '6102', '铜川市', '610204', '耀州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610222', '6102', '00,61,6102', '宜君县', '61', '陕西省', '6102', '铜川市', '610222', '宜君县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6103', '61', '00,61', '宝鸡市', '61', '陕西省', '6103', '宝鸡市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610302', '6103', '00,61,6103', '渭滨区', '61', '陕西省', '6103', '宝鸡市', '610302', '渭滨区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610303', '6103', '00,61,6103', '金台区', '61', '陕西省', '6103', '宝鸡市', '610303', '金台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610304', '6103', '00,61,6103', '陈仓区', '61', '陕西省', '6103', '宝鸡市', '610304', '陈仓区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610322', '6103', '00,61,6103', '凤翔县', '61', '陕西省', '6103', '宝鸡市', '610322', '凤翔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610323', '6103', '00,61,6103', '岐山县', '61', '陕西省', '6103', '宝鸡市', '610323', '岐山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610324', '6103', '00,61,6103', '扶风县', '61', '陕西省', '6103', '宝鸡市', '610324', '扶风县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610326', '6103', '00,61,6103', '眉县', '61', '陕西省', '6103', '宝鸡市', '610326', '眉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610327', '6103', '00,61,6103', '陇县', '61', '陕西省', '6103', '宝鸡市', '610327', '陇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610328', '6103', '00,61,6103', '千阳县', '61', '陕西省', '6103', '宝鸡市', '610328', '千阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610329', '6103', '00,61,6103', '麟游县', '61', '陕西省', '6103', '宝鸡市', '610329', '麟游县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610330', '6103', '00,61,6103', '凤县', '61', '陕西省', '6103', '宝鸡市', '610330', '凤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610331', '6103', '00,61,6103', '太白县', '61', '陕西省', '6103', '宝鸡市', '610331', '太白县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6104', '61', '00,61', '咸阳市', '61', '陕西省', '6104', '咸阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610402', '6104', '00,61,6104', '秦都区', '61', '陕西省', '6104', '咸阳市', '610402', '秦都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610403', '6104', '00,61,6104', '杨陵区', '61', '陕西省', '6104', '咸阳市', '610403', '杨陵区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610404', '6104', '00,61,6104', '渭城区', '61', '陕西省', '6104', '咸阳市', '610404', '渭城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610422', '6104', '00,61,6104', '三原县', '61', '陕西省', '6104', '咸阳市', '610422', '三原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610423', '6104', '00,61,6104', '泾阳县', '61', '陕西省', '6104', '咸阳市', '610423', '泾阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610424', '6104', '00,61,6104', '乾县', '61', '陕西省', '6104', '咸阳市', '610424', '乾县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610425', '6104', '00,61,6104', '礼泉县', '61', '陕西省', '6104', '咸阳市', '610425', '礼泉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610426', '6104', '00,61,6104', '永寿县', '61', '陕西省', '6104', '咸阳市', '610426', '永寿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610428', '6104', '00,61,6104', '长武县', '61', '陕西省', '6104', '咸阳市', '610428', '长武县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610429', '6104', '00,61,6104', '旬邑县', '61', '陕西省', '6104', '咸阳市', '610429', '旬邑县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610430', '6104', '00,61,6104', '淳化县', '61', '陕西省', '6104', '咸阳市', '610430', '淳化县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610431', '6104', '00,61,6104', '武功县', '61', '陕西省', '6104', '咸阳市', '610431', '武功县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610481', '6104', '00,61,6104', '兴平市', '61', '陕西省', '6104', '咸阳市', '610481', '兴平市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610482', '6104', '00,61,6104', '彬州市', '61', '陕西省', '6104', '咸阳市', '610482', '彬州市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6105', '61', '00,61', '渭南市', '61', '陕西省', '6105', '渭南市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610502', '6105', '00,61,6105', '临渭区', '61', '陕西省', '6105', '渭南市', '610502', '临渭区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610503', '6105', '00,61,6105', '华州区', '61', '陕西省', '6105', '渭南市', '610503', '华州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610522', '6105', '00,61,6105', '潼关县', '61', '陕西省', '6105', '渭南市', '610522', '潼关县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610523', '6105', '00,61,6105', '大荔县', '61', '陕西省', '6105', '渭南市', '610523', '大荔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610524', '6105', '00,61,6105', '合阳县', '61', '陕西省', '6105', '渭南市', '610524', '合阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610525', '6105', '00,61,6105', '澄城县', '61', '陕西省', '6105', '渭南市', '610525', '澄城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610526', '6105', '00,61,6105', '蒲城县', '61', '陕西省', '6105', '渭南市', '610526', '蒲城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610527', '6105', '00,61,6105', '白水县', '61', '陕西省', '6105', '渭南市', '610527', '白水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610528', '6105', '00,61,6105', '富平县', '61', '陕西省', '6105', '渭南市', '610528', '富平县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610581', '6105', '00,61,6105', '韩城市', '61', '陕西省', '6105', '渭南市', '610581', '韩城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610582', '6105', '00,61,6105', '华阴市', '61', '陕西省', '6105', '渭南市', '610582', '华阴市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6106', '61', '00,61', '延安市', '61', '陕西省', '6106', '延安市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610602', '6106', '00,61,6106', '宝塔区', '61', '陕西省', '6106', '延安市', '610602', '宝塔区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610603', '6106', '00,61,6106', '安塞区', '61', '陕西省', '6106', '延安市', '610603', '安塞区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610621', '6106', '00,61,6106', '延长县', '61', '陕西省', '6106', '延安市', '610621', '延长县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610622', '6106', '00,61,6106', '延川县', '61', '陕西省', '6106', '延安市', '610622', '延川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610625', '6106', '00,61,6106', '志丹县', '61', '陕西省', '6106', '延安市', '610625', '志丹县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610626', '6106', '00,61,6106', '吴起县', '61', '陕西省', '6106', '延安市', '610626', '吴起县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610627', '6106', '00,61,6106', '甘泉县', '61', '陕西省', '6106', '延安市', '610627', '甘泉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610628', '6106', '00,61,6106', '富县', '61', '陕西省', '6106', '延安市', '610628', '富县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610629', '6106', '00,61,6106', '洛川县', '61', '陕西省', '6106', '延安市', '610629', '洛川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610630', '6106', '00,61,6106', '宜川县', '61', '陕西省', '6106', '延安市', '610630', '宜川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610631', '6106', '00,61,6106', '黄龙县', '61', '陕西省', '6106', '延安市', '610631', '黄龙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610632', '6106', '00,61,6106', '黄陵县', '61', '陕西省', '6106', '延安市', '610632', '黄陵县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610681', '6106', '00,61,6106', '子长市', '61', '陕西省', '6106', '延安市', '610681', '子长市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6107', '61', '00,61', '汉中市', '61', '陕西省', '6107', '汉中市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610702', '6107', '00,61,6107', '汉台区', '61', '陕西省', '6107', '汉中市', '610702', '汉台区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610703', '6107', '00,61,6107', '南郑区', '61', '陕西省', '6107', '汉中市', '610703', '南郑区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610722', '6107', '00,61,6107', '城固县', '61', '陕西省', '6107', '汉中市', '610722', '城固县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610723', '6107', '00,61,6107', '洋县', '61', '陕西省', '6107', '汉中市', '610723', '洋县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610724', '6107', '00,61,6107', '西乡县', '61', '陕西省', '6107', '汉中市', '610724', '西乡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610725', '6107', '00,61,6107', '勉县', '61', '陕西省', '6107', '汉中市', '610725', '勉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610726', '6107', '00,61,6107', '宁强县', '61', '陕西省', '6107', '汉中市', '610726', '宁强县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610727', '6107', '00,61,6107', '略阳县', '61', '陕西省', '6107', '汉中市', '610727', '略阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610728', '6107', '00,61,6107', '镇巴县', '61', '陕西省', '6107', '汉中市', '610728', '镇巴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610729', '6107', '00,61,6107', '留坝县', '61', '陕西省', '6107', '汉中市', '610729', '留坝县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610730', '6107', '00,61,6107', '佛坪县', '61', '陕西省', '6107', '汉中市', '610730', '佛坪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6108', '61', '00,61', '榆林市', '61', '陕西省', '6108', '榆林市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610802', '6108', '00,61,6108', '榆阳区', '61', '陕西省', '6108', '榆林市', '610802', '榆阳区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610803', '6108', '00,61,6108', '横山区', '61', '陕西省', '6108', '榆林市', '610803', '横山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610822', '6108', '00,61,6108', '府谷县', '61', '陕西省', '6108', '榆林市', '610822', '府谷县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610824', '6108', '00,61,6108', '靖边县', '61', '陕西省', '6108', '榆林市', '610824', '靖边县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610825', '6108', '00,61,6108', '定边县', '61', '陕西省', '6108', '榆林市', '610825', '定边县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610826', '6108', '00,61,6108', '绥德县', '61', '陕西省', '6108', '榆林市', '610826', '绥德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610827', '6108', '00,61,6108', '米脂县', '61', '陕西省', '6108', '榆林市', '610827', '米脂县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610828', '6108', '00,61,6108', '佳县', '61', '陕西省', '6108', '榆林市', '610828', '佳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610829', '6108', '00,61,6108', '吴堡县', '61', '陕西省', '6108', '榆林市', '610829', '吴堡县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610830', '6108', '00,61,6108', '清涧县', '61', '陕西省', '6108', '榆林市', '610830', '清涧县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610831', '6108', '00,61,6108', '子洲县', '61', '陕西省', '6108', '榆林市', '610831', '子洲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610881', '6108', '00,61,6108', '神木市', '61', '陕西省', '6108', '榆林市', '610881', '神木市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6109', '61', '00,61', '安康市', '61', '陕西省', '6109', '安康市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('610902', '6109', '00,61,6109', '汉滨区', '61', '陕西省', '6109', '安康市', '610902', '汉滨区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610921', '6109', '00,61,6109', '汉阴县', '61', '陕西省', '6109', '安康市', '610921', '汉阴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610922', '6109', '00,61,6109', '石泉县', '61', '陕西省', '6109', '安康市', '610922', '石泉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610923', '6109', '00,61,6109', '宁陕县', '61', '陕西省', '6109', '安康市', '610923', '宁陕县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610924', '6109', '00,61,6109', '紫阳县', '61', '陕西省', '6109', '安康市', '610924', '紫阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610925', '6109', '00,61,6109', '岚皋县', '61', '陕西省', '6109', '安康市', '610925', '岚皋县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610926', '6109', '00,61,6109', '平利县', '61', '陕西省', '6109', '安康市', '610926', '平利县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610927', '6109', '00,61,6109', '镇坪县', '61', '陕西省', '6109', '安康市', '610927', '镇坪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610928', '6109', '00,61,6109', '旬阳县', '61', '陕西省', '6109', '安康市', '610928', '旬阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('610929', '6109', '00,61,6109', '白河县', '61', '陕西省', '6109', '安康市', '610929', '白河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6110', '61', '00,61', '商洛市', '61', '陕西省', '6110', '商洛市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('611002', '6110', '00,61,6110', '商州区', '61', '陕西省', '6110', '商洛市', '611002', '商州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('611021', '6110', '00,61,6110', '洛南县', '61', '陕西省', '6110', '商洛市', '611021', '洛南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('611022', '6110', '00,61,6110', '丹凤县', '61', '陕西省', '6110', '商洛市', '611022', '丹凤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('611023', '6110', '00,61,6110', '商南县', '61', '陕西省', '6110', '商洛市', '611023', '商南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('611024', '6110', '00,61,6110', '山阳县', '61', '陕西省', '6110', '商洛市', '611024', '山阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('611025', '6110', '00,61,6110', '镇安县', '61', '陕西省', '6110', '商洛市', '611025', '镇安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('611026', '6110', '00,61,6110', '柞水县', '61', '陕西省', '6110', '商洛市', '611026', '柞水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('62', '00', '00', '甘肃省', '62', '甘肃省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('6201', '62', '00,62', '兰州市', '62', '甘肃省', '6201', '兰州市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620102', '6201', '00,62,6201', '城关区', '62', '甘肃省', '6201', '兰州市', '620102', '城关区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620103', '6201', '00,62,6201', '七里河区', '62', '甘肃省', '6201', '兰州市', '620103', '七里河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620104', '6201', '00,62,6201', '西固区', '62', '甘肃省', '6201', '兰州市', '620104', '西固区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620105', '6201', '00,62,6201', '安宁区', '62', '甘肃省', '6201', '兰州市', '620105', '安宁区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620111', '6201', '00,62,6201', '红古区', '62', '甘肃省', '6201', '兰州市', '620111', '红古区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620121', '6201', '00,62,6201', '永登县', '62', '甘肃省', '6201', '兰州市', '620121', '永登县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620122', '6201', '00,62,6201', '皋兰县', '62', '甘肃省', '6201', '兰州市', '620122', '皋兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620123', '6201', '00,62,6201', '榆中县', '62', '甘肃省', '6201', '兰州市', '620123', '榆中县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6202', '62', '00,62', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620200', '6202', '00,62,6202', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '620200', '嘉峪关市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6203', '62', '00,62', '金昌市', '62', '甘肃省', '6203', '金昌市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620302', '6203', '00,62,6203', '金川区', '62', '甘肃省', '6203', '金昌市', '620302', '金川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620321', '6203', '00,62,6203', '永昌县', '62', '甘肃省', '6203', '金昌市', '620321', '永昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6204', '62', '00,62', '白银市', '62', '甘肃省', '6204', '白银市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620402', '6204', '00,62,6204', '白银区', '62', '甘肃省', '6204', '白银市', '620402', '白银区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620403', '6204', '00,62,6204', '平川区', '62', '甘肃省', '6204', '白银市', '620403', '平川区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620421', '6204', '00,62,6204', '靖远县', '62', '甘肃省', '6204', '白银市', '620421', '靖远县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620422', '6204', '00,62,6204', '会宁县', '62', '甘肃省', '6204', '白银市', '620422', '会宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620423', '6204', '00,62,6204', '景泰县', '62', '甘肃省', '6204', '白银市', '620423', '景泰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6205', '62', '00,62', '天水市', '62', '甘肃省', '6205', '天水市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620502', '6205', '00,62,6205', '秦州区', '62', '甘肃省', '6205', '天水市', '620502', '秦州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620503', '6205', '00,62,6205', '麦积区', '62', '甘肃省', '6205', '天水市', '620503', '麦积区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620521', '6205', '00,62,6205', '清水县', '62', '甘肃省', '6205', '天水市', '620521', '清水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620522', '6205', '00,62,6205', '秦安县', '62', '甘肃省', '6205', '天水市', '620522', '秦安县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620523', '6205', '00,62,6205', '甘谷县', '62', '甘肃省', '6205', '天水市', '620523', '甘谷县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620524', '6205', '00,62,6205', '武山县', '62', '甘肃省', '6205', '天水市', '620524', '武山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620525', '6205', '00,62,6205', '张家川回族自治县', '62', '甘肃省', '6205', '天水市', '620525', '张家川回族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6206', '62', '00,62', '武威市', '62', '甘肃省', '6206', '武威市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620602', '6206', '00,62,6206', '凉州区', '62', '甘肃省', '6206', '武威市', '620602', '凉州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620621', '6206', '00,62,6206', '民勤县', '62', '甘肃省', '6206', '武威市', '620621', '民勤县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620622', '6206', '00,62,6206', '古浪县', '62', '甘肃省', '6206', '武威市', '620622', '古浪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620623', '6206', '00,62,6206', '天祝藏族自治县', '62', '甘肃省', '6206', '武威市', '620623', '天祝藏族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6207', '62', '00,62', '张掖市', '62', '甘肃省', '6207', '张掖市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620702', '6207', '00,62,6207', '甘州区', '62', '甘肃省', '6207', '张掖市', '620702', '甘州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620721', '6207', '00,62,6207', '肃南裕固族自治县', '62', '甘肃省', '6207', '张掖市', '620721', '肃南裕固族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620722', '6207', '00,62,6207', '民乐县', '62', '甘肃省', '6207', '张掖市', '620722', '民乐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620723', '6207', '00,62,6207', '临泽县', '62', '甘肃省', '6207', '张掖市', '620723', '临泽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620724', '6207', '00,62,6207', '高台县', '62', '甘肃省', '6207', '张掖市', '620724', '高台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620725', '6207', '00,62,6207', '山丹县', '62', '甘肃省', '6207', '张掖市', '620725', '山丹县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6208', '62', '00,62', '平凉市', '62', '甘肃省', '6208', '平凉市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620802', '6208', '00,62,6208', '崆峒区', '62', '甘肃省', '6208', '平凉市', '620802', '崆峒区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620821', '6208', '00,62,6208', '泾川县', '62', '甘肃省', '6208', '平凉市', '620821', '泾川县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620822', '6208', '00,62,6208', '灵台县', '62', '甘肃省', '6208', '平凉市', '620822', '灵台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620823', '6208', '00,62,6208', '崇信县', '62', '甘肃省', '6208', '平凉市', '620823', '崇信县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620825', '6208', '00,62,6208', '庄浪县', '62', '甘肃省', '6208', '平凉市', '620825', '庄浪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620826', '6208', '00,62,6208', '静宁县', '62', '甘肃省', '6208', '平凉市', '620826', '静宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620881', '6208', '00,62,6208', '华亭市', '62', '甘肃省', '6208', '平凉市', '620881', '华亭市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6209', '62', '00,62', '酒泉市', '62', '甘肃省', '6209', '酒泉市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('620902', '6209', '00,62,6209', '肃州区', '62', '甘肃省', '6209', '酒泉市', '620902', '肃州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620921', '6209', '00,62,6209', '金塔县', '62', '甘肃省', '6209', '酒泉市', '620921', '金塔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620922', '6209', '00,62,6209', '瓜州县', '62', '甘肃省', '6209', '酒泉市', '620922', '瓜州县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620923', '6209', '00,62,6209', '肃北蒙古族自治县', '62', '甘肃省', '6209', '酒泉市', '620923', '肃北蒙古族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620924', '6209', '00,62,6209', '阿克塞哈萨克族自治县', '62', '甘肃省', '6209', '酒泉市', '620924', '阿克塞哈萨克族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620981', '6209', '00,62,6209', '玉门市', '62', '甘肃省', '6209', '酒泉市', '620981', '玉门市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('620982', '6209', '00,62,6209', '敦煌市', '62', '甘肃省', '6209', '酒泉市', '620982', '敦煌市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6210', '62', '00,62', '庆阳市', '62', '甘肃省', '6210', '庆阳市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('621002', '6210', '00,62,6210', '西峰区', '62', '甘肃省', '6210', '庆阳市', '621002', '西峰区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621021', '6210', '00,62,6210', '庆城县', '62', '甘肃省', '6210', '庆阳市', '621021', '庆城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621022', '6210', '00,62,6210', '环县', '62', '甘肃省', '6210', '庆阳市', '621022', '环县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621023', '6210', '00,62,6210', '华池县', '62', '甘肃省', '6210', '庆阳市', '621023', '华池县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621024', '6210', '00,62,6210', '合水县', '62', '甘肃省', '6210', '庆阳市', '621024', '合水县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621025', '6210', '00,62,6210', '正宁县', '62', '甘肃省', '6210', '庆阳市', '621025', '正宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621026', '6210', '00,62,6210', '宁县', '62', '甘肃省', '6210', '庆阳市', '621026', '宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621027', '6210', '00,62,6210', '镇原县', '62', '甘肃省', '6210', '庆阳市', '621027', '镇原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6211', '62', '00,62', '定西市', '62', '甘肃省', '6211', '定西市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('621102', '6211', '00,62,6211', '安定区', '62', '甘肃省', '6211', '定西市', '621102', '安定区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621121', '6211', '00,62,6211', '通渭县', '62', '甘肃省', '6211', '定西市', '621121', '通渭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621122', '6211', '00,62,6211', '陇西县', '62', '甘肃省', '6211', '定西市', '621122', '陇西县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621123', '6211', '00,62,6211', '渭源县', '62', '甘肃省', '6211', '定西市', '621123', '渭源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621124', '6211', '00,62,6211', '临洮县', '62', '甘肃省', '6211', '定西市', '621124', '临洮县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621125', '6211', '00,62,6211', '漳县', '62', '甘肃省', '6211', '定西市', '621125', '漳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621126', '6211', '00,62,6211', '岷县', '62', '甘肃省', '6211', '定西市', '621126', '岷县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6212', '62', '00,62', '陇南市', '62', '甘肃省', '6212', '陇南市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('621202', '6212', '00,62,6212', '武都区', '62', '甘肃省', '6212', '陇南市', '621202', '武都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621221', '6212', '00,62,6212', '成县', '62', '甘肃省', '6212', '陇南市', '621221', '成县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621222', '6212', '00,62,6212', '文县', '62', '甘肃省', '6212', '陇南市', '621222', '文县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621223', '6212', '00,62,6212', '宕昌县', '62', '甘肃省', '6212', '陇南市', '621223', '宕昌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621224', '6212', '00,62,6212', '康县', '62', '甘肃省', '6212', '陇南市', '621224', '康县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621225', '6212', '00,62,6212', '西和县', '62', '甘肃省', '6212', '陇南市', '621225', '西和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621226', '6212', '00,62,6212', '礼县', '62', '甘肃省', '6212', '陇南市', '621226', '礼县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621227', '6212', '00,62,6212', '徽县', '62', '甘肃省', '6212', '陇南市', '621227', '徽县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('621228', '6212', '00,62,6212', '两当县', '62', '甘肃省', '6212', '陇南市', '621228', '两当县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6229', '62', '00,62', '临夏回族自治州', '62', '甘肃省', '6229', '临夏回族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('622901', '6229', '00,62,6229', '临夏市', '62', '甘肃省', '6229', '临夏回族自治州', '622901', '临夏市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('622921', '6229', '00,62,6229', '临夏县', '62', '甘肃省', '6229', '临夏回族自治州', '622921', '临夏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('622922', '6229', '00,62,6229', '康乐县', '62', '甘肃省', '6229', '临夏回族自治州', '622922', '康乐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('622923', '6229', '00,62,6229', '永靖县', '62', '甘肃省', '6229', '临夏回族自治州', '622923', '永靖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('622924', '6229', '00,62,6229', '广河县', '62', '甘肃省', '6229', '临夏回族自治州', '622924', '广河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('622925', '6229', '00,62,6229', '和政县', '62', '甘肃省', '6229', '临夏回族自治州', '622925', '和政县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('622926', '6229', '00,62,6229', '东乡族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622926', '东乡族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('622927', '6229', '00,62,6229', '积石山保安族东乡族撒拉族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622927', '积石山保安族东乡族撒拉族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6230', '62', '00,62', '甘南藏族自治州', '62', '甘肃省', '6230', '甘南藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('623001', '6230', '00,62,6230', '合作市', '62', '甘肃省', '6230', '甘南藏族自治州', '623001', '合作市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('623021', '6230', '00,62,6230', '临潭县', '62', '甘肃省', '6230', '甘南藏族自治州', '623021', '临潭县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('623022', '6230', '00,62,6230', '卓尼县', '62', '甘肃省', '6230', '甘南藏族自治州', '623022', '卓尼县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('623023', '6230', '00,62,6230', '舟曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623023', '舟曲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('623024', '6230', '00,62,6230', '迭部县', '62', '甘肃省', '6230', '甘南藏族自治州', '623024', '迭部县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('623025', '6230', '00,62,6230', '玛曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623025', '玛曲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('623026', '6230', '00,62,6230', '碌曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623026', '碌曲县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('623027', '6230', '00,62,6230', '夏河县', '62', '甘肃省', '6230', '甘南藏族自治州', '623027', '夏河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('63', '00', '00', '青海省', '63', '青海省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('6301', '63', '00,63', '西宁市', '63', '青海省', '6301', '西宁市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('630102', '6301', '00,63,6301', '城东区', '63', '青海省', '6301', '西宁市', '630102', '城东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630103', '6301', '00,63,6301', '城中区', '63', '青海省', '6301', '西宁市', '630103', '城中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630104', '6301', '00,63,6301', '城西区', '63', '青海省', '6301', '西宁市', '630104', '城西区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630105', '6301', '00,63,6301', '城北区', '63', '青海省', '6301', '西宁市', '630105', '城北区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630106', '6301', '00,63,6301', '湟中区', '63', '青海省', '6301', '西宁市', '630106', '湟中区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630121', '6301', '00,63,6301', '大通回族土族自治县', '63', '青海省', '6301', '西宁市', '630121', '大通回族土族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630123', '6301', '00,63,6301', '湟源县', '63', '青海省', '6301', '西宁市', '630123', '湟源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6302', '63', '00,63', '海东市', '63', '青海省', '6302', '海东市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('630202', '6302', '00,63,6302', '乐都区', '63', '青海省', '6302', '海东市', '630202', '乐都区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630203', '6302', '00,63,6302', '平安区', '63', '青海省', '6302', '海东市', '630203', '平安区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630222', '6302', '00,63,6302', '民和回族土族自治县', '63', '青海省', '6302', '海东市', '630222', '民和回族土族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630223', '6302', '00,63,6302', '互助土族自治县', '63', '青海省', '6302', '海东市', '630223', '互助土族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630224', '6302', '00,63,6302', '化隆回族自治县', '63', '青海省', '6302', '海东市', '630224', '化隆回族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('630225', '6302', '00,63,6302', '循化撒拉族自治县', '63', '青海省', '6302', '海东市', '630225', '循化撒拉族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6322', '63', '00,63', '海北藏族自治州', '63', '青海省', '6322', '海北藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('632221', '6322', '00,63,6322', '门源回族自治县', '63', '青海省', '6322', '海北藏族自治州', '632221', '门源回族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632222', '6322', '00,63,6322', '祁连县', '63', '青海省', '6322', '海北藏族自治州', '632222', '祁连县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632223', '6322', '00,63,6322', '海晏县', '63', '青海省', '6322', '海北藏族自治州', '632223', '海晏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632224', '6322', '00,63,6322', '刚察县', '63', '青海省', '6322', '海北藏族自治州', '632224', '刚察县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6323', '63', '00,63', '黄南藏族自治州', '63', '青海省', '6323', '黄南藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('632321', '6323', '00,63,6323', '同仁县', '63', '青海省', '6323', '黄南藏族自治州', '632321', '同仁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632322', '6323', '00,63,6323', '尖扎县', '63', '青海省', '6323', '黄南藏族自治州', '632322', '尖扎县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632323', '6323', '00,63,6323', '泽库县', '63', '青海省', '6323', '黄南藏族自治州', '632323', '泽库县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632324', '6323', '00,63,6323', '河南蒙古族自治县', '63', '青海省', '6323', '黄南藏族自治州', '632324', '河南蒙古族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6325', '63', '00,63', '海南藏族自治州', '63', '青海省', '6325', '海南藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('632521', '6325', '00,63,6325', '共和县', '63', '青海省', '6325', '海南藏族自治州', '632521', '共和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632522', '6325', '00,63,6325', '同德县', '63', '青海省', '6325', '海南藏族自治州', '632522', '同德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632523', '6325', '00,63,6325', '贵德县', '63', '青海省', '6325', '海南藏族自治州', '632523', '贵德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632524', '6325', '00,63,6325', '兴海县', '63', '青海省', '6325', '海南藏族自治州', '632524', '兴海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632525', '6325', '00,63,6325', '贵南县', '63', '青海省', '6325', '海南藏族自治州', '632525', '贵南县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6326', '63', '00,63', '果洛藏族自治州', '63', '青海省', '6326', '果洛藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('632621', '6326', '00,63,6326', '玛沁县', '63', '青海省', '6326', '果洛藏族自治州', '632621', '玛沁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632622', '6326', '00,63,6326', '班玛县', '63', '青海省', '6326', '果洛藏族自治州', '632622', '班玛县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632623', '6326', '00,63,6326', '甘德县', '63', '青海省', '6326', '果洛藏族自治州', '632623', '甘德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632624', '6326', '00,63,6326', '达日县', '63', '青海省', '6326', '果洛藏族自治州', '632624', '达日县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632625', '6326', '00,63,6326', '久治县', '63', '青海省', '6326', '果洛藏族自治州', '632625', '久治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632626', '6326', '00,63,6326', '玛多县', '63', '青海省', '6326', '果洛藏族自治州', '632626', '玛多县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6327', '63', '00,63', '玉树藏族自治州', '63', '青海省', '6327', '玉树藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('632701', '6327', '00,63,6327', '玉树市', '63', '青海省', '6327', '玉树藏族自治州', '632701', '玉树市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632722', '6327', '00,63,6327', '杂多县', '63', '青海省', '6327', '玉树藏族自治州', '632722', '杂多县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632723', '6327', '00,63,6327', '称多县', '63', '青海省', '6327', '玉树藏族自治州', '632723', '称多县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632724', '6327', '00,63,6327', '治多县', '63', '青海省', '6327', '玉树藏族自治州', '632724', '治多县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632725', '6327', '00,63,6327', '囊谦县', '63', '青海省', '6327', '玉树藏族自治州', '632725', '囊谦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632726', '6327', '00,63,6327', '曲麻莱县', '63', '青海省', '6327', '玉树藏族自治州', '632726', '曲麻莱县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6328', '63', '00,63', '海西蒙古族藏族自治州', '63', '青海省', '6328', '海西蒙古族藏族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('632801', '6328', '00,63,6328', '格尔木市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632801', '格尔木市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632802', '6328', '00,63,6328', '德令哈市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632802', '德令哈市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632803', '6328', '00,63,6328', '茫崖市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632803', '茫崖市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632821', '6328', '00,63,6328', '乌兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632821', '乌兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632822', '6328', '00,63,6328', '都兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632822', '都兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('632823', '6328', '00,63,6328', '天峻县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632823', '天峻县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('64', '00', '00', '宁夏回族自治区', '64', '宁夏回族自治区', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('6401', '64', '00,64', '银川市', '64', '宁夏回族自治区', '6401', '银川市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('640104', '6401', '00,64,6401', '兴庆区', '64', '宁夏回族自治区', '6401', '银川市', '640104', '兴庆区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640105', '6401', '00,64,6401', '西夏区', '64', '宁夏回族自治区', '6401', '银川市', '640105', '西夏区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640106', '6401', '00,64,6401', '金凤区', '64', '宁夏回族自治区', '6401', '银川市', '640106', '金凤区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640121', '6401', '00,64,6401', '永宁县', '64', '宁夏回族自治区', '6401', '银川市', '640121', '永宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640122', '6401', '00,64,6401', '贺兰县', '64', '宁夏回族自治区', '6401', '银川市', '640122', '贺兰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640181', '6401', '00,64,6401', '灵武市', '64', '宁夏回族自治区', '6401', '银川市', '640181', '灵武市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6402', '64', '00,64', '石嘴山市', '64', '宁夏回族自治区', '6402', '石嘴山市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('640202', '6402', '00,64,6402', '大武口区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640202', '大武口区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640205', '6402', '00,64,6402', '惠农区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640205', '惠农区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640221', '6402', '00,64,6402', '平罗县', '64', '宁夏回族自治区', '6402', '石嘴山市', '640221', '平罗县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6403', '64', '00,64', '吴忠市', '64', '宁夏回族自治区', '6403', '吴忠市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('640302', '6403', '00,64,6403', '利通区', '64', '宁夏回族自治区', '6403', '吴忠市', '640302', '利通区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640303', '6403', '00,64,6403', '红寺堡区', '64', '宁夏回族自治区', '6403', '吴忠市', '640303', '红寺堡区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640323', '6403', '00,64,6403', '盐池县', '64', '宁夏回族自治区', '6403', '吴忠市', '640323', '盐池县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640324', '6403', '00,64,6403', '同心县', '64', '宁夏回族自治区', '6403', '吴忠市', '640324', '同心县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640381', '6403', '00,64,6403', '青铜峡市', '64', '宁夏回族自治区', '6403', '吴忠市', '640381', '青铜峡市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6404', '64', '00,64', '固原市', '64', '宁夏回族自治区', '6404', '固原市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('640402', '6404', '00,64,6404', '原州区', '64', '宁夏回族自治区', '6404', '固原市', '640402', '原州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640422', '6404', '00,64,6404', '西吉县', '64', '宁夏回族自治区', '6404', '固原市', '640422', '西吉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640423', '6404', '00,64,6404', '隆德县', '64', '宁夏回族自治区', '6404', '固原市', '640423', '隆德县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640424', '6404', '00,64,6404', '泾源县', '64', '宁夏回族自治区', '6404', '固原市', '640424', '泾源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640425', '6404', '00,64,6404', '彭阳县', '64', '宁夏回族自治区', '6404', '固原市', '640425', '彭阳县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6405', '64', '00,64', '中卫市', '64', '宁夏回族自治区', '6405', '中卫市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('640502', '6405', '00,64,6405', '沙坡头区', '64', '宁夏回族自治区', '6405', '中卫市', '640502', '沙坡头区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640521', '6405', '00,64,6405', '中宁县', '64', '宁夏回族自治区', '6405', '中卫市', '640521', '中宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('640522', '6405', '00,64,6405', '海原县', '64', '宁夏回族自治区', '6405', '中卫市', '640522', '海原县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('65', '00', '00', '新疆维吾尔自治区', '65', '新疆维吾尔自治区', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('6501', '65', '00,65', '乌鲁木齐市', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('650102', '6501', '00,65,6501', '天山区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650102', '天山区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650103', '6501', '00,65,6501', '沙依巴克区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650103', '沙依巴克区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650104', '6501', '00,65,6501', '新市区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650104', '新市区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650105', '6501', '00,65,6501', '水磨沟区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650105', '水磨沟区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650106', '6501', '00,65,6501', '头屯河区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650106', '头屯河区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650107', '6501', '00,65,6501', '达坂城区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650107', '达坂城区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650109', '6501', '00,65,6501', '米东区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650109', '米东区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650121', '6501', '00,65,6501', '乌鲁木齐县', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650121', '乌鲁木齐县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6502', '65', '00,65', '克拉玛依市', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('650202', '6502', '00,65,6502', '独山子区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650202', '独山子区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650203', '6502', '00,65,6502', '克拉玛依区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650203', '克拉玛依区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650204', '6502', '00,65,6502', '白碱滩区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650204', '白碱滩区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650205', '6502', '00,65,6502', '乌尔禾区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650205', '乌尔禾区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6504', '65', '00,65', '吐鲁番市', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('650402', '6504', '00,65,6504', '高昌区', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650402', '高昌区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650421', '6504', '00,65,6504', '鄯善县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650421', '鄯善县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650422', '6504', '00,65,6504', '托克逊县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650422', '托克逊县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6505', '65', '00,65', '哈密市', '65', '新疆维吾尔自治区', '6505', '哈密市', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('650502', '6505', '00,65,6505', '伊州区', '65', '新疆维吾尔自治区', '6505', '哈密市', '650502', '伊州区', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650521', '6505', '00,65,6505', '巴里坤哈萨克自治县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650521', '巴里坤哈萨克自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('650522', '6505', '00,65,6505', '伊吾县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650522', '伊吾县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6523', '65', '00,65', '昌吉回族自治州', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('652301', '6523', '00,65,6523', '昌吉市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652301', '昌吉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652302', '6523', '00,65,6523', '阜康市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652302', '阜康市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652323', '6523', '00,65,6523', '呼图壁县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652323', '呼图壁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652324', '6523', '00,65,6523', '玛纳斯县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652324', '玛纳斯县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652325', '6523', '00,65,6523', '奇台县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652325', '奇台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652327', '6523', '00,65,6523', '吉木萨尔县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652327', '吉木萨尔县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652328', '6523', '00,65,6523', '木垒哈萨克自治县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652328', '木垒哈萨克自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6527', '65', '00,65', '博尔塔拉蒙古自治州', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('652701', '6527', '00,65,6527', '博乐市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652701', '博乐市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652702', '6527', '00,65,6527', '阿拉山口市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652702', '阿拉山口市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652722', '6527', '00,65,6527', '精河县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652722', '精河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652723', '6527', '00,65,6527', '温泉县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652723', '温泉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6528', '65', '00,65', '巴音郭楞蒙古自治州', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('652801', '6528', '00,65,6528', '库尔勒市', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652801', '库尔勒市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652822', '6528', '00,65,6528', '轮台县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652822', '轮台县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652823', '6528', '00,65,6528', '尉犁县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652823', '尉犁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652824', '6528', '00,65,6528', '若羌县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652824', '若羌县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652825', '6528', '00,65,6528', '且末县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652825', '且末县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652826', '6528', '00,65,6528', '焉耆回族自治县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652826', '焉耆回族自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652827', '6528', '00,65,6528', '和静县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652827', '和静县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652828', '6528', '00,65,6528', '和硕县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652828', '和硕县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652829', '6528', '00,65,6528', '博湖县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652829', '博湖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6529', '65', '00,65', '阿克苏地区', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('652901', '6529', '00,65,6529', '阿克苏市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652901', '阿克苏市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652902', '6529', '00,65,6529', '库车市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652902', '库车市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652922', '6529', '00,65,6529', '温宿县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652922', '温宿县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652924', '6529', '00,65,6529', '沙雅县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652924', '沙雅县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652925', '6529', '00,65,6529', '新和县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652925', '新和县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652926', '6529', '00,65,6529', '拜城县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652926', '拜城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652927', '6529', '00,65,6529', '乌什县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652927', '乌什县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652928', '6529', '00,65,6529', '阿瓦提县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652928', '阿瓦提县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('652929', '6529', '00,65,6529', '柯坪县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652929', '柯坪县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6530', '65', '00,65', '克孜勒苏柯尔克孜自治州', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('653001', '6530', '00,65,6530', '阿图什市', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653001', '阿图什市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653022', '6530', '00,65,6530', '阿克陶县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653022', '阿克陶县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653023', '6530', '00,65,6530', '阿合奇县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653023', '阿合奇县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653024', '6530', '00,65,6530', '乌恰县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653024', '乌恰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6531', '65', '00,65', '喀什地区', '65', '新疆维吾尔自治区', '6531', '喀什地区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('653101', '6531', '00,65,6531', '喀什市', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653101', '喀什市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653121', '6531', '00,65,6531', '疏附县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653121', '疏附县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653122', '6531', '00,65,6531', '疏勒县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653122', '疏勒县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653123', '6531', '00,65,6531', '英吉沙县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653123', '英吉沙县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653124', '6531', '00,65,6531', '泽普县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653124', '泽普县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653125', '6531', '00,65,6531', '莎车县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653125', '莎车县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653126', '6531', '00,65,6531', '叶城县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653126', '叶城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653127', '6531', '00,65,6531', '麦盖提县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653127', '麦盖提县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653128', '6531', '00,65,6531', '岳普湖县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653128', '岳普湖县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653129', '6531', '00,65,6531', '伽师县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653129', '伽师县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653130', '6531', '00,65,6531', '巴楚县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653130', '巴楚县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653131', '6531', '00,65,6531', '塔什库尔干塔吉克自治县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653131', '塔什库尔干塔吉克自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6532', '65', '00,65', '和田地区', '65', '新疆维吾尔自治区', '6532', '和田地区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('653201', '6532', '00,65,6532', '和田市', '65', '新疆维吾尔自治区', '6532', '和田地区', '653201', '和田市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653221', '6532', '00,65,6532', '和田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653221', '和田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653222', '6532', '00,65,6532', '墨玉县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653222', '墨玉县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653223', '6532', '00,65,6532', '皮山县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653223', '皮山县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653224', '6532', '00,65,6532', '洛浦县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653224', '洛浦县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653225', '6532', '00,65,6532', '策勒县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653225', '策勒县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653226', '6532', '00,65,6532', '于田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653226', '于田县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('653227', '6532', '00,65,6532', '民丰县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653227', '民丰县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6540', '65', '00,65', '伊犁哈萨克自治州', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('654002', '6540', '00,65,6540', '伊宁市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654002', '伊宁市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654003', '6540', '00,65,6540', '奎屯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654003', '奎屯市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654004', '6540', '00,65,6540', '霍尔果斯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654004', '霍尔果斯市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654021', '6540', '00,65,6540', '伊宁县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654021', '伊宁县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654022', '6540', '00,65,6540', '察布查尔锡伯自治县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654022', '察布查尔锡伯自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654023', '6540', '00,65,6540', '霍城县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654023', '霍城县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654024', '6540', '00,65,6540', '巩留县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654024', '巩留县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654025', '6540', '00,65,6540', '新源县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654025', '新源县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654026', '6540', '00,65,6540', '昭苏县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654026', '昭苏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654027', '6540', '00,65,6540', '特克斯县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654027', '特克斯县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654028', '6540', '00,65,6540', '尼勒克县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654028', '尼勒克县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6542', '65', '00,65', '塔城地区', '65', '新疆维吾尔自治区', '6542', '塔城地区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('654201', '6542', '00,65,6542', '塔城市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654201', '塔城市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654202', '6542', '00,65,6542', '乌苏市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654202', '乌苏市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654221', '6542', '00,65,6542', '额敏县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654221', '额敏县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654223', '6542', '00,65,6542', '沙湾县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654223', '沙湾县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654224', '6542', '00,65,6542', '托里县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654224', '托里县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654225', '6542', '00,65,6542', '裕民县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654225', '裕民县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654226', '6542', '00,65,6542', '和布克赛尔蒙古自治县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654226', '和布克赛尔蒙古自治县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6543', '65', '00,65', '阿勒泰地区', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('654301', '6543', '00,65,6543', '阿勒泰市', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654301', '阿勒泰市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654321', '6543', '00,65,6543', '布尔津县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654321', '布尔津县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654322', '6543', '00,65,6543', '富蕴县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654322', '富蕴县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654323', '6543', '00,65,6543', '福海县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654323', '福海县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654324', '6543', '00,65,6543', '哈巴河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654324', '哈巴河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654325', '6543', '00,65,6543', '青河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654325', '青河县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('654326', '6543', '00,65,6543', '吉木乃县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654326', '吉木乃县', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('6590', '65', '00,65', '自治区直辖县级行政区', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '', '', '', '', '', '', 2, 1, '');
+INSERT INTO "blade_region" VALUES ('659001', '6590', '00,65,6590', '石河子市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659001', '石河子市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659002', '6590', '00,65,6590', '阿拉尔市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659002', '阿拉尔市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659003', '6590', '00,65,6590', '图木舒克市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659003', '图木舒克市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659004', '6590', '00,65,6590', '五家渠市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659004', '五家渠市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659005', '6590', '00,65,6590', '北屯市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659005', '北屯市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659006', '6590', '00,65,6590', '铁门关市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659006', '铁门关市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659007', '6590', '00,65,6590', '双河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659007', '双河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659008', '6590', '00,65,6590', '可克达拉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659008', '可克达拉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659009', '6590', '00,65,6590', '昆玉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659009', '昆玉市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('659010', '6590', '00,65,6590', '胡杨河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659010', '胡杨河市', '', '', '', '', 3, 1, '');
+INSERT INTO "blade_region" VALUES ('71', '00', '00', '台湾省', '71', '台湾省', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('81', '00', '00', '香港特别行政区', '81', '香港特别行政区', '', '', '', '', '', '', '', '', 1, 1, '');
+INSERT INTO "blade_region" VALUES ('82', '00', '00', '澳门特别行政区', '82', '澳门特别行政区', '', '', '', '', '', '', '', '', 1, 1, '');
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_report_file
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_report_file";
+CREATE TABLE "blade_report_file" (
+  "id" int8 NOT NULL,
+  "name" varchar(100) COLLATE "pg_catalog"."default" NOT NULL,
+  "content" bytea,
+  "create_time" timestamp(6) NOT NULL,
+  "update_time" timestamp(6) NOT NULL,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_report_file"."id" IS '主键';
+COMMENT ON COLUMN "blade_report_file"."name" IS '文件名';
+COMMENT ON COLUMN "blade_report_file"."content" IS '文件内容';
+COMMENT ON COLUMN "blade_report_file"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_report_file"."update_time" IS '更新时间';
+COMMENT ON COLUMN "blade_report_file"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_report_file" IS '报表文件表';
+
+-- ----------------------------
+-- Records of blade_report_file
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_report_file" VALUES (1291945594587201537, 'notice.ureport.xml', E'<?xml version="1.0" encoding="UTF-8"?><ureport><cell expand="Down" name="A1" row="1" col="1"><cell-style font-size="10" align="center" valign="middle"><left-border width="1" style="solid" color="0,0,0"/><right-border width="1" style="solid" color="0,0,0"/><top-border width="1" style="solid" color="0,0,0"/><bottom-border width="1" style="solid" color="0,0,0"/></cell-style><dataset-value dataset-name="notice" aggregate="group" property="tenant_id" order="none" mapping-type="simple"></dataset-value></cell><cell expand="Down" name="B1" row="1" col="2"><cell-style font-size="10" align="center" valign="middle"><left-border width="1" style="solid" color="0,0,0"/><right-border width="1" style="solid" color="0,0,0"/><top-border width="1" style="solid" color="0,0,0"/><bottom-border width="1" style="solid" color="0,0,0"/></cell-style><dataset-value dataset-name="notice" aggregate="group" property="title" order="none" mapping-type="simple"></dataset-value></cell><cell expand="Down" name="C1" row="1" col="3"><cell-style font-size="10" align="center" valign="middle"><left-border width="1" style="solid" color="0,0,0"/><right-border width="1" style="solid" color="0,0,0"/><top-border width="1" style="solid" color="0,0,0"/><bottom-border width="1" style="solid" color="0,0,0"/></cell-style><dataset-value dataset-name="notice" aggregate="group" property="release_time" order="none" mapping-type="simple"></dataset-value></cell><cell expand="None" name="D1" row="1" col="4"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="A2" row="2" col="1"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="B2" row="2" col="2"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="C2" row="2" col="3"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="D2" row="2" col="4"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="A3" row="3" col="1"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="B3" row="3" col="2"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="C3" row="3" col="3"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><cell expand="None" name="D3" row="3" col="4"><cell-style font-size="10" align="center" valign="middle"></cell-style><simple-value><![CDATA[]]></simple-value></cell><row row-number="1" height="18"/><row row-number="2" height="18"/><row row-number="3" height="18"/><column col-number="1" width="80"/><column col-number="2" width="80"/><column col-number="3" width="125"/><column col-number="4" width="80"/><datasource name="ReportDataSource" type="buildin"><dataset name="notice" type="sql"><sql><![CDATA[select * from blade_notice]]></sql><field name="id"/><field name="tenant_id"/><field name="title"/><field name="category"/><field name="release_time"/><field name="content"/><field name="create_user"/><field name="create_dept"/><field name="create_time"/><field name="update_user"/><field name="update_time"/><field name="status"/><field name="is_deleted"/></dataset></datasource><paper type="A4" left-margin="90" right-margin="90"\\012    top-margin="72" bottom-margin="72" paging-mode="fitpage" fixrows="0"\\012    width="595" height="842" orientation="portrait" html-report-align="left" bg-image="" html-interval-refresh-value="0" column-enabled="false"></paper></ureport>', '2020-08-08 11:53:27.595', '2020-08-08 13:02:11.393', 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_role
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_role";
+CREATE TABLE "blade_role" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "parent_id" int8,
+  "role_name" varchar(255) COLLATE "pg_catalog"."default",
+  "sort" int4,
+  "role_alias" varchar(255) COLLATE "pg_catalog"."default",
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_role"."id" IS '主键';
+COMMENT ON COLUMN "blade_role"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_role"."parent_id" IS '父主键';
+COMMENT ON COLUMN "blade_role"."role_name" IS '角色名';
+COMMENT ON COLUMN "blade_role"."sort" IS '排序';
+COMMENT ON COLUMN "blade_role"."role_alias" IS '角色别名';
+COMMENT ON COLUMN "blade_role"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_role" IS '角色表';
+
+-- ----------------------------
+-- Records of blade_role
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_role" VALUES (1123598816738675201, '000000', 0, '超级管理员', 1, 'administrator', 0);
+INSERT INTO "blade_role" VALUES (1123598816738675202, '000000', 0, '用户', 2, 'user', 0);
+INSERT INTO "blade_role" VALUES (1123598816738675203, '000000', 1123598816738675202, '人事', 1, 'hr', 0);
+INSERT INTO "blade_role" VALUES (1123598816738675204, '000000', 1123598816738675202, '经理', 2, 'manager', 0);
+INSERT INTO "blade_role" VALUES (1123598816738675205, '000000', 1123598816738675202, '老板', 3, 'boss', 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_role_menu
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_role_menu";
+CREATE TABLE "blade_role_menu" (
+  "id" int8 NOT NULL,
+  "menu_id" int8,
+  "role_id" int8
+)
+;
+COMMENT ON COLUMN "blade_role_menu"."id" IS '主键';
+COMMENT ON COLUMN "blade_role_menu"."menu_id" IS '菜单id';
+COMMENT ON COLUMN "blade_role_menu"."role_id" IS '角色id';
+COMMENT ON TABLE "blade_role_menu" IS '角色菜单关联表';
+
+-- ----------------------------
+-- Records of blade_role_menu
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_role_menu" VALUES (1123598817738675363, 1123598815738675201, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675364, 1123598815738675202, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675365, 1123598815738675219, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675366, 1123598815738675220, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675367, 1123598815738675221, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675368, 1123598815738675222, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675369, 1123598815738675280, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675370, 1123598815738675281, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675371, 1123598815738675282, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675372, 1123598815738675283, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675373, 1123598815738675284, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675374, 1123598815738675285, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675375, 1123598815738675286, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675376, 1123598815738675287, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675377, 1123598815738675288, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675378, 1123598815738675289, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675379, 1123598815738675290, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675380, 1123598815738675291, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675381, 1123598815738675292, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675382, 1123598815738675293, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675383, 1123598815738675294, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675384, 1123598815738675295, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675385, 1123598815738675296, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675386, 1123598815738675297, 1123598816738675202);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675387, 1123598815738675201, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675388, 1123598815738675202, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675389, 1123598815738675219, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675390, 1123598815738675220, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675391, 1123598815738675221, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675392, 1123598815738675222, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675393, 1123598815738675280, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675394, 1123598815738675281, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675395, 1123598815738675282, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675396, 1123598815738675283, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675397, 1123598815738675284, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675398, 1123598815738675285, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675399, 1123598815738675286, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675400, 1123598815738675287, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675401, 1123598815738675288, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675402, 1123598815738675289, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675403, 1123598815738675290, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675404, 1123598815738675291, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675405, 1123598815738675292, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675406, 1123598815738675293, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675407, 1123598815738675294, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675408, 1123598815738675295, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675409, 1123598815738675296, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675410, 1123598815738675297, 1123598816738675203);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675411, 1123598815738675201, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675412, 1123598815738675202, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675413, 1123598815738675219, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675414, 1123598815738675220, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675415, 1123598815738675221, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675416, 1123598815738675222, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675417, 1123598815738675280, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675418, 1123598815738675281, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675419, 1123598815738675282, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675420, 1123598815738675283, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675421, 1123598815738675284, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675422, 1123598815738675285, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675423, 1123598815738675286, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675424, 1123598815738675287, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675425, 1123598815738675288, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675426, 1123598815738675289, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675427, 1123598815738675290, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675428, 1123598815738675291, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675429, 1123598815738675292, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675430, 1123598815738675293, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675431, 1123598815738675294, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675432, 1123598815738675295, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675433, 1123598815738675296, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675434, 1123598815738675297, 1123598816738675204);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675435, 1123598815738675201, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675436, 1123598815738675202, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675437, 1123598815738675219, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675438, 1123598815738675220, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675439, 1123598815738675221, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675440, 1123598815738675222, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675441, 1123598815738675280, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675442, 1123598815738675281, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675443, 1123598815738675282, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675444, 1123598815738675283, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675445, 1123598815738675284, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675446, 1123598815738675285, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675447, 1123598815738675286, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675448, 1123598815738675287, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675449, 1123598815738675288, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675450, 1123598815738675289, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675451, 1123598815738675290, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675452, 1123598815738675291, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675453, 1123598815738675292, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675454, 1123598815738675293, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675455, 1123598815738675294, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675456, 1123598815738675295, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675457, 1123598815738675296, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1123598817738675458, 1123598815738675297, 1123598816738675205);
+INSERT INTO "blade_role_menu" VALUES (1149888293856833539, 1123598815738675317, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891666312130561, 1123598815738675201, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891666370850818, 1123598815738675202, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891666437959682, 1123598815738675219, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891666505068546, 1123598815738675220, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891666555400193, 1123598815738675221, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891666614120449, 1123598815738675222, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891666651869185, 1123598815738675280, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891666723172353, 1123598815738675281, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891666765115393, 1123598815738675282, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891666815447041, 1123598815738675283, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891666844807170, 1123598815738675284, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891666886750210, 1123598815738675285, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891666924498946, 1123598815738675286, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891666966441986, 1123598815738675287, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667012579330, 1123598815738675288, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667054522370, 1123598815738675289, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667109048322, 1123598815738675290, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667146797058, 1123598815738675291, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667197128706, 1123598815738675292, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667234877441, 1123598815738675293, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667272626178, 1123598815738675294, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667314569218, 1123598815738675295, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667343929346, 1123598815738675296, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667398455298, 1123598815738675297, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667440398338, 1123598815738675210, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667478147073, 1123598815738675211, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667524284417, 1123598815738675212, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667574616065, 1123598815738675213, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667608170498, 1123598815738675214, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667641724929, 1123598815738675249, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667671085058, 1123598815738675215, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667708833793, 1123598815738675250, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667746582529, 1123598815738675216, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667784331265, 1123598815738675251, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667822080001, 1123598815738675217, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667843051522, 1123598815738675218, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667889188865, 1123598815738675252, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667926937602, 1123598815738675253, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667947909121, 1123598815738675254, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891667989852161, 1123598815738675255, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668015017986, 1123598815738675266, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668061155330, 1123598815738675267, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668086321154, 1123598815738675268, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668136652802, 1123598815738675269, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668199567362, 1123598815738675270, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668262481922, 1123598815738675271, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668321202177, 1123598815738675272, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668367339521, 1123598815738675273, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668405088257, 1123598815738675274, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668438642689, 1123598815738675275, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668472197121, 1123598815738675276, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668509945858, 1123598815738675277, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668568666113, 1123598815738675278, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668631580673, 1123598815738675279, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668669329410, 1123598815738675298, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668719661057, 1123598815738675299, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668757409793, 1123598815738675301, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668803547138, 1123598815738675302, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668849684481, 1123598815738675303, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668883238913, 1123598815738675304, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668920987650, 1123598815738675305, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668950347777, 1123598815738675307, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891668983902209, 1123598815738675308, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669013262338, 1123598815738675241, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669034233857, 1123598815738675242, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669055205378, 1123598815738675243, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669105537025, 1123598815738675244, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669164257282, 1123598815738675309, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669210394626, 1123598815738675310, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669243949058, 1123598815738675311, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669285892097, 1123598815738675312, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669336223745, 1123598815738675203, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669365583873, 1123598815738675204, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669394944001, 1123598815738675223, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669441081346, 1123598815738675224, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669487218689, 1123598815738675225, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669533356033, 1123598815738675226, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669571104770, 1123598815738675227, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669642407937, 1123598815738675228, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669671768065, 1123598815738675205, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669696933889, 1123598815738675229, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669743071234, 1123598815738675230, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669797597186, 1123598815738675231, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669847928834, 1123598815738675232, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669919232001, 1123598815738675206, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891669973757954, 1123598815738675233, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670019895298, 1123598815738675234, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670045061121, 1123598815738675235, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670095392770, 1123598815738675236, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670137335809, 1123598815738675207, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670196056065, 1123598815738675237, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670229610498, 1123598815738675238, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670267359234, 1123598815738675239, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670292525057, 1123598815738675240, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670355439617, 1123598815738675306, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670380605442, 1123598815738675208, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670443520001, 1123598815738675313, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670481268737, 1123598815738675314, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670506434561, 1123598815738675315, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670569349121, 1123598815738675316, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670594514945, 1123598815738675209, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670657429506, 1123598815738675245, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670682595330, 1123598815738675246, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670711955457, 1123598815738675247, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670745509889, 1123598815738675248, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670804230146, 1123598815738675256, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670841978881, 1123598815738675257, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670879727617, 1123598815738675258, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670913282050, 1123598815738675259, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670959419394, 1123598815738675260, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891670988779521, 1123598815738675261, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891671039111170, 1123598815738675262, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891671068471297, 1123598815738675263, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891671110414338, 1123598815738675264, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1149891671152357378, 1123598815738675265, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272593873322991, 1161272593873321991, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272593873322992, 1161272593873321992, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272593873322993, 1161272593873321993, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272593873322994, 1161272593873321994, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272593873322995, 1161272593873321995, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272693873322991, 1164733369658963251, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272693873322992, 1164733369658963252, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272693873322993, 1164733369658963253, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272693873322994, 1164733369658963254, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272693873322995, 1164733369658963255, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272793873322991, 1164733379658963251, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272793873322992, 1164733379658963252, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272793873322993, 1164733379658963253, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272793873322994, 1164733379658963254, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272793873322995, 1164733379658963255, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893873322991, 1164733389658963251, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893873222991, 1164733389658962251, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893873222992, 1164733389658962252, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893873222993, 1164733389658962253, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893873222994, 1164733389658962254, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893873222995, 1164733389658962255, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893873222996, 1164733389658962256, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875225001, 1164733389668962251, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875225002, 1164733389668962252, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875225003, 1164733389668962253, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875225004, 1164733389668962254, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875225005, 1164733389668962255, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875225006, 1164733389668962256, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875226001, 1164733399668962201, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875226002, 1164733399668962202, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875226003, 1164733399668962203, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875226004, 1164733399668962204, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875226005, 1164733399668962205, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875226006, 1164733399668962206, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875226007, 1164733399668962207, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875227001, 1164733399669962201, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875227002, 1164733399669962202, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875227003, 1164733399669962203, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875227004, 1164733399669962204, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875228001, 1164733399669962301, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875228002, 1164733399669962302, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875228003, 1164733399669962303, 1123598816738675201);
+INSERT INTO "blade_role_menu" VALUES (1161272893875228004, 1164733399669962304, 1123598816738675201);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_role_scope
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_role_scope";
+CREATE TABLE "blade_role_scope" (
+  "id" int8 NOT NULL,
+  "scope_category" int4,
+  "scope_id" int8,
+  "role_id" int8
+)
+;
+COMMENT ON COLUMN "blade_role_scope"."id" IS '主键';
+COMMENT ON COLUMN "blade_role_scope"."scope_category" IS '权限类型(1:数据权限、2:接口权限)';
+COMMENT ON COLUMN "blade_role_scope"."scope_id" IS '权限id';
+COMMENT ON COLUMN "blade_role_scope"."role_id" IS '角色id';
+COMMENT ON TABLE "blade_role_scope" IS '角色数据权限关联表';
+
+-- ----------------------------
+-- Table structure for blade_scope_api
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_scope_api";
+CREATE TABLE "blade_scope_api" (
+  "id" int8 NOT NULL,
+  "menu_id" int8,
+  "resource_code" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_name" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_path" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type" int4,
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_scope_api"."id" IS '主键';
+COMMENT ON COLUMN "blade_scope_api"."menu_id" IS '菜单主键';
+COMMENT ON COLUMN "blade_scope_api"."resource_code" IS '资源编号';
+COMMENT ON COLUMN "blade_scope_api"."scope_name" IS '接口权限名';
+COMMENT ON COLUMN "blade_scope_api"."scope_path" IS '接口权限地址';
+COMMENT ON COLUMN "blade_scope_api"."scope_type" IS '接口权限类型';
+COMMENT ON COLUMN "blade_scope_api"."remark" IS '接口权限备注';
+COMMENT ON COLUMN "blade_scope_api"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_scope_api"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_scope_api"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_scope_api"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_scope_api"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_scope_api"."status" IS '状态';
+COMMENT ON COLUMN "blade_scope_api"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_scope_api" IS '接口权限表';
+
+-- ----------------------------
+-- Table structure for blade_scope_data
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_scope_data";
+CREATE TABLE "blade_scope_data" (
+  "id" int8 NOT NULL,
+  "menu_id" int8,
+  "resource_code" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_name" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_field" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_class" varchar(500) COLLATE "pg_catalog"."default",
+  "scope_column" varchar(255) COLLATE "pg_catalog"."default",
+  "scope_type" int4,
+  "scope_value" varchar(2000) COLLATE "pg_catalog"."default",
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_scope_data"."id" IS '主键';
+COMMENT ON COLUMN "blade_scope_data"."menu_id" IS '菜单主键';
+COMMENT ON COLUMN "blade_scope_data"."resource_code" IS '资源编号';
+COMMENT ON COLUMN "blade_scope_data"."scope_name" IS '数据权限名称';
+COMMENT ON COLUMN "blade_scope_data"."scope_field" IS '数据权限字段';
+COMMENT ON COLUMN "blade_scope_data"."scope_class" IS '数据权限类名';
+COMMENT ON COLUMN "blade_scope_data"."scope_column" IS '数据权限字段';
+COMMENT ON COLUMN "blade_scope_data"."scope_type" IS '数据权限类型';
+COMMENT ON COLUMN "blade_scope_data"."scope_value" IS '数据权限值域';
+COMMENT ON COLUMN "blade_scope_data"."remark" IS '数据权限备注';
+COMMENT ON COLUMN "blade_scope_data"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_scope_data"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_scope_data"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_scope_data"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_scope_data"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_scope_data"."status" IS '状态';
+COMMENT ON COLUMN "blade_scope_data"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_scope_data" IS '数据权限表';
+
+-- ----------------------------
+-- Table structure for blade_sms
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_sms";
+CREATE TABLE "blade_sms" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "category" int4,
+  "sms_code" varchar(12) COLLATE "pg_catalog"."default",
+  "template_id" varchar(64) COLLATE "pg_catalog"."default",
+  "access_key" varchar(255) COLLATE "pg_catalog"."default",
+  "secret_key" varchar(255) COLLATE "pg_catalog"."default",
+  "region_id" varchar(255) COLLATE "pg_catalog"."default",
+  "sign_name" varchar(64) COLLATE "pg_catalog"."default",
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_sms"."id" IS '主键';
+COMMENT ON COLUMN "blade_sms"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_sms"."category" IS '分类';
+COMMENT ON COLUMN "blade_sms"."sms_code" IS '资源编号';
+COMMENT ON COLUMN "blade_sms"."template_id" IS '模板ID';
+COMMENT ON COLUMN "blade_sms"."access_key" IS 'accessKey';
+COMMENT ON COLUMN "blade_sms"."secret_key" IS 'secretKey';
+COMMENT ON COLUMN "blade_sms"."region_id" IS 'regionId';
+COMMENT ON COLUMN "blade_sms"."sign_name" IS '短信签名';
+COMMENT ON COLUMN "blade_sms"."remark" IS '备注';
+COMMENT ON COLUMN "blade_sms"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_sms"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_sms"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_sms"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_sms"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_sms"."status" IS '状态';
+COMMENT ON COLUMN "blade_sms"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_sms" IS '短信配置表';
+
+-- ----------------------------
+-- Table structure for blade_tenant
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_tenant";
+CREATE TABLE "blade_tenant" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "tenant_name" varchar(50) COLLATE "pg_catalog"."default" NOT NULL,
+  "domain_url" varchar(255) COLLATE "pg_catalog"."default",
+  "background_url" varchar(1000) COLLATE "pg_catalog"."default",
+  "linkman" varchar(20) COLLATE "pg_catalog"."default",
+  "contact_number" varchar(20) COLLATE "pg_catalog"."default",
+  "address" varchar(255) COLLATE "pg_catalog"."default",
+  "account_number" int2 DEFAULT '-1'::integer,
+  "expire_time" timestamp(6),
+  "package_id" int8,
+  "datasource_id" int8,
+  "license_key" varchar(1000) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_tenant"."id" IS '主键';
+COMMENT ON COLUMN "blade_tenant"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_tenant"."tenant_name" IS '租户名称';
+COMMENT ON COLUMN "blade_tenant"."domain_url" IS '域名地址';
+COMMENT ON COLUMN "blade_tenant"."background_url" IS '系统背景';
+COMMENT ON COLUMN "blade_tenant"."linkman" IS '联系人';
+COMMENT ON COLUMN "blade_tenant"."contact_number" IS '联系电话';
+COMMENT ON COLUMN "blade_tenant"."address" IS '联系地址';
+COMMENT ON COLUMN "blade_tenant"."account_number" IS '账号额度';
+COMMENT ON COLUMN "blade_tenant"."expire_time" IS '过期时间';
+COMMENT ON COLUMN "blade_tenant"."package_id" IS '产品包ID';
+COMMENT ON COLUMN "blade_tenant"."datasource_id" IS '数据源ID';
+COMMENT ON COLUMN "blade_tenant"."license_key" IS '授权码';
+COMMENT ON COLUMN "blade_tenant"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_tenant"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_tenant"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_tenant"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_tenant"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_tenant"."status" IS '状态';
+COMMENT ON COLUMN "blade_tenant"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_tenant" IS '租户表';
+
+-- ----------------------------
+-- Records of blade_tenant
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_tenant" VALUES (1123598820738675201, '000000', '管理组', NULL, NULL, 'admin', '666666', '管理组', -1, NULL, NULL, NULL, NULL, 1123598821738675201, 1123598813738675201, '2019-01-01 00:00:39', 1123598821738675201, '2019-01-01 00:00:39', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_tenant_package
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_tenant_package";
+CREATE TABLE "blade_tenant_package" (
+  "id" int8 NOT NULL,
+  "package_name" varchar(50) COLLATE "pg_catalog"."default",
+  "menu_id" varchar(3000) COLLATE "pg_catalog"."default",
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_tenant_package"."id" IS '主键';
+COMMENT ON COLUMN "blade_tenant_package"."package_name" IS '产品包名';
+COMMENT ON COLUMN "blade_tenant_package"."menu_id" IS '菜单ID';
+COMMENT ON COLUMN "blade_tenant_package"."remark" IS '备注';
+COMMENT ON COLUMN "blade_tenant_package"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_tenant_package"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_tenant_package"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_tenant_package"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_tenant_package"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_tenant_package"."status" IS '状态';
+COMMENT ON COLUMN "blade_tenant_package"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_tenant_package" IS '租户产品表';
+
+-- ----------------------------
+-- Table structure for blade_top_menu
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_top_menu";
+CREATE TABLE "blade_top_menu" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "code" varchar(255) COLLATE "pg_catalog"."default",
+  "name" varchar(255) COLLATE "pg_catalog"."default",
+  "source" varchar(255) COLLATE "pg_catalog"."default",
+  "sort" int4,
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_top_menu"."id" IS '主键';
+COMMENT ON COLUMN "blade_top_menu"."tenant_id" IS '租户id';
+COMMENT ON COLUMN "blade_top_menu"."code" IS '顶部菜单编号';
+COMMENT ON COLUMN "blade_top_menu"."name" IS '顶部菜单名';
+COMMENT ON COLUMN "blade_top_menu"."source" IS '顶部菜单资源';
+COMMENT ON COLUMN "blade_top_menu"."sort" IS '顶部菜单排序';
+COMMENT ON COLUMN "blade_top_menu"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_top_menu"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_top_menu"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_top_menu"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_top_menu"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_top_menu"."status" IS '状态';
+COMMENT ON COLUMN "blade_top_menu"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_top_menu" IS '顶部菜单表';
+
+-- ----------------------------
+-- Table structure for blade_top_menu_setting
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_top_menu_setting";
+CREATE TABLE "blade_top_menu_setting" (
+  "id" int8 NOT NULL,
+  "top_menu_id" int8,
+  "menu_id" int8
+)
+;
+COMMENT ON COLUMN "blade_top_menu_setting"."id" IS '主键';
+COMMENT ON COLUMN "blade_top_menu_setting"."top_menu_id" IS '顶部菜单主键';
+COMMENT ON COLUMN "blade_top_menu_setting"."menu_id" IS '菜单主键';
+COMMENT ON TABLE "blade_top_menu_setting" IS '顶部菜单配置表';
+
+-- ----------------------------
+-- Table structure for blade_user
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_user";
+CREATE TABLE "blade_user" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "code" varchar(12) COLLATE "pg_catalog"."default",
+  "user_type" int2,
+  "account" varchar(45) COLLATE "pg_catalog"."default",
+  "password" varchar(45) COLLATE "pg_catalog"."default",
+  "name" varchar(20) COLLATE "pg_catalog"."default",
+  "real_name" varchar(10) COLLATE "pg_catalog"."default",
+  "avatar" varchar(500) COLLATE "pg_catalog"."default",
+  "email" varchar(45) COLLATE "pg_catalog"."default",
+  "phone" varchar(45) COLLATE "pg_catalog"."default",
+  "birthday" timestamp(6),
+  "sex" int2,
+  "role_id" varchar(1000) COLLATE "pg_catalog"."default",
+  "dept_id" varchar(1000) COLLATE "pg_catalog"."default",
+  "post_id" varchar(1000) COLLATE "pg_catalog"."default",
+  "create_user" int8,
+  "create_dept" int8,
+  "create_time" timestamp(6),
+  "update_user" int8,
+  "update_time" timestamp(6),
+  "status" int4,
+  "is_deleted" int4
+)
+;
+COMMENT ON COLUMN "blade_user"."id" IS '主键';
+COMMENT ON COLUMN "blade_user"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_user"."code" IS '用户编号';
+COMMENT ON COLUMN "blade_user"."user_type" IS '用户平台';
+COMMENT ON COLUMN "blade_user"."account" IS '账号';
+COMMENT ON COLUMN "blade_user"."password" IS '密码';
+COMMENT ON COLUMN "blade_user"."name" IS '昵称';
+COMMENT ON COLUMN "blade_user"."real_name" IS '真名';
+COMMENT ON COLUMN "blade_user"."avatar" IS '头像';
+COMMENT ON COLUMN "blade_user"."email" IS '邮箱';
+COMMENT ON COLUMN "blade_user"."phone" IS '手机';
+COMMENT ON COLUMN "blade_user"."birthday" IS '生日';
+COMMENT ON COLUMN "blade_user"."sex" IS '性别';
+COMMENT ON COLUMN "blade_user"."role_id" IS '角色id';
+COMMENT ON COLUMN "blade_user"."dept_id" IS '部门id';
+COMMENT ON COLUMN "blade_user"."post_id" IS '岗位id';
+COMMENT ON COLUMN "blade_user"."create_user" IS '创建人';
+COMMENT ON COLUMN "blade_user"."create_dept" IS '创建部门';
+COMMENT ON COLUMN "blade_user"."create_time" IS '创建时间';
+COMMENT ON COLUMN "blade_user"."update_user" IS '修改人';
+COMMENT ON COLUMN "blade_user"."update_time" IS '修改时间';
+COMMENT ON COLUMN "blade_user"."status" IS '状态';
+COMMENT ON COLUMN "blade_user"."is_deleted" IS '是否已删除';
+COMMENT ON TABLE "blade_user" IS '用户表';
+
+-- ----------------------------
+-- Records of blade_user
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_user" VALUES (1123598821738675201, '000000', NULL, 1, 'admin', '90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad', '管理员', '管理员', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'admin@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675201', '1123598813738675201', '1123598817738675201', 1123598821738675201, 1123598813738675201, '2018-08-08 00:00:00', 1123598821738675201, '2018-08-08 00:00:00', 1, 0);
+INSERT INTO "blade_user" VALUES (1123598821738675202, '000000', NULL, 1, 'hr', '5e79b90f7bba52d54115f086e48f539016a27ec6', '人事', '人事', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'hr@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675203', '1123598813738675202', '1123598817738675207', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:10', 1123598821738675201, '2019-04-27 17:03:10', 1, 0);
+INSERT INTO "blade_user" VALUES (1123598821738675203, '000000', NULL, 1, 'manager', 'dfbaa3b61caa3a319f463cc165085aa8c822d2ce', '经理', '经理', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'manager@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675204', '1123598813738675202', '1123598817738675206', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:38', 1123598821738675201, '2019-04-27 17:03:38', 1, 0);
+INSERT INTO "blade_user" VALUES (1123598821738675204, '000000', NULL, 1, 'boss', 'abe57d23e18f7ad8ea99c86e430c90a05119a9d3', '老板', '老板', 'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', 'boss@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675205', '1123598813738675202', '1123598817738675201', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:55', 1123598821738675201, '2019-04-27 17:03:55', 1, 0);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_user_app
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_user_app";
+CREATE TABLE "blade_user_app" (
+  "id" int8 NOT NULL,
+  "user_id" int8,
+  "user_ext" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+COMMENT ON COLUMN "blade_user_app"."id" IS '主键';
+COMMENT ON COLUMN "blade_user_app"."user_id" IS '用户ID';
+COMMENT ON COLUMN "blade_user_app"."user_ext" IS '用户拓展信息';
+COMMENT ON TABLE "blade_user_app" IS '用户平台拓展表';
+
+-- ----------------------------
+-- Table structure for blade_user_dept
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_user_dept";
+CREATE TABLE "blade_user_dept" (
+  "id" int8 NOT NULL,
+  "user_id" int8,
+  "dept_id" int8
+)
+;
+COMMENT ON COLUMN "blade_user_dept"."id" IS '主键';
+COMMENT ON COLUMN "blade_user_dept"."user_id" IS '用户ID';
+COMMENT ON COLUMN "blade_user_dept"."dept_id" IS '部门ID';
+COMMENT ON TABLE "blade_user_dept" IS '用户部门表';
+
+-- ----------------------------
+-- Records of blade_user_dept
+-- ----------------------------
+BEGIN;
+INSERT INTO "blade_user_dept" VALUES (1203503640757788674, 1123598821738675201, 1123598813738675201);
+INSERT INTO "blade_user_dept" VALUES (1203503653323923458, 1123598821738675202, 1123598813738675202);
+INSERT INTO "blade_user_dept" VALUES (1203503663402835969, 1123598821738675203, 1123598813738675202);
+INSERT INTO "blade_user_dept" VALUES (1203503672911323137, 1123598821738675204, 1123598813738675202);
+COMMIT;
+
+-- ----------------------------
+-- Table structure for blade_user_oauth
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_user_oauth";
+CREATE TABLE "blade_user_oauth" (
+  "id" int8 NOT NULL,
+  "tenant_id" varchar(12) COLLATE "pg_catalog"."default",
+  "uuid" varchar(64) COLLATE "pg_catalog"."default",
+  "user_id" int8,
+  "username" varchar(32) COLLATE "pg_catalog"."default",
+  "nickname" varchar(64) COLLATE "pg_catalog"."default",
+  "avatar" varchar(1000) COLLATE "pg_catalog"."default",
+  "blog" varchar(50) COLLATE "pg_catalog"."default",
+  "company" varchar(255) COLLATE "pg_catalog"."default",
+  "location" varchar(255) COLLATE "pg_catalog"."default",
+  "email" varchar(255) COLLATE "pg_catalog"."default",
+  "remark" varchar(255) COLLATE "pg_catalog"."default",
+  "gender" varchar(16) COLLATE "pg_catalog"."default",
+  "source" varchar(16) COLLATE "pg_catalog"."default"
+)
+;
+COMMENT ON COLUMN "blade_user_oauth"."id" IS '主键';
+COMMENT ON COLUMN "blade_user_oauth"."tenant_id" IS '租户ID';
+COMMENT ON COLUMN "blade_user_oauth"."uuid" IS '第三方系统用户ID';
+COMMENT ON COLUMN "blade_user_oauth"."user_id" IS '用户ID';
+COMMENT ON COLUMN "blade_user_oauth"."username" IS '账号';
+COMMENT ON COLUMN "blade_user_oauth"."nickname" IS '用户名';
+COMMENT ON COLUMN "blade_user_oauth"."avatar" IS '头像';
+COMMENT ON COLUMN "blade_user_oauth"."blog" IS '应用主页';
+COMMENT ON COLUMN "blade_user_oauth"."company" IS '公司名';
+COMMENT ON COLUMN "blade_user_oauth"."location" IS '地址';
+COMMENT ON COLUMN "blade_user_oauth"."email" IS '邮件';
+COMMENT ON COLUMN "blade_user_oauth"."remark" IS '备注';
+COMMENT ON COLUMN "blade_user_oauth"."gender" IS '性别';
+COMMENT ON COLUMN "blade_user_oauth"."source" IS '来源';
+COMMENT ON TABLE "blade_user_oauth" IS '用户第三方认证表';
+
+-- ----------------------------
+-- Table structure for blade_user_other
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_user_other";
+CREATE TABLE "blade_user_other" (
+  "id" int8 NOT NULL,
+  "user_id" int8,
+  "user_ext" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+COMMENT ON COLUMN "blade_user_other"."id" IS '主键';
+COMMENT ON COLUMN "blade_user_other"."user_id" IS '用户ID';
+COMMENT ON COLUMN "blade_user_other"."user_ext" IS '用户拓展信息';
+COMMENT ON TABLE "blade_user_other" IS '用户平台拓展表';
+
+-- ----------------------------
+-- Table structure for blade_user_web
+-- ----------------------------
+DROP TABLE IF EXISTS "blade_user_web";
+CREATE TABLE "blade_user_web" (
+  "id" int8 NOT NULL,
+  "user_id" int8,
+  "user_ext" varchar(255) COLLATE "pg_catalog"."default"
+)
+;
+COMMENT ON COLUMN "blade_user_web"."id" IS '主键';
+COMMENT ON COLUMN "blade_user_web"."user_id" IS '用户ID';
+COMMENT ON COLUMN "blade_user_web"."user_ext" IS '用户拓展信息';
+COMMENT ON TABLE "blade_user_web" IS '用户平台拓展表';
+
+-- ----------------------------
+-- Primary Key structure for table blade_attach
+-- ----------------------------
+ALTER TABLE "blade_attach" ADD CONSTRAINT "blade_attach_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_client
+-- ----------------------------
+ALTER TABLE "blade_client" ADD CONSTRAINT "blade_client_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_code
+-- ----------------------------
+ALTER TABLE "blade_code" ADD CONSTRAINT "blade_code_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_datasource
+-- ----------------------------
+ALTER TABLE "blade_datasource" ADD CONSTRAINT "blade_datasource_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_dept
+-- ----------------------------
+ALTER TABLE "blade_dept" ADD CONSTRAINT "blade_dept_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_dict
+-- ----------------------------
+ALTER TABLE "blade_dict" ADD CONSTRAINT "blade_dict_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_dict_biz
+-- ----------------------------
+ALTER TABLE "blade_dict_biz" ADD CONSTRAINT "blade_dict_biz_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_log_api
+-- ----------------------------
+ALTER TABLE "blade_log_api" ADD CONSTRAINT "blade_log_api_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_log_error
+-- ----------------------------
+ALTER TABLE "blade_log_error" ADD CONSTRAINT "blade_log_error_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_log_usual
+-- ----------------------------
+ALTER TABLE "blade_log_usual" ADD CONSTRAINT "blade_log_usual_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_menu
+-- ----------------------------
+ALTER TABLE "blade_menu" ADD CONSTRAINT "blade_menu_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_model
+-- ----------------------------
+ALTER TABLE "blade_model" ADD CONSTRAINT "blade_model_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_model_prototype
+-- ----------------------------
+ALTER TABLE "blade_model_prototype" ADD CONSTRAINT "blade_model_prototype_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_notice
+-- ----------------------------
+ALTER TABLE "blade_notice" ADD CONSTRAINT "blade_notice_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_oss
+-- ----------------------------
+ALTER TABLE "blade_oss" ADD CONSTRAINT "blade_oss_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_param
+-- ----------------------------
+ALTER TABLE "blade_param" ADD CONSTRAINT "blade_param_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_post
+-- ----------------------------
+ALTER TABLE "blade_post" ADD CONSTRAINT "blade_post_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_process_leave
+-- ----------------------------
+ALTER TABLE "blade_process_leave" ADD CONSTRAINT "blade_process_leave_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_region
+-- ----------------------------
+ALTER TABLE "blade_region" ADD CONSTRAINT "blade_region_pkey" PRIMARY KEY ("code");
+
+-- ----------------------------
+-- Primary Key structure for table blade_report_file
+-- ----------------------------
+ALTER TABLE "blade_report_file" ADD CONSTRAINT "blade_report_file_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_role
+-- ----------------------------
+ALTER TABLE "blade_role" ADD CONSTRAINT "blade_role_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_role_menu
+-- ----------------------------
+ALTER TABLE "blade_role_menu" ADD CONSTRAINT "blade_role_menu_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_role_scope
+-- ----------------------------
+ALTER TABLE "blade_role_scope" ADD CONSTRAINT "blade_role_scope_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_scope_api
+-- ----------------------------
+ALTER TABLE "blade_scope_api" ADD CONSTRAINT "blade_scope_api_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_scope_data
+-- ----------------------------
+ALTER TABLE "blade_scope_data" ADD CONSTRAINT "blade_scope_data_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_sms
+-- ----------------------------
+ALTER TABLE "blade_sms" ADD CONSTRAINT "blade_sms_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_tenant
+-- ----------------------------
+ALTER TABLE "blade_tenant" ADD CONSTRAINT "blade_tenant_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_tenant_package
+-- ----------------------------
+ALTER TABLE "blade_tenant_package" ADD CONSTRAINT "blade_tenant_package_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_top_menu
+-- ----------------------------
+ALTER TABLE "blade_top_menu" ADD CONSTRAINT "blade_top_menu_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_top_menu_setting
+-- ----------------------------
+ALTER TABLE "blade_top_menu_setting" ADD CONSTRAINT "blade_top_menu_setting_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_user
+-- ----------------------------
+ALTER TABLE "blade_user" ADD CONSTRAINT "blade_user_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_app
+-- ----------------------------
+ALTER TABLE "blade_user_app" ADD CONSTRAINT "blade_user_app_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_dept
+-- ----------------------------
+ALTER TABLE "blade_user_dept" ADD CONSTRAINT "blade_user_dept_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_oauth
+-- ----------------------------
+ALTER TABLE "blade_user_oauth" ADD CONSTRAINT "blade_user_oauth_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_other
+-- ----------------------------
+ALTER TABLE "blade_user_other" ADD CONSTRAINT "blade_user_other_pkey" PRIMARY KEY ("id");
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_web
+-- ----------------------------
+ALTER TABLE "blade_user_web" ADD CONSTRAINT "blade_user_web_pkey" PRIMARY KEY ("id");
diff --git a/skjcmanager/doc/sql/sqlserver/bladex-flowable-sqlserver.sql b/skjcmanager/doc/sql/sqlserver/bladex-flowable-sqlserver.sql
new file mode 100644
index 0000000..8d57043
--- /dev/null
+++ b/skjcmanager/doc/sql/sqlserver/bladex-flowable-sqlserver.sql
@@ -0,0 +1,4113 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : sqlserver_remote
+ Source Server Type    : SQL Server
+ Source Server Version : 10501600
+ Source Host           : 127.0.0.1:1433
+ Source Catalog        : bladex
+ Source Schema         : dbo
+
+ Target Server Type    : SQL Server
+ Target Server Version : 10501600
+ File Encoding         : 65001
+
+ Date: 20/03/2022 21:27:18
+*/
+
+
+-- ----------------------------
+-- Table structure for ACT_APP_APPDEF
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_APP_APPDEF]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_APP_APPDEF]
+GO
+
+CREATE TABLE [dbo].[ACT_APP_APPDEF] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [KEY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [VERSION_] int  NOT NULL,
+  [CATEGORY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [RESOURCE_NAME_] varchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DESCRIPTION_] varchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_APP_APPDEF] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_APP_DATABASECHANGELOG
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_APP_DATABASECHANGELOG]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_APP_DATABASECHANGELOG]
+GO
+
+CREATE TABLE [dbo].[ACT_APP_DATABASECHANGELOG] (
+  [ID] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [AUTHOR] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [FILENAME] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [DATEEXECUTED] datetime2(3)  NOT NULL,
+  [ORDEREXECUTED] int  NOT NULL,
+  [EXECTYPE] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [MD5SUM] nvarchar(35) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DESCRIPTION] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [COMMENTS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TAG] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LIQUIBASE] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CONTEXTS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LABELS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_APP_DATABASECHANGELOG] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Records of ACT_APP_DATABASECHANGELOG
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[ACT_APP_DATABASECHANGELOG] VALUES (N'1', N'flowable', N'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', N'2020-07-22 17:51:40.847', N'1', N'EXECUTED', N'8:496fc778bdf2ab13f2e1926d0e63e0a2', N'createTable tableName=ACT_APP_DEPLOYMENT; createTable tableName=ACT_APP_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_APP_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_APP_RSRC_DPL, referencedTableName=ACT_APP_DEPLOYMENT; createIndex...', N'', NULL, N'3.6.3', NULL, NULL, N'5411555815')
+GO
+
+INSERT INTO [dbo].[ACT_APP_DATABASECHANGELOG] VALUES (N'3', N'flowable', N'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', N'2020-07-22 17:51:40.940', N'2', N'EXECUTED', N'8:f1f8aff320aade831944ebad24355f3d', N'createIndex indexName=ACT_IDX_APP_DEF_UNIQ, tableName=ACT_APP_APPDEF', N'', NULL, N'3.6.3', NULL, NULL, N'5411555815')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_APP_DATABASECHANGELOGLOCK
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_APP_DATABASECHANGELOGLOCK]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_APP_DATABASECHANGELOGLOCK]
+GO
+
+CREATE TABLE [dbo].[ACT_APP_DATABASECHANGELOGLOCK] (
+  [ID] int  NOT NULL,
+  [LOCKED] bit  NOT NULL,
+  [LOCKGRANTED] datetime2(3)  NULL,
+  [LOCKEDBY] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_APP_DATABASECHANGELOGLOCK] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Records of ACT_APP_DATABASECHANGELOGLOCK
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[ACT_APP_DATABASECHANGELOGLOCK] VALUES (N'1', N'0', NULL, NULL)
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_APP_DEPLOYMENT
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_APP_DEPLOYMENT]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_APP_DEPLOYMENT]
+GO
+
+CREATE TABLE [dbo].[ACT_APP_DEPLOYMENT] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CATEGORY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [KEY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOY_TIME_] datetime  NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_APP_DEPLOYMENT] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_APP_DEPLOYMENT_RESOURCE
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_APP_DEPLOYMENT_RESOURCE]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_APP_DEPLOYMENT_RESOURCE]
+GO
+
+CREATE TABLE [dbo].[ACT_APP_DEPLOYMENT_RESOURCE] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [RESOURCE_BYTES_] varbinary(max)  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_APP_DEPLOYMENT_RESOURCE] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_CASEDEF
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_CASEDEF]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_CMMN_CASEDEF]
+GO
+
+CREATE TABLE [dbo].[ACT_CMMN_CASEDEF] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [KEY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [VERSION_] int  NOT NULL,
+  [CATEGORY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [RESOURCE_NAME_] varchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DESCRIPTION_] varchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [HAS_GRAPHICAL_NOTATION_] bit  NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL,
+  [DGRM_RESOURCE_NAME_] varchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [HAS_START_FORM_KEY_] bit  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_CASEDEF] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_DATABASECHANGELOG
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_DATABASECHANGELOG]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_CMMN_DATABASECHANGELOG]
+GO
+
+CREATE TABLE [dbo].[ACT_CMMN_DATABASECHANGELOG] (
+  [ID] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [AUTHOR] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [FILENAME] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [DATEEXECUTED] datetime2(3)  NOT NULL,
+  [ORDEREXECUTED] int  NOT NULL,
+  [EXECTYPE] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [MD5SUM] nvarchar(35) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DESCRIPTION] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [COMMENTS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TAG] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LIQUIBASE] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CONTEXTS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LABELS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_DATABASECHANGELOG] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Records of ACT_CMMN_DATABASECHANGELOG
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[ACT_CMMN_DATABASECHANGELOG] VALUES (N'1', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2020-07-22 17:51:37.387', N'1', N'EXECUTED', N'8:8b4b922d90b05ff27483abefc9597aa6', N'createTable tableName=ACT_CMMN_DEPLOYMENT; createTable tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_CMMN_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_CMMN_RSRC_DPL, referencedTableName=ACT_CMMN_DEPLOYMENT; create...', N'', NULL, N'3.6.3', NULL, NULL, N'5411550973')
+GO
+
+INSERT INTO [dbo].[ACT_CMMN_DATABASECHANGELOG] VALUES (N'2', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2020-07-22 17:51:37.650', N'2', N'EXECUTED', N'8:65e39b3d385706bb261cbeffe7533cbe', N'addColumn tableName=ACT_CMMN_CASEDEF; addColumn tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST', N'', NULL, N'3.6.3', NULL, NULL, N'5411550973')
+GO
+
+INSERT INTO [dbo].[ACT_CMMN_DATABASECHANGELOG] VALUES (N'3', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2020-07-22 17:51:37.907', N'3', N'EXECUTED', N'8:c01f6e802b49436b4489040da3012359', N'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_PLAN_ITEM_STAGE_INST, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableNam...', N'', NULL, N'3.6.3', NULL, NULL, N'5411550973')
+GO
+
+INSERT INTO [dbo].[ACT_CMMN_DATABASECHANGELOG] VALUES (N'4', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2020-07-22 17:51:38.077', N'4', N'EXECUTED', N'8:e40d29cb79345b7fb5afd38a7f0ba8fc', N'createTable tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_MIL_INST; addColumn tableName=ACT_CMMN_HI_MIL_INST', N'', NULL, N'3.6.3', NULL, NULL, N'5411550973')
+GO
+
+INSERT INTO [dbo].[ACT_CMMN_DATABASECHANGELOG] VALUES (N'6', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2020-07-22 17:51:38.190', N'5', N'EXECUTED', N'8:10e82e26a7fee94c32a92099c059c18c', N'createIndex indexName=ACT_IDX_CASE_DEF_UNIQ, tableName=ACT_CMMN_CASEDEF', N'', NULL, N'3.6.3', NULL, NULL, N'5411550973')
+GO
+
+INSERT INTO [dbo].[ACT_CMMN_DATABASECHANGELOG] VALUES (N'7', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2020-07-22 17:51:39.060', N'6', N'EXECUTED', N'8:530bc81a1e30618ccf4a2da1f7c6c043', N'renameColumn newColumnName=CREATE_TIME_, oldColumnName=START_TIME_, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; renameColumn newColumnName=CREATE_TIME_, oldColumnName=CREATED_TIME_, tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_P...', N'', NULL, N'3.6.3', NULL, NULL, N'5411550973')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_DATABASECHANGELOGLOCK]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_CMMN_DATABASECHANGELOGLOCK]
+GO
+
+CREATE TABLE [dbo].[ACT_CMMN_DATABASECHANGELOGLOCK] (
+  [ID] int  NOT NULL,
+  [LOCKED] bit  NOT NULL,
+  [LOCKGRANTED] datetime2(3)  NULL,
+  [LOCKEDBY] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_DATABASECHANGELOGLOCK] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Records of ACT_CMMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[ACT_CMMN_DATABASECHANGELOGLOCK] VALUES (N'1', N'0', NULL, NULL)
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_DEPLOYMENT
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_DEPLOYMENT]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_CMMN_DEPLOYMENT]
+GO
+
+CREATE TABLE [dbo].[ACT_CMMN_DEPLOYMENT] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CATEGORY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [KEY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOY_TIME_] datetime  NULL,
+  [PARENT_DEPLOYMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_DEPLOYMENT] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_DEPLOYMENT_RESOURCE]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_CMMN_DEPLOYMENT_RESOURCE]
+GO
+
+CREATE TABLE [dbo].[ACT_CMMN_DEPLOYMENT_RESOURCE] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [RESOURCE_BYTES_] varbinary(max)  NULL,
+  [GENERATED_] bit  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_DEPLOYMENT_RESOURCE] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_HI_CASE_INST
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_HI_CASE_INST]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_CMMN_HI_CASE_INST]
+GO
+
+CREATE TABLE [dbo].[ACT_CMMN_HI_CASE_INST] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NOT NULL,
+  [BUSINESS_KEY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PARENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CASE_DEF_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [STATE_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [START_TIME_] datetime  NULL,
+  [END_TIME_] datetime  NULL,
+  [START_USER_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CALLBACK_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CALLBACK_TYPE_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_HI_CASE_INST] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_HI_MIL_INST
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_HI_MIL_INST]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_CMMN_HI_MIL_INST]
+GO
+
+CREATE TABLE [dbo].[ACT_CMMN_HI_MIL_INST] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [TIME_STAMP_] datetime  NOT NULL,
+  [CASE_INST_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [CASE_DEF_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [ELEMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_HI_MIL_INST] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_HI_PLAN_ITEM_INST
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_HI_PLAN_ITEM_INST]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_CMMN_HI_PLAN_ITEM_INST]
+GO
+
+CREATE TABLE [dbo].[ACT_CMMN_HI_PLAN_ITEM_INST] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [STATE_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CASE_DEF_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CASE_INST_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [STAGE_INST_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [IS_STAGE_] bit  NULL,
+  [ELEMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ITEM_DEFINITION_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ITEM_DEFINITION_TYPE_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CREATE_TIME_] datetime  NULL,
+  [LAST_AVAILABLE_TIME_] datetime  NULL,
+  [LAST_ENABLED_TIME_] datetime  NULL,
+  [LAST_DISABLED_TIME_] datetime  NULL,
+  [LAST_STARTED_TIME_] datetime  NULL,
+  [LAST_SUSPENDED_TIME_] datetime  NULL,
+  [COMPLETED_TIME_] datetime  NULL,
+  [OCCURRED_TIME_] datetime  NULL,
+  [TERMINATED_TIME_] datetime  NULL,
+  [EXIT_TIME_] datetime  NULL,
+  [ENDED_TIME_] datetime  NULL,
+  [LAST_UPDATED_TIME_] datetime  NULL,
+  [START_USER_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [REFERENCE_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [REFERENCE_TYPE_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL,
+  [ENTRY_CRITERION_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXIT_CRITERION_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_HI_PLAN_ITEM_INST] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_RU_CASE_INST
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_RU_CASE_INST]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_CMMN_RU_CASE_INST]
+GO
+
+CREATE TABLE [dbo].[ACT_CMMN_RU_CASE_INST] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NOT NULL,
+  [BUSINESS_KEY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PARENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CASE_DEF_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [STATE_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [START_TIME_] datetime  NULL,
+  [START_USER_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CALLBACK_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CALLBACK_TYPE_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL,
+  [LOCK_TIME_] datetime  NULL,
+  [IS_COMPLETEABLE_] bit  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_RU_CASE_INST] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_RU_MIL_INST
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_RU_MIL_INST]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_CMMN_RU_MIL_INST]
+GO
+
+CREATE TABLE [dbo].[ACT_CMMN_RU_MIL_INST] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [TIME_STAMP_] datetime  NOT NULL,
+  [CASE_INST_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [CASE_DEF_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [ELEMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_RU_MIL_INST] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_RU_PLAN_ITEM_INST
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_RU_PLAN_ITEM_INST]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST]
+GO
+
+CREATE TABLE [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NOT NULL,
+  [CASE_DEF_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CASE_INST_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [STAGE_INST_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [IS_STAGE_] bit  NULL,
+  [ELEMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [STATE_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CREATE_TIME_] datetime  NULL,
+  [START_USER_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [REFERENCE_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [REFERENCE_TYPE_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL,
+  [ITEM_DEFINITION_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ITEM_DEFINITION_TYPE_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [IS_COMPLETEABLE_] bit  NULL,
+  [IS_COUNT_ENABLED_] bit  NULL,
+  [VAR_COUNT_] int  NULL,
+  [SENTRY_PART_INST_COUNT_] int  NULL,
+  [LAST_AVAILABLE_TIME_] datetime  NULL,
+  [LAST_ENABLED_TIME_] datetime  NULL,
+  [LAST_DISABLED_TIME_] datetime  NULL,
+  [LAST_STARTED_TIME_] datetime  NULL,
+  [LAST_SUSPENDED_TIME_] datetime  NULL,
+  [COMPLETED_TIME_] datetime  NULL,
+  [OCCURRED_TIME_] datetime  NULL,
+  [TERMINATED_TIME_] datetime  NULL,
+  [EXIT_TIME_] datetime  NULL,
+  [ENDED_TIME_] datetime  NULL,
+  [ENTRY_CRITERION_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXIT_CRITERION_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_CMMN_RU_SENTRY_PART_INST
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_RU_SENTRY_PART_INST]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_CMMN_RU_SENTRY_PART_INST]
+GO
+
+CREATE TABLE [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NOT NULL,
+  [CASE_DEF_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CASE_INST_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PLAN_ITEM_INST_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ON_PART_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [IF_PART_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TIME_STAMP_] datetime  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_CO_CONTENT_ITEM
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CO_CONTENT_ITEM]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_CO_CONTENT_ITEM]
+GO
+
+CREATE TABLE [dbo].[ACT_CO_CONTENT_ITEM] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [MIME_TYPE_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TASK_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_INST_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CONTENT_STORE_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CONTENT_STORE_NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [FIELD_] varchar(400) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CONTENT_AVAILABLE_] bit DEFAULT ((0)) NULL,
+  [CREATED_] datetime  NULL,
+  [CREATED_BY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LAST_MODIFIED_] datetime  NULL,
+  [LAST_MODIFIED_BY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CONTENT_SIZE_] bigint DEFAULT ((0)) NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_CO_CONTENT_ITEM] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_CO_DATABASECHANGELOG
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CO_DATABASECHANGELOG]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_CO_DATABASECHANGELOG]
+GO
+
+CREATE TABLE [dbo].[ACT_CO_DATABASECHANGELOG] (
+  [ID] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [AUTHOR] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [FILENAME] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [DATEEXECUTED] datetime2(3)  NOT NULL,
+  [ORDEREXECUTED] int  NOT NULL,
+  [EXECTYPE] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [MD5SUM] nvarchar(35) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DESCRIPTION] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [COMMENTS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TAG] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LIQUIBASE] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CONTEXTS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LABELS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_CO_DATABASECHANGELOG] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Records of ACT_CO_DATABASECHANGELOG
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[ACT_CO_DATABASECHANGELOG] VALUES (N'1', N'activiti', N'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', N'2020-07-22 17:51:32.973', N'1', N'EXECUTED', N'8:7644d7165cfe799200a2abdd3419e8b6', N'createTable tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_taskid, tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_procid, tableName=ACT_CO_CONTENT_ITEM', N'', NULL, N'3.6.3', NULL, NULL, N'5411548080')
+GO
+
+INSERT INTO [dbo].[ACT_CO_DATABASECHANGELOG] VALUES (N'2', N'flowable', N'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', N'2020-07-22 17:51:33.143', N'2', N'EXECUTED', N'8:fe7b11ac7dbbf9c43006b23bbab60bab', N'addColumn tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_scope, tableName=ACT_CO_CONTENT_ITEM', N'', NULL, N'3.6.3', NULL, NULL, N'5411548080')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_CO_DATABASECHANGELOGLOCK
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CO_DATABASECHANGELOGLOCK]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_CO_DATABASECHANGELOGLOCK]
+GO
+
+CREATE TABLE [dbo].[ACT_CO_DATABASECHANGELOGLOCK] (
+  [ID] int  NOT NULL,
+  [LOCKED] bit  NOT NULL,
+  [LOCKGRANTED] datetime2(3)  NULL,
+  [LOCKEDBY] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_CO_DATABASECHANGELOGLOCK] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Records of ACT_CO_DATABASECHANGELOGLOCK
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[ACT_CO_DATABASECHANGELOGLOCK] VALUES (N'1', N'0', NULL, NULL)
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_DE_DATABASECHANGELOG
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DE_DATABASECHANGELOG]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_DE_DATABASECHANGELOG]
+GO
+
+CREATE TABLE [dbo].[ACT_DE_DATABASECHANGELOG] (
+  [ID] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [AUTHOR] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [FILENAME] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [DATEEXECUTED] datetime2(3)  NOT NULL,
+  [ORDEREXECUTED] int  NOT NULL,
+  [EXECTYPE] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [MD5SUM] nvarchar(35) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DESCRIPTION] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [COMMENTS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TAG] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LIQUIBASE] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CONTEXTS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LABELS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_DE_DATABASECHANGELOG] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Records of ACT_DE_DATABASECHANGELOG
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[ACT_DE_DATABASECHANGELOG] VALUES (N'1', N'flowable', N'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', N'2020-07-22 21:25:47.840', N'1', N'EXECUTED', N'8:e70d1d9d3899a734296b2514ccc71501', N'createTable tableName=ACT_DE_MODEL; createIndex indexName=idx_proc_mod_created, tableName=ACT_DE_MODEL; createTable tableName=ACT_DE_MODEL_HISTORY; createIndex indexName=idx_proc_mod_history_proc, tableName=ACT_DE_MODEL_HISTORY; createTable tableN...', N'', NULL, N'3.6.3', NULL, NULL, N'5424402462')
+GO
+
+INSERT INTO [dbo].[ACT_DE_DATABASECHANGELOG] VALUES (N'2', N'flowable', N'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', N'2020-07-22 21:25:48.050', N'2', N'EXECUTED', N'8:f08070bcdfbc61d089df76c8f2327d50', N'modifyDataType columnName=created, tableName=ACT_DE_MODEL; modifyDataType columnName=last_updated, tableName=ACT_DE_MODEL; modifyDataType columnName=created, tableName=ACT_DE_MODEL_HISTORY; modifyDataType columnName=last_updated, tableName=ACT_DE_...', N'', NULL, N'3.6.3', NULL, NULL, N'5424402462')
+GO
+
+INSERT INTO [dbo].[ACT_DE_DATABASECHANGELOG] VALUES (N'3', N'flowable', N'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', N'2020-07-22 21:25:48.170', N'3', N'EXECUTED', N'8:3a9143bef2e45f2316231cc1369138b6', N'addColumn tableName=ACT_DE_MODEL; addColumn tableName=ACT_DE_MODEL_HISTORY', N'', NULL, N'3.6.3', NULL, NULL, N'5424402462')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_DE_DATABASECHANGELOGLOCK
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DE_DATABASECHANGELOGLOCK]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_DE_DATABASECHANGELOGLOCK]
+GO
+
+CREATE TABLE [dbo].[ACT_DE_DATABASECHANGELOGLOCK] (
+  [ID] int  NOT NULL,
+  [LOCKED] bit  NOT NULL,
+  [LOCKGRANTED] datetime2(3)  NULL,
+  [LOCKEDBY] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_DE_DATABASECHANGELOGLOCK] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Records of ACT_DE_DATABASECHANGELOGLOCK
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[ACT_DE_DATABASECHANGELOGLOCK] VALUES (N'1', N'0', NULL, NULL)
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_DE_MODEL
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DE_MODEL]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_DE_MODEL]
+GO
+
+CREATE TABLE [dbo].[ACT_DE_MODEL] (
+  [id] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [name] varchar(400) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [model_key] varchar(400) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [description] varchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [model_comment] varchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [created] datetime2(7)  NULL,
+  [created_by] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [last_updated] datetime2(7)  NULL,
+  [last_updated_by] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [version] int  NULL,
+  [model_editor_json] varchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [model_editor_xml] varchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [thumbnail] varbinary(max)  NULL,
+  [model_type] int  NULL,
+  [tenant_id] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_DE_MODEL] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_DE_MODEL_HISTORY
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DE_MODEL_HISTORY]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_DE_MODEL_HISTORY]
+GO
+
+CREATE TABLE [dbo].[ACT_DE_MODEL_HISTORY] (
+  [id] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [name] varchar(400) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [model_key] varchar(400) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [description] varchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [model_comment] varchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [created] datetime2(7)  NULL,
+  [created_by] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [last_updated] datetime2(7)  NULL,
+  [last_updated_by] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [removal_date] datetime2(7)  NULL,
+  [version] int  NULL,
+  [model_editor_json] varchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [model_id] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [model_type] int  NULL,
+  [tenant_id] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_DE_MODEL_HISTORY] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_DE_MODEL_RELATION
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DE_MODEL_RELATION]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_DE_MODEL_RELATION]
+GO
+
+CREATE TABLE [dbo].[ACT_DE_MODEL_RELATION] (
+  [id] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [parent_model_id] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [model_id] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [relation_type] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_DE_MODEL_RELATION] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_DMN_DATABASECHANGELOG
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DMN_DATABASECHANGELOG]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_DMN_DATABASECHANGELOG]
+GO
+
+CREATE TABLE [dbo].[ACT_DMN_DATABASECHANGELOG] (
+  [ID] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [AUTHOR] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [FILENAME] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [DATEEXECUTED] datetime2(3)  NOT NULL,
+  [ORDEREXECUTED] int  NOT NULL,
+  [EXECTYPE] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [MD5SUM] nvarchar(35) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DESCRIPTION] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [COMMENTS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TAG] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LIQUIBASE] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CONTEXTS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LABELS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_DMN_DATABASECHANGELOG] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Records of ACT_DMN_DATABASECHANGELOG
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[ACT_DMN_DATABASECHANGELOG] VALUES (N'1', N'activiti', N'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', N'2020-07-22 17:51:29.020', N'1', N'EXECUTED', N'8:c8701f1c71018b55029f450b2e9a10a1', N'createTable tableName=ACT_DMN_DEPLOYMENT; createTable tableName=ACT_DMN_DEPLOYMENT_RESOURCE; createTable tableName=ACT_DMN_DECISION_TABLE', N'', NULL, N'3.6.3', NULL, NULL, N'5411544106')
+GO
+
+INSERT INTO [dbo].[ACT_DMN_DATABASECHANGELOG] VALUES (N'2', N'flowable', N'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', N'2020-07-22 17:51:29.383', N'2', N'EXECUTED', N'8:47f94b27feb7df8a30d4e338c7bd5fb8', N'createTable tableName=ACT_DMN_HI_DECISION_EXECUTION', N'', NULL, N'3.6.3', NULL, NULL, N'5411544106')
+GO
+
+INSERT INTO [dbo].[ACT_DMN_DATABASECHANGELOG] VALUES (N'3', N'flowable', N'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', N'2020-07-22 17:51:29.513', N'3', N'EXECUTED', N'8:ac17eae89fbdccb6e08daf3c7797b579', N'addColumn tableName=ACT_DMN_HI_DECISION_EXECUTION', N'', NULL, N'3.6.3', NULL, NULL, N'5411544106')
+GO
+
+INSERT INTO [dbo].[ACT_DMN_DATABASECHANGELOG] VALUES (N'4', N'flowable', N'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', N'2020-07-22 17:51:29.620', N'4', N'EXECUTED', N'8:f73aabc4529e7292c2942073d1cff6f9', N'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_DMN_DECISION_TABLE', N'', NULL, N'3.6.3', NULL, NULL, N'5411544106')
+GO
+
+INSERT INTO [dbo].[ACT_DMN_DATABASECHANGELOG] VALUES (N'6', N'flowable', N'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', N'2020-07-22 17:51:29.727', N'5', N'EXECUTED', N'8:646c6a061e0b6e8a62e69844ff96abb0', N'createIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE', N'', NULL, N'3.6.3', NULL, NULL, N'5411544106')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_DMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DMN_DATABASECHANGELOGLOCK]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_DMN_DATABASECHANGELOGLOCK]
+GO
+
+CREATE TABLE [dbo].[ACT_DMN_DATABASECHANGELOGLOCK] (
+  [ID] int  NOT NULL,
+  [LOCKED] bit  NOT NULL,
+  [LOCKGRANTED] datetime2(3)  NULL,
+  [LOCKEDBY] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_DMN_DATABASECHANGELOGLOCK] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Records of ACT_DMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[ACT_DMN_DATABASECHANGELOGLOCK] VALUES (N'1', N'0', NULL, NULL)
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_DMN_DECISION_TABLE
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DMN_DECISION_TABLE]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_DMN_DECISION_TABLE]
+GO
+
+CREATE TABLE [dbo].[ACT_DMN_DECISION_TABLE] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [VERSION_] int  NULL,
+  [KEY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CATEGORY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [RESOURCE_NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DESCRIPTION_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_DMN_DECISION_TABLE] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_DMN_DEPLOYMENT
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DMN_DEPLOYMENT]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_DMN_DEPLOYMENT]
+GO
+
+CREATE TABLE [dbo].[ACT_DMN_DEPLOYMENT] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CATEGORY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOY_TIME_] datetime  NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PARENT_DEPLOYMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_DMN_DEPLOYMENT] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_DMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DMN_DEPLOYMENT_RESOURCE]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_DMN_DEPLOYMENT_RESOURCE]
+GO
+
+CREATE TABLE [dbo].[ACT_DMN_DEPLOYMENT_RESOURCE] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [RESOURCE_BYTES_] varbinary(max)  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_DMN_DEPLOYMENT_RESOURCE] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_DMN_HI_DECISION_EXECUTION
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DMN_HI_DECISION_EXECUTION]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_DMN_HI_DECISION_EXECUTION]
+GO
+
+CREATE TABLE [dbo].[ACT_DMN_HI_DECISION_EXECUTION] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [DECISION_DEFINITION_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [START_TIME_] datetime  NULL,
+  [END_TIME_] datetime  NULL,
+  [INSTANCE_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXECUTION_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ACTIVITY_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [FAILED_] bit DEFAULT ((0)) NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXECUTION_JSON_] varchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_DMN_HI_DECISION_EXECUTION] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_EVT_LOG
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_EVT_LOG]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_EVT_LOG]
+GO
+
+CREATE TABLE [dbo].[ACT_EVT_LOG] (
+  [LOG_NR_] numeric(19)  IDENTITY(1,1) NOT NULL,
+  [TYPE_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXECUTION_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TASK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TIME_STAMP_] datetime  NOT NULL,
+  [USER_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DATA_] varbinary(max)  NULL,
+  [LOCK_OWNER_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LOCK_TIME_] datetime  NULL,
+  [IS_PROCESSED_] tinyint DEFAULT ((0)) NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_EVT_LOG] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_FO_DATABASECHANGELOG
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_FO_DATABASECHANGELOG]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_FO_DATABASECHANGELOG]
+GO
+
+CREATE TABLE [dbo].[ACT_FO_DATABASECHANGELOG] (
+  [ID] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [AUTHOR] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [FILENAME] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [DATEEXECUTED] datetime2(3)  NOT NULL,
+  [ORDEREXECUTED] int  NOT NULL,
+  [EXECTYPE] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [MD5SUM] nvarchar(35) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DESCRIPTION] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [COMMENTS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TAG] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LIQUIBASE] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CONTEXTS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LABELS] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_FO_DATABASECHANGELOG] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Records of ACT_FO_DATABASECHANGELOG
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[ACT_FO_DATABASECHANGELOG] VALUES (N'1', N'activiti', N'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', N'2020-07-22 17:51:31.023', N'1', N'EXECUTED', N'8:033ebf9380889aed7c453927ecc3250d', N'createTable tableName=ACT_FO_FORM_DEPLOYMENT; createTable tableName=ACT_FO_FORM_RESOURCE; createTable tableName=ACT_FO_FORM_DEFINITION; createTable tableName=ACT_FO_FORM_INSTANCE', N'', NULL, N'3.6.3', NULL, NULL, N'5411546094')
+GO
+
+INSERT INTO [dbo].[ACT_FO_DATABASECHANGELOG] VALUES (N'2', N'flowable', N'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', N'2020-07-22 17:51:31.383', N'2', N'EXECUTED', N'8:986365ceb40445ce3b27a8e6b40f159b', N'addColumn tableName=ACT_FO_FORM_INSTANCE', N'', NULL, N'3.6.3', NULL, NULL, N'5411546094')
+GO
+
+INSERT INTO [dbo].[ACT_FO_DATABASECHANGELOG] VALUES (N'3', N'flowable', N'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', N'2020-07-22 17:51:31.517', N'3', N'EXECUTED', N'8:abf482518ceb09830ef674e52c06bf15', N'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_FO_FORM_DEFINITION', N'', NULL, N'3.6.3', NULL, NULL, N'5411546094')
+GO
+
+INSERT INTO [dbo].[ACT_FO_DATABASECHANGELOG] VALUES (N'5', N'flowable', N'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', N'2020-07-22 17:51:31.627', N'4', N'EXECUTED', N'8:b4be732b89e5ca028bdd520c6ad4d446', N'createIndex indexName=ACT_IDX_FORM_DEF_UNIQ, tableName=ACT_FO_FORM_DEFINITION', N'', NULL, N'3.6.3', NULL, NULL, N'5411546094')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_FO_DATABASECHANGELOGLOCK
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_FO_DATABASECHANGELOGLOCK]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_FO_DATABASECHANGELOGLOCK]
+GO
+
+CREATE TABLE [dbo].[ACT_FO_DATABASECHANGELOGLOCK] (
+  [ID] int  NOT NULL,
+  [LOCKED] bit  NOT NULL,
+  [LOCKGRANTED] datetime2(3)  NULL,
+  [LOCKEDBY] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_FO_DATABASECHANGELOGLOCK] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Records of ACT_FO_DATABASECHANGELOGLOCK
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[ACT_FO_DATABASECHANGELOGLOCK] VALUES (N'1', N'0', NULL, NULL)
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_FO_FORM_DEFINITION
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_FO_FORM_DEFINITION]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_FO_FORM_DEFINITION]
+GO
+
+CREATE TABLE [dbo].[ACT_FO_FORM_DEFINITION] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [VERSION_] int  NULL,
+  [KEY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CATEGORY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [RESOURCE_NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DESCRIPTION_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_FO_FORM_DEFINITION] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_FO_FORM_DEPLOYMENT
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_FO_FORM_DEPLOYMENT]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_FO_FORM_DEPLOYMENT]
+GO
+
+CREATE TABLE [dbo].[ACT_FO_FORM_DEPLOYMENT] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CATEGORY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOY_TIME_] datetime  NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PARENT_DEPLOYMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_FO_FORM_DEPLOYMENT] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_FO_FORM_INSTANCE
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_FO_FORM_INSTANCE]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_FO_FORM_INSTANCE]
+GO
+
+CREATE TABLE [dbo].[ACT_FO_FORM_INSTANCE] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [FORM_DEFINITION_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [TASK_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_INST_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_DEF_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SUBMITTED_DATE_] datetime  NULL,
+  [SUBMITTED_BY_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [FORM_VALUES_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_DEFINITION_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_FO_FORM_INSTANCE] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_FO_FORM_RESOURCE
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_FO_FORM_RESOURCE]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_FO_FORM_RESOURCE]
+GO
+
+CREATE TABLE [dbo].[ACT_FO_FORM_RESOURCE] (
+  [ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [NAME_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID_] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [RESOURCE_BYTES_] varbinary(max)  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_FO_FORM_RESOURCE] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_GE_BYTEARRAY
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_GE_BYTEARRAY]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_GE_BYTEARRAY]
+GO
+
+CREATE TABLE [dbo].[ACT_GE_BYTEARRAY] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [BYTES_] varbinary(max)  NULL,
+  [GENERATED_] tinyint  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_GE_BYTEARRAY] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_GE_PROPERTY
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_GE_PROPERTY]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_GE_PROPERTY]
+GO
+
+CREATE TABLE [dbo].[ACT_GE_PROPERTY] (
+  [NAME_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [VALUE_] nvarchar(300) COLLATE Chinese_PRC_CI_AS  NULL,
+  [REV_] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_GE_PROPERTY] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Records of ACT_GE_PROPERTY
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[ACT_GE_PROPERTY] VALUES (N'cfg.execution-related-entities-count', N'true', N'1')
+GO
+
+INSERT INTO [dbo].[ACT_GE_PROPERTY] VALUES (N'cfg.task-related-entities-count', N'true', N'1')
+GO
+
+INSERT INTO [dbo].[ACT_GE_PROPERTY] VALUES (N'common.schema.version', N'6.5.0.1', N'1')
+GO
+
+INSERT INTO [dbo].[ACT_GE_PROPERTY] VALUES (N'entitylink.schema.version', N'6.5.0.1', N'1')
+GO
+
+INSERT INTO [dbo].[ACT_GE_PROPERTY] VALUES (N'eventsubscription.schema.version', N'6.5.0.1', N'1')
+GO
+
+INSERT INTO [dbo].[ACT_GE_PROPERTY] VALUES (N'identitylink.schema.version', N'6.5.0.1', N'1')
+GO
+
+INSERT INTO [dbo].[ACT_GE_PROPERTY] VALUES (N'job.schema.version', N'6.5.0.1', N'1')
+GO
+
+INSERT INTO [dbo].[ACT_GE_PROPERTY] VALUES (N'next.dbid', N'1', N'1')
+GO
+
+INSERT INTO [dbo].[ACT_GE_PROPERTY] VALUES (N'schema.history', N'create(6.5.0.1)', N'1')
+GO
+
+INSERT INTO [dbo].[ACT_GE_PROPERTY] VALUES (N'schema.version', N'6.5.0.1', N'1')
+GO
+
+INSERT INTO [dbo].[ACT_GE_PROPERTY] VALUES (N'task.schema.version', N'6.5.0.1', N'1')
+GO
+
+INSERT INTO [dbo].[ACT_GE_PROPERTY] VALUES (N'variable.schema.version', N'6.5.0.1', N'1')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_HI_ACTINST
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_ACTINST]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_HI_ACTINST]
+GO
+
+CREATE TABLE [dbo].[ACT_HI_ACTINST] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int DEFAULT ((1)) NULL,
+  [PROC_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [EXECUTION_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [ACT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [TASK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CALL_PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ACT_NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ACT_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [ASSIGNEE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [START_TIME_] datetime  NOT NULL,
+  [END_TIME_] datetime  NULL,
+  [DURATION_] numeric(19)  NULL,
+  [DELETE_REASON_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_HI_ACTINST] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_HI_ATTACHMENT
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_ATTACHMENT]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_HI_ATTACHMENT]
+GO
+
+CREATE TABLE [dbo].[ACT_HI_ATTACHMENT] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [USER_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DESCRIPTION_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TASK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [URL_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CONTENT_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TIME_] datetime  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_HI_ATTACHMENT] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_HI_COMMENT
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_COMMENT]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_HI_COMMENT]
+GO
+
+CREATE TABLE [dbo].[ACT_HI_COMMENT] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TIME_] datetime  NOT NULL,
+  [USER_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TASK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ACTION_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [MESSAGE_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [FULL_MSG_] varbinary(max)  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_HI_COMMENT] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_HI_DETAIL
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_DETAIL]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_HI_DETAIL]
+GO
+
+CREATE TABLE [dbo].[ACT_HI_DETAIL] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXECUTION_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TASK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ACT_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [VAR_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [REV_] int  NULL,
+  [TIME_] datetime  NOT NULL,
+  [BYTEARRAY_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DOUBLE_] float(53)  NULL,
+  [LONG_] numeric(19)  NULL,
+  [TEXT_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TEXT2_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_HI_DETAIL] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_HI_ENTITYLINK
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_ENTITYLINK]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_HI_ENTITYLINK]
+GO
+
+CREATE TABLE [dbo].[ACT_HI_ENTITYLINK] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [LINK_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CREATE_TIME_] datetime  NULL,
+  [SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [REF_SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [REF_SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [REF_SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [HIERARCHY_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_HI_ENTITYLINK] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_HI_IDENTITYLINK
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_IDENTITYLINK]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_HI_IDENTITYLINK]
+GO
+
+CREATE TABLE [dbo].[ACT_HI_IDENTITYLINK] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [GROUP_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [USER_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TASK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CREATE_TIME_] datetime  NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_HI_IDENTITYLINK] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_HI_PROCINST
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_PROCINST]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_HI_PROCINST]
+GO
+
+CREATE TABLE [dbo].[ACT_HI_PROCINST] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int DEFAULT ((1)) NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [BUSINESS_KEY_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [START_TIME_] datetime  NOT NULL,
+  [END_TIME_] datetime  NULL,
+  [DURATION_] numeric(19)  NULL,
+  [START_USER_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [START_ACT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [END_ACT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SUPER_PROCESS_INSTANCE_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DELETE_REASON_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL,
+  [NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CALLBACK_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CALLBACK_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_HI_PROCINST] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_HI_TASKINST
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_TASKINST]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_HI_TASKINST]
+GO
+
+CREATE TABLE [dbo].[ACT_HI_TASKINST] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int DEFAULT ((1)) NULL,
+  [PROC_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TASK_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TASK_DEF_KEY_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXECUTION_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SUB_SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PARENT_TASK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DESCRIPTION_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [OWNER_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ASSIGNEE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [START_TIME_] datetime  NOT NULL,
+  [CLAIM_TIME_] datetime  NULL,
+  [END_TIME_] datetime  NULL,
+  [DURATION_] numeric(19)  NULL,
+  [DELETE_REASON_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PRIORITY_] int  NULL,
+  [DUE_DATE_] datetime  NULL,
+  [FORM_KEY_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CATEGORY_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL,
+  [LAST_UPDATED_TIME_] datetime2(7)  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_HI_TASKINST] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_HI_TSK_LOG
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_TSK_LOG]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_HI_TSK_LOG]
+GO
+
+CREATE TABLE [dbo].[ACT_HI_TSK_LOG] (
+  [ID_] numeric(19)  IDENTITY(1,1) NOT NULL,
+  [TYPE_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TASK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [TIME_STAMP_] datetime  NOT NULL,
+  [USER_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DATA_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXECUTION_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SUB_SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_HI_TSK_LOG] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_HI_VARINST
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_VARINST]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_HI_VARINST]
+GO
+
+CREATE TABLE [dbo].[ACT_HI_VARINST] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int DEFAULT ((1)) NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXECUTION_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TASK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [VAR_TYPE_] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SUB_SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [BYTEARRAY_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DOUBLE_] float(53)  NULL,
+  [LONG_] numeric(19)  NULL,
+  [TEXT_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TEXT2_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CREATE_TIME_] datetime  NULL,
+  [LAST_UPDATED_TIME_] datetime2(7)  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_HI_VARINST] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_ID_BYTEARRAY
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_BYTEARRAY]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_ID_BYTEARRAY]
+GO
+
+CREATE TABLE [dbo].[ACT_ID_BYTEARRAY] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [BYTES_] varbinary(max)  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_ID_BYTEARRAY] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_ID_GROUP
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_GROUP]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_ID_GROUP]
+GO
+
+CREATE TABLE [dbo].[ACT_ID_GROUP] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_ID_GROUP] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_ID_INFO
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_INFO]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_ID_INFO]
+GO
+
+CREATE TABLE [dbo].[ACT_ID_INFO] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [USER_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TYPE_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [KEY_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [VALUE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PASSWORD_] varbinary(max)  NULL,
+  [PARENT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_ID_INFO] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_ID_MEMBERSHIP
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_MEMBERSHIP]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_ID_MEMBERSHIP]
+GO
+
+CREATE TABLE [dbo].[ACT_ID_MEMBERSHIP] (
+  [USER_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [GROUP_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_ID_MEMBERSHIP] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_ID_PRIV
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_PRIV]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_ID_PRIV]
+GO
+
+CREATE TABLE [dbo].[ACT_ID_PRIV] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_ID_PRIV] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_ID_PRIV_MAPPING
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_PRIV_MAPPING]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_ID_PRIV_MAPPING]
+GO
+
+CREATE TABLE [dbo].[ACT_ID_PRIV_MAPPING] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [PRIV_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [USER_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [GROUP_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_ID_PRIV_MAPPING] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_ID_PROPERTY
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_PROPERTY]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_ID_PROPERTY]
+GO
+
+CREATE TABLE [dbo].[ACT_ID_PROPERTY] (
+  [NAME_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [VALUE_] nvarchar(300) COLLATE Chinese_PRC_CI_AS  NULL,
+  [REV_] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_ID_PROPERTY] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Records of ACT_ID_PROPERTY
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[ACT_ID_PROPERTY] VALUES (N'schema.version', N'6.5.0.1', N'1')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_ID_TOKEN
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_TOKEN]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_ID_TOKEN]
+GO
+
+CREATE TABLE [dbo].[ACT_ID_TOKEN] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [TOKEN_VALUE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TOKEN_DATE_] datetime  NULL,
+  [IP_ADDRESS_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [USER_AGENT_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [USER_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TOKEN_DATA_] nvarchar(2000) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_ID_TOKEN] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_ID_USER
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_USER]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_ID_USER]
+GO
+
+CREATE TABLE [dbo].[ACT_ID_USER] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [FIRST_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LAST_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DISPLAY_NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EMAIL_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PWD_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PICTURE_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_ID_USER] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_PROCDEF_INFO
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_PROCDEF_INFO]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_PROCDEF_INFO]
+GO
+
+CREATE TABLE [dbo].[ACT_PROCDEF_INFO] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [PROC_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [INFO_JSON_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_PROCDEF_INFO] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_RE_DEPLOYMENT
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RE_DEPLOYMENT]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_RE_DEPLOYMENT]
+GO
+
+CREATE TABLE [dbo].[ACT_RE_DEPLOYMENT] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CATEGORY_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [KEY_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL,
+  [DEPLOY_TIME_] datetime  NULL,
+  [DERIVED_FROM_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DERIVED_FROM_ROOT_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PARENT_DEPLOYMENT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ENGINE_VERSION_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_RE_DEPLOYMENT] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_RE_MODEL
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RE_MODEL]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_RE_MODEL]
+GO
+
+CREATE TABLE [dbo].[ACT_RE_MODEL] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [KEY_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CATEGORY_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CREATE_TIME_] datetime  NULL,
+  [LAST_UPDATE_TIME_] datetime  NULL,
+  [VERSION_] int  NULL,
+  [META_INFO_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DEPLOYMENT_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EDITOR_SOURCE_VALUE_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EDITOR_SOURCE_EXTRA_VALUE_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_RE_MODEL] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_RE_PROCDEF
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RE_PROCDEF]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_RE_PROCDEF]
+GO
+
+CREATE TABLE [dbo].[ACT_RE_PROCDEF] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [CATEGORY_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [KEY_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [VERSION_] int  NOT NULL,
+  [DEPLOYMENT_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [RESOURCE_NAME_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DGRM_RESOURCE_NAME_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DESCRIPTION_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [HAS_START_FORM_KEY_] tinyint  NULL,
+  [HAS_GRAPHICAL_NOTATION_] tinyint  NULL,
+  [SUSPENSION_STATE_] tinyint  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL,
+  [DERIVED_FROM_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DERIVED_FROM_ROOT_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DERIVED_VERSION_] int DEFAULT ((0)) NOT NULL,
+  [ENGINE_VERSION_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_RE_PROCDEF] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_RU_ACTINST
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_ACTINST]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_RU_ACTINST]
+GO
+
+CREATE TABLE [dbo].[ACT_RU_ACTINST] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int DEFAULT ((1)) NULL,
+  [PROC_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [EXECUTION_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [ACT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [TASK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CALL_PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ACT_NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ACT_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [ASSIGNEE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [START_TIME_] datetime  NOT NULL,
+  [END_TIME_] datetime  NULL,
+  [DURATION_] numeric(19)  NULL,
+  [DELETE_REASON_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_RU_ACTINST] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_RU_DEADLETTER_JOB
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_DEADLETTER_JOB]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_RU_DEADLETTER_JOB]
+GO
+
+CREATE TABLE [dbo].[ACT_RU_DEADLETTER_JOB] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [EXCLUSIVE_] bit  NULL,
+  [EXECUTION_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROCESS_INSTANCE_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ELEMENT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ELEMENT_NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SUB_SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXCEPTION_STACK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXCEPTION_MSG_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DUEDATE_] datetime  NULL,
+  [REPEAT_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [HANDLER_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [HANDLER_CFG_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CUSTOM_VALUES_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CREATE_TIME_] datetime2(7)  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_RU_DEADLETTER_JOB] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_RU_ENTITYLINK
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_ENTITYLINK]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_RU_ENTITYLINK]
+GO
+
+CREATE TABLE [dbo].[ACT_RU_ENTITYLINK] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [CREATE_TIME_] datetime  NULL,
+  [LINK_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [REF_SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [REF_SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [REF_SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [HIERARCHY_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_RU_ENTITYLINK] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_RU_EVENT_SUBSCR
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_EVENT_SUBSCR]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_RU_EVENT_SUBSCR]
+GO
+
+CREATE TABLE [dbo].[ACT_RU_EVENT_SUBSCR] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [EVENT_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [EVENT_NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXECUTION_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ACTIVITY_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CONFIGURATION_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CREATED_] datetime  NOT NULL,
+  [PROC_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SUB_SCOPE_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_DEFINITION_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_RU_EVENT_SUBSCR] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_RU_EXECUTION
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_EXECUTION]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_RU_EXECUTION]
+GO
+
+CREATE TABLE [dbo].[ACT_RU_EXECUTION] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [BUSINESS_KEY_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PARENT_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SUPER_EXEC_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ROOT_PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ACT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [IS_ACTIVE_] tinyint  NULL,
+  [IS_CONCURRENT_] tinyint  NULL,
+  [IS_SCOPE_] tinyint  NULL,
+  [IS_EVENT_SCOPE_] tinyint  NULL,
+  [IS_MI_ROOT_] tinyint  NULL,
+  [SUSPENSION_STATE_] tinyint  NULL,
+  [CACHED_ENT_STATE_] int  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL,
+  [NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [START_ACT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [START_TIME_] datetime  NULL,
+  [START_USER_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [LOCK_TIME_] datetime  NULL,
+  [IS_COUNT_ENABLED_] tinyint  NULL,
+  [EVT_SUBSCR_COUNT_] int  NULL,
+  [TASK_COUNT_] int  NULL,
+  [JOB_COUNT_] int  NULL,
+  [TIMER_JOB_COUNT_] int  NULL,
+  [SUSP_JOB_COUNT_] int  NULL,
+  [DEADLETTER_JOB_COUNT_] int  NULL,
+  [VAR_COUNT_] int  NULL,
+  [ID_LINK_COUNT_] int  NULL,
+  [CALLBACK_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CALLBACK_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_RU_EXECUTION] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_RU_HISTORY_JOB
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_HISTORY_JOB]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_RU_HISTORY_JOB]
+GO
+
+CREATE TABLE [dbo].[ACT_RU_HISTORY_JOB] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [LOCK_EXP_TIME_] datetime  NULL,
+  [LOCK_OWNER_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [RETRIES_] int  NULL,
+  [EXCEPTION_STACK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXCEPTION_MSG_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [HANDLER_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [HANDLER_CFG_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CUSTOM_VALUES_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ADV_HANDLER_CFG_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CREATE_TIME_] datetime2(7)  NULL,
+  [SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_RU_HISTORY_JOB] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_RU_IDENTITYLINK
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_IDENTITYLINK]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_RU_IDENTITYLINK]
+GO
+
+CREATE TABLE [dbo].[ACT_RU_IDENTITYLINK] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [GROUP_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [USER_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TASK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_RU_IDENTITYLINK] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_RU_JOB
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_JOB]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_RU_JOB]
+GO
+
+CREATE TABLE [dbo].[ACT_RU_JOB] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [LOCK_EXP_TIME_] datetime  NULL,
+  [LOCK_OWNER_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXCLUSIVE_] bit  NULL,
+  [EXECUTION_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROCESS_INSTANCE_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ELEMENT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ELEMENT_NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SUB_SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [RETRIES_] int  NULL,
+  [EXCEPTION_STACK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXCEPTION_MSG_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DUEDATE_] datetime  NULL,
+  [REPEAT_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [HANDLER_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [HANDLER_CFG_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CUSTOM_VALUES_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CREATE_TIME_] datetime2(7)  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_RU_JOB] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_RU_SUSPENDED_JOB
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_SUSPENDED_JOB]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_RU_SUSPENDED_JOB]
+GO
+
+CREATE TABLE [dbo].[ACT_RU_SUSPENDED_JOB] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [EXCLUSIVE_] bit  NULL,
+  [EXECUTION_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROCESS_INSTANCE_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ELEMENT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ELEMENT_NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SUB_SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [RETRIES_] int  NULL,
+  [EXCEPTION_STACK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXCEPTION_MSG_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DUEDATE_] datetime  NULL,
+  [REPEAT_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [HANDLER_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [HANDLER_CFG_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CUSTOM_VALUES_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CREATE_TIME_] datetime2(7)  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_RU_SUSPENDED_JOB] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_RU_TASK
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_TASK]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_RU_TASK]
+GO
+
+CREATE TABLE [dbo].[ACT_RU_TASK] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [EXECUTION_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TASK_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SUB_SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PARENT_TASK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DESCRIPTION_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TASK_DEF_KEY_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [OWNER_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ASSIGNEE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DELEGATION_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PRIORITY_] int  NULL,
+  [CREATE_TIME_] datetime  NULL,
+  [DUE_DATE_] datetime  NULL,
+  [CATEGORY_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SUSPENSION_STATE_] int  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL,
+  [FORM_KEY_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CLAIM_TIME_] datetime  NULL,
+  [IS_COUNT_ENABLED_] tinyint  NULL,
+  [VAR_COUNT_] int  NULL,
+  [ID_LINK_COUNT_] int  NULL,
+  [SUB_TASK_COUNT_] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_RU_TASK] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_RU_TIMER_JOB
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_TIMER_JOB]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_RU_TIMER_JOB]
+GO
+
+CREATE TABLE [dbo].[ACT_RU_TIMER_JOB] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [LOCK_EXP_TIME_] datetime  NULL,
+  [LOCK_OWNER_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXCLUSIVE_] bit  NULL,
+  [EXECUTION_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROCESS_INSTANCE_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_DEF_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ELEMENT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ELEMENT_NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SUB_SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [RETRIES_] int  NULL,
+  [EXCEPTION_STACK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [EXCEPTION_MSG_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DUEDATE_] datetime  NULL,
+  [REPEAT_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [HANDLER_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [HANDLER_CFG_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CUSTOM_VALUES_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [CREATE_TIME_] datetime2(7)  NULL,
+  [TENANT_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS DEFAULT '' NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_RU_TIMER_JOB] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Table structure for ACT_RU_VARIABLE
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_VARIABLE]') AND type IN ('U'))
+	DROP TABLE [dbo].[ACT_RU_VARIABLE]
+GO
+
+CREATE TABLE [dbo].[ACT_RU_VARIABLE] (
+  [ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [REV_] int  NULL,
+  [TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [NAME_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [EXECUTION_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [PROC_INST_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TASK_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SUB_SCOPE_ID_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [SCOPE_TYPE_] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [BYTEARRAY_ID_] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [DOUBLE_] float(53)  NULL,
+  [LONG_] numeric(19)  NULL,
+  [TEXT_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [TEXT2_] nvarchar(4000) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[ACT_RU_VARIABLE] SET (LOCK_ESCALATION = TABLE)
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_APP_APPDEF
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_APP_DEF_DPLY]
+ON [dbo].[ACT_APP_APPDEF] (
+  [DEPLOYMENT_ID_] ASC
+)
+GO
+
+CREATE UNIQUE NONCLUSTERED INDEX [ACT_IDX_APP_DEF_UNIQ]
+ON [dbo].[ACT_APP_APPDEF] (
+  [KEY_] ASC,
+  [VERSION_] ASC,
+  [TENANT_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_APP_APPDEF
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_APP_APPDEF] ADD CONSTRAINT [PK_ACT_APP_APPDEF] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_APP_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_APP_DATABASECHANGELOGLOCK] ADD CONSTRAINT [PK_ACT_APP_DATABASECHANGELOGLOCK] PRIMARY KEY CLUSTERED ([ID])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_APP_DEPLOYMENT
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_APP_DEPLOYMENT] ADD CONSTRAINT [PK_ACT_APP_DEPLOYMENT] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_APP_DEPLOYMENT_RESOURCE
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_APP_RSRC_DPL]
+ON [dbo].[ACT_APP_DEPLOYMENT_RESOURCE] (
+  [DEPLOYMENT_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_APP_DEPLOYMENT_RESOURCE
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_APP_DEPLOYMENT_RESOURCE] ADD CONSTRAINT [PK_APP_DEPLOYMENT_RESOURCE] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_CMMN_CASEDEF
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_CASE_DEF_DPLY]
+ON [dbo].[ACT_CMMN_CASEDEF] (
+  [DEPLOYMENT_ID_] ASC
+)
+GO
+
+CREATE UNIQUE NONCLUSTERED INDEX [ACT_IDX_CASE_DEF_UNIQ]
+ON [dbo].[ACT_CMMN_CASEDEF] (
+  [KEY_] ASC,
+  [VERSION_] ASC,
+  [TENANT_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_CASEDEF
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_CASEDEF] ADD CONSTRAINT [PK_ACT_CMMN_CASEDEF] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_DATABASECHANGELOGLOCK] ADD CONSTRAINT [PK_ACT_CMMN_DATABASECHANGELOGLOCK] PRIMARY KEY CLUSTERED ([ID])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_DEPLOYMENT
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_DEPLOYMENT] ADD CONSTRAINT [PK_ACT_CMMN_DEPLOYMENT] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_CMMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_CMMN_RSRC_DPL]
+ON [dbo].[ACT_CMMN_DEPLOYMENT_RESOURCE] (
+  [DEPLOYMENT_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_DEPLOYMENT_RESOURCE] ADD CONSTRAINT [PK_CMMN_DEPLOYMENT_RESOURCE] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_HI_CASE_INST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_HI_CASE_INST] ADD CONSTRAINT [PK_ACT_CMMN_HI_CASE_INST] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_HI_MIL_INST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_HI_MIL_INST] ADD CONSTRAINT [PK_ACT_CMMN_HI_MIL_INST] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_HI_PLAN_ITEM_INST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_HI_PLAN_ITEM_INST] ADD CONSTRAINT [PK_ACT_CMMN_HI_PLAN_ITEM_INST] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_CMMN_RU_CASE_INST
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_CASE_INST_CASE_DEF]
+ON [dbo].[ACT_CMMN_RU_CASE_INST] (
+  [CASE_DEF_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_CASE_INST_PARENT]
+ON [dbo].[ACT_CMMN_RU_CASE_INST] (
+  [PARENT_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_RU_CASE_INST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_RU_CASE_INST] ADD CONSTRAINT [PK_ACT_CMMN_RU_CASE_INST] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_CMMN_RU_MIL_INST
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_MIL_CASE_DEF]
+ON [dbo].[ACT_CMMN_RU_MIL_INST] (
+  [CASE_DEF_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_MIL_CASE_INST]
+ON [dbo].[ACT_CMMN_RU_MIL_INST] (
+  [CASE_INST_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_RU_MIL_INST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_RU_MIL_INST] ADD CONSTRAINT [PK_ACT_CMMN_RU_MIL_INST] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_CMMN_RU_PLAN_ITEM_INST
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_PLAN_ITEM_CASE_DEF]
+ON [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] (
+  [CASE_DEF_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_PLAN_ITEM_CASE_INST]
+ON [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] (
+  [CASE_INST_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_PLAN_ITEM_STAGE_INST]
+ON [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] (
+  [STAGE_INST_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_RU_PLAN_ITEM_INST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] ADD CONSTRAINT [PK_CMMN_PLAN_ITEM_INST] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_CMMN_RU_SENTRY_PART_INST
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_SENTRY_CASE_DEF]
+ON [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] (
+  [CASE_DEF_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_SENTRY_CASE_INST]
+ON [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] (
+  [CASE_INST_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_SENTRY_PLAN_ITEM]
+ON [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] (
+  [PLAN_ITEM_INST_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CMMN_RU_SENTRY_PART_INST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] ADD CONSTRAINT [PK_CMMN_SENTRY_PART_INST] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_CO_CONTENT_ITEM
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [idx_contitem_taskid]
+ON [dbo].[ACT_CO_CONTENT_ITEM] (
+  [TASK_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [idx_contitem_procid]
+ON [dbo].[ACT_CO_CONTENT_ITEM] (
+  [PROC_INST_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [idx_contitem_scope]
+ON [dbo].[ACT_CO_CONTENT_ITEM] (
+  [SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CO_CONTENT_ITEM
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CO_CONTENT_ITEM] ADD CONSTRAINT [PK_ACT_CO_CONTENT_ITEM] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_CO_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CO_DATABASECHANGELOGLOCK] ADD CONSTRAINT [PK_ACT_CO_DATABASECHANGELOGLOCK] PRIMARY KEY CLUSTERED ([ID])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DE_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_DE_DATABASECHANGELOGLOCK] ADD CONSTRAINT [PK_ACT_DE_DATABASECHANGELOGLOCK] PRIMARY KEY CLUSTERED ([ID])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_DE_MODEL
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [idx_proc_mod_created]
+ON [dbo].[ACT_DE_MODEL] (
+  [created_by] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DE_MODEL
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_DE_MODEL] ADD CONSTRAINT [PK_ACT_DE_MODEL] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_DE_MODEL_HISTORY
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [idx_proc_mod_history_proc]
+ON [dbo].[ACT_DE_MODEL_HISTORY] (
+  [model_id] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DE_MODEL_HISTORY
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_DE_MODEL_HISTORY] ADD CONSTRAINT [PK_ACT_DE_MODEL_HISTORY] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DE_MODEL_RELATION
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_DE_MODEL_RELATION] ADD CONSTRAINT [PK_ACT_DE_MODEL_RELATION] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DMN_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_DMN_DATABASECHANGELOGLOCK] ADD CONSTRAINT [PK_ACT_DMN_DATABASECHANGELOGLOCK] PRIMARY KEY CLUSTERED ([ID])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_DMN_DECISION_TABLE
+-- ----------------------------
+CREATE UNIQUE NONCLUSTERED INDEX [ACT_IDX_DEC_TBL_UNIQ]
+ON [dbo].[ACT_DMN_DECISION_TABLE] (
+  [KEY_] ASC,
+  [VERSION_] ASC,
+  [TENANT_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DMN_DECISION_TABLE
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_DMN_DECISION_TABLE] ADD CONSTRAINT [PK_ACT_DMN_DECISION_TABLE] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DMN_DEPLOYMENT
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_DMN_DEPLOYMENT] ADD CONSTRAINT [PK_ACT_DMN_DEPLOYMENT] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_DMN_DEPLOYMENT_RESOURCE] ADD CONSTRAINT [PK_ACT_DMN_DEPLOYMENT_RESOURCE] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_DMN_HI_DECISION_EXECUTION
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_DMN_HI_DECISION_EXECUTION] ADD CONSTRAINT [PK_ACT_DMN_HI_DECISION_EXECUTION] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_EVT_LOG
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_EVT_LOG] ADD CONSTRAINT [PK__ACT_EVT___DE8852D855F4C372] PRIMARY KEY CLUSTERED ([LOG_NR_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_FO_DATABASECHANGELOGLOCK
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_FO_DATABASECHANGELOGLOCK] ADD CONSTRAINT [PK_ACT_FO_DATABASECHANGELOGLOCK] PRIMARY KEY CLUSTERED ([ID])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_FO_FORM_DEFINITION
+-- ----------------------------
+CREATE UNIQUE NONCLUSTERED INDEX [ACT_IDX_FORM_DEF_UNIQ]
+ON [dbo].[ACT_FO_FORM_DEFINITION] (
+  [KEY_] ASC,
+  [VERSION_] ASC,
+  [TENANT_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_FO_FORM_DEFINITION
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_FO_FORM_DEFINITION] ADD CONSTRAINT [PK_ACT_FO_FORM_DEFINITION] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_FO_FORM_DEPLOYMENT
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_FO_FORM_DEPLOYMENT] ADD CONSTRAINT [PK_ACT_FO_FORM_DEPLOYMENT] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_FO_FORM_INSTANCE
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_FO_FORM_INSTANCE] ADD CONSTRAINT [PK_ACT_FO_FORM_INSTANCE] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_FO_FORM_RESOURCE
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_FO_FORM_RESOURCE] ADD CONSTRAINT [PK_ACT_FO_FORM_RESOURCE] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_GE_BYTEARRAY
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_GE_BYTEARRAY] ADD CONSTRAINT [PK__ACT_GE_B__C4971C0F71D1E811] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_GE_PROPERTY
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_GE_PROPERTY] ADD CONSTRAINT [PK__ACT_GE_P__A7BE44DE6E01572D] PRIMARY KEY CLUSTERED ([NAME_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_HI_ACTINST
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_ACT_INST_START]
+ON [dbo].[ACT_HI_ACTINST] (
+  [START_TIME_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_ACT_INST_END]
+ON [dbo].[ACT_HI_ACTINST] (
+  [END_TIME_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_ACT_INST_PROCINST]
+ON [dbo].[ACT_HI_ACTINST] (
+  [PROC_INST_ID_] ASC,
+  [ACT_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_ACT_INST_EXEC]
+ON [dbo].[ACT_HI_ACTINST] (
+  [EXECUTION_ID_] ASC,
+  [ACT_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_ACTINST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_HI_ACTINST] ADD CONSTRAINT [PK__ACT_HI_A__C4971C0F0B5CAFEA] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_ATTACHMENT
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_HI_ATTACHMENT] ADD CONSTRAINT [PK__ACT_HI_A__C4971C0F18B6AB08] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_COMMENT
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_HI_COMMENT] ADD CONSTRAINT [PK__ACT_HI_C__C4971C0F14E61A24] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_HI_DETAIL
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_DETAIL_PROC_INST]
+ON [dbo].[ACT_HI_DETAIL] (
+  [PROC_INST_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_DETAIL_ACT_INST]
+ON [dbo].[ACT_HI_DETAIL] (
+  [ACT_INST_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_DETAIL_TIME]
+ON [dbo].[ACT_HI_DETAIL] (
+  [TIME_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_DETAIL_NAME]
+ON [dbo].[ACT_HI_DETAIL] (
+  [NAME_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_DETAIL_TASK_ID]
+ON [dbo].[ACT_HI_DETAIL] (
+  [TASK_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_DETAIL
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_HI_DETAIL] ADD CONSTRAINT [PK__ACT_HI_D__C4971C0F11158940] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_HI_ENTITYLINK
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_ENT_LNK_SCOPE]
+ON [dbo].[ACT_HI_ENTITYLINK] (
+  [SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC,
+  [LINK_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_ENT_LNK_SCOPE_DEF]
+ON [dbo].[ACT_HI_ENTITYLINK] (
+  [SCOPE_DEFINITION_ID_] ASC,
+  [SCOPE_TYPE_] ASC,
+  [LINK_TYPE_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_ENTITYLINK
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_HI_ENTITYLINK] ADD CONSTRAINT [PK__ACT_HI_E__C4971C0F01142BA1] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_HI_IDENTITYLINK
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_IDENT_LNK_USER]
+ON [dbo].[ACT_HI_IDENTITYLINK] (
+  [USER_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_IDENT_LNK_SCOPE]
+ON [dbo].[ACT_HI_IDENTITYLINK] (
+  [SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_IDENT_LNK_SCOPE_DEF]
+ON [dbo].[ACT_HI_IDENTITYLINK] (
+  [SCOPE_DEFINITION_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_IDENT_LNK_TASK]
+ON [dbo].[ACT_HI_IDENTITYLINK] (
+  [TASK_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_IDENT_LNK_PROCINST]
+ON [dbo].[ACT_HI_IDENTITYLINK] (
+  [PROC_INST_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_IDENTITYLINK
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_HI_IDENTITYLINK] ADD CONSTRAINT [PK__ACT_HI_I__C4971C0F797309D9] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_HI_PROCINST
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_PRO_INST_END]
+ON [dbo].[ACT_HI_PROCINST] (
+  [END_TIME_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_PRO_I_BUSKEY]
+ON [dbo].[ACT_HI_PROCINST] (
+  [BUSINESS_KEY_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Uniques structure for table ACT_HI_PROCINST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_HI_PROCINST] ADD CONSTRAINT [UQ__ACT_HI_P__C034157205A3D694] UNIQUE NONCLUSTERED ([PROC_INST_ID_] ASC)
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_PROCINST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_HI_PROCINST] ADD CONSTRAINT [PK__ACT_HI_P__C4971C0F02C769E9] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_HI_TASKINST
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_TASK_SCOPE]
+ON [dbo].[ACT_HI_TASKINST] (
+  [SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_TASK_SUB_SCOPE]
+ON [dbo].[ACT_HI_TASKINST] (
+  [SUB_SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_TASK_SCOPE_DEF]
+ON [dbo].[ACT_HI_TASKINST] (
+  [SCOPE_DEFINITION_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_TASK_INST_PROCINST]
+ON [dbo].[ACT_HI_TASKINST] (
+  [PROC_INST_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_TASKINST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_HI_TASKINST] ADD CONSTRAINT [PK__ACT_HI_T__C4971C0F0E6E26BF] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_TSK_LOG
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_HI_TSK_LOG] ADD CONSTRAINT [PK__ACT_HI_T__C4971C0F14270015] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_HI_VARINST
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_PROCVAR_NAME_TYPE]
+ON [dbo].[ACT_HI_VARINST] (
+  [NAME_] ASC,
+  [VAR_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_VAR_SCOPE_ID_TYPE]
+ON [dbo].[ACT_HI_VARINST] (
+  [SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_VAR_SUB_ID_TYPE]
+ON [dbo].[ACT_HI_VARINST] (
+  [SUB_SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_PROCVAR_PROC_INST]
+ON [dbo].[ACT_HI_VARINST] (
+  [PROC_INST_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_PROCVAR_TASK_ID]
+ON [dbo].[ACT_HI_VARINST] (
+  [TASK_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_HI_PROCVAR_EXE]
+ON [dbo].[ACT_HI_VARINST] (
+  [EXECUTION_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_HI_VARINST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_HI_VARINST] ADD CONSTRAINT [PK__ACT_HI_V__C4971C0F1DB06A4F] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_BYTEARRAY
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_ID_BYTEARRAY] ADD CONSTRAINT [PK__ACT_ID_B__C4971C0F2057CCD0] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_GROUP
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_ID_GROUP] ADD CONSTRAINT [PK__ACT_ID_G__C4971C0F24285DB4] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_INFO
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_ID_INFO] ADD CONSTRAINT [PK__ACT_ID_I__C4971C0F308E3499] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_MEMBERSHIP
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_ID_MEMBERSHIP] ADD CONSTRAINT [PK__ACT_ID_M__C2371B0F27F8EE98] PRIMARY KEY CLUSTERED ([USER_ID_], [GROUP_ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Uniques structure for table ACT_ID_PRIV
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_ID_PRIV] ADD CONSTRAINT [ACT_UNIQ_PRIV_NAME] UNIQUE NONCLUSTERED ([NAME_] ASC)
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_PRIV
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_ID_PRIV] ADD CONSTRAINT [PK__ACT_ID_P__C4971C0F382F5661] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_ID_PRIV_MAPPING
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_PRIV_USER]
+ON [dbo].[ACT_ID_PRIV_MAPPING] (
+  [USER_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_PRIV_GROUP]
+ON [dbo].[ACT_ID_PRIV_MAPPING] (
+  [GROUP_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_PRIV_MAPPING
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_ID_PRIV_MAPPING] ADD CONSTRAINT [PK__ACT_ID_P__C4971C0F3BFFE745] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_PROPERTY
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_ID_PROPERTY] ADD CONSTRAINT [PK__ACT_ID_P__A7BE44DE1C873BEC] PRIMARY KEY CLUSTERED ([NAME_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_TOKEN
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_ID_TOKEN] ADD CONSTRAINT [PK__ACT_ID_T__C4971C0F345EC57D] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_ID_USER
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_ID_USER] ADD CONSTRAINT [PK__ACT_ID_U__C4971C0F2BC97F7C] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_PROCDEF_INFO
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_INFO_PROCDEF]
+ON [dbo].[ACT_PROCDEF_INFO] (
+  [PROC_DEF_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Uniques structure for table ACT_PROCDEF_INFO
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_PROCDEF_INFO] ADD CONSTRAINT [ACT_UNIQ_INFO_PROCDEF] UNIQUE NONCLUSTERED ([PROC_DEF_ID_] ASC)
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_PROCDEF_INFO
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_PROCDEF_INFO] ADD CONSTRAINT [PK__ACT_PROC__C4971C0F5AB9788F] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RE_DEPLOYMENT
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RE_DEPLOYMENT] ADD CONSTRAINT [PK__ACT_RE_D__C4971C0F41EDCAC5] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RE_MODEL
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RE_MODEL] ADD CONSTRAINT [PK__ACT_RE_M__C4971C0F46B27FE2] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Uniques structure for table ACT_RE_PROCDEF
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RE_PROCDEF] ADD CONSTRAINT [ACT_UNIQ_PROCDEF] UNIQUE NONCLUSTERED ([KEY_] ASC, [VERSION_] ASC, [DERIVED_VERSION_] ASC, [TENANT_ID_] ASC)
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RE_PROCDEF
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RE_PROCDEF] ADD CONSTRAINT [PK__ACT_RE_P__C4971C0F503BEA1C] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_ACTINST
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_RU_ACTI_START]
+ON [dbo].[ACT_RU_ACTINST] (
+  [START_TIME_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_RU_ACTI_END]
+ON [dbo].[ACT_RU_ACTINST] (
+  [END_TIME_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_RU_ACTI_PROC]
+ON [dbo].[ACT_RU_ACTINST] (
+  [PROC_INST_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_RU_ACTI_PROC_ACT]
+ON [dbo].[ACT_RU_ACTINST] (
+  [PROC_INST_ID_] ASC,
+  [ACT_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_RU_ACTI_EXEC]
+ON [dbo].[ACT_RU_ACTINST] (
+  [EXECUTION_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_RU_ACTI_EXEC_ACT]
+ON [dbo].[ACT_RU_ACTINST] (
+  [EXECUTION_ID_] ASC,
+  [ACT_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_ACTINST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_ACTINST] ADD CONSTRAINT [PK__ACT_RU_A__C4971C0F5E8A0973] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_DEADLETTER_JOB
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_DEADLETTER_JOB_EXCEPTION_STACK_ID]
+ON [dbo].[ACT_RU_DEADLETTER_JOB] (
+  [EXCEPTION_STACK_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_DEADLETTER_JOB_CUSTOM_VALUES_ID]
+ON [dbo].[ACT_RU_DEADLETTER_JOB] (
+  [CUSTOM_VALUES_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_DJOB_SCOPE]
+ON [dbo].[ACT_RU_DEADLETTER_JOB] (
+  [SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_DJOB_SUB_SCOPE]
+ON [dbo].[ACT_RU_DEADLETTER_JOB] (
+  [SUB_SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_DJOB_SCOPE_DEF]
+ON [dbo].[ACT_RU_DEADLETTER_JOB] (
+  [SCOPE_DEFINITION_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_DEADLETTER_JOB_EXECUTION_ID]
+ON [dbo].[ACT_RU_DEADLETTER_JOB] (
+  [EXECUTION_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_DEADLETTER_JOB_PROCESS_INSTANCE_ID]
+ON [dbo].[ACT_RU_DEADLETTER_JOB] (
+  [PROCESS_INSTANCE_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_DEADLETTER_JOB_PROC_DEF_ID]
+ON [dbo].[ACT_RU_DEADLETTER_JOB] (
+  [PROC_DEF_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_DEADLETTER_JOB
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_DEADLETTER_JOB] ADD CONSTRAINT [PK__ACT_RU_D__C4971C0F30C33EC3] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_ENTITYLINK
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_ENT_LNK_SCOPE]
+ON [dbo].[ACT_RU_ENTITYLINK] (
+  [SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC,
+  [LINK_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_ENT_LNK_SCOPE_DEF]
+ON [dbo].[ACT_RU_ENTITYLINK] (
+  [SCOPE_DEFINITION_ID_] ASC,
+  [SCOPE_TYPE_] ASC,
+  [LINK_TYPE_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_ENTITYLINK
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_ENTITYLINK] ADD CONSTRAINT [PK__ACT_RU_E__C4971C0F7D439ABD] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_EVENT_SUBSCR
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_EVENT_SUBSCR_CONFIG_]
+ON [dbo].[ACT_RU_EVENT_SUBSCR] (
+  [CONFIGURATION_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_EVENT_SUBSCR_EXEC_ID]
+ON [dbo].[ACT_RU_EVENT_SUBSCR] (
+  [EXECUTION_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_EVENT_SUBSCR
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_EVENT_SUBSCR] ADD CONSTRAINT [PK__ACT_RU_E__C4971C0F04E4BC85] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_EXECUTION
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_EXEC_BUSKEY]
+ON [dbo].[ACT_RU_EXECUTION] (
+  [BUSINESS_KEY_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_EXEC_ROOT]
+ON [dbo].[ACT_RU_EXECUTION] (
+  [ROOT_PROC_INST_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_EXECUTION_PROC]
+ON [dbo].[ACT_RU_EXECUTION] (
+  [PROC_DEF_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_EXECUTION_PARENT]
+ON [dbo].[ACT_RU_EXECUTION] (
+  [PARENT_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_EXECUTION_SUPER]
+ON [dbo].[ACT_RU_EXECUTION] (
+  [SUPER_EXEC_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_EXECUTION_IDANDREV]
+ON [dbo].[ACT_RU_EXECUTION] (
+  [ID_] ASC,
+  [REV_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_EXEC_PROC_INST_ID]
+ON [dbo].[ACT_RU_EXECUTION] (
+  [PROC_INST_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_EXECUTION
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_EXECUTION] ADD CONSTRAINT [PK__ACT_RU_E__C4971C0F4B7734FF] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_HISTORY_JOB
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_HISTORY_JOB] ADD CONSTRAINT [PK__ACT_RU_H__C4971C0F3587F3E0] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_IDENTITYLINK
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_IDENT_LNK_USER]
+ON [dbo].[ACT_RU_IDENTITYLINK] (
+  [USER_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_IDENT_LNK_GROUP]
+ON [dbo].[ACT_RU_IDENTITYLINK] (
+  [GROUP_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_IDENT_LNK_SCOPE]
+ON [dbo].[ACT_RU_IDENTITYLINK] (
+  [SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_IDENT_LNK_SCOPE_DEF]
+ON [dbo].[ACT_RU_IDENTITYLINK] (
+  [SCOPE_DEFINITION_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_ATHRZ_PROCEDEF]
+ON [dbo].[ACT_RU_IDENTITYLINK] (
+  [PROC_DEF_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_IDENT_LNK_TASK]
+ON [dbo].[ACT_RU_IDENTITYLINK] (
+  [TASK_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_IDENT_LNK_PROCINST]
+ON [dbo].[ACT_RU_IDENTITYLINK] (
+  [PROC_INST_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_IDENTITYLINK
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_IDENTITYLINK] ADD CONSTRAINT [PK__ACT_RU_I__C4971C0F75A278F5] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_JOB
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_EXCEPTION_STACK_ID]
+ON [dbo].[ACT_RU_JOB] (
+  [EXCEPTION_STACK_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_CUSTOM_VALUES_ID]
+ON [dbo].[ACT_RU_JOB] (
+  [CUSTOM_VALUES_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_SCOPE]
+ON [dbo].[ACT_RU_JOB] (
+  [SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_SUB_SCOPE]
+ON [dbo].[ACT_RU_JOB] (
+  [SUB_SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_SCOPE_DEF]
+ON [dbo].[ACT_RU_JOB] (
+  [SCOPE_DEFINITION_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_EXECUTION_ID]
+ON [dbo].[ACT_RU_JOB] (
+  [EXECUTION_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_PROCESS_INSTANCE_ID]
+ON [dbo].[ACT_RU_JOB] (
+  [PROCESS_INSTANCE_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_PROC_DEF_ID]
+ON [dbo].[ACT_RU_JOB] (
+  [PROC_DEF_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_JOB
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_JOB] ADD CONSTRAINT [PK__ACT_RU_J__C4971C0F22751F6C] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_SUSPENDED_JOB
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_SUSPENDED_JOB_EXCEPTION_STACK_ID]
+ON [dbo].[ACT_RU_SUSPENDED_JOB] (
+  [EXCEPTION_STACK_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_SUSPENDED_JOB_CUSTOM_VALUES_ID]
+ON [dbo].[ACT_RU_SUSPENDED_JOB] (
+  [CUSTOM_VALUES_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_SJOB_SCOPE]
+ON [dbo].[ACT_RU_SUSPENDED_JOB] (
+  [SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_SJOB_SUB_SCOPE]
+ON [dbo].[ACT_RU_SUSPENDED_JOB] (
+  [SUB_SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_SJOB_SCOPE_DEF]
+ON [dbo].[ACT_RU_SUSPENDED_JOB] (
+  [SCOPE_DEFINITION_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_SUSPENDED_JOB_EXECUTION_ID]
+ON [dbo].[ACT_RU_SUSPENDED_JOB] (
+  [EXECUTION_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_SUSPENDED_JOB_PROCESS_INSTANCE_ID]
+ON [dbo].[ACT_RU_SUSPENDED_JOB] (
+  [PROCESS_INSTANCE_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_SUSPENDED_JOB_PROC_DEF_ID]
+ON [dbo].[ACT_RU_SUSPENDED_JOB] (
+  [PROC_DEF_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_SUSPENDED_JOB
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_SUSPENDED_JOB] ADD CONSTRAINT [PK__ACT_RU_S__C4971C0F2BFE89A6] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_TASK
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_TASK_CREATE]
+ON [dbo].[ACT_RU_TASK] (
+  [CREATE_TIME_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_TASK_SCOPE]
+ON [dbo].[ACT_RU_TASK] (
+  [SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_TASK_SUB_SCOPE]
+ON [dbo].[ACT_RU_TASK] (
+  [SUB_SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_TASK_SCOPE_DEF]
+ON [dbo].[ACT_RU_TASK] (
+  [SCOPE_DEFINITION_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_TASK_EXEC]
+ON [dbo].[ACT_RU_TASK] (
+  [EXECUTION_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_TASK_PROCINST]
+ON [dbo].[ACT_RU_TASK] (
+  [PROC_INST_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_TASK_PROC_DEF_ID]
+ON [dbo].[ACT_RU_TASK] (
+  [PROC_DEF_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_TASK
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_TASK] ADD CONSTRAINT [PK__ACT_RU_T__C4971C0F09A971A2] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_TIMER_JOB
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_TIMER_JOB_EXCEPTION_STACK_ID]
+ON [dbo].[ACT_RU_TIMER_JOB] (
+  [EXCEPTION_STACK_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_TIMER_JOB_CUSTOM_VALUES_ID]
+ON [dbo].[ACT_RU_TIMER_JOB] (
+  [CUSTOM_VALUES_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_TJOB_SCOPE]
+ON [dbo].[ACT_RU_TIMER_JOB] (
+  [SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_TJOB_SUB_SCOPE]
+ON [dbo].[ACT_RU_TIMER_JOB] (
+  [SUB_SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_TJOB_SCOPE_DEF]
+ON [dbo].[ACT_RU_TIMER_JOB] (
+  [SCOPE_DEFINITION_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_TIMER_JOB_EXECUTION_ID]
+ON [dbo].[ACT_RU_TIMER_JOB] (
+  [EXECUTION_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_TIMER_JOB_PROCESS_INSTANCE_ID]
+ON [dbo].[ACT_RU_TIMER_JOB] (
+  [PROCESS_INSTANCE_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_TIMER_JOB_PROC_DEF_ID]
+ON [dbo].[ACT_RU_TIMER_JOB] (
+  [PROC_DEF_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_TIMER_JOB
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_TIMER_JOB] ADD CONSTRAINT [PK__ACT_RU_T__C4971C0F2739D489] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Indexes structure for table ACT_RU_VARIABLE
+-- ----------------------------
+CREATE NONCLUSTERED INDEX [ACT_IDX_RU_VAR_SCOPE_ID_TYPE]
+ON [dbo].[ACT_RU_VARIABLE] (
+  [SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_RU_VAR_SUB_ID_TYPE]
+ON [dbo].[ACT_RU_VARIABLE] (
+  [SUB_SCOPE_ID_] ASC,
+  [SCOPE_TYPE_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_VARIABLE_BA]
+ON [dbo].[ACT_RU_VARIABLE] (
+  [BYTEARRAY_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_VARIABLE_TASK_ID]
+ON [dbo].[ACT_RU_VARIABLE] (
+  [TASK_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_VARIABLE_EXEC]
+ON [dbo].[ACT_RU_VARIABLE] (
+  [EXECUTION_ID_] ASC
+)
+GO
+
+CREATE NONCLUSTERED INDEX [ACT_IDX_VARIABLE_PROCINST]
+ON [dbo].[ACT_RU_VARIABLE] (
+  [PROC_INST_ID_] ASC
+)
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table ACT_RU_VARIABLE
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_VARIABLE] ADD CONSTRAINT [PK__ACT_RU_V__C4971C0F18EBB532] PRIMARY KEY CLUSTERED ([ID_])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_APP_APPDEF
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_APP_APPDEF] ADD CONSTRAINT [ACT_FK_APP_DEF_DPLY] FOREIGN KEY ([DEPLOYMENT_ID_]) REFERENCES [dbo].[ACT_APP_DEPLOYMENT] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_APP_DEPLOYMENT_RESOURCE
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_APP_DEPLOYMENT_RESOURCE] ADD CONSTRAINT [ACT_FK_APP_RSRC_DPL] FOREIGN KEY ([DEPLOYMENT_ID_]) REFERENCES [dbo].[ACT_APP_DEPLOYMENT] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_CMMN_CASEDEF
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_CASEDEF] ADD CONSTRAINT [ACT_FK_CASE_DEF_DPLY] FOREIGN KEY ([DEPLOYMENT_ID_]) REFERENCES [dbo].[ACT_CMMN_DEPLOYMENT] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_CMMN_DEPLOYMENT_RESOURCE
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_DEPLOYMENT_RESOURCE] ADD CONSTRAINT [ACT_FK_CMMN_RSRC_DPL] FOREIGN KEY ([DEPLOYMENT_ID_]) REFERENCES [dbo].[ACT_CMMN_DEPLOYMENT] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_CMMN_RU_CASE_INST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_RU_CASE_INST] ADD CONSTRAINT [ACT_FK_CASE_INST_CASE_DEF] FOREIGN KEY ([CASE_DEF_ID_]) REFERENCES [dbo].[ACT_CMMN_CASEDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_CMMN_RU_MIL_INST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_RU_MIL_INST] ADD CONSTRAINT [ACT_FK_MIL_CASE_DEF] FOREIGN KEY ([CASE_DEF_ID_]) REFERENCES [dbo].[ACT_CMMN_CASEDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_RU_MIL_INST] ADD CONSTRAINT [ACT_FK_MIL_CASE_INST] FOREIGN KEY ([CASE_INST_ID_]) REFERENCES [dbo].[ACT_CMMN_RU_CASE_INST] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_CMMN_RU_PLAN_ITEM_INST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] ADD CONSTRAINT [ACT_FK_PLAN_ITEM_CASE_DEF] FOREIGN KEY ([CASE_DEF_ID_]) REFERENCES [dbo].[ACT_CMMN_CASEDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] ADD CONSTRAINT [ACT_FK_PLAN_ITEM_CASE_INST] FOREIGN KEY ([CASE_INST_ID_]) REFERENCES [dbo].[ACT_CMMN_RU_CASE_INST] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_CMMN_RU_SENTRY_PART_INST
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] ADD CONSTRAINT [ACT_FK_SENTRY_CASE_DEF] FOREIGN KEY ([CASE_DEF_ID_]) REFERENCES [dbo].[ACT_CMMN_CASEDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] ADD CONSTRAINT [ACT_FK_SENTRY_CASE_INST] FOREIGN KEY ([CASE_INST_ID_]) REFERENCES [dbo].[ACT_CMMN_RU_CASE_INST] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] ADD CONSTRAINT [ACT_FK_SENTRY_PLAN_ITEM] FOREIGN KEY ([PLAN_ITEM_INST_ID_]) REFERENCES [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_DE_MODEL_RELATION
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_DE_MODEL_RELATION] ADD CONSTRAINT [fk_relation_parent] FOREIGN KEY ([parent_model_id]) REFERENCES [dbo].[ACT_DE_MODEL] ([id]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_DE_MODEL_RELATION] ADD CONSTRAINT [fk_relation_child] FOREIGN KEY ([model_id]) REFERENCES [dbo].[ACT_DE_MODEL] ([id]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_GE_BYTEARRAY
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_GE_BYTEARRAY] ADD CONSTRAINT [ACT_FK_BYTEARR_DEPL] FOREIGN KEY ([DEPLOYMENT_ID_]) REFERENCES [dbo].[ACT_RE_DEPLOYMENT] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_ID_MEMBERSHIP
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_ID_MEMBERSHIP] ADD CONSTRAINT [ACT_FK_MEMB_GROUP] FOREIGN KEY ([GROUP_ID_]) REFERENCES [dbo].[ACT_ID_GROUP] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_ID_MEMBERSHIP] ADD CONSTRAINT [ACT_FK_MEMB_USER] FOREIGN KEY ([USER_ID_]) REFERENCES [dbo].[ACT_ID_USER] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_ID_PRIV_MAPPING
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_ID_PRIV_MAPPING] ADD CONSTRAINT [ACT_FK_PRIV_MAPPING] FOREIGN KEY ([PRIV_ID_]) REFERENCES [dbo].[ACT_ID_PRIV] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_PROCDEF_INFO
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_PROCDEF_INFO] ADD CONSTRAINT [ACT_FK_INFO_JSON_BA] FOREIGN KEY ([INFO_JSON_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_PROCDEF_INFO] ADD CONSTRAINT [ACT_FK_INFO_PROCDEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RE_MODEL
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RE_MODEL] ADD CONSTRAINT [ACT_FK_MODEL_SOURCE] FOREIGN KEY ([EDITOR_SOURCE_VALUE_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RE_MODEL] ADD CONSTRAINT [ACT_FK_MODEL_SOURCE_EXTRA] FOREIGN KEY ([EDITOR_SOURCE_EXTRA_VALUE_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RE_MODEL] ADD CONSTRAINT [ACT_FK_MODEL_DEPLOYMENT] FOREIGN KEY ([DEPLOYMENT_ID_]) REFERENCES [dbo].[ACT_RE_DEPLOYMENT] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_DEADLETTER_JOB
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_DEADLETTER_JOB] ADD CONSTRAINT [ACT_FK_DEADLETTER_JOB_EXCEPTION] FOREIGN KEY ([EXCEPTION_STACK_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_DEADLETTER_JOB] ADD CONSTRAINT [ACT_FK_DEADLETTER_JOB_CUSTOM_VALUES] FOREIGN KEY ([CUSTOM_VALUES_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_DEADLETTER_JOB] ADD CONSTRAINT [ACT_FK_DEADLETTER_JOB_EXECUTION] FOREIGN KEY ([EXECUTION_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_DEADLETTER_JOB] ADD CONSTRAINT [ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE] FOREIGN KEY ([PROCESS_INSTANCE_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_DEADLETTER_JOB] ADD CONSTRAINT [ACT_FK_DEADLETTER_JOB_PROC_DEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_EVENT_SUBSCR
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_EVENT_SUBSCR] ADD CONSTRAINT [ACT_FK_EVENT_EXEC] FOREIGN KEY ([EXECUTION_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_EXECUTION
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_EXECUTION] ADD CONSTRAINT [ACT_FK_EXE_PARENT] FOREIGN KEY ([PARENT_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_EXECUTION] ADD CONSTRAINT [ACT_FK_EXE_SUPER] FOREIGN KEY ([SUPER_EXEC_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_EXECUTION] ADD CONSTRAINT [ACT_FK_EXE_PROCDEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_IDENTITYLINK
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_IDENTITYLINK] ADD CONSTRAINT [ACT_FK_TSKASS_TASK] FOREIGN KEY ([TASK_ID_]) REFERENCES [dbo].[ACT_RU_TASK] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_IDENTITYLINK] ADD CONSTRAINT [ACT_FK_ATHRZ_PROCEDEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_IDENTITYLINK] ADD CONSTRAINT [ACT_FK_IDL_PROCINST] FOREIGN KEY ([PROC_INST_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_JOB
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_JOB] ADD CONSTRAINT [ACT_FK_JOB_EXCEPTION] FOREIGN KEY ([EXCEPTION_STACK_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_JOB] ADD CONSTRAINT [ACT_FK_JOB_CUSTOM_VALUES] FOREIGN KEY ([CUSTOM_VALUES_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_JOB] ADD CONSTRAINT [ACT_FK_JOB_EXECUTION] FOREIGN KEY ([EXECUTION_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_JOB] ADD CONSTRAINT [ACT_FK_JOB_PROCESS_INSTANCE] FOREIGN KEY ([PROCESS_INSTANCE_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_JOB] ADD CONSTRAINT [ACT_FK_JOB_PROC_DEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_SUSPENDED_JOB
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_SUSPENDED_JOB] ADD CONSTRAINT [ACT_FK_SUSPENDED_JOB_EXCEPTION] FOREIGN KEY ([EXCEPTION_STACK_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_SUSPENDED_JOB] ADD CONSTRAINT [ACT_FK_SUSPENDED_JOB_CUSTOM_VALUES] FOREIGN KEY ([CUSTOM_VALUES_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_SUSPENDED_JOB] ADD CONSTRAINT [ACT_FK_SUSPENDED_JOB_EXECUTION] FOREIGN KEY ([EXECUTION_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_SUSPENDED_JOB] ADD CONSTRAINT [ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE] FOREIGN KEY ([PROCESS_INSTANCE_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_SUSPENDED_JOB] ADD CONSTRAINT [ACT_FK_SUSPENDED_JOB_PROC_DEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_TASK
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_TASK] ADD CONSTRAINT [ACT_FK_TASK_EXE] FOREIGN KEY ([EXECUTION_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_TASK] ADD CONSTRAINT [ACT_FK_TASK_PROCINST] FOREIGN KEY ([PROC_INST_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_TASK] ADD CONSTRAINT [ACT_FK_TASK_PROCDEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_TIMER_JOB
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_TIMER_JOB] ADD CONSTRAINT [ACT_FK_TIMER_JOB_EXCEPTION] FOREIGN KEY ([EXCEPTION_STACK_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_TIMER_JOB] ADD CONSTRAINT [ACT_FK_TIMER_JOB_CUSTOM_VALUES] FOREIGN KEY ([CUSTOM_VALUES_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_TIMER_JOB] ADD CONSTRAINT [ACT_FK_TIMER_JOB_EXECUTION] FOREIGN KEY ([EXECUTION_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_TIMER_JOB] ADD CONSTRAINT [ACT_FK_TIMER_JOB_PROCESS_INSTANCE] FOREIGN KEY ([PROCESS_INSTANCE_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_TIMER_JOB] ADD CONSTRAINT [ACT_FK_TIMER_JOB_PROC_DEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+
+-- ----------------------------
+-- Foreign Keys structure for table ACT_RU_VARIABLE
+-- ----------------------------
+ALTER TABLE [dbo].[ACT_RU_VARIABLE] ADD CONSTRAINT [ACT_FK_VAR_BYTEARRAY] FOREIGN KEY ([BYTEARRAY_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_VARIABLE] ADD CONSTRAINT [ACT_FK_VAR_EXE] FOREIGN KEY ([EXECUTION_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
+ALTER TABLE [dbo].[ACT_RU_VARIABLE] ADD CONSTRAINT [ACT_FK_VAR_PROCINST] FOREIGN KEY ([PROC_INST_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION
+GO
+
diff --git a/skjcmanager/doc/sql/sqlserver/bladex-saber-sqlserver.sql b/skjcmanager/doc/sql/sqlserver/bladex-saber-sqlserver.sql
new file mode 100644
index 0000000..175575f
--- /dev/null
+++ b/skjcmanager/doc/sql/sqlserver/bladex-saber-sqlserver.sql
@@ -0,0 +1,5005 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : sqlserver_remote
+ Source Server Type    : SQL Server
+ Source Server Version : 10501600
+ Source Host           : 127.0.0.1:1433
+ Source Catalog        : bladex
+ Source Schema         : dbo
+
+ Target Server Type    : SQL Server
+ Target Server Version : 10501600
+ File Encoding         : 65001
+
+ Date: 07/08/2022 17:22:28
+*/
+
+
+-- ----------------------------
+-- Table structure for blade_attach
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_attach]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_attach]
+GO
+
+CREATE TABLE [dbo].[blade_attach] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [link] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [domain_url] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [name] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [original_name] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [extension] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [attach_size] bigint  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_attach] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附件地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'link'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附件域名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'domain_url'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附件名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附件原名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'original_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附件拓展名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'extension'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附件大小',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'attach_size'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附件表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_client
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_client]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_client]
+GO
+
+CREATE TABLE [dbo].[blade_client] (
+  [id] bigint  NOT NULL,
+  [client_id] nvarchar(48) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [client_secret] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [resource_ids] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [authorized_grant_types] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [web_server_redirect_uri] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NULL,
+  [authorities] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NULL,
+  [access_token_validity] int  NOT NULL,
+  [refresh_token_validity] int  NOT NULL,
+  [additional_information] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [autoapprove] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NOT NULL,
+  [is_deleted] int  NOT NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_client] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'客户端id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'client_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'客户端密钥',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'client_secret'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'资源集合',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'resource_ids'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'授权范围',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'scope'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'授权类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'authorized_grant_types'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'回调地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'web_server_redirect_uri'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'权限',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'authorities'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'令牌过期秒数',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'access_token_validity'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'刷新令牌过期秒数',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'refresh_token_validity'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附加说明',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'additional_information'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'自动授权',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'autoapprove'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'客户端表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client'
+GO
+
+
+-- ----------------------------
+-- Records of blade_client
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_client] VALUES (N'1123598811738675201', N'sword', N'sword_secret', NULL, N'all', N'refresh_token,password,authorization_code,captcha,social', N'http://localhost:8888', NULL, N'3600', N'604800', NULL, NULL, N'1123598815738675201', N'1123598813738675201', N'2019-03-24 10:40:55', N'1123598815738675201', N'2019-03-24 10:40:59', N'1', N'0'), (N'1123598811738675202', N'saber', N'saber_secret', NULL, N'all', N'refresh_token,password,authorization_code,captcha,social', N'http://localhost:1888', NULL, N'3600', N'604800', NULL, NULL, N'1123598815738675201', N'1123598813738675201', N'2019-03-24 10:42:29', N'1123598815738675201', N'2019-03-24 10:42:32', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_code
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_code]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_code]
+GO
+
+CREATE TABLE [dbo].[blade_code] (
+  [id] bigint  NOT NULL,
+  [model_id] bigint  NULL,
+  [service_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [code_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [table_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [table_prefix] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [pk_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [package_name] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [template_type] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [author] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sub_model_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sub_fk_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [tree_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [tree_pid] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [tree_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [base_mode] int  NULL,
+  [wrap_mode] int  NULL,
+  [feign_mode] int  NULL,
+  [code_style] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [api_path] nvarchar(2000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [web_path] nvarchar(2000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_code] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据模型主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'model_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'service_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模块名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'code_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'表名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'table_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'表前缀',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'table_prefix'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'pk_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'后端包名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'package_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'基础业务模式',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'base_mode'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'包装器模式',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'wrap_mode'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'远程调用模式',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'feign_mode'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'代码风格',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'code_style'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'后端路径',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'api_path'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'前端路径',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'web_path'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模版类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'template_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'作者信息',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'author'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'子表模型主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'sub_model_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'子表绑定外键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'sub_fk_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'树主键字段',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'tree_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'树父主键字段',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'tree_pid'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'树名称字段',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'tree_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'代码生成表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code'
+GO
+
+-- ----------------------------
+-- Table structure for blade_datasource
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_datasource]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_datasource]
+GO
+
+CREATE TABLE [dbo].[blade_datasource] (
+  [id] bigint  NOT NULL,
+  [name] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [driver_class] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [url] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [username] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [password] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_datasource] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'驱动类',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'driver_class'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'连接地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'url'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'username'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'密码',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'password'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据源配置表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource'
+GO
+
+
+-- ----------------------------
+-- Records of blade_datasource
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_datasource] VALUES (N'1161483357481541634', N'mysql', N'com.mysql.cj.jdbc.Driver', N'jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true', N'root', N'root', N'mysql', N'1123598821738675201', N'1123598813738675201', N'2020-08-08 12:20:06', N'1123598821738675201', N'2020-08-08 12:20:06', N'1', N'0'), (N'1161483504353484802', N'postgresql', N'org.postgresql.Driver', N'jdbc:postgresql://127.0.0.1:5432/bladex', N'postgres', N'123456', N'postgresql', N'1123598821738675201', N'1123598813738675201', N'2020-08-08 12:20:02', N'1123598821738675201', N'2020-08-08 12:20:02', N'1', N'0'), (N'1161483594023510018', N'oracle', N'oracle.jdbc.OracleDriver', N'jdbc:oracle:thin:@127.0.0.1:1521:orcl', N'BLADEX', N'BLADEX', N'oracle', N'1123598821738675201', N'1123598813738675201', N'2020-08-08 12:20:03', N'1123598821738675201', N'2020-08-08 12:20:03', N'1', N'0'), (N'1161483594023510020', N'sqlserver', N'com.microsoft.sqlserver.jdbc.SQLServerDriver', N'jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex', N'bladex', N'bladex', N'sqlserver', N'1123598821738675201', N'1123598813738675201', N'2020-08-08 12:20:03', N'1123598821738675201', N'2020-08-08 12:20:03', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_dept
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_dept]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_dept]
+GO
+
+CREATE TABLE [dbo].[blade_dept] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [parent_id] bigint  NULL,
+  [ancestors] nvarchar(2000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [dept_category] int  NULL,
+  [dept_name] nvarchar(45) COLLATE Chinese_PRC_CI_AS  NULL,
+  [full_name] nvarchar(45) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sort] int  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_dept] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'父主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'parent_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'祖级列表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'ancestors'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'部门类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'dept_category'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'部门名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'dept_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'部门全称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'full_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'机构表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept'
+GO
+
+
+-- ----------------------------
+-- Records of blade_dept
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_dept] VALUES (N'1123598813738675201', N'000000', N'0', N'0', N'1', N'布雷德科技', N'上海布雷德科技有限公司', N'1', NULL, N'0'), (N'1123598813738675202', N'000000', N'1123598813738675201', N'0,1123598813738675201', N'1', N'常州布雷德', N'常州布雷德科技有限公司', N'1', NULL, N'0'), (N'1123598813738675203', N'000000', N'1123598813738675201', N'0,1123598813738675201', N'1', N'苏州布雷德', N'苏州布雷德科技有限公司', N'1', NULL, N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_dict
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_dict]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_dict]
+GO
+
+CREATE TABLE [dbo].[blade_dict] (
+  [id] bigint  NOT NULL,
+  [parent_id] bigint  NULL,
+  [code] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [dict_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [dict_value] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sort] int  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_sealed] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_dict] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'父主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'parent_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典码',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典值',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'dict_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'dict_value'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已封存',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'is_sealed'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict'
+GO
+
+
+-- ----------------------------
+-- Records of blade_dict
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_dict] VALUES (N'1123598814738675201', N'0', N'sex', N'-1', N'性别', N'1', NULL, N'0', N'0'), (N'1123598814738675202', N'1123598814738675201', N'sex', N'1', N'男', N'1', NULL, N'0', N'0'), (N'1123598814738675203', N'1123598814738675201', N'sex', N'2', N'女', N'2', NULL, N'0', N'0'), (N'1123598814738675204', N'0', N'notice', N'-1', N'通知类型', N'2', NULL, N'0', N'0'), (N'1123598814738675205', N'1123598814738675204', N'notice', N'1', N'发布通知', N'1', NULL, N'0', N'0'), (N'1123598814738675206', N'1123598814738675204', N'notice', N'2', N'批转通知', N'2', NULL, N'0', N'0'), (N'1123598814738675207', N'1123598814738675204', N'notice', N'3', N'转发通知', N'3', NULL, N'0', N'0'), (N'1123598814738675208', N'1123598814738675204', N'notice', N'4', N'指示通知', N'4', NULL, N'0', N'0'), (N'1123598814738675209', N'1123598814738675204', N'notice', N'5', N'任免通知', N'5', NULL, N'0', N'0'), (N'1123598814738675210', N'1123598814738675204', N'notice', N'6', N'事务通知', N'6', NULL, N'0', N'0'), (N'1123598814738675211', N'0', N'menu_category', N'-1', N'菜单类型', N'3', NULL, N'0', N'0'), (N'1123598814738675212', N'1123598814738675211', N'menu_category', N'1', N'菜单', N'1', NULL, N'0', N'0'), (N'1123598814738675213', N'1123598814738675211', N'menu_category', N'2', N'按钮', N'2', NULL, N'0', N'0'), (N'1123598814738675214', N'0', N'button_func', N'-1', N'按钮功能', N'4', NULL, N'0', N'0'), (N'1123598814738675215', N'1123598814738675214', N'button_func', N'1', N'工具栏', N'1', NULL, N'0', N'0'), (N'1123598814738675216', N'1123598814738675214', N'button_func', N'2', N'操作栏', N'2', NULL, N'0', N'0'), (N'1123598814738675217', N'1123598814738675214', N'button_func', N'3', N'工具操作栏', N'3', NULL, N'0', N'0'), (N'1123598814738675218', N'0', N'yes_no', N'-1', N'是否', N'5', NULL, N'0', N'0'), (N'1123598814738675219', N'1123598814738675218', N'yes_no', N'1', N'否', N'1', NULL, N'0', N'0'), (N'1123598814738675220', N'1123598814738675218', N'yes_no', N'2', N'是', N'2', NULL, N'0', N'0'), (N'1123598814738675221', N'0', N'flow', N'-1', N'流程类型', N'5', NULL, N'0', N'0'), (N'1123598814738675222', N'1123598814738675221', N'flow', N'1', N'请假流程', N'1', N'leave', N'0', N'0'), (N'1123598814738675223', N'1123598814738675221', N'flow', N'2', N'报销流程', N'2', N'expense', N'0', N'0'), (N'1123598814738675227', N'0', N'org_category', N'-1', N'机构类型', N'7', NULL, N'0', N'0'), (N'1123598814738675228', N'1123598814738675227', N'org_category', N'1', N'公司', N'1', NULL, N'0', N'0'), (N'1123598814738675229', N'1123598814738675227', N'org_category', N'2', N'部门', N'2', NULL, N'0', N'0'), (N'1123598814738675230', N'1123598814738675227', N'org_category', N'3', N'小组', N'3', NULL, N'0', N'0'), (N'1123598814738675231', N'0', N'data_scope_type', N'-1', N'数据权限', N'8', NULL, N'0', N'0'), (N'1123598814738675232', N'1123598814738675231', N'data_scope_type', N'1', N'全部可见', N'1', NULL, N'0', N'0'), (N'1123598814738675233', N'1123598814738675231', N'data_scope_type', N'2', N'本人可见', N'2', NULL, N'0', N'0'), (N'1123598814738675234', N'1123598814738675231', N'data_scope_type', N'3', N'所在机构可见', N'3', NULL, N'0', N'0'), (N'1123598814738675235', N'1123598814738675231', N'data_scope_type', N'4', N'所在机构及子级可见', N'4', NULL, N'0', N'0'), (N'1123598814738675236', N'1123598814738675231', N'data_scope_type', N'5', N'自定义', N'5', NULL, N'0', N'0'), (N'1123598814738675237', N'0', N'api_scope_type', N'-1', N'接口权限', N'10', NULL, N'0', N'0'), (N'1123598814738675238', N'1123598814738675237', N'api_scope_type', N'1', N'系统接口', N'1', NULL, N'0', N'0'), (N'1123598814738675239', N'1123598814738675237', N'api_scope_type', N'2', N'业务接口', N'2', NULL, N'0', N'0'), (N'1123598814738675240', N'0', N'scope_category', N'-1', N'权限类型', N'10', NULL, N'0', N'0'), (N'1123598814738675241', N'1123598814738675240', N'scope_category', N'1', N'数据权限', N'1', NULL, N'0', N'0'), (N'1123598814738675242', N'1123598814738675240', N'scope_category', N'2', N'接口权限', N'2', NULL, N'0', N'0'), (N'1123598814738676224', N'0', N'oss', N'-1', N'对象存储类型', N'6', NULL, N'0', N'0'), (N'1123598814738676225', N'1123598814738676224', N'oss', N'1', N'minio', N'1', NULL, N'0', N'0'), (N'1123598814738676226', N'1123598814738676224', N'oss', N'2', N'七牛云', N'2', NULL, N'0', N'0'), (N'1123598814738676227', N'1123598814738676224', N'oss', N'3', N'阿里云', N'3', NULL, N'0', N'0'), (N'1123598814738676228', N'1123598814738676224', N'oss', N'4', N'腾讯云', N'4', NULL, N'0', N'0'), (N'1123598814738677220', N'0', N'sms', N'-1', N'短信服务类型', N'11', NULL, N'0', N'0'), (N'1123598814738677221', N'1123598814738677220', N'sms', N'1', N'云片', N'1', NULL, N'0', N'0'), (N'1123598814738677222', N'1123598814738677220', N'sms', N'2', N'七牛云', N'2', NULL, N'0', N'0'), (N'1123598814738677223', N'1123598814738677220', N'sms', N'3', N'阿里云', N'3', NULL, N'0', N'0'), (N'1123598814738677224', N'1123598814738677220', N'sms', N'4', N'腾讯云', N'4', NULL, N'0', N'0'), (N'1123598814738777220', N'0', N'post_category', N'-1', N'岗位类型', N'12', NULL, N'0', N'0'), (N'1123598814738777221', N'1123598814738777220', N'post_category', N'1', N'高层', N'1', NULL, N'0', N'0'), (N'1123598814738777222', N'1123598814738777220', N'post_category', N'2', N'中层', N'2', NULL, N'0', N'0'), (N'1123598814738777223', N'1123598814738777220', N'post_category', N'3', N'基层', N'3', NULL, N'0', N'0'), (N'1123598814738777224', N'1123598814738777220', N'post_category', N'4', N'其他', N'4', NULL, N'0', N'0'), (N'1123598814738777230', N'0', N'region', N'-1', N'行政区划', N'13', NULL, N'0', N'0'), (N'1123598814738777231', N'1123598814738777230', N'region', N'0', N'国家', N'0', NULL, N'0', N'0'), (N'1123598814738777232', N'1123598814738777230', N'region', N'1', N'省份/直辖市', N'1', NULL, N'0', N'0'), (N'1123598814738777233', N'1123598814738777230', N'region', N'2', N'地市', N'2', NULL, N'0', N'0'), (N'1123598814738777234', N'1123598814738777230', N'region', N'3', N'区县', N'3', NULL, N'0', N'0'), (N'1123598814738777235', N'1123598814738777230', N'region', N'4', N'乡镇', N'4', NULL, N'0', N'0'), (N'1123598814738777236', N'1123598814738777230', N'region', N'5', N'村委', N'5', NULL, N'0', N'0'), (N'1123598814738778200', N'0', N'user_type', N'-1', N'用户平台', N'14', NULL, N'0', N'0'), (N'1123598814738778201', N'1123598814738778200', N'user_type', N'1', N'WEB', N'1', NULL, N'0', N'0'), (N'1123598814738778202', N'1123598814738778200', N'user_type', N'2', N'APP', N'2', NULL, N'0', N'0'), (N'1123598814738778203', N'1123598814738778200', N'user_type', N'3', N'OTHER', N'3', NULL, N'0', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_dict_biz
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_dict_biz]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_dict_biz]
+GO
+
+CREATE TABLE [dbo].[blade_dict_biz] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [parent_id] bigint  NULL,
+  [code] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [dict_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [dict_value] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sort] int  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_sealed] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_dict_biz] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'父主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'parent_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典码',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典值',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'dict_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'dict_value'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已封存',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'is_sealed'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'业务字典表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_log_api
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_log_api]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_log_api]
+GO
+
+CREATE TABLE [dbo].[blade_log_api] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [service_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [server_host] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [server_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [env] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [type] nchar(1) COLLATE Chinese_PRC_CI_AS  NULL,
+  [title] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL,
+  [request_uri] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [user_agent] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remote_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method_class] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [params] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [time] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_by] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_time] datetime2(0)  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_log_api] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'service_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务器名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'server_host'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务器IP地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'server_ip'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务器环境',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'env'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'日志类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'日志标题',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'title'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作方式',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'method'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'请求URI',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'request_uri'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户代理',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'user_agent'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作IP地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'remote_ip'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'方法类',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'method_class'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'方法名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'method_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作提交的数据',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'params'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'执行时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建者',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'create_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'接口日志表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_log_error
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_log_error]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_log_error]
+GO
+
+CREATE TABLE [dbo].[blade_log_error] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [service_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [server_host] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [server_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [env] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL,
+  [request_uri] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [user_agent] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [stack_trace] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [exception_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [message] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [line_number] int  NULL,
+  [remote_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method_class] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [file_name] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [params] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_by] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_time] datetime2(0)  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_log_error] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'service_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务器名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'server_host'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务器IP地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'server_ip'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'系统环境',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'env'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作方式',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'method'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'请求URI',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'request_uri'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户代理',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'user_agent'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'堆栈',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'stack_trace'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'异常名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'exception_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'异常信息',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'message'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'错误行数',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'line_number'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作IP地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'remote_ip'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'方法类',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'method_class'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'文件名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'file_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'方法名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'method_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作提交的数据',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'params'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建者',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'create_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'错误日志表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_log_usual
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_log_usual]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_log_usual]
+GO
+
+CREATE TABLE [dbo].[blade_log_usual] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [service_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [server_host] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [server_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [env] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [log_level] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL,
+  [log_id] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [log_data] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL,
+  [request_uri] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remote_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method_class] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [user_agent] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [params] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_by] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_time] datetime2(0)  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_log_usual] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'service_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务器名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'server_host'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务器IP地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'server_ip'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'系统环境',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'env'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'日志级别',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'log_level'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'日志业务id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'log_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'日志数据',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'log_data'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作方式',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'method'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'请求URI',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'request_uri'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作IP地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'remote_ip'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'方法类',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'method_class'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'方法名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'method_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户代理',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'user_agent'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作提交的数据',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'params'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建者',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'create_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'通用日志表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_menu
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_menu]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_menu]
+GO
+
+CREATE TABLE [dbo].[blade_menu] (
+  [id] bigint  NOT NULL,
+  [parent_id] bigint  NULL,
+  [code] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [alias] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [path] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [source] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sort] int  NULL,
+  [category] int  NULL,
+  [action] int  NULL,
+  [is_open] int  NULL,
+  [component] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_menu] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'父级菜单',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'parent_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单别名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'alias'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'请求地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'path'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单资源',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'source'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'category'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作按钮类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'action'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否打开新页面',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'is_open'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'组件地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'component'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu'
+GO
+
+
+-- ----------------------------
+-- Records of blade_menu
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_menu] VALUES (N'1123598815738675201', N'0', N'desk', N'工作台', N'menu', N'/desk', N'iconfont iconicon_airplay', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675202', N'1123598815738675201', N'notice', N'通知公告', N'menu', N'/desk/notice', N'iconfont iconicon_sms', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675203', N'0', N'system', N'系统管理', N'menu', N'/system', N'iconfont iconicon_setting', N'99', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675204', N'1123598815738675203', N'user', N'用户管理', N'menu', N'/system/user', N'iconfont iconicon_principal', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675205', N'1123598815738675203', N'dept', N'机构管理', N'menu', N'/system/dept', N'iconfont iconicon_group', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675206', N'1123598815738675203', N'dict', N'系统字典', N'menu', N'/system/dict', N'iconfont iconicon_addresslist', N'4', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675207', N'1123598815738675203', N'menu', N'菜单管理', N'menu', N'/system/menu', N'iconfont iconicon_subordinate', N'6', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675208', N'1123598815738675203', N'topmenu', N'顶部菜单', N'menu', N'/system/topmenu', N'iconfont icon-canshu', N'7', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675209', N'1123598815738675203', N'param', N'参数管理', N'menu', N'/system/param', N'iconfont iconicon_community_line', N'8', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675210', N'0', N'monitor', N'系统监控', N'menu', N'/monitor', N'iconfont icon-yanzhengma', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675211', N'1123598815738675210', N'doc', N'接口文档', N'menu', N'http://localhost:18000/doc.html', N'iconfont iconicon_study', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675212', N'1123598815738675210', N'admin', N'服务治理', N'menu', N'http://localhost:7002', N'iconfont icon-canshu', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675213', N'1123598815738675210', N'log', N'日志管理', N'menu', N'/monitor/log', N'iconfont iconicon_doc', N'8', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675214', N'1123598815738675213', N'log_usual', N'通用日志', N'menu', N'/monitor/log/usual', NULL, N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675215', N'1123598815738675213', N'log_api', N'接口日志', N'menu', N'/monitor/log/api', NULL, N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675216', N'1123598815738675213', N'log_error', N'错误日志', N'menu', N'/monitor/log/error', NULL, N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675217', N'0', N'tool', N'研发工具', N'menu', N'/tool', N'iconfont icon-wxbgongju', N'4', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675218', N'1123598815738675217', N'code', N'代码生成', N'menu', N'/tool/code', N'iconfont iconicon_savememo', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675219', N'1123598815738675202', N'notice_add', N'新增', N'add', N'/desk/notice/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675220', N'1123598815738675202', N'notice_edit', N'修改', N'edit', N'/desk/notice/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675221', N'1123598815738675202', N'notice_delete', N'删除', N'delete', N'/api/blade-desk/notice/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675222', N'1123598815738675202', N'notice_view', N'查看', N'view', N'/desk/notice/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675223', N'1123598815738675204', N'user_add', N'新增', N'add', N'/system/user/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675224', N'1123598815738675204', N'user_edit', N'修改', N'edit', N'/system/user/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675225', N'1123598815738675204', N'user_delete', N'删除', N'delete', N'/api/blade-user/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675226', N'1123598815738675204', N'user_role', N'角色配置', N'role', NULL, N'user-add', N'4', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675227', N'1123598815738675204', N'user_reset', N'密码重置', N'reset-password', N'/api/blade-user/reset-password', N'retweet', N'5', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675228', N'1123598815738675204', N'user_view', N'查看', N'view', N'/system/user/view', N'file-text', N'6', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675229', N'1123598815738675205', N'dept_add', N'新增', N'add', N'/system/dept/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675230', N'1123598815738675205', N'dept_edit', N'修改', N'edit', N'/system/dept/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675231', N'1123598815738675205', N'dept_delete', N'删除', N'delete', N'/api/blade-system/dept/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675232', N'1123598815738675205', N'dept_view', N'查看', N'view', N'/system/dept/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675233', N'1123598815738675206', N'dict_add', N'新增', N'add', N'/system/dict/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675234', N'1123598815738675206', N'dict_edit', N'修改', N'edit', N'/system/dict/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675235', N'1123598815738675206', N'dict_delete', N'删除', N'delete', N'/api/blade-system/dict/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675236', N'1123598815738675206', N'dict_view', N'查看', N'view', N'/system/dict/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675237', N'1123598815738675207', N'menu_add', N'新增', N'add', N'/system/menu/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675238', N'1123598815738675207', N'menu_edit', N'修改', N'edit', N'/system/menu/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675239', N'1123598815738675207', N'menu_delete', N'删除', N'delete', N'/api/blade-system/menu/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675240', N'1123598815738675207', N'menu_view', N'查看', N'view', N'/system/menu/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675241', N'1123598815738675308', N'role_add', N'新增', N'add', N'/authority/role/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675242', N'1123598815738675308', N'role_edit', N'修改', N'edit', N'/authority/role/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675243', N'1123598815738675308', N'role_delete', N'删除', N'delete', N'/api/blade-system/role/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675244', N'1123598815738675308', N'role_view', N'查看', N'view', N'/authority/role/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675245', N'1123598815738675209', N'param_add', N'新增', N'add', N'/system/param/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675246', N'1123598815738675209', N'param_edit', N'修改', N'edit', N'/system/param/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675247', N'1123598815738675209', N'param_delete', N'删除', N'delete', N'/api/blade-system/param/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675248', N'1123598815738675209', N'param_view', N'查看', N'view', N'/system/param/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675249', N'1123598815738675214', N'log_usual_view', N'查看', N'view', N'/monitor/log/usual/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675250', N'1123598815738675215', N'log_api_view', N'查看', N'view', N'/monitor/log/api/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675251', N'1123598815738675216', N'log_error_view', N'查看', N'view', N'/monitor/log/error/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675252', N'1123598815738675218', N'code_add', N'新增', N'add', N'/tool/code/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675253', N'1123598815738675218', N'code_edit', N'修改', N'edit', N'/tool/code/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675254', N'1123598815738675218', N'code_delete', N'删除', N'delete', N'/api/blade-system/code/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675255', N'1123598815738675218', N'code_view', N'查看', N'view', N'/tool/code/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675256', N'1123598815738675203', N'tenant', N'租户管理', N'menu', N'/system/tenant', N'iconfont icon-quanxian', N'9', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675257', N'1123598815738675256', N'tenant_add', N'新增', N'add', N'/system/tenant/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675258', N'1123598815738675256', N'tenant_edit', N'修改', N'edit', N'/system/tenant/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675259', N'1123598815738675256', N'tenant_delete', N'删除', N'delete', N'/api/blade-system/tenant/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675260', N'1123598815738675256', N'tenant_view', N'查看', N'view', N'/system/tenant/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675261', N'1123598815738675203', N'client', N'应用管理', N'menu', N'/system/client', N'iconfont iconicon_mobilephone', N'10', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675262', N'1123598815738675261', N'client_add', N'新增', N'add', N'/system/client/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675263', N'1123598815738675261', N'client_edit', N'修改', N'edit', N'/system/client/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675264', N'1123598815738675261', N'client_delete', N'删除', N'delete', N'/api/blade-system/client/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675265', N'1123598815738675261', N'client_view', N'查看', N'view', N'/system/client/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675266', N'0', N'flow', N'流程管理', N'menu', N'/flow', N'iconfont iconicon_send', N'5', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675267', N'1123598815738675266', N'flow_model', N'模型管理', N'menu', N'/flow/model', N'iconfont iconicon_discovery', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675268', N'1123598815738675267', N'flow_model_create', N'创建', N'create', N'', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675269', N'1123598815738675267', N'flow_model_update', N'编辑', N'update', N'', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675270', N'1123598815738675267', N'flow_model_deploy', N'部署', N'deploy', N'', N'cloud-upload', N'3', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675271', N'1123598815738675267', N'flow_model_download', N'下载', N'download', N'', N'download', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675272', N'1123598815738675267', N'flow_model_delete', N'删除', N'delete', N'/api/blade-flow/model/remove', N'delete', N'5', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675273', N'1123598815738675266', N'flow_deploy', N'流程部署', N'menu', N'/flow/deploy', N'iconfont iconicon_cspace', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675274', N'1123598815738675266', N'flow_manager', N'流程管理', N'menu', N'/flow/manager', N'iconfont iconicon_cloud_history', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675275', N'1123598815738675274', N'flow_manager_state', N'变更状态', N'state', N'', N'plus', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675276', N'1123598815738675274', N'flow_manager_image', N'流程图', N'image', N'', N'image', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675277', N'1123598815738675274', N'flow_manager_remove', N'删除', N'remove', N'', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675278', N'1123598815738675266', N'flow_follow', N'流程跟踪', N'menu', N'/flow/follow', N'iconfont iconicon_GPS', N'4', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675279', N'1123598815738675278', N'flow_follow_delete', N'删除', N'remove', N'', N'remove', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675280', N'0', N'work', N'我的事务', N'menu', N'/work', N'iconfont iconicon_notice', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675281', N'1123598815738675280', N'work_start', N'发起事务', N'menu', N'/work/start', N'iconfont iconicon_compile', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675282', N'1123598815738675281', N'work_start_flow', N'发起', N'flow', N'', N'flow', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675283', N'1123598815738675281', N'work_start_image', N'流程图', N'image', N'', N'image', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675284', N'1123598815738675280', N'work_claim', N'待签事务', N'menu', N'/work/claim', N'iconfont iconicon_ding', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675285', N'1123598815738675284', N'work_claim_sign', N'签收', N'sign', N'', N'sign', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675286', N'1123598815738675284', N'work_claim_detail', N'详情', N'detail', N'', N'detail', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675287', N'1123598815738675284', N'work_claim_follow', N'跟踪', N'follow', N'', N'follow', N'3', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675288', N'1123598815738675280', N'work_todo', N'待办事务', N'menu', N'/work/todo', N'iconfont iconicon_savememo', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675289', N'1123598815738675288', N'work_todo_handle', N'办理', N'handle', N'', N'handle', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675290', N'1123598815738675288', N'work_todo_detail', N'详情', N'detail', N'', N'detail', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675291', N'1123598815738675288', N'work_todo_follow', N'跟踪', N'follow', N'', N'follow', N'3', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675292', N'1123598815738675280', N'work_send', N'已发事务', N'menu', N'/work/send', N'iconfont iconicon_doc', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675293', N'1123598815738675292', N'work_send_detail', N'详情', N'detail', N'', N'detail', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675294', N'1123598815738675292', N'work_send_follow', N'跟踪', N'follow', N'', N'follow', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675295', N'1123598815738675280', N'work_done', N'办结事务', N'menu', N'/work/done', N'iconfont iconicon_dispose', N'4', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675296', N'1123598815738675295', N'work_done_detail', N'详情', N'detail', N'', N'detail', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675297', N'1123598815738675295', N'work_done_follow', N'跟踪', N'follow', N'', N'follow', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675298', N'0', N'resource', N'资源管理', N'menu', N'/resource', N'iconfont iconicon_coinpurse_line', N'6', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675299', N'1123598815738675298', N'oss', N'对象存储', N'menu', N'/resource/oss', N'iconfont iconicon_subordinate', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675301', N'1123598815738675299', N'oss_add', N'新增', N'add', N'/resource/oss/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675302', N'1123598815738675299', N'oss_edit', N'修改', N'edit', N'/resource/oss/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675303', N'1123598815738675299', N'oss_delete', N'删除', N'delete', N'/api/blade-resource/oss/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675304', N'1123598815738675299', N'oss_view', N'查看', N'view', N'/resource/oss/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675305', N'1123598815738675299', N'oss_enable', N'启用', N'enable', N'/api/blade-resource/oss/enable', N'key', N'5', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675307', N'0', N'authority', N'权限管理', N'menu', N'/authority', N'iconfont icon-bofangqi-suoping', N'98', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675308', N'1123598815738675307', N'role', N'角色管理', N'menu', N'/authority/role', N'iconfont iconicon_boss', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675309', N'1123598815738675307', N'data_scope', N'数据权限', N'menu', N'/authority/datascope', N'iconfont icon-shujuzhanshi2', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675310', N'1123598815738675309', N'data_scope_setting', N'权限配置', N'setting', NULL, N'setting', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675311', N'1123598815738675307', N'api_scope', N'接口权限', N'menu', N'/authority/apiscope', N'iconfont icon-iconset0216', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675312', N'1123598815738675311', N'api_scope_setting', N'权限配置', N'setting', NULL, N'setting', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675313', N'1123598815738675208', N'topmenu_add', N'新增', N'add', N'/system/topmenu/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675314', N'1123598815738675208', N'topmenu_edit', N'修改', N'edit', N'/system/topmenu/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675315', N'1123598815738675208', N'topmenu_delete', N'删除', N'delete', N'/api/blade-system/topmenu/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675316', N'1123598815738675208', N'topmenu_view', N'查看', N'view', N'/system/topmenu/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675317', N'1123598815738675208', N'topmenu_setting', N'菜单配置', N'setting', NULL, N'setting', N'5', N'2', N'1', N'1', N'', NULL, N'0'), (N'1161272593873321991', N'1123598815738675217', N'datasource', N'数据源管理', N'menu', N'/tool/datasource', N'iconfont icon-caidanguanli', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1161272593873321992', N'1161272593873321991', N'datasource_add', N'新增', N'add', N'/tool/datasource/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1161272593873321993', N'1161272593873321991', N'datasource_edit', N'修改', N'edit', N'/tool/datasource/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1161272593873321994', N'1161272593873321991', N'datasource_delete', N'删除', N'delete', N'/api/blade-develop/datasource/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1161272593873321995', N'1161272593873321991', N'datasource_view', N'查看', N'view', N'/tool/datasource/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1161272593873321996', N'1123598815738675217', N'model', N'数据模型设计', N'menu', N'/tool/model', N'iconfont icon-biaodan', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733369658963251', N'1123598815738675210', N'elk', N'ELK监控', N'menu', N'http://localhost:5601/', N'iconfont iconicon_cspace', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733369658963252', N'1123598815738675210', N'zipkin', N'Zipkin监控', N'menu', N'http://localhost:9411/', N'iconfont iconicon_task', N'4', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733369658963253', N'1123598815738675210', N'turbine', N'Turbine监控', N'menu', N'http://localhost:7003/hystrix', N'iconfont iconicon_subordinate', N'5', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733369658963254', N'1123598815738675210', N'sentinel', N'Sentinel管理', N'menu', N'http://localhost:8858', N'iconfont iconicon_safety', N'6', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733369658963255', N'1123598815738675210', N'es', N'Elasticsearch管理', N'menu', N'http://localhost:9100/', N'iconfont iconfont iconicon_search', N'7', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733379658963251', N'1123598815738675203', N'dictbiz', N'业务字典', N'menu', N'/system/dictbiz', N'iconfont iconicon_study', N'5', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733379658963252', N'1164733379658963251', N'dictbiz_add', N'新增', N'add', N'/system/dictbiz/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1164733379658963253', N'1164733379658963251', N'dictbiz_edit', N'修改', N'edit', N'/system/dictbiz/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733379658963254', N'1164733379658963251', N'dictbiz_delete', N'删除', N'delete', N'/api/blade-system/dict-biz/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1164733379658963255', N'1164733379658963251', N'dictbiz_view', N'查看', N'view', N'/system/dictbiz/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733389658962251', N'1123598815738675298', N'sms', N'短信配置', N'menu', N'/resource/sms', N'iconfont iconicon_message', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733389658962252', N'1164733389658962251', N'sms_add', N'新增', N'add', N'/resource/sms/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1164733389658962253', N'1164733389658962251', N'sms_edit', N'修改', N'edit', N'/resource/sms/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733389658962254', N'1164733389658962251', N'sms_delete', N'删除', N'delete', N'/api/blade-resource/sms/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1164733389658962255', N'1164733389658962251', N'sms_view', N'查看', N'view', N'/resource/sms/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733389658962256', N'1164733389658962251', N'sms_enable', N'启用', N'enable', N'/api/blade-resource/sms/enable', N'key', N'5', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733389658963251', N'1123598815738675298', N'xxljob', N'任务调度', N'menu', N'http://localhost:7009/xxl-job-admin', N'iconfont iconicon_cspace', N'5', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733389668962251', N'1123598815738675203', N'post', N'岗位管理', N'menu', N'/system/post', N'iconfont iconicon_message', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733389668962252', N'1164733389668962251', N'post_add', N'新增', N'add', N'/system/post/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1164733389668962253', N'1164733389668962251', N'post_edit', N'修改', N'edit', N'/system/post/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733389668962254', N'1164733389668962251', N'post_delete', N'删除', N'delete', N'/api/blade-system/post/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1164733389668962255', N'1164733389668962251', N'post_view', N'查看', N'view', N'/system/post/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733399668962201', N'0', N'base', N'基础配置', N'menu', N'/base', N'iconfont iconicon_affiliations_li', N'97', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399668962202', N'1164733399668962201', N'region', N'行政区划', N'menu', N'/base/region', N'iconfont icon-iframe', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399668962203', N'1164733399668962202', N'region_add', N'新增下级', N'add', N'', N'', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1164733399668962204', N'1164733399668962202', N'region_delete', N'删除', N'delete', N'/api/blade-system/region/remove', N'', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733399668962205', N'1164733399668962202', N'region_import', N'导入', N'import', N'', N'', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1164733399668962206', N'1164733399668962202', N'region_export', N'导出', N'export', N'', N'', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733399668962207', N'1164733399668962202', N'region_debug', N'调试', N'debug', N'', N'', N'5', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733399669962201', N'1123598815738675298', N'attach', N'附件管理', N'menu', N'/resource/attach', N'iconfont iconicon_ding', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399669962202', N'1164733399669962201', N'attach_upload', N'上传', N'upload', N'/resource/attach/upload', N'', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1164733399669962203', N'1164733399669962201', N'attach_download', N'下载', N'download', N'/resource/attach/download', N'', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733399669962204', N'1164733399669962201', N'attach_delete', N'删除', N'delete', N'/api/blade-resource/attach/remove', N'', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1164733399669962301', N'0', N'report', N'报表管理', N'menu', N'/report', N'iconfont icon-shujuzhanshi2', N'5', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399669962302', N'1164733399669962301', N'report_setting', N'报表配置', N'menu', N'http://localhost:8108/ureport/designer', N'iconfont icon-rizhi', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399669962303', N'1164733399669962301', N'report_list', N'报表列表', N'menu', N'/report/reportlist', N'iconfont icon-biaodan', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399669962304', N'1164733399669962301', N'report_notice', N'公告报表', N'menu', N'http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml', N'iconfont iconicon_sms', N'3', N'1', N'0', N'1', N'', NULL, N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_model
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_model]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_model]
+GO
+
+CREATE TABLE [dbo].[blade_model] (
+  [id] bigint  NOT NULL,
+  [datasource_id] bigint  NULL,
+  [model_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [model_code] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [model_table] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [model_class] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [model_remark] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_model] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据源主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'datasource_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模型名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'model_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模型编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'model_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'物理表名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'model_table'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模型类名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'model_class'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模型备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'model_remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据模型表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_model_prototype
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_model_prototype]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_model_prototype]
+GO
+
+CREATE TABLE [dbo].[blade_model_prototype] (
+  [id] bigint  NOT NULL,
+  [model_id] bigint  NULL,
+  [jdbc_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [jdbc_type] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [comment] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [property_type] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [property_entity] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [property_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_list] int  NULL,
+  [is_form] int  NULL,
+  [is_row] int  NULL,
+  [component_type] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [dict_code] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_required] int  NULL,
+  [validate_type] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_query] int  NULL,
+  [query_type] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_model_prototype] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模型主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'model_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'物理列名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'jdbc_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'物理类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'jdbc_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'注释说明',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'comment'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'实体类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'property_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'实体类型引用',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'property_entity'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'实体列名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'property_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'列表显示',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'is_list'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'表单显示',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'is_form'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'独占一行',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'is_row'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'组件类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'component_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典编码',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'dict_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否必填',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'is_required'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'验证类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'validate_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'查询配置',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'is_query'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'查询类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'query_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据原型表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_notice
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_notice]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_notice]
+GO
+
+CREATE TABLE [dbo].[blade_notice] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [title] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [category] int  NULL,
+  [release_time] datetime2(0)  NULL,
+  [content] nvarchar(2000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_notice] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'标题',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'title'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'category'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'发布时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'release_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'内容',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'content'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'通知公告表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice'
+GO
+
+
+-- ----------------------------
+-- Records of blade_notice
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_notice] VALUES (N'1123598818738675223', N'000000', N'测试公告', N'3', N'2018-12-31 20:03:31', N'222', N'1123598821738675201', N'1123598813738675201', N'2018-12-05 20:03:31', N'1123598821738675201', N'2018-12-28 11:10:51', N'1', N'0'), (N'1123598818738675224', N'000000', N'测试公告2', N'1', N'2018-12-05 20:03:31', N'333', N'1123598821738675201', N'1123598813738675201', N'2018-12-28 10:32:26', N'1123598821738675201', N'2018-12-28 11:10:34', N'1', N'0'), (N'1123598818738675225', N'000000', N'测试公告3', N'6', N'2018-12-29 00:00:00', N'11111', N'1123598821738675201', N'1123598813738675201', N'2018-12-28 11:03:44', N'1123598821738675201', N'2018-12-28 11:10:28', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_oss
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_oss]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_oss]
+GO
+
+CREATE TABLE [dbo].[blade_oss] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [category] int  NULL,
+  [oss_code] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [endpoint] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [access_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [secret_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [bucket_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [app_id] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [region] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_oss] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'分类',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'category'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'资源编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'oss_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'资源地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'endpoint'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'accessKey',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'access_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'secretKey',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'secret_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'空间名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'bucket_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'应用ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'app_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'地域简称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'region'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'对象存储表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss'
+GO
+
+
+-- ----------------------------
+-- Records of blade_oss
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_oss] VALUES (N'1132486733992468482', N'000000', N'1', N'minio', N'http://127.0.0.1:9000', N'D99KGE6ZTQXSATTJWU24', N'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', N'bladex', N'', N'', N'', N'1123598821738675201', N'1123598813738675201', N'2019-05-26 11:20:52', N'1123598821738675201', N'2019-05-27 08:34:55', N'2', N'0'), (N'1132487155981393922', N'000000', N'2', N'qiniu', N'http://ps458elcs.bkt.clouddn.com', N'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', N'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', N'bladex', N'', N'', N'', N'1123598821738675201', N'1123598813738675201', N'2019-05-26 11:22:33', N'1123598821738675201', N'2019-05-26 23:27:56', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_param
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_param]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_param]
+GO
+
+CREATE TABLE [dbo].[blade_param] (
+  [id] bigint  NOT NULL,
+  [param_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [param_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [param_value] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_param] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'参数名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'param_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'参数键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'param_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'参数值',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'param_value'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'参数表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param'
+GO
+
+
+-- ----------------------------
+-- Records of blade_param
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_param] VALUES (N'1123598819738675201', N'是否开启注册功能', N'account.registerUser', N'true', N'开启注册', N'1123598821738675201', N'1123598813738675201', N'2018-12-28 12:19:01', N'1123598821738675201', N'2018-12-28 12:19:01', N'1', N'0'), (N'1123598819738675202', N'账号初始密码', N'account.initPassword', N'123456', N'初始密码', N'1123598821738675201', N'1123598813738675201', N'2018-12-28 12:19:01', N'1123598821738675201', N'2018-12-28 12:19:01', N'1', N'0'), (N'1123598819738675203', N'账号错误锁定次数', N'account.failCount', N'5', N'锁定次数', N'1123598821738675201', N'1123598813738675201', N'2021-12-01 12:00:00', N'1123598821738675201', N'2021-12-01 12:00:00', N'1', N'0'), (N'1238706101399142402', N'租户默认管理密码', N'tenant.default.password', N'admin', NULL, N'1123598821738675201', N'1123598813738675201', N'2020-03-14 13:58:43', N'1123598821738675201', N'2020-03-14 13:58:43', N'1', N'0'), (N'1238706160295559170', N'租户默认账号额度', N'tenant.default.accountNumber', N'100', NULL, N'1123598821738675201', N'1123598813738675201', N'2020-03-14 13:58:57', N'1123598821738675201', N'2020-03-14 13:58:57', N'1', N'0'), (N'1238706330076790786', N'租户默认菜单集合', N'tenant.default.menuCode', N'desk,flow,work,monitor,resource,role,user,dept,post,dictbiz,topmenu', NULL, N'1123598821738675201', N'1123598813738675201', N'2020-03-14 13:59:38', N'1123598821738675201', N'2020-03-14 13:59:38', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_post
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_post]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_post]
+GO
+
+CREATE TABLE [dbo].[blade_post] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [category] int  NULL,
+  [post_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [post_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sort] int  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_post] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'岗位类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'category'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'岗位编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'post_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'岗位名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'post_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'岗位排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'岗位描述',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'岗位表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post'
+GO
+
+
+-- ----------------------------
+-- Records of blade_post
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_post] VALUES (N'1123598817738675201', N'000000', N'1', N'ceo', N'首席执行官', N'1', N'总经理', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675202', N'000000', N'1', N'coo', N'首席运营官', N'2', N'常务总经理', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675203', N'000000', N'1', N'cfo', N'首席财务官', N'3', N'财务总经理', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675204', N'000000', N'1', N'cto', N'首席技术官', N'4', N'技术总监', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675205', N'000000', N'1', N'cio', N'首席信息官', N'5', N'信息总监', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675206', N'000000', N'2', N'pm', N'技术经理', N'6', N'研发和产品是永远的朋友', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675207', N'000000', N'2', N'hrm', N'人力经理', N'7', N'人力资源部门工作管理者', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675208', N'000000', N'3', N'staff', N'普通员工', N'8', N'普通员工', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_process_leave
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_process_leave]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_process_leave]
+GO
+
+CREATE TABLE [dbo].[blade_process_leave] (
+  [id] bigint  NOT NULL,
+  [process_definition_id] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [process_instance_id] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [start_time] datetime2(0)  NULL,
+  [end_time] datetime2(0)  NULL,
+  [reason] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [task_user] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [apply_time] datetime2(0)  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_process_leave] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'流程定义主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'process_definition_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'流程实例主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'process_instance_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'开始时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'start_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'结束时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'end_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'请假理由',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'reason'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'第一级审批人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'task_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'申请时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'apply_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'流程请假业务表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_region
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_region]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_region]
+GO
+
+CREATE TABLE [dbo].[blade_region] (
+  [code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [parent_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ancestors] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [name] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [province_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [province_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [city_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [city_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [district_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [district_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [town_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [town_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [village_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [village_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [region_level] int  NULL,
+  [sort] int  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_region] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'父区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'parent_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'祖区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'ancestors'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'区划名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'省级区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'province_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'省级名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'province_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'市级区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'city_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'市级名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'city_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'区级区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'district_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'区级名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'district_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'镇级区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'town_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'镇级名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'town_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'村级区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'village_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'村级名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'village_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'层级',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'region_level'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'行政区划表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region'
+GO
+
+
+-- ----------------------------
+-- Records of blade_region
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'00', N'0', N'0', N'中华人民共和国', N'', N'', N'', N'', N'', N'', N'', N'', N'', N'', N'0', N'1', N''), (N'11', N'00', N'00', N'北京市', N'11', N'北京市', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'1101', N'11', N'00,11', N'北京市', N'11', N'北京市', N'1101', N'北京市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'110101', N'1101', N'00,11,1101', N'东城区', N'11', N'北京市', N'1101', N'北京市', N'110101', N'东城区', N'', N'', N'', N'', N'3', N'1', N''), (N'110102', N'1101', N'00,11,1101', N'西城区', N'11', N'北京市', N'1101', N'北京市', N'110102', N'西城区', N'', N'', N'', N'', N'3', N'1', N''), (N'110105', N'1101', N'00,11,1101', N'朝阳区', N'11', N'北京市', N'1101', N'北京市', N'110105', N'朝阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'110106', N'1101', N'00,11,1101', N'丰台区', N'11', N'北京市', N'1101', N'北京市', N'110106', N'丰台区', N'', N'', N'', N'', N'3', N'1', N''), (N'110107', N'1101', N'00,11,1101', N'石景山区', N'11', N'北京市', N'1101', N'北京市', N'110107', N'石景山区', N'', N'', N'', N'', N'3', N'1', N''), (N'110108', N'1101', N'00,11,1101', N'海淀区', N'11', N'北京市', N'1101', N'北京市', N'110108', N'海淀区', N'', N'', N'', N'', N'3', N'1', N''), (N'110109', N'1101', N'00,11,1101', N'门头沟区', N'11', N'北京市', N'1101', N'北京市', N'110109', N'门头沟区', N'', N'', N'', N'', N'3', N'1', N''), (N'110111', N'1101', N'00,11,1101', N'房山区', N'11', N'北京市', N'1101', N'北京市', N'110111', N'房山区', N'', N'', N'', N'', N'3', N'1', N''), (N'110112', N'1101', N'00,11,1101', N'通州区', N'11', N'北京市', N'1101', N'北京市', N'110112', N'通州区', N'', N'', N'', N'', N'3', N'1', N''), (N'110113', N'1101', N'00,11,1101', N'顺义区', N'11', N'北京市', N'1101', N'北京市', N'110113', N'顺义区', N'', N'', N'', N'', N'3', N'1', N''), (N'110114', N'1101', N'00,11,1101', N'昌平区', N'11', N'北京市', N'1101', N'北京市', N'110114', N'昌平区', N'', N'', N'', N'', N'3', N'1', N''), (N'110115', N'1101', N'00,11,1101', N'大兴区', N'11', N'北京市', N'1101', N'北京市', N'110115', N'大兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'110116', N'1101', N'00,11,1101', N'怀柔区', N'11', N'北京市', N'1101', N'北京市', N'110116', N'怀柔区', N'', N'', N'', N'', N'3', N'1', N''), (N'110117', N'1101', N'00,11,1101', N'平谷区', N'11', N'北京市', N'1101', N'北京市', N'110117', N'平谷区', N'', N'', N'', N'', N'3', N'1', N''), (N'110118', N'1101', N'00,11,1101', N'密云区', N'11', N'北京市', N'1101', N'北京市', N'110118', N'密云区', N'', N'', N'', N'', N'3', N'1', N''), (N'110119', N'1101', N'00,11,1101', N'延庆区', N'11', N'北京市', N'1101', N'北京市', N'110119', N'延庆区', N'', N'', N'', N'', N'3', N'1', N''), (N'12', N'00', N'00', N'天津市', N'12', N'天津市', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'1201', N'12', N'00,12', N'天津市', N'12', N'天津市', N'1201', N'天津市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'120101', N'1201', N'00,12,1201', N'和平区', N'12', N'天津市', N'1201', N'天津市', N'120101', N'和平区', N'', N'', N'', N'', N'3', N'1', N''), (N'120102', N'1201', N'00,12,1201', N'河东区', N'12', N'天津市', N'1201', N'天津市', N'120102', N'河东区', N'', N'', N'', N'', N'3', N'1', N''), (N'120103', N'1201', N'00,12,1201', N'河西区', N'12', N'天津市', N'1201', N'天津市', N'120103', N'河西区', N'', N'', N'', N'', N'3', N'1', N''), (N'120104', N'1201', N'00,12,1201', N'南开区', N'12', N'天津市', N'1201', N'天津市', N'120104', N'南开区', N'', N'', N'', N'', N'3', N'1', N''), (N'120105', N'1201', N'00,12,1201', N'河北区', N'12', N'天津市', N'1201', N'天津市', N'120105', N'河北区', N'', N'', N'', N'', N'3', N'1', N''), (N'120106', N'1201', N'00,12,1201', N'红桥区', N'12', N'天津市', N'1201', N'天津市', N'120106', N'红桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'120110', N'1201', N'00,12,1201', N'东丽区', N'12', N'天津市', N'1201', N'天津市', N'120110', N'东丽区', N'', N'', N'', N'', N'3', N'1', N''), (N'120111', N'1201', N'00,12,1201', N'西青区', N'12', N'天津市', N'1201', N'天津市', N'120111', N'西青区', N'', N'', N'', N'', N'3', N'1', N''), (N'120112', N'1201', N'00,12,1201', N'津南区', N'12', N'天津市', N'1201', N'天津市', N'120112', N'津南区', N'', N'', N'', N'', N'3', N'1', N''), (N'120113', N'1201', N'00,12,1201', N'北辰区', N'12', N'天津市', N'1201', N'天津市', N'120113', N'北辰区', N'', N'', N'', N'', N'3', N'1', N''), (N'120114', N'1201', N'00,12,1201', N'武清区', N'12', N'天津市', N'1201', N'天津市', N'120114', N'武清区', N'', N'', N'', N'', N'3', N'1', N''), (N'120115', N'1201', N'00,12,1201', N'宝坻区', N'12', N'天津市', N'1201', N'天津市', N'120115', N'宝坻区', N'', N'', N'', N'', N'3', N'1', N''), (N'120116', N'1201', N'00,12,1201', N'滨海新区', N'12', N'天津市', N'1201', N'天津市', N'120116', N'滨海新区', N'', N'', N'', N'', N'3', N'1', N''), (N'120117', N'1201', N'00,12,1201', N'宁河区', N'12', N'天津市', N'1201', N'天津市', N'120117', N'宁河区', N'', N'', N'', N'', N'3', N'1', N''), (N'120118', N'1201', N'00,12,1201', N'静海区', N'12', N'天津市', N'1201', N'天津市', N'120118', N'静海区', N'', N'', N'', N'', N'3', N'1', N''), (N'120119', N'1201', N'00,12,1201', N'蓟州区', N'12', N'天津市', N'1201', N'天津市', N'120119', N'蓟州区', N'', N'', N'', N'', N'3', N'1', N''), (N'13', N'00', N'00', N'河北省', N'13', N'河北省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'1301', N'13', N'00,13', N'石家庄市', N'13', N'河北省', N'1301', N'石家庄市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130102', N'1301', N'00,13,1301', N'长安区', N'13', N'河北省', N'1301', N'石家庄市', N'130102', N'长安区', N'', N'', N'', N'', N'3', N'1', N''), (N'130104', N'1301', N'00,13,1301', N'桥西区', N'13', N'河北省', N'1301', N'石家庄市', N'130104', N'桥西区', N'', N'', N'', N'', N'3', N'1', N''), (N'130105', N'1301', N'00,13,1301', N'新华区', N'13', N'河北省', N'1301', N'石家庄市', N'130105', N'新华区', N'', N'', N'', N'', N'3', N'1', N''), (N'130107', N'1301', N'00,13,1301', N'井陉矿区', N'13', N'河北省', N'1301', N'石家庄市', N'130107', N'井陉矿区', N'', N'', N'', N'', N'3', N'1', N''), (N'130108', N'1301', N'00,13,1301', N'裕华区', N'13', N'河北省', N'1301', N'石家庄市', N'130108', N'裕华区', N'', N'', N'', N'', N'3', N'1', N''), (N'130109', N'1301', N'00,13,1301', N'藁城区', N'13', N'河北省', N'1301', N'石家庄市', N'130109', N'藁城区', N'', N'', N'', N'', N'3', N'1', N''), (N'130110', N'1301', N'00,13,1301', N'鹿泉区', N'13', N'河北省', N'1301', N'石家庄市', N'130110', N'鹿泉区', N'', N'', N'', N'', N'3', N'1', N''), (N'130111', N'1301', N'00,13,1301', N'栾城区', N'13', N'河北省', N'1301', N'石家庄市', N'130111', N'栾城区', N'', N'', N'', N'', N'3', N'1', N''), (N'130121', N'1301', N'00,13,1301', N'井陉县', N'13', N'河北省', N'1301', N'石家庄市', N'130121', N'井陉县', N'', N'', N'', N'', N'3', N'1', N''), (N'130123', N'1301', N'00,13,1301', N'正定县', N'13', N'河北省', N'1301', N'石家庄市', N'130123', N'正定县', N'', N'', N'', N'', N'3', N'1', N''), (N'130125', N'1301', N'00,13,1301', N'行唐县', N'13', N'河北省', N'1301', N'石家庄市', N'130125', N'行唐县', N'', N'', N'', N'', N'3', N'1', N''), (N'130126', N'1301', N'00,13,1301', N'灵寿县', N'13', N'河北省', N'1301', N'石家庄市', N'130126', N'灵寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'130127', N'1301', N'00,13,1301', N'高邑县', N'13', N'河北省', N'1301', N'石家庄市', N'130127', N'高邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'130128', N'1301', N'00,13,1301', N'深泽县', N'13', N'河北省', N'1301', N'石家庄市', N'130128', N'深泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'130129', N'1301', N'00,13,1301', N'赞皇县', N'13', N'河北省', N'1301', N'石家庄市', N'130129', N'赞皇县', N'', N'', N'', N'', N'3', N'1', N''), (N'130130', N'1301', N'00,13,1301', N'无极县', N'13', N'河北省', N'1301', N'石家庄市', N'130130', N'无极县', N'', N'', N'', N'', N'3', N'1', N''), (N'130131', N'1301', N'00,13,1301', N'平山县', N'13', N'河北省', N'1301', N'石家庄市', N'130131', N'平山县', N'', N'', N'', N'', N'3', N'1', N''), (N'130132', N'1301', N'00,13,1301', N'元氏县', N'13', N'河北省', N'1301', N'石家庄市', N'130132', N'元氏县', N'', N'', N'', N'', N'3', N'1', N''), (N'130133', N'1301', N'00,13,1301', N'赵县', N'13', N'河北省', N'1301', N'石家庄市', N'130133', N'赵县', N'', N'', N'', N'', N'3', N'1', N''), (N'130181', N'1301', N'00,13,1301', N'辛集市', N'13', N'河北省', N'1301', N'石家庄市', N'130181', N'辛集市', N'', N'', N'', N'', N'3', N'1', N''), (N'130183', N'1301', N'00,13,1301', N'晋州市', N'13', N'河北省', N'1301', N'石家庄市', N'130183', N'晋州市', N'', N'', N'', N'', N'3', N'1', N''), (N'130184', N'1301', N'00,13,1301', N'新乐市', N'13', N'河北省', N'1301', N'石家庄市', N'130184', N'新乐市', N'', N'', N'', N'', N'3', N'1', N''), (N'1302', N'13', N'00,13', N'唐山市', N'13', N'河北省', N'1302', N'唐山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130202', N'1302', N'00,13,1302', N'路南区', N'13', N'河北省', N'1302', N'唐山市', N'130202', N'路南区', N'', N'', N'', N'', N'3', N'1', N''), (N'130203', N'1302', N'00,13,1302', N'路北区', N'13', N'河北省', N'1302', N'唐山市', N'130203', N'路北区', N'', N'', N'', N'', N'3', N'1', N''), (N'130204', N'1302', N'00,13,1302', N'古冶区', N'13', N'河北省', N'1302', N'唐山市', N'130204', N'古冶区', N'', N'', N'', N'', N'3', N'1', N''), (N'130205', N'1302', N'00,13,1302', N'开平区', N'13', N'河北省', N'1302', N'唐山市', N'130205', N'开平区', N'', N'', N'', N'', N'3', N'1', N''), (N'130207', N'1302', N'00,13,1302', N'丰南区', N'13', N'河北省', N'1302', N'唐山市', N'130207', N'丰南区', N'', N'', N'', N'', N'3', N'1', N''), (N'130208', N'1302', N'00,13,1302', N'丰润区', N'13', N'河北省', N'1302', N'唐山市', N'130208', N'丰润区', N'', N'', N'', N'', N'3', N'1', N''), (N'130209', N'1302', N'00,13,1302', N'曹妃甸区', N'13', N'河北省', N'1302', N'唐山市', N'130209', N'曹妃甸区', N'', N'', N'', N'', N'3', N'1', N''), (N'130224', N'1302', N'00,13,1302', N'滦南县', N'13', N'河北省', N'1302', N'唐山市', N'130224', N'滦南县', N'', N'', N'', N'', N'3', N'1', N''), (N'130225', N'1302', N'00,13,1302', N'乐亭县', N'13', N'河北省', N'1302', N'唐山市', N'130225', N'乐亭县', N'', N'', N'', N'', N'3', N'1', N''), (N'130227', N'1302', N'00,13,1302', N'迁西县', N'13', N'河北省', N'1302', N'唐山市', N'130227', N'迁西县', N'', N'', N'', N'', N'3', N'1', N''), (N'130229', N'1302', N'00,13,1302', N'玉田县', N'13', N'河北省', N'1302', N'唐山市', N'130229', N'玉田县', N'', N'', N'', N'', N'3', N'1', N''), (N'130281', N'1302', N'00,13,1302', N'遵化市', N'13', N'河北省', N'1302', N'唐山市', N'130281', N'遵化市', N'', N'', N'', N'', N'3', N'1', N''), (N'130283', N'1302', N'00,13,1302', N'迁安市', N'13', N'河北省', N'1302', N'唐山市', N'130283', N'迁安市', N'', N'', N'', N'', N'3', N'1', N''), (N'130284', N'1302', N'00,13,1302', N'滦州市', N'13', N'河北省', N'1302', N'唐山市', N'130284', N'滦州市', N'', N'', N'', N'', N'3', N'1', N''), (N'1303', N'13', N'00,13', N'秦皇岛市', N'13', N'河北省', N'1303', N'秦皇岛市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130302', N'1303', N'00,13,1303', N'海港区', N'13', N'河北省', N'1303', N'秦皇岛市', N'130302', N'海港区', N'', N'', N'', N'', N'3', N'1', N''), (N'130303', N'1303', N'00,13,1303', N'山海关区', N'13', N'河北省', N'1303', N'秦皇岛市', N'130303', N'山海关区', N'', N'', N'', N'', N'3', N'1', N''), (N'130304', N'1303', N'00,13,1303', N'北戴河区', N'13', N'河北省', N'1303', N'秦皇岛市', N'130304', N'北戴河区', N'', N'', N'', N'', N'3', N'1', N''), (N'130306', N'1303', N'00,13,1303', N'抚宁区', N'13', N'河北省', N'1303', N'秦皇岛市', N'130306', N'抚宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'130321', N'1303', N'00,13,1303', N'青龙满族自治县', N'13', N'河北省', N'1303', N'秦皇岛市', N'130321', N'青龙满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'130322', N'1303', N'00,13,1303', N'昌黎县', N'13', N'河北省', N'1303', N'秦皇岛市', N'130322', N'昌黎县', N'', N'', N'', N'', N'3', N'1', N''), (N'130324', N'1303', N'00,13,1303', N'卢龙县', N'13', N'河北省', N'1303', N'秦皇岛市', N'130324', N'卢龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'1304', N'13', N'00,13', N'邯郸市', N'13', N'河北省', N'1304', N'邯郸市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130402', N'1304', N'00,13,1304', N'邯山区', N'13', N'河北省', N'1304', N'邯郸市', N'130402', N'邯山区', N'', N'', N'', N'', N'3', N'1', N''), (N'130403', N'1304', N'00,13,1304', N'丛台区', N'13', N'河北省', N'1304', N'邯郸市', N'130403', N'丛台区', N'', N'', N'', N'', N'3', N'1', N''), (N'130404', N'1304', N'00,13,1304', N'复兴区', N'13', N'河北省', N'1304', N'邯郸市', N'130404', N'复兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'130406', N'1304', N'00,13,1304', N'峰峰矿区', N'13', N'河北省', N'1304', N'邯郸市', N'130406', N'峰峰矿区', N'', N'', N'', N'', N'3', N'1', N''), (N'130407', N'1304', N'00,13,1304', N'肥乡区', N'13', N'河北省', N'1304', N'邯郸市', N'130407', N'肥乡区', N'', N'', N'', N'', N'3', N'1', N''), (N'130408', N'1304', N'00,13,1304', N'永年区', N'13', N'河北省', N'1304', N'邯郸市', N'130408', N'永年区', N'', N'', N'', N'', N'3', N'1', N''), (N'130423', N'1304', N'00,13,1304', N'临漳县', N'13', N'河北省', N'1304', N'邯郸市', N'130423', N'临漳县', N'', N'', N'', N'', N'3', N'1', N''), (N'130424', N'1304', N'00,13,1304', N'成安县', N'13', N'河北省', N'1304', N'邯郸市', N'130424', N'成安县', N'', N'', N'', N'', N'3', N'1', N''), (N'130425', N'1304', N'00,13,1304', N'大名县', N'13', N'河北省', N'1304', N'邯郸市', N'130425', N'大名县', N'', N'', N'', N'', N'3', N'1', N''), (N'130426', N'1304', N'00,13,1304', N'涉县', N'13', N'河北省', N'1304', N'邯郸市', N'130426', N'涉县', N'', N'', N'', N'', N'3', N'1', N''), (N'130427', N'1304', N'00,13,1304', N'磁县', N'13', N'河北省', N'1304', N'邯郸市', N'130427', N'磁县', N'', N'', N'', N'', N'3', N'1', N''), (N'130430', N'1304', N'00,13,1304', N'邱县', N'13', N'河北省', N'1304', N'邯郸市', N'130430', N'邱县', N'', N'', N'', N'', N'3', N'1', N''), (N'130431', N'1304', N'00,13,1304', N'鸡泽县', N'13', N'河北省', N'1304', N'邯郸市', N'130431', N'鸡泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'130432', N'1304', N'00,13,1304', N'广平县', N'13', N'河北省', N'1304', N'邯郸市', N'130432', N'广平县', N'', N'', N'', N'', N'3', N'1', N''), (N'130433', N'1304', N'00,13,1304', N'馆陶县', N'13', N'河北省', N'1304', N'邯郸市', N'130433', N'馆陶县', N'', N'', N'', N'', N'3', N'1', N''), (N'130434', N'1304', N'00,13,1304', N'魏县', N'13', N'河北省', N'1304', N'邯郸市', N'130434', N'魏县', N'', N'', N'', N'', N'3', N'1', N''), (N'130435', N'1304', N'00,13,1304', N'曲周县', N'13', N'河北省', N'1304', N'邯郸市', N'130435', N'曲周县', N'', N'', N'', N'', N'3', N'1', N''), (N'130481', N'1304', N'00,13,1304', N'武安市', N'13', N'河北省', N'1304', N'邯郸市', N'130481', N'武安市', N'', N'', N'', N'', N'3', N'1', N''), (N'1305', N'13', N'00,13', N'邢台市', N'13', N'河北省', N'1305', N'邢台市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130502', N'1305', N'00,13,1305', N'桥东区', N'13', N'河北省', N'1305', N'邢台市', N'130502', N'桥东区', N'', N'', N'', N'', N'3', N'1', N''), (N'130503', N'1305', N'00,13,1305', N'桥西区', N'13', N'河北省', N'1305', N'邢台市', N'130503', N'桥西区', N'', N'', N'', N'', N'3', N'1', N''), (N'130521', N'1305', N'00,13,1305', N'邢台县', N'13', N'河北省', N'1305', N'邢台市', N'130521', N'邢台县', N'', N'', N'', N'', N'3', N'1', N''), (N'130522', N'1305', N'00,13,1305', N'临城县', N'13', N'河北省', N'1305', N'邢台市', N'130522', N'临城县', N'', N'', N'', N'', N'3', N'1', N''), (N'130523', N'1305', N'00,13,1305', N'内丘县', N'13', N'河北省', N'1305', N'邢台市', N'130523', N'内丘县', N'', N'', N'', N'', N'3', N'1', N''), (N'130524', N'1305', N'00,13,1305', N'柏乡县', N'13', N'河北省', N'1305', N'邢台市', N'130524', N'柏乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'130525', N'1305', N'00,13,1305', N'隆尧县', N'13', N'河北省', N'1305', N'邢台市', N'130525', N'隆尧县', N'', N'', N'', N'', N'3', N'1', N''), (N'130526', N'1305', N'00,13,1305', N'任县', N'13', N'河北省', N'1305', N'邢台市', N'130526', N'任县', N'', N'', N'', N'', N'3', N'1', N''), (N'130527', N'1305', N'00,13,1305', N'南和县', N'13', N'河北省', N'1305', N'邢台市', N'130527', N'南和县', N'', N'', N'', N'', N'3', N'1', N''), (N'130528', N'1305', N'00,13,1305', N'宁晋县', N'13', N'河北省', N'1305', N'邢台市', N'130528', N'宁晋县', N'', N'', N'', N'', N'3', N'1', N''), (N'130529', N'1305', N'00,13,1305', N'巨鹿县', N'13', N'河北省', N'1305', N'邢台市', N'130529', N'巨鹿县', N'', N'', N'', N'', N'3', N'1', N''), (N'130530', N'1305', N'00,13,1305', N'新河县', N'13', N'河北省', N'1305', N'邢台市', N'130530', N'新河县', N'', N'', N'', N'', N'3', N'1', N''), (N'130531', N'1305', N'00,13,1305', N'广宗县', N'13', N'河北省', N'1305', N'邢台市', N'130531', N'广宗县', N'', N'', N'', N'', N'3', N'1', N''), (N'130532', N'1305', N'00,13,1305', N'平乡县', N'13', N'河北省', N'1305', N'邢台市', N'130532', N'平乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'130533', N'1305', N'00,13,1305', N'威县', N'13', N'河北省', N'1305', N'邢台市', N'130533', N'威县', N'', N'', N'', N'', N'3', N'1', N''), (N'130534', N'1305', N'00,13,1305', N'清河县', N'13', N'河北省', N'1305', N'邢台市', N'130534', N'清河县', N'', N'', N'', N'', N'3', N'1', N''), (N'130535', N'1305', N'00,13,1305', N'临西县', N'13', N'河北省', N'1305', N'邢台市', N'130535', N'临西县', N'', N'', N'', N'', N'3', N'1', N''), (N'130581', N'1305', N'00,13,1305', N'南宫市', N'13', N'河北省', N'1305', N'邢台市', N'130581', N'南宫市', N'', N'', N'', N'', N'3', N'1', N''), (N'130582', N'1305', N'00,13,1305', N'沙河市', N'13', N'河北省', N'1305', N'邢台市', N'130582', N'沙河市', N'', N'', N'', N'', N'3', N'1', N''), (N'1306', N'13', N'00,13', N'保定市', N'13', N'河北省', N'1306', N'保定市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130602', N'1306', N'00,13,1306', N'竞秀区', N'13', N'河北省', N'1306', N'保定市', N'130602', N'竞秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'130606', N'1306', N'00,13,1306', N'莲池区', N'13', N'河北省', N'1306', N'保定市', N'130606', N'莲池区', N'', N'', N'', N'', N'3', N'1', N''), (N'130607', N'1306', N'00,13,1306', N'满城区', N'13', N'河北省', N'1306', N'保定市', N'130607', N'满城区', N'', N'', N'', N'', N'3', N'1', N''), (N'130608', N'1306', N'00,13,1306', N'清苑区', N'13', N'河北省', N'1306', N'保定市', N'130608', N'清苑区', N'', N'', N'', N'', N'3', N'1', N''), (N'130609', N'1306', N'00,13,1306', N'徐水区', N'13', N'河北省', N'1306', N'保定市', N'130609', N'徐水区', N'', N'', N'', N'', N'3', N'1', N''), (N'130623', N'1306', N'00,13,1306', N'涞水县', N'13', N'河北省', N'1306', N'保定市', N'130623', N'涞水县', N'', N'', N'', N'', N'3', N'1', N''), (N'130624', N'1306', N'00,13,1306', N'阜平县', N'13', N'河北省', N'1306', N'保定市', N'130624', N'阜平县', N'', N'', N'', N'', N'3', N'1', N''), (N'130626', N'1306', N'00,13,1306', N'定兴县', N'13', N'河北省', N'1306', N'保定市', N'130626', N'定兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'130627', N'1306', N'00,13,1306', N'唐县', N'13', N'河北省', N'1306', N'保定市', N'130627', N'唐县', N'', N'', N'', N'', N'3', N'1', N''), (N'130628', N'1306', N'00,13,1306', N'高阳县', N'13', N'河北省', N'1306', N'保定市', N'130628', N'高阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'130629', N'1306', N'00,13,1306', N'容城县', N'13', N'河北省', N'1306', N'保定市', N'130629', N'容城县', N'', N'', N'', N'', N'3', N'1', N''), (N'130630', N'1306', N'00,13,1306', N'涞源县', N'13', N'河北省', N'1306', N'保定市', N'130630', N'涞源县', N'', N'', N'', N'', N'3', N'1', N''), (N'130631', N'1306', N'00,13,1306', N'望都县', N'13', N'河北省', N'1306', N'保定市', N'130631', N'望都县', N'', N'', N'', N'', N'3', N'1', N''), (N'130632', N'1306', N'00,13,1306', N'安新县', N'13', N'河北省', N'1306', N'保定市', N'130632', N'安新县', N'', N'', N'', N'', N'3', N'1', N''), (N'130633', N'1306', N'00,13,1306', N'易县', N'13', N'河北省', N'1306', N'保定市', N'130633', N'易县', N'', N'', N'', N'', N'3', N'1', N''), (N'130634', N'1306', N'00,13,1306', N'曲阳县', N'13', N'河北省', N'1306', N'保定市', N'130634', N'曲阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'130635', N'1306', N'00,13,1306', N'蠡县', N'13', N'河北省', N'1306', N'保定市', N'130635', N'蠡县', N'', N'', N'', N'', N'3', N'1', N''), (N'130636', N'1306', N'00,13,1306', N'顺平县', N'13', N'河北省', N'1306', N'保定市', N'130636', N'顺平县', N'', N'', N'', N'', N'3', N'1', N''), (N'130637', N'1306', N'00,13,1306', N'博野县', N'13', N'河北省', N'1306', N'保定市', N'130637', N'博野县', N'', N'', N'', N'', N'3', N'1', N''), (N'130638', N'1306', N'00,13,1306', N'雄县', N'13', N'河北省', N'1306', N'保定市', N'130638', N'雄县', N'', N'', N'', N'', N'3', N'1', N''), (N'130681', N'1306', N'00,13,1306', N'涿州市', N'13', N'河北省', N'1306', N'保定市', N'130681', N'涿州市', N'', N'', N'', N'', N'3', N'1', N''), (N'130682', N'1306', N'00,13,1306', N'定州市', N'13', N'河北省', N'1306', N'保定市', N'130682', N'定州市', N'', N'', N'', N'', N'3', N'1', N''), (N'130683', N'1306', N'00,13,1306', N'安国市', N'13', N'河北省', N'1306', N'保定市', N'130683', N'安国市', N'', N'', N'', N'', N'3', N'1', N''), (N'130684', N'1306', N'00,13,1306', N'高碑店市', N'13', N'河北省', N'1306', N'保定市', N'130684', N'高碑店市', N'', N'', N'', N'', N'3', N'1', N''), (N'1307', N'13', N'00,13', N'张家口市', N'13', N'河北省', N'1307', N'张家口市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130702', N'1307', N'00,13,1307', N'桥东区', N'13', N'河北省', N'1307', N'张家口市', N'130702', N'桥东区', N'', N'', N'', N'', N'3', N'1', N''), (N'130703', N'1307', N'00,13,1307', N'桥西区', N'13', N'河北省', N'1307', N'张家口市', N'130703', N'桥西区', N'', N'', N'', N'', N'3', N'1', N''), (N'130705', N'1307', N'00,13,1307', N'宣化区', N'13', N'河北省', N'1307', N'张家口市', N'130705', N'宣化区', N'', N'', N'', N'', N'3', N'1', N''), (N'130706', N'1307', N'00,13,1307', N'下花园区', N'13', N'河北省', N'1307', N'张家口市', N'130706', N'下花园区', N'', N'', N'', N'', N'3', N'1', N''), (N'130708', N'1307', N'00,13,1307', N'万全区', N'13', N'河北省', N'1307', N'张家口市', N'130708', N'万全区', N'', N'', N'', N'', N'3', N'1', N''), (N'130709', N'1307', N'00,13,1307', N'崇礼区', N'13', N'河北省', N'1307', N'张家口市', N'130709', N'崇礼区', N'', N'', N'', N'', N'3', N'1', N''), (N'130722', N'1307', N'00,13,1307', N'张北县', N'13', N'河北省', N'1307', N'张家口市', N'130722', N'张北县', N'', N'', N'', N'', N'3', N'1', N''), (N'130723', N'1307', N'00,13,1307', N'康保县', N'13', N'河北省', N'1307', N'张家口市', N'130723', N'康保县', N'', N'', N'', N'', N'3', N'1', N''), (N'130724', N'1307', N'00,13,1307', N'沽源县', N'13', N'河北省', N'1307', N'张家口市', N'130724', N'沽源县', N'', N'', N'', N'', N'3', N'1', N''), (N'130725', N'1307', N'00,13,1307', N'尚义县', N'13', N'河北省', N'1307', N'张家口市', N'130725', N'尚义县', N'', N'', N'', N'', N'3', N'1', N''), (N'130726', N'1307', N'00,13,1307', N'蔚县', N'13', N'河北省', N'1307', N'张家口市', N'130726', N'蔚县', N'', N'', N'', N'', N'3', N'1', N''), (N'130727', N'1307', N'00,13,1307', N'阳原县', N'13', N'河北省', N'1307', N'张家口市', N'130727', N'阳原县', N'', N'', N'', N'', N'3', N'1', N''), (N'130728', N'1307', N'00,13,1307', N'怀安县', N'13', N'河北省', N'1307', N'张家口市', N'130728', N'怀安县', N'', N'', N'', N'', N'3', N'1', N''), (N'130730', N'1307', N'00,13,1307', N'怀来县', N'13', N'河北省', N'1307', N'张家口市', N'130730', N'怀来县', N'', N'', N'', N'', N'3', N'1', N''), (N'130731', N'1307', N'00,13,1307', N'涿鹿县', N'13', N'河北省', N'1307', N'张家口市', N'130731', N'涿鹿县', N'', N'', N'', N'', N'3', N'1', N''), (N'130732', N'1307', N'00,13,1307', N'赤城县', N'13', N'河北省', N'1307', N'张家口市', N'130732', N'赤城县', N'', N'', N'', N'', N'3', N'1', N''), (N'1308', N'13', N'00,13', N'承德市', N'13', N'河北省', N'1308', N'承德市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130802', N'1308', N'00,13,1308', N'双桥区', N'13', N'河北省', N'1308', N'承德市', N'130802', N'双桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'130803', N'1308', N'00,13,1308', N'双滦区', N'13', N'河北省', N'1308', N'承德市', N'130803', N'双滦区', N'', N'', N'', N'', N'3', N'1', N''), (N'130804', N'1308', N'00,13,1308', N'鹰手营子矿区', N'13', N'河北省', N'1308', N'承德市', N'130804', N'鹰手营子矿区', N'', N'', N'', N'', N'3', N'1', N''), (N'130821', N'1308', N'00,13,1308', N'承德县', N'13', N'河北省', N'1308', N'承德市', N'130821', N'承德县', N'', N'', N'', N'', N'3', N'1', N''), (N'130822', N'1308', N'00,13,1308', N'兴隆县', N'13', N'河北省', N'1308', N'承德市', N'130822', N'兴隆县', N'', N'', N'', N'', N'3', N'1', N''), (N'130824', N'1308', N'00,13,1308', N'滦平县', N'13', N'河北省', N'1308', N'承德市', N'130824', N'滦平县', N'', N'', N'', N'', N'3', N'1', N''), (N'130825', N'1308', N'00,13,1308', N'隆化县', N'13', N'河北省', N'1308', N'承德市', N'130825', N'隆化县', N'', N'', N'', N'', N'3', N'1', N''), (N'130826', N'1308', N'00,13,1308', N'丰宁满族自治县', N'13', N'河北省', N'1308', N'承德市', N'130826', N'丰宁满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'130827', N'1308', N'00,13,1308', N'宽城满族自治县', N'13', N'河北省', N'1308', N'承德市', N'130827', N'宽城满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'130828', N'1308', N'00,13,1308', N'围场满族蒙古族自治县', N'13', N'河北省', N'1308', N'承德市', N'130828', N'围场满族蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'130881', N'1308', N'00,13,1308', N'平泉市', N'13', N'河北省', N'1308', N'承德市', N'130881', N'平泉市', N'', N'', N'', N'', N'3', N'1', N''), (N'1309', N'13', N'00,13', N'沧州市', N'13', N'河北省', N'1309', N'沧州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130902', N'1309', N'00,13,1309', N'新华区', N'13', N'河北省', N'1309', N'沧州市', N'130902', N'新华区', N'', N'', N'', N'', N'3', N'1', N''), (N'130903', N'1309', N'00,13,1309', N'运河区', N'13', N'河北省', N'1309', N'沧州市', N'130903', N'运河区', N'', N'', N'', N'', N'3', N'1', N''), (N'130921', N'1309', N'00,13,1309', N'沧县', N'13', N'河北省', N'1309', N'沧州市', N'130921', N'沧县', N'', N'', N'', N'', N'3', N'1', N''), (N'130922', N'1309', N'00,13,1309', N'青县', N'13', N'河北省', N'1309', N'沧州市', N'130922', N'青县', N'', N'', N'', N'', N'3', N'1', N''), (N'130923', N'1309', N'00,13,1309', N'东光县', N'13', N'河北省', N'1309', N'沧州市', N'130923', N'东光县', N'', N'', N'', N'', N'3', N'1', N''), (N'130924', N'1309', N'00,13,1309', N'海兴县', N'13', N'河北省', N'1309', N'沧州市', N'130924', N'海兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'130925', N'1309', N'00,13,1309', N'盐山县', N'13', N'河北省', N'1309', N'沧州市', N'130925', N'盐山县', N'', N'', N'', N'', N'3', N'1', N''), (N'130926', N'1309', N'00,13,1309', N'肃宁县', N'13', N'河北省', N'1309', N'沧州市', N'130926', N'肃宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'130927', N'1309', N'00,13,1309', N'南皮县', N'13', N'河北省', N'1309', N'沧州市', N'130927', N'南皮县', N'', N'', N'', N'', N'3', N'1', N''), (N'130928', N'1309', N'00,13,1309', N'吴桥县', N'13', N'河北省', N'1309', N'沧州市', N'130928', N'吴桥县', N'', N'', N'', N'', N'3', N'1', N''), (N'130929', N'1309', N'00,13,1309', N'献县', N'13', N'河北省', N'1309', N'沧州市', N'130929', N'献县', N'', N'', N'', N'', N'3', N'1', N''), (N'130930', N'1309', N'00,13,1309', N'孟村回族自治县', N'13', N'河北省', N'1309', N'沧州市', N'130930', N'孟村回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'130981', N'1309', N'00,13,1309', N'泊头市', N'13', N'河北省', N'1309', N'沧州市', N'130981', N'泊头市', N'', N'', N'', N'', N'3', N'1', N''), (N'130982', N'1309', N'00,13,1309', N'任丘市', N'13', N'河北省', N'1309', N'沧州市', N'130982', N'任丘市', N'', N'', N'', N'', N'3', N'1', N''), (N'130983', N'1309', N'00,13,1309', N'黄骅市', N'13', N'河北省', N'1309', N'沧州市', N'130983', N'黄骅市', N'', N'', N'', N'', N'3', N'1', N''), (N'130984', N'1309', N'00,13,1309', N'河间市', N'13', N'河北省', N'1309', N'沧州市', N'130984', N'河间市', N'', N'', N'', N'', N'3', N'1', N''), (N'1310', N'13', N'00,13', N'廊坊市', N'13', N'河北省', N'1310', N'廊坊市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'131002', N'1310', N'00,13,1310', N'安次区', N'13', N'河北省', N'1310', N'廊坊市', N'131002', N'安次区', N'', N'', N'', N'', N'3', N'1', N''), (N'131003', N'1310', N'00,13,1310', N'广阳区', N'13', N'河北省', N'1310', N'廊坊市', N'131003', N'广阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'131022', N'1310', N'00,13,1310', N'固安县', N'13', N'河北省', N'1310', N'廊坊市', N'131022', N'固安县', N'', N'', N'', N'', N'3', N'1', N''), (N'131023', N'1310', N'00,13,1310', N'永清县', N'13', N'河北省', N'1310', N'廊坊市', N'131023', N'永清县', N'', N'', N'', N'', N'3', N'1', N''), (N'131024', N'1310', N'00,13,1310', N'香河县', N'13', N'河北省', N'1310', N'廊坊市', N'131024', N'香河县', N'', N'', N'', N'', N'3', N'1', N''), (N'131025', N'1310', N'00,13,1310', N'大城县', N'13', N'河北省', N'1310', N'廊坊市', N'131025', N'大城县', N'', N'', N'', N'', N'3', N'1', N''), (N'131026', N'1310', N'00,13,1310', N'文安县', N'13', N'河北省', N'1310', N'廊坊市', N'131026', N'文安县', N'', N'', N'', N'', N'3', N'1', N''), (N'131028', N'1310', N'00,13,1310', N'大厂回族自治县', N'13', N'河北省', N'1310', N'廊坊市', N'131028', N'大厂回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'131081', N'1310', N'00,13,1310', N'霸州市', N'13', N'河北省', N'1310', N'廊坊市', N'131081', N'霸州市', N'', N'', N'', N'', N'3', N'1', N''), (N'131082', N'1310', N'00,13,1310', N'三河市', N'13', N'河北省', N'1310', N'廊坊市', N'131082', N'三河市', N'', N'', N'', N'', N'3', N'1', N''), (N'1311', N'13', N'00,13', N'衡水市', N'13', N'河北省', N'1311', N'衡水市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'131102', N'1311', N'00,13,1311', N'桃城区', N'13', N'河北省', N'1311', N'衡水市', N'131102', N'桃城区', N'', N'', N'', N'', N'3', N'1', N''), (N'131103', N'1311', N'00,13,1311', N'冀州区', N'13', N'河北省', N'1311', N'衡水市', N'131103', N'冀州区', N'', N'', N'', N'', N'3', N'1', N''), (N'131121', N'1311', N'00,13,1311', N'枣强县', N'13', N'河北省', N'1311', N'衡水市', N'131121', N'枣强县', N'', N'', N'', N'', N'3', N'1', N''), (N'131122', N'1311', N'00,13,1311', N'武邑县', N'13', N'河北省', N'1311', N'衡水市', N'131122', N'武邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'131123', N'1311', N'00,13,1311', N'武强县', N'13', N'河北省', N'1311', N'衡水市', N'131123', N'武强县', N'', N'', N'', N'', N'3', N'1', N''), (N'131124', N'1311', N'00,13,1311', N'饶阳县', N'13', N'河北省', N'1311', N'衡水市', N'131124', N'饶阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'131125', N'1311', N'00,13,1311', N'安平县', N'13', N'河北省', N'1311', N'衡水市', N'131125', N'安平县', N'', N'', N'', N'', N'3', N'1', N''), (N'131126', N'1311', N'00,13,1311', N'故城县', N'13', N'河北省', N'1311', N'衡水市', N'131126', N'故城县', N'', N'', N'', N'', N'3', N'1', N''), (N'131127', N'1311', N'00,13,1311', N'景县', N'13', N'河北省', N'1311', N'衡水市', N'131127', N'景县', N'', N'', N'', N'', N'3', N'1', N''), (N'131128', N'1311', N'00,13,1311', N'阜城县', N'13', N'河北省', N'1311', N'衡水市', N'131128', N'阜城县', N'', N'', N'', N'', N'3', N'1', N''), (N'131182', N'1311', N'00,13,1311', N'深州市', N'13', N'河北省', N'1311', N'衡水市', N'131182', N'深州市', N'', N'', N'', N'', N'3', N'1', N''), (N'14', N'00', N'00', N'山西省', N'14', N'山西省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'1401', N'14', N'00,14', N'太原市', N'14', N'山西省', N'1401', N'太原市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140105', N'1401', N'00,14,1401', N'小店区', N'14', N'山西省', N'1401', N'太原市', N'140105', N'小店区', N'', N'', N'', N'', N'3', N'1', N''), (N'140106', N'1401', N'00,14,1401', N'迎泽区', N'14', N'山西省', N'1401', N'太原市', N'140106', N'迎泽区', N'', N'', N'', N'', N'3', N'1', N''), (N'140107', N'1401', N'00,14,1401', N'杏花岭区', N'14', N'山西省', N'1401', N'太原市', N'140107', N'杏花岭区', N'', N'', N'', N'', N'3', N'1', N''), (N'140108', N'1401', N'00,14,1401', N'尖草坪区', N'14', N'山西省', N'1401', N'太原市', N'140108', N'尖草坪区', N'', N'', N'', N'', N'3', N'1', N''), (N'140109', N'1401', N'00,14,1401', N'万柏林区', N'14', N'山西省', N'1401', N'太原市', N'140109', N'万柏林区', N'', N'', N'', N'', N'3', N'1', N''), (N'140110', N'1401', N'00,14,1401', N'晋源区', N'14', N'山西省', N'1401', N'太原市', N'140110', N'晋源区', N'', N'', N'', N'', N'3', N'1', N''), (N'140121', N'1401', N'00,14,1401', N'清徐县', N'14', N'山西省', N'1401', N'太原市', N'140121', N'清徐县', N'', N'', N'', N'', N'3', N'1', N''), (N'140122', N'1401', N'00,14,1401', N'阳曲县', N'14', N'山西省', N'1401', N'太原市', N'140122', N'阳曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'140123', N'1401', N'00,14,1401', N'娄烦县', N'14', N'山西省', N'1401', N'太原市', N'140123', N'娄烦县', N'', N'', N'', N'', N'3', N'1', N''), (N'140181', N'1401', N'00,14,1401', N'古交市', N'14', N'山西省', N'1401', N'太原市', N'140181', N'古交市', N'', N'', N'', N'', N'3', N'1', N''), (N'1402', N'14', N'00,14', N'大同市', N'14', N'山西省', N'1402', N'大同市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140212', N'1402', N'00,14,1402', N'新荣区', N'14', N'山西省', N'1402', N'大同市', N'140212', N'新荣区', N'', N'', N'', N'', N'3', N'1', N''), (N'140213', N'1402', N'00,14,1402', N'平城区', N'14', N'山西省', N'1402', N'大同市', N'140213', N'平城区', N'', N'', N'', N'', N'3', N'1', N''), (N'140214', N'1402', N'00,14,1402', N'云冈区', N'14', N'山西省', N'1402', N'大同市', N'140214', N'云冈区', N'', N'', N'', N'', N'3', N'1', N''), (N'140215', N'1402', N'00,14,1402', N'云州区', N'14', N'山西省', N'1402', N'大同市', N'140215', N'云州区', N'', N'', N'', N'', N'3', N'1', N''), (N'140221', N'1402', N'00,14,1402', N'阳高县', N'14', N'山西省', N'1402', N'大同市', N'140221', N'阳高县', N'', N'', N'', N'', N'3', N'1', N''), (N'140222', N'1402', N'00,14,1402', N'天镇县', N'14', N'山西省', N'1402', N'大同市', N'140222', N'天镇县', N'', N'', N'', N'', N'3', N'1', N''), (N'140223', N'1402', N'00,14,1402', N'广灵县', N'14', N'山西省', N'1402', N'大同市', N'140223', N'广灵县', N'', N'', N'', N'', N'3', N'1', N''), (N'140224', N'1402', N'00,14,1402', N'灵丘县', N'14', N'山西省', N'1402', N'大同市', N'140224', N'灵丘县', N'', N'', N'', N'', N'3', N'1', N''), (N'140225', N'1402', N'00,14,1402', N'浑源县', N'14', N'山西省', N'1402', N'大同市', N'140225', N'浑源县', N'', N'', N'', N'', N'3', N'1', N''), (N'140226', N'1402', N'00,14,1402', N'左云县', N'14', N'山西省', N'1402', N'大同市', N'140226', N'左云县', N'', N'', N'', N'', N'3', N'1', N''), (N'1403', N'14', N'00,14', N'阳泉市', N'14', N'山西省', N'1403', N'阳泉市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140302', N'1403', N'00,14,1403', N'城区', N'14', N'山西省', N'1403', N'阳泉市', N'140302', N'城区', N'', N'', N'', N'', N'3', N'1', N''), (N'140303', N'1403', N'00,14,1403', N'矿区', N'14', N'山西省', N'1403', N'阳泉市', N'140303', N'矿区', N'', N'', N'', N'', N'3', N'1', N''), (N'140311', N'1403', N'00,14,1403', N'郊区', N'14', N'山西省', N'1403', N'阳泉市', N'140311', N'郊区', N'', N'', N'', N'', N'3', N'1', N''), (N'140321', N'1403', N'00,14,1403', N'平定县', N'14', N'山西省', N'1403', N'阳泉市', N'140321', N'平定县', N'', N'', N'', N'', N'3', N'1', N''), (N'140322', N'1403', N'00,14,1403', N'盂县', N'14', N'山西省', N'1403', N'阳泉市', N'140322', N'盂县', N'', N'', N'', N'', N'3', N'1', N''), (N'1404', N'14', N'00,14', N'长治市', N'14', N'山西省', N'1404', N'长治市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140403', N'1404', N'00,14,1404', N'潞州区', N'14', N'山西省', N'1404', N'长治市', N'140403', N'潞州区', N'', N'', N'', N'', N'3', N'1', N''), (N'140404', N'1404', N'00,14,1404', N'上党区', N'14', N'山西省', N'1404', N'长治市', N'140404', N'上党区', N'', N'', N'', N'', N'3', N'1', N''), (N'140405', N'1404', N'00,14,1404', N'屯留区', N'14', N'山西省', N'1404', N'长治市', N'140405', N'屯留区', N'', N'', N'', N'', N'3', N'1', N''), (N'140406', N'1404', N'00,14,1404', N'潞城区', N'14', N'山西省', N'1404', N'长治市', N'140406', N'潞城区', N'', N'', N'', N'', N'3', N'1', N''), (N'140423', N'1404', N'00,14,1404', N'襄垣县', N'14', N'山西省', N'1404', N'长治市', N'140423', N'襄垣县', N'', N'', N'', N'', N'3', N'1', N''), (N'140425', N'1404', N'00,14,1404', N'平顺县', N'14', N'山西省', N'1404', N'长治市', N'140425', N'平顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'140426', N'1404', N'00,14,1404', N'黎城县', N'14', N'山西省', N'1404', N'长治市', N'140426', N'黎城县', N'', N'', N'', N'', N'3', N'1', N''), (N'140427', N'1404', N'00,14,1404', N'壶关县', N'14', N'山西省', N'1404', N'长治市', N'140427', N'壶关县', N'', N'', N'', N'', N'3', N'1', N''), (N'140428', N'1404', N'00,14,1404', N'长子县', N'14', N'山西省', N'1404', N'长治市', N'140428', N'长子县', N'', N'', N'', N'', N'3', N'1', N''), (N'140429', N'1404', N'00,14,1404', N'武乡县', N'14', N'山西省', N'1404', N'长治市', N'140429', N'武乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'140430', N'1404', N'00,14,1404', N'沁县', N'14', N'山西省', N'1404', N'长治市', N'140430', N'沁县', N'', N'', N'', N'', N'3', N'1', N''), (N'140431', N'1404', N'00,14,1404', N'沁源县', N'14', N'山西省', N'1404', N'长治市', N'140431', N'沁源县', N'', N'', N'', N'', N'3', N'1', N''), (N'1405', N'14', N'00,14', N'晋城市', N'14', N'山西省', N'1405', N'晋城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140502', N'1405', N'00,14,1405', N'城区', N'14', N'山西省', N'1405', N'晋城市', N'140502', N'城区', N'', N'', N'', N'', N'3', N'1', N''), (N'140521', N'1405', N'00,14,1405', N'沁水县', N'14', N'山西省', N'1405', N'晋城市', N'140521', N'沁水县', N'', N'', N'', N'', N'3', N'1', N''), (N'140522', N'1405', N'00,14,1405', N'阳城县', N'14', N'山西省', N'1405', N'晋城市', N'140522', N'阳城县', N'', N'', N'', N'', N'3', N'1', N''), (N'140524', N'1405', N'00,14,1405', N'陵川县', N'14', N'山西省', N'1405', N'晋城市', N'140524', N'陵川县', N'', N'', N'', N'', N'3', N'1', N''), (N'140525', N'1405', N'00,14,1405', N'泽州县', N'14', N'山西省', N'1405', N'晋城市', N'140525', N'泽州县', N'', N'', N'', N'', N'3', N'1', N''), (N'140581', N'1405', N'00,14,1405', N'高平市', N'14', N'山西省', N'1405', N'晋城市', N'140581', N'高平市', N'', N'', N'', N'', N'3', N'1', N''), (N'1406', N'14', N'00,14', N'朔州市', N'14', N'山西省', N'1406', N'朔州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140602', N'1406', N'00,14,1406', N'朔城区', N'14', N'山西省', N'1406', N'朔州市', N'140602', N'朔城区', N'', N'', N'', N'', N'3', N'1', N''), (N'140603', N'1406', N'00,14,1406', N'平鲁区', N'14', N'山西省', N'1406', N'朔州市', N'140603', N'平鲁区', N'', N'', N'', N'', N'3', N'1', N''), (N'140621', N'1406', N'00,14,1406', N'山阴县', N'14', N'山西省', N'1406', N'朔州市', N'140621', N'山阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'140622', N'1406', N'00,14,1406', N'应县', N'14', N'山西省', N'1406', N'朔州市', N'140622', N'应县', N'', N'', N'', N'', N'3', N'1', N''), (N'140623', N'1406', N'00,14,1406', N'右玉县', N'14', N'山西省', N'1406', N'朔州市', N'140623', N'右玉县', N'', N'', N'', N'', N'3', N'1', N''), (N'140681', N'1406', N'00,14,1406', N'怀仁市', N'14', N'山西省', N'1406', N'朔州市', N'140681', N'怀仁市', N'', N'', N'', N'', N'3', N'1', N''), (N'1407', N'14', N'00,14', N'晋中市', N'14', N'山西省', N'1407', N'晋中市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140702', N'1407', N'00,14,1407', N'榆次区', N'14', N'山西省', N'1407', N'晋中市', N'140702', N'榆次区', N'', N'', N'', N'', N'3', N'1', N''), (N'140703', N'1407', N'00,14,1407', N'太谷区', N'14', N'山西省', N'1407', N'晋中市', N'140703', N'太谷区', N'', N'', N'', N'', N'3', N'1', N''), (N'140721', N'1407', N'00,14,1407', N'榆社县', N'14', N'山西省', N'1407', N'晋中市', N'140721', N'榆社县', N'', N'', N'', N'', N'3', N'1', N''), (N'140722', N'1407', N'00,14,1407', N'左权县', N'14', N'山西省', N'1407', N'晋中市', N'140722', N'左权县', N'', N'', N'', N'', N'3', N'1', N''), (N'140723', N'1407', N'00,14,1407', N'和顺县', N'14', N'山西省', N'1407', N'晋中市', N'140723', N'和顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'140724', N'1407', N'00,14,1407', N'昔阳县', N'14', N'山西省', N'1407', N'晋中市', N'140724', N'昔阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'140725', N'1407', N'00,14,1407', N'寿阳县', N'14', N'山西省', N'1407', N'晋中市', N'140725', N'寿阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'140727', N'1407', N'00,14,1407', N'祁县', N'14', N'山西省', N'1407', N'晋中市', N'140727', N'祁县', N'', N'', N'', N'', N'3', N'1', N''), (N'140728', N'1407', N'00,14,1407', N'平遥县', N'14', N'山西省', N'1407', N'晋中市', N'140728', N'平遥县', N'', N'', N'', N'', N'3', N'1', N''), (N'140729', N'1407', N'00,14,1407', N'灵石县', N'14', N'山西省', N'1407', N'晋中市', N'140729', N'灵石县', N'', N'', N'', N'', N'3', N'1', N''), (N'140781', N'1407', N'00,14,1407', N'介休市', N'14', N'山西省', N'1407', N'晋中市', N'140781', N'介休市', N'', N'', N'', N'', N'3', N'1', N''), (N'1408', N'14', N'00,14', N'运城市', N'14', N'山西省', N'1408', N'运城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140802', N'1408', N'00,14,1408', N'盐湖区', N'14', N'山西省', N'1408', N'运城市', N'140802', N'盐湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'140821', N'1408', N'00,14,1408', N'临猗县', N'14', N'山西省', N'1408', N'运城市', N'140821', N'临猗县', N'', N'', N'', N'', N'3', N'1', N''), (N'140822', N'1408', N'00,14,1408', N'万荣县', N'14', N'山西省', N'1408', N'运城市', N'140822', N'万荣县', N'', N'', N'', N'', N'3', N'1', N''), (N'140823', N'1408', N'00,14,1408', N'闻喜县', N'14', N'山西省', N'1408', N'运城市', N'140823', N'闻喜县', N'', N'', N'', N'', N'3', N'1', N''), (N'140824', N'1408', N'00,14,1408', N'稷山县', N'14', N'山西省', N'1408', N'运城市', N'140824', N'稷山县', N'', N'', N'', N'', N'3', N'1', N''), (N'140825', N'1408', N'00,14,1408', N'新绛县', N'14', N'山西省', N'1408', N'运城市', N'140825', N'新绛县', N'', N'', N'', N'', N'3', N'1', N''), (N'140826', N'1408', N'00,14,1408', N'绛县', N'14', N'山西省', N'1408', N'运城市', N'140826', N'绛县', N'', N'', N'', N'', N'3', N'1', N''), (N'140827', N'1408', N'00,14,1408', N'垣曲县', N'14', N'山西省', N'1408', N'运城市', N'140827', N'垣曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'140828', N'1408', N'00,14,1408', N'夏县', N'14', N'山西省', N'1408', N'运城市', N'140828', N'夏县', N'', N'', N'', N'', N'3', N'1', N''), (N'140829', N'1408', N'00,14,1408', N'平陆县', N'14', N'山西省', N'1408', N'运城市', N'140829', N'平陆县', N'', N'', N'', N'', N'3', N'1', N''), (N'140830', N'1408', N'00,14,1408', N'芮城县', N'14', N'山西省', N'1408', N'运城市', N'140830', N'芮城县', N'', N'', N'', N'', N'3', N'1', N''), (N'140881', N'1408', N'00,14,1408', N'永济市', N'14', N'山西省', N'1408', N'运城市', N'140881', N'永济市', N'', N'', N'', N'', N'3', N'1', N''), (N'140882', N'1408', N'00,14,1408', N'河津市', N'14', N'山西省', N'1408', N'运城市', N'140882', N'河津市', N'', N'', N'', N'', N'3', N'1', N''), (N'1409', N'14', N'00,14', N'忻州市', N'14', N'山西省', N'1409', N'忻州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140902', N'1409', N'00,14,1409', N'忻府区', N'14', N'山西省', N'1409', N'忻州市', N'140902', N'忻府区', N'', N'', N'', N'', N'3', N'1', N''), (N'140921', N'1409', N'00,14,1409', N'定襄县', N'14', N'山西省', N'1409', N'忻州市', N'140921', N'定襄县', N'', N'', N'', N'', N'3', N'1', N''), (N'140922', N'1409', N'00,14,1409', N'五台县', N'14', N'山西省', N'1409', N'忻州市', N'140922', N'五台县', N'', N'', N'', N'', N'3', N'1', N''), (N'140923', N'1409', N'00,14,1409', N'代县', N'14', N'山西省', N'1409', N'忻州市', N'140923', N'代县', N'', N'', N'', N'', N'3', N'1', N''), (N'140924', N'1409', N'00,14,1409', N'繁峙县', N'14', N'山西省', N'1409', N'忻州市', N'140924', N'繁峙县', N'', N'', N'', N'', N'3', N'1', N''), (N'140925', N'1409', N'00,14,1409', N'宁武县', N'14', N'山西省', N'1409', N'忻州市', N'140925', N'宁武县', N'', N'', N'', N'', N'3', N'1', N''), (N'140926', N'1409', N'00,14,1409', N'静乐县', N'14', N'山西省', N'1409', N'忻州市', N'140926', N'静乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'140927', N'1409', N'00,14,1409', N'神池县', N'14', N'山西省', N'1409', N'忻州市', N'140927', N'神池县', N'', N'', N'', N'', N'3', N'1', N''), (N'140928', N'1409', N'00,14,1409', N'五寨县', N'14', N'山西省', N'1409', N'忻州市', N'140928', N'五寨县', N'', N'', N'', N'', N'3', N'1', N''), (N'140929', N'1409', N'00,14,1409', N'岢岚县', N'14', N'山西省', N'1409', N'忻州市', N'140929', N'岢岚县', N'', N'', N'', N'', N'3', N'1', N''), (N'140930', N'1409', N'00,14,1409', N'河曲县', N'14', N'山西省', N'1409', N'忻州市', N'140930', N'河曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'140931', N'1409', N'00,14,1409', N'保德县', N'14', N'山西省', N'1409', N'忻州市', N'140931', N'保德县', N'', N'', N'', N'', N'3', N'1', N''), (N'140932', N'1409', N'00,14,1409', N'偏关县', N'14', N'山西省', N'1409', N'忻州市', N'140932', N'偏关县', N'', N'', N'', N'', N'3', N'1', N''), (N'140981', N'1409', N'00,14,1409', N'原平市', N'14', N'山西省', N'1409', N'忻州市', N'140981', N'原平市', N'', N'', N'', N'', N'3', N'1', N''), (N'1410', N'14', N'00,14', N'临汾市', N'14', N'山西省', N'1410', N'临汾市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'141002', N'1410', N'00,14,1410', N'尧都区', N'14', N'山西省', N'1410', N'临汾市', N'141002', N'尧都区', N'', N'', N'', N'', N'3', N'1', N''), (N'141021', N'1410', N'00,14,1410', N'曲沃县', N'14', N'山西省', N'1410', N'临汾市', N'141021', N'曲沃县', N'', N'', N'', N'', N'3', N'1', N''), (N'141022', N'1410', N'00,14,1410', N'翼城县', N'14', N'山西省', N'1410', N'临汾市', N'141022', N'翼城县', N'', N'', N'', N'', N'3', N'1', N''), (N'141023', N'1410', N'00,14,1410', N'襄汾县', N'14', N'山西省', N'1410', N'临汾市', N'141023', N'襄汾县', N'', N'', N'', N'', N'3', N'1', N''), (N'141024', N'1410', N'00,14,1410', N'洪洞县', N'14', N'山西省', N'1410', N'临汾市', N'141024', N'洪洞县', N'', N'', N'', N'', N'3', N'1', N''), (N'141025', N'1410', N'00,14,1410', N'古县', N'14', N'山西省', N'1410', N'临汾市', N'141025', N'古县', N'', N'', N'', N'', N'3', N'1', N''), (N'141026', N'1410', N'00,14,1410', N'安泽县', N'14', N'山西省', N'1410', N'临汾市', N'141026', N'安泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'141027', N'1410', N'00,14,1410', N'浮山县', N'14', N'山西省', N'1410', N'临汾市', N'141027', N'浮山县', N'', N'', N'', N'', N'3', N'1', N''), (N'141028', N'1410', N'00,14,1410', N'吉县', N'14', N'山西省', N'1410', N'临汾市', N'141028', N'吉县', N'', N'', N'', N'', N'3', N'1', N''), (N'141029', N'1410', N'00,14,1410', N'乡宁县', N'14', N'山西省', N'1410', N'临汾市', N'141029', N'乡宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'141030', N'1410', N'00,14,1410', N'大宁县', N'14', N'山西省', N'1410', N'临汾市', N'141030', N'大宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'141031', N'1410', N'00,14,1410', N'隰县', N'14', N'山西省', N'1410', N'临汾市', N'141031', N'隰县', N'', N'', N'', N'', N'3', N'1', N''), (N'141032', N'1410', N'00,14,1410', N'永和县', N'14', N'山西省', N'1410', N'临汾市', N'141032', N'永和县', N'', N'', N'', N'', N'3', N'1', N''), (N'141033', N'1410', N'00,14,1410', N'蒲县', N'14', N'山西省', N'1410', N'临汾市', N'141033', N'蒲县', N'', N'', N'', N'', N'3', N'1', N''), (N'141034', N'1410', N'00,14,1410', N'汾西县', N'14', N'山西省', N'1410', N'临汾市', N'141034', N'汾西县', N'', N'', N'', N'', N'3', N'1', N''), (N'141081', N'1410', N'00,14,1410', N'侯马市', N'14', N'山西省', N'1410', N'临汾市', N'141081', N'侯马市', N'', N'', N'', N'', N'3', N'1', N''), (N'141082', N'1410', N'00,14,1410', N'霍州市', N'14', N'山西省', N'1410', N'临汾市', N'141082', N'霍州市', N'', N'', N'', N'', N'3', N'1', N''), (N'1411', N'14', N'00,14', N'吕梁市', N'14', N'山西省', N'1411', N'吕梁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'141102', N'1411', N'00,14,1411', N'离石区', N'14', N'山西省', N'1411', N'吕梁市', N'141102', N'离石区', N'', N'', N'', N'', N'3', N'1', N''), (N'141121', N'1411', N'00,14,1411', N'文水县', N'14', N'山西省', N'1411', N'吕梁市', N'141121', N'文水县', N'', N'', N'', N'', N'3', N'1', N''), (N'141122', N'1411', N'00,14,1411', N'交城县', N'14', N'山西省', N'1411', N'吕梁市', N'141122', N'交城县', N'', N'', N'', N'', N'3', N'1', N''), (N'141123', N'1411', N'00,14,1411', N'兴县', N'14', N'山西省', N'1411', N'吕梁市', N'141123', N'兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'141124', N'1411', N'00,14,1411', N'临县', N'14', N'山西省', N'1411', N'吕梁市', N'141124', N'临县', N'', N'', N'', N'', N'3', N'1', N''), (N'141125', N'1411', N'00,14,1411', N'柳林县', N'14', N'山西省', N'1411', N'吕梁市', N'141125', N'柳林县', N'', N'', N'', N'', N'3', N'1', N''), (N'141126', N'1411', N'00,14,1411', N'石楼县', N'14', N'山西省', N'1411', N'吕梁市', N'141126', N'石楼县', N'', N'', N'', N'', N'3', N'1', N''), (N'141127', N'1411', N'00,14,1411', N'岚县', N'14', N'山西省', N'1411', N'吕梁市', N'141127', N'岚县', N'', N'', N'', N'', N'3', N'1', N''), (N'141128', N'1411', N'00,14,1411', N'方山县', N'14', N'山西省', N'1411', N'吕梁市', N'141128', N'方山县', N'', N'', N'', N'', N'3', N'1', N''), (N'141129', N'1411', N'00,14,1411', N'中阳县', N'14', N'山西省', N'1411', N'吕梁市', N'141129', N'中阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'141130', N'1411', N'00,14,1411', N'交口县', N'14', N'山西省', N'1411', N'吕梁市', N'141130', N'交口县', N'', N'', N'', N'', N'3', N'1', N''), (N'141181', N'1411', N'00,14,1411', N'孝义市', N'14', N'山西省', N'1411', N'吕梁市', N'141181', N'孝义市', N'', N'', N'', N'', N'3', N'1', N''), (N'141182', N'1411', N'00,14,1411', N'汾阳市', N'14', N'山西省', N'1411', N'吕梁市', N'141182', N'汾阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'15', N'00', N'00', N'内蒙古自治区', N'15', N'内蒙古自治区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'1501', N'15', N'00,15', N'呼和浩特市', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150102', N'1501', N'00,15,1501', N'新城区', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150102', N'新城区', N'', N'', N'', N'', N'3', N'1', N''), (N'150103', N'1501', N'00,15,1501', N'回民区', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150103', N'回民区', N'', N'', N'', N'', N'3', N'1', N''), (N'150104', N'1501', N'00,15,1501', N'玉泉区', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150104', N'玉泉区', N'', N'', N'', N'', N'3', N'1', N''), (N'150105', N'1501', N'00,15,1501', N'赛罕区', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150105', N'赛罕区', N'', N'', N'', N'', N'3', N'1', N''), (N'150121', N'1501', N'00,15,1501', N'土默特左旗', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150121', N'土默特左旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150122', N'1501', N'00,15,1501', N'托克托县', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150122', N'托克托县', N'', N'', N'', N'', N'3', N'1', N''), (N'150123', N'1501', N'00,15,1501', N'和林格尔县', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150123', N'和林格尔县', N'', N'', N'', N'', N'3', N'1', N''), (N'150124', N'1501', N'00,15,1501', N'清水河县', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150124', N'清水河县', N'', N'', N'', N'', N'3', N'1', N''), (N'150125', N'1501', N'00,15,1501', N'武川县', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150125', N'武川县', N'', N'', N'', N'', N'3', N'1', N''), (N'1502', N'15', N'00,15', N'包头市', N'15', N'内蒙古自治区', N'1502', N'包头市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150202', N'1502', N'00,15,1502', N'东河区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150202', N'东河区', N'', N'', N'', N'', N'3', N'1', N''), (N'150203', N'1502', N'00,15,1502', N'昆都仑区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150203', N'昆都仑区', N'', N'', N'', N'', N'3', N'1', N''), (N'150204', N'1502', N'00,15,1502', N'青山区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150204', N'青山区', N'', N'', N'', N'', N'3', N'1', N''), (N'150205', N'1502', N'00,15,1502', N'石拐区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150205', N'石拐区', N'', N'', N'', N'', N'3', N'1', N''), (N'150206', N'1502', N'00,15,1502', N'白云鄂博矿区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150206', N'白云鄂博矿区', N'', N'', N'', N'', N'3', N'1', N''), (N'150207', N'1502', N'00,15,1502', N'九原区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150207', N'九原区', N'', N'', N'', N'', N'3', N'1', N''), (N'150221', N'1502', N'00,15,1502', N'土默特右旗', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150221', N'土默特右旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150222', N'1502', N'00,15,1502', N'固阳县', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150222', N'固阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'150223', N'1502', N'00,15,1502', N'达尔罕茂明安联合旗', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150223', N'达尔罕茂明安联合旗', N'', N'', N'', N'', N'3', N'1', N''), (N'1503', N'15', N'00,15', N'乌海市', N'15', N'内蒙古自治区', N'1503', N'乌海市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150302', N'1503', N'00,15,1503', N'海勃湾区', N'15', N'内蒙古自治区', N'1503', N'乌海市', N'150302', N'海勃湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'150303', N'1503', N'00,15,1503', N'海南区', N'15', N'内蒙古自治区', N'1503', N'乌海市', N'150303', N'海南区', N'', N'', N'', N'', N'3', N'1', N''), (N'150304', N'1503', N'00,15,1503', N'乌达区', N'15', N'内蒙古自治区', N'1503', N'乌海市', N'150304', N'乌达区', N'', N'', N'', N'', N'3', N'1', N''), (N'1504', N'15', N'00,15', N'赤峰市', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150402', N'1504', N'00,15,1504', N'红山区', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150402', N'红山区', N'', N'', N'', N'', N'3', N'1', N''), (N'150403', N'1504', N'00,15,1504', N'元宝山区', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150403', N'元宝山区', N'', N'', N'', N'', N'3', N'1', N''), (N'150404', N'1504', N'00,15,1504', N'松山区', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150404', N'松山区', N'', N'', N'', N'', N'3', N'1', N''), (N'150421', N'1504', N'00,15,1504', N'阿鲁科尔沁旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150421', N'阿鲁科尔沁旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150422', N'1504', N'00,15,1504', N'巴林左旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150422', N'巴林左旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150423', N'1504', N'00,15,1504', N'巴林右旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150423', N'巴林右旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150424', N'1504', N'00,15,1504', N'林西县', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150424', N'林西县', N'', N'', N'', N'', N'3', N'1', N''), (N'150425', N'1504', N'00,15,1504', N'克什克腾旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150425', N'克什克腾旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150426', N'1504', N'00,15,1504', N'翁牛特旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150426', N'翁牛特旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150428', N'1504', N'00,15,1504', N'喀喇沁旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150428', N'喀喇沁旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150429', N'1504', N'00,15,1504', N'宁城县', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150429', N'宁城县', N'', N'', N'', N'', N'3', N'1', N''), (N'150430', N'1504', N'00,15,1504', N'敖汉旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150430', N'敖汉旗', N'', N'', N'', N'', N'3', N'1', N''), (N'1505', N'15', N'00,15', N'通辽市', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150502', N'1505', N'00,15,1505', N'科尔沁区', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150502', N'科尔沁区', N'', N'', N'', N'', N'3', N'1', N''), (N'150521', N'1505', N'00,15,1505', N'科尔沁左翼中旗', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150521', N'科尔沁左翼中旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150522', N'1505', N'00,15,1505', N'科尔沁左翼后旗', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150522', N'科尔沁左翼后旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150523', N'1505', N'00,15,1505', N'开鲁县', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150523', N'开鲁县', N'', N'', N'', N'', N'3', N'1', N''), (N'150524', N'1505', N'00,15,1505', N'库伦旗', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150524', N'库伦旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150525', N'1505', N'00,15,1505', N'奈曼旗', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150525', N'奈曼旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150526', N'1505', N'00,15,1505', N'扎鲁特旗', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150526', N'扎鲁特旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150581', N'1505', N'00,15,1505', N'霍林郭勒市', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150581', N'霍林郭勒市', N'', N'', N'', N'', N'3', N'1', N''), (N'1506', N'15', N'00,15', N'鄂尔多斯市', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150602', N'1506', N'00,15,1506', N'东胜区', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150602', N'东胜区', N'', N'', N'', N'', N'3', N'1', N''), (N'150603', N'1506', N'00,15,1506', N'康巴什区', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150603', N'康巴什区', N'', N'', N'', N'', N'3', N'1', N''), (N'150621', N'1506', N'00,15,1506', N'达拉特旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150621', N'达拉特旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150622', N'1506', N'00,15,1506', N'准格尔旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150622', N'准格尔旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150623', N'1506', N'00,15,1506', N'鄂托克前旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150623', N'鄂托克前旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150624', N'1506', N'00,15,1506', N'鄂托克旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150624', N'鄂托克旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150625', N'1506', N'00,15,1506', N'杭锦旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150625', N'杭锦旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150626', N'1506', N'00,15,1506', N'乌审旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150626', N'乌审旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150627', N'1506', N'00,15,1506', N'伊金霍洛旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150627', N'伊金霍洛旗', N'', N'', N'', N'', N'3', N'1', N''), (N'1507', N'15', N'00,15', N'呼伦贝尔市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150702', N'1507', N'00,15,1507', N'海拉尔区', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150702', N'海拉尔区', N'', N'', N'', N'', N'3', N'1', N''), (N'150703', N'1507', N'00,15,1507', N'扎赉诺尔区', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150703', N'扎赉诺尔区', N'', N'', N'', N'', N'3', N'1', N''), (N'150721', N'1507', N'00,15,1507', N'阿荣旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150721', N'阿荣旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150722', N'1507', N'00,15,1507', N'莫力达瓦达斡尔族自治旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150722', N'莫力达瓦达斡尔族自治旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150723', N'1507', N'00,15,1507', N'鄂伦春自治旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150723', N'鄂伦春自治旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150724', N'1507', N'00,15,1507', N'鄂温克族自治旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150724', N'鄂温克族自治旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150725', N'1507', N'00,15,1507', N'陈巴尔虎旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150725', N'陈巴尔虎旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150726', N'1507', N'00,15,1507', N'新巴尔虎左旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150726', N'新巴尔虎左旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150727', N'1507', N'00,15,1507', N'新巴尔虎右旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150727', N'新巴尔虎右旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150781', N'1507', N'00,15,1507', N'满洲里市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150781', N'满洲里市', N'', N'', N'', N'', N'3', N'1', N''), (N'150782', N'1507', N'00,15,1507', N'牙克石市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150782', N'牙克石市', N'', N'', N'', N'', N'3', N'1', N'')
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'150783', N'1507', N'00,15,1507', N'扎兰屯市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150783', N'扎兰屯市', N'', N'', N'', N'', N'3', N'1', N''), (N'150784', N'1507', N'00,15,1507', N'额尔古纳市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150784', N'额尔古纳市', N'', N'', N'', N'', N'3', N'1', N''), (N'150785', N'1507', N'00,15,1507', N'根河市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150785', N'根河市', N'', N'', N'', N'', N'3', N'1', N''), (N'1508', N'15', N'00,15', N'巴彦淖尔市', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150802', N'1508', N'00,15,1508', N'临河区', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150802', N'临河区', N'', N'', N'', N'', N'3', N'1', N''), (N'150821', N'1508', N'00,15,1508', N'五原县', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150821', N'五原县', N'', N'', N'', N'', N'3', N'1', N''), (N'150822', N'1508', N'00,15,1508', N'磴口县', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150822', N'磴口县', N'', N'', N'', N'', N'3', N'1', N''), (N'150823', N'1508', N'00,15,1508', N'乌拉特前旗', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150823', N'乌拉特前旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150824', N'1508', N'00,15,1508', N'乌拉特中旗', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150824', N'乌拉特中旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150825', N'1508', N'00,15,1508', N'乌拉特后旗', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150825', N'乌拉特后旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150826', N'1508', N'00,15,1508', N'杭锦后旗', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150826', N'杭锦后旗', N'', N'', N'', N'', N'3', N'1', N''), (N'1509', N'15', N'00,15', N'乌兰察布市', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150902', N'1509', N'00,15,1509', N'集宁区', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150902', N'集宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'150921', N'1509', N'00,15,1509', N'卓资县', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150921', N'卓资县', N'', N'', N'', N'', N'3', N'1', N''), (N'150922', N'1509', N'00,15,1509', N'化德县', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150922', N'化德县', N'', N'', N'', N'', N'3', N'1', N''), (N'150923', N'1509', N'00,15,1509', N'商都县', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150923', N'商都县', N'', N'', N'', N'', N'3', N'1', N''), (N'150924', N'1509', N'00,15,1509', N'兴和县', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150924', N'兴和县', N'', N'', N'', N'', N'3', N'1', N''), (N'150925', N'1509', N'00,15,1509', N'凉城县', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150925', N'凉城县', N'', N'', N'', N'', N'3', N'1', N''), (N'150926', N'1509', N'00,15,1509', N'察哈尔右翼前旗', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150926', N'察哈尔右翼前旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150927', N'1509', N'00,15,1509', N'察哈尔右翼中旗', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150927', N'察哈尔右翼中旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150928', N'1509', N'00,15,1509', N'察哈尔右翼后旗', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150928', N'察哈尔右翼后旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150929', N'1509', N'00,15,1509', N'四子王旗', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150929', N'四子王旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150981', N'1509', N'00,15,1509', N'丰镇市', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150981', N'丰镇市', N'', N'', N'', N'', N'3', N'1', N''), (N'1522', N'15', N'00,15', N'兴安盟', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'152201', N'1522', N'00,15,1522', N'乌兰浩特市', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152201', N'乌兰浩特市', N'', N'', N'', N'', N'3', N'1', N''), (N'152202', N'1522', N'00,15,1522', N'阿尔山市', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152202', N'阿尔山市', N'', N'', N'', N'', N'3', N'1', N''), (N'152221', N'1522', N'00,15,1522', N'科尔沁右翼前旗', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152221', N'科尔沁右翼前旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152222', N'1522', N'00,15,1522', N'科尔沁右翼中旗', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152222', N'科尔沁右翼中旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152223', N'1522', N'00,15,1522', N'扎赉特旗', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152223', N'扎赉特旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152224', N'1522', N'00,15,1522', N'突泉县', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152224', N'突泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'1525', N'15', N'00,15', N'锡林郭勒盟', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'152501', N'1525', N'00,15,1525', N'二连浩特市', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152501', N'二连浩特市', N'', N'', N'', N'', N'3', N'1', N''), (N'152502', N'1525', N'00,15,1525', N'锡林浩特市', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152502', N'锡林浩特市', N'', N'', N'', N'', N'3', N'1', N''), (N'152522', N'1525', N'00,15,1525', N'阿巴嘎旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152522', N'阿巴嘎旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152523', N'1525', N'00,15,1525', N'苏尼特左旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152523', N'苏尼特左旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152524', N'1525', N'00,15,1525', N'苏尼特右旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152524', N'苏尼特右旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152525', N'1525', N'00,15,1525', N'东乌珠穆沁旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152525', N'东乌珠穆沁旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152526', N'1525', N'00,15,1525', N'西乌珠穆沁旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152526', N'西乌珠穆沁旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152527', N'1525', N'00,15,1525', N'太仆寺旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152527', N'太仆寺旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152528', N'1525', N'00,15,1525', N'镶黄旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152528', N'镶黄旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152529', N'1525', N'00,15,1525', N'正镶白旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152529', N'正镶白旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152530', N'1525', N'00,15,1525', N'正蓝旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152530', N'正蓝旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152531', N'1525', N'00,15,1525', N'多伦县', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152531', N'多伦县', N'', N'', N'', N'', N'3', N'1', N''), (N'1529', N'15', N'00,15', N'阿拉善盟', N'15', N'内蒙古自治区', N'1529', N'阿拉善盟', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'152921', N'1529', N'00,15,1529', N'阿拉善左旗', N'15', N'内蒙古自治区', N'1529', N'阿拉善盟', N'152921', N'阿拉善左旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152922', N'1529', N'00,15,1529', N'阿拉善右旗', N'15', N'内蒙古自治区', N'1529', N'阿拉善盟', N'152922', N'阿拉善右旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152923', N'1529', N'00,15,1529', N'额济纳旗', N'15', N'内蒙古自治区', N'1529', N'阿拉善盟', N'152923', N'额济纳旗', N'', N'', N'', N'', N'3', N'1', N''), (N'21', N'00', N'00', N'辽宁省', N'21', N'辽宁省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'2101', N'21', N'00,21', N'沈阳市', N'21', N'辽宁省', N'2101', N'沈阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210102', N'2101', N'00,21,2101', N'和平区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210102', N'和平区', N'', N'', N'', N'', N'3', N'1', N''), (N'210103', N'2101', N'00,21,2101', N'沈河区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210103', N'沈河区', N'', N'', N'', N'', N'3', N'1', N''), (N'210104', N'2101', N'00,21,2101', N'大东区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210104', N'大东区', N'', N'', N'', N'', N'3', N'1', N''), (N'210105', N'2101', N'00,21,2101', N'皇姑区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210105', N'皇姑区', N'', N'', N'', N'', N'3', N'1', N''), (N'210106', N'2101', N'00,21,2101', N'铁西区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210106', N'铁西区', N'', N'', N'', N'', N'3', N'1', N''), (N'210111', N'2101', N'00,21,2101', N'苏家屯区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210111', N'苏家屯区', N'', N'', N'', N'', N'3', N'1', N''), (N'210112', N'2101', N'00,21,2101', N'浑南区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210112', N'浑南区', N'', N'', N'', N'', N'3', N'1', N''), (N'210113', N'2101', N'00,21,2101', N'沈北新区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210113', N'沈北新区', N'', N'', N'', N'', N'3', N'1', N''), (N'210114', N'2101', N'00,21,2101', N'于洪区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210114', N'于洪区', N'', N'', N'', N'', N'3', N'1', N''), (N'210115', N'2101', N'00,21,2101', N'辽中区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210115', N'辽中区', N'', N'', N'', N'', N'3', N'1', N''), (N'210123', N'2101', N'00,21,2101', N'康平县', N'21', N'辽宁省', N'2101', N'沈阳市', N'210123', N'康平县', N'', N'', N'', N'', N'3', N'1', N''), (N'210124', N'2101', N'00,21,2101', N'法库县', N'21', N'辽宁省', N'2101', N'沈阳市', N'210124', N'法库县', N'', N'', N'', N'', N'3', N'1', N''), (N'210181', N'2101', N'00,21,2101', N'新民市', N'21', N'辽宁省', N'2101', N'沈阳市', N'210181', N'新民市', N'', N'', N'', N'', N'3', N'1', N''), (N'2102', N'21', N'00,21', N'大连市', N'21', N'辽宁省', N'2102', N'大连市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210202', N'2102', N'00,21,2102', N'中山区', N'21', N'辽宁省', N'2102', N'大连市', N'210202', N'中山区', N'', N'', N'', N'', N'3', N'1', N''), (N'210203', N'2102', N'00,21,2102', N'西岗区', N'21', N'辽宁省', N'2102', N'大连市', N'210203', N'西岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'210204', N'2102', N'00,21,2102', N'沙河口区', N'21', N'辽宁省', N'2102', N'大连市', N'210204', N'沙河口区', N'', N'', N'', N'', N'3', N'1', N''), (N'210211', N'2102', N'00,21,2102', N'甘井子区', N'21', N'辽宁省', N'2102', N'大连市', N'210211', N'甘井子区', N'', N'', N'', N'', N'3', N'1', N''), (N'210212', N'2102', N'00,21,2102', N'旅顺口区', N'21', N'辽宁省', N'2102', N'大连市', N'210212', N'旅顺口区', N'', N'', N'', N'', N'3', N'1', N''), (N'210213', N'2102', N'00,21,2102', N'金州区', N'21', N'辽宁省', N'2102', N'大连市', N'210213', N'金州区', N'', N'', N'', N'', N'3', N'1', N''), (N'210214', N'2102', N'00,21,2102', N'普兰店区', N'21', N'辽宁省', N'2102', N'大连市', N'210214', N'普兰店区', N'', N'', N'', N'', N'3', N'1', N''), (N'210224', N'2102', N'00,21,2102', N'长海县', N'21', N'辽宁省', N'2102', N'大连市', N'210224', N'长海县', N'', N'', N'', N'', N'3', N'1', N''), (N'210281', N'2102', N'00,21,2102', N'瓦房店市', N'21', N'辽宁省', N'2102', N'大连市', N'210281', N'瓦房店市', N'', N'', N'', N'', N'3', N'1', N''), (N'210283', N'2102', N'00,21,2102', N'庄河市', N'21', N'辽宁省', N'2102', N'大连市', N'210283', N'庄河市', N'', N'', N'', N'', N'3', N'1', N''), (N'2103', N'21', N'00,21', N'鞍山市', N'21', N'辽宁省', N'2103', N'鞍山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210302', N'2103', N'00,21,2103', N'铁东区', N'21', N'辽宁省', N'2103', N'鞍山市', N'210302', N'铁东区', N'', N'', N'', N'', N'3', N'1', N''), (N'210303', N'2103', N'00,21,2103', N'铁西区', N'21', N'辽宁省', N'2103', N'鞍山市', N'210303', N'铁西区', N'', N'', N'', N'', N'3', N'1', N''), (N'210304', N'2103', N'00,21,2103', N'立山区', N'21', N'辽宁省', N'2103', N'鞍山市', N'210304', N'立山区', N'', N'', N'', N'', N'3', N'1', N''), (N'210311', N'2103', N'00,21,2103', N'千山区', N'21', N'辽宁省', N'2103', N'鞍山市', N'210311', N'千山区', N'', N'', N'', N'', N'3', N'1', N''), (N'210321', N'2103', N'00,21,2103', N'台安县', N'21', N'辽宁省', N'2103', N'鞍山市', N'210321', N'台安县', N'', N'', N'', N'', N'3', N'1', N''), (N'210323', N'2103', N'00,21,2103', N'岫岩满族自治县', N'21', N'辽宁省', N'2103', N'鞍山市', N'210323', N'岫岩满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'210381', N'2103', N'00,21,2103', N'海城市', N'21', N'辽宁省', N'2103', N'鞍山市', N'210381', N'海城市', N'', N'', N'', N'', N'3', N'1', N''), (N'2104', N'21', N'00,21', N'抚顺市', N'21', N'辽宁省', N'2104', N'抚顺市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210402', N'2104', N'00,21,2104', N'新抚区', N'21', N'辽宁省', N'2104', N'抚顺市', N'210402', N'新抚区', N'', N'', N'', N'', N'3', N'1', N''), (N'210403', N'2104', N'00,21,2104', N'东洲区', N'21', N'辽宁省', N'2104', N'抚顺市', N'210403', N'东洲区', N'', N'', N'', N'', N'3', N'1', N''), (N'210404', N'2104', N'00,21,2104', N'望花区', N'21', N'辽宁省', N'2104', N'抚顺市', N'210404', N'望花区', N'', N'', N'', N'', N'3', N'1', N''), (N'210411', N'2104', N'00,21,2104', N'顺城区', N'21', N'辽宁省', N'2104', N'抚顺市', N'210411', N'顺城区', N'', N'', N'', N'', N'3', N'1', N''), (N'210421', N'2104', N'00,21,2104', N'抚顺县', N'21', N'辽宁省', N'2104', N'抚顺市', N'210421', N'抚顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'210422', N'2104', N'00,21,2104', N'新宾满族自治县', N'21', N'辽宁省', N'2104', N'抚顺市', N'210422', N'新宾满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'210423', N'2104', N'00,21,2104', N'清原满族自治县', N'21', N'辽宁省', N'2104', N'抚顺市', N'210423', N'清原满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'2105', N'21', N'00,21', N'本溪市', N'21', N'辽宁省', N'2105', N'本溪市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210502', N'2105', N'00,21,2105', N'平山区', N'21', N'辽宁省', N'2105', N'本溪市', N'210502', N'平山区', N'', N'', N'', N'', N'3', N'1', N''), (N'210503', N'2105', N'00,21,2105', N'溪湖区', N'21', N'辽宁省', N'2105', N'本溪市', N'210503', N'溪湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'210504', N'2105', N'00,21,2105', N'明山区', N'21', N'辽宁省', N'2105', N'本溪市', N'210504', N'明山区', N'', N'', N'', N'', N'3', N'1', N''), (N'210505', N'2105', N'00,21,2105', N'南芬区', N'21', N'辽宁省', N'2105', N'本溪市', N'210505', N'南芬区', N'', N'', N'', N'', N'3', N'1', N''), (N'210521', N'2105', N'00,21,2105', N'本溪满族自治县', N'21', N'辽宁省', N'2105', N'本溪市', N'210521', N'本溪满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'210522', N'2105', N'00,21,2105', N'桓仁满族自治县', N'21', N'辽宁省', N'2105', N'本溪市', N'210522', N'桓仁满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'2106', N'21', N'00,21', N'丹东市', N'21', N'辽宁省', N'2106', N'丹东市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210602', N'2106', N'00,21,2106', N'元宝区', N'21', N'辽宁省', N'2106', N'丹东市', N'210602', N'元宝区', N'', N'', N'', N'', N'3', N'1', N''), (N'210603', N'2106', N'00,21,2106', N'振兴区', N'21', N'辽宁省', N'2106', N'丹东市', N'210603', N'振兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'210604', N'2106', N'00,21,2106', N'振安区', N'21', N'辽宁省', N'2106', N'丹东市', N'210604', N'振安区', N'', N'', N'', N'', N'3', N'1', N''), (N'210624', N'2106', N'00,21,2106', N'宽甸满族自治县', N'21', N'辽宁省', N'2106', N'丹东市', N'210624', N'宽甸满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'210681', N'2106', N'00,21,2106', N'东港市', N'21', N'辽宁省', N'2106', N'丹东市', N'210681', N'东港市', N'', N'', N'', N'', N'3', N'1', N''), (N'210682', N'2106', N'00,21,2106', N'凤城市', N'21', N'辽宁省', N'2106', N'丹东市', N'210682', N'凤城市', N'', N'', N'', N'', N'3', N'1', N''), (N'2107', N'21', N'00,21', N'锦州市', N'21', N'辽宁省', N'2107', N'锦州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210702', N'2107', N'00,21,2107', N'古塔区', N'21', N'辽宁省', N'2107', N'锦州市', N'210702', N'古塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'210703', N'2107', N'00,21,2107', N'凌河区', N'21', N'辽宁省', N'2107', N'锦州市', N'210703', N'凌河区', N'', N'', N'', N'', N'3', N'1', N''), (N'210711', N'2107', N'00,21,2107', N'太和区', N'21', N'辽宁省', N'2107', N'锦州市', N'210711', N'太和区', N'', N'', N'', N'', N'3', N'1', N''), (N'210726', N'2107', N'00,21,2107', N'黑山县', N'21', N'辽宁省', N'2107', N'锦州市', N'210726', N'黑山县', N'', N'', N'', N'', N'3', N'1', N''), (N'210727', N'2107', N'00,21,2107', N'义县', N'21', N'辽宁省', N'2107', N'锦州市', N'210727', N'义县', N'', N'', N'', N'', N'3', N'1', N''), (N'210781', N'2107', N'00,21,2107', N'凌海市', N'21', N'辽宁省', N'2107', N'锦州市', N'210781', N'凌海市', N'', N'', N'', N'', N'3', N'1', N''), (N'210782', N'2107', N'00,21,2107', N'北镇市', N'21', N'辽宁省', N'2107', N'锦州市', N'210782', N'北镇市', N'', N'', N'', N'', N'3', N'1', N''), (N'2108', N'21', N'00,21', N'营口市', N'21', N'辽宁省', N'2108', N'营口市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210802', N'2108', N'00,21,2108', N'站前区', N'21', N'辽宁省', N'2108', N'营口市', N'210802', N'站前区', N'', N'', N'', N'', N'3', N'1', N''), (N'210803', N'2108', N'00,21,2108', N'西市区', N'21', N'辽宁省', N'2108', N'营口市', N'210803', N'西市区', N'', N'', N'', N'', N'3', N'1', N''), (N'210804', N'2108', N'00,21,2108', N'鲅鱼圈区', N'21', N'辽宁省', N'2108', N'营口市', N'210804', N'鲅鱼圈区', N'', N'', N'', N'', N'3', N'1', N''), (N'210811', N'2108', N'00,21,2108', N'老边区', N'21', N'辽宁省', N'2108', N'营口市', N'210811', N'老边区', N'', N'', N'', N'', N'3', N'1', N''), (N'210881', N'2108', N'00,21,2108', N'盖州市', N'21', N'辽宁省', N'2108', N'营口市', N'210881', N'盖州市', N'', N'', N'', N'', N'3', N'1', N''), (N'210882', N'2108', N'00,21,2108', N'大石桥市', N'21', N'辽宁省', N'2108', N'营口市', N'210882', N'大石桥市', N'', N'', N'', N'', N'3', N'1', N''), (N'2109', N'21', N'00,21', N'阜新市', N'21', N'辽宁省', N'2109', N'阜新市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210902', N'2109', N'00,21,2109', N'海州区', N'21', N'辽宁省', N'2109', N'阜新市', N'210902', N'海州区', N'', N'', N'', N'', N'3', N'1', N''), (N'210903', N'2109', N'00,21,2109', N'新邱区', N'21', N'辽宁省', N'2109', N'阜新市', N'210903', N'新邱区', N'', N'', N'', N'', N'3', N'1', N''), (N'210904', N'2109', N'00,21,2109', N'太平区', N'21', N'辽宁省', N'2109', N'阜新市', N'210904', N'太平区', N'', N'', N'', N'', N'3', N'1', N''), (N'210905', N'2109', N'00,21,2109', N'清河门区', N'21', N'辽宁省', N'2109', N'阜新市', N'210905', N'清河门区', N'', N'', N'', N'', N'3', N'1', N''), (N'210911', N'2109', N'00,21,2109', N'细河区', N'21', N'辽宁省', N'2109', N'阜新市', N'210911', N'细河区', N'', N'', N'', N'', N'3', N'1', N''), (N'210921', N'2109', N'00,21,2109', N'阜新蒙古族自治县', N'21', N'辽宁省', N'2109', N'阜新市', N'210921', N'阜新蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'210922', N'2109', N'00,21,2109', N'彰武县', N'21', N'辽宁省', N'2109', N'阜新市', N'210922', N'彰武县', N'', N'', N'', N'', N'3', N'1', N''), (N'2110', N'21', N'00,21', N'辽阳市', N'21', N'辽宁省', N'2110', N'辽阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'211002', N'2110', N'00,21,2110', N'白塔区', N'21', N'辽宁省', N'2110', N'辽阳市', N'211002', N'白塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'211003', N'2110', N'00,21,2110', N'文圣区', N'21', N'辽宁省', N'2110', N'辽阳市', N'211003', N'文圣区', N'', N'', N'', N'', N'3', N'1', N''), (N'211004', N'2110', N'00,21,2110', N'宏伟区', N'21', N'辽宁省', N'2110', N'辽阳市', N'211004', N'宏伟区', N'', N'', N'', N'', N'3', N'1', N''), (N'211005', N'2110', N'00,21,2110', N'弓长岭区', N'21', N'辽宁省', N'2110', N'辽阳市', N'211005', N'弓长岭区', N'', N'', N'', N'', N'3', N'1', N''), (N'211011', N'2110', N'00,21,2110', N'太子河区', N'21', N'辽宁省', N'2110', N'辽阳市', N'211011', N'太子河区', N'', N'', N'', N'', N'3', N'1', N''), (N'211021', N'2110', N'00,21,2110', N'辽阳县', N'21', N'辽宁省', N'2110', N'辽阳市', N'211021', N'辽阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'211081', N'2110', N'00,21,2110', N'灯塔市', N'21', N'辽宁省', N'2110', N'辽阳市', N'211081', N'灯塔市', N'', N'', N'', N'', N'3', N'1', N''), (N'2111', N'21', N'00,21', N'盘锦市', N'21', N'辽宁省', N'2111', N'盘锦市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'211102', N'2111', N'00,21,2111', N'双台子区', N'21', N'辽宁省', N'2111', N'盘锦市', N'211102', N'双台子区', N'', N'', N'', N'', N'3', N'1', N''), (N'211103', N'2111', N'00,21,2111', N'兴隆台区', N'21', N'辽宁省', N'2111', N'盘锦市', N'211103', N'兴隆台区', N'', N'', N'', N'', N'3', N'1', N''), (N'211104', N'2111', N'00,21,2111', N'大洼区', N'21', N'辽宁省', N'2111', N'盘锦市', N'211104', N'大洼区', N'', N'', N'', N'', N'3', N'1', N''), (N'211122', N'2111', N'00,21,2111', N'盘山县', N'21', N'辽宁省', N'2111', N'盘锦市', N'211122', N'盘山县', N'', N'', N'', N'', N'3', N'1', N''), (N'2112', N'21', N'00,21', N'铁岭市', N'21', N'辽宁省', N'2112', N'铁岭市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'211202', N'2112', N'00,21,2112', N'银州区', N'21', N'辽宁省', N'2112', N'铁岭市', N'211202', N'银州区', N'', N'', N'', N'', N'3', N'1', N''), (N'211204', N'2112', N'00,21,2112', N'清河区', N'21', N'辽宁省', N'2112', N'铁岭市', N'211204', N'清河区', N'', N'', N'', N'', N'3', N'1', N''), (N'211221', N'2112', N'00,21,2112', N'铁岭县', N'21', N'辽宁省', N'2112', N'铁岭市', N'211221', N'铁岭县', N'', N'', N'', N'', N'3', N'1', N''), (N'211223', N'2112', N'00,21,2112', N'西丰县', N'21', N'辽宁省', N'2112', N'铁岭市', N'211223', N'西丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'211224', N'2112', N'00,21,2112', N'昌图县', N'21', N'辽宁省', N'2112', N'铁岭市', N'211224', N'昌图县', N'', N'', N'', N'', N'3', N'1', N''), (N'211281', N'2112', N'00,21,2112', N'调兵山市', N'21', N'辽宁省', N'2112', N'铁岭市', N'211281', N'调兵山市', N'', N'', N'', N'', N'3', N'1', N''), (N'211282', N'2112', N'00,21,2112', N'开原市', N'21', N'辽宁省', N'2112', N'铁岭市', N'211282', N'开原市', N'', N'', N'', N'', N'3', N'1', N''), (N'2113', N'21', N'00,21', N'朝阳市', N'21', N'辽宁省', N'2113', N'朝阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'211302', N'2113', N'00,21,2113', N'双塔区', N'21', N'辽宁省', N'2113', N'朝阳市', N'211302', N'双塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'211303', N'2113', N'00,21,2113', N'龙城区', N'21', N'辽宁省', N'2113', N'朝阳市', N'211303', N'龙城区', N'', N'', N'', N'', N'3', N'1', N''), (N'211321', N'2113', N'00,21,2113', N'朝阳县', N'21', N'辽宁省', N'2113', N'朝阳市', N'211321', N'朝阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'211322', N'2113', N'00,21,2113', N'建平县', N'21', N'辽宁省', N'2113', N'朝阳市', N'211322', N'建平县', N'', N'', N'', N'', N'3', N'1', N''), (N'211324', N'2113', N'00,21,2113', N'喀喇沁左翼蒙古族自治县', N'21', N'辽宁省', N'2113', N'朝阳市', N'211324', N'喀喇沁左翼蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'211381', N'2113', N'00,21,2113', N'北票市', N'21', N'辽宁省', N'2113', N'朝阳市', N'211381', N'北票市', N'', N'', N'', N'', N'3', N'1', N''), (N'211382', N'2113', N'00,21,2113', N'凌源市', N'21', N'辽宁省', N'2113', N'朝阳市', N'211382', N'凌源市', N'', N'', N'', N'', N'3', N'1', N''), (N'2114', N'21', N'00,21', N'葫芦岛市', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'211402', N'2114', N'00,21,2114', N'连山区', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211402', N'连山区', N'', N'', N'', N'', N'3', N'1', N''), (N'211403', N'2114', N'00,21,2114', N'龙港区', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211403', N'龙港区', N'', N'', N'', N'', N'3', N'1', N''), (N'211404', N'2114', N'00,21,2114', N'南票区', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211404', N'南票区', N'', N'', N'', N'', N'3', N'1', N''), (N'211421', N'2114', N'00,21,2114', N'绥中县', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211421', N'绥中县', N'', N'', N'', N'', N'3', N'1', N''), (N'211422', N'2114', N'00,21,2114', N'建昌县', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211422', N'建昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'211481', N'2114', N'00,21,2114', N'兴城市', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211481', N'兴城市', N'', N'', N'', N'', N'3', N'1', N''), (N'22', N'00', N'00', N'吉林省', N'22', N'吉林省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'2201', N'22', N'00,22', N'长春市', N'22', N'吉林省', N'2201', N'长春市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220102', N'2201', N'00,22,2201', N'南关区', N'22', N'吉林省', N'2201', N'长春市', N'220102', N'南关区', N'', N'', N'', N'', N'3', N'1', N''), (N'220103', N'2201', N'00,22,2201', N'宽城区', N'22', N'吉林省', N'2201', N'长春市', N'220103', N'宽城区', N'', N'', N'', N'', N'3', N'1', N''), (N'220104', N'2201', N'00,22,2201', N'朝阳区', N'22', N'吉林省', N'2201', N'长春市', N'220104', N'朝阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'220105', N'2201', N'00,22,2201', N'二道区', N'22', N'吉林省', N'2201', N'长春市', N'220105', N'二道区', N'', N'', N'', N'', N'3', N'1', N''), (N'220106', N'2201', N'00,22,2201', N'绿园区', N'22', N'吉林省', N'2201', N'长春市', N'220106', N'绿园区', N'', N'', N'', N'', N'3', N'1', N''), (N'220112', N'2201', N'00,22,2201', N'双阳区', N'22', N'吉林省', N'2201', N'长春市', N'220112', N'双阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'220113', N'2201', N'00,22,2201', N'九台区', N'22', N'吉林省', N'2201', N'长春市', N'220113', N'九台区', N'', N'', N'', N'', N'3', N'1', N''), (N'220122', N'2201', N'00,22,2201', N'农安县', N'22', N'吉林省', N'2201', N'长春市', N'220122', N'农安县', N'', N'', N'', N'', N'3', N'1', N''), (N'220182', N'2201', N'00,22,2201', N'榆树市', N'22', N'吉林省', N'2201', N'长春市', N'220182', N'榆树市', N'', N'', N'', N'', N'3', N'1', N''), (N'220183', N'2201', N'00,22,2201', N'德惠市', N'22', N'吉林省', N'2201', N'长春市', N'220183', N'德惠市', N'', N'', N'', N'', N'3', N'1', N''), (N'2202', N'22', N'00,22', N'吉林市', N'22', N'吉林省', N'2202', N'吉林市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220202', N'2202', N'00,22,2202', N'昌邑区', N'22', N'吉林省', N'2202', N'吉林市', N'220202', N'昌邑区', N'', N'', N'', N'', N'3', N'1', N''), (N'220203', N'2202', N'00,22,2202', N'龙潭区', N'22', N'吉林省', N'2202', N'吉林市', N'220203', N'龙潭区', N'', N'', N'', N'', N'3', N'1', N''), (N'220204', N'2202', N'00,22,2202', N'船营区', N'22', N'吉林省', N'2202', N'吉林市', N'220204', N'船营区', N'', N'', N'', N'', N'3', N'1', N''), (N'220211', N'2202', N'00,22,2202', N'丰满区', N'22', N'吉林省', N'2202', N'吉林市', N'220211', N'丰满区', N'', N'', N'', N'', N'3', N'1', N''), (N'220221', N'2202', N'00,22,2202', N'永吉县', N'22', N'吉林省', N'2202', N'吉林市', N'220221', N'永吉县', N'', N'', N'', N'', N'3', N'1', N''), (N'220281', N'2202', N'00,22,2202', N'蛟河市', N'22', N'吉林省', N'2202', N'吉林市', N'220281', N'蛟河市', N'', N'', N'', N'', N'3', N'1', N''), (N'220282', N'2202', N'00,22,2202', N'桦甸市', N'22', N'吉林省', N'2202', N'吉林市', N'220282', N'桦甸市', N'', N'', N'', N'', N'3', N'1', N''), (N'220283', N'2202', N'00,22,2202', N'舒兰市', N'22', N'吉林省', N'2202', N'吉林市', N'220283', N'舒兰市', N'', N'', N'', N'', N'3', N'1', N''), (N'220284', N'2202', N'00,22,2202', N'磐石市', N'22', N'吉林省', N'2202', N'吉林市', N'220284', N'磐石市', N'', N'', N'', N'', N'3', N'1', N''), (N'2203', N'22', N'00,22', N'四平市', N'22', N'吉林省', N'2203', N'四平市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220302', N'2203', N'00,22,2203', N'铁西区', N'22', N'吉林省', N'2203', N'四平市', N'220302', N'铁西区', N'', N'', N'', N'', N'3', N'1', N''), (N'220303', N'2203', N'00,22,2203', N'铁东区', N'22', N'吉林省', N'2203', N'四平市', N'220303', N'铁东区', N'', N'', N'', N'', N'3', N'1', N''), (N'220322', N'2203', N'00,22,2203', N'梨树县', N'22', N'吉林省', N'2203', N'四平市', N'220322', N'梨树县', N'', N'', N'', N'', N'3', N'1', N''), (N'220323', N'2203', N'00,22,2203', N'伊通满族自治县', N'22', N'吉林省', N'2203', N'四平市', N'220323', N'伊通满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'220381', N'2203', N'00,22,2203', N'公主岭市', N'22', N'吉林省', N'2203', N'四平市', N'220381', N'公主岭市', N'', N'', N'', N'', N'3', N'1', N''), (N'220382', N'2203', N'00,22,2203', N'双辽市', N'22', N'吉林省', N'2203', N'四平市', N'220382', N'双辽市', N'', N'', N'', N'', N'3', N'1', N''), (N'2204', N'22', N'00,22', N'辽源市', N'22', N'吉林省', N'2204', N'辽源市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220402', N'2204', N'00,22,2204', N'龙山区', N'22', N'吉林省', N'2204', N'辽源市', N'220402', N'龙山区', N'', N'', N'', N'', N'3', N'1', N''), (N'220403', N'2204', N'00,22,2204', N'西安区', N'22', N'吉林省', N'2204', N'辽源市', N'220403', N'西安区', N'', N'', N'', N'', N'3', N'1', N''), (N'220421', N'2204', N'00,22,2204', N'东丰县', N'22', N'吉林省', N'2204', N'辽源市', N'220421', N'东丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'220422', N'2204', N'00,22,2204', N'东辽县', N'22', N'吉林省', N'2204', N'辽源市', N'220422', N'东辽县', N'', N'', N'', N'', N'3', N'1', N''), (N'2205', N'22', N'00,22', N'通化市', N'22', N'吉林省', N'2205', N'通化市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220502', N'2205', N'00,22,2205', N'东昌区', N'22', N'吉林省', N'2205', N'通化市', N'220502', N'东昌区', N'', N'', N'', N'', N'3', N'1', N''), (N'220503', N'2205', N'00,22,2205', N'二道江区', N'22', N'吉林省', N'2205', N'通化市', N'220503', N'二道江区', N'', N'', N'', N'', N'3', N'1', N''), (N'220521', N'2205', N'00,22,2205', N'通化县', N'22', N'吉林省', N'2205', N'通化市', N'220521', N'通化县', N'', N'', N'', N'', N'3', N'1', N''), (N'220523', N'2205', N'00,22,2205', N'辉南县', N'22', N'吉林省', N'2205', N'通化市', N'220523', N'辉南县', N'', N'', N'', N'', N'3', N'1', N''), (N'220524', N'2205', N'00,22,2205', N'柳河县', N'22', N'吉林省', N'2205', N'通化市', N'220524', N'柳河县', N'', N'', N'', N'', N'3', N'1', N''), (N'220581', N'2205', N'00,22,2205', N'梅河口市', N'22', N'吉林省', N'2205', N'通化市', N'220581', N'梅河口市', N'', N'', N'', N'', N'3', N'1', N''), (N'220582', N'2205', N'00,22,2205', N'集安市', N'22', N'吉林省', N'2205', N'通化市', N'220582', N'集安市', N'', N'', N'', N'', N'3', N'1', N''), (N'2206', N'22', N'00,22', N'白山市', N'22', N'吉林省', N'2206', N'白山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220602', N'2206', N'00,22,2206', N'浑江区', N'22', N'吉林省', N'2206', N'白山市', N'220602', N'浑江区', N'', N'', N'', N'', N'3', N'1', N''), (N'220605', N'2206', N'00,22,2206', N'江源区', N'22', N'吉林省', N'2206', N'白山市', N'220605', N'江源区', N'', N'', N'', N'', N'3', N'1', N''), (N'220621', N'2206', N'00,22,2206', N'抚松县', N'22', N'吉林省', N'2206', N'白山市', N'220621', N'抚松县', N'', N'', N'', N'', N'3', N'1', N''), (N'220622', N'2206', N'00,22,2206', N'靖宇县', N'22', N'吉林省', N'2206', N'白山市', N'220622', N'靖宇县', N'', N'', N'', N'', N'3', N'1', N''), (N'220623', N'2206', N'00,22,2206', N'长白朝鲜族自治县', N'22', N'吉林省', N'2206', N'白山市', N'220623', N'长白朝鲜族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'220681', N'2206', N'00,22,2206', N'临江市', N'22', N'吉林省', N'2206', N'白山市', N'220681', N'临江市', N'', N'', N'', N'', N'3', N'1', N''), (N'2207', N'22', N'00,22', N'松原市', N'22', N'吉林省', N'2207', N'松原市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220702', N'2207', N'00,22,2207', N'宁江区', N'22', N'吉林省', N'2207', N'松原市', N'220702', N'宁江区', N'', N'', N'', N'', N'3', N'1', N''), (N'220721', N'2207', N'00,22,2207', N'前郭尔罗斯蒙古族自治县', N'22', N'吉林省', N'2207', N'松原市', N'220721', N'前郭尔罗斯蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'220722', N'2207', N'00,22,2207', N'长岭县', N'22', N'吉林省', N'2207', N'松原市', N'220722', N'长岭县', N'', N'', N'', N'', N'3', N'1', N''), (N'220723', N'2207', N'00,22,2207', N'乾安县', N'22', N'吉林省', N'2207', N'松原市', N'220723', N'乾安县', N'', N'', N'', N'', N'3', N'1', N''), (N'220781', N'2207', N'00,22,2207', N'扶余市', N'22', N'吉林省', N'2207', N'松原市', N'220781', N'扶余市', N'', N'', N'', N'', N'3', N'1', N''), (N'2208', N'22', N'00,22', N'白城市', N'22', N'吉林省', N'2208', N'白城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220802', N'2208', N'00,22,2208', N'洮北区', N'22', N'吉林省', N'2208', N'白城市', N'220802', N'洮北区', N'', N'', N'', N'', N'3', N'1', N''), (N'220821', N'2208', N'00,22,2208', N'镇赉县', N'22', N'吉林省', N'2208', N'白城市', N'220821', N'镇赉县', N'', N'', N'', N'', N'3', N'1', N''), (N'220822', N'2208', N'00,22,2208', N'通榆县', N'22', N'吉林省', N'2208', N'白城市', N'220822', N'通榆县', N'', N'', N'', N'', N'3', N'1', N''), (N'220881', N'2208', N'00,22,2208', N'洮南市', N'22', N'吉林省', N'2208', N'白城市', N'220881', N'洮南市', N'', N'', N'', N'', N'3', N'1', N''), (N'220882', N'2208', N'00,22,2208', N'大安市', N'22', N'吉林省', N'2208', N'白城市', N'220882', N'大安市', N'', N'', N'', N'', N'3', N'1', N''), (N'2224', N'22', N'00,22', N'延边朝鲜族自治州', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'222401', N'2224', N'00,22,2224', N'延吉市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222401', N'延吉市', N'', N'', N'', N'', N'3', N'1', N''), (N'222402', N'2224', N'00,22,2224', N'图们市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222402', N'图们市', N'', N'', N'', N'', N'3', N'1', N''), (N'222403', N'2224', N'00,22,2224', N'敦化市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222403', N'敦化市', N'', N'', N'', N'', N'3', N'1', N''), (N'222404', N'2224', N'00,22,2224', N'珲春市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222404', N'珲春市', N'', N'', N'', N'', N'3', N'1', N''), (N'222405', N'2224', N'00,22,2224', N'龙井市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222405', N'龙井市', N'', N'', N'', N'', N'3', N'1', N''), (N'222406', N'2224', N'00,22,2224', N'和龙市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222406', N'和龙市', N'', N'', N'', N'', N'3', N'1', N''), (N'222424', N'2224', N'00,22,2224', N'汪清县', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222424', N'汪清县', N'', N'', N'', N'', N'3', N'1', N''), (N'222426', N'2224', N'00,22,2224', N'安图县', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222426', N'安图县', N'', N'', N'', N'', N'3', N'1', N''), (N'23', N'00', N'00', N'黑龙江省', N'23', N'黑龙江省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'2301', N'23', N'00,23', N'哈尔滨市', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230102', N'2301', N'00,23,2301', N'道里区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230102', N'道里区', N'', N'', N'', N'', N'3', N'1', N''), (N'230103', N'2301', N'00,23,2301', N'南岗区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230103', N'南岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'230104', N'2301', N'00,23,2301', N'道外区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230104', N'道外区', N'', N'', N'', N'', N'3', N'1', N''), (N'230108', N'2301', N'00,23,2301', N'平房区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230108', N'平房区', N'', N'', N'', N'', N'3', N'1', N''), (N'230109', N'2301', N'00,23,2301', N'松北区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230109', N'松北区', N'', N'', N'', N'', N'3', N'1', N''), (N'230110', N'2301', N'00,23,2301', N'香坊区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230110', N'香坊区', N'', N'', N'', N'', N'3', N'1', N''), (N'230111', N'2301', N'00,23,2301', N'呼兰区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230111', N'呼兰区', N'', N'', N'', N'', N'3', N'1', N''), (N'230112', N'2301', N'00,23,2301', N'阿城区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230112', N'阿城区', N'', N'', N'', N'', N'3', N'1', N''), (N'230113', N'2301', N'00,23,2301', N'双城区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230113', N'双城区', N'', N'', N'', N'', N'3', N'1', N''), (N'230123', N'2301', N'00,23,2301', N'依兰县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230123', N'依兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'230124', N'2301', N'00,23,2301', N'方正县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230124', N'方正县', N'', N'', N'', N'', N'3', N'1', N''), (N'230125', N'2301', N'00,23,2301', N'宾县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230125', N'宾县', N'', N'', N'', N'', N'3', N'1', N''), (N'230126', N'2301', N'00,23,2301', N'巴彦县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230126', N'巴彦县', N'', N'', N'', N'', N'3', N'1', N''), (N'230127', N'2301', N'00,23,2301', N'木兰县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230127', N'木兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'230128', N'2301', N'00,23,2301', N'通河县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230128', N'通河县', N'', N'', N'', N'', N'3', N'1', N''), (N'230129', N'2301', N'00,23,2301', N'延寿县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230129', N'延寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'230183', N'2301', N'00,23,2301', N'尚志市', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230183', N'尚志市', N'', N'', N'', N'', N'3', N'1', N''), (N'230184', N'2301', N'00,23,2301', N'五常市', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230184', N'五常市', N'', N'', N'', N'', N'3', N'1', N''), (N'2302', N'23', N'00,23', N'齐齐哈尔市', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230202', N'2302', N'00,23,2302', N'龙沙区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230202', N'龙沙区', N'', N'', N'', N'', N'3', N'1', N''), (N'230203', N'2302', N'00,23,2302', N'建华区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230203', N'建华区', N'', N'', N'', N'', N'3', N'1', N''), (N'230204', N'2302', N'00,23,2302', N'铁锋区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230204', N'铁锋区', N'', N'', N'', N'', N'3', N'1', N''), (N'230205', N'2302', N'00,23,2302', N'昂昂溪区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230205', N'昂昂溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'230206', N'2302', N'00,23,2302', N'富拉尔基区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230206', N'富拉尔基区', N'', N'', N'', N'', N'3', N'1', N''), (N'230207', N'2302', N'00,23,2302', N'碾子山区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230207', N'碾子山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230208', N'2302', N'00,23,2302', N'梅里斯达斡尔族区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230208', N'梅里斯达斡尔族区', N'', N'', N'', N'', N'3', N'1', N''), (N'230221', N'2302', N'00,23,2302', N'龙江县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230221', N'龙江县', N'', N'', N'', N'', N'3', N'1', N''), (N'230223', N'2302', N'00,23,2302', N'依安县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230223', N'依安县', N'', N'', N'', N'', N'3', N'1', N''), (N'230224', N'2302', N'00,23,2302', N'泰来县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230224', N'泰来县', N'', N'', N'', N'', N'3', N'1', N''), (N'230225', N'2302', N'00,23,2302', N'甘南县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230225', N'甘南县', N'', N'', N'', N'', N'3', N'1', N''), (N'230227', N'2302', N'00,23,2302', N'富裕县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230227', N'富裕县', N'', N'', N'', N'', N'3', N'1', N''), (N'230229', N'2302', N'00,23,2302', N'克山县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230229', N'克山县', N'', N'', N'', N'', N'3', N'1', N''), (N'230230', N'2302', N'00,23,2302', N'克东县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230230', N'克东县', N'', N'', N'', N'', N'3', N'1', N''), (N'230231', N'2302', N'00,23,2302', N'拜泉县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230231', N'拜泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'230281', N'2302', N'00,23,2302', N'讷河市', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230281', N'讷河市', N'', N'', N'', N'', N'3', N'1', N''), (N'2303', N'23', N'00,23', N'鸡西市', N'23', N'黑龙江省', N'2303', N'鸡西市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230302', N'2303', N'00,23,2303', N'鸡冠区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230302', N'鸡冠区', N'', N'', N'', N'', N'3', N'1', N''), (N'230303', N'2303', N'00,23,2303', N'恒山区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230303', N'恒山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230304', N'2303', N'00,23,2303', N'滴道区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230304', N'滴道区', N'', N'', N'', N'', N'3', N'1', N''), (N'230305', N'2303', N'00,23,2303', N'梨树区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230305', N'梨树区', N'', N'', N'', N'', N'3', N'1', N''), (N'230306', N'2303', N'00,23,2303', N'城子河区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230306', N'城子河区', N'', N'', N'', N'', N'3', N'1', N''), (N'230307', N'2303', N'00,23,2303', N'麻山区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230307', N'麻山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230321', N'2303', N'00,23,2303', N'鸡东县', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230321', N'鸡东县', N'', N'', N'', N'', N'3', N'1', N''), (N'230381', N'2303', N'00,23,2303', N'虎林市', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230381', N'虎林市', N'', N'', N'', N'', N'3', N'1', N''), (N'230382', N'2303', N'00,23,2303', N'密山市', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230382', N'密山市', N'', N'', N'', N'', N'3', N'1', N''), (N'2304', N'23', N'00,23', N'鹤岗市', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230402', N'2304', N'00,23,2304', N'向阳区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230402', N'向阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'230403', N'2304', N'00,23,2304', N'工农区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230403', N'工农区', N'', N'', N'', N'', N'3', N'1', N''), (N'230404', N'2304', N'00,23,2304', N'南山区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230404', N'南山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230405', N'2304', N'00,23,2304', N'兴安区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230405', N'兴安区', N'', N'', N'', N'', N'3', N'1', N''), (N'230406', N'2304', N'00,23,2304', N'东山区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230406', N'东山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230407', N'2304', N'00,23,2304', N'兴山区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230407', N'兴山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230421', N'2304', N'00,23,2304', N'萝北县', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230421', N'萝北县', N'', N'', N'', N'', N'3', N'1', N''), (N'230422', N'2304', N'00,23,2304', N'绥滨县', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230422', N'绥滨县', N'', N'', N'', N'', N'3', N'1', N''), (N'2305', N'23', N'00,23', N'双鸭山市', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230502', N'2305', N'00,23,2305', N'尖山区', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230502', N'尖山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230503', N'2305', N'00,23,2305', N'岭东区', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230503', N'岭东区', N'', N'', N'', N'', N'3', N'1', N''), (N'230505', N'2305', N'00,23,2305', N'四方台区', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230505', N'四方台区', N'', N'', N'', N'', N'3', N'1', N''), (N'230506', N'2305', N'00,23,2305', N'宝山区', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230506', N'宝山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230521', N'2305', N'00,23,2305', N'集贤县', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230521', N'集贤县', N'', N'', N'', N'', N'3', N'1', N''), (N'230522', N'2305', N'00,23,2305', N'友谊县', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230522', N'友谊县', N'', N'', N'', N'', N'3', N'1', N''), (N'230523', N'2305', N'00,23,2305', N'宝清县', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230523', N'宝清县', N'', N'', N'', N'', N'3', N'1', N''), (N'230524', N'2305', N'00,23,2305', N'饶河县', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230524', N'饶河县', N'', N'', N'', N'', N'3', N'1', N''), (N'2306', N'23', N'00,23', N'大庆市', N'23', N'黑龙江省', N'2306', N'大庆市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230602', N'2306', N'00,23,2306', N'萨尔图区', N'23', N'黑龙江省', N'2306', N'大庆市', N'230602', N'萨尔图区', N'', N'', N'', N'', N'3', N'1', N''), (N'230603', N'2306', N'00,23,2306', N'龙凤区', N'23', N'黑龙江省', N'2306', N'大庆市', N'230603', N'龙凤区', N'', N'', N'', N'', N'3', N'1', N''), (N'230604', N'2306', N'00,23,2306', N'让胡路区', N'23', N'黑龙江省', N'2306', N'大庆市', N'230604', N'让胡路区', N'', N'', N'', N'', N'3', N'1', N''), (N'230605', N'2306', N'00,23,2306', N'红岗区', N'23', N'黑龙江省', N'2306', N'大庆市', N'230605', N'红岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'230606', N'2306', N'00,23,2306', N'大同区', N'23', N'黑龙江省', N'2306', N'大庆市', N'230606', N'大同区', N'', N'', N'', N'', N'3', N'1', N''), (N'230621', N'2306', N'00,23,2306', N'肇州县', N'23', N'黑龙江省', N'2306', N'大庆市', N'230621', N'肇州县', N'', N'', N'', N'', N'3', N'1', N''), (N'230622', N'2306', N'00,23,2306', N'肇源县', N'23', N'黑龙江省', N'2306', N'大庆市', N'230622', N'肇源县', N'', N'', N'', N'', N'3', N'1', N''), (N'230623', N'2306', N'00,23,2306', N'林甸县', N'23', N'黑龙江省', N'2306', N'大庆市', N'230623', N'林甸县', N'', N'', N'', N'', N'3', N'1', N''), (N'230624', N'2306', N'00,23,2306', N'杜尔伯特蒙古族自治县', N'23', N'黑龙江省', N'2306', N'大庆市', N'230624', N'杜尔伯特蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'2307', N'23', N'00,23', N'伊春市', N'23', N'黑龙江省', N'2307', N'伊春市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230717', N'2307', N'00,23,2307', N'伊美区', N'23', N'黑龙江省', N'2307', N'伊春市', N'230717', N'伊美区', N'', N'', N'', N'', N'3', N'1', N''), (N'230718', N'2307', N'00,23,2307', N'乌翠区', N'23', N'黑龙江省', N'2307', N'伊春市', N'230718', N'乌翠区', N'', N'', N'', N'', N'3', N'1', N''), (N'230719', N'2307', N'00,23,2307', N'友好区', N'23', N'黑龙江省', N'2307', N'伊春市', N'230719', N'友好区', N'', N'', N'', N'', N'3', N'1', N''), (N'230722', N'2307', N'00,23,2307', N'嘉荫县', N'23', N'黑龙江省', N'2307', N'伊春市', N'230722', N'嘉荫县', N'', N'', N'', N'', N'3', N'1', N''), (N'230723', N'2307', N'00,23,2307', N'汤旺县', N'23', N'黑龙江省', N'2307', N'伊春市', N'230723', N'汤旺县', N'', N'', N'', N'', N'3', N'1', N''), (N'230724', N'2307', N'00,23,2307', N'丰林县', N'23', N'黑龙江省', N'2307', N'伊春市', N'230724', N'丰林县', N'', N'', N'', N'', N'3', N'1', N''), (N'230725', N'2307', N'00,23,2307', N'大箐山县', N'23', N'黑龙江省', N'2307', N'伊春市', N'230725', N'大箐山县', N'', N'', N'', N'', N'3', N'1', N''), (N'230726', N'2307', N'00,23,2307', N'南岔县', N'23', N'黑龙江省', N'2307', N'伊春市', N'230726', N'南岔县', N'', N'', N'', N'', N'3', N'1', N''), (N'230751', N'2307', N'00,23,2307', N'金林区', N'23', N'黑龙江省', N'2307', N'伊春市', N'230751', N'金林区', N'', N'', N'', N'', N'3', N'1', N''), (N'230781', N'2307', N'00,23,2307', N'铁力市', N'23', N'黑龙江省', N'2307', N'伊春市', N'230781', N'铁力市', N'', N'', N'', N'', N'3', N'1', N''), (N'2308', N'23', N'00,23', N'佳木斯市', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230803', N'2308', N'00,23,2308', N'向阳区', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230803', N'向阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'230804', N'2308', N'00,23,2308', N'前进区', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230804', N'前进区', N'', N'', N'', N'', N'3', N'1', N''), (N'230805', N'2308', N'00,23,2308', N'东风区', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230805', N'东风区', N'', N'', N'', N'', N'3', N'1', N''), (N'230811', N'2308', N'00,23,2308', N'郊区', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230811', N'郊区', N'', N'', N'', N'', N'3', N'1', N''), (N'230822', N'2308', N'00,23,2308', N'桦南县', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230822', N'桦南县', N'', N'', N'', N'', N'3', N'1', N''), (N'230826', N'2308', N'00,23,2308', N'桦川县', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230826', N'桦川县', N'', N'', N'', N'', N'3', N'1', N''), (N'230828', N'2308', N'00,23,2308', N'汤原县', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230828', N'汤原县', N'', N'', N'', N'', N'3', N'1', N''), (N'230881', N'2308', N'00,23,2308', N'同江市', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230881', N'同江市', N'', N'', N'', N'', N'3', N'1', N''), (N'230882', N'2308', N'00,23,2308', N'富锦市', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230882', N'富锦市', N'', N'', N'', N'', N'3', N'1', N''), (N'230883', N'2308', N'00,23,2308', N'抚远市', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230883', N'抚远市', N'', N'', N'', N'', N'3', N'1', N''), (N'2309', N'23', N'00,23', N'七台河市', N'23', N'黑龙江省', N'2309', N'七台河市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230902', N'2309', N'00,23,2309', N'新兴区', N'23', N'黑龙江省', N'2309', N'七台河市', N'230902', N'新兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'230903', N'2309', N'00,23,2309', N'桃山区', N'23', N'黑龙江省', N'2309', N'七台河市', N'230903', N'桃山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230904', N'2309', N'00,23,2309', N'茄子河区', N'23', N'黑龙江省', N'2309', N'七台河市', N'230904', N'茄子河区', N'', N'', N'', N'', N'3', N'1', N''), (N'230921', N'2309', N'00,23,2309', N'勃利县', N'23', N'黑龙江省', N'2309', N'七台河市', N'230921', N'勃利县', N'', N'', N'', N'', N'3', N'1', N''), (N'2310', N'23', N'00,23', N'牡丹江市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'231002', N'2310', N'00,23,2310', N'东安区', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231002', N'东安区', N'', N'', N'', N'', N'3', N'1', N''), (N'231003', N'2310', N'00,23,2310', N'阳明区', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231003', N'阳明区', N'', N'', N'', N'', N'3', N'1', N''), (N'231004', N'2310', N'00,23,2310', N'爱民区', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231004', N'爱民区', N'', N'', N'', N'', N'3', N'1', N''), (N'231005', N'2310', N'00,23,2310', N'西安区', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231005', N'西安区', N'', N'', N'', N'', N'3', N'1', N''), (N'231025', N'2310', N'00,23,2310', N'林口县', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231025', N'林口县', N'', N'', N'', N'', N'3', N'1', N''), (N'231081', N'2310', N'00,23,2310', N'绥芬河市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231081', N'绥芬河市', N'', N'', N'', N'', N'3', N'1', N''), (N'231083', N'2310', N'00,23,2310', N'海林市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231083', N'海林市', N'', N'', N'', N'', N'3', N'1', N''), (N'231084', N'2310', N'00,23,2310', N'宁安市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231084', N'宁安市', N'', N'', N'', N'', N'3', N'1', N''), (N'231085', N'2310', N'00,23,2310', N'穆棱市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231085', N'穆棱市', N'', N'', N'', N'', N'3', N'1', N''), (N'231086', N'2310', N'00,23,2310', N'东宁市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231086', N'东宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'2311', N'23', N'00,23', N'黑河市', N'23', N'黑龙江省', N'2311', N'黑河市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'231102', N'2311', N'00,23,2311', N'爱辉区', N'23', N'黑龙江省', N'2311', N'黑河市', N'231102', N'爱辉区', N'', N'', N'', N'', N'3', N'1', N''), (N'231123', N'2311', N'00,23,2311', N'逊克县', N'23', N'黑龙江省', N'2311', N'黑河市', N'231123', N'逊克县', N'', N'', N'', N'', N'3', N'1', N''), (N'231124', N'2311', N'00,23,2311', N'孙吴县', N'23', N'黑龙江省', N'2311', N'黑河市', N'231124', N'孙吴县', N'', N'', N'', N'', N'3', N'1', N''), (N'231181', N'2311', N'00,23,2311', N'北安市', N'23', N'黑龙江省', N'2311', N'黑河市', N'231181', N'北安市', N'', N'', N'', N'', N'3', N'1', N''), (N'231182', N'2311', N'00,23,2311', N'五大连池市', N'23', N'黑龙江省', N'2311', N'黑河市', N'231182', N'五大连池市', N'', N'', N'', N'', N'3', N'1', N''), (N'231183', N'2311', N'00,23,2311', N'嫩江市', N'23', N'黑龙江省', N'2311', N'黑河市', N'231183', N'嫩江市', N'', N'', N'', N'', N'3', N'1', N''), (N'2312', N'23', N'00,23', N'绥化市', N'23', N'黑龙江省', N'2312', N'绥化市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'231202', N'2312', N'00,23,2312', N'北林区', N'23', N'黑龙江省', N'2312', N'绥化市', N'231202', N'北林区', N'', N'', N'', N'', N'3', N'1', N''), (N'231221', N'2312', N'00,23,2312', N'望奎县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231221', N'望奎县', N'', N'', N'', N'', N'3', N'1', N''), (N'231222', N'2312', N'00,23,2312', N'兰西县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231222', N'兰西县', N'', N'', N'', N'', N'3', N'1', N''), (N'231223', N'2312', N'00,23,2312', N'青冈县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231223', N'青冈县', N'', N'', N'', N'', N'3', N'1', N''), (N'231224', N'2312', N'00,23,2312', N'庆安县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231224', N'庆安县', N'', N'', N'', N'', N'3', N'1', N''), (N'231225', N'2312', N'00,23,2312', N'明水县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231225', N'明水县', N'', N'', N'', N'', N'3', N'1', N''), (N'231226', N'2312', N'00,23,2312', N'绥棱县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231226', N'绥棱县', N'', N'', N'', N'', N'3', N'1', N''), (N'231281', N'2312', N'00,23,2312', N'安达市', N'23', N'黑龙江省', N'2312', N'绥化市', N'231281', N'安达市', N'', N'', N'', N'', N'3', N'1', N''), (N'231282', N'2312', N'00,23,2312', N'肇东市', N'23', N'黑龙江省', N'2312', N'绥化市', N'231282', N'肇东市', N'', N'', N'', N'', N'3', N'1', N''), (N'231283', N'2312', N'00,23,2312', N'海伦市', N'23', N'黑龙江省', N'2312', N'绥化市', N'231283', N'海伦市', N'', N'', N'', N'', N'3', N'1', N''), (N'2327', N'23', N'00,23', N'大兴安岭地区', N'23', N'黑龙江省', N'2327', N'大兴安岭地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'232701', N'2327', N'00,23,2327', N'漠河市', N'23', N'黑龙江省', N'2327', N'大兴安岭地区', N'232701', N'漠河市', N'', N'', N'', N'', N'3', N'1', N''), (N'232721', N'2327', N'00,23,2327', N'呼玛县', N'23', N'黑龙江省', N'2327', N'大兴安岭地区', N'232721', N'呼玛县', N'', N'', N'', N'', N'3', N'1', N''), (N'232722', N'2327', N'00,23,2327', N'塔河县', N'23', N'黑龙江省', N'2327', N'大兴安岭地区', N'232722', N'塔河县', N'', N'', N'', N'', N'3', N'1', N''), (N'31', N'00', N'00', N'上海市', N'31', N'上海市', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3101', N'31', N'00,31', N'上海市', N'31', N'上海市', N'3101', N'上海市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'310101', N'3101', N'00,31,3101', N'黄浦区', N'31', N'上海市', N'3101', N'上海市', N'310101', N'黄浦区', N'', N'', N'', N'', N'3', N'1', N''), (N'310104', N'3101', N'00,31,3101', N'徐汇区', N'31', N'上海市', N'3101', N'上海市', N'310104', N'徐汇区', N'', N'', N'', N'', N'3', N'1', N''), (N'310105', N'3101', N'00,31,3101', N'长宁区', N'31', N'上海市', N'3101', N'上海市', N'310105', N'长宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'310106', N'3101', N'00,31,3101', N'静安区', N'31', N'上海市', N'3101', N'上海市', N'310106', N'静安区', N'', N'', N'', N'', N'3', N'1', N''), (N'310107', N'3101', N'00,31,3101', N'普陀区', N'31', N'上海市', N'3101', N'上海市', N'310107', N'普陀区', N'', N'', N'', N'', N'3', N'1', N''), (N'310109', N'3101', N'00,31,3101', N'虹口区', N'31', N'上海市', N'3101', N'上海市', N'310109', N'虹口区', N'', N'', N'', N'', N'3', N'1', N''), (N'310110', N'3101', N'00,31,3101', N'杨浦区', N'31', N'上海市', N'3101', N'上海市', N'310110', N'杨浦区', N'', N'', N'', N'', N'3', N'1', N''), (N'310112', N'3101', N'00,31,3101', N'闵行区', N'31', N'上海市', N'3101', N'上海市', N'310112', N'闵行区', N'', N'', N'', N'', N'3', N'1', N''), (N'310113', N'3101', N'00,31,3101', N'宝山区', N'31', N'上海市', N'3101', N'上海市', N'310113', N'宝山区', N'', N'', N'', N'', N'3', N'1', N''), (N'310114', N'3101', N'00,31,3101', N'嘉定区', N'31', N'上海市', N'3101', N'上海市', N'310114', N'嘉定区', N'', N'', N'', N'', N'3', N'1', N''), (N'310115', N'3101', N'00,31,3101', N'浦东新区', N'31', N'上海市', N'3101', N'上海市', N'310115', N'浦东新区', N'', N'', N'', N'', N'3', N'1', N''), (N'310116', N'3101', N'00,31,3101', N'金山区', N'31', N'上海市', N'3101', N'上海市', N'310116', N'金山区', N'', N'', N'', N'', N'3', N'1', N''), (N'310117', N'3101', N'00,31,3101', N'松江区', N'31', N'上海市', N'3101', N'上海市', N'310117', N'松江区', N'', N'', N'', N'', N'3', N'1', N''), (N'310118', N'3101', N'00,31,3101', N'青浦区', N'31', N'上海市', N'3101', N'上海市', N'310118', N'青浦区', N'', N'', N'', N'', N'3', N'1', N''), (N'310120', N'3101', N'00,31,3101', N'奉贤区', N'31', N'上海市', N'3101', N'上海市', N'310120', N'奉贤区', N'', N'', N'', N'', N'3', N'1', N''), (N'310151', N'3101', N'00,31,3101', N'崇明区', N'31', N'上海市', N'3101', N'上海市', N'310151', N'崇明区', N'', N'', N'', N'', N'3', N'1', N''), (N'32', N'00', N'00', N'江苏省', N'32', N'江苏省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3201', N'32', N'00,32', N'南京市', N'32', N'江苏省', N'3201', N'南京市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320102', N'3201', N'00,32,3201', N'玄武区', N'32', N'江苏省', N'3201', N'南京市', N'320102', N'玄武区', N'', N'', N'', N'', N'3', N'1', N''), (N'320104', N'3201', N'00,32,3201', N'秦淮区', N'32', N'江苏省', N'3201', N'南京市', N'320104', N'秦淮区', N'', N'', N'', N'', N'3', N'1', N''), (N'320105', N'3201', N'00,32,3201', N'建邺区', N'32', N'江苏省', N'3201', N'南京市', N'320105', N'建邺区', N'', N'', N'', N'', N'3', N'1', N''), (N'320106', N'3201', N'00,32,3201', N'鼓楼区', N'32', N'江苏省', N'3201', N'南京市', N'320106', N'鼓楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'320111', N'3201', N'00,32,3201', N'浦口区', N'32', N'江苏省', N'3201', N'南京市', N'320111', N'浦口区', N'', N'', N'', N'', N'3', N'1', N''), (N'320113', N'3201', N'00,32,3201', N'栖霞区', N'32', N'江苏省', N'3201', N'南京市', N'320113', N'栖霞区', N'', N'', N'', N'', N'3', N'1', N''), (N'320114', N'3201', N'00,32,3201', N'雨花台区', N'32', N'江苏省', N'3201', N'南京市', N'320114', N'雨花台区', N'', N'', N'', N'', N'3', N'1', N''), (N'320115', N'3201', N'00,32,3201', N'江宁区', N'32', N'江苏省', N'3201', N'南京市', N'320115', N'江宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'320116', N'3201', N'00,32,3201', N'六合区', N'32', N'江苏省', N'3201', N'南京市', N'320116', N'六合区', N'', N'', N'', N'', N'3', N'1', N''), (N'320117', N'3201', N'00,32,3201', N'溧水区', N'32', N'江苏省', N'3201', N'南京市', N'320117', N'溧水区', N'', N'', N'', N'', N'3', N'1', N''), (N'320118', N'3201', N'00,32,3201', N'高淳区', N'32', N'江苏省', N'3201', N'南京市', N'320118', N'高淳区', N'', N'', N'', N'', N'3', N'1', N''), (N'3202', N'32', N'00,32', N'无锡市', N'32', N'江苏省', N'3202', N'无锡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320205', N'3202', N'00,32,3202', N'锡山区', N'32', N'江苏省', N'3202', N'无锡市', N'320205', N'锡山区', N'', N'', N'', N'', N'3', N'1', N''), (N'320206', N'3202', N'00,32,3202', N'惠山区', N'32', N'江苏省', N'3202', N'无锡市', N'320206', N'惠山区', N'', N'', N'', N'', N'3', N'1', N''), (N'320211', N'3202', N'00,32,3202', N'滨湖区', N'32', N'江苏省', N'3202', N'无锡市', N'320211', N'滨湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'320213', N'3202', N'00,32,3202', N'梁溪区', N'32', N'江苏省', N'3202', N'无锡市', N'320213', N'梁溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'320214', N'3202', N'00,32,3202', N'新吴区', N'32', N'江苏省', N'3202', N'无锡市', N'320214', N'新吴区', N'', N'', N'', N'', N'3', N'1', N''), (N'320281', N'3202', N'00,32,3202', N'江阴市', N'32', N'江苏省', N'3202', N'无锡市', N'320281', N'江阴市', N'', N'', N'', N'', N'3', N'1', N''), (N'320282', N'3202', N'00,32,3202', N'宜兴市', N'32', N'江苏省', N'3202', N'无锡市', N'320282', N'宜兴市', N'', N'', N'', N'', N'3', N'1', N''), (N'3203', N'32', N'00,32', N'徐州市', N'32', N'江苏省', N'3203', N'徐州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320302', N'3203', N'00,32,3203', N'鼓楼区', N'32', N'江苏省', N'3203', N'徐州市', N'320302', N'鼓楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'320303', N'3203', N'00,32,3203', N'云龙区', N'32', N'江苏省', N'3203', N'徐州市', N'320303', N'云龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'320305', N'3203', N'00,32,3203', N'贾汪区', N'32', N'江苏省', N'3203', N'徐州市', N'320305', N'贾汪区', N'', N'', N'', N'', N'3', N'1', N'')
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'320311', N'3203', N'00,32,3203', N'泉山区', N'32', N'江苏省', N'3203', N'徐州市', N'320311', N'泉山区', N'', N'', N'', N'', N'3', N'1', N''), (N'320312', N'3203', N'00,32,3203', N'铜山区', N'32', N'江苏省', N'3203', N'徐州市', N'320312', N'铜山区', N'', N'', N'', N'', N'3', N'1', N''), (N'320321', N'3203', N'00,32,3203', N'丰县', N'32', N'江苏省', N'3203', N'徐州市', N'320321', N'丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'320322', N'3203', N'00,32,3203', N'沛县', N'32', N'江苏省', N'3203', N'徐州市', N'320322', N'沛县', N'', N'', N'', N'', N'3', N'1', N''), (N'320324', N'3203', N'00,32,3203', N'睢宁县', N'32', N'江苏省', N'3203', N'徐州市', N'320324', N'睢宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'320381', N'3203', N'00,32,3203', N'新沂市', N'32', N'江苏省', N'3203', N'徐州市', N'320381', N'新沂市', N'', N'', N'', N'', N'3', N'1', N''), (N'320382', N'3203', N'00,32,3203', N'邳州市', N'32', N'江苏省', N'3203', N'徐州市', N'320382', N'邳州市', N'', N'', N'', N'', N'3', N'1', N''), (N'3204', N'32', N'00,32', N'常州市', N'32', N'江苏省', N'3204', N'常州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320402', N'3204', N'00,32,3204', N'天宁区', N'32', N'江苏省', N'3204', N'常州市', N'320402', N'天宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'320404', N'3204', N'00,32,3204', N'钟楼区', N'32', N'江苏省', N'3204', N'常州市', N'320404', N'钟楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'320411', N'3204', N'00,32,3204', N'新北区', N'32', N'江苏省', N'3204', N'常州市', N'320411', N'新北区', N'', N'', N'', N'', N'3', N'1', N''), (N'320412', N'3204', N'00,32,3204', N'武进区', N'32', N'江苏省', N'3204', N'常州市', N'320412', N'武进区', N'', N'', N'', N'', N'3', N'1', N''), (N'320413', N'3204', N'00,32,3204', N'金坛区', N'32', N'江苏省', N'3204', N'常州市', N'320413', N'金坛区', N'', N'', N'', N'', N'3', N'1', N''), (N'320481', N'3204', N'00,32,3204', N'溧阳市', N'32', N'江苏省', N'3204', N'常州市', N'320481', N'溧阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'3205', N'32', N'00,32', N'苏州市', N'32', N'江苏省', N'3205', N'苏州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320505', N'3205', N'00,32,3205', N'虎丘区', N'32', N'江苏省', N'3205', N'苏州市', N'320505', N'虎丘区', N'', N'', N'', N'', N'3', N'1', N''), (N'320506', N'3205', N'00,32,3205', N'吴中区', N'32', N'江苏省', N'3205', N'苏州市', N'320506', N'吴中区', N'', N'', N'', N'', N'3', N'1', N''), (N'320507', N'3205', N'00,32,3205', N'相城区', N'32', N'江苏省', N'3205', N'苏州市', N'320507', N'相城区', N'', N'', N'', N'', N'3', N'1', N''), (N'320508', N'3205', N'00,32,3205', N'姑苏区', N'32', N'江苏省', N'3205', N'苏州市', N'320508', N'姑苏区', N'', N'', N'', N'', N'3', N'1', N''), (N'320509', N'3205', N'00,32,3205', N'吴江区', N'32', N'江苏省', N'3205', N'苏州市', N'320509', N'吴江区', N'', N'', N'', N'', N'3', N'1', N''), (N'320581', N'3205', N'00,32,3205', N'常熟市', N'32', N'江苏省', N'3205', N'苏州市', N'320581', N'常熟市', N'', N'', N'', N'', N'3', N'1', N''), (N'320582', N'3205', N'00,32,3205', N'张家港市', N'32', N'江苏省', N'3205', N'苏州市', N'320582', N'张家港市', N'', N'', N'', N'', N'3', N'1', N''), (N'320583', N'3205', N'00,32,3205', N'昆山市', N'32', N'江苏省', N'3205', N'苏州市', N'320583', N'昆山市', N'', N'', N'', N'', N'3', N'1', N''), (N'320585', N'3205', N'00,32,3205', N'太仓市', N'32', N'江苏省', N'3205', N'苏州市', N'320585', N'太仓市', N'', N'', N'', N'', N'3', N'1', N''), (N'3206', N'32', N'00,32', N'南通市', N'32', N'江苏省', N'3206', N'南通市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320602', N'3206', N'00,32,3206', N'崇川区', N'32', N'江苏省', N'3206', N'南通市', N'320602', N'崇川区', N'', N'', N'', N'', N'3', N'1', N''), (N'320611', N'3206', N'00,32,3206', N'港闸区', N'32', N'江苏省', N'3206', N'南通市', N'320611', N'港闸区', N'', N'', N'', N'', N'3', N'1', N''), (N'320612', N'3206', N'00,32,3206', N'通州区', N'32', N'江苏省', N'3206', N'南通市', N'320612', N'通州区', N'', N'', N'', N'', N'3', N'1', N''), (N'320623', N'3206', N'00,32,3206', N'如东县', N'32', N'江苏省', N'3206', N'南通市', N'320623', N'如东县', N'', N'', N'', N'', N'3', N'1', N''), (N'320681', N'3206', N'00,32,3206', N'启东市', N'32', N'江苏省', N'3206', N'南通市', N'320681', N'启东市', N'', N'', N'', N'', N'3', N'1', N''), (N'320682', N'3206', N'00,32,3206', N'如皋市', N'32', N'江苏省', N'3206', N'南通市', N'320682', N'如皋市', N'', N'', N'', N'', N'3', N'1', N''), (N'320684', N'3206', N'00,32,3206', N'海门市', N'32', N'江苏省', N'3206', N'南通市', N'320684', N'海门市', N'', N'', N'', N'', N'3', N'1', N''), (N'320685', N'3206', N'00,32,3206', N'海安市', N'32', N'江苏省', N'3206', N'南通市', N'320685', N'海安市', N'', N'', N'', N'', N'3', N'1', N''), (N'3207', N'32', N'00,32', N'连云港市', N'32', N'江苏省', N'3207', N'连云港市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320703', N'3207', N'00,32,3207', N'连云区', N'32', N'江苏省', N'3207', N'连云港市', N'320703', N'连云区', N'', N'', N'', N'', N'3', N'1', N''), (N'320706', N'3207', N'00,32,3207', N'海州区', N'32', N'江苏省', N'3207', N'连云港市', N'320706', N'海州区', N'', N'', N'', N'', N'3', N'1', N''), (N'320707', N'3207', N'00,32,3207', N'赣榆区', N'32', N'江苏省', N'3207', N'连云港市', N'320707', N'赣榆区', N'', N'', N'', N'', N'3', N'1', N''), (N'320722', N'3207', N'00,32,3207', N'东海县', N'32', N'江苏省', N'3207', N'连云港市', N'320722', N'东海县', N'', N'', N'', N'', N'3', N'1', N''), (N'320723', N'3207', N'00,32,3207', N'灌云县', N'32', N'江苏省', N'3207', N'连云港市', N'320723', N'灌云县', N'', N'', N'', N'', N'3', N'1', N''), (N'320724', N'3207', N'00,32,3207', N'灌南县', N'32', N'江苏省', N'3207', N'连云港市', N'320724', N'灌南县', N'', N'', N'', N'', N'3', N'1', N''), (N'3208', N'32', N'00,32', N'淮安市', N'32', N'江苏省', N'3208', N'淮安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320803', N'3208', N'00,32,3208', N'淮安区', N'32', N'江苏省', N'3208', N'淮安市', N'320803', N'淮安区', N'', N'', N'', N'', N'3', N'1', N''), (N'320804', N'3208', N'00,32,3208', N'淮阴区', N'32', N'江苏省', N'3208', N'淮安市', N'320804', N'淮阴区', N'', N'', N'', N'', N'3', N'1', N''), (N'320812', N'3208', N'00,32,3208', N'清江浦区', N'32', N'江苏省', N'3208', N'淮安市', N'320812', N'清江浦区', N'', N'', N'', N'', N'3', N'1', N''), (N'320813', N'3208', N'00,32,3208', N'洪泽区', N'32', N'江苏省', N'3208', N'淮安市', N'320813', N'洪泽区', N'', N'', N'', N'', N'3', N'1', N''), (N'320826', N'3208', N'00,32,3208', N'涟水县', N'32', N'江苏省', N'3208', N'淮安市', N'320826', N'涟水县', N'', N'', N'', N'', N'3', N'1', N''), (N'320830', N'3208', N'00,32,3208', N'盱眙县', N'32', N'江苏省', N'3208', N'淮安市', N'320830', N'盱眙县', N'', N'', N'', N'', N'3', N'1', N''), (N'320831', N'3208', N'00,32,3208', N'金湖县', N'32', N'江苏省', N'3208', N'淮安市', N'320831', N'金湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'3209', N'32', N'00,32', N'盐城市', N'32', N'江苏省', N'3209', N'盐城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320902', N'3209', N'00,32,3209', N'亭湖区', N'32', N'江苏省', N'3209', N'盐城市', N'320902', N'亭湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'320903', N'3209', N'00,32,3209', N'盐都区', N'32', N'江苏省', N'3209', N'盐城市', N'320903', N'盐都区', N'', N'', N'', N'', N'3', N'1', N''), (N'320904', N'3209', N'00,32,3209', N'大丰区', N'32', N'江苏省', N'3209', N'盐城市', N'320904', N'大丰区', N'', N'', N'', N'', N'3', N'1', N''), (N'320921', N'3209', N'00,32,3209', N'响水县', N'32', N'江苏省', N'3209', N'盐城市', N'320921', N'响水县', N'', N'', N'', N'', N'3', N'1', N''), (N'320922', N'3209', N'00,32,3209', N'滨海县', N'32', N'江苏省', N'3209', N'盐城市', N'320922', N'滨海县', N'', N'', N'', N'', N'3', N'1', N''), (N'320923', N'3209', N'00,32,3209', N'阜宁县', N'32', N'江苏省', N'3209', N'盐城市', N'320923', N'阜宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'320924', N'3209', N'00,32,3209', N'射阳县', N'32', N'江苏省', N'3209', N'盐城市', N'320924', N'射阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'320925', N'3209', N'00,32,3209', N'建湖县', N'32', N'江苏省', N'3209', N'盐城市', N'320925', N'建湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'320981', N'3209', N'00,32,3209', N'东台市', N'32', N'江苏省', N'3209', N'盐城市', N'320981', N'东台市', N'', N'', N'', N'', N'3', N'1', N''), (N'3210', N'32', N'00,32', N'扬州市', N'32', N'江苏省', N'3210', N'扬州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'321002', N'3210', N'00,32,3210', N'广陵区', N'32', N'江苏省', N'3210', N'扬州市', N'321002', N'广陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'321003', N'3210', N'00,32,3210', N'邗江区', N'32', N'江苏省', N'3210', N'扬州市', N'321003', N'邗江区', N'', N'', N'', N'', N'3', N'1', N''), (N'321012', N'3210', N'00,32,3210', N'江都区', N'32', N'江苏省', N'3210', N'扬州市', N'321012', N'江都区', N'', N'', N'', N'', N'3', N'1', N''), (N'321023', N'3210', N'00,32,3210', N'宝应县', N'32', N'江苏省', N'3210', N'扬州市', N'321023', N'宝应县', N'', N'', N'', N'', N'3', N'1', N''), (N'321081', N'3210', N'00,32,3210', N'仪征市', N'32', N'江苏省', N'3210', N'扬州市', N'321081', N'仪征市', N'', N'', N'', N'', N'3', N'1', N''), (N'321084', N'3210', N'00,32,3210', N'高邮市', N'32', N'江苏省', N'3210', N'扬州市', N'321084', N'高邮市', N'', N'', N'', N'', N'3', N'1', N''), (N'3211', N'32', N'00,32', N'镇江市', N'32', N'江苏省', N'3211', N'镇江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'321102', N'3211', N'00,32,3211', N'京口区', N'32', N'江苏省', N'3211', N'镇江市', N'321102', N'京口区', N'', N'', N'', N'', N'3', N'1', N''), (N'321111', N'3211', N'00,32,3211', N'润州区', N'32', N'江苏省', N'3211', N'镇江市', N'321111', N'润州区', N'', N'', N'', N'', N'3', N'1', N''), (N'321112', N'3211', N'00,32,3211', N'丹徒区', N'32', N'江苏省', N'3211', N'镇江市', N'321112', N'丹徒区', N'', N'', N'', N'', N'3', N'1', N''), (N'321181', N'3211', N'00,32,3211', N'丹阳市', N'32', N'江苏省', N'3211', N'镇江市', N'321181', N'丹阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'321182', N'3211', N'00,32,3211', N'扬中市', N'32', N'江苏省', N'3211', N'镇江市', N'321182', N'扬中市', N'', N'', N'', N'', N'3', N'1', N''), (N'321183', N'3211', N'00,32,3211', N'句容市', N'32', N'江苏省', N'3211', N'镇江市', N'321183', N'句容市', N'', N'', N'', N'', N'3', N'1', N''), (N'3212', N'32', N'00,32', N'泰州市', N'32', N'江苏省', N'3212', N'泰州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'321202', N'3212', N'00,32,3212', N'海陵区', N'32', N'江苏省', N'3212', N'泰州市', N'321202', N'海陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'321203', N'3212', N'00,32,3212', N'高港区', N'32', N'江苏省', N'3212', N'泰州市', N'321203', N'高港区', N'', N'', N'', N'', N'3', N'1', N''), (N'321204', N'3212', N'00,32,3212', N'姜堰区', N'32', N'江苏省', N'3212', N'泰州市', N'321204', N'姜堰区', N'', N'', N'', N'', N'3', N'1', N''), (N'321281', N'3212', N'00,32,3212', N'兴化市', N'32', N'江苏省', N'3212', N'泰州市', N'321281', N'兴化市', N'', N'', N'', N'', N'3', N'1', N''), (N'321282', N'3212', N'00,32,3212', N'靖江市', N'32', N'江苏省', N'3212', N'泰州市', N'321282', N'靖江市', N'', N'', N'', N'', N'3', N'1', N''), (N'321283', N'3212', N'00,32,3212', N'泰兴市', N'32', N'江苏省', N'3212', N'泰州市', N'321283', N'泰兴市', N'', N'', N'', N'', N'3', N'1', N''), (N'3213', N'32', N'00,32', N'宿迁市', N'32', N'江苏省', N'3213', N'宿迁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'321302', N'3213', N'00,32,3213', N'宿城区', N'32', N'江苏省', N'3213', N'宿迁市', N'321302', N'宿城区', N'', N'', N'', N'', N'3', N'1', N''), (N'321311', N'3213', N'00,32,3213', N'宿豫区', N'32', N'江苏省', N'3213', N'宿迁市', N'321311', N'宿豫区', N'', N'', N'', N'', N'3', N'1', N''), (N'321322', N'3213', N'00,32,3213', N'沭阳县', N'32', N'江苏省', N'3213', N'宿迁市', N'321322', N'沭阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'321323', N'3213', N'00,32,3213', N'泗阳县', N'32', N'江苏省', N'3213', N'宿迁市', N'321323', N'泗阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'321324', N'3213', N'00,32,3213', N'泗洪县', N'32', N'江苏省', N'3213', N'宿迁市', N'321324', N'泗洪县', N'', N'', N'', N'', N'3', N'1', N''), (N'33', N'00', N'00', N'浙江省', N'33', N'浙江省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3301', N'33', N'00,33', N'杭州市', N'33', N'浙江省', N'3301', N'杭州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330102', N'3301', N'00,33,3301', N'上城区', N'33', N'浙江省', N'3301', N'杭州市', N'330102', N'上城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330103', N'3301', N'00,33,3301', N'下城区', N'33', N'浙江省', N'3301', N'杭州市', N'330103', N'下城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330104', N'3301', N'00,33,3301', N'江干区', N'33', N'浙江省', N'3301', N'杭州市', N'330104', N'江干区', N'', N'', N'', N'', N'3', N'1', N''), (N'330105', N'3301', N'00,33,3301', N'拱墅区', N'33', N'浙江省', N'3301', N'杭州市', N'330105', N'拱墅区', N'', N'', N'', N'', N'3', N'1', N''), (N'330106', N'3301', N'00,33,3301', N'西湖区', N'33', N'浙江省', N'3301', N'杭州市', N'330106', N'西湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'330108', N'3301', N'00,33,3301', N'滨江区', N'33', N'浙江省', N'3301', N'杭州市', N'330108', N'滨江区', N'', N'', N'', N'', N'3', N'1', N''), (N'330109', N'3301', N'00,33,3301', N'萧山区', N'33', N'浙江省', N'3301', N'杭州市', N'330109', N'萧山区', N'', N'', N'', N'', N'3', N'1', N''), (N'330110', N'3301', N'00,33,3301', N'余杭区', N'33', N'浙江省', N'3301', N'杭州市', N'330110', N'余杭区', N'', N'', N'', N'', N'3', N'1', N''), (N'330111', N'3301', N'00,33,3301', N'富阳区', N'33', N'浙江省', N'3301', N'杭州市', N'330111', N'富阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'330112', N'3301', N'00,33,3301', N'临安区', N'33', N'浙江省', N'3301', N'杭州市', N'330112', N'临安区', N'', N'', N'', N'', N'3', N'1', N''), (N'330122', N'3301', N'00,33,3301', N'桐庐县', N'33', N'浙江省', N'3301', N'杭州市', N'330122', N'桐庐县', N'', N'', N'', N'', N'3', N'1', N''), (N'330127', N'3301', N'00,33,3301', N'淳安县', N'33', N'浙江省', N'3301', N'杭州市', N'330127', N'淳安县', N'', N'', N'', N'', N'3', N'1', N''), (N'330182', N'3301', N'00,33,3301', N'建德市', N'33', N'浙江省', N'3301', N'杭州市', N'330182', N'建德市', N'', N'', N'', N'', N'3', N'1', N''), (N'3302', N'33', N'00,33', N'宁波市', N'33', N'浙江省', N'3302', N'宁波市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330203', N'3302', N'00,33,3302', N'海曙区', N'33', N'浙江省', N'3302', N'宁波市', N'330203', N'海曙区', N'', N'', N'', N'', N'3', N'1', N''), (N'330205', N'3302', N'00,33,3302', N'江北区', N'33', N'浙江省', N'3302', N'宁波市', N'330205', N'江北区', N'', N'', N'', N'', N'3', N'1', N''), (N'330206', N'3302', N'00,33,3302', N'北仑区', N'33', N'浙江省', N'3302', N'宁波市', N'330206', N'北仑区', N'', N'', N'', N'', N'3', N'1', N''), (N'330211', N'3302', N'00,33,3302', N'镇海区', N'33', N'浙江省', N'3302', N'宁波市', N'330211', N'镇海区', N'', N'', N'', N'', N'3', N'1', N''), (N'330212', N'3302', N'00,33,3302', N'鄞州区', N'33', N'浙江省', N'3302', N'宁波市', N'330212', N'鄞州区', N'', N'', N'', N'', N'3', N'1', N''), (N'330213', N'3302', N'00,33,3302', N'奉化区', N'33', N'浙江省', N'3302', N'宁波市', N'330213', N'奉化区', N'', N'', N'', N'', N'3', N'1', N''), (N'330225', N'3302', N'00,33,3302', N'象山县', N'33', N'浙江省', N'3302', N'宁波市', N'330225', N'象山县', N'', N'', N'', N'', N'3', N'1', N''), (N'330226', N'3302', N'00,33,3302', N'宁海县', N'33', N'浙江省', N'3302', N'宁波市', N'330226', N'宁海县', N'', N'', N'', N'', N'3', N'1', N''), (N'330281', N'3302', N'00,33,3302', N'余姚市', N'33', N'浙江省', N'3302', N'宁波市', N'330281', N'余姚市', N'', N'', N'', N'', N'3', N'1', N''), (N'330282', N'3302', N'00,33,3302', N'慈溪市', N'33', N'浙江省', N'3302', N'宁波市', N'330282', N'慈溪市', N'', N'', N'', N'', N'3', N'1', N''), (N'3303', N'33', N'00,33', N'温州市', N'33', N'浙江省', N'3303', N'温州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330302', N'3303', N'00,33,3303', N'鹿城区', N'33', N'浙江省', N'3303', N'温州市', N'330302', N'鹿城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330303', N'3303', N'00,33,3303', N'龙湾区', N'33', N'浙江省', N'3303', N'温州市', N'330303', N'龙湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'330304', N'3303', N'00,33,3303', N'瓯海区', N'33', N'浙江省', N'3303', N'温州市', N'330304', N'瓯海区', N'', N'', N'', N'', N'3', N'1', N''), (N'330305', N'3303', N'00,33,3303', N'洞头区', N'33', N'浙江省', N'3303', N'温州市', N'330305', N'洞头区', N'', N'', N'', N'', N'3', N'1', N''), (N'330324', N'3303', N'00,33,3303', N'永嘉县', N'33', N'浙江省', N'3303', N'温州市', N'330324', N'永嘉县', N'', N'', N'', N'', N'3', N'1', N''), (N'330326', N'3303', N'00,33,3303', N'平阳县', N'33', N'浙江省', N'3303', N'温州市', N'330326', N'平阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'330327', N'3303', N'00,33,3303', N'苍南县', N'33', N'浙江省', N'3303', N'温州市', N'330327', N'苍南县', N'', N'', N'', N'', N'3', N'1', N''), (N'330328', N'3303', N'00,33,3303', N'文成县', N'33', N'浙江省', N'3303', N'温州市', N'330328', N'文成县', N'', N'', N'', N'', N'3', N'1', N''), (N'330329', N'3303', N'00,33,3303', N'泰顺县', N'33', N'浙江省', N'3303', N'温州市', N'330329', N'泰顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'330381', N'3303', N'00,33,3303', N'瑞安市', N'33', N'浙江省', N'3303', N'温州市', N'330381', N'瑞安市', N'', N'', N'', N'', N'3', N'1', N''), (N'330382', N'3303', N'00,33,3303', N'乐清市', N'33', N'浙江省', N'3303', N'温州市', N'330382', N'乐清市', N'', N'', N'', N'', N'3', N'1', N''), (N'330383', N'3303', N'00,33,3303', N'龙港市', N'33', N'浙江省', N'3303', N'温州市', N'330383', N'龙港市', N'', N'', N'', N'', N'3', N'1', N''), (N'3304', N'33', N'00,33', N'嘉兴市', N'33', N'浙江省', N'3304', N'嘉兴市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330402', N'3304', N'00,33,3304', N'南湖区', N'33', N'浙江省', N'3304', N'嘉兴市', N'330402', N'南湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'330411', N'3304', N'00,33,3304', N'秀洲区', N'33', N'浙江省', N'3304', N'嘉兴市', N'330411', N'秀洲区', N'', N'', N'', N'', N'3', N'1', N''), (N'330421', N'3304', N'00,33,3304', N'嘉善县', N'33', N'浙江省', N'3304', N'嘉兴市', N'330421', N'嘉善县', N'', N'', N'', N'', N'3', N'1', N''), (N'330424', N'3304', N'00,33,3304', N'海盐县', N'33', N'浙江省', N'3304', N'嘉兴市', N'330424', N'海盐县', N'', N'', N'', N'', N'3', N'1', N''), (N'330481', N'3304', N'00,33,3304', N'海宁市', N'33', N'浙江省', N'3304', N'嘉兴市', N'330481', N'海宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'330482', N'3304', N'00,33,3304', N'平湖市', N'33', N'浙江省', N'3304', N'嘉兴市', N'330482', N'平湖市', N'', N'', N'', N'', N'3', N'1', N''), (N'330483', N'3304', N'00,33,3304', N'桐乡市', N'33', N'浙江省', N'3304', N'嘉兴市', N'330483', N'桐乡市', N'', N'', N'', N'', N'3', N'1', N''), (N'3305', N'33', N'00,33', N'湖州市', N'33', N'浙江省', N'3305', N'湖州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330502', N'3305', N'00,33,3305', N'吴兴区', N'33', N'浙江省', N'3305', N'湖州市', N'330502', N'吴兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'330503', N'3305', N'00,33,3305', N'南浔区', N'33', N'浙江省', N'3305', N'湖州市', N'330503', N'南浔区', N'', N'', N'', N'', N'3', N'1', N''), (N'330521', N'3305', N'00,33,3305', N'德清县', N'33', N'浙江省', N'3305', N'湖州市', N'330521', N'德清县', N'', N'', N'', N'', N'3', N'1', N''), (N'330522', N'3305', N'00,33,3305', N'长兴县', N'33', N'浙江省', N'3305', N'湖州市', N'330522', N'长兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'330523', N'3305', N'00,33,3305', N'安吉县', N'33', N'浙江省', N'3305', N'湖州市', N'330523', N'安吉县', N'', N'', N'', N'', N'3', N'1', N''), (N'3306', N'33', N'00,33', N'绍兴市', N'33', N'浙江省', N'3306', N'绍兴市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330602', N'3306', N'00,33,3306', N'越城区', N'33', N'浙江省', N'3306', N'绍兴市', N'330602', N'越城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330603', N'3306', N'00,33,3306', N'柯桥区', N'33', N'浙江省', N'3306', N'绍兴市', N'330603', N'柯桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'330604', N'3306', N'00,33,3306', N'上虞区', N'33', N'浙江省', N'3306', N'绍兴市', N'330604', N'上虞区', N'', N'', N'', N'', N'3', N'1', N''), (N'330624', N'3306', N'00,33,3306', N'新昌县', N'33', N'浙江省', N'3306', N'绍兴市', N'330624', N'新昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'330681', N'3306', N'00,33,3306', N'诸暨市', N'33', N'浙江省', N'3306', N'绍兴市', N'330681', N'诸暨市', N'', N'', N'', N'', N'3', N'1', N''), (N'330683', N'3306', N'00,33,3306', N'嵊州市', N'33', N'浙江省', N'3306', N'绍兴市', N'330683', N'嵊州市', N'', N'', N'', N'', N'3', N'1', N''), (N'3307', N'33', N'00,33', N'金华市', N'33', N'浙江省', N'3307', N'金华市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330702', N'3307', N'00,33,3307', N'婺城区', N'33', N'浙江省', N'3307', N'金华市', N'330702', N'婺城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330703', N'3307', N'00,33,3307', N'金东区', N'33', N'浙江省', N'3307', N'金华市', N'330703', N'金东区', N'', N'', N'', N'', N'3', N'1', N''), (N'330723', N'3307', N'00,33,3307', N'武义县', N'33', N'浙江省', N'3307', N'金华市', N'330723', N'武义县', N'', N'', N'', N'', N'3', N'1', N''), (N'330726', N'3307', N'00,33,3307', N'浦江县', N'33', N'浙江省', N'3307', N'金华市', N'330726', N'浦江县', N'', N'', N'', N'', N'3', N'1', N''), (N'330727', N'3307', N'00,33,3307', N'磐安县', N'33', N'浙江省', N'3307', N'金华市', N'330727', N'磐安县', N'', N'', N'', N'', N'3', N'1', N''), (N'330781', N'3307', N'00,33,3307', N'兰溪市', N'33', N'浙江省', N'3307', N'金华市', N'330781', N'兰溪市', N'', N'', N'', N'', N'3', N'1', N''), (N'330782', N'3307', N'00,33,3307', N'义乌市', N'33', N'浙江省', N'3307', N'金华市', N'330782', N'义乌市', N'', N'', N'', N'', N'3', N'1', N''), (N'330783', N'3307', N'00,33,3307', N'东阳市', N'33', N'浙江省', N'3307', N'金华市', N'330783', N'东阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'330784', N'3307', N'00,33,3307', N'永康市', N'33', N'浙江省', N'3307', N'金华市', N'330784', N'永康市', N'', N'', N'', N'', N'3', N'1', N''), (N'3308', N'33', N'00,33', N'衢州市', N'33', N'浙江省', N'3308', N'衢州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330802', N'3308', N'00,33,3308', N'柯城区', N'33', N'浙江省', N'3308', N'衢州市', N'330802', N'柯城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330803', N'3308', N'00,33,3308', N'衢江区', N'33', N'浙江省', N'3308', N'衢州市', N'330803', N'衢江区', N'', N'', N'', N'', N'3', N'1', N''), (N'330822', N'3308', N'00,33,3308', N'常山县', N'33', N'浙江省', N'3308', N'衢州市', N'330822', N'常山县', N'', N'', N'', N'', N'3', N'1', N''), (N'330824', N'3308', N'00,33,3308', N'开化县', N'33', N'浙江省', N'3308', N'衢州市', N'330824', N'开化县', N'', N'', N'', N'', N'3', N'1', N''), (N'330825', N'3308', N'00,33,3308', N'龙游县', N'33', N'浙江省', N'3308', N'衢州市', N'330825', N'龙游县', N'', N'', N'', N'', N'3', N'1', N''), (N'330881', N'3308', N'00,33,3308', N'江山市', N'33', N'浙江省', N'3308', N'衢州市', N'330881', N'江山市', N'', N'', N'', N'', N'3', N'1', N''), (N'3309', N'33', N'00,33', N'舟山市', N'33', N'浙江省', N'3309', N'舟山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330902', N'3309', N'00,33,3309', N'定海区', N'33', N'浙江省', N'3309', N'舟山市', N'330902', N'定海区', N'', N'', N'', N'', N'3', N'1', N''), (N'330903', N'3309', N'00,33,3309', N'普陀区', N'33', N'浙江省', N'3309', N'舟山市', N'330903', N'普陀区', N'', N'', N'', N'', N'3', N'1', N''), (N'330921', N'3309', N'00,33,3309', N'岱山县', N'33', N'浙江省', N'3309', N'舟山市', N'330921', N'岱山县', N'', N'', N'', N'', N'3', N'1', N''), (N'330922', N'3309', N'00,33,3309', N'嵊泗县', N'33', N'浙江省', N'3309', N'舟山市', N'330922', N'嵊泗县', N'', N'', N'', N'', N'3', N'1', N''), (N'3310', N'33', N'00,33', N'台州市', N'33', N'浙江省', N'3310', N'台州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'331002', N'3310', N'00,33,3310', N'椒江区', N'33', N'浙江省', N'3310', N'台州市', N'331002', N'椒江区', N'', N'', N'', N'', N'3', N'1', N''), (N'331003', N'3310', N'00,33,3310', N'黄岩区', N'33', N'浙江省', N'3310', N'台州市', N'331003', N'黄岩区', N'', N'', N'', N'', N'3', N'1', N''), (N'331004', N'3310', N'00,33,3310', N'路桥区', N'33', N'浙江省', N'3310', N'台州市', N'331004', N'路桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'331022', N'3310', N'00,33,3310', N'三门县', N'33', N'浙江省', N'3310', N'台州市', N'331022', N'三门县', N'', N'', N'', N'', N'3', N'1', N''), (N'331023', N'3310', N'00,33,3310', N'天台县', N'33', N'浙江省', N'3310', N'台州市', N'331023', N'天台县', N'', N'', N'', N'', N'3', N'1', N''), (N'331024', N'3310', N'00,33,3310', N'仙居县', N'33', N'浙江省', N'3310', N'台州市', N'331024', N'仙居县', N'', N'', N'', N'', N'3', N'1', N''), (N'331081', N'3310', N'00,33,3310', N'温岭市', N'33', N'浙江省', N'3310', N'台州市', N'331081', N'温岭市', N'', N'', N'', N'', N'3', N'1', N''), (N'331082', N'3310', N'00,33,3310', N'临海市', N'33', N'浙江省', N'3310', N'台州市', N'331082', N'临海市', N'', N'', N'', N'', N'3', N'1', N''), (N'331083', N'3310', N'00,33,3310', N'玉环市', N'33', N'浙江省', N'3310', N'台州市', N'331083', N'玉环市', N'', N'', N'', N'', N'3', N'1', N''), (N'3311', N'33', N'00,33', N'丽水市', N'33', N'浙江省', N'3311', N'丽水市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'331102', N'3311', N'00,33,3311', N'莲都区', N'33', N'浙江省', N'3311', N'丽水市', N'331102', N'莲都区', N'', N'', N'', N'', N'3', N'1', N''), (N'331121', N'3311', N'00,33,3311', N'青田县', N'33', N'浙江省', N'3311', N'丽水市', N'331121', N'青田县', N'', N'', N'', N'', N'3', N'1', N''), (N'331122', N'3311', N'00,33,3311', N'缙云县', N'33', N'浙江省', N'3311', N'丽水市', N'331122', N'缙云县', N'', N'', N'', N'', N'3', N'1', N''), (N'331123', N'3311', N'00,33,3311', N'遂昌县', N'33', N'浙江省', N'3311', N'丽水市', N'331123', N'遂昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'331124', N'3311', N'00,33,3311', N'松阳县', N'33', N'浙江省', N'3311', N'丽水市', N'331124', N'松阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'331125', N'3311', N'00,33,3311', N'云和县', N'33', N'浙江省', N'3311', N'丽水市', N'331125', N'云和县', N'', N'', N'', N'', N'3', N'1', N''), (N'331126', N'3311', N'00,33,3311', N'庆元县', N'33', N'浙江省', N'3311', N'丽水市', N'331126', N'庆元县', N'', N'', N'', N'', N'3', N'1', N''), (N'331127', N'3311', N'00,33,3311', N'景宁畲族自治县', N'33', N'浙江省', N'3311', N'丽水市', N'331127', N'景宁畲族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'331181', N'3311', N'00,33,3311', N'龙泉市', N'33', N'浙江省', N'3311', N'丽水市', N'331181', N'龙泉市', N'', N'', N'', N'', N'3', N'1', N''), (N'34', N'00', N'00', N'安徽省', N'34', N'安徽省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3401', N'34', N'00,34', N'合肥市', N'34', N'安徽省', N'3401', N'合肥市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340102', N'3401', N'00,34,3401', N'瑶海区', N'34', N'安徽省', N'3401', N'合肥市', N'340102', N'瑶海区', N'', N'', N'', N'', N'3', N'1', N''), (N'340103', N'3401', N'00,34,3401', N'庐阳区', N'34', N'安徽省', N'3401', N'合肥市', N'340103', N'庐阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'340104', N'3401', N'00,34,3401', N'蜀山区', N'34', N'安徽省', N'3401', N'合肥市', N'340104', N'蜀山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340111', N'3401', N'00,34,3401', N'包河区', N'34', N'安徽省', N'3401', N'合肥市', N'340111', N'包河区', N'', N'', N'', N'', N'3', N'1', N''), (N'340121', N'3401', N'00,34,3401', N'长丰县', N'34', N'安徽省', N'3401', N'合肥市', N'340121', N'长丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'340122', N'3401', N'00,34,3401', N'肥东县', N'34', N'安徽省', N'3401', N'合肥市', N'340122', N'肥东县', N'', N'', N'', N'', N'3', N'1', N''), (N'340123', N'3401', N'00,34,3401', N'肥西县', N'34', N'安徽省', N'3401', N'合肥市', N'340123', N'肥西县', N'', N'', N'', N'', N'3', N'1', N''), (N'340124', N'3401', N'00,34,3401', N'庐江县', N'34', N'安徽省', N'3401', N'合肥市', N'340124', N'庐江县', N'', N'', N'', N'', N'3', N'1', N''), (N'340181', N'3401', N'00,34,3401', N'巢湖市', N'34', N'安徽省', N'3401', N'合肥市', N'340181', N'巢湖市', N'', N'', N'', N'', N'3', N'1', N''), (N'3402', N'34', N'00,34', N'芜湖市', N'34', N'安徽省', N'3402', N'芜湖市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340202', N'3402', N'00,34,3402', N'镜湖区', N'34', N'安徽省', N'3402', N'芜湖市', N'340202', N'镜湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'340203', N'3402', N'00,34,3402', N'弋江区', N'34', N'安徽省', N'3402', N'芜湖市', N'340203', N'弋江区', N'', N'', N'', N'', N'3', N'1', N''), (N'340207', N'3402', N'00,34,3402', N'鸠江区', N'34', N'安徽省', N'3402', N'芜湖市', N'340207', N'鸠江区', N'', N'', N'', N'', N'3', N'1', N''), (N'340208', N'3402', N'00,34,3402', N'三山区', N'34', N'安徽省', N'3402', N'芜湖市', N'340208', N'三山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340221', N'3402', N'00,34,3402', N'芜湖县', N'34', N'安徽省', N'3402', N'芜湖市', N'340221', N'芜湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'340222', N'3402', N'00,34,3402', N'繁昌县', N'34', N'安徽省', N'3402', N'芜湖市', N'340222', N'繁昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'340223', N'3402', N'00,34,3402', N'南陵县', N'34', N'安徽省', N'3402', N'芜湖市', N'340223', N'南陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'340281', N'3402', N'00,34,3402', N'无为市', N'34', N'安徽省', N'3402', N'芜湖市', N'340281', N'无为市', N'', N'', N'', N'', N'3', N'1', N''), (N'3403', N'34', N'00,34', N'蚌埠市', N'34', N'安徽省', N'3403', N'蚌埠市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340302', N'3403', N'00,34,3403', N'龙子湖区', N'34', N'安徽省', N'3403', N'蚌埠市', N'340302', N'龙子湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'340303', N'3403', N'00,34,3403', N'蚌山区', N'34', N'安徽省', N'3403', N'蚌埠市', N'340303', N'蚌山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340304', N'3403', N'00,34,3403', N'禹会区', N'34', N'安徽省', N'3403', N'蚌埠市', N'340304', N'禹会区', N'', N'', N'', N'', N'3', N'1', N''), (N'340311', N'3403', N'00,34,3403', N'淮上区', N'34', N'安徽省', N'3403', N'蚌埠市', N'340311', N'淮上区', N'', N'', N'', N'', N'3', N'1', N''), (N'340321', N'3403', N'00,34,3403', N'怀远县', N'34', N'安徽省', N'3403', N'蚌埠市', N'340321', N'怀远县', N'', N'', N'', N'', N'3', N'1', N''), (N'340322', N'3403', N'00,34,3403', N'五河县', N'34', N'安徽省', N'3403', N'蚌埠市', N'340322', N'五河县', N'', N'', N'', N'', N'3', N'1', N''), (N'340323', N'3403', N'00,34,3403', N'固镇县', N'34', N'安徽省', N'3403', N'蚌埠市', N'340323', N'固镇县', N'', N'', N'', N'', N'3', N'1', N''), (N'3404', N'34', N'00,34', N'淮南市', N'34', N'安徽省', N'3404', N'淮南市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340402', N'3404', N'00,34,3404', N'大通区', N'34', N'安徽省', N'3404', N'淮南市', N'340402', N'大通区', N'', N'', N'', N'', N'3', N'1', N''), (N'340403', N'3404', N'00,34,3404', N'田家庵区', N'34', N'安徽省', N'3404', N'淮南市', N'340403', N'田家庵区', N'', N'', N'', N'', N'3', N'1', N''), (N'340404', N'3404', N'00,34,3404', N'谢家集区', N'34', N'安徽省', N'3404', N'淮南市', N'340404', N'谢家集区', N'', N'', N'', N'', N'3', N'1', N''), (N'340405', N'3404', N'00,34,3404', N'八公山区', N'34', N'安徽省', N'3404', N'淮南市', N'340405', N'八公山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340406', N'3404', N'00,34,3404', N'潘集区', N'34', N'安徽省', N'3404', N'淮南市', N'340406', N'潘集区', N'', N'', N'', N'', N'3', N'1', N''), (N'340421', N'3404', N'00,34,3404', N'凤台县', N'34', N'安徽省', N'3404', N'淮南市', N'340421', N'凤台县', N'', N'', N'', N'', N'3', N'1', N''), (N'340422', N'3404', N'00,34,3404', N'寿县', N'34', N'安徽省', N'3404', N'淮南市', N'340422', N'寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'3405', N'34', N'00,34', N'马鞍山市', N'34', N'安徽省', N'3405', N'马鞍山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340503', N'3405', N'00,34,3405', N'花山区', N'34', N'安徽省', N'3405', N'马鞍山市', N'340503', N'花山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340504', N'3405', N'00,34,3405', N'雨山区', N'34', N'安徽省', N'3405', N'马鞍山市', N'340504', N'雨山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340506', N'3405', N'00,34,3405', N'博望区', N'34', N'安徽省', N'3405', N'马鞍山市', N'340506', N'博望区', N'', N'', N'', N'', N'3', N'1', N''), (N'340521', N'3405', N'00,34,3405', N'当涂县', N'34', N'安徽省', N'3405', N'马鞍山市', N'340521', N'当涂县', N'', N'', N'', N'', N'3', N'1', N''), (N'340522', N'3405', N'00,34,3405', N'含山县', N'34', N'安徽省', N'3405', N'马鞍山市', N'340522', N'含山县', N'', N'', N'', N'', N'3', N'1', N''), (N'340523', N'3405', N'00,34,3405', N'和县', N'34', N'安徽省', N'3405', N'马鞍山市', N'340523', N'和县', N'', N'', N'', N'', N'3', N'1', N''), (N'3406', N'34', N'00,34', N'淮北市', N'34', N'安徽省', N'3406', N'淮北市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340602', N'3406', N'00,34,3406', N'杜集区', N'34', N'安徽省', N'3406', N'淮北市', N'340602', N'杜集区', N'', N'', N'', N'', N'3', N'1', N''), (N'340603', N'3406', N'00,34,3406', N'相山区', N'34', N'安徽省', N'3406', N'淮北市', N'340603', N'相山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340604', N'3406', N'00,34,3406', N'烈山区', N'34', N'安徽省', N'3406', N'淮北市', N'340604', N'烈山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340621', N'3406', N'00,34,3406', N'濉溪县', N'34', N'安徽省', N'3406', N'淮北市', N'340621', N'濉溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'3407', N'34', N'00,34', N'铜陵市', N'34', N'安徽省', N'3407', N'铜陵市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340705', N'3407', N'00,34,3407', N'铜官区', N'34', N'安徽省', N'3407', N'铜陵市', N'340705', N'铜官区', N'', N'', N'', N'', N'3', N'1', N''), (N'340706', N'3407', N'00,34,3407', N'义安区', N'34', N'安徽省', N'3407', N'铜陵市', N'340706', N'义安区', N'', N'', N'', N'', N'3', N'1', N''), (N'340711', N'3407', N'00,34,3407', N'郊区', N'34', N'安徽省', N'3407', N'铜陵市', N'340711', N'郊区', N'', N'', N'', N'', N'3', N'1', N''), (N'340722', N'3407', N'00,34,3407', N'枞阳县', N'34', N'安徽省', N'3407', N'铜陵市', N'340722', N'枞阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'3408', N'34', N'00,34', N'安庆市', N'34', N'安徽省', N'3408', N'安庆市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340802', N'3408', N'00,34,3408', N'迎江区', N'34', N'安徽省', N'3408', N'安庆市', N'340802', N'迎江区', N'', N'', N'', N'', N'3', N'1', N''), (N'340803', N'3408', N'00,34,3408', N'大观区', N'34', N'安徽省', N'3408', N'安庆市', N'340803', N'大观区', N'', N'', N'', N'', N'3', N'1', N''), (N'340811', N'3408', N'00,34,3408', N'宜秀区', N'34', N'安徽省', N'3408', N'安庆市', N'340811', N'宜秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'340822', N'3408', N'00,34,3408', N'怀宁县', N'34', N'安徽省', N'3408', N'安庆市', N'340822', N'怀宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'340825', N'3408', N'00,34,3408', N'太湖县', N'34', N'安徽省', N'3408', N'安庆市', N'340825', N'太湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'340826', N'3408', N'00,34,3408', N'宿松县', N'34', N'安徽省', N'3408', N'安庆市', N'340826', N'宿松县', N'', N'', N'', N'', N'3', N'1', N''), (N'340827', N'3408', N'00,34,3408', N'望江县', N'34', N'安徽省', N'3408', N'安庆市', N'340827', N'望江县', N'', N'', N'', N'', N'3', N'1', N''), (N'340828', N'3408', N'00,34,3408', N'岳西县', N'34', N'安徽省', N'3408', N'安庆市', N'340828', N'岳西县', N'', N'', N'', N'', N'3', N'1', N''), (N'340881', N'3408', N'00,34,3408', N'桐城市', N'34', N'安徽省', N'3408', N'安庆市', N'340881', N'桐城市', N'', N'', N'', N'', N'3', N'1', N''), (N'340882', N'3408', N'00,34,3408', N'潜山市', N'34', N'安徽省', N'3408', N'安庆市', N'340882', N'潜山市', N'', N'', N'', N'', N'3', N'1', N''), (N'3410', N'34', N'00,34', N'黄山市', N'34', N'安徽省', N'3410', N'黄山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341002', N'3410', N'00,34,3410', N'屯溪区', N'34', N'安徽省', N'3410', N'黄山市', N'341002', N'屯溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'341003', N'3410', N'00,34,3410', N'黄山区', N'34', N'安徽省', N'3410', N'黄山市', N'341003', N'黄山区', N'', N'', N'', N'', N'3', N'1', N''), (N'341004', N'3410', N'00,34,3410', N'徽州区', N'34', N'安徽省', N'3410', N'黄山市', N'341004', N'徽州区', N'', N'', N'', N'', N'3', N'1', N''), (N'341021', N'3410', N'00,34,3410', N'歙县', N'34', N'安徽省', N'3410', N'黄山市', N'341021', N'歙县', N'', N'', N'', N'', N'3', N'1', N''), (N'341022', N'3410', N'00,34,3410', N'休宁县', N'34', N'安徽省', N'3410', N'黄山市', N'341022', N'休宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'341023', N'3410', N'00,34,3410', N'黟县', N'34', N'安徽省', N'3410', N'黄山市', N'341023', N'黟县', N'', N'', N'', N'', N'3', N'1', N''), (N'341024', N'3410', N'00,34,3410', N'祁门县', N'34', N'安徽省', N'3410', N'黄山市', N'341024', N'祁门县', N'', N'', N'', N'', N'3', N'1', N''), (N'3411', N'34', N'00,34', N'滁州市', N'34', N'安徽省', N'3411', N'滁州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341102', N'3411', N'00,34,3411', N'琅琊区', N'34', N'安徽省', N'3411', N'滁州市', N'341102', N'琅琊区', N'', N'', N'', N'', N'3', N'1', N''), (N'341103', N'3411', N'00,34,3411', N'南谯区', N'34', N'安徽省', N'3411', N'滁州市', N'341103', N'南谯区', N'', N'', N'', N'', N'3', N'1', N''), (N'341122', N'3411', N'00,34,3411', N'来安县', N'34', N'安徽省', N'3411', N'滁州市', N'341122', N'来安县', N'', N'', N'', N'', N'3', N'1', N''), (N'341124', N'3411', N'00,34,3411', N'全椒县', N'34', N'安徽省', N'3411', N'滁州市', N'341124', N'全椒县', N'', N'', N'', N'', N'3', N'1', N''), (N'341125', N'3411', N'00,34,3411', N'定远县', N'34', N'安徽省', N'3411', N'滁州市', N'341125', N'定远县', N'', N'', N'', N'', N'3', N'1', N''), (N'341126', N'3411', N'00,34,3411', N'凤阳县', N'34', N'安徽省', N'3411', N'滁州市', N'341126', N'凤阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'341181', N'3411', N'00,34,3411', N'天长市', N'34', N'安徽省', N'3411', N'滁州市', N'341181', N'天长市', N'', N'', N'', N'', N'3', N'1', N''), (N'341182', N'3411', N'00,34,3411', N'明光市', N'34', N'安徽省', N'3411', N'滁州市', N'341182', N'明光市', N'', N'', N'', N'', N'3', N'1', N''), (N'3412', N'34', N'00,34', N'阜阳市', N'34', N'安徽省', N'3412', N'阜阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341202', N'3412', N'00,34,3412', N'颍州区', N'34', N'安徽省', N'3412', N'阜阳市', N'341202', N'颍州区', N'', N'', N'', N'', N'3', N'1', N''), (N'341203', N'3412', N'00,34,3412', N'颍东区', N'34', N'安徽省', N'3412', N'阜阳市', N'341203', N'颍东区', N'', N'', N'', N'', N'3', N'1', N''), (N'341204', N'3412', N'00,34,3412', N'颍泉区', N'34', N'安徽省', N'3412', N'阜阳市', N'341204', N'颍泉区', N'', N'', N'', N'', N'3', N'1', N''), (N'341221', N'3412', N'00,34,3412', N'临泉县', N'34', N'安徽省', N'3412', N'阜阳市', N'341221', N'临泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'341222', N'3412', N'00,34,3412', N'太和县', N'34', N'安徽省', N'3412', N'阜阳市', N'341222', N'太和县', N'', N'', N'', N'', N'3', N'1', N''), (N'341225', N'3412', N'00,34,3412', N'阜南县', N'34', N'安徽省', N'3412', N'阜阳市', N'341225', N'阜南县', N'', N'', N'', N'', N'3', N'1', N''), (N'341226', N'3412', N'00,34,3412', N'颍上县', N'34', N'安徽省', N'3412', N'阜阳市', N'341226', N'颍上县', N'', N'', N'', N'', N'3', N'1', N''), (N'341282', N'3412', N'00,34,3412', N'界首市', N'34', N'安徽省', N'3412', N'阜阳市', N'341282', N'界首市', N'', N'', N'', N'', N'3', N'1', N''), (N'3413', N'34', N'00,34', N'宿州市', N'34', N'安徽省', N'3413', N'宿州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341302', N'3413', N'00,34,3413', N'埇桥区', N'34', N'安徽省', N'3413', N'宿州市', N'341302', N'埇桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'341321', N'3413', N'00,34,3413', N'砀山县', N'34', N'安徽省', N'3413', N'宿州市', N'341321', N'砀山县', N'', N'', N'', N'', N'3', N'1', N''), (N'341322', N'3413', N'00,34,3413', N'萧县', N'34', N'安徽省', N'3413', N'宿州市', N'341322', N'萧县', N'', N'', N'', N'', N'3', N'1', N''), (N'341323', N'3413', N'00,34,3413', N'灵璧县', N'34', N'安徽省', N'3413', N'宿州市', N'341323', N'灵璧县', N'', N'', N'', N'', N'3', N'1', N''), (N'341324', N'3413', N'00,34,3413', N'泗县', N'34', N'安徽省', N'3413', N'宿州市', N'341324', N'泗县', N'', N'', N'', N'', N'3', N'1', N''), (N'3415', N'34', N'00,34', N'六安市', N'34', N'安徽省', N'3415', N'六安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341502', N'3415', N'00,34,3415', N'金安区', N'34', N'安徽省', N'3415', N'六安市', N'341502', N'金安区', N'', N'', N'', N'', N'3', N'1', N''), (N'341503', N'3415', N'00,34,3415', N'裕安区', N'34', N'安徽省', N'3415', N'六安市', N'341503', N'裕安区', N'', N'', N'', N'', N'3', N'1', N''), (N'341504', N'3415', N'00,34,3415', N'叶集区', N'34', N'安徽省', N'3415', N'六安市', N'341504', N'叶集区', N'', N'', N'', N'', N'3', N'1', N''), (N'341522', N'3415', N'00,34,3415', N'霍邱县', N'34', N'安徽省', N'3415', N'六安市', N'341522', N'霍邱县', N'', N'', N'', N'', N'3', N'1', N''), (N'341523', N'3415', N'00,34,3415', N'舒城县', N'34', N'安徽省', N'3415', N'六安市', N'341523', N'舒城县', N'', N'', N'', N'', N'3', N'1', N''), (N'341524', N'3415', N'00,34,3415', N'金寨县', N'34', N'安徽省', N'3415', N'六安市', N'341524', N'金寨县', N'', N'', N'', N'', N'3', N'1', N''), (N'341525', N'3415', N'00,34,3415', N'霍山县', N'34', N'安徽省', N'3415', N'六安市', N'341525', N'霍山县', N'', N'', N'', N'', N'3', N'1', N''), (N'3416', N'34', N'00,34', N'亳州市', N'34', N'安徽省', N'3416', N'亳州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341602', N'3416', N'00,34,3416', N'谯城区', N'34', N'安徽省', N'3416', N'亳州市', N'341602', N'谯城区', N'', N'', N'', N'', N'3', N'1', N''), (N'341621', N'3416', N'00,34,3416', N'涡阳县', N'34', N'安徽省', N'3416', N'亳州市', N'341621', N'涡阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'341622', N'3416', N'00,34,3416', N'蒙城县', N'34', N'安徽省', N'3416', N'亳州市', N'341622', N'蒙城县', N'', N'', N'', N'', N'3', N'1', N''), (N'341623', N'3416', N'00,34,3416', N'利辛县', N'34', N'安徽省', N'3416', N'亳州市', N'341623', N'利辛县', N'', N'', N'', N'', N'3', N'1', N''), (N'3417', N'34', N'00,34', N'池州市', N'34', N'安徽省', N'3417', N'池州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341702', N'3417', N'00,34,3417', N'贵池区', N'34', N'安徽省', N'3417', N'池州市', N'341702', N'贵池区', N'', N'', N'', N'', N'3', N'1', N''), (N'341721', N'3417', N'00,34,3417', N'东至县', N'34', N'安徽省', N'3417', N'池州市', N'341721', N'东至县', N'', N'', N'', N'', N'3', N'1', N''), (N'341722', N'3417', N'00,34,3417', N'石台县', N'34', N'安徽省', N'3417', N'池州市', N'341722', N'石台县', N'', N'', N'', N'', N'3', N'1', N''), (N'341723', N'3417', N'00,34,3417', N'青阳县', N'34', N'安徽省', N'3417', N'池州市', N'341723', N'青阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'3418', N'34', N'00,34', N'宣城市', N'34', N'安徽省', N'3418', N'宣城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341802', N'3418', N'00,34,3418', N'宣州区', N'34', N'安徽省', N'3418', N'宣城市', N'341802', N'宣州区', N'', N'', N'', N'', N'3', N'1', N''), (N'341821', N'3418', N'00,34,3418', N'郎溪县', N'34', N'安徽省', N'3418', N'宣城市', N'341821', N'郎溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'341823', N'3418', N'00,34,3418', N'泾县', N'34', N'安徽省', N'3418', N'宣城市', N'341823', N'泾县', N'', N'', N'', N'', N'3', N'1', N''), (N'341824', N'3418', N'00,34,3418', N'绩溪县', N'34', N'安徽省', N'3418', N'宣城市', N'341824', N'绩溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'341825', N'3418', N'00,34,3418', N'旌德县', N'34', N'安徽省', N'3418', N'宣城市', N'341825', N'旌德县', N'', N'', N'', N'', N'3', N'1', N''), (N'341881', N'3418', N'00,34,3418', N'宁国市', N'34', N'安徽省', N'3418', N'宣城市', N'341881', N'宁国市', N'', N'', N'', N'', N'3', N'1', N''), (N'341882', N'3418', N'00,34,3418', N'广德市', N'34', N'安徽省', N'3418', N'宣城市', N'341882', N'广德市', N'', N'', N'', N'', N'3', N'1', N''), (N'35', N'00', N'00', N'福建省', N'35', N'福建省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3501', N'35', N'00,35', N'福州市', N'35', N'福建省', N'3501', N'福州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350102', N'3501', N'00,35,3501', N'鼓楼区', N'35', N'福建省', N'3501', N'福州市', N'350102', N'鼓楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'350103', N'3501', N'00,35,3501', N'台江区', N'35', N'福建省', N'3501', N'福州市', N'350103', N'台江区', N'', N'', N'', N'', N'3', N'1', N''), (N'350104', N'3501', N'00,35,3501', N'仓山区', N'35', N'福建省', N'3501', N'福州市', N'350104', N'仓山区', N'', N'', N'', N'', N'3', N'1', N''), (N'350105', N'3501', N'00,35,3501', N'马尾区', N'35', N'福建省', N'3501', N'福州市', N'350105', N'马尾区', N'', N'', N'', N'', N'3', N'1', N''), (N'350111', N'3501', N'00,35,3501', N'晋安区', N'35', N'福建省', N'3501', N'福州市', N'350111', N'晋安区', N'', N'', N'', N'', N'3', N'1', N''), (N'350112', N'3501', N'00,35,3501', N'长乐区', N'35', N'福建省', N'3501', N'福州市', N'350112', N'长乐区', N'', N'', N'', N'', N'3', N'1', N''), (N'350121', N'3501', N'00,35,3501', N'闽侯县', N'35', N'福建省', N'3501', N'福州市', N'350121', N'闽侯县', N'', N'', N'', N'', N'3', N'1', N''), (N'350122', N'3501', N'00,35,3501', N'连江县', N'35', N'福建省', N'3501', N'福州市', N'350122', N'连江县', N'', N'', N'', N'', N'3', N'1', N''), (N'350123', N'3501', N'00,35,3501', N'罗源县', N'35', N'福建省', N'3501', N'福州市', N'350123', N'罗源县', N'', N'', N'', N'', N'3', N'1', N''), (N'350124', N'3501', N'00,35,3501', N'闽清县', N'35', N'福建省', N'3501', N'福州市', N'350124', N'闽清县', N'', N'', N'', N'', N'3', N'1', N''), (N'350125', N'3501', N'00,35,3501', N'永泰县', N'35', N'福建省', N'3501', N'福州市', N'350125', N'永泰县', N'', N'', N'', N'', N'3', N'1', N''), (N'350128', N'3501', N'00,35,3501', N'平潭县', N'35', N'福建省', N'3501', N'福州市', N'350128', N'平潭县', N'', N'', N'', N'', N'3', N'1', N''), (N'350181', N'3501', N'00,35,3501', N'福清市', N'35', N'福建省', N'3501', N'福州市', N'350181', N'福清市', N'', N'', N'', N'', N'3', N'1', N''), (N'3502', N'35', N'00,35', N'厦门市', N'35', N'福建省', N'3502', N'厦门市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350203', N'3502', N'00,35,3502', N'思明区', N'35', N'福建省', N'3502', N'厦门市', N'350203', N'思明区', N'', N'', N'', N'', N'3', N'1', N''), (N'350205', N'3502', N'00,35,3502', N'海沧区', N'35', N'福建省', N'3502', N'厦门市', N'350205', N'海沧区', N'', N'', N'', N'', N'3', N'1', N''), (N'350206', N'3502', N'00,35,3502', N'湖里区', N'35', N'福建省', N'3502', N'厦门市', N'350206', N'湖里区', N'', N'', N'', N'', N'3', N'1', N''), (N'350211', N'3502', N'00,35,3502', N'集美区', N'35', N'福建省', N'3502', N'厦门市', N'350211', N'集美区', N'', N'', N'', N'', N'3', N'1', N''), (N'350212', N'3502', N'00,35,3502', N'同安区', N'35', N'福建省', N'3502', N'厦门市', N'350212', N'同安区', N'', N'', N'', N'', N'3', N'1', N''), (N'350213', N'3502', N'00,35,3502', N'翔安区', N'35', N'福建省', N'3502', N'厦门市', N'350213', N'翔安区', N'', N'', N'', N'', N'3', N'1', N''), (N'3503', N'35', N'00,35', N'莆田市', N'35', N'福建省', N'3503', N'莆田市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350302', N'3503', N'00,35,3503', N'城厢区', N'35', N'福建省', N'3503', N'莆田市', N'350302', N'城厢区', N'', N'', N'', N'', N'3', N'1', N''), (N'350303', N'3503', N'00,35,3503', N'涵江区', N'35', N'福建省', N'3503', N'莆田市', N'350303', N'涵江区', N'', N'', N'', N'', N'3', N'1', N''), (N'350304', N'3503', N'00,35,3503', N'荔城区', N'35', N'福建省', N'3503', N'莆田市', N'350304', N'荔城区', N'', N'', N'', N'', N'3', N'1', N''), (N'350305', N'3503', N'00,35,3503', N'秀屿区', N'35', N'福建省', N'3503', N'莆田市', N'350305', N'秀屿区', N'', N'', N'', N'', N'3', N'1', N''), (N'350322', N'3503', N'00,35,3503', N'仙游县', N'35', N'福建省', N'3503', N'莆田市', N'350322', N'仙游县', N'', N'', N'', N'', N'3', N'1', N''), (N'3504', N'35', N'00,35', N'三明市', N'35', N'福建省', N'3504', N'三明市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350402', N'3504', N'00,35,3504', N'梅列区', N'35', N'福建省', N'3504', N'三明市', N'350402', N'梅列区', N'', N'', N'', N'', N'3', N'1', N''), (N'350403', N'3504', N'00,35,3504', N'三元区', N'35', N'福建省', N'3504', N'三明市', N'350403', N'三元区', N'', N'', N'', N'', N'3', N'1', N''), (N'350421', N'3504', N'00,35,3504', N'明溪县', N'35', N'福建省', N'3504', N'三明市', N'350421', N'明溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'350423', N'3504', N'00,35,3504', N'清流县', N'35', N'福建省', N'3504', N'三明市', N'350423', N'清流县', N'', N'', N'', N'', N'3', N'1', N''), (N'350424', N'3504', N'00,35,3504', N'宁化县', N'35', N'福建省', N'3504', N'三明市', N'350424', N'宁化县', N'', N'', N'', N'', N'3', N'1', N''), (N'350425', N'3504', N'00,35,3504', N'大田县', N'35', N'福建省', N'3504', N'三明市', N'350425', N'大田县', N'', N'', N'', N'', N'3', N'1', N''), (N'350426', N'3504', N'00,35,3504', N'尤溪县', N'35', N'福建省', N'3504', N'三明市', N'350426', N'尤溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'350427', N'3504', N'00,35,3504', N'沙县', N'35', N'福建省', N'3504', N'三明市', N'350427', N'沙县', N'', N'', N'', N'', N'3', N'1', N''), (N'350428', N'3504', N'00,35,3504', N'将乐县', N'35', N'福建省', N'3504', N'三明市', N'350428', N'将乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'350429', N'3504', N'00,35,3504', N'泰宁县', N'35', N'福建省', N'3504', N'三明市', N'350429', N'泰宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'350430', N'3504', N'00,35,3504', N'建宁县', N'35', N'福建省', N'3504', N'三明市', N'350430', N'建宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'350481', N'3504', N'00,35,3504', N'永安市', N'35', N'福建省', N'3504', N'三明市', N'350481', N'永安市', N'', N'', N'', N'', N'3', N'1', N''), (N'3505', N'35', N'00,35', N'泉州市', N'35', N'福建省', N'3505', N'泉州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350502', N'3505', N'00,35,3505', N'鲤城区', N'35', N'福建省', N'3505', N'泉州市', N'350502', N'鲤城区', N'', N'', N'', N'', N'3', N'1', N''), (N'350503', N'3505', N'00,35,3505', N'丰泽区', N'35', N'福建省', N'3505', N'泉州市', N'350503', N'丰泽区', N'', N'', N'', N'', N'3', N'1', N''), (N'350504', N'3505', N'00,35,3505', N'洛江区', N'35', N'福建省', N'3505', N'泉州市', N'350504', N'洛江区', N'', N'', N'', N'', N'3', N'1', N''), (N'350505', N'3505', N'00,35,3505', N'泉港区', N'35', N'福建省', N'3505', N'泉州市', N'350505', N'泉港区', N'', N'', N'', N'', N'3', N'1', N''), (N'350521', N'3505', N'00,35,3505', N'惠安县', N'35', N'福建省', N'3505', N'泉州市', N'350521', N'惠安县', N'', N'', N'', N'', N'3', N'1', N''), (N'350524', N'3505', N'00,35,3505', N'安溪县', N'35', N'福建省', N'3505', N'泉州市', N'350524', N'安溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'350525', N'3505', N'00,35,3505', N'永春县', N'35', N'福建省', N'3505', N'泉州市', N'350525', N'永春县', N'', N'', N'', N'', N'3', N'1', N''), (N'350526', N'3505', N'00,35,3505', N'德化县', N'35', N'福建省', N'3505', N'泉州市', N'350526', N'德化县', N'', N'', N'', N'', N'3', N'1', N''), (N'350527', N'3505', N'00,35,3505', N'金门县', N'35', N'福建省', N'3505', N'泉州市', N'350527', N'金门县', N'', N'', N'', N'', N'3', N'1', N''), (N'350581', N'3505', N'00,35,3505', N'石狮市', N'35', N'福建省', N'3505', N'泉州市', N'350581', N'石狮市', N'', N'', N'', N'', N'3', N'1', N''), (N'350582', N'3505', N'00,35,3505', N'晋江市', N'35', N'福建省', N'3505', N'泉州市', N'350582', N'晋江市', N'', N'', N'', N'', N'3', N'1', N''), (N'350583', N'3505', N'00,35,3505', N'南安市', N'35', N'福建省', N'3505', N'泉州市', N'350583', N'南安市', N'', N'', N'', N'', N'3', N'1', N''), (N'3506', N'35', N'00,35', N'漳州市', N'35', N'福建省', N'3506', N'漳州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350602', N'3506', N'00,35,3506', N'芗城区', N'35', N'福建省', N'3506', N'漳州市', N'350602', N'芗城区', N'', N'', N'', N'', N'3', N'1', N''), (N'350603', N'3506', N'00,35,3506', N'龙文区', N'35', N'福建省', N'3506', N'漳州市', N'350603', N'龙文区', N'', N'', N'', N'', N'3', N'1', N''), (N'350622', N'3506', N'00,35,3506', N'云霄县', N'35', N'福建省', N'3506', N'漳州市', N'350622', N'云霄县', N'', N'', N'', N'', N'3', N'1', N''), (N'350623', N'3506', N'00,35,3506', N'漳浦县', N'35', N'福建省', N'3506', N'漳州市', N'350623', N'漳浦县', N'', N'', N'', N'', N'3', N'1', N''), (N'350624', N'3506', N'00,35,3506', N'诏安县', N'35', N'福建省', N'3506', N'漳州市', N'350624', N'诏安县', N'', N'', N'', N'', N'3', N'1', N''), (N'350625', N'3506', N'00,35,3506', N'长泰县', N'35', N'福建省', N'3506', N'漳州市', N'350625', N'长泰县', N'', N'', N'', N'', N'3', N'1', N''), (N'350626', N'3506', N'00,35,3506', N'东山县', N'35', N'福建省', N'3506', N'漳州市', N'350626', N'东山县', N'', N'', N'', N'', N'3', N'1', N''), (N'350627', N'3506', N'00,35,3506', N'南靖县', N'35', N'福建省', N'3506', N'漳州市', N'350627', N'南靖县', N'', N'', N'', N'', N'3', N'1', N''), (N'350628', N'3506', N'00,35,3506', N'平和县', N'35', N'福建省', N'3506', N'漳州市', N'350628', N'平和县', N'', N'', N'', N'', N'3', N'1', N''), (N'350629', N'3506', N'00,35,3506', N'华安县', N'35', N'福建省', N'3506', N'漳州市', N'350629', N'华安县', N'', N'', N'', N'', N'3', N'1', N''), (N'350681', N'3506', N'00,35,3506', N'龙海市', N'35', N'福建省', N'3506', N'漳州市', N'350681', N'龙海市', N'', N'', N'', N'', N'3', N'1', N''), (N'3507', N'35', N'00,35', N'南平市', N'35', N'福建省', N'3507', N'南平市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350702', N'3507', N'00,35,3507', N'延平区', N'35', N'福建省', N'3507', N'南平市', N'350702', N'延平区', N'', N'', N'', N'', N'3', N'1', N''), (N'350703', N'3507', N'00,35,3507', N'建阳区', N'35', N'福建省', N'3507', N'南平市', N'350703', N'建阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'350721', N'3507', N'00,35,3507', N'顺昌县', N'35', N'福建省', N'3507', N'南平市', N'350721', N'顺昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'350722', N'3507', N'00,35,3507', N'浦城县', N'35', N'福建省', N'3507', N'南平市', N'350722', N'浦城县', N'', N'', N'', N'', N'3', N'1', N''), (N'350723', N'3507', N'00,35,3507', N'光泽县', N'35', N'福建省', N'3507', N'南平市', N'350723', N'光泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'350724', N'3507', N'00,35,3507', N'松溪县', N'35', N'福建省', N'3507', N'南平市', N'350724', N'松溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'350725', N'3507', N'00,35,3507', N'政和县', N'35', N'福建省', N'3507', N'南平市', N'350725', N'政和县', N'', N'', N'', N'', N'3', N'1', N''), (N'350781', N'3507', N'00,35,3507', N'邵武市', N'35', N'福建省', N'3507', N'南平市', N'350781', N'邵武市', N'', N'', N'', N'', N'3', N'1', N''), (N'350782', N'3507', N'00,35,3507', N'武夷山市', N'35', N'福建省', N'3507', N'南平市', N'350782', N'武夷山市', N'', N'', N'', N'', N'3', N'1', N''), (N'350783', N'3507', N'00,35,3507', N'建瓯市', N'35', N'福建省', N'3507', N'南平市', N'350783', N'建瓯市', N'', N'', N'', N'', N'3', N'1', N''), (N'3508', N'35', N'00,35', N'龙岩市', N'35', N'福建省', N'3508', N'龙岩市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350802', N'3508', N'00,35,3508', N'新罗区', N'35', N'福建省', N'3508', N'龙岩市', N'350802', N'新罗区', N'', N'', N'', N'', N'3', N'1', N''), (N'350803', N'3508', N'00,35,3508', N'永定区', N'35', N'福建省', N'3508', N'龙岩市', N'350803', N'永定区', N'', N'', N'', N'', N'3', N'1', N''), (N'350821', N'3508', N'00,35,3508', N'长汀县', N'35', N'福建省', N'3508', N'龙岩市', N'350821', N'长汀县', N'', N'', N'', N'', N'3', N'1', N''), (N'350823', N'3508', N'00,35,3508', N'上杭县', N'35', N'福建省', N'3508', N'龙岩市', N'350823', N'上杭县', N'', N'', N'', N'', N'3', N'1', N''), (N'350824', N'3508', N'00,35,3508', N'武平县', N'35', N'福建省', N'3508', N'龙岩市', N'350824', N'武平县', N'', N'', N'', N'', N'3', N'1', N''), (N'350825', N'3508', N'00,35,3508', N'连城县', N'35', N'福建省', N'3508', N'龙岩市', N'350825', N'连城县', N'', N'', N'', N'', N'3', N'1', N''), (N'350881', N'3508', N'00,35,3508', N'漳平市', N'35', N'福建省', N'3508', N'龙岩市', N'350881', N'漳平市', N'', N'', N'', N'', N'3', N'1', N''), (N'3509', N'35', N'00,35', N'宁德市', N'35', N'福建省', N'3509', N'宁德市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350902', N'3509', N'00,35,3509', N'蕉城区', N'35', N'福建省', N'3509', N'宁德市', N'350902', N'蕉城区', N'', N'', N'', N'', N'3', N'1', N''), (N'350921', N'3509', N'00,35,3509', N'霞浦县', N'35', N'福建省', N'3509', N'宁德市', N'350921', N'霞浦县', N'', N'', N'', N'', N'3', N'1', N''), (N'350922', N'3509', N'00,35,3509', N'古田县', N'35', N'福建省', N'3509', N'宁德市', N'350922', N'古田县', N'', N'', N'', N'', N'3', N'1', N''), (N'350923', N'3509', N'00,35,3509', N'屏南县', N'35', N'福建省', N'3509', N'宁德市', N'350923', N'屏南县', N'', N'', N'', N'', N'3', N'1', N''), (N'350924', N'3509', N'00,35,3509', N'寿宁县', N'35', N'福建省', N'3509', N'宁德市', N'350924', N'寿宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'350925', N'3509', N'00,35,3509', N'周宁县', N'35', N'福建省', N'3509', N'宁德市', N'350925', N'周宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'350926', N'3509', N'00,35,3509', N'柘荣县', N'35', N'福建省', N'3509', N'宁德市', N'350926', N'柘荣县', N'', N'', N'', N'', N'3', N'1', N''), (N'350981', N'3509', N'00,35,3509', N'福安市', N'35', N'福建省', N'3509', N'宁德市', N'350981', N'福安市', N'', N'', N'', N'', N'3', N'1', N''), (N'350982', N'3509', N'00,35,3509', N'福鼎市', N'35', N'福建省', N'3509', N'宁德市', N'350982', N'福鼎市', N'', N'', N'', N'', N'3', N'1', N''), (N'36', N'00', N'00', N'江西省', N'36', N'江西省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3601', N'36', N'00,36', N'南昌市', N'36', N'江西省', N'3601', N'南昌市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360102', N'3601', N'00,36,3601', N'东湖区', N'36', N'江西省', N'3601', N'南昌市', N'360102', N'东湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'360103', N'3601', N'00,36,3601', N'西湖区', N'36', N'江西省', N'3601', N'南昌市', N'360103', N'西湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'360104', N'3601', N'00,36,3601', N'青云谱区', N'36', N'江西省', N'3601', N'南昌市', N'360104', N'青云谱区', N'', N'', N'', N'', N'3', N'1', N''), (N'360111', N'3601', N'00,36,3601', N'青山湖区', N'36', N'江西省', N'3601', N'南昌市', N'360111', N'青山湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'360112', N'3601', N'00,36,3601', N'新建区', N'36', N'江西省', N'3601', N'南昌市', N'360112', N'新建区', N'', N'', N'', N'', N'3', N'1', N''), (N'360113', N'3601', N'00,36,3601', N'红谷滩区', N'36', N'江西省', N'3601', N'南昌市', N'360113', N'红谷滩区', N'', N'', N'', N'', N'3', N'1', N''), (N'360121', N'3601', N'00,36,3601', N'南昌县', N'36', N'江西省', N'3601', N'南昌市', N'360121', N'南昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'360123', N'3601', N'00,36,3601', N'安义县', N'36', N'江西省', N'3601', N'南昌市', N'360123', N'安义县', N'', N'', N'', N'', N'3', N'1', N''), (N'360124', N'3601', N'00,36,3601', N'进贤县', N'36', N'江西省', N'3601', N'南昌市', N'360124', N'进贤县', N'', N'', N'', N'', N'3', N'1', N''), (N'3602', N'36', N'00,36', N'景德镇市', N'36', N'江西省', N'3602', N'景德镇市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360202', N'3602', N'00,36,3602', N'昌江区', N'36', N'江西省', N'3602', N'景德镇市', N'360202', N'昌江区', N'', N'', N'', N'', N'3', N'1', N''), (N'360203', N'3602', N'00,36,3602', N'珠山区', N'36', N'江西省', N'3602', N'景德镇市', N'360203', N'珠山区', N'', N'', N'', N'', N'3', N'1', N''), (N'360222', N'3602', N'00,36,3602', N'浮梁县', N'36', N'江西省', N'3602', N'景德镇市', N'360222', N'浮梁县', N'', N'', N'', N'', N'3', N'1', N''), (N'360281', N'3602', N'00,36,3602', N'乐平市', N'36', N'江西省', N'3602', N'景德镇市', N'360281', N'乐平市', N'', N'', N'', N'', N'3', N'1', N''), (N'3603', N'36', N'00,36', N'萍乡市', N'36', N'江西省', N'3603', N'萍乡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360302', N'3603', N'00,36,3603', N'安源区', N'36', N'江西省', N'3603', N'萍乡市', N'360302', N'安源区', N'', N'', N'', N'', N'3', N'1', N''), (N'360313', N'3603', N'00,36,3603', N'湘东区', N'36', N'江西省', N'3603', N'萍乡市', N'360313', N'湘东区', N'', N'', N'', N'', N'3', N'1', N''), (N'360321', N'3603', N'00,36,3603', N'莲花县', N'36', N'江西省', N'3603', N'萍乡市', N'360321', N'莲花县', N'', N'', N'', N'', N'3', N'1', N''), (N'360322', N'3603', N'00,36,3603', N'上栗县', N'36', N'江西省', N'3603', N'萍乡市', N'360322', N'上栗县', N'', N'', N'', N'', N'3', N'1', N''), (N'360323', N'3603', N'00,36,3603', N'芦溪县', N'36', N'江西省', N'3603', N'萍乡市', N'360323', N'芦溪县', N'', N'', N'', N'', N'3', N'1', N'')
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'3604', N'36', N'00,36', N'九江市', N'36', N'江西省', N'3604', N'九江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360402', N'3604', N'00,36,3604', N'濂溪区', N'36', N'江西省', N'3604', N'九江市', N'360402', N'濂溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'360403', N'3604', N'00,36,3604', N'浔阳区', N'36', N'江西省', N'3604', N'九江市', N'360403', N'浔阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'360404', N'3604', N'00,36,3604', N'柴桑区', N'36', N'江西省', N'3604', N'九江市', N'360404', N'柴桑区', N'', N'', N'', N'', N'3', N'1', N''), (N'360423', N'3604', N'00,36,3604', N'武宁县', N'36', N'江西省', N'3604', N'九江市', N'360423', N'武宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'360424', N'3604', N'00,36,3604', N'修水县', N'36', N'江西省', N'3604', N'九江市', N'360424', N'修水县', N'', N'', N'', N'', N'3', N'1', N''), (N'360425', N'3604', N'00,36,3604', N'永修县', N'36', N'江西省', N'3604', N'九江市', N'360425', N'永修县', N'', N'', N'', N'', N'3', N'1', N''), (N'360426', N'3604', N'00,36,3604', N'德安县', N'36', N'江西省', N'3604', N'九江市', N'360426', N'德安县', N'', N'', N'', N'', N'3', N'1', N''), (N'360428', N'3604', N'00,36,3604', N'都昌县', N'36', N'江西省', N'3604', N'九江市', N'360428', N'都昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'360429', N'3604', N'00,36,3604', N'湖口县', N'36', N'江西省', N'3604', N'九江市', N'360429', N'湖口县', N'', N'', N'', N'', N'3', N'1', N''), (N'360430', N'3604', N'00,36,3604', N'彭泽县', N'36', N'江西省', N'3604', N'九江市', N'360430', N'彭泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'360481', N'3604', N'00,36,3604', N'瑞昌市', N'36', N'江西省', N'3604', N'九江市', N'360481', N'瑞昌市', N'', N'', N'', N'', N'3', N'1', N''), (N'360482', N'3604', N'00,36,3604', N'共青城市', N'36', N'江西省', N'3604', N'九江市', N'360482', N'共青城市', N'', N'', N'', N'', N'3', N'1', N''), (N'360483', N'3604', N'00,36,3604', N'庐山市', N'36', N'江西省', N'3604', N'九江市', N'360483', N'庐山市', N'', N'', N'', N'', N'3', N'1', N''), (N'3605', N'36', N'00,36', N'新余市', N'36', N'江西省', N'3605', N'新余市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360502', N'3605', N'00,36,3605', N'渝水区', N'36', N'江西省', N'3605', N'新余市', N'360502', N'渝水区', N'', N'', N'', N'', N'3', N'1', N''), (N'360521', N'3605', N'00,36,3605', N'分宜县', N'36', N'江西省', N'3605', N'新余市', N'360521', N'分宜县', N'', N'', N'', N'', N'3', N'1', N''), (N'3606', N'36', N'00,36', N'鹰潭市', N'36', N'江西省', N'3606', N'鹰潭市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360602', N'3606', N'00,36,3606', N'月湖区', N'36', N'江西省', N'3606', N'鹰潭市', N'360602', N'月湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'360603', N'3606', N'00,36,3606', N'余江区', N'36', N'江西省', N'3606', N'鹰潭市', N'360603', N'余江区', N'', N'', N'', N'', N'3', N'1', N''), (N'360681', N'3606', N'00,36,3606', N'贵溪市', N'36', N'江西省', N'3606', N'鹰潭市', N'360681', N'贵溪市', N'', N'', N'', N'', N'3', N'1', N''), (N'3607', N'36', N'00,36', N'赣州市', N'36', N'江西省', N'3607', N'赣州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360702', N'3607', N'00,36,3607', N'章贡区', N'36', N'江西省', N'3607', N'赣州市', N'360702', N'章贡区', N'', N'', N'', N'', N'3', N'1', N''), (N'360703', N'3607', N'00,36,3607', N'南康区', N'36', N'江西省', N'3607', N'赣州市', N'360703', N'南康区', N'', N'', N'', N'', N'3', N'1', N''), (N'360704', N'3607', N'00,36,3607', N'赣县区', N'36', N'江西省', N'3607', N'赣州市', N'360704', N'赣县区', N'', N'', N'', N'', N'3', N'1', N''), (N'360722', N'3607', N'00,36,3607', N'信丰县', N'36', N'江西省', N'3607', N'赣州市', N'360722', N'信丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'360723', N'3607', N'00,36,3607', N'大余县', N'36', N'江西省', N'3607', N'赣州市', N'360723', N'大余县', N'', N'', N'', N'', N'3', N'1', N''), (N'360724', N'3607', N'00,36,3607', N'上犹县', N'36', N'江西省', N'3607', N'赣州市', N'360724', N'上犹县', N'', N'', N'', N'', N'3', N'1', N''), (N'360725', N'3607', N'00,36,3607', N'崇义县', N'36', N'江西省', N'3607', N'赣州市', N'360725', N'崇义县', N'', N'', N'', N'', N'3', N'1', N''), (N'360726', N'3607', N'00,36,3607', N'安远县', N'36', N'江西省', N'3607', N'赣州市', N'360726', N'安远县', N'', N'', N'', N'', N'3', N'1', N''), (N'360727', N'3607', N'00,36,3607', N'龙南县', N'36', N'江西省', N'3607', N'赣州市', N'360727', N'龙南县', N'', N'', N'', N'', N'3', N'1', N''), (N'360728', N'3607', N'00,36,3607', N'定南县', N'36', N'江西省', N'3607', N'赣州市', N'360728', N'定南县', N'', N'', N'', N'', N'3', N'1', N''), (N'360729', N'3607', N'00,36,3607', N'全南县', N'36', N'江西省', N'3607', N'赣州市', N'360729', N'全南县', N'', N'', N'', N'', N'3', N'1', N''), (N'360730', N'3607', N'00,36,3607', N'宁都县', N'36', N'江西省', N'3607', N'赣州市', N'360730', N'宁都县', N'', N'', N'', N'', N'3', N'1', N''), (N'360731', N'3607', N'00,36,3607', N'于都县', N'36', N'江西省', N'3607', N'赣州市', N'360731', N'于都县', N'', N'', N'', N'', N'3', N'1', N''), (N'360732', N'3607', N'00,36,3607', N'兴国县', N'36', N'江西省', N'3607', N'赣州市', N'360732', N'兴国县', N'', N'', N'', N'', N'3', N'1', N''), (N'360733', N'3607', N'00,36,3607', N'会昌县', N'36', N'江西省', N'3607', N'赣州市', N'360733', N'会昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'360734', N'3607', N'00,36,3607', N'寻乌县', N'36', N'江西省', N'3607', N'赣州市', N'360734', N'寻乌县', N'', N'', N'', N'', N'3', N'1', N''), (N'360735', N'3607', N'00,36,3607', N'石城县', N'36', N'江西省', N'3607', N'赣州市', N'360735', N'石城县', N'', N'', N'', N'', N'3', N'1', N''), (N'360781', N'3607', N'00,36,3607', N'瑞金市', N'36', N'江西省', N'3607', N'赣州市', N'360781', N'瑞金市', N'', N'', N'', N'', N'3', N'1', N''), (N'3608', N'36', N'00,36', N'吉安市', N'36', N'江西省', N'3608', N'吉安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360802', N'3608', N'00,36,3608', N'吉州区', N'36', N'江西省', N'3608', N'吉安市', N'360802', N'吉州区', N'', N'', N'', N'', N'3', N'1', N''), (N'360803', N'3608', N'00,36,3608', N'青原区', N'36', N'江西省', N'3608', N'吉安市', N'360803', N'青原区', N'', N'', N'', N'', N'3', N'1', N''), (N'360821', N'3608', N'00,36,3608', N'吉安县', N'36', N'江西省', N'3608', N'吉安市', N'360821', N'吉安县', N'', N'', N'', N'', N'3', N'1', N''), (N'360822', N'3608', N'00,36,3608', N'吉水县', N'36', N'江西省', N'3608', N'吉安市', N'360822', N'吉水县', N'', N'', N'', N'', N'3', N'1', N''), (N'360823', N'3608', N'00,36,3608', N'峡江县', N'36', N'江西省', N'3608', N'吉安市', N'360823', N'峡江县', N'', N'', N'', N'', N'3', N'1', N''), (N'360824', N'3608', N'00,36,3608', N'新干县', N'36', N'江西省', N'3608', N'吉安市', N'360824', N'新干县', N'', N'', N'', N'', N'3', N'1', N''), (N'360825', N'3608', N'00,36,3608', N'永丰县', N'36', N'江西省', N'3608', N'吉安市', N'360825', N'永丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'360826', N'3608', N'00,36,3608', N'泰和县', N'36', N'江西省', N'3608', N'吉安市', N'360826', N'泰和县', N'', N'', N'', N'', N'3', N'1', N''), (N'360827', N'3608', N'00,36,3608', N'遂川县', N'36', N'江西省', N'3608', N'吉安市', N'360827', N'遂川县', N'', N'', N'', N'', N'3', N'1', N''), (N'360828', N'3608', N'00,36,3608', N'万安县', N'36', N'江西省', N'3608', N'吉安市', N'360828', N'万安县', N'', N'', N'', N'', N'3', N'1', N''), (N'360829', N'3608', N'00,36,3608', N'安福县', N'36', N'江西省', N'3608', N'吉安市', N'360829', N'安福县', N'', N'', N'', N'', N'3', N'1', N''), (N'360830', N'3608', N'00,36,3608', N'永新县', N'36', N'江西省', N'3608', N'吉安市', N'360830', N'永新县', N'', N'', N'', N'', N'3', N'1', N''), (N'360881', N'3608', N'00,36,3608', N'井冈山市', N'36', N'江西省', N'3608', N'吉安市', N'360881', N'井冈山市', N'', N'', N'', N'', N'3', N'1', N''), (N'3609', N'36', N'00,36', N'宜春市', N'36', N'江西省', N'3609', N'宜春市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360902', N'3609', N'00,36,3609', N'袁州区', N'36', N'江西省', N'3609', N'宜春市', N'360902', N'袁州区', N'', N'', N'', N'', N'3', N'1', N''), (N'360921', N'3609', N'00,36,3609', N'奉新县', N'36', N'江西省', N'3609', N'宜春市', N'360921', N'奉新县', N'', N'', N'', N'', N'3', N'1', N''), (N'360922', N'3609', N'00,36,3609', N'万载县', N'36', N'江西省', N'3609', N'宜春市', N'360922', N'万载县', N'', N'', N'', N'', N'3', N'1', N''), (N'360923', N'3609', N'00,36,3609', N'上高县', N'36', N'江西省', N'3609', N'宜春市', N'360923', N'上高县', N'', N'', N'', N'', N'3', N'1', N''), (N'360924', N'3609', N'00,36,3609', N'宜丰县', N'36', N'江西省', N'3609', N'宜春市', N'360924', N'宜丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'360925', N'3609', N'00,36,3609', N'靖安县', N'36', N'江西省', N'3609', N'宜春市', N'360925', N'靖安县', N'', N'', N'', N'', N'3', N'1', N''), (N'360926', N'3609', N'00,36,3609', N'铜鼓县', N'36', N'江西省', N'3609', N'宜春市', N'360926', N'铜鼓县', N'', N'', N'', N'', N'3', N'1', N''), (N'360981', N'3609', N'00,36,3609', N'丰城市', N'36', N'江西省', N'3609', N'宜春市', N'360981', N'丰城市', N'', N'', N'', N'', N'3', N'1', N''), (N'360982', N'3609', N'00,36,3609', N'樟树市', N'36', N'江西省', N'3609', N'宜春市', N'360982', N'樟树市', N'', N'', N'', N'', N'3', N'1', N''), (N'360983', N'3609', N'00,36,3609', N'高安市', N'36', N'江西省', N'3609', N'宜春市', N'360983', N'高安市', N'', N'', N'', N'', N'3', N'1', N''), (N'3610', N'36', N'00,36', N'抚州市', N'36', N'江西省', N'3610', N'抚州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'361002', N'3610', N'00,36,3610', N'临川区', N'36', N'江西省', N'3610', N'抚州市', N'361002', N'临川区', N'', N'', N'', N'', N'3', N'1', N''), (N'361003', N'3610', N'00,36,3610', N'东乡区', N'36', N'江西省', N'3610', N'抚州市', N'361003', N'东乡区', N'', N'', N'', N'', N'3', N'1', N''), (N'361021', N'3610', N'00,36,3610', N'南城县', N'36', N'江西省', N'3610', N'抚州市', N'361021', N'南城县', N'', N'', N'', N'', N'3', N'1', N''), (N'361022', N'3610', N'00,36,3610', N'黎川县', N'36', N'江西省', N'3610', N'抚州市', N'361022', N'黎川县', N'', N'', N'', N'', N'3', N'1', N''), (N'361023', N'3610', N'00,36,3610', N'南丰县', N'36', N'江西省', N'3610', N'抚州市', N'361023', N'南丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'361024', N'3610', N'00,36,3610', N'崇仁县', N'36', N'江西省', N'3610', N'抚州市', N'361024', N'崇仁县', N'', N'', N'', N'', N'3', N'1', N''), (N'361025', N'3610', N'00,36,3610', N'乐安县', N'36', N'江西省', N'3610', N'抚州市', N'361025', N'乐安县', N'', N'', N'', N'', N'3', N'1', N''), (N'361026', N'3610', N'00,36,3610', N'宜黄县', N'36', N'江西省', N'3610', N'抚州市', N'361026', N'宜黄县', N'', N'', N'', N'', N'3', N'1', N''), (N'361027', N'3610', N'00,36,3610', N'金溪县', N'36', N'江西省', N'3610', N'抚州市', N'361027', N'金溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'361028', N'3610', N'00,36,3610', N'资溪县', N'36', N'江西省', N'3610', N'抚州市', N'361028', N'资溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'361030', N'3610', N'00,36,3610', N'广昌县', N'36', N'江西省', N'3610', N'抚州市', N'361030', N'广昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'3611', N'36', N'00,36', N'上饶市', N'36', N'江西省', N'3611', N'上饶市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'361102', N'3611', N'00,36,3611', N'信州区', N'36', N'江西省', N'3611', N'上饶市', N'361102', N'信州区', N'', N'', N'', N'', N'3', N'1', N''), (N'361103', N'3611', N'00,36,3611', N'广丰区', N'36', N'江西省', N'3611', N'上饶市', N'361103', N'广丰区', N'', N'', N'', N'', N'3', N'1', N''), (N'361104', N'3611', N'00,36,3611', N'广信区', N'36', N'江西省', N'3611', N'上饶市', N'361104', N'广信区', N'', N'', N'', N'', N'3', N'1', N''), (N'361123', N'3611', N'00,36,3611', N'玉山县', N'36', N'江西省', N'3611', N'上饶市', N'361123', N'玉山县', N'', N'', N'', N'', N'3', N'1', N''), (N'361124', N'3611', N'00,36,3611', N'铅山县', N'36', N'江西省', N'3611', N'上饶市', N'361124', N'铅山县', N'', N'', N'', N'', N'3', N'1', N''), (N'361125', N'3611', N'00,36,3611', N'横峰县', N'36', N'江西省', N'3611', N'上饶市', N'361125', N'横峰县', N'', N'', N'', N'', N'3', N'1', N''), (N'361126', N'3611', N'00,36,3611', N'弋阳县', N'36', N'江西省', N'3611', N'上饶市', N'361126', N'弋阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'361127', N'3611', N'00,36,3611', N'余干县', N'36', N'江西省', N'3611', N'上饶市', N'361127', N'余干县', N'', N'', N'', N'', N'3', N'1', N''), (N'361128', N'3611', N'00,36,3611', N'鄱阳县', N'36', N'江西省', N'3611', N'上饶市', N'361128', N'鄱阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'361129', N'3611', N'00,36,3611', N'万年县', N'36', N'江西省', N'3611', N'上饶市', N'361129', N'万年县', N'', N'', N'', N'', N'3', N'1', N''), (N'361130', N'3611', N'00,36,3611', N'婺源县', N'36', N'江西省', N'3611', N'上饶市', N'361130', N'婺源县', N'', N'', N'', N'', N'3', N'1', N''), (N'361181', N'3611', N'00,36,3611', N'德兴市', N'36', N'江西省', N'3611', N'上饶市', N'361181', N'德兴市', N'', N'', N'', N'', N'3', N'1', N''), (N'37', N'00', N'00', N'山东省', N'37', N'山东省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3701', N'37', N'00,37', N'济南市', N'37', N'山东省', N'3701', N'济南市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370102', N'3701', N'00,37,3701', N'历下区', N'37', N'山东省', N'3701', N'济南市', N'370102', N'历下区', N'', N'', N'', N'', N'3', N'1', N''), (N'370103', N'3701', N'00,37,3701', N'市中区', N'37', N'山东省', N'3701', N'济南市', N'370103', N'市中区', N'', N'', N'', N'', N'3', N'1', N''), (N'370104', N'3701', N'00,37,3701', N'槐荫区', N'37', N'山东省', N'3701', N'济南市', N'370104', N'槐荫区', N'', N'', N'', N'', N'3', N'1', N''), (N'370105', N'3701', N'00,37,3701', N'天桥区', N'37', N'山东省', N'3701', N'济南市', N'370105', N'天桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'370112', N'3701', N'00,37,3701', N'历城区', N'37', N'山东省', N'3701', N'济南市', N'370112', N'历城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370113', N'3701', N'00,37,3701', N'长清区', N'37', N'山东省', N'3701', N'济南市', N'370113', N'长清区', N'', N'', N'', N'', N'3', N'1', N''), (N'370114', N'3701', N'00,37,3701', N'章丘区', N'37', N'山东省', N'3701', N'济南市', N'370114', N'章丘区', N'', N'', N'', N'', N'3', N'1', N''), (N'370115', N'3701', N'00,37,3701', N'济阳区', N'37', N'山东省', N'3701', N'济南市', N'370115', N'济阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'370116', N'3701', N'00,37,3701', N'莱芜区', N'37', N'山东省', N'3701', N'济南市', N'370116', N'莱芜区', N'', N'', N'', N'', N'3', N'1', N''), (N'370117', N'3701', N'00,37,3701', N'钢城区', N'37', N'山东省', N'3701', N'济南市', N'370117', N'钢城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370124', N'3701', N'00,37,3701', N'平阴县', N'37', N'山东省', N'3701', N'济南市', N'370124', N'平阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'370126', N'3701', N'00,37,3701', N'商河县', N'37', N'山东省', N'3701', N'济南市', N'370126', N'商河县', N'', N'', N'', N'', N'3', N'1', N''), (N'3702', N'37', N'00,37', N'青岛市', N'37', N'山东省', N'3702', N'青岛市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370202', N'3702', N'00,37,3702', N'市南区', N'37', N'山东省', N'3702', N'青岛市', N'370202', N'市南区', N'', N'', N'', N'', N'3', N'1', N''), (N'370203', N'3702', N'00,37,3702', N'市北区', N'37', N'山东省', N'3702', N'青岛市', N'370203', N'市北区', N'', N'', N'', N'', N'3', N'1', N''), (N'370211', N'3702', N'00,37,3702', N'黄岛区', N'37', N'山东省', N'3702', N'青岛市', N'370211', N'黄岛区', N'', N'', N'', N'', N'3', N'1', N''), (N'370212', N'3702', N'00,37,3702', N'崂山区', N'37', N'山东省', N'3702', N'青岛市', N'370212', N'崂山区', N'', N'', N'', N'', N'3', N'1', N''), (N'370213', N'3702', N'00,37,3702', N'李沧区', N'37', N'山东省', N'3702', N'青岛市', N'370213', N'李沧区', N'', N'', N'', N'', N'3', N'1', N''), (N'370214', N'3702', N'00,37,3702', N'城阳区', N'37', N'山东省', N'3702', N'青岛市', N'370214', N'城阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'370215', N'3702', N'00,37,3702', N'即墨区', N'37', N'山东省', N'3702', N'青岛市', N'370215', N'即墨区', N'', N'', N'', N'', N'3', N'1', N''), (N'370281', N'3702', N'00,37,3702', N'胶州市', N'37', N'山东省', N'3702', N'青岛市', N'370281', N'胶州市', N'', N'', N'', N'', N'3', N'1', N''), (N'370283', N'3702', N'00,37,3702', N'平度市', N'37', N'山东省', N'3702', N'青岛市', N'370283', N'平度市', N'', N'', N'', N'', N'3', N'1', N''), (N'370285', N'3702', N'00,37,3702', N'莱西市', N'37', N'山东省', N'3702', N'青岛市', N'370285', N'莱西市', N'', N'', N'', N'', N'3', N'1', N''), (N'3703', N'37', N'00,37', N'淄博市', N'37', N'山东省', N'3703', N'淄博市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370302', N'3703', N'00,37,3703', N'淄川区', N'37', N'山东省', N'3703', N'淄博市', N'370302', N'淄川区', N'', N'', N'', N'', N'3', N'1', N''), (N'370303', N'3703', N'00,37,3703', N'张店区', N'37', N'山东省', N'3703', N'淄博市', N'370303', N'张店区', N'', N'', N'', N'', N'3', N'1', N''), (N'370304', N'3703', N'00,37,3703', N'博山区', N'37', N'山东省', N'3703', N'淄博市', N'370304', N'博山区', N'', N'', N'', N'', N'3', N'1', N''), (N'370305', N'3703', N'00,37,3703', N'临淄区', N'37', N'山东省', N'3703', N'淄博市', N'370305', N'临淄区', N'', N'', N'', N'', N'3', N'1', N''), (N'370306', N'3703', N'00,37,3703', N'周村区', N'37', N'山东省', N'3703', N'淄博市', N'370306', N'周村区', N'', N'', N'', N'', N'3', N'1', N''), (N'370321', N'3703', N'00,37,3703', N'桓台县', N'37', N'山东省', N'3703', N'淄博市', N'370321', N'桓台县', N'', N'', N'', N'', N'3', N'1', N''), (N'370322', N'3703', N'00,37,3703', N'高青县', N'37', N'山东省', N'3703', N'淄博市', N'370322', N'高青县', N'', N'', N'', N'', N'3', N'1', N''), (N'370323', N'3703', N'00,37,3703', N'沂源县', N'37', N'山东省', N'3703', N'淄博市', N'370323', N'沂源县', N'', N'', N'', N'', N'3', N'1', N''), (N'3704', N'37', N'00,37', N'枣庄市', N'37', N'山东省', N'3704', N'枣庄市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370402', N'3704', N'00,37,3704', N'市中区', N'37', N'山东省', N'3704', N'枣庄市', N'370402', N'市中区', N'', N'', N'', N'', N'3', N'1', N''), (N'370403', N'3704', N'00,37,3704', N'薛城区', N'37', N'山东省', N'3704', N'枣庄市', N'370403', N'薛城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370404', N'3704', N'00,37,3704', N'峄城区', N'37', N'山东省', N'3704', N'枣庄市', N'370404', N'峄城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370405', N'3704', N'00,37,3704', N'台儿庄区', N'37', N'山东省', N'3704', N'枣庄市', N'370405', N'台儿庄区', N'', N'', N'', N'', N'3', N'1', N''), (N'370406', N'3704', N'00,37,3704', N'山亭区', N'37', N'山东省', N'3704', N'枣庄市', N'370406', N'山亭区', N'', N'', N'', N'', N'3', N'1', N''), (N'370481', N'3704', N'00,37,3704', N'滕州市', N'37', N'山东省', N'3704', N'枣庄市', N'370481', N'滕州市', N'', N'', N'', N'', N'3', N'1', N''), (N'3705', N'37', N'00,37', N'东营市', N'37', N'山东省', N'3705', N'东营市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370502', N'3705', N'00,37,3705', N'东营区', N'37', N'山东省', N'3705', N'东营市', N'370502', N'东营区', N'', N'', N'', N'', N'3', N'1', N''), (N'370503', N'3705', N'00,37,3705', N'河口区', N'37', N'山东省', N'3705', N'东营市', N'370503', N'河口区', N'', N'', N'', N'', N'3', N'1', N''), (N'370505', N'3705', N'00,37,3705', N'垦利区', N'37', N'山东省', N'3705', N'东营市', N'370505', N'垦利区', N'', N'', N'', N'', N'3', N'1', N''), (N'370522', N'3705', N'00,37,3705', N'利津县', N'37', N'山东省', N'3705', N'东营市', N'370522', N'利津县', N'', N'', N'', N'', N'3', N'1', N''), (N'370523', N'3705', N'00,37,3705', N'广饶县', N'37', N'山东省', N'3705', N'东营市', N'370523', N'广饶县', N'', N'', N'', N'', N'3', N'1', N''), (N'3706', N'37', N'00,37', N'烟台市', N'37', N'山东省', N'3706', N'烟台市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370602', N'3706', N'00,37,3706', N'芝罘区', N'37', N'山东省', N'3706', N'烟台市', N'370602', N'芝罘区', N'', N'', N'', N'', N'3', N'1', N''), (N'370611', N'3706', N'00,37,3706', N'福山区', N'37', N'山东省', N'3706', N'烟台市', N'370611', N'福山区', N'', N'', N'', N'', N'3', N'1', N''), (N'370612', N'3706', N'00,37,3706', N'牟平区', N'37', N'山东省', N'3706', N'烟台市', N'370612', N'牟平区', N'', N'', N'', N'', N'3', N'1', N''), (N'370613', N'3706', N'00,37,3706', N'莱山区', N'37', N'山东省', N'3706', N'烟台市', N'370613', N'莱山区', N'', N'', N'', N'', N'3', N'1', N''), (N'370634', N'3706', N'00,37,3706', N'长岛县', N'37', N'山东省', N'3706', N'烟台市', N'370634', N'长岛县', N'', N'', N'', N'', N'3', N'1', N''), (N'370681', N'3706', N'00,37,3706', N'龙口市', N'37', N'山东省', N'3706', N'烟台市', N'370681', N'龙口市', N'', N'', N'', N'', N'3', N'1', N''), (N'370682', N'3706', N'00,37,3706', N'莱阳市', N'37', N'山东省', N'3706', N'烟台市', N'370682', N'莱阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'370683', N'3706', N'00,37,3706', N'莱州市', N'37', N'山东省', N'3706', N'烟台市', N'370683', N'莱州市', N'', N'', N'', N'', N'3', N'1', N''), (N'370684', N'3706', N'00,37,3706', N'蓬莱市', N'37', N'山东省', N'3706', N'烟台市', N'370684', N'蓬莱市', N'', N'', N'', N'', N'3', N'1', N''), (N'370685', N'3706', N'00,37,3706', N'招远市', N'37', N'山东省', N'3706', N'烟台市', N'370685', N'招远市', N'', N'', N'', N'', N'3', N'1', N''), (N'370686', N'3706', N'00,37,3706', N'栖霞市', N'37', N'山东省', N'3706', N'烟台市', N'370686', N'栖霞市', N'', N'', N'', N'', N'3', N'1', N''), (N'370687', N'3706', N'00,37,3706', N'海阳市', N'37', N'山东省', N'3706', N'烟台市', N'370687', N'海阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'3707', N'37', N'00,37', N'潍坊市', N'37', N'山东省', N'3707', N'潍坊市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370702', N'3707', N'00,37,3707', N'潍城区', N'37', N'山东省', N'3707', N'潍坊市', N'370702', N'潍城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370703', N'3707', N'00,37,3707', N'寒亭区', N'37', N'山东省', N'3707', N'潍坊市', N'370703', N'寒亭区', N'', N'', N'', N'', N'3', N'1', N''), (N'370704', N'3707', N'00,37,3707', N'坊子区', N'37', N'山东省', N'3707', N'潍坊市', N'370704', N'坊子区', N'', N'', N'', N'', N'3', N'1', N''), (N'370705', N'3707', N'00,37,3707', N'奎文区', N'37', N'山东省', N'3707', N'潍坊市', N'370705', N'奎文区', N'', N'', N'', N'', N'3', N'1', N''), (N'370724', N'3707', N'00,37,3707', N'临朐县', N'37', N'山东省', N'3707', N'潍坊市', N'370724', N'临朐县', N'', N'', N'', N'', N'3', N'1', N''), (N'370725', N'3707', N'00,37,3707', N'昌乐县', N'37', N'山东省', N'3707', N'潍坊市', N'370725', N'昌乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'370781', N'3707', N'00,37,3707', N'青州市', N'37', N'山东省', N'3707', N'潍坊市', N'370781', N'青州市', N'', N'', N'', N'', N'3', N'1', N''), (N'370782', N'3707', N'00,37,3707', N'诸城市', N'37', N'山东省', N'3707', N'潍坊市', N'370782', N'诸城市', N'', N'', N'', N'', N'3', N'1', N''), (N'370783', N'3707', N'00,37,3707', N'寿光市', N'37', N'山东省', N'3707', N'潍坊市', N'370783', N'寿光市', N'', N'', N'', N'', N'3', N'1', N''), (N'370784', N'3707', N'00,37,3707', N'安丘市', N'37', N'山东省', N'3707', N'潍坊市', N'370784', N'安丘市', N'', N'', N'', N'', N'3', N'1', N''), (N'370785', N'3707', N'00,37,3707', N'高密市', N'37', N'山东省', N'3707', N'潍坊市', N'370785', N'高密市', N'', N'', N'', N'', N'3', N'1', N''), (N'370786', N'3707', N'00,37,3707', N'昌邑市', N'37', N'山东省', N'3707', N'潍坊市', N'370786', N'昌邑市', N'', N'', N'', N'', N'3', N'1', N''), (N'3708', N'37', N'00,37', N'济宁市', N'37', N'山东省', N'3708', N'济宁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370811', N'3708', N'00,37,3708', N'任城区', N'37', N'山东省', N'3708', N'济宁市', N'370811', N'任城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370812', N'3708', N'00,37,3708', N'兖州区', N'37', N'山东省', N'3708', N'济宁市', N'370812', N'兖州区', N'', N'', N'', N'', N'3', N'1', N''), (N'370826', N'3708', N'00,37,3708', N'微山县', N'37', N'山东省', N'3708', N'济宁市', N'370826', N'微山县', N'', N'', N'', N'', N'3', N'1', N''), (N'370827', N'3708', N'00,37,3708', N'鱼台县', N'37', N'山东省', N'3708', N'济宁市', N'370827', N'鱼台县', N'', N'', N'', N'', N'3', N'1', N''), (N'370828', N'3708', N'00,37,3708', N'金乡县', N'37', N'山东省', N'3708', N'济宁市', N'370828', N'金乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'370829', N'3708', N'00,37,3708', N'嘉祥县', N'37', N'山东省', N'3708', N'济宁市', N'370829', N'嘉祥县', N'', N'', N'', N'', N'3', N'1', N''), (N'370830', N'3708', N'00,37,3708', N'汶上县', N'37', N'山东省', N'3708', N'济宁市', N'370830', N'汶上县', N'', N'', N'', N'', N'3', N'1', N''), (N'370831', N'3708', N'00,37,3708', N'泗水县', N'37', N'山东省', N'3708', N'济宁市', N'370831', N'泗水县', N'', N'', N'', N'', N'3', N'1', N''), (N'370832', N'3708', N'00,37,3708', N'梁山县', N'37', N'山东省', N'3708', N'济宁市', N'370832', N'梁山县', N'', N'', N'', N'', N'3', N'1', N''), (N'370881', N'3708', N'00,37,3708', N'曲阜市', N'37', N'山东省', N'3708', N'济宁市', N'370881', N'曲阜市', N'', N'', N'', N'', N'3', N'1', N''), (N'370883', N'3708', N'00,37,3708', N'邹城市', N'37', N'山东省', N'3708', N'济宁市', N'370883', N'邹城市', N'', N'', N'', N'', N'3', N'1', N''), (N'3709', N'37', N'00,37', N'泰安市', N'37', N'山东省', N'3709', N'泰安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370902', N'3709', N'00,37,3709', N'泰山区', N'37', N'山东省', N'3709', N'泰安市', N'370902', N'泰山区', N'', N'', N'', N'', N'3', N'1', N''), (N'370911', N'3709', N'00,37,3709', N'岱岳区', N'37', N'山东省', N'3709', N'泰安市', N'370911', N'岱岳区', N'', N'', N'', N'', N'3', N'1', N''), (N'370921', N'3709', N'00,37,3709', N'宁阳县', N'37', N'山东省', N'3709', N'泰安市', N'370921', N'宁阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'370923', N'3709', N'00,37,3709', N'东平县', N'37', N'山东省', N'3709', N'泰安市', N'370923', N'东平县', N'', N'', N'', N'', N'3', N'1', N''), (N'370982', N'3709', N'00,37,3709', N'新泰市', N'37', N'山东省', N'3709', N'泰安市', N'370982', N'新泰市', N'', N'', N'', N'', N'3', N'1', N''), (N'370983', N'3709', N'00,37,3709', N'肥城市', N'37', N'山东省', N'3709', N'泰安市', N'370983', N'肥城市', N'', N'', N'', N'', N'3', N'1', N''), (N'3710', N'37', N'00,37', N'威海市', N'37', N'山东省', N'3710', N'威海市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371002', N'3710', N'00,37,3710', N'环翠区', N'37', N'山东省', N'3710', N'威海市', N'371002', N'环翠区', N'', N'', N'', N'', N'3', N'1', N''), (N'371003', N'3710', N'00,37,3710', N'文登区', N'37', N'山东省', N'3710', N'威海市', N'371003', N'文登区', N'', N'', N'', N'', N'3', N'1', N''), (N'371082', N'3710', N'00,37,3710', N'荣成市', N'37', N'山东省', N'3710', N'威海市', N'371082', N'荣成市', N'', N'', N'', N'', N'3', N'1', N''), (N'371083', N'3710', N'00,37,3710', N'乳山市', N'37', N'山东省', N'3710', N'威海市', N'371083', N'乳山市', N'', N'', N'', N'', N'3', N'1', N''), (N'3711', N'37', N'00,37', N'日照市', N'37', N'山东省', N'3711', N'日照市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371102', N'3711', N'00,37,3711', N'东港区', N'37', N'山东省', N'3711', N'日照市', N'371102', N'东港区', N'', N'', N'', N'', N'3', N'1', N''), (N'371103', N'3711', N'00,37,3711', N'岚山区', N'37', N'山东省', N'3711', N'日照市', N'371103', N'岚山区', N'', N'', N'', N'', N'3', N'1', N''), (N'371121', N'3711', N'00,37,3711', N'五莲县', N'37', N'山东省', N'3711', N'日照市', N'371121', N'五莲县', N'', N'', N'', N'', N'3', N'1', N''), (N'371122', N'3711', N'00,37,3711', N'莒县', N'37', N'山东省', N'3711', N'日照市', N'371122', N'莒县', N'', N'', N'', N'', N'3', N'1', N''), (N'3713', N'37', N'00,37', N'临沂市', N'37', N'山东省', N'3713', N'临沂市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371302', N'3713', N'00,37,3713', N'兰山区', N'37', N'山东省', N'3713', N'临沂市', N'371302', N'兰山区', N'', N'', N'', N'', N'3', N'1', N''), (N'371311', N'3713', N'00,37,3713', N'罗庄区', N'37', N'山东省', N'3713', N'临沂市', N'371311', N'罗庄区', N'', N'', N'', N'', N'3', N'1', N''), (N'371312', N'3713', N'00,37,3713', N'河东区', N'37', N'山东省', N'3713', N'临沂市', N'371312', N'河东区', N'', N'', N'', N'', N'3', N'1', N''), (N'371321', N'3713', N'00,37,3713', N'沂南县', N'37', N'山东省', N'3713', N'临沂市', N'371321', N'沂南县', N'', N'', N'', N'', N'3', N'1', N''), (N'371322', N'3713', N'00,37,3713', N'郯城县', N'37', N'山东省', N'3713', N'临沂市', N'371322', N'郯城县', N'', N'', N'', N'', N'3', N'1', N''), (N'371323', N'3713', N'00,37,3713', N'沂水县', N'37', N'山东省', N'3713', N'临沂市', N'371323', N'沂水县', N'', N'', N'', N'', N'3', N'1', N''), (N'371324', N'3713', N'00,37,3713', N'兰陵县', N'37', N'山东省', N'3713', N'临沂市', N'371324', N'兰陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'371325', N'3713', N'00,37,3713', N'费县', N'37', N'山东省', N'3713', N'临沂市', N'371325', N'费县', N'', N'', N'', N'', N'3', N'1', N''), (N'371326', N'3713', N'00,37,3713', N'平邑县', N'37', N'山东省', N'3713', N'临沂市', N'371326', N'平邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'371327', N'3713', N'00,37,3713', N'莒南县', N'37', N'山东省', N'3713', N'临沂市', N'371327', N'莒南县', N'', N'', N'', N'', N'3', N'1', N''), (N'371328', N'3713', N'00,37,3713', N'蒙阴县', N'37', N'山东省', N'3713', N'临沂市', N'371328', N'蒙阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'371329', N'3713', N'00,37,3713', N'临沭县', N'37', N'山东省', N'3713', N'临沂市', N'371329', N'临沭县', N'', N'', N'', N'', N'3', N'1', N''), (N'3714', N'37', N'00,37', N'德州市', N'37', N'山东省', N'3714', N'德州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371402', N'3714', N'00,37,3714', N'德城区', N'37', N'山东省', N'3714', N'德州市', N'371402', N'德城区', N'', N'', N'', N'', N'3', N'1', N''), (N'371403', N'3714', N'00,37,3714', N'陵城区', N'37', N'山东省', N'3714', N'德州市', N'371403', N'陵城区', N'', N'', N'', N'', N'3', N'1', N''), (N'371422', N'3714', N'00,37,3714', N'宁津县', N'37', N'山东省', N'3714', N'德州市', N'371422', N'宁津县', N'', N'', N'', N'', N'3', N'1', N''), (N'371423', N'3714', N'00,37,3714', N'庆云县', N'37', N'山东省', N'3714', N'德州市', N'371423', N'庆云县', N'', N'', N'', N'', N'3', N'1', N''), (N'371424', N'3714', N'00,37,3714', N'临邑县', N'37', N'山东省', N'3714', N'德州市', N'371424', N'临邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'371425', N'3714', N'00,37,3714', N'齐河县', N'37', N'山东省', N'3714', N'德州市', N'371425', N'齐河县', N'', N'', N'', N'', N'3', N'1', N''), (N'371426', N'3714', N'00,37,3714', N'平原县', N'37', N'山东省', N'3714', N'德州市', N'371426', N'平原县', N'', N'', N'', N'', N'3', N'1', N''), (N'371427', N'3714', N'00,37,3714', N'夏津县', N'37', N'山东省', N'3714', N'德州市', N'371427', N'夏津县', N'', N'', N'', N'', N'3', N'1', N''), (N'371428', N'3714', N'00,37,3714', N'武城县', N'37', N'山东省', N'3714', N'德州市', N'371428', N'武城县', N'', N'', N'', N'', N'3', N'1', N''), (N'371481', N'3714', N'00,37,3714', N'乐陵市', N'37', N'山东省', N'3714', N'德州市', N'371481', N'乐陵市', N'', N'', N'', N'', N'3', N'1', N''), (N'371482', N'3714', N'00,37,3714', N'禹城市', N'37', N'山东省', N'3714', N'德州市', N'371482', N'禹城市', N'', N'', N'', N'', N'3', N'1', N''), (N'3715', N'37', N'00,37', N'聊城市', N'37', N'山东省', N'3715', N'聊城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371502', N'3715', N'00,37,3715', N'东昌府区', N'37', N'山东省', N'3715', N'聊城市', N'371502', N'东昌府区', N'', N'', N'', N'', N'3', N'1', N''), (N'371503', N'3715', N'00,37,3715', N'茌平区', N'37', N'山东省', N'3715', N'聊城市', N'371503', N'茌平区', N'', N'', N'', N'', N'3', N'1', N''), (N'371521', N'3715', N'00,37,3715', N'阳谷县', N'37', N'山东省', N'3715', N'聊城市', N'371521', N'阳谷县', N'', N'', N'', N'', N'3', N'1', N''), (N'371522', N'3715', N'00,37,3715', N'莘县', N'37', N'山东省', N'3715', N'聊城市', N'371522', N'莘县', N'', N'', N'', N'', N'3', N'1', N''), (N'371524', N'3715', N'00,37,3715', N'东阿县', N'37', N'山东省', N'3715', N'聊城市', N'371524', N'东阿县', N'', N'', N'', N'', N'3', N'1', N''), (N'371525', N'3715', N'00,37,3715', N'冠县', N'37', N'山东省', N'3715', N'聊城市', N'371525', N'冠县', N'', N'', N'', N'', N'3', N'1', N''), (N'371526', N'3715', N'00,37,3715', N'高唐县', N'37', N'山东省', N'3715', N'聊城市', N'371526', N'高唐县', N'', N'', N'', N'', N'3', N'1', N''), (N'371581', N'3715', N'00,37,3715', N'临清市', N'37', N'山东省', N'3715', N'聊城市', N'371581', N'临清市', N'', N'', N'', N'', N'3', N'1', N''), (N'3716', N'37', N'00,37', N'滨州市', N'37', N'山东省', N'3716', N'滨州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371602', N'3716', N'00,37,3716', N'滨城区', N'37', N'山东省', N'3716', N'滨州市', N'371602', N'滨城区', N'', N'', N'', N'', N'3', N'1', N''), (N'371603', N'3716', N'00,37,3716', N'沾化区', N'37', N'山东省', N'3716', N'滨州市', N'371603', N'沾化区', N'', N'', N'', N'', N'3', N'1', N''), (N'371621', N'3716', N'00,37,3716', N'惠民县', N'37', N'山东省', N'3716', N'滨州市', N'371621', N'惠民县', N'', N'', N'', N'', N'3', N'1', N''), (N'371622', N'3716', N'00,37,3716', N'阳信县', N'37', N'山东省', N'3716', N'滨州市', N'371622', N'阳信县', N'', N'', N'', N'', N'3', N'1', N''), (N'371623', N'3716', N'00,37,3716', N'无棣县', N'37', N'山东省', N'3716', N'滨州市', N'371623', N'无棣县', N'', N'', N'', N'', N'3', N'1', N''), (N'371625', N'3716', N'00,37,3716', N'博兴县', N'37', N'山东省', N'3716', N'滨州市', N'371625', N'博兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'371681', N'3716', N'00,37,3716', N'邹平市', N'37', N'山东省', N'3716', N'滨州市', N'371681', N'邹平市', N'', N'', N'', N'', N'3', N'1', N''), (N'3717', N'37', N'00,37', N'菏泽市', N'37', N'山东省', N'3717', N'菏泽市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371702', N'3717', N'00,37,3717', N'牡丹区', N'37', N'山东省', N'3717', N'菏泽市', N'371702', N'牡丹区', N'', N'', N'', N'', N'3', N'1', N''), (N'371703', N'3717', N'00,37,3717', N'定陶区', N'37', N'山东省', N'3717', N'菏泽市', N'371703', N'定陶区', N'', N'', N'', N'', N'3', N'1', N''), (N'371721', N'3717', N'00,37,3717', N'曹县', N'37', N'山东省', N'3717', N'菏泽市', N'371721', N'曹县', N'', N'', N'', N'', N'3', N'1', N''), (N'371722', N'3717', N'00,37,3717', N'单县', N'37', N'山东省', N'3717', N'菏泽市', N'371722', N'单县', N'', N'', N'', N'', N'3', N'1', N''), (N'371723', N'3717', N'00,37,3717', N'成武县', N'37', N'山东省', N'3717', N'菏泽市', N'371723', N'成武县', N'', N'', N'', N'', N'3', N'1', N''), (N'371724', N'3717', N'00,37,3717', N'巨野县', N'37', N'山东省', N'3717', N'菏泽市', N'371724', N'巨野县', N'', N'', N'', N'', N'3', N'1', N''), (N'371725', N'3717', N'00,37,3717', N'郓城县', N'37', N'山东省', N'3717', N'菏泽市', N'371725', N'郓城县', N'', N'', N'', N'', N'3', N'1', N''), (N'371726', N'3717', N'00,37,3717', N'鄄城县', N'37', N'山东省', N'3717', N'菏泽市', N'371726', N'鄄城县', N'', N'', N'', N'', N'3', N'1', N''), (N'371728', N'3717', N'00,37,3717', N'东明县', N'37', N'山东省', N'3717', N'菏泽市', N'371728', N'东明县', N'', N'', N'', N'', N'3', N'1', N''), (N'41', N'00', N'00', N'河南省', N'41', N'河南省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4101', N'41', N'00,41', N'郑州市', N'41', N'河南省', N'4101', N'郑州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410102', N'4101', N'00,41,4101', N'中原区', N'41', N'河南省', N'4101', N'郑州市', N'410102', N'中原区', N'', N'', N'', N'', N'3', N'1', N''), (N'410103', N'4101', N'00,41,4101', N'二七区', N'41', N'河南省', N'4101', N'郑州市', N'410103', N'二七区', N'', N'', N'', N'', N'3', N'1', N''), (N'410104', N'4101', N'00,41,4101', N'管城回族区', N'41', N'河南省', N'4101', N'郑州市', N'410104', N'管城回族区', N'', N'', N'', N'', N'3', N'1', N''), (N'410105', N'4101', N'00,41,4101', N'金水区', N'41', N'河南省', N'4101', N'郑州市', N'410105', N'金水区', N'', N'', N'', N'', N'3', N'1', N''), (N'410106', N'4101', N'00,41,4101', N'上街区', N'41', N'河南省', N'4101', N'郑州市', N'410106', N'上街区', N'', N'', N'', N'', N'3', N'1', N''), (N'410108', N'4101', N'00,41,4101', N'惠济区', N'41', N'河南省', N'4101', N'郑州市', N'410108', N'惠济区', N'', N'', N'', N'', N'3', N'1', N''), (N'410122', N'4101', N'00,41,4101', N'中牟县', N'41', N'河南省', N'4101', N'郑州市', N'410122', N'中牟县', N'', N'', N'', N'', N'3', N'1', N''), (N'410181', N'4101', N'00,41,4101', N'巩义市', N'41', N'河南省', N'4101', N'郑州市', N'410181', N'巩义市', N'', N'', N'', N'', N'3', N'1', N''), (N'410182', N'4101', N'00,41,4101', N'荥阳市', N'41', N'河南省', N'4101', N'郑州市', N'410182', N'荥阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'410183', N'4101', N'00,41,4101', N'新密市', N'41', N'河南省', N'4101', N'郑州市', N'410183', N'新密市', N'', N'', N'', N'', N'3', N'1', N''), (N'410184', N'4101', N'00,41,4101', N'新郑市', N'41', N'河南省', N'4101', N'郑州市', N'410184', N'新郑市', N'', N'', N'', N'', N'3', N'1', N''), (N'410185', N'4101', N'00,41,4101', N'登封市', N'41', N'河南省', N'4101', N'郑州市', N'410185', N'登封市', N'', N'', N'', N'', N'3', N'1', N''), (N'4102', N'41', N'00,41', N'开封市', N'41', N'河南省', N'4102', N'开封市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410202', N'4102', N'00,41,4102', N'龙亭区', N'41', N'河南省', N'4102', N'开封市', N'410202', N'龙亭区', N'', N'', N'', N'', N'3', N'1', N''), (N'410203', N'4102', N'00,41,4102', N'顺河回族区', N'41', N'河南省', N'4102', N'开封市', N'410203', N'顺河回族区', N'', N'', N'', N'', N'3', N'1', N''), (N'410204', N'4102', N'00,41,4102', N'鼓楼区', N'41', N'河南省', N'4102', N'开封市', N'410204', N'鼓楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'410205', N'4102', N'00,41,4102', N'禹王台区', N'41', N'河南省', N'4102', N'开封市', N'410205', N'禹王台区', N'', N'', N'', N'', N'3', N'1', N''), (N'410212', N'4102', N'00,41,4102', N'祥符区', N'41', N'河南省', N'4102', N'开封市', N'410212', N'祥符区', N'', N'', N'', N'', N'3', N'1', N''), (N'410221', N'4102', N'00,41,4102', N'杞县', N'41', N'河南省', N'4102', N'开封市', N'410221', N'杞县', N'', N'', N'', N'', N'3', N'1', N''), (N'410222', N'4102', N'00,41,4102', N'通许县', N'41', N'河南省', N'4102', N'开封市', N'410222', N'通许县', N'', N'', N'', N'', N'3', N'1', N''), (N'410223', N'4102', N'00,41,4102', N'尉氏县', N'41', N'河南省', N'4102', N'开封市', N'410223', N'尉氏县', N'', N'', N'', N'', N'3', N'1', N''), (N'410225', N'4102', N'00,41,4102', N'兰考县', N'41', N'河南省', N'4102', N'开封市', N'410225', N'兰考县', N'', N'', N'', N'', N'3', N'1', N''), (N'4103', N'41', N'00,41', N'洛阳市', N'41', N'河南省', N'4103', N'洛阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410302', N'4103', N'00,41,4103', N'老城区', N'41', N'河南省', N'4103', N'洛阳市', N'410302', N'老城区', N'', N'', N'', N'', N'3', N'1', N''), (N'410303', N'4103', N'00,41,4103', N'西工区', N'41', N'河南省', N'4103', N'洛阳市', N'410303', N'西工区', N'', N'', N'', N'', N'3', N'1', N''), (N'410304', N'4103', N'00,41,4103', N'瀍河回族区', N'41', N'河南省', N'4103', N'洛阳市', N'410304', N'瀍河回族区', N'', N'', N'', N'', N'3', N'1', N''), (N'410305', N'4103', N'00,41,4103', N'涧西区', N'41', N'河南省', N'4103', N'洛阳市', N'410305', N'涧西区', N'', N'', N'', N'', N'3', N'1', N''), (N'410306', N'4103', N'00,41,4103', N'吉利区', N'41', N'河南省', N'4103', N'洛阳市', N'410306', N'吉利区', N'', N'', N'', N'', N'3', N'1', N''), (N'410311', N'4103', N'00,41,4103', N'洛龙区', N'41', N'河南省', N'4103', N'洛阳市', N'410311', N'洛龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'410322', N'4103', N'00,41,4103', N'孟津县', N'41', N'河南省', N'4103', N'洛阳市', N'410322', N'孟津县', N'', N'', N'', N'', N'3', N'1', N''), (N'410323', N'4103', N'00,41,4103', N'新安县', N'41', N'河南省', N'4103', N'洛阳市', N'410323', N'新安县', N'', N'', N'', N'', N'3', N'1', N''), (N'410324', N'4103', N'00,41,4103', N'栾川县', N'41', N'河南省', N'4103', N'洛阳市', N'410324', N'栾川县', N'', N'', N'', N'', N'3', N'1', N''), (N'410325', N'4103', N'00,41,4103', N'嵩县', N'41', N'河南省', N'4103', N'洛阳市', N'410325', N'嵩县', N'', N'', N'', N'', N'3', N'1', N''), (N'410326', N'4103', N'00,41,4103', N'汝阳县', N'41', N'河南省', N'4103', N'洛阳市', N'410326', N'汝阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'410327', N'4103', N'00,41,4103', N'宜阳县', N'41', N'河南省', N'4103', N'洛阳市', N'410327', N'宜阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'410328', N'4103', N'00,41,4103', N'洛宁县', N'41', N'河南省', N'4103', N'洛阳市', N'410328', N'洛宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'410329', N'4103', N'00,41,4103', N'伊川县', N'41', N'河南省', N'4103', N'洛阳市', N'410329', N'伊川县', N'', N'', N'', N'', N'3', N'1', N''), (N'410381', N'4103', N'00,41,4103', N'偃师市', N'41', N'河南省', N'4103', N'洛阳市', N'410381', N'偃师市', N'', N'', N'', N'', N'3', N'1', N''), (N'4104', N'41', N'00,41', N'平顶山市', N'41', N'河南省', N'4104', N'平顶山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410402', N'4104', N'00,41,4104', N'新华区', N'41', N'河南省', N'4104', N'平顶山市', N'410402', N'新华区', N'', N'', N'', N'', N'3', N'1', N''), (N'410403', N'4104', N'00,41,4104', N'卫东区', N'41', N'河南省', N'4104', N'平顶山市', N'410403', N'卫东区', N'', N'', N'', N'', N'3', N'1', N''), (N'410404', N'4104', N'00,41,4104', N'石龙区', N'41', N'河南省', N'4104', N'平顶山市', N'410404', N'石龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'410411', N'4104', N'00,41,4104', N'湛河区', N'41', N'河南省', N'4104', N'平顶山市', N'410411', N'湛河区', N'', N'', N'', N'', N'3', N'1', N''), (N'410421', N'4104', N'00,41,4104', N'宝丰县', N'41', N'河南省', N'4104', N'平顶山市', N'410421', N'宝丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'410422', N'4104', N'00,41,4104', N'叶县', N'41', N'河南省', N'4104', N'平顶山市', N'410422', N'叶县', N'', N'', N'', N'', N'3', N'1', N''), (N'410423', N'4104', N'00,41,4104', N'鲁山县', N'41', N'河南省', N'4104', N'平顶山市', N'410423', N'鲁山县', N'', N'', N'', N'', N'3', N'1', N''), (N'410425', N'4104', N'00,41,4104', N'郏县', N'41', N'河南省', N'4104', N'平顶山市', N'410425', N'郏县', N'', N'', N'', N'', N'3', N'1', N''), (N'410481', N'4104', N'00,41,4104', N'舞钢市', N'41', N'河南省', N'4104', N'平顶山市', N'410481', N'舞钢市', N'', N'', N'', N'', N'3', N'1', N''), (N'410482', N'4104', N'00,41,4104', N'汝州市', N'41', N'河南省', N'4104', N'平顶山市', N'410482', N'汝州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4105', N'41', N'00,41', N'安阳市', N'41', N'河南省', N'4105', N'安阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410502', N'4105', N'00,41,4105', N'文峰区', N'41', N'河南省', N'4105', N'安阳市', N'410502', N'文峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'410503', N'4105', N'00,41,4105', N'北关区', N'41', N'河南省', N'4105', N'安阳市', N'410503', N'北关区', N'', N'', N'', N'', N'3', N'1', N''), (N'410505', N'4105', N'00,41,4105', N'殷都区', N'41', N'河南省', N'4105', N'安阳市', N'410505', N'殷都区', N'', N'', N'', N'', N'3', N'1', N''), (N'410506', N'4105', N'00,41,4105', N'龙安区', N'41', N'河南省', N'4105', N'安阳市', N'410506', N'龙安区', N'', N'', N'', N'', N'3', N'1', N''), (N'410522', N'4105', N'00,41,4105', N'安阳县', N'41', N'河南省', N'4105', N'安阳市', N'410522', N'安阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'410523', N'4105', N'00,41,4105', N'汤阴县', N'41', N'河南省', N'4105', N'安阳市', N'410523', N'汤阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'410526', N'4105', N'00,41,4105', N'滑县', N'41', N'河南省', N'4105', N'安阳市', N'410526', N'滑县', N'', N'', N'', N'', N'3', N'1', N''), (N'410527', N'4105', N'00,41,4105', N'内黄县', N'41', N'河南省', N'4105', N'安阳市', N'410527', N'内黄县', N'', N'', N'', N'', N'3', N'1', N''), (N'410581', N'4105', N'00,41,4105', N'林州市', N'41', N'河南省', N'4105', N'安阳市', N'410581', N'林州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4106', N'41', N'00,41', N'鹤壁市', N'41', N'河南省', N'4106', N'鹤壁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410602', N'4106', N'00,41,4106', N'鹤山区', N'41', N'河南省', N'4106', N'鹤壁市', N'410602', N'鹤山区', N'', N'', N'', N'', N'3', N'1', N''), (N'410603', N'4106', N'00,41,4106', N'山城区', N'41', N'河南省', N'4106', N'鹤壁市', N'410603', N'山城区', N'', N'', N'', N'', N'3', N'1', N''), (N'410611', N'4106', N'00,41,4106', N'淇滨区', N'41', N'河南省', N'4106', N'鹤壁市', N'410611', N'淇滨区', N'', N'', N'', N'', N'3', N'1', N''), (N'410621', N'4106', N'00,41,4106', N'浚县', N'41', N'河南省', N'4106', N'鹤壁市', N'410621', N'浚县', N'', N'', N'', N'', N'3', N'1', N''), (N'410622', N'4106', N'00,41,4106', N'淇县', N'41', N'河南省', N'4106', N'鹤壁市', N'410622', N'淇县', N'', N'', N'', N'', N'3', N'1', N''), (N'4107', N'41', N'00,41', N'新乡市', N'41', N'河南省', N'4107', N'新乡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410702', N'4107', N'00,41,4107', N'红旗区', N'41', N'河南省', N'4107', N'新乡市', N'410702', N'红旗区', N'', N'', N'', N'', N'3', N'1', N''), (N'410703', N'4107', N'00,41,4107', N'卫滨区', N'41', N'河南省', N'4107', N'新乡市', N'410703', N'卫滨区', N'', N'', N'', N'', N'3', N'1', N''), (N'410704', N'4107', N'00,41,4107', N'凤泉区', N'41', N'河南省', N'4107', N'新乡市', N'410704', N'凤泉区', N'', N'', N'', N'', N'3', N'1', N''), (N'410711', N'4107', N'00,41,4107', N'牧野区', N'41', N'河南省', N'4107', N'新乡市', N'410711', N'牧野区', N'', N'', N'', N'', N'3', N'1', N''), (N'410721', N'4107', N'00,41,4107', N'新乡县', N'41', N'河南省', N'4107', N'新乡市', N'410721', N'新乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'410724', N'4107', N'00,41,4107', N'获嘉县', N'41', N'河南省', N'4107', N'新乡市', N'410724', N'获嘉县', N'', N'', N'', N'', N'3', N'1', N''), (N'410725', N'4107', N'00,41,4107', N'原阳县', N'41', N'河南省', N'4107', N'新乡市', N'410725', N'原阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'410726', N'4107', N'00,41,4107', N'延津县', N'41', N'河南省', N'4107', N'新乡市', N'410726', N'延津县', N'', N'', N'', N'', N'3', N'1', N''), (N'410727', N'4107', N'00,41,4107', N'封丘县', N'41', N'河南省', N'4107', N'新乡市', N'410727', N'封丘县', N'', N'', N'', N'', N'3', N'1', N''), (N'410781', N'4107', N'00,41,4107', N'卫辉市', N'41', N'河南省', N'4107', N'新乡市', N'410781', N'卫辉市', N'', N'', N'', N'', N'3', N'1', N''), (N'410782', N'4107', N'00,41,4107', N'辉县市', N'41', N'河南省', N'4107', N'新乡市', N'410782', N'辉县市', N'', N'', N'', N'', N'3', N'1', N''), (N'410783', N'4107', N'00,41,4107', N'长垣市', N'41', N'河南省', N'4107', N'新乡市', N'410783', N'长垣市', N'', N'', N'', N'', N'3', N'1', N''), (N'4108', N'41', N'00,41', N'焦作市', N'41', N'河南省', N'4108', N'焦作市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410802', N'4108', N'00,41,4108', N'解放区', N'41', N'河南省', N'4108', N'焦作市', N'410802', N'解放区', N'', N'', N'', N'', N'3', N'1', N''), (N'410803', N'4108', N'00,41,4108', N'中站区', N'41', N'河南省', N'4108', N'焦作市', N'410803', N'中站区', N'', N'', N'', N'', N'3', N'1', N''), (N'410804', N'4108', N'00,41,4108', N'马村区', N'41', N'河南省', N'4108', N'焦作市', N'410804', N'马村区', N'', N'', N'', N'', N'3', N'1', N''), (N'410811', N'4108', N'00,41,4108', N'山阳区', N'41', N'河南省', N'4108', N'焦作市', N'410811', N'山阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'410821', N'4108', N'00,41,4108', N'修武县', N'41', N'河南省', N'4108', N'焦作市', N'410821', N'修武县', N'', N'', N'', N'', N'3', N'1', N''), (N'410822', N'4108', N'00,41,4108', N'博爱县', N'41', N'河南省', N'4108', N'焦作市', N'410822', N'博爱县', N'', N'', N'', N'', N'3', N'1', N''), (N'410823', N'4108', N'00,41,4108', N'武陟县', N'41', N'河南省', N'4108', N'焦作市', N'410823', N'武陟县', N'', N'', N'', N'', N'3', N'1', N''), (N'410825', N'4108', N'00,41,4108', N'温县', N'41', N'河南省', N'4108', N'焦作市', N'410825', N'温县', N'', N'', N'', N'', N'3', N'1', N''), (N'410882', N'4108', N'00,41,4108', N'沁阳市', N'41', N'河南省', N'4108', N'焦作市', N'410882', N'沁阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'410883', N'4108', N'00,41,4108', N'孟州市', N'41', N'河南省', N'4108', N'焦作市', N'410883', N'孟州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4109', N'41', N'00,41', N'濮阳市', N'41', N'河南省', N'4109', N'濮阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410902', N'4109', N'00,41,4109', N'华龙区', N'41', N'河南省', N'4109', N'濮阳市', N'410902', N'华龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'410922', N'4109', N'00,41,4109', N'清丰县', N'41', N'河南省', N'4109', N'濮阳市', N'410922', N'清丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'410923', N'4109', N'00,41,4109', N'南乐县', N'41', N'河南省', N'4109', N'濮阳市', N'410923', N'南乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'410926', N'4109', N'00,41,4109', N'范县', N'41', N'河南省', N'4109', N'濮阳市', N'410926', N'范县', N'', N'', N'', N'', N'3', N'1', N''), (N'410927', N'4109', N'00,41,4109', N'台前县', N'41', N'河南省', N'4109', N'濮阳市', N'410927', N'台前县', N'', N'', N'', N'', N'3', N'1', N''), (N'410928', N'4109', N'00,41,4109', N'濮阳县', N'41', N'河南省', N'4109', N'濮阳市', N'410928', N'濮阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'4110', N'41', N'00,41', N'许昌市', N'41', N'河南省', N'4110', N'许昌市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411002', N'4110', N'00,41,4110', N'魏都区', N'41', N'河南省', N'4110', N'许昌市', N'411002', N'魏都区', N'', N'', N'', N'', N'3', N'1', N''), (N'411003', N'4110', N'00,41,4110', N'建安区', N'41', N'河南省', N'4110', N'许昌市', N'411003', N'建安区', N'', N'', N'', N'', N'3', N'1', N''), (N'411024', N'4110', N'00,41,4110', N'鄢陵县', N'41', N'河南省', N'4110', N'许昌市', N'411024', N'鄢陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'411025', N'4110', N'00,41,4110', N'襄城县', N'41', N'河南省', N'4110', N'许昌市', N'411025', N'襄城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411081', N'4110', N'00,41,4110', N'禹州市', N'41', N'河南省', N'4110', N'许昌市', N'411081', N'禹州市', N'', N'', N'', N'', N'3', N'1', N''), (N'411082', N'4110', N'00,41,4110', N'长葛市', N'41', N'河南省', N'4110', N'许昌市', N'411082', N'长葛市', N'', N'', N'', N'', N'3', N'1', N''), (N'4111', N'41', N'00,41', N'漯河市', N'41', N'河南省', N'4111', N'漯河市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411102', N'4111', N'00,41,4111', N'源汇区', N'41', N'河南省', N'4111', N'漯河市', N'411102', N'源汇区', N'', N'', N'', N'', N'3', N'1', N''), (N'411103', N'4111', N'00,41,4111', N'郾城区', N'41', N'河南省', N'4111', N'漯河市', N'411103', N'郾城区', N'', N'', N'', N'', N'3', N'1', N''), (N'411104', N'4111', N'00,41,4111', N'召陵区', N'41', N'河南省', N'4111', N'漯河市', N'411104', N'召陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'411121', N'4111', N'00,41,4111', N'舞阳县', N'41', N'河南省', N'4111', N'漯河市', N'411121', N'舞阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'411122', N'4111', N'00,41,4111', N'临颍县', N'41', N'河南省', N'4111', N'漯河市', N'411122', N'临颍县', N'', N'', N'', N'', N'3', N'1', N''), (N'4112', N'41', N'00,41', N'三门峡市', N'41', N'河南省', N'4112', N'三门峡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411202', N'4112', N'00,41,4112', N'湖滨区', N'41', N'河南省', N'4112', N'三门峡市', N'411202', N'湖滨区', N'', N'', N'', N'', N'3', N'1', N''), (N'411203', N'4112', N'00,41,4112', N'陕州区', N'41', N'河南省', N'4112', N'三门峡市', N'411203', N'陕州区', N'', N'', N'', N'', N'3', N'1', N''), (N'411221', N'4112', N'00,41,4112', N'渑池县', N'41', N'河南省', N'4112', N'三门峡市', N'411221', N'渑池县', N'', N'', N'', N'', N'3', N'1', N''), (N'411224', N'4112', N'00,41,4112', N'卢氏县', N'41', N'河南省', N'4112', N'三门峡市', N'411224', N'卢氏县', N'', N'', N'', N'', N'3', N'1', N''), (N'411281', N'4112', N'00,41,4112', N'义马市', N'41', N'河南省', N'4112', N'三门峡市', N'411281', N'义马市', N'', N'', N'', N'', N'3', N'1', N''), (N'411282', N'4112', N'00,41,4112', N'灵宝市', N'41', N'河南省', N'4112', N'三门峡市', N'411282', N'灵宝市', N'', N'', N'', N'', N'3', N'1', N''), (N'4113', N'41', N'00,41', N'南阳市', N'41', N'河南省', N'4113', N'南阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411302', N'4113', N'00,41,4113', N'宛城区', N'41', N'河南省', N'4113', N'南阳市', N'411302', N'宛城区', N'', N'', N'', N'', N'3', N'1', N''), (N'411303', N'4113', N'00,41,4113', N'卧龙区', N'41', N'河南省', N'4113', N'南阳市', N'411303', N'卧龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'411321', N'4113', N'00,41,4113', N'南召县', N'41', N'河南省', N'4113', N'南阳市', N'411321', N'南召县', N'', N'', N'', N'', N'3', N'1', N''), (N'411322', N'4113', N'00,41,4113', N'方城县', N'41', N'河南省', N'4113', N'南阳市', N'411322', N'方城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411323', N'4113', N'00,41,4113', N'西峡县', N'41', N'河南省', N'4113', N'南阳市', N'411323', N'西峡县', N'', N'', N'', N'', N'3', N'1', N''), (N'411324', N'4113', N'00,41,4113', N'镇平县', N'41', N'河南省', N'4113', N'南阳市', N'411324', N'镇平县', N'', N'', N'', N'', N'3', N'1', N''), (N'411325', N'4113', N'00,41,4113', N'内乡县', N'41', N'河南省', N'4113', N'南阳市', N'411325', N'内乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'411326', N'4113', N'00,41,4113', N'淅川县', N'41', N'河南省', N'4113', N'南阳市', N'411326', N'淅川县', N'', N'', N'', N'', N'3', N'1', N''), (N'411327', N'4113', N'00,41,4113', N'社旗县', N'41', N'河南省', N'4113', N'南阳市', N'411327', N'社旗县', N'', N'', N'', N'', N'3', N'1', N''), (N'411328', N'4113', N'00,41,4113', N'唐河县', N'41', N'河南省', N'4113', N'南阳市', N'411328', N'唐河县', N'', N'', N'', N'', N'3', N'1', N''), (N'411329', N'4113', N'00,41,4113', N'新野县', N'41', N'河南省', N'4113', N'南阳市', N'411329', N'新野县', N'', N'', N'', N'', N'3', N'1', N''), (N'411330', N'4113', N'00,41,4113', N'桐柏县', N'41', N'河南省', N'4113', N'南阳市', N'411330', N'桐柏县', N'', N'', N'', N'', N'3', N'1', N''), (N'411381', N'4113', N'00,41,4113', N'邓州市', N'41', N'河南省', N'4113', N'南阳市', N'411381', N'邓州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4114', N'41', N'00,41', N'商丘市', N'41', N'河南省', N'4114', N'商丘市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411402', N'4114', N'00,41,4114', N'梁园区', N'41', N'河南省', N'4114', N'商丘市', N'411402', N'梁园区', N'', N'', N'', N'', N'3', N'1', N''), (N'411403', N'4114', N'00,41,4114', N'睢阳区', N'41', N'河南省', N'4114', N'商丘市', N'411403', N'睢阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'411421', N'4114', N'00,41,4114', N'民权县', N'41', N'河南省', N'4114', N'商丘市', N'411421', N'民权县', N'', N'', N'', N'', N'3', N'1', N''), (N'411422', N'4114', N'00,41,4114', N'睢县', N'41', N'河南省', N'4114', N'商丘市', N'411422', N'睢县', N'', N'', N'', N'', N'3', N'1', N''), (N'411423', N'4114', N'00,41,4114', N'宁陵县', N'41', N'河南省', N'4114', N'商丘市', N'411423', N'宁陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'411424', N'4114', N'00,41,4114', N'柘城县', N'41', N'河南省', N'4114', N'商丘市', N'411424', N'柘城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411425', N'4114', N'00,41,4114', N'虞城县', N'41', N'河南省', N'4114', N'商丘市', N'411425', N'虞城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411426', N'4114', N'00,41,4114', N'夏邑县', N'41', N'河南省', N'4114', N'商丘市', N'411426', N'夏邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'411481', N'4114', N'00,41,4114', N'永城市', N'41', N'河南省', N'4114', N'商丘市', N'411481', N'永城市', N'', N'', N'', N'', N'3', N'1', N''), (N'4115', N'41', N'00,41', N'信阳市', N'41', N'河南省', N'4115', N'信阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411502', N'4115', N'00,41,4115', N'浉河区', N'41', N'河南省', N'4115', N'信阳市', N'411502', N'浉河区', N'', N'', N'', N'', N'3', N'1', N''), (N'411503', N'4115', N'00,41,4115', N'平桥区', N'41', N'河南省', N'4115', N'信阳市', N'411503', N'平桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'411521', N'4115', N'00,41,4115', N'罗山县', N'41', N'河南省', N'4115', N'信阳市', N'411521', N'罗山县', N'', N'', N'', N'', N'3', N'1', N''), (N'411522', N'4115', N'00,41,4115', N'光山县', N'41', N'河南省', N'4115', N'信阳市', N'411522', N'光山县', N'', N'', N'', N'', N'3', N'1', N''), (N'411523', N'4115', N'00,41,4115', N'新县', N'41', N'河南省', N'4115', N'信阳市', N'411523', N'新县', N'', N'', N'', N'', N'3', N'1', N''), (N'411524', N'4115', N'00,41,4115', N'商城县', N'41', N'河南省', N'4115', N'信阳市', N'411524', N'商城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411525', N'4115', N'00,41,4115', N'固始县', N'41', N'河南省', N'4115', N'信阳市', N'411525', N'固始县', N'', N'', N'', N'', N'3', N'1', N''), (N'411526', N'4115', N'00,41,4115', N'潢川县', N'41', N'河南省', N'4115', N'信阳市', N'411526', N'潢川县', N'', N'', N'', N'', N'3', N'1', N''), (N'411527', N'4115', N'00,41,4115', N'淮滨县', N'41', N'河南省', N'4115', N'信阳市', N'411527', N'淮滨县', N'', N'', N'', N'', N'3', N'1', N''), (N'411528', N'4115', N'00,41,4115', N'息县', N'41', N'河南省', N'4115', N'信阳市', N'411528', N'息县', N'', N'', N'', N'', N'3', N'1', N''), (N'4116', N'41', N'00,41', N'周口市', N'41', N'河南省', N'4116', N'周口市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411602', N'4116', N'00,41,4116', N'川汇区', N'41', N'河南省', N'4116', N'周口市', N'411602', N'川汇区', N'', N'', N'', N'', N'3', N'1', N''), (N'411603', N'4116', N'00,41,4116', N'淮阳区', N'41', N'河南省', N'4116', N'周口市', N'411603', N'淮阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'411621', N'4116', N'00,41,4116', N'扶沟县', N'41', N'河南省', N'4116', N'周口市', N'411621', N'扶沟县', N'', N'', N'', N'', N'3', N'1', N''), (N'411622', N'4116', N'00,41,4116', N'西华县', N'41', N'河南省', N'4116', N'周口市', N'411622', N'西华县', N'', N'', N'', N'', N'3', N'1', N''), (N'411623', N'4116', N'00,41,4116', N'商水县', N'41', N'河南省', N'4116', N'周口市', N'411623', N'商水县', N'', N'', N'', N'', N'3', N'1', N''), (N'411624', N'4116', N'00,41,4116', N'沈丘县', N'41', N'河南省', N'4116', N'周口市', N'411624', N'沈丘县', N'', N'', N'', N'', N'3', N'1', N''), (N'411625', N'4116', N'00,41,4116', N'郸城县', N'41', N'河南省', N'4116', N'周口市', N'411625', N'郸城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411627', N'4116', N'00,41,4116', N'太康县', N'41', N'河南省', N'4116', N'周口市', N'411627', N'太康县', N'', N'', N'', N'', N'3', N'1', N''), (N'411628', N'4116', N'00,41,4116', N'鹿邑县', N'41', N'河南省', N'4116', N'周口市', N'411628', N'鹿邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'411681', N'4116', N'00,41,4116', N'项城市', N'41', N'河南省', N'4116', N'周口市', N'411681', N'项城市', N'', N'', N'', N'', N'3', N'1', N''), (N'4117', N'41', N'00,41', N'驻马店市', N'41', N'河南省', N'4117', N'驻马店市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411702', N'4117', N'00,41,4117', N'驿城区', N'41', N'河南省', N'4117', N'驻马店市', N'411702', N'驿城区', N'', N'', N'', N'', N'3', N'1', N''), (N'411721', N'4117', N'00,41,4117', N'西平县', N'41', N'河南省', N'4117', N'驻马店市', N'411721', N'西平县', N'', N'', N'', N'', N'3', N'1', N''), (N'411722', N'4117', N'00,41,4117', N'上蔡县', N'41', N'河南省', N'4117', N'驻马店市', N'411722', N'上蔡县', N'', N'', N'', N'', N'3', N'1', N''), (N'411723', N'4117', N'00,41,4117', N'平舆县', N'41', N'河南省', N'4117', N'驻马店市', N'411723', N'平舆县', N'', N'', N'', N'', N'3', N'1', N''), (N'411724', N'4117', N'00,41,4117', N'正阳县', N'41', N'河南省', N'4117', N'驻马店市', N'411724', N'正阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'411725', N'4117', N'00,41,4117', N'确山县', N'41', N'河南省', N'4117', N'驻马店市', N'411725', N'确山县', N'', N'', N'', N'', N'3', N'1', N''), (N'411726', N'4117', N'00,41,4117', N'泌阳县', N'41', N'河南省', N'4117', N'驻马店市', N'411726', N'泌阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'411727', N'4117', N'00,41,4117', N'汝南县', N'41', N'河南省', N'4117', N'驻马店市', N'411727', N'汝南县', N'', N'', N'', N'', N'3', N'1', N''), (N'411728', N'4117', N'00,41,4117', N'遂平县', N'41', N'河南省', N'4117', N'驻马店市', N'411728', N'遂平县', N'', N'', N'', N'', N'3', N'1', N''), (N'411729', N'4117', N'00,41,4117', N'新蔡县', N'41', N'河南省', N'4117', N'驻马店市', N'411729', N'新蔡县', N'', N'', N'', N'', N'3', N'1', N''), (N'4190', N'41', N'00,41', N'省直辖县级行政区', N'41', N'河南省', N'4190', N'省直辖县级行政区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'419001', N'4190', N'00,41,4190', N'济源市', N'41', N'河南省', N'4190', N'省直辖县级行政区', N'419001', N'济源市', N'', N'', N'', N'', N'3', N'1', N''), (N'42', N'00', N'00', N'湖北省', N'42', N'湖北省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4201', N'42', N'00,42', N'武汉市', N'42', N'湖北省', N'4201', N'武汉市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420102', N'4201', N'00,42,4201', N'江岸区', N'42', N'湖北省', N'4201', N'武汉市', N'420102', N'江岸区', N'', N'', N'', N'', N'3', N'1', N''), (N'420103', N'4201', N'00,42,4201', N'江汉区', N'42', N'湖北省', N'4201', N'武汉市', N'420103', N'江汉区', N'', N'', N'', N'', N'3', N'1', N'')
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'420104', N'4201', N'00,42,4201', N'硚口区', N'42', N'湖北省', N'4201', N'武汉市', N'420104', N'硚口区', N'', N'', N'', N'', N'3', N'1', N''), (N'420105', N'4201', N'00,42,4201', N'汉阳区', N'42', N'湖北省', N'4201', N'武汉市', N'420105', N'汉阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'420106', N'4201', N'00,42,4201', N'武昌区', N'42', N'湖北省', N'4201', N'武汉市', N'420106', N'武昌区', N'', N'', N'', N'', N'3', N'1', N''), (N'420107', N'4201', N'00,42,4201', N'青山区', N'42', N'湖北省', N'4201', N'武汉市', N'420107', N'青山区', N'', N'', N'', N'', N'3', N'1', N''), (N'420111', N'4201', N'00,42,4201', N'洪山区', N'42', N'湖北省', N'4201', N'武汉市', N'420111', N'洪山区', N'', N'', N'', N'', N'3', N'1', N''), (N'420112', N'4201', N'00,42,4201', N'东西湖区', N'42', N'湖北省', N'4201', N'武汉市', N'420112', N'东西湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'420113', N'4201', N'00,42,4201', N'汉南区', N'42', N'湖北省', N'4201', N'武汉市', N'420113', N'汉南区', N'', N'', N'', N'', N'3', N'1', N''), (N'420114', N'4201', N'00,42,4201', N'蔡甸区', N'42', N'湖北省', N'4201', N'武汉市', N'420114', N'蔡甸区', N'', N'', N'', N'', N'3', N'1', N''), (N'420115', N'4201', N'00,42,4201', N'江夏区', N'42', N'湖北省', N'4201', N'武汉市', N'420115', N'江夏区', N'', N'', N'', N'', N'3', N'1', N''), (N'420116', N'4201', N'00,42,4201', N'黄陂区', N'42', N'湖北省', N'4201', N'武汉市', N'420116', N'黄陂区', N'', N'', N'', N'', N'3', N'1', N''), (N'420117', N'4201', N'00,42,4201', N'新洲区', N'42', N'湖北省', N'4201', N'武汉市', N'420117', N'新洲区', N'', N'', N'', N'', N'3', N'1', N''), (N'4202', N'42', N'00,42', N'黄石市', N'42', N'湖北省', N'4202', N'黄石市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420202', N'4202', N'00,42,4202', N'黄石港区', N'42', N'湖北省', N'4202', N'黄石市', N'420202', N'黄石港区', N'', N'', N'', N'', N'3', N'1', N''), (N'420203', N'4202', N'00,42,4202', N'西塞山区', N'42', N'湖北省', N'4202', N'黄石市', N'420203', N'西塞山区', N'', N'', N'', N'', N'3', N'1', N''), (N'420204', N'4202', N'00,42,4202', N'下陆区', N'42', N'湖北省', N'4202', N'黄石市', N'420204', N'下陆区', N'', N'', N'', N'', N'3', N'1', N''), (N'420205', N'4202', N'00,42,4202', N'铁山区', N'42', N'湖北省', N'4202', N'黄石市', N'420205', N'铁山区', N'', N'', N'', N'', N'3', N'1', N''), (N'420222', N'4202', N'00,42,4202', N'阳新县', N'42', N'湖北省', N'4202', N'黄石市', N'420222', N'阳新县', N'', N'', N'', N'', N'3', N'1', N''), (N'420281', N'4202', N'00,42,4202', N'大冶市', N'42', N'湖北省', N'4202', N'黄石市', N'420281', N'大冶市', N'', N'', N'', N'', N'3', N'1', N''), (N'4203', N'42', N'00,42', N'十堰市', N'42', N'湖北省', N'4203', N'十堰市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420302', N'4203', N'00,42,4203', N'茅箭区', N'42', N'湖北省', N'4203', N'十堰市', N'420302', N'茅箭区', N'', N'', N'', N'', N'3', N'1', N''), (N'420303', N'4203', N'00,42,4203', N'张湾区', N'42', N'湖北省', N'4203', N'十堰市', N'420303', N'张湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'420304', N'4203', N'00,42,4203', N'郧阳区', N'42', N'湖北省', N'4203', N'十堰市', N'420304', N'郧阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'420322', N'4203', N'00,42,4203', N'郧西县', N'42', N'湖北省', N'4203', N'十堰市', N'420322', N'郧西县', N'', N'', N'', N'', N'3', N'1', N''), (N'420323', N'4203', N'00,42,4203', N'竹山县', N'42', N'湖北省', N'4203', N'十堰市', N'420323', N'竹山县', N'', N'', N'', N'', N'3', N'1', N''), (N'420324', N'4203', N'00,42,4203', N'竹溪县', N'42', N'湖北省', N'4203', N'十堰市', N'420324', N'竹溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'420325', N'4203', N'00,42,4203', N'房县', N'42', N'湖北省', N'4203', N'十堰市', N'420325', N'房县', N'', N'', N'', N'', N'3', N'1', N''), (N'420381', N'4203', N'00,42,4203', N'丹江口市', N'42', N'湖北省', N'4203', N'十堰市', N'420381', N'丹江口市', N'', N'', N'', N'', N'3', N'1', N''), (N'4205', N'42', N'00,42', N'宜昌市', N'42', N'湖北省', N'4205', N'宜昌市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420502', N'4205', N'00,42,4205', N'西陵区', N'42', N'湖北省', N'4205', N'宜昌市', N'420502', N'西陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'420503', N'4205', N'00,42,4205', N'伍家岗区', N'42', N'湖北省', N'4205', N'宜昌市', N'420503', N'伍家岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'420504', N'4205', N'00,42,4205', N'点军区', N'42', N'湖北省', N'4205', N'宜昌市', N'420504', N'点军区', N'', N'', N'', N'', N'3', N'1', N''), (N'420505', N'4205', N'00,42,4205', N'猇亭区', N'42', N'湖北省', N'4205', N'宜昌市', N'420505', N'猇亭区', N'', N'', N'', N'', N'3', N'1', N''), (N'420506', N'4205', N'00,42,4205', N'夷陵区', N'42', N'湖北省', N'4205', N'宜昌市', N'420506', N'夷陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'420525', N'4205', N'00,42,4205', N'远安县', N'42', N'湖北省', N'4205', N'宜昌市', N'420525', N'远安县', N'', N'', N'', N'', N'3', N'1', N''), (N'420526', N'4205', N'00,42,4205', N'兴山县', N'42', N'湖北省', N'4205', N'宜昌市', N'420526', N'兴山县', N'', N'', N'', N'', N'3', N'1', N''), (N'420527', N'4205', N'00,42,4205', N'秭归县', N'42', N'湖北省', N'4205', N'宜昌市', N'420527', N'秭归县', N'', N'', N'', N'', N'3', N'1', N''), (N'420528', N'4205', N'00,42,4205', N'长阳土家族自治县', N'42', N'湖北省', N'4205', N'宜昌市', N'420528', N'长阳土家族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'420529', N'4205', N'00,42,4205', N'五峰土家族自治县', N'42', N'湖北省', N'4205', N'宜昌市', N'420529', N'五峰土家族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'420581', N'4205', N'00,42,4205', N'宜都市', N'42', N'湖北省', N'4205', N'宜昌市', N'420581', N'宜都市', N'', N'', N'', N'', N'3', N'1', N''), (N'420582', N'4205', N'00,42,4205', N'当阳市', N'42', N'湖北省', N'4205', N'宜昌市', N'420582', N'当阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'420583', N'4205', N'00,42,4205', N'枝江市', N'42', N'湖北省', N'4205', N'宜昌市', N'420583', N'枝江市', N'', N'', N'', N'', N'3', N'1', N''), (N'4206', N'42', N'00,42', N'襄阳市', N'42', N'湖北省', N'4206', N'襄阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420602', N'4206', N'00,42,4206', N'襄城区', N'42', N'湖北省', N'4206', N'襄阳市', N'420602', N'襄城区', N'', N'', N'', N'', N'3', N'1', N''), (N'420606', N'4206', N'00,42,4206', N'樊城区', N'42', N'湖北省', N'4206', N'襄阳市', N'420606', N'樊城区', N'', N'', N'', N'', N'3', N'1', N''), (N'420607', N'4206', N'00,42,4206', N'襄州区', N'42', N'湖北省', N'4206', N'襄阳市', N'420607', N'襄州区', N'', N'', N'', N'', N'3', N'1', N''), (N'420624', N'4206', N'00,42,4206', N'南漳县', N'42', N'湖北省', N'4206', N'襄阳市', N'420624', N'南漳县', N'', N'', N'', N'', N'3', N'1', N''), (N'420625', N'4206', N'00,42,4206', N'谷城县', N'42', N'湖北省', N'4206', N'襄阳市', N'420625', N'谷城县', N'', N'', N'', N'', N'3', N'1', N''), (N'420626', N'4206', N'00,42,4206', N'保康县', N'42', N'湖北省', N'4206', N'襄阳市', N'420626', N'保康县', N'', N'', N'', N'', N'3', N'1', N''), (N'420682', N'4206', N'00,42,4206', N'老河口市', N'42', N'湖北省', N'4206', N'襄阳市', N'420682', N'老河口市', N'', N'', N'', N'', N'3', N'1', N''), (N'420683', N'4206', N'00,42,4206', N'枣阳市', N'42', N'湖北省', N'4206', N'襄阳市', N'420683', N'枣阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'420684', N'4206', N'00,42,4206', N'宜城市', N'42', N'湖北省', N'4206', N'襄阳市', N'420684', N'宜城市', N'', N'', N'', N'', N'3', N'1', N''), (N'4207', N'42', N'00,42', N'鄂州市', N'42', N'湖北省', N'4207', N'鄂州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420702', N'4207', N'00,42,4207', N'梁子湖区', N'42', N'湖北省', N'4207', N'鄂州市', N'420702', N'梁子湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'420703', N'4207', N'00,42,4207', N'华容区', N'42', N'湖北省', N'4207', N'鄂州市', N'420703', N'华容区', N'', N'', N'', N'', N'3', N'1', N''), (N'420704', N'4207', N'00,42,4207', N'鄂城区', N'42', N'湖北省', N'4207', N'鄂州市', N'420704', N'鄂城区', N'', N'', N'', N'', N'3', N'1', N''), (N'4208', N'42', N'00,42', N'荆门市', N'42', N'湖北省', N'4208', N'荆门市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420802', N'4208', N'00,42,4208', N'东宝区', N'42', N'湖北省', N'4208', N'荆门市', N'420802', N'东宝区', N'', N'', N'', N'', N'3', N'1', N''), (N'420804', N'4208', N'00,42,4208', N'掇刀区', N'42', N'湖北省', N'4208', N'荆门市', N'420804', N'掇刀区', N'', N'', N'', N'', N'3', N'1', N''), (N'420822', N'4208', N'00,42,4208', N'沙洋县', N'42', N'湖北省', N'4208', N'荆门市', N'420822', N'沙洋县', N'', N'', N'', N'', N'3', N'1', N''), (N'420881', N'4208', N'00,42,4208', N'钟祥市', N'42', N'湖北省', N'4208', N'荆门市', N'420881', N'钟祥市', N'', N'', N'', N'', N'3', N'1', N''), (N'420882', N'4208', N'00,42,4208', N'京山市', N'42', N'湖北省', N'4208', N'荆门市', N'420882', N'京山市', N'', N'', N'', N'', N'3', N'1', N''), (N'4209', N'42', N'00,42', N'孝感市', N'42', N'湖北省', N'4209', N'孝感市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420902', N'4209', N'00,42,4209', N'孝南区', N'42', N'湖北省', N'4209', N'孝感市', N'420902', N'孝南区', N'', N'', N'', N'', N'3', N'1', N''), (N'420921', N'4209', N'00,42,4209', N'孝昌县', N'42', N'湖北省', N'4209', N'孝感市', N'420921', N'孝昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'420922', N'4209', N'00,42,4209', N'大悟县', N'42', N'湖北省', N'4209', N'孝感市', N'420922', N'大悟县', N'', N'', N'', N'', N'3', N'1', N''), (N'420923', N'4209', N'00,42,4209', N'云梦县', N'42', N'湖北省', N'4209', N'孝感市', N'420923', N'云梦县', N'', N'', N'', N'', N'3', N'1', N''), (N'420981', N'4209', N'00,42,4209', N'应城市', N'42', N'湖北省', N'4209', N'孝感市', N'420981', N'应城市', N'', N'', N'', N'', N'3', N'1', N''), (N'420982', N'4209', N'00,42,4209', N'安陆市', N'42', N'湖北省', N'4209', N'孝感市', N'420982', N'安陆市', N'', N'', N'', N'', N'3', N'1', N''), (N'420984', N'4209', N'00,42,4209', N'汉川市', N'42', N'湖北省', N'4209', N'孝感市', N'420984', N'汉川市', N'', N'', N'', N'', N'3', N'1', N''), (N'4210', N'42', N'00,42', N'荆州市', N'42', N'湖北省', N'4210', N'荆州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'421002', N'4210', N'00,42,4210', N'沙市区', N'42', N'湖北省', N'4210', N'荆州市', N'421002', N'沙市区', N'', N'', N'', N'', N'3', N'1', N''), (N'421003', N'4210', N'00,42,4210', N'荆州区', N'42', N'湖北省', N'4210', N'荆州市', N'421003', N'荆州区', N'', N'', N'', N'', N'3', N'1', N''), (N'421022', N'4210', N'00,42,4210', N'公安县', N'42', N'湖北省', N'4210', N'荆州市', N'421022', N'公安县', N'', N'', N'', N'', N'3', N'1', N''), (N'421023', N'4210', N'00,42,4210', N'监利县', N'42', N'湖北省', N'4210', N'荆州市', N'421023', N'监利县', N'', N'', N'', N'', N'3', N'1', N''), (N'421024', N'4210', N'00,42,4210', N'江陵县', N'42', N'湖北省', N'4210', N'荆州市', N'421024', N'江陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'421081', N'4210', N'00,42,4210', N'石首市', N'42', N'湖北省', N'4210', N'荆州市', N'421081', N'石首市', N'', N'', N'', N'', N'3', N'1', N''), (N'421083', N'4210', N'00,42,4210', N'洪湖市', N'42', N'湖北省', N'4210', N'荆州市', N'421083', N'洪湖市', N'', N'', N'', N'', N'3', N'1', N''), (N'421087', N'4210', N'00,42,4210', N'松滋市', N'42', N'湖北省', N'4210', N'荆州市', N'421087', N'松滋市', N'', N'', N'', N'', N'3', N'1', N''), (N'4211', N'42', N'00,42', N'黄冈市', N'42', N'湖北省', N'4211', N'黄冈市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'421102', N'4211', N'00,42,4211', N'黄州区', N'42', N'湖北省', N'4211', N'黄冈市', N'421102', N'黄州区', N'', N'', N'', N'', N'3', N'1', N''), (N'421121', N'4211', N'00,42,4211', N'团风县', N'42', N'湖北省', N'4211', N'黄冈市', N'421121', N'团风县', N'', N'', N'', N'', N'3', N'1', N''), (N'421122', N'4211', N'00,42,4211', N'红安县', N'42', N'湖北省', N'4211', N'黄冈市', N'421122', N'红安县', N'', N'', N'', N'', N'3', N'1', N''), (N'421123', N'4211', N'00,42,4211', N'罗田县', N'42', N'湖北省', N'4211', N'黄冈市', N'421123', N'罗田县', N'', N'', N'', N'', N'3', N'1', N''), (N'421124', N'4211', N'00,42,4211', N'英山县', N'42', N'湖北省', N'4211', N'黄冈市', N'421124', N'英山县', N'', N'', N'', N'', N'3', N'1', N''), (N'421125', N'4211', N'00,42,4211', N'浠水县', N'42', N'湖北省', N'4211', N'黄冈市', N'421125', N'浠水县', N'', N'', N'', N'', N'3', N'1', N''), (N'421126', N'4211', N'00,42,4211', N'蕲春县', N'42', N'湖北省', N'4211', N'黄冈市', N'421126', N'蕲春县', N'', N'', N'', N'', N'3', N'1', N''), (N'421127', N'4211', N'00,42,4211', N'黄梅县', N'42', N'湖北省', N'4211', N'黄冈市', N'421127', N'黄梅县', N'', N'', N'', N'', N'3', N'1', N''), (N'421181', N'4211', N'00,42,4211', N'麻城市', N'42', N'湖北省', N'4211', N'黄冈市', N'421181', N'麻城市', N'', N'', N'', N'', N'3', N'1', N''), (N'421182', N'4211', N'00,42,4211', N'武穴市', N'42', N'湖北省', N'4211', N'黄冈市', N'421182', N'武穴市', N'', N'', N'', N'', N'3', N'1', N''), (N'4212', N'42', N'00,42', N'咸宁市', N'42', N'湖北省', N'4212', N'咸宁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'421202', N'4212', N'00,42,4212', N'咸安区', N'42', N'湖北省', N'4212', N'咸宁市', N'421202', N'咸安区', N'', N'', N'', N'', N'3', N'1', N''), (N'421221', N'4212', N'00,42,4212', N'嘉鱼县', N'42', N'湖北省', N'4212', N'咸宁市', N'421221', N'嘉鱼县', N'', N'', N'', N'', N'3', N'1', N''), (N'421222', N'4212', N'00,42,4212', N'通城县', N'42', N'湖北省', N'4212', N'咸宁市', N'421222', N'通城县', N'', N'', N'', N'', N'3', N'1', N''), (N'421223', N'4212', N'00,42,4212', N'崇阳县', N'42', N'湖北省', N'4212', N'咸宁市', N'421223', N'崇阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'421224', N'4212', N'00,42,4212', N'通山县', N'42', N'湖北省', N'4212', N'咸宁市', N'421224', N'通山县', N'', N'', N'', N'', N'3', N'1', N''), (N'421281', N'4212', N'00,42,4212', N'赤壁市', N'42', N'湖北省', N'4212', N'咸宁市', N'421281', N'赤壁市', N'', N'', N'', N'', N'3', N'1', N''), (N'4213', N'42', N'00,42', N'随州市', N'42', N'湖北省', N'4213', N'随州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'421303', N'4213', N'00,42,4213', N'曾都区', N'42', N'湖北省', N'4213', N'随州市', N'421303', N'曾都区', N'', N'', N'', N'', N'3', N'1', N''), (N'421321', N'4213', N'00,42,4213', N'随县', N'42', N'湖北省', N'4213', N'随州市', N'421321', N'随县', N'', N'', N'', N'', N'3', N'1', N''), (N'421381', N'4213', N'00,42,4213', N'广水市', N'42', N'湖北省', N'4213', N'随州市', N'421381', N'广水市', N'', N'', N'', N'', N'3', N'1', N''), (N'4228', N'42', N'00,42', N'恩施土家族苗族自治州', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'422801', N'4228', N'00,42,4228', N'恩施市', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422801', N'恩施市', N'', N'', N'', N'', N'3', N'1', N''), (N'422802', N'4228', N'00,42,4228', N'利川市', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422802', N'利川市', N'', N'', N'', N'', N'3', N'1', N''), (N'422822', N'4228', N'00,42,4228', N'建始县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422822', N'建始县', N'', N'', N'', N'', N'3', N'1', N''), (N'422823', N'4228', N'00,42,4228', N'巴东县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422823', N'巴东县', N'', N'', N'', N'', N'3', N'1', N''), (N'422825', N'4228', N'00,42,4228', N'宣恩县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422825', N'宣恩县', N'', N'', N'', N'', N'3', N'1', N''), (N'422826', N'4228', N'00,42,4228', N'咸丰县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422826', N'咸丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'422827', N'4228', N'00,42,4228', N'来凤县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422827', N'来凤县', N'', N'', N'', N'', N'3', N'1', N''), (N'422828', N'4228', N'00,42,4228', N'鹤峰县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422828', N'鹤峰县', N'', N'', N'', N'', N'3', N'1', N''), (N'4290', N'42', N'00,42', N'省直辖县级行政区', N'42', N'湖北省', N'4290', N'省直辖县级行政区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'429004', N'4290', N'00,42,4290', N'仙桃市', N'42', N'湖北省', N'4290', N'省直辖县级行政区', N'429004', N'仙桃市', N'', N'', N'', N'', N'3', N'1', N''), (N'429005', N'4290', N'00,42,4290', N'潜江市', N'42', N'湖北省', N'4290', N'省直辖县级行政区', N'429005', N'潜江市', N'', N'', N'', N'', N'3', N'1', N''), (N'429006', N'4290', N'00,42,4290', N'天门市', N'42', N'湖北省', N'4290', N'省直辖县级行政区', N'429006', N'天门市', N'', N'', N'', N'', N'3', N'1', N''), (N'429021', N'4290', N'00,42,4290', N'神农架林区', N'42', N'湖北省', N'4290', N'省直辖县级行政区', N'429021', N'神农架林区', N'', N'', N'', N'', N'3', N'1', N''), (N'43', N'00', N'00', N'湖南省', N'43', N'湖南省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4301', N'43', N'00,43', N'长沙市', N'43', N'湖南省', N'4301', N'长沙市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430102', N'4301', N'00,43,4301', N'芙蓉区', N'43', N'湖南省', N'4301', N'长沙市', N'430102', N'芙蓉区', N'', N'', N'', N'', N'3', N'1', N''), (N'430103', N'4301', N'00,43,4301', N'天心区', N'43', N'湖南省', N'4301', N'长沙市', N'430103', N'天心区', N'', N'', N'', N'', N'3', N'1', N''), (N'430104', N'4301', N'00,43,4301', N'岳麓区', N'43', N'湖南省', N'4301', N'长沙市', N'430104', N'岳麓区', N'', N'', N'', N'', N'3', N'1', N''), (N'430105', N'4301', N'00,43,4301', N'开福区', N'43', N'湖南省', N'4301', N'长沙市', N'430105', N'开福区', N'', N'', N'', N'', N'3', N'1', N''), (N'430111', N'4301', N'00,43,4301', N'雨花区', N'43', N'湖南省', N'4301', N'长沙市', N'430111', N'雨花区', N'', N'', N'', N'', N'3', N'1', N''), (N'430112', N'4301', N'00,43,4301', N'望城区', N'43', N'湖南省', N'4301', N'长沙市', N'430112', N'望城区', N'', N'', N'', N'', N'3', N'1', N''), (N'430121', N'4301', N'00,43,4301', N'长沙县', N'43', N'湖南省', N'4301', N'长沙市', N'430121', N'长沙县', N'', N'', N'', N'', N'3', N'1', N''), (N'430181', N'4301', N'00,43,4301', N'浏阳市', N'43', N'湖南省', N'4301', N'长沙市', N'430181', N'浏阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'430182', N'4301', N'00,43,4301', N'宁乡市', N'43', N'湖南省', N'4301', N'长沙市', N'430182', N'宁乡市', N'', N'', N'', N'', N'3', N'1', N''), (N'4302', N'43', N'00,43', N'株洲市', N'43', N'湖南省', N'4302', N'株洲市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430202', N'4302', N'00,43,4302', N'荷塘区', N'43', N'湖南省', N'4302', N'株洲市', N'430202', N'荷塘区', N'', N'', N'', N'', N'3', N'1', N''), (N'430203', N'4302', N'00,43,4302', N'芦淞区', N'43', N'湖南省', N'4302', N'株洲市', N'430203', N'芦淞区', N'', N'', N'', N'', N'3', N'1', N''), (N'430204', N'4302', N'00,43,4302', N'石峰区', N'43', N'湖南省', N'4302', N'株洲市', N'430204', N'石峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'430211', N'4302', N'00,43,4302', N'天元区', N'43', N'湖南省', N'4302', N'株洲市', N'430211', N'天元区', N'', N'', N'', N'', N'3', N'1', N''), (N'430212', N'4302', N'00,43,4302', N'渌口区', N'43', N'湖南省', N'4302', N'株洲市', N'430212', N'渌口区', N'', N'', N'', N'', N'3', N'1', N''), (N'430223', N'4302', N'00,43,4302', N'攸县', N'43', N'湖南省', N'4302', N'株洲市', N'430223', N'攸县', N'', N'', N'', N'', N'3', N'1', N''), (N'430224', N'4302', N'00,43,4302', N'茶陵县', N'43', N'湖南省', N'4302', N'株洲市', N'430224', N'茶陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'430225', N'4302', N'00,43,4302', N'炎陵县', N'43', N'湖南省', N'4302', N'株洲市', N'430225', N'炎陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'430281', N'4302', N'00,43,4302', N'醴陵市', N'43', N'湖南省', N'4302', N'株洲市', N'430281', N'醴陵市', N'', N'', N'', N'', N'3', N'1', N''), (N'4303', N'43', N'00,43', N'湘潭市', N'43', N'湖南省', N'4303', N'湘潭市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430302', N'4303', N'00,43,4303', N'雨湖区', N'43', N'湖南省', N'4303', N'湘潭市', N'430302', N'雨湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'430304', N'4303', N'00,43,4303', N'岳塘区', N'43', N'湖南省', N'4303', N'湘潭市', N'430304', N'岳塘区', N'', N'', N'', N'', N'3', N'1', N''), (N'430321', N'4303', N'00,43,4303', N'湘潭县', N'43', N'湖南省', N'4303', N'湘潭市', N'430321', N'湘潭县', N'', N'', N'', N'', N'3', N'1', N''), (N'430381', N'4303', N'00,43,4303', N'湘乡市', N'43', N'湖南省', N'4303', N'湘潭市', N'430381', N'湘乡市', N'', N'', N'', N'', N'3', N'1', N''), (N'430382', N'4303', N'00,43,4303', N'韶山市', N'43', N'湖南省', N'4303', N'湘潭市', N'430382', N'韶山市', N'', N'', N'', N'', N'3', N'1', N''), (N'4304', N'43', N'00,43', N'衡阳市', N'43', N'湖南省', N'4304', N'衡阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430405', N'4304', N'00,43,4304', N'珠晖区', N'43', N'湖南省', N'4304', N'衡阳市', N'430405', N'珠晖区', N'', N'', N'', N'', N'3', N'1', N''), (N'430406', N'4304', N'00,43,4304', N'雁峰区', N'43', N'湖南省', N'4304', N'衡阳市', N'430406', N'雁峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'430407', N'4304', N'00,43,4304', N'石鼓区', N'43', N'湖南省', N'4304', N'衡阳市', N'430407', N'石鼓区', N'', N'', N'', N'', N'3', N'1', N''), (N'430408', N'4304', N'00,43,4304', N'蒸湘区', N'43', N'湖南省', N'4304', N'衡阳市', N'430408', N'蒸湘区', N'', N'', N'', N'', N'3', N'1', N''), (N'430412', N'4304', N'00,43,4304', N'南岳区', N'43', N'湖南省', N'4304', N'衡阳市', N'430412', N'南岳区', N'', N'', N'', N'', N'3', N'1', N''), (N'430421', N'4304', N'00,43,4304', N'衡阳县', N'43', N'湖南省', N'4304', N'衡阳市', N'430421', N'衡阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'430422', N'4304', N'00,43,4304', N'衡南县', N'43', N'湖南省', N'4304', N'衡阳市', N'430422', N'衡南县', N'', N'', N'', N'', N'3', N'1', N''), (N'430423', N'4304', N'00,43,4304', N'衡山县', N'43', N'湖南省', N'4304', N'衡阳市', N'430423', N'衡山县', N'', N'', N'', N'', N'3', N'1', N''), (N'430424', N'4304', N'00,43,4304', N'衡东县', N'43', N'湖南省', N'4304', N'衡阳市', N'430424', N'衡东县', N'', N'', N'', N'', N'3', N'1', N''), (N'430426', N'4304', N'00,43,4304', N'祁东县', N'43', N'湖南省', N'4304', N'衡阳市', N'430426', N'祁东县', N'', N'', N'', N'', N'3', N'1', N''), (N'430481', N'4304', N'00,43,4304', N'耒阳市', N'43', N'湖南省', N'4304', N'衡阳市', N'430481', N'耒阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'430482', N'4304', N'00,43,4304', N'常宁市', N'43', N'湖南省', N'4304', N'衡阳市', N'430482', N'常宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'4305', N'43', N'00,43', N'邵阳市', N'43', N'湖南省', N'4305', N'邵阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430502', N'4305', N'00,43,4305', N'双清区', N'43', N'湖南省', N'4305', N'邵阳市', N'430502', N'双清区', N'', N'', N'', N'', N'3', N'1', N''), (N'430503', N'4305', N'00,43,4305', N'大祥区', N'43', N'湖南省', N'4305', N'邵阳市', N'430503', N'大祥区', N'', N'', N'', N'', N'3', N'1', N''), (N'430511', N'4305', N'00,43,4305', N'北塔区', N'43', N'湖南省', N'4305', N'邵阳市', N'430511', N'北塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'430522', N'4305', N'00,43,4305', N'新邵县', N'43', N'湖南省', N'4305', N'邵阳市', N'430522', N'新邵县', N'', N'', N'', N'', N'3', N'1', N''), (N'430523', N'4305', N'00,43,4305', N'邵阳县', N'43', N'湖南省', N'4305', N'邵阳市', N'430523', N'邵阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'430524', N'4305', N'00,43,4305', N'隆回县', N'43', N'湖南省', N'4305', N'邵阳市', N'430524', N'隆回县', N'', N'', N'', N'', N'3', N'1', N''), (N'430525', N'4305', N'00,43,4305', N'洞口县', N'43', N'湖南省', N'4305', N'邵阳市', N'430525', N'洞口县', N'', N'', N'', N'', N'3', N'1', N''), (N'430527', N'4305', N'00,43,4305', N'绥宁县', N'43', N'湖南省', N'4305', N'邵阳市', N'430527', N'绥宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'430528', N'4305', N'00,43,4305', N'新宁县', N'43', N'湖南省', N'4305', N'邵阳市', N'430528', N'新宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'430529', N'4305', N'00,43,4305', N'城步苗族自治县', N'43', N'湖南省', N'4305', N'邵阳市', N'430529', N'城步苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'430581', N'4305', N'00,43,4305', N'武冈市', N'43', N'湖南省', N'4305', N'邵阳市', N'430581', N'武冈市', N'', N'', N'', N'', N'3', N'1', N''), (N'430582', N'4305', N'00,43,4305', N'邵东市', N'43', N'湖南省', N'4305', N'邵阳市', N'430582', N'邵东市', N'', N'', N'', N'', N'3', N'1', N''), (N'4306', N'43', N'00,43', N'岳阳市', N'43', N'湖南省', N'4306', N'岳阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430602', N'4306', N'00,43,4306', N'岳阳楼区', N'43', N'湖南省', N'4306', N'岳阳市', N'430602', N'岳阳楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'430603', N'4306', N'00,43,4306', N'云溪区', N'43', N'湖南省', N'4306', N'岳阳市', N'430603', N'云溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'430611', N'4306', N'00,43,4306', N'君山区', N'43', N'湖南省', N'4306', N'岳阳市', N'430611', N'君山区', N'', N'', N'', N'', N'3', N'1', N''), (N'430621', N'4306', N'00,43,4306', N'岳阳县', N'43', N'湖南省', N'4306', N'岳阳市', N'430621', N'岳阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'430623', N'4306', N'00,43,4306', N'华容县', N'43', N'湖南省', N'4306', N'岳阳市', N'430623', N'华容县', N'', N'', N'', N'', N'3', N'1', N''), (N'430624', N'4306', N'00,43,4306', N'湘阴县', N'43', N'湖南省', N'4306', N'岳阳市', N'430624', N'湘阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'430626', N'4306', N'00,43,4306', N'平江县', N'43', N'湖南省', N'4306', N'岳阳市', N'430626', N'平江县', N'', N'', N'', N'', N'3', N'1', N''), (N'430681', N'4306', N'00,43,4306', N'汨罗市', N'43', N'湖南省', N'4306', N'岳阳市', N'430681', N'汨罗市', N'', N'', N'', N'', N'3', N'1', N''), (N'430682', N'4306', N'00,43,4306', N'临湘市', N'43', N'湖南省', N'4306', N'岳阳市', N'430682', N'临湘市', N'', N'', N'', N'', N'3', N'1', N''), (N'4307', N'43', N'00,43', N'常德市', N'43', N'湖南省', N'4307', N'常德市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430702', N'4307', N'00,43,4307', N'武陵区', N'43', N'湖南省', N'4307', N'常德市', N'430702', N'武陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'430703', N'4307', N'00,43,4307', N'鼎城区', N'43', N'湖南省', N'4307', N'常德市', N'430703', N'鼎城区', N'', N'', N'', N'', N'3', N'1', N''), (N'430721', N'4307', N'00,43,4307', N'安乡县', N'43', N'湖南省', N'4307', N'常德市', N'430721', N'安乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'430722', N'4307', N'00,43,4307', N'汉寿县', N'43', N'湖南省', N'4307', N'常德市', N'430722', N'汉寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'430723', N'4307', N'00,43,4307', N'澧县', N'43', N'湖南省', N'4307', N'常德市', N'430723', N'澧县', N'', N'', N'', N'', N'3', N'1', N''), (N'430724', N'4307', N'00,43,4307', N'临澧县', N'43', N'湖南省', N'4307', N'常德市', N'430724', N'临澧县', N'', N'', N'', N'', N'3', N'1', N''), (N'430725', N'4307', N'00,43,4307', N'桃源县', N'43', N'湖南省', N'4307', N'常德市', N'430725', N'桃源县', N'', N'', N'', N'', N'3', N'1', N''), (N'430726', N'4307', N'00,43,4307', N'石门县', N'43', N'湖南省', N'4307', N'常德市', N'430726', N'石门县', N'', N'', N'', N'', N'3', N'1', N''), (N'430781', N'4307', N'00,43,4307', N'津市市', N'43', N'湖南省', N'4307', N'常德市', N'430781', N'津市市', N'', N'', N'', N'', N'3', N'1', N''), (N'4308', N'43', N'00,43', N'张家界市', N'43', N'湖南省', N'4308', N'张家界市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430802', N'4308', N'00,43,4308', N'永定区', N'43', N'湖南省', N'4308', N'张家界市', N'430802', N'永定区', N'', N'', N'', N'', N'3', N'1', N''), (N'430811', N'4308', N'00,43,4308', N'武陵源区', N'43', N'湖南省', N'4308', N'张家界市', N'430811', N'武陵源区', N'', N'', N'', N'', N'3', N'1', N''), (N'430821', N'4308', N'00,43,4308', N'慈利县', N'43', N'湖南省', N'4308', N'张家界市', N'430821', N'慈利县', N'', N'', N'', N'', N'3', N'1', N''), (N'430822', N'4308', N'00,43,4308', N'桑植县', N'43', N'湖南省', N'4308', N'张家界市', N'430822', N'桑植县', N'', N'', N'', N'', N'3', N'1', N''), (N'4309', N'43', N'00,43', N'益阳市', N'43', N'湖南省', N'4309', N'益阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430902', N'4309', N'00,43,4309', N'资阳区', N'43', N'湖南省', N'4309', N'益阳市', N'430902', N'资阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'430903', N'4309', N'00,43,4309', N'赫山区', N'43', N'湖南省', N'4309', N'益阳市', N'430903', N'赫山区', N'', N'', N'', N'', N'3', N'1', N''), (N'430921', N'4309', N'00,43,4309', N'南县', N'43', N'湖南省', N'4309', N'益阳市', N'430921', N'南县', N'', N'', N'', N'', N'3', N'1', N''), (N'430922', N'4309', N'00,43,4309', N'桃江县', N'43', N'湖南省', N'4309', N'益阳市', N'430922', N'桃江县', N'', N'', N'', N'', N'3', N'1', N''), (N'430923', N'4309', N'00,43,4309', N'安化县', N'43', N'湖南省', N'4309', N'益阳市', N'430923', N'安化县', N'', N'', N'', N'', N'3', N'1', N''), (N'430981', N'4309', N'00,43,4309', N'沅江市', N'43', N'湖南省', N'4309', N'益阳市', N'430981', N'沅江市', N'', N'', N'', N'', N'3', N'1', N''), (N'4310', N'43', N'00,43', N'郴州市', N'43', N'湖南省', N'4310', N'郴州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'431002', N'4310', N'00,43,4310', N'北湖区', N'43', N'湖南省', N'4310', N'郴州市', N'431002', N'北湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'431003', N'4310', N'00,43,4310', N'苏仙区', N'43', N'湖南省', N'4310', N'郴州市', N'431003', N'苏仙区', N'', N'', N'', N'', N'3', N'1', N''), (N'431021', N'4310', N'00,43,4310', N'桂阳县', N'43', N'湖南省', N'4310', N'郴州市', N'431021', N'桂阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'431022', N'4310', N'00,43,4310', N'宜章县', N'43', N'湖南省', N'4310', N'郴州市', N'431022', N'宜章县', N'', N'', N'', N'', N'3', N'1', N''), (N'431023', N'4310', N'00,43,4310', N'永兴县', N'43', N'湖南省', N'4310', N'郴州市', N'431023', N'永兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'431024', N'4310', N'00,43,4310', N'嘉禾县', N'43', N'湖南省', N'4310', N'郴州市', N'431024', N'嘉禾县', N'', N'', N'', N'', N'3', N'1', N''), (N'431025', N'4310', N'00,43,4310', N'临武县', N'43', N'湖南省', N'4310', N'郴州市', N'431025', N'临武县', N'', N'', N'', N'', N'3', N'1', N''), (N'431026', N'4310', N'00,43,4310', N'汝城县', N'43', N'湖南省', N'4310', N'郴州市', N'431026', N'汝城县', N'', N'', N'', N'', N'3', N'1', N''), (N'431027', N'4310', N'00,43,4310', N'桂东县', N'43', N'湖南省', N'4310', N'郴州市', N'431027', N'桂东县', N'', N'', N'', N'', N'3', N'1', N''), (N'431028', N'4310', N'00,43,4310', N'安仁县', N'43', N'湖南省', N'4310', N'郴州市', N'431028', N'安仁县', N'', N'', N'', N'', N'3', N'1', N''), (N'431081', N'4310', N'00,43,4310', N'资兴市', N'43', N'湖南省', N'4310', N'郴州市', N'431081', N'资兴市', N'', N'', N'', N'', N'3', N'1', N''), (N'4311', N'43', N'00,43', N'永州市', N'43', N'湖南省', N'4311', N'永州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'431102', N'4311', N'00,43,4311', N'零陵区', N'43', N'湖南省', N'4311', N'永州市', N'431102', N'零陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'431103', N'4311', N'00,43,4311', N'冷水滩区', N'43', N'湖南省', N'4311', N'永州市', N'431103', N'冷水滩区', N'', N'', N'', N'', N'3', N'1', N''), (N'431121', N'4311', N'00,43,4311', N'祁阳县', N'43', N'湖南省', N'4311', N'永州市', N'431121', N'祁阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'431122', N'4311', N'00,43,4311', N'东安县', N'43', N'湖南省', N'4311', N'永州市', N'431122', N'东安县', N'', N'', N'', N'', N'3', N'1', N''), (N'431123', N'4311', N'00,43,4311', N'双牌县', N'43', N'湖南省', N'4311', N'永州市', N'431123', N'双牌县', N'', N'', N'', N'', N'3', N'1', N''), (N'431124', N'4311', N'00,43,4311', N'道县', N'43', N'湖南省', N'4311', N'永州市', N'431124', N'道县', N'', N'', N'', N'', N'3', N'1', N''), (N'431125', N'4311', N'00,43,4311', N'江永县', N'43', N'湖南省', N'4311', N'永州市', N'431125', N'江永县', N'', N'', N'', N'', N'3', N'1', N''), (N'431126', N'4311', N'00,43,4311', N'宁远县', N'43', N'湖南省', N'4311', N'永州市', N'431126', N'宁远县', N'', N'', N'', N'', N'3', N'1', N''), (N'431127', N'4311', N'00,43,4311', N'蓝山县', N'43', N'湖南省', N'4311', N'永州市', N'431127', N'蓝山县', N'', N'', N'', N'', N'3', N'1', N''), (N'431128', N'4311', N'00,43,4311', N'新田县', N'43', N'湖南省', N'4311', N'永州市', N'431128', N'新田县', N'', N'', N'', N'', N'3', N'1', N''), (N'431129', N'4311', N'00,43,4311', N'江华瑶族自治县', N'43', N'湖南省', N'4311', N'永州市', N'431129', N'江华瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'4312', N'43', N'00,43', N'怀化市', N'43', N'湖南省', N'4312', N'怀化市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'431202', N'4312', N'00,43,4312', N'鹤城区', N'43', N'湖南省', N'4312', N'怀化市', N'431202', N'鹤城区', N'', N'', N'', N'', N'3', N'1', N''), (N'431221', N'4312', N'00,43,4312', N'中方县', N'43', N'湖南省', N'4312', N'怀化市', N'431221', N'中方县', N'', N'', N'', N'', N'3', N'1', N''), (N'431222', N'4312', N'00,43,4312', N'沅陵县', N'43', N'湖南省', N'4312', N'怀化市', N'431222', N'沅陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'431223', N'4312', N'00,43,4312', N'辰溪县', N'43', N'湖南省', N'4312', N'怀化市', N'431223', N'辰溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'431224', N'4312', N'00,43,4312', N'溆浦县', N'43', N'湖南省', N'4312', N'怀化市', N'431224', N'溆浦县', N'', N'', N'', N'', N'3', N'1', N''), (N'431225', N'4312', N'00,43,4312', N'会同县', N'43', N'湖南省', N'4312', N'怀化市', N'431225', N'会同县', N'', N'', N'', N'', N'3', N'1', N''), (N'431226', N'4312', N'00,43,4312', N'麻阳苗族自治县', N'43', N'湖南省', N'4312', N'怀化市', N'431226', N'麻阳苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'431227', N'4312', N'00,43,4312', N'新晃侗族自治县', N'43', N'湖南省', N'4312', N'怀化市', N'431227', N'新晃侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'431228', N'4312', N'00,43,4312', N'芷江侗族自治县', N'43', N'湖南省', N'4312', N'怀化市', N'431228', N'芷江侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'431229', N'4312', N'00,43,4312', N'靖州苗族侗族自治县', N'43', N'湖南省', N'4312', N'怀化市', N'431229', N'靖州苗族侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'431230', N'4312', N'00,43,4312', N'通道侗族自治县', N'43', N'湖南省', N'4312', N'怀化市', N'431230', N'通道侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'431281', N'4312', N'00,43,4312', N'洪江市', N'43', N'湖南省', N'4312', N'怀化市', N'431281', N'洪江市', N'', N'', N'', N'', N'3', N'1', N''), (N'4313', N'43', N'00,43', N'娄底市', N'43', N'湖南省', N'4313', N'娄底市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'431302', N'4313', N'00,43,4313', N'娄星区', N'43', N'湖南省', N'4313', N'娄底市', N'431302', N'娄星区', N'', N'', N'', N'', N'3', N'1', N''), (N'431321', N'4313', N'00,43,4313', N'双峰县', N'43', N'湖南省', N'4313', N'娄底市', N'431321', N'双峰县', N'', N'', N'', N'', N'3', N'1', N''), (N'431322', N'4313', N'00,43,4313', N'新化县', N'43', N'湖南省', N'4313', N'娄底市', N'431322', N'新化县', N'', N'', N'', N'', N'3', N'1', N''), (N'431381', N'4313', N'00,43,4313', N'冷水江市', N'43', N'湖南省', N'4313', N'娄底市', N'431381', N'冷水江市', N'', N'', N'', N'', N'3', N'1', N''), (N'431382', N'4313', N'00,43,4313', N'涟源市', N'43', N'湖南省', N'4313', N'娄底市', N'431382', N'涟源市', N'', N'', N'', N'', N'3', N'1', N''), (N'4331', N'43', N'00,43', N'湘西土家族苗族自治州', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'433101', N'4331', N'00,43,4331', N'吉首市', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433101', N'吉首市', N'', N'', N'', N'', N'3', N'1', N''), (N'433122', N'4331', N'00,43,4331', N'泸溪县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433122', N'泸溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'433123', N'4331', N'00,43,4331', N'凤凰县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433123', N'凤凰县', N'', N'', N'', N'', N'3', N'1', N''), (N'433124', N'4331', N'00,43,4331', N'花垣县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433124', N'花垣县', N'', N'', N'', N'', N'3', N'1', N''), (N'433125', N'4331', N'00,43,4331', N'保靖县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433125', N'保靖县', N'', N'', N'', N'', N'3', N'1', N''), (N'433126', N'4331', N'00,43,4331', N'古丈县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433126', N'古丈县', N'', N'', N'', N'', N'3', N'1', N''), (N'433127', N'4331', N'00,43,4331', N'永顺县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433127', N'永顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'433130', N'4331', N'00,43,4331', N'龙山县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433130', N'龙山县', N'', N'', N'', N'', N'3', N'1', N''), (N'44', N'00', N'00', N'广东省', N'44', N'广东省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4401', N'44', N'00,44', N'广州市', N'44', N'广东省', N'4401', N'广州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440103', N'4401', N'00,44,4401', N'荔湾区', N'44', N'广东省', N'4401', N'广州市', N'440103', N'荔湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'440104', N'4401', N'00,44,4401', N'越秀区', N'44', N'广东省', N'4401', N'广州市', N'440104', N'越秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'440105', N'4401', N'00,44,4401', N'海珠区', N'44', N'广东省', N'4401', N'广州市', N'440105', N'海珠区', N'', N'', N'', N'', N'3', N'1', N''), (N'440106', N'4401', N'00,44,4401', N'天河区', N'44', N'广东省', N'4401', N'广州市', N'440106', N'天河区', N'', N'', N'', N'', N'3', N'1', N''), (N'440111', N'4401', N'00,44,4401', N'白云区', N'44', N'广东省', N'4401', N'广州市', N'440111', N'白云区', N'', N'', N'', N'', N'3', N'1', N''), (N'440112', N'4401', N'00,44,4401', N'黄埔区', N'44', N'广东省', N'4401', N'广州市', N'440112', N'黄埔区', N'', N'', N'', N'', N'3', N'1', N''), (N'440113', N'4401', N'00,44,4401', N'番禺区', N'44', N'广东省', N'4401', N'广州市', N'440113', N'番禺区', N'', N'', N'', N'', N'3', N'1', N''), (N'440114', N'4401', N'00,44,4401', N'花都区', N'44', N'广东省', N'4401', N'广州市', N'440114', N'花都区', N'', N'', N'', N'', N'3', N'1', N''), (N'440115', N'4401', N'00,44,4401', N'南沙区', N'44', N'广东省', N'4401', N'广州市', N'440115', N'南沙区', N'', N'', N'', N'', N'3', N'1', N''), (N'440117', N'4401', N'00,44,4401', N'从化区', N'44', N'广东省', N'4401', N'广州市', N'440117', N'从化区', N'', N'', N'', N'', N'3', N'1', N''), (N'440118', N'4401', N'00,44,4401', N'增城区', N'44', N'广东省', N'4401', N'广州市', N'440118', N'增城区', N'', N'', N'', N'', N'3', N'1', N''), (N'4402', N'44', N'00,44', N'韶关市', N'44', N'广东省', N'4402', N'韶关市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440203', N'4402', N'00,44,4402', N'武江区', N'44', N'广东省', N'4402', N'韶关市', N'440203', N'武江区', N'', N'', N'', N'', N'3', N'1', N''), (N'440204', N'4402', N'00,44,4402', N'浈江区', N'44', N'广东省', N'4402', N'韶关市', N'440204', N'浈江区', N'', N'', N'', N'', N'3', N'1', N''), (N'440205', N'4402', N'00,44,4402', N'曲江区', N'44', N'广东省', N'4402', N'韶关市', N'440205', N'曲江区', N'', N'', N'', N'', N'3', N'1', N''), (N'440222', N'4402', N'00,44,4402', N'始兴县', N'44', N'广东省', N'4402', N'韶关市', N'440222', N'始兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'440224', N'4402', N'00,44,4402', N'仁化县', N'44', N'广东省', N'4402', N'韶关市', N'440224', N'仁化县', N'', N'', N'', N'', N'3', N'1', N''), (N'440229', N'4402', N'00,44,4402', N'翁源县', N'44', N'广东省', N'4402', N'韶关市', N'440229', N'翁源县', N'', N'', N'', N'', N'3', N'1', N''), (N'440232', N'4402', N'00,44,4402', N'乳源瑶族自治县', N'44', N'广东省', N'4402', N'韶关市', N'440232', N'乳源瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'440233', N'4402', N'00,44,4402', N'新丰县', N'44', N'广东省', N'4402', N'韶关市', N'440233', N'新丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'440281', N'4402', N'00,44,4402', N'乐昌市', N'44', N'广东省', N'4402', N'韶关市', N'440281', N'乐昌市', N'', N'', N'', N'', N'3', N'1', N''), (N'440282', N'4402', N'00,44,4402', N'南雄市', N'44', N'广东省', N'4402', N'韶关市', N'440282', N'南雄市', N'', N'', N'', N'', N'3', N'1', N''), (N'4403', N'44', N'00,44', N'深圳市', N'44', N'广东省', N'4403', N'深圳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440303', N'4403', N'00,44,4403', N'罗湖区', N'44', N'广东省', N'4403', N'深圳市', N'440303', N'罗湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'440304', N'4403', N'00,44,4403', N'福田区', N'44', N'广东省', N'4403', N'深圳市', N'440304', N'福田区', N'', N'', N'', N'', N'3', N'1', N''), (N'440305', N'4403', N'00,44,4403', N'南山区', N'44', N'广东省', N'4403', N'深圳市', N'440305', N'南山区', N'', N'', N'', N'', N'3', N'1', N''), (N'440306', N'4403', N'00,44,4403', N'宝安区', N'44', N'广东省', N'4403', N'深圳市', N'440306', N'宝安区', N'', N'', N'', N'', N'3', N'1', N''), (N'440307', N'4403', N'00,44,4403', N'龙岗区', N'44', N'广东省', N'4403', N'深圳市', N'440307', N'龙岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'440308', N'4403', N'00,44,4403', N'盐田区', N'44', N'广东省', N'4403', N'深圳市', N'440308', N'盐田区', N'', N'', N'', N'', N'3', N'1', N''), (N'440309', N'4403', N'00,44,4403', N'龙华区', N'44', N'广东省', N'4403', N'深圳市', N'440309', N'龙华区', N'', N'', N'', N'', N'3', N'1', N''), (N'440310', N'4403', N'00,44,4403', N'坪山区', N'44', N'广东省', N'4403', N'深圳市', N'440310', N'坪山区', N'', N'', N'', N'', N'3', N'1', N''), (N'440311', N'4403', N'00,44,4403', N'光明区', N'44', N'广东省', N'4403', N'深圳市', N'440311', N'光明区', N'', N'', N'', N'', N'3', N'1', N''), (N'4404', N'44', N'00,44', N'珠海市', N'44', N'广东省', N'4404', N'珠海市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440402', N'4404', N'00,44,4404', N'香洲区', N'44', N'广东省', N'4404', N'珠海市', N'440402', N'香洲区', N'', N'', N'', N'', N'3', N'1', N''), (N'440403', N'4404', N'00,44,4404', N'斗门区', N'44', N'广东省', N'4404', N'珠海市', N'440403', N'斗门区', N'', N'', N'', N'', N'3', N'1', N''), (N'440404', N'4404', N'00,44,4404', N'金湾区', N'44', N'广东省', N'4404', N'珠海市', N'440404', N'金湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'4405', N'44', N'00,44', N'汕头市', N'44', N'广东省', N'4405', N'汕头市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440507', N'4405', N'00,44,4405', N'龙湖区', N'44', N'广东省', N'4405', N'汕头市', N'440507', N'龙湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'440511', N'4405', N'00,44,4405', N'金平区', N'44', N'广东省', N'4405', N'汕头市', N'440511', N'金平区', N'', N'', N'', N'', N'3', N'1', N''), (N'440512', N'4405', N'00,44,4405', N'濠江区', N'44', N'广东省', N'4405', N'汕头市', N'440512', N'濠江区', N'', N'', N'', N'', N'3', N'1', N''), (N'440513', N'4405', N'00,44,4405', N'潮阳区', N'44', N'广东省', N'4405', N'汕头市', N'440513', N'潮阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'440514', N'4405', N'00,44,4405', N'潮南区', N'44', N'广东省', N'4405', N'汕头市', N'440514', N'潮南区', N'', N'', N'', N'', N'3', N'1', N''), (N'440515', N'4405', N'00,44,4405', N'澄海区', N'44', N'广东省', N'4405', N'汕头市', N'440515', N'澄海区', N'', N'', N'', N'', N'3', N'1', N''), (N'440523', N'4405', N'00,44,4405', N'南澳县', N'44', N'广东省', N'4405', N'汕头市', N'440523', N'南澳县', N'', N'', N'', N'', N'3', N'1', N''), (N'4406', N'44', N'00,44', N'佛山市', N'44', N'广东省', N'4406', N'佛山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440604', N'4406', N'00,44,4406', N'禅城区', N'44', N'广东省', N'4406', N'佛山市', N'440604', N'禅城区', N'', N'', N'', N'', N'3', N'1', N''), (N'440605', N'4406', N'00,44,4406', N'南海区', N'44', N'广东省', N'4406', N'佛山市', N'440605', N'南海区', N'', N'', N'', N'', N'3', N'1', N''), (N'440606', N'4406', N'00,44,4406', N'顺德区', N'44', N'广东省', N'4406', N'佛山市', N'440606', N'顺德区', N'', N'', N'', N'', N'3', N'1', N''), (N'440607', N'4406', N'00,44,4406', N'三水区', N'44', N'广东省', N'4406', N'佛山市', N'440607', N'三水区', N'', N'', N'', N'', N'3', N'1', N''), (N'440608', N'4406', N'00,44,4406', N'高明区', N'44', N'广东省', N'4406', N'佛山市', N'440608', N'高明区', N'', N'', N'', N'', N'3', N'1', N''), (N'4407', N'44', N'00,44', N'江门市', N'44', N'广东省', N'4407', N'江门市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440703', N'4407', N'00,44,4407', N'蓬江区', N'44', N'广东省', N'4407', N'江门市', N'440703', N'蓬江区', N'', N'', N'', N'', N'3', N'1', N''), (N'440704', N'4407', N'00,44,4407', N'江海区', N'44', N'广东省', N'4407', N'江门市', N'440704', N'江海区', N'', N'', N'', N'', N'3', N'1', N''), (N'440705', N'4407', N'00,44,4407', N'新会区', N'44', N'广东省', N'4407', N'江门市', N'440705', N'新会区', N'', N'', N'', N'', N'3', N'1', N''), (N'440781', N'4407', N'00,44,4407', N'台山市', N'44', N'广东省', N'4407', N'江门市', N'440781', N'台山市', N'', N'', N'', N'', N'3', N'1', N''), (N'440783', N'4407', N'00,44,4407', N'开平市', N'44', N'广东省', N'4407', N'江门市', N'440783', N'开平市', N'', N'', N'', N'', N'3', N'1', N''), (N'440784', N'4407', N'00,44,4407', N'鹤山市', N'44', N'广东省', N'4407', N'江门市', N'440784', N'鹤山市', N'', N'', N'', N'', N'3', N'1', N''), (N'440785', N'4407', N'00,44,4407', N'恩平市', N'44', N'广东省', N'4407', N'江门市', N'440785', N'恩平市', N'', N'', N'', N'', N'3', N'1', N''), (N'4408', N'44', N'00,44', N'湛江市', N'44', N'广东省', N'4408', N'湛江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440802', N'4408', N'00,44,4408', N'赤坎区', N'44', N'广东省', N'4408', N'湛江市', N'440802', N'赤坎区', N'', N'', N'', N'', N'3', N'1', N''), (N'440803', N'4408', N'00,44,4408', N'霞山区', N'44', N'广东省', N'4408', N'湛江市', N'440803', N'霞山区', N'', N'', N'', N'', N'3', N'1', N''), (N'440804', N'4408', N'00,44,4408', N'坡头区', N'44', N'广东省', N'4408', N'湛江市', N'440804', N'坡头区', N'', N'', N'', N'', N'3', N'1', N''), (N'440811', N'4408', N'00,44,4408', N'麻章区', N'44', N'广东省', N'4408', N'湛江市', N'440811', N'麻章区', N'', N'', N'', N'', N'3', N'1', N''), (N'440823', N'4408', N'00,44,4408', N'遂溪县', N'44', N'广东省', N'4408', N'湛江市', N'440823', N'遂溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'440825', N'4408', N'00,44,4408', N'徐闻县', N'44', N'广东省', N'4408', N'湛江市', N'440825', N'徐闻县', N'', N'', N'', N'', N'3', N'1', N''), (N'440881', N'4408', N'00,44,4408', N'廉江市', N'44', N'广东省', N'4408', N'湛江市', N'440881', N'廉江市', N'', N'', N'', N'', N'3', N'1', N''), (N'440882', N'4408', N'00,44,4408', N'雷州市', N'44', N'广东省', N'4408', N'湛江市', N'440882', N'雷州市', N'', N'', N'', N'', N'3', N'1', N''), (N'440883', N'4408', N'00,44,4408', N'吴川市', N'44', N'广东省', N'4408', N'湛江市', N'440883', N'吴川市', N'', N'', N'', N'', N'3', N'1', N''), (N'4409', N'44', N'00,44', N'茂名市', N'44', N'广东省', N'4409', N'茂名市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440902', N'4409', N'00,44,4409', N'茂南区', N'44', N'广东省', N'4409', N'茂名市', N'440902', N'茂南区', N'', N'', N'', N'', N'3', N'1', N''), (N'440904', N'4409', N'00,44,4409', N'电白区', N'44', N'广东省', N'4409', N'茂名市', N'440904', N'电白区', N'', N'', N'', N'', N'3', N'1', N''), (N'440981', N'4409', N'00,44,4409', N'高州市', N'44', N'广东省', N'4409', N'茂名市', N'440981', N'高州市', N'', N'', N'', N'', N'3', N'1', N''), (N'440982', N'4409', N'00,44,4409', N'化州市', N'44', N'广东省', N'4409', N'茂名市', N'440982', N'化州市', N'', N'', N'', N'', N'3', N'1', N''), (N'440983', N'4409', N'00,44,4409', N'信宜市', N'44', N'广东省', N'4409', N'茂名市', N'440983', N'信宜市', N'', N'', N'', N'', N'3', N'1', N''), (N'4412', N'44', N'00,44', N'肇庆市', N'44', N'广东省', N'4412', N'肇庆市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441202', N'4412', N'00,44,4412', N'端州区', N'44', N'广东省', N'4412', N'肇庆市', N'441202', N'端州区', N'', N'', N'', N'', N'3', N'1', N''), (N'441203', N'4412', N'00,44,4412', N'鼎湖区', N'44', N'广东省', N'4412', N'肇庆市', N'441203', N'鼎湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'441204', N'4412', N'00,44,4412', N'高要区', N'44', N'广东省', N'4412', N'肇庆市', N'441204', N'高要区', N'', N'', N'', N'', N'3', N'1', N''), (N'441223', N'4412', N'00,44,4412', N'广宁县', N'44', N'广东省', N'4412', N'肇庆市', N'441223', N'广宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'441224', N'4412', N'00,44,4412', N'怀集县', N'44', N'广东省', N'4412', N'肇庆市', N'441224', N'怀集县', N'', N'', N'', N'', N'3', N'1', N''), (N'441225', N'4412', N'00,44,4412', N'封开县', N'44', N'广东省', N'4412', N'肇庆市', N'441225', N'封开县', N'', N'', N'', N'', N'3', N'1', N''), (N'441226', N'4412', N'00,44,4412', N'德庆县', N'44', N'广东省', N'4412', N'肇庆市', N'441226', N'德庆县', N'', N'', N'', N'', N'3', N'1', N''), (N'441284', N'4412', N'00,44,4412', N'四会市', N'44', N'广东省', N'4412', N'肇庆市', N'441284', N'四会市', N'', N'', N'', N'', N'3', N'1', N''), (N'4413', N'44', N'00,44', N'惠州市', N'44', N'广东省', N'4413', N'惠州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441302', N'4413', N'00,44,4413', N'惠城区', N'44', N'广东省', N'4413', N'惠州市', N'441302', N'惠城区', N'', N'', N'', N'', N'3', N'1', N''), (N'441303', N'4413', N'00,44,4413', N'惠阳区', N'44', N'广东省', N'4413', N'惠州市', N'441303', N'惠阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'441322', N'4413', N'00,44,4413', N'博罗县', N'44', N'广东省', N'4413', N'惠州市', N'441322', N'博罗县', N'', N'', N'', N'', N'3', N'1', N''), (N'441323', N'4413', N'00,44,4413', N'惠东县', N'44', N'广东省', N'4413', N'惠州市', N'441323', N'惠东县', N'', N'', N'', N'', N'3', N'1', N''), (N'441324', N'4413', N'00,44,4413', N'龙门县', N'44', N'广东省', N'4413', N'惠州市', N'441324', N'龙门县', N'', N'', N'', N'', N'3', N'1', N''), (N'4414', N'44', N'00,44', N'梅州市', N'44', N'广东省', N'4414', N'梅州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441402', N'4414', N'00,44,4414', N'梅江区', N'44', N'广东省', N'4414', N'梅州市', N'441402', N'梅江区', N'', N'', N'', N'', N'3', N'1', N''), (N'441403', N'4414', N'00,44,4414', N'梅县区', N'44', N'广东省', N'4414', N'梅州市', N'441403', N'梅县区', N'', N'', N'', N'', N'3', N'1', N''), (N'441422', N'4414', N'00,44,4414', N'大埔县', N'44', N'广东省', N'4414', N'梅州市', N'441422', N'大埔县', N'', N'', N'', N'', N'3', N'1', N''), (N'441423', N'4414', N'00,44,4414', N'丰顺县', N'44', N'广东省', N'4414', N'梅州市', N'441423', N'丰顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'441424', N'4414', N'00,44,4414', N'五华县', N'44', N'广东省', N'4414', N'梅州市', N'441424', N'五华县', N'', N'', N'', N'', N'3', N'1', N''), (N'441426', N'4414', N'00,44,4414', N'平远县', N'44', N'广东省', N'4414', N'梅州市', N'441426', N'平远县', N'', N'', N'', N'', N'3', N'1', N''), (N'441427', N'4414', N'00,44,4414', N'蕉岭县', N'44', N'广东省', N'4414', N'梅州市', N'441427', N'蕉岭县', N'', N'', N'', N'', N'3', N'1', N''), (N'441481', N'4414', N'00,44,4414', N'兴宁市', N'44', N'广东省', N'4414', N'梅州市', N'441481', N'兴宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'4415', N'44', N'00,44', N'汕尾市', N'44', N'广东省', N'4415', N'汕尾市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441502', N'4415', N'00,44,4415', N'城区', N'44', N'广东省', N'4415', N'汕尾市', N'441502', N'城区', N'', N'', N'', N'', N'3', N'1', N''), (N'441521', N'4415', N'00,44,4415', N'海丰县', N'44', N'广东省', N'4415', N'汕尾市', N'441521', N'海丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'441523', N'4415', N'00,44,4415', N'陆河县', N'44', N'广东省', N'4415', N'汕尾市', N'441523', N'陆河县', N'', N'', N'', N'', N'3', N'1', N''), (N'441581', N'4415', N'00,44,4415', N'陆丰市', N'44', N'广东省', N'4415', N'汕尾市', N'441581', N'陆丰市', N'', N'', N'', N'', N'3', N'1', N''), (N'4416', N'44', N'00,44', N'河源市', N'44', N'广东省', N'4416', N'河源市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441602', N'4416', N'00,44,4416', N'源城区', N'44', N'广东省', N'4416', N'河源市', N'441602', N'源城区', N'', N'', N'', N'', N'3', N'1', N''), (N'441621', N'4416', N'00,44,4416', N'紫金县', N'44', N'广东省', N'4416', N'河源市', N'441621', N'紫金县', N'', N'', N'', N'', N'3', N'1', N''), (N'441622', N'4416', N'00,44,4416', N'龙川县', N'44', N'广东省', N'4416', N'河源市', N'441622', N'龙川县', N'', N'', N'', N'', N'3', N'1', N''), (N'441623', N'4416', N'00,44,4416', N'连平县', N'44', N'广东省', N'4416', N'河源市', N'441623', N'连平县', N'', N'', N'', N'', N'3', N'1', N''), (N'441624', N'4416', N'00,44,4416', N'和平县', N'44', N'广东省', N'4416', N'河源市', N'441624', N'和平县', N'', N'', N'', N'', N'3', N'1', N''), (N'441625', N'4416', N'00,44,4416', N'东源县', N'44', N'广东省', N'4416', N'河源市', N'441625', N'东源县', N'', N'', N'', N'', N'3', N'1', N''), (N'4417', N'44', N'00,44', N'阳江市', N'44', N'广东省', N'4417', N'阳江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441702', N'4417', N'00,44,4417', N'江城区', N'44', N'广东省', N'4417', N'阳江市', N'441702', N'江城区', N'', N'', N'', N'', N'3', N'1', N''), (N'441704', N'4417', N'00,44,4417', N'阳东区', N'44', N'广东省', N'4417', N'阳江市', N'441704', N'阳东区', N'', N'', N'', N'', N'3', N'1', N''), (N'441721', N'4417', N'00,44,4417', N'阳西县', N'44', N'广东省', N'4417', N'阳江市', N'441721', N'阳西县', N'', N'', N'', N'', N'3', N'1', N''), (N'441781', N'4417', N'00,44,4417', N'阳春市', N'44', N'广东省', N'4417', N'阳江市', N'441781', N'阳春市', N'', N'', N'', N'', N'3', N'1', N''), (N'4418', N'44', N'00,44', N'清远市', N'44', N'广东省', N'4418', N'清远市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441802', N'4418', N'00,44,4418', N'清城区', N'44', N'广东省', N'4418', N'清远市', N'441802', N'清城区', N'', N'', N'', N'', N'3', N'1', N''), (N'441803', N'4418', N'00,44,4418', N'清新区', N'44', N'广东省', N'4418', N'清远市', N'441803', N'清新区', N'', N'', N'', N'', N'3', N'1', N''), (N'441821', N'4418', N'00,44,4418', N'佛冈县', N'44', N'广东省', N'4418', N'清远市', N'441821', N'佛冈县', N'', N'', N'', N'', N'3', N'1', N''), (N'441823', N'4418', N'00,44,4418', N'阳山县', N'44', N'广东省', N'4418', N'清远市', N'441823', N'阳山县', N'', N'', N'', N'', N'3', N'1', N''), (N'441825', N'4418', N'00,44,4418', N'连山壮族瑶族自治县', N'44', N'广东省', N'4418', N'清远市', N'441825', N'连山壮族瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'441826', N'4418', N'00,44,4418', N'连南瑶族自治县', N'44', N'广东省', N'4418', N'清远市', N'441826', N'连南瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'441881', N'4418', N'00,44,4418', N'英德市', N'44', N'广东省', N'4418', N'清远市', N'441881', N'英德市', N'', N'', N'', N'', N'3', N'1', N''), (N'441882', N'4418', N'00,44,4418', N'连州市', N'44', N'广东省', N'4418', N'清远市', N'441882', N'连州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4419', N'44', N'00,44', N'东莞市', N'44', N'广东省', N'4419', N'东莞市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441900', N'4419', N'00,44,4419', N'东莞市', N'44', N'广东省', N'4419', N'东莞市', N'441900', N'东莞市', N'', N'', N'', N'', N'3', N'1', N''), (N'4420', N'44', N'00,44', N'中山市', N'44', N'广东省', N'4420', N'中山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'442000', N'4420', N'00,44,4420', N'中山市', N'44', N'广东省', N'4420', N'中山市', N'442000', N'中山市', N'', N'', N'', N'', N'3', N'1', N''), (N'4451', N'44', N'00,44', N'潮州市', N'44', N'广东省', N'4451', N'潮州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'445102', N'4451', N'00,44,4451', N'湘桥区', N'44', N'广东省', N'4451', N'潮州市', N'445102', N'湘桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'445103', N'4451', N'00,44,4451', N'潮安区', N'44', N'广东省', N'4451', N'潮州市', N'445103', N'潮安区', N'', N'', N'', N'', N'3', N'1', N''), (N'445122', N'4451', N'00,44,4451', N'饶平县', N'44', N'广东省', N'4451', N'潮州市', N'445122', N'饶平县', N'', N'', N'', N'', N'3', N'1', N''), (N'4452', N'44', N'00,44', N'揭阳市', N'44', N'广东省', N'4452', N'揭阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'445202', N'4452', N'00,44,4452', N'榕城区', N'44', N'广东省', N'4452', N'揭阳市', N'445202', N'榕城区', N'', N'', N'', N'', N'3', N'1', N''), (N'445203', N'4452', N'00,44,4452', N'揭东区', N'44', N'广东省', N'4452', N'揭阳市', N'445203', N'揭东区', N'', N'', N'', N'', N'3', N'1', N''), (N'445222', N'4452', N'00,44,4452', N'揭西县', N'44', N'广东省', N'4452', N'揭阳市', N'445222', N'揭西县', N'', N'', N'', N'', N'3', N'1', N''), (N'445224', N'4452', N'00,44,4452', N'惠来县', N'44', N'广东省', N'4452', N'揭阳市', N'445224', N'惠来县', N'', N'', N'', N'', N'3', N'1', N''), (N'445281', N'4452', N'00,44,4452', N'普宁市', N'44', N'广东省', N'4452', N'揭阳市', N'445281', N'普宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'4453', N'44', N'00,44', N'云浮市', N'44', N'广东省', N'4453', N'云浮市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'445302', N'4453', N'00,44,4453', N'云城区', N'44', N'广东省', N'4453', N'云浮市', N'445302', N'云城区', N'', N'', N'', N'', N'3', N'1', N''), (N'445303', N'4453', N'00,44,4453', N'云安区', N'44', N'广东省', N'4453', N'云浮市', N'445303', N'云安区', N'', N'', N'', N'', N'3', N'1', N''), (N'445321', N'4453', N'00,44,4453', N'新兴县', N'44', N'广东省', N'4453', N'云浮市', N'445321', N'新兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'445322', N'4453', N'00,44,4453', N'郁南县', N'44', N'广东省', N'4453', N'云浮市', N'445322', N'郁南县', N'', N'', N'', N'', N'3', N'1', N''), (N'445381', N'4453', N'00,44,4453', N'罗定市', N'44', N'广东省', N'4453', N'云浮市', N'445381', N'罗定市', N'', N'', N'', N'', N'3', N'1', N''), (N'45', N'00', N'00', N'广西壮族自治区', N'45', N'广西壮族自治区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4501', N'45', N'00,45', N'南宁市', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450102', N'4501', N'00,45,4501', N'兴宁区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450102', N'兴宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'450103', N'4501', N'00,45,4501', N'青秀区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450103', N'青秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'450105', N'4501', N'00,45,4501', N'江南区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450105', N'江南区', N'', N'', N'', N'', N'3', N'1', N''), (N'450107', N'4501', N'00,45,4501', N'西乡塘区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450107', N'西乡塘区', N'', N'', N'', N'', N'3', N'1', N''), (N'450108', N'4501', N'00,45,4501', N'良庆区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450108', N'良庆区', N'', N'', N'', N'', N'3', N'1', N''), (N'450109', N'4501', N'00,45,4501', N'邕宁区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450109', N'邕宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'450110', N'4501', N'00,45,4501', N'武鸣区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450110', N'武鸣区', N'', N'', N'', N'', N'3', N'1', N''), (N'450123', N'4501', N'00,45,4501', N'隆安县', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450123', N'隆安县', N'', N'', N'', N'', N'3', N'1', N''), (N'450124', N'4501', N'00,45,4501', N'马山县', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450124', N'马山县', N'', N'', N'', N'', N'3', N'1', N''), (N'450125', N'4501', N'00,45,4501', N'上林县', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450125', N'上林县', N'', N'', N'', N'', N'3', N'1', N''), (N'450126', N'4501', N'00,45,4501', N'宾阳县', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450126', N'宾阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'450127', N'4501', N'00,45,4501', N'横县', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450127', N'横县', N'', N'', N'', N'', N'3', N'1', N''), (N'4502', N'45', N'00,45', N'柳州市', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450202', N'4502', N'00,45,4502', N'城中区', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450202', N'城中区', N'', N'', N'', N'', N'3', N'1', N''), (N'450203', N'4502', N'00,45,4502', N'鱼峰区', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450203', N'鱼峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'450204', N'4502', N'00,45,4502', N'柳南区', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450204', N'柳南区', N'', N'', N'', N'', N'3', N'1', N''), (N'450205', N'4502', N'00,45,4502', N'柳北区', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450205', N'柳北区', N'', N'', N'', N'', N'3', N'1', N''), (N'450206', N'4502', N'00,45,4502', N'柳江区', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450206', N'柳江区', N'', N'', N'', N'', N'3', N'1', N''), (N'450222', N'4502', N'00,45,4502', N'柳城县', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450222', N'柳城县', N'', N'', N'', N'', N'3', N'1', N''), (N'450223', N'4502', N'00,45,4502', N'鹿寨县', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450223', N'鹿寨县', N'', N'', N'', N'', N'3', N'1', N'')
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'450224', N'4502', N'00,45,4502', N'融安县', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450224', N'融安县', N'', N'', N'', N'', N'3', N'1', N''), (N'450225', N'4502', N'00,45,4502', N'融水苗族自治县', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450225', N'融水苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'450226', N'4502', N'00,45,4502', N'三江侗族自治县', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450226', N'三江侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'4503', N'45', N'00,45', N'桂林市', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450302', N'4503', N'00,45,4503', N'秀峰区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450302', N'秀峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'450303', N'4503', N'00,45,4503', N'叠彩区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450303', N'叠彩区', N'', N'', N'', N'', N'3', N'1', N''), (N'450304', N'4503', N'00,45,4503', N'象山区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450304', N'象山区', N'', N'', N'', N'', N'3', N'1', N''), (N'450305', N'4503', N'00,45,4503', N'七星区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450305', N'七星区', N'', N'', N'', N'', N'3', N'1', N''), (N'450311', N'4503', N'00,45,4503', N'雁山区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450311', N'雁山区', N'', N'', N'', N'', N'3', N'1', N''), (N'450312', N'4503', N'00,45,4503', N'临桂区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450312', N'临桂区', N'', N'', N'', N'', N'3', N'1', N''), (N'450321', N'4503', N'00,45,4503', N'阳朔县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450321', N'阳朔县', N'', N'', N'', N'', N'3', N'1', N''), (N'450323', N'4503', N'00,45,4503', N'灵川县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450323', N'灵川县', N'', N'', N'', N'', N'3', N'1', N''), (N'450324', N'4503', N'00,45,4503', N'全州县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450324', N'全州县', N'', N'', N'', N'', N'3', N'1', N''), (N'450325', N'4503', N'00,45,4503', N'兴安县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450325', N'兴安县', N'', N'', N'', N'', N'3', N'1', N''), (N'450326', N'4503', N'00,45,4503', N'永福县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450326', N'永福县', N'', N'', N'', N'', N'3', N'1', N''), (N'450327', N'4503', N'00,45,4503', N'灌阳县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450327', N'灌阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'450328', N'4503', N'00,45,4503', N'龙胜各族自治县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450328', N'龙胜各族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'450329', N'4503', N'00,45,4503', N'资源县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450329', N'资源县', N'', N'', N'', N'', N'3', N'1', N''), (N'450330', N'4503', N'00,45,4503', N'平乐县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450330', N'平乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'450332', N'4503', N'00,45,4503', N'恭城瑶族自治县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450332', N'恭城瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'450381', N'4503', N'00,45,4503', N'荔浦市', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450381', N'荔浦市', N'', N'', N'', N'', N'3', N'1', N''), (N'4504', N'45', N'00,45', N'梧州市', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450403', N'4504', N'00,45,4504', N'万秀区', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450403', N'万秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'450405', N'4504', N'00,45,4504', N'长洲区', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450405', N'长洲区', N'', N'', N'', N'', N'3', N'1', N''), (N'450406', N'4504', N'00,45,4504', N'龙圩区', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450406', N'龙圩区', N'', N'', N'', N'', N'3', N'1', N''), (N'450421', N'4504', N'00,45,4504', N'苍梧县', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450421', N'苍梧县', N'', N'', N'', N'', N'3', N'1', N''), (N'450422', N'4504', N'00,45,4504', N'藤县', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450422', N'藤县', N'', N'', N'', N'', N'3', N'1', N''), (N'450423', N'4504', N'00,45,4504', N'蒙山县', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450423', N'蒙山县', N'', N'', N'', N'', N'3', N'1', N''), (N'450481', N'4504', N'00,45,4504', N'岑溪市', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450481', N'岑溪市', N'', N'', N'', N'', N'3', N'1', N''), (N'4505', N'45', N'00,45', N'北海市', N'45', N'广西壮族自治区', N'4505', N'北海市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450502', N'4505', N'00,45,4505', N'海城区', N'45', N'广西壮族自治区', N'4505', N'北海市', N'450502', N'海城区', N'', N'', N'', N'', N'3', N'1', N''), (N'450503', N'4505', N'00,45,4505', N'银海区', N'45', N'广西壮族自治区', N'4505', N'北海市', N'450503', N'银海区', N'', N'', N'', N'', N'3', N'1', N''), (N'450512', N'4505', N'00,45,4505', N'铁山港区', N'45', N'广西壮族自治区', N'4505', N'北海市', N'450512', N'铁山港区', N'', N'', N'', N'', N'3', N'1', N''), (N'450521', N'4505', N'00,45,4505', N'合浦县', N'45', N'广西壮族自治区', N'4505', N'北海市', N'450521', N'合浦县', N'', N'', N'', N'', N'3', N'1', N''), (N'4506', N'45', N'00,45', N'防城港市', N'45', N'广西壮族自治区', N'4506', N'防城港市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450602', N'4506', N'00,45,4506', N'港口区', N'45', N'广西壮族自治区', N'4506', N'防城港市', N'450602', N'港口区', N'', N'', N'', N'', N'3', N'1', N''), (N'450603', N'4506', N'00,45,4506', N'防城区', N'45', N'广西壮族自治区', N'4506', N'防城港市', N'450603', N'防城区', N'', N'', N'', N'', N'3', N'1', N''), (N'450621', N'4506', N'00,45,4506', N'上思县', N'45', N'广西壮族自治区', N'4506', N'防城港市', N'450621', N'上思县', N'', N'', N'', N'', N'3', N'1', N''), (N'450681', N'4506', N'00,45,4506', N'东兴市', N'45', N'广西壮族自治区', N'4506', N'防城港市', N'450681', N'东兴市', N'', N'', N'', N'', N'3', N'1', N''), (N'4507', N'45', N'00,45', N'钦州市', N'45', N'广西壮族自治区', N'4507', N'钦州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450702', N'4507', N'00,45,4507', N'钦南区', N'45', N'广西壮族自治区', N'4507', N'钦州市', N'450702', N'钦南区', N'', N'', N'', N'', N'3', N'1', N''), (N'450703', N'4507', N'00,45,4507', N'钦北区', N'45', N'广西壮族自治区', N'4507', N'钦州市', N'450703', N'钦北区', N'', N'', N'', N'', N'3', N'1', N''), (N'450721', N'4507', N'00,45,4507', N'灵山县', N'45', N'广西壮族自治区', N'4507', N'钦州市', N'450721', N'灵山县', N'', N'', N'', N'', N'3', N'1', N''), (N'450722', N'4507', N'00,45,4507', N'浦北县', N'45', N'广西壮族自治区', N'4507', N'钦州市', N'450722', N'浦北县', N'', N'', N'', N'', N'3', N'1', N''), (N'4508', N'45', N'00,45', N'贵港市', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450802', N'4508', N'00,45,4508', N'港北区', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'450802', N'港北区', N'', N'', N'', N'', N'3', N'1', N''), (N'450803', N'4508', N'00,45,4508', N'港南区', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'450803', N'港南区', N'', N'', N'', N'', N'3', N'1', N''), (N'450804', N'4508', N'00,45,4508', N'覃塘区', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'450804', N'覃塘区', N'', N'', N'', N'', N'3', N'1', N''), (N'450821', N'4508', N'00,45,4508', N'平南县', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'450821', N'平南县', N'', N'', N'', N'', N'3', N'1', N''), (N'450881', N'4508', N'00,45,4508', N'桂平市', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'450881', N'桂平市', N'', N'', N'', N'', N'3', N'1', N''), (N'4509', N'45', N'00,45', N'玉林市', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450902', N'4509', N'00,45,4509', N'玉州区', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450902', N'玉州区', N'', N'', N'', N'', N'3', N'1', N''), (N'450903', N'4509', N'00,45,4509', N'福绵区', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450903', N'福绵区', N'', N'', N'', N'', N'3', N'1', N''), (N'450921', N'4509', N'00,45,4509', N'容县', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450921', N'容县', N'', N'', N'', N'', N'3', N'1', N''), (N'450922', N'4509', N'00,45,4509', N'陆川县', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450922', N'陆川县', N'', N'', N'', N'', N'3', N'1', N''), (N'450923', N'4509', N'00,45,4509', N'博白县', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450923', N'博白县', N'', N'', N'', N'', N'3', N'1', N''), (N'450924', N'4509', N'00,45,4509', N'兴业县', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450924', N'兴业县', N'', N'', N'', N'', N'3', N'1', N''), (N'450981', N'4509', N'00,45,4509', N'北流市', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450981', N'北流市', N'', N'', N'', N'', N'3', N'1', N''), (N'4510', N'45', N'00,45', N'百色市', N'45', N'广西壮族自治区', N'4510', N'百色市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'451002', N'4510', N'00,45,4510', N'右江区', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451002', N'右江区', N'', N'', N'', N'', N'3', N'1', N''), (N'451003', N'4510', N'00,45,4510', N'田阳区', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451003', N'田阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'451022', N'4510', N'00,45,4510', N'田东县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451022', N'田东县', N'', N'', N'', N'', N'3', N'1', N''), (N'451024', N'4510', N'00,45,4510', N'德保县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451024', N'德保县', N'', N'', N'', N'', N'3', N'1', N''), (N'451026', N'4510', N'00,45,4510', N'那坡县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451026', N'那坡县', N'', N'', N'', N'', N'3', N'1', N''), (N'451027', N'4510', N'00,45,4510', N'凌云县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451027', N'凌云县', N'', N'', N'', N'', N'3', N'1', N''), (N'451028', N'4510', N'00,45,4510', N'乐业县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451028', N'乐业县', N'', N'', N'', N'', N'3', N'1', N''), (N'451029', N'4510', N'00,45,4510', N'田林县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451029', N'田林县', N'', N'', N'', N'', N'3', N'1', N''), (N'451030', N'4510', N'00,45,4510', N'西林县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451030', N'西林县', N'', N'', N'', N'', N'3', N'1', N''), (N'451031', N'4510', N'00,45,4510', N'隆林各族自治县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451031', N'隆林各族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451081', N'4510', N'00,45,4510', N'靖西市', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451081', N'靖西市', N'', N'', N'', N'', N'3', N'1', N''), (N'451082', N'4510', N'00,45,4510', N'平果市', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451082', N'平果市', N'', N'', N'', N'', N'3', N'1', N''), (N'4511', N'45', N'00,45', N'贺州市', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'451102', N'4511', N'00,45,4511', N'八步区', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'451102', N'八步区', N'', N'', N'', N'', N'3', N'1', N''), (N'451103', N'4511', N'00,45,4511', N'平桂区', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'451103', N'平桂区', N'', N'', N'', N'', N'3', N'1', N''), (N'451121', N'4511', N'00,45,4511', N'昭平县', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'451121', N'昭平县', N'', N'', N'', N'', N'3', N'1', N''), (N'451122', N'4511', N'00,45,4511', N'钟山县', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'451122', N'钟山县', N'', N'', N'', N'', N'3', N'1', N''), (N'451123', N'4511', N'00,45,4511', N'富川瑶族自治县', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'451123', N'富川瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'4512', N'45', N'00,45', N'河池市', N'45', N'广西壮族自治区', N'4512', N'河池市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'451202', N'4512', N'00,45,4512', N'金城江区', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451202', N'金城江区', N'', N'', N'', N'', N'3', N'1', N''), (N'451203', N'4512', N'00,45,4512', N'宜州区', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451203', N'宜州区', N'', N'', N'', N'', N'3', N'1', N''), (N'451221', N'4512', N'00,45,4512', N'南丹县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451221', N'南丹县', N'', N'', N'', N'', N'3', N'1', N''), (N'451222', N'4512', N'00,45,4512', N'天峨县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451222', N'天峨县', N'', N'', N'', N'', N'3', N'1', N''), (N'451223', N'4512', N'00,45,4512', N'凤山县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451223', N'凤山县', N'', N'', N'', N'', N'3', N'1', N''), (N'451224', N'4512', N'00,45,4512', N'东兰县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451224', N'东兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'451225', N'4512', N'00,45,4512', N'罗城仫佬族自治县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451225', N'罗城仫佬族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451226', N'4512', N'00,45,4512', N'环江毛南族自治县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451226', N'环江毛南族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451227', N'4512', N'00,45,4512', N'巴马瑶族自治县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451227', N'巴马瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451228', N'4512', N'00,45,4512', N'都安瑶族自治县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451228', N'都安瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451229', N'4512', N'00,45,4512', N'大化瑶族自治县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451229', N'大化瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'4513', N'45', N'00,45', N'来宾市', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'451302', N'4513', N'00,45,4513', N'兴宾区', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451302', N'兴宾区', N'', N'', N'', N'', N'3', N'1', N''), (N'451321', N'4513', N'00,45,4513', N'忻城县', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451321', N'忻城县', N'', N'', N'', N'', N'3', N'1', N''), (N'451322', N'4513', N'00,45,4513', N'象州县', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451322', N'象州县', N'', N'', N'', N'', N'3', N'1', N''), (N'451323', N'4513', N'00,45,4513', N'武宣县', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451323', N'武宣县', N'', N'', N'', N'', N'3', N'1', N''), (N'451324', N'4513', N'00,45,4513', N'金秀瑶族自治县', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451324', N'金秀瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451381', N'4513', N'00,45,4513', N'合山市', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451381', N'合山市', N'', N'', N'', N'', N'3', N'1', N''), (N'4514', N'45', N'00,45', N'崇左市', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'451402', N'4514', N'00,45,4514', N'江州区', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451402', N'江州区', N'', N'', N'', N'', N'3', N'1', N''), (N'451421', N'4514', N'00,45,4514', N'扶绥县', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451421', N'扶绥县', N'', N'', N'', N'', N'3', N'1', N''), (N'451422', N'4514', N'00,45,4514', N'宁明县', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451422', N'宁明县', N'', N'', N'', N'', N'3', N'1', N''), (N'451423', N'4514', N'00,45,4514', N'龙州县', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451423', N'龙州县', N'', N'', N'', N'', N'3', N'1', N''), (N'451424', N'4514', N'00,45,4514', N'大新县', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451424', N'大新县', N'', N'', N'', N'', N'3', N'1', N''), (N'451425', N'4514', N'00,45,4514', N'天等县', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451425', N'天等县', N'', N'', N'', N'', N'3', N'1', N''), (N'451481', N'4514', N'00,45,4514', N'凭祥市', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451481', N'凭祥市', N'', N'', N'', N'', N'3', N'1', N''), (N'46', N'00', N'00', N'海南省', N'46', N'海南省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4601', N'46', N'00,46', N'海口市', N'46', N'海南省', N'4601', N'海口市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'460105', N'4601', N'00,46,4601', N'秀英区', N'46', N'海南省', N'4601', N'海口市', N'460105', N'秀英区', N'', N'', N'', N'', N'3', N'1', N''), (N'460106', N'4601', N'00,46,4601', N'龙华区', N'46', N'海南省', N'4601', N'海口市', N'460106', N'龙华区', N'', N'', N'', N'', N'3', N'1', N''), (N'460107', N'4601', N'00,46,4601', N'琼山区', N'46', N'海南省', N'4601', N'海口市', N'460107', N'琼山区', N'', N'', N'', N'', N'3', N'1', N''), (N'460108', N'4601', N'00,46,4601', N'美兰区', N'46', N'海南省', N'4601', N'海口市', N'460108', N'美兰区', N'', N'', N'', N'', N'3', N'1', N''), (N'4602', N'46', N'00,46', N'三亚市', N'46', N'海南省', N'4602', N'三亚市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'460202', N'4602', N'00,46,4602', N'海棠区', N'46', N'海南省', N'4602', N'三亚市', N'460202', N'海棠区', N'', N'', N'', N'', N'3', N'1', N''), (N'460203', N'4602', N'00,46,4602', N'吉阳区', N'46', N'海南省', N'4602', N'三亚市', N'460203', N'吉阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'460204', N'4602', N'00,46,4602', N'天涯区', N'46', N'海南省', N'4602', N'三亚市', N'460204', N'天涯区', N'', N'', N'', N'', N'3', N'1', N''), (N'460205', N'4602', N'00,46,4602', N'崖州区', N'46', N'海南省', N'4602', N'三亚市', N'460205', N'崖州区', N'', N'', N'', N'', N'3', N'1', N''), (N'4603', N'46', N'00,46', N'三沙市', N'46', N'海南省', N'4603', N'三沙市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'460300', N'4603', N'00,46,4603', N'三沙市', N'46', N'海南省', N'4603', N'三沙市', N'460300', N'三沙市', N'', N'', N'', N'', N'3', N'1', N''), (N'4604', N'46', N'00,46', N'儋州市', N'46', N'海南省', N'4604', N'儋州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'460400', N'4604', N'00,46,4604', N'儋州市', N'46', N'海南省', N'4604', N'儋州市', N'460400', N'儋州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4690', N'46', N'00,46', N'省直辖县级行政区', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'469001', N'4690', N'00,46,4690', N'五指山市', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469001', N'五指山市', N'', N'', N'', N'', N'3', N'1', N''), (N'469002', N'4690', N'00,46,4690', N'琼海市', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469002', N'琼海市', N'', N'', N'', N'', N'3', N'1', N''), (N'469005', N'4690', N'00,46,4690', N'文昌市', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469005', N'文昌市', N'', N'', N'', N'', N'3', N'1', N''), (N'469006', N'4690', N'00,46,4690', N'万宁市', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469006', N'万宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'469007', N'4690', N'00,46,4690', N'东方市', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469007', N'东方市', N'', N'', N'', N'', N'3', N'1', N''), (N'469021', N'4690', N'00,46,4690', N'定安县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469021', N'定安县', N'', N'', N'', N'', N'3', N'1', N''), (N'469022', N'4690', N'00,46,4690', N'屯昌县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469022', N'屯昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'469023', N'4690', N'00,46,4690', N'澄迈县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469023', N'澄迈县', N'', N'', N'', N'', N'3', N'1', N''), (N'469024', N'4690', N'00,46,4690', N'临高县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469024', N'临高县', N'', N'', N'', N'', N'3', N'1', N''), (N'469025', N'4690', N'00,46,4690', N'白沙黎族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469025', N'白沙黎族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'469026', N'4690', N'00,46,4690', N'昌江黎族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469026', N'昌江黎族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'469027', N'4690', N'00,46,4690', N'乐东黎族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469027', N'乐东黎族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'469028', N'4690', N'00,46,4690', N'陵水黎族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469028', N'陵水黎族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'469029', N'4690', N'00,46,4690', N'保亭黎族苗族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469029', N'保亭黎族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'469030', N'4690', N'00,46,4690', N'琼中黎族苗族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469030', N'琼中黎族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'50', N'00', N'00', N'重庆市', N'50', N'重庆市', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'5001', N'50', N'00,50', N'重庆市', N'50', N'重庆市', N'5001', N'重庆市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'500101', N'5001', N'00,50,5001', N'万州区', N'50', N'重庆市', N'5001', N'重庆市', N'500101', N'万州区', N'', N'', N'', N'', N'3', N'1', N''), (N'500102', N'5001', N'00,50,5001', N'涪陵区', N'50', N'重庆市', N'5001', N'重庆市', N'500102', N'涪陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'500103', N'5001', N'00,50,5001', N'渝中区', N'50', N'重庆市', N'5001', N'重庆市', N'500103', N'渝中区', N'', N'', N'', N'', N'3', N'1', N''), (N'500104', N'5001', N'00,50,5001', N'大渡口区', N'50', N'重庆市', N'5001', N'重庆市', N'500104', N'大渡口区', N'', N'', N'', N'', N'3', N'1', N''), (N'500105', N'5001', N'00,50,5001', N'江北区', N'50', N'重庆市', N'5001', N'重庆市', N'500105', N'江北区', N'', N'', N'', N'', N'3', N'1', N''), (N'500106', N'5001', N'00,50,5001', N'沙坪坝区', N'50', N'重庆市', N'5001', N'重庆市', N'500106', N'沙坪坝区', N'', N'', N'', N'', N'3', N'1', N''), (N'500107', N'5001', N'00,50,5001', N'九龙坡区', N'50', N'重庆市', N'5001', N'重庆市', N'500107', N'九龙坡区', N'', N'', N'', N'', N'3', N'1', N''), (N'500108', N'5001', N'00,50,5001', N'南岸区', N'50', N'重庆市', N'5001', N'重庆市', N'500108', N'南岸区', N'', N'', N'', N'', N'3', N'1', N''), (N'500109', N'5001', N'00,50,5001', N'北碚区', N'50', N'重庆市', N'5001', N'重庆市', N'500109', N'北碚区', N'', N'', N'', N'', N'3', N'1', N''), (N'500110', N'5001', N'00,50,5001', N'綦江区', N'50', N'重庆市', N'5001', N'重庆市', N'500110', N'綦江区', N'', N'', N'', N'', N'3', N'1', N''), (N'500111', N'5001', N'00,50,5001', N'大足区', N'50', N'重庆市', N'5001', N'重庆市', N'500111', N'大足区', N'', N'', N'', N'', N'3', N'1', N''), (N'500112', N'5001', N'00,50,5001', N'渝北区', N'50', N'重庆市', N'5001', N'重庆市', N'500112', N'渝北区', N'', N'', N'', N'', N'3', N'1', N''), (N'500113', N'5001', N'00,50,5001', N'巴南区', N'50', N'重庆市', N'5001', N'重庆市', N'500113', N'巴南区', N'', N'', N'', N'', N'3', N'1', N''), (N'500114', N'5001', N'00,50,5001', N'黔江区', N'50', N'重庆市', N'5001', N'重庆市', N'500114', N'黔江区', N'', N'', N'', N'', N'3', N'1', N''), (N'500115', N'5001', N'00,50,5001', N'长寿区', N'50', N'重庆市', N'5001', N'重庆市', N'500115', N'长寿区', N'', N'', N'', N'', N'3', N'1', N''), (N'500116', N'5001', N'00,50,5001', N'江津区', N'50', N'重庆市', N'5001', N'重庆市', N'500116', N'江津区', N'', N'', N'', N'', N'3', N'1', N''), (N'500117', N'5001', N'00,50,5001', N'合川区', N'50', N'重庆市', N'5001', N'重庆市', N'500117', N'合川区', N'', N'', N'', N'', N'3', N'1', N''), (N'500118', N'5001', N'00,50,5001', N'永川区', N'50', N'重庆市', N'5001', N'重庆市', N'500118', N'永川区', N'', N'', N'', N'', N'3', N'1', N''), (N'500119', N'5001', N'00,50,5001', N'南川区', N'50', N'重庆市', N'5001', N'重庆市', N'500119', N'南川区', N'', N'', N'', N'', N'3', N'1', N''), (N'500120', N'5001', N'00,50,5001', N'璧山区', N'50', N'重庆市', N'5001', N'重庆市', N'500120', N'璧山区', N'', N'', N'', N'', N'3', N'1', N''), (N'500151', N'5001', N'00,50,5001', N'铜梁区', N'50', N'重庆市', N'5001', N'重庆市', N'500151', N'铜梁区', N'', N'', N'', N'', N'3', N'1', N''), (N'500152', N'5001', N'00,50,5001', N'潼南区', N'50', N'重庆市', N'5001', N'重庆市', N'500152', N'潼南区', N'', N'', N'', N'', N'3', N'1', N''), (N'500153', N'5001', N'00,50,5001', N'荣昌区', N'50', N'重庆市', N'5001', N'重庆市', N'500153', N'荣昌区', N'', N'', N'', N'', N'3', N'1', N''), (N'500154', N'5001', N'00,50,5001', N'开州区', N'50', N'重庆市', N'5001', N'重庆市', N'500154', N'开州区', N'', N'', N'', N'', N'3', N'1', N''), (N'500155', N'5001', N'00,50,5001', N'梁平区', N'50', N'重庆市', N'5001', N'重庆市', N'500155', N'梁平区', N'', N'', N'', N'', N'3', N'1', N''), (N'500156', N'5001', N'00,50,5001', N'武隆区', N'50', N'重庆市', N'5001', N'重庆市', N'500156', N'武隆区', N'', N'', N'', N'', N'3', N'1', N''), (N'5002', N'50', N'00,50', N'重庆市', N'50', N'重庆市', N'5002', N'重庆市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'500229', N'5002', N'00,50,5002', N'城口县', N'50', N'重庆市', N'5002', N'重庆市', N'500229', N'城口县', N'', N'', N'', N'', N'3', N'1', N''), (N'500230', N'5002', N'00,50,5002', N'丰都县', N'50', N'重庆市', N'5002', N'重庆市', N'500230', N'丰都县', N'', N'', N'', N'', N'3', N'1', N''), (N'500231', N'5002', N'00,50,5002', N'垫江县', N'50', N'重庆市', N'5002', N'重庆市', N'500231', N'垫江县', N'', N'', N'', N'', N'3', N'1', N''), (N'500233', N'5002', N'00,50,5002', N'忠县', N'50', N'重庆市', N'5002', N'重庆市', N'500233', N'忠县', N'', N'', N'', N'', N'3', N'1', N''), (N'500235', N'5002', N'00,50,5002', N'云阳县', N'50', N'重庆市', N'5002', N'重庆市', N'500235', N'云阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'500236', N'5002', N'00,50,5002', N'奉节县', N'50', N'重庆市', N'5002', N'重庆市', N'500236', N'奉节县', N'', N'', N'', N'', N'3', N'1', N''), (N'500237', N'5002', N'00,50,5002', N'巫山县', N'50', N'重庆市', N'5002', N'重庆市', N'500237', N'巫山县', N'', N'', N'', N'', N'3', N'1', N''), (N'500238', N'5002', N'00,50,5002', N'巫溪县', N'50', N'重庆市', N'5002', N'重庆市', N'500238', N'巫溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'500240', N'5002', N'00,50,5002', N'石柱土家族自治县', N'50', N'重庆市', N'5002', N'重庆市', N'500240', N'石柱土家族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'500241', N'5002', N'00,50,5002', N'秀山土家族苗族自治县', N'50', N'重庆市', N'5002', N'重庆市', N'500241', N'秀山土家族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'500242', N'5002', N'00,50,5002', N'酉阳土家族苗族自治县', N'50', N'重庆市', N'5002', N'重庆市', N'500242', N'酉阳土家族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'500243', N'5002', N'00,50,5002', N'彭水苗族土家族自治县', N'50', N'重庆市', N'5002', N'重庆市', N'500243', N'彭水苗族土家族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'51', N'00', N'00', N'四川省', N'51', N'四川省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'5101', N'51', N'00,51', N'成都市', N'51', N'四川省', N'5101', N'成都市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510104', N'5101', N'00,51,5101', N'锦江区', N'51', N'四川省', N'5101', N'成都市', N'510104', N'锦江区', N'', N'', N'', N'', N'3', N'1', N''), (N'510105', N'5101', N'00,51,5101', N'青羊区', N'51', N'四川省', N'5101', N'成都市', N'510105', N'青羊区', N'', N'', N'', N'', N'3', N'1', N''), (N'510106', N'5101', N'00,51,5101', N'金牛区', N'51', N'四川省', N'5101', N'成都市', N'510106', N'金牛区', N'', N'', N'', N'', N'3', N'1', N''), (N'510107', N'5101', N'00,51,5101', N'武侯区', N'51', N'四川省', N'5101', N'成都市', N'510107', N'武侯区', N'', N'', N'', N'', N'3', N'1', N''), (N'510108', N'5101', N'00,51,5101', N'成华区', N'51', N'四川省', N'5101', N'成都市', N'510108', N'成华区', N'', N'', N'', N'', N'3', N'1', N''), (N'510112', N'5101', N'00,51,5101', N'龙泉驿区', N'51', N'四川省', N'5101', N'成都市', N'510112', N'龙泉驿区', N'', N'', N'', N'', N'3', N'1', N''), (N'510113', N'5101', N'00,51,5101', N'青白江区', N'51', N'四川省', N'5101', N'成都市', N'510113', N'青白江区', N'', N'', N'', N'', N'3', N'1', N''), (N'510114', N'5101', N'00,51,5101', N'新都区', N'51', N'四川省', N'5101', N'成都市', N'510114', N'新都区', N'', N'', N'', N'', N'3', N'1', N''), (N'510115', N'5101', N'00,51,5101', N'温江区', N'51', N'四川省', N'5101', N'成都市', N'510115', N'温江区', N'', N'', N'', N'', N'3', N'1', N''), (N'510116', N'5101', N'00,51,5101', N'双流区', N'51', N'四川省', N'5101', N'成都市', N'510116', N'双流区', N'', N'', N'', N'', N'3', N'1', N''), (N'510117', N'5101', N'00,51,5101', N'郫都区', N'51', N'四川省', N'5101', N'成都市', N'510117', N'郫都区', N'', N'', N'', N'', N'3', N'1', N''), (N'510121', N'5101', N'00,51,5101', N'金堂县', N'51', N'四川省', N'5101', N'成都市', N'510121', N'金堂县', N'', N'', N'', N'', N'3', N'1', N''), (N'510129', N'5101', N'00,51,5101', N'大邑县', N'51', N'四川省', N'5101', N'成都市', N'510129', N'大邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'510131', N'5101', N'00,51,5101', N'蒲江县', N'51', N'四川省', N'5101', N'成都市', N'510131', N'蒲江县', N'', N'', N'', N'', N'3', N'1', N''), (N'510132', N'5101', N'00,51,5101', N'新津县', N'51', N'四川省', N'5101', N'成都市', N'510132', N'新津县', N'', N'', N'', N'', N'3', N'1', N''), (N'510181', N'5101', N'00,51,5101', N'都江堰市', N'51', N'四川省', N'5101', N'成都市', N'510181', N'都江堰市', N'', N'', N'', N'', N'3', N'1', N''), (N'510182', N'5101', N'00,51,5101', N'彭州市', N'51', N'四川省', N'5101', N'成都市', N'510182', N'彭州市', N'', N'', N'', N'', N'3', N'1', N''), (N'510183', N'5101', N'00,51,5101', N'邛崃市', N'51', N'四川省', N'5101', N'成都市', N'510183', N'邛崃市', N'', N'', N'', N'', N'3', N'1', N''), (N'510184', N'5101', N'00,51,5101', N'崇州市', N'51', N'四川省', N'5101', N'成都市', N'510184', N'崇州市', N'', N'', N'', N'', N'3', N'1', N''), (N'510185', N'5101', N'00,51,5101', N'简阳市', N'51', N'四川省', N'5101', N'成都市', N'510185', N'简阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'5103', N'51', N'00,51', N'自贡市', N'51', N'四川省', N'5103', N'自贡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510302', N'5103', N'00,51,5103', N'自流井区', N'51', N'四川省', N'5103', N'自贡市', N'510302', N'自流井区', N'', N'', N'', N'', N'3', N'1', N''), (N'510303', N'5103', N'00,51,5103', N'贡井区', N'51', N'四川省', N'5103', N'自贡市', N'510303', N'贡井区', N'', N'', N'', N'', N'3', N'1', N''), (N'510304', N'5103', N'00,51,5103', N'大安区', N'51', N'四川省', N'5103', N'自贡市', N'510304', N'大安区', N'', N'', N'', N'', N'3', N'1', N''), (N'510311', N'5103', N'00,51,5103', N'沿滩区', N'51', N'四川省', N'5103', N'自贡市', N'510311', N'沿滩区', N'', N'', N'', N'', N'3', N'1', N''), (N'510321', N'5103', N'00,51,5103', N'荣县', N'51', N'四川省', N'5103', N'自贡市', N'510321', N'荣县', N'', N'', N'', N'', N'3', N'1', N''), (N'510322', N'5103', N'00,51,5103', N'富顺县', N'51', N'四川省', N'5103', N'自贡市', N'510322', N'富顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'5104', N'51', N'00,51', N'攀枝花市', N'51', N'四川省', N'5104', N'攀枝花市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510402', N'5104', N'00,51,5104', N'东区', N'51', N'四川省', N'5104', N'攀枝花市', N'510402', N'东区', N'', N'', N'', N'', N'3', N'1', N''), (N'510403', N'5104', N'00,51,5104', N'西区', N'51', N'四川省', N'5104', N'攀枝花市', N'510403', N'西区', N'', N'', N'', N'', N'3', N'1', N''), (N'510411', N'5104', N'00,51,5104', N'仁和区', N'51', N'四川省', N'5104', N'攀枝花市', N'510411', N'仁和区', N'', N'', N'', N'', N'3', N'1', N''), (N'510421', N'5104', N'00,51,5104', N'米易县', N'51', N'四川省', N'5104', N'攀枝花市', N'510421', N'米易县', N'', N'', N'', N'', N'3', N'1', N''), (N'510422', N'5104', N'00,51,5104', N'盐边县', N'51', N'四川省', N'5104', N'攀枝花市', N'510422', N'盐边县', N'', N'', N'', N'', N'3', N'1', N''), (N'5105', N'51', N'00,51', N'泸州市', N'51', N'四川省', N'5105', N'泸州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510502', N'5105', N'00,51,5105', N'江阳区', N'51', N'四川省', N'5105', N'泸州市', N'510502', N'江阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'510503', N'5105', N'00,51,5105', N'纳溪区', N'51', N'四川省', N'5105', N'泸州市', N'510503', N'纳溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'510504', N'5105', N'00,51,5105', N'龙马潭区', N'51', N'四川省', N'5105', N'泸州市', N'510504', N'龙马潭区', N'', N'', N'', N'', N'3', N'1', N''), (N'510521', N'5105', N'00,51,5105', N'泸县', N'51', N'四川省', N'5105', N'泸州市', N'510521', N'泸县', N'', N'', N'', N'', N'3', N'1', N''), (N'510522', N'5105', N'00,51,5105', N'合江县', N'51', N'四川省', N'5105', N'泸州市', N'510522', N'合江县', N'', N'', N'', N'', N'3', N'1', N''), (N'510524', N'5105', N'00,51,5105', N'叙永县', N'51', N'四川省', N'5105', N'泸州市', N'510524', N'叙永县', N'', N'', N'', N'', N'3', N'1', N''), (N'510525', N'5105', N'00,51,5105', N'古蔺县', N'51', N'四川省', N'5105', N'泸州市', N'510525', N'古蔺县', N'', N'', N'', N'', N'3', N'1', N''), (N'5106', N'51', N'00,51', N'德阳市', N'51', N'四川省', N'5106', N'德阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510603', N'5106', N'00,51,5106', N'旌阳区', N'51', N'四川省', N'5106', N'德阳市', N'510603', N'旌阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'510604', N'5106', N'00,51,5106', N'罗江区', N'51', N'四川省', N'5106', N'德阳市', N'510604', N'罗江区', N'', N'', N'', N'', N'3', N'1', N''), (N'510623', N'5106', N'00,51,5106', N'中江县', N'51', N'四川省', N'5106', N'德阳市', N'510623', N'中江县', N'', N'', N'', N'', N'3', N'1', N''), (N'510681', N'5106', N'00,51,5106', N'广汉市', N'51', N'四川省', N'5106', N'德阳市', N'510681', N'广汉市', N'', N'', N'', N'', N'3', N'1', N''), (N'510682', N'5106', N'00,51,5106', N'什邡市', N'51', N'四川省', N'5106', N'德阳市', N'510682', N'什邡市', N'', N'', N'', N'', N'3', N'1', N''), (N'510683', N'5106', N'00,51,5106', N'绵竹市', N'51', N'四川省', N'5106', N'德阳市', N'510683', N'绵竹市', N'', N'', N'', N'', N'3', N'1', N''), (N'5107', N'51', N'00,51', N'绵阳市', N'51', N'四川省', N'5107', N'绵阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510703', N'5107', N'00,51,5107', N'涪城区', N'51', N'四川省', N'5107', N'绵阳市', N'510703', N'涪城区', N'', N'', N'', N'', N'3', N'1', N''), (N'510704', N'5107', N'00,51,5107', N'游仙区', N'51', N'四川省', N'5107', N'绵阳市', N'510704', N'游仙区', N'', N'', N'', N'', N'3', N'1', N''), (N'510705', N'5107', N'00,51,5107', N'安州区', N'51', N'四川省', N'5107', N'绵阳市', N'510705', N'安州区', N'', N'', N'', N'', N'3', N'1', N''), (N'510722', N'5107', N'00,51,5107', N'三台县', N'51', N'四川省', N'5107', N'绵阳市', N'510722', N'三台县', N'', N'', N'', N'', N'3', N'1', N''), (N'510723', N'5107', N'00,51,5107', N'盐亭县', N'51', N'四川省', N'5107', N'绵阳市', N'510723', N'盐亭县', N'', N'', N'', N'', N'3', N'1', N''), (N'510725', N'5107', N'00,51,5107', N'梓潼县', N'51', N'四川省', N'5107', N'绵阳市', N'510725', N'梓潼县', N'', N'', N'', N'', N'3', N'1', N''), (N'510726', N'5107', N'00,51,5107', N'北川羌族自治县', N'51', N'四川省', N'5107', N'绵阳市', N'510726', N'北川羌族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'510727', N'5107', N'00,51,5107', N'平武县', N'51', N'四川省', N'5107', N'绵阳市', N'510727', N'平武县', N'', N'', N'', N'', N'3', N'1', N''), (N'510781', N'5107', N'00,51,5107', N'江油市', N'51', N'四川省', N'5107', N'绵阳市', N'510781', N'江油市', N'', N'', N'', N'', N'3', N'1', N''), (N'5108', N'51', N'00,51', N'广元市', N'51', N'四川省', N'5108', N'广元市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510802', N'5108', N'00,51,5108', N'利州区', N'51', N'四川省', N'5108', N'广元市', N'510802', N'利州区', N'', N'', N'', N'', N'3', N'1', N''), (N'510811', N'5108', N'00,51,5108', N'昭化区', N'51', N'四川省', N'5108', N'广元市', N'510811', N'昭化区', N'', N'', N'', N'', N'3', N'1', N''), (N'510812', N'5108', N'00,51,5108', N'朝天区', N'51', N'四川省', N'5108', N'广元市', N'510812', N'朝天区', N'', N'', N'', N'', N'3', N'1', N''), (N'510821', N'5108', N'00,51,5108', N'旺苍县', N'51', N'四川省', N'5108', N'广元市', N'510821', N'旺苍县', N'', N'', N'', N'', N'3', N'1', N''), (N'510822', N'5108', N'00,51,5108', N'青川县', N'51', N'四川省', N'5108', N'广元市', N'510822', N'青川县', N'', N'', N'', N'', N'3', N'1', N''), (N'510823', N'5108', N'00,51,5108', N'剑阁县', N'51', N'四川省', N'5108', N'广元市', N'510823', N'剑阁县', N'', N'', N'', N'', N'3', N'1', N''), (N'510824', N'5108', N'00,51,5108', N'苍溪县', N'51', N'四川省', N'5108', N'广元市', N'510824', N'苍溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'5109', N'51', N'00,51', N'遂宁市', N'51', N'四川省', N'5109', N'遂宁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510903', N'5109', N'00,51,5109', N'船山区', N'51', N'四川省', N'5109', N'遂宁市', N'510903', N'船山区', N'', N'', N'', N'', N'3', N'1', N''), (N'510904', N'5109', N'00,51,5109', N'安居区', N'51', N'四川省', N'5109', N'遂宁市', N'510904', N'安居区', N'', N'', N'', N'', N'3', N'1', N''), (N'510921', N'5109', N'00,51,5109', N'蓬溪县', N'51', N'四川省', N'5109', N'遂宁市', N'510921', N'蓬溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'510923', N'5109', N'00,51,5109', N'大英县', N'51', N'四川省', N'5109', N'遂宁市', N'510923', N'大英县', N'', N'', N'', N'', N'3', N'1', N''), (N'510981', N'5109', N'00,51,5109', N'射洪市', N'51', N'四川省', N'5109', N'遂宁市', N'510981', N'射洪市', N'', N'', N'', N'', N'3', N'1', N''), (N'5110', N'51', N'00,51', N'内江市', N'51', N'四川省', N'5110', N'内江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511002', N'5110', N'00,51,5110', N'市中区', N'51', N'四川省', N'5110', N'内江市', N'511002', N'市中区', N'', N'', N'', N'', N'3', N'1', N''), (N'511011', N'5110', N'00,51,5110', N'东兴区', N'51', N'四川省', N'5110', N'内江市', N'511011', N'东兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'511024', N'5110', N'00,51,5110', N'威远县', N'51', N'四川省', N'5110', N'内江市', N'511024', N'威远县', N'', N'', N'', N'', N'3', N'1', N''), (N'511025', N'5110', N'00,51,5110', N'资中县', N'51', N'四川省', N'5110', N'内江市', N'511025', N'资中县', N'', N'', N'', N'', N'3', N'1', N''), (N'511083', N'5110', N'00,51,5110', N'隆昌市', N'51', N'四川省', N'5110', N'内江市', N'511083', N'隆昌市', N'', N'', N'', N'', N'3', N'1', N''), (N'5111', N'51', N'00,51', N'乐山市', N'51', N'四川省', N'5111', N'乐山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511102', N'5111', N'00,51,5111', N'市中区', N'51', N'四川省', N'5111', N'乐山市', N'511102', N'市中区', N'', N'', N'', N'', N'3', N'1', N''), (N'511111', N'5111', N'00,51,5111', N'沙湾区', N'51', N'四川省', N'5111', N'乐山市', N'511111', N'沙湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'511112', N'5111', N'00,51,5111', N'五通桥区', N'51', N'四川省', N'5111', N'乐山市', N'511112', N'五通桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'511113', N'5111', N'00,51,5111', N'金口河区', N'51', N'四川省', N'5111', N'乐山市', N'511113', N'金口河区', N'', N'', N'', N'', N'3', N'1', N''), (N'511123', N'5111', N'00,51,5111', N'犍为县', N'51', N'四川省', N'5111', N'乐山市', N'511123', N'犍为县', N'', N'', N'', N'', N'3', N'1', N''), (N'511124', N'5111', N'00,51,5111', N'井研县', N'51', N'四川省', N'5111', N'乐山市', N'511124', N'井研县', N'', N'', N'', N'', N'3', N'1', N''), (N'511126', N'5111', N'00,51,5111', N'夹江县', N'51', N'四川省', N'5111', N'乐山市', N'511126', N'夹江县', N'', N'', N'', N'', N'3', N'1', N''), (N'511129', N'5111', N'00,51,5111', N'沐川县', N'51', N'四川省', N'5111', N'乐山市', N'511129', N'沐川县', N'', N'', N'', N'', N'3', N'1', N''), (N'511132', N'5111', N'00,51,5111', N'峨边彝族自治县', N'51', N'四川省', N'5111', N'乐山市', N'511132', N'峨边彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'511133', N'5111', N'00,51,5111', N'马边彝族自治县', N'51', N'四川省', N'5111', N'乐山市', N'511133', N'马边彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'511181', N'5111', N'00,51,5111', N'峨眉山市', N'51', N'四川省', N'5111', N'乐山市', N'511181', N'峨眉山市', N'', N'', N'', N'', N'3', N'1', N''), (N'5113', N'51', N'00,51', N'南充市', N'51', N'四川省', N'5113', N'南充市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511302', N'5113', N'00,51,5113', N'顺庆区', N'51', N'四川省', N'5113', N'南充市', N'511302', N'顺庆区', N'', N'', N'', N'', N'3', N'1', N''), (N'511303', N'5113', N'00,51,5113', N'高坪区', N'51', N'四川省', N'5113', N'南充市', N'511303', N'高坪区', N'', N'', N'', N'', N'3', N'1', N''), (N'511304', N'5113', N'00,51,5113', N'嘉陵区', N'51', N'四川省', N'5113', N'南充市', N'511304', N'嘉陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'511321', N'5113', N'00,51,5113', N'南部县', N'51', N'四川省', N'5113', N'南充市', N'511321', N'南部县', N'', N'', N'', N'', N'3', N'1', N''), (N'511322', N'5113', N'00,51,5113', N'营山县', N'51', N'四川省', N'5113', N'南充市', N'511322', N'营山县', N'', N'', N'', N'', N'3', N'1', N''), (N'511323', N'5113', N'00,51,5113', N'蓬安县', N'51', N'四川省', N'5113', N'南充市', N'511323', N'蓬安县', N'', N'', N'', N'', N'3', N'1', N''), (N'511324', N'5113', N'00,51,5113', N'仪陇县', N'51', N'四川省', N'5113', N'南充市', N'511324', N'仪陇县', N'', N'', N'', N'', N'3', N'1', N''), (N'511325', N'5113', N'00,51,5113', N'西充县', N'51', N'四川省', N'5113', N'南充市', N'511325', N'西充县', N'', N'', N'', N'', N'3', N'1', N''), (N'511381', N'5113', N'00,51,5113', N'阆中市', N'51', N'四川省', N'5113', N'南充市', N'511381', N'阆中市', N'', N'', N'', N'', N'3', N'1', N''), (N'5114', N'51', N'00,51', N'眉山市', N'51', N'四川省', N'5114', N'眉山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511402', N'5114', N'00,51,5114', N'东坡区', N'51', N'四川省', N'5114', N'眉山市', N'511402', N'东坡区', N'', N'', N'', N'', N'3', N'1', N''), (N'511403', N'5114', N'00,51,5114', N'彭山区', N'51', N'四川省', N'5114', N'眉山市', N'511403', N'彭山区', N'', N'', N'', N'', N'3', N'1', N''), (N'511421', N'5114', N'00,51,5114', N'仁寿县', N'51', N'四川省', N'5114', N'眉山市', N'511421', N'仁寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'511423', N'5114', N'00,51,5114', N'洪雅县', N'51', N'四川省', N'5114', N'眉山市', N'511423', N'洪雅县', N'', N'', N'', N'', N'3', N'1', N''), (N'511424', N'5114', N'00,51,5114', N'丹棱县', N'51', N'四川省', N'5114', N'眉山市', N'511424', N'丹棱县', N'', N'', N'', N'', N'3', N'1', N''), (N'511425', N'5114', N'00,51,5114', N'青神县', N'51', N'四川省', N'5114', N'眉山市', N'511425', N'青神县', N'', N'', N'', N'', N'3', N'1', N''), (N'5115', N'51', N'00,51', N'宜宾市', N'51', N'四川省', N'5115', N'宜宾市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511502', N'5115', N'00,51,5115', N'翠屏区', N'51', N'四川省', N'5115', N'宜宾市', N'511502', N'翠屏区', N'', N'', N'', N'', N'3', N'1', N''), (N'511503', N'5115', N'00,51,5115', N'南溪区', N'51', N'四川省', N'5115', N'宜宾市', N'511503', N'南溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'511504', N'5115', N'00,51,5115', N'叙州区', N'51', N'四川省', N'5115', N'宜宾市', N'511504', N'叙州区', N'', N'', N'', N'', N'3', N'1', N''), (N'511523', N'5115', N'00,51,5115', N'江安县', N'51', N'四川省', N'5115', N'宜宾市', N'511523', N'江安县', N'', N'', N'', N'', N'3', N'1', N''), (N'511524', N'5115', N'00,51,5115', N'长宁县', N'51', N'四川省', N'5115', N'宜宾市', N'511524', N'长宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'511525', N'5115', N'00,51,5115', N'高县', N'51', N'四川省', N'5115', N'宜宾市', N'511525', N'高县', N'', N'', N'', N'', N'3', N'1', N''), (N'511526', N'5115', N'00,51,5115', N'珙县', N'51', N'四川省', N'5115', N'宜宾市', N'511526', N'珙县', N'', N'', N'', N'', N'3', N'1', N''), (N'511527', N'5115', N'00,51,5115', N'筠连县', N'51', N'四川省', N'5115', N'宜宾市', N'511527', N'筠连县', N'', N'', N'', N'', N'3', N'1', N''), (N'511528', N'5115', N'00,51,5115', N'兴文县', N'51', N'四川省', N'5115', N'宜宾市', N'511528', N'兴文县', N'', N'', N'', N'', N'3', N'1', N''), (N'511529', N'5115', N'00,51,5115', N'屏山县', N'51', N'四川省', N'5115', N'宜宾市', N'511529', N'屏山县', N'', N'', N'', N'', N'3', N'1', N''), (N'5116', N'51', N'00,51', N'广安市', N'51', N'四川省', N'5116', N'广安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511602', N'5116', N'00,51,5116', N'广安区', N'51', N'四川省', N'5116', N'广安市', N'511602', N'广安区', N'', N'', N'', N'', N'3', N'1', N''), (N'511603', N'5116', N'00,51,5116', N'前锋区', N'51', N'四川省', N'5116', N'广安市', N'511603', N'前锋区', N'', N'', N'', N'', N'3', N'1', N''), (N'511621', N'5116', N'00,51,5116', N'岳池县', N'51', N'四川省', N'5116', N'广安市', N'511621', N'岳池县', N'', N'', N'', N'', N'3', N'1', N''), (N'511622', N'5116', N'00,51,5116', N'武胜县', N'51', N'四川省', N'5116', N'广安市', N'511622', N'武胜县', N'', N'', N'', N'', N'3', N'1', N''), (N'511623', N'5116', N'00,51,5116', N'邻水县', N'51', N'四川省', N'5116', N'广安市', N'511623', N'邻水县', N'', N'', N'', N'', N'3', N'1', N''), (N'511681', N'5116', N'00,51,5116', N'华蓥市', N'51', N'四川省', N'5116', N'广安市', N'511681', N'华蓥市', N'', N'', N'', N'', N'3', N'1', N''), (N'5117', N'51', N'00,51', N'达州市', N'51', N'四川省', N'5117', N'达州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511702', N'5117', N'00,51,5117', N'通川区', N'51', N'四川省', N'5117', N'达州市', N'511702', N'通川区', N'', N'', N'', N'', N'3', N'1', N''), (N'511703', N'5117', N'00,51,5117', N'达川区', N'51', N'四川省', N'5117', N'达州市', N'511703', N'达川区', N'', N'', N'', N'', N'3', N'1', N''), (N'511722', N'5117', N'00,51,5117', N'宣汉县', N'51', N'四川省', N'5117', N'达州市', N'511722', N'宣汉县', N'', N'', N'', N'', N'3', N'1', N''), (N'511723', N'5117', N'00,51,5117', N'开江县', N'51', N'四川省', N'5117', N'达州市', N'511723', N'开江县', N'', N'', N'', N'', N'3', N'1', N''), (N'511724', N'5117', N'00,51,5117', N'大竹县', N'51', N'四川省', N'5117', N'达州市', N'511724', N'大竹县', N'', N'', N'', N'', N'3', N'1', N''), (N'511725', N'5117', N'00,51,5117', N'渠县', N'51', N'四川省', N'5117', N'达州市', N'511725', N'渠县', N'', N'', N'', N'', N'3', N'1', N''), (N'511781', N'5117', N'00,51,5117', N'万源市', N'51', N'四川省', N'5117', N'达州市', N'511781', N'万源市', N'', N'', N'', N'', N'3', N'1', N''), (N'5118', N'51', N'00,51', N'雅安市', N'51', N'四川省', N'5118', N'雅安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511802', N'5118', N'00,51,5118', N'雨城区', N'51', N'四川省', N'5118', N'雅安市', N'511802', N'雨城区', N'', N'', N'', N'', N'3', N'1', N''), (N'511803', N'5118', N'00,51,5118', N'名山区', N'51', N'四川省', N'5118', N'雅安市', N'511803', N'名山区', N'', N'', N'', N'', N'3', N'1', N''), (N'511822', N'5118', N'00,51,5118', N'荥经县', N'51', N'四川省', N'5118', N'雅安市', N'511822', N'荥经县', N'', N'', N'', N'', N'3', N'1', N''), (N'511823', N'5118', N'00,51,5118', N'汉源县', N'51', N'四川省', N'5118', N'雅安市', N'511823', N'汉源县', N'', N'', N'', N'', N'3', N'1', N''), (N'511824', N'5118', N'00,51,5118', N'石棉县', N'51', N'四川省', N'5118', N'雅安市', N'511824', N'石棉县', N'', N'', N'', N'', N'3', N'1', N''), (N'511825', N'5118', N'00,51,5118', N'天全县', N'51', N'四川省', N'5118', N'雅安市', N'511825', N'天全县', N'', N'', N'', N'', N'3', N'1', N''), (N'511826', N'5118', N'00,51,5118', N'芦山县', N'51', N'四川省', N'5118', N'雅安市', N'511826', N'芦山县', N'', N'', N'', N'', N'3', N'1', N''), (N'511827', N'5118', N'00,51,5118', N'宝兴县', N'51', N'四川省', N'5118', N'雅安市', N'511827', N'宝兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'5119', N'51', N'00,51', N'巴中市', N'51', N'四川省', N'5119', N'巴中市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511902', N'5119', N'00,51,5119', N'巴州区', N'51', N'四川省', N'5119', N'巴中市', N'511902', N'巴州区', N'', N'', N'', N'', N'3', N'1', N''), (N'511903', N'5119', N'00,51,5119', N'恩阳区', N'51', N'四川省', N'5119', N'巴中市', N'511903', N'恩阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'511921', N'5119', N'00,51,5119', N'通江县', N'51', N'四川省', N'5119', N'巴中市', N'511921', N'通江县', N'', N'', N'', N'', N'3', N'1', N''), (N'511922', N'5119', N'00,51,5119', N'南江县', N'51', N'四川省', N'5119', N'巴中市', N'511922', N'南江县', N'', N'', N'', N'', N'3', N'1', N''), (N'511923', N'5119', N'00,51,5119', N'平昌县', N'51', N'四川省', N'5119', N'巴中市', N'511923', N'平昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'5120', N'51', N'00,51', N'资阳市', N'51', N'四川省', N'5120', N'资阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'512002', N'5120', N'00,51,5120', N'雁江区', N'51', N'四川省', N'5120', N'资阳市', N'512002', N'雁江区', N'', N'', N'', N'', N'3', N'1', N''), (N'512021', N'5120', N'00,51,5120', N'安岳县', N'51', N'四川省', N'5120', N'资阳市', N'512021', N'安岳县', N'', N'', N'', N'', N'3', N'1', N''), (N'512022', N'5120', N'00,51,5120', N'乐至县', N'51', N'四川省', N'5120', N'资阳市', N'512022', N'乐至县', N'', N'', N'', N'', N'3', N'1', N''), (N'5132', N'51', N'00,51', N'阿坝藏族羌族自治州', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'513201', N'5132', N'00,51,5132', N'马尔康市', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513201', N'马尔康市', N'', N'', N'', N'', N'3', N'1', N''), (N'513221', N'5132', N'00,51,5132', N'汶川县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513221', N'汶川县', N'', N'', N'', N'', N'3', N'1', N''), (N'513222', N'5132', N'00,51,5132', N'理县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513222', N'理县', N'', N'', N'', N'', N'3', N'1', N''), (N'513223', N'5132', N'00,51,5132', N'茂县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513223', N'茂县', N'', N'', N'', N'', N'3', N'1', N''), (N'513224', N'5132', N'00,51,5132', N'松潘县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513224', N'松潘县', N'', N'', N'', N'', N'3', N'1', N''), (N'513225', N'5132', N'00,51,5132', N'九寨沟县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513225', N'九寨沟县', N'', N'', N'', N'', N'3', N'1', N''), (N'513226', N'5132', N'00,51,5132', N'金川县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513226', N'金川县', N'', N'', N'', N'', N'3', N'1', N''), (N'513227', N'5132', N'00,51,5132', N'小金县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513227', N'小金县', N'', N'', N'', N'', N'3', N'1', N''), (N'513228', N'5132', N'00,51,5132', N'黑水县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513228', N'黑水县', N'', N'', N'', N'', N'3', N'1', N''), (N'513230', N'5132', N'00,51,5132', N'壤塘县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513230', N'壤塘县', N'', N'', N'', N'', N'3', N'1', N''), (N'513231', N'5132', N'00,51,5132', N'阿坝县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513231', N'阿坝县', N'', N'', N'', N'', N'3', N'1', N''), (N'513232', N'5132', N'00,51,5132', N'若尔盖县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513232', N'若尔盖县', N'', N'', N'', N'', N'3', N'1', N''), (N'513233', N'5132', N'00,51,5132', N'红原县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513233', N'红原县', N'', N'', N'', N'', N'3', N'1', N''), (N'5133', N'51', N'00,51', N'甘孜藏族自治州', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'513301', N'5133', N'00,51,5133', N'康定市', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513301', N'康定市', N'', N'', N'', N'', N'3', N'1', N''), (N'513322', N'5133', N'00,51,5133', N'泸定县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513322', N'泸定县', N'', N'', N'', N'', N'3', N'1', N''), (N'513323', N'5133', N'00,51,5133', N'丹巴县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513323', N'丹巴县', N'', N'', N'', N'', N'3', N'1', N''), (N'513324', N'5133', N'00,51,5133', N'九龙县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513324', N'九龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'513325', N'5133', N'00,51,5133', N'雅江县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513325', N'雅江县', N'', N'', N'', N'', N'3', N'1', N''), (N'513326', N'5133', N'00,51,5133', N'道孚县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513326', N'道孚县', N'', N'', N'', N'', N'3', N'1', N''), (N'513327', N'5133', N'00,51,5133', N'炉霍县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513327', N'炉霍县', N'', N'', N'', N'', N'3', N'1', N''), (N'513328', N'5133', N'00,51,5133', N'甘孜县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513328', N'甘孜县', N'', N'', N'', N'', N'3', N'1', N''), (N'513329', N'5133', N'00,51,5133', N'新龙县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513329', N'新龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'513330', N'5133', N'00,51,5133', N'德格县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513330', N'德格县', N'', N'', N'', N'', N'3', N'1', N''), (N'513331', N'5133', N'00,51,5133', N'白玉县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513331', N'白玉县', N'', N'', N'', N'', N'3', N'1', N''), (N'513332', N'5133', N'00,51,5133', N'石渠县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513332', N'石渠县', N'', N'', N'', N'', N'3', N'1', N''), (N'513333', N'5133', N'00,51,5133', N'色达县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513333', N'色达县', N'', N'', N'', N'', N'3', N'1', N''), (N'513334', N'5133', N'00,51,5133', N'理塘县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513334', N'理塘县', N'', N'', N'', N'', N'3', N'1', N''), (N'513335', N'5133', N'00,51,5133', N'巴塘县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513335', N'巴塘县', N'', N'', N'', N'', N'3', N'1', N''), (N'513336', N'5133', N'00,51,5133', N'乡城县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513336', N'乡城县', N'', N'', N'', N'', N'3', N'1', N''), (N'513337', N'5133', N'00,51,5133', N'稻城县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513337', N'稻城县', N'', N'', N'', N'', N'3', N'1', N''), (N'513338', N'5133', N'00,51,5133', N'得荣县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513338', N'得荣县', N'', N'', N'', N'', N'3', N'1', N''), (N'5134', N'51', N'00,51', N'凉山彝族自治州', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'513401', N'5134', N'00,51,5134', N'西昌市', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513401', N'西昌市', N'', N'', N'', N'', N'3', N'1', N''), (N'513422', N'5134', N'00,51,5134', N'木里藏族自治县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513422', N'木里藏族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'513423', N'5134', N'00,51,5134', N'盐源县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513423', N'盐源县', N'', N'', N'', N'', N'3', N'1', N''), (N'513424', N'5134', N'00,51,5134', N'德昌县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513424', N'德昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'513425', N'5134', N'00,51,5134', N'会理县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513425', N'会理县', N'', N'', N'', N'', N'3', N'1', N''), (N'513426', N'5134', N'00,51,5134', N'会东县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513426', N'会东县', N'', N'', N'', N'', N'3', N'1', N''), (N'513427', N'5134', N'00,51,5134', N'宁南县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513427', N'宁南县', N'', N'', N'', N'', N'3', N'1', N''), (N'513428', N'5134', N'00,51,5134', N'普格县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513428', N'普格县', N'', N'', N'', N'', N'3', N'1', N''), (N'513429', N'5134', N'00,51,5134', N'布拖县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513429', N'布拖县', N'', N'', N'', N'', N'3', N'1', N''), (N'513430', N'5134', N'00,51,5134', N'金阳县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513430', N'金阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'513431', N'5134', N'00,51,5134', N'昭觉县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513431', N'昭觉县', N'', N'', N'', N'', N'3', N'1', N''), (N'513432', N'5134', N'00,51,5134', N'喜德县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513432', N'喜德县', N'', N'', N'', N'', N'3', N'1', N''), (N'513433', N'5134', N'00,51,5134', N'冕宁县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513433', N'冕宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'513434', N'5134', N'00,51,5134', N'越西县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513434', N'越西县', N'', N'', N'', N'', N'3', N'1', N''), (N'513435', N'5134', N'00,51,5134', N'甘洛县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513435', N'甘洛县', N'', N'', N'', N'', N'3', N'1', N''), (N'513436', N'5134', N'00,51,5134', N'美姑县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513436', N'美姑县', N'', N'', N'', N'', N'3', N'1', N''), (N'513437', N'5134', N'00,51,5134', N'雷波县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513437', N'雷波县', N'', N'', N'', N'', N'3', N'1', N''), (N'52', N'00', N'00', N'贵州省', N'52', N'贵州省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'5201', N'52', N'00,52', N'贵阳市', N'52', N'贵州省', N'5201', N'贵阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520102', N'5201', N'00,52,5201', N'南明区', N'52', N'贵州省', N'5201', N'贵阳市', N'520102', N'南明区', N'', N'', N'', N'', N'3', N'1', N''), (N'520103', N'5201', N'00,52,5201', N'云岩区', N'52', N'贵州省', N'5201', N'贵阳市', N'520103', N'云岩区', N'', N'', N'', N'', N'3', N'1', N''), (N'520111', N'5201', N'00,52,5201', N'花溪区', N'52', N'贵州省', N'5201', N'贵阳市', N'520111', N'花溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'520112', N'5201', N'00,52,5201', N'乌当区', N'52', N'贵州省', N'5201', N'贵阳市', N'520112', N'乌当区', N'', N'', N'', N'', N'3', N'1', N''), (N'520113', N'5201', N'00,52,5201', N'白云区', N'52', N'贵州省', N'5201', N'贵阳市', N'520113', N'白云区', N'', N'', N'', N'', N'3', N'1', N''), (N'520115', N'5201', N'00,52,5201', N'观山湖区', N'52', N'贵州省', N'5201', N'贵阳市', N'520115', N'观山湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'520121', N'5201', N'00,52,5201', N'开阳县', N'52', N'贵州省', N'5201', N'贵阳市', N'520121', N'开阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'520122', N'5201', N'00,52,5201', N'息烽县', N'52', N'贵州省', N'5201', N'贵阳市', N'520122', N'息烽县', N'', N'', N'', N'', N'3', N'1', N''), (N'520123', N'5201', N'00,52,5201', N'修文县', N'52', N'贵州省', N'5201', N'贵阳市', N'520123', N'修文县', N'', N'', N'', N'', N'3', N'1', N''), (N'520181', N'5201', N'00,52,5201', N'清镇市', N'52', N'贵州省', N'5201', N'贵阳市', N'520181', N'清镇市', N'', N'', N'', N'', N'3', N'1', N''), (N'5202', N'52', N'00,52', N'六盘水市', N'52', N'贵州省', N'5202', N'六盘水市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520201', N'5202', N'00,52,5202', N'钟山区', N'52', N'贵州省', N'5202', N'六盘水市', N'520201', N'钟山区', N'', N'', N'', N'', N'3', N'1', N''), (N'520203', N'5202', N'00,52,5202', N'六枝特区', N'52', N'贵州省', N'5202', N'六盘水市', N'520203', N'六枝特区', N'', N'', N'', N'', N'3', N'1', N''), (N'520221', N'5202', N'00,52,5202', N'水城县', N'52', N'贵州省', N'5202', N'六盘水市', N'520221', N'水城县', N'', N'', N'', N'', N'3', N'1', N''), (N'520281', N'5202', N'00,52,5202', N'盘州市', N'52', N'贵州省', N'5202', N'六盘水市', N'520281', N'盘州市', N'', N'', N'', N'', N'3', N'1', N''), (N'5203', N'52', N'00,52', N'遵义市', N'52', N'贵州省', N'5203', N'遵义市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520302', N'5203', N'00,52,5203', N'红花岗区', N'52', N'贵州省', N'5203', N'遵义市', N'520302', N'红花岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'520303', N'5203', N'00,52,5203', N'汇川区', N'52', N'贵州省', N'5203', N'遵义市', N'520303', N'汇川区', N'', N'', N'', N'', N'3', N'1', N''), (N'520304', N'5203', N'00,52,5203', N'播州区', N'52', N'贵州省', N'5203', N'遵义市', N'520304', N'播州区', N'', N'', N'', N'', N'3', N'1', N''), (N'520322', N'5203', N'00,52,5203', N'桐梓县', N'52', N'贵州省', N'5203', N'遵义市', N'520322', N'桐梓县', N'', N'', N'', N'', N'3', N'1', N''), (N'520323', N'5203', N'00,52,5203', N'绥阳县', N'52', N'贵州省', N'5203', N'遵义市', N'520323', N'绥阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'520324', N'5203', N'00,52,5203', N'正安县', N'52', N'贵州省', N'5203', N'遵义市', N'520324', N'正安县', N'', N'', N'', N'', N'3', N'1', N''), (N'520325', N'5203', N'00,52,5203', N'道真仡佬族苗族自治县', N'52', N'贵州省', N'5203', N'遵义市', N'520325', N'道真仡佬族苗族自治县', N'', N'', N'', N'', N'3', N'1', N'')
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'520326', N'5203', N'00,52,5203', N'务川仡佬族苗族自治县', N'52', N'贵州省', N'5203', N'遵义市', N'520326', N'务川仡佬族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520327', N'5203', N'00,52,5203', N'凤冈县', N'52', N'贵州省', N'5203', N'遵义市', N'520327', N'凤冈县', N'', N'', N'', N'', N'3', N'1', N''), (N'520328', N'5203', N'00,52,5203', N'湄潭县', N'52', N'贵州省', N'5203', N'遵义市', N'520328', N'湄潭县', N'', N'', N'', N'', N'3', N'1', N''), (N'520329', N'5203', N'00,52,5203', N'余庆县', N'52', N'贵州省', N'5203', N'遵义市', N'520329', N'余庆县', N'', N'', N'', N'', N'3', N'1', N''), (N'520330', N'5203', N'00,52,5203', N'习水县', N'52', N'贵州省', N'5203', N'遵义市', N'520330', N'习水县', N'', N'', N'', N'', N'3', N'1', N''), (N'520381', N'5203', N'00,52,5203', N'赤水市', N'52', N'贵州省', N'5203', N'遵义市', N'520381', N'赤水市', N'', N'', N'', N'', N'3', N'1', N''), (N'520382', N'5203', N'00,52,5203', N'仁怀市', N'52', N'贵州省', N'5203', N'遵义市', N'520382', N'仁怀市', N'', N'', N'', N'', N'3', N'1', N''), (N'5204', N'52', N'00,52', N'安顺市', N'52', N'贵州省', N'5204', N'安顺市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520402', N'5204', N'00,52,5204', N'西秀区', N'52', N'贵州省', N'5204', N'安顺市', N'520402', N'西秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'520403', N'5204', N'00,52,5204', N'平坝区', N'52', N'贵州省', N'5204', N'安顺市', N'520403', N'平坝区', N'', N'', N'', N'', N'3', N'1', N''), (N'520422', N'5204', N'00,52,5204', N'普定县', N'52', N'贵州省', N'5204', N'安顺市', N'520422', N'普定县', N'', N'', N'', N'', N'3', N'1', N''), (N'520423', N'5204', N'00,52,5204', N'镇宁布依族苗族自治县', N'52', N'贵州省', N'5204', N'安顺市', N'520423', N'镇宁布依族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520424', N'5204', N'00,52,5204', N'关岭布依族苗族自治县', N'52', N'贵州省', N'5204', N'安顺市', N'520424', N'关岭布依族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520425', N'5204', N'00,52,5204', N'紫云苗族布依族自治县', N'52', N'贵州省', N'5204', N'安顺市', N'520425', N'紫云苗族布依族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5205', N'52', N'00,52', N'毕节市', N'52', N'贵州省', N'5205', N'毕节市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520502', N'5205', N'00,52,5205', N'七星关区', N'52', N'贵州省', N'5205', N'毕节市', N'520502', N'七星关区', N'', N'', N'', N'', N'3', N'1', N''), (N'520521', N'5205', N'00,52,5205', N'大方县', N'52', N'贵州省', N'5205', N'毕节市', N'520521', N'大方县', N'', N'', N'', N'', N'3', N'1', N''), (N'520522', N'5205', N'00,52,5205', N'黔西县', N'52', N'贵州省', N'5205', N'毕节市', N'520522', N'黔西县', N'', N'', N'', N'', N'3', N'1', N''), (N'520523', N'5205', N'00,52,5205', N'金沙县', N'52', N'贵州省', N'5205', N'毕节市', N'520523', N'金沙县', N'', N'', N'', N'', N'3', N'1', N''), (N'520524', N'5205', N'00,52,5205', N'织金县', N'52', N'贵州省', N'5205', N'毕节市', N'520524', N'织金县', N'', N'', N'', N'', N'3', N'1', N''), (N'520525', N'5205', N'00,52,5205', N'纳雍县', N'52', N'贵州省', N'5205', N'毕节市', N'520525', N'纳雍县', N'', N'', N'', N'', N'3', N'1', N''), (N'520526', N'5205', N'00,52,5205', N'威宁彝族回族苗族自治县', N'52', N'贵州省', N'5205', N'毕节市', N'520526', N'威宁彝族回族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520527', N'5205', N'00,52,5205', N'赫章县', N'52', N'贵州省', N'5205', N'毕节市', N'520527', N'赫章县', N'', N'', N'', N'', N'3', N'1', N''), (N'5206', N'52', N'00,52', N'铜仁市', N'52', N'贵州省', N'5206', N'铜仁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520602', N'5206', N'00,52,5206', N'碧江区', N'52', N'贵州省', N'5206', N'铜仁市', N'520602', N'碧江区', N'', N'', N'', N'', N'3', N'1', N''), (N'520603', N'5206', N'00,52,5206', N'万山区', N'52', N'贵州省', N'5206', N'铜仁市', N'520603', N'万山区', N'', N'', N'', N'', N'3', N'1', N''), (N'520621', N'5206', N'00,52,5206', N'江口县', N'52', N'贵州省', N'5206', N'铜仁市', N'520621', N'江口县', N'', N'', N'', N'', N'3', N'1', N''), (N'520622', N'5206', N'00,52,5206', N'玉屏侗族自治县', N'52', N'贵州省', N'5206', N'铜仁市', N'520622', N'玉屏侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520623', N'5206', N'00,52,5206', N'石阡县', N'52', N'贵州省', N'5206', N'铜仁市', N'520623', N'石阡县', N'', N'', N'', N'', N'3', N'1', N''), (N'520624', N'5206', N'00,52,5206', N'思南县', N'52', N'贵州省', N'5206', N'铜仁市', N'520624', N'思南县', N'', N'', N'', N'', N'3', N'1', N''), (N'520625', N'5206', N'00,52,5206', N'印江土家族苗族自治县', N'52', N'贵州省', N'5206', N'铜仁市', N'520625', N'印江土家族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520626', N'5206', N'00,52,5206', N'德江县', N'52', N'贵州省', N'5206', N'铜仁市', N'520626', N'德江县', N'', N'', N'', N'', N'3', N'1', N''), (N'520627', N'5206', N'00,52,5206', N'沿河土家族自治县', N'52', N'贵州省', N'5206', N'铜仁市', N'520627', N'沿河土家族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520628', N'5206', N'00,52,5206', N'松桃苗族自治县', N'52', N'贵州省', N'5206', N'铜仁市', N'520628', N'松桃苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5223', N'52', N'00,52', N'黔西南布依族苗族自治州', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'522301', N'5223', N'00,52,5223', N'兴义市', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522301', N'兴义市', N'', N'', N'', N'', N'3', N'1', N''), (N'522302', N'5223', N'00,52,5223', N'兴仁市', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522302', N'兴仁市', N'', N'', N'', N'', N'3', N'1', N''), (N'522323', N'5223', N'00,52,5223', N'普安县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522323', N'普安县', N'', N'', N'', N'', N'3', N'1', N''), (N'522324', N'5223', N'00,52,5223', N'晴隆县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522324', N'晴隆县', N'', N'', N'', N'', N'3', N'1', N''), (N'522325', N'5223', N'00,52,5223', N'贞丰县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522325', N'贞丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'522326', N'5223', N'00,52,5223', N'望谟县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522326', N'望谟县', N'', N'', N'', N'', N'3', N'1', N''), (N'522327', N'5223', N'00,52,5223', N'册亨县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522327', N'册亨县', N'', N'', N'', N'', N'3', N'1', N''), (N'522328', N'5223', N'00,52,5223', N'安龙县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522328', N'安龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'5226', N'52', N'00,52', N'黔东南苗族侗族自治州', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'522601', N'5226', N'00,52,5226', N'凯里市', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522601', N'凯里市', N'', N'', N'', N'', N'3', N'1', N''), (N'522622', N'5226', N'00,52,5226', N'黄平县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522622', N'黄平县', N'', N'', N'', N'', N'3', N'1', N''), (N'522623', N'5226', N'00,52,5226', N'施秉县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522623', N'施秉县', N'', N'', N'', N'', N'3', N'1', N''), (N'522624', N'5226', N'00,52,5226', N'三穗县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522624', N'三穗县', N'', N'', N'', N'', N'3', N'1', N''), (N'522625', N'5226', N'00,52,5226', N'镇远县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522625', N'镇远县', N'', N'', N'', N'', N'3', N'1', N''), (N'522626', N'5226', N'00,52,5226', N'岑巩县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522626', N'岑巩县', N'', N'', N'', N'', N'3', N'1', N''), (N'522627', N'5226', N'00,52,5226', N'天柱县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522627', N'天柱县', N'', N'', N'', N'', N'3', N'1', N''), (N'522628', N'5226', N'00,52,5226', N'锦屏县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522628', N'锦屏县', N'', N'', N'', N'', N'3', N'1', N''), (N'522629', N'5226', N'00,52,5226', N'剑河县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522629', N'剑河县', N'', N'', N'', N'', N'3', N'1', N''), (N'522630', N'5226', N'00,52,5226', N'台江县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522630', N'台江县', N'', N'', N'', N'', N'3', N'1', N''), (N'522631', N'5226', N'00,52,5226', N'黎平县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522631', N'黎平县', N'', N'', N'', N'', N'3', N'1', N''), (N'522632', N'5226', N'00,52,5226', N'榕江县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522632', N'榕江县', N'', N'', N'', N'', N'3', N'1', N''), (N'522633', N'5226', N'00,52,5226', N'从江县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522633', N'从江县', N'', N'', N'', N'', N'3', N'1', N''), (N'522634', N'5226', N'00,52,5226', N'雷山县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522634', N'雷山县', N'', N'', N'', N'', N'3', N'1', N''), (N'522635', N'5226', N'00,52,5226', N'麻江县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522635', N'麻江县', N'', N'', N'', N'', N'3', N'1', N''), (N'522636', N'5226', N'00,52,5226', N'丹寨县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522636', N'丹寨县', N'', N'', N'', N'', N'3', N'1', N''), (N'5227', N'52', N'00,52', N'黔南布依族苗族自治州', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'522701', N'5227', N'00,52,5227', N'都匀市', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522701', N'都匀市', N'', N'', N'', N'', N'3', N'1', N''), (N'522702', N'5227', N'00,52,5227', N'福泉市', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522702', N'福泉市', N'', N'', N'', N'', N'3', N'1', N''), (N'522722', N'5227', N'00,52,5227', N'荔波县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522722', N'荔波县', N'', N'', N'', N'', N'3', N'1', N''), (N'522723', N'5227', N'00,52,5227', N'贵定县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522723', N'贵定县', N'', N'', N'', N'', N'3', N'1', N''), (N'522725', N'5227', N'00,52,5227', N'瓮安县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522725', N'瓮安县', N'', N'', N'', N'', N'3', N'1', N''), (N'522726', N'5227', N'00,52,5227', N'独山县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522726', N'独山县', N'', N'', N'', N'', N'3', N'1', N''), (N'522727', N'5227', N'00,52,5227', N'平塘县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522727', N'平塘县', N'', N'', N'', N'', N'3', N'1', N''), (N'522728', N'5227', N'00,52,5227', N'罗甸县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522728', N'罗甸县', N'', N'', N'', N'', N'3', N'1', N''), (N'522729', N'5227', N'00,52,5227', N'长顺县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522729', N'长顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'522730', N'5227', N'00,52,5227', N'龙里县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522730', N'龙里县', N'', N'', N'', N'', N'3', N'1', N''), (N'522731', N'5227', N'00,52,5227', N'惠水县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522731', N'惠水县', N'', N'', N'', N'', N'3', N'1', N''), (N'522732', N'5227', N'00,52,5227', N'三都水族自治县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522732', N'三都水族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'53', N'00', N'00', N'云南省', N'53', N'云南省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'5301', N'53', N'00,53', N'昆明市', N'53', N'云南省', N'5301', N'昆明市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530102', N'5301', N'00,53,5301', N'五华区', N'53', N'云南省', N'5301', N'昆明市', N'530102', N'五华区', N'', N'', N'', N'', N'3', N'1', N''), (N'530103', N'5301', N'00,53,5301', N'盘龙区', N'53', N'云南省', N'5301', N'昆明市', N'530103', N'盘龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'530111', N'5301', N'00,53,5301', N'官渡区', N'53', N'云南省', N'5301', N'昆明市', N'530111', N'官渡区', N'', N'', N'', N'', N'3', N'1', N''), (N'530112', N'5301', N'00,53,5301', N'西山区', N'53', N'云南省', N'5301', N'昆明市', N'530112', N'西山区', N'', N'', N'', N'', N'3', N'1', N''), (N'530113', N'5301', N'00,53,5301', N'东川区', N'53', N'云南省', N'5301', N'昆明市', N'530113', N'东川区', N'', N'', N'', N'', N'3', N'1', N''), (N'530114', N'5301', N'00,53,5301', N'呈贡区', N'53', N'云南省', N'5301', N'昆明市', N'530114', N'呈贡区', N'', N'', N'', N'', N'3', N'1', N''), (N'530115', N'5301', N'00,53,5301', N'晋宁区', N'53', N'云南省', N'5301', N'昆明市', N'530115', N'晋宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'530124', N'5301', N'00,53,5301', N'富民县', N'53', N'云南省', N'5301', N'昆明市', N'530124', N'富民县', N'', N'', N'', N'', N'3', N'1', N''), (N'530125', N'5301', N'00,53,5301', N'宜良县', N'53', N'云南省', N'5301', N'昆明市', N'530125', N'宜良县', N'', N'', N'', N'', N'3', N'1', N''), (N'530126', N'5301', N'00,53,5301', N'石林彝族自治县', N'53', N'云南省', N'5301', N'昆明市', N'530126', N'石林彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530127', N'5301', N'00,53,5301', N'嵩明县', N'53', N'云南省', N'5301', N'昆明市', N'530127', N'嵩明县', N'', N'', N'', N'', N'3', N'1', N''), (N'530128', N'5301', N'00,53,5301', N'禄劝彝族苗族自治县', N'53', N'云南省', N'5301', N'昆明市', N'530128', N'禄劝彝族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530129', N'5301', N'00,53,5301', N'寻甸回族彝族自治县', N'53', N'云南省', N'5301', N'昆明市', N'530129', N'寻甸回族彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530181', N'5301', N'00,53,5301', N'安宁市', N'53', N'云南省', N'5301', N'昆明市', N'530181', N'安宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'5303', N'53', N'00,53', N'曲靖市', N'53', N'云南省', N'5303', N'曲靖市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530302', N'5303', N'00,53,5303', N'麒麟区', N'53', N'云南省', N'5303', N'曲靖市', N'530302', N'麒麟区', N'', N'', N'', N'', N'3', N'1', N''), (N'530303', N'5303', N'00,53,5303', N'沾益区', N'53', N'云南省', N'5303', N'曲靖市', N'530303', N'沾益区', N'', N'', N'', N'', N'3', N'1', N''), (N'530304', N'5303', N'00,53,5303', N'马龙区', N'53', N'云南省', N'5303', N'曲靖市', N'530304', N'马龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'530322', N'5303', N'00,53,5303', N'陆良县', N'53', N'云南省', N'5303', N'曲靖市', N'530322', N'陆良县', N'', N'', N'', N'', N'3', N'1', N''), (N'530323', N'5303', N'00,53,5303', N'师宗县', N'53', N'云南省', N'5303', N'曲靖市', N'530323', N'师宗县', N'', N'', N'', N'', N'3', N'1', N''), (N'530324', N'5303', N'00,53,5303', N'罗平县', N'53', N'云南省', N'5303', N'曲靖市', N'530324', N'罗平县', N'', N'', N'', N'', N'3', N'1', N''), (N'530325', N'5303', N'00,53,5303', N'富源县', N'53', N'云南省', N'5303', N'曲靖市', N'530325', N'富源县', N'', N'', N'', N'', N'3', N'1', N''), (N'530326', N'5303', N'00,53,5303', N'会泽县', N'53', N'云南省', N'5303', N'曲靖市', N'530326', N'会泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'530381', N'5303', N'00,53,5303', N'宣威市', N'53', N'云南省', N'5303', N'曲靖市', N'530381', N'宣威市', N'', N'', N'', N'', N'3', N'1', N''), (N'5304', N'53', N'00,53', N'玉溪市', N'53', N'云南省', N'5304', N'玉溪市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530402', N'5304', N'00,53,5304', N'红塔区', N'53', N'云南省', N'5304', N'玉溪市', N'530402', N'红塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'530403', N'5304', N'00,53,5304', N'江川区', N'53', N'云南省', N'5304', N'玉溪市', N'530403', N'江川区', N'', N'', N'', N'', N'3', N'1', N''), (N'530423', N'5304', N'00,53,5304', N'通海县', N'53', N'云南省', N'5304', N'玉溪市', N'530423', N'通海县', N'', N'', N'', N'', N'3', N'1', N''), (N'530424', N'5304', N'00,53,5304', N'华宁县', N'53', N'云南省', N'5304', N'玉溪市', N'530424', N'华宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'530425', N'5304', N'00,53,5304', N'易门县', N'53', N'云南省', N'5304', N'玉溪市', N'530425', N'易门县', N'', N'', N'', N'', N'3', N'1', N''), (N'530426', N'5304', N'00,53,5304', N'峨山彝族自治县', N'53', N'云南省', N'5304', N'玉溪市', N'530426', N'峨山彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530427', N'5304', N'00,53,5304', N'新平彝族傣族自治县', N'53', N'云南省', N'5304', N'玉溪市', N'530427', N'新平彝族傣族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530428', N'5304', N'00,53,5304', N'元江哈尼族彝族傣族自治县', N'53', N'云南省', N'5304', N'玉溪市', N'530428', N'元江哈尼族彝族傣族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530481', N'5304', N'00,53,5304', N'澄江市', N'53', N'云南省', N'5304', N'玉溪市', N'530481', N'澄江市', N'', N'', N'', N'', N'3', N'1', N''), (N'5305', N'53', N'00,53', N'保山市', N'53', N'云南省', N'5305', N'保山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530502', N'5305', N'00,53,5305', N'隆阳区', N'53', N'云南省', N'5305', N'保山市', N'530502', N'隆阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'530521', N'5305', N'00,53,5305', N'施甸县', N'53', N'云南省', N'5305', N'保山市', N'530521', N'施甸县', N'', N'', N'', N'', N'3', N'1', N''), (N'530523', N'5305', N'00,53,5305', N'龙陵县', N'53', N'云南省', N'5305', N'保山市', N'530523', N'龙陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'530524', N'5305', N'00,53,5305', N'昌宁县', N'53', N'云南省', N'5305', N'保山市', N'530524', N'昌宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'530581', N'5305', N'00,53,5305', N'腾冲市', N'53', N'云南省', N'5305', N'保山市', N'530581', N'腾冲市', N'', N'', N'', N'', N'3', N'1', N''), (N'5306', N'53', N'00,53', N'昭通市', N'53', N'云南省', N'5306', N'昭通市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530602', N'5306', N'00,53,5306', N'昭阳区', N'53', N'云南省', N'5306', N'昭通市', N'530602', N'昭阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'530621', N'5306', N'00,53,5306', N'鲁甸县', N'53', N'云南省', N'5306', N'昭通市', N'530621', N'鲁甸县', N'', N'', N'', N'', N'3', N'1', N''), (N'530622', N'5306', N'00,53,5306', N'巧家县', N'53', N'云南省', N'5306', N'昭通市', N'530622', N'巧家县', N'', N'', N'', N'', N'3', N'1', N''), (N'530623', N'5306', N'00,53,5306', N'盐津县', N'53', N'云南省', N'5306', N'昭通市', N'530623', N'盐津县', N'', N'', N'', N'', N'3', N'1', N''), (N'530624', N'5306', N'00,53,5306', N'大关县', N'53', N'云南省', N'5306', N'昭通市', N'530624', N'大关县', N'', N'', N'', N'', N'3', N'1', N''), (N'530625', N'5306', N'00,53,5306', N'永善县', N'53', N'云南省', N'5306', N'昭通市', N'530625', N'永善县', N'', N'', N'', N'', N'3', N'1', N''), (N'530626', N'5306', N'00,53,5306', N'绥江县', N'53', N'云南省', N'5306', N'昭通市', N'530626', N'绥江县', N'', N'', N'', N'', N'3', N'1', N''), (N'530627', N'5306', N'00,53,5306', N'镇雄县', N'53', N'云南省', N'5306', N'昭通市', N'530627', N'镇雄县', N'', N'', N'', N'', N'3', N'1', N''), (N'530628', N'5306', N'00,53,5306', N'彝良县', N'53', N'云南省', N'5306', N'昭通市', N'530628', N'彝良县', N'', N'', N'', N'', N'3', N'1', N''), (N'530629', N'5306', N'00,53,5306', N'威信县', N'53', N'云南省', N'5306', N'昭通市', N'530629', N'威信县', N'', N'', N'', N'', N'3', N'1', N''), (N'530681', N'5306', N'00,53,5306', N'水富市', N'53', N'云南省', N'5306', N'昭通市', N'530681', N'水富市', N'', N'', N'', N'', N'3', N'1', N''), (N'5307', N'53', N'00,53', N'丽江市', N'53', N'云南省', N'5307', N'丽江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530702', N'5307', N'00,53,5307', N'古城区', N'53', N'云南省', N'5307', N'丽江市', N'530702', N'古城区', N'', N'', N'', N'', N'3', N'1', N''), (N'530721', N'5307', N'00,53,5307', N'玉龙纳西族自治县', N'53', N'云南省', N'5307', N'丽江市', N'530721', N'玉龙纳西族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530722', N'5307', N'00,53,5307', N'永胜县', N'53', N'云南省', N'5307', N'丽江市', N'530722', N'永胜县', N'', N'', N'', N'', N'3', N'1', N''), (N'530723', N'5307', N'00,53,5307', N'华坪县', N'53', N'云南省', N'5307', N'丽江市', N'530723', N'华坪县', N'', N'', N'', N'', N'3', N'1', N''), (N'530724', N'5307', N'00,53,5307', N'宁蒗彝族自治县', N'53', N'云南省', N'5307', N'丽江市', N'530724', N'宁蒗彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5308', N'53', N'00,53', N'普洱市', N'53', N'云南省', N'5308', N'普洱市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530802', N'5308', N'00,53,5308', N'思茅区', N'53', N'云南省', N'5308', N'普洱市', N'530802', N'思茅区', N'', N'', N'', N'', N'3', N'1', N''), (N'530821', N'5308', N'00,53,5308', N'宁洱哈尼族彝族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530821', N'宁洱哈尼族彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530822', N'5308', N'00,53,5308', N'墨江哈尼族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530822', N'墨江哈尼族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530823', N'5308', N'00,53,5308', N'景东彝族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530823', N'景东彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530824', N'5308', N'00,53,5308', N'景谷傣族彝族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530824', N'景谷傣族彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530825', N'5308', N'00,53,5308', N'镇沅彝族哈尼族拉祜族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530825', N'镇沅彝族哈尼族拉祜族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530826', N'5308', N'00,53,5308', N'江城哈尼族彝族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530826', N'江城哈尼族彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530827', N'5308', N'00,53,5308', N'孟连傣族拉祜族佤族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530827', N'孟连傣族拉祜族佤族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530828', N'5308', N'00,53,5308', N'澜沧拉祜族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530828', N'澜沧拉祜族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530829', N'5308', N'00,53,5308', N'西盟佤族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530829', N'西盟佤族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5309', N'53', N'00,53', N'临沧市', N'53', N'云南省', N'5309', N'临沧市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530902', N'5309', N'00,53,5309', N'临翔区', N'53', N'云南省', N'5309', N'临沧市', N'530902', N'临翔区', N'', N'', N'', N'', N'3', N'1', N''), (N'530921', N'5309', N'00,53,5309', N'凤庆县', N'53', N'云南省', N'5309', N'临沧市', N'530921', N'凤庆县', N'', N'', N'', N'', N'3', N'1', N''), (N'530922', N'5309', N'00,53,5309', N'云县', N'53', N'云南省', N'5309', N'临沧市', N'530922', N'云县', N'', N'', N'', N'', N'3', N'1', N''), (N'530923', N'5309', N'00,53,5309', N'永德县', N'53', N'云南省', N'5309', N'临沧市', N'530923', N'永德县', N'', N'', N'', N'', N'3', N'1', N''), (N'530924', N'5309', N'00,53,5309', N'镇康县', N'53', N'云南省', N'5309', N'临沧市', N'530924', N'镇康县', N'', N'', N'', N'', N'3', N'1', N''), (N'530925', N'5309', N'00,53,5309', N'双江拉祜族佤族布朗族傣族自治县', N'53', N'云南省', N'5309', N'临沧市', N'530925', N'双江拉祜族佤族布朗族傣族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530926', N'5309', N'00,53,5309', N'耿马傣族佤族自治县', N'53', N'云南省', N'5309', N'临沧市', N'530926', N'耿马傣族佤族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530927', N'5309', N'00,53,5309', N'沧源佤族自治县', N'53', N'云南省', N'5309', N'临沧市', N'530927', N'沧源佤族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5323', N'53', N'00,53', N'楚雄彝族自治州', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'532301', N'5323', N'00,53,5323', N'楚雄市', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532301', N'楚雄市', N'', N'', N'', N'', N'3', N'1', N''), (N'532322', N'5323', N'00,53,5323', N'双柏县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532322', N'双柏县', N'', N'', N'', N'', N'3', N'1', N''), (N'532323', N'5323', N'00,53,5323', N'牟定县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532323', N'牟定县', N'', N'', N'', N'', N'3', N'1', N''), (N'532324', N'5323', N'00,53,5323', N'南华县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532324', N'南华县', N'', N'', N'', N'', N'3', N'1', N''), (N'532325', N'5323', N'00,53,5323', N'姚安县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532325', N'姚安县', N'', N'', N'', N'', N'3', N'1', N''), (N'532326', N'5323', N'00,53,5323', N'大姚县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532326', N'大姚县', N'', N'', N'', N'', N'3', N'1', N''), (N'532327', N'5323', N'00,53,5323', N'永仁县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532327', N'永仁县', N'', N'', N'', N'', N'3', N'1', N''), (N'532328', N'5323', N'00,53,5323', N'元谋县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532328', N'元谋县', N'', N'', N'', N'', N'3', N'1', N''), (N'532329', N'5323', N'00,53,5323', N'武定县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532329', N'武定县', N'', N'', N'', N'', N'3', N'1', N''), (N'532331', N'5323', N'00,53,5323', N'禄丰县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532331', N'禄丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'5325', N'53', N'00,53', N'红河哈尼族彝族自治州', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'532501', N'5325', N'00,53,5325', N'个旧市', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532501', N'个旧市', N'', N'', N'', N'', N'3', N'1', N''), (N'532502', N'5325', N'00,53,5325', N'开远市', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532502', N'开远市', N'', N'', N'', N'', N'3', N'1', N''), (N'532503', N'5325', N'00,53,5325', N'蒙自市', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532503', N'蒙自市', N'', N'', N'', N'', N'3', N'1', N''), (N'532504', N'5325', N'00,53,5325', N'弥勒市', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532504', N'弥勒市', N'', N'', N'', N'', N'3', N'1', N''), (N'532523', N'5325', N'00,53,5325', N'屏边苗族自治县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532523', N'屏边苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'532524', N'5325', N'00,53,5325', N'建水县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532524', N'建水县', N'', N'', N'', N'', N'3', N'1', N''), (N'532525', N'5325', N'00,53,5325', N'石屏县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532525', N'石屏县', N'', N'', N'', N'', N'3', N'1', N''), (N'532527', N'5325', N'00,53,5325', N'泸西县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532527', N'泸西县', N'', N'', N'', N'', N'3', N'1', N''), (N'532528', N'5325', N'00,53,5325', N'元阳县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532528', N'元阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'532529', N'5325', N'00,53,5325', N'红河县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532529', N'红河县', N'', N'', N'', N'', N'3', N'1', N''), (N'532530', N'5325', N'00,53,5325', N'金平苗族瑶族傣族自治县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532530', N'金平苗族瑶族傣族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'532531', N'5325', N'00,53,5325', N'绿春县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532531', N'绿春县', N'', N'', N'', N'', N'3', N'1', N''), (N'532532', N'5325', N'00,53,5325', N'河口瑶族自治县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532532', N'河口瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5326', N'53', N'00,53', N'文山壮族苗族自治州', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'532601', N'5326', N'00,53,5326', N'文山市', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532601', N'文山市', N'', N'', N'', N'', N'3', N'1', N''), (N'532622', N'5326', N'00,53,5326', N'砚山县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532622', N'砚山县', N'', N'', N'', N'', N'3', N'1', N''), (N'532623', N'5326', N'00,53,5326', N'西畴县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532623', N'西畴县', N'', N'', N'', N'', N'3', N'1', N''), (N'532624', N'5326', N'00,53,5326', N'麻栗坡县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532624', N'麻栗坡县', N'', N'', N'', N'', N'3', N'1', N''), (N'532625', N'5326', N'00,53,5326', N'马关县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532625', N'马关县', N'', N'', N'', N'', N'3', N'1', N''), (N'532626', N'5326', N'00,53,5326', N'丘北县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532626', N'丘北县', N'', N'', N'', N'', N'3', N'1', N''), (N'532627', N'5326', N'00,53,5326', N'广南县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532627', N'广南县', N'', N'', N'', N'', N'3', N'1', N''), (N'532628', N'5326', N'00,53,5326', N'富宁县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532628', N'富宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'5328', N'53', N'00,53', N'西双版纳傣族自治州', N'53', N'云南省', N'5328', N'西双版纳傣族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'532801', N'5328', N'00,53,5328', N'景洪市', N'53', N'云南省', N'5328', N'西双版纳傣族自治州', N'532801', N'景洪市', N'', N'', N'', N'', N'3', N'1', N''), (N'532822', N'5328', N'00,53,5328', N'勐海县', N'53', N'云南省', N'5328', N'西双版纳傣族自治州', N'532822', N'勐海县', N'', N'', N'', N'', N'3', N'1', N''), (N'532823', N'5328', N'00,53,5328', N'勐腊县', N'53', N'云南省', N'5328', N'西双版纳傣族自治州', N'532823', N'勐腊县', N'', N'', N'', N'', N'3', N'1', N''), (N'5329', N'53', N'00,53', N'大理白族自治州', N'53', N'云南省', N'5329', N'大理白族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'532901', N'5329', N'00,53,5329', N'大理市', N'53', N'云南省', N'5329', N'大理白族自治州', N'532901', N'大理市', N'', N'', N'', N'', N'3', N'1', N''), (N'532922', N'5329', N'00,53,5329', N'漾濞彝族自治县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532922', N'漾濞彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'532923', N'5329', N'00,53,5329', N'祥云县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532923', N'祥云县', N'', N'', N'', N'', N'3', N'1', N''), (N'532924', N'5329', N'00,53,5329', N'宾川县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532924', N'宾川县', N'', N'', N'', N'', N'3', N'1', N''), (N'532925', N'5329', N'00,53,5329', N'弥渡县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532925', N'弥渡县', N'', N'', N'', N'', N'3', N'1', N''), (N'532926', N'5329', N'00,53,5329', N'南涧彝族自治县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532926', N'南涧彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'532927', N'5329', N'00,53,5329', N'巍山彝族回族自治县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532927', N'巍山彝族回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'532928', N'5329', N'00,53,5329', N'永平县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532928', N'永平县', N'', N'', N'', N'', N'3', N'1', N''), (N'532929', N'5329', N'00,53,5329', N'云龙县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532929', N'云龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'532930', N'5329', N'00,53,5329', N'洱源县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532930', N'洱源县', N'', N'', N'', N'', N'3', N'1', N''), (N'532931', N'5329', N'00,53,5329', N'剑川县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532931', N'剑川县', N'', N'', N'', N'', N'3', N'1', N''), (N'532932', N'5329', N'00,53,5329', N'鹤庆县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532932', N'鹤庆县', N'', N'', N'', N'', N'3', N'1', N''), (N'5331', N'53', N'00,53', N'德宏傣族景颇族自治州', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'533102', N'5331', N'00,53,5331', N'瑞丽市', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'533102', N'瑞丽市', N'', N'', N'', N'', N'3', N'1', N''), (N'533103', N'5331', N'00,53,5331', N'芒市', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'533103', N'芒市', N'', N'', N'', N'', N'3', N'1', N''), (N'533122', N'5331', N'00,53,5331', N'梁河县', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'533122', N'梁河县', N'', N'', N'', N'', N'3', N'1', N''), (N'533123', N'5331', N'00,53,5331', N'盈江县', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'533123', N'盈江县', N'', N'', N'', N'', N'3', N'1', N''), (N'533124', N'5331', N'00,53,5331', N'陇川县', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'533124', N'陇川县', N'', N'', N'', N'', N'3', N'1', N''), (N'5333', N'53', N'00,53', N'怒江傈僳族自治州', N'53', N'云南省', N'5333', N'怒江傈僳族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'533301', N'5333', N'00,53,5333', N'泸水市', N'53', N'云南省', N'5333', N'怒江傈僳族自治州', N'533301', N'泸水市', N'', N'', N'', N'', N'3', N'1', N''), (N'533323', N'5333', N'00,53,5333', N'福贡县', N'53', N'云南省', N'5333', N'怒江傈僳族自治州', N'533323', N'福贡县', N'', N'', N'', N'', N'3', N'1', N''), (N'533324', N'5333', N'00,53,5333', N'贡山独龙族怒族自治县', N'53', N'云南省', N'5333', N'怒江傈僳族自治州', N'533324', N'贡山独龙族怒族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'533325', N'5333', N'00,53,5333', N'兰坪白族普米族自治县', N'53', N'云南省', N'5333', N'怒江傈僳族自治州', N'533325', N'兰坪白族普米族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5334', N'53', N'00,53', N'迪庆藏族自治州', N'53', N'云南省', N'5334', N'迪庆藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'533401', N'5334', N'00,53,5334', N'香格里拉市', N'53', N'云南省', N'5334', N'迪庆藏族自治州', N'533401', N'香格里拉市', N'', N'', N'', N'', N'3', N'1', N''), (N'533422', N'5334', N'00,53,5334', N'德钦县', N'53', N'云南省', N'5334', N'迪庆藏族自治州', N'533422', N'德钦县', N'', N'', N'', N'', N'3', N'1', N''), (N'533423', N'5334', N'00,53,5334', N'维西傈僳族自治县', N'53', N'云南省', N'5334', N'迪庆藏族自治州', N'533423', N'维西傈僳族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'54', N'00', N'00', N'西藏自治区', N'54', N'西藏自治区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'5401', N'54', N'00,54', N'拉萨市', N'54', N'西藏自治区', N'5401', N'拉萨市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540102', N'5401', N'00,54,5401', N'城关区', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540102', N'城关区', N'', N'', N'', N'', N'3', N'1', N''), (N'540103', N'5401', N'00,54,5401', N'堆龙德庆区', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540103', N'堆龙德庆区', N'', N'', N'', N'', N'3', N'1', N''), (N'540104', N'5401', N'00,54,5401', N'达孜区', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540104', N'达孜区', N'', N'', N'', N'', N'3', N'1', N''), (N'540121', N'5401', N'00,54,5401', N'林周县', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540121', N'林周县', N'', N'', N'', N'', N'3', N'1', N''), (N'540122', N'5401', N'00,54,5401', N'当雄县', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540122', N'当雄县', N'', N'', N'', N'', N'3', N'1', N''), (N'540123', N'5401', N'00,54,5401', N'尼木县', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540123', N'尼木县', N'', N'', N'', N'', N'3', N'1', N''), (N'540124', N'5401', N'00,54,5401', N'曲水县', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540124', N'曲水县', N'', N'', N'', N'', N'3', N'1', N''), (N'540127', N'5401', N'00,54,5401', N'墨竹工卡县', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540127', N'墨竹工卡县', N'', N'', N'', N'', N'3', N'1', N''), (N'5402', N'54', N'00,54', N'日喀则市', N'54', N'西藏自治区', N'5402', N'日喀则市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540202', N'5402', N'00,54,5402', N'桑珠孜区', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540202', N'桑珠孜区', N'', N'', N'', N'', N'3', N'1', N''), (N'540221', N'5402', N'00,54,5402', N'南木林县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540221', N'南木林县', N'', N'', N'', N'', N'3', N'1', N''), (N'540222', N'5402', N'00,54,5402', N'江孜县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540222', N'江孜县', N'', N'', N'', N'', N'3', N'1', N''), (N'540223', N'5402', N'00,54,5402', N'定日县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540223', N'定日县', N'', N'', N'', N'', N'3', N'1', N''), (N'540224', N'5402', N'00,54,5402', N'萨迦县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540224', N'萨迦县', N'', N'', N'', N'', N'3', N'1', N''), (N'540225', N'5402', N'00,54,5402', N'拉孜县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540225', N'拉孜县', N'', N'', N'', N'', N'3', N'1', N''), (N'540226', N'5402', N'00,54,5402', N'昂仁县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540226', N'昂仁县', N'', N'', N'', N'', N'3', N'1', N''), (N'540227', N'5402', N'00,54,5402', N'谢通门县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540227', N'谢通门县', N'', N'', N'', N'', N'3', N'1', N''), (N'540228', N'5402', N'00,54,5402', N'白朗县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540228', N'白朗县', N'', N'', N'', N'', N'3', N'1', N''), (N'540229', N'5402', N'00,54,5402', N'仁布县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540229', N'仁布县', N'', N'', N'', N'', N'3', N'1', N''), (N'540230', N'5402', N'00,54,5402', N'康马县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540230', N'康马县', N'', N'', N'', N'', N'3', N'1', N''), (N'540231', N'5402', N'00,54,5402', N'定结县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540231', N'定结县', N'', N'', N'', N'', N'3', N'1', N''), (N'540232', N'5402', N'00,54,5402', N'仲巴县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540232', N'仲巴县', N'', N'', N'', N'', N'3', N'1', N''), (N'540233', N'5402', N'00,54,5402', N'亚东县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540233', N'亚东县', N'', N'', N'', N'', N'3', N'1', N''), (N'540234', N'5402', N'00,54,5402', N'吉隆县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540234', N'吉隆县', N'', N'', N'', N'', N'3', N'1', N''), (N'540235', N'5402', N'00,54,5402', N'聂拉木县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540235', N'聂拉木县', N'', N'', N'', N'', N'3', N'1', N''), (N'540236', N'5402', N'00,54,5402', N'萨嘎县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540236', N'萨嘎县', N'', N'', N'', N'', N'3', N'1', N''), (N'540237', N'5402', N'00,54,5402', N'岗巴县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540237', N'岗巴县', N'', N'', N'', N'', N'3', N'1', N''), (N'5403', N'54', N'00,54', N'昌都市', N'54', N'西藏自治区', N'5403', N'昌都市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540302', N'5403', N'00,54,5403', N'卡若区', N'54', N'西藏自治区', N'5403', N'昌都市', N'540302', N'卡若区', N'', N'', N'', N'', N'3', N'1', N''), (N'540321', N'5403', N'00,54,5403', N'江达县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540321', N'江达县', N'', N'', N'', N'', N'3', N'1', N''), (N'540322', N'5403', N'00,54,5403', N'贡觉县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540322', N'贡觉县', N'', N'', N'', N'', N'3', N'1', N''), (N'540323', N'5403', N'00,54,5403', N'类乌齐县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540323', N'类乌齐县', N'', N'', N'', N'', N'3', N'1', N''), (N'540324', N'5403', N'00,54,5403', N'丁青县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540324', N'丁青县', N'', N'', N'', N'', N'3', N'1', N''), (N'540325', N'5403', N'00,54,5403', N'察雅县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540325', N'察雅县', N'', N'', N'', N'', N'3', N'1', N''), (N'540326', N'5403', N'00,54,5403', N'八宿县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540326', N'八宿县', N'', N'', N'', N'', N'3', N'1', N''), (N'540327', N'5403', N'00,54,5403', N'左贡县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540327', N'左贡县', N'', N'', N'', N'', N'3', N'1', N''), (N'540328', N'5403', N'00,54,5403', N'芒康县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540328', N'芒康县', N'', N'', N'', N'', N'3', N'1', N''), (N'540329', N'5403', N'00,54,5403', N'洛隆县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540329', N'洛隆县', N'', N'', N'', N'', N'3', N'1', N''), (N'540330', N'5403', N'00,54,5403', N'边坝县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540330', N'边坝县', N'', N'', N'', N'', N'3', N'1', N''), (N'5404', N'54', N'00,54', N'林芝市', N'54', N'西藏自治区', N'5404', N'林芝市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540402', N'5404', N'00,54,5404', N'巴宜区', N'54', N'西藏自治区', N'5404', N'林芝市', N'540402', N'巴宜区', N'', N'', N'', N'', N'3', N'1', N''), (N'540421', N'5404', N'00,54,5404', N'工布江达县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540421', N'工布江达县', N'', N'', N'', N'', N'3', N'1', N''), (N'540422', N'5404', N'00,54,5404', N'米林县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540422', N'米林县', N'', N'', N'', N'', N'3', N'1', N''), (N'540423', N'5404', N'00,54,5404', N'墨脱县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540423', N'墨脱县', N'', N'', N'', N'', N'3', N'1', N''), (N'540424', N'5404', N'00,54,5404', N'波密县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540424', N'波密县', N'', N'', N'', N'', N'3', N'1', N''), (N'540425', N'5404', N'00,54,5404', N'察隅县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540425', N'察隅县', N'', N'', N'', N'', N'3', N'1', N''), (N'540426', N'5404', N'00,54,5404', N'朗县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540426', N'朗县', N'', N'', N'', N'', N'3', N'1', N''), (N'5405', N'54', N'00,54', N'山南市', N'54', N'西藏自治区', N'5405', N'山南市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540502', N'5405', N'00,54,5405', N'乃东区', N'54', N'西藏自治区', N'5405', N'山南市', N'540502', N'乃东区', N'', N'', N'', N'', N'3', N'1', N''), (N'540521', N'5405', N'00,54,5405', N'扎囊县', N'54', N'西藏自治区', N'5405', N'山南市', N'540521', N'扎囊县', N'', N'', N'', N'', N'3', N'1', N''), (N'540522', N'5405', N'00,54,5405', N'贡嘎县', N'54', N'西藏自治区', N'5405', N'山南市', N'540522', N'贡嘎县', N'', N'', N'', N'', N'3', N'1', N''), (N'540523', N'5405', N'00,54,5405', N'桑日县', N'54', N'西藏自治区', N'5405', N'山南市', N'540523', N'桑日县', N'', N'', N'', N'', N'3', N'1', N''), (N'540524', N'5405', N'00,54,5405', N'琼结县', N'54', N'西藏自治区', N'5405', N'山南市', N'540524', N'琼结县', N'', N'', N'', N'', N'3', N'1', N''), (N'540525', N'5405', N'00,54,5405', N'曲松县', N'54', N'西藏自治区', N'5405', N'山南市', N'540525', N'曲松县', N'', N'', N'', N'', N'3', N'1', N''), (N'540526', N'5405', N'00,54,5405', N'措美县', N'54', N'西藏自治区', N'5405', N'山南市', N'540526', N'措美县', N'', N'', N'', N'', N'3', N'1', N''), (N'540527', N'5405', N'00,54,5405', N'洛扎县', N'54', N'西藏自治区', N'5405', N'山南市', N'540527', N'洛扎县', N'', N'', N'', N'', N'3', N'1', N''), (N'540528', N'5405', N'00,54,5405', N'加查县', N'54', N'西藏自治区', N'5405', N'山南市', N'540528', N'加查县', N'', N'', N'', N'', N'3', N'1', N''), (N'540529', N'5405', N'00,54,5405', N'隆子县', N'54', N'西藏自治区', N'5405', N'山南市', N'540529', N'隆子县', N'', N'', N'', N'', N'3', N'1', N''), (N'540530', N'5405', N'00,54,5405', N'错那县', N'54', N'西藏自治区', N'5405', N'山南市', N'540530', N'错那县', N'', N'', N'', N'', N'3', N'1', N''), (N'540531', N'5405', N'00,54,5405', N'浪卡子县', N'54', N'西藏自治区', N'5405', N'山南市', N'540531', N'浪卡子县', N'', N'', N'', N'', N'3', N'1', N''), (N'5406', N'54', N'00,54', N'那曲市', N'54', N'西藏自治区', N'5406', N'那曲市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540602', N'5406', N'00,54,5406', N'色尼区', N'54', N'西藏自治区', N'5406', N'那曲市', N'540602', N'色尼区', N'', N'', N'', N'', N'3', N'1', N''), (N'540621', N'5406', N'00,54,5406', N'嘉黎县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540621', N'嘉黎县', N'', N'', N'', N'', N'3', N'1', N''), (N'540622', N'5406', N'00,54,5406', N'比如县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540622', N'比如县', N'', N'', N'', N'', N'3', N'1', N''), (N'540623', N'5406', N'00,54,5406', N'聂荣县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540623', N'聂荣县', N'', N'', N'', N'', N'3', N'1', N''), (N'540624', N'5406', N'00,54,5406', N'安多县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540624', N'安多县', N'', N'', N'', N'', N'3', N'1', N''), (N'540625', N'5406', N'00,54,5406', N'申扎县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540625', N'申扎县', N'', N'', N'', N'', N'3', N'1', N''), (N'540626', N'5406', N'00,54,5406', N'索县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540626', N'索县', N'', N'', N'', N'', N'3', N'1', N''), (N'540627', N'5406', N'00,54,5406', N'班戈县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540627', N'班戈县', N'', N'', N'', N'', N'3', N'1', N''), (N'540628', N'5406', N'00,54,5406', N'巴青县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540628', N'巴青县', N'', N'', N'', N'', N'3', N'1', N''), (N'540629', N'5406', N'00,54,5406', N'尼玛县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540629', N'尼玛县', N'', N'', N'', N'', N'3', N'1', N''), (N'540630', N'5406', N'00,54,5406', N'双湖县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540630', N'双湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'5425', N'54', N'00,54', N'阿里地区', N'54', N'西藏自治区', N'5425', N'阿里地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'542521', N'5425', N'00,54,5425', N'普兰县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542521', N'普兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'542522', N'5425', N'00,54,5425', N'札达县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542522', N'札达县', N'', N'', N'', N'', N'3', N'1', N''), (N'542523', N'5425', N'00,54,5425', N'噶尔县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542523', N'噶尔县', N'', N'', N'', N'', N'3', N'1', N''), (N'542524', N'5425', N'00,54,5425', N'日土县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542524', N'日土县', N'', N'', N'', N'', N'3', N'1', N''), (N'542525', N'5425', N'00,54,5425', N'革吉县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542525', N'革吉县', N'', N'', N'', N'', N'3', N'1', N''), (N'542526', N'5425', N'00,54,5425', N'改则县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542526', N'改则县', N'', N'', N'', N'', N'3', N'1', N''), (N'542527', N'5425', N'00,54,5425', N'措勤县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542527', N'措勤县', N'', N'', N'', N'', N'3', N'1', N''), (N'61', N'00', N'00', N'陕西省', N'61', N'陕西省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'6101', N'61', N'00,61', N'西安市', N'61', N'陕西省', N'6101', N'西安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610102', N'6101', N'00,61,6101', N'新城区', N'61', N'陕西省', N'6101', N'西安市', N'610102', N'新城区', N'', N'', N'', N'', N'3', N'1', N''), (N'610103', N'6101', N'00,61,6101', N'碑林区', N'61', N'陕西省', N'6101', N'西安市', N'610103', N'碑林区', N'', N'', N'', N'', N'3', N'1', N''), (N'610104', N'6101', N'00,61,6101', N'莲湖区', N'61', N'陕西省', N'6101', N'西安市', N'610104', N'莲湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'610111', N'6101', N'00,61,6101', N'灞桥区', N'61', N'陕西省', N'6101', N'西安市', N'610111', N'灞桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'610112', N'6101', N'00,61,6101', N'未央区', N'61', N'陕西省', N'6101', N'西安市', N'610112', N'未央区', N'', N'', N'', N'', N'3', N'1', N''), (N'610113', N'6101', N'00,61,6101', N'雁塔区', N'61', N'陕西省', N'6101', N'西安市', N'610113', N'雁塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'610114', N'6101', N'00,61,6101', N'阎良区', N'61', N'陕西省', N'6101', N'西安市', N'610114', N'阎良区', N'', N'', N'', N'', N'3', N'1', N''), (N'610115', N'6101', N'00,61,6101', N'临潼区', N'61', N'陕西省', N'6101', N'西安市', N'610115', N'临潼区', N'', N'', N'', N'', N'3', N'1', N''), (N'610116', N'6101', N'00,61,6101', N'长安区', N'61', N'陕西省', N'6101', N'西安市', N'610116', N'长安区', N'', N'', N'', N'', N'3', N'1', N''), (N'610117', N'6101', N'00,61,6101', N'高陵区', N'61', N'陕西省', N'6101', N'西安市', N'610117', N'高陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'610118', N'6101', N'00,61,6101', N'鄠邑区', N'61', N'陕西省', N'6101', N'西安市', N'610118', N'鄠邑区', N'', N'', N'', N'', N'3', N'1', N''), (N'610122', N'6101', N'00,61,6101', N'蓝田县', N'61', N'陕西省', N'6101', N'西安市', N'610122', N'蓝田县', N'', N'', N'', N'', N'3', N'1', N''), (N'610124', N'6101', N'00,61,6101', N'周至县', N'61', N'陕西省', N'6101', N'西安市', N'610124', N'周至县', N'', N'', N'', N'', N'3', N'1', N''), (N'6102', N'61', N'00,61', N'铜川市', N'61', N'陕西省', N'6102', N'铜川市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610202', N'6102', N'00,61,6102', N'王益区', N'61', N'陕西省', N'6102', N'铜川市', N'610202', N'王益区', N'', N'', N'', N'', N'3', N'1', N''), (N'610203', N'6102', N'00,61,6102', N'印台区', N'61', N'陕西省', N'6102', N'铜川市', N'610203', N'印台区', N'', N'', N'', N'', N'3', N'1', N''), (N'610204', N'6102', N'00,61,6102', N'耀州区', N'61', N'陕西省', N'6102', N'铜川市', N'610204', N'耀州区', N'', N'', N'', N'', N'3', N'1', N''), (N'610222', N'6102', N'00,61,6102', N'宜君县', N'61', N'陕西省', N'6102', N'铜川市', N'610222', N'宜君县', N'', N'', N'', N'', N'3', N'1', N''), (N'6103', N'61', N'00,61', N'宝鸡市', N'61', N'陕西省', N'6103', N'宝鸡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610302', N'6103', N'00,61,6103', N'渭滨区', N'61', N'陕西省', N'6103', N'宝鸡市', N'610302', N'渭滨区', N'', N'', N'', N'', N'3', N'1', N''), (N'610303', N'6103', N'00,61,6103', N'金台区', N'61', N'陕西省', N'6103', N'宝鸡市', N'610303', N'金台区', N'', N'', N'', N'', N'3', N'1', N''), (N'610304', N'6103', N'00,61,6103', N'陈仓区', N'61', N'陕西省', N'6103', N'宝鸡市', N'610304', N'陈仓区', N'', N'', N'', N'', N'3', N'1', N''), (N'610322', N'6103', N'00,61,6103', N'凤翔县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610322', N'凤翔县', N'', N'', N'', N'', N'3', N'1', N''), (N'610323', N'6103', N'00,61,6103', N'岐山县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610323', N'岐山县', N'', N'', N'', N'', N'3', N'1', N''), (N'610324', N'6103', N'00,61,6103', N'扶风县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610324', N'扶风县', N'', N'', N'', N'', N'3', N'1', N''), (N'610326', N'6103', N'00,61,6103', N'眉县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610326', N'眉县', N'', N'', N'', N'', N'3', N'1', N''), (N'610327', N'6103', N'00,61,6103', N'陇县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610327', N'陇县', N'', N'', N'', N'', N'3', N'1', N''), (N'610328', N'6103', N'00,61,6103', N'千阳县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610328', N'千阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610329', N'6103', N'00,61,6103', N'麟游县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610329', N'麟游县', N'', N'', N'', N'', N'3', N'1', N''), (N'610330', N'6103', N'00,61,6103', N'凤县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610330', N'凤县', N'', N'', N'', N'', N'3', N'1', N''), (N'610331', N'6103', N'00,61,6103', N'太白县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610331', N'太白县', N'', N'', N'', N'', N'3', N'1', N''), (N'6104', N'61', N'00,61', N'咸阳市', N'61', N'陕西省', N'6104', N'咸阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610402', N'6104', N'00,61,6104', N'秦都区', N'61', N'陕西省', N'6104', N'咸阳市', N'610402', N'秦都区', N'', N'', N'', N'', N'3', N'1', N''), (N'610403', N'6104', N'00,61,6104', N'杨陵区', N'61', N'陕西省', N'6104', N'咸阳市', N'610403', N'杨陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'610404', N'6104', N'00,61,6104', N'渭城区', N'61', N'陕西省', N'6104', N'咸阳市', N'610404', N'渭城区', N'', N'', N'', N'', N'3', N'1', N''), (N'610422', N'6104', N'00,61,6104', N'三原县', N'61', N'陕西省', N'6104', N'咸阳市', N'610422', N'三原县', N'', N'', N'', N'', N'3', N'1', N''), (N'610423', N'6104', N'00,61,6104', N'泾阳县', N'61', N'陕西省', N'6104', N'咸阳市', N'610423', N'泾阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610424', N'6104', N'00,61,6104', N'乾县', N'61', N'陕西省', N'6104', N'咸阳市', N'610424', N'乾县', N'', N'', N'', N'', N'3', N'1', N''), (N'610425', N'6104', N'00,61,6104', N'礼泉县', N'61', N'陕西省', N'6104', N'咸阳市', N'610425', N'礼泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'610426', N'6104', N'00,61,6104', N'永寿县', N'61', N'陕西省', N'6104', N'咸阳市', N'610426', N'永寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'610428', N'6104', N'00,61,6104', N'长武县', N'61', N'陕西省', N'6104', N'咸阳市', N'610428', N'长武县', N'', N'', N'', N'', N'3', N'1', N''), (N'610429', N'6104', N'00,61,6104', N'旬邑县', N'61', N'陕西省', N'6104', N'咸阳市', N'610429', N'旬邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'610430', N'6104', N'00,61,6104', N'淳化县', N'61', N'陕西省', N'6104', N'咸阳市', N'610430', N'淳化县', N'', N'', N'', N'', N'3', N'1', N''), (N'610431', N'6104', N'00,61,6104', N'武功县', N'61', N'陕西省', N'6104', N'咸阳市', N'610431', N'武功县', N'', N'', N'', N'', N'3', N'1', N''), (N'610481', N'6104', N'00,61,6104', N'兴平市', N'61', N'陕西省', N'6104', N'咸阳市', N'610481', N'兴平市', N'', N'', N'', N'', N'3', N'1', N''), (N'610482', N'6104', N'00,61,6104', N'彬州市', N'61', N'陕西省', N'6104', N'咸阳市', N'610482', N'彬州市', N'', N'', N'', N'', N'3', N'1', N''), (N'6105', N'61', N'00,61', N'渭南市', N'61', N'陕西省', N'6105', N'渭南市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610502', N'6105', N'00,61,6105', N'临渭区', N'61', N'陕西省', N'6105', N'渭南市', N'610502', N'临渭区', N'', N'', N'', N'', N'3', N'1', N''), (N'610503', N'6105', N'00,61,6105', N'华州区', N'61', N'陕西省', N'6105', N'渭南市', N'610503', N'华州区', N'', N'', N'', N'', N'3', N'1', N''), (N'610522', N'6105', N'00,61,6105', N'潼关县', N'61', N'陕西省', N'6105', N'渭南市', N'610522', N'潼关县', N'', N'', N'', N'', N'3', N'1', N''), (N'610523', N'6105', N'00,61,6105', N'大荔县', N'61', N'陕西省', N'6105', N'渭南市', N'610523', N'大荔县', N'', N'', N'', N'', N'3', N'1', N''), (N'610524', N'6105', N'00,61,6105', N'合阳县', N'61', N'陕西省', N'6105', N'渭南市', N'610524', N'合阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610525', N'6105', N'00,61,6105', N'澄城县', N'61', N'陕西省', N'6105', N'渭南市', N'610525', N'澄城县', N'', N'', N'', N'', N'3', N'1', N''), (N'610526', N'6105', N'00,61,6105', N'蒲城县', N'61', N'陕西省', N'6105', N'渭南市', N'610526', N'蒲城县', N'', N'', N'', N'', N'3', N'1', N''), (N'610527', N'6105', N'00,61,6105', N'白水县', N'61', N'陕西省', N'6105', N'渭南市', N'610527', N'白水县', N'', N'', N'', N'', N'3', N'1', N''), (N'610528', N'6105', N'00,61,6105', N'富平县', N'61', N'陕西省', N'6105', N'渭南市', N'610528', N'富平县', N'', N'', N'', N'', N'3', N'1', N''), (N'610581', N'6105', N'00,61,6105', N'韩城市', N'61', N'陕西省', N'6105', N'渭南市', N'610581', N'韩城市', N'', N'', N'', N'', N'3', N'1', N''), (N'610582', N'6105', N'00,61,6105', N'华阴市', N'61', N'陕西省', N'6105', N'渭南市', N'610582', N'华阴市', N'', N'', N'', N'', N'3', N'1', N''), (N'6106', N'61', N'00,61', N'延安市', N'61', N'陕西省', N'6106', N'延安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610602', N'6106', N'00,61,6106', N'宝塔区', N'61', N'陕西省', N'6106', N'延安市', N'610602', N'宝塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'610603', N'6106', N'00,61,6106', N'安塞区', N'61', N'陕西省', N'6106', N'延安市', N'610603', N'安塞区', N'', N'', N'', N'', N'3', N'1', N''), (N'610621', N'6106', N'00,61,6106', N'延长县', N'61', N'陕西省', N'6106', N'延安市', N'610621', N'延长县', N'', N'', N'', N'', N'3', N'1', N''), (N'610622', N'6106', N'00,61,6106', N'延川县', N'61', N'陕西省', N'6106', N'延安市', N'610622', N'延川县', N'', N'', N'', N'', N'3', N'1', N''), (N'610625', N'6106', N'00,61,6106', N'志丹县', N'61', N'陕西省', N'6106', N'延安市', N'610625', N'志丹县', N'', N'', N'', N'', N'3', N'1', N''), (N'610626', N'6106', N'00,61,6106', N'吴起县', N'61', N'陕西省', N'6106', N'延安市', N'610626', N'吴起县', N'', N'', N'', N'', N'3', N'1', N''), (N'610627', N'6106', N'00,61,6106', N'甘泉县', N'61', N'陕西省', N'6106', N'延安市', N'610627', N'甘泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'610628', N'6106', N'00,61,6106', N'富县', N'61', N'陕西省', N'6106', N'延安市', N'610628', N'富县', N'', N'', N'', N'', N'3', N'1', N''), (N'610629', N'6106', N'00,61,6106', N'洛川县', N'61', N'陕西省', N'6106', N'延安市', N'610629', N'洛川县', N'', N'', N'', N'', N'3', N'1', N''), (N'610630', N'6106', N'00,61,6106', N'宜川县', N'61', N'陕西省', N'6106', N'延安市', N'610630', N'宜川县', N'', N'', N'', N'', N'3', N'1', N''), (N'610631', N'6106', N'00,61,6106', N'黄龙县', N'61', N'陕西省', N'6106', N'延安市', N'610631', N'黄龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'610632', N'6106', N'00,61,6106', N'黄陵县', N'61', N'陕西省', N'6106', N'延安市', N'610632', N'黄陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'610681', N'6106', N'00,61,6106', N'子长市', N'61', N'陕西省', N'6106', N'延安市', N'610681', N'子长市', N'', N'', N'', N'', N'3', N'1', N''), (N'6107', N'61', N'00,61', N'汉中市', N'61', N'陕西省', N'6107', N'汉中市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610702', N'6107', N'00,61,6107', N'汉台区', N'61', N'陕西省', N'6107', N'汉中市', N'610702', N'汉台区', N'', N'', N'', N'', N'3', N'1', N''), (N'610703', N'6107', N'00,61,6107', N'南郑区', N'61', N'陕西省', N'6107', N'汉中市', N'610703', N'南郑区', N'', N'', N'', N'', N'3', N'1', N''), (N'610722', N'6107', N'00,61,6107', N'城固县', N'61', N'陕西省', N'6107', N'汉中市', N'610722', N'城固县', N'', N'', N'', N'', N'3', N'1', N''), (N'610723', N'6107', N'00,61,6107', N'洋县', N'61', N'陕西省', N'6107', N'汉中市', N'610723', N'洋县', N'', N'', N'', N'', N'3', N'1', N''), (N'610724', N'6107', N'00,61,6107', N'西乡县', N'61', N'陕西省', N'6107', N'汉中市', N'610724', N'西乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'610725', N'6107', N'00,61,6107', N'勉县', N'61', N'陕西省', N'6107', N'汉中市', N'610725', N'勉县', N'', N'', N'', N'', N'3', N'1', N''), (N'610726', N'6107', N'00,61,6107', N'宁强县', N'61', N'陕西省', N'6107', N'汉中市', N'610726', N'宁强县', N'', N'', N'', N'', N'3', N'1', N''), (N'610727', N'6107', N'00,61,6107', N'略阳县', N'61', N'陕西省', N'6107', N'汉中市', N'610727', N'略阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610728', N'6107', N'00,61,6107', N'镇巴县', N'61', N'陕西省', N'6107', N'汉中市', N'610728', N'镇巴县', N'', N'', N'', N'', N'3', N'1', N''), (N'610729', N'6107', N'00,61,6107', N'留坝县', N'61', N'陕西省', N'6107', N'汉中市', N'610729', N'留坝县', N'', N'', N'', N'', N'3', N'1', N''), (N'610730', N'6107', N'00,61,6107', N'佛坪县', N'61', N'陕西省', N'6107', N'汉中市', N'610730', N'佛坪县', N'', N'', N'', N'', N'3', N'1', N''), (N'6108', N'61', N'00,61', N'榆林市', N'61', N'陕西省', N'6108', N'榆林市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610802', N'6108', N'00,61,6108', N'榆阳区', N'61', N'陕西省', N'6108', N'榆林市', N'610802', N'榆阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'610803', N'6108', N'00,61,6108', N'横山区', N'61', N'陕西省', N'6108', N'榆林市', N'610803', N'横山区', N'', N'', N'', N'', N'3', N'1', N''), (N'610822', N'6108', N'00,61,6108', N'府谷县', N'61', N'陕西省', N'6108', N'榆林市', N'610822', N'府谷县', N'', N'', N'', N'', N'3', N'1', N''), (N'610824', N'6108', N'00,61,6108', N'靖边县', N'61', N'陕西省', N'6108', N'榆林市', N'610824', N'靖边县', N'', N'', N'', N'', N'3', N'1', N''), (N'610825', N'6108', N'00,61,6108', N'定边县', N'61', N'陕西省', N'6108', N'榆林市', N'610825', N'定边县', N'', N'', N'', N'', N'3', N'1', N''), (N'610826', N'6108', N'00,61,6108', N'绥德县', N'61', N'陕西省', N'6108', N'榆林市', N'610826', N'绥德县', N'', N'', N'', N'', N'3', N'1', N''), (N'610827', N'6108', N'00,61,6108', N'米脂县', N'61', N'陕西省', N'6108', N'榆林市', N'610827', N'米脂县', N'', N'', N'', N'', N'3', N'1', N''), (N'610828', N'6108', N'00,61,6108', N'佳县', N'61', N'陕西省', N'6108', N'榆林市', N'610828', N'佳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610829', N'6108', N'00,61,6108', N'吴堡县', N'61', N'陕西省', N'6108', N'榆林市', N'610829', N'吴堡县', N'', N'', N'', N'', N'3', N'1', N''), (N'610830', N'6108', N'00,61,6108', N'清涧县', N'61', N'陕西省', N'6108', N'榆林市', N'610830', N'清涧县', N'', N'', N'', N'', N'3', N'1', N'')
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'610831', N'6108', N'00,61,6108', N'子洲县', N'61', N'陕西省', N'6108', N'榆林市', N'610831', N'子洲县', N'', N'', N'', N'', N'3', N'1', N''), (N'610881', N'6108', N'00,61,6108', N'神木市', N'61', N'陕西省', N'6108', N'榆林市', N'610881', N'神木市', N'', N'', N'', N'', N'3', N'1', N''), (N'6109', N'61', N'00,61', N'安康市', N'61', N'陕西省', N'6109', N'安康市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610902', N'6109', N'00,61,6109', N'汉滨区', N'61', N'陕西省', N'6109', N'安康市', N'610902', N'汉滨区', N'', N'', N'', N'', N'3', N'1', N''), (N'610921', N'6109', N'00,61,6109', N'汉阴县', N'61', N'陕西省', N'6109', N'安康市', N'610921', N'汉阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'610922', N'6109', N'00,61,6109', N'石泉县', N'61', N'陕西省', N'6109', N'安康市', N'610922', N'石泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'610923', N'6109', N'00,61,6109', N'宁陕县', N'61', N'陕西省', N'6109', N'安康市', N'610923', N'宁陕县', N'', N'', N'', N'', N'3', N'1', N''), (N'610924', N'6109', N'00,61,6109', N'紫阳县', N'61', N'陕西省', N'6109', N'安康市', N'610924', N'紫阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610925', N'6109', N'00,61,6109', N'岚皋县', N'61', N'陕西省', N'6109', N'安康市', N'610925', N'岚皋县', N'', N'', N'', N'', N'3', N'1', N''), (N'610926', N'6109', N'00,61,6109', N'平利县', N'61', N'陕西省', N'6109', N'安康市', N'610926', N'平利县', N'', N'', N'', N'', N'3', N'1', N''), (N'610927', N'6109', N'00,61,6109', N'镇坪县', N'61', N'陕西省', N'6109', N'安康市', N'610927', N'镇坪县', N'', N'', N'', N'', N'3', N'1', N''), (N'610928', N'6109', N'00,61,6109', N'旬阳县', N'61', N'陕西省', N'6109', N'安康市', N'610928', N'旬阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610929', N'6109', N'00,61,6109', N'白河县', N'61', N'陕西省', N'6109', N'安康市', N'610929', N'白河县', N'', N'', N'', N'', N'3', N'1', N''), (N'6110', N'61', N'00,61', N'商洛市', N'61', N'陕西省', N'6110', N'商洛市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'611002', N'6110', N'00,61,6110', N'商州区', N'61', N'陕西省', N'6110', N'商洛市', N'611002', N'商州区', N'', N'', N'', N'', N'3', N'1', N''), (N'611021', N'6110', N'00,61,6110', N'洛南县', N'61', N'陕西省', N'6110', N'商洛市', N'611021', N'洛南县', N'', N'', N'', N'', N'3', N'1', N''), (N'611022', N'6110', N'00,61,6110', N'丹凤县', N'61', N'陕西省', N'6110', N'商洛市', N'611022', N'丹凤县', N'', N'', N'', N'', N'3', N'1', N''), (N'611023', N'6110', N'00,61,6110', N'商南县', N'61', N'陕西省', N'6110', N'商洛市', N'611023', N'商南县', N'', N'', N'', N'', N'3', N'1', N''), (N'611024', N'6110', N'00,61,6110', N'山阳县', N'61', N'陕西省', N'6110', N'商洛市', N'611024', N'山阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'611025', N'6110', N'00,61,6110', N'镇安县', N'61', N'陕西省', N'6110', N'商洛市', N'611025', N'镇安县', N'', N'', N'', N'', N'3', N'1', N''), (N'611026', N'6110', N'00,61,6110', N'柞水县', N'61', N'陕西省', N'6110', N'商洛市', N'611026', N'柞水县', N'', N'', N'', N'', N'3', N'1', N''), (N'62', N'00', N'00', N'甘肃省', N'62', N'甘肃省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'6201', N'62', N'00,62', N'兰州市', N'62', N'甘肃省', N'6201', N'兰州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620102', N'6201', N'00,62,6201', N'城关区', N'62', N'甘肃省', N'6201', N'兰州市', N'620102', N'城关区', N'', N'', N'', N'', N'3', N'1', N''), (N'620103', N'6201', N'00,62,6201', N'七里河区', N'62', N'甘肃省', N'6201', N'兰州市', N'620103', N'七里河区', N'', N'', N'', N'', N'3', N'1', N''), (N'620104', N'6201', N'00,62,6201', N'西固区', N'62', N'甘肃省', N'6201', N'兰州市', N'620104', N'西固区', N'', N'', N'', N'', N'3', N'1', N''), (N'620105', N'6201', N'00,62,6201', N'安宁区', N'62', N'甘肃省', N'6201', N'兰州市', N'620105', N'安宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'620111', N'6201', N'00,62,6201', N'红古区', N'62', N'甘肃省', N'6201', N'兰州市', N'620111', N'红古区', N'', N'', N'', N'', N'3', N'1', N''), (N'620121', N'6201', N'00,62,6201', N'永登县', N'62', N'甘肃省', N'6201', N'兰州市', N'620121', N'永登县', N'', N'', N'', N'', N'3', N'1', N''), (N'620122', N'6201', N'00,62,6201', N'皋兰县', N'62', N'甘肃省', N'6201', N'兰州市', N'620122', N'皋兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'620123', N'6201', N'00,62,6201', N'榆中县', N'62', N'甘肃省', N'6201', N'兰州市', N'620123', N'榆中县', N'', N'', N'', N'', N'3', N'1', N''), (N'6202', N'62', N'00,62', N'嘉峪关市', N'62', N'甘肃省', N'6202', N'嘉峪关市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620200', N'6202', N'00,62,6202', N'嘉峪关市', N'62', N'甘肃省', N'6202', N'嘉峪关市', N'620200', N'嘉峪关市', N'', N'', N'', N'', N'3', N'1', N''), (N'6203', N'62', N'00,62', N'金昌市', N'62', N'甘肃省', N'6203', N'金昌市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620302', N'6203', N'00,62,6203', N'金川区', N'62', N'甘肃省', N'6203', N'金昌市', N'620302', N'金川区', N'', N'', N'', N'', N'3', N'1', N''), (N'620321', N'6203', N'00,62,6203', N'永昌县', N'62', N'甘肃省', N'6203', N'金昌市', N'620321', N'永昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'6204', N'62', N'00,62', N'白银市', N'62', N'甘肃省', N'6204', N'白银市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620402', N'6204', N'00,62,6204', N'白银区', N'62', N'甘肃省', N'6204', N'白银市', N'620402', N'白银区', N'', N'', N'', N'', N'3', N'1', N''), (N'620403', N'6204', N'00,62,6204', N'平川区', N'62', N'甘肃省', N'6204', N'白银市', N'620403', N'平川区', N'', N'', N'', N'', N'3', N'1', N''), (N'620421', N'6204', N'00,62,6204', N'靖远县', N'62', N'甘肃省', N'6204', N'白银市', N'620421', N'靖远县', N'', N'', N'', N'', N'3', N'1', N''), (N'620422', N'6204', N'00,62,6204', N'会宁县', N'62', N'甘肃省', N'6204', N'白银市', N'620422', N'会宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'620423', N'6204', N'00,62,6204', N'景泰县', N'62', N'甘肃省', N'6204', N'白银市', N'620423', N'景泰县', N'', N'', N'', N'', N'3', N'1', N''), (N'6205', N'62', N'00,62', N'天水市', N'62', N'甘肃省', N'6205', N'天水市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620502', N'6205', N'00,62,6205', N'秦州区', N'62', N'甘肃省', N'6205', N'天水市', N'620502', N'秦州区', N'', N'', N'', N'', N'3', N'1', N''), (N'620503', N'6205', N'00,62,6205', N'麦积区', N'62', N'甘肃省', N'6205', N'天水市', N'620503', N'麦积区', N'', N'', N'', N'', N'3', N'1', N''), (N'620521', N'6205', N'00,62,6205', N'清水县', N'62', N'甘肃省', N'6205', N'天水市', N'620521', N'清水县', N'', N'', N'', N'', N'3', N'1', N''), (N'620522', N'6205', N'00,62,6205', N'秦安县', N'62', N'甘肃省', N'6205', N'天水市', N'620522', N'秦安县', N'', N'', N'', N'', N'3', N'1', N''), (N'620523', N'6205', N'00,62,6205', N'甘谷县', N'62', N'甘肃省', N'6205', N'天水市', N'620523', N'甘谷县', N'', N'', N'', N'', N'3', N'1', N''), (N'620524', N'6205', N'00,62,6205', N'武山县', N'62', N'甘肃省', N'6205', N'天水市', N'620524', N'武山县', N'', N'', N'', N'', N'3', N'1', N''), (N'620525', N'6205', N'00,62,6205', N'张家川回族自治县', N'62', N'甘肃省', N'6205', N'天水市', N'620525', N'张家川回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6206', N'62', N'00,62', N'武威市', N'62', N'甘肃省', N'6206', N'武威市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620602', N'6206', N'00,62,6206', N'凉州区', N'62', N'甘肃省', N'6206', N'武威市', N'620602', N'凉州区', N'', N'', N'', N'', N'3', N'1', N''), (N'620621', N'6206', N'00,62,6206', N'民勤县', N'62', N'甘肃省', N'6206', N'武威市', N'620621', N'民勤县', N'', N'', N'', N'', N'3', N'1', N''), (N'620622', N'6206', N'00,62,6206', N'古浪县', N'62', N'甘肃省', N'6206', N'武威市', N'620622', N'古浪县', N'', N'', N'', N'', N'3', N'1', N''), (N'620623', N'6206', N'00,62,6206', N'天祝藏族自治县', N'62', N'甘肃省', N'6206', N'武威市', N'620623', N'天祝藏族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6207', N'62', N'00,62', N'张掖市', N'62', N'甘肃省', N'6207', N'张掖市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620702', N'6207', N'00,62,6207', N'甘州区', N'62', N'甘肃省', N'6207', N'张掖市', N'620702', N'甘州区', N'', N'', N'', N'', N'3', N'1', N''), (N'620721', N'6207', N'00,62,6207', N'肃南裕固族自治县', N'62', N'甘肃省', N'6207', N'张掖市', N'620721', N'肃南裕固族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'620722', N'6207', N'00,62,6207', N'民乐县', N'62', N'甘肃省', N'6207', N'张掖市', N'620722', N'民乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'620723', N'6207', N'00,62,6207', N'临泽县', N'62', N'甘肃省', N'6207', N'张掖市', N'620723', N'临泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'620724', N'6207', N'00,62,6207', N'高台县', N'62', N'甘肃省', N'6207', N'张掖市', N'620724', N'高台县', N'', N'', N'', N'', N'3', N'1', N''), (N'620725', N'6207', N'00,62,6207', N'山丹县', N'62', N'甘肃省', N'6207', N'张掖市', N'620725', N'山丹县', N'', N'', N'', N'', N'3', N'1', N''), (N'6208', N'62', N'00,62', N'平凉市', N'62', N'甘肃省', N'6208', N'平凉市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620802', N'6208', N'00,62,6208', N'崆峒区', N'62', N'甘肃省', N'6208', N'平凉市', N'620802', N'崆峒区', N'', N'', N'', N'', N'3', N'1', N''), (N'620821', N'6208', N'00,62,6208', N'泾川县', N'62', N'甘肃省', N'6208', N'平凉市', N'620821', N'泾川县', N'', N'', N'', N'', N'3', N'1', N''), (N'620822', N'6208', N'00,62,6208', N'灵台县', N'62', N'甘肃省', N'6208', N'平凉市', N'620822', N'灵台县', N'', N'', N'', N'', N'3', N'1', N''), (N'620823', N'6208', N'00,62,6208', N'崇信县', N'62', N'甘肃省', N'6208', N'平凉市', N'620823', N'崇信县', N'', N'', N'', N'', N'3', N'1', N''), (N'620825', N'6208', N'00,62,6208', N'庄浪县', N'62', N'甘肃省', N'6208', N'平凉市', N'620825', N'庄浪县', N'', N'', N'', N'', N'3', N'1', N''), (N'620826', N'6208', N'00,62,6208', N'静宁县', N'62', N'甘肃省', N'6208', N'平凉市', N'620826', N'静宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'620881', N'6208', N'00,62,6208', N'华亭市', N'62', N'甘肃省', N'6208', N'平凉市', N'620881', N'华亭市', N'', N'', N'', N'', N'3', N'1', N''), (N'6209', N'62', N'00,62', N'酒泉市', N'62', N'甘肃省', N'6209', N'酒泉市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620902', N'6209', N'00,62,6209', N'肃州区', N'62', N'甘肃省', N'6209', N'酒泉市', N'620902', N'肃州区', N'', N'', N'', N'', N'3', N'1', N''), (N'620921', N'6209', N'00,62,6209', N'金塔县', N'62', N'甘肃省', N'6209', N'酒泉市', N'620921', N'金塔县', N'', N'', N'', N'', N'3', N'1', N''), (N'620922', N'6209', N'00,62,6209', N'瓜州县', N'62', N'甘肃省', N'6209', N'酒泉市', N'620922', N'瓜州县', N'', N'', N'', N'', N'3', N'1', N''), (N'620923', N'6209', N'00,62,6209', N'肃北蒙古族自治县', N'62', N'甘肃省', N'6209', N'酒泉市', N'620923', N'肃北蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'620924', N'6209', N'00,62,6209', N'阿克塞哈萨克族自治县', N'62', N'甘肃省', N'6209', N'酒泉市', N'620924', N'阿克塞哈萨克族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'620981', N'6209', N'00,62,6209', N'玉门市', N'62', N'甘肃省', N'6209', N'酒泉市', N'620981', N'玉门市', N'', N'', N'', N'', N'3', N'1', N''), (N'620982', N'6209', N'00,62,6209', N'敦煌市', N'62', N'甘肃省', N'6209', N'酒泉市', N'620982', N'敦煌市', N'', N'', N'', N'', N'3', N'1', N''), (N'6210', N'62', N'00,62', N'庆阳市', N'62', N'甘肃省', N'6210', N'庆阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'621002', N'6210', N'00,62,6210', N'西峰区', N'62', N'甘肃省', N'6210', N'庆阳市', N'621002', N'西峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'621021', N'6210', N'00,62,6210', N'庆城县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621021', N'庆城县', N'', N'', N'', N'', N'3', N'1', N''), (N'621022', N'6210', N'00,62,6210', N'环县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621022', N'环县', N'', N'', N'', N'', N'3', N'1', N''), (N'621023', N'6210', N'00,62,6210', N'华池县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621023', N'华池县', N'', N'', N'', N'', N'3', N'1', N''), (N'621024', N'6210', N'00,62,6210', N'合水县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621024', N'合水县', N'', N'', N'', N'', N'3', N'1', N''), (N'621025', N'6210', N'00,62,6210', N'正宁县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621025', N'正宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'621026', N'6210', N'00,62,6210', N'宁县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621026', N'宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'621027', N'6210', N'00,62,6210', N'镇原县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621027', N'镇原县', N'', N'', N'', N'', N'3', N'1', N''), (N'6211', N'62', N'00,62', N'定西市', N'62', N'甘肃省', N'6211', N'定西市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'621102', N'6211', N'00,62,6211', N'安定区', N'62', N'甘肃省', N'6211', N'定西市', N'621102', N'安定区', N'', N'', N'', N'', N'3', N'1', N''), (N'621121', N'6211', N'00,62,6211', N'通渭县', N'62', N'甘肃省', N'6211', N'定西市', N'621121', N'通渭县', N'', N'', N'', N'', N'3', N'1', N''), (N'621122', N'6211', N'00,62,6211', N'陇西县', N'62', N'甘肃省', N'6211', N'定西市', N'621122', N'陇西县', N'', N'', N'', N'', N'3', N'1', N''), (N'621123', N'6211', N'00,62,6211', N'渭源县', N'62', N'甘肃省', N'6211', N'定西市', N'621123', N'渭源县', N'', N'', N'', N'', N'3', N'1', N''), (N'621124', N'6211', N'00,62,6211', N'临洮县', N'62', N'甘肃省', N'6211', N'定西市', N'621124', N'临洮县', N'', N'', N'', N'', N'3', N'1', N''), (N'621125', N'6211', N'00,62,6211', N'漳县', N'62', N'甘肃省', N'6211', N'定西市', N'621125', N'漳县', N'', N'', N'', N'', N'3', N'1', N''), (N'621126', N'6211', N'00,62,6211', N'岷县', N'62', N'甘肃省', N'6211', N'定西市', N'621126', N'岷县', N'', N'', N'', N'', N'3', N'1', N''), (N'6212', N'62', N'00,62', N'陇南市', N'62', N'甘肃省', N'6212', N'陇南市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'621202', N'6212', N'00,62,6212', N'武都区', N'62', N'甘肃省', N'6212', N'陇南市', N'621202', N'武都区', N'', N'', N'', N'', N'3', N'1', N''), (N'621221', N'6212', N'00,62,6212', N'成县', N'62', N'甘肃省', N'6212', N'陇南市', N'621221', N'成县', N'', N'', N'', N'', N'3', N'1', N''), (N'621222', N'6212', N'00,62,6212', N'文县', N'62', N'甘肃省', N'6212', N'陇南市', N'621222', N'文县', N'', N'', N'', N'', N'3', N'1', N''), (N'621223', N'6212', N'00,62,6212', N'宕昌县', N'62', N'甘肃省', N'6212', N'陇南市', N'621223', N'宕昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'621224', N'6212', N'00,62,6212', N'康县', N'62', N'甘肃省', N'6212', N'陇南市', N'621224', N'康县', N'', N'', N'', N'', N'3', N'1', N''), (N'621225', N'6212', N'00,62,6212', N'西和县', N'62', N'甘肃省', N'6212', N'陇南市', N'621225', N'西和县', N'', N'', N'', N'', N'3', N'1', N''), (N'621226', N'6212', N'00,62,6212', N'礼县', N'62', N'甘肃省', N'6212', N'陇南市', N'621226', N'礼县', N'', N'', N'', N'', N'3', N'1', N''), (N'621227', N'6212', N'00,62,6212', N'徽县', N'62', N'甘肃省', N'6212', N'陇南市', N'621227', N'徽县', N'', N'', N'', N'', N'3', N'1', N''), (N'621228', N'6212', N'00,62,6212', N'两当县', N'62', N'甘肃省', N'6212', N'陇南市', N'621228', N'两当县', N'', N'', N'', N'', N'3', N'1', N''), (N'6229', N'62', N'00,62', N'临夏回族自治州', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'622901', N'6229', N'00,62,6229', N'临夏市', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622901', N'临夏市', N'', N'', N'', N'', N'3', N'1', N''), (N'622921', N'6229', N'00,62,6229', N'临夏县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622921', N'临夏县', N'', N'', N'', N'', N'3', N'1', N''), (N'622922', N'6229', N'00,62,6229', N'康乐县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622922', N'康乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'622923', N'6229', N'00,62,6229', N'永靖县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622923', N'永靖县', N'', N'', N'', N'', N'3', N'1', N''), (N'622924', N'6229', N'00,62,6229', N'广河县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622924', N'广河县', N'', N'', N'', N'', N'3', N'1', N''), (N'622925', N'6229', N'00,62,6229', N'和政县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622925', N'和政县', N'', N'', N'', N'', N'3', N'1', N''), (N'622926', N'6229', N'00,62,6229', N'东乡族自治县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622926', N'东乡族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'622927', N'6229', N'00,62,6229', N'积石山保安族东乡族撒拉族自治县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622927', N'积石山保安族东乡族撒拉族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6230', N'62', N'00,62', N'甘南藏族自治州', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'623001', N'6230', N'00,62,6230', N'合作市', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623001', N'合作市', N'', N'', N'', N'', N'3', N'1', N''), (N'623021', N'6230', N'00,62,6230', N'临潭县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623021', N'临潭县', N'', N'', N'', N'', N'3', N'1', N''), (N'623022', N'6230', N'00,62,6230', N'卓尼县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623022', N'卓尼县', N'', N'', N'', N'', N'3', N'1', N''), (N'623023', N'6230', N'00,62,6230', N'舟曲县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623023', N'舟曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'623024', N'6230', N'00,62,6230', N'迭部县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623024', N'迭部县', N'', N'', N'', N'', N'3', N'1', N''), (N'623025', N'6230', N'00,62,6230', N'玛曲县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623025', N'玛曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'623026', N'6230', N'00,62,6230', N'碌曲县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623026', N'碌曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'623027', N'6230', N'00,62,6230', N'夏河县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623027', N'夏河县', N'', N'', N'', N'', N'3', N'1', N''), (N'63', N'00', N'00', N'青海省', N'63', N'青海省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'6301', N'63', N'00,63', N'西宁市', N'63', N'青海省', N'6301', N'西宁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'630102', N'6301', N'00,63,6301', N'城东区', N'63', N'青海省', N'6301', N'西宁市', N'630102', N'城东区', N'', N'', N'', N'', N'3', N'1', N''), (N'630103', N'6301', N'00,63,6301', N'城中区', N'63', N'青海省', N'6301', N'西宁市', N'630103', N'城中区', N'', N'', N'', N'', N'3', N'1', N''), (N'630104', N'6301', N'00,63,6301', N'城西区', N'63', N'青海省', N'6301', N'西宁市', N'630104', N'城西区', N'', N'', N'', N'', N'3', N'1', N''), (N'630105', N'6301', N'00,63,6301', N'城北区', N'63', N'青海省', N'6301', N'西宁市', N'630105', N'城北区', N'', N'', N'', N'', N'3', N'1', N''), (N'630106', N'6301', N'00,63,6301', N'湟中区', N'63', N'青海省', N'6301', N'西宁市', N'630106', N'湟中区', N'', N'', N'', N'', N'3', N'1', N''), (N'630121', N'6301', N'00,63,6301', N'大通回族土族自治县', N'63', N'青海省', N'6301', N'西宁市', N'630121', N'大通回族土族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'630123', N'6301', N'00,63,6301', N'湟源县', N'63', N'青海省', N'6301', N'西宁市', N'630123', N'湟源县', N'', N'', N'', N'', N'3', N'1', N''), (N'6302', N'63', N'00,63', N'海东市', N'63', N'青海省', N'6302', N'海东市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'630202', N'6302', N'00,63,6302', N'乐都区', N'63', N'青海省', N'6302', N'海东市', N'630202', N'乐都区', N'', N'', N'', N'', N'3', N'1', N''), (N'630203', N'6302', N'00,63,6302', N'平安区', N'63', N'青海省', N'6302', N'海东市', N'630203', N'平安区', N'', N'', N'', N'', N'3', N'1', N''), (N'630222', N'6302', N'00,63,6302', N'民和回族土族自治县', N'63', N'青海省', N'6302', N'海东市', N'630222', N'民和回族土族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'630223', N'6302', N'00,63,6302', N'互助土族自治县', N'63', N'青海省', N'6302', N'海东市', N'630223', N'互助土族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'630224', N'6302', N'00,63,6302', N'化隆回族自治县', N'63', N'青海省', N'6302', N'海东市', N'630224', N'化隆回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'630225', N'6302', N'00,63,6302', N'循化撒拉族自治县', N'63', N'青海省', N'6302', N'海东市', N'630225', N'循化撒拉族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6322', N'63', N'00,63', N'海北藏族自治州', N'63', N'青海省', N'6322', N'海北藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632221', N'6322', N'00,63,6322', N'门源回族自治县', N'63', N'青海省', N'6322', N'海北藏族自治州', N'632221', N'门源回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'632222', N'6322', N'00,63,6322', N'祁连县', N'63', N'青海省', N'6322', N'海北藏族自治州', N'632222', N'祁连县', N'', N'', N'', N'', N'3', N'1', N''), (N'632223', N'6322', N'00,63,6322', N'海晏县', N'63', N'青海省', N'6322', N'海北藏族自治州', N'632223', N'海晏县', N'', N'', N'', N'', N'3', N'1', N''), (N'632224', N'6322', N'00,63,6322', N'刚察县', N'63', N'青海省', N'6322', N'海北藏族自治州', N'632224', N'刚察县', N'', N'', N'', N'', N'3', N'1', N''), (N'6323', N'63', N'00,63', N'黄南藏族自治州', N'63', N'青海省', N'6323', N'黄南藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632321', N'6323', N'00,63,6323', N'同仁县', N'63', N'青海省', N'6323', N'黄南藏族自治州', N'632321', N'同仁县', N'', N'', N'', N'', N'3', N'1', N''), (N'632322', N'6323', N'00,63,6323', N'尖扎县', N'63', N'青海省', N'6323', N'黄南藏族自治州', N'632322', N'尖扎县', N'', N'', N'', N'', N'3', N'1', N''), (N'632323', N'6323', N'00,63,6323', N'泽库县', N'63', N'青海省', N'6323', N'黄南藏族自治州', N'632323', N'泽库县', N'', N'', N'', N'', N'3', N'1', N''), (N'632324', N'6323', N'00,63,6323', N'河南蒙古族自治县', N'63', N'青海省', N'6323', N'黄南藏族自治州', N'632324', N'河南蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6325', N'63', N'00,63', N'海南藏族自治州', N'63', N'青海省', N'6325', N'海南藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632521', N'6325', N'00,63,6325', N'共和县', N'63', N'青海省', N'6325', N'海南藏族自治州', N'632521', N'共和县', N'', N'', N'', N'', N'3', N'1', N''), (N'632522', N'6325', N'00,63,6325', N'同德县', N'63', N'青海省', N'6325', N'海南藏族自治州', N'632522', N'同德县', N'', N'', N'', N'', N'3', N'1', N''), (N'632523', N'6325', N'00,63,6325', N'贵德县', N'63', N'青海省', N'6325', N'海南藏族自治州', N'632523', N'贵德县', N'', N'', N'', N'', N'3', N'1', N''), (N'632524', N'6325', N'00,63,6325', N'兴海县', N'63', N'青海省', N'6325', N'海南藏族自治州', N'632524', N'兴海县', N'', N'', N'', N'', N'3', N'1', N''), (N'632525', N'6325', N'00,63,6325', N'贵南县', N'63', N'青海省', N'6325', N'海南藏族自治州', N'632525', N'贵南县', N'', N'', N'', N'', N'3', N'1', N''), (N'6326', N'63', N'00,63', N'果洛藏族自治州', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632621', N'6326', N'00,63,6326', N'玛沁县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632621', N'玛沁县', N'', N'', N'', N'', N'3', N'1', N''), (N'632622', N'6326', N'00,63,6326', N'班玛县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632622', N'班玛县', N'', N'', N'', N'', N'3', N'1', N''), (N'632623', N'6326', N'00,63,6326', N'甘德县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632623', N'甘德县', N'', N'', N'', N'', N'3', N'1', N''), (N'632624', N'6326', N'00,63,6326', N'达日县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632624', N'达日县', N'', N'', N'', N'', N'3', N'1', N''), (N'632625', N'6326', N'00,63,6326', N'久治县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632625', N'久治县', N'', N'', N'', N'', N'3', N'1', N''), (N'632626', N'6326', N'00,63,6326', N'玛多县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632626', N'玛多县', N'', N'', N'', N'', N'3', N'1', N''), (N'6327', N'63', N'00,63', N'玉树藏族自治州', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632701', N'6327', N'00,63,6327', N'玉树市', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632701', N'玉树市', N'', N'', N'', N'', N'3', N'1', N''), (N'632722', N'6327', N'00,63,6327', N'杂多县', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632722', N'杂多县', N'', N'', N'', N'', N'3', N'1', N''), (N'632723', N'6327', N'00,63,6327', N'称多县', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632723', N'称多县', N'', N'', N'', N'', N'3', N'1', N''), (N'632724', N'6327', N'00,63,6327', N'治多县', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632724', N'治多县', N'', N'', N'', N'', N'3', N'1', N''), (N'632725', N'6327', N'00,63,6327', N'囊谦县', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632725', N'囊谦县', N'', N'', N'', N'', N'3', N'1', N''), (N'632726', N'6327', N'00,63,6327', N'曲麻莱县', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632726', N'曲麻莱县', N'', N'', N'', N'', N'3', N'1', N''), (N'6328', N'63', N'00,63', N'海西蒙古族藏族自治州', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632801', N'6328', N'00,63,6328', N'格尔木市', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632801', N'格尔木市', N'', N'', N'', N'', N'3', N'1', N''), (N'632802', N'6328', N'00,63,6328', N'德令哈市', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632802', N'德令哈市', N'', N'', N'', N'', N'3', N'1', N''), (N'632803', N'6328', N'00,63,6328', N'茫崖市', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632803', N'茫崖市', N'', N'', N'', N'', N'3', N'1', N''), (N'632821', N'6328', N'00,63,6328', N'乌兰县', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632821', N'乌兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'632822', N'6328', N'00,63,6328', N'都兰县', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632822', N'都兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'632823', N'6328', N'00,63,6328', N'天峻县', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632823', N'天峻县', N'', N'', N'', N'', N'3', N'1', N''), (N'64', N'00', N'00', N'宁夏回族自治区', N'64', N'宁夏回族自治区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'6401', N'64', N'00,64', N'银川市', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'640104', N'6401', N'00,64,6401', N'兴庆区', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640104', N'兴庆区', N'', N'', N'', N'', N'3', N'1', N''), (N'640105', N'6401', N'00,64,6401', N'西夏区', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640105', N'西夏区', N'', N'', N'', N'', N'3', N'1', N''), (N'640106', N'6401', N'00,64,6401', N'金凤区', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640106', N'金凤区', N'', N'', N'', N'', N'3', N'1', N''), (N'640121', N'6401', N'00,64,6401', N'永宁县', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640121', N'永宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'640122', N'6401', N'00,64,6401', N'贺兰县', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640122', N'贺兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'640181', N'6401', N'00,64,6401', N'灵武市', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640181', N'灵武市', N'', N'', N'', N'', N'3', N'1', N''), (N'6402', N'64', N'00,64', N'石嘴山市', N'64', N'宁夏回族自治区', N'6402', N'石嘴山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'640202', N'6402', N'00,64,6402', N'大武口区', N'64', N'宁夏回族自治区', N'6402', N'石嘴山市', N'640202', N'大武口区', N'', N'', N'', N'', N'3', N'1', N''), (N'640205', N'6402', N'00,64,6402', N'惠农区', N'64', N'宁夏回族自治区', N'6402', N'石嘴山市', N'640205', N'惠农区', N'', N'', N'', N'', N'3', N'1', N''), (N'640221', N'6402', N'00,64,6402', N'平罗县', N'64', N'宁夏回族自治区', N'6402', N'石嘴山市', N'640221', N'平罗县', N'', N'', N'', N'', N'3', N'1', N''), (N'6403', N'64', N'00,64', N'吴忠市', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'640302', N'6403', N'00,64,6403', N'利通区', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'640302', N'利通区', N'', N'', N'', N'', N'3', N'1', N''), (N'640303', N'6403', N'00,64,6403', N'红寺堡区', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'640303', N'红寺堡区', N'', N'', N'', N'', N'3', N'1', N''), (N'640323', N'6403', N'00,64,6403', N'盐池县', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'640323', N'盐池县', N'', N'', N'', N'', N'3', N'1', N''), (N'640324', N'6403', N'00,64,6403', N'同心县', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'640324', N'同心县', N'', N'', N'', N'', N'3', N'1', N''), (N'640381', N'6403', N'00,64,6403', N'青铜峡市', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'640381', N'青铜峡市', N'', N'', N'', N'', N'3', N'1', N''), (N'6404', N'64', N'00,64', N'固原市', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'640402', N'6404', N'00,64,6404', N'原州区', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'640402', N'原州区', N'', N'', N'', N'', N'3', N'1', N''), (N'640422', N'6404', N'00,64,6404', N'西吉县', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'640422', N'西吉县', N'', N'', N'', N'', N'3', N'1', N''), (N'640423', N'6404', N'00,64,6404', N'隆德县', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'640423', N'隆德县', N'', N'', N'', N'', N'3', N'1', N''), (N'640424', N'6404', N'00,64,6404', N'泾源县', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'640424', N'泾源县', N'', N'', N'', N'', N'3', N'1', N''), (N'640425', N'6404', N'00,64,6404', N'彭阳县', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'640425', N'彭阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'6405', N'64', N'00,64', N'中卫市', N'64', N'宁夏回族自治区', N'6405', N'中卫市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'640502', N'6405', N'00,64,6405', N'沙坡头区', N'64', N'宁夏回族自治区', N'6405', N'中卫市', N'640502', N'沙坡头区', N'', N'', N'', N'', N'3', N'1', N''), (N'640521', N'6405', N'00,64,6405', N'中宁县', N'64', N'宁夏回族自治区', N'6405', N'中卫市', N'640521', N'中宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'640522', N'6405', N'00,64,6405', N'海原县', N'64', N'宁夏回族自治区', N'6405', N'中卫市', N'640522', N'海原县', N'', N'', N'', N'', N'3', N'1', N''), (N'65', N'00', N'00', N'新疆维吾尔自治区', N'65', N'新疆维吾尔自治区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'6501', N'65', N'00,65', N'乌鲁木齐市', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'650102', N'6501', N'00,65,6501', N'天山区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650102', N'天山区', N'', N'', N'', N'', N'3', N'1', N''), (N'650103', N'6501', N'00,65,6501', N'沙依巴克区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650103', N'沙依巴克区', N'', N'', N'', N'', N'3', N'1', N''), (N'650104', N'6501', N'00,65,6501', N'新市区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650104', N'新市区', N'', N'', N'', N'', N'3', N'1', N''), (N'650105', N'6501', N'00,65,6501', N'水磨沟区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650105', N'水磨沟区', N'', N'', N'', N'', N'3', N'1', N''), (N'650106', N'6501', N'00,65,6501', N'头屯河区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650106', N'头屯河区', N'', N'', N'', N'', N'3', N'1', N''), (N'650107', N'6501', N'00,65,6501', N'达坂城区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650107', N'达坂城区', N'', N'', N'', N'', N'3', N'1', N''), (N'650109', N'6501', N'00,65,6501', N'米东区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650109', N'米东区', N'', N'', N'', N'', N'3', N'1', N''), (N'650121', N'6501', N'00,65,6501', N'乌鲁木齐县', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650121', N'乌鲁木齐县', N'', N'', N'', N'', N'3', N'1', N''), (N'6502', N'65', N'00,65', N'克拉玛依市', N'65', N'新疆维吾尔自治区', N'6502', N'克拉玛依市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'650202', N'6502', N'00,65,6502', N'独山子区', N'65', N'新疆维吾尔自治区', N'6502', N'克拉玛依市', N'650202', N'独山子区', N'', N'', N'', N'', N'3', N'1', N''), (N'650203', N'6502', N'00,65,6502', N'克拉玛依区', N'65', N'新疆维吾尔自治区', N'6502', N'克拉玛依市', N'650203', N'克拉玛依区', N'', N'', N'', N'', N'3', N'1', N''), (N'650204', N'6502', N'00,65,6502', N'白碱滩区', N'65', N'新疆维吾尔自治区', N'6502', N'克拉玛依市', N'650204', N'白碱滩区', N'', N'', N'', N'', N'3', N'1', N''), (N'650205', N'6502', N'00,65,6502', N'乌尔禾区', N'65', N'新疆维吾尔自治区', N'6502', N'克拉玛依市', N'650205', N'乌尔禾区', N'', N'', N'', N'', N'3', N'1', N''), (N'6504', N'65', N'00,65', N'吐鲁番市', N'65', N'新疆维吾尔自治区', N'6504', N'吐鲁番市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'650402', N'6504', N'00,65,6504', N'高昌区', N'65', N'新疆维吾尔自治区', N'6504', N'吐鲁番市', N'650402', N'高昌区', N'', N'', N'', N'', N'3', N'1', N''), (N'650421', N'6504', N'00,65,6504', N'鄯善县', N'65', N'新疆维吾尔自治区', N'6504', N'吐鲁番市', N'650421', N'鄯善县', N'', N'', N'', N'', N'3', N'1', N''), (N'650422', N'6504', N'00,65,6504', N'托克逊县', N'65', N'新疆维吾尔自治区', N'6504', N'吐鲁番市', N'650422', N'托克逊县', N'', N'', N'', N'', N'3', N'1', N''), (N'6505', N'65', N'00,65', N'哈密市', N'65', N'新疆维吾尔自治区', N'6505', N'哈密市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'650502', N'6505', N'00,65,6505', N'伊州区', N'65', N'新疆维吾尔自治区', N'6505', N'哈密市', N'650502', N'伊州区', N'', N'', N'', N'', N'3', N'1', N''), (N'650521', N'6505', N'00,65,6505', N'巴里坤哈萨克自治县', N'65', N'新疆维吾尔自治区', N'6505', N'哈密市', N'650521', N'巴里坤哈萨克自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'650522', N'6505', N'00,65,6505', N'伊吾县', N'65', N'新疆维吾尔自治区', N'6505', N'哈密市', N'650522', N'伊吾县', N'', N'', N'', N'', N'3', N'1', N''), (N'6523', N'65', N'00,65', N'昌吉回族自治州', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'652301', N'6523', N'00,65,6523', N'昌吉市', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652301', N'昌吉市', N'', N'', N'', N'', N'3', N'1', N''), (N'652302', N'6523', N'00,65,6523', N'阜康市', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652302', N'阜康市', N'', N'', N'', N'', N'3', N'1', N''), (N'652323', N'6523', N'00,65,6523', N'呼图壁县', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652323', N'呼图壁县', N'', N'', N'', N'', N'3', N'1', N''), (N'652324', N'6523', N'00,65,6523', N'玛纳斯县', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652324', N'玛纳斯县', N'', N'', N'', N'', N'3', N'1', N''), (N'652325', N'6523', N'00,65,6523', N'奇台县', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652325', N'奇台县', N'', N'', N'', N'', N'3', N'1', N''), (N'652327', N'6523', N'00,65,6523', N'吉木萨尔县', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652327', N'吉木萨尔县', N'', N'', N'', N'', N'3', N'1', N''), (N'652328', N'6523', N'00,65,6523', N'木垒哈萨克自治县', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652328', N'木垒哈萨克自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6527', N'65', N'00,65', N'博尔塔拉蒙古自治州', N'65', N'新疆维吾尔自治区', N'6527', N'博尔塔拉蒙古自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'652701', N'6527', N'00,65,6527', N'博乐市', N'65', N'新疆维吾尔自治区', N'6527', N'博尔塔拉蒙古自治州', N'652701', N'博乐市', N'', N'', N'', N'', N'3', N'1', N''), (N'652702', N'6527', N'00,65,6527', N'阿拉山口市', N'65', N'新疆维吾尔自治区', N'6527', N'博尔塔拉蒙古自治州', N'652702', N'阿拉山口市', N'', N'', N'', N'', N'3', N'1', N''), (N'652722', N'6527', N'00,65,6527', N'精河县', N'65', N'新疆维吾尔自治区', N'6527', N'博尔塔拉蒙古自治州', N'652722', N'精河县', N'', N'', N'', N'', N'3', N'1', N''), (N'652723', N'6527', N'00,65,6527', N'温泉县', N'65', N'新疆维吾尔自治区', N'6527', N'博尔塔拉蒙古自治州', N'652723', N'温泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'6528', N'65', N'00,65', N'巴音郭楞蒙古自治州', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'652801', N'6528', N'00,65,6528', N'库尔勒市', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652801', N'库尔勒市', N'', N'', N'', N'', N'3', N'1', N''), (N'652822', N'6528', N'00,65,6528', N'轮台县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652822', N'轮台县', N'', N'', N'', N'', N'3', N'1', N''), (N'652823', N'6528', N'00,65,6528', N'尉犁县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652823', N'尉犁县', N'', N'', N'', N'', N'3', N'1', N''), (N'652824', N'6528', N'00,65,6528', N'若羌县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652824', N'若羌县', N'', N'', N'', N'', N'3', N'1', N''), (N'652825', N'6528', N'00,65,6528', N'且末县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652825', N'且末县', N'', N'', N'', N'', N'3', N'1', N''), (N'652826', N'6528', N'00,65,6528', N'焉耆回族自治县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652826', N'焉耆回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'652827', N'6528', N'00,65,6528', N'和静县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652827', N'和静县', N'', N'', N'', N'', N'3', N'1', N''), (N'652828', N'6528', N'00,65,6528', N'和硕县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652828', N'和硕县', N'', N'', N'', N'', N'3', N'1', N''), (N'652829', N'6528', N'00,65,6528', N'博湖县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652829', N'博湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'6529', N'65', N'00,65', N'阿克苏地区', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'652901', N'6529', N'00,65,6529', N'阿克苏市', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652901', N'阿克苏市', N'', N'', N'', N'', N'3', N'1', N''), (N'652902', N'6529', N'00,65,6529', N'库车市', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652902', N'库车市', N'', N'', N'', N'', N'3', N'1', N''), (N'652922', N'6529', N'00,65,6529', N'温宿县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652922', N'温宿县', N'', N'', N'', N'', N'3', N'1', N''), (N'652924', N'6529', N'00,65,6529', N'沙雅县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652924', N'沙雅县', N'', N'', N'', N'', N'3', N'1', N''), (N'652925', N'6529', N'00,65,6529', N'新和县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652925', N'新和县', N'', N'', N'', N'', N'3', N'1', N''), (N'652926', N'6529', N'00,65,6529', N'拜城县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652926', N'拜城县', N'', N'', N'', N'', N'3', N'1', N''), (N'652927', N'6529', N'00,65,6529', N'乌什县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652927', N'乌什县', N'', N'', N'', N'', N'3', N'1', N''), (N'652928', N'6529', N'00,65,6529', N'阿瓦提县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652928', N'阿瓦提县', N'', N'', N'', N'', N'3', N'1', N''), (N'652929', N'6529', N'00,65,6529', N'柯坪县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652929', N'柯坪县', N'', N'', N'', N'', N'3', N'1', N''), (N'6530', N'65', N'00,65', N'克孜勒苏柯尔克孜自治州', N'65', N'新疆维吾尔自治区', N'6530', N'克孜勒苏柯尔克孜自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'653001', N'6530', N'00,65,6530', N'阿图什市', N'65', N'新疆维吾尔自治区', N'6530', N'克孜勒苏柯尔克孜自治州', N'653001', N'阿图什市', N'', N'', N'', N'', N'3', N'1', N''), (N'653022', N'6530', N'00,65,6530', N'阿克陶县', N'65', N'新疆维吾尔自治区', N'6530', N'克孜勒苏柯尔克孜自治州', N'653022', N'阿克陶县', N'', N'', N'', N'', N'3', N'1', N''), (N'653023', N'6530', N'00,65,6530', N'阿合奇县', N'65', N'新疆维吾尔自治区', N'6530', N'克孜勒苏柯尔克孜自治州', N'653023', N'阿合奇县', N'', N'', N'', N'', N'3', N'1', N''), (N'653024', N'6530', N'00,65,6530', N'乌恰县', N'65', N'新疆维吾尔自治区', N'6530', N'克孜勒苏柯尔克孜自治州', N'653024', N'乌恰县', N'', N'', N'', N'', N'3', N'1', N''), (N'6531', N'65', N'00,65', N'喀什地区', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'653101', N'6531', N'00,65,6531', N'喀什市', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653101', N'喀什市', N'', N'', N'', N'', N'3', N'1', N''), (N'653121', N'6531', N'00,65,6531', N'疏附县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653121', N'疏附县', N'', N'', N'', N'', N'3', N'1', N''), (N'653122', N'6531', N'00,65,6531', N'疏勒县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653122', N'疏勒县', N'', N'', N'', N'', N'3', N'1', N''), (N'653123', N'6531', N'00,65,6531', N'英吉沙县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653123', N'英吉沙县', N'', N'', N'', N'', N'3', N'1', N''), (N'653124', N'6531', N'00,65,6531', N'泽普县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653124', N'泽普县', N'', N'', N'', N'', N'3', N'1', N''), (N'653125', N'6531', N'00,65,6531', N'莎车县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653125', N'莎车县', N'', N'', N'', N'', N'3', N'1', N''), (N'653126', N'6531', N'00,65,6531', N'叶城县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653126', N'叶城县', N'', N'', N'', N'', N'3', N'1', N''), (N'653127', N'6531', N'00,65,6531', N'麦盖提县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653127', N'麦盖提县', N'', N'', N'', N'', N'3', N'1', N''), (N'653128', N'6531', N'00,65,6531', N'岳普湖县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653128', N'岳普湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'653129', N'6531', N'00,65,6531', N'伽师县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653129', N'伽师县', N'', N'', N'', N'', N'3', N'1', N''), (N'653130', N'6531', N'00,65,6531', N'巴楚县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653130', N'巴楚县', N'', N'', N'', N'', N'3', N'1', N''), (N'653131', N'6531', N'00,65,6531', N'塔什库尔干塔吉克自治县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653131', N'塔什库尔干塔吉克自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6532', N'65', N'00,65', N'和田地区', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'653201', N'6532', N'00,65,6532', N'和田市', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653201', N'和田市', N'', N'', N'', N'', N'3', N'1', N''), (N'653221', N'6532', N'00,65,6532', N'和田县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653221', N'和田县', N'', N'', N'', N'', N'3', N'1', N''), (N'653222', N'6532', N'00,65,6532', N'墨玉县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653222', N'墨玉县', N'', N'', N'', N'', N'3', N'1', N''), (N'653223', N'6532', N'00,65,6532', N'皮山县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653223', N'皮山县', N'', N'', N'', N'', N'3', N'1', N''), (N'653224', N'6532', N'00,65,6532', N'洛浦县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653224', N'洛浦县', N'', N'', N'', N'', N'3', N'1', N''), (N'653225', N'6532', N'00,65,6532', N'策勒县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653225', N'策勒县', N'', N'', N'', N'', N'3', N'1', N''), (N'653226', N'6532', N'00,65,6532', N'于田县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653226', N'于田县', N'', N'', N'', N'', N'3', N'1', N''), (N'653227', N'6532', N'00,65,6532', N'民丰县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653227', N'民丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'6540', N'65', N'00,65', N'伊犁哈萨克自治州', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'654002', N'6540', N'00,65,6540', N'伊宁市', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654002', N'伊宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'654003', N'6540', N'00,65,6540', N'奎屯市', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654003', N'奎屯市', N'', N'', N'', N'', N'3', N'1', N''), (N'654004', N'6540', N'00,65,6540', N'霍尔果斯市', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654004', N'霍尔果斯市', N'', N'', N'', N'', N'3', N'1', N''), (N'654021', N'6540', N'00,65,6540', N'伊宁县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654021', N'伊宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'654022', N'6540', N'00,65,6540', N'察布查尔锡伯自治县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654022', N'察布查尔锡伯自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'654023', N'6540', N'00,65,6540', N'霍城县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654023', N'霍城县', N'', N'', N'', N'', N'3', N'1', N''), (N'654024', N'6540', N'00,65,6540', N'巩留县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654024', N'巩留县', N'', N'', N'', N'', N'3', N'1', N''), (N'654025', N'6540', N'00,65,6540', N'新源县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654025', N'新源县', N'', N'', N'', N'', N'3', N'1', N''), (N'654026', N'6540', N'00,65,6540', N'昭苏县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654026', N'昭苏县', N'', N'', N'', N'', N'3', N'1', N''), (N'654027', N'6540', N'00,65,6540', N'特克斯县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654027', N'特克斯县', N'', N'', N'', N'', N'3', N'1', N''), (N'654028', N'6540', N'00,65,6540', N'尼勒克县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654028', N'尼勒克县', N'', N'', N'', N'', N'3', N'1', N''), (N'6542', N'65', N'00,65', N'塔城地区', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'654201', N'6542', N'00,65,6542', N'塔城市', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654201', N'塔城市', N'', N'', N'', N'', N'3', N'1', N''), (N'654202', N'6542', N'00,65,6542', N'乌苏市', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654202', N'乌苏市', N'', N'', N'', N'', N'3', N'1', N''), (N'654221', N'6542', N'00,65,6542', N'额敏县', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654221', N'额敏县', N'', N'', N'', N'', N'3', N'1', N''), (N'654223', N'6542', N'00,65,6542', N'沙湾县', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654223', N'沙湾县', N'', N'', N'', N'', N'3', N'1', N''), (N'654224', N'6542', N'00,65,6542', N'托里县', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654224', N'托里县', N'', N'', N'', N'', N'3', N'1', N''), (N'654225', N'6542', N'00,65,6542', N'裕民县', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654225', N'裕民县', N'', N'', N'', N'', N'3', N'1', N''), (N'654226', N'6542', N'00,65,6542', N'和布克赛尔蒙古自治县', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654226', N'和布克赛尔蒙古自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6543', N'65', N'00,65', N'阿勒泰地区', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'654301', N'6543', N'00,65,6543', N'阿勒泰市', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654301', N'阿勒泰市', N'', N'', N'', N'', N'3', N'1', N''), (N'654321', N'6543', N'00,65,6543', N'布尔津县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654321', N'布尔津县', N'', N'', N'', N'', N'3', N'1', N''), (N'654322', N'6543', N'00,65,6543', N'富蕴县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654322', N'富蕴县', N'', N'', N'', N'', N'3', N'1', N''), (N'654323', N'6543', N'00,65,6543', N'福海县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654323', N'福海县', N'', N'', N'', N'', N'3', N'1', N''), (N'654324', N'6543', N'00,65,6543', N'哈巴河县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654324', N'哈巴河县', N'', N'', N'', N'', N'3', N'1', N''), (N'654325', N'6543', N'00,65,6543', N'青河县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654325', N'青河县', N'', N'', N'', N'', N'3', N'1', N''), (N'654326', N'6543', N'00,65,6543', N'吉木乃县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654326', N'吉木乃县', N'', N'', N'', N'', N'3', N'1', N''), (N'6590', N'65', N'00,65', N'自治区直辖县级行政区', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'659001', N'6590', N'00,65,6590', N'石河子市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659001', N'石河子市', N'', N'', N'', N'', N'3', N'1', N''), (N'659002', N'6590', N'00,65,6590', N'阿拉尔市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659002', N'阿拉尔市', N'', N'', N'', N'', N'3', N'1', N''), (N'659003', N'6590', N'00,65,6590', N'图木舒克市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659003', N'图木舒克市', N'', N'', N'', N'', N'3', N'1', N''), (N'659004', N'6590', N'00,65,6590', N'五家渠市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659004', N'五家渠市', N'', N'', N'', N'', N'3', N'1', N''), (N'659005', N'6590', N'00,65,6590', N'北屯市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659005', N'北屯市', N'', N'', N'', N'', N'3', N'1', N''), (N'659006', N'6590', N'00,65,6590', N'铁门关市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659006', N'铁门关市', N'', N'', N'', N'', N'3', N'1', N''), (N'659007', N'6590', N'00,65,6590', N'双河市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659007', N'双河市', N'', N'', N'', N'', N'3', N'1', N''), (N'659008', N'6590', N'00,65,6590', N'可克达拉市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659008', N'可克达拉市', N'', N'', N'', N'', N'3', N'1', N''), (N'659009', N'6590', N'00,65,6590', N'昆玉市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659009', N'昆玉市', N'', N'', N'', N'', N'3', N'1', N''), (N'659010', N'6590', N'00,65,6590', N'胡杨河市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659010', N'胡杨河市', N'', N'', N'', N'', N'3', N'1', N''), (N'71', N'00', N'00', N'台湾省', N'71', N'台湾省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'81', N'00', N'00', N'香港特别行政区', N'81', N'香港特别行政区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'82', N'00', N'00', N'澳门特别行政区', N'82', N'澳门特别行政区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N'')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_report_file
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_report_file]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_report_file]
+GO
+
+CREATE TABLE [dbo].[blade_report_file] (
+  [id] bigint  NOT NULL,
+  [name] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [content] varbinary(max)  NULL,
+  [create_time] datetime2(0)  NOT NULL,
+  [update_time] datetime2(0)  NOT NULL,
+  [is_deleted] int DEFAULT ((0)) NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_report_file] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_report_file',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'文件名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_report_file',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'文件内容',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_report_file',
+'COLUMN', N'content'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_report_file',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'更新时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_report_file',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_report_file',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'报表文件表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_report_file'
+GO
+
+
+-- ----------------------------
+-- Records of blade_report_file
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_report_file] VALUES (N'1291962038049910785', N'notice.ureport.xml', 0x3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E3C757265706F72743E3C63656C6C20657870616E643D22446F776E22206E616D653D2241312220726F773D22312220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D2274656E616E745F696422206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D22446F776E22206E616D653D2242312220726F773D22312220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D227469746C6522206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D22446F776E22206E616D653D2243312220726F773D22312220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D2272656C656173655F74696D6522206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244312220726F773D22312220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2241322220726F773D22322220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2242322220726F773D22322220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2243322220726F773D22322220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244322220726F773D22322220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2241332220726F773D22332220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2242332220726F773D22332220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2243332220726F773D22332220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244332220726F773D22332220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C726F7720726F772D6E756D6265723D223122206865696768743D223138222F3E3C726F7720726F772D6E756D6265723D223222206865696768743D223138222F3E3C726F7720726F772D6E756D6265723D223322206865696768743D223138222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2231222077696474683D223830222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2232222077696474683D223830222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2233222077696474683D22313333222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2234222077696474683D223830222F3E3C64617461736F75726365206E616D653D225265706F727444617461536F757263652220747970653D226275696C64696E223E3C64617461736574206E616D653D226E6F746963652220747970653D2273716C223E3C73716C3E3C215B43444154415B73656C656374202A2066726F6D20626C6164655F6E6F746963655D5D3E3C2F73716C3E3C6669656C64206E616D653D226964222F3E3C6669656C64206E616D653D2274656E616E745F6964222F3E3C6669656C64206E616D653D227469746C65222F3E3C6669656C64206E616D653D2263617465676F7279222F3E3C6669656C64206E616D653D2272656C656173655F74696D65222F3E3C6669656C64206E616D653D22636F6E74656E74222F3E3C6669656C64206E616D653D226372656174655F75736572222F3E3C6669656C64206E616D653D226372656174655F64657074222F3E3C6669656C64206E616D653D226372656174655F74696D65222F3E3C6669656C64206E616D653D227570646174655F75736572222F3E3C6669656C64206E616D653D227570646174655F74696D65222F3E3C6669656C64206E616D653D22737461747573222F3E3C6669656C64206E616D653D2269735F64656C65746564222F3E3C2F646174617365743E3C2F64617461736F757263653E3C706170657220747970653D22413422206C6566742D6D617267696E3D223930222072696768742D6D617267696E3D223930220A20202020746F702D6D617267696E3D2237322220626F74746F6D2D6D617267696E3D2237322220706167696E672D6D6F64653D22666974706167652220666978726F77733D2230220A2020202077696474683D2235393522206865696768743D2238343222206F7269656E746174696F6E3D22706F727472616974222068746D6C2D7265706F72742D616C69676E3D226C656674222062672D696D6167653D22222068746D6C2D696E74657276616C2D726566726573682D76616C75653D22302220636F6C756D6E2D656E61626C65643D2266616C7365223E3C2F70617065723E3C2F757265706F72743E, N'2020-08-08 12:58:48', N'2020-08-08 12:58:48', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_role
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_role]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_role]
+GO
+
+CREATE TABLE [dbo].[blade_role] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [parent_id] bigint  NULL,
+  [role_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sort] int  NULL,
+  [role_alias] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_role] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'父主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role',
+'COLUMN', N'parent_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role',
+'COLUMN', N'role_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色别名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role',
+'COLUMN', N'role_alias'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role'
+GO
+
+
+-- ----------------------------
+-- Records of blade_role
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_role] VALUES (N'1123598816738675201', N'000000', N'0', N'超级管理员', N'1', N'administrator', N'0'), (N'1123598816738675202', N'000000', N'0', N'用户', N'2', N'user', N'0'), (N'1123598816738675203', N'000000', N'1123598816738675202', N'人事', N'1', N'hr', N'0'), (N'1123598816738675204', N'000000', N'1123598816738675202', N'经理', N'2', N'manager', N'0'), (N'1123598816738675205', N'000000', N'1123598816738675202', N'老板', N'3', N'boss', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_role_menu
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_role_menu]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_role_menu]
+GO
+
+CREATE TABLE [dbo].[blade_role_menu] (
+  [id] bigint  NOT NULL,
+  [menu_id] bigint  NULL,
+  [role_id] bigint  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_role_menu] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_menu',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_menu',
+'COLUMN', N'menu_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_menu',
+'COLUMN', N'role_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色菜单关联表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_menu'
+GO
+
+
+-- ----------------------------
+-- Records of blade_role_menu
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_role_menu] VALUES (N'1123598817738675363', N'1123598815738675201', N'1123598816738675202'), (N'1123598817738675364', N'1123598815738675202', N'1123598816738675202'), (N'1123598817738675365', N'1123598815738675219', N'1123598816738675202'), (N'1123598817738675366', N'1123598815738675220', N'1123598816738675202'), (N'1123598817738675367', N'1123598815738675221', N'1123598816738675202'), (N'1123598817738675368', N'1123598815738675222', N'1123598816738675202'), (N'1123598817738675369', N'1123598815738675280', N'1123598816738675202'), (N'1123598817738675370', N'1123598815738675281', N'1123598816738675202'), (N'1123598817738675371', N'1123598815738675282', N'1123598816738675202'), (N'1123598817738675372', N'1123598815738675283', N'1123598816738675202'), (N'1123598817738675373', N'1123598815738675284', N'1123598816738675202'), (N'1123598817738675374', N'1123598815738675285', N'1123598816738675202'), (N'1123598817738675375', N'1123598815738675286', N'1123598816738675202'), (N'1123598817738675376', N'1123598815738675287', N'1123598816738675202'), (N'1123598817738675377', N'1123598815738675288', N'1123598816738675202'), (N'1123598817738675378', N'1123598815738675289', N'1123598816738675202'), (N'1123598817738675379', N'1123598815738675290', N'1123598816738675202'), (N'1123598817738675380', N'1123598815738675291', N'1123598816738675202'), (N'1123598817738675381', N'1123598815738675292', N'1123598816738675202'), (N'1123598817738675382', N'1123598815738675293', N'1123598816738675202'), (N'1123598817738675383', N'1123598815738675294', N'1123598816738675202'), (N'1123598817738675384', N'1123598815738675295', N'1123598816738675202'), (N'1123598817738675385', N'1123598815738675296', N'1123598816738675202'), (N'1123598817738675386', N'1123598815738675297', N'1123598816738675202'), (N'1123598817738675387', N'1123598815738675201', N'1123598816738675203'), (N'1123598817738675388', N'1123598815738675202', N'1123598816738675203'), (N'1123598817738675389', N'1123598815738675219', N'1123598816738675203'), (N'1123598817738675390', N'1123598815738675220', N'1123598816738675203'), (N'1123598817738675391', N'1123598815738675221', N'1123598816738675203'), (N'1123598817738675392', N'1123598815738675222', N'1123598816738675203'), (N'1123598817738675393', N'1123598815738675280', N'1123598816738675203'), (N'1123598817738675394', N'1123598815738675281', N'1123598816738675203'), (N'1123598817738675395', N'1123598815738675282', N'1123598816738675203'), (N'1123598817738675396', N'1123598815738675283', N'1123598816738675203'), (N'1123598817738675397', N'1123598815738675284', N'1123598816738675203'), (N'1123598817738675398', N'1123598815738675285', N'1123598816738675203'), (N'1123598817738675399', N'1123598815738675286', N'1123598816738675203'), (N'1123598817738675400', N'1123598815738675287', N'1123598816738675203'), (N'1123598817738675401', N'1123598815738675288', N'1123598816738675203'), (N'1123598817738675402', N'1123598815738675289', N'1123598816738675203'), (N'1123598817738675403', N'1123598815738675290', N'1123598816738675203'), (N'1123598817738675404', N'1123598815738675291', N'1123598816738675203'), (N'1123598817738675405', N'1123598815738675292', N'1123598816738675203'), (N'1123598817738675406', N'1123598815738675293', N'1123598816738675203'), (N'1123598817738675407', N'1123598815738675294', N'1123598816738675203'), (N'1123598817738675408', N'1123598815738675295', N'1123598816738675203'), (N'1123598817738675409', N'1123598815738675296', N'1123598816738675203'), (N'1123598817738675410', N'1123598815738675297', N'1123598816738675203'), (N'1123598817738675411', N'1123598815738675201', N'1123598816738675204'), (N'1123598817738675412', N'1123598815738675202', N'1123598816738675204'), (N'1123598817738675413', N'1123598815738675219', N'1123598816738675204'), (N'1123598817738675414', N'1123598815738675220', N'1123598816738675204'), (N'1123598817738675415', N'1123598815738675221', N'1123598816738675204'), (N'1123598817738675416', N'1123598815738675222', N'1123598816738675204'), (N'1123598817738675417', N'1123598815738675280', N'1123598816738675204'), (N'1123598817738675418', N'1123598815738675281', N'1123598816738675204'), (N'1123598817738675419', N'1123598815738675282', N'1123598816738675204'), (N'1123598817738675420', N'1123598815738675283', N'1123598816738675204'), (N'1123598817738675421', N'1123598815738675284', N'1123598816738675204'), (N'1123598817738675422', N'1123598815738675285', N'1123598816738675204'), (N'1123598817738675423', N'1123598815738675286', N'1123598816738675204'), (N'1123598817738675424', N'1123598815738675287', N'1123598816738675204'), (N'1123598817738675425', N'1123598815738675288', N'1123598816738675204'), (N'1123598817738675426', N'1123598815738675289', N'1123598816738675204'), (N'1123598817738675427', N'1123598815738675290', N'1123598816738675204'), (N'1123598817738675428', N'1123598815738675291', N'1123598816738675204'), (N'1123598817738675429', N'1123598815738675292', N'1123598816738675204'), (N'1123598817738675430', N'1123598815738675293', N'1123598816738675204'), (N'1123598817738675431', N'1123598815738675294', N'1123598816738675204'), (N'1123598817738675432', N'1123598815738675295', N'1123598816738675204'), (N'1123598817738675433', N'1123598815738675296', N'1123598816738675204'), (N'1123598817738675434', N'1123598815738675297', N'1123598816738675204'), (N'1123598817738675435', N'1123598815738675201', N'1123598816738675205'), (N'1123598817738675436', N'1123598815738675202', N'1123598816738675205'), (N'1123598817738675437', N'1123598815738675219', N'1123598816738675205'), (N'1123598817738675438', N'1123598815738675220', N'1123598816738675205'), (N'1123598817738675439', N'1123598815738675221', N'1123598816738675205'), (N'1123598817738675440', N'1123598815738675222', N'1123598816738675205'), (N'1123598817738675441', N'1123598815738675280', N'1123598816738675205'), (N'1123598817738675442', N'1123598815738675281', N'1123598816738675205'), (N'1123598817738675443', N'1123598815738675282', N'1123598816738675205'), (N'1123598817738675444', N'1123598815738675283', N'1123598816738675205'), (N'1123598817738675445', N'1123598815738675284', N'1123598816738675205'), (N'1123598817738675446', N'1123598815738675285', N'1123598816738675205'), (N'1123598817738675447', N'1123598815738675286', N'1123598816738675205'), (N'1123598817738675448', N'1123598815738675287', N'1123598816738675205'), (N'1123598817738675449', N'1123598815738675288', N'1123598816738675205'), (N'1123598817738675450', N'1123598815738675289', N'1123598816738675205'), (N'1123598817738675451', N'1123598815738675290', N'1123598816738675205'), (N'1123598817738675452', N'1123598815738675291', N'1123598816738675205'), (N'1123598817738675453', N'1123598815738675292', N'1123598816738675205'), (N'1123598817738675454', N'1123598815738675293', N'1123598816738675205'), (N'1123598817738675455', N'1123598815738675294', N'1123598816738675205'), (N'1123598817738675456', N'1123598815738675295', N'1123598816738675205'), (N'1123598817738675457', N'1123598815738675296', N'1123598816738675205'), (N'1123598817738675458', N'1123598815738675297', N'1123598816738675205'), (N'1149888292426575874', N'1123598815738675201', N'1123598816738675201'), (N'1149888292476907522', N'1123598815738675202', N'1123598816738675201'), (N'1149888292489490433', N'1123598815738675219', N'1123598816738675201'), (N'1149888292502073345', N'1123598815738675220', N'1123598816738675201'), (N'1149888292518850561', N'1123598815738675221', N'1123598816738675201'), (N'1149888292535627777', N'1123598815738675222', N'1123598816738675201'), (N'1149888292548210690', N'1123598815738675280', N'1123598816738675201'), (N'1149888292560793602', N'1123598815738675281', N'1123598816738675201'), (N'1149888292577570817', N'1123598815738675282', N'1123598816738675201'), (N'1149888292594348033', N'1123598815738675283', N'1123598816738675201'), (N'1149888292611125249', N'1123598815738675284', N'1123598816738675201'), (N'1149888292623708162', N'1123598815738675285', N'1123598816738675201'), (N'1149888292640485377', N'1123598815738675286', N'1123598816738675201'), (N'1149888292653068289', N'1123598815738675287', N'1123598816738675201'), (N'1149888292669845506', N'1123598815738675288', N'1123598816738675201'), (N'1149888292682428417', N'1123598815738675289', N'1123598816738675201'), (N'1149888292699205634', N'1123598815738675290', N'1123598816738675201'), (N'1149888292711788545', N'1123598815738675291', N'1123598816738675201'), (N'1149888292724371458', N'1123598815738675292', N'1123598816738675201'), (N'1149888292741148674', N'1123598815738675293', N'1123598816738675201'), (N'1149888292753731585', N'1123598815738675294', N'1123598816738675201'), (N'1149888292766314497', N'1123598815738675295', N'1123598816738675201'), (N'1149888292778897410', N'1123598815738675296', N'1123598816738675201'), (N'1149888292791480321', N'1123598815738675297', N'1123598816738675201'), (N'1149888292808257537', N'1123598815738675210', N'1123598816738675201'), (N'1149888292820840449', N'1123598815738675211', N'1123598816738675201'), (N'1149888292833423362', N'1123598815738675212', N'1123598816738675201'), (N'1149888292846006274', N'1123598815738675213', N'1123598816738675201'), (N'1149888292862783489', N'1123598815738675214', N'1123598816738675201'), (N'1149888292875366401', N'1123598815738675249', N'1123598816738675201'), (N'1149888292887949313', N'1123598815738675215', N'1123598816738675201'), (N'1149888292904726530', N'1123598815738675250', N'1123598816738675201'), (N'1149888292917309442', N'1123598815738675216', N'1123598816738675201'), (N'1149888292929892353', N'1123598815738675251', N'1123598816738675201'), (N'1149888292942475265', N'1123598815738675217', N'1123598816738675201'), (N'1149888292959252482', N'1123598815738675218', N'1123598816738675201'), (N'1149888292971835393', N'1123598815738675252', N'1123598816738675201'), (N'1149888292984418306', N'1123598815738675253', N'1123598816738675201'), (N'1149888292997001217', N'1123598815738675254', N'1123598816738675201'), (N'1149888293009584129', N'1123598815738675255', N'1123598816738675201'), (N'1149888293026361346', N'1123598815738675266', N'1123598816738675201'), (N'1149888293043138562', N'1123598815738675267', N'1123598816738675201'), (N'1149888293055721473', N'1123598815738675268', N'1123598816738675201'), (N'1149888293072498690', N'1123598815738675269', N'1123598816738675201'), (N'1149888293089275906', N'1123598815738675270', N'1123598816738675201'), (N'1149888293101858817', N'1123598815738675271', N'1123598816738675201'), (N'1149888293114441729', N'1123598815738675272', N'1123598816738675201'), (N'1149888293127024642', N'1123598815738675273', N'1123598816738675201'), (N'1149888293139607554', N'1123598815738675274', N'1123598816738675201'), (N'1149888293152190465', N'1123598815738675275', N'1123598816738675201'), (N'1149888293164773377', N'1123598815738675276', N'1123598816738675201'), (N'1149888293177356290', N'1123598815738675277', N'1123598816738675201'), (N'1149888293189939201', N'1123598815738675278', N'1123598816738675201'), (N'1149888293202522113', N'1123598815738675279', N'1123598816738675201'), (N'1149888293215105026', N'1123598815738675298', N'1123598816738675201'), (N'1149888293227687938', N'1123598815738675299', N'1123598816738675201'), (N'1149888293240270850', N'1123598815738675301', N'1123598816738675201'), (N'1149888293252853762', N'1123598815738675302', N'1123598816738675201'), (N'1149888293265436674', N'1123598815738675303', N'1123598816738675201'), (N'1149888293278019586', N'1123598815738675304', N'1123598816738675201'), (N'1149888293290602497', N'1123598815738675305', N'1123598816738675201'), (N'1149888293303185410', N'1123598815738675307', N'1123598816738675201'), (N'1149888293315768322', N'1123598815738675308', N'1123598816738675201'), (N'1149888293328351234', N'1123598815738675241', N'1123598816738675201'), (N'1149888293336739841', N'1123598815738675242', N'1123598816738675201'), (N'1149888293349322753', N'1123598815738675243', N'1123598816738675201'), (N'1149888293361905666', N'1123598815738675244', N'1123598816738675201'), (N'1149888293374488578', N'1123598815738675309', N'1123598816738675201'), (N'1149888293387071489', N'1123598815738675310', N'1123598816738675201'), (N'1149888293399654402', N'1123598815738675311', N'1123598816738675201'), (N'1149888293412237313', N'1123598815738675312', N'1123598816738675201'), (N'1149888293424820226', N'1123598815738675203', N'1123598816738675201'), (N'1149888293454180354', N'1123598815738675204', N'1123598816738675201'), (N'1149888293483540481', N'1123598815738675223', N'1123598816738675201'), (N'1149888293512900609', N'1123598815738675224', N'1123598816738675201'), (N'1149888293529677826', N'1123598815738675225', N'1123598816738675201'), (N'1149888293554843649', N'1123598815738675226', N'1123598816738675201'), (N'1149888293571620866', N'1123598815738675227', N'1123598816738675201'), (N'1149888293588398081', N'1123598815738675228', N'1123598816738675201'), (N'1149888293605175297', N'1123598815738675205', N'1123598816738675201'), (N'1149888293617758209', N'1123598815738675229', N'1123598816738675201'), (N'1149888293630341121', N'1123598815738675230', N'1123598816738675201'), (N'1149888293642924033', N'1123598815738675231', N'1123598816738675201'), (N'1149888293659701250', N'1123598815738675232', N'1123598816738675201'), (N'1149888293672284162', N'1123598815738675206', N'1123598816738675201'), (N'1149888293684867074', N'1123598815738675233', N'1123598816738675201'), (N'1149888293697449986', N'1123598815738675234', N'1123598816738675201'), (N'1149888293710032897', N'1123598815738675235', N'1123598816738675201'), (N'1149888293722615809', N'1123598815738675236', N'1123598816738675201'), (N'1149888293735198722', N'1123598815738675207', N'1123598816738675201'), (N'1149888293747781633', N'1123598815738675237', N'1123598816738675201'), (N'1149888293760364545', N'1123598815738675238', N'1123598816738675201'), (N'1149888293772947458', N'1123598815738675239', N'1123598816738675201'), (N'1149888293785530370', N'1123598815738675240', N'1123598816738675201'), (N'1149888293798113282', N'1123598815738675306', N'1123598816738675201'), (N'1149888293810696194', N'1123598815738675208', N'1123598816738675201'), (N'1149888293819084802', N'1123598815738675313', N'1123598816738675201'), (N'1149888293831667714', N'1123598815738675314', N'1123598816738675201'), (N'1149888293844250626', N'1123598815738675315', N'1123598816738675201'), (N'1149888293856833538', N'1123598815738675316', N'1123598816738675201'), (N'1149888293856833539', N'1123598815738675317', N'1123598816738675201'), (N'1149888293869416450', N'1123598815738675209', N'1123598816738675201'), (N'1149888293881999362', N'1123598815738675245', N'1123598816738675201'), (N'1149888293894582274', N'1123598815738675246', N'1123598816738675201'), (N'1149888293907165186', N'1123598815738675247', N'1123598816738675201'), (N'1149888293919748097', N'1123598815738675248', N'1123598816738675201'), (N'1149888293932331010', N'1123598815738675256', N'1123598816738675201'), (N'1149888293940719618', N'1123598815738675257', N'1123598816738675201'), (N'1149888293953302530', N'1123598815738675258', N'1123598816738675201'), (N'1149888293965885441', N'1123598815738675259', N'1123598816738675201'), (N'1149888293978468354', N'1123598815738675260', N'1123598816738675201'), (N'1149888293986856962', N'1123598815738675261', N'1123598816738675201'), (N'1149888293999439874', N'1123598815738675262', N'1123598816738675201'), (N'1149888294007828482', N'1123598815738675263', N'1123598816738675201'), (N'1149888294020411393', N'1123598815738675264', N'1123598816738675201'), (N'1149888294028800002', N'1123598815738675265', N'1123598816738675201'), (N'1161272593873322991', N'1161272593873321991', N'1123598816738675201'), (N'1161272593873322992', N'1161272593873321992', N'1123598816738675201'), (N'1161272593873322993', N'1161272593873321993', N'1123598816738675201'), (N'1161272593873322994', N'1161272593873321994', N'1123598816738675201'), (N'1161272593873322995', N'1161272593873321995', N'1123598816738675201'), (N'1161272693873322991', N'1164733369658963251', N'1123598816738675201'), (N'1161272693873322992', N'1164733369658963252', N'1123598816738675201'), (N'1161272693873322993', N'1164733369658963253', N'1123598816738675201'), (N'1161272693873322994', N'1164733369658963254', N'1123598816738675201'), (N'1161272693873322995', N'1164733369658963255', N'1123598816738675201'), (N'1161272793873322991', N'1164733379658963251', N'1123598816738675201'), (N'1161272793873322992', N'1164733379658963252', N'1123598816738675201'), (N'1161272793873322993', N'1164733379658963253', N'1123598816738675201'), (N'1161272793873322994', N'1164733379658963254', N'1123598816738675201'), (N'1161272793873322995', N'1164733379658963255', N'1123598816738675201'), (N'1161272893873222991', N'1164733389658962251', N'1123598816738675201'), (N'1161272893873222992', N'1164733389658962252', N'1123598816738675201'), (N'1161272893873222993', N'1164733389658962253', N'1123598816738675201'), (N'1161272893873222994', N'1164733389658962254', N'1123598816738675201'), (N'1161272893873222995', N'1164733389658962255', N'1123598816738675201'), (N'1161272893873222996', N'1164733389658962256', N'1123598816738675201'), (N'1161272893873322991', N'1164733389658963251', N'1123598816738675201'), (N'1161272893875225001', N'1164733389668962251', N'1123598816738675201'), (N'1161272893875225002', N'1164733389668962252', N'1123598816738675201'), (N'1161272893875225003', N'1164733389668962253', N'1123598816738675201'), (N'1161272893875225004', N'1164733389668962254', N'1123598816738675201'), (N'1161272893875225005', N'1164733389668962255', N'1123598816738675201'), (N'1161272893875225006', N'1164733389668962256', N'1123598816738675201'), (N'1161272893875226001', N'1164733399668962201', N'1123598816738675201'), (N'1161272893875226002', N'1164733399668962202', N'1123598816738675201'), (N'1161272893875226003', N'1164733399668962203', N'1123598816738675201'), (N'1161272893875226004', N'1164733399668962204', N'1123598816738675201'), (N'1161272893875226005', N'1164733399668962205', N'1123598816738675201'), (N'1161272893875226006', N'1164733399668962206', N'1123598816738675201'), (N'1161272893875226007', N'1164733399668962207', N'1123598816738675201'), (N'1161272893875227001', N'1164733399669962201', N'1123598816738675201'), (N'1161272893875227002', N'1164733399669962202', N'1123598816738675201'), (N'1161272893875227003', N'1164733399669962203', N'1123598816738675201'), (N'1161272893875227004', N'1164733399669962204', N'1123598816738675201'), (N'1161272893875228001', N'1164733399669962301', N'1123598816738675201'), (N'1161272893875228002', N'1164733399669962302', N'1123598816738675201'), (N'1161272893875228003', N'1164733399669962303', N'1123598816738675201'), (N'1161272893875228004', N'1164733399669962304', N'1123598816738675201')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_role_scope
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_role_scope]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_role_scope]
+GO
+
+CREATE TABLE [dbo].[blade_role_scope] (
+  [id] bigint  NOT NULL,
+  [scope_category] int  NULL,
+  [scope_id] bigint  NULL,
+  [role_id] bigint  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_role_scope] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_scope',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'权限类型(1:数据权限、2:接口权限)',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_scope',
+'COLUMN', N'scope_category'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'权限id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_scope',
+'COLUMN', N'scope_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_scope',
+'COLUMN', N'role_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色数据权限关联表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_scope'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_scope_api
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_scope_api]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_scope_api]
+GO
+
+CREATE TABLE [dbo].[blade_scope_api] (
+  [id] bigint  NOT NULL,
+  [menu_id] bigint  NULL,
+  [resource_code] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_path] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_type] int  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_scope_api] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'menu_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'资源编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'resource_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'接口权限名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'scope_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'接口权限地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'scope_path'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'接口权限类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'scope_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'接口权限备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'接口权限表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_scope_data
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_scope_data]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_scope_data]
+GO
+
+CREATE TABLE [dbo].[blade_scope_data] (
+  [id] bigint  NOT NULL,
+  [menu_id] bigint  NULL,
+  [resource_code] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_field] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_class] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_column] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_type] int  NULL,
+  [scope_value] nvarchar(2000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_scope_data] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'menu_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'资源编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'resource_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'scope_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限字段',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'scope_field'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限类名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'scope_class'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限字段',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'scope_column'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'scope_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限值域',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'scope_value'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_sms
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_sms]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_sms]
+GO
+
+CREATE TABLE [dbo].[blade_sms] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [category] int  NULL,
+  [sms_code] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [template_id] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [access_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [secret_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [region_id] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sign_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_sms] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'分类',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'category'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'资源编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'sms_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模板ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'template_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'accessKey',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'access_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'secretKey',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'secret_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'regionId',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'region_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'短信签名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'sign_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'短信配置表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_tenant
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_tenant]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_tenant]
+GO
+
+CREATE TABLE [dbo].[blade_tenant] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [tenant_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [domain_url] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [background_url] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [linkman] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [contact_number] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [address] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [account_number] int  NULL,
+  [expire_time] datetime2(0)  NULL,
+  [package_id] int  NULL,
+  [datasource_id] bigint  NULL,
+  [license_key] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_tenant] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'tenant_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'域名地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'domain_url'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'系统背景',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'background_url'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'联系人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'linkman'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'联系电话',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'contact_number'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'联系地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'address'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'账号额度',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'account_number'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'过期时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'expire_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户产品ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'package_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据源ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'datasource_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'授权码',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'license_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant'
+GO
+
+
+-- ----------------------------
+-- Records of blade_tenant
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_tenant] VALUES (N'1123598820738675201', N'000000', N'管理组', NULL, NULL, N'admin', N'666666', N'管理组', N'-1', NULL, NULL, NULL, NULL, N'1123598821738675201', N'1123598813738675201', N'2019-01-01 00:00:39', N'1123598821738675201', N'2019-01-01 00:00:39', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_tenant_package
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_tenant_package]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_tenant_package]
+GO
+
+CREATE TABLE [dbo].[blade_tenant_package] (
+  [id] bigint  NOT NULL,
+  [package_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [menu_id] nvarchar(3000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_tenant_package] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'产品包名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'package_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'menu_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户产品表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_top_menu
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_top_menu]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_top_menu]
+GO
+
+CREATE TABLE [dbo].[blade_top_menu] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [code] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [source] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sort] int  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_top_menu] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'顶部菜单编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'顶部菜单名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'顶部菜单资源',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'source'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'顶部菜单排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'顶部菜单表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_top_menu_setting
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_top_menu_setting]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_top_menu_setting]
+GO
+
+CREATE TABLE [dbo].[blade_top_menu_setting] (
+  [id] bigint  NOT NULL,
+  [top_menu_id] bigint  NULL,
+  [menu_id] bigint  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_top_menu_setting] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu_setting',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'顶部菜单主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu_setting',
+'COLUMN', N'top_menu_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu_setting',
+'COLUMN', N'menu_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'顶部菜单配置表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu_setting'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_user
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_user]
+GO
+
+CREATE TABLE [dbo].[blade_user] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [user_type] int  NULL,
+  [account] nvarchar(45) COLLATE Chinese_PRC_CI_AS  NULL,
+  [password] nvarchar(45) COLLATE Chinese_PRC_CI_AS  NULL,
+  [name] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [real_name] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL,
+  [avatar] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [email] nvarchar(45) COLLATE Chinese_PRC_CI_AS  NULL,
+  [phone] nvarchar(45) COLLATE Chinese_PRC_CI_AS  NULL,
+  [birthday] datetime2(0)  NULL,
+  [sex] int  NULL,
+  [role_id] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [dept_id] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [post_id] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_user] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户平台',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'user_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'账号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'account'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'密码',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'password'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'昵称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'真名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'real_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'头像',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'avatar'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'邮箱',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'email'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'手机',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'phone'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'生日',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'birthday'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'性别',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'sex'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'role_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'部门id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'dept_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'岗位id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'post_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user'
+GO
+
+
+-- ----------------------------
+-- Records of blade_user
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_user] VALUES (N'1123598821738675201', N'000000', NULL, N'1', N'admin', N'90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad', N'管理员', N'管理员', N'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', N'admin@bladex.vip', N'123333333333', N'2018-08-08 00:00:00', N'1', N'1123598816738675201', N'1123598813738675201', N'1123598817738675201', N'1123598821738675201', N'1123598813738675201', N'2018-08-08 00:00:00', N'1123598821738675201', N'2018-08-08 00:00:00', N'1', N'0'), (N'1123598821738675202', N'000000', NULL, N'1', N'hr', N'5e79b90f7bba52d54115f086e48f539016a27ec6', N'人事', N'人事', N'', N'hr@bladex.vip', N'123333333333', N'2018-08-08 00:00:00', N'1', N'1123598816738675203', N'1123598813738675202', N'1123598817738675207', N'1123598821738675201', N'1123598813738675201', N'2019-04-27 17:03:10', N'1123598821738675201', N'2019-04-27 17:03:10', N'1', N'0'), (N'1123598821738675203', N'000000', NULL, N'1', N'manager', N'dfbaa3b61caa3a319f463cc165085aa8c822d2ce', N'经理', N'经理', N'', N'manager@bladex.vip', N'123333333333', N'2018-08-08 00:00:00', N'1', N'1123598816738675204', N'1123598813738675202', N'1123598817738675206', N'1123598821738675201', N'1123598813738675201', N'2019-04-27 17:03:38', N'1123598821738675201', N'2019-04-27 17:03:38', N'1', N'0'), (N'1123598821738675204', N'000000', NULL, N'1', N'boss', N'abe57d23e18f7ad8ea99c86e430c90a05119a9d3', N'老板', N'老板', N'', N'boss@bladex.vip', N'123333333333', N'2018-08-08 00:00:00', N'1', N'1123598816738675205', N'1123598813738675202', N'1123598817738675201', N'1123598821738675201', N'1123598813738675201', N'2019-04-27 17:03:55', N'1123598821738675201', N'2019-04-27 17:03:55', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_user_app
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user_app]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_user_app]
+GO
+
+CREATE TABLE [dbo].[blade_user_app] (
+  [id] bigint  NOT NULL,
+  [user_id] bigint  NULL,
+  [user_ext] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_user_app] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_app',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_app',
+'COLUMN', N'user_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户拓展信息',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_app',
+'COLUMN', N'user_ext'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户平台拓展表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_app'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_user_dept
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user_dept]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_user_dept]
+GO
+
+CREATE TABLE [dbo].[blade_user_dept] (
+  [id] bigint  NOT NULL,
+  [user_id] bigint  NULL,
+  [dept_id] bigint  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_user_dept] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_dept',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_dept',
+'COLUMN', N'user_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'部门ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_dept',
+'COLUMN', N'dept_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户部门表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_dept'
+GO
+
+
+-- ----------------------------
+-- Records of blade_user_dept
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_user_dept] VALUES (N'1203503640757788674', N'1123598821738675201', N'1123598813738675201'), (N'1203503653323923458', N'1123598821738675202', N'1123598813738675202'), (N'1203503663402835969', N'1123598821738675203', N'1123598813738675202'), (N'1203503672911323137', N'1123598821738675204', N'1123598813738675202')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_user_oauth
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user_oauth]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_user_oauth]
+GO
+
+CREATE TABLE [dbo].[blade_user_oauth] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [uuid] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [user_id] bigint  NULL,
+  [username] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [nickname] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [avatar] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [blog] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [company] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [location] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [email] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [gender] nvarchar(16) COLLATE Chinese_PRC_CI_AS  NULL,
+  [source] nvarchar(16) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_user_oauth] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'第三方系统用户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'uuid'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'user_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'账号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'username'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'nickname'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'头像',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'avatar'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'应用主页',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'blog'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'公司名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'company'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'location'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'邮件',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'email'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'性别',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'gender'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'来源',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'source'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户第三方认证表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_user_other
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user_other]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_user_other]
+GO
+
+CREATE TABLE [dbo].[blade_user_other] (
+  [id] bigint  NOT NULL,
+  [user_id] bigint  NULL,
+  [user_ext] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_user_other] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_other',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_other',
+'COLUMN', N'user_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户拓展信息',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_other',
+'COLUMN', N'user_ext'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户平台拓展表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_other'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_user_web
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user_web]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_user_web]
+GO
+
+CREATE TABLE [dbo].[blade_user_web] (
+  [id] bigint  NOT NULL,
+  [user_id] bigint  NULL,
+  [user_ext] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_user_web] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_web',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_web',
+'COLUMN', N'user_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户拓展信息',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_web',
+'COLUMN', N'user_ext'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户平台拓展表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_web'
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_attach
+-- ----------------------------
+ALTER TABLE [dbo].[blade_attach] ADD CONSTRAINT [PK__blade_at__3213E83F1A14E395] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_client
+-- ----------------------------
+ALTER TABLE [dbo].[blade_client] ADD CONSTRAINT [PK__blade_cl__3213E83F1CF15040] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_code
+-- ----------------------------
+ALTER TABLE [dbo].[blade_code] ADD CONSTRAINT [PK__blade_co__3213E83F1FCDBCEB] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_datasource
+-- ----------------------------
+ALTER TABLE [dbo].[blade_datasource] ADD CONSTRAINT [PK__blade_da__3213E83F22AA2996] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_dept
+-- ----------------------------
+ALTER TABLE [dbo].[blade_dept] ADD CONSTRAINT [PK__blade_de__3213E83F25869641] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_dict
+-- ----------------------------
+ALTER TABLE [dbo].[blade_dict] ADD CONSTRAINT [PK__blade_di__3213E83F286302EC] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_dict_biz
+-- ----------------------------
+ALTER TABLE [dbo].[blade_dict_biz] ADD CONSTRAINT [PK__blade_di__3213E83F2B3F6F97] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_log_api
+-- ----------------------------
+ALTER TABLE [dbo].[blade_log_api] ADD CONSTRAINT [PK__blade_lo__3213E83F2E1BDC42] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_log_error
+-- ----------------------------
+ALTER TABLE [dbo].[blade_log_error] ADD CONSTRAINT [PK__blade_lo__3213E83F30F848ED] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_log_usual
+-- ----------------------------
+ALTER TABLE [dbo].[blade_log_usual] ADD CONSTRAINT [PK__blade_lo__3213E83F33D4B598] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_menu
+-- ----------------------------
+ALTER TABLE [dbo].[blade_menu] ADD CONSTRAINT [PK__blade_me__3213E83F36B12243] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_model
+-- ----------------------------
+ALTER TABLE [dbo].[blade_model] ADD CONSTRAINT [PK__blade_mo__3213E83F5792F321] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_model_prototype
+-- ----------------------------
+ALTER TABLE [dbo].[blade_model_prototype] ADD CONSTRAINT [PK__blade_mo__3213E83F5B638405] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_notice
+-- ----------------------------
+ALTER TABLE [dbo].[blade_notice] ADD CONSTRAINT [PK__blade_no__3213E83F398D8EEE] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_oss
+-- ----------------------------
+ALTER TABLE [dbo].[blade_oss] ADD CONSTRAINT [PK__blade_os__3213E83F3C69FB99] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_param
+-- ----------------------------
+ALTER TABLE [dbo].[blade_param] ADD CONSTRAINT [PK__blade_pa__3213E83F3F466844] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_post
+-- ----------------------------
+ALTER TABLE [dbo].[blade_post] ADD CONSTRAINT [PK__blade_po__3213E83F4222D4EF] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_process_leave
+-- ----------------------------
+ALTER TABLE [dbo].[blade_process_leave] ADD CONSTRAINT [PK__blade_pr__3213E83F44FF419A] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_region
+-- ----------------------------
+ALTER TABLE [dbo].[blade_region] ADD CONSTRAINT [PK__blade_re__357D4CF847DBAE45] PRIMARY KEY CLUSTERED ([code])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_report_file
+-- ----------------------------
+ALTER TABLE [dbo].[blade_report_file] ADD CONSTRAINT [PK__blade_re__3213E83F1C722D53] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_role
+-- ----------------------------
+ALTER TABLE [dbo].[blade_role] ADD CONSTRAINT [PK__blade_ro__3213E83F4AB81AF0] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_role_menu
+-- ----------------------------
+ALTER TABLE [dbo].[blade_role_menu] ADD CONSTRAINT [PK__blade_ro__3213E83F4D94879B] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_role_scope
+-- ----------------------------
+ALTER TABLE [dbo].[blade_role_scope] ADD CONSTRAINT [PK__blade_ro__3213E83F5070F446] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_scope_api
+-- ----------------------------
+ALTER TABLE [dbo].[blade_scope_api] ADD CONSTRAINT [PK__blade_sc__3213E83F534D60F1] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_scope_data
+-- ----------------------------
+ALTER TABLE [dbo].[blade_scope_data] ADD CONSTRAINT [PK__blade_sc__3213E83F5629CD9C] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_sms
+-- ----------------------------
+ALTER TABLE [dbo].[blade_sms] ADD CONSTRAINT [PK__blade_sm__3213E83F59063A47] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_tenant
+-- ----------------------------
+ALTER TABLE [dbo].[blade_tenant] ADD CONSTRAINT [PK__blade_te__3213E83F5BE2A6F2] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_tenant_package
+-- ----------------------------
+ALTER TABLE [dbo].[blade_tenant_package] ADD CONSTRAINT [PK__blade_te__3213E83F09C96D33] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_top_menu
+-- ----------------------------
+ALTER TABLE [dbo].[blade_top_menu] ADD CONSTRAINT [PK__blade_to__3213E83F5EBF139D] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_top_menu_setting
+-- ----------------------------
+ALTER TABLE [dbo].[blade_top_menu_setting] ADD CONSTRAINT [PK__blade_to__3213E83F619B8048] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_user
+-- ----------------------------
+ALTER TABLE [dbo].[blade_user] ADD CONSTRAINT [PK__blade_us__3213E83F6477ECF3] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_app
+-- ----------------------------
+ALTER TABLE [dbo].[blade_user_app] ADD CONSTRAINT [PK__blade_us__3213E83F6BE40491] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_dept
+-- ----------------------------
+ALTER TABLE [dbo].[blade_user_dept] ADD CONSTRAINT [PK__blade_us__3213E83F6754599E] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_oauth
+-- ----------------------------
+ALTER TABLE [dbo].[blade_user_oauth] ADD CONSTRAINT [PK__blade_us__3213E83F6A30C649] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_other
+-- ----------------------------
+ALTER TABLE [dbo].[blade_user_other] ADD CONSTRAINT [PK__blade_us__3213E83F6FB49575] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_web
+-- ----------------------------
+ALTER TABLE [dbo].[blade_user_web] ADD CONSTRAINT [PK__blade_us__3213E83F681373AD] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
diff --git a/skjcmanager/doc/sql/sqlserver/bladex-sword-sqlserver.sql b/skjcmanager/doc/sql/sqlserver/bladex-sword-sqlserver.sql
new file mode 100644
index 0000000..ef9fcd1
--- /dev/null
+++ b/skjcmanager/doc/sql/sqlserver/bladex-sword-sqlserver.sql
@@ -0,0 +1,5006 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server         : sqlserver_remote
+ Source Server Type    : SQL Server
+ Source Server Version : 10501600
+ Source Host           : 127.0.0.1:1433
+ Source Catalog        : bladex
+ Source Schema         : dbo
+
+ Target Server Type    : SQL Server
+ Target Server Version : 10501600
+ File Encoding         : 65001
+
+ Date: 07/08/2022 17:22:26
+*/
+
+
+-- ----------------------------
+-- Table structure for blade_attach
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_attach]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_attach]
+GO
+
+CREATE TABLE [dbo].[blade_attach] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [link] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [domain_url] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [name] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [original_name] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [extension] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [attach_size] bigint  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_attach] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附件地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'link'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附件域名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'domain_url'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附件名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附件原名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'original_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附件拓展名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'extension'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附件大小',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'attach_size'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附件表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_attach'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_client
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_client]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_client]
+GO
+
+CREATE TABLE [dbo].[blade_client] (
+  [id] bigint  NOT NULL,
+  [client_id] nvarchar(48) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [client_secret] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [resource_ids] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [authorized_grant_types] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [web_server_redirect_uri] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NULL,
+  [authorities] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NULL,
+  [access_token_validity] int  NOT NULL,
+  [refresh_token_validity] int  NOT NULL,
+  [additional_information] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [autoapprove] nvarchar(256) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NOT NULL,
+  [is_deleted] int  NOT NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_client] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'客户端id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'client_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'客户端密钥',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'client_secret'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'资源集合',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'resource_ids'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'授权范围',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'scope'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'授权类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'authorized_grant_types'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'回调地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'web_server_redirect_uri'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'权限',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'authorities'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'令牌过期秒数',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'access_token_validity'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'刷新令牌过期秒数',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'refresh_token_validity'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'附加说明',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'additional_information'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'自动授权',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'autoapprove'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'客户端表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_client'
+GO
+
+
+-- ----------------------------
+-- Records of blade_client
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_client] VALUES (N'1123598811738675201', N'sword', N'sword_secret', NULL, N'all', N'refresh_token,password,authorization_code,captcha,social', N'http://localhost:8888', NULL, N'3600', N'604800', NULL, NULL, N'1123598815738675201', N'1123598813738675201', N'2019-03-24 10:40:55', N'1123598815738675201', N'2019-03-24 10:40:59', N'1', N'0'), (N'1123598811738675202', N'saber', N'saber_secret', NULL, N'all', N'refresh_token,password,authorization_code,captcha,social', N'http://localhost:1888', NULL, N'3600', N'604800', NULL, NULL, N'1123598815738675201', N'1123598813738675201', N'2019-03-24 10:42:29', N'1123598815738675201', N'2019-03-24 10:42:32', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_code
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_code]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_code]
+GO
+
+CREATE TABLE [dbo].[blade_code] (
+  [id] bigint  NOT NULL,
+  [model_id] bigint  NULL,
+  [service_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [code_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [table_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [table_prefix] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [pk_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [package_name] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [template_type] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [author] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sub_model_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sub_fk_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [tree_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [tree_pid] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [tree_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [base_mode] int  NULL,
+  [wrap_mode] int  NULL,
+  [feign_mode] int  NULL,
+  [code_style] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [api_path] nvarchar(2000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [web_path] nvarchar(2000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_code] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据模型主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'model_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'service_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模块名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'code_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'表名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'table_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'表前缀',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'table_prefix'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'pk_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'后端包名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'package_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'基础业务模式',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'base_mode'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'包装器模式',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'wrap_mode'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'远程调用模式',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'feign_mode'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'代码风格',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'code_style'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'后端路径',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'api_path'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'前端路径',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'web_path'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模版类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'template_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'作者信息',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'author'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'子表模型主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'sub_model_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'子表绑定外键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'sub_fk_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'树主键字段',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'tree_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'树父主键字段',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'tree_pid'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'树名称字段',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'tree_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'代码生成表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_datasource
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_datasource]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_datasource]
+GO
+
+CREATE TABLE [dbo].[blade_datasource] (
+  [id] bigint  NOT NULL,
+  [name] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [driver_class] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [url] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [username] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [password] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_datasource] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'驱动类',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'driver_class'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'连接地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'url'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'username'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'密码',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'password'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据源配置表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_datasource'
+GO
+
+
+-- ----------------------------
+-- Records of blade_datasource
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_datasource] VALUES (N'1161483357481541634', N'mysql', N'com.mysql.cj.jdbc.Driver', N'jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true', N'root', N'root', N'mysql', N'1123598821738675201', N'1123598813738675201', N'2020-08-08 12:20:06', N'1123598821738675201', N'2020-08-08 12:20:06', N'1', N'0'), (N'1161483504353484802', N'postgresql', N'org.postgresql.Driver', N'jdbc:postgresql://127.0.0.1:5432/bladex', N'postgres', N'123456', N'postgresql', N'1123598821738675201', N'1123598813738675201', N'2020-08-08 12:20:02', N'1123598821738675201', N'2020-08-08 12:20:02', N'1', N'0'), (N'1161483594023510018', N'oracle', N'oracle.jdbc.OracleDriver', N'jdbc:oracle:thin:@127.0.0.1:1521:orcl', N'BLADEX', N'BLADEX', N'oracle', N'1123598821738675201', N'1123598813738675201', N'2020-08-08 12:20:03', N'1123598821738675201', N'2020-08-08 12:20:03', N'1', N'0'), (N'1161483594023510020', N'sqlserver', N'com.microsoft.sqlserver.jdbc.SQLServerDriver', N'jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex', N'bladex', N'bladex', N'sqlserver', N'1123598821738675201', N'1123598813738675201', N'2020-08-08 12:20:03', N'1123598821738675201', N'2020-08-08 12:20:03', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_dept
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_dept]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_dept]
+GO
+
+CREATE TABLE [dbo].[blade_dept] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [parent_id] bigint  NULL,
+  [ancestors] nvarchar(2000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [dept_category] int  NULL,
+  [dept_name] nvarchar(45) COLLATE Chinese_PRC_CI_AS  NULL,
+  [full_name] nvarchar(45) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sort] int  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_dept] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'父主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'parent_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'祖级列表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'ancestors'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'部门类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'dept_category'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'部门名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'dept_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'部门全称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'full_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'机构表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dept'
+GO
+
+
+-- ----------------------------
+-- Records of blade_dept
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_dept] VALUES (N'1123598813738675201', N'000000', N'0', N'0', N'1', N'布雷德科技', N'上海布雷德科技有限公司', N'1', NULL, N'0'), (N'1123598813738675202', N'000000', N'1123598813738675201', N'0,1123598813738675201', N'1', N'常州布雷德', N'常州布雷德科技有限公司', N'1', NULL, N'0'), (N'1123598813738675203', N'000000', N'1123598813738675201', N'0,1123598813738675201', N'1', N'苏州布雷德', N'苏州布雷德科技有限公司', N'1', NULL, N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_dict
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_dict]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_dict]
+GO
+
+CREATE TABLE [dbo].[blade_dict] (
+  [id] bigint  NOT NULL,
+  [parent_id] bigint  NULL,
+  [code] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [dict_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [dict_value] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sort] int  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_sealed] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_dict] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'父主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'parent_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典码',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典值',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'dict_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'dict_value'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已封存',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'is_sealed'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict'
+GO
+
+
+-- ----------------------------
+-- Records of blade_dict
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_dict] VALUES (N'1123598814738675201', N'0', N'sex', N'-1', N'性别', N'1', NULL, N'0', N'0'), (N'1123598814738675202', N'1123598814738675201', N'sex', N'1', N'男', N'1', NULL, N'0', N'0'), (N'1123598814738675203', N'1123598814738675201', N'sex', N'2', N'女', N'2', NULL, N'0', N'0'), (N'1123598814738675204', N'0', N'notice', N'-1', N'通知类型', N'2', NULL, N'0', N'0'), (N'1123598814738675205', N'1123598814738675204', N'notice', N'1', N'发布通知', N'1', NULL, N'0', N'0'), (N'1123598814738675206', N'1123598814738675204', N'notice', N'2', N'批转通知', N'2', NULL, N'0', N'0'), (N'1123598814738675207', N'1123598814738675204', N'notice', N'3', N'转发通知', N'3', NULL, N'0', N'0'), (N'1123598814738675208', N'1123598814738675204', N'notice', N'4', N'指示通知', N'4', NULL, N'0', N'0'), (N'1123598814738675209', N'1123598814738675204', N'notice', N'5', N'任免通知', N'5', NULL, N'0', N'0'), (N'1123598814738675210', N'1123598814738675204', N'notice', N'6', N'事务通知', N'6', NULL, N'0', N'0'), (N'1123598814738675211', N'0', N'menu_category', N'-1', N'菜单类型', N'3', NULL, N'0', N'0'), (N'1123598814738675212', N'1123598814738675211', N'menu_category', N'1', N'菜单', N'1', NULL, N'0', N'0'), (N'1123598814738675213', N'1123598814738675211', N'menu_category', N'2', N'按钮', N'2', NULL, N'0', N'0'), (N'1123598814738675214', N'0', N'button_func', N'-1', N'按钮功能', N'4', NULL, N'0', N'0'), (N'1123598814738675215', N'1123598814738675214', N'button_func', N'1', N'工具栏', N'1', NULL, N'0', N'0'), (N'1123598814738675216', N'1123598814738675214', N'button_func', N'2', N'操作栏', N'2', NULL, N'0', N'0'), (N'1123598814738675217', N'1123598814738675214', N'button_func', N'3', N'工具操作栏', N'3', NULL, N'0', N'0'), (N'1123598814738675218', N'0', N'yes_no', N'-1', N'是否', N'5', NULL, N'0', N'0'), (N'1123598814738675219', N'1123598814738675218', N'yes_no', N'1', N'否', N'1', NULL, N'0', N'0'), (N'1123598814738675220', N'1123598814738675218', N'yes_no', N'2', N'是', N'2', NULL, N'0', N'0'), (N'1123598814738675221', N'0', N'flow', N'-1', N'流程类型', N'5', NULL, N'0', N'0'), (N'1123598814738675222', N'1123598814738675221', N'flow', N'1', N'请假流程', N'1', N'leave', N'0', N'0'), (N'1123598814738675223', N'1123598814738675221', N'flow', N'2', N'报销流程', N'2', N'expense', N'0', N'0'), (N'1123598814738675227', N'0', N'org_category', N'-1', N'机构类型', N'7', NULL, N'0', N'0'), (N'1123598814738675228', N'1123598814738675227', N'org_category', N'1', N'公司', N'1', NULL, N'0', N'0'), (N'1123598814738675229', N'1123598814738675227', N'org_category', N'2', N'部门', N'2', NULL, N'0', N'0'), (N'1123598814738675230', N'1123598814738675227', N'org_category', N'3', N'小组', N'3', NULL, N'0', N'0'), (N'1123598814738675231', N'0', N'data_scope_type', N'-1', N'数据权限', N'8', NULL, N'0', N'0'), (N'1123598814738675232', N'1123598814738675231', N'data_scope_type', N'1', N'全部可见', N'1', NULL, N'0', N'0'), (N'1123598814738675233', N'1123598814738675231', N'data_scope_type', N'2', N'本人可见', N'2', NULL, N'0', N'0'), (N'1123598814738675234', N'1123598814738675231', N'data_scope_type', N'3', N'所在机构可见', N'3', NULL, N'0', N'0'), (N'1123598814738675235', N'1123598814738675231', N'data_scope_type', N'4', N'所在机构及子级可见', N'4', NULL, N'0', N'0'), (N'1123598814738675236', N'1123598814738675231', N'data_scope_type', N'5', N'自定义', N'5', NULL, N'0', N'0'), (N'1123598814738675237', N'0', N'api_scope_type', N'-1', N'接口权限', N'10', NULL, N'0', N'0'), (N'1123598814738675238', N'1123598814738675237', N'api_scope_type', N'1', N'系统接口', N'1', NULL, N'0', N'0'), (N'1123598814738675239', N'1123598814738675237', N'api_scope_type', N'2', N'业务接口', N'2', NULL, N'0', N'0'), (N'1123598814738675240', N'0', N'scope_category', N'-1', N'权限类型', N'10', NULL, N'0', N'0'), (N'1123598814738675241', N'1123598814738675240', N'scope_category', N'1', N'数据权限', N'1', NULL, N'0', N'0'), (N'1123598814738675242', N'1123598814738675240', N'scope_category', N'2', N'接口权限', N'2', NULL, N'0', N'0'), (N'1123598814738676224', N'0', N'oss', N'-1', N'对象存储类型', N'6', NULL, N'0', N'0'), (N'1123598814738676225', N'1123598814738676224', N'oss', N'1', N'minio', N'1', NULL, N'0', N'0'), (N'1123598814738676226', N'1123598814738676224', N'oss', N'2', N'七牛云', N'2', NULL, N'0', N'0'), (N'1123598814738676227', N'1123598814738676224', N'oss', N'3', N'阿里云', N'3', NULL, N'0', N'0'), (N'1123598814738676228', N'1123598814738676224', N'oss', N'4', N'腾讯云', N'4', NULL, N'0', N'0'), (N'1123598814738677220', N'0', N'sms', N'-1', N'短信服务类型', N'11', NULL, N'0', N'0'), (N'1123598814738677221', N'1123598814738677220', N'sms', N'1', N'云片', N'1', NULL, N'0', N'0'), (N'1123598814738677222', N'1123598814738677220', N'sms', N'2', N'七牛云', N'2', NULL, N'0', N'0'), (N'1123598814738677223', N'1123598814738677220', N'sms', N'3', N'阿里云', N'3', NULL, N'0', N'0'), (N'1123598814738677224', N'1123598814738677220', N'sms', N'4', N'腾讯云', N'4', NULL, N'0', N'0'), (N'1123598814738777220', N'0', N'post_category', N'-1', N'岗位类型', N'12', NULL, N'0', N'0'), (N'1123598814738777221', N'1123598814738777220', N'post_category', N'1', N'高层', N'1', NULL, N'0', N'0'), (N'1123598814738777222', N'1123598814738777220', N'post_category', N'2', N'中层', N'2', NULL, N'0', N'0'), (N'1123598814738777223', N'1123598814738777220', N'post_category', N'3', N'基层', N'3', NULL, N'0', N'0'), (N'1123598814738777224', N'1123598814738777220', N'post_category', N'4', N'其他', N'4', NULL, N'0', N'0'), (N'1123598814738777230', N'0', N'region', N'-1', N'行政区划', N'13', NULL, N'0', N'0'), (N'1123598814738777231', N'1123598814738777230', N'region', N'0', N'国家', N'0', NULL, N'0', N'0'), (N'1123598814738777232', N'1123598814738777230', N'region', N'1', N'省份/直辖市', N'1', NULL, N'0', N'0'), (N'1123598814738777233', N'1123598814738777230', N'region', N'2', N'地市', N'2', NULL, N'0', N'0'), (N'1123598814738777234', N'1123598814738777230', N'region', N'3', N'区县', N'3', NULL, N'0', N'0'), (N'1123598814738777235', N'1123598814738777230', N'region', N'4', N'乡镇', N'4', NULL, N'0', N'0'), (N'1123598814738777236', N'1123598814738777230', N'region', N'5', N'村委', N'5', NULL, N'0', N'0'), (N'1123598814738778200', N'0', N'user_type', N'-1', N'用户平台', N'14', NULL, N'0', N'0'), (N'1123598814738778201', N'1123598814738778200', N'user_type', N'1', N'WEB', N'1', NULL, N'0', N'0'), (N'1123598814738778202', N'1123598814738778200', N'user_type', N'2', N'APP', N'2', NULL, N'0', N'0'), (N'1123598814738778203', N'1123598814738778200', N'user_type', N'3', N'OTHER', N'3', NULL, N'0', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_dict_biz
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_dict_biz]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_dict_biz]
+GO
+
+CREATE TABLE [dbo].[blade_dict_biz] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [parent_id] bigint  NULL,
+  [code] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [dict_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [dict_value] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sort] int  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_sealed] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_dict_biz] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'父主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'parent_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典码',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典值',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'dict_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'dict_value'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已封存',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'is_sealed'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'业务字典表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_dict_biz'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_log_api
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_log_api]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_log_api]
+GO
+
+CREATE TABLE [dbo].[blade_log_api] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [service_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [server_host] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [server_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [env] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [type] nchar(1) COLLATE Chinese_PRC_CI_AS  NULL,
+  [title] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL,
+  [request_uri] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [user_agent] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remote_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method_class] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [params] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [time] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_by] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_time] datetime2(0)  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_log_api] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'service_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务器名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'server_host'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务器IP地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'server_ip'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务器环境',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'env'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'日志类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'日志标题',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'title'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作方式',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'method'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'请求URI',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'request_uri'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户代理',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'user_agent'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作IP地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'remote_ip'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'方法类',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'method_class'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'方法名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'method_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作提交的数据',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'params'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'执行时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建者',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'create_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'接口日志表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_api'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_log_error
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_log_error]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_log_error]
+GO
+
+CREATE TABLE [dbo].[blade_log_error] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [service_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [server_host] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [server_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [env] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL,
+  [request_uri] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [user_agent] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [stack_trace] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [exception_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [message] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [line_number] int  NULL,
+  [remote_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method_class] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [file_name] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [params] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_by] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_time] datetime2(0)  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_log_error] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'service_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务器名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'server_host'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务器IP地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'server_ip'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'系统环境',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'env'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作方式',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'method'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'请求URI',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'request_uri'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户代理',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'user_agent'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'堆栈',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'stack_trace'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'异常名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'exception_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'异常信息',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'message'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'错误行数',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'line_number'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作IP地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'remote_ip'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'方法类',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'method_class'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'文件名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'file_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'方法名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'method_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作提交的数据',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'params'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建者',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'create_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'错误日志表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_error'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_log_usual
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_log_usual]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_log_usual]
+GO
+
+CREATE TABLE [dbo].[blade_log_usual] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [service_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [server_host] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [server_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [env] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [log_level] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL,
+  [log_id] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [log_data] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL,
+  [request_uri] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remote_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method_class] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [method_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [user_agent] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [params] nvarchar(max) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_by] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_time] datetime2(0)  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_log_usual] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'service_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务器名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'server_host'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'服务器IP地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'server_ip'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'系统环境',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'env'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'日志级别',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'log_level'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'日志业务id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'log_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'日志数据',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'log_data'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作方式',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'method'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'请求URI',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'request_uri'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作IP地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'remote_ip'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'方法类',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'method_class'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'方法名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'method_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户代理',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'user_agent'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作提交的数据',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'params'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建者',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'create_by'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'通用日志表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_log_usual'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_menu
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_menu]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_menu]
+GO
+
+CREATE TABLE [dbo].[blade_menu] (
+  [id] bigint  NOT NULL,
+  [parent_id] bigint  NULL,
+  [code] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [alias] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [path] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [source] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sort] int  NULL,
+  [category] int  NULL,
+  [action] int  NULL,
+  [is_open] int  NULL,
+  [component] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_menu] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'父级菜单',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'parent_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单别名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'alias'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'请求地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'path'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单资源',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'source'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'category'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'操作按钮类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'action'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否打开新页面',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'is_open'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'组件地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'component'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_menu'
+GO
+
+
+-- ----------------------------
+-- Records of blade_menu
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_menu] VALUES (N'1123598815738675201', N'0', N'desk', N'工作台', N'menu', N'/desk', N'desktop', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675202', N'1123598815738675201', N'notice', N'通知公告', N'menu', N'/desk/notice', NULL, N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675203', N'0', N'system', N'系统管理', N'menu', N'/system', N'setting', N'99', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675204', N'1123598815738675203', N'user', N'用户管理', N'menu', N'/system/user', NULL, N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675205', N'1123598815738675203', N'dept', N'机构管理', N'menu', N'/system/dept', NULL, N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675206', N'1123598815738675203', N'dict', N'系统字典', N'menu', N'/system/dict', NULL, N'4', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675207', N'1123598815738675203', N'menu', N'菜单管理', N'menu', N'/system/menu', NULL, N'6', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675208', N'1123598815738675203', N'topmenu', N'顶部菜单', N'menu', N'/system/topmenu', N'', N'7', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675209', N'1123598815738675203', N'param', N'参数管理', N'menu', N'/system/param', NULL, N'8', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675210', N'0', N'monitor', N'系统监控', N'menu', N'/monitor', N'fund', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675211', N'1123598815738675210', N'doc', N'接口文档', N'menu', N'http://localhost:18000/doc.html', NULL, N'1', N'1', N'0', N'2', N'', NULL, N'0'), (N'1123598815738675212', N'1123598815738675210', N'admin', N'服务治理', N'menu', N'http://localhost:7002', NULL, N'2', N'1', N'0', N'2', N'', NULL, N'0'), (N'1123598815738675213', N'1123598815738675210', N'log', N'日志管理', N'menu', N'/monitor/log', NULL, N'8', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675214', N'1123598815738675213', N'log_usual', N'通用日志', N'menu', N'/monitor/log/usual', NULL, N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675215', N'1123598815738675213', N'log_api', N'接口日志', N'menu', N'/monitor/log/api', NULL, N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675216', N'1123598815738675213', N'log_error', N'错误日志', N'menu', N'/monitor/log/error', NULL, N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675217', N'0', N'tool', N'研发工具', N'menu', N'/tool', N'tool', N'4', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675218', N'1123598815738675217', N'code', N'代码生成', N'menu', N'/tool/code', NULL, N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675219', N'1123598815738675202', N'notice_add', N'新增', N'add', N'/desk/notice/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675220', N'1123598815738675202', N'notice_edit', N'修改', N'edit', N'/desk/notice/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675221', N'1123598815738675202', N'notice_delete', N'删除', N'delete', N'/api/blade-desk/notice/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675222', N'1123598815738675202', N'notice_view', N'查看', N'view', N'/desk/notice/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675223', N'1123598815738675204', N'user_add', N'新增', N'add', N'/system/user/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675224', N'1123598815738675204', N'user_edit', N'修改', N'edit', N'/system/user/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675225', N'1123598815738675204', N'user_delete', N'删除', N'delete', N'/api/blade-user/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675226', N'1123598815738675204', N'user_role', N'角色配置', N'role', NULL, N'user-add', N'4', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675227', N'1123598815738675204', N'user_reset', N'密码重置', N'reset-password', N'/api/blade-user/reset-password', N'retweet', N'5', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675228', N'1123598815738675204', N'user_view', N'查看', N'view', N'/system/user/view', N'file-text', N'6', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675229', N'1123598815738675205', N'dept_add', N'新增', N'add', N'/system/dept/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675230', N'1123598815738675205', N'dept_edit', N'修改', N'edit', N'/system/dept/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675231', N'1123598815738675205', N'dept_delete', N'删除', N'delete', N'/api/blade-system/dept/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675232', N'1123598815738675205', N'dept_view', N'查看', N'view', N'/system/dept/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675233', N'1123598815738675206', N'dict_add', N'新增', N'add', N'/system/dict/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675234', N'1123598815738675206', N'dict_edit', N'修改', N'edit', N'/system/dict/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675235', N'1123598815738675206', N'dict_delete', N'删除', N'delete', N'/api/blade-system/dict/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675236', N'1123598815738675206', N'dict_view', N'查看', N'view', N'/system/dict/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675237', N'1123598815738675207', N'menu_add', N'新增', N'add', N'/system/menu/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675238', N'1123598815738675207', N'menu_edit', N'修改', N'edit', N'/system/menu/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675239', N'1123598815738675207', N'menu_delete', N'删除', N'delete', N'/api/blade-system/menu/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675240', N'1123598815738675207', N'menu_view', N'查看', N'view', N'/system/menu/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675241', N'1123598815738675308', N'role_add', N'新增', N'add', N'/authority/role/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675242', N'1123598815738675308', N'role_edit', N'修改', N'edit', N'/authority/role/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675243', N'1123598815738675308', N'role_delete', N'删除', N'delete', N'/api/blade-system/role/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675244', N'1123598815738675308', N'role_view', N'查看', N'view', N'/authority/role/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675245', N'1123598815738675209', N'param_add', N'新增', N'add', N'/system/param/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675246', N'1123598815738675209', N'param_edit', N'修改', N'edit', N'/system/param/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675247', N'1123598815738675209', N'param_delete', N'删除', N'delete', N'/api/blade-system/param/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675248', N'1123598815738675209', N'param_view', N'查看', N'view', N'/system/param/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675249', N'1123598815738675214', N'log_usual_view', N'查看', N'view', N'/monitor/log/usual/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675250', N'1123598815738675215', N'log_api_view', N'查看', N'view', N'/monitor/log/api/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675251', N'1123598815738675216', N'log_error_view', N'查看', N'view', N'/monitor/log/error/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675252', N'1123598815738675218', N'code_add', N'新增', N'add', N'/tool/code/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675253', N'1123598815738675218', N'code_edit', N'修改', N'edit', N'/tool/code/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675254', N'1123598815738675218', N'code_delete', N'删除', N'delete', N'/api/blade-develop/code/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675255', N'1123598815738675218', N'code_view', N'查看', N'view', N'/tool/code/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675256', N'1123598815738675203', N'tenant', N'租户管理', N'menu', N'/system/tenant', NULL, N'9', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675257', N'1123598815738675256', N'tenant_add', N'新增', N'add', N'/system/tenant/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675258', N'1123598815738675256', N'tenant_edit', N'修改', N'edit', N'/system/tenant/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675259', N'1123598815738675256', N'tenant_delete', N'删除', N'delete', N'/api/blade-system/tenant/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675260', N'1123598815738675256', N'tenant_view', N'查看', N'view', N'/system/tenant/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675261', N'1123598815738675203', N'client', N'应用管理', N'menu', N'/system/client', NULL, N'10', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675262', N'1123598815738675261', N'client_add', N'新增', N'add', N'/system/client/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675263', N'1123598815738675261', N'client_edit', N'修改', N'edit', N'/system/client/edit', N'form', N'2', N'2', N'2', N'2', N'', NULL, N'0'), (N'1123598815738675264', N'1123598815738675261', N'client_delete', N'删除', N'delete', N'/api/blade-system/client/remove', N'delete', N'3', N'2', N'3', N'3', N'', NULL, N'0'), (N'1123598815738675265', N'1123598815738675261', N'client_view', N'查看', N'view', N'/system/client/view', N'file-text', N'4', N'2', N'2', N'2', N'', NULL, N'0'), (N'1123598815738675266', N'0', N'flow', N'流程管理', N'menu', N'/flow', N'stock', N'5', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675267', N'1123598815738675266', N'flow_model', N'模型管理', N'menu', N'/flow/model', NULL, N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675268', N'1123598815738675267', N'flow_model_create', N'创建', N'create', N'', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675269', N'1123598815738675267', N'flow_model_update', N'编辑', N'update', N'', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675270', N'1123598815738675267', N'flow_model_deploy', N'部署', N'deploy', N'', N'cloud-upload', N'3', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675271', N'1123598815738675267', N'flow_model_download', N'下载', N'download', N'', N'download', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675272', N'1123598815738675267', N'flow_model_delete', N'删除', N'delete', N'/api/blade-flow/model/remove', N'delete', N'5', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675273', N'1123598815738675266', N'flow_deploy', N'流程部署', N'menu', N'/flow/deploy', NULL, N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675274', N'1123598815738675266', N'flow_manager', N'流程管理', N'menu', N'/flow/manager', NULL, N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675275', N'1123598815738675274', N'flow_manager_state', N'变更状态', N'state', N'', N'plus', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675276', N'1123598815738675274', N'flow_manager_image', N'流程图', N'image', N'', N'image', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675277', N'1123598815738675274', N'flow_manager_remove', N'删除', N'remove', N'', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675278', N'1123598815738675266', N'flow_follow', N'流程跟踪', N'menu', N'/flow/follow', NULL, N'4', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675279', N'1123598815738675278', N'flow_follow_delete', N'删除', N'remove', N'', N'remove', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675280', N'0', N'work', N'我的事务', N'menu', N'/work', N'bell', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675281', N'1123598815738675280', N'work_start', N'发起事务', N'menu', N'/work/start', NULL, N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675282', N'1123598815738675281', N'work_start_flow', N'发起', N'flow', N'', N'flow', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675283', N'1123598815738675281', N'work_start_image', N'流程图', N'image', N'', N'image', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675284', N'1123598815738675280', N'work_claim', N'待签事务', N'menu', N'/work/claim', NULL, N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675285', N'1123598815738675284', N'work_claim_sign', N'签收', N'sign', N'', N'sign', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675286', N'1123598815738675284', N'work_claim_detail', N'详情', N'detail', N'', N'detail', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675287', N'1123598815738675284', N'work_claim_follow', N'跟踪', N'follow', N'', N'follow', N'3', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675288', N'1123598815738675280', N'work_todo', N'待办事务', N'menu', N'/work/todo', NULL, N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675289', N'1123598815738675288', N'work_todo_handle', N'办理', N'handle', N'', N'handle', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675290', N'1123598815738675288', N'work_todo_detail', N'详情', N'detail', N'', N'detail', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675291', N'1123598815738675288', N'work_todo_follow', N'跟踪', N'follow', N'', N'follow', N'3', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675292', N'1123598815738675280', N'work_send', N'已发事务', N'menu', N'/work/send', NULL, N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675293', N'1123598815738675292', N'work_send_detail', N'详情', N'detail', N'', N'detail', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675294', N'1123598815738675292', N'work_send_follow', N'跟踪', N'follow', N'', N'follow', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675295', N'1123598815738675280', N'work_done', N'办结事务', N'menu', N'/work/done', NULL, N'4', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675296', N'1123598815738675295', N'work_done_detail', N'详情', N'detail', N'', N'detail', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675297', N'1123598815738675295', N'work_done_follow', N'跟踪', N'follow', N'', N'follow', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675298', N'0', N'resource', N'资源管理', N'menu', N'/resource', N'bg-colors', N'6', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675299', N'1123598815738675298', N'oss', N'对象存储', N'menu', N'/resource/oss', NULL, N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675301', N'1123598815738675299', N'oss_add', N'新增', N'add', N'/resource/oss/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675302', N'1123598815738675299', N'oss_edit', N'修改', N'edit', N'/resource/oss/edit', N'form', N'2', N'2', N'2', N'2', N'', NULL, N'0'), (N'1123598815738675303', N'1123598815738675299', N'oss_delete', N'删除', N'delete', N'/api/blade-resource/oss/remove', N'delete', N'3', N'2', N'3', N'3', N'', NULL, N'0'), (N'1123598815738675304', N'1123598815738675299', N'oss_view', N'查看', N'view', N'/resource/oss/view', N'file-text', N'4', N'2', N'2', N'2', N'', NULL, N'0'), (N'1123598815738675305', N'1123598815738675299', N'oss_enable', N'启用', N'enable', N'/api/blade-resource/oss/enable', N'key', N'5', N'2', N'2', N'2', N'', NULL, N'0'), (N'1123598815738675307', N'0', N'authority', N'权限管理', N'menu', N'/authority', N'safety-certificate', N'98', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675308', N'1123598815738675307', N'role', N'角色管理', N'menu', N'/authority/role', N'', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675309', N'1123598815738675307', N'data_scope', N'数据权限', N'menu', N'/authority/datascope', N'', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675310', N'1123598815738675309', N'data_scope_setting', N'权限配置', N'setting', NULL, N'setting', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675311', N'1123598815738675307', N'api_scope', N'接口权限', N'menu', N'/authority/apiscope', N'', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675312', N'1123598815738675311', N'api_scope_setting', N'权限配置', N'setting', NULL, N'setting', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675313', N'1123598815738675208', N'topmenu_add', N'新增', N'add', N'/system/topmenu/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675314', N'1123598815738675208', N'topmenu_edit', N'修改', N'edit', N'/system/topmenu/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675315', N'1123598815738675208', N'topmenu_delete', N'删除', N'delete', N'/api/blade-system/topmenu/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675316', N'1123598815738675208', N'topmenu_view', N'查看', N'view', N'/system/topmenu/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675317', N'1123598815738675208', N'topmenu_setting', N'菜单配置', N'setting', NULL, N'setting', N'5', N'2', N'1', N'1', N'', NULL, N'0'), (N'1161272593873321991', N'1123598815738675217', N'datasource', N'数据源管理', N'menu', N'/tool/datasource', NULL, N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1161272593873321992', N'1161272593873321991', N'datasource_add', N'新增', N'add', N'/tool/datasource/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1161272593873321993', N'1161272593873321991', N'datasource_edit', N'修改', N'edit', N'/tool/datasource/edit', N'form', N'2', N'2', N'2', N'2', N'', NULL, N'0'), (N'1161272593873321994', N'1161272593873321991', N'datasource_delete', N'删除', N'delete', N'/api/blade-develop/datasource/remove', N'delete', N'3', N'2', N'3', N'3', N'', NULL, N'0'), (N'1161272593873321995', N'1161272593873321991', N'datasource_view', N'查看', N'view', N'/tool/datasource/view', N'file-text', N'4', N'2', N'2', N'2', N'', NULL, N'0'), (N'1161272593873321996', N'1123598815738675217', N'model', N'数据模型设计', N'menu', N'/tool/model', N'', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733369658963251', N'1123598815738675210', N'elk', N'ELK监控', N'menu', N'http://localhost:5601/', N'', N'3', N'1', N'0', N'2', N'', NULL, N'0'), (N'1164733369658963252', N'1123598815738675210', N'zipkin', N'Zipkin监控', N'menu', N'http://localhost:9411/', N'', N'4', N'1', N'0', N'2', N'', NULL, N'0'), (N'1164733369658963253', N'1123598815738675210', N'turbine', N'Turbine监控', N'menu', N'http://localhost:7003/hystrix', N'', N'5', N'1', N'0', N'2', N'', NULL, N'0'), (N'1164733369658963254', N'1123598815738675210', N'sentinel', N'Sentinel管理', N'menu', N'http://localhost:8858', N'', N'6', N'1', N'0', N'2', N'', NULL, N'0'), (N'1164733369658963255', N'1123598815738675210', N'es', N'Elasticsearch管理', N'menu', N'http://localhost:9100/', N'', N'7', N'1', N'0', N'2', N'', NULL, N'0'), (N'1164733379658963251', N'1123598815738675203', N'dictbiz', N'业务字典', N'menu', N'/system/dictbiz', N'', N'5', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733379658963252', N'1164733379658963251', N'dictbiz_add', N'新增', N'add', N'/system/dictbiz/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1164733379658963253', N'1164733379658963251', N'dictbiz_edit', N'修改', N'edit', N'/system/dictbiz/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733379658963254', N'1164733379658963251', N'dictbiz_delete', N'删除', N'delete', N'/api/blade-system/dict-biz/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1164733379658963255', N'1164733379658963251', N'dictbiz_view', N'查看', N'view', N'/system/dictbiz/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733389658962251', N'1123598815738675298', N'sms', N'短信配置', N'menu', N'/resource/sms', N'', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733389658962252', N'1164733389658962251', N'sms_add', N'新增', N'add', N'/resource/sms/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1164733389658962253', N'1164733389658962251', N'sms_edit', N'修改', N'edit', N'/resource/sms/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733389658962254', N'1164733389658962251', N'sms_delete', N'删除', N'delete', N'/api/blade-resource/sms/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1164733389658962255', N'1164733389658962251', N'sms_view', N'查看', N'view', N'/resource/sms/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733389658962256', N'1164733389658962251', N'sms_enable', N'启用', N'enable', N'/api/blade-resource/sms/enable', N'key', N'5', N'2', N'2', N'2', N'', NULL, N'0'), (N'1164733389658963251', N'1123598815738675298', N'xxljob', N'任务调度', N'menu', N'http://localhost:7009/xxl-job-admin', N'', N'5', N'1', N'0', N'2', N'', NULL, N'0'), (N'1164733389668962251', N'1123598815738675203', N'post', N'岗位管理', N'menu', N'/system/post', N'', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733389668962252', N'1164733389668962251', N'post_add', N'新增', N'add', N'/system/post/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1164733389668962253', N'1164733389668962251', N'post_edit', N'修改', N'edit', N'/system/post/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733389668962254', N'1164733389668962251', N'post_delete', N'删除', N'delete', N'/api/blade-system/post/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1164733389668962255', N'1164733389668962251', N'post_view', N'查看', N'view', N'/system/post/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733399668962201', N'0', N'base', N'基础配置', N'menu', N'/base', N'sliders', N'97', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399668962202', N'1164733399668962201', N'region', N'行政区划', N'menu', N'/base/region', N'', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399668962203', N'1164733399668962202', N'region_add', N'新增下级', N'add', N'', N'', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1164733399668962204', N'1164733399668962202', N'region_delete', N'删除', N'delete', N'/api/blade-system/region/remove', N'', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733399668962205', N'1164733399668962202', N'region_import', N'导入', N'import', N'', N'', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1164733399668962206', N'1164733399668962202', N'region_export', N'导出', N'export', N'', N'', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733399668962207', N'1164733399668962202', N'region_debug', N'调试', N'debug', N'', N'', N'5', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733399669962201', N'1123598815738675298', N'attach', N'附件管理', N'menu', N'/resource/attach', N'', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399669962202', N'1164733399669962201', N'attach_upload', N'上传', N'upload', N'/resource/attach/upload', N'', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1164733399669962203', N'1164733399669962201', N'attach_download', N'下载', N'download', N'/resource/attach/download', N'', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733399669962204', N'1164733399669962201', N'attach_delete', N'删除', N'delete', N'/api/blade-resource/attach/remove', N'', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1164733399669962301', N'0', N'report', N'报表管理', N'menu', N'/report', N'bar-chart', N'5', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399669962302', N'1164733399669962301', N'report_setting', N'报表配置', N'menu', N'http://localhost:8108/ureport/designer', N'', N'1', N'1', N'0', N'2', N'', NULL, N'0'), (N'1164733399669962303', N'1164733399669962301', N'report_list', N'报表列表', N'menu', N'/report/reportlist', N'', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399669962304', N'1164733399669962301', N'report_notice', N'公告报表', N'menu', N'http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml', N'', N'3', N'1', N'0', N'2', N'', NULL, N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_model
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_model]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_model]
+GO
+
+CREATE TABLE [dbo].[blade_model] (
+  [id] bigint  NOT NULL,
+  [datasource_id] bigint  NULL,
+  [model_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [model_code] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [model_table] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [model_class] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NULL,
+  [model_remark] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_model] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据源主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'datasource_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模型名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'model_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模型编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'model_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'物理表名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'model_table'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模型类名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'model_class'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模型备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'model_remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据模型表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_model_prototype
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_model_prototype]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_model_prototype]
+GO
+
+CREATE TABLE [dbo].[blade_model_prototype] (
+  [id] bigint  NOT NULL,
+  [model_id] bigint  NULL,
+  [jdbc_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [jdbc_type] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [comment] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [property_type] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [property_entity] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [property_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_list] int  NULL,
+  [is_form] int  NULL,
+  [is_row] int  NULL,
+  [component_type] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [dict_code] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_required] int  NULL,
+  [validate_type] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_query] int  NULL,
+  [query_type] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_model_prototype] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模型主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'model_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'物理列名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'jdbc_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'物理类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'jdbc_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'注释说明',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'comment'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'实体类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'property_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'实体类型引用',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'property_entity'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'实体列名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'property_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'列表显示',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'is_list'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'表单显示',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'is_form'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'独占一行',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'is_row'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'组件类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'component_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'字典编码',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'dict_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否必填',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'is_required'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'验证类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'validate_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'查询配置',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'is_query'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'查询类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'query_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据原型表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_model_prototype'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_notice
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_notice]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_notice]
+GO
+
+CREATE TABLE [dbo].[blade_notice] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [title] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [category] int  NULL,
+  [release_time] datetime2(0)  NULL,
+  [content] nvarchar(2000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_notice] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'标题',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'title'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'category'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'发布时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'release_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'内容',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'content'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'通知公告表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_notice'
+GO
+
+
+-- ----------------------------
+-- Records of blade_notice
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_notice] VALUES (N'1123598818738675223', N'000000', N'测试公告', N'3', N'2018-12-31 20:03:31', N'222', N'1123598821738675201', N'1123598813738675201', N'2018-12-05 20:03:31', N'1123598821738675201', N'2018-12-28 11:10:51', N'1', N'0'), (N'1123598818738675224', N'000000', N'测试公告2', N'1', N'2018-12-05 20:03:31', N'333', N'1123598821738675201', N'1123598813738675201', N'2018-12-28 10:32:26', N'1123598821738675201', N'2018-12-28 11:10:34', N'1', N'0'), (N'1123598818738675225', N'000000', N'测试公告3', N'6', N'2018-12-29 00:00:00', N'11111', N'1123598821738675201', N'1123598813738675201', N'2018-12-28 11:03:44', N'1123598821738675201', N'2018-12-28 11:10:28', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_oss
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_oss]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_oss]
+GO
+
+CREATE TABLE [dbo].[blade_oss] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [category] int  NULL,
+  [oss_code] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [endpoint] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [access_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [secret_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [bucket_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [app_id] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [region] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_oss] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'分类',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'category'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'资源编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'oss_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'资源地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'endpoint'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'accessKey',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'access_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'secretKey',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'secret_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'空间名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'bucket_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'应用ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'app_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'地域简称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'region'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'对象存储表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_oss'
+GO
+
+
+-- ----------------------------
+-- Records of blade_oss
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_oss] VALUES (N'1132486733992468482', N'000000', N'1', N'minio', N'http://127.0.0.1:9000', N'D99KGE6ZTQXSATTJWU24', N'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', N'bladex', N'', N'', N'', N'1123598821738675201', N'1123598813738675201', N'2019-05-26 11:20:52', N'1123598821738675201', N'2019-05-27 08:34:55', N'2', N'0'), (N'1132487155981393922', N'000000', N'2', N'qiniu', N'http://ps458elcs.bkt.clouddn.com', N'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', N'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', N'bladex', N'', N'', N'', N'1123598821738675201', N'1123598813738675201', N'2019-05-26 11:22:33', N'1123598821738675201', N'2019-05-26 23:27:56', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_param
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_param]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_param]
+GO
+
+CREATE TABLE [dbo].[blade_param] (
+  [id] bigint  NOT NULL,
+  [param_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [param_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [param_value] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_param] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'参数名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'param_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'参数键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'param_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'参数值',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'param_value'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'参数表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_param'
+GO
+
+
+-- ----------------------------
+-- Records of blade_param
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_param] VALUES (N'1123598819738675201', N'是否开启注册功能', N'account.registerUser', N'true', N'开启注册', N'1123598821738675201', N'1123598813738675201', N'2018-12-28 12:19:01', N'1123598821738675201', N'2018-12-28 12:19:01', N'1', N'0'), (N'1123598819738675202', N'账号初始密码', N'account.initPassword', N'123456', N'初始密码', N'1123598821738675201', N'1123598813738675201', N'2018-12-28 12:19:01', N'1123598821738675201', N'2018-12-28 12:19:01', N'1', N'0'), (N'1123598819738675203', N'账号错误锁定次数', N'account.failCount', N'5', N'锁定次数', N'1123598821738675201', N'1123598813738675201', N'2021-12-01 12:00:00', N'1123598821738675201', N'2021-12-01 12:00:00', N'1', N'0'), (N'1238706101399142402', N'租户默认管理密码', N'tenant.default.password', N'admin', NULL, N'1123598821738675201', N'1123598813738675201', N'2020-03-14 13:58:43', N'1123598821738675201', N'2020-03-14 13:58:43', N'1', N'0'), (N'1238706160295559170', N'租户默认账号额度', N'tenant.default.accountNumber', N'100', NULL, N'1123598821738675201', N'1123598813738675201', N'2020-03-14 13:58:57', N'1123598821738675201', N'2020-03-14 13:58:57', N'1', N'0'), (N'1238706330076790786', N'租户默认菜单集合', N'tenant.default.menuCode', N'desk,flow,work,monitor,resource,role,user,dept,post,dictbiz,topmenu', NULL, N'1123598821738675201', N'1123598813738675201', N'2020-03-14 13:59:38', N'1123598821738675201', N'2020-03-14 13:59:38', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_post
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_post]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_post]
+GO
+
+CREATE TABLE [dbo].[blade_post] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [category] int  NULL,
+  [post_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [post_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sort] int  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_post] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'岗位类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'category'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'岗位编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'post_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'岗位名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'post_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'岗位排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'岗位描述',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'岗位表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_post'
+GO
+
+
+-- ----------------------------
+-- Records of blade_post
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_post] VALUES (N'1123598817738675201', N'000000', N'1', N'ceo', N'首席执行官', N'1', N'总经理', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675202', N'000000', N'1', N'coo', N'首席运营官', N'2', N'常务总经理', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675203', N'000000', N'1', N'cfo', N'首席财务官', N'3', N'财务总经理', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675204', N'000000', N'1', N'cto', N'首席技术官', N'4', N'技术总监', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675205', N'000000', N'1', N'cio', N'首席信息官', N'5', N'信息总监', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675206', N'000000', N'2', N'pm', N'技术经理', N'6', N'研发和产品是永远的朋友', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675207', N'000000', N'2', N'hrm', N'人力经理', N'7', N'人力资源部门工作管理者', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675208', N'000000', N'3', N'staff', N'普通员工', N'8', N'普通员工', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_process_leave
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_process_leave]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_process_leave]
+GO
+
+CREATE TABLE [dbo].[blade_process_leave] (
+  [id] bigint  NOT NULL,
+  [process_definition_id] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [process_instance_id] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [start_time] datetime2(0)  NULL,
+  [end_time] datetime2(0)  NULL,
+  [reason] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [task_user] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [apply_time] datetime2(0)  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_process_leave] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'流程定义主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'process_definition_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'流程实例主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'process_instance_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'开始时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'start_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'结束时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'end_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'请假理由',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'reason'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'第一级审批人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'task_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'申请时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'apply_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'流程请假业务表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_process_leave'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_region
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_region]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_region]
+GO
+
+CREATE TABLE [dbo].[blade_region] (
+  [code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [parent_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [ancestors] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [name] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [province_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [province_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [city_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [city_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [district_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [district_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [town_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [town_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [village_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [village_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [region_level] int  NULL,
+  [sort] int  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_region] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'父区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'parent_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'祖区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'ancestors'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'区划名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'省级区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'province_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'省级名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'province_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'市级区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'city_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'市级名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'city_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'区级区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'district_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'区级名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'district_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'镇级区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'town_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'镇级名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'town_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'村级区划编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'village_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'村级名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'village_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'层级',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'region_level'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'行政区划表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_region'
+GO
+
+
+-- ----------------------------
+-- Records of blade_region
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'00', N'0', N'0', N'中华人民共和国', N'', N'', N'', N'', N'', N'', N'', N'', N'', N'', N'0', N'1', N''), (N'11', N'00', N'00', N'北京市', N'11', N'北京市', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'1101', N'11', N'00,11', N'北京市', N'11', N'北京市', N'1101', N'北京市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'110101', N'1101', N'00,11,1101', N'东城区', N'11', N'北京市', N'1101', N'北京市', N'110101', N'东城区', N'', N'', N'', N'', N'3', N'1', N''), (N'110102', N'1101', N'00,11,1101', N'西城区', N'11', N'北京市', N'1101', N'北京市', N'110102', N'西城区', N'', N'', N'', N'', N'3', N'1', N''), (N'110105', N'1101', N'00,11,1101', N'朝阳区', N'11', N'北京市', N'1101', N'北京市', N'110105', N'朝阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'110106', N'1101', N'00,11,1101', N'丰台区', N'11', N'北京市', N'1101', N'北京市', N'110106', N'丰台区', N'', N'', N'', N'', N'3', N'1', N''), (N'110107', N'1101', N'00,11,1101', N'石景山区', N'11', N'北京市', N'1101', N'北京市', N'110107', N'石景山区', N'', N'', N'', N'', N'3', N'1', N''), (N'110108', N'1101', N'00,11,1101', N'海淀区', N'11', N'北京市', N'1101', N'北京市', N'110108', N'海淀区', N'', N'', N'', N'', N'3', N'1', N''), (N'110109', N'1101', N'00,11,1101', N'门头沟区', N'11', N'北京市', N'1101', N'北京市', N'110109', N'门头沟区', N'', N'', N'', N'', N'3', N'1', N''), (N'110111', N'1101', N'00,11,1101', N'房山区', N'11', N'北京市', N'1101', N'北京市', N'110111', N'房山区', N'', N'', N'', N'', N'3', N'1', N''), (N'110112', N'1101', N'00,11,1101', N'通州区', N'11', N'北京市', N'1101', N'北京市', N'110112', N'通州区', N'', N'', N'', N'', N'3', N'1', N''), (N'110113', N'1101', N'00,11,1101', N'顺义区', N'11', N'北京市', N'1101', N'北京市', N'110113', N'顺义区', N'', N'', N'', N'', N'3', N'1', N''), (N'110114', N'1101', N'00,11,1101', N'昌平区', N'11', N'北京市', N'1101', N'北京市', N'110114', N'昌平区', N'', N'', N'', N'', N'3', N'1', N''), (N'110115', N'1101', N'00,11,1101', N'大兴区', N'11', N'北京市', N'1101', N'北京市', N'110115', N'大兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'110116', N'1101', N'00,11,1101', N'怀柔区', N'11', N'北京市', N'1101', N'北京市', N'110116', N'怀柔区', N'', N'', N'', N'', N'3', N'1', N''), (N'110117', N'1101', N'00,11,1101', N'平谷区', N'11', N'北京市', N'1101', N'北京市', N'110117', N'平谷区', N'', N'', N'', N'', N'3', N'1', N''), (N'110118', N'1101', N'00,11,1101', N'密云区', N'11', N'北京市', N'1101', N'北京市', N'110118', N'密云区', N'', N'', N'', N'', N'3', N'1', N''), (N'110119', N'1101', N'00,11,1101', N'延庆区', N'11', N'北京市', N'1101', N'北京市', N'110119', N'延庆区', N'', N'', N'', N'', N'3', N'1', N''), (N'12', N'00', N'00', N'天津市', N'12', N'天津市', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'1201', N'12', N'00,12', N'天津市', N'12', N'天津市', N'1201', N'天津市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'120101', N'1201', N'00,12,1201', N'和平区', N'12', N'天津市', N'1201', N'天津市', N'120101', N'和平区', N'', N'', N'', N'', N'3', N'1', N''), (N'120102', N'1201', N'00,12,1201', N'河东区', N'12', N'天津市', N'1201', N'天津市', N'120102', N'河东区', N'', N'', N'', N'', N'3', N'1', N''), (N'120103', N'1201', N'00,12,1201', N'河西区', N'12', N'天津市', N'1201', N'天津市', N'120103', N'河西区', N'', N'', N'', N'', N'3', N'1', N''), (N'120104', N'1201', N'00,12,1201', N'南开区', N'12', N'天津市', N'1201', N'天津市', N'120104', N'南开区', N'', N'', N'', N'', N'3', N'1', N''), (N'120105', N'1201', N'00,12,1201', N'河北区', N'12', N'天津市', N'1201', N'天津市', N'120105', N'河北区', N'', N'', N'', N'', N'3', N'1', N''), (N'120106', N'1201', N'00,12,1201', N'红桥区', N'12', N'天津市', N'1201', N'天津市', N'120106', N'红桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'120110', N'1201', N'00,12,1201', N'东丽区', N'12', N'天津市', N'1201', N'天津市', N'120110', N'东丽区', N'', N'', N'', N'', N'3', N'1', N''), (N'120111', N'1201', N'00,12,1201', N'西青区', N'12', N'天津市', N'1201', N'天津市', N'120111', N'西青区', N'', N'', N'', N'', N'3', N'1', N''), (N'120112', N'1201', N'00,12,1201', N'津南区', N'12', N'天津市', N'1201', N'天津市', N'120112', N'津南区', N'', N'', N'', N'', N'3', N'1', N''), (N'120113', N'1201', N'00,12,1201', N'北辰区', N'12', N'天津市', N'1201', N'天津市', N'120113', N'北辰区', N'', N'', N'', N'', N'3', N'1', N''), (N'120114', N'1201', N'00,12,1201', N'武清区', N'12', N'天津市', N'1201', N'天津市', N'120114', N'武清区', N'', N'', N'', N'', N'3', N'1', N''), (N'120115', N'1201', N'00,12,1201', N'宝坻区', N'12', N'天津市', N'1201', N'天津市', N'120115', N'宝坻区', N'', N'', N'', N'', N'3', N'1', N''), (N'120116', N'1201', N'00,12,1201', N'滨海新区', N'12', N'天津市', N'1201', N'天津市', N'120116', N'滨海新区', N'', N'', N'', N'', N'3', N'1', N''), (N'120117', N'1201', N'00,12,1201', N'宁河区', N'12', N'天津市', N'1201', N'天津市', N'120117', N'宁河区', N'', N'', N'', N'', N'3', N'1', N''), (N'120118', N'1201', N'00,12,1201', N'静海区', N'12', N'天津市', N'1201', N'天津市', N'120118', N'静海区', N'', N'', N'', N'', N'3', N'1', N''), (N'120119', N'1201', N'00,12,1201', N'蓟州区', N'12', N'天津市', N'1201', N'天津市', N'120119', N'蓟州区', N'', N'', N'', N'', N'3', N'1', N''), (N'13', N'00', N'00', N'河北省', N'13', N'河北省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'1301', N'13', N'00,13', N'石家庄市', N'13', N'河北省', N'1301', N'石家庄市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130102', N'1301', N'00,13,1301', N'长安区', N'13', N'河北省', N'1301', N'石家庄市', N'130102', N'长安区', N'', N'', N'', N'', N'3', N'1', N''), (N'130104', N'1301', N'00,13,1301', N'桥西区', N'13', N'河北省', N'1301', N'石家庄市', N'130104', N'桥西区', N'', N'', N'', N'', N'3', N'1', N''), (N'130105', N'1301', N'00,13,1301', N'新华区', N'13', N'河北省', N'1301', N'石家庄市', N'130105', N'新华区', N'', N'', N'', N'', N'3', N'1', N''), (N'130107', N'1301', N'00,13,1301', N'井陉矿区', N'13', N'河北省', N'1301', N'石家庄市', N'130107', N'井陉矿区', N'', N'', N'', N'', N'3', N'1', N''), (N'130108', N'1301', N'00,13,1301', N'裕华区', N'13', N'河北省', N'1301', N'石家庄市', N'130108', N'裕华区', N'', N'', N'', N'', N'3', N'1', N''), (N'130109', N'1301', N'00,13,1301', N'藁城区', N'13', N'河北省', N'1301', N'石家庄市', N'130109', N'藁城区', N'', N'', N'', N'', N'3', N'1', N''), (N'130110', N'1301', N'00,13,1301', N'鹿泉区', N'13', N'河北省', N'1301', N'石家庄市', N'130110', N'鹿泉区', N'', N'', N'', N'', N'3', N'1', N''), (N'130111', N'1301', N'00,13,1301', N'栾城区', N'13', N'河北省', N'1301', N'石家庄市', N'130111', N'栾城区', N'', N'', N'', N'', N'3', N'1', N''), (N'130121', N'1301', N'00,13,1301', N'井陉县', N'13', N'河北省', N'1301', N'石家庄市', N'130121', N'井陉县', N'', N'', N'', N'', N'3', N'1', N''), (N'130123', N'1301', N'00,13,1301', N'正定县', N'13', N'河北省', N'1301', N'石家庄市', N'130123', N'正定县', N'', N'', N'', N'', N'3', N'1', N''), (N'130125', N'1301', N'00,13,1301', N'行唐县', N'13', N'河北省', N'1301', N'石家庄市', N'130125', N'行唐县', N'', N'', N'', N'', N'3', N'1', N''), (N'130126', N'1301', N'00,13,1301', N'灵寿县', N'13', N'河北省', N'1301', N'石家庄市', N'130126', N'灵寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'130127', N'1301', N'00,13,1301', N'高邑县', N'13', N'河北省', N'1301', N'石家庄市', N'130127', N'高邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'130128', N'1301', N'00,13,1301', N'深泽县', N'13', N'河北省', N'1301', N'石家庄市', N'130128', N'深泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'130129', N'1301', N'00,13,1301', N'赞皇县', N'13', N'河北省', N'1301', N'石家庄市', N'130129', N'赞皇县', N'', N'', N'', N'', N'3', N'1', N''), (N'130130', N'1301', N'00,13,1301', N'无极县', N'13', N'河北省', N'1301', N'石家庄市', N'130130', N'无极县', N'', N'', N'', N'', N'3', N'1', N''), (N'130131', N'1301', N'00,13,1301', N'平山县', N'13', N'河北省', N'1301', N'石家庄市', N'130131', N'平山县', N'', N'', N'', N'', N'3', N'1', N''), (N'130132', N'1301', N'00,13,1301', N'元氏县', N'13', N'河北省', N'1301', N'石家庄市', N'130132', N'元氏县', N'', N'', N'', N'', N'3', N'1', N''), (N'130133', N'1301', N'00,13,1301', N'赵县', N'13', N'河北省', N'1301', N'石家庄市', N'130133', N'赵县', N'', N'', N'', N'', N'3', N'1', N''), (N'130181', N'1301', N'00,13,1301', N'辛集市', N'13', N'河北省', N'1301', N'石家庄市', N'130181', N'辛集市', N'', N'', N'', N'', N'3', N'1', N''), (N'130183', N'1301', N'00,13,1301', N'晋州市', N'13', N'河北省', N'1301', N'石家庄市', N'130183', N'晋州市', N'', N'', N'', N'', N'3', N'1', N''), (N'130184', N'1301', N'00,13,1301', N'新乐市', N'13', N'河北省', N'1301', N'石家庄市', N'130184', N'新乐市', N'', N'', N'', N'', N'3', N'1', N''), (N'1302', N'13', N'00,13', N'唐山市', N'13', N'河北省', N'1302', N'唐山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130202', N'1302', N'00,13,1302', N'路南区', N'13', N'河北省', N'1302', N'唐山市', N'130202', N'路南区', N'', N'', N'', N'', N'3', N'1', N''), (N'130203', N'1302', N'00,13,1302', N'路北区', N'13', N'河北省', N'1302', N'唐山市', N'130203', N'路北区', N'', N'', N'', N'', N'3', N'1', N''), (N'130204', N'1302', N'00,13,1302', N'古冶区', N'13', N'河北省', N'1302', N'唐山市', N'130204', N'古冶区', N'', N'', N'', N'', N'3', N'1', N''), (N'130205', N'1302', N'00,13,1302', N'开平区', N'13', N'河北省', N'1302', N'唐山市', N'130205', N'开平区', N'', N'', N'', N'', N'3', N'1', N''), (N'130207', N'1302', N'00,13,1302', N'丰南区', N'13', N'河北省', N'1302', N'唐山市', N'130207', N'丰南区', N'', N'', N'', N'', N'3', N'1', N''), (N'130208', N'1302', N'00,13,1302', N'丰润区', N'13', N'河北省', N'1302', N'唐山市', N'130208', N'丰润区', N'', N'', N'', N'', N'3', N'1', N''), (N'130209', N'1302', N'00,13,1302', N'曹妃甸区', N'13', N'河北省', N'1302', N'唐山市', N'130209', N'曹妃甸区', N'', N'', N'', N'', N'3', N'1', N''), (N'130224', N'1302', N'00,13,1302', N'滦南县', N'13', N'河北省', N'1302', N'唐山市', N'130224', N'滦南县', N'', N'', N'', N'', N'3', N'1', N''), (N'130225', N'1302', N'00,13,1302', N'乐亭县', N'13', N'河北省', N'1302', N'唐山市', N'130225', N'乐亭县', N'', N'', N'', N'', N'3', N'1', N''), (N'130227', N'1302', N'00,13,1302', N'迁西县', N'13', N'河北省', N'1302', N'唐山市', N'130227', N'迁西县', N'', N'', N'', N'', N'3', N'1', N''), (N'130229', N'1302', N'00,13,1302', N'玉田县', N'13', N'河北省', N'1302', N'唐山市', N'130229', N'玉田县', N'', N'', N'', N'', N'3', N'1', N''), (N'130281', N'1302', N'00,13,1302', N'遵化市', N'13', N'河北省', N'1302', N'唐山市', N'130281', N'遵化市', N'', N'', N'', N'', N'3', N'1', N''), (N'130283', N'1302', N'00,13,1302', N'迁安市', N'13', N'河北省', N'1302', N'唐山市', N'130283', N'迁安市', N'', N'', N'', N'', N'3', N'1', N''), (N'130284', N'1302', N'00,13,1302', N'滦州市', N'13', N'河北省', N'1302', N'唐山市', N'130284', N'滦州市', N'', N'', N'', N'', N'3', N'1', N''), (N'1303', N'13', N'00,13', N'秦皇岛市', N'13', N'河北省', N'1303', N'秦皇岛市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130302', N'1303', N'00,13,1303', N'海港区', N'13', N'河北省', N'1303', N'秦皇岛市', N'130302', N'海港区', N'', N'', N'', N'', N'3', N'1', N''), (N'130303', N'1303', N'00,13,1303', N'山海关区', N'13', N'河北省', N'1303', N'秦皇岛市', N'130303', N'山海关区', N'', N'', N'', N'', N'3', N'1', N''), (N'130304', N'1303', N'00,13,1303', N'北戴河区', N'13', N'河北省', N'1303', N'秦皇岛市', N'130304', N'北戴河区', N'', N'', N'', N'', N'3', N'1', N''), (N'130306', N'1303', N'00,13,1303', N'抚宁区', N'13', N'河北省', N'1303', N'秦皇岛市', N'130306', N'抚宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'130321', N'1303', N'00,13,1303', N'青龙满族自治县', N'13', N'河北省', N'1303', N'秦皇岛市', N'130321', N'青龙满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'130322', N'1303', N'00,13,1303', N'昌黎县', N'13', N'河北省', N'1303', N'秦皇岛市', N'130322', N'昌黎县', N'', N'', N'', N'', N'3', N'1', N''), (N'130324', N'1303', N'00,13,1303', N'卢龙县', N'13', N'河北省', N'1303', N'秦皇岛市', N'130324', N'卢龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'1304', N'13', N'00,13', N'邯郸市', N'13', N'河北省', N'1304', N'邯郸市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130402', N'1304', N'00,13,1304', N'邯山区', N'13', N'河北省', N'1304', N'邯郸市', N'130402', N'邯山区', N'', N'', N'', N'', N'3', N'1', N''), (N'130403', N'1304', N'00,13,1304', N'丛台区', N'13', N'河北省', N'1304', N'邯郸市', N'130403', N'丛台区', N'', N'', N'', N'', N'3', N'1', N''), (N'130404', N'1304', N'00,13,1304', N'复兴区', N'13', N'河北省', N'1304', N'邯郸市', N'130404', N'复兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'130406', N'1304', N'00,13,1304', N'峰峰矿区', N'13', N'河北省', N'1304', N'邯郸市', N'130406', N'峰峰矿区', N'', N'', N'', N'', N'3', N'1', N''), (N'130407', N'1304', N'00,13,1304', N'肥乡区', N'13', N'河北省', N'1304', N'邯郸市', N'130407', N'肥乡区', N'', N'', N'', N'', N'3', N'1', N''), (N'130408', N'1304', N'00,13,1304', N'永年区', N'13', N'河北省', N'1304', N'邯郸市', N'130408', N'永年区', N'', N'', N'', N'', N'3', N'1', N''), (N'130423', N'1304', N'00,13,1304', N'临漳县', N'13', N'河北省', N'1304', N'邯郸市', N'130423', N'临漳县', N'', N'', N'', N'', N'3', N'1', N''), (N'130424', N'1304', N'00,13,1304', N'成安县', N'13', N'河北省', N'1304', N'邯郸市', N'130424', N'成安县', N'', N'', N'', N'', N'3', N'1', N''), (N'130425', N'1304', N'00,13,1304', N'大名县', N'13', N'河北省', N'1304', N'邯郸市', N'130425', N'大名县', N'', N'', N'', N'', N'3', N'1', N''), (N'130426', N'1304', N'00,13,1304', N'涉县', N'13', N'河北省', N'1304', N'邯郸市', N'130426', N'涉县', N'', N'', N'', N'', N'3', N'1', N''), (N'130427', N'1304', N'00,13,1304', N'磁县', N'13', N'河北省', N'1304', N'邯郸市', N'130427', N'磁县', N'', N'', N'', N'', N'3', N'1', N''), (N'130430', N'1304', N'00,13,1304', N'邱县', N'13', N'河北省', N'1304', N'邯郸市', N'130430', N'邱县', N'', N'', N'', N'', N'3', N'1', N''), (N'130431', N'1304', N'00,13,1304', N'鸡泽县', N'13', N'河北省', N'1304', N'邯郸市', N'130431', N'鸡泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'130432', N'1304', N'00,13,1304', N'广平县', N'13', N'河北省', N'1304', N'邯郸市', N'130432', N'广平县', N'', N'', N'', N'', N'3', N'1', N''), (N'130433', N'1304', N'00,13,1304', N'馆陶县', N'13', N'河北省', N'1304', N'邯郸市', N'130433', N'馆陶县', N'', N'', N'', N'', N'3', N'1', N''), (N'130434', N'1304', N'00,13,1304', N'魏县', N'13', N'河北省', N'1304', N'邯郸市', N'130434', N'魏县', N'', N'', N'', N'', N'3', N'1', N''), (N'130435', N'1304', N'00,13,1304', N'曲周县', N'13', N'河北省', N'1304', N'邯郸市', N'130435', N'曲周县', N'', N'', N'', N'', N'3', N'1', N''), (N'130481', N'1304', N'00,13,1304', N'武安市', N'13', N'河北省', N'1304', N'邯郸市', N'130481', N'武安市', N'', N'', N'', N'', N'3', N'1', N''), (N'1305', N'13', N'00,13', N'邢台市', N'13', N'河北省', N'1305', N'邢台市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130502', N'1305', N'00,13,1305', N'桥东区', N'13', N'河北省', N'1305', N'邢台市', N'130502', N'桥东区', N'', N'', N'', N'', N'3', N'1', N''), (N'130503', N'1305', N'00,13,1305', N'桥西区', N'13', N'河北省', N'1305', N'邢台市', N'130503', N'桥西区', N'', N'', N'', N'', N'3', N'1', N''), (N'130521', N'1305', N'00,13,1305', N'邢台县', N'13', N'河北省', N'1305', N'邢台市', N'130521', N'邢台县', N'', N'', N'', N'', N'3', N'1', N''), (N'130522', N'1305', N'00,13,1305', N'临城县', N'13', N'河北省', N'1305', N'邢台市', N'130522', N'临城县', N'', N'', N'', N'', N'3', N'1', N''), (N'130523', N'1305', N'00,13,1305', N'内丘县', N'13', N'河北省', N'1305', N'邢台市', N'130523', N'内丘县', N'', N'', N'', N'', N'3', N'1', N''), (N'130524', N'1305', N'00,13,1305', N'柏乡县', N'13', N'河北省', N'1305', N'邢台市', N'130524', N'柏乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'130525', N'1305', N'00,13,1305', N'隆尧县', N'13', N'河北省', N'1305', N'邢台市', N'130525', N'隆尧县', N'', N'', N'', N'', N'3', N'1', N''), (N'130526', N'1305', N'00,13,1305', N'任县', N'13', N'河北省', N'1305', N'邢台市', N'130526', N'任县', N'', N'', N'', N'', N'3', N'1', N''), (N'130527', N'1305', N'00,13,1305', N'南和县', N'13', N'河北省', N'1305', N'邢台市', N'130527', N'南和县', N'', N'', N'', N'', N'3', N'1', N''), (N'130528', N'1305', N'00,13,1305', N'宁晋县', N'13', N'河北省', N'1305', N'邢台市', N'130528', N'宁晋县', N'', N'', N'', N'', N'3', N'1', N''), (N'130529', N'1305', N'00,13,1305', N'巨鹿县', N'13', N'河北省', N'1305', N'邢台市', N'130529', N'巨鹿县', N'', N'', N'', N'', N'3', N'1', N''), (N'130530', N'1305', N'00,13,1305', N'新河县', N'13', N'河北省', N'1305', N'邢台市', N'130530', N'新河县', N'', N'', N'', N'', N'3', N'1', N''), (N'130531', N'1305', N'00,13,1305', N'广宗县', N'13', N'河北省', N'1305', N'邢台市', N'130531', N'广宗县', N'', N'', N'', N'', N'3', N'1', N''), (N'130532', N'1305', N'00,13,1305', N'平乡县', N'13', N'河北省', N'1305', N'邢台市', N'130532', N'平乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'130533', N'1305', N'00,13,1305', N'威县', N'13', N'河北省', N'1305', N'邢台市', N'130533', N'威县', N'', N'', N'', N'', N'3', N'1', N''), (N'130534', N'1305', N'00,13,1305', N'清河县', N'13', N'河北省', N'1305', N'邢台市', N'130534', N'清河县', N'', N'', N'', N'', N'3', N'1', N''), (N'130535', N'1305', N'00,13,1305', N'临西县', N'13', N'河北省', N'1305', N'邢台市', N'130535', N'临西县', N'', N'', N'', N'', N'3', N'1', N''), (N'130581', N'1305', N'00,13,1305', N'南宫市', N'13', N'河北省', N'1305', N'邢台市', N'130581', N'南宫市', N'', N'', N'', N'', N'3', N'1', N''), (N'130582', N'1305', N'00,13,1305', N'沙河市', N'13', N'河北省', N'1305', N'邢台市', N'130582', N'沙河市', N'', N'', N'', N'', N'3', N'1', N''), (N'1306', N'13', N'00,13', N'保定市', N'13', N'河北省', N'1306', N'保定市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130602', N'1306', N'00,13,1306', N'竞秀区', N'13', N'河北省', N'1306', N'保定市', N'130602', N'竞秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'130606', N'1306', N'00,13,1306', N'莲池区', N'13', N'河北省', N'1306', N'保定市', N'130606', N'莲池区', N'', N'', N'', N'', N'3', N'1', N''), (N'130607', N'1306', N'00,13,1306', N'满城区', N'13', N'河北省', N'1306', N'保定市', N'130607', N'满城区', N'', N'', N'', N'', N'3', N'1', N''), (N'130608', N'1306', N'00,13,1306', N'清苑区', N'13', N'河北省', N'1306', N'保定市', N'130608', N'清苑区', N'', N'', N'', N'', N'3', N'1', N''), (N'130609', N'1306', N'00,13,1306', N'徐水区', N'13', N'河北省', N'1306', N'保定市', N'130609', N'徐水区', N'', N'', N'', N'', N'3', N'1', N''), (N'130623', N'1306', N'00,13,1306', N'涞水县', N'13', N'河北省', N'1306', N'保定市', N'130623', N'涞水县', N'', N'', N'', N'', N'3', N'1', N''), (N'130624', N'1306', N'00,13,1306', N'阜平县', N'13', N'河北省', N'1306', N'保定市', N'130624', N'阜平县', N'', N'', N'', N'', N'3', N'1', N''), (N'130626', N'1306', N'00,13,1306', N'定兴县', N'13', N'河北省', N'1306', N'保定市', N'130626', N'定兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'130627', N'1306', N'00,13,1306', N'唐县', N'13', N'河北省', N'1306', N'保定市', N'130627', N'唐县', N'', N'', N'', N'', N'3', N'1', N''), (N'130628', N'1306', N'00,13,1306', N'高阳县', N'13', N'河北省', N'1306', N'保定市', N'130628', N'高阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'130629', N'1306', N'00,13,1306', N'容城县', N'13', N'河北省', N'1306', N'保定市', N'130629', N'容城县', N'', N'', N'', N'', N'3', N'1', N''), (N'130630', N'1306', N'00,13,1306', N'涞源县', N'13', N'河北省', N'1306', N'保定市', N'130630', N'涞源县', N'', N'', N'', N'', N'3', N'1', N''), (N'130631', N'1306', N'00,13,1306', N'望都县', N'13', N'河北省', N'1306', N'保定市', N'130631', N'望都县', N'', N'', N'', N'', N'3', N'1', N''), (N'130632', N'1306', N'00,13,1306', N'安新县', N'13', N'河北省', N'1306', N'保定市', N'130632', N'安新县', N'', N'', N'', N'', N'3', N'1', N''), (N'130633', N'1306', N'00,13,1306', N'易县', N'13', N'河北省', N'1306', N'保定市', N'130633', N'易县', N'', N'', N'', N'', N'3', N'1', N''), (N'130634', N'1306', N'00,13,1306', N'曲阳县', N'13', N'河北省', N'1306', N'保定市', N'130634', N'曲阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'130635', N'1306', N'00,13,1306', N'蠡县', N'13', N'河北省', N'1306', N'保定市', N'130635', N'蠡县', N'', N'', N'', N'', N'3', N'1', N''), (N'130636', N'1306', N'00,13,1306', N'顺平县', N'13', N'河北省', N'1306', N'保定市', N'130636', N'顺平县', N'', N'', N'', N'', N'3', N'1', N''), (N'130637', N'1306', N'00,13,1306', N'博野县', N'13', N'河北省', N'1306', N'保定市', N'130637', N'博野县', N'', N'', N'', N'', N'3', N'1', N''), (N'130638', N'1306', N'00,13,1306', N'雄县', N'13', N'河北省', N'1306', N'保定市', N'130638', N'雄县', N'', N'', N'', N'', N'3', N'1', N''), (N'130681', N'1306', N'00,13,1306', N'涿州市', N'13', N'河北省', N'1306', N'保定市', N'130681', N'涿州市', N'', N'', N'', N'', N'3', N'1', N''), (N'130682', N'1306', N'00,13,1306', N'定州市', N'13', N'河北省', N'1306', N'保定市', N'130682', N'定州市', N'', N'', N'', N'', N'3', N'1', N''), (N'130683', N'1306', N'00,13,1306', N'安国市', N'13', N'河北省', N'1306', N'保定市', N'130683', N'安国市', N'', N'', N'', N'', N'3', N'1', N''), (N'130684', N'1306', N'00,13,1306', N'高碑店市', N'13', N'河北省', N'1306', N'保定市', N'130684', N'高碑店市', N'', N'', N'', N'', N'3', N'1', N''), (N'1307', N'13', N'00,13', N'张家口市', N'13', N'河北省', N'1307', N'张家口市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130702', N'1307', N'00,13,1307', N'桥东区', N'13', N'河北省', N'1307', N'张家口市', N'130702', N'桥东区', N'', N'', N'', N'', N'3', N'1', N''), (N'130703', N'1307', N'00,13,1307', N'桥西区', N'13', N'河北省', N'1307', N'张家口市', N'130703', N'桥西区', N'', N'', N'', N'', N'3', N'1', N''), (N'130705', N'1307', N'00,13,1307', N'宣化区', N'13', N'河北省', N'1307', N'张家口市', N'130705', N'宣化区', N'', N'', N'', N'', N'3', N'1', N''), (N'130706', N'1307', N'00,13,1307', N'下花园区', N'13', N'河北省', N'1307', N'张家口市', N'130706', N'下花园区', N'', N'', N'', N'', N'3', N'1', N''), (N'130708', N'1307', N'00,13,1307', N'万全区', N'13', N'河北省', N'1307', N'张家口市', N'130708', N'万全区', N'', N'', N'', N'', N'3', N'1', N''), (N'130709', N'1307', N'00,13,1307', N'崇礼区', N'13', N'河北省', N'1307', N'张家口市', N'130709', N'崇礼区', N'', N'', N'', N'', N'3', N'1', N''), (N'130722', N'1307', N'00,13,1307', N'张北县', N'13', N'河北省', N'1307', N'张家口市', N'130722', N'张北县', N'', N'', N'', N'', N'3', N'1', N''), (N'130723', N'1307', N'00,13,1307', N'康保县', N'13', N'河北省', N'1307', N'张家口市', N'130723', N'康保县', N'', N'', N'', N'', N'3', N'1', N''), (N'130724', N'1307', N'00,13,1307', N'沽源县', N'13', N'河北省', N'1307', N'张家口市', N'130724', N'沽源县', N'', N'', N'', N'', N'3', N'1', N''), (N'130725', N'1307', N'00,13,1307', N'尚义县', N'13', N'河北省', N'1307', N'张家口市', N'130725', N'尚义县', N'', N'', N'', N'', N'3', N'1', N''), (N'130726', N'1307', N'00,13,1307', N'蔚县', N'13', N'河北省', N'1307', N'张家口市', N'130726', N'蔚县', N'', N'', N'', N'', N'3', N'1', N''), (N'130727', N'1307', N'00,13,1307', N'阳原县', N'13', N'河北省', N'1307', N'张家口市', N'130727', N'阳原县', N'', N'', N'', N'', N'3', N'1', N''), (N'130728', N'1307', N'00,13,1307', N'怀安县', N'13', N'河北省', N'1307', N'张家口市', N'130728', N'怀安县', N'', N'', N'', N'', N'3', N'1', N''), (N'130730', N'1307', N'00,13,1307', N'怀来县', N'13', N'河北省', N'1307', N'张家口市', N'130730', N'怀来县', N'', N'', N'', N'', N'3', N'1', N''), (N'130731', N'1307', N'00,13,1307', N'涿鹿县', N'13', N'河北省', N'1307', N'张家口市', N'130731', N'涿鹿县', N'', N'', N'', N'', N'3', N'1', N''), (N'130732', N'1307', N'00,13,1307', N'赤城县', N'13', N'河北省', N'1307', N'张家口市', N'130732', N'赤城县', N'', N'', N'', N'', N'3', N'1', N''), (N'1308', N'13', N'00,13', N'承德市', N'13', N'河北省', N'1308', N'承德市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130802', N'1308', N'00,13,1308', N'双桥区', N'13', N'河北省', N'1308', N'承德市', N'130802', N'双桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'130803', N'1308', N'00,13,1308', N'双滦区', N'13', N'河北省', N'1308', N'承德市', N'130803', N'双滦区', N'', N'', N'', N'', N'3', N'1', N''), (N'130804', N'1308', N'00,13,1308', N'鹰手营子矿区', N'13', N'河北省', N'1308', N'承德市', N'130804', N'鹰手营子矿区', N'', N'', N'', N'', N'3', N'1', N''), (N'130821', N'1308', N'00,13,1308', N'承德县', N'13', N'河北省', N'1308', N'承德市', N'130821', N'承德县', N'', N'', N'', N'', N'3', N'1', N''), (N'130822', N'1308', N'00,13,1308', N'兴隆县', N'13', N'河北省', N'1308', N'承德市', N'130822', N'兴隆县', N'', N'', N'', N'', N'3', N'1', N''), (N'130824', N'1308', N'00,13,1308', N'滦平县', N'13', N'河北省', N'1308', N'承德市', N'130824', N'滦平县', N'', N'', N'', N'', N'3', N'1', N''), (N'130825', N'1308', N'00,13,1308', N'隆化县', N'13', N'河北省', N'1308', N'承德市', N'130825', N'隆化县', N'', N'', N'', N'', N'3', N'1', N''), (N'130826', N'1308', N'00,13,1308', N'丰宁满族自治县', N'13', N'河北省', N'1308', N'承德市', N'130826', N'丰宁满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'130827', N'1308', N'00,13,1308', N'宽城满族自治县', N'13', N'河北省', N'1308', N'承德市', N'130827', N'宽城满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'130828', N'1308', N'00,13,1308', N'围场满族蒙古族自治县', N'13', N'河北省', N'1308', N'承德市', N'130828', N'围场满族蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'130881', N'1308', N'00,13,1308', N'平泉市', N'13', N'河北省', N'1308', N'承德市', N'130881', N'平泉市', N'', N'', N'', N'', N'3', N'1', N''), (N'1309', N'13', N'00,13', N'沧州市', N'13', N'河北省', N'1309', N'沧州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130902', N'1309', N'00,13,1309', N'新华区', N'13', N'河北省', N'1309', N'沧州市', N'130902', N'新华区', N'', N'', N'', N'', N'3', N'1', N''), (N'130903', N'1309', N'00,13,1309', N'运河区', N'13', N'河北省', N'1309', N'沧州市', N'130903', N'运河区', N'', N'', N'', N'', N'3', N'1', N''), (N'130921', N'1309', N'00,13,1309', N'沧县', N'13', N'河北省', N'1309', N'沧州市', N'130921', N'沧县', N'', N'', N'', N'', N'3', N'1', N''), (N'130922', N'1309', N'00,13,1309', N'青县', N'13', N'河北省', N'1309', N'沧州市', N'130922', N'青县', N'', N'', N'', N'', N'3', N'1', N''), (N'130923', N'1309', N'00,13,1309', N'东光县', N'13', N'河北省', N'1309', N'沧州市', N'130923', N'东光县', N'', N'', N'', N'', N'3', N'1', N''), (N'130924', N'1309', N'00,13,1309', N'海兴县', N'13', N'河北省', N'1309', N'沧州市', N'130924', N'海兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'130925', N'1309', N'00,13,1309', N'盐山县', N'13', N'河北省', N'1309', N'沧州市', N'130925', N'盐山县', N'', N'', N'', N'', N'3', N'1', N''), (N'130926', N'1309', N'00,13,1309', N'肃宁县', N'13', N'河北省', N'1309', N'沧州市', N'130926', N'肃宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'130927', N'1309', N'00,13,1309', N'南皮县', N'13', N'河北省', N'1309', N'沧州市', N'130927', N'南皮县', N'', N'', N'', N'', N'3', N'1', N''), (N'130928', N'1309', N'00,13,1309', N'吴桥县', N'13', N'河北省', N'1309', N'沧州市', N'130928', N'吴桥县', N'', N'', N'', N'', N'3', N'1', N''), (N'130929', N'1309', N'00,13,1309', N'献县', N'13', N'河北省', N'1309', N'沧州市', N'130929', N'献县', N'', N'', N'', N'', N'3', N'1', N''), (N'130930', N'1309', N'00,13,1309', N'孟村回族自治县', N'13', N'河北省', N'1309', N'沧州市', N'130930', N'孟村回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'130981', N'1309', N'00,13,1309', N'泊头市', N'13', N'河北省', N'1309', N'沧州市', N'130981', N'泊头市', N'', N'', N'', N'', N'3', N'1', N''), (N'130982', N'1309', N'00,13,1309', N'任丘市', N'13', N'河北省', N'1309', N'沧州市', N'130982', N'任丘市', N'', N'', N'', N'', N'3', N'1', N''), (N'130983', N'1309', N'00,13,1309', N'黄骅市', N'13', N'河北省', N'1309', N'沧州市', N'130983', N'黄骅市', N'', N'', N'', N'', N'3', N'1', N''), (N'130984', N'1309', N'00,13,1309', N'河间市', N'13', N'河北省', N'1309', N'沧州市', N'130984', N'河间市', N'', N'', N'', N'', N'3', N'1', N''), (N'1310', N'13', N'00,13', N'廊坊市', N'13', N'河北省', N'1310', N'廊坊市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'131002', N'1310', N'00,13,1310', N'安次区', N'13', N'河北省', N'1310', N'廊坊市', N'131002', N'安次区', N'', N'', N'', N'', N'3', N'1', N''), (N'131003', N'1310', N'00,13,1310', N'广阳区', N'13', N'河北省', N'1310', N'廊坊市', N'131003', N'广阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'131022', N'1310', N'00,13,1310', N'固安县', N'13', N'河北省', N'1310', N'廊坊市', N'131022', N'固安县', N'', N'', N'', N'', N'3', N'1', N''), (N'131023', N'1310', N'00,13,1310', N'永清县', N'13', N'河北省', N'1310', N'廊坊市', N'131023', N'永清县', N'', N'', N'', N'', N'3', N'1', N''), (N'131024', N'1310', N'00,13,1310', N'香河县', N'13', N'河北省', N'1310', N'廊坊市', N'131024', N'香河县', N'', N'', N'', N'', N'3', N'1', N''), (N'131025', N'1310', N'00,13,1310', N'大城县', N'13', N'河北省', N'1310', N'廊坊市', N'131025', N'大城县', N'', N'', N'', N'', N'3', N'1', N''), (N'131026', N'1310', N'00,13,1310', N'文安县', N'13', N'河北省', N'1310', N'廊坊市', N'131026', N'文安县', N'', N'', N'', N'', N'3', N'1', N''), (N'131028', N'1310', N'00,13,1310', N'大厂回族自治县', N'13', N'河北省', N'1310', N'廊坊市', N'131028', N'大厂回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'131081', N'1310', N'00,13,1310', N'霸州市', N'13', N'河北省', N'1310', N'廊坊市', N'131081', N'霸州市', N'', N'', N'', N'', N'3', N'1', N''), (N'131082', N'1310', N'00,13,1310', N'三河市', N'13', N'河北省', N'1310', N'廊坊市', N'131082', N'三河市', N'', N'', N'', N'', N'3', N'1', N''), (N'1311', N'13', N'00,13', N'衡水市', N'13', N'河北省', N'1311', N'衡水市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'131102', N'1311', N'00,13,1311', N'桃城区', N'13', N'河北省', N'1311', N'衡水市', N'131102', N'桃城区', N'', N'', N'', N'', N'3', N'1', N''), (N'131103', N'1311', N'00,13,1311', N'冀州区', N'13', N'河北省', N'1311', N'衡水市', N'131103', N'冀州区', N'', N'', N'', N'', N'3', N'1', N''), (N'131121', N'1311', N'00,13,1311', N'枣强县', N'13', N'河北省', N'1311', N'衡水市', N'131121', N'枣强县', N'', N'', N'', N'', N'3', N'1', N''), (N'131122', N'1311', N'00,13,1311', N'武邑县', N'13', N'河北省', N'1311', N'衡水市', N'131122', N'武邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'131123', N'1311', N'00,13,1311', N'武强县', N'13', N'河北省', N'1311', N'衡水市', N'131123', N'武强县', N'', N'', N'', N'', N'3', N'1', N''), (N'131124', N'1311', N'00,13,1311', N'饶阳县', N'13', N'河北省', N'1311', N'衡水市', N'131124', N'饶阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'131125', N'1311', N'00,13,1311', N'安平县', N'13', N'河北省', N'1311', N'衡水市', N'131125', N'安平县', N'', N'', N'', N'', N'3', N'1', N''), (N'131126', N'1311', N'00,13,1311', N'故城县', N'13', N'河北省', N'1311', N'衡水市', N'131126', N'故城县', N'', N'', N'', N'', N'3', N'1', N''), (N'131127', N'1311', N'00,13,1311', N'景县', N'13', N'河北省', N'1311', N'衡水市', N'131127', N'景县', N'', N'', N'', N'', N'3', N'1', N''), (N'131128', N'1311', N'00,13,1311', N'阜城县', N'13', N'河北省', N'1311', N'衡水市', N'131128', N'阜城县', N'', N'', N'', N'', N'3', N'1', N''), (N'131182', N'1311', N'00,13,1311', N'深州市', N'13', N'河北省', N'1311', N'衡水市', N'131182', N'深州市', N'', N'', N'', N'', N'3', N'1', N''), (N'14', N'00', N'00', N'山西省', N'14', N'山西省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'1401', N'14', N'00,14', N'太原市', N'14', N'山西省', N'1401', N'太原市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140105', N'1401', N'00,14,1401', N'小店区', N'14', N'山西省', N'1401', N'太原市', N'140105', N'小店区', N'', N'', N'', N'', N'3', N'1', N''), (N'140106', N'1401', N'00,14,1401', N'迎泽区', N'14', N'山西省', N'1401', N'太原市', N'140106', N'迎泽区', N'', N'', N'', N'', N'3', N'1', N''), (N'140107', N'1401', N'00,14,1401', N'杏花岭区', N'14', N'山西省', N'1401', N'太原市', N'140107', N'杏花岭区', N'', N'', N'', N'', N'3', N'1', N''), (N'140108', N'1401', N'00,14,1401', N'尖草坪区', N'14', N'山西省', N'1401', N'太原市', N'140108', N'尖草坪区', N'', N'', N'', N'', N'3', N'1', N''), (N'140109', N'1401', N'00,14,1401', N'万柏林区', N'14', N'山西省', N'1401', N'太原市', N'140109', N'万柏林区', N'', N'', N'', N'', N'3', N'1', N''), (N'140110', N'1401', N'00,14,1401', N'晋源区', N'14', N'山西省', N'1401', N'太原市', N'140110', N'晋源区', N'', N'', N'', N'', N'3', N'1', N''), (N'140121', N'1401', N'00,14,1401', N'清徐县', N'14', N'山西省', N'1401', N'太原市', N'140121', N'清徐县', N'', N'', N'', N'', N'3', N'1', N''), (N'140122', N'1401', N'00,14,1401', N'阳曲县', N'14', N'山西省', N'1401', N'太原市', N'140122', N'阳曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'140123', N'1401', N'00,14,1401', N'娄烦县', N'14', N'山西省', N'1401', N'太原市', N'140123', N'娄烦县', N'', N'', N'', N'', N'3', N'1', N''), (N'140181', N'1401', N'00,14,1401', N'古交市', N'14', N'山西省', N'1401', N'太原市', N'140181', N'古交市', N'', N'', N'', N'', N'3', N'1', N''), (N'1402', N'14', N'00,14', N'大同市', N'14', N'山西省', N'1402', N'大同市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140212', N'1402', N'00,14,1402', N'新荣区', N'14', N'山西省', N'1402', N'大同市', N'140212', N'新荣区', N'', N'', N'', N'', N'3', N'1', N''), (N'140213', N'1402', N'00,14,1402', N'平城区', N'14', N'山西省', N'1402', N'大同市', N'140213', N'平城区', N'', N'', N'', N'', N'3', N'1', N''), (N'140214', N'1402', N'00,14,1402', N'云冈区', N'14', N'山西省', N'1402', N'大同市', N'140214', N'云冈区', N'', N'', N'', N'', N'3', N'1', N''), (N'140215', N'1402', N'00,14,1402', N'云州区', N'14', N'山西省', N'1402', N'大同市', N'140215', N'云州区', N'', N'', N'', N'', N'3', N'1', N''), (N'140221', N'1402', N'00,14,1402', N'阳高县', N'14', N'山西省', N'1402', N'大同市', N'140221', N'阳高县', N'', N'', N'', N'', N'3', N'1', N''), (N'140222', N'1402', N'00,14,1402', N'天镇县', N'14', N'山西省', N'1402', N'大同市', N'140222', N'天镇县', N'', N'', N'', N'', N'3', N'1', N''), (N'140223', N'1402', N'00,14,1402', N'广灵县', N'14', N'山西省', N'1402', N'大同市', N'140223', N'广灵县', N'', N'', N'', N'', N'3', N'1', N''), (N'140224', N'1402', N'00,14,1402', N'灵丘县', N'14', N'山西省', N'1402', N'大同市', N'140224', N'灵丘县', N'', N'', N'', N'', N'3', N'1', N''), (N'140225', N'1402', N'00,14,1402', N'浑源县', N'14', N'山西省', N'1402', N'大同市', N'140225', N'浑源县', N'', N'', N'', N'', N'3', N'1', N''), (N'140226', N'1402', N'00,14,1402', N'左云县', N'14', N'山西省', N'1402', N'大同市', N'140226', N'左云县', N'', N'', N'', N'', N'3', N'1', N''), (N'1403', N'14', N'00,14', N'阳泉市', N'14', N'山西省', N'1403', N'阳泉市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140302', N'1403', N'00,14,1403', N'城区', N'14', N'山西省', N'1403', N'阳泉市', N'140302', N'城区', N'', N'', N'', N'', N'3', N'1', N''), (N'140303', N'1403', N'00,14,1403', N'矿区', N'14', N'山西省', N'1403', N'阳泉市', N'140303', N'矿区', N'', N'', N'', N'', N'3', N'1', N''), (N'140311', N'1403', N'00,14,1403', N'郊区', N'14', N'山西省', N'1403', N'阳泉市', N'140311', N'郊区', N'', N'', N'', N'', N'3', N'1', N''), (N'140321', N'1403', N'00,14,1403', N'平定县', N'14', N'山西省', N'1403', N'阳泉市', N'140321', N'平定县', N'', N'', N'', N'', N'3', N'1', N''), (N'140322', N'1403', N'00,14,1403', N'盂县', N'14', N'山西省', N'1403', N'阳泉市', N'140322', N'盂县', N'', N'', N'', N'', N'3', N'1', N''), (N'1404', N'14', N'00,14', N'长治市', N'14', N'山西省', N'1404', N'长治市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140403', N'1404', N'00,14,1404', N'潞州区', N'14', N'山西省', N'1404', N'长治市', N'140403', N'潞州区', N'', N'', N'', N'', N'3', N'1', N''), (N'140404', N'1404', N'00,14,1404', N'上党区', N'14', N'山西省', N'1404', N'长治市', N'140404', N'上党区', N'', N'', N'', N'', N'3', N'1', N''), (N'140405', N'1404', N'00,14,1404', N'屯留区', N'14', N'山西省', N'1404', N'长治市', N'140405', N'屯留区', N'', N'', N'', N'', N'3', N'1', N''), (N'140406', N'1404', N'00,14,1404', N'潞城区', N'14', N'山西省', N'1404', N'长治市', N'140406', N'潞城区', N'', N'', N'', N'', N'3', N'1', N''), (N'140423', N'1404', N'00,14,1404', N'襄垣县', N'14', N'山西省', N'1404', N'长治市', N'140423', N'襄垣县', N'', N'', N'', N'', N'3', N'1', N''), (N'140425', N'1404', N'00,14,1404', N'平顺县', N'14', N'山西省', N'1404', N'长治市', N'140425', N'平顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'140426', N'1404', N'00,14,1404', N'黎城县', N'14', N'山西省', N'1404', N'长治市', N'140426', N'黎城县', N'', N'', N'', N'', N'3', N'1', N''), (N'140427', N'1404', N'00,14,1404', N'壶关县', N'14', N'山西省', N'1404', N'长治市', N'140427', N'壶关县', N'', N'', N'', N'', N'3', N'1', N''), (N'140428', N'1404', N'00,14,1404', N'长子县', N'14', N'山西省', N'1404', N'长治市', N'140428', N'长子县', N'', N'', N'', N'', N'3', N'1', N''), (N'140429', N'1404', N'00,14,1404', N'武乡县', N'14', N'山西省', N'1404', N'长治市', N'140429', N'武乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'140430', N'1404', N'00,14,1404', N'沁县', N'14', N'山西省', N'1404', N'长治市', N'140430', N'沁县', N'', N'', N'', N'', N'3', N'1', N''), (N'140431', N'1404', N'00,14,1404', N'沁源县', N'14', N'山西省', N'1404', N'长治市', N'140431', N'沁源县', N'', N'', N'', N'', N'3', N'1', N''), (N'1405', N'14', N'00,14', N'晋城市', N'14', N'山西省', N'1405', N'晋城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140502', N'1405', N'00,14,1405', N'城区', N'14', N'山西省', N'1405', N'晋城市', N'140502', N'城区', N'', N'', N'', N'', N'3', N'1', N''), (N'140521', N'1405', N'00,14,1405', N'沁水县', N'14', N'山西省', N'1405', N'晋城市', N'140521', N'沁水县', N'', N'', N'', N'', N'3', N'1', N''), (N'140522', N'1405', N'00,14,1405', N'阳城县', N'14', N'山西省', N'1405', N'晋城市', N'140522', N'阳城县', N'', N'', N'', N'', N'3', N'1', N''), (N'140524', N'1405', N'00,14,1405', N'陵川县', N'14', N'山西省', N'1405', N'晋城市', N'140524', N'陵川县', N'', N'', N'', N'', N'3', N'1', N''), (N'140525', N'1405', N'00,14,1405', N'泽州县', N'14', N'山西省', N'1405', N'晋城市', N'140525', N'泽州县', N'', N'', N'', N'', N'3', N'1', N''), (N'140581', N'1405', N'00,14,1405', N'高平市', N'14', N'山西省', N'1405', N'晋城市', N'140581', N'高平市', N'', N'', N'', N'', N'3', N'1', N''), (N'1406', N'14', N'00,14', N'朔州市', N'14', N'山西省', N'1406', N'朔州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140602', N'1406', N'00,14,1406', N'朔城区', N'14', N'山西省', N'1406', N'朔州市', N'140602', N'朔城区', N'', N'', N'', N'', N'3', N'1', N''), (N'140603', N'1406', N'00,14,1406', N'平鲁区', N'14', N'山西省', N'1406', N'朔州市', N'140603', N'平鲁区', N'', N'', N'', N'', N'3', N'1', N''), (N'140621', N'1406', N'00,14,1406', N'山阴县', N'14', N'山西省', N'1406', N'朔州市', N'140621', N'山阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'140622', N'1406', N'00,14,1406', N'应县', N'14', N'山西省', N'1406', N'朔州市', N'140622', N'应县', N'', N'', N'', N'', N'3', N'1', N''), (N'140623', N'1406', N'00,14,1406', N'右玉县', N'14', N'山西省', N'1406', N'朔州市', N'140623', N'右玉县', N'', N'', N'', N'', N'3', N'1', N''), (N'140681', N'1406', N'00,14,1406', N'怀仁市', N'14', N'山西省', N'1406', N'朔州市', N'140681', N'怀仁市', N'', N'', N'', N'', N'3', N'1', N''), (N'1407', N'14', N'00,14', N'晋中市', N'14', N'山西省', N'1407', N'晋中市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140702', N'1407', N'00,14,1407', N'榆次区', N'14', N'山西省', N'1407', N'晋中市', N'140702', N'榆次区', N'', N'', N'', N'', N'3', N'1', N''), (N'140703', N'1407', N'00,14,1407', N'太谷区', N'14', N'山西省', N'1407', N'晋中市', N'140703', N'太谷区', N'', N'', N'', N'', N'3', N'1', N''), (N'140721', N'1407', N'00,14,1407', N'榆社县', N'14', N'山西省', N'1407', N'晋中市', N'140721', N'榆社县', N'', N'', N'', N'', N'3', N'1', N''), (N'140722', N'1407', N'00,14,1407', N'左权县', N'14', N'山西省', N'1407', N'晋中市', N'140722', N'左权县', N'', N'', N'', N'', N'3', N'1', N''), (N'140723', N'1407', N'00,14,1407', N'和顺县', N'14', N'山西省', N'1407', N'晋中市', N'140723', N'和顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'140724', N'1407', N'00,14,1407', N'昔阳县', N'14', N'山西省', N'1407', N'晋中市', N'140724', N'昔阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'140725', N'1407', N'00,14,1407', N'寿阳县', N'14', N'山西省', N'1407', N'晋中市', N'140725', N'寿阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'140727', N'1407', N'00,14,1407', N'祁县', N'14', N'山西省', N'1407', N'晋中市', N'140727', N'祁县', N'', N'', N'', N'', N'3', N'1', N''), (N'140728', N'1407', N'00,14,1407', N'平遥县', N'14', N'山西省', N'1407', N'晋中市', N'140728', N'平遥县', N'', N'', N'', N'', N'3', N'1', N''), (N'140729', N'1407', N'00,14,1407', N'灵石县', N'14', N'山西省', N'1407', N'晋中市', N'140729', N'灵石县', N'', N'', N'', N'', N'3', N'1', N''), (N'140781', N'1407', N'00,14,1407', N'介休市', N'14', N'山西省', N'1407', N'晋中市', N'140781', N'介休市', N'', N'', N'', N'', N'3', N'1', N''), (N'1408', N'14', N'00,14', N'运城市', N'14', N'山西省', N'1408', N'运城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140802', N'1408', N'00,14,1408', N'盐湖区', N'14', N'山西省', N'1408', N'运城市', N'140802', N'盐湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'140821', N'1408', N'00,14,1408', N'临猗县', N'14', N'山西省', N'1408', N'运城市', N'140821', N'临猗县', N'', N'', N'', N'', N'3', N'1', N''), (N'140822', N'1408', N'00,14,1408', N'万荣县', N'14', N'山西省', N'1408', N'运城市', N'140822', N'万荣县', N'', N'', N'', N'', N'3', N'1', N''), (N'140823', N'1408', N'00,14,1408', N'闻喜县', N'14', N'山西省', N'1408', N'运城市', N'140823', N'闻喜县', N'', N'', N'', N'', N'3', N'1', N''), (N'140824', N'1408', N'00,14,1408', N'稷山县', N'14', N'山西省', N'1408', N'运城市', N'140824', N'稷山县', N'', N'', N'', N'', N'3', N'1', N''), (N'140825', N'1408', N'00,14,1408', N'新绛县', N'14', N'山西省', N'1408', N'运城市', N'140825', N'新绛县', N'', N'', N'', N'', N'3', N'1', N''), (N'140826', N'1408', N'00,14,1408', N'绛县', N'14', N'山西省', N'1408', N'运城市', N'140826', N'绛县', N'', N'', N'', N'', N'3', N'1', N''), (N'140827', N'1408', N'00,14,1408', N'垣曲县', N'14', N'山西省', N'1408', N'运城市', N'140827', N'垣曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'140828', N'1408', N'00,14,1408', N'夏县', N'14', N'山西省', N'1408', N'运城市', N'140828', N'夏县', N'', N'', N'', N'', N'3', N'1', N''), (N'140829', N'1408', N'00,14,1408', N'平陆县', N'14', N'山西省', N'1408', N'运城市', N'140829', N'平陆县', N'', N'', N'', N'', N'3', N'1', N''), (N'140830', N'1408', N'00,14,1408', N'芮城县', N'14', N'山西省', N'1408', N'运城市', N'140830', N'芮城县', N'', N'', N'', N'', N'3', N'1', N''), (N'140881', N'1408', N'00,14,1408', N'永济市', N'14', N'山西省', N'1408', N'运城市', N'140881', N'永济市', N'', N'', N'', N'', N'3', N'1', N''), (N'140882', N'1408', N'00,14,1408', N'河津市', N'14', N'山西省', N'1408', N'运城市', N'140882', N'河津市', N'', N'', N'', N'', N'3', N'1', N''), (N'1409', N'14', N'00,14', N'忻州市', N'14', N'山西省', N'1409', N'忻州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140902', N'1409', N'00,14,1409', N'忻府区', N'14', N'山西省', N'1409', N'忻州市', N'140902', N'忻府区', N'', N'', N'', N'', N'3', N'1', N''), (N'140921', N'1409', N'00,14,1409', N'定襄县', N'14', N'山西省', N'1409', N'忻州市', N'140921', N'定襄县', N'', N'', N'', N'', N'3', N'1', N''), (N'140922', N'1409', N'00,14,1409', N'五台县', N'14', N'山西省', N'1409', N'忻州市', N'140922', N'五台县', N'', N'', N'', N'', N'3', N'1', N''), (N'140923', N'1409', N'00,14,1409', N'代县', N'14', N'山西省', N'1409', N'忻州市', N'140923', N'代县', N'', N'', N'', N'', N'3', N'1', N''), (N'140924', N'1409', N'00,14,1409', N'繁峙县', N'14', N'山西省', N'1409', N'忻州市', N'140924', N'繁峙县', N'', N'', N'', N'', N'3', N'1', N''), (N'140925', N'1409', N'00,14,1409', N'宁武县', N'14', N'山西省', N'1409', N'忻州市', N'140925', N'宁武县', N'', N'', N'', N'', N'3', N'1', N''), (N'140926', N'1409', N'00,14,1409', N'静乐县', N'14', N'山西省', N'1409', N'忻州市', N'140926', N'静乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'140927', N'1409', N'00,14,1409', N'神池县', N'14', N'山西省', N'1409', N'忻州市', N'140927', N'神池县', N'', N'', N'', N'', N'3', N'1', N''), (N'140928', N'1409', N'00,14,1409', N'五寨县', N'14', N'山西省', N'1409', N'忻州市', N'140928', N'五寨县', N'', N'', N'', N'', N'3', N'1', N''), (N'140929', N'1409', N'00,14,1409', N'岢岚县', N'14', N'山西省', N'1409', N'忻州市', N'140929', N'岢岚县', N'', N'', N'', N'', N'3', N'1', N''), (N'140930', N'1409', N'00,14,1409', N'河曲县', N'14', N'山西省', N'1409', N'忻州市', N'140930', N'河曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'140931', N'1409', N'00,14,1409', N'保德县', N'14', N'山西省', N'1409', N'忻州市', N'140931', N'保德县', N'', N'', N'', N'', N'3', N'1', N''), (N'140932', N'1409', N'00,14,1409', N'偏关县', N'14', N'山西省', N'1409', N'忻州市', N'140932', N'偏关县', N'', N'', N'', N'', N'3', N'1', N''), (N'140981', N'1409', N'00,14,1409', N'原平市', N'14', N'山西省', N'1409', N'忻州市', N'140981', N'原平市', N'', N'', N'', N'', N'3', N'1', N''), (N'1410', N'14', N'00,14', N'临汾市', N'14', N'山西省', N'1410', N'临汾市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'141002', N'1410', N'00,14,1410', N'尧都区', N'14', N'山西省', N'1410', N'临汾市', N'141002', N'尧都区', N'', N'', N'', N'', N'3', N'1', N''), (N'141021', N'1410', N'00,14,1410', N'曲沃县', N'14', N'山西省', N'1410', N'临汾市', N'141021', N'曲沃县', N'', N'', N'', N'', N'3', N'1', N''), (N'141022', N'1410', N'00,14,1410', N'翼城县', N'14', N'山西省', N'1410', N'临汾市', N'141022', N'翼城县', N'', N'', N'', N'', N'3', N'1', N''), (N'141023', N'1410', N'00,14,1410', N'襄汾县', N'14', N'山西省', N'1410', N'临汾市', N'141023', N'襄汾县', N'', N'', N'', N'', N'3', N'1', N''), (N'141024', N'1410', N'00,14,1410', N'洪洞县', N'14', N'山西省', N'1410', N'临汾市', N'141024', N'洪洞县', N'', N'', N'', N'', N'3', N'1', N''), (N'141025', N'1410', N'00,14,1410', N'古县', N'14', N'山西省', N'1410', N'临汾市', N'141025', N'古县', N'', N'', N'', N'', N'3', N'1', N''), (N'141026', N'1410', N'00,14,1410', N'安泽县', N'14', N'山西省', N'1410', N'临汾市', N'141026', N'安泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'141027', N'1410', N'00,14,1410', N'浮山县', N'14', N'山西省', N'1410', N'临汾市', N'141027', N'浮山县', N'', N'', N'', N'', N'3', N'1', N''), (N'141028', N'1410', N'00,14,1410', N'吉县', N'14', N'山西省', N'1410', N'临汾市', N'141028', N'吉县', N'', N'', N'', N'', N'3', N'1', N''), (N'141029', N'1410', N'00,14,1410', N'乡宁县', N'14', N'山西省', N'1410', N'临汾市', N'141029', N'乡宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'141030', N'1410', N'00,14,1410', N'大宁县', N'14', N'山西省', N'1410', N'临汾市', N'141030', N'大宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'141031', N'1410', N'00,14,1410', N'隰县', N'14', N'山西省', N'1410', N'临汾市', N'141031', N'隰县', N'', N'', N'', N'', N'3', N'1', N''), (N'141032', N'1410', N'00,14,1410', N'永和县', N'14', N'山西省', N'1410', N'临汾市', N'141032', N'永和县', N'', N'', N'', N'', N'3', N'1', N''), (N'141033', N'1410', N'00,14,1410', N'蒲县', N'14', N'山西省', N'1410', N'临汾市', N'141033', N'蒲县', N'', N'', N'', N'', N'3', N'1', N''), (N'141034', N'1410', N'00,14,1410', N'汾西县', N'14', N'山西省', N'1410', N'临汾市', N'141034', N'汾西县', N'', N'', N'', N'', N'3', N'1', N''), (N'141081', N'1410', N'00,14,1410', N'侯马市', N'14', N'山西省', N'1410', N'临汾市', N'141081', N'侯马市', N'', N'', N'', N'', N'3', N'1', N''), (N'141082', N'1410', N'00,14,1410', N'霍州市', N'14', N'山西省', N'1410', N'临汾市', N'141082', N'霍州市', N'', N'', N'', N'', N'3', N'1', N''), (N'1411', N'14', N'00,14', N'吕梁市', N'14', N'山西省', N'1411', N'吕梁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'141102', N'1411', N'00,14,1411', N'离石区', N'14', N'山西省', N'1411', N'吕梁市', N'141102', N'离石区', N'', N'', N'', N'', N'3', N'1', N''), (N'141121', N'1411', N'00,14,1411', N'文水县', N'14', N'山西省', N'1411', N'吕梁市', N'141121', N'文水县', N'', N'', N'', N'', N'3', N'1', N''), (N'141122', N'1411', N'00,14,1411', N'交城县', N'14', N'山西省', N'1411', N'吕梁市', N'141122', N'交城县', N'', N'', N'', N'', N'3', N'1', N''), (N'141123', N'1411', N'00,14,1411', N'兴县', N'14', N'山西省', N'1411', N'吕梁市', N'141123', N'兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'141124', N'1411', N'00,14,1411', N'临县', N'14', N'山西省', N'1411', N'吕梁市', N'141124', N'临县', N'', N'', N'', N'', N'3', N'1', N''), (N'141125', N'1411', N'00,14,1411', N'柳林县', N'14', N'山西省', N'1411', N'吕梁市', N'141125', N'柳林县', N'', N'', N'', N'', N'3', N'1', N''), (N'141126', N'1411', N'00,14,1411', N'石楼县', N'14', N'山西省', N'1411', N'吕梁市', N'141126', N'石楼县', N'', N'', N'', N'', N'3', N'1', N''), (N'141127', N'1411', N'00,14,1411', N'岚县', N'14', N'山西省', N'1411', N'吕梁市', N'141127', N'岚县', N'', N'', N'', N'', N'3', N'1', N''), (N'141128', N'1411', N'00,14,1411', N'方山县', N'14', N'山西省', N'1411', N'吕梁市', N'141128', N'方山县', N'', N'', N'', N'', N'3', N'1', N''), (N'141129', N'1411', N'00,14,1411', N'中阳县', N'14', N'山西省', N'1411', N'吕梁市', N'141129', N'中阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'141130', N'1411', N'00,14,1411', N'交口县', N'14', N'山西省', N'1411', N'吕梁市', N'141130', N'交口县', N'', N'', N'', N'', N'3', N'1', N''), (N'141181', N'1411', N'00,14,1411', N'孝义市', N'14', N'山西省', N'1411', N'吕梁市', N'141181', N'孝义市', N'', N'', N'', N'', N'3', N'1', N''), (N'141182', N'1411', N'00,14,1411', N'汾阳市', N'14', N'山西省', N'1411', N'吕梁市', N'141182', N'汾阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'15', N'00', N'00', N'内蒙古自治区', N'15', N'内蒙古自治区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'1501', N'15', N'00,15', N'呼和浩特市', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150102', N'1501', N'00,15,1501', N'新城区', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150102', N'新城区', N'', N'', N'', N'', N'3', N'1', N''), (N'150103', N'1501', N'00,15,1501', N'回民区', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150103', N'回民区', N'', N'', N'', N'', N'3', N'1', N''), (N'150104', N'1501', N'00,15,1501', N'玉泉区', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150104', N'玉泉区', N'', N'', N'', N'', N'3', N'1', N''), (N'150105', N'1501', N'00,15,1501', N'赛罕区', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150105', N'赛罕区', N'', N'', N'', N'', N'3', N'1', N''), (N'150121', N'1501', N'00,15,1501', N'土默特左旗', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150121', N'土默特左旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150122', N'1501', N'00,15,1501', N'托克托县', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150122', N'托克托县', N'', N'', N'', N'', N'3', N'1', N''), (N'150123', N'1501', N'00,15,1501', N'和林格尔县', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150123', N'和林格尔县', N'', N'', N'', N'', N'3', N'1', N''), (N'150124', N'1501', N'00,15,1501', N'清水河县', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150124', N'清水河县', N'', N'', N'', N'', N'3', N'1', N''), (N'150125', N'1501', N'00,15,1501', N'武川县', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150125', N'武川县', N'', N'', N'', N'', N'3', N'1', N''), (N'1502', N'15', N'00,15', N'包头市', N'15', N'内蒙古自治区', N'1502', N'包头市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150202', N'1502', N'00,15,1502', N'东河区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150202', N'东河区', N'', N'', N'', N'', N'3', N'1', N''), (N'150203', N'1502', N'00,15,1502', N'昆都仑区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150203', N'昆都仑区', N'', N'', N'', N'', N'3', N'1', N''), (N'150204', N'1502', N'00,15,1502', N'青山区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150204', N'青山区', N'', N'', N'', N'', N'3', N'1', N''), (N'150205', N'1502', N'00,15,1502', N'石拐区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150205', N'石拐区', N'', N'', N'', N'', N'3', N'1', N''), (N'150206', N'1502', N'00,15,1502', N'白云鄂博矿区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150206', N'白云鄂博矿区', N'', N'', N'', N'', N'3', N'1', N''), (N'150207', N'1502', N'00,15,1502', N'九原区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150207', N'九原区', N'', N'', N'', N'', N'3', N'1', N''), (N'150221', N'1502', N'00,15,1502', N'土默特右旗', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150221', N'土默特右旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150222', N'1502', N'00,15,1502', N'固阳县', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150222', N'固阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'150223', N'1502', N'00,15,1502', N'达尔罕茂明安联合旗', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150223', N'达尔罕茂明安联合旗', N'', N'', N'', N'', N'3', N'1', N''), (N'1503', N'15', N'00,15', N'乌海市', N'15', N'内蒙古自治区', N'1503', N'乌海市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150302', N'1503', N'00,15,1503', N'海勃湾区', N'15', N'内蒙古自治区', N'1503', N'乌海市', N'150302', N'海勃湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'150303', N'1503', N'00,15,1503', N'海南区', N'15', N'内蒙古自治区', N'1503', N'乌海市', N'150303', N'海南区', N'', N'', N'', N'', N'3', N'1', N''), (N'150304', N'1503', N'00,15,1503', N'乌达区', N'15', N'内蒙古自治区', N'1503', N'乌海市', N'150304', N'乌达区', N'', N'', N'', N'', N'3', N'1', N''), (N'1504', N'15', N'00,15', N'赤峰市', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150402', N'1504', N'00,15,1504', N'红山区', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150402', N'红山区', N'', N'', N'', N'', N'3', N'1', N''), (N'150403', N'1504', N'00,15,1504', N'元宝山区', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150403', N'元宝山区', N'', N'', N'', N'', N'3', N'1', N''), (N'150404', N'1504', N'00,15,1504', N'松山区', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150404', N'松山区', N'', N'', N'', N'', N'3', N'1', N''), (N'150421', N'1504', N'00,15,1504', N'阿鲁科尔沁旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150421', N'阿鲁科尔沁旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150422', N'1504', N'00,15,1504', N'巴林左旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150422', N'巴林左旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150423', N'1504', N'00,15,1504', N'巴林右旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150423', N'巴林右旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150424', N'1504', N'00,15,1504', N'林西县', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150424', N'林西县', N'', N'', N'', N'', N'3', N'1', N''), (N'150425', N'1504', N'00,15,1504', N'克什克腾旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150425', N'克什克腾旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150426', N'1504', N'00,15,1504', N'翁牛特旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150426', N'翁牛特旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150428', N'1504', N'00,15,1504', N'喀喇沁旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150428', N'喀喇沁旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150429', N'1504', N'00,15,1504', N'宁城县', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150429', N'宁城县', N'', N'', N'', N'', N'3', N'1', N''), (N'150430', N'1504', N'00,15,1504', N'敖汉旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150430', N'敖汉旗', N'', N'', N'', N'', N'3', N'1', N''), (N'1505', N'15', N'00,15', N'通辽市', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150502', N'1505', N'00,15,1505', N'科尔沁区', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150502', N'科尔沁区', N'', N'', N'', N'', N'3', N'1', N''), (N'150521', N'1505', N'00,15,1505', N'科尔沁左翼中旗', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150521', N'科尔沁左翼中旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150522', N'1505', N'00,15,1505', N'科尔沁左翼后旗', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150522', N'科尔沁左翼后旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150523', N'1505', N'00,15,1505', N'开鲁县', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150523', N'开鲁县', N'', N'', N'', N'', N'3', N'1', N''), (N'150524', N'1505', N'00,15,1505', N'库伦旗', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150524', N'库伦旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150525', N'1505', N'00,15,1505', N'奈曼旗', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150525', N'奈曼旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150526', N'1505', N'00,15,1505', N'扎鲁特旗', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150526', N'扎鲁特旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150581', N'1505', N'00,15,1505', N'霍林郭勒市', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150581', N'霍林郭勒市', N'', N'', N'', N'', N'3', N'1', N''), (N'1506', N'15', N'00,15', N'鄂尔多斯市', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150602', N'1506', N'00,15,1506', N'东胜区', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150602', N'东胜区', N'', N'', N'', N'', N'3', N'1', N''), (N'150603', N'1506', N'00,15,1506', N'康巴什区', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150603', N'康巴什区', N'', N'', N'', N'', N'3', N'1', N''), (N'150621', N'1506', N'00,15,1506', N'达拉特旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150621', N'达拉特旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150622', N'1506', N'00,15,1506', N'准格尔旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150622', N'准格尔旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150623', N'1506', N'00,15,1506', N'鄂托克前旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150623', N'鄂托克前旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150624', N'1506', N'00,15,1506', N'鄂托克旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150624', N'鄂托克旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150625', N'1506', N'00,15,1506', N'杭锦旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150625', N'杭锦旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150626', N'1506', N'00,15,1506', N'乌审旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150626', N'乌审旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150627', N'1506', N'00,15,1506', N'伊金霍洛旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150627', N'伊金霍洛旗', N'', N'', N'', N'', N'3', N'1', N''), (N'1507', N'15', N'00,15', N'呼伦贝尔市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150702', N'1507', N'00,15,1507', N'海拉尔区', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150702', N'海拉尔区', N'', N'', N'', N'', N'3', N'1', N''), (N'150703', N'1507', N'00,15,1507', N'扎赉诺尔区', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150703', N'扎赉诺尔区', N'', N'', N'', N'', N'3', N'1', N''), (N'150721', N'1507', N'00,15,1507', N'阿荣旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150721', N'阿荣旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150722', N'1507', N'00,15,1507', N'莫力达瓦达斡尔族自治旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150722', N'莫力达瓦达斡尔族自治旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150723', N'1507', N'00,15,1507', N'鄂伦春自治旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150723', N'鄂伦春自治旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150724', N'1507', N'00,15,1507', N'鄂温克族自治旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150724', N'鄂温克族自治旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150725', N'1507', N'00,15,1507', N'陈巴尔虎旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150725', N'陈巴尔虎旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150726', N'1507', N'00,15,1507', N'新巴尔虎左旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150726', N'新巴尔虎左旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150727', N'1507', N'00,15,1507', N'新巴尔虎右旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150727', N'新巴尔虎右旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150781', N'1507', N'00,15,1507', N'满洲里市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150781', N'满洲里市', N'', N'', N'', N'', N'3', N'1', N''), (N'150782', N'1507', N'00,15,1507', N'牙克石市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150782', N'牙克石市', N'', N'', N'', N'', N'3', N'1', N'')
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'150783', N'1507', N'00,15,1507', N'扎兰屯市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150783', N'扎兰屯市', N'', N'', N'', N'', N'3', N'1', N''), (N'150784', N'1507', N'00,15,1507', N'额尔古纳市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150784', N'额尔古纳市', N'', N'', N'', N'', N'3', N'1', N''), (N'150785', N'1507', N'00,15,1507', N'根河市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150785', N'根河市', N'', N'', N'', N'', N'3', N'1', N''), (N'1508', N'15', N'00,15', N'巴彦淖尔市', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150802', N'1508', N'00,15,1508', N'临河区', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150802', N'临河区', N'', N'', N'', N'', N'3', N'1', N''), (N'150821', N'1508', N'00,15,1508', N'五原县', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150821', N'五原县', N'', N'', N'', N'', N'3', N'1', N''), (N'150822', N'1508', N'00,15,1508', N'磴口县', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150822', N'磴口县', N'', N'', N'', N'', N'3', N'1', N''), (N'150823', N'1508', N'00,15,1508', N'乌拉特前旗', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150823', N'乌拉特前旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150824', N'1508', N'00,15,1508', N'乌拉特中旗', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150824', N'乌拉特中旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150825', N'1508', N'00,15,1508', N'乌拉特后旗', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150825', N'乌拉特后旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150826', N'1508', N'00,15,1508', N'杭锦后旗', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150826', N'杭锦后旗', N'', N'', N'', N'', N'3', N'1', N''), (N'1509', N'15', N'00,15', N'乌兰察布市', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150902', N'1509', N'00,15,1509', N'集宁区', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150902', N'集宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'150921', N'1509', N'00,15,1509', N'卓资县', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150921', N'卓资县', N'', N'', N'', N'', N'3', N'1', N''), (N'150922', N'1509', N'00,15,1509', N'化德县', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150922', N'化德县', N'', N'', N'', N'', N'3', N'1', N''), (N'150923', N'1509', N'00,15,1509', N'商都县', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150923', N'商都县', N'', N'', N'', N'', N'3', N'1', N''), (N'150924', N'1509', N'00,15,1509', N'兴和县', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150924', N'兴和县', N'', N'', N'', N'', N'3', N'1', N''), (N'150925', N'1509', N'00,15,1509', N'凉城县', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150925', N'凉城县', N'', N'', N'', N'', N'3', N'1', N''), (N'150926', N'1509', N'00,15,1509', N'察哈尔右翼前旗', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150926', N'察哈尔右翼前旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150927', N'1509', N'00,15,1509', N'察哈尔右翼中旗', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150927', N'察哈尔右翼中旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150928', N'1509', N'00,15,1509', N'察哈尔右翼后旗', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150928', N'察哈尔右翼后旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150929', N'1509', N'00,15,1509', N'四子王旗', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150929', N'四子王旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150981', N'1509', N'00,15,1509', N'丰镇市', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150981', N'丰镇市', N'', N'', N'', N'', N'3', N'1', N''), (N'1522', N'15', N'00,15', N'兴安盟', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'152201', N'1522', N'00,15,1522', N'乌兰浩特市', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152201', N'乌兰浩特市', N'', N'', N'', N'', N'3', N'1', N''), (N'152202', N'1522', N'00,15,1522', N'阿尔山市', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152202', N'阿尔山市', N'', N'', N'', N'', N'3', N'1', N''), (N'152221', N'1522', N'00,15,1522', N'科尔沁右翼前旗', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152221', N'科尔沁右翼前旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152222', N'1522', N'00,15,1522', N'科尔沁右翼中旗', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152222', N'科尔沁右翼中旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152223', N'1522', N'00,15,1522', N'扎赉特旗', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152223', N'扎赉特旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152224', N'1522', N'00,15,1522', N'突泉县', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152224', N'突泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'1525', N'15', N'00,15', N'锡林郭勒盟', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'152501', N'1525', N'00,15,1525', N'二连浩特市', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152501', N'二连浩特市', N'', N'', N'', N'', N'3', N'1', N''), (N'152502', N'1525', N'00,15,1525', N'锡林浩特市', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152502', N'锡林浩特市', N'', N'', N'', N'', N'3', N'1', N''), (N'152522', N'1525', N'00,15,1525', N'阿巴嘎旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152522', N'阿巴嘎旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152523', N'1525', N'00,15,1525', N'苏尼特左旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152523', N'苏尼特左旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152524', N'1525', N'00,15,1525', N'苏尼特右旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152524', N'苏尼特右旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152525', N'1525', N'00,15,1525', N'东乌珠穆沁旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152525', N'东乌珠穆沁旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152526', N'1525', N'00,15,1525', N'西乌珠穆沁旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152526', N'西乌珠穆沁旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152527', N'1525', N'00,15,1525', N'太仆寺旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152527', N'太仆寺旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152528', N'1525', N'00,15,1525', N'镶黄旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152528', N'镶黄旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152529', N'1525', N'00,15,1525', N'正镶白旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152529', N'正镶白旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152530', N'1525', N'00,15,1525', N'正蓝旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152530', N'正蓝旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152531', N'1525', N'00,15,1525', N'多伦县', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152531', N'多伦县', N'', N'', N'', N'', N'3', N'1', N''), (N'1529', N'15', N'00,15', N'阿拉善盟', N'15', N'内蒙古自治区', N'1529', N'阿拉善盟', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'152921', N'1529', N'00,15,1529', N'阿拉善左旗', N'15', N'内蒙古自治区', N'1529', N'阿拉善盟', N'152921', N'阿拉善左旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152922', N'1529', N'00,15,1529', N'阿拉善右旗', N'15', N'内蒙古自治区', N'1529', N'阿拉善盟', N'152922', N'阿拉善右旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152923', N'1529', N'00,15,1529', N'额济纳旗', N'15', N'内蒙古自治区', N'1529', N'阿拉善盟', N'152923', N'额济纳旗', N'', N'', N'', N'', N'3', N'1', N''), (N'21', N'00', N'00', N'辽宁省', N'21', N'辽宁省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'2101', N'21', N'00,21', N'沈阳市', N'21', N'辽宁省', N'2101', N'沈阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210102', N'2101', N'00,21,2101', N'和平区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210102', N'和平区', N'', N'', N'', N'', N'3', N'1', N''), (N'210103', N'2101', N'00,21,2101', N'沈河区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210103', N'沈河区', N'', N'', N'', N'', N'3', N'1', N''), (N'210104', N'2101', N'00,21,2101', N'大东区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210104', N'大东区', N'', N'', N'', N'', N'3', N'1', N''), (N'210105', N'2101', N'00,21,2101', N'皇姑区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210105', N'皇姑区', N'', N'', N'', N'', N'3', N'1', N''), (N'210106', N'2101', N'00,21,2101', N'铁西区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210106', N'铁西区', N'', N'', N'', N'', N'3', N'1', N''), (N'210111', N'2101', N'00,21,2101', N'苏家屯区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210111', N'苏家屯区', N'', N'', N'', N'', N'3', N'1', N''), (N'210112', N'2101', N'00,21,2101', N'浑南区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210112', N'浑南区', N'', N'', N'', N'', N'3', N'1', N''), (N'210113', N'2101', N'00,21,2101', N'沈北新区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210113', N'沈北新区', N'', N'', N'', N'', N'3', N'1', N''), (N'210114', N'2101', N'00,21,2101', N'于洪区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210114', N'于洪区', N'', N'', N'', N'', N'3', N'1', N''), (N'210115', N'2101', N'00,21,2101', N'辽中区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210115', N'辽中区', N'', N'', N'', N'', N'3', N'1', N''), (N'210123', N'2101', N'00,21,2101', N'康平县', N'21', N'辽宁省', N'2101', N'沈阳市', N'210123', N'康平县', N'', N'', N'', N'', N'3', N'1', N''), (N'210124', N'2101', N'00,21,2101', N'法库县', N'21', N'辽宁省', N'2101', N'沈阳市', N'210124', N'法库县', N'', N'', N'', N'', N'3', N'1', N''), (N'210181', N'2101', N'00,21,2101', N'新民市', N'21', N'辽宁省', N'2101', N'沈阳市', N'210181', N'新民市', N'', N'', N'', N'', N'3', N'1', N''), (N'2102', N'21', N'00,21', N'大连市', N'21', N'辽宁省', N'2102', N'大连市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210202', N'2102', N'00,21,2102', N'中山区', N'21', N'辽宁省', N'2102', N'大连市', N'210202', N'中山区', N'', N'', N'', N'', N'3', N'1', N''), (N'210203', N'2102', N'00,21,2102', N'西岗区', N'21', N'辽宁省', N'2102', N'大连市', N'210203', N'西岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'210204', N'2102', N'00,21,2102', N'沙河口区', N'21', N'辽宁省', N'2102', N'大连市', N'210204', N'沙河口区', N'', N'', N'', N'', N'3', N'1', N''), (N'210211', N'2102', N'00,21,2102', N'甘井子区', N'21', N'辽宁省', N'2102', N'大连市', N'210211', N'甘井子区', N'', N'', N'', N'', N'3', N'1', N''), (N'210212', N'2102', N'00,21,2102', N'旅顺口区', N'21', N'辽宁省', N'2102', N'大连市', N'210212', N'旅顺口区', N'', N'', N'', N'', N'3', N'1', N''), (N'210213', N'2102', N'00,21,2102', N'金州区', N'21', N'辽宁省', N'2102', N'大连市', N'210213', N'金州区', N'', N'', N'', N'', N'3', N'1', N''), (N'210214', N'2102', N'00,21,2102', N'普兰店区', N'21', N'辽宁省', N'2102', N'大连市', N'210214', N'普兰店区', N'', N'', N'', N'', N'3', N'1', N''), (N'210224', N'2102', N'00,21,2102', N'长海县', N'21', N'辽宁省', N'2102', N'大连市', N'210224', N'长海县', N'', N'', N'', N'', N'3', N'1', N''), (N'210281', N'2102', N'00,21,2102', N'瓦房店市', N'21', N'辽宁省', N'2102', N'大连市', N'210281', N'瓦房店市', N'', N'', N'', N'', N'3', N'1', N''), (N'210283', N'2102', N'00,21,2102', N'庄河市', N'21', N'辽宁省', N'2102', N'大连市', N'210283', N'庄河市', N'', N'', N'', N'', N'3', N'1', N''), (N'2103', N'21', N'00,21', N'鞍山市', N'21', N'辽宁省', N'2103', N'鞍山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210302', N'2103', N'00,21,2103', N'铁东区', N'21', N'辽宁省', N'2103', N'鞍山市', N'210302', N'铁东区', N'', N'', N'', N'', N'3', N'1', N''), (N'210303', N'2103', N'00,21,2103', N'铁西区', N'21', N'辽宁省', N'2103', N'鞍山市', N'210303', N'铁西区', N'', N'', N'', N'', N'3', N'1', N''), (N'210304', N'2103', N'00,21,2103', N'立山区', N'21', N'辽宁省', N'2103', N'鞍山市', N'210304', N'立山区', N'', N'', N'', N'', N'3', N'1', N''), (N'210311', N'2103', N'00,21,2103', N'千山区', N'21', N'辽宁省', N'2103', N'鞍山市', N'210311', N'千山区', N'', N'', N'', N'', N'3', N'1', N''), (N'210321', N'2103', N'00,21,2103', N'台安县', N'21', N'辽宁省', N'2103', N'鞍山市', N'210321', N'台安县', N'', N'', N'', N'', N'3', N'1', N''), (N'210323', N'2103', N'00,21,2103', N'岫岩满族自治县', N'21', N'辽宁省', N'2103', N'鞍山市', N'210323', N'岫岩满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'210381', N'2103', N'00,21,2103', N'海城市', N'21', N'辽宁省', N'2103', N'鞍山市', N'210381', N'海城市', N'', N'', N'', N'', N'3', N'1', N''), (N'2104', N'21', N'00,21', N'抚顺市', N'21', N'辽宁省', N'2104', N'抚顺市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210402', N'2104', N'00,21,2104', N'新抚区', N'21', N'辽宁省', N'2104', N'抚顺市', N'210402', N'新抚区', N'', N'', N'', N'', N'3', N'1', N''), (N'210403', N'2104', N'00,21,2104', N'东洲区', N'21', N'辽宁省', N'2104', N'抚顺市', N'210403', N'东洲区', N'', N'', N'', N'', N'3', N'1', N''), (N'210404', N'2104', N'00,21,2104', N'望花区', N'21', N'辽宁省', N'2104', N'抚顺市', N'210404', N'望花区', N'', N'', N'', N'', N'3', N'1', N''), (N'210411', N'2104', N'00,21,2104', N'顺城区', N'21', N'辽宁省', N'2104', N'抚顺市', N'210411', N'顺城区', N'', N'', N'', N'', N'3', N'1', N''), (N'210421', N'2104', N'00,21,2104', N'抚顺县', N'21', N'辽宁省', N'2104', N'抚顺市', N'210421', N'抚顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'210422', N'2104', N'00,21,2104', N'新宾满族自治县', N'21', N'辽宁省', N'2104', N'抚顺市', N'210422', N'新宾满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'210423', N'2104', N'00,21,2104', N'清原满族自治县', N'21', N'辽宁省', N'2104', N'抚顺市', N'210423', N'清原满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'2105', N'21', N'00,21', N'本溪市', N'21', N'辽宁省', N'2105', N'本溪市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210502', N'2105', N'00,21,2105', N'平山区', N'21', N'辽宁省', N'2105', N'本溪市', N'210502', N'平山区', N'', N'', N'', N'', N'3', N'1', N''), (N'210503', N'2105', N'00,21,2105', N'溪湖区', N'21', N'辽宁省', N'2105', N'本溪市', N'210503', N'溪湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'210504', N'2105', N'00,21,2105', N'明山区', N'21', N'辽宁省', N'2105', N'本溪市', N'210504', N'明山区', N'', N'', N'', N'', N'3', N'1', N''), (N'210505', N'2105', N'00,21,2105', N'南芬区', N'21', N'辽宁省', N'2105', N'本溪市', N'210505', N'南芬区', N'', N'', N'', N'', N'3', N'1', N''), (N'210521', N'2105', N'00,21,2105', N'本溪满族自治县', N'21', N'辽宁省', N'2105', N'本溪市', N'210521', N'本溪满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'210522', N'2105', N'00,21,2105', N'桓仁满族自治县', N'21', N'辽宁省', N'2105', N'本溪市', N'210522', N'桓仁满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'2106', N'21', N'00,21', N'丹东市', N'21', N'辽宁省', N'2106', N'丹东市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210602', N'2106', N'00,21,2106', N'元宝区', N'21', N'辽宁省', N'2106', N'丹东市', N'210602', N'元宝区', N'', N'', N'', N'', N'3', N'1', N''), (N'210603', N'2106', N'00,21,2106', N'振兴区', N'21', N'辽宁省', N'2106', N'丹东市', N'210603', N'振兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'210604', N'2106', N'00,21,2106', N'振安区', N'21', N'辽宁省', N'2106', N'丹东市', N'210604', N'振安区', N'', N'', N'', N'', N'3', N'1', N''), (N'210624', N'2106', N'00,21,2106', N'宽甸满族自治县', N'21', N'辽宁省', N'2106', N'丹东市', N'210624', N'宽甸满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'210681', N'2106', N'00,21,2106', N'东港市', N'21', N'辽宁省', N'2106', N'丹东市', N'210681', N'东港市', N'', N'', N'', N'', N'3', N'1', N''), (N'210682', N'2106', N'00,21,2106', N'凤城市', N'21', N'辽宁省', N'2106', N'丹东市', N'210682', N'凤城市', N'', N'', N'', N'', N'3', N'1', N''), (N'2107', N'21', N'00,21', N'锦州市', N'21', N'辽宁省', N'2107', N'锦州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210702', N'2107', N'00,21,2107', N'古塔区', N'21', N'辽宁省', N'2107', N'锦州市', N'210702', N'古塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'210703', N'2107', N'00,21,2107', N'凌河区', N'21', N'辽宁省', N'2107', N'锦州市', N'210703', N'凌河区', N'', N'', N'', N'', N'3', N'1', N''), (N'210711', N'2107', N'00,21,2107', N'太和区', N'21', N'辽宁省', N'2107', N'锦州市', N'210711', N'太和区', N'', N'', N'', N'', N'3', N'1', N''), (N'210726', N'2107', N'00,21,2107', N'黑山县', N'21', N'辽宁省', N'2107', N'锦州市', N'210726', N'黑山县', N'', N'', N'', N'', N'3', N'1', N''), (N'210727', N'2107', N'00,21,2107', N'义县', N'21', N'辽宁省', N'2107', N'锦州市', N'210727', N'义县', N'', N'', N'', N'', N'3', N'1', N''), (N'210781', N'2107', N'00,21,2107', N'凌海市', N'21', N'辽宁省', N'2107', N'锦州市', N'210781', N'凌海市', N'', N'', N'', N'', N'3', N'1', N''), (N'210782', N'2107', N'00,21,2107', N'北镇市', N'21', N'辽宁省', N'2107', N'锦州市', N'210782', N'北镇市', N'', N'', N'', N'', N'3', N'1', N''), (N'2108', N'21', N'00,21', N'营口市', N'21', N'辽宁省', N'2108', N'营口市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210802', N'2108', N'00,21,2108', N'站前区', N'21', N'辽宁省', N'2108', N'营口市', N'210802', N'站前区', N'', N'', N'', N'', N'3', N'1', N''), (N'210803', N'2108', N'00,21,2108', N'西市区', N'21', N'辽宁省', N'2108', N'营口市', N'210803', N'西市区', N'', N'', N'', N'', N'3', N'1', N''), (N'210804', N'2108', N'00,21,2108', N'鲅鱼圈区', N'21', N'辽宁省', N'2108', N'营口市', N'210804', N'鲅鱼圈区', N'', N'', N'', N'', N'3', N'1', N''), (N'210811', N'2108', N'00,21,2108', N'老边区', N'21', N'辽宁省', N'2108', N'营口市', N'210811', N'老边区', N'', N'', N'', N'', N'3', N'1', N''), (N'210881', N'2108', N'00,21,2108', N'盖州市', N'21', N'辽宁省', N'2108', N'营口市', N'210881', N'盖州市', N'', N'', N'', N'', N'3', N'1', N''), (N'210882', N'2108', N'00,21,2108', N'大石桥市', N'21', N'辽宁省', N'2108', N'营口市', N'210882', N'大石桥市', N'', N'', N'', N'', N'3', N'1', N''), (N'2109', N'21', N'00,21', N'阜新市', N'21', N'辽宁省', N'2109', N'阜新市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210902', N'2109', N'00,21,2109', N'海州区', N'21', N'辽宁省', N'2109', N'阜新市', N'210902', N'海州区', N'', N'', N'', N'', N'3', N'1', N''), (N'210903', N'2109', N'00,21,2109', N'新邱区', N'21', N'辽宁省', N'2109', N'阜新市', N'210903', N'新邱区', N'', N'', N'', N'', N'3', N'1', N''), (N'210904', N'2109', N'00,21,2109', N'太平区', N'21', N'辽宁省', N'2109', N'阜新市', N'210904', N'太平区', N'', N'', N'', N'', N'3', N'1', N''), (N'210905', N'2109', N'00,21,2109', N'清河门区', N'21', N'辽宁省', N'2109', N'阜新市', N'210905', N'清河门区', N'', N'', N'', N'', N'3', N'1', N''), (N'210911', N'2109', N'00,21,2109', N'细河区', N'21', N'辽宁省', N'2109', N'阜新市', N'210911', N'细河区', N'', N'', N'', N'', N'3', N'1', N''), (N'210921', N'2109', N'00,21,2109', N'阜新蒙古族自治县', N'21', N'辽宁省', N'2109', N'阜新市', N'210921', N'阜新蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'210922', N'2109', N'00,21,2109', N'彰武县', N'21', N'辽宁省', N'2109', N'阜新市', N'210922', N'彰武县', N'', N'', N'', N'', N'3', N'1', N''), (N'2110', N'21', N'00,21', N'辽阳市', N'21', N'辽宁省', N'2110', N'辽阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'211002', N'2110', N'00,21,2110', N'白塔区', N'21', N'辽宁省', N'2110', N'辽阳市', N'211002', N'白塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'211003', N'2110', N'00,21,2110', N'文圣区', N'21', N'辽宁省', N'2110', N'辽阳市', N'211003', N'文圣区', N'', N'', N'', N'', N'3', N'1', N''), (N'211004', N'2110', N'00,21,2110', N'宏伟区', N'21', N'辽宁省', N'2110', N'辽阳市', N'211004', N'宏伟区', N'', N'', N'', N'', N'3', N'1', N''), (N'211005', N'2110', N'00,21,2110', N'弓长岭区', N'21', N'辽宁省', N'2110', N'辽阳市', N'211005', N'弓长岭区', N'', N'', N'', N'', N'3', N'1', N''), (N'211011', N'2110', N'00,21,2110', N'太子河区', N'21', N'辽宁省', N'2110', N'辽阳市', N'211011', N'太子河区', N'', N'', N'', N'', N'3', N'1', N''), (N'211021', N'2110', N'00,21,2110', N'辽阳县', N'21', N'辽宁省', N'2110', N'辽阳市', N'211021', N'辽阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'211081', N'2110', N'00,21,2110', N'灯塔市', N'21', N'辽宁省', N'2110', N'辽阳市', N'211081', N'灯塔市', N'', N'', N'', N'', N'3', N'1', N''), (N'2111', N'21', N'00,21', N'盘锦市', N'21', N'辽宁省', N'2111', N'盘锦市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'211102', N'2111', N'00,21,2111', N'双台子区', N'21', N'辽宁省', N'2111', N'盘锦市', N'211102', N'双台子区', N'', N'', N'', N'', N'3', N'1', N''), (N'211103', N'2111', N'00,21,2111', N'兴隆台区', N'21', N'辽宁省', N'2111', N'盘锦市', N'211103', N'兴隆台区', N'', N'', N'', N'', N'3', N'1', N''), (N'211104', N'2111', N'00,21,2111', N'大洼区', N'21', N'辽宁省', N'2111', N'盘锦市', N'211104', N'大洼区', N'', N'', N'', N'', N'3', N'1', N''), (N'211122', N'2111', N'00,21,2111', N'盘山县', N'21', N'辽宁省', N'2111', N'盘锦市', N'211122', N'盘山县', N'', N'', N'', N'', N'3', N'1', N''), (N'2112', N'21', N'00,21', N'铁岭市', N'21', N'辽宁省', N'2112', N'铁岭市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'211202', N'2112', N'00,21,2112', N'银州区', N'21', N'辽宁省', N'2112', N'铁岭市', N'211202', N'银州区', N'', N'', N'', N'', N'3', N'1', N''), (N'211204', N'2112', N'00,21,2112', N'清河区', N'21', N'辽宁省', N'2112', N'铁岭市', N'211204', N'清河区', N'', N'', N'', N'', N'3', N'1', N''), (N'211221', N'2112', N'00,21,2112', N'铁岭县', N'21', N'辽宁省', N'2112', N'铁岭市', N'211221', N'铁岭县', N'', N'', N'', N'', N'3', N'1', N''), (N'211223', N'2112', N'00,21,2112', N'西丰县', N'21', N'辽宁省', N'2112', N'铁岭市', N'211223', N'西丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'211224', N'2112', N'00,21,2112', N'昌图县', N'21', N'辽宁省', N'2112', N'铁岭市', N'211224', N'昌图县', N'', N'', N'', N'', N'3', N'1', N''), (N'211281', N'2112', N'00,21,2112', N'调兵山市', N'21', N'辽宁省', N'2112', N'铁岭市', N'211281', N'调兵山市', N'', N'', N'', N'', N'3', N'1', N''), (N'211282', N'2112', N'00,21,2112', N'开原市', N'21', N'辽宁省', N'2112', N'铁岭市', N'211282', N'开原市', N'', N'', N'', N'', N'3', N'1', N''), (N'2113', N'21', N'00,21', N'朝阳市', N'21', N'辽宁省', N'2113', N'朝阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'211302', N'2113', N'00,21,2113', N'双塔区', N'21', N'辽宁省', N'2113', N'朝阳市', N'211302', N'双塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'211303', N'2113', N'00,21,2113', N'龙城区', N'21', N'辽宁省', N'2113', N'朝阳市', N'211303', N'龙城区', N'', N'', N'', N'', N'3', N'1', N''), (N'211321', N'2113', N'00,21,2113', N'朝阳县', N'21', N'辽宁省', N'2113', N'朝阳市', N'211321', N'朝阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'211322', N'2113', N'00,21,2113', N'建平县', N'21', N'辽宁省', N'2113', N'朝阳市', N'211322', N'建平县', N'', N'', N'', N'', N'3', N'1', N''), (N'211324', N'2113', N'00,21,2113', N'喀喇沁左翼蒙古族自治县', N'21', N'辽宁省', N'2113', N'朝阳市', N'211324', N'喀喇沁左翼蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'211381', N'2113', N'00,21,2113', N'北票市', N'21', N'辽宁省', N'2113', N'朝阳市', N'211381', N'北票市', N'', N'', N'', N'', N'3', N'1', N''), (N'211382', N'2113', N'00,21,2113', N'凌源市', N'21', N'辽宁省', N'2113', N'朝阳市', N'211382', N'凌源市', N'', N'', N'', N'', N'3', N'1', N''), (N'2114', N'21', N'00,21', N'葫芦岛市', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'211402', N'2114', N'00,21,2114', N'连山区', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211402', N'连山区', N'', N'', N'', N'', N'3', N'1', N''), (N'211403', N'2114', N'00,21,2114', N'龙港区', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211403', N'龙港区', N'', N'', N'', N'', N'3', N'1', N''), (N'211404', N'2114', N'00,21,2114', N'南票区', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211404', N'南票区', N'', N'', N'', N'', N'3', N'1', N''), (N'211421', N'2114', N'00,21,2114', N'绥中县', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211421', N'绥中县', N'', N'', N'', N'', N'3', N'1', N''), (N'211422', N'2114', N'00,21,2114', N'建昌县', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211422', N'建昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'211481', N'2114', N'00,21,2114', N'兴城市', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211481', N'兴城市', N'', N'', N'', N'', N'3', N'1', N''), (N'22', N'00', N'00', N'吉林省', N'22', N'吉林省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'2201', N'22', N'00,22', N'长春市', N'22', N'吉林省', N'2201', N'长春市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220102', N'2201', N'00,22,2201', N'南关区', N'22', N'吉林省', N'2201', N'长春市', N'220102', N'南关区', N'', N'', N'', N'', N'3', N'1', N''), (N'220103', N'2201', N'00,22,2201', N'宽城区', N'22', N'吉林省', N'2201', N'长春市', N'220103', N'宽城区', N'', N'', N'', N'', N'3', N'1', N''), (N'220104', N'2201', N'00,22,2201', N'朝阳区', N'22', N'吉林省', N'2201', N'长春市', N'220104', N'朝阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'220105', N'2201', N'00,22,2201', N'二道区', N'22', N'吉林省', N'2201', N'长春市', N'220105', N'二道区', N'', N'', N'', N'', N'3', N'1', N''), (N'220106', N'2201', N'00,22,2201', N'绿园区', N'22', N'吉林省', N'2201', N'长春市', N'220106', N'绿园区', N'', N'', N'', N'', N'3', N'1', N''), (N'220112', N'2201', N'00,22,2201', N'双阳区', N'22', N'吉林省', N'2201', N'长春市', N'220112', N'双阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'220113', N'2201', N'00,22,2201', N'九台区', N'22', N'吉林省', N'2201', N'长春市', N'220113', N'九台区', N'', N'', N'', N'', N'3', N'1', N''), (N'220122', N'2201', N'00,22,2201', N'农安县', N'22', N'吉林省', N'2201', N'长春市', N'220122', N'农安县', N'', N'', N'', N'', N'3', N'1', N''), (N'220182', N'2201', N'00,22,2201', N'榆树市', N'22', N'吉林省', N'2201', N'长春市', N'220182', N'榆树市', N'', N'', N'', N'', N'3', N'1', N''), (N'220183', N'2201', N'00,22,2201', N'德惠市', N'22', N'吉林省', N'2201', N'长春市', N'220183', N'德惠市', N'', N'', N'', N'', N'3', N'1', N''), (N'2202', N'22', N'00,22', N'吉林市', N'22', N'吉林省', N'2202', N'吉林市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220202', N'2202', N'00,22,2202', N'昌邑区', N'22', N'吉林省', N'2202', N'吉林市', N'220202', N'昌邑区', N'', N'', N'', N'', N'3', N'1', N''), (N'220203', N'2202', N'00,22,2202', N'龙潭区', N'22', N'吉林省', N'2202', N'吉林市', N'220203', N'龙潭区', N'', N'', N'', N'', N'3', N'1', N''), (N'220204', N'2202', N'00,22,2202', N'船营区', N'22', N'吉林省', N'2202', N'吉林市', N'220204', N'船营区', N'', N'', N'', N'', N'3', N'1', N''), (N'220211', N'2202', N'00,22,2202', N'丰满区', N'22', N'吉林省', N'2202', N'吉林市', N'220211', N'丰满区', N'', N'', N'', N'', N'3', N'1', N''), (N'220221', N'2202', N'00,22,2202', N'永吉县', N'22', N'吉林省', N'2202', N'吉林市', N'220221', N'永吉县', N'', N'', N'', N'', N'3', N'1', N''), (N'220281', N'2202', N'00,22,2202', N'蛟河市', N'22', N'吉林省', N'2202', N'吉林市', N'220281', N'蛟河市', N'', N'', N'', N'', N'3', N'1', N''), (N'220282', N'2202', N'00,22,2202', N'桦甸市', N'22', N'吉林省', N'2202', N'吉林市', N'220282', N'桦甸市', N'', N'', N'', N'', N'3', N'1', N''), (N'220283', N'2202', N'00,22,2202', N'舒兰市', N'22', N'吉林省', N'2202', N'吉林市', N'220283', N'舒兰市', N'', N'', N'', N'', N'3', N'1', N''), (N'220284', N'2202', N'00,22,2202', N'磐石市', N'22', N'吉林省', N'2202', N'吉林市', N'220284', N'磐石市', N'', N'', N'', N'', N'3', N'1', N''), (N'2203', N'22', N'00,22', N'四平市', N'22', N'吉林省', N'2203', N'四平市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220302', N'2203', N'00,22,2203', N'铁西区', N'22', N'吉林省', N'2203', N'四平市', N'220302', N'铁西区', N'', N'', N'', N'', N'3', N'1', N''), (N'220303', N'2203', N'00,22,2203', N'铁东区', N'22', N'吉林省', N'2203', N'四平市', N'220303', N'铁东区', N'', N'', N'', N'', N'3', N'1', N''), (N'220322', N'2203', N'00,22,2203', N'梨树县', N'22', N'吉林省', N'2203', N'四平市', N'220322', N'梨树县', N'', N'', N'', N'', N'3', N'1', N''), (N'220323', N'2203', N'00,22,2203', N'伊通满族自治县', N'22', N'吉林省', N'2203', N'四平市', N'220323', N'伊通满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'220381', N'2203', N'00,22,2203', N'公主岭市', N'22', N'吉林省', N'2203', N'四平市', N'220381', N'公主岭市', N'', N'', N'', N'', N'3', N'1', N''), (N'220382', N'2203', N'00,22,2203', N'双辽市', N'22', N'吉林省', N'2203', N'四平市', N'220382', N'双辽市', N'', N'', N'', N'', N'3', N'1', N''), (N'2204', N'22', N'00,22', N'辽源市', N'22', N'吉林省', N'2204', N'辽源市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220402', N'2204', N'00,22,2204', N'龙山区', N'22', N'吉林省', N'2204', N'辽源市', N'220402', N'龙山区', N'', N'', N'', N'', N'3', N'1', N''), (N'220403', N'2204', N'00,22,2204', N'西安区', N'22', N'吉林省', N'2204', N'辽源市', N'220403', N'西安区', N'', N'', N'', N'', N'3', N'1', N''), (N'220421', N'2204', N'00,22,2204', N'东丰县', N'22', N'吉林省', N'2204', N'辽源市', N'220421', N'东丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'220422', N'2204', N'00,22,2204', N'东辽县', N'22', N'吉林省', N'2204', N'辽源市', N'220422', N'东辽县', N'', N'', N'', N'', N'3', N'1', N''), (N'2205', N'22', N'00,22', N'通化市', N'22', N'吉林省', N'2205', N'通化市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220502', N'2205', N'00,22,2205', N'东昌区', N'22', N'吉林省', N'2205', N'通化市', N'220502', N'东昌区', N'', N'', N'', N'', N'3', N'1', N''), (N'220503', N'2205', N'00,22,2205', N'二道江区', N'22', N'吉林省', N'2205', N'通化市', N'220503', N'二道江区', N'', N'', N'', N'', N'3', N'1', N''), (N'220521', N'2205', N'00,22,2205', N'通化县', N'22', N'吉林省', N'2205', N'通化市', N'220521', N'通化县', N'', N'', N'', N'', N'3', N'1', N''), (N'220523', N'2205', N'00,22,2205', N'辉南县', N'22', N'吉林省', N'2205', N'通化市', N'220523', N'辉南县', N'', N'', N'', N'', N'3', N'1', N''), (N'220524', N'2205', N'00,22,2205', N'柳河县', N'22', N'吉林省', N'2205', N'通化市', N'220524', N'柳河县', N'', N'', N'', N'', N'3', N'1', N''), (N'220581', N'2205', N'00,22,2205', N'梅河口市', N'22', N'吉林省', N'2205', N'通化市', N'220581', N'梅河口市', N'', N'', N'', N'', N'3', N'1', N''), (N'220582', N'2205', N'00,22,2205', N'集安市', N'22', N'吉林省', N'2205', N'通化市', N'220582', N'集安市', N'', N'', N'', N'', N'3', N'1', N''), (N'2206', N'22', N'00,22', N'白山市', N'22', N'吉林省', N'2206', N'白山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220602', N'2206', N'00,22,2206', N'浑江区', N'22', N'吉林省', N'2206', N'白山市', N'220602', N'浑江区', N'', N'', N'', N'', N'3', N'1', N''), (N'220605', N'2206', N'00,22,2206', N'江源区', N'22', N'吉林省', N'2206', N'白山市', N'220605', N'江源区', N'', N'', N'', N'', N'3', N'1', N''), (N'220621', N'2206', N'00,22,2206', N'抚松县', N'22', N'吉林省', N'2206', N'白山市', N'220621', N'抚松县', N'', N'', N'', N'', N'3', N'1', N''), (N'220622', N'2206', N'00,22,2206', N'靖宇县', N'22', N'吉林省', N'2206', N'白山市', N'220622', N'靖宇县', N'', N'', N'', N'', N'3', N'1', N''), (N'220623', N'2206', N'00,22,2206', N'长白朝鲜族自治县', N'22', N'吉林省', N'2206', N'白山市', N'220623', N'长白朝鲜族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'220681', N'2206', N'00,22,2206', N'临江市', N'22', N'吉林省', N'2206', N'白山市', N'220681', N'临江市', N'', N'', N'', N'', N'3', N'1', N''), (N'2207', N'22', N'00,22', N'松原市', N'22', N'吉林省', N'2207', N'松原市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220702', N'2207', N'00,22,2207', N'宁江区', N'22', N'吉林省', N'2207', N'松原市', N'220702', N'宁江区', N'', N'', N'', N'', N'3', N'1', N''), (N'220721', N'2207', N'00,22,2207', N'前郭尔罗斯蒙古族自治县', N'22', N'吉林省', N'2207', N'松原市', N'220721', N'前郭尔罗斯蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'220722', N'2207', N'00,22,2207', N'长岭县', N'22', N'吉林省', N'2207', N'松原市', N'220722', N'长岭县', N'', N'', N'', N'', N'3', N'1', N''), (N'220723', N'2207', N'00,22,2207', N'乾安县', N'22', N'吉林省', N'2207', N'松原市', N'220723', N'乾安县', N'', N'', N'', N'', N'3', N'1', N''), (N'220781', N'2207', N'00,22,2207', N'扶余市', N'22', N'吉林省', N'2207', N'松原市', N'220781', N'扶余市', N'', N'', N'', N'', N'3', N'1', N''), (N'2208', N'22', N'00,22', N'白城市', N'22', N'吉林省', N'2208', N'白城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220802', N'2208', N'00,22,2208', N'洮北区', N'22', N'吉林省', N'2208', N'白城市', N'220802', N'洮北区', N'', N'', N'', N'', N'3', N'1', N''), (N'220821', N'2208', N'00,22,2208', N'镇赉县', N'22', N'吉林省', N'2208', N'白城市', N'220821', N'镇赉县', N'', N'', N'', N'', N'3', N'1', N''), (N'220822', N'2208', N'00,22,2208', N'通榆县', N'22', N'吉林省', N'2208', N'白城市', N'220822', N'通榆县', N'', N'', N'', N'', N'3', N'1', N''), (N'220881', N'2208', N'00,22,2208', N'洮南市', N'22', N'吉林省', N'2208', N'白城市', N'220881', N'洮南市', N'', N'', N'', N'', N'3', N'1', N''), (N'220882', N'2208', N'00,22,2208', N'大安市', N'22', N'吉林省', N'2208', N'白城市', N'220882', N'大安市', N'', N'', N'', N'', N'3', N'1', N''), (N'2224', N'22', N'00,22', N'延边朝鲜族自治州', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'222401', N'2224', N'00,22,2224', N'延吉市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222401', N'延吉市', N'', N'', N'', N'', N'3', N'1', N''), (N'222402', N'2224', N'00,22,2224', N'图们市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222402', N'图们市', N'', N'', N'', N'', N'3', N'1', N''), (N'222403', N'2224', N'00,22,2224', N'敦化市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222403', N'敦化市', N'', N'', N'', N'', N'3', N'1', N''), (N'222404', N'2224', N'00,22,2224', N'珲春市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222404', N'珲春市', N'', N'', N'', N'', N'3', N'1', N''), (N'222405', N'2224', N'00,22,2224', N'龙井市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222405', N'龙井市', N'', N'', N'', N'', N'3', N'1', N''), (N'222406', N'2224', N'00,22,2224', N'和龙市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222406', N'和龙市', N'', N'', N'', N'', N'3', N'1', N''), (N'222424', N'2224', N'00,22,2224', N'汪清县', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222424', N'汪清县', N'', N'', N'', N'', N'3', N'1', N''), (N'222426', N'2224', N'00,22,2224', N'安图县', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222426', N'安图县', N'', N'', N'', N'', N'3', N'1', N''), (N'23', N'00', N'00', N'黑龙江省', N'23', N'黑龙江省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'2301', N'23', N'00,23', N'哈尔滨市', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230102', N'2301', N'00,23,2301', N'道里区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230102', N'道里区', N'', N'', N'', N'', N'3', N'1', N''), (N'230103', N'2301', N'00,23,2301', N'南岗区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230103', N'南岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'230104', N'2301', N'00,23,2301', N'道外区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230104', N'道外区', N'', N'', N'', N'', N'3', N'1', N''), (N'230108', N'2301', N'00,23,2301', N'平房区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230108', N'平房区', N'', N'', N'', N'', N'3', N'1', N''), (N'230109', N'2301', N'00,23,2301', N'松北区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230109', N'松北区', N'', N'', N'', N'', N'3', N'1', N''), (N'230110', N'2301', N'00,23,2301', N'香坊区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230110', N'香坊区', N'', N'', N'', N'', N'3', N'1', N''), (N'230111', N'2301', N'00,23,2301', N'呼兰区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230111', N'呼兰区', N'', N'', N'', N'', N'3', N'1', N''), (N'230112', N'2301', N'00,23,2301', N'阿城区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230112', N'阿城区', N'', N'', N'', N'', N'3', N'1', N''), (N'230113', N'2301', N'00,23,2301', N'双城区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230113', N'双城区', N'', N'', N'', N'', N'3', N'1', N''), (N'230123', N'2301', N'00,23,2301', N'依兰县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230123', N'依兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'230124', N'2301', N'00,23,2301', N'方正县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230124', N'方正县', N'', N'', N'', N'', N'3', N'1', N''), (N'230125', N'2301', N'00,23,2301', N'宾县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230125', N'宾县', N'', N'', N'', N'', N'3', N'1', N''), (N'230126', N'2301', N'00,23,2301', N'巴彦县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230126', N'巴彦县', N'', N'', N'', N'', N'3', N'1', N''), (N'230127', N'2301', N'00,23,2301', N'木兰县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230127', N'木兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'230128', N'2301', N'00,23,2301', N'通河县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230128', N'通河县', N'', N'', N'', N'', N'3', N'1', N''), (N'230129', N'2301', N'00,23,2301', N'延寿县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230129', N'延寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'230183', N'2301', N'00,23,2301', N'尚志市', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230183', N'尚志市', N'', N'', N'', N'', N'3', N'1', N''), (N'230184', N'2301', N'00,23,2301', N'五常市', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230184', N'五常市', N'', N'', N'', N'', N'3', N'1', N''), (N'2302', N'23', N'00,23', N'齐齐哈尔市', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230202', N'2302', N'00,23,2302', N'龙沙区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230202', N'龙沙区', N'', N'', N'', N'', N'3', N'1', N''), (N'230203', N'2302', N'00,23,2302', N'建华区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230203', N'建华区', N'', N'', N'', N'', N'3', N'1', N''), (N'230204', N'2302', N'00,23,2302', N'铁锋区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230204', N'铁锋区', N'', N'', N'', N'', N'3', N'1', N''), (N'230205', N'2302', N'00,23,2302', N'昂昂溪区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230205', N'昂昂溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'230206', N'2302', N'00,23,2302', N'富拉尔基区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230206', N'富拉尔基区', N'', N'', N'', N'', N'3', N'1', N''), (N'230207', N'2302', N'00,23,2302', N'碾子山区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230207', N'碾子山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230208', N'2302', N'00,23,2302', N'梅里斯达斡尔族区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230208', N'梅里斯达斡尔族区', N'', N'', N'', N'', N'3', N'1', N''), (N'230221', N'2302', N'00,23,2302', N'龙江县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230221', N'龙江县', N'', N'', N'', N'', N'3', N'1', N''), (N'230223', N'2302', N'00,23,2302', N'依安县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230223', N'依安县', N'', N'', N'', N'', N'3', N'1', N''), (N'230224', N'2302', N'00,23,2302', N'泰来县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230224', N'泰来县', N'', N'', N'', N'', N'3', N'1', N''), (N'230225', N'2302', N'00,23,2302', N'甘南县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230225', N'甘南县', N'', N'', N'', N'', N'3', N'1', N''), (N'230227', N'2302', N'00,23,2302', N'富裕县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230227', N'富裕县', N'', N'', N'', N'', N'3', N'1', N''), (N'230229', N'2302', N'00,23,2302', N'克山县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230229', N'克山县', N'', N'', N'', N'', N'3', N'1', N''), (N'230230', N'2302', N'00,23,2302', N'克东县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230230', N'克东县', N'', N'', N'', N'', N'3', N'1', N''), (N'230231', N'2302', N'00,23,2302', N'拜泉县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230231', N'拜泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'230281', N'2302', N'00,23,2302', N'讷河市', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230281', N'讷河市', N'', N'', N'', N'', N'3', N'1', N''), (N'2303', N'23', N'00,23', N'鸡西市', N'23', N'黑龙江省', N'2303', N'鸡西市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230302', N'2303', N'00,23,2303', N'鸡冠区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230302', N'鸡冠区', N'', N'', N'', N'', N'3', N'1', N''), (N'230303', N'2303', N'00,23,2303', N'恒山区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230303', N'恒山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230304', N'2303', N'00,23,2303', N'滴道区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230304', N'滴道区', N'', N'', N'', N'', N'3', N'1', N''), (N'230305', N'2303', N'00,23,2303', N'梨树区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230305', N'梨树区', N'', N'', N'', N'', N'3', N'1', N''), (N'230306', N'2303', N'00,23,2303', N'城子河区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230306', N'城子河区', N'', N'', N'', N'', N'3', N'1', N''), (N'230307', N'2303', N'00,23,2303', N'麻山区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230307', N'麻山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230321', N'2303', N'00,23,2303', N'鸡东县', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230321', N'鸡东县', N'', N'', N'', N'', N'3', N'1', N''), (N'230381', N'2303', N'00,23,2303', N'虎林市', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230381', N'虎林市', N'', N'', N'', N'', N'3', N'1', N''), (N'230382', N'2303', N'00,23,2303', N'密山市', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230382', N'密山市', N'', N'', N'', N'', N'3', N'1', N''), (N'2304', N'23', N'00,23', N'鹤岗市', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230402', N'2304', N'00,23,2304', N'向阳区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230402', N'向阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'230403', N'2304', N'00,23,2304', N'工农区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230403', N'工农区', N'', N'', N'', N'', N'3', N'1', N''), (N'230404', N'2304', N'00,23,2304', N'南山区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230404', N'南山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230405', N'2304', N'00,23,2304', N'兴安区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230405', N'兴安区', N'', N'', N'', N'', N'3', N'1', N''), (N'230406', N'2304', N'00,23,2304', N'东山区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230406', N'东山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230407', N'2304', N'00,23,2304', N'兴山区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230407', N'兴山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230421', N'2304', N'00,23,2304', N'萝北县', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230421', N'萝北县', N'', N'', N'', N'', N'3', N'1', N''), (N'230422', N'2304', N'00,23,2304', N'绥滨县', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230422', N'绥滨县', N'', N'', N'', N'', N'3', N'1', N''), (N'2305', N'23', N'00,23', N'双鸭山市', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230502', N'2305', N'00,23,2305', N'尖山区', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230502', N'尖山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230503', N'2305', N'00,23,2305', N'岭东区', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230503', N'岭东区', N'', N'', N'', N'', N'3', N'1', N''), (N'230505', N'2305', N'00,23,2305', N'四方台区', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230505', N'四方台区', N'', N'', N'', N'', N'3', N'1', N''), (N'230506', N'2305', N'00,23,2305', N'宝山区', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230506', N'宝山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230521', N'2305', N'00,23,2305', N'集贤县', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230521', N'集贤县', N'', N'', N'', N'', N'3', N'1', N''), (N'230522', N'2305', N'00,23,2305', N'友谊县', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230522', N'友谊县', N'', N'', N'', N'', N'3', N'1', N''), (N'230523', N'2305', N'00,23,2305', N'宝清县', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230523', N'宝清县', N'', N'', N'', N'', N'3', N'1', N''), (N'230524', N'2305', N'00,23,2305', N'饶河县', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230524', N'饶河县', N'', N'', N'', N'', N'3', N'1', N''), (N'2306', N'23', N'00,23', N'大庆市', N'23', N'黑龙江省', N'2306', N'大庆市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230602', N'2306', N'00,23,2306', N'萨尔图区', N'23', N'黑龙江省', N'2306', N'大庆市', N'230602', N'萨尔图区', N'', N'', N'', N'', N'3', N'1', N''), (N'230603', N'2306', N'00,23,2306', N'龙凤区', N'23', N'黑龙江省', N'2306', N'大庆市', N'230603', N'龙凤区', N'', N'', N'', N'', N'3', N'1', N''), (N'230604', N'2306', N'00,23,2306', N'让胡路区', N'23', N'黑龙江省', N'2306', N'大庆市', N'230604', N'让胡路区', N'', N'', N'', N'', N'3', N'1', N''), (N'230605', N'2306', N'00,23,2306', N'红岗区', N'23', N'黑龙江省', N'2306', N'大庆市', N'230605', N'红岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'230606', N'2306', N'00,23,2306', N'大同区', N'23', N'黑龙江省', N'2306', N'大庆市', N'230606', N'大同区', N'', N'', N'', N'', N'3', N'1', N''), (N'230621', N'2306', N'00,23,2306', N'肇州县', N'23', N'黑龙江省', N'2306', N'大庆市', N'230621', N'肇州县', N'', N'', N'', N'', N'3', N'1', N''), (N'230622', N'2306', N'00,23,2306', N'肇源县', N'23', N'黑龙江省', N'2306', N'大庆市', N'230622', N'肇源县', N'', N'', N'', N'', N'3', N'1', N''), (N'230623', N'2306', N'00,23,2306', N'林甸县', N'23', N'黑龙江省', N'2306', N'大庆市', N'230623', N'林甸县', N'', N'', N'', N'', N'3', N'1', N''), (N'230624', N'2306', N'00,23,2306', N'杜尔伯特蒙古族自治县', N'23', N'黑龙江省', N'2306', N'大庆市', N'230624', N'杜尔伯特蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'2307', N'23', N'00,23', N'伊春市', N'23', N'黑龙江省', N'2307', N'伊春市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230717', N'2307', N'00,23,2307', N'伊美区', N'23', N'黑龙江省', N'2307', N'伊春市', N'230717', N'伊美区', N'', N'', N'', N'', N'3', N'1', N''), (N'230718', N'2307', N'00,23,2307', N'乌翠区', N'23', N'黑龙江省', N'2307', N'伊春市', N'230718', N'乌翠区', N'', N'', N'', N'', N'3', N'1', N''), (N'230719', N'2307', N'00,23,2307', N'友好区', N'23', N'黑龙江省', N'2307', N'伊春市', N'230719', N'友好区', N'', N'', N'', N'', N'3', N'1', N''), (N'230722', N'2307', N'00,23,2307', N'嘉荫县', N'23', N'黑龙江省', N'2307', N'伊春市', N'230722', N'嘉荫县', N'', N'', N'', N'', N'3', N'1', N''), (N'230723', N'2307', N'00,23,2307', N'汤旺县', N'23', N'黑龙江省', N'2307', N'伊春市', N'230723', N'汤旺县', N'', N'', N'', N'', N'3', N'1', N''), (N'230724', N'2307', N'00,23,2307', N'丰林县', N'23', N'黑龙江省', N'2307', N'伊春市', N'230724', N'丰林县', N'', N'', N'', N'', N'3', N'1', N''), (N'230725', N'2307', N'00,23,2307', N'大箐山县', N'23', N'黑龙江省', N'2307', N'伊春市', N'230725', N'大箐山县', N'', N'', N'', N'', N'3', N'1', N''), (N'230726', N'2307', N'00,23,2307', N'南岔县', N'23', N'黑龙江省', N'2307', N'伊春市', N'230726', N'南岔县', N'', N'', N'', N'', N'3', N'1', N''), (N'230751', N'2307', N'00,23,2307', N'金林区', N'23', N'黑龙江省', N'2307', N'伊春市', N'230751', N'金林区', N'', N'', N'', N'', N'3', N'1', N''), (N'230781', N'2307', N'00,23,2307', N'铁力市', N'23', N'黑龙江省', N'2307', N'伊春市', N'230781', N'铁力市', N'', N'', N'', N'', N'3', N'1', N''), (N'2308', N'23', N'00,23', N'佳木斯市', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230803', N'2308', N'00,23,2308', N'向阳区', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230803', N'向阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'230804', N'2308', N'00,23,2308', N'前进区', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230804', N'前进区', N'', N'', N'', N'', N'3', N'1', N''), (N'230805', N'2308', N'00,23,2308', N'东风区', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230805', N'东风区', N'', N'', N'', N'', N'3', N'1', N''), (N'230811', N'2308', N'00,23,2308', N'郊区', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230811', N'郊区', N'', N'', N'', N'', N'3', N'1', N''), (N'230822', N'2308', N'00,23,2308', N'桦南县', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230822', N'桦南县', N'', N'', N'', N'', N'3', N'1', N''), (N'230826', N'2308', N'00,23,2308', N'桦川县', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230826', N'桦川县', N'', N'', N'', N'', N'3', N'1', N''), (N'230828', N'2308', N'00,23,2308', N'汤原县', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230828', N'汤原县', N'', N'', N'', N'', N'3', N'1', N''), (N'230881', N'2308', N'00,23,2308', N'同江市', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230881', N'同江市', N'', N'', N'', N'', N'3', N'1', N''), (N'230882', N'2308', N'00,23,2308', N'富锦市', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230882', N'富锦市', N'', N'', N'', N'', N'3', N'1', N''), (N'230883', N'2308', N'00,23,2308', N'抚远市', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230883', N'抚远市', N'', N'', N'', N'', N'3', N'1', N''), (N'2309', N'23', N'00,23', N'七台河市', N'23', N'黑龙江省', N'2309', N'七台河市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230902', N'2309', N'00,23,2309', N'新兴区', N'23', N'黑龙江省', N'2309', N'七台河市', N'230902', N'新兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'230903', N'2309', N'00,23,2309', N'桃山区', N'23', N'黑龙江省', N'2309', N'七台河市', N'230903', N'桃山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230904', N'2309', N'00,23,2309', N'茄子河区', N'23', N'黑龙江省', N'2309', N'七台河市', N'230904', N'茄子河区', N'', N'', N'', N'', N'3', N'1', N''), (N'230921', N'2309', N'00,23,2309', N'勃利县', N'23', N'黑龙江省', N'2309', N'七台河市', N'230921', N'勃利县', N'', N'', N'', N'', N'3', N'1', N''), (N'2310', N'23', N'00,23', N'牡丹江市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'231002', N'2310', N'00,23,2310', N'东安区', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231002', N'东安区', N'', N'', N'', N'', N'3', N'1', N''), (N'231003', N'2310', N'00,23,2310', N'阳明区', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231003', N'阳明区', N'', N'', N'', N'', N'3', N'1', N''), (N'231004', N'2310', N'00,23,2310', N'爱民区', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231004', N'爱民区', N'', N'', N'', N'', N'3', N'1', N''), (N'231005', N'2310', N'00,23,2310', N'西安区', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231005', N'西安区', N'', N'', N'', N'', N'3', N'1', N''), (N'231025', N'2310', N'00,23,2310', N'林口县', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231025', N'林口县', N'', N'', N'', N'', N'3', N'1', N''), (N'231081', N'2310', N'00,23,2310', N'绥芬河市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231081', N'绥芬河市', N'', N'', N'', N'', N'3', N'1', N''), (N'231083', N'2310', N'00,23,2310', N'海林市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231083', N'海林市', N'', N'', N'', N'', N'3', N'1', N''), (N'231084', N'2310', N'00,23,2310', N'宁安市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231084', N'宁安市', N'', N'', N'', N'', N'3', N'1', N''), (N'231085', N'2310', N'00,23,2310', N'穆棱市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231085', N'穆棱市', N'', N'', N'', N'', N'3', N'1', N''), (N'231086', N'2310', N'00,23,2310', N'东宁市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231086', N'东宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'2311', N'23', N'00,23', N'黑河市', N'23', N'黑龙江省', N'2311', N'黑河市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'231102', N'2311', N'00,23,2311', N'爱辉区', N'23', N'黑龙江省', N'2311', N'黑河市', N'231102', N'爱辉区', N'', N'', N'', N'', N'3', N'1', N''), (N'231123', N'2311', N'00,23,2311', N'逊克县', N'23', N'黑龙江省', N'2311', N'黑河市', N'231123', N'逊克县', N'', N'', N'', N'', N'3', N'1', N''), (N'231124', N'2311', N'00,23,2311', N'孙吴县', N'23', N'黑龙江省', N'2311', N'黑河市', N'231124', N'孙吴县', N'', N'', N'', N'', N'3', N'1', N''), (N'231181', N'2311', N'00,23,2311', N'北安市', N'23', N'黑龙江省', N'2311', N'黑河市', N'231181', N'北安市', N'', N'', N'', N'', N'3', N'1', N''), (N'231182', N'2311', N'00,23,2311', N'五大连池市', N'23', N'黑龙江省', N'2311', N'黑河市', N'231182', N'五大连池市', N'', N'', N'', N'', N'3', N'1', N''), (N'231183', N'2311', N'00,23,2311', N'嫩江市', N'23', N'黑龙江省', N'2311', N'黑河市', N'231183', N'嫩江市', N'', N'', N'', N'', N'3', N'1', N''), (N'2312', N'23', N'00,23', N'绥化市', N'23', N'黑龙江省', N'2312', N'绥化市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'231202', N'2312', N'00,23,2312', N'北林区', N'23', N'黑龙江省', N'2312', N'绥化市', N'231202', N'北林区', N'', N'', N'', N'', N'3', N'1', N''), (N'231221', N'2312', N'00,23,2312', N'望奎县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231221', N'望奎县', N'', N'', N'', N'', N'3', N'1', N''), (N'231222', N'2312', N'00,23,2312', N'兰西县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231222', N'兰西县', N'', N'', N'', N'', N'3', N'1', N''), (N'231223', N'2312', N'00,23,2312', N'青冈县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231223', N'青冈县', N'', N'', N'', N'', N'3', N'1', N''), (N'231224', N'2312', N'00,23,2312', N'庆安县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231224', N'庆安县', N'', N'', N'', N'', N'3', N'1', N''), (N'231225', N'2312', N'00,23,2312', N'明水县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231225', N'明水县', N'', N'', N'', N'', N'3', N'1', N''), (N'231226', N'2312', N'00,23,2312', N'绥棱县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231226', N'绥棱县', N'', N'', N'', N'', N'3', N'1', N''), (N'231281', N'2312', N'00,23,2312', N'安达市', N'23', N'黑龙江省', N'2312', N'绥化市', N'231281', N'安达市', N'', N'', N'', N'', N'3', N'1', N''), (N'231282', N'2312', N'00,23,2312', N'肇东市', N'23', N'黑龙江省', N'2312', N'绥化市', N'231282', N'肇东市', N'', N'', N'', N'', N'3', N'1', N''), (N'231283', N'2312', N'00,23,2312', N'海伦市', N'23', N'黑龙江省', N'2312', N'绥化市', N'231283', N'海伦市', N'', N'', N'', N'', N'3', N'1', N''), (N'2327', N'23', N'00,23', N'大兴安岭地区', N'23', N'黑龙江省', N'2327', N'大兴安岭地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'232701', N'2327', N'00,23,2327', N'漠河市', N'23', N'黑龙江省', N'2327', N'大兴安岭地区', N'232701', N'漠河市', N'', N'', N'', N'', N'3', N'1', N''), (N'232721', N'2327', N'00,23,2327', N'呼玛县', N'23', N'黑龙江省', N'2327', N'大兴安岭地区', N'232721', N'呼玛县', N'', N'', N'', N'', N'3', N'1', N''), (N'232722', N'2327', N'00,23,2327', N'塔河县', N'23', N'黑龙江省', N'2327', N'大兴安岭地区', N'232722', N'塔河县', N'', N'', N'', N'', N'3', N'1', N''), (N'31', N'00', N'00', N'上海市', N'31', N'上海市', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3101', N'31', N'00,31', N'上海市', N'31', N'上海市', N'3101', N'上海市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'310101', N'3101', N'00,31,3101', N'黄浦区', N'31', N'上海市', N'3101', N'上海市', N'310101', N'黄浦区', N'', N'', N'', N'', N'3', N'1', N''), (N'310104', N'3101', N'00,31,3101', N'徐汇区', N'31', N'上海市', N'3101', N'上海市', N'310104', N'徐汇区', N'', N'', N'', N'', N'3', N'1', N''), (N'310105', N'3101', N'00,31,3101', N'长宁区', N'31', N'上海市', N'3101', N'上海市', N'310105', N'长宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'310106', N'3101', N'00,31,3101', N'静安区', N'31', N'上海市', N'3101', N'上海市', N'310106', N'静安区', N'', N'', N'', N'', N'3', N'1', N''), (N'310107', N'3101', N'00,31,3101', N'普陀区', N'31', N'上海市', N'3101', N'上海市', N'310107', N'普陀区', N'', N'', N'', N'', N'3', N'1', N''), (N'310109', N'3101', N'00,31,3101', N'虹口区', N'31', N'上海市', N'3101', N'上海市', N'310109', N'虹口区', N'', N'', N'', N'', N'3', N'1', N''), (N'310110', N'3101', N'00,31,3101', N'杨浦区', N'31', N'上海市', N'3101', N'上海市', N'310110', N'杨浦区', N'', N'', N'', N'', N'3', N'1', N''), (N'310112', N'3101', N'00,31,3101', N'闵行区', N'31', N'上海市', N'3101', N'上海市', N'310112', N'闵行区', N'', N'', N'', N'', N'3', N'1', N''), (N'310113', N'3101', N'00,31,3101', N'宝山区', N'31', N'上海市', N'3101', N'上海市', N'310113', N'宝山区', N'', N'', N'', N'', N'3', N'1', N''), (N'310114', N'3101', N'00,31,3101', N'嘉定区', N'31', N'上海市', N'3101', N'上海市', N'310114', N'嘉定区', N'', N'', N'', N'', N'3', N'1', N''), (N'310115', N'3101', N'00,31,3101', N'浦东新区', N'31', N'上海市', N'3101', N'上海市', N'310115', N'浦东新区', N'', N'', N'', N'', N'3', N'1', N''), (N'310116', N'3101', N'00,31,3101', N'金山区', N'31', N'上海市', N'3101', N'上海市', N'310116', N'金山区', N'', N'', N'', N'', N'3', N'1', N''), (N'310117', N'3101', N'00,31,3101', N'松江区', N'31', N'上海市', N'3101', N'上海市', N'310117', N'松江区', N'', N'', N'', N'', N'3', N'1', N''), (N'310118', N'3101', N'00,31,3101', N'青浦区', N'31', N'上海市', N'3101', N'上海市', N'310118', N'青浦区', N'', N'', N'', N'', N'3', N'1', N''), (N'310120', N'3101', N'00,31,3101', N'奉贤区', N'31', N'上海市', N'3101', N'上海市', N'310120', N'奉贤区', N'', N'', N'', N'', N'3', N'1', N''), (N'310151', N'3101', N'00,31,3101', N'崇明区', N'31', N'上海市', N'3101', N'上海市', N'310151', N'崇明区', N'', N'', N'', N'', N'3', N'1', N''), (N'32', N'00', N'00', N'江苏省', N'32', N'江苏省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3201', N'32', N'00,32', N'南京市', N'32', N'江苏省', N'3201', N'南京市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320102', N'3201', N'00,32,3201', N'玄武区', N'32', N'江苏省', N'3201', N'南京市', N'320102', N'玄武区', N'', N'', N'', N'', N'3', N'1', N''), (N'320104', N'3201', N'00,32,3201', N'秦淮区', N'32', N'江苏省', N'3201', N'南京市', N'320104', N'秦淮区', N'', N'', N'', N'', N'3', N'1', N''), (N'320105', N'3201', N'00,32,3201', N'建邺区', N'32', N'江苏省', N'3201', N'南京市', N'320105', N'建邺区', N'', N'', N'', N'', N'3', N'1', N''), (N'320106', N'3201', N'00,32,3201', N'鼓楼区', N'32', N'江苏省', N'3201', N'南京市', N'320106', N'鼓楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'320111', N'3201', N'00,32,3201', N'浦口区', N'32', N'江苏省', N'3201', N'南京市', N'320111', N'浦口区', N'', N'', N'', N'', N'3', N'1', N''), (N'320113', N'3201', N'00,32,3201', N'栖霞区', N'32', N'江苏省', N'3201', N'南京市', N'320113', N'栖霞区', N'', N'', N'', N'', N'3', N'1', N''), (N'320114', N'3201', N'00,32,3201', N'雨花台区', N'32', N'江苏省', N'3201', N'南京市', N'320114', N'雨花台区', N'', N'', N'', N'', N'3', N'1', N''), (N'320115', N'3201', N'00,32,3201', N'江宁区', N'32', N'江苏省', N'3201', N'南京市', N'320115', N'江宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'320116', N'3201', N'00,32,3201', N'六合区', N'32', N'江苏省', N'3201', N'南京市', N'320116', N'六合区', N'', N'', N'', N'', N'3', N'1', N''), (N'320117', N'3201', N'00,32,3201', N'溧水区', N'32', N'江苏省', N'3201', N'南京市', N'320117', N'溧水区', N'', N'', N'', N'', N'3', N'1', N''), (N'320118', N'3201', N'00,32,3201', N'高淳区', N'32', N'江苏省', N'3201', N'南京市', N'320118', N'高淳区', N'', N'', N'', N'', N'3', N'1', N''), (N'3202', N'32', N'00,32', N'无锡市', N'32', N'江苏省', N'3202', N'无锡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320205', N'3202', N'00,32,3202', N'锡山区', N'32', N'江苏省', N'3202', N'无锡市', N'320205', N'锡山区', N'', N'', N'', N'', N'3', N'1', N''), (N'320206', N'3202', N'00,32,3202', N'惠山区', N'32', N'江苏省', N'3202', N'无锡市', N'320206', N'惠山区', N'', N'', N'', N'', N'3', N'1', N''), (N'320211', N'3202', N'00,32,3202', N'滨湖区', N'32', N'江苏省', N'3202', N'无锡市', N'320211', N'滨湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'320213', N'3202', N'00,32,3202', N'梁溪区', N'32', N'江苏省', N'3202', N'无锡市', N'320213', N'梁溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'320214', N'3202', N'00,32,3202', N'新吴区', N'32', N'江苏省', N'3202', N'无锡市', N'320214', N'新吴区', N'', N'', N'', N'', N'3', N'1', N''), (N'320281', N'3202', N'00,32,3202', N'江阴市', N'32', N'江苏省', N'3202', N'无锡市', N'320281', N'江阴市', N'', N'', N'', N'', N'3', N'1', N''), (N'320282', N'3202', N'00,32,3202', N'宜兴市', N'32', N'江苏省', N'3202', N'无锡市', N'320282', N'宜兴市', N'', N'', N'', N'', N'3', N'1', N''), (N'3203', N'32', N'00,32', N'徐州市', N'32', N'江苏省', N'3203', N'徐州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320302', N'3203', N'00,32,3203', N'鼓楼区', N'32', N'江苏省', N'3203', N'徐州市', N'320302', N'鼓楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'320303', N'3203', N'00,32,3203', N'云龙区', N'32', N'江苏省', N'3203', N'徐州市', N'320303', N'云龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'320305', N'3203', N'00,32,3203', N'贾汪区', N'32', N'江苏省', N'3203', N'徐州市', N'320305', N'贾汪区', N'', N'', N'', N'', N'3', N'1', N'')
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'320311', N'3203', N'00,32,3203', N'泉山区', N'32', N'江苏省', N'3203', N'徐州市', N'320311', N'泉山区', N'', N'', N'', N'', N'3', N'1', N''), (N'320312', N'3203', N'00,32,3203', N'铜山区', N'32', N'江苏省', N'3203', N'徐州市', N'320312', N'铜山区', N'', N'', N'', N'', N'3', N'1', N''), (N'320321', N'3203', N'00,32,3203', N'丰县', N'32', N'江苏省', N'3203', N'徐州市', N'320321', N'丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'320322', N'3203', N'00,32,3203', N'沛县', N'32', N'江苏省', N'3203', N'徐州市', N'320322', N'沛县', N'', N'', N'', N'', N'3', N'1', N''), (N'320324', N'3203', N'00,32,3203', N'睢宁县', N'32', N'江苏省', N'3203', N'徐州市', N'320324', N'睢宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'320381', N'3203', N'00,32,3203', N'新沂市', N'32', N'江苏省', N'3203', N'徐州市', N'320381', N'新沂市', N'', N'', N'', N'', N'3', N'1', N''), (N'320382', N'3203', N'00,32,3203', N'邳州市', N'32', N'江苏省', N'3203', N'徐州市', N'320382', N'邳州市', N'', N'', N'', N'', N'3', N'1', N''), (N'3204', N'32', N'00,32', N'常州市', N'32', N'江苏省', N'3204', N'常州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320402', N'3204', N'00,32,3204', N'天宁区', N'32', N'江苏省', N'3204', N'常州市', N'320402', N'天宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'320404', N'3204', N'00,32,3204', N'钟楼区', N'32', N'江苏省', N'3204', N'常州市', N'320404', N'钟楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'320411', N'3204', N'00,32,3204', N'新北区', N'32', N'江苏省', N'3204', N'常州市', N'320411', N'新北区', N'', N'', N'', N'', N'3', N'1', N''), (N'320412', N'3204', N'00,32,3204', N'武进区', N'32', N'江苏省', N'3204', N'常州市', N'320412', N'武进区', N'', N'', N'', N'', N'3', N'1', N''), (N'320413', N'3204', N'00,32,3204', N'金坛区', N'32', N'江苏省', N'3204', N'常州市', N'320413', N'金坛区', N'', N'', N'', N'', N'3', N'1', N''), (N'320481', N'3204', N'00,32,3204', N'溧阳市', N'32', N'江苏省', N'3204', N'常州市', N'320481', N'溧阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'3205', N'32', N'00,32', N'苏州市', N'32', N'江苏省', N'3205', N'苏州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320505', N'3205', N'00,32,3205', N'虎丘区', N'32', N'江苏省', N'3205', N'苏州市', N'320505', N'虎丘区', N'', N'', N'', N'', N'3', N'1', N''), (N'320506', N'3205', N'00,32,3205', N'吴中区', N'32', N'江苏省', N'3205', N'苏州市', N'320506', N'吴中区', N'', N'', N'', N'', N'3', N'1', N''), (N'320507', N'3205', N'00,32,3205', N'相城区', N'32', N'江苏省', N'3205', N'苏州市', N'320507', N'相城区', N'', N'', N'', N'', N'3', N'1', N''), (N'320508', N'3205', N'00,32,3205', N'姑苏区', N'32', N'江苏省', N'3205', N'苏州市', N'320508', N'姑苏区', N'', N'', N'', N'', N'3', N'1', N''), (N'320509', N'3205', N'00,32,3205', N'吴江区', N'32', N'江苏省', N'3205', N'苏州市', N'320509', N'吴江区', N'', N'', N'', N'', N'3', N'1', N''), (N'320581', N'3205', N'00,32,3205', N'常熟市', N'32', N'江苏省', N'3205', N'苏州市', N'320581', N'常熟市', N'', N'', N'', N'', N'3', N'1', N''), (N'320582', N'3205', N'00,32,3205', N'张家港市', N'32', N'江苏省', N'3205', N'苏州市', N'320582', N'张家港市', N'', N'', N'', N'', N'3', N'1', N''), (N'320583', N'3205', N'00,32,3205', N'昆山市', N'32', N'江苏省', N'3205', N'苏州市', N'320583', N'昆山市', N'', N'', N'', N'', N'3', N'1', N''), (N'320585', N'3205', N'00,32,3205', N'太仓市', N'32', N'江苏省', N'3205', N'苏州市', N'320585', N'太仓市', N'', N'', N'', N'', N'3', N'1', N''), (N'3206', N'32', N'00,32', N'南通市', N'32', N'江苏省', N'3206', N'南通市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320602', N'3206', N'00,32,3206', N'崇川区', N'32', N'江苏省', N'3206', N'南通市', N'320602', N'崇川区', N'', N'', N'', N'', N'3', N'1', N''), (N'320611', N'3206', N'00,32,3206', N'港闸区', N'32', N'江苏省', N'3206', N'南通市', N'320611', N'港闸区', N'', N'', N'', N'', N'3', N'1', N''), (N'320612', N'3206', N'00,32,3206', N'通州区', N'32', N'江苏省', N'3206', N'南通市', N'320612', N'通州区', N'', N'', N'', N'', N'3', N'1', N''), (N'320623', N'3206', N'00,32,3206', N'如东县', N'32', N'江苏省', N'3206', N'南通市', N'320623', N'如东县', N'', N'', N'', N'', N'3', N'1', N''), (N'320681', N'3206', N'00,32,3206', N'启东市', N'32', N'江苏省', N'3206', N'南通市', N'320681', N'启东市', N'', N'', N'', N'', N'3', N'1', N''), (N'320682', N'3206', N'00,32,3206', N'如皋市', N'32', N'江苏省', N'3206', N'南通市', N'320682', N'如皋市', N'', N'', N'', N'', N'3', N'1', N''), (N'320684', N'3206', N'00,32,3206', N'海门市', N'32', N'江苏省', N'3206', N'南通市', N'320684', N'海门市', N'', N'', N'', N'', N'3', N'1', N''), (N'320685', N'3206', N'00,32,3206', N'海安市', N'32', N'江苏省', N'3206', N'南通市', N'320685', N'海安市', N'', N'', N'', N'', N'3', N'1', N''), (N'3207', N'32', N'00,32', N'连云港市', N'32', N'江苏省', N'3207', N'连云港市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320703', N'3207', N'00,32,3207', N'连云区', N'32', N'江苏省', N'3207', N'连云港市', N'320703', N'连云区', N'', N'', N'', N'', N'3', N'1', N''), (N'320706', N'3207', N'00,32,3207', N'海州区', N'32', N'江苏省', N'3207', N'连云港市', N'320706', N'海州区', N'', N'', N'', N'', N'3', N'1', N''), (N'320707', N'3207', N'00,32,3207', N'赣榆区', N'32', N'江苏省', N'3207', N'连云港市', N'320707', N'赣榆区', N'', N'', N'', N'', N'3', N'1', N''), (N'320722', N'3207', N'00,32,3207', N'东海县', N'32', N'江苏省', N'3207', N'连云港市', N'320722', N'东海县', N'', N'', N'', N'', N'3', N'1', N''), (N'320723', N'3207', N'00,32,3207', N'灌云县', N'32', N'江苏省', N'3207', N'连云港市', N'320723', N'灌云县', N'', N'', N'', N'', N'3', N'1', N''), (N'320724', N'3207', N'00,32,3207', N'灌南县', N'32', N'江苏省', N'3207', N'连云港市', N'320724', N'灌南县', N'', N'', N'', N'', N'3', N'1', N''), (N'3208', N'32', N'00,32', N'淮安市', N'32', N'江苏省', N'3208', N'淮安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320803', N'3208', N'00,32,3208', N'淮安区', N'32', N'江苏省', N'3208', N'淮安市', N'320803', N'淮安区', N'', N'', N'', N'', N'3', N'1', N''), (N'320804', N'3208', N'00,32,3208', N'淮阴区', N'32', N'江苏省', N'3208', N'淮安市', N'320804', N'淮阴区', N'', N'', N'', N'', N'3', N'1', N''), (N'320812', N'3208', N'00,32,3208', N'清江浦区', N'32', N'江苏省', N'3208', N'淮安市', N'320812', N'清江浦区', N'', N'', N'', N'', N'3', N'1', N''), (N'320813', N'3208', N'00,32,3208', N'洪泽区', N'32', N'江苏省', N'3208', N'淮安市', N'320813', N'洪泽区', N'', N'', N'', N'', N'3', N'1', N''), (N'320826', N'3208', N'00,32,3208', N'涟水县', N'32', N'江苏省', N'3208', N'淮安市', N'320826', N'涟水县', N'', N'', N'', N'', N'3', N'1', N''), (N'320830', N'3208', N'00,32,3208', N'盱眙县', N'32', N'江苏省', N'3208', N'淮安市', N'320830', N'盱眙县', N'', N'', N'', N'', N'3', N'1', N''), (N'320831', N'3208', N'00,32,3208', N'金湖县', N'32', N'江苏省', N'3208', N'淮安市', N'320831', N'金湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'3209', N'32', N'00,32', N'盐城市', N'32', N'江苏省', N'3209', N'盐城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320902', N'3209', N'00,32,3209', N'亭湖区', N'32', N'江苏省', N'3209', N'盐城市', N'320902', N'亭湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'320903', N'3209', N'00,32,3209', N'盐都区', N'32', N'江苏省', N'3209', N'盐城市', N'320903', N'盐都区', N'', N'', N'', N'', N'3', N'1', N''), (N'320904', N'3209', N'00,32,3209', N'大丰区', N'32', N'江苏省', N'3209', N'盐城市', N'320904', N'大丰区', N'', N'', N'', N'', N'3', N'1', N''), (N'320921', N'3209', N'00,32,3209', N'响水县', N'32', N'江苏省', N'3209', N'盐城市', N'320921', N'响水县', N'', N'', N'', N'', N'3', N'1', N''), (N'320922', N'3209', N'00,32,3209', N'滨海县', N'32', N'江苏省', N'3209', N'盐城市', N'320922', N'滨海县', N'', N'', N'', N'', N'3', N'1', N''), (N'320923', N'3209', N'00,32,3209', N'阜宁县', N'32', N'江苏省', N'3209', N'盐城市', N'320923', N'阜宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'320924', N'3209', N'00,32,3209', N'射阳县', N'32', N'江苏省', N'3209', N'盐城市', N'320924', N'射阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'320925', N'3209', N'00,32,3209', N'建湖县', N'32', N'江苏省', N'3209', N'盐城市', N'320925', N'建湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'320981', N'3209', N'00,32,3209', N'东台市', N'32', N'江苏省', N'3209', N'盐城市', N'320981', N'东台市', N'', N'', N'', N'', N'3', N'1', N''), (N'3210', N'32', N'00,32', N'扬州市', N'32', N'江苏省', N'3210', N'扬州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'321002', N'3210', N'00,32,3210', N'广陵区', N'32', N'江苏省', N'3210', N'扬州市', N'321002', N'广陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'321003', N'3210', N'00,32,3210', N'邗江区', N'32', N'江苏省', N'3210', N'扬州市', N'321003', N'邗江区', N'', N'', N'', N'', N'3', N'1', N''), (N'321012', N'3210', N'00,32,3210', N'江都区', N'32', N'江苏省', N'3210', N'扬州市', N'321012', N'江都区', N'', N'', N'', N'', N'3', N'1', N''), (N'321023', N'3210', N'00,32,3210', N'宝应县', N'32', N'江苏省', N'3210', N'扬州市', N'321023', N'宝应县', N'', N'', N'', N'', N'3', N'1', N''), (N'321081', N'3210', N'00,32,3210', N'仪征市', N'32', N'江苏省', N'3210', N'扬州市', N'321081', N'仪征市', N'', N'', N'', N'', N'3', N'1', N''), (N'321084', N'3210', N'00,32,3210', N'高邮市', N'32', N'江苏省', N'3210', N'扬州市', N'321084', N'高邮市', N'', N'', N'', N'', N'3', N'1', N''), (N'3211', N'32', N'00,32', N'镇江市', N'32', N'江苏省', N'3211', N'镇江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'321102', N'3211', N'00,32,3211', N'京口区', N'32', N'江苏省', N'3211', N'镇江市', N'321102', N'京口区', N'', N'', N'', N'', N'3', N'1', N''), (N'321111', N'3211', N'00,32,3211', N'润州区', N'32', N'江苏省', N'3211', N'镇江市', N'321111', N'润州区', N'', N'', N'', N'', N'3', N'1', N''), (N'321112', N'3211', N'00,32,3211', N'丹徒区', N'32', N'江苏省', N'3211', N'镇江市', N'321112', N'丹徒区', N'', N'', N'', N'', N'3', N'1', N''), (N'321181', N'3211', N'00,32,3211', N'丹阳市', N'32', N'江苏省', N'3211', N'镇江市', N'321181', N'丹阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'321182', N'3211', N'00,32,3211', N'扬中市', N'32', N'江苏省', N'3211', N'镇江市', N'321182', N'扬中市', N'', N'', N'', N'', N'3', N'1', N''), (N'321183', N'3211', N'00,32,3211', N'句容市', N'32', N'江苏省', N'3211', N'镇江市', N'321183', N'句容市', N'', N'', N'', N'', N'3', N'1', N''), (N'3212', N'32', N'00,32', N'泰州市', N'32', N'江苏省', N'3212', N'泰州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'321202', N'3212', N'00,32,3212', N'海陵区', N'32', N'江苏省', N'3212', N'泰州市', N'321202', N'海陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'321203', N'3212', N'00,32,3212', N'高港区', N'32', N'江苏省', N'3212', N'泰州市', N'321203', N'高港区', N'', N'', N'', N'', N'3', N'1', N''), (N'321204', N'3212', N'00,32,3212', N'姜堰区', N'32', N'江苏省', N'3212', N'泰州市', N'321204', N'姜堰区', N'', N'', N'', N'', N'3', N'1', N''), (N'321281', N'3212', N'00,32,3212', N'兴化市', N'32', N'江苏省', N'3212', N'泰州市', N'321281', N'兴化市', N'', N'', N'', N'', N'3', N'1', N''), (N'321282', N'3212', N'00,32,3212', N'靖江市', N'32', N'江苏省', N'3212', N'泰州市', N'321282', N'靖江市', N'', N'', N'', N'', N'3', N'1', N''), (N'321283', N'3212', N'00,32,3212', N'泰兴市', N'32', N'江苏省', N'3212', N'泰州市', N'321283', N'泰兴市', N'', N'', N'', N'', N'3', N'1', N''), (N'3213', N'32', N'00,32', N'宿迁市', N'32', N'江苏省', N'3213', N'宿迁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'321302', N'3213', N'00,32,3213', N'宿城区', N'32', N'江苏省', N'3213', N'宿迁市', N'321302', N'宿城区', N'', N'', N'', N'', N'3', N'1', N''), (N'321311', N'3213', N'00,32,3213', N'宿豫区', N'32', N'江苏省', N'3213', N'宿迁市', N'321311', N'宿豫区', N'', N'', N'', N'', N'3', N'1', N''), (N'321322', N'3213', N'00,32,3213', N'沭阳县', N'32', N'江苏省', N'3213', N'宿迁市', N'321322', N'沭阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'321323', N'3213', N'00,32,3213', N'泗阳县', N'32', N'江苏省', N'3213', N'宿迁市', N'321323', N'泗阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'321324', N'3213', N'00,32,3213', N'泗洪县', N'32', N'江苏省', N'3213', N'宿迁市', N'321324', N'泗洪县', N'', N'', N'', N'', N'3', N'1', N''), (N'33', N'00', N'00', N'浙江省', N'33', N'浙江省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3301', N'33', N'00,33', N'杭州市', N'33', N'浙江省', N'3301', N'杭州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330102', N'3301', N'00,33,3301', N'上城区', N'33', N'浙江省', N'3301', N'杭州市', N'330102', N'上城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330103', N'3301', N'00,33,3301', N'下城区', N'33', N'浙江省', N'3301', N'杭州市', N'330103', N'下城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330104', N'3301', N'00,33,3301', N'江干区', N'33', N'浙江省', N'3301', N'杭州市', N'330104', N'江干区', N'', N'', N'', N'', N'3', N'1', N''), (N'330105', N'3301', N'00,33,3301', N'拱墅区', N'33', N'浙江省', N'3301', N'杭州市', N'330105', N'拱墅区', N'', N'', N'', N'', N'3', N'1', N''), (N'330106', N'3301', N'00,33,3301', N'西湖区', N'33', N'浙江省', N'3301', N'杭州市', N'330106', N'西湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'330108', N'3301', N'00,33,3301', N'滨江区', N'33', N'浙江省', N'3301', N'杭州市', N'330108', N'滨江区', N'', N'', N'', N'', N'3', N'1', N''), (N'330109', N'3301', N'00,33,3301', N'萧山区', N'33', N'浙江省', N'3301', N'杭州市', N'330109', N'萧山区', N'', N'', N'', N'', N'3', N'1', N''), (N'330110', N'3301', N'00,33,3301', N'余杭区', N'33', N'浙江省', N'3301', N'杭州市', N'330110', N'余杭区', N'', N'', N'', N'', N'3', N'1', N''), (N'330111', N'3301', N'00,33,3301', N'富阳区', N'33', N'浙江省', N'3301', N'杭州市', N'330111', N'富阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'330112', N'3301', N'00,33,3301', N'临安区', N'33', N'浙江省', N'3301', N'杭州市', N'330112', N'临安区', N'', N'', N'', N'', N'3', N'1', N''), (N'330122', N'3301', N'00,33,3301', N'桐庐县', N'33', N'浙江省', N'3301', N'杭州市', N'330122', N'桐庐县', N'', N'', N'', N'', N'3', N'1', N''), (N'330127', N'3301', N'00,33,3301', N'淳安县', N'33', N'浙江省', N'3301', N'杭州市', N'330127', N'淳安县', N'', N'', N'', N'', N'3', N'1', N''), (N'330182', N'3301', N'00,33,3301', N'建德市', N'33', N'浙江省', N'3301', N'杭州市', N'330182', N'建德市', N'', N'', N'', N'', N'3', N'1', N''), (N'3302', N'33', N'00,33', N'宁波市', N'33', N'浙江省', N'3302', N'宁波市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330203', N'3302', N'00,33,3302', N'海曙区', N'33', N'浙江省', N'3302', N'宁波市', N'330203', N'海曙区', N'', N'', N'', N'', N'3', N'1', N''), (N'330205', N'3302', N'00,33,3302', N'江北区', N'33', N'浙江省', N'3302', N'宁波市', N'330205', N'江北区', N'', N'', N'', N'', N'3', N'1', N''), (N'330206', N'3302', N'00,33,3302', N'北仑区', N'33', N'浙江省', N'3302', N'宁波市', N'330206', N'北仑区', N'', N'', N'', N'', N'3', N'1', N''), (N'330211', N'3302', N'00,33,3302', N'镇海区', N'33', N'浙江省', N'3302', N'宁波市', N'330211', N'镇海区', N'', N'', N'', N'', N'3', N'1', N''), (N'330212', N'3302', N'00,33,3302', N'鄞州区', N'33', N'浙江省', N'3302', N'宁波市', N'330212', N'鄞州区', N'', N'', N'', N'', N'3', N'1', N''), (N'330213', N'3302', N'00,33,3302', N'奉化区', N'33', N'浙江省', N'3302', N'宁波市', N'330213', N'奉化区', N'', N'', N'', N'', N'3', N'1', N''), (N'330225', N'3302', N'00,33,3302', N'象山县', N'33', N'浙江省', N'3302', N'宁波市', N'330225', N'象山县', N'', N'', N'', N'', N'3', N'1', N''), (N'330226', N'3302', N'00,33,3302', N'宁海县', N'33', N'浙江省', N'3302', N'宁波市', N'330226', N'宁海县', N'', N'', N'', N'', N'3', N'1', N''), (N'330281', N'3302', N'00,33,3302', N'余姚市', N'33', N'浙江省', N'3302', N'宁波市', N'330281', N'余姚市', N'', N'', N'', N'', N'3', N'1', N''), (N'330282', N'3302', N'00,33,3302', N'慈溪市', N'33', N'浙江省', N'3302', N'宁波市', N'330282', N'慈溪市', N'', N'', N'', N'', N'3', N'1', N''), (N'3303', N'33', N'00,33', N'温州市', N'33', N'浙江省', N'3303', N'温州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330302', N'3303', N'00,33,3303', N'鹿城区', N'33', N'浙江省', N'3303', N'温州市', N'330302', N'鹿城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330303', N'3303', N'00,33,3303', N'龙湾区', N'33', N'浙江省', N'3303', N'温州市', N'330303', N'龙湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'330304', N'3303', N'00,33,3303', N'瓯海区', N'33', N'浙江省', N'3303', N'温州市', N'330304', N'瓯海区', N'', N'', N'', N'', N'3', N'1', N''), (N'330305', N'3303', N'00,33,3303', N'洞头区', N'33', N'浙江省', N'3303', N'温州市', N'330305', N'洞头区', N'', N'', N'', N'', N'3', N'1', N''), (N'330324', N'3303', N'00,33,3303', N'永嘉县', N'33', N'浙江省', N'3303', N'温州市', N'330324', N'永嘉县', N'', N'', N'', N'', N'3', N'1', N''), (N'330326', N'3303', N'00,33,3303', N'平阳县', N'33', N'浙江省', N'3303', N'温州市', N'330326', N'平阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'330327', N'3303', N'00,33,3303', N'苍南县', N'33', N'浙江省', N'3303', N'温州市', N'330327', N'苍南县', N'', N'', N'', N'', N'3', N'1', N''), (N'330328', N'3303', N'00,33,3303', N'文成县', N'33', N'浙江省', N'3303', N'温州市', N'330328', N'文成县', N'', N'', N'', N'', N'3', N'1', N''), (N'330329', N'3303', N'00,33,3303', N'泰顺县', N'33', N'浙江省', N'3303', N'温州市', N'330329', N'泰顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'330381', N'3303', N'00,33,3303', N'瑞安市', N'33', N'浙江省', N'3303', N'温州市', N'330381', N'瑞安市', N'', N'', N'', N'', N'3', N'1', N''), (N'330382', N'3303', N'00,33,3303', N'乐清市', N'33', N'浙江省', N'3303', N'温州市', N'330382', N'乐清市', N'', N'', N'', N'', N'3', N'1', N''), (N'330383', N'3303', N'00,33,3303', N'龙港市', N'33', N'浙江省', N'3303', N'温州市', N'330383', N'龙港市', N'', N'', N'', N'', N'3', N'1', N''), (N'3304', N'33', N'00,33', N'嘉兴市', N'33', N'浙江省', N'3304', N'嘉兴市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330402', N'3304', N'00,33,3304', N'南湖区', N'33', N'浙江省', N'3304', N'嘉兴市', N'330402', N'南湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'330411', N'3304', N'00,33,3304', N'秀洲区', N'33', N'浙江省', N'3304', N'嘉兴市', N'330411', N'秀洲区', N'', N'', N'', N'', N'3', N'1', N''), (N'330421', N'3304', N'00,33,3304', N'嘉善县', N'33', N'浙江省', N'3304', N'嘉兴市', N'330421', N'嘉善县', N'', N'', N'', N'', N'3', N'1', N''), (N'330424', N'3304', N'00,33,3304', N'海盐县', N'33', N'浙江省', N'3304', N'嘉兴市', N'330424', N'海盐县', N'', N'', N'', N'', N'3', N'1', N''), (N'330481', N'3304', N'00,33,3304', N'海宁市', N'33', N'浙江省', N'3304', N'嘉兴市', N'330481', N'海宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'330482', N'3304', N'00,33,3304', N'平湖市', N'33', N'浙江省', N'3304', N'嘉兴市', N'330482', N'平湖市', N'', N'', N'', N'', N'3', N'1', N''), (N'330483', N'3304', N'00,33,3304', N'桐乡市', N'33', N'浙江省', N'3304', N'嘉兴市', N'330483', N'桐乡市', N'', N'', N'', N'', N'3', N'1', N''), (N'3305', N'33', N'00,33', N'湖州市', N'33', N'浙江省', N'3305', N'湖州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330502', N'3305', N'00,33,3305', N'吴兴区', N'33', N'浙江省', N'3305', N'湖州市', N'330502', N'吴兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'330503', N'3305', N'00,33,3305', N'南浔区', N'33', N'浙江省', N'3305', N'湖州市', N'330503', N'南浔区', N'', N'', N'', N'', N'3', N'1', N''), (N'330521', N'3305', N'00,33,3305', N'德清县', N'33', N'浙江省', N'3305', N'湖州市', N'330521', N'德清县', N'', N'', N'', N'', N'3', N'1', N''), (N'330522', N'3305', N'00,33,3305', N'长兴县', N'33', N'浙江省', N'3305', N'湖州市', N'330522', N'长兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'330523', N'3305', N'00,33,3305', N'安吉县', N'33', N'浙江省', N'3305', N'湖州市', N'330523', N'安吉县', N'', N'', N'', N'', N'3', N'1', N''), (N'3306', N'33', N'00,33', N'绍兴市', N'33', N'浙江省', N'3306', N'绍兴市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330602', N'3306', N'00,33,3306', N'越城区', N'33', N'浙江省', N'3306', N'绍兴市', N'330602', N'越城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330603', N'3306', N'00,33,3306', N'柯桥区', N'33', N'浙江省', N'3306', N'绍兴市', N'330603', N'柯桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'330604', N'3306', N'00,33,3306', N'上虞区', N'33', N'浙江省', N'3306', N'绍兴市', N'330604', N'上虞区', N'', N'', N'', N'', N'3', N'1', N''), (N'330624', N'3306', N'00,33,3306', N'新昌县', N'33', N'浙江省', N'3306', N'绍兴市', N'330624', N'新昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'330681', N'3306', N'00,33,3306', N'诸暨市', N'33', N'浙江省', N'3306', N'绍兴市', N'330681', N'诸暨市', N'', N'', N'', N'', N'3', N'1', N''), (N'330683', N'3306', N'00,33,3306', N'嵊州市', N'33', N'浙江省', N'3306', N'绍兴市', N'330683', N'嵊州市', N'', N'', N'', N'', N'3', N'1', N''), (N'3307', N'33', N'00,33', N'金华市', N'33', N'浙江省', N'3307', N'金华市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330702', N'3307', N'00,33,3307', N'婺城区', N'33', N'浙江省', N'3307', N'金华市', N'330702', N'婺城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330703', N'3307', N'00,33,3307', N'金东区', N'33', N'浙江省', N'3307', N'金华市', N'330703', N'金东区', N'', N'', N'', N'', N'3', N'1', N''), (N'330723', N'3307', N'00,33,3307', N'武义县', N'33', N'浙江省', N'3307', N'金华市', N'330723', N'武义县', N'', N'', N'', N'', N'3', N'1', N''), (N'330726', N'3307', N'00,33,3307', N'浦江县', N'33', N'浙江省', N'3307', N'金华市', N'330726', N'浦江县', N'', N'', N'', N'', N'3', N'1', N''), (N'330727', N'3307', N'00,33,3307', N'磐安县', N'33', N'浙江省', N'3307', N'金华市', N'330727', N'磐安县', N'', N'', N'', N'', N'3', N'1', N''), (N'330781', N'3307', N'00,33,3307', N'兰溪市', N'33', N'浙江省', N'3307', N'金华市', N'330781', N'兰溪市', N'', N'', N'', N'', N'3', N'1', N''), (N'330782', N'3307', N'00,33,3307', N'义乌市', N'33', N'浙江省', N'3307', N'金华市', N'330782', N'义乌市', N'', N'', N'', N'', N'3', N'1', N''), (N'330783', N'3307', N'00,33,3307', N'东阳市', N'33', N'浙江省', N'3307', N'金华市', N'330783', N'东阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'330784', N'3307', N'00,33,3307', N'永康市', N'33', N'浙江省', N'3307', N'金华市', N'330784', N'永康市', N'', N'', N'', N'', N'3', N'1', N''), (N'3308', N'33', N'00,33', N'衢州市', N'33', N'浙江省', N'3308', N'衢州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330802', N'3308', N'00,33,3308', N'柯城区', N'33', N'浙江省', N'3308', N'衢州市', N'330802', N'柯城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330803', N'3308', N'00,33,3308', N'衢江区', N'33', N'浙江省', N'3308', N'衢州市', N'330803', N'衢江区', N'', N'', N'', N'', N'3', N'1', N''), (N'330822', N'3308', N'00,33,3308', N'常山县', N'33', N'浙江省', N'3308', N'衢州市', N'330822', N'常山县', N'', N'', N'', N'', N'3', N'1', N''), (N'330824', N'3308', N'00,33,3308', N'开化县', N'33', N'浙江省', N'3308', N'衢州市', N'330824', N'开化县', N'', N'', N'', N'', N'3', N'1', N''), (N'330825', N'3308', N'00,33,3308', N'龙游县', N'33', N'浙江省', N'3308', N'衢州市', N'330825', N'龙游县', N'', N'', N'', N'', N'3', N'1', N''), (N'330881', N'3308', N'00,33,3308', N'江山市', N'33', N'浙江省', N'3308', N'衢州市', N'330881', N'江山市', N'', N'', N'', N'', N'3', N'1', N''), (N'3309', N'33', N'00,33', N'舟山市', N'33', N'浙江省', N'3309', N'舟山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330902', N'3309', N'00,33,3309', N'定海区', N'33', N'浙江省', N'3309', N'舟山市', N'330902', N'定海区', N'', N'', N'', N'', N'3', N'1', N''), (N'330903', N'3309', N'00,33,3309', N'普陀区', N'33', N'浙江省', N'3309', N'舟山市', N'330903', N'普陀区', N'', N'', N'', N'', N'3', N'1', N''), (N'330921', N'3309', N'00,33,3309', N'岱山县', N'33', N'浙江省', N'3309', N'舟山市', N'330921', N'岱山县', N'', N'', N'', N'', N'3', N'1', N''), (N'330922', N'3309', N'00,33,3309', N'嵊泗县', N'33', N'浙江省', N'3309', N'舟山市', N'330922', N'嵊泗县', N'', N'', N'', N'', N'3', N'1', N''), (N'3310', N'33', N'00,33', N'台州市', N'33', N'浙江省', N'3310', N'台州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'331002', N'3310', N'00,33,3310', N'椒江区', N'33', N'浙江省', N'3310', N'台州市', N'331002', N'椒江区', N'', N'', N'', N'', N'3', N'1', N''), (N'331003', N'3310', N'00,33,3310', N'黄岩区', N'33', N'浙江省', N'3310', N'台州市', N'331003', N'黄岩区', N'', N'', N'', N'', N'3', N'1', N''), (N'331004', N'3310', N'00,33,3310', N'路桥区', N'33', N'浙江省', N'3310', N'台州市', N'331004', N'路桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'331022', N'3310', N'00,33,3310', N'三门县', N'33', N'浙江省', N'3310', N'台州市', N'331022', N'三门县', N'', N'', N'', N'', N'3', N'1', N''), (N'331023', N'3310', N'00,33,3310', N'天台县', N'33', N'浙江省', N'3310', N'台州市', N'331023', N'天台县', N'', N'', N'', N'', N'3', N'1', N''), (N'331024', N'3310', N'00,33,3310', N'仙居县', N'33', N'浙江省', N'3310', N'台州市', N'331024', N'仙居县', N'', N'', N'', N'', N'3', N'1', N''), (N'331081', N'3310', N'00,33,3310', N'温岭市', N'33', N'浙江省', N'3310', N'台州市', N'331081', N'温岭市', N'', N'', N'', N'', N'3', N'1', N''), (N'331082', N'3310', N'00,33,3310', N'临海市', N'33', N'浙江省', N'3310', N'台州市', N'331082', N'临海市', N'', N'', N'', N'', N'3', N'1', N''), (N'331083', N'3310', N'00,33,3310', N'玉环市', N'33', N'浙江省', N'3310', N'台州市', N'331083', N'玉环市', N'', N'', N'', N'', N'3', N'1', N''), (N'3311', N'33', N'00,33', N'丽水市', N'33', N'浙江省', N'3311', N'丽水市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'331102', N'3311', N'00,33,3311', N'莲都区', N'33', N'浙江省', N'3311', N'丽水市', N'331102', N'莲都区', N'', N'', N'', N'', N'3', N'1', N''), (N'331121', N'3311', N'00,33,3311', N'青田县', N'33', N'浙江省', N'3311', N'丽水市', N'331121', N'青田县', N'', N'', N'', N'', N'3', N'1', N''), (N'331122', N'3311', N'00,33,3311', N'缙云县', N'33', N'浙江省', N'3311', N'丽水市', N'331122', N'缙云县', N'', N'', N'', N'', N'3', N'1', N''), (N'331123', N'3311', N'00,33,3311', N'遂昌县', N'33', N'浙江省', N'3311', N'丽水市', N'331123', N'遂昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'331124', N'3311', N'00,33,3311', N'松阳县', N'33', N'浙江省', N'3311', N'丽水市', N'331124', N'松阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'331125', N'3311', N'00,33,3311', N'云和县', N'33', N'浙江省', N'3311', N'丽水市', N'331125', N'云和县', N'', N'', N'', N'', N'3', N'1', N''), (N'331126', N'3311', N'00,33,3311', N'庆元县', N'33', N'浙江省', N'3311', N'丽水市', N'331126', N'庆元县', N'', N'', N'', N'', N'3', N'1', N''), (N'331127', N'3311', N'00,33,3311', N'景宁畲族自治县', N'33', N'浙江省', N'3311', N'丽水市', N'331127', N'景宁畲族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'331181', N'3311', N'00,33,3311', N'龙泉市', N'33', N'浙江省', N'3311', N'丽水市', N'331181', N'龙泉市', N'', N'', N'', N'', N'3', N'1', N''), (N'34', N'00', N'00', N'安徽省', N'34', N'安徽省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3401', N'34', N'00,34', N'合肥市', N'34', N'安徽省', N'3401', N'合肥市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340102', N'3401', N'00,34,3401', N'瑶海区', N'34', N'安徽省', N'3401', N'合肥市', N'340102', N'瑶海区', N'', N'', N'', N'', N'3', N'1', N''), (N'340103', N'3401', N'00,34,3401', N'庐阳区', N'34', N'安徽省', N'3401', N'合肥市', N'340103', N'庐阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'340104', N'3401', N'00,34,3401', N'蜀山区', N'34', N'安徽省', N'3401', N'合肥市', N'340104', N'蜀山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340111', N'3401', N'00,34,3401', N'包河区', N'34', N'安徽省', N'3401', N'合肥市', N'340111', N'包河区', N'', N'', N'', N'', N'3', N'1', N''), (N'340121', N'3401', N'00,34,3401', N'长丰县', N'34', N'安徽省', N'3401', N'合肥市', N'340121', N'长丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'340122', N'3401', N'00,34,3401', N'肥东县', N'34', N'安徽省', N'3401', N'合肥市', N'340122', N'肥东县', N'', N'', N'', N'', N'3', N'1', N''), (N'340123', N'3401', N'00,34,3401', N'肥西县', N'34', N'安徽省', N'3401', N'合肥市', N'340123', N'肥西县', N'', N'', N'', N'', N'3', N'1', N''), (N'340124', N'3401', N'00,34,3401', N'庐江县', N'34', N'安徽省', N'3401', N'合肥市', N'340124', N'庐江县', N'', N'', N'', N'', N'3', N'1', N''), (N'340181', N'3401', N'00,34,3401', N'巢湖市', N'34', N'安徽省', N'3401', N'合肥市', N'340181', N'巢湖市', N'', N'', N'', N'', N'3', N'1', N''), (N'3402', N'34', N'00,34', N'芜湖市', N'34', N'安徽省', N'3402', N'芜湖市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340202', N'3402', N'00,34,3402', N'镜湖区', N'34', N'安徽省', N'3402', N'芜湖市', N'340202', N'镜湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'340203', N'3402', N'00,34,3402', N'弋江区', N'34', N'安徽省', N'3402', N'芜湖市', N'340203', N'弋江区', N'', N'', N'', N'', N'3', N'1', N''), (N'340207', N'3402', N'00,34,3402', N'鸠江区', N'34', N'安徽省', N'3402', N'芜湖市', N'340207', N'鸠江区', N'', N'', N'', N'', N'3', N'1', N''), (N'340208', N'3402', N'00,34,3402', N'三山区', N'34', N'安徽省', N'3402', N'芜湖市', N'340208', N'三山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340221', N'3402', N'00,34,3402', N'芜湖县', N'34', N'安徽省', N'3402', N'芜湖市', N'340221', N'芜湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'340222', N'3402', N'00,34,3402', N'繁昌县', N'34', N'安徽省', N'3402', N'芜湖市', N'340222', N'繁昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'340223', N'3402', N'00,34,3402', N'南陵县', N'34', N'安徽省', N'3402', N'芜湖市', N'340223', N'南陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'340281', N'3402', N'00,34,3402', N'无为市', N'34', N'安徽省', N'3402', N'芜湖市', N'340281', N'无为市', N'', N'', N'', N'', N'3', N'1', N''), (N'3403', N'34', N'00,34', N'蚌埠市', N'34', N'安徽省', N'3403', N'蚌埠市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340302', N'3403', N'00,34,3403', N'龙子湖区', N'34', N'安徽省', N'3403', N'蚌埠市', N'340302', N'龙子湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'340303', N'3403', N'00,34,3403', N'蚌山区', N'34', N'安徽省', N'3403', N'蚌埠市', N'340303', N'蚌山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340304', N'3403', N'00,34,3403', N'禹会区', N'34', N'安徽省', N'3403', N'蚌埠市', N'340304', N'禹会区', N'', N'', N'', N'', N'3', N'1', N''), (N'340311', N'3403', N'00,34,3403', N'淮上区', N'34', N'安徽省', N'3403', N'蚌埠市', N'340311', N'淮上区', N'', N'', N'', N'', N'3', N'1', N''), (N'340321', N'3403', N'00,34,3403', N'怀远县', N'34', N'安徽省', N'3403', N'蚌埠市', N'340321', N'怀远县', N'', N'', N'', N'', N'3', N'1', N''), (N'340322', N'3403', N'00,34,3403', N'五河县', N'34', N'安徽省', N'3403', N'蚌埠市', N'340322', N'五河县', N'', N'', N'', N'', N'3', N'1', N''), (N'340323', N'3403', N'00,34,3403', N'固镇县', N'34', N'安徽省', N'3403', N'蚌埠市', N'340323', N'固镇县', N'', N'', N'', N'', N'3', N'1', N''), (N'3404', N'34', N'00,34', N'淮南市', N'34', N'安徽省', N'3404', N'淮南市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340402', N'3404', N'00,34,3404', N'大通区', N'34', N'安徽省', N'3404', N'淮南市', N'340402', N'大通区', N'', N'', N'', N'', N'3', N'1', N''), (N'340403', N'3404', N'00,34,3404', N'田家庵区', N'34', N'安徽省', N'3404', N'淮南市', N'340403', N'田家庵区', N'', N'', N'', N'', N'3', N'1', N''), (N'340404', N'3404', N'00,34,3404', N'谢家集区', N'34', N'安徽省', N'3404', N'淮南市', N'340404', N'谢家集区', N'', N'', N'', N'', N'3', N'1', N''), (N'340405', N'3404', N'00,34,3404', N'八公山区', N'34', N'安徽省', N'3404', N'淮南市', N'340405', N'八公山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340406', N'3404', N'00,34,3404', N'潘集区', N'34', N'安徽省', N'3404', N'淮南市', N'340406', N'潘集区', N'', N'', N'', N'', N'3', N'1', N''), (N'340421', N'3404', N'00,34,3404', N'凤台县', N'34', N'安徽省', N'3404', N'淮南市', N'340421', N'凤台县', N'', N'', N'', N'', N'3', N'1', N''), (N'340422', N'3404', N'00,34,3404', N'寿县', N'34', N'安徽省', N'3404', N'淮南市', N'340422', N'寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'3405', N'34', N'00,34', N'马鞍山市', N'34', N'安徽省', N'3405', N'马鞍山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340503', N'3405', N'00,34,3405', N'花山区', N'34', N'安徽省', N'3405', N'马鞍山市', N'340503', N'花山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340504', N'3405', N'00,34,3405', N'雨山区', N'34', N'安徽省', N'3405', N'马鞍山市', N'340504', N'雨山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340506', N'3405', N'00,34,3405', N'博望区', N'34', N'安徽省', N'3405', N'马鞍山市', N'340506', N'博望区', N'', N'', N'', N'', N'3', N'1', N''), (N'340521', N'3405', N'00,34,3405', N'当涂县', N'34', N'安徽省', N'3405', N'马鞍山市', N'340521', N'当涂县', N'', N'', N'', N'', N'3', N'1', N''), (N'340522', N'3405', N'00,34,3405', N'含山县', N'34', N'安徽省', N'3405', N'马鞍山市', N'340522', N'含山县', N'', N'', N'', N'', N'3', N'1', N''), (N'340523', N'3405', N'00,34,3405', N'和县', N'34', N'安徽省', N'3405', N'马鞍山市', N'340523', N'和县', N'', N'', N'', N'', N'3', N'1', N''), (N'3406', N'34', N'00,34', N'淮北市', N'34', N'安徽省', N'3406', N'淮北市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340602', N'3406', N'00,34,3406', N'杜集区', N'34', N'安徽省', N'3406', N'淮北市', N'340602', N'杜集区', N'', N'', N'', N'', N'3', N'1', N''), (N'340603', N'3406', N'00,34,3406', N'相山区', N'34', N'安徽省', N'3406', N'淮北市', N'340603', N'相山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340604', N'3406', N'00,34,3406', N'烈山区', N'34', N'安徽省', N'3406', N'淮北市', N'340604', N'烈山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340621', N'3406', N'00,34,3406', N'濉溪县', N'34', N'安徽省', N'3406', N'淮北市', N'340621', N'濉溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'3407', N'34', N'00,34', N'铜陵市', N'34', N'安徽省', N'3407', N'铜陵市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340705', N'3407', N'00,34,3407', N'铜官区', N'34', N'安徽省', N'3407', N'铜陵市', N'340705', N'铜官区', N'', N'', N'', N'', N'3', N'1', N''), (N'340706', N'3407', N'00,34,3407', N'义安区', N'34', N'安徽省', N'3407', N'铜陵市', N'340706', N'义安区', N'', N'', N'', N'', N'3', N'1', N''), (N'340711', N'3407', N'00,34,3407', N'郊区', N'34', N'安徽省', N'3407', N'铜陵市', N'340711', N'郊区', N'', N'', N'', N'', N'3', N'1', N''), (N'340722', N'3407', N'00,34,3407', N'枞阳县', N'34', N'安徽省', N'3407', N'铜陵市', N'340722', N'枞阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'3408', N'34', N'00,34', N'安庆市', N'34', N'安徽省', N'3408', N'安庆市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340802', N'3408', N'00,34,3408', N'迎江区', N'34', N'安徽省', N'3408', N'安庆市', N'340802', N'迎江区', N'', N'', N'', N'', N'3', N'1', N''), (N'340803', N'3408', N'00,34,3408', N'大观区', N'34', N'安徽省', N'3408', N'安庆市', N'340803', N'大观区', N'', N'', N'', N'', N'3', N'1', N''), (N'340811', N'3408', N'00,34,3408', N'宜秀区', N'34', N'安徽省', N'3408', N'安庆市', N'340811', N'宜秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'340822', N'3408', N'00,34,3408', N'怀宁县', N'34', N'安徽省', N'3408', N'安庆市', N'340822', N'怀宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'340825', N'3408', N'00,34,3408', N'太湖县', N'34', N'安徽省', N'3408', N'安庆市', N'340825', N'太湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'340826', N'3408', N'00,34,3408', N'宿松县', N'34', N'安徽省', N'3408', N'安庆市', N'340826', N'宿松县', N'', N'', N'', N'', N'3', N'1', N''), (N'340827', N'3408', N'00,34,3408', N'望江县', N'34', N'安徽省', N'3408', N'安庆市', N'340827', N'望江县', N'', N'', N'', N'', N'3', N'1', N''), (N'340828', N'3408', N'00,34,3408', N'岳西县', N'34', N'安徽省', N'3408', N'安庆市', N'340828', N'岳西县', N'', N'', N'', N'', N'3', N'1', N''), (N'340881', N'3408', N'00,34,3408', N'桐城市', N'34', N'安徽省', N'3408', N'安庆市', N'340881', N'桐城市', N'', N'', N'', N'', N'3', N'1', N''), (N'340882', N'3408', N'00,34,3408', N'潜山市', N'34', N'安徽省', N'3408', N'安庆市', N'340882', N'潜山市', N'', N'', N'', N'', N'3', N'1', N''), (N'3410', N'34', N'00,34', N'黄山市', N'34', N'安徽省', N'3410', N'黄山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341002', N'3410', N'00,34,3410', N'屯溪区', N'34', N'安徽省', N'3410', N'黄山市', N'341002', N'屯溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'341003', N'3410', N'00,34,3410', N'黄山区', N'34', N'安徽省', N'3410', N'黄山市', N'341003', N'黄山区', N'', N'', N'', N'', N'3', N'1', N''), (N'341004', N'3410', N'00,34,3410', N'徽州区', N'34', N'安徽省', N'3410', N'黄山市', N'341004', N'徽州区', N'', N'', N'', N'', N'3', N'1', N''), (N'341021', N'3410', N'00,34,3410', N'歙县', N'34', N'安徽省', N'3410', N'黄山市', N'341021', N'歙县', N'', N'', N'', N'', N'3', N'1', N''), (N'341022', N'3410', N'00,34,3410', N'休宁县', N'34', N'安徽省', N'3410', N'黄山市', N'341022', N'休宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'341023', N'3410', N'00,34,3410', N'黟县', N'34', N'安徽省', N'3410', N'黄山市', N'341023', N'黟县', N'', N'', N'', N'', N'3', N'1', N''), (N'341024', N'3410', N'00,34,3410', N'祁门县', N'34', N'安徽省', N'3410', N'黄山市', N'341024', N'祁门县', N'', N'', N'', N'', N'3', N'1', N''), (N'3411', N'34', N'00,34', N'滁州市', N'34', N'安徽省', N'3411', N'滁州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341102', N'3411', N'00,34,3411', N'琅琊区', N'34', N'安徽省', N'3411', N'滁州市', N'341102', N'琅琊区', N'', N'', N'', N'', N'3', N'1', N''), (N'341103', N'3411', N'00,34,3411', N'南谯区', N'34', N'安徽省', N'3411', N'滁州市', N'341103', N'南谯区', N'', N'', N'', N'', N'3', N'1', N''), (N'341122', N'3411', N'00,34,3411', N'来安县', N'34', N'安徽省', N'3411', N'滁州市', N'341122', N'来安县', N'', N'', N'', N'', N'3', N'1', N''), (N'341124', N'3411', N'00,34,3411', N'全椒县', N'34', N'安徽省', N'3411', N'滁州市', N'341124', N'全椒县', N'', N'', N'', N'', N'3', N'1', N''), (N'341125', N'3411', N'00,34,3411', N'定远县', N'34', N'安徽省', N'3411', N'滁州市', N'341125', N'定远县', N'', N'', N'', N'', N'3', N'1', N''), (N'341126', N'3411', N'00,34,3411', N'凤阳县', N'34', N'安徽省', N'3411', N'滁州市', N'341126', N'凤阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'341181', N'3411', N'00,34,3411', N'天长市', N'34', N'安徽省', N'3411', N'滁州市', N'341181', N'天长市', N'', N'', N'', N'', N'3', N'1', N''), (N'341182', N'3411', N'00,34,3411', N'明光市', N'34', N'安徽省', N'3411', N'滁州市', N'341182', N'明光市', N'', N'', N'', N'', N'3', N'1', N''), (N'3412', N'34', N'00,34', N'阜阳市', N'34', N'安徽省', N'3412', N'阜阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341202', N'3412', N'00,34,3412', N'颍州区', N'34', N'安徽省', N'3412', N'阜阳市', N'341202', N'颍州区', N'', N'', N'', N'', N'3', N'1', N''), (N'341203', N'3412', N'00,34,3412', N'颍东区', N'34', N'安徽省', N'3412', N'阜阳市', N'341203', N'颍东区', N'', N'', N'', N'', N'3', N'1', N''), (N'341204', N'3412', N'00,34,3412', N'颍泉区', N'34', N'安徽省', N'3412', N'阜阳市', N'341204', N'颍泉区', N'', N'', N'', N'', N'3', N'1', N''), (N'341221', N'3412', N'00,34,3412', N'临泉县', N'34', N'安徽省', N'3412', N'阜阳市', N'341221', N'临泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'341222', N'3412', N'00,34,3412', N'太和县', N'34', N'安徽省', N'3412', N'阜阳市', N'341222', N'太和县', N'', N'', N'', N'', N'3', N'1', N''), (N'341225', N'3412', N'00,34,3412', N'阜南县', N'34', N'安徽省', N'3412', N'阜阳市', N'341225', N'阜南县', N'', N'', N'', N'', N'3', N'1', N''), (N'341226', N'3412', N'00,34,3412', N'颍上县', N'34', N'安徽省', N'3412', N'阜阳市', N'341226', N'颍上县', N'', N'', N'', N'', N'3', N'1', N''), (N'341282', N'3412', N'00,34,3412', N'界首市', N'34', N'安徽省', N'3412', N'阜阳市', N'341282', N'界首市', N'', N'', N'', N'', N'3', N'1', N''), (N'3413', N'34', N'00,34', N'宿州市', N'34', N'安徽省', N'3413', N'宿州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341302', N'3413', N'00,34,3413', N'埇桥区', N'34', N'安徽省', N'3413', N'宿州市', N'341302', N'埇桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'341321', N'3413', N'00,34,3413', N'砀山县', N'34', N'安徽省', N'3413', N'宿州市', N'341321', N'砀山县', N'', N'', N'', N'', N'3', N'1', N''), (N'341322', N'3413', N'00,34,3413', N'萧县', N'34', N'安徽省', N'3413', N'宿州市', N'341322', N'萧县', N'', N'', N'', N'', N'3', N'1', N''), (N'341323', N'3413', N'00,34,3413', N'灵璧县', N'34', N'安徽省', N'3413', N'宿州市', N'341323', N'灵璧县', N'', N'', N'', N'', N'3', N'1', N''), (N'341324', N'3413', N'00,34,3413', N'泗县', N'34', N'安徽省', N'3413', N'宿州市', N'341324', N'泗县', N'', N'', N'', N'', N'3', N'1', N''), (N'3415', N'34', N'00,34', N'六安市', N'34', N'安徽省', N'3415', N'六安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341502', N'3415', N'00,34,3415', N'金安区', N'34', N'安徽省', N'3415', N'六安市', N'341502', N'金安区', N'', N'', N'', N'', N'3', N'1', N''), (N'341503', N'3415', N'00,34,3415', N'裕安区', N'34', N'安徽省', N'3415', N'六安市', N'341503', N'裕安区', N'', N'', N'', N'', N'3', N'1', N''), (N'341504', N'3415', N'00,34,3415', N'叶集区', N'34', N'安徽省', N'3415', N'六安市', N'341504', N'叶集区', N'', N'', N'', N'', N'3', N'1', N''), (N'341522', N'3415', N'00,34,3415', N'霍邱县', N'34', N'安徽省', N'3415', N'六安市', N'341522', N'霍邱县', N'', N'', N'', N'', N'3', N'1', N''), (N'341523', N'3415', N'00,34,3415', N'舒城县', N'34', N'安徽省', N'3415', N'六安市', N'341523', N'舒城县', N'', N'', N'', N'', N'3', N'1', N''), (N'341524', N'3415', N'00,34,3415', N'金寨县', N'34', N'安徽省', N'3415', N'六安市', N'341524', N'金寨县', N'', N'', N'', N'', N'3', N'1', N''), (N'341525', N'3415', N'00,34,3415', N'霍山县', N'34', N'安徽省', N'3415', N'六安市', N'341525', N'霍山县', N'', N'', N'', N'', N'3', N'1', N''), (N'3416', N'34', N'00,34', N'亳州市', N'34', N'安徽省', N'3416', N'亳州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341602', N'3416', N'00,34,3416', N'谯城区', N'34', N'安徽省', N'3416', N'亳州市', N'341602', N'谯城区', N'', N'', N'', N'', N'3', N'1', N''), (N'341621', N'3416', N'00,34,3416', N'涡阳县', N'34', N'安徽省', N'3416', N'亳州市', N'341621', N'涡阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'341622', N'3416', N'00,34,3416', N'蒙城县', N'34', N'安徽省', N'3416', N'亳州市', N'341622', N'蒙城县', N'', N'', N'', N'', N'3', N'1', N''), (N'341623', N'3416', N'00,34,3416', N'利辛县', N'34', N'安徽省', N'3416', N'亳州市', N'341623', N'利辛县', N'', N'', N'', N'', N'3', N'1', N''), (N'3417', N'34', N'00,34', N'池州市', N'34', N'安徽省', N'3417', N'池州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341702', N'3417', N'00,34,3417', N'贵池区', N'34', N'安徽省', N'3417', N'池州市', N'341702', N'贵池区', N'', N'', N'', N'', N'3', N'1', N''), (N'341721', N'3417', N'00,34,3417', N'东至县', N'34', N'安徽省', N'3417', N'池州市', N'341721', N'东至县', N'', N'', N'', N'', N'3', N'1', N''), (N'341722', N'3417', N'00,34,3417', N'石台县', N'34', N'安徽省', N'3417', N'池州市', N'341722', N'石台县', N'', N'', N'', N'', N'3', N'1', N''), (N'341723', N'3417', N'00,34,3417', N'青阳县', N'34', N'安徽省', N'3417', N'池州市', N'341723', N'青阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'3418', N'34', N'00,34', N'宣城市', N'34', N'安徽省', N'3418', N'宣城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341802', N'3418', N'00,34,3418', N'宣州区', N'34', N'安徽省', N'3418', N'宣城市', N'341802', N'宣州区', N'', N'', N'', N'', N'3', N'1', N''), (N'341821', N'3418', N'00,34,3418', N'郎溪县', N'34', N'安徽省', N'3418', N'宣城市', N'341821', N'郎溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'341823', N'3418', N'00,34,3418', N'泾县', N'34', N'安徽省', N'3418', N'宣城市', N'341823', N'泾县', N'', N'', N'', N'', N'3', N'1', N''), (N'341824', N'3418', N'00,34,3418', N'绩溪县', N'34', N'安徽省', N'3418', N'宣城市', N'341824', N'绩溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'341825', N'3418', N'00,34,3418', N'旌德县', N'34', N'安徽省', N'3418', N'宣城市', N'341825', N'旌德县', N'', N'', N'', N'', N'3', N'1', N''), (N'341881', N'3418', N'00,34,3418', N'宁国市', N'34', N'安徽省', N'3418', N'宣城市', N'341881', N'宁国市', N'', N'', N'', N'', N'3', N'1', N''), (N'341882', N'3418', N'00,34,3418', N'广德市', N'34', N'安徽省', N'3418', N'宣城市', N'341882', N'广德市', N'', N'', N'', N'', N'3', N'1', N''), (N'35', N'00', N'00', N'福建省', N'35', N'福建省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3501', N'35', N'00,35', N'福州市', N'35', N'福建省', N'3501', N'福州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350102', N'3501', N'00,35,3501', N'鼓楼区', N'35', N'福建省', N'3501', N'福州市', N'350102', N'鼓楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'350103', N'3501', N'00,35,3501', N'台江区', N'35', N'福建省', N'3501', N'福州市', N'350103', N'台江区', N'', N'', N'', N'', N'3', N'1', N''), (N'350104', N'3501', N'00,35,3501', N'仓山区', N'35', N'福建省', N'3501', N'福州市', N'350104', N'仓山区', N'', N'', N'', N'', N'3', N'1', N''), (N'350105', N'3501', N'00,35,3501', N'马尾区', N'35', N'福建省', N'3501', N'福州市', N'350105', N'马尾区', N'', N'', N'', N'', N'3', N'1', N''), (N'350111', N'3501', N'00,35,3501', N'晋安区', N'35', N'福建省', N'3501', N'福州市', N'350111', N'晋安区', N'', N'', N'', N'', N'3', N'1', N''), (N'350112', N'3501', N'00,35,3501', N'长乐区', N'35', N'福建省', N'3501', N'福州市', N'350112', N'长乐区', N'', N'', N'', N'', N'3', N'1', N''), (N'350121', N'3501', N'00,35,3501', N'闽侯县', N'35', N'福建省', N'3501', N'福州市', N'350121', N'闽侯县', N'', N'', N'', N'', N'3', N'1', N''), (N'350122', N'3501', N'00,35,3501', N'连江县', N'35', N'福建省', N'3501', N'福州市', N'350122', N'连江县', N'', N'', N'', N'', N'3', N'1', N''), (N'350123', N'3501', N'00,35,3501', N'罗源县', N'35', N'福建省', N'3501', N'福州市', N'350123', N'罗源县', N'', N'', N'', N'', N'3', N'1', N''), (N'350124', N'3501', N'00,35,3501', N'闽清县', N'35', N'福建省', N'3501', N'福州市', N'350124', N'闽清县', N'', N'', N'', N'', N'3', N'1', N''), (N'350125', N'3501', N'00,35,3501', N'永泰县', N'35', N'福建省', N'3501', N'福州市', N'350125', N'永泰县', N'', N'', N'', N'', N'3', N'1', N''), (N'350128', N'3501', N'00,35,3501', N'平潭县', N'35', N'福建省', N'3501', N'福州市', N'350128', N'平潭县', N'', N'', N'', N'', N'3', N'1', N''), (N'350181', N'3501', N'00,35,3501', N'福清市', N'35', N'福建省', N'3501', N'福州市', N'350181', N'福清市', N'', N'', N'', N'', N'3', N'1', N''), (N'3502', N'35', N'00,35', N'厦门市', N'35', N'福建省', N'3502', N'厦门市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350203', N'3502', N'00,35,3502', N'思明区', N'35', N'福建省', N'3502', N'厦门市', N'350203', N'思明区', N'', N'', N'', N'', N'3', N'1', N''), (N'350205', N'3502', N'00,35,3502', N'海沧区', N'35', N'福建省', N'3502', N'厦门市', N'350205', N'海沧区', N'', N'', N'', N'', N'3', N'1', N''), (N'350206', N'3502', N'00,35,3502', N'湖里区', N'35', N'福建省', N'3502', N'厦门市', N'350206', N'湖里区', N'', N'', N'', N'', N'3', N'1', N''), (N'350211', N'3502', N'00,35,3502', N'集美区', N'35', N'福建省', N'3502', N'厦门市', N'350211', N'集美区', N'', N'', N'', N'', N'3', N'1', N''), (N'350212', N'3502', N'00,35,3502', N'同安区', N'35', N'福建省', N'3502', N'厦门市', N'350212', N'同安区', N'', N'', N'', N'', N'3', N'1', N''), (N'350213', N'3502', N'00,35,3502', N'翔安区', N'35', N'福建省', N'3502', N'厦门市', N'350213', N'翔安区', N'', N'', N'', N'', N'3', N'1', N''), (N'3503', N'35', N'00,35', N'莆田市', N'35', N'福建省', N'3503', N'莆田市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350302', N'3503', N'00,35,3503', N'城厢区', N'35', N'福建省', N'3503', N'莆田市', N'350302', N'城厢区', N'', N'', N'', N'', N'3', N'1', N''), (N'350303', N'3503', N'00,35,3503', N'涵江区', N'35', N'福建省', N'3503', N'莆田市', N'350303', N'涵江区', N'', N'', N'', N'', N'3', N'1', N''), (N'350304', N'3503', N'00,35,3503', N'荔城区', N'35', N'福建省', N'3503', N'莆田市', N'350304', N'荔城区', N'', N'', N'', N'', N'3', N'1', N''), (N'350305', N'3503', N'00,35,3503', N'秀屿区', N'35', N'福建省', N'3503', N'莆田市', N'350305', N'秀屿区', N'', N'', N'', N'', N'3', N'1', N''), (N'350322', N'3503', N'00,35,3503', N'仙游县', N'35', N'福建省', N'3503', N'莆田市', N'350322', N'仙游县', N'', N'', N'', N'', N'3', N'1', N''), (N'3504', N'35', N'00,35', N'三明市', N'35', N'福建省', N'3504', N'三明市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350402', N'3504', N'00,35,3504', N'梅列区', N'35', N'福建省', N'3504', N'三明市', N'350402', N'梅列区', N'', N'', N'', N'', N'3', N'1', N''), (N'350403', N'3504', N'00,35,3504', N'三元区', N'35', N'福建省', N'3504', N'三明市', N'350403', N'三元区', N'', N'', N'', N'', N'3', N'1', N''), (N'350421', N'3504', N'00,35,3504', N'明溪县', N'35', N'福建省', N'3504', N'三明市', N'350421', N'明溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'350423', N'3504', N'00,35,3504', N'清流县', N'35', N'福建省', N'3504', N'三明市', N'350423', N'清流县', N'', N'', N'', N'', N'3', N'1', N''), (N'350424', N'3504', N'00,35,3504', N'宁化县', N'35', N'福建省', N'3504', N'三明市', N'350424', N'宁化县', N'', N'', N'', N'', N'3', N'1', N''), (N'350425', N'3504', N'00,35,3504', N'大田县', N'35', N'福建省', N'3504', N'三明市', N'350425', N'大田县', N'', N'', N'', N'', N'3', N'1', N''), (N'350426', N'3504', N'00,35,3504', N'尤溪县', N'35', N'福建省', N'3504', N'三明市', N'350426', N'尤溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'350427', N'3504', N'00,35,3504', N'沙县', N'35', N'福建省', N'3504', N'三明市', N'350427', N'沙县', N'', N'', N'', N'', N'3', N'1', N''), (N'350428', N'3504', N'00,35,3504', N'将乐县', N'35', N'福建省', N'3504', N'三明市', N'350428', N'将乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'350429', N'3504', N'00,35,3504', N'泰宁县', N'35', N'福建省', N'3504', N'三明市', N'350429', N'泰宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'350430', N'3504', N'00,35,3504', N'建宁县', N'35', N'福建省', N'3504', N'三明市', N'350430', N'建宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'350481', N'3504', N'00,35,3504', N'永安市', N'35', N'福建省', N'3504', N'三明市', N'350481', N'永安市', N'', N'', N'', N'', N'3', N'1', N''), (N'3505', N'35', N'00,35', N'泉州市', N'35', N'福建省', N'3505', N'泉州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350502', N'3505', N'00,35,3505', N'鲤城区', N'35', N'福建省', N'3505', N'泉州市', N'350502', N'鲤城区', N'', N'', N'', N'', N'3', N'1', N''), (N'350503', N'3505', N'00,35,3505', N'丰泽区', N'35', N'福建省', N'3505', N'泉州市', N'350503', N'丰泽区', N'', N'', N'', N'', N'3', N'1', N''), (N'350504', N'3505', N'00,35,3505', N'洛江区', N'35', N'福建省', N'3505', N'泉州市', N'350504', N'洛江区', N'', N'', N'', N'', N'3', N'1', N''), (N'350505', N'3505', N'00,35,3505', N'泉港区', N'35', N'福建省', N'3505', N'泉州市', N'350505', N'泉港区', N'', N'', N'', N'', N'3', N'1', N''), (N'350521', N'3505', N'00,35,3505', N'惠安县', N'35', N'福建省', N'3505', N'泉州市', N'350521', N'惠安县', N'', N'', N'', N'', N'3', N'1', N''), (N'350524', N'3505', N'00,35,3505', N'安溪县', N'35', N'福建省', N'3505', N'泉州市', N'350524', N'安溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'350525', N'3505', N'00,35,3505', N'永春县', N'35', N'福建省', N'3505', N'泉州市', N'350525', N'永春县', N'', N'', N'', N'', N'3', N'1', N''), (N'350526', N'3505', N'00,35,3505', N'德化县', N'35', N'福建省', N'3505', N'泉州市', N'350526', N'德化县', N'', N'', N'', N'', N'3', N'1', N''), (N'350527', N'3505', N'00,35,3505', N'金门县', N'35', N'福建省', N'3505', N'泉州市', N'350527', N'金门县', N'', N'', N'', N'', N'3', N'1', N''), (N'350581', N'3505', N'00,35,3505', N'石狮市', N'35', N'福建省', N'3505', N'泉州市', N'350581', N'石狮市', N'', N'', N'', N'', N'3', N'1', N''), (N'350582', N'3505', N'00,35,3505', N'晋江市', N'35', N'福建省', N'3505', N'泉州市', N'350582', N'晋江市', N'', N'', N'', N'', N'3', N'1', N''), (N'350583', N'3505', N'00,35,3505', N'南安市', N'35', N'福建省', N'3505', N'泉州市', N'350583', N'南安市', N'', N'', N'', N'', N'3', N'1', N''), (N'3506', N'35', N'00,35', N'漳州市', N'35', N'福建省', N'3506', N'漳州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350602', N'3506', N'00,35,3506', N'芗城区', N'35', N'福建省', N'3506', N'漳州市', N'350602', N'芗城区', N'', N'', N'', N'', N'3', N'1', N''), (N'350603', N'3506', N'00,35,3506', N'龙文区', N'35', N'福建省', N'3506', N'漳州市', N'350603', N'龙文区', N'', N'', N'', N'', N'3', N'1', N''), (N'350622', N'3506', N'00,35,3506', N'云霄县', N'35', N'福建省', N'3506', N'漳州市', N'350622', N'云霄县', N'', N'', N'', N'', N'3', N'1', N''), (N'350623', N'3506', N'00,35,3506', N'漳浦县', N'35', N'福建省', N'3506', N'漳州市', N'350623', N'漳浦县', N'', N'', N'', N'', N'3', N'1', N''), (N'350624', N'3506', N'00,35,3506', N'诏安县', N'35', N'福建省', N'3506', N'漳州市', N'350624', N'诏安县', N'', N'', N'', N'', N'3', N'1', N''), (N'350625', N'3506', N'00,35,3506', N'长泰县', N'35', N'福建省', N'3506', N'漳州市', N'350625', N'长泰县', N'', N'', N'', N'', N'3', N'1', N''), (N'350626', N'3506', N'00,35,3506', N'东山县', N'35', N'福建省', N'3506', N'漳州市', N'350626', N'东山县', N'', N'', N'', N'', N'3', N'1', N''), (N'350627', N'3506', N'00,35,3506', N'南靖县', N'35', N'福建省', N'3506', N'漳州市', N'350627', N'南靖县', N'', N'', N'', N'', N'3', N'1', N''), (N'350628', N'3506', N'00,35,3506', N'平和县', N'35', N'福建省', N'3506', N'漳州市', N'350628', N'平和县', N'', N'', N'', N'', N'3', N'1', N''), (N'350629', N'3506', N'00,35,3506', N'华安县', N'35', N'福建省', N'3506', N'漳州市', N'350629', N'华安县', N'', N'', N'', N'', N'3', N'1', N''), (N'350681', N'3506', N'00,35,3506', N'龙海市', N'35', N'福建省', N'3506', N'漳州市', N'350681', N'龙海市', N'', N'', N'', N'', N'3', N'1', N''), (N'3507', N'35', N'00,35', N'南平市', N'35', N'福建省', N'3507', N'南平市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350702', N'3507', N'00,35,3507', N'延平区', N'35', N'福建省', N'3507', N'南平市', N'350702', N'延平区', N'', N'', N'', N'', N'3', N'1', N''), (N'350703', N'3507', N'00,35,3507', N'建阳区', N'35', N'福建省', N'3507', N'南平市', N'350703', N'建阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'350721', N'3507', N'00,35,3507', N'顺昌县', N'35', N'福建省', N'3507', N'南平市', N'350721', N'顺昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'350722', N'3507', N'00,35,3507', N'浦城县', N'35', N'福建省', N'3507', N'南平市', N'350722', N'浦城县', N'', N'', N'', N'', N'3', N'1', N''), (N'350723', N'3507', N'00,35,3507', N'光泽县', N'35', N'福建省', N'3507', N'南平市', N'350723', N'光泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'350724', N'3507', N'00,35,3507', N'松溪县', N'35', N'福建省', N'3507', N'南平市', N'350724', N'松溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'350725', N'3507', N'00,35,3507', N'政和县', N'35', N'福建省', N'3507', N'南平市', N'350725', N'政和县', N'', N'', N'', N'', N'3', N'1', N''), (N'350781', N'3507', N'00,35,3507', N'邵武市', N'35', N'福建省', N'3507', N'南平市', N'350781', N'邵武市', N'', N'', N'', N'', N'3', N'1', N''), (N'350782', N'3507', N'00,35,3507', N'武夷山市', N'35', N'福建省', N'3507', N'南平市', N'350782', N'武夷山市', N'', N'', N'', N'', N'3', N'1', N''), (N'350783', N'3507', N'00,35,3507', N'建瓯市', N'35', N'福建省', N'3507', N'南平市', N'350783', N'建瓯市', N'', N'', N'', N'', N'3', N'1', N''), (N'3508', N'35', N'00,35', N'龙岩市', N'35', N'福建省', N'3508', N'龙岩市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350802', N'3508', N'00,35,3508', N'新罗区', N'35', N'福建省', N'3508', N'龙岩市', N'350802', N'新罗区', N'', N'', N'', N'', N'3', N'1', N''), (N'350803', N'3508', N'00,35,3508', N'永定区', N'35', N'福建省', N'3508', N'龙岩市', N'350803', N'永定区', N'', N'', N'', N'', N'3', N'1', N''), (N'350821', N'3508', N'00,35,3508', N'长汀县', N'35', N'福建省', N'3508', N'龙岩市', N'350821', N'长汀县', N'', N'', N'', N'', N'3', N'1', N''), (N'350823', N'3508', N'00,35,3508', N'上杭县', N'35', N'福建省', N'3508', N'龙岩市', N'350823', N'上杭县', N'', N'', N'', N'', N'3', N'1', N''), (N'350824', N'3508', N'00,35,3508', N'武平县', N'35', N'福建省', N'3508', N'龙岩市', N'350824', N'武平县', N'', N'', N'', N'', N'3', N'1', N''), (N'350825', N'3508', N'00,35,3508', N'连城县', N'35', N'福建省', N'3508', N'龙岩市', N'350825', N'连城县', N'', N'', N'', N'', N'3', N'1', N''), (N'350881', N'3508', N'00,35,3508', N'漳平市', N'35', N'福建省', N'3508', N'龙岩市', N'350881', N'漳平市', N'', N'', N'', N'', N'3', N'1', N''), (N'3509', N'35', N'00,35', N'宁德市', N'35', N'福建省', N'3509', N'宁德市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350902', N'3509', N'00,35,3509', N'蕉城区', N'35', N'福建省', N'3509', N'宁德市', N'350902', N'蕉城区', N'', N'', N'', N'', N'3', N'1', N''), (N'350921', N'3509', N'00,35,3509', N'霞浦县', N'35', N'福建省', N'3509', N'宁德市', N'350921', N'霞浦县', N'', N'', N'', N'', N'3', N'1', N''), (N'350922', N'3509', N'00,35,3509', N'古田县', N'35', N'福建省', N'3509', N'宁德市', N'350922', N'古田县', N'', N'', N'', N'', N'3', N'1', N''), (N'350923', N'3509', N'00,35,3509', N'屏南县', N'35', N'福建省', N'3509', N'宁德市', N'350923', N'屏南县', N'', N'', N'', N'', N'3', N'1', N''), (N'350924', N'3509', N'00,35,3509', N'寿宁县', N'35', N'福建省', N'3509', N'宁德市', N'350924', N'寿宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'350925', N'3509', N'00,35,3509', N'周宁县', N'35', N'福建省', N'3509', N'宁德市', N'350925', N'周宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'350926', N'3509', N'00,35,3509', N'柘荣县', N'35', N'福建省', N'3509', N'宁德市', N'350926', N'柘荣县', N'', N'', N'', N'', N'3', N'1', N''), (N'350981', N'3509', N'00,35,3509', N'福安市', N'35', N'福建省', N'3509', N'宁德市', N'350981', N'福安市', N'', N'', N'', N'', N'3', N'1', N''), (N'350982', N'3509', N'00,35,3509', N'福鼎市', N'35', N'福建省', N'3509', N'宁德市', N'350982', N'福鼎市', N'', N'', N'', N'', N'3', N'1', N''), (N'36', N'00', N'00', N'江西省', N'36', N'江西省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3601', N'36', N'00,36', N'南昌市', N'36', N'江西省', N'3601', N'南昌市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360102', N'3601', N'00,36,3601', N'东湖区', N'36', N'江西省', N'3601', N'南昌市', N'360102', N'东湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'360103', N'3601', N'00,36,3601', N'西湖区', N'36', N'江西省', N'3601', N'南昌市', N'360103', N'西湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'360104', N'3601', N'00,36,3601', N'青云谱区', N'36', N'江西省', N'3601', N'南昌市', N'360104', N'青云谱区', N'', N'', N'', N'', N'3', N'1', N''), (N'360111', N'3601', N'00,36,3601', N'青山湖区', N'36', N'江西省', N'3601', N'南昌市', N'360111', N'青山湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'360112', N'3601', N'00,36,3601', N'新建区', N'36', N'江西省', N'3601', N'南昌市', N'360112', N'新建区', N'', N'', N'', N'', N'3', N'1', N''), (N'360113', N'3601', N'00,36,3601', N'红谷滩区', N'36', N'江西省', N'3601', N'南昌市', N'360113', N'红谷滩区', N'', N'', N'', N'', N'3', N'1', N''), (N'360121', N'3601', N'00,36,3601', N'南昌县', N'36', N'江西省', N'3601', N'南昌市', N'360121', N'南昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'360123', N'3601', N'00,36,3601', N'安义县', N'36', N'江西省', N'3601', N'南昌市', N'360123', N'安义县', N'', N'', N'', N'', N'3', N'1', N''), (N'360124', N'3601', N'00,36,3601', N'进贤县', N'36', N'江西省', N'3601', N'南昌市', N'360124', N'进贤县', N'', N'', N'', N'', N'3', N'1', N''), (N'3602', N'36', N'00,36', N'景德镇市', N'36', N'江西省', N'3602', N'景德镇市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360202', N'3602', N'00,36,3602', N'昌江区', N'36', N'江西省', N'3602', N'景德镇市', N'360202', N'昌江区', N'', N'', N'', N'', N'3', N'1', N''), (N'360203', N'3602', N'00,36,3602', N'珠山区', N'36', N'江西省', N'3602', N'景德镇市', N'360203', N'珠山区', N'', N'', N'', N'', N'3', N'1', N''), (N'360222', N'3602', N'00,36,3602', N'浮梁县', N'36', N'江西省', N'3602', N'景德镇市', N'360222', N'浮梁县', N'', N'', N'', N'', N'3', N'1', N''), (N'360281', N'3602', N'00,36,3602', N'乐平市', N'36', N'江西省', N'3602', N'景德镇市', N'360281', N'乐平市', N'', N'', N'', N'', N'3', N'1', N''), (N'3603', N'36', N'00,36', N'萍乡市', N'36', N'江西省', N'3603', N'萍乡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360302', N'3603', N'00,36,3603', N'安源区', N'36', N'江西省', N'3603', N'萍乡市', N'360302', N'安源区', N'', N'', N'', N'', N'3', N'1', N''), (N'360313', N'3603', N'00,36,3603', N'湘东区', N'36', N'江西省', N'3603', N'萍乡市', N'360313', N'湘东区', N'', N'', N'', N'', N'3', N'1', N''), (N'360321', N'3603', N'00,36,3603', N'莲花县', N'36', N'江西省', N'3603', N'萍乡市', N'360321', N'莲花县', N'', N'', N'', N'', N'3', N'1', N''), (N'360322', N'3603', N'00,36,3603', N'上栗县', N'36', N'江西省', N'3603', N'萍乡市', N'360322', N'上栗县', N'', N'', N'', N'', N'3', N'1', N''), (N'360323', N'3603', N'00,36,3603', N'芦溪县', N'36', N'江西省', N'3603', N'萍乡市', N'360323', N'芦溪县', N'', N'', N'', N'', N'3', N'1', N'')
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'3604', N'36', N'00,36', N'九江市', N'36', N'江西省', N'3604', N'九江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360402', N'3604', N'00,36,3604', N'濂溪区', N'36', N'江西省', N'3604', N'九江市', N'360402', N'濂溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'360403', N'3604', N'00,36,3604', N'浔阳区', N'36', N'江西省', N'3604', N'九江市', N'360403', N'浔阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'360404', N'3604', N'00,36,3604', N'柴桑区', N'36', N'江西省', N'3604', N'九江市', N'360404', N'柴桑区', N'', N'', N'', N'', N'3', N'1', N''), (N'360423', N'3604', N'00,36,3604', N'武宁县', N'36', N'江西省', N'3604', N'九江市', N'360423', N'武宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'360424', N'3604', N'00,36,3604', N'修水县', N'36', N'江西省', N'3604', N'九江市', N'360424', N'修水县', N'', N'', N'', N'', N'3', N'1', N''), (N'360425', N'3604', N'00,36,3604', N'永修县', N'36', N'江西省', N'3604', N'九江市', N'360425', N'永修县', N'', N'', N'', N'', N'3', N'1', N''), (N'360426', N'3604', N'00,36,3604', N'德安县', N'36', N'江西省', N'3604', N'九江市', N'360426', N'德安县', N'', N'', N'', N'', N'3', N'1', N''), (N'360428', N'3604', N'00,36,3604', N'都昌县', N'36', N'江西省', N'3604', N'九江市', N'360428', N'都昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'360429', N'3604', N'00,36,3604', N'湖口县', N'36', N'江西省', N'3604', N'九江市', N'360429', N'湖口县', N'', N'', N'', N'', N'3', N'1', N''), (N'360430', N'3604', N'00,36,3604', N'彭泽县', N'36', N'江西省', N'3604', N'九江市', N'360430', N'彭泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'360481', N'3604', N'00,36,3604', N'瑞昌市', N'36', N'江西省', N'3604', N'九江市', N'360481', N'瑞昌市', N'', N'', N'', N'', N'3', N'1', N''), (N'360482', N'3604', N'00,36,3604', N'共青城市', N'36', N'江西省', N'3604', N'九江市', N'360482', N'共青城市', N'', N'', N'', N'', N'3', N'1', N''), (N'360483', N'3604', N'00,36,3604', N'庐山市', N'36', N'江西省', N'3604', N'九江市', N'360483', N'庐山市', N'', N'', N'', N'', N'3', N'1', N''), (N'3605', N'36', N'00,36', N'新余市', N'36', N'江西省', N'3605', N'新余市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360502', N'3605', N'00,36,3605', N'渝水区', N'36', N'江西省', N'3605', N'新余市', N'360502', N'渝水区', N'', N'', N'', N'', N'3', N'1', N''), (N'360521', N'3605', N'00,36,3605', N'分宜县', N'36', N'江西省', N'3605', N'新余市', N'360521', N'分宜县', N'', N'', N'', N'', N'3', N'1', N''), (N'3606', N'36', N'00,36', N'鹰潭市', N'36', N'江西省', N'3606', N'鹰潭市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360602', N'3606', N'00,36,3606', N'月湖区', N'36', N'江西省', N'3606', N'鹰潭市', N'360602', N'月湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'360603', N'3606', N'00,36,3606', N'余江区', N'36', N'江西省', N'3606', N'鹰潭市', N'360603', N'余江区', N'', N'', N'', N'', N'3', N'1', N''), (N'360681', N'3606', N'00,36,3606', N'贵溪市', N'36', N'江西省', N'3606', N'鹰潭市', N'360681', N'贵溪市', N'', N'', N'', N'', N'3', N'1', N''), (N'3607', N'36', N'00,36', N'赣州市', N'36', N'江西省', N'3607', N'赣州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360702', N'3607', N'00,36,3607', N'章贡区', N'36', N'江西省', N'3607', N'赣州市', N'360702', N'章贡区', N'', N'', N'', N'', N'3', N'1', N''), (N'360703', N'3607', N'00,36,3607', N'南康区', N'36', N'江西省', N'3607', N'赣州市', N'360703', N'南康区', N'', N'', N'', N'', N'3', N'1', N''), (N'360704', N'3607', N'00,36,3607', N'赣县区', N'36', N'江西省', N'3607', N'赣州市', N'360704', N'赣县区', N'', N'', N'', N'', N'3', N'1', N''), (N'360722', N'3607', N'00,36,3607', N'信丰县', N'36', N'江西省', N'3607', N'赣州市', N'360722', N'信丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'360723', N'3607', N'00,36,3607', N'大余县', N'36', N'江西省', N'3607', N'赣州市', N'360723', N'大余县', N'', N'', N'', N'', N'3', N'1', N''), (N'360724', N'3607', N'00,36,3607', N'上犹县', N'36', N'江西省', N'3607', N'赣州市', N'360724', N'上犹县', N'', N'', N'', N'', N'3', N'1', N''), (N'360725', N'3607', N'00,36,3607', N'崇义县', N'36', N'江西省', N'3607', N'赣州市', N'360725', N'崇义县', N'', N'', N'', N'', N'3', N'1', N''), (N'360726', N'3607', N'00,36,3607', N'安远县', N'36', N'江西省', N'3607', N'赣州市', N'360726', N'安远县', N'', N'', N'', N'', N'3', N'1', N''), (N'360727', N'3607', N'00,36,3607', N'龙南县', N'36', N'江西省', N'3607', N'赣州市', N'360727', N'龙南县', N'', N'', N'', N'', N'3', N'1', N''), (N'360728', N'3607', N'00,36,3607', N'定南县', N'36', N'江西省', N'3607', N'赣州市', N'360728', N'定南县', N'', N'', N'', N'', N'3', N'1', N''), (N'360729', N'3607', N'00,36,3607', N'全南县', N'36', N'江西省', N'3607', N'赣州市', N'360729', N'全南县', N'', N'', N'', N'', N'3', N'1', N''), (N'360730', N'3607', N'00,36,3607', N'宁都县', N'36', N'江西省', N'3607', N'赣州市', N'360730', N'宁都县', N'', N'', N'', N'', N'3', N'1', N''), (N'360731', N'3607', N'00,36,3607', N'于都县', N'36', N'江西省', N'3607', N'赣州市', N'360731', N'于都县', N'', N'', N'', N'', N'3', N'1', N''), (N'360732', N'3607', N'00,36,3607', N'兴国县', N'36', N'江西省', N'3607', N'赣州市', N'360732', N'兴国县', N'', N'', N'', N'', N'3', N'1', N''), (N'360733', N'3607', N'00,36,3607', N'会昌县', N'36', N'江西省', N'3607', N'赣州市', N'360733', N'会昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'360734', N'3607', N'00,36,3607', N'寻乌县', N'36', N'江西省', N'3607', N'赣州市', N'360734', N'寻乌县', N'', N'', N'', N'', N'3', N'1', N''), (N'360735', N'3607', N'00,36,3607', N'石城县', N'36', N'江西省', N'3607', N'赣州市', N'360735', N'石城县', N'', N'', N'', N'', N'3', N'1', N''), (N'360781', N'3607', N'00,36,3607', N'瑞金市', N'36', N'江西省', N'3607', N'赣州市', N'360781', N'瑞金市', N'', N'', N'', N'', N'3', N'1', N''), (N'3608', N'36', N'00,36', N'吉安市', N'36', N'江西省', N'3608', N'吉安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360802', N'3608', N'00,36,3608', N'吉州区', N'36', N'江西省', N'3608', N'吉安市', N'360802', N'吉州区', N'', N'', N'', N'', N'3', N'1', N''), (N'360803', N'3608', N'00,36,3608', N'青原区', N'36', N'江西省', N'3608', N'吉安市', N'360803', N'青原区', N'', N'', N'', N'', N'3', N'1', N''), (N'360821', N'3608', N'00,36,3608', N'吉安县', N'36', N'江西省', N'3608', N'吉安市', N'360821', N'吉安县', N'', N'', N'', N'', N'3', N'1', N''), (N'360822', N'3608', N'00,36,3608', N'吉水县', N'36', N'江西省', N'3608', N'吉安市', N'360822', N'吉水县', N'', N'', N'', N'', N'3', N'1', N''), (N'360823', N'3608', N'00,36,3608', N'峡江县', N'36', N'江西省', N'3608', N'吉安市', N'360823', N'峡江县', N'', N'', N'', N'', N'3', N'1', N''), (N'360824', N'3608', N'00,36,3608', N'新干县', N'36', N'江西省', N'3608', N'吉安市', N'360824', N'新干县', N'', N'', N'', N'', N'3', N'1', N''), (N'360825', N'3608', N'00,36,3608', N'永丰县', N'36', N'江西省', N'3608', N'吉安市', N'360825', N'永丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'360826', N'3608', N'00,36,3608', N'泰和县', N'36', N'江西省', N'3608', N'吉安市', N'360826', N'泰和县', N'', N'', N'', N'', N'3', N'1', N''), (N'360827', N'3608', N'00,36,3608', N'遂川县', N'36', N'江西省', N'3608', N'吉安市', N'360827', N'遂川县', N'', N'', N'', N'', N'3', N'1', N''), (N'360828', N'3608', N'00,36,3608', N'万安县', N'36', N'江西省', N'3608', N'吉安市', N'360828', N'万安县', N'', N'', N'', N'', N'3', N'1', N''), (N'360829', N'3608', N'00,36,3608', N'安福县', N'36', N'江西省', N'3608', N'吉安市', N'360829', N'安福县', N'', N'', N'', N'', N'3', N'1', N''), (N'360830', N'3608', N'00,36,3608', N'永新县', N'36', N'江西省', N'3608', N'吉安市', N'360830', N'永新县', N'', N'', N'', N'', N'3', N'1', N''), (N'360881', N'3608', N'00,36,3608', N'井冈山市', N'36', N'江西省', N'3608', N'吉安市', N'360881', N'井冈山市', N'', N'', N'', N'', N'3', N'1', N''), (N'3609', N'36', N'00,36', N'宜春市', N'36', N'江西省', N'3609', N'宜春市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360902', N'3609', N'00,36,3609', N'袁州区', N'36', N'江西省', N'3609', N'宜春市', N'360902', N'袁州区', N'', N'', N'', N'', N'3', N'1', N''), (N'360921', N'3609', N'00,36,3609', N'奉新县', N'36', N'江西省', N'3609', N'宜春市', N'360921', N'奉新县', N'', N'', N'', N'', N'3', N'1', N''), (N'360922', N'3609', N'00,36,3609', N'万载县', N'36', N'江西省', N'3609', N'宜春市', N'360922', N'万载县', N'', N'', N'', N'', N'3', N'1', N''), (N'360923', N'3609', N'00,36,3609', N'上高县', N'36', N'江西省', N'3609', N'宜春市', N'360923', N'上高县', N'', N'', N'', N'', N'3', N'1', N''), (N'360924', N'3609', N'00,36,3609', N'宜丰县', N'36', N'江西省', N'3609', N'宜春市', N'360924', N'宜丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'360925', N'3609', N'00,36,3609', N'靖安县', N'36', N'江西省', N'3609', N'宜春市', N'360925', N'靖安县', N'', N'', N'', N'', N'3', N'1', N''), (N'360926', N'3609', N'00,36,3609', N'铜鼓县', N'36', N'江西省', N'3609', N'宜春市', N'360926', N'铜鼓县', N'', N'', N'', N'', N'3', N'1', N''), (N'360981', N'3609', N'00,36,3609', N'丰城市', N'36', N'江西省', N'3609', N'宜春市', N'360981', N'丰城市', N'', N'', N'', N'', N'3', N'1', N''), (N'360982', N'3609', N'00,36,3609', N'樟树市', N'36', N'江西省', N'3609', N'宜春市', N'360982', N'樟树市', N'', N'', N'', N'', N'3', N'1', N''), (N'360983', N'3609', N'00,36,3609', N'高安市', N'36', N'江西省', N'3609', N'宜春市', N'360983', N'高安市', N'', N'', N'', N'', N'3', N'1', N''), (N'3610', N'36', N'00,36', N'抚州市', N'36', N'江西省', N'3610', N'抚州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'361002', N'3610', N'00,36,3610', N'临川区', N'36', N'江西省', N'3610', N'抚州市', N'361002', N'临川区', N'', N'', N'', N'', N'3', N'1', N''), (N'361003', N'3610', N'00,36,3610', N'东乡区', N'36', N'江西省', N'3610', N'抚州市', N'361003', N'东乡区', N'', N'', N'', N'', N'3', N'1', N''), (N'361021', N'3610', N'00,36,3610', N'南城县', N'36', N'江西省', N'3610', N'抚州市', N'361021', N'南城县', N'', N'', N'', N'', N'3', N'1', N''), (N'361022', N'3610', N'00,36,3610', N'黎川县', N'36', N'江西省', N'3610', N'抚州市', N'361022', N'黎川县', N'', N'', N'', N'', N'3', N'1', N''), (N'361023', N'3610', N'00,36,3610', N'南丰县', N'36', N'江西省', N'3610', N'抚州市', N'361023', N'南丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'361024', N'3610', N'00,36,3610', N'崇仁县', N'36', N'江西省', N'3610', N'抚州市', N'361024', N'崇仁县', N'', N'', N'', N'', N'3', N'1', N''), (N'361025', N'3610', N'00,36,3610', N'乐安县', N'36', N'江西省', N'3610', N'抚州市', N'361025', N'乐安县', N'', N'', N'', N'', N'3', N'1', N''), (N'361026', N'3610', N'00,36,3610', N'宜黄县', N'36', N'江西省', N'3610', N'抚州市', N'361026', N'宜黄县', N'', N'', N'', N'', N'3', N'1', N''), (N'361027', N'3610', N'00,36,3610', N'金溪县', N'36', N'江西省', N'3610', N'抚州市', N'361027', N'金溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'361028', N'3610', N'00,36,3610', N'资溪县', N'36', N'江西省', N'3610', N'抚州市', N'361028', N'资溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'361030', N'3610', N'00,36,3610', N'广昌县', N'36', N'江西省', N'3610', N'抚州市', N'361030', N'广昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'3611', N'36', N'00,36', N'上饶市', N'36', N'江西省', N'3611', N'上饶市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'361102', N'3611', N'00,36,3611', N'信州区', N'36', N'江西省', N'3611', N'上饶市', N'361102', N'信州区', N'', N'', N'', N'', N'3', N'1', N''), (N'361103', N'3611', N'00,36,3611', N'广丰区', N'36', N'江西省', N'3611', N'上饶市', N'361103', N'广丰区', N'', N'', N'', N'', N'3', N'1', N''), (N'361104', N'3611', N'00,36,3611', N'广信区', N'36', N'江西省', N'3611', N'上饶市', N'361104', N'广信区', N'', N'', N'', N'', N'3', N'1', N''), (N'361123', N'3611', N'00,36,3611', N'玉山县', N'36', N'江西省', N'3611', N'上饶市', N'361123', N'玉山县', N'', N'', N'', N'', N'3', N'1', N''), (N'361124', N'3611', N'00,36,3611', N'铅山县', N'36', N'江西省', N'3611', N'上饶市', N'361124', N'铅山县', N'', N'', N'', N'', N'3', N'1', N''), (N'361125', N'3611', N'00,36,3611', N'横峰县', N'36', N'江西省', N'3611', N'上饶市', N'361125', N'横峰县', N'', N'', N'', N'', N'3', N'1', N''), (N'361126', N'3611', N'00,36,3611', N'弋阳县', N'36', N'江西省', N'3611', N'上饶市', N'361126', N'弋阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'361127', N'3611', N'00,36,3611', N'余干县', N'36', N'江西省', N'3611', N'上饶市', N'361127', N'余干县', N'', N'', N'', N'', N'3', N'1', N''), (N'361128', N'3611', N'00,36,3611', N'鄱阳县', N'36', N'江西省', N'3611', N'上饶市', N'361128', N'鄱阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'361129', N'3611', N'00,36,3611', N'万年县', N'36', N'江西省', N'3611', N'上饶市', N'361129', N'万年县', N'', N'', N'', N'', N'3', N'1', N''), (N'361130', N'3611', N'00,36,3611', N'婺源县', N'36', N'江西省', N'3611', N'上饶市', N'361130', N'婺源县', N'', N'', N'', N'', N'3', N'1', N''), (N'361181', N'3611', N'00,36,3611', N'德兴市', N'36', N'江西省', N'3611', N'上饶市', N'361181', N'德兴市', N'', N'', N'', N'', N'3', N'1', N''), (N'37', N'00', N'00', N'山东省', N'37', N'山东省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3701', N'37', N'00,37', N'济南市', N'37', N'山东省', N'3701', N'济南市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370102', N'3701', N'00,37,3701', N'历下区', N'37', N'山东省', N'3701', N'济南市', N'370102', N'历下区', N'', N'', N'', N'', N'3', N'1', N''), (N'370103', N'3701', N'00,37,3701', N'市中区', N'37', N'山东省', N'3701', N'济南市', N'370103', N'市中区', N'', N'', N'', N'', N'3', N'1', N''), (N'370104', N'3701', N'00,37,3701', N'槐荫区', N'37', N'山东省', N'3701', N'济南市', N'370104', N'槐荫区', N'', N'', N'', N'', N'3', N'1', N''), (N'370105', N'3701', N'00,37,3701', N'天桥区', N'37', N'山东省', N'3701', N'济南市', N'370105', N'天桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'370112', N'3701', N'00,37,3701', N'历城区', N'37', N'山东省', N'3701', N'济南市', N'370112', N'历城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370113', N'3701', N'00,37,3701', N'长清区', N'37', N'山东省', N'3701', N'济南市', N'370113', N'长清区', N'', N'', N'', N'', N'3', N'1', N''), (N'370114', N'3701', N'00,37,3701', N'章丘区', N'37', N'山东省', N'3701', N'济南市', N'370114', N'章丘区', N'', N'', N'', N'', N'3', N'1', N''), (N'370115', N'3701', N'00,37,3701', N'济阳区', N'37', N'山东省', N'3701', N'济南市', N'370115', N'济阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'370116', N'3701', N'00,37,3701', N'莱芜区', N'37', N'山东省', N'3701', N'济南市', N'370116', N'莱芜区', N'', N'', N'', N'', N'3', N'1', N''), (N'370117', N'3701', N'00,37,3701', N'钢城区', N'37', N'山东省', N'3701', N'济南市', N'370117', N'钢城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370124', N'3701', N'00,37,3701', N'平阴县', N'37', N'山东省', N'3701', N'济南市', N'370124', N'平阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'370126', N'3701', N'00,37,3701', N'商河县', N'37', N'山东省', N'3701', N'济南市', N'370126', N'商河县', N'', N'', N'', N'', N'3', N'1', N''), (N'3702', N'37', N'00,37', N'青岛市', N'37', N'山东省', N'3702', N'青岛市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370202', N'3702', N'00,37,3702', N'市南区', N'37', N'山东省', N'3702', N'青岛市', N'370202', N'市南区', N'', N'', N'', N'', N'3', N'1', N''), (N'370203', N'3702', N'00,37,3702', N'市北区', N'37', N'山东省', N'3702', N'青岛市', N'370203', N'市北区', N'', N'', N'', N'', N'3', N'1', N''), (N'370211', N'3702', N'00,37,3702', N'黄岛区', N'37', N'山东省', N'3702', N'青岛市', N'370211', N'黄岛区', N'', N'', N'', N'', N'3', N'1', N''), (N'370212', N'3702', N'00,37,3702', N'崂山区', N'37', N'山东省', N'3702', N'青岛市', N'370212', N'崂山区', N'', N'', N'', N'', N'3', N'1', N''), (N'370213', N'3702', N'00,37,3702', N'李沧区', N'37', N'山东省', N'3702', N'青岛市', N'370213', N'李沧区', N'', N'', N'', N'', N'3', N'1', N''), (N'370214', N'3702', N'00,37,3702', N'城阳区', N'37', N'山东省', N'3702', N'青岛市', N'370214', N'城阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'370215', N'3702', N'00,37,3702', N'即墨区', N'37', N'山东省', N'3702', N'青岛市', N'370215', N'即墨区', N'', N'', N'', N'', N'3', N'1', N''), (N'370281', N'3702', N'00,37,3702', N'胶州市', N'37', N'山东省', N'3702', N'青岛市', N'370281', N'胶州市', N'', N'', N'', N'', N'3', N'1', N''), (N'370283', N'3702', N'00,37,3702', N'平度市', N'37', N'山东省', N'3702', N'青岛市', N'370283', N'平度市', N'', N'', N'', N'', N'3', N'1', N''), (N'370285', N'3702', N'00,37,3702', N'莱西市', N'37', N'山东省', N'3702', N'青岛市', N'370285', N'莱西市', N'', N'', N'', N'', N'3', N'1', N''), (N'3703', N'37', N'00,37', N'淄博市', N'37', N'山东省', N'3703', N'淄博市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370302', N'3703', N'00,37,3703', N'淄川区', N'37', N'山东省', N'3703', N'淄博市', N'370302', N'淄川区', N'', N'', N'', N'', N'3', N'1', N''), (N'370303', N'3703', N'00,37,3703', N'张店区', N'37', N'山东省', N'3703', N'淄博市', N'370303', N'张店区', N'', N'', N'', N'', N'3', N'1', N''), (N'370304', N'3703', N'00,37,3703', N'博山区', N'37', N'山东省', N'3703', N'淄博市', N'370304', N'博山区', N'', N'', N'', N'', N'3', N'1', N''), (N'370305', N'3703', N'00,37,3703', N'临淄区', N'37', N'山东省', N'3703', N'淄博市', N'370305', N'临淄区', N'', N'', N'', N'', N'3', N'1', N''), (N'370306', N'3703', N'00,37,3703', N'周村区', N'37', N'山东省', N'3703', N'淄博市', N'370306', N'周村区', N'', N'', N'', N'', N'3', N'1', N''), (N'370321', N'3703', N'00,37,3703', N'桓台县', N'37', N'山东省', N'3703', N'淄博市', N'370321', N'桓台县', N'', N'', N'', N'', N'3', N'1', N''), (N'370322', N'3703', N'00,37,3703', N'高青县', N'37', N'山东省', N'3703', N'淄博市', N'370322', N'高青县', N'', N'', N'', N'', N'3', N'1', N''), (N'370323', N'3703', N'00,37,3703', N'沂源县', N'37', N'山东省', N'3703', N'淄博市', N'370323', N'沂源县', N'', N'', N'', N'', N'3', N'1', N''), (N'3704', N'37', N'00,37', N'枣庄市', N'37', N'山东省', N'3704', N'枣庄市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370402', N'3704', N'00,37,3704', N'市中区', N'37', N'山东省', N'3704', N'枣庄市', N'370402', N'市中区', N'', N'', N'', N'', N'3', N'1', N''), (N'370403', N'3704', N'00,37,3704', N'薛城区', N'37', N'山东省', N'3704', N'枣庄市', N'370403', N'薛城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370404', N'3704', N'00,37,3704', N'峄城区', N'37', N'山东省', N'3704', N'枣庄市', N'370404', N'峄城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370405', N'3704', N'00,37,3704', N'台儿庄区', N'37', N'山东省', N'3704', N'枣庄市', N'370405', N'台儿庄区', N'', N'', N'', N'', N'3', N'1', N''), (N'370406', N'3704', N'00,37,3704', N'山亭区', N'37', N'山东省', N'3704', N'枣庄市', N'370406', N'山亭区', N'', N'', N'', N'', N'3', N'1', N''), (N'370481', N'3704', N'00,37,3704', N'滕州市', N'37', N'山东省', N'3704', N'枣庄市', N'370481', N'滕州市', N'', N'', N'', N'', N'3', N'1', N''), (N'3705', N'37', N'00,37', N'东营市', N'37', N'山东省', N'3705', N'东营市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370502', N'3705', N'00,37,3705', N'东营区', N'37', N'山东省', N'3705', N'东营市', N'370502', N'东营区', N'', N'', N'', N'', N'3', N'1', N''), (N'370503', N'3705', N'00,37,3705', N'河口区', N'37', N'山东省', N'3705', N'东营市', N'370503', N'河口区', N'', N'', N'', N'', N'3', N'1', N''), (N'370505', N'3705', N'00,37,3705', N'垦利区', N'37', N'山东省', N'3705', N'东营市', N'370505', N'垦利区', N'', N'', N'', N'', N'3', N'1', N''), (N'370522', N'3705', N'00,37,3705', N'利津县', N'37', N'山东省', N'3705', N'东营市', N'370522', N'利津县', N'', N'', N'', N'', N'3', N'1', N''), (N'370523', N'3705', N'00,37,3705', N'广饶县', N'37', N'山东省', N'3705', N'东营市', N'370523', N'广饶县', N'', N'', N'', N'', N'3', N'1', N''), (N'3706', N'37', N'00,37', N'烟台市', N'37', N'山东省', N'3706', N'烟台市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370602', N'3706', N'00,37,3706', N'芝罘区', N'37', N'山东省', N'3706', N'烟台市', N'370602', N'芝罘区', N'', N'', N'', N'', N'3', N'1', N''), (N'370611', N'3706', N'00,37,3706', N'福山区', N'37', N'山东省', N'3706', N'烟台市', N'370611', N'福山区', N'', N'', N'', N'', N'3', N'1', N''), (N'370612', N'3706', N'00,37,3706', N'牟平区', N'37', N'山东省', N'3706', N'烟台市', N'370612', N'牟平区', N'', N'', N'', N'', N'3', N'1', N''), (N'370613', N'3706', N'00,37,3706', N'莱山区', N'37', N'山东省', N'3706', N'烟台市', N'370613', N'莱山区', N'', N'', N'', N'', N'3', N'1', N''), (N'370634', N'3706', N'00,37,3706', N'长岛县', N'37', N'山东省', N'3706', N'烟台市', N'370634', N'长岛县', N'', N'', N'', N'', N'3', N'1', N''), (N'370681', N'3706', N'00,37,3706', N'龙口市', N'37', N'山东省', N'3706', N'烟台市', N'370681', N'龙口市', N'', N'', N'', N'', N'3', N'1', N''), (N'370682', N'3706', N'00,37,3706', N'莱阳市', N'37', N'山东省', N'3706', N'烟台市', N'370682', N'莱阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'370683', N'3706', N'00,37,3706', N'莱州市', N'37', N'山东省', N'3706', N'烟台市', N'370683', N'莱州市', N'', N'', N'', N'', N'3', N'1', N''), (N'370684', N'3706', N'00,37,3706', N'蓬莱市', N'37', N'山东省', N'3706', N'烟台市', N'370684', N'蓬莱市', N'', N'', N'', N'', N'3', N'1', N''), (N'370685', N'3706', N'00,37,3706', N'招远市', N'37', N'山东省', N'3706', N'烟台市', N'370685', N'招远市', N'', N'', N'', N'', N'3', N'1', N''), (N'370686', N'3706', N'00,37,3706', N'栖霞市', N'37', N'山东省', N'3706', N'烟台市', N'370686', N'栖霞市', N'', N'', N'', N'', N'3', N'1', N''), (N'370687', N'3706', N'00,37,3706', N'海阳市', N'37', N'山东省', N'3706', N'烟台市', N'370687', N'海阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'3707', N'37', N'00,37', N'潍坊市', N'37', N'山东省', N'3707', N'潍坊市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370702', N'3707', N'00,37,3707', N'潍城区', N'37', N'山东省', N'3707', N'潍坊市', N'370702', N'潍城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370703', N'3707', N'00,37,3707', N'寒亭区', N'37', N'山东省', N'3707', N'潍坊市', N'370703', N'寒亭区', N'', N'', N'', N'', N'3', N'1', N''), (N'370704', N'3707', N'00,37,3707', N'坊子区', N'37', N'山东省', N'3707', N'潍坊市', N'370704', N'坊子区', N'', N'', N'', N'', N'3', N'1', N''), (N'370705', N'3707', N'00,37,3707', N'奎文区', N'37', N'山东省', N'3707', N'潍坊市', N'370705', N'奎文区', N'', N'', N'', N'', N'3', N'1', N''), (N'370724', N'3707', N'00,37,3707', N'临朐县', N'37', N'山东省', N'3707', N'潍坊市', N'370724', N'临朐县', N'', N'', N'', N'', N'3', N'1', N''), (N'370725', N'3707', N'00,37,3707', N'昌乐县', N'37', N'山东省', N'3707', N'潍坊市', N'370725', N'昌乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'370781', N'3707', N'00,37,3707', N'青州市', N'37', N'山东省', N'3707', N'潍坊市', N'370781', N'青州市', N'', N'', N'', N'', N'3', N'1', N''), (N'370782', N'3707', N'00,37,3707', N'诸城市', N'37', N'山东省', N'3707', N'潍坊市', N'370782', N'诸城市', N'', N'', N'', N'', N'3', N'1', N''), (N'370783', N'3707', N'00,37,3707', N'寿光市', N'37', N'山东省', N'3707', N'潍坊市', N'370783', N'寿光市', N'', N'', N'', N'', N'3', N'1', N''), (N'370784', N'3707', N'00,37,3707', N'安丘市', N'37', N'山东省', N'3707', N'潍坊市', N'370784', N'安丘市', N'', N'', N'', N'', N'3', N'1', N''), (N'370785', N'3707', N'00,37,3707', N'高密市', N'37', N'山东省', N'3707', N'潍坊市', N'370785', N'高密市', N'', N'', N'', N'', N'3', N'1', N''), (N'370786', N'3707', N'00,37,3707', N'昌邑市', N'37', N'山东省', N'3707', N'潍坊市', N'370786', N'昌邑市', N'', N'', N'', N'', N'3', N'1', N''), (N'3708', N'37', N'00,37', N'济宁市', N'37', N'山东省', N'3708', N'济宁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370811', N'3708', N'00,37,3708', N'任城区', N'37', N'山东省', N'3708', N'济宁市', N'370811', N'任城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370812', N'3708', N'00,37,3708', N'兖州区', N'37', N'山东省', N'3708', N'济宁市', N'370812', N'兖州区', N'', N'', N'', N'', N'3', N'1', N''), (N'370826', N'3708', N'00,37,3708', N'微山县', N'37', N'山东省', N'3708', N'济宁市', N'370826', N'微山县', N'', N'', N'', N'', N'3', N'1', N''), (N'370827', N'3708', N'00,37,3708', N'鱼台县', N'37', N'山东省', N'3708', N'济宁市', N'370827', N'鱼台县', N'', N'', N'', N'', N'3', N'1', N''), (N'370828', N'3708', N'00,37,3708', N'金乡县', N'37', N'山东省', N'3708', N'济宁市', N'370828', N'金乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'370829', N'3708', N'00,37,3708', N'嘉祥县', N'37', N'山东省', N'3708', N'济宁市', N'370829', N'嘉祥县', N'', N'', N'', N'', N'3', N'1', N''), (N'370830', N'3708', N'00,37,3708', N'汶上县', N'37', N'山东省', N'3708', N'济宁市', N'370830', N'汶上县', N'', N'', N'', N'', N'3', N'1', N''), (N'370831', N'3708', N'00,37,3708', N'泗水县', N'37', N'山东省', N'3708', N'济宁市', N'370831', N'泗水县', N'', N'', N'', N'', N'3', N'1', N''), (N'370832', N'3708', N'00,37,3708', N'梁山县', N'37', N'山东省', N'3708', N'济宁市', N'370832', N'梁山县', N'', N'', N'', N'', N'3', N'1', N''), (N'370881', N'3708', N'00,37,3708', N'曲阜市', N'37', N'山东省', N'3708', N'济宁市', N'370881', N'曲阜市', N'', N'', N'', N'', N'3', N'1', N''), (N'370883', N'3708', N'00,37,3708', N'邹城市', N'37', N'山东省', N'3708', N'济宁市', N'370883', N'邹城市', N'', N'', N'', N'', N'3', N'1', N''), (N'3709', N'37', N'00,37', N'泰安市', N'37', N'山东省', N'3709', N'泰安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370902', N'3709', N'00,37,3709', N'泰山区', N'37', N'山东省', N'3709', N'泰安市', N'370902', N'泰山区', N'', N'', N'', N'', N'3', N'1', N''), (N'370911', N'3709', N'00,37,3709', N'岱岳区', N'37', N'山东省', N'3709', N'泰安市', N'370911', N'岱岳区', N'', N'', N'', N'', N'3', N'1', N''), (N'370921', N'3709', N'00,37,3709', N'宁阳县', N'37', N'山东省', N'3709', N'泰安市', N'370921', N'宁阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'370923', N'3709', N'00,37,3709', N'东平县', N'37', N'山东省', N'3709', N'泰安市', N'370923', N'东平县', N'', N'', N'', N'', N'3', N'1', N''), (N'370982', N'3709', N'00,37,3709', N'新泰市', N'37', N'山东省', N'3709', N'泰安市', N'370982', N'新泰市', N'', N'', N'', N'', N'3', N'1', N''), (N'370983', N'3709', N'00,37,3709', N'肥城市', N'37', N'山东省', N'3709', N'泰安市', N'370983', N'肥城市', N'', N'', N'', N'', N'3', N'1', N''), (N'3710', N'37', N'00,37', N'威海市', N'37', N'山东省', N'3710', N'威海市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371002', N'3710', N'00,37,3710', N'环翠区', N'37', N'山东省', N'3710', N'威海市', N'371002', N'环翠区', N'', N'', N'', N'', N'3', N'1', N''), (N'371003', N'3710', N'00,37,3710', N'文登区', N'37', N'山东省', N'3710', N'威海市', N'371003', N'文登区', N'', N'', N'', N'', N'3', N'1', N''), (N'371082', N'3710', N'00,37,3710', N'荣成市', N'37', N'山东省', N'3710', N'威海市', N'371082', N'荣成市', N'', N'', N'', N'', N'3', N'1', N''), (N'371083', N'3710', N'00,37,3710', N'乳山市', N'37', N'山东省', N'3710', N'威海市', N'371083', N'乳山市', N'', N'', N'', N'', N'3', N'1', N''), (N'3711', N'37', N'00,37', N'日照市', N'37', N'山东省', N'3711', N'日照市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371102', N'3711', N'00,37,3711', N'东港区', N'37', N'山东省', N'3711', N'日照市', N'371102', N'东港区', N'', N'', N'', N'', N'3', N'1', N''), (N'371103', N'3711', N'00,37,3711', N'岚山区', N'37', N'山东省', N'3711', N'日照市', N'371103', N'岚山区', N'', N'', N'', N'', N'3', N'1', N''), (N'371121', N'3711', N'00,37,3711', N'五莲县', N'37', N'山东省', N'3711', N'日照市', N'371121', N'五莲县', N'', N'', N'', N'', N'3', N'1', N''), (N'371122', N'3711', N'00,37,3711', N'莒县', N'37', N'山东省', N'3711', N'日照市', N'371122', N'莒县', N'', N'', N'', N'', N'3', N'1', N''), (N'3713', N'37', N'00,37', N'临沂市', N'37', N'山东省', N'3713', N'临沂市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371302', N'3713', N'00,37,3713', N'兰山区', N'37', N'山东省', N'3713', N'临沂市', N'371302', N'兰山区', N'', N'', N'', N'', N'3', N'1', N''), (N'371311', N'3713', N'00,37,3713', N'罗庄区', N'37', N'山东省', N'3713', N'临沂市', N'371311', N'罗庄区', N'', N'', N'', N'', N'3', N'1', N''), (N'371312', N'3713', N'00,37,3713', N'河东区', N'37', N'山东省', N'3713', N'临沂市', N'371312', N'河东区', N'', N'', N'', N'', N'3', N'1', N''), (N'371321', N'3713', N'00,37,3713', N'沂南县', N'37', N'山东省', N'3713', N'临沂市', N'371321', N'沂南县', N'', N'', N'', N'', N'3', N'1', N''), (N'371322', N'3713', N'00,37,3713', N'郯城县', N'37', N'山东省', N'3713', N'临沂市', N'371322', N'郯城县', N'', N'', N'', N'', N'3', N'1', N''), (N'371323', N'3713', N'00,37,3713', N'沂水县', N'37', N'山东省', N'3713', N'临沂市', N'371323', N'沂水县', N'', N'', N'', N'', N'3', N'1', N''), (N'371324', N'3713', N'00,37,3713', N'兰陵县', N'37', N'山东省', N'3713', N'临沂市', N'371324', N'兰陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'371325', N'3713', N'00,37,3713', N'费县', N'37', N'山东省', N'3713', N'临沂市', N'371325', N'费县', N'', N'', N'', N'', N'3', N'1', N''), (N'371326', N'3713', N'00,37,3713', N'平邑县', N'37', N'山东省', N'3713', N'临沂市', N'371326', N'平邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'371327', N'3713', N'00,37,3713', N'莒南县', N'37', N'山东省', N'3713', N'临沂市', N'371327', N'莒南县', N'', N'', N'', N'', N'3', N'1', N''), (N'371328', N'3713', N'00,37,3713', N'蒙阴县', N'37', N'山东省', N'3713', N'临沂市', N'371328', N'蒙阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'371329', N'3713', N'00,37,3713', N'临沭县', N'37', N'山东省', N'3713', N'临沂市', N'371329', N'临沭县', N'', N'', N'', N'', N'3', N'1', N''), (N'3714', N'37', N'00,37', N'德州市', N'37', N'山东省', N'3714', N'德州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371402', N'3714', N'00,37,3714', N'德城区', N'37', N'山东省', N'3714', N'德州市', N'371402', N'德城区', N'', N'', N'', N'', N'3', N'1', N''), (N'371403', N'3714', N'00,37,3714', N'陵城区', N'37', N'山东省', N'3714', N'德州市', N'371403', N'陵城区', N'', N'', N'', N'', N'3', N'1', N''), (N'371422', N'3714', N'00,37,3714', N'宁津县', N'37', N'山东省', N'3714', N'德州市', N'371422', N'宁津县', N'', N'', N'', N'', N'3', N'1', N''), (N'371423', N'3714', N'00,37,3714', N'庆云县', N'37', N'山东省', N'3714', N'德州市', N'371423', N'庆云县', N'', N'', N'', N'', N'3', N'1', N''), (N'371424', N'3714', N'00,37,3714', N'临邑县', N'37', N'山东省', N'3714', N'德州市', N'371424', N'临邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'371425', N'3714', N'00,37,3714', N'齐河县', N'37', N'山东省', N'3714', N'德州市', N'371425', N'齐河县', N'', N'', N'', N'', N'3', N'1', N''), (N'371426', N'3714', N'00,37,3714', N'平原县', N'37', N'山东省', N'3714', N'德州市', N'371426', N'平原县', N'', N'', N'', N'', N'3', N'1', N''), (N'371427', N'3714', N'00,37,3714', N'夏津县', N'37', N'山东省', N'3714', N'德州市', N'371427', N'夏津县', N'', N'', N'', N'', N'3', N'1', N''), (N'371428', N'3714', N'00,37,3714', N'武城县', N'37', N'山东省', N'3714', N'德州市', N'371428', N'武城县', N'', N'', N'', N'', N'3', N'1', N''), (N'371481', N'3714', N'00,37,3714', N'乐陵市', N'37', N'山东省', N'3714', N'德州市', N'371481', N'乐陵市', N'', N'', N'', N'', N'3', N'1', N''), (N'371482', N'3714', N'00,37,3714', N'禹城市', N'37', N'山东省', N'3714', N'德州市', N'371482', N'禹城市', N'', N'', N'', N'', N'3', N'1', N''), (N'3715', N'37', N'00,37', N'聊城市', N'37', N'山东省', N'3715', N'聊城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371502', N'3715', N'00,37,3715', N'东昌府区', N'37', N'山东省', N'3715', N'聊城市', N'371502', N'东昌府区', N'', N'', N'', N'', N'3', N'1', N''), (N'371503', N'3715', N'00,37,3715', N'茌平区', N'37', N'山东省', N'3715', N'聊城市', N'371503', N'茌平区', N'', N'', N'', N'', N'3', N'1', N''), (N'371521', N'3715', N'00,37,3715', N'阳谷县', N'37', N'山东省', N'3715', N'聊城市', N'371521', N'阳谷县', N'', N'', N'', N'', N'3', N'1', N''), (N'371522', N'3715', N'00,37,3715', N'莘县', N'37', N'山东省', N'3715', N'聊城市', N'371522', N'莘县', N'', N'', N'', N'', N'3', N'1', N''), (N'371524', N'3715', N'00,37,3715', N'东阿县', N'37', N'山东省', N'3715', N'聊城市', N'371524', N'东阿县', N'', N'', N'', N'', N'3', N'1', N''), (N'371525', N'3715', N'00,37,3715', N'冠县', N'37', N'山东省', N'3715', N'聊城市', N'371525', N'冠县', N'', N'', N'', N'', N'3', N'1', N''), (N'371526', N'3715', N'00,37,3715', N'高唐县', N'37', N'山东省', N'3715', N'聊城市', N'371526', N'高唐县', N'', N'', N'', N'', N'3', N'1', N''), (N'371581', N'3715', N'00,37,3715', N'临清市', N'37', N'山东省', N'3715', N'聊城市', N'371581', N'临清市', N'', N'', N'', N'', N'3', N'1', N''), (N'3716', N'37', N'00,37', N'滨州市', N'37', N'山东省', N'3716', N'滨州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371602', N'3716', N'00,37,3716', N'滨城区', N'37', N'山东省', N'3716', N'滨州市', N'371602', N'滨城区', N'', N'', N'', N'', N'3', N'1', N''), (N'371603', N'3716', N'00,37,3716', N'沾化区', N'37', N'山东省', N'3716', N'滨州市', N'371603', N'沾化区', N'', N'', N'', N'', N'3', N'1', N''), (N'371621', N'3716', N'00,37,3716', N'惠民县', N'37', N'山东省', N'3716', N'滨州市', N'371621', N'惠民县', N'', N'', N'', N'', N'3', N'1', N''), (N'371622', N'3716', N'00,37,3716', N'阳信县', N'37', N'山东省', N'3716', N'滨州市', N'371622', N'阳信县', N'', N'', N'', N'', N'3', N'1', N''), (N'371623', N'3716', N'00,37,3716', N'无棣县', N'37', N'山东省', N'3716', N'滨州市', N'371623', N'无棣县', N'', N'', N'', N'', N'3', N'1', N''), (N'371625', N'3716', N'00,37,3716', N'博兴县', N'37', N'山东省', N'3716', N'滨州市', N'371625', N'博兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'371681', N'3716', N'00,37,3716', N'邹平市', N'37', N'山东省', N'3716', N'滨州市', N'371681', N'邹平市', N'', N'', N'', N'', N'3', N'1', N''), (N'3717', N'37', N'00,37', N'菏泽市', N'37', N'山东省', N'3717', N'菏泽市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371702', N'3717', N'00,37,3717', N'牡丹区', N'37', N'山东省', N'3717', N'菏泽市', N'371702', N'牡丹区', N'', N'', N'', N'', N'3', N'1', N''), (N'371703', N'3717', N'00,37,3717', N'定陶区', N'37', N'山东省', N'3717', N'菏泽市', N'371703', N'定陶区', N'', N'', N'', N'', N'3', N'1', N''), (N'371721', N'3717', N'00,37,3717', N'曹县', N'37', N'山东省', N'3717', N'菏泽市', N'371721', N'曹县', N'', N'', N'', N'', N'3', N'1', N''), (N'371722', N'3717', N'00,37,3717', N'单县', N'37', N'山东省', N'3717', N'菏泽市', N'371722', N'单县', N'', N'', N'', N'', N'3', N'1', N''), (N'371723', N'3717', N'00,37,3717', N'成武县', N'37', N'山东省', N'3717', N'菏泽市', N'371723', N'成武县', N'', N'', N'', N'', N'3', N'1', N''), (N'371724', N'3717', N'00,37,3717', N'巨野县', N'37', N'山东省', N'3717', N'菏泽市', N'371724', N'巨野县', N'', N'', N'', N'', N'3', N'1', N''), (N'371725', N'3717', N'00,37,3717', N'郓城县', N'37', N'山东省', N'3717', N'菏泽市', N'371725', N'郓城县', N'', N'', N'', N'', N'3', N'1', N''), (N'371726', N'3717', N'00,37,3717', N'鄄城县', N'37', N'山东省', N'3717', N'菏泽市', N'371726', N'鄄城县', N'', N'', N'', N'', N'3', N'1', N''), (N'371728', N'3717', N'00,37,3717', N'东明县', N'37', N'山东省', N'3717', N'菏泽市', N'371728', N'东明县', N'', N'', N'', N'', N'3', N'1', N''), (N'41', N'00', N'00', N'河南省', N'41', N'河南省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4101', N'41', N'00,41', N'郑州市', N'41', N'河南省', N'4101', N'郑州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410102', N'4101', N'00,41,4101', N'中原区', N'41', N'河南省', N'4101', N'郑州市', N'410102', N'中原区', N'', N'', N'', N'', N'3', N'1', N''), (N'410103', N'4101', N'00,41,4101', N'二七区', N'41', N'河南省', N'4101', N'郑州市', N'410103', N'二七区', N'', N'', N'', N'', N'3', N'1', N''), (N'410104', N'4101', N'00,41,4101', N'管城回族区', N'41', N'河南省', N'4101', N'郑州市', N'410104', N'管城回族区', N'', N'', N'', N'', N'3', N'1', N''), (N'410105', N'4101', N'00,41,4101', N'金水区', N'41', N'河南省', N'4101', N'郑州市', N'410105', N'金水区', N'', N'', N'', N'', N'3', N'1', N''), (N'410106', N'4101', N'00,41,4101', N'上街区', N'41', N'河南省', N'4101', N'郑州市', N'410106', N'上街区', N'', N'', N'', N'', N'3', N'1', N''), (N'410108', N'4101', N'00,41,4101', N'惠济区', N'41', N'河南省', N'4101', N'郑州市', N'410108', N'惠济区', N'', N'', N'', N'', N'3', N'1', N''), (N'410122', N'4101', N'00,41,4101', N'中牟县', N'41', N'河南省', N'4101', N'郑州市', N'410122', N'中牟县', N'', N'', N'', N'', N'3', N'1', N''), (N'410181', N'4101', N'00,41,4101', N'巩义市', N'41', N'河南省', N'4101', N'郑州市', N'410181', N'巩义市', N'', N'', N'', N'', N'3', N'1', N''), (N'410182', N'4101', N'00,41,4101', N'荥阳市', N'41', N'河南省', N'4101', N'郑州市', N'410182', N'荥阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'410183', N'4101', N'00,41,4101', N'新密市', N'41', N'河南省', N'4101', N'郑州市', N'410183', N'新密市', N'', N'', N'', N'', N'3', N'1', N''), (N'410184', N'4101', N'00,41,4101', N'新郑市', N'41', N'河南省', N'4101', N'郑州市', N'410184', N'新郑市', N'', N'', N'', N'', N'3', N'1', N''), (N'410185', N'4101', N'00,41,4101', N'登封市', N'41', N'河南省', N'4101', N'郑州市', N'410185', N'登封市', N'', N'', N'', N'', N'3', N'1', N''), (N'4102', N'41', N'00,41', N'开封市', N'41', N'河南省', N'4102', N'开封市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410202', N'4102', N'00,41,4102', N'龙亭区', N'41', N'河南省', N'4102', N'开封市', N'410202', N'龙亭区', N'', N'', N'', N'', N'3', N'1', N''), (N'410203', N'4102', N'00,41,4102', N'顺河回族区', N'41', N'河南省', N'4102', N'开封市', N'410203', N'顺河回族区', N'', N'', N'', N'', N'3', N'1', N''), (N'410204', N'4102', N'00,41,4102', N'鼓楼区', N'41', N'河南省', N'4102', N'开封市', N'410204', N'鼓楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'410205', N'4102', N'00,41,4102', N'禹王台区', N'41', N'河南省', N'4102', N'开封市', N'410205', N'禹王台区', N'', N'', N'', N'', N'3', N'1', N''), (N'410212', N'4102', N'00,41,4102', N'祥符区', N'41', N'河南省', N'4102', N'开封市', N'410212', N'祥符区', N'', N'', N'', N'', N'3', N'1', N''), (N'410221', N'4102', N'00,41,4102', N'杞县', N'41', N'河南省', N'4102', N'开封市', N'410221', N'杞县', N'', N'', N'', N'', N'3', N'1', N''), (N'410222', N'4102', N'00,41,4102', N'通许县', N'41', N'河南省', N'4102', N'开封市', N'410222', N'通许县', N'', N'', N'', N'', N'3', N'1', N''), (N'410223', N'4102', N'00,41,4102', N'尉氏县', N'41', N'河南省', N'4102', N'开封市', N'410223', N'尉氏县', N'', N'', N'', N'', N'3', N'1', N''), (N'410225', N'4102', N'00,41,4102', N'兰考县', N'41', N'河南省', N'4102', N'开封市', N'410225', N'兰考县', N'', N'', N'', N'', N'3', N'1', N''), (N'4103', N'41', N'00,41', N'洛阳市', N'41', N'河南省', N'4103', N'洛阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410302', N'4103', N'00,41,4103', N'老城区', N'41', N'河南省', N'4103', N'洛阳市', N'410302', N'老城区', N'', N'', N'', N'', N'3', N'1', N''), (N'410303', N'4103', N'00,41,4103', N'西工区', N'41', N'河南省', N'4103', N'洛阳市', N'410303', N'西工区', N'', N'', N'', N'', N'3', N'1', N''), (N'410304', N'4103', N'00,41,4103', N'瀍河回族区', N'41', N'河南省', N'4103', N'洛阳市', N'410304', N'瀍河回族区', N'', N'', N'', N'', N'3', N'1', N''), (N'410305', N'4103', N'00,41,4103', N'涧西区', N'41', N'河南省', N'4103', N'洛阳市', N'410305', N'涧西区', N'', N'', N'', N'', N'3', N'1', N''), (N'410306', N'4103', N'00,41,4103', N'吉利区', N'41', N'河南省', N'4103', N'洛阳市', N'410306', N'吉利区', N'', N'', N'', N'', N'3', N'1', N''), (N'410311', N'4103', N'00,41,4103', N'洛龙区', N'41', N'河南省', N'4103', N'洛阳市', N'410311', N'洛龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'410322', N'4103', N'00,41,4103', N'孟津县', N'41', N'河南省', N'4103', N'洛阳市', N'410322', N'孟津县', N'', N'', N'', N'', N'3', N'1', N''), (N'410323', N'4103', N'00,41,4103', N'新安县', N'41', N'河南省', N'4103', N'洛阳市', N'410323', N'新安县', N'', N'', N'', N'', N'3', N'1', N''), (N'410324', N'4103', N'00,41,4103', N'栾川县', N'41', N'河南省', N'4103', N'洛阳市', N'410324', N'栾川县', N'', N'', N'', N'', N'3', N'1', N''), (N'410325', N'4103', N'00,41,4103', N'嵩县', N'41', N'河南省', N'4103', N'洛阳市', N'410325', N'嵩县', N'', N'', N'', N'', N'3', N'1', N''), (N'410326', N'4103', N'00,41,4103', N'汝阳县', N'41', N'河南省', N'4103', N'洛阳市', N'410326', N'汝阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'410327', N'4103', N'00,41,4103', N'宜阳县', N'41', N'河南省', N'4103', N'洛阳市', N'410327', N'宜阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'410328', N'4103', N'00,41,4103', N'洛宁县', N'41', N'河南省', N'4103', N'洛阳市', N'410328', N'洛宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'410329', N'4103', N'00,41,4103', N'伊川县', N'41', N'河南省', N'4103', N'洛阳市', N'410329', N'伊川县', N'', N'', N'', N'', N'3', N'1', N''), (N'410381', N'4103', N'00,41,4103', N'偃师市', N'41', N'河南省', N'4103', N'洛阳市', N'410381', N'偃师市', N'', N'', N'', N'', N'3', N'1', N''), (N'4104', N'41', N'00,41', N'平顶山市', N'41', N'河南省', N'4104', N'平顶山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410402', N'4104', N'00,41,4104', N'新华区', N'41', N'河南省', N'4104', N'平顶山市', N'410402', N'新华区', N'', N'', N'', N'', N'3', N'1', N''), (N'410403', N'4104', N'00,41,4104', N'卫东区', N'41', N'河南省', N'4104', N'平顶山市', N'410403', N'卫东区', N'', N'', N'', N'', N'3', N'1', N''), (N'410404', N'4104', N'00,41,4104', N'石龙区', N'41', N'河南省', N'4104', N'平顶山市', N'410404', N'石龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'410411', N'4104', N'00,41,4104', N'湛河区', N'41', N'河南省', N'4104', N'平顶山市', N'410411', N'湛河区', N'', N'', N'', N'', N'3', N'1', N''), (N'410421', N'4104', N'00,41,4104', N'宝丰县', N'41', N'河南省', N'4104', N'平顶山市', N'410421', N'宝丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'410422', N'4104', N'00,41,4104', N'叶县', N'41', N'河南省', N'4104', N'平顶山市', N'410422', N'叶县', N'', N'', N'', N'', N'3', N'1', N''), (N'410423', N'4104', N'00,41,4104', N'鲁山县', N'41', N'河南省', N'4104', N'平顶山市', N'410423', N'鲁山县', N'', N'', N'', N'', N'3', N'1', N''), (N'410425', N'4104', N'00,41,4104', N'郏县', N'41', N'河南省', N'4104', N'平顶山市', N'410425', N'郏县', N'', N'', N'', N'', N'3', N'1', N''), (N'410481', N'4104', N'00,41,4104', N'舞钢市', N'41', N'河南省', N'4104', N'平顶山市', N'410481', N'舞钢市', N'', N'', N'', N'', N'3', N'1', N''), (N'410482', N'4104', N'00,41,4104', N'汝州市', N'41', N'河南省', N'4104', N'平顶山市', N'410482', N'汝州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4105', N'41', N'00,41', N'安阳市', N'41', N'河南省', N'4105', N'安阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410502', N'4105', N'00,41,4105', N'文峰区', N'41', N'河南省', N'4105', N'安阳市', N'410502', N'文峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'410503', N'4105', N'00,41,4105', N'北关区', N'41', N'河南省', N'4105', N'安阳市', N'410503', N'北关区', N'', N'', N'', N'', N'3', N'1', N''), (N'410505', N'4105', N'00,41,4105', N'殷都区', N'41', N'河南省', N'4105', N'安阳市', N'410505', N'殷都区', N'', N'', N'', N'', N'3', N'1', N''), (N'410506', N'4105', N'00,41,4105', N'龙安区', N'41', N'河南省', N'4105', N'安阳市', N'410506', N'龙安区', N'', N'', N'', N'', N'3', N'1', N''), (N'410522', N'4105', N'00,41,4105', N'安阳县', N'41', N'河南省', N'4105', N'安阳市', N'410522', N'安阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'410523', N'4105', N'00,41,4105', N'汤阴县', N'41', N'河南省', N'4105', N'安阳市', N'410523', N'汤阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'410526', N'4105', N'00,41,4105', N'滑县', N'41', N'河南省', N'4105', N'安阳市', N'410526', N'滑县', N'', N'', N'', N'', N'3', N'1', N''), (N'410527', N'4105', N'00,41,4105', N'内黄县', N'41', N'河南省', N'4105', N'安阳市', N'410527', N'内黄县', N'', N'', N'', N'', N'3', N'1', N''), (N'410581', N'4105', N'00,41,4105', N'林州市', N'41', N'河南省', N'4105', N'安阳市', N'410581', N'林州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4106', N'41', N'00,41', N'鹤壁市', N'41', N'河南省', N'4106', N'鹤壁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410602', N'4106', N'00,41,4106', N'鹤山区', N'41', N'河南省', N'4106', N'鹤壁市', N'410602', N'鹤山区', N'', N'', N'', N'', N'3', N'1', N''), (N'410603', N'4106', N'00,41,4106', N'山城区', N'41', N'河南省', N'4106', N'鹤壁市', N'410603', N'山城区', N'', N'', N'', N'', N'3', N'1', N''), (N'410611', N'4106', N'00,41,4106', N'淇滨区', N'41', N'河南省', N'4106', N'鹤壁市', N'410611', N'淇滨区', N'', N'', N'', N'', N'3', N'1', N''), (N'410621', N'4106', N'00,41,4106', N'浚县', N'41', N'河南省', N'4106', N'鹤壁市', N'410621', N'浚县', N'', N'', N'', N'', N'3', N'1', N''), (N'410622', N'4106', N'00,41,4106', N'淇县', N'41', N'河南省', N'4106', N'鹤壁市', N'410622', N'淇县', N'', N'', N'', N'', N'3', N'1', N''), (N'4107', N'41', N'00,41', N'新乡市', N'41', N'河南省', N'4107', N'新乡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410702', N'4107', N'00,41,4107', N'红旗区', N'41', N'河南省', N'4107', N'新乡市', N'410702', N'红旗区', N'', N'', N'', N'', N'3', N'1', N''), (N'410703', N'4107', N'00,41,4107', N'卫滨区', N'41', N'河南省', N'4107', N'新乡市', N'410703', N'卫滨区', N'', N'', N'', N'', N'3', N'1', N''), (N'410704', N'4107', N'00,41,4107', N'凤泉区', N'41', N'河南省', N'4107', N'新乡市', N'410704', N'凤泉区', N'', N'', N'', N'', N'3', N'1', N''), (N'410711', N'4107', N'00,41,4107', N'牧野区', N'41', N'河南省', N'4107', N'新乡市', N'410711', N'牧野区', N'', N'', N'', N'', N'3', N'1', N''), (N'410721', N'4107', N'00,41,4107', N'新乡县', N'41', N'河南省', N'4107', N'新乡市', N'410721', N'新乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'410724', N'4107', N'00,41,4107', N'获嘉县', N'41', N'河南省', N'4107', N'新乡市', N'410724', N'获嘉县', N'', N'', N'', N'', N'3', N'1', N''), (N'410725', N'4107', N'00,41,4107', N'原阳县', N'41', N'河南省', N'4107', N'新乡市', N'410725', N'原阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'410726', N'4107', N'00,41,4107', N'延津县', N'41', N'河南省', N'4107', N'新乡市', N'410726', N'延津县', N'', N'', N'', N'', N'3', N'1', N''), (N'410727', N'4107', N'00,41,4107', N'封丘县', N'41', N'河南省', N'4107', N'新乡市', N'410727', N'封丘县', N'', N'', N'', N'', N'3', N'1', N''), (N'410781', N'4107', N'00,41,4107', N'卫辉市', N'41', N'河南省', N'4107', N'新乡市', N'410781', N'卫辉市', N'', N'', N'', N'', N'3', N'1', N''), (N'410782', N'4107', N'00,41,4107', N'辉县市', N'41', N'河南省', N'4107', N'新乡市', N'410782', N'辉县市', N'', N'', N'', N'', N'3', N'1', N''), (N'410783', N'4107', N'00,41,4107', N'长垣市', N'41', N'河南省', N'4107', N'新乡市', N'410783', N'长垣市', N'', N'', N'', N'', N'3', N'1', N''), (N'4108', N'41', N'00,41', N'焦作市', N'41', N'河南省', N'4108', N'焦作市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410802', N'4108', N'00,41,4108', N'解放区', N'41', N'河南省', N'4108', N'焦作市', N'410802', N'解放区', N'', N'', N'', N'', N'3', N'1', N''), (N'410803', N'4108', N'00,41,4108', N'中站区', N'41', N'河南省', N'4108', N'焦作市', N'410803', N'中站区', N'', N'', N'', N'', N'3', N'1', N''), (N'410804', N'4108', N'00,41,4108', N'马村区', N'41', N'河南省', N'4108', N'焦作市', N'410804', N'马村区', N'', N'', N'', N'', N'3', N'1', N''), (N'410811', N'4108', N'00,41,4108', N'山阳区', N'41', N'河南省', N'4108', N'焦作市', N'410811', N'山阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'410821', N'4108', N'00,41,4108', N'修武县', N'41', N'河南省', N'4108', N'焦作市', N'410821', N'修武县', N'', N'', N'', N'', N'3', N'1', N''), (N'410822', N'4108', N'00,41,4108', N'博爱县', N'41', N'河南省', N'4108', N'焦作市', N'410822', N'博爱县', N'', N'', N'', N'', N'3', N'1', N''), (N'410823', N'4108', N'00,41,4108', N'武陟县', N'41', N'河南省', N'4108', N'焦作市', N'410823', N'武陟县', N'', N'', N'', N'', N'3', N'1', N''), (N'410825', N'4108', N'00,41,4108', N'温县', N'41', N'河南省', N'4108', N'焦作市', N'410825', N'温县', N'', N'', N'', N'', N'3', N'1', N''), (N'410882', N'4108', N'00,41,4108', N'沁阳市', N'41', N'河南省', N'4108', N'焦作市', N'410882', N'沁阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'410883', N'4108', N'00,41,4108', N'孟州市', N'41', N'河南省', N'4108', N'焦作市', N'410883', N'孟州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4109', N'41', N'00,41', N'濮阳市', N'41', N'河南省', N'4109', N'濮阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410902', N'4109', N'00,41,4109', N'华龙区', N'41', N'河南省', N'4109', N'濮阳市', N'410902', N'华龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'410922', N'4109', N'00,41,4109', N'清丰县', N'41', N'河南省', N'4109', N'濮阳市', N'410922', N'清丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'410923', N'4109', N'00,41,4109', N'南乐县', N'41', N'河南省', N'4109', N'濮阳市', N'410923', N'南乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'410926', N'4109', N'00,41,4109', N'范县', N'41', N'河南省', N'4109', N'濮阳市', N'410926', N'范县', N'', N'', N'', N'', N'3', N'1', N''), (N'410927', N'4109', N'00,41,4109', N'台前县', N'41', N'河南省', N'4109', N'濮阳市', N'410927', N'台前县', N'', N'', N'', N'', N'3', N'1', N''), (N'410928', N'4109', N'00,41,4109', N'濮阳县', N'41', N'河南省', N'4109', N'濮阳市', N'410928', N'濮阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'4110', N'41', N'00,41', N'许昌市', N'41', N'河南省', N'4110', N'许昌市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411002', N'4110', N'00,41,4110', N'魏都区', N'41', N'河南省', N'4110', N'许昌市', N'411002', N'魏都区', N'', N'', N'', N'', N'3', N'1', N''), (N'411003', N'4110', N'00,41,4110', N'建安区', N'41', N'河南省', N'4110', N'许昌市', N'411003', N'建安区', N'', N'', N'', N'', N'3', N'1', N''), (N'411024', N'4110', N'00,41,4110', N'鄢陵县', N'41', N'河南省', N'4110', N'许昌市', N'411024', N'鄢陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'411025', N'4110', N'00,41,4110', N'襄城县', N'41', N'河南省', N'4110', N'许昌市', N'411025', N'襄城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411081', N'4110', N'00,41,4110', N'禹州市', N'41', N'河南省', N'4110', N'许昌市', N'411081', N'禹州市', N'', N'', N'', N'', N'3', N'1', N''), (N'411082', N'4110', N'00,41,4110', N'长葛市', N'41', N'河南省', N'4110', N'许昌市', N'411082', N'长葛市', N'', N'', N'', N'', N'3', N'1', N''), (N'4111', N'41', N'00,41', N'漯河市', N'41', N'河南省', N'4111', N'漯河市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411102', N'4111', N'00,41,4111', N'源汇区', N'41', N'河南省', N'4111', N'漯河市', N'411102', N'源汇区', N'', N'', N'', N'', N'3', N'1', N''), (N'411103', N'4111', N'00,41,4111', N'郾城区', N'41', N'河南省', N'4111', N'漯河市', N'411103', N'郾城区', N'', N'', N'', N'', N'3', N'1', N''), (N'411104', N'4111', N'00,41,4111', N'召陵区', N'41', N'河南省', N'4111', N'漯河市', N'411104', N'召陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'411121', N'4111', N'00,41,4111', N'舞阳县', N'41', N'河南省', N'4111', N'漯河市', N'411121', N'舞阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'411122', N'4111', N'00,41,4111', N'临颍县', N'41', N'河南省', N'4111', N'漯河市', N'411122', N'临颍县', N'', N'', N'', N'', N'3', N'1', N''), (N'4112', N'41', N'00,41', N'三门峡市', N'41', N'河南省', N'4112', N'三门峡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411202', N'4112', N'00,41,4112', N'湖滨区', N'41', N'河南省', N'4112', N'三门峡市', N'411202', N'湖滨区', N'', N'', N'', N'', N'3', N'1', N''), (N'411203', N'4112', N'00,41,4112', N'陕州区', N'41', N'河南省', N'4112', N'三门峡市', N'411203', N'陕州区', N'', N'', N'', N'', N'3', N'1', N''), (N'411221', N'4112', N'00,41,4112', N'渑池县', N'41', N'河南省', N'4112', N'三门峡市', N'411221', N'渑池县', N'', N'', N'', N'', N'3', N'1', N''), (N'411224', N'4112', N'00,41,4112', N'卢氏县', N'41', N'河南省', N'4112', N'三门峡市', N'411224', N'卢氏县', N'', N'', N'', N'', N'3', N'1', N''), (N'411281', N'4112', N'00,41,4112', N'义马市', N'41', N'河南省', N'4112', N'三门峡市', N'411281', N'义马市', N'', N'', N'', N'', N'3', N'1', N''), (N'411282', N'4112', N'00,41,4112', N'灵宝市', N'41', N'河南省', N'4112', N'三门峡市', N'411282', N'灵宝市', N'', N'', N'', N'', N'3', N'1', N''), (N'4113', N'41', N'00,41', N'南阳市', N'41', N'河南省', N'4113', N'南阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411302', N'4113', N'00,41,4113', N'宛城区', N'41', N'河南省', N'4113', N'南阳市', N'411302', N'宛城区', N'', N'', N'', N'', N'3', N'1', N''), (N'411303', N'4113', N'00,41,4113', N'卧龙区', N'41', N'河南省', N'4113', N'南阳市', N'411303', N'卧龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'411321', N'4113', N'00,41,4113', N'南召县', N'41', N'河南省', N'4113', N'南阳市', N'411321', N'南召县', N'', N'', N'', N'', N'3', N'1', N''), (N'411322', N'4113', N'00,41,4113', N'方城县', N'41', N'河南省', N'4113', N'南阳市', N'411322', N'方城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411323', N'4113', N'00,41,4113', N'西峡县', N'41', N'河南省', N'4113', N'南阳市', N'411323', N'西峡县', N'', N'', N'', N'', N'3', N'1', N''), (N'411324', N'4113', N'00,41,4113', N'镇平县', N'41', N'河南省', N'4113', N'南阳市', N'411324', N'镇平县', N'', N'', N'', N'', N'3', N'1', N''), (N'411325', N'4113', N'00,41,4113', N'内乡县', N'41', N'河南省', N'4113', N'南阳市', N'411325', N'内乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'411326', N'4113', N'00,41,4113', N'淅川县', N'41', N'河南省', N'4113', N'南阳市', N'411326', N'淅川县', N'', N'', N'', N'', N'3', N'1', N''), (N'411327', N'4113', N'00,41,4113', N'社旗县', N'41', N'河南省', N'4113', N'南阳市', N'411327', N'社旗县', N'', N'', N'', N'', N'3', N'1', N''), (N'411328', N'4113', N'00,41,4113', N'唐河县', N'41', N'河南省', N'4113', N'南阳市', N'411328', N'唐河县', N'', N'', N'', N'', N'3', N'1', N''), (N'411329', N'4113', N'00,41,4113', N'新野县', N'41', N'河南省', N'4113', N'南阳市', N'411329', N'新野县', N'', N'', N'', N'', N'3', N'1', N''), (N'411330', N'4113', N'00,41,4113', N'桐柏县', N'41', N'河南省', N'4113', N'南阳市', N'411330', N'桐柏县', N'', N'', N'', N'', N'3', N'1', N''), (N'411381', N'4113', N'00,41,4113', N'邓州市', N'41', N'河南省', N'4113', N'南阳市', N'411381', N'邓州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4114', N'41', N'00,41', N'商丘市', N'41', N'河南省', N'4114', N'商丘市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411402', N'4114', N'00,41,4114', N'梁园区', N'41', N'河南省', N'4114', N'商丘市', N'411402', N'梁园区', N'', N'', N'', N'', N'3', N'1', N''), (N'411403', N'4114', N'00,41,4114', N'睢阳区', N'41', N'河南省', N'4114', N'商丘市', N'411403', N'睢阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'411421', N'4114', N'00,41,4114', N'民权县', N'41', N'河南省', N'4114', N'商丘市', N'411421', N'民权县', N'', N'', N'', N'', N'3', N'1', N''), (N'411422', N'4114', N'00,41,4114', N'睢县', N'41', N'河南省', N'4114', N'商丘市', N'411422', N'睢县', N'', N'', N'', N'', N'3', N'1', N''), (N'411423', N'4114', N'00,41,4114', N'宁陵县', N'41', N'河南省', N'4114', N'商丘市', N'411423', N'宁陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'411424', N'4114', N'00,41,4114', N'柘城县', N'41', N'河南省', N'4114', N'商丘市', N'411424', N'柘城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411425', N'4114', N'00,41,4114', N'虞城县', N'41', N'河南省', N'4114', N'商丘市', N'411425', N'虞城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411426', N'4114', N'00,41,4114', N'夏邑县', N'41', N'河南省', N'4114', N'商丘市', N'411426', N'夏邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'411481', N'4114', N'00,41,4114', N'永城市', N'41', N'河南省', N'4114', N'商丘市', N'411481', N'永城市', N'', N'', N'', N'', N'3', N'1', N''), (N'4115', N'41', N'00,41', N'信阳市', N'41', N'河南省', N'4115', N'信阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411502', N'4115', N'00,41,4115', N'浉河区', N'41', N'河南省', N'4115', N'信阳市', N'411502', N'浉河区', N'', N'', N'', N'', N'3', N'1', N''), (N'411503', N'4115', N'00,41,4115', N'平桥区', N'41', N'河南省', N'4115', N'信阳市', N'411503', N'平桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'411521', N'4115', N'00,41,4115', N'罗山县', N'41', N'河南省', N'4115', N'信阳市', N'411521', N'罗山县', N'', N'', N'', N'', N'3', N'1', N''), (N'411522', N'4115', N'00,41,4115', N'光山县', N'41', N'河南省', N'4115', N'信阳市', N'411522', N'光山县', N'', N'', N'', N'', N'3', N'1', N''), (N'411523', N'4115', N'00,41,4115', N'新县', N'41', N'河南省', N'4115', N'信阳市', N'411523', N'新县', N'', N'', N'', N'', N'3', N'1', N''), (N'411524', N'4115', N'00,41,4115', N'商城县', N'41', N'河南省', N'4115', N'信阳市', N'411524', N'商城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411525', N'4115', N'00,41,4115', N'固始县', N'41', N'河南省', N'4115', N'信阳市', N'411525', N'固始县', N'', N'', N'', N'', N'3', N'1', N''), (N'411526', N'4115', N'00,41,4115', N'潢川县', N'41', N'河南省', N'4115', N'信阳市', N'411526', N'潢川县', N'', N'', N'', N'', N'3', N'1', N''), (N'411527', N'4115', N'00,41,4115', N'淮滨县', N'41', N'河南省', N'4115', N'信阳市', N'411527', N'淮滨县', N'', N'', N'', N'', N'3', N'1', N''), (N'411528', N'4115', N'00,41,4115', N'息县', N'41', N'河南省', N'4115', N'信阳市', N'411528', N'息县', N'', N'', N'', N'', N'3', N'1', N''), (N'4116', N'41', N'00,41', N'周口市', N'41', N'河南省', N'4116', N'周口市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411602', N'4116', N'00,41,4116', N'川汇区', N'41', N'河南省', N'4116', N'周口市', N'411602', N'川汇区', N'', N'', N'', N'', N'3', N'1', N''), (N'411603', N'4116', N'00,41,4116', N'淮阳区', N'41', N'河南省', N'4116', N'周口市', N'411603', N'淮阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'411621', N'4116', N'00,41,4116', N'扶沟县', N'41', N'河南省', N'4116', N'周口市', N'411621', N'扶沟县', N'', N'', N'', N'', N'3', N'1', N''), (N'411622', N'4116', N'00,41,4116', N'西华县', N'41', N'河南省', N'4116', N'周口市', N'411622', N'西华县', N'', N'', N'', N'', N'3', N'1', N''), (N'411623', N'4116', N'00,41,4116', N'商水县', N'41', N'河南省', N'4116', N'周口市', N'411623', N'商水县', N'', N'', N'', N'', N'3', N'1', N''), (N'411624', N'4116', N'00,41,4116', N'沈丘县', N'41', N'河南省', N'4116', N'周口市', N'411624', N'沈丘县', N'', N'', N'', N'', N'3', N'1', N''), (N'411625', N'4116', N'00,41,4116', N'郸城县', N'41', N'河南省', N'4116', N'周口市', N'411625', N'郸城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411627', N'4116', N'00,41,4116', N'太康县', N'41', N'河南省', N'4116', N'周口市', N'411627', N'太康县', N'', N'', N'', N'', N'3', N'1', N''), (N'411628', N'4116', N'00,41,4116', N'鹿邑县', N'41', N'河南省', N'4116', N'周口市', N'411628', N'鹿邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'411681', N'4116', N'00,41,4116', N'项城市', N'41', N'河南省', N'4116', N'周口市', N'411681', N'项城市', N'', N'', N'', N'', N'3', N'1', N''), (N'4117', N'41', N'00,41', N'驻马店市', N'41', N'河南省', N'4117', N'驻马店市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411702', N'4117', N'00,41,4117', N'驿城区', N'41', N'河南省', N'4117', N'驻马店市', N'411702', N'驿城区', N'', N'', N'', N'', N'3', N'1', N''), (N'411721', N'4117', N'00,41,4117', N'西平县', N'41', N'河南省', N'4117', N'驻马店市', N'411721', N'西平县', N'', N'', N'', N'', N'3', N'1', N''), (N'411722', N'4117', N'00,41,4117', N'上蔡县', N'41', N'河南省', N'4117', N'驻马店市', N'411722', N'上蔡县', N'', N'', N'', N'', N'3', N'1', N''), (N'411723', N'4117', N'00,41,4117', N'平舆县', N'41', N'河南省', N'4117', N'驻马店市', N'411723', N'平舆县', N'', N'', N'', N'', N'3', N'1', N''), (N'411724', N'4117', N'00,41,4117', N'正阳县', N'41', N'河南省', N'4117', N'驻马店市', N'411724', N'正阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'411725', N'4117', N'00,41,4117', N'确山县', N'41', N'河南省', N'4117', N'驻马店市', N'411725', N'确山县', N'', N'', N'', N'', N'3', N'1', N''), (N'411726', N'4117', N'00,41,4117', N'泌阳县', N'41', N'河南省', N'4117', N'驻马店市', N'411726', N'泌阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'411727', N'4117', N'00,41,4117', N'汝南县', N'41', N'河南省', N'4117', N'驻马店市', N'411727', N'汝南县', N'', N'', N'', N'', N'3', N'1', N''), (N'411728', N'4117', N'00,41,4117', N'遂平县', N'41', N'河南省', N'4117', N'驻马店市', N'411728', N'遂平县', N'', N'', N'', N'', N'3', N'1', N''), (N'411729', N'4117', N'00,41,4117', N'新蔡县', N'41', N'河南省', N'4117', N'驻马店市', N'411729', N'新蔡县', N'', N'', N'', N'', N'3', N'1', N''), (N'4190', N'41', N'00,41', N'省直辖县级行政区', N'41', N'河南省', N'4190', N'省直辖县级行政区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'419001', N'4190', N'00,41,4190', N'济源市', N'41', N'河南省', N'4190', N'省直辖县级行政区', N'419001', N'济源市', N'', N'', N'', N'', N'3', N'1', N''), (N'42', N'00', N'00', N'湖北省', N'42', N'湖北省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4201', N'42', N'00,42', N'武汉市', N'42', N'湖北省', N'4201', N'武汉市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420102', N'4201', N'00,42,4201', N'江岸区', N'42', N'湖北省', N'4201', N'武汉市', N'420102', N'江岸区', N'', N'', N'', N'', N'3', N'1', N''), (N'420103', N'4201', N'00,42,4201', N'江汉区', N'42', N'湖北省', N'4201', N'武汉市', N'420103', N'江汉区', N'', N'', N'', N'', N'3', N'1', N'')
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'420104', N'4201', N'00,42,4201', N'硚口区', N'42', N'湖北省', N'4201', N'武汉市', N'420104', N'硚口区', N'', N'', N'', N'', N'3', N'1', N''), (N'420105', N'4201', N'00,42,4201', N'汉阳区', N'42', N'湖北省', N'4201', N'武汉市', N'420105', N'汉阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'420106', N'4201', N'00,42,4201', N'武昌区', N'42', N'湖北省', N'4201', N'武汉市', N'420106', N'武昌区', N'', N'', N'', N'', N'3', N'1', N''), (N'420107', N'4201', N'00,42,4201', N'青山区', N'42', N'湖北省', N'4201', N'武汉市', N'420107', N'青山区', N'', N'', N'', N'', N'3', N'1', N''), (N'420111', N'4201', N'00,42,4201', N'洪山区', N'42', N'湖北省', N'4201', N'武汉市', N'420111', N'洪山区', N'', N'', N'', N'', N'3', N'1', N''), (N'420112', N'4201', N'00,42,4201', N'东西湖区', N'42', N'湖北省', N'4201', N'武汉市', N'420112', N'东西湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'420113', N'4201', N'00,42,4201', N'汉南区', N'42', N'湖北省', N'4201', N'武汉市', N'420113', N'汉南区', N'', N'', N'', N'', N'3', N'1', N''), (N'420114', N'4201', N'00,42,4201', N'蔡甸区', N'42', N'湖北省', N'4201', N'武汉市', N'420114', N'蔡甸区', N'', N'', N'', N'', N'3', N'1', N''), (N'420115', N'4201', N'00,42,4201', N'江夏区', N'42', N'湖北省', N'4201', N'武汉市', N'420115', N'江夏区', N'', N'', N'', N'', N'3', N'1', N''), (N'420116', N'4201', N'00,42,4201', N'黄陂区', N'42', N'湖北省', N'4201', N'武汉市', N'420116', N'黄陂区', N'', N'', N'', N'', N'3', N'1', N''), (N'420117', N'4201', N'00,42,4201', N'新洲区', N'42', N'湖北省', N'4201', N'武汉市', N'420117', N'新洲区', N'', N'', N'', N'', N'3', N'1', N''), (N'4202', N'42', N'00,42', N'黄石市', N'42', N'湖北省', N'4202', N'黄石市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420202', N'4202', N'00,42,4202', N'黄石港区', N'42', N'湖北省', N'4202', N'黄石市', N'420202', N'黄石港区', N'', N'', N'', N'', N'3', N'1', N''), (N'420203', N'4202', N'00,42,4202', N'西塞山区', N'42', N'湖北省', N'4202', N'黄石市', N'420203', N'西塞山区', N'', N'', N'', N'', N'3', N'1', N''), (N'420204', N'4202', N'00,42,4202', N'下陆区', N'42', N'湖北省', N'4202', N'黄石市', N'420204', N'下陆区', N'', N'', N'', N'', N'3', N'1', N''), (N'420205', N'4202', N'00,42,4202', N'铁山区', N'42', N'湖北省', N'4202', N'黄石市', N'420205', N'铁山区', N'', N'', N'', N'', N'3', N'1', N''), (N'420222', N'4202', N'00,42,4202', N'阳新县', N'42', N'湖北省', N'4202', N'黄石市', N'420222', N'阳新县', N'', N'', N'', N'', N'3', N'1', N''), (N'420281', N'4202', N'00,42,4202', N'大冶市', N'42', N'湖北省', N'4202', N'黄石市', N'420281', N'大冶市', N'', N'', N'', N'', N'3', N'1', N''), (N'4203', N'42', N'00,42', N'十堰市', N'42', N'湖北省', N'4203', N'十堰市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420302', N'4203', N'00,42,4203', N'茅箭区', N'42', N'湖北省', N'4203', N'十堰市', N'420302', N'茅箭区', N'', N'', N'', N'', N'3', N'1', N''), (N'420303', N'4203', N'00,42,4203', N'张湾区', N'42', N'湖北省', N'4203', N'十堰市', N'420303', N'张湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'420304', N'4203', N'00,42,4203', N'郧阳区', N'42', N'湖北省', N'4203', N'十堰市', N'420304', N'郧阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'420322', N'4203', N'00,42,4203', N'郧西县', N'42', N'湖北省', N'4203', N'十堰市', N'420322', N'郧西县', N'', N'', N'', N'', N'3', N'1', N''), (N'420323', N'4203', N'00,42,4203', N'竹山县', N'42', N'湖北省', N'4203', N'十堰市', N'420323', N'竹山县', N'', N'', N'', N'', N'3', N'1', N''), (N'420324', N'4203', N'00,42,4203', N'竹溪县', N'42', N'湖北省', N'4203', N'十堰市', N'420324', N'竹溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'420325', N'4203', N'00,42,4203', N'房县', N'42', N'湖北省', N'4203', N'十堰市', N'420325', N'房县', N'', N'', N'', N'', N'3', N'1', N''), (N'420381', N'4203', N'00,42,4203', N'丹江口市', N'42', N'湖北省', N'4203', N'十堰市', N'420381', N'丹江口市', N'', N'', N'', N'', N'3', N'1', N''), (N'4205', N'42', N'00,42', N'宜昌市', N'42', N'湖北省', N'4205', N'宜昌市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420502', N'4205', N'00,42,4205', N'西陵区', N'42', N'湖北省', N'4205', N'宜昌市', N'420502', N'西陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'420503', N'4205', N'00,42,4205', N'伍家岗区', N'42', N'湖北省', N'4205', N'宜昌市', N'420503', N'伍家岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'420504', N'4205', N'00,42,4205', N'点军区', N'42', N'湖北省', N'4205', N'宜昌市', N'420504', N'点军区', N'', N'', N'', N'', N'3', N'1', N''), (N'420505', N'4205', N'00,42,4205', N'猇亭区', N'42', N'湖北省', N'4205', N'宜昌市', N'420505', N'猇亭区', N'', N'', N'', N'', N'3', N'1', N''), (N'420506', N'4205', N'00,42,4205', N'夷陵区', N'42', N'湖北省', N'4205', N'宜昌市', N'420506', N'夷陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'420525', N'4205', N'00,42,4205', N'远安县', N'42', N'湖北省', N'4205', N'宜昌市', N'420525', N'远安县', N'', N'', N'', N'', N'3', N'1', N''), (N'420526', N'4205', N'00,42,4205', N'兴山县', N'42', N'湖北省', N'4205', N'宜昌市', N'420526', N'兴山县', N'', N'', N'', N'', N'3', N'1', N''), (N'420527', N'4205', N'00,42,4205', N'秭归县', N'42', N'湖北省', N'4205', N'宜昌市', N'420527', N'秭归县', N'', N'', N'', N'', N'3', N'1', N''), (N'420528', N'4205', N'00,42,4205', N'长阳土家族自治县', N'42', N'湖北省', N'4205', N'宜昌市', N'420528', N'长阳土家族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'420529', N'4205', N'00,42,4205', N'五峰土家族自治县', N'42', N'湖北省', N'4205', N'宜昌市', N'420529', N'五峰土家族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'420581', N'4205', N'00,42,4205', N'宜都市', N'42', N'湖北省', N'4205', N'宜昌市', N'420581', N'宜都市', N'', N'', N'', N'', N'3', N'1', N''), (N'420582', N'4205', N'00,42,4205', N'当阳市', N'42', N'湖北省', N'4205', N'宜昌市', N'420582', N'当阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'420583', N'4205', N'00,42,4205', N'枝江市', N'42', N'湖北省', N'4205', N'宜昌市', N'420583', N'枝江市', N'', N'', N'', N'', N'3', N'1', N''), (N'4206', N'42', N'00,42', N'襄阳市', N'42', N'湖北省', N'4206', N'襄阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420602', N'4206', N'00,42,4206', N'襄城区', N'42', N'湖北省', N'4206', N'襄阳市', N'420602', N'襄城区', N'', N'', N'', N'', N'3', N'1', N''), (N'420606', N'4206', N'00,42,4206', N'樊城区', N'42', N'湖北省', N'4206', N'襄阳市', N'420606', N'樊城区', N'', N'', N'', N'', N'3', N'1', N''), (N'420607', N'4206', N'00,42,4206', N'襄州区', N'42', N'湖北省', N'4206', N'襄阳市', N'420607', N'襄州区', N'', N'', N'', N'', N'3', N'1', N''), (N'420624', N'4206', N'00,42,4206', N'南漳县', N'42', N'湖北省', N'4206', N'襄阳市', N'420624', N'南漳县', N'', N'', N'', N'', N'3', N'1', N''), (N'420625', N'4206', N'00,42,4206', N'谷城县', N'42', N'湖北省', N'4206', N'襄阳市', N'420625', N'谷城县', N'', N'', N'', N'', N'3', N'1', N''), (N'420626', N'4206', N'00,42,4206', N'保康县', N'42', N'湖北省', N'4206', N'襄阳市', N'420626', N'保康县', N'', N'', N'', N'', N'3', N'1', N''), (N'420682', N'4206', N'00,42,4206', N'老河口市', N'42', N'湖北省', N'4206', N'襄阳市', N'420682', N'老河口市', N'', N'', N'', N'', N'3', N'1', N''), (N'420683', N'4206', N'00,42,4206', N'枣阳市', N'42', N'湖北省', N'4206', N'襄阳市', N'420683', N'枣阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'420684', N'4206', N'00,42,4206', N'宜城市', N'42', N'湖北省', N'4206', N'襄阳市', N'420684', N'宜城市', N'', N'', N'', N'', N'3', N'1', N''), (N'4207', N'42', N'00,42', N'鄂州市', N'42', N'湖北省', N'4207', N'鄂州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420702', N'4207', N'00,42,4207', N'梁子湖区', N'42', N'湖北省', N'4207', N'鄂州市', N'420702', N'梁子湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'420703', N'4207', N'00,42,4207', N'华容区', N'42', N'湖北省', N'4207', N'鄂州市', N'420703', N'华容区', N'', N'', N'', N'', N'3', N'1', N''), (N'420704', N'4207', N'00,42,4207', N'鄂城区', N'42', N'湖北省', N'4207', N'鄂州市', N'420704', N'鄂城区', N'', N'', N'', N'', N'3', N'1', N''), (N'4208', N'42', N'00,42', N'荆门市', N'42', N'湖北省', N'4208', N'荆门市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420802', N'4208', N'00,42,4208', N'东宝区', N'42', N'湖北省', N'4208', N'荆门市', N'420802', N'东宝区', N'', N'', N'', N'', N'3', N'1', N''), (N'420804', N'4208', N'00,42,4208', N'掇刀区', N'42', N'湖北省', N'4208', N'荆门市', N'420804', N'掇刀区', N'', N'', N'', N'', N'3', N'1', N''), (N'420822', N'4208', N'00,42,4208', N'沙洋县', N'42', N'湖北省', N'4208', N'荆门市', N'420822', N'沙洋县', N'', N'', N'', N'', N'3', N'1', N''), (N'420881', N'4208', N'00,42,4208', N'钟祥市', N'42', N'湖北省', N'4208', N'荆门市', N'420881', N'钟祥市', N'', N'', N'', N'', N'3', N'1', N''), (N'420882', N'4208', N'00,42,4208', N'京山市', N'42', N'湖北省', N'4208', N'荆门市', N'420882', N'京山市', N'', N'', N'', N'', N'3', N'1', N''), (N'4209', N'42', N'00,42', N'孝感市', N'42', N'湖北省', N'4209', N'孝感市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420902', N'4209', N'00,42,4209', N'孝南区', N'42', N'湖北省', N'4209', N'孝感市', N'420902', N'孝南区', N'', N'', N'', N'', N'3', N'1', N''), (N'420921', N'4209', N'00,42,4209', N'孝昌县', N'42', N'湖北省', N'4209', N'孝感市', N'420921', N'孝昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'420922', N'4209', N'00,42,4209', N'大悟县', N'42', N'湖北省', N'4209', N'孝感市', N'420922', N'大悟县', N'', N'', N'', N'', N'3', N'1', N''), (N'420923', N'4209', N'00,42,4209', N'云梦县', N'42', N'湖北省', N'4209', N'孝感市', N'420923', N'云梦县', N'', N'', N'', N'', N'3', N'1', N''), (N'420981', N'4209', N'00,42,4209', N'应城市', N'42', N'湖北省', N'4209', N'孝感市', N'420981', N'应城市', N'', N'', N'', N'', N'3', N'1', N''), (N'420982', N'4209', N'00,42,4209', N'安陆市', N'42', N'湖北省', N'4209', N'孝感市', N'420982', N'安陆市', N'', N'', N'', N'', N'3', N'1', N''), (N'420984', N'4209', N'00,42,4209', N'汉川市', N'42', N'湖北省', N'4209', N'孝感市', N'420984', N'汉川市', N'', N'', N'', N'', N'3', N'1', N''), (N'4210', N'42', N'00,42', N'荆州市', N'42', N'湖北省', N'4210', N'荆州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'421002', N'4210', N'00,42,4210', N'沙市区', N'42', N'湖北省', N'4210', N'荆州市', N'421002', N'沙市区', N'', N'', N'', N'', N'3', N'1', N''), (N'421003', N'4210', N'00,42,4210', N'荆州区', N'42', N'湖北省', N'4210', N'荆州市', N'421003', N'荆州区', N'', N'', N'', N'', N'3', N'1', N''), (N'421022', N'4210', N'00,42,4210', N'公安县', N'42', N'湖北省', N'4210', N'荆州市', N'421022', N'公安县', N'', N'', N'', N'', N'3', N'1', N''), (N'421023', N'4210', N'00,42,4210', N'监利县', N'42', N'湖北省', N'4210', N'荆州市', N'421023', N'监利县', N'', N'', N'', N'', N'3', N'1', N''), (N'421024', N'4210', N'00,42,4210', N'江陵县', N'42', N'湖北省', N'4210', N'荆州市', N'421024', N'江陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'421081', N'4210', N'00,42,4210', N'石首市', N'42', N'湖北省', N'4210', N'荆州市', N'421081', N'石首市', N'', N'', N'', N'', N'3', N'1', N''), (N'421083', N'4210', N'00,42,4210', N'洪湖市', N'42', N'湖北省', N'4210', N'荆州市', N'421083', N'洪湖市', N'', N'', N'', N'', N'3', N'1', N''), (N'421087', N'4210', N'00,42,4210', N'松滋市', N'42', N'湖北省', N'4210', N'荆州市', N'421087', N'松滋市', N'', N'', N'', N'', N'3', N'1', N''), (N'4211', N'42', N'00,42', N'黄冈市', N'42', N'湖北省', N'4211', N'黄冈市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'421102', N'4211', N'00,42,4211', N'黄州区', N'42', N'湖北省', N'4211', N'黄冈市', N'421102', N'黄州区', N'', N'', N'', N'', N'3', N'1', N''), (N'421121', N'4211', N'00,42,4211', N'团风县', N'42', N'湖北省', N'4211', N'黄冈市', N'421121', N'团风县', N'', N'', N'', N'', N'3', N'1', N''), (N'421122', N'4211', N'00,42,4211', N'红安县', N'42', N'湖北省', N'4211', N'黄冈市', N'421122', N'红安县', N'', N'', N'', N'', N'3', N'1', N''), (N'421123', N'4211', N'00,42,4211', N'罗田县', N'42', N'湖北省', N'4211', N'黄冈市', N'421123', N'罗田县', N'', N'', N'', N'', N'3', N'1', N''), (N'421124', N'4211', N'00,42,4211', N'英山县', N'42', N'湖北省', N'4211', N'黄冈市', N'421124', N'英山县', N'', N'', N'', N'', N'3', N'1', N''), (N'421125', N'4211', N'00,42,4211', N'浠水县', N'42', N'湖北省', N'4211', N'黄冈市', N'421125', N'浠水县', N'', N'', N'', N'', N'3', N'1', N''), (N'421126', N'4211', N'00,42,4211', N'蕲春县', N'42', N'湖北省', N'4211', N'黄冈市', N'421126', N'蕲春县', N'', N'', N'', N'', N'3', N'1', N''), (N'421127', N'4211', N'00,42,4211', N'黄梅县', N'42', N'湖北省', N'4211', N'黄冈市', N'421127', N'黄梅县', N'', N'', N'', N'', N'3', N'1', N''), (N'421181', N'4211', N'00,42,4211', N'麻城市', N'42', N'湖北省', N'4211', N'黄冈市', N'421181', N'麻城市', N'', N'', N'', N'', N'3', N'1', N''), (N'421182', N'4211', N'00,42,4211', N'武穴市', N'42', N'湖北省', N'4211', N'黄冈市', N'421182', N'武穴市', N'', N'', N'', N'', N'3', N'1', N''), (N'4212', N'42', N'00,42', N'咸宁市', N'42', N'湖北省', N'4212', N'咸宁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'421202', N'4212', N'00,42,4212', N'咸安区', N'42', N'湖北省', N'4212', N'咸宁市', N'421202', N'咸安区', N'', N'', N'', N'', N'3', N'1', N''), (N'421221', N'4212', N'00,42,4212', N'嘉鱼县', N'42', N'湖北省', N'4212', N'咸宁市', N'421221', N'嘉鱼县', N'', N'', N'', N'', N'3', N'1', N''), (N'421222', N'4212', N'00,42,4212', N'通城县', N'42', N'湖北省', N'4212', N'咸宁市', N'421222', N'通城县', N'', N'', N'', N'', N'3', N'1', N''), (N'421223', N'4212', N'00,42,4212', N'崇阳县', N'42', N'湖北省', N'4212', N'咸宁市', N'421223', N'崇阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'421224', N'4212', N'00,42,4212', N'通山县', N'42', N'湖北省', N'4212', N'咸宁市', N'421224', N'通山县', N'', N'', N'', N'', N'3', N'1', N''), (N'421281', N'4212', N'00,42,4212', N'赤壁市', N'42', N'湖北省', N'4212', N'咸宁市', N'421281', N'赤壁市', N'', N'', N'', N'', N'3', N'1', N''), (N'4213', N'42', N'00,42', N'随州市', N'42', N'湖北省', N'4213', N'随州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'421303', N'4213', N'00,42,4213', N'曾都区', N'42', N'湖北省', N'4213', N'随州市', N'421303', N'曾都区', N'', N'', N'', N'', N'3', N'1', N''), (N'421321', N'4213', N'00,42,4213', N'随县', N'42', N'湖北省', N'4213', N'随州市', N'421321', N'随县', N'', N'', N'', N'', N'3', N'1', N''), (N'421381', N'4213', N'00,42,4213', N'广水市', N'42', N'湖北省', N'4213', N'随州市', N'421381', N'广水市', N'', N'', N'', N'', N'3', N'1', N''), (N'4228', N'42', N'00,42', N'恩施土家族苗族自治州', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'422801', N'4228', N'00,42,4228', N'恩施市', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422801', N'恩施市', N'', N'', N'', N'', N'3', N'1', N''), (N'422802', N'4228', N'00,42,4228', N'利川市', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422802', N'利川市', N'', N'', N'', N'', N'3', N'1', N''), (N'422822', N'4228', N'00,42,4228', N'建始县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422822', N'建始县', N'', N'', N'', N'', N'3', N'1', N''), (N'422823', N'4228', N'00,42,4228', N'巴东县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422823', N'巴东县', N'', N'', N'', N'', N'3', N'1', N''), (N'422825', N'4228', N'00,42,4228', N'宣恩县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422825', N'宣恩县', N'', N'', N'', N'', N'3', N'1', N''), (N'422826', N'4228', N'00,42,4228', N'咸丰县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422826', N'咸丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'422827', N'4228', N'00,42,4228', N'来凤县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422827', N'来凤县', N'', N'', N'', N'', N'3', N'1', N''), (N'422828', N'4228', N'00,42,4228', N'鹤峰县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422828', N'鹤峰县', N'', N'', N'', N'', N'3', N'1', N''), (N'4290', N'42', N'00,42', N'省直辖县级行政区', N'42', N'湖北省', N'4290', N'省直辖县级行政区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'429004', N'4290', N'00,42,4290', N'仙桃市', N'42', N'湖北省', N'4290', N'省直辖县级行政区', N'429004', N'仙桃市', N'', N'', N'', N'', N'3', N'1', N''), (N'429005', N'4290', N'00,42,4290', N'潜江市', N'42', N'湖北省', N'4290', N'省直辖县级行政区', N'429005', N'潜江市', N'', N'', N'', N'', N'3', N'1', N''), (N'429006', N'4290', N'00,42,4290', N'天门市', N'42', N'湖北省', N'4290', N'省直辖县级行政区', N'429006', N'天门市', N'', N'', N'', N'', N'3', N'1', N''), (N'429021', N'4290', N'00,42,4290', N'神农架林区', N'42', N'湖北省', N'4290', N'省直辖县级行政区', N'429021', N'神农架林区', N'', N'', N'', N'', N'3', N'1', N''), (N'43', N'00', N'00', N'湖南省', N'43', N'湖南省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4301', N'43', N'00,43', N'长沙市', N'43', N'湖南省', N'4301', N'长沙市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430102', N'4301', N'00,43,4301', N'芙蓉区', N'43', N'湖南省', N'4301', N'长沙市', N'430102', N'芙蓉区', N'', N'', N'', N'', N'3', N'1', N''), (N'430103', N'4301', N'00,43,4301', N'天心区', N'43', N'湖南省', N'4301', N'长沙市', N'430103', N'天心区', N'', N'', N'', N'', N'3', N'1', N''), (N'430104', N'4301', N'00,43,4301', N'岳麓区', N'43', N'湖南省', N'4301', N'长沙市', N'430104', N'岳麓区', N'', N'', N'', N'', N'3', N'1', N''), (N'430105', N'4301', N'00,43,4301', N'开福区', N'43', N'湖南省', N'4301', N'长沙市', N'430105', N'开福区', N'', N'', N'', N'', N'3', N'1', N''), (N'430111', N'4301', N'00,43,4301', N'雨花区', N'43', N'湖南省', N'4301', N'长沙市', N'430111', N'雨花区', N'', N'', N'', N'', N'3', N'1', N''), (N'430112', N'4301', N'00,43,4301', N'望城区', N'43', N'湖南省', N'4301', N'长沙市', N'430112', N'望城区', N'', N'', N'', N'', N'3', N'1', N''), (N'430121', N'4301', N'00,43,4301', N'长沙县', N'43', N'湖南省', N'4301', N'长沙市', N'430121', N'长沙县', N'', N'', N'', N'', N'3', N'1', N''), (N'430181', N'4301', N'00,43,4301', N'浏阳市', N'43', N'湖南省', N'4301', N'长沙市', N'430181', N'浏阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'430182', N'4301', N'00,43,4301', N'宁乡市', N'43', N'湖南省', N'4301', N'长沙市', N'430182', N'宁乡市', N'', N'', N'', N'', N'3', N'1', N''), (N'4302', N'43', N'00,43', N'株洲市', N'43', N'湖南省', N'4302', N'株洲市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430202', N'4302', N'00,43,4302', N'荷塘区', N'43', N'湖南省', N'4302', N'株洲市', N'430202', N'荷塘区', N'', N'', N'', N'', N'3', N'1', N''), (N'430203', N'4302', N'00,43,4302', N'芦淞区', N'43', N'湖南省', N'4302', N'株洲市', N'430203', N'芦淞区', N'', N'', N'', N'', N'3', N'1', N''), (N'430204', N'4302', N'00,43,4302', N'石峰区', N'43', N'湖南省', N'4302', N'株洲市', N'430204', N'石峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'430211', N'4302', N'00,43,4302', N'天元区', N'43', N'湖南省', N'4302', N'株洲市', N'430211', N'天元区', N'', N'', N'', N'', N'3', N'1', N''), (N'430212', N'4302', N'00,43,4302', N'渌口区', N'43', N'湖南省', N'4302', N'株洲市', N'430212', N'渌口区', N'', N'', N'', N'', N'3', N'1', N''), (N'430223', N'4302', N'00,43,4302', N'攸县', N'43', N'湖南省', N'4302', N'株洲市', N'430223', N'攸县', N'', N'', N'', N'', N'3', N'1', N''), (N'430224', N'4302', N'00,43,4302', N'茶陵县', N'43', N'湖南省', N'4302', N'株洲市', N'430224', N'茶陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'430225', N'4302', N'00,43,4302', N'炎陵县', N'43', N'湖南省', N'4302', N'株洲市', N'430225', N'炎陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'430281', N'4302', N'00,43,4302', N'醴陵市', N'43', N'湖南省', N'4302', N'株洲市', N'430281', N'醴陵市', N'', N'', N'', N'', N'3', N'1', N''), (N'4303', N'43', N'00,43', N'湘潭市', N'43', N'湖南省', N'4303', N'湘潭市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430302', N'4303', N'00,43,4303', N'雨湖区', N'43', N'湖南省', N'4303', N'湘潭市', N'430302', N'雨湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'430304', N'4303', N'00,43,4303', N'岳塘区', N'43', N'湖南省', N'4303', N'湘潭市', N'430304', N'岳塘区', N'', N'', N'', N'', N'3', N'1', N''), (N'430321', N'4303', N'00,43,4303', N'湘潭县', N'43', N'湖南省', N'4303', N'湘潭市', N'430321', N'湘潭县', N'', N'', N'', N'', N'3', N'1', N''), (N'430381', N'4303', N'00,43,4303', N'湘乡市', N'43', N'湖南省', N'4303', N'湘潭市', N'430381', N'湘乡市', N'', N'', N'', N'', N'3', N'1', N''), (N'430382', N'4303', N'00,43,4303', N'韶山市', N'43', N'湖南省', N'4303', N'湘潭市', N'430382', N'韶山市', N'', N'', N'', N'', N'3', N'1', N''), (N'4304', N'43', N'00,43', N'衡阳市', N'43', N'湖南省', N'4304', N'衡阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430405', N'4304', N'00,43,4304', N'珠晖区', N'43', N'湖南省', N'4304', N'衡阳市', N'430405', N'珠晖区', N'', N'', N'', N'', N'3', N'1', N''), (N'430406', N'4304', N'00,43,4304', N'雁峰区', N'43', N'湖南省', N'4304', N'衡阳市', N'430406', N'雁峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'430407', N'4304', N'00,43,4304', N'石鼓区', N'43', N'湖南省', N'4304', N'衡阳市', N'430407', N'石鼓区', N'', N'', N'', N'', N'3', N'1', N''), (N'430408', N'4304', N'00,43,4304', N'蒸湘区', N'43', N'湖南省', N'4304', N'衡阳市', N'430408', N'蒸湘区', N'', N'', N'', N'', N'3', N'1', N''), (N'430412', N'4304', N'00,43,4304', N'南岳区', N'43', N'湖南省', N'4304', N'衡阳市', N'430412', N'南岳区', N'', N'', N'', N'', N'3', N'1', N''), (N'430421', N'4304', N'00,43,4304', N'衡阳县', N'43', N'湖南省', N'4304', N'衡阳市', N'430421', N'衡阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'430422', N'4304', N'00,43,4304', N'衡南县', N'43', N'湖南省', N'4304', N'衡阳市', N'430422', N'衡南县', N'', N'', N'', N'', N'3', N'1', N''), (N'430423', N'4304', N'00,43,4304', N'衡山县', N'43', N'湖南省', N'4304', N'衡阳市', N'430423', N'衡山县', N'', N'', N'', N'', N'3', N'1', N''), (N'430424', N'4304', N'00,43,4304', N'衡东县', N'43', N'湖南省', N'4304', N'衡阳市', N'430424', N'衡东县', N'', N'', N'', N'', N'3', N'1', N''), (N'430426', N'4304', N'00,43,4304', N'祁东县', N'43', N'湖南省', N'4304', N'衡阳市', N'430426', N'祁东县', N'', N'', N'', N'', N'3', N'1', N''), (N'430481', N'4304', N'00,43,4304', N'耒阳市', N'43', N'湖南省', N'4304', N'衡阳市', N'430481', N'耒阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'430482', N'4304', N'00,43,4304', N'常宁市', N'43', N'湖南省', N'4304', N'衡阳市', N'430482', N'常宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'4305', N'43', N'00,43', N'邵阳市', N'43', N'湖南省', N'4305', N'邵阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430502', N'4305', N'00,43,4305', N'双清区', N'43', N'湖南省', N'4305', N'邵阳市', N'430502', N'双清区', N'', N'', N'', N'', N'3', N'1', N''), (N'430503', N'4305', N'00,43,4305', N'大祥区', N'43', N'湖南省', N'4305', N'邵阳市', N'430503', N'大祥区', N'', N'', N'', N'', N'3', N'1', N''), (N'430511', N'4305', N'00,43,4305', N'北塔区', N'43', N'湖南省', N'4305', N'邵阳市', N'430511', N'北塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'430522', N'4305', N'00,43,4305', N'新邵县', N'43', N'湖南省', N'4305', N'邵阳市', N'430522', N'新邵县', N'', N'', N'', N'', N'3', N'1', N''), (N'430523', N'4305', N'00,43,4305', N'邵阳县', N'43', N'湖南省', N'4305', N'邵阳市', N'430523', N'邵阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'430524', N'4305', N'00,43,4305', N'隆回县', N'43', N'湖南省', N'4305', N'邵阳市', N'430524', N'隆回县', N'', N'', N'', N'', N'3', N'1', N''), (N'430525', N'4305', N'00,43,4305', N'洞口县', N'43', N'湖南省', N'4305', N'邵阳市', N'430525', N'洞口县', N'', N'', N'', N'', N'3', N'1', N''), (N'430527', N'4305', N'00,43,4305', N'绥宁县', N'43', N'湖南省', N'4305', N'邵阳市', N'430527', N'绥宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'430528', N'4305', N'00,43,4305', N'新宁县', N'43', N'湖南省', N'4305', N'邵阳市', N'430528', N'新宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'430529', N'4305', N'00,43,4305', N'城步苗族自治县', N'43', N'湖南省', N'4305', N'邵阳市', N'430529', N'城步苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'430581', N'4305', N'00,43,4305', N'武冈市', N'43', N'湖南省', N'4305', N'邵阳市', N'430581', N'武冈市', N'', N'', N'', N'', N'3', N'1', N''), (N'430582', N'4305', N'00,43,4305', N'邵东市', N'43', N'湖南省', N'4305', N'邵阳市', N'430582', N'邵东市', N'', N'', N'', N'', N'3', N'1', N''), (N'4306', N'43', N'00,43', N'岳阳市', N'43', N'湖南省', N'4306', N'岳阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430602', N'4306', N'00,43,4306', N'岳阳楼区', N'43', N'湖南省', N'4306', N'岳阳市', N'430602', N'岳阳楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'430603', N'4306', N'00,43,4306', N'云溪区', N'43', N'湖南省', N'4306', N'岳阳市', N'430603', N'云溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'430611', N'4306', N'00,43,4306', N'君山区', N'43', N'湖南省', N'4306', N'岳阳市', N'430611', N'君山区', N'', N'', N'', N'', N'3', N'1', N''), (N'430621', N'4306', N'00,43,4306', N'岳阳县', N'43', N'湖南省', N'4306', N'岳阳市', N'430621', N'岳阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'430623', N'4306', N'00,43,4306', N'华容县', N'43', N'湖南省', N'4306', N'岳阳市', N'430623', N'华容县', N'', N'', N'', N'', N'3', N'1', N''), (N'430624', N'4306', N'00,43,4306', N'湘阴县', N'43', N'湖南省', N'4306', N'岳阳市', N'430624', N'湘阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'430626', N'4306', N'00,43,4306', N'平江县', N'43', N'湖南省', N'4306', N'岳阳市', N'430626', N'平江县', N'', N'', N'', N'', N'3', N'1', N''), (N'430681', N'4306', N'00,43,4306', N'汨罗市', N'43', N'湖南省', N'4306', N'岳阳市', N'430681', N'汨罗市', N'', N'', N'', N'', N'3', N'1', N''), (N'430682', N'4306', N'00,43,4306', N'临湘市', N'43', N'湖南省', N'4306', N'岳阳市', N'430682', N'临湘市', N'', N'', N'', N'', N'3', N'1', N''), (N'4307', N'43', N'00,43', N'常德市', N'43', N'湖南省', N'4307', N'常德市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430702', N'4307', N'00,43,4307', N'武陵区', N'43', N'湖南省', N'4307', N'常德市', N'430702', N'武陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'430703', N'4307', N'00,43,4307', N'鼎城区', N'43', N'湖南省', N'4307', N'常德市', N'430703', N'鼎城区', N'', N'', N'', N'', N'3', N'1', N''), (N'430721', N'4307', N'00,43,4307', N'安乡县', N'43', N'湖南省', N'4307', N'常德市', N'430721', N'安乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'430722', N'4307', N'00,43,4307', N'汉寿县', N'43', N'湖南省', N'4307', N'常德市', N'430722', N'汉寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'430723', N'4307', N'00,43,4307', N'澧县', N'43', N'湖南省', N'4307', N'常德市', N'430723', N'澧县', N'', N'', N'', N'', N'3', N'1', N''), (N'430724', N'4307', N'00,43,4307', N'临澧县', N'43', N'湖南省', N'4307', N'常德市', N'430724', N'临澧县', N'', N'', N'', N'', N'3', N'1', N''), (N'430725', N'4307', N'00,43,4307', N'桃源县', N'43', N'湖南省', N'4307', N'常德市', N'430725', N'桃源县', N'', N'', N'', N'', N'3', N'1', N''), (N'430726', N'4307', N'00,43,4307', N'石门县', N'43', N'湖南省', N'4307', N'常德市', N'430726', N'石门县', N'', N'', N'', N'', N'3', N'1', N''), (N'430781', N'4307', N'00,43,4307', N'津市市', N'43', N'湖南省', N'4307', N'常德市', N'430781', N'津市市', N'', N'', N'', N'', N'3', N'1', N''), (N'4308', N'43', N'00,43', N'张家界市', N'43', N'湖南省', N'4308', N'张家界市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430802', N'4308', N'00,43,4308', N'永定区', N'43', N'湖南省', N'4308', N'张家界市', N'430802', N'永定区', N'', N'', N'', N'', N'3', N'1', N''), (N'430811', N'4308', N'00,43,4308', N'武陵源区', N'43', N'湖南省', N'4308', N'张家界市', N'430811', N'武陵源区', N'', N'', N'', N'', N'3', N'1', N''), (N'430821', N'4308', N'00,43,4308', N'慈利县', N'43', N'湖南省', N'4308', N'张家界市', N'430821', N'慈利县', N'', N'', N'', N'', N'3', N'1', N''), (N'430822', N'4308', N'00,43,4308', N'桑植县', N'43', N'湖南省', N'4308', N'张家界市', N'430822', N'桑植县', N'', N'', N'', N'', N'3', N'1', N''), (N'4309', N'43', N'00,43', N'益阳市', N'43', N'湖南省', N'4309', N'益阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430902', N'4309', N'00,43,4309', N'资阳区', N'43', N'湖南省', N'4309', N'益阳市', N'430902', N'资阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'430903', N'4309', N'00,43,4309', N'赫山区', N'43', N'湖南省', N'4309', N'益阳市', N'430903', N'赫山区', N'', N'', N'', N'', N'3', N'1', N''), (N'430921', N'4309', N'00,43,4309', N'南县', N'43', N'湖南省', N'4309', N'益阳市', N'430921', N'南县', N'', N'', N'', N'', N'3', N'1', N''), (N'430922', N'4309', N'00,43,4309', N'桃江县', N'43', N'湖南省', N'4309', N'益阳市', N'430922', N'桃江县', N'', N'', N'', N'', N'3', N'1', N''), (N'430923', N'4309', N'00,43,4309', N'安化县', N'43', N'湖南省', N'4309', N'益阳市', N'430923', N'安化县', N'', N'', N'', N'', N'3', N'1', N''), (N'430981', N'4309', N'00,43,4309', N'沅江市', N'43', N'湖南省', N'4309', N'益阳市', N'430981', N'沅江市', N'', N'', N'', N'', N'3', N'1', N''), (N'4310', N'43', N'00,43', N'郴州市', N'43', N'湖南省', N'4310', N'郴州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'431002', N'4310', N'00,43,4310', N'北湖区', N'43', N'湖南省', N'4310', N'郴州市', N'431002', N'北湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'431003', N'4310', N'00,43,4310', N'苏仙区', N'43', N'湖南省', N'4310', N'郴州市', N'431003', N'苏仙区', N'', N'', N'', N'', N'3', N'1', N''), (N'431021', N'4310', N'00,43,4310', N'桂阳县', N'43', N'湖南省', N'4310', N'郴州市', N'431021', N'桂阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'431022', N'4310', N'00,43,4310', N'宜章县', N'43', N'湖南省', N'4310', N'郴州市', N'431022', N'宜章县', N'', N'', N'', N'', N'3', N'1', N''), (N'431023', N'4310', N'00,43,4310', N'永兴县', N'43', N'湖南省', N'4310', N'郴州市', N'431023', N'永兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'431024', N'4310', N'00,43,4310', N'嘉禾县', N'43', N'湖南省', N'4310', N'郴州市', N'431024', N'嘉禾县', N'', N'', N'', N'', N'3', N'1', N''), (N'431025', N'4310', N'00,43,4310', N'临武县', N'43', N'湖南省', N'4310', N'郴州市', N'431025', N'临武县', N'', N'', N'', N'', N'3', N'1', N''), (N'431026', N'4310', N'00,43,4310', N'汝城县', N'43', N'湖南省', N'4310', N'郴州市', N'431026', N'汝城县', N'', N'', N'', N'', N'3', N'1', N''), (N'431027', N'4310', N'00,43,4310', N'桂东县', N'43', N'湖南省', N'4310', N'郴州市', N'431027', N'桂东县', N'', N'', N'', N'', N'3', N'1', N''), (N'431028', N'4310', N'00,43,4310', N'安仁县', N'43', N'湖南省', N'4310', N'郴州市', N'431028', N'安仁县', N'', N'', N'', N'', N'3', N'1', N''), (N'431081', N'4310', N'00,43,4310', N'资兴市', N'43', N'湖南省', N'4310', N'郴州市', N'431081', N'资兴市', N'', N'', N'', N'', N'3', N'1', N''), (N'4311', N'43', N'00,43', N'永州市', N'43', N'湖南省', N'4311', N'永州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'431102', N'4311', N'00,43,4311', N'零陵区', N'43', N'湖南省', N'4311', N'永州市', N'431102', N'零陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'431103', N'4311', N'00,43,4311', N'冷水滩区', N'43', N'湖南省', N'4311', N'永州市', N'431103', N'冷水滩区', N'', N'', N'', N'', N'3', N'1', N''), (N'431121', N'4311', N'00,43,4311', N'祁阳县', N'43', N'湖南省', N'4311', N'永州市', N'431121', N'祁阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'431122', N'4311', N'00,43,4311', N'东安县', N'43', N'湖南省', N'4311', N'永州市', N'431122', N'东安县', N'', N'', N'', N'', N'3', N'1', N''), (N'431123', N'4311', N'00,43,4311', N'双牌县', N'43', N'湖南省', N'4311', N'永州市', N'431123', N'双牌县', N'', N'', N'', N'', N'3', N'1', N''), (N'431124', N'4311', N'00,43,4311', N'道县', N'43', N'湖南省', N'4311', N'永州市', N'431124', N'道县', N'', N'', N'', N'', N'3', N'1', N''), (N'431125', N'4311', N'00,43,4311', N'江永县', N'43', N'湖南省', N'4311', N'永州市', N'431125', N'江永县', N'', N'', N'', N'', N'3', N'1', N''), (N'431126', N'4311', N'00,43,4311', N'宁远县', N'43', N'湖南省', N'4311', N'永州市', N'431126', N'宁远县', N'', N'', N'', N'', N'3', N'1', N''), (N'431127', N'4311', N'00,43,4311', N'蓝山县', N'43', N'湖南省', N'4311', N'永州市', N'431127', N'蓝山县', N'', N'', N'', N'', N'3', N'1', N''), (N'431128', N'4311', N'00,43,4311', N'新田县', N'43', N'湖南省', N'4311', N'永州市', N'431128', N'新田县', N'', N'', N'', N'', N'3', N'1', N''), (N'431129', N'4311', N'00,43,4311', N'江华瑶族自治县', N'43', N'湖南省', N'4311', N'永州市', N'431129', N'江华瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'4312', N'43', N'00,43', N'怀化市', N'43', N'湖南省', N'4312', N'怀化市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'431202', N'4312', N'00,43,4312', N'鹤城区', N'43', N'湖南省', N'4312', N'怀化市', N'431202', N'鹤城区', N'', N'', N'', N'', N'3', N'1', N''), (N'431221', N'4312', N'00,43,4312', N'中方县', N'43', N'湖南省', N'4312', N'怀化市', N'431221', N'中方县', N'', N'', N'', N'', N'3', N'1', N''), (N'431222', N'4312', N'00,43,4312', N'沅陵县', N'43', N'湖南省', N'4312', N'怀化市', N'431222', N'沅陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'431223', N'4312', N'00,43,4312', N'辰溪县', N'43', N'湖南省', N'4312', N'怀化市', N'431223', N'辰溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'431224', N'4312', N'00,43,4312', N'溆浦县', N'43', N'湖南省', N'4312', N'怀化市', N'431224', N'溆浦县', N'', N'', N'', N'', N'3', N'1', N''), (N'431225', N'4312', N'00,43,4312', N'会同县', N'43', N'湖南省', N'4312', N'怀化市', N'431225', N'会同县', N'', N'', N'', N'', N'3', N'1', N''), (N'431226', N'4312', N'00,43,4312', N'麻阳苗族自治县', N'43', N'湖南省', N'4312', N'怀化市', N'431226', N'麻阳苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'431227', N'4312', N'00,43,4312', N'新晃侗族自治县', N'43', N'湖南省', N'4312', N'怀化市', N'431227', N'新晃侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'431228', N'4312', N'00,43,4312', N'芷江侗族自治县', N'43', N'湖南省', N'4312', N'怀化市', N'431228', N'芷江侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'431229', N'4312', N'00,43,4312', N'靖州苗族侗族自治县', N'43', N'湖南省', N'4312', N'怀化市', N'431229', N'靖州苗族侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'431230', N'4312', N'00,43,4312', N'通道侗族自治县', N'43', N'湖南省', N'4312', N'怀化市', N'431230', N'通道侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'431281', N'4312', N'00,43,4312', N'洪江市', N'43', N'湖南省', N'4312', N'怀化市', N'431281', N'洪江市', N'', N'', N'', N'', N'3', N'1', N''), (N'4313', N'43', N'00,43', N'娄底市', N'43', N'湖南省', N'4313', N'娄底市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'431302', N'4313', N'00,43,4313', N'娄星区', N'43', N'湖南省', N'4313', N'娄底市', N'431302', N'娄星区', N'', N'', N'', N'', N'3', N'1', N''), (N'431321', N'4313', N'00,43,4313', N'双峰县', N'43', N'湖南省', N'4313', N'娄底市', N'431321', N'双峰县', N'', N'', N'', N'', N'3', N'1', N''), (N'431322', N'4313', N'00,43,4313', N'新化县', N'43', N'湖南省', N'4313', N'娄底市', N'431322', N'新化县', N'', N'', N'', N'', N'3', N'1', N''), (N'431381', N'4313', N'00,43,4313', N'冷水江市', N'43', N'湖南省', N'4313', N'娄底市', N'431381', N'冷水江市', N'', N'', N'', N'', N'3', N'1', N''), (N'431382', N'4313', N'00,43,4313', N'涟源市', N'43', N'湖南省', N'4313', N'娄底市', N'431382', N'涟源市', N'', N'', N'', N'', N'3', N'1', N''), (N'4331', N'43', N'00,43', N'湘西土家族苗族自治州', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'433101', N'4331', N'00,43,4331', N'吉首市', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433101', N'吉首市', N'', N'', N'', N'', N'3', N'1', N''), (N'433122', N'4331', N'00,43,4331', N'泸溪县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433122', N'泸溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'433123', N'4331', N'00,43,4331', N'凤凰县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433123', N'凤凰县', N'', N'', N'', N'', N'3', N'1', N''), (N'433124', N'4331', N'00,43,4331', N'花垣县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433124', N'花垣县', N'', N'', N'', N'', N'3', N'1', N''), (N'433125', N'4331', N'00,43,4331', N'保靖县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433125', N'保靖县', N'', N'', N'', N'', N'3', N'1', N''), (N'433126', N'4331', N'00,43,4331', N'古丈县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433126', N'古丈县', N'', N'', N'', N'', N'3', N'1', N''), (N'433127', N'4331', N'00,43,4331', N'永顺县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433127', N'永顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'433130', N'4331', N'00,43,4331', N'龙山县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433130', N'龙山县', N'', N'', N'', N'', N'3', N'1', N''), (N'44', N'00', N'00', N'广东省', N'44', N'广东省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4401', N'44', N'00,44', N'广州市', N'44', N'广东省', N'4401', N'广州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440103', N'4401', N'00,44,4401', N'荔湾区', N'44', N'广东省', N'4401', N'广州市', N'440103', N'荔湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'440104', N'4401', N'00,44,4401', N'越秀区', N'44', N'广东省', N'4401', N'广州市', N'440104', N'越秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'440105', N'4401', N'00,44,4401', N'海珠区', N'44', N'广东省', N'4401', N'广州市', N'440105', N'海珠区', N'', N'', N'', N'', N'3', N'1', N''), (N'440106', N'4401', N'00,44,4401', N'天河区', N'44', N'广东省', N'4401', N'广州市', N'440106', N'天河区', N'', N'', N'', N'', N'3', N'1', N''), (N'440111', N'4401', N'00,44,4401', N'白云区', N'44', N'广东省', N'4401', N'广州市', N'440111', N'白云区', N'', N'', N'', N'', N'3', N'1', N''), (N'440112', N'4401', N'00,44,4401', N'黄埔区', N'44', N'广东省', N'4401', N'广州市', N'440112', N'黄埔区', N'', N'', N'', N'', N'3', N'1', N''), (N'440113', N'4401', N'00,44,4401', N'番禺区', N'44', N'广东省', N'4401', N'广州市', N'440113', N'番禺区', N'', N'', N'', N'', N'3', N'1', N''), (N'440114', N'4401', N'00,44,4401', N'花都区', N'44', N'广东省', N'4401', N'广州市', N'440114', N'花都区', N'', N'', N'', N'', N'3', N'1', N''), (N'440115', N'4401', N'00,44,4401', N'南沙区', N'44', N'广东省', N'4401', N'广州市', N'440115', N'南沙区', N'', N'', N'', N'', N'3', N'1', N''), (N'440117', N'4401', N'00,44,4401', N'从化区', N'44', N'广东省', N'4401', N'广州市', N'440117', N'从化区', N'', N'', N'', N'', N'3', N'1', N''), (N'440118', N'4401', N'00,44,4401', N'增城区', N'44', N'广东省', N'4401', N'广州市', N'440118', N'增城区', N'', N'', N'', N'', N'3', N'1', N''), (N'4402', N'44', N'00,44', N'韶关市', N'44', N'广东省', N'4402', N'韶关市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440203', N'4402', N'00,44,4402', N'武江区', N'44', N'广东省', N'4402', N'韶关市', N'440203', N'武江区', N'', N'', N'', N'', N'3', N'1', N''), (N'440204', N'4402', N'00,44,4402', N'浈江区', N'44', N'广东省', N'4402', N'韶关市', N'440204', N'浈江区', N'', N'', N'', N'', N'3', N'1', N''), (N'440205', N'4402', N'00,44,4402', N'曲江区', N'44', N'广东省', N'4402', N'韶关市', N'440205', N'曲江区', N'', N'', N'', N'', N'3', N'1', N''), (N'440222', N'4402', N'00,44,4402', N'始兴县', N'44', N'广东省', N'4402', N'韶关市', N'440222', N'始兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'440224', N'4402', N'00,44,4402', N'仁化县', N'44', N'广东省', N'4402', N'韶关市', N'440224', N'仁化县', N'', N'', N'', N'', N'3', N'1', N''), (N'440229', N'4402', N'00,44,4402', N'翁源县', N'44', N'广东省', N'4402', N'韶关市', N'440229', N'翁源县', N'', N'', N'', N'', N'3', N'1', N''), (N'440232', N'4402', N'00,44,4402', N'乳源瑶族自治县', N'44', N'广东省', N'4402', N'韶关市', N'440232', N'乳源瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'440233', N'4402', N'00,44,4402', N'新丰县', N'44', N'广东省', N'4402', N'韶关市', N'440233', N'新丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'440281', N'4402', N'00,44,4402', N'乐昌市', N'44', N'广东省', N'4402', N'韶关市', N'440281', N'乐昌市', N'', N'', N'', N'', N'3', N'1', N''), (N'440282', N'4402', N'00,44,4402', N'南雄市', N'44', N'广东省', N'4402', N'韶关市', N'440282', N'南雄市', N'', N'', N'', N'', N'3', N'1', N''), (N'4403', N'44', N'00,44', N'深圳市', N'44', N'广东省', N'4403', N'深圳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440303', N'4403', N'00,44,4403', N'罗湖区', N'44', N'广东省', N'4403', N'深圳市', N'440303', N'罗湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'440304', N'4403', N'00,44,4403', N'福田区', N'44', N'广东省', N'4403', N'深圳市', N'440304', N'福田区', N'', N'', N'', N'', N'3', N'1', N''), (N'440305', N'4403', N'00,44,4403', N'南山区', N'44', N'广东省', N'4403', N'深圳市', N'440305', N'南山区', N'', N'', N'', N'', N'3', N'1', N''), (N'440306', N'4403', N'00,44,4403', N'宝安区', N'44', N'广东省', N'4403', N'深圳市', N'440306', N'宝安区', N'', N'', N'', N'', N'3', N'1', N''), (N'440307', N'4403', N'00,44,4403', N'龙岗区', N'44', N'广东省', N'4403', N'深圳市', N'440307', N'龙岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'440308', N'4403', N'00,44,4403', N'盐田区', N'44', N'广东省', N'4403', N'深圳市', N'440308', N'盐田区', N'', N'', N'', N'', N'3', N'1', N''), (N'440309', N'4403', N'00,44,4403', N'龙华区', N'44', N'广东省', N'4403', N'深圳市', N'440309', N'龙华区', N'', N'', N'', N'', N'3', N'1', N''), (N'440310', N'4403', N'00,44,4403', N'坪山区', N'44', N'广东省', N'4403', N'深圳市', N'440310', N'坪山区', N'', N'', N'', N'', N'3', N'1', N''), (N'440311', N'4403', N'00,44,4403', N'光明区', N'44', N'广东省', N'4403', N'深圳市', N'440311', N'光明区', N'', N'', N'', N'', N'3', N'1', N''), (N'4404', N'44', N'00,44', N'珠海市', N'44', N'广东省', N'4404', N'珠海市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440402', N'4404', N'00,44,4404', N'香洲区', N'44', N'广东省', N'4404', N'珠海市', N'440402', N'香洲区', N'', N'', N'', N'', N'3', N'1', N''), (N'440403', N'4404', N'00,44,4404', N'斗门区', N'44', N'广东省', N'4404', N'珠海市', N'440403', N'斗门区', N'', N'', N'', N'', N'3', N'1', N''), (N'440404', N'4404', N'00,44,4404', N'金湾区', N'44', N'广东省', N'4404', N'珠海市', N'440404', N'金湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'4405', N'44', N'00,44', N'汕头市', N'44', N'广东省', N'4405', N'汕头市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440507', N'4405', N'00,44,4405', N'龙湖区', N'44', N'广东省', N'4405', N'汕头市', N'440507', N'龙湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'440511', N'4405', N'00,44,4405', N'金平区', N'44', N'广东省', N'4405', N'汕头市', N'440511', N'金平区', N'', N'', N'', N'', N'3', N'1', N''), (N'440512', N'4405', N'00,44,4405', N'濠江区', N'44', N'广东省', N'4405', N'汕头市', N'440512', N'濠江区', N'', N'', N'', N'', N'3', N'1', N''), (N'440513', N'4405', N'00,44,4405', N'潮阳区', N'44', N'广东省', N'4405', N'汕头市', N'440513', N'潮阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'440514', N'4405', N'00,44,4405', N'潮南区', N'44', N'广东省', N'4405', N'汕头市', N'440514', N'潮南区', N'', N'', N'', N'', N'3', N'1', N''), (N'440515', N'4405', N'00,44,4405', N'澄海区', N'44', N'广东省', N'4405', N'汕头市', N'440515', N'澄海区', N'', N'', N'', N'', N'3', N'1', N''), (N'440523', N'4405', N'00,44,4405', N'南澳县', N'44', N'广东省', N'4405', N'汕头市', N'440523', N'南澳县', N'', N'', N'', N'', N'3', N'1', N''), (N'4406', N'44', N'00,44', N'佛山市', N'44', N'广东省', N'4406', N'佛山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440604', N'4406', N'00,44,4406', N'禅城区', N'44', N'广东省', N'4406', N'佛山市', N'440604', N'禅城区', N'', N'', N'', N'', N'3', N'1', N''), (N'440605', N'4406', N'00,44,4406', N'南海区', N'44', N'广东省', N'4406', N'佛山市', N'440605', N'南海区', N'', N'', N'', N'', N'3', N'1', N''), (N'440606', N'4406', N'00,44,4406', N'顺德区', N'44', N'广东省', N'4406', N'佛山市', N'440606', N'顺德区', N'', N'', N'', N'', N'3', N'1', N''), (N'440607', N'4406', N'00,44,4406', N'三水区', N'44', N'广东省', N'4406', N'佛山市', N'440607', N'三水区', N'', N'', N'', N'', N'3', N'1', N''), (N'440608', N'4406', N'00,44,4406', N'高明区', N'44', N'广东省', N'4406', N'佛山市', N'440608', N'高明区', N'', N'', N'', N'', N'3', N'1', N''), (N'4407', N'44', N'00,44', N'江门市', N'44', N'广东省', N'4407', N'江门市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440703', N'4407', N'00,44,4407', N'蓬江区', N'44', N'广东省', N'4407', N'江门市', N'440703', N'蓬江区', N'', N'', N'', N'', N'3', N'1', N''), (N'440704', N'4407', N'00,44,4407', N'江海区', N'44', N'广东省', N'4407', N'江门市', N'440704', N'江海区', N'', N'', N'', N'', N'3', N'1', N''), (N'440705', N'4407', N'00,44,4407', N'新会区', N'44', N'广东省', N'4407', N'江门市', N'440705', N'新会区', N'', N'', N'', N'', N'3', N'1', N''), (N'440781', N'4407', N'00,44,4407', N'台山市', N'44', N'广东省', N'4407', N'江门市', N'440781', N'台山市', N'', N'', N'', N'', N'3', N'1', N''), (N'440783', N'4407', N'00,44,4407', N'开平市', N'44', N'广东省', N'4407', N'江门市', N'440783', N'开平市', N'', N'', N'', N'', N'3', N'1', N''), (N'440784', N'4407', N'00,44,4407', N'鹤山市', N'44', N'广东省', N'4407', N'江门市', N'440784', N'鹤山市', N'', N'', N'', N'', N'3', N'1', N''), (N'440785', N'4407', N'00,44,4407', N'恩平市', N'44', N'广东省', N'4407', N'江门市', N'440785', N'恩平市', N'', N'', N'', N'', N'3', N'1', N''), (N'4408', N'44', N'00,44', N'湛江市', N'44', N'广东省', N'4408', N'湛江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440802', N'4408', N'00,44,4408', N'赤坎区', N'44', N'广东省', N'4408', N'湛江市', N'440802', N'赤坎区', N'', N'', N'', N'', N'3', N'1', N''), (N'440803', N'4408', N'00,44,4408', N'霞山区', N'44', N'广东省', N'4408', N'湛江市', N'440803', N'霞山区', N'', N'', N'', N'', N'3', N'1', N''), (N'440804', N'4408', N'00,44,4408', N'坡头区', N'44', N'广东省', N'4408', N'湛江市', N'440804', N'坡头区', N'', N'', N'', N'', N'3', N'1', N''), (N'440811', N'4408', N'00,44,4408', N'麻章区', N'44', N'广东省', N'4408', N'湛江市', N'440811', N'麻章区', N'', N'', N'', N'', N'3', N'1', N''), (N'440823', N'4408', N'00,44,4408', N'遂溪县', N'44', N'广东省', N'4408', N'湛江市', N'440823', N'遂溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'440825', N'4408', N'00,44,4408', N'徐闻县', N'44', N'广东省', N'4408', N'湛江市', N'440825', N'徐闻县', N'', N'', N'', N'', N'3', N'1', N''), (N'440881', N'4408', N'00,44,4408', N'廉江市', N'44', N'广东省', N'4408', N'湛江市', N'440881', N'廉江市', N'', N'', N'', N'', N'3', N'1', N''), (N'440882', N'4408', N'00,44,4408', N'雷州市', N'44', N'广东省', N'4408', N'湛江市', N'440882', N'雷州市', N'', N'', N'', N'', N'3', N'1', N''), (N'440883', N'4408', N'00,44,4408', N'吴川市', N'44', N'广东省', N'4408', N'湛江市', N'440883', N'吴川市', N'', N'', N'', N'', N'3', N'1', N''), (N'4409', N'44', N'00,44', N'茂名市', N'44', N'广东省', N'4409', N'茂名市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440902', N'4409', N'00,44,4409', N'茂南区', N'44', N'广东省', N'4409', N'茂名市', N'440902', N'茂南区', N'', N'', N'', N'', N'3', N'1', N''), (N'440904', N'4409', N'00,44,4409', N'电白区', N'44', N'广东省', N'4409', N'茂名市', N'440904', N'电白区', N'', N'', N'', N'', N'3', N'1', N''), (N'440981', N'4409', N'00,44,4409', N'高州市', N'44', N'广东省', N'4409', N'茂名市', N'440981', N'高州市', N'', N'', N'', N'', N'3', N'1', N''), (N'440982', N'4409', N'00,44,4409', N'化州市', N'44', N'广东省', N'4409', N'茂名市', N'440982', N'化州市', N'', N'', N'', N'', N'3', N'1', N''), (N'440983', N'4409', N'00,44,4409', N'信宜市', N'44', N'广东省', N'4409', N'茂名市', N'440983', N'信宜市', N'', N'', N'', N'', N'3', N'1', N''), (N'4412', N'44', N'00,44', N'肇庆市', N'44', N'广东省', N'4412', N'肇庆市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441202', N'4412', N'00,44,4412', N'端州区', N'44', N'广东省', N'4412', N'肇庆市', N'441202', N'端州区', N'', N'', N'', N'', N'3', N'1', N''), (N'441203', N'4412', N'00,44,4412', N'鼎湖区', N'44', N'广东省', N'4412', N'肇庆市', N'441203', N'鼎湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'441204', N'4412', N'00,44,4412', N'高要区', N'44', N'广东省', N'4412', N'肇庆市', N'441204', N'高要区', N'', N'', N'', N'', N'3', N'1', N''), (N'441223', N'4412', N'00,44,4412', N'广宁县', N'44', N'广东省', N'4412', N'肇庆市', N'441223', N'广宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'441224', N'4412', N'00,44,4412', N'怀集县', N'44', N'广东省', N'4412', N'肇庆市', N'441224', N'怀集县', N'', N'', N'', N'', N'3', N'1', N''), (N'441225', N'4412', N'00,44,4412', N'封开县', N'44', N'广东省', N'4412', N'肇庆市', N'441225', N'封开县', N'', N'', N'', N'', N'3', N'1', N''), (N'441226', N'4412', N'00,44,4412', N'德庆县', N'44', N'广东省', N'4412', N'肇庆市', N'441226', N'德庆县', N'', N'', N'', N'', N'3', N'1', N''), (N'441284', N'4412', N'00,44,4412', N'四会市', N'44', N'广东省', N'4412', N'肇庆市', N'441284', N'四会市', N'', N'', N'', N'', N'3', N'1', N''), (N'4413', N'44', N'00,44', N'惠州市', N'44', N'广东省', N'4413', N'惠州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441302', N'4413', N'00,44,4413', N'惠城区', N'44', N'广东省', N'4413', N'惠州市', N'441302', N'惠城区', N'', N'', N'', N'', N'3', N'1', N''), (N'441303', N'4413', N'00,44,4413', N'惠阳区', N'44', N'广东省', N'4413', N'惠州市', N'441303', N'惠阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'441322', N'4413', N'00,44,4413', N'博罗县', N'44', N'广东省', N'4413', N'惠州市', N'441322', N'博罗县', N'', N'', N'', N'', N'3', N'1', N''), (N'441323', N'4413', N'00,44,4413', N'惠东县', N'44', N'广东省', N'4413', N'惠州市', N'441323', N'惠东县', N'', N'', N'', N'', N'3', N'1', N''), (N'441324', N'4413', N'00,44,4413', N'龙门县', N'44', N'广东省', N'4413', N'惠州市', N'441324', N'龙门县', N'', N'', N'', N'', N'3', N'1', N''), (N'4414', N'44', N'00,44', N'梅州市', N'44', N'广东省', N'4414', N'梅州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441402', N'4414', N'00,44,4414', N'梅江区', N'44', N'广东省', N'4414', N'梅州市', N'441402', N'梅江区', N'', N'', N'', N'', N'3', N'1', N''), (N'441403', N'4414', N'00,44,4414', N'梅县区', N'44', N'广东省', N'4414', N'梅州市', N'441403', N'梅县区', N'', N'', N'', N'', N'3', N'1', N''), (N'441422', N'4414', N'00,44,4414', N'大埔县', N'44', N'广东省', N'4414', N'梅州市', N'441422', N'大埔县', N'', N'', N'', N'', N'3', N'1', N''), (N'441423', N'4414', N'00,44,4414', N'丰顺县', N'44', N'广东省', N'4414', N'梅州市', N'441423', N'丰顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'441424', N'4414', N'00,44,4414', N'五华县', N'44', N'广东省', N'4414', N'梅州市', N'441424', N'五华县', N'', N'', N'', N'', N'3', N'1', N''), (N'441426', N'4414', N'00,44,4414', N'平远县', N'44', N'广东省', N'4414', N'梅州市', N'441426', N'平远县', N'', N'', N'', N'', N'3', N'1', N''), (N'441427', N'4414', N'00,44,4414', N'蕉岭县', N'44', N'广东省', N'4414', N'梅州市', N'441427', N'蕉岭县', N'', N'', N'', N'', N'3', N'1', N''), (N'441481', N'4414', N'00,44,4414', N'兴宁市', N'44', N'广东省', N'4414', N'梅州市', N'441481', N'兴宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'4415', N'44', N'00,44', N'汕尾市', N'44', N'广东省', N'4415', N'汕尾市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441502', N'4415', N'00,44,4415', N'城区', N'44', N'广东省', N'4415', N'汕尾市', N'441502', N'城区', N'', N'', N'', N'', N'3', N'1', N''), (N'441521', N'4415', N'00,44,4415', N'海丰县', N'44', N'广东省', N'4415', N'汕尾市', N'441521', N'海丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'441523', N'4415', N'00,44,4415', N'陆河县', N'44', N'广东省', N'4415', N'汕尾市', N'441523', N'陆河县', N'', N'', N'', N'', N'3', N'1', N''), (N'441581', N'4415', N'00,44,4415', N'陆丰市', N'44', N'广东省', N'4415', N'汕尾市', N'441581', N'陆丰市', N'', N'', N'', N'', N'3', N'1', N''), (N'4416', N'44', N'00,44', N'河源市', N'44', N'广东省', N'4416', N'河源市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441602', N'4416', N'00,44,4416', N'源城区', N'44', N'广东省', N'4416', N'河源市', N'441602', N'源城区', N'', N'', N'', N'', N'3', N'1', N''), (N'441621', N'4416', N'00,44,4416', N'紫金县', N'44', N'广东省', N'4416', N'河源市', N'441621', N'紫金县', N'', N'', N'', N'', N'3', N'1', N''), (N'441622', N'4416', N'00,44,4416', N'龙川县', N'44', N'广东省', N'4416', N'河源市', N'441622', N'龙川县', N'', N'', N'', N'', N'3', N'1', N''), (N'441623', N'4416', N'00,44,4416', N'连平县', N'44', N'广东省', N'4416', N'河源市', N'441623', N'连平县', N'', N'', N'', N'', N'3', N'1', N''), (N'441624', N'4416', N'00,44,4416', N'和平县', N'44', N'广东省', N'4416', N'河源市', N'441624', N'和平县', N'', N'', N'', N'', N'3', N'1', N''), (N'441625', N'4416', N'00,44,4416', N'东源县', N'44', N'广东省', N'4416', N'河源市', N'441625', N'东源县', N'', N'', N'', N'', N'3', N'1', N''), (N'4417', N'44', N'00,44', N'阳江市', N'44', N'广东省', N'4417', N'阳江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441702', N'4417', N'00,44,4417', N'江城区', N'44', N'广东省', N'4417', N'阳江市', N'441702', N'江城区', N'', N'', N'', N'', N'3', N'1', N''), (N'441704', N'4417', N'00,44,4417', N'阳东区', N'44', N'广东省', N'4417', N'阳江市', N'441704', N'阳东区', N'', N'', N'', N'', N'3', N'1', N''), (N'441721', N'4417', N'00,44,4417', N'阳西县', N'44', N'广东省', N'4417', N'阳江市', N'441721', N'阳西县', N'', N'', N'', N'', N'3', N'1', N''), (N'441781', N'4417', N'00,44,4417', N'阳春市', N'44', N'广东省', N'4417', N'阳江市', N'441781', N'阳春市', N'', N'', N'', N'', N'3', N'1', N''), (N'4418', N'44', N'00,44', N'清远市', N'44', N'广东省', N'4418', N'清远市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441802', N'4418', N'00,44,4418', N'清城区', N'44', N'广东省', N'4418', N'清远市', N'441802', N'清城区', N'', N'', N'', N'', N'3', N'1', N''), (N'441803', N'4418', N'00,44,4418', N'清新区', N'44', N'广东省', N'4418', N'清远市', N'441803', N'清新区', N'', N'', N'', N'', N'3', N'1', N''), (N'441821', N'4418', N'00,44,4418', N'佛冈县', N'44', N'广东省', N'4418', N'清远市', N'441821', N'佛冈县', N'', N'', N'', N'', N'3', N'1', N''), (N'441823', N'4418', N'00,44,4418', N'阳山县', N'44', N'广东省', N'4418', N'清远市', N'441823', N'阳山县', N'', N'', N'', N'', N'3', N'1', N''), (N'441825', N'4418', N'00,44,4418', N'连山壮族瑶族自治县', N'44', N'广东省', N'4418', N'清远市', N'441825', N'连山壮族瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'441826', N'4418', N'00,44,4418', N'连南瑶族自治县', N'44', N'广东省', N'4418', N'清远市', N'441826', N'连南瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'441881', N'4418', N'00,44,4418', N'英德市', N'44', N'广东省', N'4418', N'清远市', N'441881', N'英德市', N'', N'', N'', N'', N'3', N'1', N''), (N'441882', N'4418', N'00,44,4418', N'连州市', N'44', N'广东省', N'4418', N'清远市', N'441882', N'连州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4419', N'44', N'00,44', N'东莞市', N'44', N'广东省', N'4419', N'东莞市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441900', N'4419', N'00,44,4419', N'东莞市', N'44', N'广东省', N'4419', N'东莞市', N'441900', N'东莞市', N'', N'', N'', N'', N'3', N'1', N''), (N'4420', N'44', N'00,44', N'中山市', N'44', N'广东省', N'4420', N'中山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'442000', N'4420', N'00,44,4420', N'中山市', N'44', N'广东省', N'4420', N'中山市', N'442000', N'中山市', N'', N'', N'', N'', N'3', N'1', N''), (N'4451', N'44', N'00,44', N'潮州市', N'44', N'广东省', N'4451', N'潮州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'445102', N'4451', N'00,44,4451', N'湘桥区', N'44', N'广东省', N'4451', N'潮州市', N'445102', N'湘桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'445103', N'4451', N'00,44,4451', N'潮安区', N'44', N'广东省', N'4451', N'潮州市', N'445103', N'潮安区', N'', N'', N'', N'', N'3', N'1', N''), (N'445122', N'4451', N'00,44,4451', N'饶平县', N'44', N'广东省', N'4451', N'潮州市', N'445122', N'饶平县', N'', N'', N'', N'', N'3', N'1', N''), (N'4452', N'44', N'00,44', N'揭阳市', N'44', N'广东省', N'4452', N'揭阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'445202', N'4452', N'00,44,4452', N'榕城区', N'44', N'广东省', N'4452', N'揭阳市', N'445202', N'榕城区', N'', N'', N'', N'', N'3', N'1', N''), (N'445203', N'4452', N'00,44,4452', N'揭东区', N'44', N'广东省', N'4452', N'揭阳市', N'445203', N'揭东区', N'', N'', N'', N'', N'3', N'1', N''), (N'445222', N'4452', N'00,44,4452', N'揭西县', N'44', N'广东省', N'4452', N'揭阳市', N'445222', N'揭西县', N'', N'', N'', N'', N'3', N'1', N''), (N'445224', N'4452', N'00,44,4452', N'惠来县', N'44', N'广东省', N'4452', N'揭阳市', N'445224', N'惠来县', N'', N'', N'', N'', N'3', N'1', N''), (N'445281', N'4452', N'00,44,4452', N'普宁市', N'44', N'广东省', N'4452', N'揭阳市', N'445281', N'普宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'4453', N'44', N'00,44', N'云浮市', N'44', N'广东省', N'4453', N'云浮市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'445302', N'4453', N'00,44,4453', N'云城区', N'44', N'广东省', N'4453', N'云浮市', N'445302', N'云城区', N'', N'', N'', N'', N'3', N'1', N''), (N'445303', N'4453', N'00,44,4453', N'云安区', N'44', N'广东省', N'4453', N'云浮市', N'445303', N'云安区', N'', N'', N'', N'', N'3', N'1', N''), (N'445321', N'4453', N'00,44,4453', N'新兴县', N'44', N'广东省', N'4453', N'云浮市', N'445321', N'新兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'445322', N'4453', N'00,44,4453', N'郁南县', N'44', N'广东省', N'4453', N'云浮市', N'445322', N'郁南县', N'', N'', N'', N'', N'3', N'1', N''), (N'445381', N'4453', N'00,44,4453', N'罗定市', N'44', N'广东省', N'4453', N'云浮市', N'445381', N'罗定市', N'', N'', N'', N'', N'3', N'1', N''), (N'45', N'00', N'00', N'广西壮族自治区', N'45', N'广西壮族自治区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4501', N'45', N'00,45', N'南宁市', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450102', N'4501', N'00,45,4501', N'兴宁区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450102', N'兴宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'450103', N'4501', N'00,45,4501', N'青秀区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450103', N'青秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'450105', N'4501', N'00,45,4501', N'江南区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450105', N'江南区', N'', N'', N'', N'', N'3', N'1', N''), (N'450107', N'4501', N'00,45,4501', N'西乡塘区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450107', N'西乡塘区', N'', N'', N'', N'', N'3', N'1', N''), (N'450108', N'4501', N'00,45,4501', N'良庆区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450108', N'良庆区', N'', N'', N'', N'', N'3', N'1', N''), (N'450109', N'4501', N'00,45,4501', N'邕宁区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450109', N'邕宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'450110', N'4501', N'00,45,4501', N'武鸣区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450110', N'武鸣区', N'', N'', N'', N'', N'3', N'1', N''), (N'450123', N'4501', N'00,45,4501', N'隆安县', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450123', N'隆安县', N'', N'', N'', N'', N'3', N'1', N''), (N'450124', N'4501', N'00,45,4501', N'马山县', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450124', N'马山县', N'', N'', N'', N'', N'3', N'1', N''), (N'450125', N'4501', N'00,45,4501', N'上林县', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450125', N'上林县', N'', N'', N'', N'', N'3', N'1', N''), (N'450126', N'4501', N'00,45,4501', N'宾阳县', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450126', N'宾阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'450127', N'4501', N'00,45,4501', N'横县', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450127', N'横县', N'', N'', N'', N'', N'3', N'1', N''), (N'4502', N'45', N'00,45', N'柳州市', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450202', N'4502', N'00,45,4502', N'城中区', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450202', N'城中区', N'', N'', N'', N'', N'3', N'1', N''), (N'450203', N'4502', N'00,45,4502', N'鱼峰区', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450203', N'鱼峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'450204', N'4502', N'00,45,4502', N'柳南区', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450204', N'柳南区', N'', N'', N'', N'', N'3', N'1', N''), (N'450205', N'4502', N'00,45,4502', N'柳北区', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450205', N'柳北区', N'', N'', N'', N'', N'3', N'1', N''), (N'450206', N'4502', N'00,45,4502', N'柳江区', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450206', N'柳江区', N'', N'', N'', N'', N'3', N'1', N''), (N'450222', N'4502', N'00,45,4502', N'柳城县', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450222', N'柳城县', N'', N'', N'', N'', N'3', N'1', N''), (N'450223', N'4502', N'00,45,4502', N'鹿寨县', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450223', N'鹿寨县', N'', N'', N'', N'', N'3', N'1', N'')
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'450224', N'4502', N'00,45,4502', N'融安县', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450224', N'融安县', N'', N'', N'', N'', N'3', N'1', N''), (N'450225', N'4502', N'00,45,4502', N'融水苗族自治县', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450225', N'融水苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'450226', N'4502', N'00,45,4502', N'三江侗族自治县', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450226', N'三江侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'4503', N'45', N'00,45', N'桂林市', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450302', N'4503', N'00,45,4503', N'秀峰区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450302', N'秀峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'450303', N'4503', N'00,45,4503', N'叠彩区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450303', N'叠彩区', N'', N'', N'', N'', N'3', N'1', N''), (N'450304', N'4503', N'00,45,4503', N'象山区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450304', N'象山区', N'', N'', N'', N'', N'3', N'1', N''), (N'450305', N'4503', N'00,45,4503', N'七星区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450305', N'七星区', N'', N'', N'', N'', N'3', N'1', N''), (N'450311', N'4503', N'00,45,4503', N'雁山区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450311', N'雁山区', N'', N'', N'', N'', N'3', N'1', N''), (N'450312', N'4503', N'00,45,4503', N'临桂区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450312', N'临桂区', N'', N'', N'', N'', N'3', N'1', N''), (N'450321', N'4503', N'00,45,4503', N'阳朔县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450321', N'阳朔县', N'', N'', N'', N'', N'3', N'1', N''), (N'450323', N'4503', N'00,45,4503', N'灵川县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450323', N'灵川县', N'', N'', N'', N'', N'3', N'1', N''), (N'450324', N'4503', N'00,45,4503', N'全州县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450324', N'全州县', N'', N'', N'', N'', N'3', N'1', N''), (N'450325', N'4503', N'00,45,4503', N'兴安县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450325', N'兴安县', N'', N'', N'', N'', N'3', N'1', N''), (N'450326', N'4503', N'00,45,4503', N'永福县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450326', N'永福县', N'', N'', N'', N'', N'3', N'1', N''), (N'450327', N'4503', N'00,45,4503', N'灌阳县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450327', N'灌阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'450328', N'4503', N'00,45,4503', N'龙胜各族自治县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450328', N'龙胜各族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'450329', N'4503', N'00,45,4503', N'资源县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450329', N'资源县', N'', N'', N'', N'', N'3', N'1', N''), (N'450330', N'4503', N'00,45,4503', N'平乐县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450330', N'平乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'450332', N'4503', N'00,45,4503', N'恭城瑶族自治县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450332', N'恭城瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'450381', N'4503', N'00,45,4503', N'荔浦市', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450381', N'荔浦市', N'', N'', N'', N'', N'3', N'1', N''), (N'4504', N'45', N'00,45', N'梧州市', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450403', N'4504', N'00,45,4504', N'万秀区', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450403', N'万秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'450405', N'4504', N'00,45,4504', N'长洲区', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450405', N'长洲区', N'', N'', N'', N'', N'3', N'1', N''), (N'450406', N'4504', N'00,45,4504', N'龙圩区', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450406', N'龙圩区', N'', N'', N'', N'', N'3', N'1', N''), (N'450421', N'4504', N'00,45,4504', N'苍梧县', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450421', N'苍梧县', N'', N'', N'', N'', N'3', N'1', N''), (N'450422', N'4504', N'00,45,4504', N'藤县', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450422', N'藤县', N'', N'', N'', N'', N'3', N'1', N''), (N'450423', N'4504', N'00,45,4504', N'蒙山县', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450423', N'蒙山县', N'', N'', N'', N'', N'3', N'1', N''), (N'450481', N'4504', N'00,45,4504', N'岑溪市', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450481', N'岑溪市', N'', N'', N'', N'', N'3', N'1', N''), (N'4505', N'45', N'00,45', N'北海市', N'45', N'广西壮族自治区', N'4505', N'北海市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450502', N'4505', N'00,45,4505', N'海城区', N'45', N'广西壮族自治区', N'4505', N'北海市', N'450502', N'海城区', N'', N'', N'', N'', N'3', N'1', N''), (N'450503', N'4505', N'00,45,4505', N'银海区', N'45', N'广西壮族自治区', N'4505', N'北海市', N'450503', N'银海区', N'', N'', N'', N'', N'3', N'1', N''), (N'450512', N'4505', N'00,45,4505', N'铁山港区', N'45', N'广西壮族自治区', N'4505', N'北海市', N'450512', N'铁山港区', N'', N'', N'', N'', N'3', N'1', N''), (N'450521', N'4505', N'00,45,4505', N'合浦县', N'45', N'广西壮族自治区', N'4505', N'北海市', N'450521', N'合浦县', N'', N'', N'', N'', N'3', N'1', N''), (N'4506', N'45', N'00,45', N'防城港市', N'45', N'广西壮族自治区', N'4506', N'防城港市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450602', N'4506', N'00,45,4506', N'港口区', N'45', N'广西壮族自治区', N'4506', N'防城港市', N'450602', N'港口区', N'', N'', N'', N'', N'3', N'1', N''), (N'450603', N'4506', N'00,45,4506', N'防城区', N'45', N'广西壮族自治区', N'4506', N'防城港市', N'450603', N'防城区', N'', N'', N'', N'', N'3', N'1', N''), (N'450621', N'4506', N'00,45,4506', N'上思县', N'45', N'广西壮族自治区', N'4506', N'防城港市', N'450621', N'上思县', N'', N'', N'', N'', N'3', N'1', N''), (N'450681', N'4506', N'00,45,4506', N'东兴市', N'45', N'广西壮族自治区', N'4506', N'防城港市', N'450681', N'东兴市', N'', N'', N'', N'', N'3', N'1', N''), (N'4507', N'45', N'00,45', N'钦州市', N'45', N'广西壮族自治区', N'4507', N'钦州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450702', N'4507', N'00,45,4507', N'钦南区', N'45', N'广西壮族自治区', N'4507', N'钦州市', N'450702', N'钦南区', N'', N'', N'', N'', N'3', N'1', N''), (N'450703', N'4507', N'00,45,4507', N'钦北区', N'45', N'广西壮族自治区', N'4507', N'钦州市', N'450703', N'钦北区', N'', N'', N'', N'', N'3', N'1', N''), (N'450721', N'4507', N'00,45,4507', N'灵山县', N'45', N'广西壮族自治区', N'4507', N'钦州市', N'450721', N'灵山县', N'', N'', N'', N'', N'3', N'1', N''), (N'450722', N'4507', N'00,45,4507', N'浦北县', N'45', N'广西壮族自治区', N'4507', N'钦州市', N'450722', N'浦北县', N'', N'', N'', N'', N'3', N'1', N''), (N'4508', N'45', N'00,45', N'贵港市', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450802', N'4508', N'00,45,4508', N'港北区', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'450802', N'港北区', N'', N'', N'', N'', N'3', N'1', N''), (N'450803', N'4508', N'00,45,4508', N'港南区', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'450803', N'港南区', N'', N'', N'', N'', N'3', N'1', N''), (N'450804', N'4508', N'00,45,4508', N'覃塘区', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'450804', N'覃塘区', N'', N'', N'', N'', N'3', N'1', N''), (N'450821', N'4508', N'00,45,4508', N'平南县', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'450821', N'平南县', N'', N'', N'', N'', N'3', N'1', N''), (N'450881', N'4508', N'00,45,4508', N'桂平市', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'450881', N'桂平市', N'', N'', N'', N'', N'3', N'1', N''), (N'4509', N'45', N'00,45', N'玉林市', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450902', N'4509', N'00,45,4509', N'玉州区', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450902', N'玉州区', N'', N'', N'', N'', N'3', N'1', N''), (N'450903', N'4509', N'00,45,4509', N'福绵区', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450903', N'福绵区', N'', N'', N'', N'', N'3', N'1', N''), (N'450921', N'4509', N'00,45,4509', N'容县', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450921', N'容县', N'', N'', N'', N'', N'3', N'1', N''), (N'450922', N'4509', N'00,45,4509', N'陆川县', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450922', N'陆川县', N'', N'', N'', N'', N'3', N'1', N''), (N'450923', N'4509', N'00,45,4509', N'博白县', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450923', N'博白县', N'', N'', N'', N'', N'3', N'1', N''), (N'450924', N'4509', N'00,45,4509', N'兴业县', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450924', N'兴业县', N'', N'', N'', N'', N'3', N'1', N''), (N'450981', N'4509', N'00,45,4509', N'北流市', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450981', N'北流市', N'', N'', N'', N'', N'3', N'1', N''), (N'4510', N'45', N'00,45', N'百色市', N'45', N'广西壮族自治区', N'4510', N'百色市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'451002', N'4510', N'00,45,4510', N'右江区', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451002', N'右江区', N'', N'', N'', N'', N'3', N'1', N''), (N'451003', N'4510', N'00,45,4510', N'田阳区', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451003', N'田阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'451022', N'4510', N'00,45,4510', N'田东县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451022', N'田东县', N'', N'', N'', N'', N'3', N'1', N''), (N'451024', N'4510', N'00,45,4510', N'德保县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451024', N'德保县', N'', N'', N'', N'', N'3', N'1', N''), (N'451026', N'4510', N'00,45,4510', N'那坡县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451026', N'那坡县', N'', N'', N'', N'', N'3', N'1', N''), (N'451027', N'4510', N'00,45,4510', N'凌云县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451027', N'凌云县', N'', N'', N'', N'', N'3', N'1', N''), (N'451028', N'4510', N'00,45,4510', N'乐业县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451028', N'乐业县', N'', N'', N'', N'', N'3', N'1', N''), (N'451029', N'4510', N'00,45,4510', N'田林县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451029', N'田林县', N'', N'', N'', N'', N'3', N'1', N''), (N'451030', N'4510', N'00,45,4510', N'西林县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451030', N'西林县', N'', N'', N'', N'', N'3', N'1', N''), (N'451031', N'4510', N'00,45,4510', N'隆林各族自治县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451031', N'隆林各族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451081', N'4510', N'00,45,4510', N'靖西市', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451081', N'靖西市', N'', N'', N'', N'', N'3', N'1', N''), (N'451082', N'4510', N'00,45,4510', N'平果市', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451082', N'平果市', N'', N'', N'', N'', N'3', N'1', N''), (N'4511', N'45', N'00,45', N'贺州市', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'451102', N'4511', N'00,45,4511', N'八步区', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'451102', N'八步区', N'', N'', N'', N'', N'3', N'1', N''), (N'451103', N'4511', N'00,45,4511', N'平桂区', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'451103', N'平桂区', N'', N'', N'', N'', N'3', N'1', N''), (N'451121', N'4511', N'00,45,4511', N'昭平县', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'451121', N'昭平县', N'', N'', N'', N'', N'3', N'1', N''), (N'451122', N'4511', N'00,45,4511', N'钟山县', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'451122', N'钟山县', N'', N'', N'', N'', N'3', N'1', N''), (N'451123', N'4511', N'00,45,4511', N'富川瑶族自治县', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'451123', N'富川瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'4512', N'45', N'00,45', N'河池市', N'45', N'广西壮族自治区', N'4512', N'河池市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'451202', N'4512', N'00,45,4512', N'金城江区', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451202', N'金城江区', N'', N'', N'', N'', N'3', N'1', N''), (N'451203', N'4512', N'00,45,4512', N'宜州区', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451203', N'宜州区', N'', N'', N'', N'', N'3', N'1', N''), (N'451221', N'4512', N'00,45,4512', N'南丹县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451221', N'南丹县', N'', N'', N'', N'', N'3', N'1', N''), (N'451222', N'4512', N'00,45,4512', N'天峨县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451222', N'天峨县', N'', N'', N'', N'', N'3', N'1', N''), (N'451223', N'4512', N'00,45,4512', N'凤山县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451223', N'凤山县', N'', N'', N'', N'', N'3', N'1', N''), (N'451224', N'4512', N'00,45,4512', N'东兰县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451224', N'东兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'451225', N'4512', N'00,45,4512', N'罗城仫佬族自治县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451225', N'罗城仫佬族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451226', N'4512', N'00,45,4512', N'环江毛南族自治县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451226', N'环江毛南族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451227', N'4512', N'00,45,4512', N'巴马瑶族自治县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451227', N'巴马瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451228', N'4512', N'00,45,4512', N'都安瑶族自治县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451228', N'都安瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451229', N'4512', N'00,45,4512', N'大化瑶族自治县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451229', N'大化瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'4513', N'45', N'00,45', N'来宾市', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'451302', N'4513', N'00,45,4513', N'兴宾区', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451302', N'兴宾区', N'', N'', N'', N'', N'3', N'1', N''), (N'451321', N'4513', N'00,45,4513', N'忻城县', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451321', N'忻城县', N'', N'', N'', N'', N'3', N'1', N''), (N'451322', N'4513', N'00,45,4513', N'象州县', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451322', N'象州县', N'', N'', N'', N'', N'3', N'1', N''), (N'451323', N'4513', N'00,45,4513', N'武宣县', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451323', N'武宣县', N'', N'', N'', N'', N'3', N'1', N''), (N'451324', N'4513', N'00,45,4513', N'金秀瑶族自治县', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451324', N'金秀瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451381', N'4513', N'00,45,4513', N'合山市', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451381', N'合山市', N'', N'', N'', N'', N'3', N'1', N''), (N'4514', N'45', N'00,45', N'崇左市', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'451402', N'4514', N'00,45,4514', N'江州区', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451402', N'江州区', N'', N'', N'', N'', N'3', N'1', N''), (N'451421', N'4514', N'00,45,4514', N'扶绥县', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451421', N'扶绥县', N'', N'', N'', N'', N'3', N'1', N''), (N'451422', N'4514', N'00,45,4514', N'宁明县', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451422', N'宁明县', N'', N'', N'', N'', N'3', N'1', N''), (N'451423', N'4514', N'00,45,4514', N'龙州县', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451423', N'龙州县', N'', N'', N'', N'', N'3', N'1', N''), (N'451424', N'4514', N'00,45,4514', N'大新县', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451424', N'大新县', N'', N'', N'', N'', N'3', N'1', N''), (N'451425', N'4514', N'00,45,4514', N'天等县', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451425', N'天等县', N'', N'', N'', N'', N'3', N'1', N''), (N'451481', N'4514', N'00,45,4514', N'凭祥市', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451481', N'凭祥市', N'', N'', N'', N'', N'3', N'1', N''), (N'46', N'00', N'00', N'海南省', N'46', N'海南省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4601', N'46', N'00,46', N'海口市', N'46', N'海南省', N'4601', N'海口市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'460105', N'4601', N'00,46,4601', N'秀英区', N'46', N'海南省', N'4601', N'海口市', N'460105', N'秀英区', N'', N'', N'', N'', N'3', N'1', N''), (N'460106', N'4601', N'00,46,4601', N'龙华区', N'46', N'海南省', N'4601', N'海口市', N'460106', N'龙华区', N'', N'', N'', N'', N'3', N'1', N''), (N'460107', N'4601', N'00,46,4601', N'琼山区', N'46', N'海南省', N'4601', N'海口市', N'460107', N'琼山区', N'', N'', N'', N'', N'3', N'1', N''), (N'460108', N'4601', N'00,46,4601', N'美兰区', N'46', N'海南省', N'4601', N'海口市', N'460108', N'美兰区', N'', N'', N'', N'', N'3', N'1', N''), (N'4602', N'46', N'00,46', N'三亚市', N'46', N'海南省', N'4602', N'三亚市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'460202', N'4602', N'00,46,4602', N'海棠区', N'46', N'海南省', N'4602', N'三亚市', N'460202', N'海棠区', N'', N'', N'', N'', N'3', N'1', N''), (N'460203', N'4602', N'00,46,4602', N'吉阳区', N'46', N'海南省', N'4602', N'三亚市', N'460203', N'吉阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'460204', N'4602', N'00,46,4602', N'天涯区', N'46', N'海南省', N'4602', N'三亚市', N'460204', N'天涯区', N'', N'', N'', N'', N'3', N'1', N''), (N'460205', N'4602', N'00,46,4602', N'崖州区', N'46', N'海南省', N'4602', N'三亚市', N'460205', N'崖州区', N'', N'', N'', N'', N'3', N'1', N''), (N'4603', N'46', N'00,46', N'三沙市', N'46', N'海南省', N'4603', N'三沙市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'460300', N'4603', N'00,46,4603', N'三沙市', N'46', N'海南省', N'4603', N'三沙市', N'460300', N'三沙市', N'', N'', N'', N'', N'3', N'1', N''), (N'4604', N'46', N'00,46', N'儋州市', N'46', N'海南省', N'4604', N'儋州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'460400', N'4604', N'00,46,4604', N'儋州市', N'46', N'海南省', N'4604', N'儋州市', N'460400', N'儋州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4690', N'46', N'00,46', N'省直辖县级行政区', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'469001', N'4690', N'00,46,4690', N'五指山市', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469001', N'五指山市', N'', N'', N'', N'', N'3', N'1', N''), (N'469002', N'4690', N'00,46,4690', N'琼海市', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469002', N'琼海市', N'', N'', N'', N'', N'3', N'1', N''), (N'469005', N'4690', N'00,46,4690', N'文昌市', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469005', N'文昌市', N'', N'', N'', N'', N'3', N'1', N''), (N'469006', N'4690', N'00,46,4690', N'万宁市', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469006', N'万宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'469007', N'4690', N'00,46,4690', N'东方市', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469007', N'东方市', N'', N'', N'', N'', N'3', N'1', N''), (N'469021', N'4690', N'00,46,4690', N'定安县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469021', N'定安县', N'', N'', N'', N'', N'3', N'1', N''), (N'469022', N'4690', N'00,46,4690', N'屯昌县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469022', N'屯昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'469023', N'4690', N'00,46,4690', N'澄迈县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469023', N'澄迈县', N'', N'', N'', N'', N'3', N'1', N''), (N'469024', N'4690', N'00,46,4690', N'临高县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469024', N'临高县', N'', N'', N'', N'', N'3', N'1', N''), (N'469025', N'4690', N'00,46,4690', N'白沙黎族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469025', N'白沙黎族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'469026', N'4690', N'00,46,4690', N'昌江黎族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469026', N'昌江黎族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'469027', N'4690', N'00,46,4690', N'乐东黎族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469027', N'乐东黎族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'469028', N'4690', N'00,46,4690', N'陵水黎族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469028', N'陵水黎族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'469029', N'4690', N'00,46,4690', N'保亭黎族苗族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469029', N'保亭黎族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'469030', N'4690', N'00,46,4690', N'琼中黎族苗族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469030', N'琼中黎族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'50', N'00', N'00', N'重庆市', N'50', N'重庆市', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'5001', N'50', N'00,50', N'重庆市', N'50', N'重庆市', N'5001', N'重庆市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'500101', N'5001', N'00,50,5001', N'万州区', N'50', N'重庆市', N'5001', N'重庆市', N'500101', N'万州区', N'', N'', N'', N'', N'3', N'1', N''), (N'500102', N'5001', N'00,50,5001', N'涪陵区', N'50', N'重庆市', N'5001', N'重庆市', N'500102', N'涪陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'500103', N'5001', N'00,50,5001', N'渝中区', N'50', N'重庆市', N'5001', N'重庆市', N'500103', N'渝中区', N'', N'', N'', N'', N'3', N'1', N''), (N'500104', N'5001', N'00,50,5001', N'大渡口区', N'50', N'重庆市', N'5001', N'重庆市', N'500104', N'大渡口区', N'', N'', N'', N'', N'3', N'1', N''), (N'500105', N'5001', N'00,50,5001', N'江北区', N'50', N'重庆市', N'5001', N'重庆市', N'500105', N'江北区', N'', N'', N'', N'', N'3', N'1', N''), (N'500106', N'5001', N'00,50,5001', N'沙坪坝区', N'50', N'重庆市', N'5001', N'重庆市', N'500106', N'沙坪坝区', N'', N'', N'', N'', N'3', N'1', N''), (N'500107', N'5001', N'00,50,5001', N'九龙坡区', N'50', N'重庆市', N'5001', N'重庆市', N'500107', N'九龙坡区', N'', N'', N'', N'', N'3', N'1', N''), (N'500108', N'5001', N'00,50,5001', N'南岸区', N'50', N'重庆市', N'5001', N'重庆市', N'500108', N'南岸区', N'', N'', N'', N'', N'3', N'1', N''), (N'500109', N'5001', N'00,50,5001', N'北碚区', N'50', N'重庆市', N'5001', N'重庆市', N'500109', N'北碚区', N'', N'', N'', N'', N'3', N'1', N''), (N'500110', N'5001', N'00,50,5001', N'綦江区', N'50', N'重庆市', N'5001', N'重庆市', N'500110', N'綦江区', N'', N'', N'', N'', N'3', N'1', N''), (N'500111', N'5001', N'00,50,5001', N'大足区', N'50', N'重庆市', N'5001', N'重庆市', N'500111', N'大足区', N'', N'', N'', N'', N'3', N'1', N''), (N'500112', N'5001', N'00,50,5001', N'渝北区', N'50', N'重庆市', N'5001', N'重庆市', N'500112', N'渝北区', N'', N'', N'', N'', N'3', N'1', N''), (N'500113', N'5001', N'00,50,5001', N'巴南区', N'50', N'重庆市', N'5001', N'重庆市', N'500113', N'巴南区', N'', N'', N'', N'', N'3', N'1', N''), (N'500114', N'5001', N'00,50,5001', N'黔江区', N'50', N'重庆市', N'5001', N'重庆市', N'500114', N'黔江区', N'', N'', N'', N'', N'3', N'1', N''), (N'500115', N'5001', N'00,50,5001', N'长寿区', N'50', N'重庆市', N'5001', N'重庆市', N'500115', N'长寿区', N'', N'', N'', N'', N'3', N'1', N''), (N'500116', N'5001', N'00,50,5001', N'江津区', N'50', N'重庆市', N'5001', N'重庆市', N'500116', N'江津区', N'', N'', N'', N'', N'3', N'1', N''), (N'500117', N'5001', N'00,50,5001', N'合川区', N'50', N'重庆市', N'5001', N'重庆市', N'500117', N'合川区', N'', N'', N'', N'', N'3', N'1', N''), (N'500118', N'5001', N'00,50,5001', N'永川区', N'50', N'重庆市', N'5001', N'重庆市', N'500118', N'永川区', N'', N'', N'', N'', N'3', N'1', N''), (N'500119', N'5001', N'00,50,5001', N'南川区', N'50', N'重庆市', N'5001', N'重庆市', N'500119', N'南川区', N'', N'', N'', N'', N'3', N'1', N''), (N'500120', N'5001', N'00,50,5001', N'璧山区', N'50', N'重庆市', N'5001', N'重庆市', N'500120', N'璧山区', N'', N'', N'', N'', N'3', N'1', N''), (N'500151', N'5001', N'00,50,5001', N'铜梁区', N'50', N'重庆市', N'5001', N'重庆市', N'500151', N'铜梁区', N'', N'', N'', N'', N'3', N'1', N''), (N'500152', N'5001', N'00,50,5001', N'潼南区', N'50', N'重庆市', N'5001', N'重庆市', N'500152', N'潼南区', N'', N'', N'', N'', N'3', N'1', N''), (N'500153', N'5001', N'00,50,5001', N'荣昌区', N'50', N'重庆市', N'5001', N'重庆市', N'500153', N'荣昌区', N'', N'', N'', N'', N'3', N'1', N''), (N'500154', N'5001', N'00,50,5001', N'开州区', N'50', N'重庆市', N'5001', N'重庆市', N'500154', N'开州区', N'', N'', N'', N'', N'3', N'1', N''), (N'500155', N'5001', N'00,50,5001', N'梁平区', N'50', N'重庆市', N'5001', N'重庆市', N'500155', N'梁平区', N'', N'', N'', N'', N'3', N'1', N''), (N'500156', N'5001', N'00,50,5001', N'武隆区', N'50', N'重庆市', N'5001', N'重庆市', N'500156', N'武隆区', N'', N'', N'', N'', N'3', N'1', N''), (N'5002', N'50', N'00,50', N'重庆市', N'50', N'重庆市', N'5002', N'重庆市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'500229', N'5002', N'00,50,5002', N'城口县', N'50', N'重庆市', N'5002', N'重庆市', N'500229', N'城口县', N'', N'', N'', N'', N'3', N'1', N''), (N'500230', N'5002', N'00,50,5002', N'丰都县', N'50', N'重庆市', N'5002', N'重庆市', N'500230', N'丰都县', N'', N'', N'', N'', N'3', N'1', N''), (N'500231', N'5002', N'00,50,5002', N'垫江县', N'50', N'重庆市', N'5002', N'重庆市', N'500231', N'垫江县', N'', N'', N'', N'', N'3', N'1', N''), (N'500233', N'5002', N'00,50,5002', N'忠县', N'50', N'重庆市', N'5002', N'重庆市', N'500233', N'忠县', N'', N'', N'', N'', N'3', N'1', N''), (N'500235', N'5002', N'00,50,5002', N'云阳县', N'50', N'重庆市', N'5002', N'重庆市', N'500235', N'云阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'500236', N'5002', N'00,50,5002', N'奉节县', N'50', N'重庆市', N'5002', N'重庆市', N'500236', N'奉节县', N'', N'', N'', N'', N'3', N'1', N''), (N'500237', N'5002', N'00,50,5002', N'巫山县', N'50', N'重庆市', N'5002', N'重庆市', N'500237', N'巫山县', N'', N'', N'', N'', N'3', N'1', N''), (N'500238', N'5002', N'00,50,5002', N'巫溪县', N'50', N'重庆市', N'5002', N'重庆市', N'500238', N'巫溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'500240', N'5002', N'00,50,5002', N'石柱土家族自治县', N'50', N'重庆市', N'5002', N'重庆市', N'500240', N'石柱土家族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'500241', N'5002', N'00,50,5002', N'秀山土家族苗族自治县', N'50', N'重庆市', N'5002', N'重庆市', N'500241', N'秀山土家族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'500242', N'5002', N'00,50,5002', N'酉阳土家族苗族自治县', N'50', N'重庆市', N'5002', N'重庆市', N'500242', N'酉阳土家族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'500243', N'5002', N'00,50,5002', N'彭水苗族土家族自治县', N'50', N'重庆市', N'5002', N'重庆市', N'500243', N'彭水苗族土家族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'51', N'00', N'00', N'四川省', N'51', N'四川省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'5101', N'51', N'00,51', N'成都市', N'51', N'四川省', N'5101', N'成都市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510104', N'5101', N'00,51,5101', N'锦江区', N'51', N'四川省', N'5101', N'成都市', N'510104', N'锦江区', N'', N'', N'', N'', N'3', N'1', N''), (N'510105', N'5101', N'00,51,5101', N'青羊区', N'51', N'四川省', N'5101', N'成都市', N'510105', N'青羊区', N'', N'', N'', N'', N'3', N'1', N''), (N'510106', N'5101', N'00,51,5101', N'金牛区', N'51', N'四川省', N'5101', N'成都市', N'510106', N'金牛区', N'', N'', N'', N'', N'3', N'1', N''), (N'510107', N'5101', N'00,51,5101', N'武侯区', N'51', N'四川省', N'5101', N'成都市', N'510107', N'武侯区', N'', N'', N'', N'', N'3', N'1', N''), (N'510108', N'5101', N'00,51,5101', N'成华区', N'51', N'四川省', N'5101', N'成都市', N'510108', N'成华区', N'', N'', N'', N'', N'3', N'1', N''), (N'510112', N'5101', N'00,51,5101', N'龙泉驿区', N'51', N'四川省', N'5101', N'成都市', N'510112', N'龙泉驿区', N'', N'', N'', N'', N'3', N'1', N''), (N'510113', N'5101', N'00,51,5101', N'青白江区', N'51', N'四川省', N'5101', N'成都市', N'510113', N'青白江区', N'', N'', N'', N'', N'3', N'1', N''), (N'510114', N'5101', N'00,51,5101', N'新都区', N'51', N'四川省', N'5101', N'成都市', N'510114', N'新都区', N'', N'', N'', N'', N'3', N'1', N''), (N'510115', N'5101', N'00,51,5101', N'温江区', N'51', N'四川省', N'5101', N'成都市', N'510115', N'温江区', N'', N'', N'', N'', N'3', N'1', N''), (N'510116', N'5101', N'00,51,5101', N'双流区', N'51', N'四川省', N'5101', N'成都市', N'510116', N'双流区', N'', N'', N'', N'', N'3', N'1', N''), (N'510117', N'5101', N'00,51,5101', N'郫都区', N'51', N'四川省', N'5101', N'成都市', N'510117', N'郫都区', N'', N'', N'', N'', N'3', N'1', N''), (N'510121', N'5101', N'00,51,5101', N'金堂县', N'51', N'四川省', N'5101', N'成都市', N'510121', N'金堂县', N'', N'', N'', N'', N'3', N'1', N''), (N'510129', N'5101', N'00,51,5101', N'大邑县', N'51', N'四川省', N'5101', N'成都市', N'510129', N'大邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'510131', N'5101', N'00,51,5101', N'蒲江县', N'51', N'四川省', N'5101', N'成都市', N'510131', N'蒲江县', N'', N'', N'', N'', N'3', N'1', N''), (N'510132', N'5101', N'00,51,5101', N'新津县', N'51', N'四川省', N'5101', N'成都市', N'510132', N'新津县', N'', N'', N'', N'', N'3', N'1', N''), (N'510181', N'5101', N'00,51,5101', N'都江堰市', N'51', N'四川省', N'5101', N'成都市', N'510181', N'都江堰市', N'', N'', N'', N'', N'3', N'1', N''), (N'510182', N'5101', N'00,51,5101', N'彭州市', N'51', N'四川省', N'5101', N'成都市', N'510182', N'彭州市', N'', N'', N'', N'', N'3', N'1', N''), (N'510183', N'5101', N'00,51,5101', N'邛崃市', N'51', N'四川省', N'5101', N'成都市', N'510183', N'邛崃市', N'', N'', N'', N'', N'3', N'1', N''), (N'510184', N'5101', N'00,51,5101', N'崇州市', N'51', N'四川省', N'5101', N'成都市', N'510184', N'崇州市', N'', N'', N'', N'', N'3', N'1', N''), (N'510185', N'5101', N'00,51,5101', N'简阳市', N'51', N'四川省', N'5101', N'成都市', N'510185', N'简阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'5103', N'51', N'00,51', N'自贡市', N'51', N'四川省', N'5103', N'自贡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510302', N'5103', N'00,51,5103', N'自流井区', N'51', N'四川省', N'5103', N'自贡市', N'510302', N'自流井区', N'', N'', N'', N'', N'3', N'1', N''), (N'510303', N'5103', N'00,51,5103', N'贡井区', N'51', N'四川省', N'5103', N'自贡市', N'510303', N'贡井区', N'', N'', N'', N'', N'3', N'1', N''), (N'510304', N'5103', N'00,51,5103', N'大安区', N'51', N'四川省', N'5103', N'自贡市', N'510304', N'大安区', N'', N'', N'', N'', N'3', N'1', N''), (N'510311', N'5103', N'00,51,5103', N'沿滩区', N'51', N'四川省', N'5103', N'自贡市', N'510311', N'沿滩区', N'', N'', N'', N'', N'3', N'1', N''), (N'510321', N'5103', N'00,51,5103', N'荣县', N'51', N'四川省', N'5103', N'自贡市', N'510321', N'荣县', N'', N'', N'', N'', N'3', N'1', N''), (N'510322', N'5103', N'00,51,5103', N'富顺县', N'51', N'四川省', N'5103', N'自贡市', N'510322', N'富顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'5104', N'51', N'00,51', N'攀枝花市', N'51', N'四川省', N'5104', N'攀枝花市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510402', N'5104', N'00,51,5104', N'东区', N'51', N'四川省', N'5104', N'攀枝花市', N'510402', N'东区', N'', N'', N'', N'', N'3', N'1', N''), (N'510403', N'5104', N'00,51,5104', N'西区', N'51', N'四川省', N'5104', N'攀枝花市', N'510403', N'西区', N'', N'', N'', N'', N'3', N'1', N''), (N'510411', N'5104', N'00,51,5104', N'仁和区', N'51', N'四川省', N'5104', N'攀枝花市', N'510411', N'仁和区', N'', N'', N'', N'', N'3', N'1', N''), (N'510421', N'5104', N'00,51,5104', N'米易县', N'51', N'四川省', N'5104', N'攀枝花市', N'510421', N'米易县', N'', N'', N'', N'', N'3', N'1', N''), (N'510422', N'5104', N'00,51,5104', N'盐边县', N'51', N'四川省', N'5104', N'攀枝花市', N'510422', N'盐边县', N'', N'', N'', N'', N'3', N'1', N''), (N'5105', N'51', N'00,51', N'泸州市', N'51', N'四川省', N'5105', N'泸州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510502', N'5105', N'00,51,5105', N'江阳区', N'51', N'四川省', N'5105', N'泸州市', N'510502', N'江阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'510503', N'5105', N'00,51,5105', N'纳溪区', N'51', N'四川省', N'5105', N'泸州市', N'510503', N'纳溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'510504', N'5105', N'00,51,5105', N'龙马潭区', N'51', N'四川省', N'5105', N'泸州市', N'510504', N'龙马潭区', N'', N'', N'', N'', N'3', N'1', N''), (N'510521', N'5105', N'00,51,5105', N'泸县', N'51', N'四川省', N'5105', N'泸州市', N'510521', N'泸县', N'', N'', N'', N'', N'3', N'1', N''), (N'510522', N'5105', N'00,51,5105', N'合江县', N'51', N'四川省', N'5105', N'泸州市', N'510522', N'合江县', N'', N'', N'', N'', N'3', N'1', N''), (N'510524', N'5105', N'00,51,5105', N'叙永县', N'51', N'四川省', N'5105', N'泸州市', N'510524', N'叙永县', N'', N'', N'', N'', N'3', N'1', N''), (N'510525', N'5105', N'00,51,5105', N'古蔺县', N'51', N'四川省', N'5105', N'泸州市', N'510525', N'古蔺县', N'', N'', N'', N'', N'3', N'1', N''), (N'5106', N'51', N'00,51', N'德阳市', N'51', N'四川省', N'5106', N'德阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510603', N'5106', N'00,51,5106', N'旌阳区', N'51', N'四川省', N'5106', N'德阳市', N'510603', N'旌阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'510604', N'5106', N'00,51,5106', N'罗江区', N'51', N'四川省', N'5106', N'德阳市', N'510604', N'罗江区', N'', N'', N'', N'', N'3', N'1', N''), (N'510623', N'5106', N'00,51,5106', N'中江县', N'51', N'四川省', N'5106', N'德阳市', N'510623', N'中江县', N'', N'', N'', N'', N'3', N'1', N''), (N'510681', N'5106', N'00,51,5106', N'广汉市', N'51', N'四川省', N'5106', N'德阳市', N'510681', N'广汉市', N'', N'', N'', N'', N'3', N'1', N''), (N'510682', N'5106', N'00,51,5106', N'什邡市', N'51', N'四川省', N'5106', N'德阳市', N'510682', N'什邡市', N'', N'', N'', N'', N'3', N'1', N''), (N'510683', N'5106', N'00,51,5106', N'绵竹市', N'51', N'四川省', N'5106', N'德阳市', N'510683', N'绵竹市', N'', N'', N'', N'', N'3', N'1', N''), (N'5107', N'51', N'00,51', N'绵阳市', N'51', N'四川省', N'5107', N'绵阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510703', N'5107', N'00,51,5107', N'涪城区', N'51', N'四川省', N'5107', N'绵阳市', N'510703', N'涪城区', N'', N'', N'', N'', N'3', N'1', N''), (N'510704', N'5107', N'00,51,5107', N'游仙区', N'51', N'四川省', N'5107', N'绵阳市', N'510704', N'游仙区', N'', N'', N'', N'', N'3', N'1', N''), (N'510705', N'5107', N'00,51,5107', N'安州区', N'51', N'四川省', N'5107', N'绵阳市', N'510705', N'安州区', N'', N'', N'', N'', N'3', N'1', N''), (N'510722', N'5107', N'00,51,5107', N'三台县', N'51', N'四川省', N'5107', N'绵阳市', N'510722', N'三台县', N'', N'', N'', N'', N'3', N'1', N''), (N'510723', N'5107', N'00,51,5107', N'盐亭县', N'51', N'四川省', N'5107', N'绵阳市', N'510723', N'盐亭县', N'', N'', N'', N'', N'3', N'1', N''), (N'510725', N'5107', N'00,51,5107', N'梓潼县', N'51', N'四川省', N'5107', N'绵阳市', N'510725', N'梓潼县', N'', N'', N'', N'', N'3', N'1', N''), (N'510726', N'5107', N'00,51,5107', N'北川羌族自治县', N'51', N'四川省', N'5107', N'绵阳市', N'510726', N'北川羌族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'510727', N'5107', N'00,51,5107', N'平武县', N'51', N'四川省', N'5107', N'绵阳市', N'510727', N'平武县', N'', N'', N'', N'', N'3', N'1', N''), (N'510781', N'5107', N'00,51,5107', N'江油市', N'51', N'四川省', N'5107', N'绵阳市', N'510781', N'江油市', N'', N'', N'', N'', N'3', N'1', N''), (N'5108', N'51', N'00,51', N'广元市', N'51', N'四川省', N'5108', N'广元市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510802', N'5108', N'00,51,5108', N'利州区', N'51', N'四川省', N'5108', N'广元市', N'510802', N'利州区', N'', N'', N'', N'', N'3', N'1', N''), (N'510811', N'5108', N'00,51,5108', N'昭化区', N'51', N'四川省', N'5108', N'广元市', N'510811', N'昭化区', N'', N'', N'', N'', N'3', N'1', N''), (N'510812', N'5108', N'00,51,5108', N'朝天区', N'51', N'四川省', N'5108', N'广元市', N'510812', N'朝天区', N'', N'', N'', N'', N'3', N'1', N''), (N'510821', N'5108', N'00,51,5108', N'旺苍县', N'51', N'四川省', N'5108', N'广元市', N'510821', N'旺苍县', N'', N'', N'', N'', N'3', N'1', N''), (N'510822', N'5108', N'00,51,5108', N'青川县', N'51', N'四川省', N'5108', N'广元市', N'510822', N'青川县', N'', N'', N'', N'', N'3', N'1', N''), (N'510823', N'5108', N'00,51,5108', N'剑阁县', N'51', N'四川省', N'5108', N'广元市', N'510823', N'剑阁县', N'', N'', N'', N'', N'3', N'1', N''), (N'510824', N'5108', N'00,51,5108', N'苍溪县', N'51', N'四川省', N'5108', N'广元市', N'510824', N'苍溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'5109', N'51', N'00,51', N'遂宁市', N'51', N'四川省', N'5109', N'遂宁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510903', N'5109', N'00,51,5109', N'船山区', N'51', N'四川省', N'5109', N'遂宁市', N'510903', N'船山区', N'', N'', N'', N'', N'3', N'1', N''), (N'510904', N'5109', N'00,51,5109', N'安居区', N'51', N'四川省', N'5109', N'遂宁市', N'510904', N'安居区', N'', N'', N'', N'', N'3', N'1', N''), (N'510921', N'5109', N'00,51,5109', N'蓬溪县', N'51', N'四川省', N'5109', N'遂宁市', N'510921', N'蓬溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'510923', N'5109', N'00,51,5109', N'大英县', N'51', N'四川省', N'5109', N'遂宁市', N'510923', N'大英县', N'', N'', N'', N'', N'3', N'1', N''), (N'510981', N'5109', N'00,51,5109', N'射洪市', N'51', N'四川省', N'5109', N'遂宁市', N'510981', N'射洪市', N'', N'', N'', N'', N'3', N'1', N''), (N'5110', N'51', N'00,51', N'内江市', N'51', N'四川省', N'5110', N'内江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511002', N'5110', N'00,51,5110', N'市中区', N'51', N'四川省', N'5110', N'内江市', N'511002', N'市中区', N'', N'', N'', N'', N'3', N'1', N''), (N'511011', N'5110', N'00,51,5110', N'东兴区', N'51', N'四川省', N'5110', N'内江市', N'511011', N'东兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'511024', N'5110', N'00,51,5110', N'威远县', N'51', N'四川省', N'5110', N'内江市', N'511024', N'威远县', N'', N'', N'', N'', N'3', N'1', N''), (N'511025', N'5110', N'00,51,5110', N'资中县', N'51', N'四川省', N'5110', N'内江市', N'511025', N'资中县', N'', N'', N'', N'', N'3', N'1', N''), (N'511083', N'5110', N'00,51,5110', N'隆昌市', N'51', N'四川省', N'5110', N'内江市', N'511083', N'隆昌市', N'', N'', N'', N'', N'3', N'1', N''), (N'5111', N'51', N'00,51', N'乐山市', N'51', N'四川省', N'5111', N'乐山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511102', N'5111', N'00,51,5111', N'市中区', N'51', N'四川省', N'5111', N'乐山市', N'511102', N'市中区', N'', N'', N'', N'', N'3', N'1', N''), (N'511111', N'5111', N'00,51,5111', N'沙湾区', N'51', N'四川省', N'5111', N'乐山市', N'511111', N'沙湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'511112', N'5111', N'00,51,5111', N'五通桥区', N'51', N'四川省', N'5111', N'乐山市', N'511112', N'五通桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'511113', N'5111', N'00,51,5111', N'金口河区', N'51', N'四川省', N'5111', N'乐山市', N'511113', N'金口河区', N'', N'', N'', N'', N'3', N'1', N''), (N'511123', N'5111', N'00,51,5111', N'犍为县', N'51', N'四川省', N'5111', N'乐山市', N'511123', N'犍为县', N'', N'', N'', N'', N'3', N'1', N''), (N'511124', N'5111', N'00,51,5111', N'井研县', N'51', N'四川省', N'5111', N'乐山市', N'511124', N'井研县', N'', N'', N'', N'', N'3', N'1', N''), (N'511126', N'5111', N'00,51,5111', N'夹江县', N'51', N'四川省', N'5111', N'乐山市', N'511126', N'夹江县', N'', N'', N'', N'', N'3', N'1', N''), (N'511129', N'5111', N'00,51,5111', N'沐川县', N'51', N'四川省', N'5111', N'乐山市', N'511129', N'沐川县', N'', N'', N'', N'', N'3', N'1', N''), (N'511132', N'5111', N'00,51,5111', N'峨边彝族自治县', N'51', N'四川省', N'5111', N'乐山市', N'511132', N'峨边彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'511133', N'5111', N'00,51,5111', N'马边彝族自治县', N'51', N'四川省', N'5111', N'乐山市', N'511133', N'马边彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'511181', N'5111', N'00,51,5111', N'峨眉山市', N'51', N'四川省', N'5111', N'乐山市', N'511181', N'峨眉山市', N'', N'', N'', N'', N'3', N'1', N''), (N'5113', N'51', N'00,51', N'南充市', N'51', N'四川省', N'5113', N'南充市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511302', N'5113', N'00,51,5113', N'顺庆区', N'51', N'四川省', N'5113', N'南充市', N'511302', N'顺庆区', N'', N'', N'', N'', N'3', N'1', N''), (N'511303', N'5113', N'00,51,5113', N'高坪区', N'51', N'四川省', N'5113', N'南充市', N'511303', N'高坪区', N'', N'', N'', N'', N'3', N'1', N''), (N'511304', N'5113', N'00,51,5113', N'嘉陵区', N'51', N'四川省', N'5113', N'南充市', N'511304', N'嘉陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'511321', N'5113', N'00,51,5113', N'南部县', N'51', N'四川省', N'5113', N'南充市', N'511321', N'南部县', N'', N'', N'', N'', N'3', N'1', N''), (N'511322', N'5113', N'00,51,5113', N'营山县', N'51', N'四川省', N'5113', N'南充市', N'511322', N'营山县', N'', N'', N'', N'', N'3', N'1', N''), (N'511323', N'5113', N'00,51,5113', N'蓬安县', N'51', N'四川省', N'5113', N'南充市', N'511323', N'蓬安县', N'', N'', N'', N'', N'3', N'1', N''), (N'511324', N'5113', N'00,51,5113', N'仪陇县', N'51', N'四川省', N'5113', N'南充市', N'511324', N'仪陇县', N'', N'', N'', N'', N'3', N'1', N''), (N'511325', N'5113', N'00,51,5113', N'西充县', N'51', N'四川省', N'5113', N'南充市', N'511325', N'西充县', N'', N'', N'', N'', N'3', N'1', N''), (N'511381', N'5113', N'00,51,5113', N'阆中市', N'51', N'四川省', N'5113', N'南充市', N'511381', N'阆中市', N'', N'', N'', N'', N'3', N'1', N''), (N'5114', N'51', N'00,51', N'眉山市', N'51', N'四川省', N'5114', N'眉山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511402', N'5114', N'00,51,5114', N'东坡区', N'51', N'四川省', N'5114', N'眉山市', N'511402', N'东坡区', N'', N'', N'', N'', N'3', N'1', N''), (N'511403', N'5114', N'00,51,5114', N'彭山区', N'51', N'四川省', N'5114', N'眉山市', N'511403', N'彭山区', N'', N'', N'', N'', N'3', N'1', N''), (N'511421', N'5114', N'00,51,5114', N'仁寿县', N'51', N'四川省', N'5114', N'眉山市', N'511421', N'仁寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'511423', N'5114', N'00,51,5114', N'洪雅县', N'51', N'四川省', N'5114', N'眉山市', N'511423', N'洪雅县', N'', N'', N'', N'', N'3', N'1', N''), (N'511424', N'5114', N'00,51,5114', N'丹棱县', N'51', N'四川省', N'5114', N'眉山市', N'511424', N'丹棱县', N'', N'', N'', N'', N'3', N'1', N''), (N'511425', N'5114', N'00,51,5114', N'青神县', N'51', N'四川省', N'5114', N'眉山市', N'511425', N'青神县', N'', N'', N'', N'', N'3', N'1', N''), (N'5115', N'51', N'00,51', N'宜宾市', N'51', N'四川省', N'5115', N'宜宾市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511502', N'5115', N'00,51,5115', N'翠屏区', N'51', N'四川省', N'5115', N'宜宾市', N'511502', N'翠屏区', N'', N'', N'', N'', N'3', N'1', N''), (N'511503', N'5115', N'00,51,5115', N'南溪区', N'51', N'四川省', N'5115', N'宜宾市', N'511503', N'南溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'511504', N'5115', N'00,51,5115', N'叙州区', N'51', N'四川省', N'5115', N'宜宾市', N'511504', N'叙州区', N'', N'', N'', N'', N'3', N'1', N''), (N'511523', N'5115', N'00,51,5115', N'江安县', N'51', N'四川省', N'5115', N'宜宾市', N'511523', N'江安县', N'', N'', N'', N'', N'3', N'1', N''), (N'511524', N'5115', N'00,51,5115', N'长宁县', N'51', N'四川省', N'5115', N'宜宾市', N'511524', N'长宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'511525', N'5115', N'00,51,5115', N'高县', N'51', N'四川省', N'5115', N'宜宾市', N'511525', N'高县', N'', N'', N'', N'', N'3', N'1', N''), (N'511526', N'5115', N'00,51,5115', N'珙县', N'51', N'四川省', N'5115', N'宜宾市', N'511526', N'珙县', N'', N'', N'', N'', N'3', N'1', N''), (N'511527', N'5115', N'00,51,5115', N'筠连县', N'51', N'四川省', N'5115', N'宜宾市', N'511527', N'筠连县', N'', N'', N'', N'', N'3', N'1', N''), (N'511528', N'5115', N'00,51,5115', N'兴文县', N'51', N'四川省', N'5115', N'宜宾市', N'511528', N'兴文县', N'', N'', N'', N'', N'3', N'1', N''), (N'511529', N'5115', N'00,51,5115', N'屏山县', N'51', N'四川省', N'5115', N'宜宾市', N'511529', N'屏山县', N'', N'', N'', N'', N'3', N'1', N''), (N'5116', N'51', N'00,51', N'广安市', N'51', N'四川省', N'5116', N'广安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511602', N'5116', N'00,51,5116', N'广安区', N'51', N'四川省', N'5116', N'广安市', N'511602', N'广安区', N'', N'', N'', N'', N'3', N'1', N''), (N'511603', N'5116', N'00,51,5116', N'前锋区', N'51', N'四川省', N'5116', N'广安市', N'511603', N'前锋区', N'', N'', N'', N'', N'3', N'1', N''), (N'511621', N'5116', N'00,51,5116', N'岳池县', N'51', N'四川省', N'5116', N'广安市', N'511621', N'岳池县', N'', N'', N'', N'', N'3', N'1', N''), (N'511622', N'5116', N'00,51,5116', N'武胜县', N'51', N'四川省', N'5116', N'广安市', N'511622', N'武胜县', N'', N'', N'', N'', N'3', N'1', N''), (N'511623', N'5116', N'00,51,5116', N'邻水县', N'51', N'四川省', N'5116', N'广安市', N'511623', N'邻水县', N'', N'', N'', N'', N'3', N'1', N''), (N'511681', N'5116', N'00,51,5116', N'华蓥市', N'51', N'四川省', N'5116', N'广安市', N'511681', N'华蓥市', N'', N'', N'', N'', N'3', N'1', N''), (N'5117', N'51', N'00,51', N'达州市', N'51', N'四川省', N'5117', N'达州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511702', N'5117', N'00,51,5117', N'通川区', N'51', N'四川省', N'5117', N'达州市', N'511702', N'通川区', N'', N'', N'', N'', N'3', N'1', N''), (N'511703', N'5117', N'00,51,5117', N'达川区', N'51', N'四川省', N'5117', N'达州市', N'511703', N'达川区', N'', N'', N'', N'', N'3', N'1', N''), (N'511722', N'5117', N'00,51,5117', N'宣汉县', N'51', N'四川省', N'5117', N'达州市', N'511722', N'宣汉县', N'', N'', N'', N'', N'3', N'1', N''), (N'511723', N'5117', N'00,51,5117', N'开江县', N'51', N'四川省', N'5117', N'达州市', N'511723', N'开江县', N'', N'', N'', N'', N'3', N'1', N''), (N'511724', N'5117', N'00,51,5117', N'大竹县', N'51', N'四川省', N'5117', N'达州市', N'511724', N'大竹县', N'', N'', N'', N'', N'3', N'1', N''), (N'511725', N'5117', N'00,51,5117', N'渠县', N'51', N'四川省', N'5117', N'达州市', N'511725', N'渠县', N'', N'', N'', N'', N'3', N'1', N''), (N'511781', N'5117', N'00,51,5117', N'万源市', N'51', N'四川省', N'5117', N'达州市', N'511781', N'万源市', N'', N'', N'', N'', N'3', N'1', N''), (N'5118', N'51', N'00,51', N'雅安市', N'51', N'四川省', N'5118', N'雅安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511802', N'5118', N'00,51,5118', N'雨城区', N'51', N'四川省', N'5118', N'雅安市', N'511802', N'雨城区', N'', N'', N'', N'', N'3', N'1', N''), (N'511803', N'5118', N'00,51,5118', N'名山区', N'51', N'四川省', N'5118', N'雅安市', N'511803', N'名山区', N'', N'', N'', N'', N'3', N'1', N''), (N'511822', N'5118', N'00,51,5118', N'荥经县', N'51', N'四川省', N'5118', N'雅安市', N'511822', N'荥经县', N'', N'', N'', N'', N'3', N'1', N''), (N'511823', N'5118', N'00,51,5118', N'汉源县', N'51', N'四川省', N'5118', N'雅安市', N'511823', N'汉源县', N'', N'', N'', N'', N'3', N'1', N''), (N'511824', N'5118', N'00,51,5118', N'石棉县', N'51', N'四川省', N'5118', N'雅安市', N'511824', N'石棉县', N'', N'', N'', N'', N'3', N'1', N''), (N'511825', N'5118', N'00,51,5118', N'天全县', N'51', N'四川省', N'5118', N'雅安市', N'511825', N'天全县', N'', N'', N'', N'', N'3', N'1', N''), (N'511826', N'5118', N'00,51,5118', N'芦山县', N'51', N'四川省', N'5118', N'雅安市', N'511826', N'芦山县', N'', N'', N'', N'', N'3', N'1', N''), (N'511827', N'5118', N'00,51,5118', N'宝兴县', N'51', N'四川省', N'5118', N'雅安市', N'511827', N'宝兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'5119', N'51', N'00,51', N'巴中市', N'51', N'四川省', N'5119', N'巴中市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511902', N'5119', N'00,51,5119', N'巴州区', N'51', N'四川省', N'5119', N'巴中市', N'511902', N'巴州区', N'', N'', N'', N'', N'3', N'1', N''), (N'511903', N'5119', N'00,51,5119', N'恩阳区', N'51', N'四川省', N'5119', N'巴中市', N'511903', N'恩阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'511921', N'5119', N'00,51,5119', N'通江县', N'51', N'四川省', N'5119', N'巴中市', N'511921', N'通江县', N'', N'', N'', N'', N'3', N'1', N''), (N'511922', N'5119', N'00,51,5119', N'南江县', N'51', N'四川省', N'5119', N'巴中市', N'511922', N'南江县', N'', N'', N'', N'', N'3', N'1', N''), (N'511923', N'5119', N'00,51,5119', N'平昌县', N'51', N'四川省', N'5119', N'巴中市', N'511923', N'平昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'5120', N'51', N'00,51', N'资阳市', N'51', N'四川省', N'5120', N'资阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'512002', N'5120', N'00,51,5120', N'雁江区', N'51', N'四川省', N'5120', N'资阳市', N'512002', N'雁江区', N'', N'', N'', N'', N'3', N'1', N''), (N'512021', N'5120', N'00,51,5120', N'安岳县', N'51', N'四川省', N'5120', N'资阳市', N'512021', N'安岳县', N'', N'', N'', N'', N'3', N'1', N''), (N'512022', N'5120', N'00,51,5120', N'乐至县', N'51', N'四川省', N'5120', N'资阳市', N'512022', N'乐至县', N'', N'', N'', N'', N'3', N'1', N''), (N'5132', N'51', N'00,51', N'阿坝藏族羌族自治州', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'513201', N'5132', N'00,51,5132', N'马尔康市', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513201', N'马尔康市', N'', N'', N'', N'', N'3', N'1', N''), (N'513221', N'5132', N'00,51,5132', N'汶川县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513221', N'汶川县', N'', N'', N'', N'', N'3', N'1', N''), (N'513222', N'5132', N'00,51,5132', N'理县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513222', N'理县', N'', N'', N'', N'', N'3', N'1', N''), (N'513223', N'5132', N'00,51,5132', N'茂县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513223', N'茂县', N'', N'', N'', N'', N'3', N'1', N''), (N'513224', N'5132', N'00,51,5132', N'松潘县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513224', N'松潘县', N'', N'', N'', N'', N'3', N'1', N''), (N'513225', N'5132', N'00,51,5132', N'九寨沟县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513225', N'九寨沟县', N'', N'', N'', N'', N'3', N'1', N''), (N'513226', N'5132', N'00,51,5132', N'金川县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513226', N'金川县', N'', N'', N'', N'', N'3', N'1', N''), (N'513227', N'5132', N'00,51,5132', N'小金县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513227', N'小金县', N'', N'', N'', N'', N'3', N'1', N''), (N'513228', N'5132', N'00,51,5132', N'黑水县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513228', N'黑水县', N'', N'', N'', N'', N'3', N'1', N''), (N'513230', N'5132', N'00,51,5132', N'壤塘县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513230', N'壤塘县', N'', N'', N'', N'', N'3', N'1', N''), (N'513231', N'5132', N'00,51,5132', N'阿坝县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513231', N'阿坝县', N'', N'', N'', N'', N'3', N'1', N''), (N'513232', N'5132', N'00,51,5132', N'若尔盖县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513232', N'若尔盖县', N'', N'', N'', N'', N'3', N'1', N''), (N'513233', N'5132', N'00,51,5132', N'红原县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513233', N'红原县', N'', N'', N'', N'', N'3', N'1', N''), (N'5133', N'51', N'00,51', N'甘孜藏族自治州', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'513301', N'5133', N'00,51,5133', N'康定市', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513301', N'康定市', N'', N'', N'', N'', N'3', N'1', N''), (N'513322', N'5133', N'00,51,5133', N'泸定县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513322', N'泸定县', N'', N'', N'', N'', N'3', N'1', N''), (N'513323', N'5133', N'00,51,5133', N'丹巴县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513323', N'丹巴县', N'', N'', N'', N'', N'3', N'1', N''), (N'513324', N'5133', N'00,51,5133', N'九龙县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513324', N'九龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'513325', N'5133', N'00,51,5133', N'雅江县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513325', N'雅江县', N'', N'', N'', N'', N'3', N'1', N''), (N'513326', N'5133', N'00,51,5133', N'道孚县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513326', N'道孚县', N'', N'', N'', N'', N'3', N'1', N''), (N'513327', N'5133', N'00,51,5133', N'炉霍县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513327', N'炉霍县', N'', N'', N'', N'', N'3', N'1', N''), (N'513328', N'5133', N'00,51,5133', N'甘孜县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513328', N'甘孜县', N'', N'', N'', N'', N'3', N'1', N''), (N'513329', N'5133', N'00,51,5133', N'新龙县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513329', N'新龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'513330', N'5133', N'00,51,5133', N'德格县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513330', N'德格县', N'', N'', N'', N'', N'3', N'1', N''), (N'513331', N'5133', N'00,51,5133', N'白玉县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513331', N'白玉县', N'', N'', N'', N'', N'3', N'1', N''), (N'513332', N'5133', N'00,51,5133', N'石渠县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513332', N'石渠县', N'', N'', N'', N'', N'3', N'1', N''), (N'513333', N'5133', N'00,51,5133', N'色达县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513333', N'色达县', N'', N'', N'', N'', N'3', N'1', N''), (N'513334', N'5133', N'00,51,5133', N'理塘县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513334', N'理塘县', N'', N'', N'', N'', N'3', N'1', N''), (N'513335', N'5133', N'00,51,5133', N'巴塘县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513335', N'巴塘县', N'', N'', N'', N'', N'3', N'1', N''), (N'513336', N'5133', N'00,51,5133', N'乡城县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513336', N'乡城县', N'', N'', N'', N'', N'3', N'1', N''), (N'513337', N'5133', N'00,51,5133', N'稻城县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513337', N'稻城县', N'', N'', N'', N'', N'3', N'1', N''), (N'513338', N'5133', N'00,51,5133', N'得荣县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513338', N'得荣县', N'', N'', N'', N'', N'3', N'1', N''), (N'5134', N'51', N'00,51', N'凉山彝族自治州', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'513401', N'5134', N'00,51,5134', N'西昌市', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513401', N'西昌市', N'', N'', N'', N'', N'3', N'1', N''), (N'513422', N'5134', N'00,51,5134', N'木里藏族自治县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513422', N'木里藏族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'513423', N'5134', N'00,51,5134', N'盐源县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513423', N'盐源县', N'', N'', N'', N'', N'3', N'1', N''), (N'513424', N'5134', N'00,51,5134', N'德昌县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513424', N'德昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'513425', N'5134', N'00,51,5134', N'会理县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513425', N'会理县', N'', N'', N'', N'', N'3', N'1', N''), (N'513426', N'5134', N'00,51,5134', N'会东县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513426', N'会东县', N'', N'', N'', N'', N'3', N'1', N''), (N'513427', N'5134', N'00,51,5134', N'宁南县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513427', N'宁南县', N'', N'', N'', N'', N'3', N'1', N''), (N'513428', N'5134', N'00,51,5134', N'普格县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513428', N'普格县', N'', N'', N'', N'', N'3', N'1', N''), (N'513429', N'5134', N'00,51,5134', N'布拖县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513429', N'布拖县', N'', N'', N'', N'', N'3', N'1', N''), (N'513430', N'5134', N'00,51,5134', N'金阳县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513430', N'金阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'513431', N'5134', N'00,51,5134', N'昭觉县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513431', N'昭觉县', N'', N'', N'', N'', N'3', N'1', N''), (N'513432', N'5134', N'00,51,5134', N'喜德县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513432', N'喜德县', N'', N'', N'', N'', N'3', N'1', N''), (N'513433', N'5134', N'00,51,5134', N'冕宁县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513433', N'冕宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'513434', N'5134', N'00,51,5134', N'越西县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513434', N'越西县', N'', N'', N'', N'', N'3', N'1', N''), (N'513435', N'5134', N'00,51,5134', N'甘洛县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513435', N'甘洛县', N'', N'', N'', N'', N'3', N'1', N''), (N'513436', N'5134', N'00,51,5134', N'美姑县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513436', N'美姑县', N'', N'', N'', N'', N'3', N'1', N''), (N'513437', N'5134', N'00,51,5134', N'雷波县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513437', N'雷波县', N'', N'', N'', N'', N'3', N'1', N''), (N'52', N'00', N'00', N'贵州省', N'52', N'贵州省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'5201', N'52', N'00,52', N'贵阳市', N'52', N'贵州省', N'5201', N'贵阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520102', N'5201', N'00,52,5201', N'南明区', N'52', N'贵州省', N'5201', N'贵阳市', N'520102', N'南明区', N'', N'', N'', N'', N'3', N'1', N''), (N'520103', N'5201', N'00,52,5201', N'云岩区', N'52', N'贵州省', N'5201', N'贵阳市', N'520103', N'云岩区', N'', N'', N'', N'', N'3', N'1', N''), (N'520111', N'5201', N'00,52,5201', N'花溪区', N'52', N'贵州省', N'5201', N'贵阳市', N'520111', N'花溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'520112', N'5201', N'00,52,5201', N'乌当区', N'52', N'贵州省', N'5201', N'贵阳市', N'520112', N'乌当区', N'', N'', N'', N'', N'3', N'1', N''), (N'520113', N'5201', N'00,52,5201', N'白云区', N'52', N'贵州省', N'5201', N'贵阳市', N'520113', N'白云区', N'', N'', N'', N'', N'3', N'1', N''), (N'520115', N'5201', N'00,52,5201', N'观山湖区', N'52', N'贵州省', N'5201', N'贵阳市', N'520115', N'观山湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'520121', N'5201', N'00,52,5201', N'开阳县', N'52', N'贵州省', N'5201', N'贵阳市', N'520121', N'开阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'520122', N'5201', N'00,52,5201', N'息烽县', N'52', N'贵州省', N'5201', N'贵阳市', N'520122', N'息烽县', N'', N'', N'', N'', N'3', N'1', N''), (N'520123', N'5201', N'00,52,5201', N'修文县', N'52', N'贵州省', N'5201', N'贵阳市', N'520123', N'修文县', N'', N'', N'', N'', N'3', N'1', N''), (N'520181', N'5201', N'00,52,5201', N'清镇市', N'52', N'贵州省', N'5201', N'贵阳市', N'520181', N'清镇市', N'', N'', N'', N'', N'3', N'1', N''), (N'5202', N'52', N'00,52', N'六盘水市', N'52', N'贵州省', N'5202', N'六盘水市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520201', N'5202', N'00,52,5202', N'钟山区', N'52', N'贵州省', N'5202', N'六盘水市', N'520201', N'钟山区', N'', N'', N'', N'', N'3', N'1', N''), (N'520203', N'5202', N'00,52,5202', N'六枝特区', N'52', N'贵州省', N'5202', N'六盘水市', N'520203', N'六枝特区', N'', N'', N'', N'', N'3', N'1', N''), (N'520221', N'5202', N'00,52,5202', N'水城县', N'52', N'贵州省', N'5202', N'六盘水市', N'520221', N'水城县', N'', N'', N'', N'', N'3', N'1', N''), (N'520281', N'5202', N'00,52,5202', N'盘州市', N'52', N'贵州省', N'5202', N'六盘水市', N'520281', N'盘州市', N'', N'', N'', N'', N'3', N'1', N''), (N'5203', N'52', N'00,52', N'遵义市', N'52', N'贵州省', N'5203', N'遵义市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520302', N'5203', N'00,52,5203', N'红花岗区', N'52', N'贵州省', N'5203', N'遵义市', N'520302', N'红花岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'520303', N'5203', N'00,52,5203', N'汇川区', N'52', N'贵州省', N'5203', N'遵义市', N'520303', N'汇川区', N'', N'', N'', N'', N'3', N'1', N''), (N'520304', N'5203', N'00,52,5203', N'播州区', N'52', N'贵州省', N'5203', N'遵义市', N'520304', N'播州区', N'', N'', N'', N'', N'3', N'1', N''), (N'520322', N'5203', N'00,52,5203', N'桐梓县', N'52', N'贵州省', N'5203', N'遵义市', N'520322', N'桐梓县', N'', N'', N'', N'', N'3', N'1', N''), (N'520323', N'5203', N'00,52,5203', N'绥阳县', N'52', N'贵州省', N'5203', N'遵义市', N'520323', N'绥阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'520324', N'5203', N'00,52,5203', N'正安县', N'52', N'贵州省', N'5203', N'遵义市', N'520324', N'正安县', N'', N'', N'', N'', N'3', N'1', N''), (N'520325', N'5203', N'00,52,5203', N'道真仡佬族苗族自治县', N'52', N'贵州省', N'5203', N'遵义市', N'520325', N'道真仡佬族苗族自治县', N'', N'', N'', N'', N'3', N'1', N'')
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'520326', N'5203', N'00,52,5203', N'务川仡佬族苗族自治县', N'52', N'贵州省', N'5203', N'遵义市', N'520326', N'务川仡佬族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520327', N'5203', N'00,52,5203', N'凤冈县', N'52', N'贵州省', N'5203', N'遵义市', N'520327', N'凤冈县', N'', N'', N'', N'', N'3', N'1', N''), (N'520328', N'5203', N'00,52,5203', N'湄潭县', N'52', N'贵州省', N'5203', N'遵义市', N'520328', N'湄潭县', N'', N'', N'', N'', N'3', N'1', N''), (N'520329', N'5203', N'00,52,5203', N'余庆县', N'52', N'贵州省', N'5203', N'遵义市', N'520329', N'余庆县', N'', N'', N'', N'', N'3', N'1', N''), (N'520330', N'5203', N'00,52,5203', N'习水县', N'52', N'贵州省', N'5203', N'遵义市', N'520330', N'习水县', N'', N'', N'', N'', N'3', N'1', N''), (N'520381', N'5203', N'00,52,5203', N'赤水市', N'52', N'贵州省', N'5203', N'遵义市', N'520381', N'赤水市', N'', N'', N'', N'', N'3', N'1', N''), (N'520382', N'5203', N'00,52,5203', N'仁怀市', N'52', N'贵州省', N'5203', N'遵义市', N'520382', N'仁怀市', N'', N'', N'', N'', N'3', N'1', N''), (N'5204', N'52', N'00,52', N'安顺市', N'52', N'贵州省', N'5204', N'安顺市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520402', N'5204', N'00,52,5204', N'西秀区', N'52', N'贵州省', N'5204', N'安顺市', N'520402', N'西秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'520403', N'5204', N'00,52,5204', N'平坝区', N'52', N'贵州省', N'5204', N'安顺市', N'520403', N'平坝区', N'', N'', N'', N'', N'3', N'1', N''), (N'520422', N'5204', N'00,52,5204', N'普定县', N'52', N'贵州省', N'5204', N'安顺市', N'520422', N'普定县', N'', N'', N'', N'', N'3', N'1', N''), (N'520423', N'5204', N'00,52,5204', N'镇宁布依族苗族自治县', N'52', N'贵州省', N'5204', N'安顺市', N'520423', N'镇宁布依族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520424', N'5204', N'00,52,5204', N'关岭布依族苗族自治县', N'52', N'贵州省', N'5204', N'安顺市', N'520424', N'关岭布依族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520425', N'5204', N'00,52,5204', N'紫云苗族布依族自治县', N'52', N'贵州省', N'5204', N'安顺市', N'520425', N'紫云苗族布依族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5205', N'52', N'00,52', N'毕节市', N'52', N'贵州省', N'5205', N'毕节市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520502', N'5205', N'00,52,5205', N'七星关区', N'52', N'贵州省', N'5205', N'毕节市', N'520502', N'七星关区', N'', N'', N'', N'', N'3', N'1', N''), (N'520521', N'5205', N'00,52,5205', N'大方县', N'52', N'贵州省', N'5205', N'毕节市', N'520521', N'大方县', N'', N'', N'', N'', N'3', N'1', N''), (N'520522', N'5205', N'00,52,5205', N'黔西县', N'52', N'贵州省', N'5205', N'毕节市', N'520522', N'黔西县', N'', N'', N'', N'', N'3', N'1', N''), (N'520523', N'5205', N'00,52,5205', N'金沙县', N'52', N'贵州省', N'5205', N'毕节市', N'520523', N'金沙县', N'', N'', N'', N'', N'3', N'1', N''), (N'520524', N'5205', N'00,52,5205', N'织金县', N'52', N'贵州省', N'5205', N'毕节市', N'520524', N'织金县', N'', N'', N'', N'', N'3', N'1', N''), (N'520525', N'5205', N'00,52,5205', N'纳雍县', N'52', N'贵州省', N'5205', N'毕节市', N'520525', N'纳雍县', N'', N'', N'', N'', N'3', N'1', N''), (N'520526', N'5205', N'00,52,5205', N'威宁彝族回族苗族自治县', N'52', N'贵州省', N'5205', N'毕节市', N'520526', N'威宁彝族回族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520527', N'5205', N'00,52,5205', N'赫章县', N'52', N'贵州省', N'5205', N'毕节市', N'520527', N'赫章县', N'', N'', N'', N'', N'3', N'1', N''), (N'5206', N'52', N'00,52', N'铜仁市', N'52', N'贵州省', N'5206', N'铜仁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520602', N'5206', N'00,52,5206', N'碧江区', N'52', N'贵州省', N'5206', N'铜仁市', N'520602', N'碧江区', N'', N'', N'', N'', N'3', N'1', N''), (N'520603', N'5206', N'00,52,5206', N'万山区', N'52', N'贵州省', N'5206', N'铜仁市', N'520603', N'万山区', N'', N'', N'', N'', N'3', N'1', N''), (N'520621', N'5206', N'00,52,5206', N'江口县', N'52', N'贵州省', N'5206', N'铜仁市', N'520621', N'江口县', N'', N'', N'', N'', N'3', N'1', N''), (N'520622', N'5206', N'00,52,5206', N'玉屏侗族自治县', N'52', N'贵州省', N'5206', N'铜仁市', N'520622', N'玉屏侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520623', N'5206', N'00,52,5206', N'石阡县', N'52', N'贵州省', N'5206', N'铜仁市', N'520623', N'石阡县', N'', N'', N'', N'', N'3', N'1', N''), (N'520624', N'5206', N'00,52,5206', N'思南县', N'52', N'贵州省', N'5206', N'铜仁市', N'520624', N'思南县', N'', N'', N'', N'', N'3', N'1', N''), (N'520625', N'5206', N'00,52,5206', N'印江土家族苗族自治县', N'52', N'贵州省', N'5206', N'铜仁市', N'520625', N'印江土家族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520626', N'5206', N'00,52,5206', N'德江县', N'52', N'贵州省', N'5206', N'铜仁市', N'520626', N'德江县', N'', N'', N'', N'', N'3', N'1', N''), (N'520627', N'5206', N'00,52,5206', N'沿河土家族自治县', N'52', N'贵州省', N'5206', N'铜仁市', N'520627', N'沿河土家族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520628', N'5206', N'00,52,5206', N'松桃苗族自治县', N'52', N'贵州省', N'5206', N'铜仁市', N'520628', N'松桃苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5223', N'52', N'00,52', N'黔西南布依族苗族自治州', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'522301', N'5223', N'00,52,5223', N'兴义市', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522301', N'兴义市', N'', N'', N'', N'', N'3', N'1', N''), (N'522302', N'5223', N'00,52,5223', N'兴仁市', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522302', N'兴仁市', N'', N'', N'', N'', N'3', N'1', N''), (N'522323', N'5223', N'00,52,5223', N'普安县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522323', N'普安县', N'', N'', N'', N'', N'3', N'1', N''), (N'522324', N'5223', N'00,52,5223', N'晴隆县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522324', N'晴隆县', N'', N'', N'', N'', N'3', N'1', N''), (N'522325', N'5223', N'00,52,5223', N'贞丰县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522325', N'贞丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'522326', N'5223', N'00,52,5223', N'望谟县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522326', N'望谟县', N'', N'', N'', N'', N'3', N'1', N''), (N'522327', N'5223', N'00,52,5223', N'册亨县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522327', N'册亨县', N'', N'', N'', N'', N'3', N'1', N''), (N'522328', N'5223', N'00,52,5223', N'安龙县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522328', N'安龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'5226', N'52', N'00,52', N'黔东南苗族侗族自治州', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'522601', N'5226', N'00,52,5226', N'凯里市', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522601', N'凯里市', N'', N'', N'', N'', N'3', N'1', N''), (N'522622', N'5226', N'00,52,5226', N'黄平县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522622', N'黄平县', N'', N'', N'', N'', N'3', N'1', N''), (N'522623', N'5226', N'00,52,5226', N'施秉县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522623', N'施秉县', N'', N'', N'', N'', N'3', N'1', N''), (N'522624', N'5226', N'00,52,5226', N'三穗县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522624', N'三穗县', N'', N'', N'', N'', N'3', N'1', N''), (N'522625', N'5226', N'00,52,5226', N'镇远县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522625', N'镇远县', N'', N'', N'', N'', N'3', N'1', N''), (N'522626', N'5226', N'00,52,5226', N'岑巩县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522626', N'岑巩县', N'', N'', N'', N'', N'3', N'1', N''), (N'522627', N'5226', N'00,52,5226', N'天柱县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522627', N'天柱县', N'', N'', N'', N'', N'3', N'1', N''), (N'522628', N'5226', N'00,52,5226', N'锦屏县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522628', N'锦屏县', N'', N'', N'', N'', N'3', N'1', N''), (N'522629', N'5226', N'00,52,5226', N'剑河县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522629', N'剑河县', N'', N'', N'', N'', N'3', N'1', N''), (N'522630', N'5226', N'00,52,5226', N'台江县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522630', N'台江县', N'', N'', N'', N'', N'3', N'1', N''), (N'522631', N'5226', N'00,52,5226', N'黎平县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522631', N'黎平县', N'', N'', N'', N'', N'3', N'1', N''), (N'522632', N'5226', N'00,52,5226', N'榕江县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522632', N'榕江县', N'', N'', N'', N'', N'3', N'1', N''), (N'522633', N'5226', N'00,52,5226', N'从江县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522633', N'从江县', N'', N'', N'', N'', N'3', N'1', N''), (N'522634', N'5226', N'00,52,5226', N'雷山县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522634', N'雷山县', N'', N'', N'', N'', N'3', N'1', N''), (N'522635', N'5226', N'00,52,5226', N'麻江县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522635', N'麻江县', N'', N'', N'', N'', N'3', N'1', N''), (N'522636', N'5226', N'00,52,5226', N'丹寨县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522636', N'丹寨县', N'', N'', N'', N'', N'3', N'1', N''), (N'5227', N'52', N'00,52', N'黔南布依族苗族自治州', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'522701', N'5227', N'00,52,5227', N'都匀市', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522701', N'都匀市', N'', N'', N'', N'', N'3', N'1', N''), (N'522702', N'5227', N'00,52,5227', N'福泉市', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522702', N'福泉市', N'', N'', N'', N'', N'3', N'1', N''), (N'522722', N'5227', N'00,52,5227', N'荔波县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522722', N'荔波县', N'', N'', N'', N'', N'3', N'1', N''), (N'522723', N'5227', N'00,52,5227', N'贵定县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522723', N'贵定县', N'', N'', N'', N'', N'3', N'1', N''), (N'522725', N'5227', N'00,52,5227', N'瓮安县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522725', N'瓮安县', N'', N'', N'', N'', N'3', N'1', N''), (N'522726', N'5227', N'00,52,5227', N'独山县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522726', N'独山县', N'', N'', N'', N'', N'3', N'1', N''), (N'522727', N'5227', N'00,52,5227', N'平塘县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522727', N'平塘县', N'', N'', N'', N'', N'3', N'1', N''), (N'522728', N'5227', N'00,52,5227', N'罗甸县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522728', N'罗甸县', N'', N'', N'', N'', N'3', N'1', N''), (N'522729', N'5227', N'00,52,5227', N'长顺县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522729', N'长顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'522730', N'5227', N'00,52,5227', N'龙里县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522730', N'龙里县', N'', N'', N'', N'', N'3', N'1', N''), (N'522731', N'5227', N'00,52,5227', N'惠水县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522731', N'惠水县', N'', N'', N'', N'', N'3', N'1', N''), (N'522732', N'5227', N'00,52,5227', N'三都水族自治县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522732', N'三都水族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'53', N'00', N'00', N'云南省', N'53', N'云南省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'5301', N'53', N'00,53', N'昆明市', N'53', N'云南省', N'5301', N'昆明市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530102', N'5301', N'00,53,5301', N'五华区', N'53', N'云南省', N'5301', N'昆明市', N'530102', N'五华区', N'', N'', N'', N'', N'3', N'1', N''), (N'530103', N'5301', N'00,53,5301', N'盘龙区', N'53', N'云南省', N'5301', N'昆明市', N'530103', N'盘龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'530111', N'5301', N'00,53,5301', N'官渡区', N'53', N'云南省', N'5301', N'昆明市', N'530111', N'官渡区', N'', N'', N'', N'', N'3', N'1', N''), (N'530112', N'5301', N'00,53,5301', N'西山区', N'53', N'云南省', N'5301', N'昆明市', N'530112', N'西山区', N'', N'', N'', N'', N'3', N'1', N''), (N'530113', N'5301', N'00,53,5301', N'东川区', N'53', N'云南省', N'5301', N'昆明市', N'530113', N'东川区', N'', N'', N'', N'', N'3', N'1', N''), (N'530114', N'5301', N'00,53,5301', N'呈贡区', N'53', N'云南省', N'5301', N'昆明市', N'530114', N'呈贡区', N'', N'', N'', N'', N'3', N'1', N''), (N'530115', N'5301', N'00,53,5301', N'晋宁区', N'53', N'云南省', N'5301', N'昆明市', N'530115', N'晋宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'530124', N'5301', N'00,53,5301', N'富民县', N'53', N'云南省', N'5301', N'昆明市', N'530124', N'富民县', N'', N'', N'', N'', N'3', N'1', N''), (N'530125', N'5301', N'00,53,5301', N'宜良县', N'53', N'云南省', N'5301', N'昆明市', N'530125', N'宜良县', N'', N'', N'', N'', N'3', N'1', N''), (N'530126', N'5301', N'00,53,5301', N'石林彝族自治县', N'53', N'云南省', N'5301', N'昆明市', N'530126', N'石林彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530127', N'5301', N'00,53,5301', N'嵩明县', N'53', N'云南省', N'5301', N'昆明市', N'530127', N'嵩明县', N'', N'', N'', N'', N'3', N'1', N''), (N'530128', N'5301', N'00,53,5301', N'禄劝彝族苗族自治县', N'53', N'云南省', N'5301', N'昆明市', N'530128', N'禄劝彝族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530129', N'5301', N'00,53,5301', N'寻甸回族彝族自治县', N'53', N'云南省', N'5301', N'昆明市', N'530129', N'寻甸回族彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530181', N'5301', N'00,53,5301', N'安宁市', N'53', N'云南省', N'5301', N'昆明市', N'530181', N'安宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'5303', N'53', N'00,53', N'曲靖市', N'53', N'云南省', N'5303', N'曲靖市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530302', N'5303', N'00,53,5303', N'麒麟区', N'53', N'云南省', N'5303', N'曲靖市', N'530302', N'麒麟区', N'', N'', N'', N'', N'3', N'1', N''), (N'530303', N'5303', N'00,53,5303', N'沾益区', N'53', N'云南省', N'5303', N'曲靖市', N'530303', N'沾益区', N'', N'', N'', N'', N'3', N'1', N''), (N'530304', N'5303', N'00,53,5303', N'马龙区', N'53', N'云南省', N'5303', N'曲靖市', N'530304', N'马龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'530322', N'5303', N'00,53,5303', N'陆良县', N'53', N'云南省', N'5303', N'曲靖市', N'530322', N'陆良县', N'', N'', N'', N'', N'3', N'1', N''), (N'530323', N'5303', N'00,53,5303', N'师宗县', N'53', N'云南省', N'5303', N'曲靖市', N'530323', N'师宗县', N'', N'', N'', N'', N'3', N'1', N''), (N'530324', N'5303', N'00,53,5303', N'罗平县', N'53', N'云南省', N'5303', N'曲靖市', N'530324', N'罗平县', N'', N'', N'', N'', N'3', N'1', N''), (N'530325', N'5303', N'00,53,5303', N'富源县', N'53', N'云南省', N'5303', N'曲靖市', N'530325', N'富源县', N'', N'', N'', N'', N'3', N'1', N''), (N'530326', N'5303', N'00,53,5303', N'会泽县', N'53', N'云南省', N'5303', N'曲靖市', N'530326', N'会泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'530381', N'5303', N'00,53,5303', N'宣威市', N'53', N'云南省', N'5303', N'曲靖市', N'530381', N'宣威市', N'', N'', N'', N'', N'3', N'1', N''), (N'5304', N'53', N'00,53', N'玉溪市', N'53', N'云南省', N'5304', N'玉溪市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530402', N'5304', N'00,53,5304', N'红塔区', N'53', N'云南省', N'5304', N'玉溪市', N'530402', N'红塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'530403', N'5304', N'00,53,5304', N'江川区', N'53', N'云南省', N'5304', N'玉溪市', N'530403', N'江川区', N'', N'', N'', N'', N'3', N'1', N''), (N'530423', N'5304', N'00,53,5304', N'通海县', N'53', N'云南省', N'5304', N'玉溪市', N'530423', N'通海县', N'', N'', N'', N'', N'3', N'1', N''), (N'530424', N'5304', N'00,53,5304', N'华宁县', N'53', N'云南省', N'5304', N'玉溪市', N'530424', N'华宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'530425', N'5304', N'00,53,5304', N'易门县', N'53', N'云南省', N'5304', N'玉溪市', N'530425', N'易门县', N'', N'', N'', N'', N'3', N'1', N''), (N'530426', N'5304', N'00,53,5304', N'峨山彝族自治县', N'53', N'云南省', N'5304', N'玉溪市', N'530426', N'峨山彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530427', N'5304', N'00,53,5304', N'新平彝族傣族自治县', N'53', N'云南省', N'5304', N'玉溪市', N'530427', N'新平彝族傣族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530428', N'5304', N'00,53,5304', N'元江哈尼族彝族傣族自治县', N'53', N'云南省', N'5304', N'玉溪市', N'530428', N'元江哈尼族彝族傣族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530481', N'5304', N'00,53,5304', N'澄江市', N'53', N'云南省', N'5304', N'玉溪市', N'530481', N'澄江市', N'', N'', N'', N'', N'3', N'1', N''), (N'5305', N'53', N'00,53', N'保山市', N'53', N'云南省', N'5305', N'保山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530502', N'5305', N'00,53,5305', N'隆阳区', N'53', N'云南省', N'5305', N'保山市', N'530502', N'隆阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'530521', N'5305', N'00,53,5305', N'施甸县', N'53', N'云南省', N'5305', N'保山市', N'530521', N'施甸县', N'', N'', N'', N'', N'3', N'1', N''), (N'530523', N'5305', N'00,53,5305', N'龙陵县', N'53', N'云南省', N'5305', N'保山市', N'530523', N'龙陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'530524', N'5305', N'00,53,5305', N'昌宁县', N'53', N'云南省', N'5305', N'保山市', N'530524', N'昌宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'530581', N'5305', N'00,53,5305', N'腾冲市', N'53', N'云南省', N'5305', N'保山市', N'530581', N'腾冲市', N'', N'', N'', N'', N'3', N'1', N''), (N'5306', N'53', N'00,53', N'昭通市', N'53', N'云南省', N'5306', N'昭通市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530602', N'5306', N'00,53,5306', N'昭阳区', N'53', N'云南省', N'5306', N'昭通市', N'530602', N'昭阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'530621', N'5306', N'00,53,5306', N'鲁甸县', N'53', N'云南省', N'5306', N'昭通市', N'530621', N'鲁甸县', N'', N'', N'', N'', N'3', N'1', N''), (N'530622', N'5306', N'00,53,5306', N'巧家县', N'53', N'云南省', N'5306', N'昭通市', N'530622', N'巧家县', N'', N'', N'', N'', N'3', N'1', N''), (N'530623', N'5306', N'00,53,5306', N'盐津县', N'53', N'云南省', N'5306', N'昭通市', N'530623', N'盐津县', N'', N'', N'', N'', N'3', N'1', N''), (N'530624', N'5306', N'00,53,5306', N'大关县', N'53', N'云南省', N'5306', N'昭通市', N'530624', N'大关县', N'', N'', N'', N'', N'3', N'1', N''), (N'530625', N'5306', N'00,53,5306', N'永善县', N'53', N'云南省', N'5306', N'昭通市', N'530625', N'永善县', N'', N'', N'', N'', N'3', N'1', N''), (N'530626', N'5306', N'00,53,5306', N'绥江县', N'53', N'云南省', N'5306', N'昭通市', N'530626', N'绥江县', N'', N'', N'', N'', N'3', N'1', N''), (N'530627', N'5306', N'00,53,5306', N'镇雄县', N'53', N'云南省', N'5306', N'昭通市', N'530627', N'镇雄县', N'', N'', N'', N'', N'3', N'1', N''), (N'530628', N'5306', N'00,53,5306', N'彝良县', N'53', N'云南省', N'5306', N'昭通市', N'530628', N'彝良县', N'', N'', N'', N'', N'3', N'1', N''), (N'530629', N'5306', N'00,53,5306', N'威信县', N'53', N'云南省', N'5306', N'昭通市', N'530629', N'威信县', N'', N'', N'', N'', N'3', N'1', N''), (N'530681', N'5306', N'00,53,5306', N'水富市', N'53', N'云南省', N'5306', N'昭通市', N'530681', N'水富市', N'', N'', N'', N'', N'3', N'1', N''), (N'5307', N'53', N'00,53', N'丽江市', N'53', N'云南省', N'5307', N'丽江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530702', N'5307', N'00,53,5307', N'古城区', N'53', N'云南省', N'5307', N'丽江市', N'530702', N'古城区', N'', N'', N'', N'', N'3', N'1', N''), (N'530721', N'5307', N'00,53,5307', N'玉龙纳西族自治县', N'53', N'云南省', N'5307', N'丽江市', N'530721', N'玉龙纳西族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530722', N'5307', N'00,53,5307', N'永胜县', N'53', N'云南省', N'5307', N'丽江市', N'530722', N'永胜县', N'', N'', N'', N'', N'3', N'1', N''), (N'530723', N'5307', N'00,53,5307', N'华坪县', N'53', N'云南省', N'5307', N'丽江市', N'530723', N'华坪县', N'', N'', N'', N'', N'3', N'1', N''), (N'530724', N'5307', N'00,53,5307', N'宁蒗彝族自治县', N'53', N'云南省', N'5307', N'丽江市', N'530724', N'宁蒗彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5308', N'53', N'00,53', N'普洱市', N'53', N'云南省', N'5308', N'普洱市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530802', N'5308', N'00,53,5308', N'思茅区', N'53', N'云南省', N'5308', N'普洱市', N'530802', N'思茅区', N'', N'', N'', N'', N'3', N'1', N''), (N'530821', N'5308', N'00,53,5308', N'宁洱哈尼族彝族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530821', N'宁洱哈尼族彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530822', N'5308', N'00,53,5308', N'墨江哈尼族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530822', N'墨江哈尼族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530823', N'5308', N'00,53,5308', N'景东彝族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530823', N'景东彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530824', N'5308', N'00,53,5308', N'景谷傣族彝族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530824', N'景谷傣族彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530825', N'5308', N'00,53,5308', N'镇沅彝族哈尼族拉祜族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530825', N'镇沅彝族哈尼族拉祜族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530826', N'5308', N'00,53,5308', N'江城哈尼族彝族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530826', N'江城哈尼族彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530827', N'5308', N'00,53,5308', N'孟连傣族拉祜族佤族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530827', N'孟连傣族拉祜族佤族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530828', N'5308', N'00,53,5308', N'澜沧拉祜族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530828', N'澜沧拉祜族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530829', N'5308', N'00,53,5308', N'西盟佤族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530829', N'西盟佤族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5309', N'53', N'00,53', N'临沧市', N'53', N'云南省', N'5309', N'临沧市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530902', N'5309', N'00,53,5309', N'临翔区', N'53', N'云南省', N'5309', N'临沧市', N'530902', N'临翔区', N'', N'', N'', N'', N'3', N'1', N''), (N'530921', N'5309', N'00,53,5309', N'凤庆县', N'53', N'云南省', N'5309', N'临沧市', N'530921', N'凤庆县', N'', N'', N'', N'', N'3', N'1', N''), (N'530922', N'5309', N'00,53,5309', N'云县', N'53', N'云南省', N'5309', N'临沧市', N'530922', N'云县', N'', N'', N'', N'', N'3', N'1', N''), (N'530923', N'5309', N'00,53,5309', N'永德县', N'53', N'云南省', N'5309', N'临沧市', N'530923', N'永德县', N'', N'', N'', N'', N'3', N'1', N''), (N'530924', N'5309', N'00,53,5309', N'镇康县', N'53', N'云南省', N'5309', N'临沧市', N'530924', N'镇康县', N'', N'', N'', N'', N'3', N'1', N''), (N'530925', N'5309', N'00,53,5309', N'双江拉祜族佤族布朗族傣族自治县', N'53', N'云南省', N'5309', N'临沧市', N'530925', N'双江拉祜族佤族布朗族傣族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530926', N'5309', N'00,53,5309', N'耿马傣族佤族自治县', N'53', N'云南省', N'5309', N'临沧市', N'530926', N'耿马傣族佤族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530927', N'5309', N'00,53,5309', N'沧源佤族自治县', N'53', N'云南省', N'5309', N'临沧市', N'530927', N'沧源佤族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5323', N'53', N'00,53', N'楚雄彝族自治州', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'532301', N'5323', N'00,53,5323', N'楚雄市', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532301', N'楚雄市', N'', N'', N'', N'', N'3', N'1', N''), (N'532322', N'5323', N'00,53,5323', N'双柏县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532322', N'双柏县', N'', N'', N'', N'', N'3', N'1', N''), (N'532323', N'5323', N'00,53,5323', N'牟定县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532323', N'牟定县', N'', N'', N'', N'', N'3', N'1', N''), (N'532324', N'5323', N'00,53,5323', N'南华县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532324', N'南华县', N'', N'', N'', N'', N'3', N'1', N''), (N'532325', N'5323', N'00,53,5323', N'姚安县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532325', N'姚安县', N'', N'', N'', N'', N'3', N'1', N''), (N'532326', N'5323', N'00,53,5323', N'大姚县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532326', N'大姚县', N'', N'', N'', N'', N'3', N'1', N''), (N'532327', N'5323', N'00,53,5323', N'永仁县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532327', N'永仁县', N'', N'', N'', N'', N'3', N'1', N''), (N'532328', N'5323', N'00,53,5323', N'元谋县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532328', N'元谋县', N'', N'', N'', N'', N'3', N'1', N''), (N'532329', N'5323', N'00,53,5323', N'武定县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532329', N'武定县', N'', N'', N'', N'', N'3', N'1', N''), (N'532331', N'5323', N'00,53,5323', N'禄丰县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532331', N'禄丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'5325', N'53', N'00,53', N'红河哈尼族彝族自治州', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'532501', N'5325', N'00,53,5325', N'个旧市', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532501', N'个旧市', N'', N'', N'', N'', N'3', N'1', N''), (N'532502', N'5325', N'00,53,5325', N'开远市', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532502', N'开远市', N'', N'', N'', N'', N'3', N'1', N''), (N'532503', N'5325', N'00,53,5325', N'蒙自市', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532503', N'蒙自市', N'', N'', N'', N'', N'3', N'1', N''), (N'532504', N'5325', N'00,53,5325', N'弥勒市', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532504', N'弥勒市', N'', N'', N'', N'', N'3', N'1', N''), (N'532523', N'5325', N'00,53,5325', N'屏边苗族自治县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532523', N'屏边苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'532524', N'5325', N'00,53,5325', N'建水县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532524', N'建水县', N'', N'', N'', N'', N'3', N'1', N''), (N'532525', N'5325', N'00,53,5325', N'石屏县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532525', N'石屏县', N'', N'', N'', N'', N'3', N'1', N''), (N'532527', N'5325', N'00,53,5325', N'泸西县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532527', N'泸西县', N'', N'', N'', N'', N'3', N'1', N''), (N'532528', N'5325', N'00,53,5325', N'元阳县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532528', N'元阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'532529', N'5325', N'00,53,5325', N'红河县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532529', N'红河县', N'', N'', N'', N'', N'3', N'1', N''), (N'532530', N'5325', N'00,53,5325', N'金平苗族瑶族傣族自治县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532530', N'金平苗族瑶族傣族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'532531', N'5325', N'00,53,5325', N'绿春县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532531', N'绿春县', N'', N'', N'', N'', N'3', N'1', N''), (N'532532', N'5325', N'00,53,5325', N'河口瑶族自治县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532532', N'河口瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5326', N'53', N'00,53', N'文山壮族苗族自治州', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'532601', N'5326', N'00,53,5326', N'文山市', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532601', N'文山市', N'', N'', N'', N'', N'3', N'1', N''), (N'532622', N'5326', N'00,53,5326', N'砚山县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532622', N'砚山县', N'', N'', N'', N'', N'3', N'1', N''), (N'532623', N'5326', N'00,53,5326', N'西畴县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532623', N'西畴县', N'', N'', N'', N'', N'3', N'1', N''), (N'532624', N'5326', N'00,53,5326', N'麻栗坡县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532624', N'麻栗坡县', N'', N'', N'', N'', N'3', N'1', N''), (N'532625', N'5326', N'00,53,5326', N'马关县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532625', N'马关县', N'', N'', N'', N'', N'3', N'1', N''), (N'532626', N'5326', N'00,53,5326', N'丘北县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532626', N'丘北县', N'', N'', N'', N'', N'3', N'1', N''), (N'532627', N'5326', N'00,53,5326', N'广南县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532627', N'广南县', N'', N'', N'', N'', N'3', N'1', N''), (N'532628', N'5326', N'00,53,5326', N'富宁县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532628', N'富宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'5328', N'53', N'00,53', N'西双版纳傣族自治州', N'53', N'云南省', N'5328', N'西双版纳傣族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'532801', N'5328', N'00,53,5328', N'景洪市', N'53', N'云南省', N'5328', N'西双版纳傣族自治州', N'532801', N'景洪市', N'', N'', N'', N'', N'3', N'1', N''), (N'532822', N'5328', N'00,53,5328', N'勐海县', N'53', N'云南省', N'5328', N'西双版纳傣族自治州', N'532822', N'勐海县', N'', N'', N'', N'', N'3', N'1', N''), (N'532823', N'5328', N'00,53,5328', N'勐腊县', N'53', N'云南省', N'5328', N'西双版纳傣族自治州', N'532823', N'勐腊县', N'', N'', N'', N'', N'3', N'1', N''), (N'5329', N'53', N'00,53', N'大理白族自治州', N'53', N'云南省', N'5329', N'大理白族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'532901', N'5329', N'00,53,5329', N'大理市', N'53', N'云南省', N'5329', N'大理白族自治州', N'532901', N'大理市', N'', N'', N'', N'', N'3', N'1', N''), (N'532922', N'5329', N'00,53,5329', N'漾濞彝族自治县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532922', N'漾濞彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'532923', N'5329', N'00,53,5329', N'祥云县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532923', N'祥云县', N'', N'', N'', N'', N'3', N'1', N''), (N'532924', N'5329', N'00,53,5329', N'宾川县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532924', N'宾川县', N'', N'', N'', N'', N'3', N'1', N''), (N'532925', N'5329', N'00,53,5329', N'弥渡县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532925', N'弥渡县', N'', N'', N'', N'', N'3', N'1', N''), (N'532926', N'5329', N'00,53,5329', N'南涧彝族自治县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532926', N'南涧彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'532927', N'5329', N'00,53,5329', N'巍山彝族回族自治县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532927', N'巍山彝族回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'532928', N'5329', N'00,53,5329', N'永平县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532928', N'永平县', N'', N'', N'', N'', N'3', N'1', N''), (N'532929', N'5329', N'00,53,5329', N'云龙县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532929', N'云龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'532930', N'5329', N'00,53,5329', N'洱源县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532930', N'洱源县', N'', N'', N'', N'', N'3', N'1', N''), (N'532931', N'5329', N'00,53,5329', N'剑川县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532931', N'剑川县', N'', N'', N'', N'', N'3', N'1', N''), (N'532932', N'5329', N'00,53,5329', N'鹤庆县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532932', N'鹤庆县', N'', N'', N'', N'', N'3', N'1', N''), (N'5331', N'53', N'00,53', N'德宏傣族景颇族自治州', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'533102', N'5331', N'00,53,5331', N'瑞丽市', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'533102', N'瑞丽市', N'', N'', N'', N'', N'3', N'1', N''), (N'533103', N'5331', N'00,53,5331', N'芒市', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'533103', N'芒市', N'', N'', N'', N'', N'3', N'1', N''), (N'533122', N'5331', N'00,53,5331', N'梁河县', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'533122', N'梁河县', N'', N'', N'', N'', N'3', N'1', N''), (N'533123', N'5331', N'00,53,5331', N'盈江县', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'533123', N'盈江县', N'', N'', N'', N'', N'3', N'1', N''), (N'533124', N'5331', N'00,53,5331', N'陇川县', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'533124', N'陇川县', N'', N'', N'', N'', N'3', N'1', N''), (N'5333', N'53', N'00,53', N'怒江傈僳族自治州', N'53', N'云南省', N'5333', N'怒江傈僳族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'533301', N'5333', N'00,53,5333', N'泸水市', N'53', N'云南省', N'5333', N'怒江傈僳族自治州', N'533301', N'泸水市', N'', N'', N'', N'', N'3', N'1', N''), (N'533323', N'5333', N'00,53,5333', N'福贡县', N'53', N'云南省', N'5333', N'怒江傈僳族自治州', N'533323', N'福贡县', N'', N'', N'', N'', N'3', N'1', N''), (N'533324', N'5333', N'00,53,5333', N'贡山独龙族怒族自治县', N'53', N'云南省', N'5333', N'怒江傈僳族自治州', N'533324', N'贡山独龙族怒族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'533325', N'5333', N'00,53,5333', N'兰坪白族普米族自治县', N'53', N'云南省', N'5333', N'怒江傈僳族自治州', N'533325', N'兰坪白族普米族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5334', N'53', N'00,53', N'迪庆藏族自治州', N'53', N'云南省', N'5334', N'迪庆藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'533401', N'5334', N'00,53,5334', N'香格里拉市', N'53', N'云南省', N'5334', N'迪庆藏族自治州', N'533401', N'香格里拉市', N'', N'', N'', N'', N'3', N'1', N''), (N'533422', N'5334', N'00,53,5334', N'德钦县', N'53', N'云南省', N'5334', N'迪庆藏族自治州', N'533422', N'德钦县', N'', N'', N'', N'', N'3', N'1', N''), (N'533423', N'5334', N'00,53,5334', N'维西傈僳族自治县', N'53', N'云南省', N'5334', N'迪庆藏族自治州', N'533423', N'维西傈僳族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'54', N'00', N'00', N'西藏自治区', N'54', N'西藏自治区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'5401', N'54', N'00,54', N'拉萨市', N'54', N'西藏自治区', N'5401', N'拉萨市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540102', N'5401', N'00,54,5401', N'城关区', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540102', N'城关区', N'', N'', N'', N'', N'3', N'1', N''), (N'540103', N'5401', N'00,54,5401', N'堆龙德庆区', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540103', N'堆龙德庆区', N'', N'', N'', N'', N'3', N'1', N''), (N'540104', N'5401', N'00,54,5401', N'达孜区', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540104', N'达孜区', N'', N'', N'', N'', N'3', N'1', N''), (N'540121', N'5401', N'00,54,5401', N'林周县', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540121', N'林周县', N'', N'', N'', N'', N'3', N'1', N''), (N'540122', N'5401', N'00,54,5401', N'当雄县', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540122', N'当雄县', N'', N'', N'', N'', N'3', N'1', N''), (N'540123', N'5401', N'00,54,5401', N'尼木县', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540123', N'尼木县', N'', N'', N'', N'', N'3', N'1', N''), (N'540124', N'5401', N'00,54,5401', N'曲水县', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540124', N'曲水县', N'', N'', N'', N'', N'3', N'1', N''), (N'540127', N'5401', N'00,54,5401', N'墨竹工卡县', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540127', N'墨竹工卡县', N'', N'', N'', N'', N'3', N'1', N''), (N'5402', N'54', N'00,54', N'日喀则市', N'54', N'西藏自治区', N'5402', N'日喀则市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540202', N'5402', N'00,54,5402', N'桑珠孜区', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540202', N'桑珠孜区', N'', N'', N'', N'', N'3', N'1', N''), (N'540221', N'5402', N'00,54,5402', N'南木林县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540221', N'南木林县', N'', N'', N'', N'', N'3', N'1', N''), (N'540222', N'5402', N'00,54,5402', N'江孜县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540222', N'江孜县', N'', N'', N'', N'', N'3', N'1', N''), (N'540223', N'5402', N'00,54,5402', N'定日县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540223', N'定日县', N'', N'', N'', N'', N'3', N'1', N''), (N'540224', N'5402', N'00,54,5402', N'萨迦县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540224', N'萨迦县', N'', N'', N'', N'', N'3', N'1', N''), (N'540225', N'5402', N'00,54,5402', N'拉孜县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540225', N'拉孜县', N'', N'', N'', N'', N'3', N'1', N''), (N'540226', N'5402', N'00,54,5402', N'昂仁县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540226', N'昂仁县', N'', N'', N'', N'', N'3', N'1', N''), (N'540227', N'5402', N'00,54,5402', N'谢通门县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540227', N'谢通门县', N'', N'', N'', N'', N'3', N'1', N''), (N'540228', N'5402', N'00,54,5402', N'白朗县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540228', N'白朗县', N'', N'', N'', N'', N'3', N'1', N''), (N'540229', N'5402', N'00,54,5402', N'仁布县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540229', N'仁布县', N'', N'', N'', N'', N'3', N'1', N''), (N'540230', N'5402', N'00,54,5402', N'康马县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540230', N'康马县', N'', N'', N'', N'', N'3', N'1', N''), (N'540231', N'5402', N'00,54,5402', N'定结县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540231', N'定结县', N'', N'', N'', N'', N'3', N'1', N''), (N'540232', N'5402', N'00,54,5402', N'仲巴县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540232', N'仲巴县', N'', N'', N'', N'', N'3', N'1', N''), (N'540233', N'5402', N'00,54,5402', N'亚东县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540233', N'亚东县', N'', N'', N'', N'', N'3', N'1', N''), (N'540234', N'5402', N'00,54,5402', N'吉隆县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540234', N'吉隆县', N'', N'', N'', N'', N'3', N'1', N''), (N'540235', N'5402', N'00,54,5402', N'聂拉木县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540235', N'聂拉木县', N'', N'', N'', N'', N'3', N'1', N''), (N'540236', N'5402', N'00,54,5402', N'萨嘎县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540236', N'萨嘎县', N'', N'', N'', N'', N'3', N'1', N''), (N'540237', N'5402', N'00,54,5402', N'岗巴县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540237', N'岗巴县', N'', N'', N'', N'', N'3', N'1', N''), (N'5403', N'54', N'00,54', N'昌都市', N'54', N'西藏自治区', N'5403', N'昌都市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540302', N'5403', N'00,54,5403', N'卡若区', N'54', N'西藏自治区', N'5403', N'昌都市', N'540302', N'卡若区', N'', N'', N'', N'', N'3', N'1', N''), (N'540321', N'5403', N'00,54,5403', N'江达县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540321', N'江达县', N'', N'', N'', N'', N'3', N'1', N''), (N'540322', N'5403', N'00,54,5403', N'贡觉县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540322', N'贡觉县', N'', N'', N'', N'', N'3', N'1', N''), (N'540323', N'5403', N'00,54,5403', N'类乌齐县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540323', N'类乌齐县', N'', N'', N'', N'', N'3', N'1', N''), (N'540324', N'5403', N'00,54,5403', N'丁青县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540324', N'丁青县', N'', N'', N'', N'', N'3', N'1', N''), (N'540325', N'5403', N'00,54,5403', N'察雅县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540325', N'察雅县', N'', N'', N'', N'', N'3', N'1', N''), (N'540326', N'5403', N'00,54,5403', N'八宿县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540326', N'八宿县', N'', N'', N'', N'', N'3', N'1', N''), (N'540327', N'5403', N'00,54,5403', N'左贡县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540327', N'左贡县', N'', N'', N'', N'', N'3', N'1', N''), (N'540328', N'5403', N'00,54,5403', N'芒康县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540328', N'芒康县', N'', N'', N'', N'', N'3', N'1', N''), (N'540329', N'5403', N'00,54,5403', N'洛隆县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540329', N'洛隆县', N'', N'', N'', N'', N'3', N'1', N''), (N'540330', N'5403', N'00,54,5403', N'边坝县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540330', N'边坝县', N'', N'', N'', N'', N'3', N'1', N''), (N'5404', N'54', N'00,54', N'林芝市', N'54', N'西藏自治区', N'5404', N'林芝市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540402', N'5404', N'00,54,5404', N'巴宜区', N'54', N'西藏自治区', N'5404', N'林芝市', N'540402', N'巴宜区', N'', N'', N'', N'', N'3', N'1', N''), (N'540421', N'5404', N'00,54,5404', N'工布江达县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540421', N'工布江达县', N'', N'', N'', N'', N'3', N'1', N''), (N'540422', N'5404', N'00,54,5404', N'米林县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540422', N'米林县', N'', N'', N'', N'', N'3', N'1', N''), (N'540423', N'5404', N'00,54,5404', N'墨脱县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540423', N'墨脱县', N'', N'', N'', N'', N'3', N'1', N''), (N'540424', N'5404', N'00,54,5404', N'波密县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540424', N'波密县', N'', N'', N'', N'', N'3', N'1', N''), (N'540425', N'5404', N'00,54,5404', N'察隅县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540425', N'察隅县', N'', N'', N'', N'', N'3', N'1', N''), (N'540426', N'5404', N'00,54,5404', N'朗县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540426', N'朗县', N'', N'', N'', N'', N'3', N'1', N''), (N'5405', N'54', N'00,54', N'山南市', N'54', N'西藏自治区', N'5405', N'山南市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540502', N'5405', N'00,54,5405', N'乃东区', N'54', N'西藏自治区', N'5405', N'山南市', N'540502', N'乃东区', N'', N'', N'', N'', N'3', N'1', N''), (N'540521', N'5405', N'00,54,5405', N'扎囊县', N'54', N'西藏自治区', N'5405', N'山南市', N'540521', N'扎囊县', N'', N'', N'', N'', N'3', N'1', N''), (N'540522', N'5405', N'00,54,5405', N'贡嘎县', N'54', N'西藏自治区', N'5405', N'山南市', N'540522', N'贡嘎县', N'', N'', N'', N'', N'3', N'1', N''), (N'540523', N'5405', N'00,54,5405', N'桑日县', N'54', N'西藏自治区', N'5405', N'山南市', N'540523', N'桑日县', N'', N'', N'', N'', N'3', N'1', N''), (N'540524', N'5405', N'00,54,5405', N'琼结县', N'54', N'西藏自治区', N'5405', N'山南市', N'540524', N'琼结县', N'', N'', N'', N'', N'3', N'1', N''), (N'540525', N'5405', N'00,54,5405', N'曲松县', N'54', N'西藏自治区', N'5405', N'山南市', N'540525', N'曲松县', N'', N'', N'', N'', N'3', N'1', N''), (N'540526', N'5405', N'00,54,5405', N'措美县', N'54', N'西藏自治区', N'5405', N'山南市', N'540526', N'措美县', N'', N'', N'', N'', N'3', N'1', N''), (N'540527', N'5405', N'00,54,5405', N'洛扎县', N'54', N'西藏自治区', N'5405', N'山南市', N'540527', N'洛扎县', N'', N'', N'', N'', N'3', N'1', N''), (N'540528', N'5405', N'00,54,5405', N'加查县', N'54', N'西藏自治区', N'5405', N'山南市', N'540528', N'加查县', N'', N'', N'', N'', N'3', N'1', N''), (N'540529', N'5405', N'00,54,5405', N'隆子县', N'54', N'西藏自治区', N'5405', N'山南市', N'540529', N'隆子县', N'', N'', N'', N'', N'3', N'1', N''), (N'540530', N'5405', N'00,54,5405', N'错那县', N'54', N'西藏自治区', N'5405', N'山南市', N'540530', N'错那县', N'', N'', N'', N'', N'3', N'1', N''), (N'540531', N'5405', N'00,54,5405', N'浪卡子县', N'54', N'西藏自治区', N'5405', N'山南市', N'540531', N'浪卡子县', N'', N'', N'', N'', N'3', N'1', N''), (N'5406', N'54', N'00,54', N'那曲市', N'54', N'西藏自治区', N'5406', N'那曲市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540602', N'5406', N'00,54,5406', N'色尼区', N'54', N'西藏自治区', N'5406', N'那曲市', N'540602', N'色尼区', N'', N'', N'', N'', N'3', N'1', N''), (N'540621', N'5406', N'00,54,5406', N'嘉黎县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540621', N'嘉黎县', N'', N'', N'', N'', N'3', N'1', N''), (N'540622', N'5406', N'00,54,5406', N'比如县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540622', N'比如县', N'', N'', N'', N'', N'3', N'1', N''), (N'540623', N'5406', N'00,54,5406', N'聂荣县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540623', N'聂荣县', N'', N'', N'', N'', N'3', N'1', N''), (N'540624', N'5406', N'00,54,5406', N'安多县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540624', N'安多县', N'', N'', N'', N'', N'3', N'1', N''), (N'540625', N'5406', N'00,54,5406', N'申扎县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540625', N'申扎县', N'', N'', N'', N'', N'3', N'1', N''), (N'540626', N'5406', N'00,54,5406', N'索县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540626', N'索县', N'', N'', N'', N'', N'3', N'1', N''), (N'540627', N'5406', N'00,54,5406', N'班戈县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540627', N'班戈县', N'', N'', N'', N'', N'3', N'1', N''), (N'540628', N'5406', N'00,54,5406', N'巴青县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540628', N'巴青县', N'', N'', N'', N'', N'3', N'1', N''), (N'540629', N'5406', N'00,54,5406', N'尼玛县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540629', N'尼玛县', N'', N'', N'', N'', N'3', N'1', N''), (N'540630', N'5406', N'00,54,5406', N'双湖县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540630', N'双湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'5425', N'54', N'00,54', N'阿里地区', N'54', N'西藏自治区', N'5425', N'阿里地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'542521', N'5425', N'00,54,5425', N'普兰县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542521', N'普兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'542522', N'5425', N'00,54,5425', N'札达县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542522', N'札达县', N'', N'', N'', N'', N'3', N'1', N''), (N'542523', N'5425', N'00,54,5425', N'噶尔县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542523', N'噶尔县', N'', N'', N'', N'', N'3', N'1', N''), (N'542524', N'5425', N'00,54,5425', N'日土县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542524', N'日土县', N'', N'', N'', N'', N'3', N'1', N''), (N'542525', N'5425', N'00,54,5425', N'革吉县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542525', N'革吉县', N'', N'', N'', N'', N'3', N'1', N''), (N'542526', N'5425', N'00,54,5425', N'改则县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542526', N'改则县', N'', N'', N'', N'', N'3', N'1', N''), (N'542527', N'5425', N'00,54,5425', N'措勤县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542527', N'措勤县', N'', N'', N'', N'', N'3', N'1', N''), (N'61', N'00', N'00', N'陕西省', N'61', N'陕西省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'6101', N'61', N'00,61', N'西安市', N'61', N'陕西省', N'6101', N'西安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610102', N'6101', N'00,61,6101', N'新城区', N'61', N'陕西省', N'6101', N'西安市', N'610102', N'新城区', N'', N'', N'', N'', N'3', N'1', N''), (N'610103', N'6101', N'00,61,6101', N'碑林区', N'61', N'陕西省', N'6101', N'西安市', N'610103', N'碑林区', N'', N'', N'', N'', N'3', N'1', N''), (N'610104', N'6101', N'00,61,6101', N'莲湖区', N'61', N'陕西省', N'6101', N'西安市', N'610104', N'莲湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'610111', N'6101', N'00,61,6101', N'灞桥区', N'61', N'陕西省', N'6101', N'西安市', N'610111', N'灞桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'610112', N'6101', N'00,61,6101', N'未央区', N'61', N'陕西省', N'6101', N'西安市', N'610112', N'未央区', N'', N'', N'', N'', N'3', N'1', N''), (N'610113', N'6101', N'00,61,6101', N'雁塔区', N'61', N'陕西省', N'6101', N'西安市', N'610113', N'雁塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'610114', N'6101', N'00,61,6101', N'阎良区', N'61', N'陕西省', N'6101', N'西安市', N'610114', N'阎良区', N'', N'', N'', N'', N'3', N'1', N''), (N'610115', N'6101', N'00,61,6101', N'临潼区', N'61', N'陕西省', N'6101', N'西安市', N'610115', N'临潼区', N'', N'', N'', N'', N'3', N'1', N''), (N'610116', N'6101', N'00,61,6101', N'长安区', N'61', N'陕西省', N'6101', N'西安市', N'610116', N'长安区', N'', N'', N'', N'', N'3', N'1', N''), (N'610117', N'6101', N'00,61,6101', N'高陵区', N'61', N'陕西省', N'6101', N'西安市', N'610117', N'高陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'610118', N'6101', N'00,61,6101', N'鄠邑区', N'61', N'陕西省', N'6101', N'西安市', N'610118', N'鄠邑区', N'', N'', N'', N'', N'3', N'1', N''), (N'610122', N'6101', N'00,61,6101', N'蓝田县', N'61', N'陕西省', N'6101', N'西安市', N'610122', N'蓝田县', N'', N'', N'', N'', N'3', N'1', N''), (N'610124', N'6101', N'00,61,6101', N'周至县', N'61', N'陕西省', N'6101', N'西安市', N'610124', N'周至县', N'', N'', N'', N'', N'3', N'1', N''), (N'6102', N'61', N'00,61', N'铜川市', N'61', N'陕西省', N'6102', N'铜川市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610202', N'6102', N'00,61,6102', N'王益区', N'61', N'陕西省', N'6102', N'铜川市', N'610202', N'王益区', N'', N'', N'', N'', N'3', N'1', N''), (N'610203', N'6102', N'00,61,6102', N'印台区', N'61', N'陕西省', N'6102', N'铜川市', N'610203', N'印台区', N'', N'', N'', N'', N'3', N'1', N''), (N'610204', N'6102', N'00,61,6102', N'耀州区', N'61', N'陕西省', N'6102', N'铜川市', N'610204', N'耀州区', N'', N'', N'', N'', N'3', N'1', N''), (N'610222', N'6102', N'00,61,6102', N'宜君县', N'61', N'陕西省', N'6102', N'铜川市', N'610222', N'宜君县', N'', N'', N'', N'', N'3', N'1', N''), (N'6103', N'61', N'00,61', N'宝鸡市', N'61', N'陕西省', N'6103', N'宝鸡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610302', N'6103', N'00,61,6103', N'渭滨区', N'61', N'陕西省', N'6103', N'宝鸡市', N'610302', N'渭滨区', N'', N'', N'', N'', N'3', N'1', N''), (N'610303', N'6103', N'00,61,6103', N'金台区', N'61', N'陕西省', N'6103', N'宝鸡市', N'610303', N'金台区', N'', N'', N'', N'', N'3', N'1', N''), (N'610304', N'6103', N'00,61,6103', N'陈仓区', N'61', N'陕西省', N'6103', N'宝鸡市', N'610304', N'陈仓区', N'', N'', N'', N'', N'3', N'1', N''), (N'610322', N'6103', N'00,61,6103', N'凤翔县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610322', N'凤翔县', N'', N'', N'', N'', N'3', N'1', N''), (N'610323', N'6103', N'00,61,6103', N'岐山县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610323', N'岐山县', N'', N'', N'', N'', N'3', N'1', N''), (N'610324', N'6103', N'00,61,6103', N'扶风县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610324', N'扶风县', N'', N'', N'', N'', N'3', N'1', N''), (N'610326', N'6103', N'00,61,6103', N'眉县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610326', N'眉县', N'', N'', N'', N'', N'3', N'1', N''), (N'610327', N'6103', N'00,61,6103', N'陇县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610327', N'陇县', N'', N'', N'', N'', N'3', N'1', N''), (N'610328', N'6103', N'00,61,6103', N'千阳县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610328', N'千阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610329', N'6103', N'00,61,6103', N'麟游县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610329', N'麟游县', N'', N'', N'', N'', N'3', N'1', N''), (N'610330', N'6103', N'00,61,6103', N'凤县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610330', N'凤县', N'', N'', N'', N'', N'3', N'1', N''), (N'610331', N'6103', N'00,61,6103', N'太白县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610331', N'太白县', N'', N'', N'', N'', N'3', N'1', N''), (N'6104', N'61', N'00,61', N'咸阳市', N'61', N'陕西省', N'6104', N'咸阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610402', N'6104', N'00,61,6104', N'秦都区', N'61', N'陕西省', N'6104', N'咸阳市', N'610402', N'秦都区', N'', N'', N'', N'', N'3', N'1', N''), (N'610403', N'6104', N'00,61,6104', N'杨陵区', N'61', N'陕西省', N'6104', N'咸阳市', N'610403', N'杨陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'610404', N'6104', N'00,61,6104', N'渭城区', N'61', N'陕西省', N'6104', N'咸阳市', N'610404', N'渭城区', N'', N'', N'', N'', N'3', N'1', N''), (N'610422', N'6104', N'00,61,6104', N'三原县', N'61', N'陕西省', N'6104', N'咸阳市', N'610422', N'三原县', N'', N'', N'', N'', N'3', N'1', N''), (N'610423', N'6104', N'00,61,6104', N'泾阳县', N'61', N'陕西省', N'6104', N'咸阳市', N'610423', N'泾阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610424', N'6104', N'00,61,6104', N'乾县', N'61', N'陕西省', N'6104', N'咸阳市', N'610424', N'乾县', N'', N'', N'', N'', N'3', N'1', N''), (N'610425', N'6104', N'00,61,6104', N'礼泉县', N'61', N'陕西省', N'6104', N'咸阳市', N'610425', N'礼泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'610426', N'6104', N'00,61,6104', N'永寿县', N'61', N'陕西省', N'6104', N'咸阳市', N'610426', N'永寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'610428', N'6104', N'00,61,6104', N'长武县', N'61', N'陕西省', N'6104', N'咸阳市', N'610428', N'长武县', N'', N'', N'', N'', N'3', N'1', N''), (N'610429', N'6104', N'00,61,6104', N'旬邑县', N'61', N'陕西省', N'6104', N'咸阳市', N'610429', N'旬邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'610430', N'6104', N'00,61,6104', N'淳化县', N'61', N'陕西省', N'6104', N'咸阳市', N'610430', N'淳化县', N'', N'', N'', N'', N'3', N'1', N''), (N'610431', N'6104', N'00,61,6104', N'武功县', N'61', N'陕西省', N'6104', N'咸阳市', N'610431', N'武功县', N'', N'', N'', N'', N'3', N'1', N''), (N'610481', N'6104', N'00,61,6104', N'兴平市', N'61', N'陕西省', N'6104', N'咸阳市', N'610481', N'兴平市', N'', N'', N'', N'', N'3', N'1', N''), (N'610482', N'6104', N'00,61,6104', N'彬州市', N'61', N'陕西省', N'6104', N'咸阳市', N'610482', N'彬州市', N'', N'', N'', N'', N'3', N'1', N''), (N'6105', N'61', N'00,61', N'渭南市', N'61', N'陕西省', N'6105', N'渭南市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610502', N'6105', N'00,61,6105', N'临渭区', N'61', N'陕西省', N'6105', N'渭南市', N'610502', N'临渭区', N'', N'', N'', N'', N'3', N'1', N''), (N'610503', N'6105', N'00,61,6105', N'华州区', N'61', N'陕西省', N'6105', N'渭南市', N'610503', N'华州区', N'', N'', N'', N'', N'3', N'1', N''), (N'610522', N'6105', N'00,61,6105', N'潼关县', N'61', N'陕西省', N'6105', N'渭南市', N'610522', N'潼关县', N'', N'', N'', N'', N'3', N'1', N''), (N'610523', N'6105', N'00,61,6105', N'大荔县', N'61', N'陕西省', N'6105', N'渭南市', N'610523', N'大荔县', N'', N'', N'', N'', N'3', N'1', N''), (N'610524', N'6105', N'00,61,6105', N'合阳县', N'61', N'陕西省', N'6105', N'渭南市', N'610524', N'合阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610525', N'6105', N'00,61,6105', N'澄城县', N'61', N'陕西省', N'6105', N'渭南市', N'610525', N'澄城县', N'', N'', N'', N'', N'3', N'1', N''), (N'610526', N'6105', N'00,61,6105', N'蒲城县', N'61', N'陕西省', N'6105', N'渭南市', N'610526', N'蒲城县', N'', N'', N'', N'', N'3', N'1', N''), (N'610527', N'6105', N'00,61,6105', N'白水县', N'61', N'陕西省', N'6105', N'渭南市', N'610527', N'白水县', N'', N'', N'', N'', N'3', N'1', N''), (N'610528', N'6105', N'00,61,6105', N'富平县', N'61', N'陕西省', N'6105', N'渭南市', N'610528', N'富平县', N'', N'', N'', N'', N'3', N'1', N''), (N'610581', N'6105', N'00,61,6105', N'韩城市', N'61', N'陕西省', N'6105', N'渭南市', N'610581', N'韩城市', N'', N'', N'', N'', N'3', N'1', N''), (N'610582', N'6105', N'00,61,6105', N'华阴市', N'61', N'陕西省', N'6105', N'渭南市', N'610582', N'华阴市', N'', N'', N'', N'', N'3', N'1', N''), (N'6106', N'61', N'00,61', N'延安市', N'61', N'陕西省', N'6106', N'延安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610602', N'6106', N'00,61,6106', N'宝塔区', N'61', N'陕西省', N'6106', N'延安市', N'610602', N'宝塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'610603', N'6106', N'00,61,6106', N'安塞区', N'61', N'陕西省', N'6106', N'延安市', N'610603', N'安塞区', N'', N'', N'', N'', N'3', N'1', N''), (N'610621', N'6106', N'00,61,6106', N'延长县', N'61', N'陕西省', N'6106', N'延安市', N'610621', N'延长县', N'', N'', N'', N'', N'3', N'1', N''), (N'610622', N'6106', N'00,61,6106', N'延川县', N'61', N'陕西省', N'6106', N'延安市', N'610622', N'延川县', N'', N'', N'', N'', N'3', N'1', N''), (N'610625', N'6106', N'00,61,6106', N'志丹县', N'61', N'陕西省', N'6106', N'延安市', N'610625', N'志丹县', N'', N'', N'', N'', N'3', N'1', N''), (N'610626', N'6106', N'00,61,6106', N'吴起县', N'61', N'陕西省', N'6106', N'延安市', N'610626', N'吴起县', N'', N'', N'', N'', N'3', N'1', N''), (N'610627', N'6106', N'00,61,6106', N'甘泉县', N'61', N'陕西省', N'6106', N'延安市', N'610627', N'甘泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'610628', N'6106', N'00,61,6106', N'富县', N'61', N'陕西省', N'6106', N'延安市', N'610628', N'富县', N'', N'', N'', N'', N'3', N'1', N''), (N'610629', N'6106', N'00,61,6106', N'洛川县', N'61', N'陕西省', N'6106', N'延安市', N'610629', N'洛川县', N'', N'', N'', N'', N'3', N'1', N''), (N'610630', N'6106', N'00,61,6106', N'宜川县', N'61', N'陕西省', N'6106', N'延安市', N'610630', N'宜川县', N'', N'', N'', N'', N'3', N'1', N''), (N'610631', N'6106', N'00,61,6106', N'黄龙县', N'61', N'陕西省', N'6106', N'延安市', N'610631', N'黄龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'610632', N'6106', N'00,61,6106', N'黄陵县', N'61', N'陕西省', N'6106', N'延安市', N'610632', N'黄陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'610681', N'6106', N'00,61,6106', N'子长市', N'61', N'陕西省', N'6106', N'延安市', N'610681', N'子长市', N'', N'', N'', N'', N'3', N'1', N''), (N'6107', N'61', N'00,61', N'汉中市', N'61', N'陕西省', N'6107', N'汉中市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610702', N'6107', N'00,61,6107', N'汉台区', N'61', N'陕西省', N'6107', N'汉中市', N'610702', N'汉台区', N'', N'', N'', N'', N'3', N'1', N''), (N'610703', N'6107', N'00,61,6107', N'南郑区', N'61', N'陕西省', N'6107', N'汉中市', N'610703', N'南郑区', N'', N'', N'', N'', N'3', N'1', N''), (N'610722', N'6107', N'00,61,6107', N'城固县', N'61', N'陕西省', N'6107', N'汉中市', N'610722', N'城固县', N'', N'', N'', N'', N'3', N'1', N''), (N'610723', N'6107', N'00,61,6107', N'洋县', N'61', N'陕西省', N'6107', N'汉中市', N'610723', N'洋县', N'', N'', N'', N'', N'3', N'1', N''), (N'610724', N'6107', N'00,61,6107', N'西乡县', N'61', N'陕西省', N'6107', N'汉中市', N'610724', N'西乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'610725', N'6107', N'00,61,6107', N'勉县', N'61', N'陕西省', N'6107', N'汉中市', N'610725', N'勉县', N'', N'', N'', N'', N'3', N'1', N''), (N'610726', N'6107', N'00,61,6107', N'宁强县', N'61', N'陕西省', N'6107', N'汉中市', N'610726', N'宁强县', N'', N'', N'', N'', N'3', N'1', N''), (N'610727', N'6107', N'00,61,6107', N'略阳县', N'61', N'陕西省', N'6107', N'汉中市', N'610727', N'略阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610728', N'6107', N'00,61,6107', N'镇巴县', N'61', N'陕西省', N'6107', N'汉中市', N'610728', N'镇巴县', N'', N'', N'', N'', N'3', N'1', N''), (N'610729', N'6107', N'00,61,6107', N'留坝县', N'61', N'陕西省', N'6107', N'汉中市', N'610729', N'留坝县', N'', N'', N'', N'', N'3', N'1', N''), (N'610730', N'6107', N'00,61,6107', N'佛坪县', N'61', N'陕西省', N'6107', N'汉中市', N'610730', N'佛坪县', N'', N'', N'', N'', N'3', N'1', N''), (N'6108', N'61', N'00,61', N'榆林市', N'61', N'陕西省', N'6108', N'榆林市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610802', N'6108', N'00,61,6108', N'榆阳区', N'61', N'陕西省', N'6108', N'榆林市', N'610802', N'榆阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'610803', N'6108', N'00,61,6108', N'横山区', N'61', N'陕西省', N'6108', N'榆林市', N'610803', N'横山区', N'', N'', N'', N'', N'3', N'1', N''), (N'610822', N'6108', N'00,61,6108', N'府谷县', N'61', N'陕西省', N'6108', N'榆林市', N'610822', N'府谷县', N'', N'', N'', N'', N'3', N'1', N''), (N'610824', N'6108', N'00,61,6108', N'靖边县', N'61', N'陕西省', N'6108', N'榆林市', N'610824', N'靖边县', N'', N'', N'', N'', N'3', N'1', N''), (N'610825', N'6108', N'00,61,6108', N'定边县', N'61', N'陕西省', N'6108', N'榆林市', N'610825', N'定边县', N'', N'', N'', N'', N'3', N'1', N''), (N'610826', N'6108', N'00,61,6108', N'绥德县', N'61', N'陕西省', N'6108', N'榆林市', N'610826', N'绥德县', N'', N'', N'', N'', N'3', N'1', N''), (N'610827', N'6108', N'00,61,6108', N'米脂县', N'61', N'陕西省', N'6108', N'榆林市', N'610827', N'米脂县', N'', N'', N'', N'', N'3', N'1', N''), (N'610828', N'6108', N'00,61,6108', N'佳县', N'61', N'陕西省', N'6108', N'榆林市', N'610828', N'佳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610829', N'6108', N'00,61,6108', N'吴堡县', N'61', N'陕西省', N'6108', N'榆林市', N'610829', N'吴堡县', N'', N'', N'', N'', N'3', N'1', N''), (N'610830', N'6108', N'00,61,6108', N'清涧县', N'61', N'陕西省', N'6108', N'榆林市', N'610830', N'清涧县', N'', N'', N'', N'', N'3', N'1', N'')
+GO
+
+INSERT INTO [dbo].[blade_region] VALUES (N'610831', N'6108', N'00,61,6108', N'子洲县', N'61', N'陕西省', N'6108', N'榆林市', N'610831', N'子洲县', N'', N'', N'', N'', N'3', N'1', N''), (N'610881', N'6108', N'00,61,6108', N'神木市', N'61', N'陕西省', N'6108', N'榆林市', N'610881', N'神木市', N'', N'', N'', N'', N'3', N'1', N''), (N'6109', N'61', N'00,61', N'安康市', N'61', N'陕西省', N'6109', N'安康市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610902', N'6109', N'00,61,6109', N'汉滨区', N'61', N'陕西省', N'6109', N'安康市', N'610902', N'汉滨区', N'', N'', N'', N'', N'3', N'1', N''), (N'610921', N'6109', N'00,61,6109', N'汉阴县', N'61', N'陕西省', N'6109', N'安康市', N'610921', N'汉阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'610922', N'6109', N'00,61,6109', N'石泉县', N'61', N'陕西省', N'6109', N'安康市', N'610922', N'石泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'610923', N'6109', N'00,61,6109', N'宁陕县', N'61', N'陕西省', N'6109', N'安康市', N'610923', N'宁陕县', N'', N'', N'', N'', N'3', N'1', N''), (N'610924', N'6109', N'00,61,6109', N'紫阳县', N'61', N'陕西省', N'6109', N'安康市', N'610924', N'紫阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610925', N'6109', N'00,61,6109', N'岚皋县', N'61', N'陕西省', N'6109', N'安康市', N'610925', N'岚皋县', N'', N'', N'', N'', N'3', N'1', N''), (N'610926', N'6109', N'00,61,6109', N'平利县', N'61', N'陕西省', N'6109', N'安康市', N'610926', N'平利县', N'', N'', N'', N'', N'3', N'1', N''), (N'610927', N'6109', N'00,61,6109', N'镇坪县', N'61', N'陕西省', N'6109', N'安康市', N'610927', N'镇坪县', N'', N'', N'', N'', N'3', N'1', N''), (N'610928', N'6109', N'00,61,6109', N'旬阳县', N'61', N'陕西省', N'6109', N'安康市', N'610928', N'旬阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610929', N'6109', N'00,61,6109', N'白河县', N'61', N'陕西省', N'6109', N'安康市', N'610929', N'白河县', N'', N'', N'', N'', N'3', N'1', N''), (N'6110', N'61', N'00,61', N'商洛市', N'61', N'陕西省', N'6110', N'商洛市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'611002', N'6110', N'00,61,6110', N'商州区', N'61', N'陕西省', N'6110', N'商洛市', N'611002', N'商州区', N'', N'', N'', N'', N'3', N'1', N''), (N'611021', N'6110', N'00,61,6110', N'洛南县', N'61', N'陕西省', N'6110', N'商洛市', N'611021', N'洛南县', N'', N'', N'', N'', N'3', N'1', N''), (N'611022', N'6110', N'00,61,6110', N'丹凤县', N'61', N'陕西省', N'6110', N'商洛市', N'611022', N'丹凤县', N'', N'', N'', N'', N'3', N'1', N''), (N'611023', N'6110', N'00,61,6110', N'商南县', N'61', N'陕西省', N'6110', N'商洛市', N'611023', N'商南县', N'', N'', N'', N'', N'3', N'1', N''), (N'611024', N'6110', N'00,61,6110', N'山阳县', N'61', N'陕西省', N'6110', N'商洛市', N'611024', N'山阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'611025', N'6110', N'00,61,6110', N'镇安县', N'61', N'陕西省', N'6110', N'商洛市', N'611025', N'镇安县', N'', N'', N'', N'', N'3', N'1', N''), (N'611026', N'6110', N'00,61,6110', N'柞水县', N'61', N'陕西省', N'6110', N'商洛市', N'611026', N'柞水县', N'', N'', N'', N'', N'3', N'1', N''), (N'62', N'00', N'00', N'甘肃省', N'62', N'甘肃省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'6201', N'62', N'00,62', N'兰州市', N'62', N'甘肃省', N'6201', N'兰州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620102', N'6201', N'00,62,6201', N'城关区', N'62', N'甘肃省', N'6201', N'兰州市', N'620102', N'城关区', N'', N'', N'', N'', N'3', N'1', N''), (N'620103', N'6201', N'00,62,6201', N'七里河区', N'62', N'甘肃省', N'6201', N'兰州市', N'620103', N'七里河区', N'', N'', N'', N'', N'3', N'1', N''), (N'620104', N'6201', N'00,62,6201', N'西固区', N'62', N'甘肃省', N'6201', N'兰州市', N'620104', N'西固区', N'', N'', N'', N'', N'3', N'1', N''), (N'620105', N'6201', N'00,62,6201', N'安宁区', N'62', N'甘肃省', N'6201', N'兰州市', N'620105', N'安宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'620111', N'6201', N'00,62,6201', N'红古区', N'62', N'甘肃省', N'6201', N'兰州市', N'620111', N'红古区', N'', N'', N'', N'', N'3', N'1', N''), (N'620121', N'6201', N'00,62,6201', N'永登县', N'62', N'甘肃省', N'6201', N'兰州市', N'620121', N'永登县', N'', N'', N'', N'', N'3', N'1', N''), (N'620122', N'6201', N'00,62,6201', N'皋兰县', N'62', N'甘肃省', N'6201', N'兰州市', N'620122', N'皋兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'620123', N'6201', N'00,62,6201', N'榆中县', N'62', N'甘肃省', N'6201', N'兰州市', N'620123', N'榆中县', N'', N'', N'', N'', N'3', N'1', N''), (N'6202', N'62', N'00,62', N'嘉峪关市', N'62', N'甘肃省', N'6202', N'嘉峪关市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620200', N'6202', N'00,62,6202', N'嘉峪关市', N'62', N'甘肃省', N'6202', N'嘉峪关市', N'620200', N'嘉峪关市', N'', N'', N'', N'', N'3', N'1', N''), (N'6203', N'62', N'00,62', N'金昌市', N'62', N'甘肃省', N'6203', N'金昌市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620302', N'6203', N'00,62,6203', N'金川区', N'62', N'甘肃省', N'6203', N'金昌市', N'620302', N'金川区', N'', N'', N'', N'', N'3', N'1', N''), (N'620321', N'6203', N'00,62,6203', N'永昌县', N'62', N'甘肃省', N'6203', N'金昌市', N'620321', N'永昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'6204', N'62', N'00,62', N'白银市', N'62', N'甘肃省', N'6204', N'白银市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620402', N'6204', N'00,62,6204', N'白银区', N'62', N'甘肃省', N'6204', N'白银市', N'620402', N'白银区', N'', N'', N'', N'', N'3', N'1', N''), (N'620403', N'6204', N'00,62,6204', N'平川区', N'62', N'甘肃省', N'6204', N'白银市', N'620403', N'平川区', N'', N'', N'', N'', N'3', N'1', N''), (N'620421', N'6204', N'00,62,6204', N'靖远县', N'62', N'甘肃省', N'6204', N'白银市', N'620421', N'靖远县', N'', N'', N'', N'', N'3', N'1', N''), (N'620422', N'6204', N'00,62,6204', N'会宁县', N'62', N'甘肃省', N'6204', N'白银市', N'620422', N'会宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'620423', N'6204', N'00,62,6204', N'景泰县', N'62', N'甘肃省', N'6204', N'白银市', N'620423', N'景泰县', N'', N'', N'', N'', N'3', N'1', N''), (N'6205', N'62', N'00,62', N'天水市', N'62', N'甘肃省', N'6205', N'天水市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620502', N'6205', N'00,62,6205', N'秦州区', N'62', N'甘肃省', N'6205', N'天水市', N'620502', N'秦州区', N'', N'', N'', N'', N'3', N'1', N''), (N'620503', N'6205', N'00,62,6205', N'麦积区', N'62', N'甘肃省', N'6205', N'天水市', N'620503', N'麦积区', N'', N'', N'', N'', N'3', N'1', N''), (N'620521', N'6205', N'00,62,6205', N'清水县', N'62', N'甘肃省', N'6205', N'天水市', N'620521', N'清水县', N'', N'', N'', N'', N'3', N'1', N''), (N'620522', N'6205', N'00,62,6205', N'秦安县', N'62', N'甘肃省', N'6205', N'天水市', N'620522', N'秦安县', N'', N'', N'', N'', N'3', N'1', N''), (N'620523', N'6205', N'00,62,6205', N'甘谷县', N'62', N'甘肃省', N'6205', N'天水市', N'620523', N'甘谷县', N'', N'', N'', N'', N'3', N'1', N''), (N'620524', N'6205', N'00,62,6205', N'武山县', N'62', N'甘肃省', N'6205', N'天水市', N'620524', N'武山县', N'', N'', N'', N'', N'3', N'1', N''), (N'620525', N'6205', N'00,62,6205', N'张家川回族自治县', N'62', N'甘肃省', N'6205', N'天水市', N'620525', N'张家川回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6206', N'62', N'00,62', N'武威市', N'62', N'甘肃省', N'6206', N'武威市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620602', N'6206', N'00,62,6206', N'凉州区', N'62', N'甘肃省', N'6206', N'武威市', N'620602', N'凉州区', N'', N'', N'', N'', N'3', N'1', N''), (N'620621', N'6206', N'00,62,6206', N'民勤县', N'62', N'甘肃省', N'6206', N'武威市', N'620621', N'民勤县', N'', N'', N'', N'', N'3', N'1', N''), (N'620622', N'6206', N'00,62,6206', N'古浪县', N'62', N'甘肃省', N'6206', N'武威市', N'620622', N'古浪县', N'', N'', N'', N'', N'3', N'1', N''), (N'620623', N'6206', N'00,62,6206', N'天祝藏族自治县', N'62', N'甘肃省', N'6206', N'武威市', N'620623', N'天祝藏族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6207', N'62', N'00,62', N'张掖市', N'62', N'甘肃省', N'6207', N'张掖市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620702', N'6207', N'00,62,6207', N'甘州区', N'62', N'甘肃省', N'6207', N'张掖市', N'620702', N'甘州区', N'', N'', N'', N'', N'3', N'1', N''), (N'620721', N'6207', N'00,62,6207', N'肃南裕固族自治县', N'62', N'甘肃省', N'6207', N'张掖市', N'620721', N'肃南裕固族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'620722', N'6207', N'00,62,6207', N'民乐县', N'62', N'甘肃省', N'6207', N'张掖市', N'620722', N'民乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'620723', N'6207', N'00,62,6207', N'临泽县', N'62', N'甘肃省', N'6207', N'张掖市', N'620723', N'临泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'620724', N'6207', N'00,62,6207', N'高台县', N'62', N'甘肃省', N'6207', N'张掖市', N'620724', N'高台县', N'', N'', N'', N'', N'3', N'1', N''), (N'620725', N'6207', N'00,62,6207', N'山丹县', N'62', N'甘肃省', N'6207', N'张掖市', N'620725', N'山丹县', N'', N'', N'', N'', N'3', N'1', N''), (N'6208', N'62', N'00,62', N'平凉市', N'62', N'甘肃省', N'6208', N'平凉市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620802', N'6208', N'00,62,6208', N'崆峒区', N'62', N'甘肃省', N'6208', N'平凉市', N'620802', N'崆峒区', N'', N'', N'', N'', N'3', N'1', N''), (N'620821', N'6208', N'00,62,6208', N'泾川县', N'62', N'甘肃省', N'6208', N'平凉市', N'620821', N'泾川县', N'', N'', N'', N'', N'3', N'1', N''), (N'620822', N'6208', N'00,62,6208', N'灵台县', N'62', N'甘肃省', N'6208', N'平凉市', N'620822', N'灵台县', N'', N'', N'', N'', N'3', N'1', N''), (N'620823', N'6208', N'00,62,6208', N'崇信县', N'62', N'甘肃省', N'6208', N'平凉市', N'620823', N'崇信县', N'', N'', N'', N'', N'3', N'1', N''), (N'620825', N'6208', N'00,62,6208', N'庄浪县', N'62', N'甘肃省', N'6208', N'平凉市', N'620825', N'庄浪县', N'', N'', N'', N'', N'3', N'1', N''), (N'620826', N'6208', N'00,62,6208', N'静宁县', N'62', N'甘肃省', N'6208', N'平凉市', N'620826', N'静宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'620881', N'6208', N'00,62,6208', N'华亭市', N'62', N'甘肃省', N'6208', N'平凉市', N'620881', N'华亭市', N'', N'', N'', N'', N'3', N'1', N''), (N'6209', N'62', N'00,62', N'酒泉市', N'62', N'甘肃省', N'6209', N'酒泉市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620902', N'6209', N'00,62,6209', N'肃州区', N'62', N'甘肃省', N'6209', N'酒泉市', N'620902', N'肃州区', N'', N'', N'', N'', N'3', N'1', N''), (N'620921', N'6209', N'00,62,6209', N'金塔县', N'62', N'甘肃省', N'6209', N'酒泉市', N'620921', N'金塔县', N'', N'', N'', N'', N'3', N'1', N''), (N'620922', N'6209', N'00,62,6209', N'瓜州县', N'62', N'甘肃省', N'6209', N'酒泉市', N'620922', N'瓜州县', N'', N'', N'', N'', N'3', N'1', N''), (N'620923', N'6209', N'00,62,6209', N'肃北蒙古族自治县', N'62', N'甘肃省', N'6209', N'酒泉市', N'620923', N'肃北蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'620924', N'6209', N'00,62,6209', N'阿克塞哈萨克族自治县', N'62', N'甘肃省', N'6209', N'酒泉市', N'620924', N'阿克塞哈萨克族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'620981', N'6209', N'00,62,6209', N'玉门市', N'62', N'甘肃省', N'6209', N'酒泉市', N'620981', N'玉门市', N'', N'', N'', N'', N'3', N'1', N''), (N'620982', N'6209', N'00,62,6209', N'敦煌市', N'62', N'甘肃省', N'6209', N'酒泉市', N'620982', N'敦煌市', N'', N'', N'', N'', N'3', N'1', N''), (N'6210', N'62', N'00,62', N'庆阳市', N'62', N'甘肃省', N'6210', N'庆阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'621002', N'6210', N'00,62,6210', N'西峰区', N'62', N'甘肃省', N'6210', N'庆阳市', N'621002', N'西峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'621021', N'6210', N'00,62,6210', N'庆城县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621021', N'庆城县', N'', N'', N'', N'', N'3', N'1', N''), (N'621022', N'6210', N'00,62,6210', N'环县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621022', N'环县', N'', N'', N'', N'', N'3', N'1', N''), (N'621023', N'6210', N'00,62,6210', N'华池县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621023', N'华池县', N'', N'', N'', N'', N'3', N'1', N''), (N'621024', N'6210', N'00,62,6210', N'合水县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621024', N'合水县', N'', N'', N'', N'', N'3', N'1', N''), (N'621025', N'6210', N'00,62,6210', N'正宁县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621025', N'正宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'621026', N'6210', N'00,62,6210', N'宁县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621026', N'宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'621027', N'6210', N'00,62,6210', N'镇原县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621027', N'镇原县', N'', N'', N'', N'', N'3', N'1', N''), (N'6211', N'62', N'00,62', N'定西市', N'62', N'甘肃省', N'6211', N'定西市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'621102', N'6211', N'00,62,6211', N'安定区', N'62', N'甘肃省', N'6211', N'定西市', N'621102', N'安定区', N'', N'', N'', N'', N'3', N'1', N''), (N'621121', N'6211', N'00,62,6211', N'通渭县', N'62', N'甘肃省', N'6211', N'定西市', N'621121', N'通渭县', N'', N'', N'', N'', N'3', N'1', N''), (N'621122', N'6211', N'00,62,6211', N'陇西县', N'62', N'甘肃省', N'6211', N'定西市', N'621122', N'陇西县', N'', N'', N'', N'', N'3', N'1', N''), (N'621123', N'6211', N'00,62,6211', N'渭源县', N'62', N'甘肃省', N'6211', N'定西市', N'621123', N'渭源县', N'', N'', N'', N'', N'3', N'1', N''), (N'621124', N'6211', N'00,62,6211', N'临洮县', N'62', N'甘肃省', N'6211', N'定西市', N'621124', N'临洮县', N'', N'', N'', N'', N'3', N'1', N''), (N'621125', N'6211', N'00,62,6211', N'漳县', N'62', N'甘肃省', N'6211', N'定西市', N'621125', N'漳县', N'', N'', N'', N'', N'3', N'1', N''), (N'621126', N'6211', N'00,62,6211', N'岷县', N'62', N'甘肃省', N'6211', N'定西市', N'621126', N'岷县', N'', N'', N'', N'', N'3', N'1', N''), (N'6212', N'62', N'00,62', N'陇南市', N'62', N'甘肃省', N'6212', N'陇南市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'621202', N'6212', N'00,62,6212', N'武都区', N'62', N'甘肃省', N'6212', N'陇南市', N'621202', N'武都区', N'', N'', N'', N'', N'3', N'1', N''), (N'621221', N'6212', N'00,62,6212', N'成县', N'62', N'甘肃省', N'6212', N'陇南市', N'621221', N'成县', N'', N'', N'', N'', N'3', N'1', N''), (N'621222', N'6212', N'00,62,6212', N'文县', N'62', N'甘肃省', N'6212', N'陇南市', N'621222', N'文县', N'', N'', N'', N'', N'3', N'1', N''), (N'621223', N'6212', N'00,62,6212', N'宕昌县', N'62', N'甘肃省', N'6212', N'陇南市', N'621223', N'宕昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'621224', N'6212', N'00,62,6212', N'康县', N'62', N'甘肃省', N'6212', N'陇南市', N'621224', N'康县', N'', N'', N'', N'', N'3', N'1', N''), (N'621225', N'6212', N'00,62,6212', N'西和县', N'62', N'甘肃省', N'6212', N'陇南市', N'621225', N'西和县', N'', N'', N'', N'', N'3', N'1', N''), (N'621226', N'6212', N'00,62,6212', N'礼县', N'62', N'甘肃省', N'6212', N'陇南市', N'621226', N'礼县', N'', N'', N'', N'', N'3', N'1', N''), (N'621227', N'6212', N'00,62,6212', N'徽县', N'62', N'甘肃省', N'6212', N'陇南市', N'621227', N'徽县', N'', N'', N'', N'', N'3', N'1', N''), (N'621228', N'6212', N'00,62,6212', N'两当县', N'62', N'甘肃省', N'6212', N'陇南市', N'621228', N'两当县', N'', N'', N'', N'', N'3', N'1', N''), (N'6229', N'62', N'00,62', N'临夏回族自治州', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'622901', N'6229', N'00,62,6229', N'临夏市', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622901', N'临夏市', N'', N'', N'', N'', N'3', N'1', N''), (N'622921', N'6229', N'00,62,6229', N'临夏县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622921', N'临夏县', N'', N'', N'', N'', N'3', N'1', N''), (N'622922', N'6229', N'00,62,6229', N'康乐县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622922', N'康乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'622923', N'6229', N'00,62,6229', N'永靖县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622923', N'永靖县', N'', N'', N'', N'', N'3', N'1', N''), (N'622924', N'6229', N'00,62,6229', N'广河县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622924', N'广河县', N'', N'', N'', N'', N'3', N'1', N''), (N'622925', N'6229', N'00,62,6229', N'和政县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622925', N'和政县', N'', N'', N'', N'', N'3', N'1', N''), (N'622926', N'6229', N'00,62,6229', N'东乡族自治县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622926', N'东乡族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'622927', N'6229', N'00,62,6229', N'积石山保安族东乡族撒拉族自治县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622927', N'积石山保安族东乡族撒拉族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6230', N'62', N'00,62', N'甘南藏族自治州', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'623001', N'6230', N'00,62,6230', N'合作市', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623001', N'合作市', N'', N'', N'', N'', N'3', N'1', N''), (N'623021', N'6230', N'00,62,6230', N'临潭县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623021', N'临潭县', N'', N'', N'', N'', N'3', N'1', N''), (N'623022', N'6230', N'00,62,6230', N'卓尼县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623022', N'卓尼县', N'', N'', N'', N'', N'3', N'1', N''), (N'623023', N'6230', N'00,62,6230', N'舟曲县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623023', N'舟曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'623024', N'6230', N'00,62,6230', N'迭部县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623024', N'迭部县', N'', N'', N'', N'', N'3', N'1', N''), (N'623025', N'6230', N'00,62,6230', N'玛曲县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623025', N'玛曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'623026', N'6230', N'00,62,6230', N'碌曲县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623026', N'碌曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'623027', N'6230', N'00,62,6230', N'夏河县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623027', N'夏河县', N'', N'', N'', N'', N'3', N'1', N''), (N'63', N'00', N'00', N'青海省', N'63', N'青海省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'6301', N'63', N'00,63', N'西宁市', N'63', N'青海省', N'6301', N'西宁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'630102', N'6301', N'00,63,6301', N'城东区', N'63', N'青海省', N'6301', N'西宁市', N'630102', N'城东区', N'', N'', N'', N'', N'3', N'1', N''), (N'630103', N'6301', N'00,63,6301', N'城中区', N'63', N'青海省', N'6301', N'西宁市', N'630103', N'城中区', N'', N'', N'', N'', N'3', N'1', N''), (N'630104', N'6301', N'00,63,6301', N'城西区', N'63', N'青海省', N'6301', N'西宁市', N'630104', N'城西区', N'', N'', N'', N'', N'3', N'1', N''), (N'630105', N'6301', N'00,63,6301', N'城北区', N'63', N'青海省', N'6301', N'西宁市', N'630105', N'城北区', N'', N'', N'', N'', N'3', N'1', N''), (N'630106', N'6301', N'00,63,6301', N'湟中区', N'63', N'青海省', N'6301', N'西宁市', N'630106', N'湟中区', N'', N'', N'', N'', N'3', N'1', N''), (N'630121', N'6301', N'00,63,6301', N'大通回族土族自治县', N'63', N'青海省', N'6301', N'西宁市', N'630121', N'大通回族土族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'630123', N'6301', N'00,63,6301', N'湟源县', N'63', N'青海省', N'6301', N'西宁市', N'630123', N'湟源县', N'', N'', N'', N'', N'3', N'1', N''), (N'6302', N'63', N'00,63', N'海东市', N'63', N'青海省', N'6302', N'海东市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'630202', N'6302', N'00,63,6302', N'乐都区', N'63', N'青海省', N'6302', N'海东市', N'630202', N'乐都区', N'', N'', N'', N'', N'3', N'1', N''), (N'630203', N'6302', N'00,63,6302', N'平安区', N'63', N'青海省', N'6302', N'海东市', N'630203', N'平安区', N'', N'', N'', N'', N'3', N'1', N''), (N'630222', N'6302', N'00,63,6302', N'民和回族土族自治县', N'63', N'青海省', N'6302', N'海东市', N'630222', N'民和回族土族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'630223', N'6302', N'00,63,6302', N'互助土族自治县', N'63', N'青海省', N'6302', N'海东市', N'630223', N'互助土族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'630224', N'6302', N'00,63,6302', N'化隆回族自治县', N'63', N'青海省', N'6302', N'海东市', N'630224', N'化隆回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'630225', N'6302', N'00,63,6302', N'循化撒拉族自治县', N'63', N'青海省', N'6302', N'海东市', N'630225', N'循化撒拉族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6322', N'63', N'00,63', N'海北藏族自治州', N'63', N'青海省', N'6322', N'海北藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632221', N'6322', N'00,63,6322', N'门源回族自治县', N'63', N'青海省', N'6322', N'海北藏族自治州', N'632221', N'门源回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'632222', N'6322', N'00,63,6322', N'祁连县', N'63', N'青海省', N'6322', N'海北藏族自治州', N'632222', N'祁连县', N'', N'', N'', N'', N'3', N'1', N''), (N'632223', N'6322', N'00,63,6322', N'海晏县', N'63', N'青海省', N'6322', N'海北藏族自治州', N'632223', N'海晏县', N'', N'', N'', N'', N'3', N'1', N''), (N'632224', N'6322', N'00,63,6322', N'刚察县', N'63', N'青海省', N'6322', N'海北藏族自治州', N'632224', N'刚察县', N'', N'', N'', N'', N'3', N'1', N''), (N'6323', N'63', N'00,63', N'黄南藏族自治州', N'63', N'青海省', N'6323', N'黄南藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632321', N'6323', N'00,63,6323', N'同仁县', N'63', N'青海省', N'6323', N'黄南藏族自治州', N'632321', N'同仁县', N'', N'', N'', N'', N'3', N'1', N''), (N'632322', N'6323', N'00,63,6323', N'尖扎县', N'63', N'青海省', N'6323', N'黄南藏族自治州', N'632322', N'尖扎县', N'', N'', N'', N'', N'3', N'1', N''), (N'632323', N'6323', N'00,63,6323', N'泽库县', N'63', N'青海省', N'6323', N'黄南藏族自治州', N'632323', N'泽库县', N'', N'', N'', N'', N'3', N'1', N''), (N'632324', N'6323', N'00,63,6323', N'河南蒙古族自治县', N'63', N'青海省', N'6323', N'黄南藏族自治州', N'632324', N'河南蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6325', N'63', N'00,63', N'海南藏族自治州', N'63', N'青海省', N'6325', N'海南藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632521', N'6325', N'00,63,6325', N'共和县', N'63', N'青海省', N'6325', N'海南藏族自治州', N'632521', N'共和县', N'', N'', N'', N'', N'3', N'1', N''), (N'632522', N'6325', N'00,63,6325', N'同德县', N'63', N'青海省', N'6325', N'海南藏族自治州', N'632522', N'同德县', N'', N'', N'', N'', N'3', N'1', N''), (N'632523', N'6325', N'00,63,6325', N'贵德县', N'63', N'青海省', N'6325', N'海南藏族自治州', N'632523', N'贵德县', N'', N'', N'', N'', N'3', N'1', N''), (N'632524', N'6325', N'00,63,6325', N'兴海县', N'63', N'青海省', N'6325', N'海南藏族自治州', N'632524', N'兴海县', N'', N'', N'', N'', N'3', N'1', N''), (N'632525', N'6325', N'00,63,6325', N'贵南县', N'63', N'青海省', N'6325', N'海南藏族自治州', N'632525', N'贵南县', N'', N'', N'', N'', N'3', N'1', N''), (N'6326', N'63', N'00,63', N'果洛藏族自治州', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632621', N'6326', N'00,63,6326', N'玛沁县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632621', N'玛沁县', N'', N'', N'', N'', N'3', N'1', N''), (N'632622', N'6326', N'00,63,6326', N'班玛县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632622', N'班玛县', N'', N'', N'', N'', N'3', N'1', N''), (N'632623', N'6326', N'00,63,6326', N'甘德县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632623', N'甘德县', N'', N'', N'', N'', N'3', N'1', N''), (N'632624', N'6326', N'00,63,6326', N'达日县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632624', N'达日县', N'', N'', N'', N'', N'3', N'1', N''), (N'632625', N'6326', N'00,63,6326', N'久治县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632625', N'久治县', N'', N'', N'', N'', N'3', N'1', N''), (N'632626', N'6326', N'00,63,6326', N'玛多县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632626', N'玛多县', N'', N'', N'', N'', N'3', N'1', N''), (N'6327', N'63', N'00,63', N'玉树藏族自治州', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632701', N'6327', N'00,63,6327', N'玉树市', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632701', N'玉树市', N'', N'', N'', N'', N'3', N'1', N''), (N'632722', N'6327', N'00,63,6327', N'杂多县', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632722', N'杂多县', N'', N'', N'', N'', N'3', N'1', N''), (N'632723', N'6327', N'00,63,6327', N'称多县', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632723', N'称多县', N'', N'', N'', N'', N'3', N'1', N''), (N'632724', N'6327', N'00,63,6327', N'治多县', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632724', N'治多县', N'', N'', N'', N'', N'3', N'1', N''), (N'632725', N'6327', N'00,63,6327', N'囊谦县', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632725', N'囊谦县', N'', N'', N'', N'', N'3', N'1', N''), (N'632726', N'6327', N'00,63,6327', N'曲麻莱县', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632726', N'曲麻莱县', N'', N'', N'', N'', N'3', N'1', N''), (N'6328', N'63', N'00,63', N'海西蒙古族藏族自治州', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632801', N'6328', N'00,63,6328', N'格尔木市', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632801', N'格尔木市', N'', N'', N'', N'', N'3', N'1', N''), (N'632802', N'6328', N'00,63,6328', N'德令哈市', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632802', N'德令哈市', N'', N'', N'', N'', N'3', N'1', N''), (N'632803', N'6328', N'00,63,6328', N'茫崖市', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632803', N'茫崖市', N'', N'', N'', N'', N'3', N'1', N''), (N'632821', N'6328', N'00,63,6328', N'乌兰县', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632821', N'乌兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'632822', N'6328', N'00,63,6328', N'都兰县', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632822', N'都兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'632823', N'6328', N'00,63,6328', N'天峻县', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632823', N'天峻县', N'', N'', N'', N'', N'3', N'1', N''), (N'64', N'00', N'00', N'宁夏回族自治区', N'64', N'宁夏回族自治区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'6401', N'64', N'00,64', N'银川市', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'640104', N'6401', N'00,64,6401', N'兴庆区', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640104', N'兴庆区', N'', N'', N'', N'', N'3', N'1', N''), (N'640105', N'6401', N'00,64,6401', N'西夏区', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640105', N'西夏区', N'', N'', N'', N'', N'3', N'1', N''), (N'640106', N'6401', N'00,64,6401', N'金凤区', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640106', N'金凤区', N'', N'', N'', N'', N'3', N'1', N''), (N'640121', N'6401', N'00,64,6401', N'永宁县', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640121', N'永宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'640122', N'6401', N'00,64,6401', N'贺兰县', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640122', N'贺兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'640181', N'6401', N'00,64,6401', N'灵武市', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640181', N'灵武市', N'', N'', N'', N'', N'3', N'1', N''), (N'6402', N'64', N'00,64', N'石嘴山市', N'64', N'宁夏回族自治区', N'6402', N'石嘴山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'640202', N'6402', N'00,64,6402', N'大武口区', N'64', N'宁夏回族自治区', N'6402', N'石嘴山市', N'640202', N'大武口区', N'', N'', N'', N'', N'3', N'1', N''), (N'640205', N'6402', N'00,64,6402', N'惠农区', N'64', N'宁夏回族自治区', N'6402', N'石嘴山市', N'640205', N'惠农区', N'', N'', N'', N'', N'3', N'1', N''), (N'640221', N'6402', N'00,64,6402', N'平罗县', N'64', N'宁夏回族自治区', N'6402', N'石嘴山市', N'640221', N'平罗县', N'', N'', N'', N'', N'3', N'1', N''), (N'6403', N'64', N'00,64', N'吴忠市', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'640302', N'6403', N'00,64,6403', N'利通区', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'640302', N'利通区', N'', N'', N'', N'', N'3', N'1', N''), (N'640303', N'6403', N'00,64,6403', N'红寺堡区', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'640303', N'红寺堡区', N'', N'', N'', N'', N'3', N'1', N''), (N'640323', N'6403', N'00,64,6403', N'盐池县', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'640323', N'盐池县', N'', N'', N'', N'', N'3', N'1', N''), (N'640324', N'6403', N'00,64,6403', N'同心县', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'640324', N'同心县', N'', N'', N'', N'', N'3', N'1', N''), (N'640381', N'6403', N'00,64,6403', N'青铜峡市', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'640381', N'青铜峡市', N'', N'', N'', N'', N'3', N'1', N''), (N'6404', N'64', N'00,64', N'固原市', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'640402', N'6404', N'00,64,6404', N'原州区', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'640402', N'原州区', N'', N'', N'', N'', N'3', N'1', N''), (N'640422', N'6404', N'00,64,6404', N'西吉县', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'640422', N'西吉县', N'', N'', N'', N'', N'3', N'1', N''), (N'640423', N'6404', N'00,64,6404', N'隆德县', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'640423', N'隆德县', N'', N'', N'', N'', N'3', N'1', N''), (N'640424', N'6404', N'00,64,6404', N'泾源县', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'640424', N'泾源县', N'', N'', N'', N'', N'3', N'1', N''), (N'640425', N'6404', N'00,64,6404', N'彭阳县', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'640425', N'彭阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'6405', N'64', N'00,64', N'中卫市', N'64', N'宁夏回族自治区', N'6405', N'中卫市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'640502', N'6405', N'00,64,6405', N'沙坡头区', N'64', N'宁夏回族自治区', N'6405', N'中卫市', N'640502', N'沙坡头区', N'', N'', N'', N'', N'3', N'1', N''), (N'640521', N'6405', N'00,64,6405', N'中宁县', N'64', N'宁夏回族自治区', N'6405', N'中卫市', N'640521', N'中宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'640522', N'6405', N'00,64,6405', N'海原县', N'64', N'宁夏回族自治区', N'6405', N'中卫市', N'640522', N'海原县', N'', N'', N'', N'', N'3', N'1', N''), (N'65', N'00', N'00', N'新疆维吾尔自治区', N'65', N'新疆维吾尔自治区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'6501', N'65', N'00,65', N'乌鲁木齐市', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'650102', N'6501', N'00,65,6501', N'天山区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650102', N'天山区', N'', N'', N'', N'', N'3', N'1', N''), (N'650103', N'6501', N'00,65,6501', N'沙依巴克区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650103', N'沙依巴克区', N'', N'', N'', N'', N'3', N'1', N''), (N'650104', N'6501', N'00,65,6501', N'新市区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650104', N'新市区', N'', N'', N'', N'', N'3', N'1', N''), (N'650105', N'6501', N'00,65,6501', N'水磨沟区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650105', N'水磨沟区', N'', N'', N'', N'', N'3', N'1', N''), (N'650106', N'6501', N'00,65,6501', N'头屯河区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650106', N'头屯河区', N'', N'', N'', N'', N'3', N'1', N''), (N'650107', N'6501', N'00,65,6501', N'达坂城区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650107', N'达坂城区', N'', N'', N'', N'', N'3', N'1', N''), (N'650109', N'6501', N'00,65,6501', N'米东区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650109', N'米东区', N'', N'', N'', N'', N'3', N'1', N''), (N'650121', N'6501', N'00,65,6501', N'乌鲁木齐县', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650121', N'乌鲁木齐县', N'', N'', N'', N'', N'3', N'1', N''), (N'6502', N'65', N'00,65', N'克拉玛依市', N'65', N'新疆维吾尔自治区', N'6502', N'克拉玛依市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'650202', N'6502', N'00,65,6502', N'独山子区', N'65', N'新疆维吾尔自治区', N'6502', N'克拉玛依市', N'650202', N'独山子区', N'', N'', N'', N'', N'3', N'1', N''), (N'650203', N'6502', N'00,65,6502', N'克拉玛依区', N'65', N'新疆维吾尔自治区', N'6502', N'克拉玛依市', N'650203', N'克拉玛依区', N'', N'', N'', N'', N'3', N'1', N''), (N'650204', N'6502', N'00,65,6502', N'白碱滩区', N'65', N'新疆维吾尔自治区', N'6502', N'克拉玛依市', N'650204', N'白碱滩区', N'', N'', N'', N'', N'3', N'1', N''), (N'650205', N'6502', N'00,65,6502', N'乌尔禾区', N'65', N'新疆维吾尔自治区', N'6502', N'克拉玛依市', N'650205', N'乌尔禾区', N'', N'', N'', N'', N'3', N'1', N''), (N'6504', N'65', N'00,65', N'吐鲁番市', N'65', N'新疆维吾尔自治区', N'6504', N'吐鲁番市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'650402', N'6504', N'00,65,6504', N'高昌区', N'65', N'新疆维吾尔自治区', N'6504', N'吐鲁番市', N'650402', N'高昌区', N'', N'', N'', N'', N'3', N'1', N''), (N'650421', N'6504', N'00,65,6504', N'鄯善县', N'65', N'新疆维吾尔自治区', N'6504', N'吐鲁番市', N'650421', N'鄯善县', N'', N'', N'', N'', N'3', N'1', N''), (N'650422', N'6504', N'00,65,6504', N'托克逊县', N'65', N'新疆维吾尔自治区', N'6504', N'吐鲁番市', N'650422', N'托克逊县', N'', N'', N'', N'', N'3', N'1', N''), (N'6505', N'65', N'00,65', N'哈密市', N'65', N'新疆维吾尔自治区', N'6505', N'哈密市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'650502', N'6505', N'00,65,6505', N'伊州区', N'65', N'新疆维吾尔自治区', N'6505', N'哈密市', N'650502', N'伊州区', N'', N'', N'', N'', N'3', N'1', N''), (N'650521', N'6505', N'00,65,6505', N'巴里坤哈萨克自治县', N'65', N'新疆维吾尔自治区', N'6505', N'哈密市', N'650521', N'巴里坤哈萨克自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'650522', N'6505', N'00,65,6505', N'伊吾县', N'65', N'新疆维吾尔自治区', N'6505', N'哈密市', N'650522', N'伊吾县', N'', N'', N'', N'', N'3', N'1', N''), (N'6523', N'65', N'00,65', N'昌吉回族自治州', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'652301', N'6523', N'00,65,6523', N'昌吉市', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652301', N'昌吉市', N'', N'', N'', N'', N'3', N'1', N''), (N'652302', N'6523', N'00,65,6523', N'阜康市', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652302', N'阜康市', N'', N'', N'', N'', N'3', N'1', N''), (N'652323', N'6523', N'00,65,6523', N'呼图壁县', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652323', N'呼图壁县', N'', N'', N'', N'', N'3', N'1', N''), (N'652324', N'6523', N'00,65,6523', N'玛纳斯县', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652324', N'玛纳斯县', N'', N'', N'', N'', N'3', N'1', N''), (N'652325', N'6523', N'00,65,6523', N'奇台县', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652325', N'奇台县', N'', N'', N'', N'', N'3', N'1', N''), (N'652327', N'6523', N'00,65,6523', N'吉木萨尔县', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652327', N'吉木萨尔县', N'', N'', N'', N'', N'3', N'1', N''), (N'652328', N'6523', N'00,65,6523', N'木垒哈萨克自治县', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652328', N'木垒哈萨克自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6527', N'65', N'00,65', N'博尔塔拉蒙古自治州', N'65', N'新疆维吾尔自治区', N'6527', N'博尔塔拉蒙古自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'652701', N'6527', N'00,65,6527', N'博乐市', N'65', N'新疆维吾尔自治区', N'6527', N'博尔塔拉蒙古自治州', N'652701', N'博乐市', N'', N'', N'', N'', N'3', N'1', N''), (N'652702', N'6527', N'00,65,6527', N'阿拉山口市', N'65', N'新疆维吾尔自治区', N'6527', N'博尔塔拉蒙古自治州', N'652702', N'阿拉山口市', N'', N'', N'', N'', N'3', N'1', N''), (N'652722', N'6527', N'00,65,6527', N'精河县', N'65', N'新疆维吾尔自治区', N'6527', N'博尔塔拉蒙古自治州', N'652722', N'精河县', N'', N'', N'', N'', N'3', N'1', N''), (N'652723', N'6527', N'00,65,6527', N'温泉县', N'65', N'新疆维吾尔自治区', N'6527', N'博尔塔拉蒙古自治州', N'652723', N'温泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'6528', N'65', N'00,65', N'巴音郭楞蒙古自治州', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'652801', N'6528', N'00,65,6528', N'库尔勒市', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652801', N'库尔勒市', N'', N'', N'', N'', N'3', N'1', N''), (N'652822', N'6528', N'00,65,6528', N'轮台县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652822', N'轮台县', N'', N'', N'', N'', N'3', N'1', N''), (N'652823', N'6528', N'00,65,6528', N'尉犁县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652823', N'尉犁县', N'', N'', N'', N'', N'3', N'1', N''), (N'652824', N'6528', N'00,65,6528', N'若羌县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652824', N'若羌县', N'', N'', N'', N'', N'3', N'1', N''), (N'652825', N'6528', N'00,65,6528', N'且末县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652825', N'且末县', N'', N'', N'', N'', N'3', N'1', N''), (N'652826', N'6528', N'00,65,6528', N'焉耆回族自治县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652826', N'焉耆回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'652827', N'6528', N'00,65,6528', N'和静县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652827', N'和静县', N'', N'', N'', N'', N'3', N'1', N''), (N'652828', N'6528', N'00,65,6528', N'和硕县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652828', N'和硕县', N'', N'', N'', N'', N'3', N'1', N''), (N'652829', N'6528', N'00,65,6528', N'博湖县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652829', N'博湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'6529', N'65', N'00,65', N'阿克苏地区', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'652901', N'6529', N'00,65,6529', N'阿克苏市', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652901', N'阿克苏市', N'', N'', N'', N'', N'3', N'1', N''), (N'652902', N'6529', N'00,65,6529', N'库车市', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652902', N'库车市', N'', N'', N'', N'', N'3', N'1', N''), (N'652922', N'6529', N'00,65,6529', N'温宿县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652922', N'温宿县', N'', N'', N'', N'', N'3', N'1', N''), (N'652924', N'6529', N'00,65,6529', N'沙雅县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652924', N'沙雅县', N'', N'', N'', N'', N'3', N'1', N''), (N'652925', N'6529', N'00,65,6529', N'新和县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652925', N'新和县', N'', N'', N'', N'', N'3', N'1', N''), (N'652926', N'6529', N'00,65,6529', N'拜城县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652926', N'拜城县', N'', N'', N'', N'', N'3', N'1', N''), (N'652927', N'6529', N'00,65,6529', N'乌什县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652927', N'乌什县', N'', N'', N'', N'', N'3', N'1', N''), (N'652928', N'6529', N'00,65,6529', N'阿瓦提县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652928', N'阿瓦提县', N'', N'', N'', N'', N'3', N'1', N''), (N'652929', N'6529', N'00,65,6529', N'柯坪县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652929', N'柯坪县', N'', N'', N'', N'', N'3', N'1', N''), (N'6530', N'65', N'00,65', N'克孜勒苏柯尔克孜自治州', N'65', N'新疆维吾尔自治区', N'6530', N'克孜勒苏柯尔克孜自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'653001', N'6530', N'00,65,6530', N'阿图什市', N'65', N'新疆维吾尔自治区', N'6530', N'克孜勒苏柯尔克孜自治州', N'653001', N'阿图什市', N'', N'', N'', N'', N'3', N'1', N''), (N'653022', N'6530', N'00,65,6530', N'阿克陶县', N'65', N'新疆维吾尔自治区', N'6530', N'克孜勒苏柯尔克孜自治州', N'653022', N'阿克陶县', N'', N'', N'', N'', N'3', N'1', N''), (N'653023', N'6530', N'00,65,6530', N'阿合奇县', N'65', N'新疆维吾尔自治区', N'6530', N'克孜勒苏柯尔克孜自治州', N'653023', N'阿合奇县', N'', N'', N'', N'', N'3', N'1', N''), (N'653024', N'6530', N'00,65,6530', N'乌恰县', N'65', N'新疆维吾尔自治区', N'6530', N'克孜勒苏柯尔克孜自治州', N'653024', N'乌恰县', N'', N'', N'', N'', N'3', N'1', N''), (N'6531', N'65', N'00,65', N'喀什地区', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'653101', N'6531', N'00,65,6531', N'喀什市', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653101', N'喀什市', N'', N'', N'', N'', N'3', N'1', N''), (N'653121', N'6531', N'00,65,6531', N'疏附县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653121', N'疏附县', N'', N'', N'', N'', N'3', N'1', N''), (N'653122', N'6531', N'00,65,6531', N'疏勒县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653122', N'疏勒县', N'', N'', N'', N'', N'3', N'1', N''), (N'653123', N'6531', N'00,65,6531', N'英吉沙县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653123', N'英吉沙县', N'', N'', N'', N'', N'3', N'1', N''), (N'653124', N'6531', N'00,65,6531', N'泽普县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653124', N'泽普县', N'', N'', N'', N'', N'3', N'1', N''), (N'653125', N'6531', N'00,65,6531', N'莎车县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653125', N'莎车县', N'', N'', N'', N'', N'3', N'1', N''), (N'653126', N'6531', N'00,65,6531', N'叶城县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653126', N'叶城县', N'', N'', N'', N'', N'3', N'1', N''), (N'653127', N'6531', N'00,65,6531', N'麦盖提县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653127', N'麦盖提县', N'', N'', N'', N'', N'3', N'1', N''), (N'653128', N'6531', N'00,65,6531', N'岳普湖县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653128', N'岳普湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'653129', N'6531', N'00,65,6531', N'伽师县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653129', N'伽师县', N'', N'', N'', N'', N'3', N'1', N''), (N'653130', N'6531', N'00,65,6531', N'巴楚县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653130', N'巴楚县', N'', N'', N'', N'', N'3', N'1', N''), (N'653131', N'6531', N'00,65,6531', N'塔什库尔干塔吉克自治县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653131', N'塔什库尔干塔吉克自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6532', N'65', N'00,65', N'和田地区', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'653201', N'6532', N'00,65,6532', N'和田市', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653201', N'和田市', N'', N'', N'', N'', N'3', N'1', N''), (N'653221', N'6532', N'00,65,6532', N'和田县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653221', N'和田县', N'', N'', N'', N'', N'3', N'1', N''), (N'653222', N'6532', N'00,65,6532', N'墨玉县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653222', N'墨玉县', N'', N'', N'', N'', N'3', N'1', N''), (N'653223', N'6532', N'00,65,6532', N'皮山县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653223', N'皮山县', N'', N'', N'', N'', N'3', N'1', N''), (N'653224', N'6532', N'00,65,6532', N'洛浦县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653224', N'洛浦县', N'', N'', N'', N'', N'3', N'1', N''), (N'653225', N'6532', N'00,65,6532', N'策勒县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653225', N'策勒县', N'', N'', N'', N'', N'3', N'1', N''), (N'653226', N'6532', N'00,65,6532', N'于田县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653226', N'于田县', N'', N'', N'', N'', N'3', N'1', N''), (N'653227', N'6532', N'00,65,6532', N'民丰县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653227', N'民丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'6540', N'65', N'00,65', N'伊犁哈萨克自治州', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'654002', N'6540', N'00,65,6540', N'伊宁市', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654002', N'伊宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'654003', N'6540', N'00,65,6540', N'奎屯市', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654003', N'奎屯市', N'', N'', N'', N'', N'3', N'1', N''), (N'654004', N'6540', N'00,65,6540', N'霍尔果斯市', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654004', N'霍尔果斯市', N'', N'', N'', N'', N'3', N'1', N''), (N'654021', N'6540', N'00,65,6540', N'伊宁县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654021', N'伊宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'654022', N'6540', N'00,65,6540', N'察布查尔锡伯自治县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654022', N'察布查尔锡伯自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'654023', N'6540', N'00,65,6540', N'霍城县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654023', N'霍城县', N'', N'', N'', N'', N'3', N'1', N''), (N'654024', N'6540', N'00,65,6540', N'巩留县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654024', N'巩留县', N'', N'', N'', N'', N'3', N'1', N''), (N'654025', N'6540', N'00,65,6540', N'新源县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654025', N'新源县', N'', N'', N'', N'', N'3', N'1', N''), (N'654026', N'6540', N'00,65,6540', N'昭苏县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654026', N'昭苏县', N'', N'', N'', N'', N'3', N'1', N''), (N'654027', N'6540', N'00,65,6540', N'特克斯县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654027', N'特克斯县', N'', N'', N'', N'', N'3', N'1', N''), (N'654028', N'6540', N'00,65,6540', N'尼勒克县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654028', N'尼勒克县', N'', N'', N'', N'', N'3', N'1', N''), (N'6542', N'65', N'00,65', N'塔城地区', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'654201', N'6542', N'00,65,6542', N'塔城市', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654201', N'塔城市', N'', N'', N'', N'', N'3', N'1', N''), (N'654202', N'6542', N'00,65,6542', N'乌苏市', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654202', N'乌苏市', N'', N'', N'', N'', N'3', N'1', N''), (N'654221', N'6542', N'00,65,6542', N'额敏县', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654221', N'额敏县', N'', N'', N'', N'', N'3', N'1', N''), (N'654223', N'6542', N'00,65,6542', N'沙湾县', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654223', N'沙湾县', N'', N'', N'', N'', N'3', N'1', N''), (N'654224', N'6542', N'00,65,6542', N'托里县', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654224', N'托里县', N'', N'', N'', N'', N'3', N'1', N''), (N'654225', N'6542', N'00,65,6542', N'裕民县', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654225', N'裕民县', N'', N'', N'', N'', N'3', N'1', N''), (N'654226', N'6542', N'00,65,6542', N'和布克赛尔蒙古自治县', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654226', N'和布克赛尔蒙古自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6543', N'65', N'00,65', N'阿勒泰地区', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'654301', N'6543', N'00,65,6543', N'阿勒泰市', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654301', N'阿勒泰市', N'', N'', N'', N'', N'3', N'1', N''), (N'654321', N'6543', N'00,65,6543', N'布尔津县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654321', N'布尔津县', N'', N'', N'', N'', N'3', N'1', N''), (N'654322', N'6543', N'00,65,6543', N'富蕴县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654322', N'富蕴县', N'', N'', N'', N'', N'3', N'1', N''), (N'654323', N'6543', N'00,65,6543', N'福海县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654323', N'福海县', N'', N'', N'', N'', N'3', N'1', N''), (N'654324', N'6543', N'00,65,6543', N'哈巴河县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654324', N'哈巴河县', N'', N'', N'', N'', N'3', N'1', N''), (N'654325', N'6543', N'00,65,6543', N'青河县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654325', N'青河县', N'', N'', N'', N'', N'3', N'1', N''), (N'654326', N'6543', N'00,65,6543', N'吉木乃县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654326', N'吉木乃县', N'', N'', N'', N'', N'3', N'1', N''), (N'6590', N'65', N'00,65', N'自治区直辖县级行政区', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'659001', N'6590', N'00,65,6590', N'石河子市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659001', N'石河子市', N'', N'', N'', N'', N'3', N'1', N''), (N'659002', N'6590', N'00,65,6590', N'阿拉尔市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659002', N'阿拉尔市', N'', N'', N'', N'', N'3', N'1', N''), (N'659003', N'6590', N'00,65,6590', N'图木舒克市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659003', N'图木舒克市', N'', N'', N'', N'', N'3', N'1', N''), (N'659004', N'6590', N'00,65,6590', N'五家渠市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659004', N'五家渠市', N'', N'', N'', N'', N'3', N'1', N''), (N'659005', N'6590', N'00,65,6590', N'北屯市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659005', N'北屯市', N'', N'', N'', N'', N'3', N'1', N''), (N'659006', N'6590', N'00,65,6590', N'铁门关市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659006', N'铁门关市', N'', N'', N'', N'', N'3', N'1', N''), (N'659007', N'6590', N'00,65,6590', N'双河市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659007', N'双河市', N'', N'', N'', N'', N'3', N'1', N''), (N'659008', N'6590', N'00,65,6590', N'可克达拉市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659008', N'可克达拉市', N'', N'', N'', N'', N'3', N'1', N''), (N'659009', N'6590', N'00,65,6590', N'昆玉市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659009', N'昆玉市', N'', N'', N'', N'', N'3', N'1', N''), (N'659010', N'6590', N'00,65,6590', N'胡杨河市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659010', N'胡杨河市', N'', N'', N'', N'', N'3', N'1', N''), (N'71', N'00', N'00', N'台湾省', N'71', N'台湾省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'81', N'00', N'00', N'香港特别行政区', N'81', N'香港特别行政区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'82', N'00', N'00', N'澳门特别行政区', N'82', N'澳门特别行政区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N'')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_report_file
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_report_file]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_report_file]
+GO
+
+CREATE TABLE [dbo].[blade_report_file] (
+  [id] bigint  NOT NULL,
+  [name] nvarchar(100) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [content] varbinary(max)  NULL,
+  [create_time] datetime2(0)  NOT NULL,
+  [update_time] datetime2(0)  NOT NULL,
+  [is_deleted] int DEFAULT ((0)) NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_report_file] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_report_file',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'文件名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_report_file',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'文件内容',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_report_file',
+'COLUMN', N'content'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_report_file',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'更新时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_report_file',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_report_file',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'报表文件表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_report_file'
+GO
+
+
+-- ----------------------------
+-- Records of blade_report_file
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_report_file] VALUES (N'1291962038049910785', N'notice.ureport.xml', 0x3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E3C757265706F72743E3C63656C6C20657870616E643D22446F776E22206E616D653D2241312220726F773D22312220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D2274656E616E745F696422206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D22446F776E22206E616D653D2242312220726F773D22312220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D227469746C6522206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D22446F776E22206E616D653D2243312220726F773D22312220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D2272656C656173655F74696D6522206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244312220726F773D22312220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2241322220726F773D22322220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2242322220726F773D22322220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2243322220726F773D22322220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244322220726F773D22322220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2241332220726F773D22332220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2242332220726F773D22332220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2243332220726F773D22332220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244332220726F773D22332220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C726F7720726F772D6E756D6265723D223122206865696768743D223138222F3E3C726F7720726F772D6E756D6265723D223222206865696768743D223138222F3E3C726F7720726F772D6E756D6265723D223322206865696768743D223138222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2231222077696474683D223830222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2232222077696474683D223830222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2233222077696474683D22313333222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2234222077696474683D223830222F3E3C64617461736F75726365206E616D653D225265706F727444617461536F757263652220747970653D226275696C64696E223E3C64617461736574206E616D653D226E6F746963652220747970653D2273716C223E3C73716C3E3C215B43444154415B73656C656374202A2066726F6D20626C6164655F6E6F746963655D5D3E3C2F73716C3E3C6669656C64206E616D653D226964222F3E3C6669656C64206E616D653D2274656E616E745F6964222F3E3C6669656C64206E616D653D227469746C65222F3E3C6669656C64206E616D653D2263617465676F7279222F3E3C6669656C64206E616D653D2272656C656173655F74696D65222F3E3C6669656C64206E616D653D22636F6E74656E74222F3E3C6669656C64206E616D653D226372656174655F75736572222F3E3C6669656C64206E616D653D226372656174655F64657074222F3E3C6669656C64206E616D653D226372656174655F74696D65222F3E3C6669656C64206E616D653D227570646174655F75736572222F3E3C6669656C64206E616D653D227570646174655F74696D65222F3E3C6669656C64206E616D653D22737461747573222F3E3C6669656C64206E616D653D2269735F64656C65746564222F3E3C2F646174617365743E3C2F64617461736F757263653E3C706170657220747970653D22413422206C6566742D6D617267696E3D223930222072696768742D6D617267696E3D223930220A20202020746F702D6D617267696E3D2237322220626F74746F6D2D6D617267696E3D2237322220706167696E672D6D6F64653D22666974706167652220666978726F77733D2230220A2020202077696474683D2235393522206865696768743D2238343222206F7269656E746174696F6E3D22706F727472616974222068746D6C2D7265706F72742D616C69676E3D226C656674222062672D696D6167653D22222068746D6C2D696E74657276616C2D726566726573682D76616C75653D22302220636F6C756D6E2D656E61626C65643D2266616C7365223E3C2F70617065723E3C2F757265706F72743E, N'2020-08-08 12:58:48', N'2020-08-08 12:58:48', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_role
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_role]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_role]
+GO
+
+CREATE TABLE [dbo].[blade_role] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [parent_id] bigint  NULL,
+  [role_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sort] int  NULL,
+  [role_alias] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_role] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'父主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role',
+'COLUMN', N'parent_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role',
+'COLUMN', N'role_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色别名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role',
+'COLUMN', N'role_alias'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role'
+GO
+
+
+-- ----------------------------
+-- Records of blade_role
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_role] VALUES (N'1123598816738675201', N'000000', N'0', N'超级管理员', N'1', N'administrator', N'0'), (N'1123598816738675202', N'000000', N'0', N'用户', N'2', N'user', N'0'), (N'1123598816738675203', N'000000', N'1123598816738675202', N'人事', N'1', N'hr', N'0'), (N'1123598816738675204', N'000000', N'1123598816738675202', N'经理', N'2', N'manager', N'0'), (N'1123598816738675205', N'000000', N'1123598816738675202', N'老板', N'3', N'boss', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_role_menu
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_role_menu]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_role_menu]
+GO
+
+CREATE TABLE [dbo].[blade_role_menu] (
+  [id] bigint  NOT NULL,
+  [menu_id] bigint  NULL,
+  [role_id] bigint  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_role_menu] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_menu',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_menu',
+'COLUMN', N'menu_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_menu',
+'COLUMN', N'role_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色菜单关联表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_menu'
+GO
+
+
+-- ----------------------------
+-- Records of blade_role_menu
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_role_menu] VALUES (N'1123598817738675363', N'1123598815738675201', N'1123598816738675202'), (N'1123598817738675364', N'1123598815738675202', N'1123598816738675202'), (N'1123598817738675365', N'1123598815738675219', N'1123598816738675202'), (N'1123598817738675366', N'1123598815738675220', N'1123598816738675202'), (N'1123598817738675367', N'1123598815738675221', N'1123598816738675202'), (N'1123598817738675368', N'1123598815738675222', N'1123598816738675202'), (N'1123598817738675369', N'1123598815738675280', N'1123598816738675202'), (N'1123598817738675370', N'1123598815738675281', N'1123598816738675202'), (N'1123598817738675371', N'1123598815738675282', N'1123598816738675202'), (N'1123598817738675372', N'1123598815738675283', N'1123598816738675202'), (N'1123598817738675373', N'1123598815738675284', N'1123598816738675202'), (N'1123598817738675374', N'1123598815738675285', N'1123598816738675202'), (N'1123598817738675375', N'1123598815738675286', N'1123598816738675202'), (N'1123598817738675376', N'1123598815738675287', N'1123598816738675202'), (N'1123598817738675377', N'1123598815738675288', N'1123598816738675202'), (N'1123598817738675378', N'1123598815738675289', N'1123598816738675202'), (N'1123598817738675379', N'1123598815738675290', N'1123598816738675202'), (N'1123598817738675380', N'1123598815738675291', N'1123598816738675202'), (N'1123598817738675381', N'1123598815738675292', N'1123598816738675202'), (N'1123598817738675382', N'1123598815738675293', N'1123598816738675202'), (N'1123598817738675383', N'1123598815738675294', N'1123598816738675202'), (N'1123598817738675384', N'1123598815738675295', N'1123598816738675202'), (N'1123598817738675385', N'1123598815738675296', N'1123598816738675202'), (N'1123598817738675386', N'1123598815738675297', N'1123598816738675202'), (N'1123598817738675387', N'1123598815738675201', N'1123598816738675203'), (N'1123598817738675388', N'1123598815738675202', N'1123598816738675203'), (N'1123598817738675389', N'1123598815738675219', N'1123598816738675203'), (N'1123598817738675390', N'1123598815738675220', N'1123598816738675203'), (N'1123598817738675391', N'1123598815738675221', N'1123598816738675203'), (N'1123598817738675392', N'1123598815738675222', N'1123598816738675203'), (N'1123598817738675393', N'1123598815738675280', N'1123598816738675203'), (N'1123598817738675394', N'1123598815738675281', N'1123598816738675203'), (N'1123598817738675395', N'1123598815738675282', N'1123598816738675203'), (N'1123598817738675396', N'1123598815738675283', N'1123598816738675203'), (N'1123598817738675397', N'1123598815738675284', N'1123598816738675203'), (N'1123598817738675398', N'1123598815738675285', N'1123598816738675203'), (N'1123598817738675399', N'1123598815738675286', N'1123598816738675203'), (N'1123598817738675400', N'1123598815738675287', N'1123598816738675203'), (N'1123598817738675401', N'1123598815738675288', N'1123598816738675203'), (N'1123598817738675402', N'1123598815738675289', N'1123598816738675203'), (N'1123598817738675403', N'1123598815738675290', N'1123598816738675203'), (N'1123598817738675404', N'1123598815738675291', N'1123598816738675203'), (N'1123598817738675405', N'1123598815738675292', N'1123598816738675203'), (N'1123598817738675406', N'1123598815738675293', N'1123598816738675203'), (N'1123598817738675407', N'1123598815738675294', N'1123598816738675203'), (N'1123598817738675408', N'1123598815738675295', N'1123598816738675203'), (N'1123598817738675409', N'1123598815738675296', N'1123598816738675203'), (N'1123598817738675410', N'1123598815738675297', N'1123598816738675203'), (N'1123598817738675411', N'1123598815738675201', N'1123598816738675204'), (N'1123598817738675412', N'1123598815738675202', N'1123598816738675204'), (N'1123598817738675413', N'1123598815738675219', N'1123598816738675204'), (N'1123598817738675414', N'1123598815738675220', N'1123598816738675204'), (N'1123598817738675415', N'1123598815738675221', N'1123598816738675204'), (N'1123598817738675416', N'1123598815738675222', N'1123598816738675204'), (N'1123598817738675417', N'1123598815738675280', N'1123598816738675204'), (N'1123598817738675418', N'1123598815738675281', N'1123598816738675204'), (N'1123598817738675419', N'1123598815738675282', N'1123598816738675204'), (N'1123598817738675420', N'1123598815738675283', N'1123598816738675204'), (N'1123598817738675421', N'1123598815738675284', N'1123598816738675204'), (N'1123598817738675422', N'1123598815738675285', N'1123598816738675204'), (N'1123598817738675423', N'1123598815738675286', N'1123598816738675204'), (N'1123598817738675424', N'1123598815738675287', N'1123598816738675204'), (N'1123598817738675425', N'1123598815738675288', N'1123598816738675204'), (N'1123598817738675426', N'1123598815738675289', N'1123598816738675204'), (N'1123598817738675427', N'1123598815738675290', N'1123598816738675204'), (N'1123598817738675428', N'1123598815738675291', N'1123598816738675204'), (N'1123598817738675429', N'1123598815738675292', N'1123598816738675204'), (N'1123598817738675430', N'1123598815738675293', N'1123598816738675204'), (N'1123598817738675431', N'1123598815738675294', N'1123598816738675204'), (N'1123598817738675432', N'1123598815738675295', N'1123598816738675204'), (N'1123598817738675433', N'1123598815738675296', N'1123598816738675204'), (N'1123598817738675434', N'1123598815738675297', N'1123598816738675204'), (N'1123598817738675435', N'1123598815738675201', N'1123598816738675205'), (N'1123598817738675436', N'1123598815738675202', N'1123598816738675205'), (N'1123598817738675437', N'1123598815738675219', N'1123598816738675205'), (N'1123598817738675438', N'1123598815738675220', N'1123598816738675205'), (N'1123598817738675439', N'1123598815738675221', N'1123598816738675205'), (N'1123598817738675440', N'1123598815738675222', N'1123598816738675205'), (N'1123598817738675441', N'1123598815738675280', N'1123598816738675205'), (N'1123598817738675442', N'1123598815738675281', N'1123598816738675205'), (N'1123598817738675443', N'1123598815738675282', N'1123598816738675205'), (N'1123598817738675444', N'1123598815738675283', N'1123598816738675205'), (N'1123598817738675445', N'1123598815738675284', N'1123598816738675205'), (N'1123598817738675446', N'1123598815738675285', N'1123598816738675205'), (N'1123598817738675447', N'1123598815738675286', N'1123598816738675205'), (N'1123598817738675448', N'1123598815738675287', N'1123598816738675205'), (N'1123598817738675449', N'1123598815738675288', N'1123598816738675205'), (N'1123598817738675450', N'1123598815738675289', N'1123598816738675205'), (N'1123598817738675451', N'1123598815738675290', N'1123598816738675205'), (N'1123598817738675452', N'1123598815738675291', N'1123598816738675205'), (N'1123598817738675453', N'1123598815738675292', N'1123598816738675205'), (N'1123598817738675454', N'1123598815738675293', N'1123598816738675205'), (N'1123598817738675455', N'1123598815738675294', N'1123598816738675205'), (N'1123598817738675456', N'1123598815738675295', N'1123598816738675205'), (N'1123598817738675457', N'1123598815738675296', N'1123598816738675205'), (N'1123598817738675458', N'1123598815738675297', N'1123598816738675205'), (N'1149888293856833539', N'1123598815738675317', N'1123598816738675201'), (N'1149891666312130561', N'1123598815738675201', N'1123598816738675201'), (N'1149891666370850818', N'1123598815738675202', N'1123598816738675201'), (N'1149891666437959682', N'1123598815738675219', N'1123598816738675201'), (N'1149891666505068546', N'1123598815738675220', N'1123598816738675201'), (N'1149891666555400193', N'1123598815738675221', N'1123598816738675201'), (N'1149891666614120449', N'1123598815738675222', N'1123598816738675201'), (N'1149891666651869185', N'1123598815738675280', N'1123598816738675201'), (N'1149891666723172353', N'1123598815738675281', N'1123598816738675201'), (N'1149891666765115393', N'1123598815738675282', N'1123598816738675201'), (N'1149891666815447041', N'1123598815738675283', N'1123598816738675201'), (N'1149891666844807170', N'1123598815738675284', N'1123598816738675201'), (N'1149891666886750210', N'1123598815738675285', N'1123598816738675201'), (N'1149891666924498946', N'1123598815738675286', N'1123598816738675201'), (N'1149891666966441986', N'1123598815738675287', N'1123598816738675201'), (N'1149891667012579330', N'1123598815738675288', N'1123598816738675201'), (N'1149891667054522370', N'1123598815738675289', N'1123598816738675201'), (N'1149891667109048322', N'1123598815738675290', N'1123598816738675201'), (N'1149891667146797058', N'1123598815738675291', N'1123598816738675201'), (N'1149891667197128706', N'1123598815738675292', N'1123598816738675201'), (N'1149891667234877441', N'1123598815738675293', N'1123598816738675201'), (N'1149891667272626178', N'1123598815738675294', N'1123598816738675201'), (N'1149891667314569218', N'1123598815738675295', N'1123598816738675201'), (N'1149891667343929346', N'1123598815738675296', N'1123598816738675201'), (N'1149891667398455298', N'1123598815738675297', N'1123598816738675201'), (N'1149891667440398338', N'1123598815738675210', N'1123598816738675201'), (N'1149891667478147073', N'1123598815738675211', N'1123598816738675201'), (N'1149891667524284417', N'1123598815738675212', N'1123598816738675201'), (N'1149891667574616065', N'1123598815738675213', N'1123598816738675201'), (N'1149891667608170498', N'1123598815738675214', N'1123598816738675201'), (N'1149891667641724929', N'1123598815738675249', N'1123598816738675201'), (N'1149891667671085058', N'1123598815738675215', N'1123598816738675201'), (N'1149891667708833793', N'1123598815738675250', N'1123598816738675201'), (N'1149891667746582529', N'1123598815738675216', N'1123598816738675201'), (N'1149891667784331265', N'1123598815738675251', N'1123598816738675201'), (N'1149891667822080001', N'1123598815738675217', N'1123598816738675201'), (N'1149891667843051522', N'1123598815738675218', N'1123598816738675201'), (N'1149891667889188865', N'1123598815738675252', N'1123598816738675201'), (N'1149891667926937602', N'1123598815738675253', N'1123598816738675201'), (N'1149891667947909121', N'1123598815738675254', N'1123598816738675201'), (N'1149891667989852161', N'1123598815738675255', N'1123598816738675201'), (N'1149891668015017986', N'1123598815738675266', N'1123598816738675201'), (N'1149891668061155330', N'1123598815738675267', N'1123598816738675201'), (N'1149891668086321154', N'1123598815738675268', N'1123598816738675201'), (N'1149891668136652802', N'1123598815738675269', N'1123598816738675201'), (N'1149891668199567362', N'1123598815738675270', N'1123598816738675201'), (N'1149891668262481922', N'1123598815738675271', N'1123598816738675201'), (N'1149891668321202177', N'1123598815738675272', N'1123598816738675201'), (N'1149891668367339521', N'1123598815738675273', N'1123598816738675201'), (N'1149891668405088257', N'1123598815738675274', N'1123598816738675201'), (N'1149891668438642689', N'1123598815738675275', N'1123598816738675201'), (N'1149891668472197121', N'1123598815738675276', N'1123598816738675201'), (N'1149891668509945858', N'1123598815738675277', N'1123598816738675201'), (N'1149891668568666113', N'1123598815738675278', N'1123598816738675201'), (N'1149891668631580673', N'1123598815738675279', N'1123598816738675201'), (N'1149891668669329410', N'1123598815738675298', N'1123598816738675201'), (N'1149891668719661057', N'1123598815738675299', N'1123598816738675201'), (N'1149891668757409793', N'1123598815738675301', N'1123598816738675201'), (N'1149891668803547138', N'1123598815738675302', N'1123598816738675201'), (N'1149891668849684481', N'1123598815738675303', N'1123598816738675201'), (N'1149891668883238913', N'1123598815738675304', N'1123598816738675201'), (N'1149891668920987650', N'1123598815738675305', N'1123598816738675201'), (N'1149891668950347777', N'1123598815738675307', N'1123598816738675201'), (N'1149891668983902209', N'1123598815738675308', N'1123598816738675201'), (N'1149891669013262338', N'1123598815738675241', N'1123598816738675201'), (N'1149891669034233857', N'1123598815738675242', N'1123598816738675201'), (N'1149891669055205378', N'1123598815738675243', N'1123598816738675201'), (N'1149891669105537025', N'1123598815738675244', N'1123598816738675201'), (N'1149891669164257282', N'1123598815738675309', N'1123598816738675201'), (N'1149891669210394626', N'1123598815738675310', N'1123598816738675201'), (N'1149891669243949058', N'1123598815738675311', N'1123598816738675201'), (N'1149891669285892097', N'1123598815738675312', N'1123598816738675201'), (N'1149891669336223745', N'1123598815738675203', N'1123598816738675201'), (N'1149891669365583873', N'1123598815738675204', N'1123598816738675201'), (N'1149891669394944001', N'1123598815738675223', N'1123598816738675201'), (N'1149891669441081346', N'1123598815738675224', N'1123598816738675201'), (N'1149891669487218689', N'1123598815738675225', N'1123598816738675201'), (N'1149891669533356033', N'1123598815738675226', N'1123598816738675201'), (N'1149891669571104770', N'1123598815738675227', N'1123598816738675201'), (N'1149891669642407937', N'1123598815738675228', N'1123598816738675201'), (N'1149891669671768065', N'1123598815738675205', N'1123598816738675201'), (N'1149891669696933889', N'1123598815738675229', N'1123598816738675201'), (N'1149891669743071234', N'1123598815738675230', N'1123598816738675201'), (N'1149891669797597186', N'1123598815738675231', N'1123598816738675201'), (N'1149891669847928834', N'1123598815738675232', N'1123598816738675201'), (N'1149891669919232001', N'1123598815738675206', N'1123598816738675201'), (N'1149891669973757954', N'1123598815738675233', N'1123598816738675201'), (N'1149891670019895298', N'1123598815738675234', N'1123598816738675201'), (N'1149891670045061121', N'1123598815738675235', N'1123598816738675201'), (N'1149891670095392770', N'1123598815738675236', N'1123598816738675201'), (N'1149891670137335809', N'1123598815738675207', N'1123598816738675201'), (N'1149891670196056065', N'1123598815738675237', N'1123598816738675201'), (N'1149891670229610498', N'1123598815738675238', N'1123598816738675201'), (N'1149891670267359234', N'1123598815738675239', N'1123598816738675201'), (N'1149891670292525057', N'1123598815738675240', N'1123598816738675201'), (N'1149891670355439617', N'1123598815738675306', N'1123598816738675201'), (N'1149891670380605442', N'1123598815738675208', N'1123598816738675201'), (N'1149891670443520001', N'1123598815738675313', N'1123598816738675201'), (N'1149891670481268737', N'1123598815738675314', N'1123598816738675201'), (N'1149891670506434561', N'1123598815738675315', N'1123598816738675201'), (N'1149891670569349121', N'1123598815738675316', N'1123598816738675201'), (N'1149891670594514945', N'1123598815738675209', N'1123598816738675201'), (N'1149891670657429506', N'1123598815738675245', N'1123598816738675201'), (N'1149891670682595330', N'1123598815738675246', N'1123598816738675201'), (N'1149891670711955457', N'1123598815738675247', N'1123598816738675201'), (N'1149891670745509889', N'1123598815738675248', N'1123598816738675201'), (N'1149891670804230146', N'1123598815738675256', N'1123598816738675201'), (N'1149891670841978881', N'1123598815738675257', N'1123598816738675201'), (N'1149891670879727617', N'1123598815738675258', N'1123598816738675201'), (N'1149891670913282050', N'1123598815738675259', N'1123598816738675201'), (N'1149891670959419394', N'1123598815738675260', N'1123598816738675201'), (N'1149891670988779521', N'1123598815738675261', N'1123598816738675201'), (N'1149891671039111170', N'1123598815738675262', N'1123598816738675201'), (N'1149891671068471297', N'1123598815738675263', N'1123598816738675201'), (N'1149891671110414338', N'1123598815738675264', N'1123598816738675201'), (N'1149891671152357378', N'1123598815738675265', N'1123598816738675201'), (N'1161272593873322991', N'1161272593873321991', N'1123598816738675201'), (N'1161272593873322992', N'1161272593873321992', N'1123598816738675201'), (N'1161272593873322993', N'1161272593873321993', N'1123598816738675201'), (N'1161272593873322994', N'1161272593873321994', N'1123598816738675201'), (N'1161272593873322995', N'1161272593873321995', N'1123598816738675201'), (N'1161272693873322991', N'1164733369658963251', N'1123598816738675201'), (N'1161272693873322992', N'1164733369658963252', N'1123598816738675201'), (N'1161272693873322993', N'1164733369658963253', N'1123598816738675201'), (N'1161272693873322994', N'1164733369658963254', N'1123598816738675201'), (N'1161272693873322995', N'1164733369658963255', N'1123598816738675201'), (N'1161272793873322991', N'1164733379658963251', N'1123598816738675201'), (N'1161272793873322992', N'1164733379658963252', N'1123598816738675201'), (N'1161272793873322993', N'1164733379658963253', N'1123598816738675201'), (N'1161272793873322994', N'1164733379658963254', N'1123598816738675201'), (N'1161272793873322995', N'1164733379658963255', N'1123598816738675201'), (N'1161272893873222991', N'1164733389658962251', N'1123598816738675201'), (N'1161272893873222992', N'1164733389658962252', N'1123598816738675201'), (N'1161272893873222993', N'1164733389658962253', N'1123598816738675201'), (N'1161272893873222994', N'1164733389658962254', N'1123598816738675201'), (N'1161272893873222995', N'1164733389658962255', N'1123598816738675201'), (N'1161272893873222996', N'1164733389658962256', N'1123598816738675201'), (N'1161272893873322991', N'1164733389658963251', N'1123598816738675201'), (N'1161272893875225001', N'1164733389668962251', N'1123598816738675201'), (N'1161272893875225002', N'1164733389668962252', N'1123598816738675201'), (N'1161272893875225003', N'1164733389668962253', N'1123598816738675201'), (N'1161272893875225004', N'1164733389668962254', N'1123598816738675201'), (N'1161272893875225005', N'1164733389668962255', N'1123598816738675201'), (N'1161272893875225006', N'1164733389668962256', N'1123598816738675201'), (N'1161272893875226001', N'1164733399668962201', N'1123598816738675201'), (N'1161272893875226002', N'1164733399668962202', N'1123598816738675201'), (N'1161272893875226003', N'1164733399668962203', N'1123598816738675201'), (N'1161272893875226004', N'1164733399668962204', N'1123598816738675201'), (N'1161272893875226005', N'1164733399668962205', N'1123598816738675201'), (N'1161272893875226006', N'1164733399668962206', N'1123598816738675201'), (N'1161272893875226007', N'1164733399668962207', N'1123598816738675201'), (N'1161272893875227001', N'1164733399669962201', N'1123598816738675201'), (N'1161272893875227002', N'1164733399669962202', N'1123598816738675201'), (N'1161272893875227003', N'1164733399669962203', N'1123598816738675201'), (N'1161272893875227004', N'1164733399669962204', N'1123598816738675201'), (N'1161272893875228001', N'1164733399669962301', N'1123598816738675201'), (N'1161272893875228002', N'1164733399669962302', N'1123598816738675201'), (N'1161272893875228003', N'1164733399669962303', N'1123598816738675201'), (N'1161272893875228004', N'1164733399669962304', N'1123598816738675201')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_role_scope
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_role_scope]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_role_scope]
+GO
+
+CREATE TABLE [dbo].[blade_role_scope] (
+  [id] bigint  NOT NULL,
+  [scope_category] int  NULL,
+  [scope_id] bigint  NULL,
+  [role_id] bigint  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_role_scope] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_scope',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'权限类型(1:数据权限、2:接口权限)',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_scope',
+'COLUMN', N'scope_category'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'权限id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_scope',
+'COLUMN', N'scope_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_scope',
+'COLUMN', N'role_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色数据权限关联表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_role_scope'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_scope_api
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_scope_api]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_scope_api]
+GO
+
+CREATE TABLE [dbo].[blade_scope_api] (
+  [id] bigint  NOT NULL,
+  [menu_id] bigint  NULL,
+  [resource_code] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_path] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_type] int  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_scope_api] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'menu_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'资源编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'resource_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'接口权限名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'scope_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'接口权限地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'scope_path'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'接口权限类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'scope_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'接口权限备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'接口权限表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_api'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_scope_data
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_scope_data]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_scope_data]
+GO
+
+CREATE TABLE [dbo].[blade_scope_data] (
+  [id] bigint  NOT NULL,
+  [menu_id] bigint  NULL,
+  [resource_code] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_field] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_class] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_column] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [scope_type] int  NULL,
+  [scope_value] nvarchar(2000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_scope_data] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'menu_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'资源编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'resource_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'scope_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限字段',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'scope_field'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限类名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'scope_class'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限字段',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'scope_column'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限类型',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'scope_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限值域',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'scope_value'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据权限表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_scope_data'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_sms
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_sms]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_sms]
+GO
+
+CREATE TABLE [dbo].[blade_sms] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [category] int  NULL,
+  [sms_code] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [template_id] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [access_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [secret_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [region_id] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sign_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_sms] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'分类',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'category'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'资源编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'sms_code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'模板ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'template_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'accessKey',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'access_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'secretKey',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'secret_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'regionId',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'region_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'短信签名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'sign_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'短信配置表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_sms'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_tenant
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_tenant]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_tenant]
+GO
+
+CREATE TABLE [dbo].[blade_tenant] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [tenant_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NOT NULL,
+  [domain_url] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [background_url] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [linkman] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [contact_number] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [address] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [account_number] int  NULL,
+  [expire_time] datetime2(0)  NULL,
+  [package_id] int  NULL,
+  [datasource_id] bigint  NULL,
+  [license_key] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_tenant] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户名称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'tenant_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'域名地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'domain_url'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'系统背景',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'background_url'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'联系人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'linkman'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'联系电话',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'contact_number'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'联系地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'address'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'账号额度',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'account_number'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'过期时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'expire_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户产品ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'package_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'数据源ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'datasource_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'授权码',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'license_key'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant'
+GO
+
+
+-- ----------------------------
+-- Records of blade_tenant
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_tenant] VALUES (N'1123598820738675201', N'000000', N'管理组', NULL, NULL, N'admin', N'666666', N'管理组', N'-1', NULL, NULL, NULL, NULL, N'1123598821738675201', N'1123598813738675201', N'2019-01-01 00:00:39', N'1123598821738675201', N'2019-01-01 00:00:39', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_tenant_package
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_tenant_package]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_tenant_package]
+GO
+
+CREATE TABLE [dbo].[blade_tenant_package] (
+  [id] bigint  NOT NULL,
+  [package_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [menu_id] nvarchar(3000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_tenant_package] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'产品包名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'package_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'menu_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户产品表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_tenant_package'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_top_menu
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_top_menu]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_top_menu]
+GO
+
+CREATE TABLE [dbo].[blade_top_menu] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [code] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [name] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [source] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [sort] int  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_top_menu] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'顶部菜单编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'顶部菜单名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'顶部菜单资源',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'source'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'顶部菜单排序',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'sort'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'顶部菜单表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_top_menu_setting
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_top_menu_setting]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_top_menu_setting]
+GO
+
+CREATE TABLE [dbo].[blade_top_menu_setting] (
+  [id] bigint  NOT NULL,
+  [top_menu_id] bigint  NULL,
+  [menu_id] bigint  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_top_menu_setting] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu_setting',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'顶部菜单主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu_setting',
+'COLUMN', N'top_menu_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'菜单主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu_setting',
+'COLUMN', N'menu_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'顶部菜单配置表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_top_menu_setting'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_user
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_user]
+GO
+
+CREATE TABLE [dbo].[blade_user] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [code] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [user_type] int  NULL,
+  [account] nvarchar(45) COLLATE Chinese_PRC_CI_AS  NULL,
+  [password] nvarchar(45) COLLATE Chinese_PRC_CI_AS  NULL,
+  [name] nvarchar(20) COLLATE Chinese_PRC_CI_AS  NULL,
+  [real_name] nvarchar(10) COLLATE Chinese_PRC_CI_AS  NULL,
+  [avatar] nvarchar(500) COLLATE Chinese_PRC_CI_AS  NULL,
+  [email] nvarchar(45) COLLATE Chinese_PRC_CI_AS  NULL,
+  [phone] nvarchar(45) COLLATE Chinese_PRC_CI_AS  NULL,
+  [birthday] datetime2(0)  NULL,
+  [sex] int  NULL,
+  [role_id] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [dept_id] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [post_id] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [create_user] bigint  NULL,
+  [create_dept] bigint  NULL,
+  [create_time] datetime2(0)  NULL,
+  [update_user] bigint  NULL,
+  [update_time] datetime2(0)  NULL,
+  [status] int  NULL,
+  [is_deleted] int  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_user] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户编号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'code'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户平台',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'user_type'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'账号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'account'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'密码',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'password'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'昵称',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'真名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'real_name'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'头像',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'avatar'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'邮箱',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'email'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'手机',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'phone'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'生日',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'birthday'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'性别',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'sex'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'角色id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'role_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'部门id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'dept_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'岗位id',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'post_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'create_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建部门',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'create_dept'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'创建时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'create_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改人',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'update_user'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'修改时间',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'update_time'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'状态',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'status'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'是否已删除',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user',
+'COLUMN', N'is_deleted'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user'
+GO
+
+
+-- ----------------------------
+-- Records of blade_user
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_user] VALUES (N'1123598821738675201', N'000000', NULL, N'1', N'admin', N'90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad', N'管理员', N'管理员', N'https://gw.alipayobjects.com/zos/rmsportal/BiazfanxmamNRoxxVxka.png', N'admin@bladex.vip', N'123333333333', N'2018-08-08 00:00:00', N'1', N'1123598816738675201', N'1123598813738675201', N'1123598817738675201', N'1123598821738675201', N'1123598813738675201', N'2018-08-08 00:00:00', N'1123598821738675201', N'2018-08-08 00:00:00', N'1', N'0'), (N'1123598821738675202', N'000000', NULL, N'1', N'hr', N'5e79b90f7bba52d54115f086e48f539016a27ec6', N'人事', N'人事', N'', N'hr@bladex.vip', N'123333333333', N'2018-08-08 00:00:00', N'1', N'1123598816738675203', N'1123598813738675202', N'1123598817738675207', N'1123598821738675201', N'1123598813738675201', N'2019-04-27 17:03:10', N'1123598821738675201', N'2019-04-27 17:03:10', N'1', N'0'), (N'1123598821738675203', N'000000', NULL, N'1', N'manager', N'dfbaa3b61caa3a319f463cc165085aa8c822d2ce', N'经理', N'经理', N'', N'manager@bladex.vip', N'123333333333', N'2018-08-08 00:00:00', N'1', N'1123598816738675204', N'1123598813738675202', N'1123598817738675206', N'1123598821738675201', N'1123598813738675201', N'2019-04-27 17:03:38', N'1123598821738675201', N'2019-04-27 17:03:38', N'1', N'0'), (N'1123598821738675204', N'000000', NULL, N'1', N'boss', N'abe57d23e18f7ad8ea99c86e430c90a05119a9d3', N'老板', N'老板', N'', N'boss@bladex.vip', N'123333333333', N'2018-08-08 00:00:00', N'1', N'1123598816738675205', N'1123598813738675202', N'1123598817738675201', N'1123598821738675201', N'1123598813738675201', N'2019-04-27 17:03:55', N'1123598821738675201', N'2019-04-27 17:03:55', N'1', N'0')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_user_app
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user_app]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_user_app]
+GO
+
+CREATE TABLE [dbo].[blade_user_app] (
+  [id] bigint  NOT NULL,
+  [user_id] bigint  NULL,
+  [user_ext] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_user_app] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_app',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_app',
+'COLUMN', N'user_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户拓展信息',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_app',
+'COLUMN', N'user_ext'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户平台拓展表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_app'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_user_dept
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user_dept]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_user_dept]
+GO
+
+CREATE TABLE [dbo].[blade_user_dept] (
+  [id] bigint  NOT NULL,
+  [user_id] bigint  NULL,
+  [dept_id] bigint  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_user_dept] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_dept',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_dept',
+'COLUMN', N'user_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'部门ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_dept',
+'COLUMN', N'dept_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户部门表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_dept'
+GO
+
+
+-- ----------------------------
+-- Records of blade_user_dept
+-- ----------------------------
+BEGIN TRANSACTION
+GO
+
+INSERT INTO [dbo].[blade_user_dept] VALUES (N'1203503640757788674', N'1123598821738675201', N'1123598813738675201'), (N'1203503653323923458', N'1123598821738675202', N'1123598813738675202'), (N'1203503663402835969', N'1123598821738675203', N'1123598813738675202'), (N'1203503672911323137', N'1123598821738675204', N'1123598813738675202')
+GO
+
+COMMIT
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_user_oauth
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user_oauth]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_user_oauth]
+GO
+
+CREATE TABLE [dbo].[blade_user_oauth] (
+  [id] bigint  NOT NULL,
+  [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS  NULL,
+  [uuid] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [user_id] bigint  NULL,
+  [username] nvarchar(32) COLLATE Chinese_PRC_CI_AS  NULL,
+  [nickname] nvarchar(64) COLLATE Chinese_PRC_CI_AS  NULL,
+  [avatar] nvarchar(1000) COLLATE Chinese_PRC_CI_AS  NULL,
+  [blog] nvarchar(50) COLLATE Chinese_PRC_CI_AS  NULL,
+  [company] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [location] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [email] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS  NULL,
+  [gender] nvarchar(16) COLLATE Chinese_PRC_CI_AS  NULL,
+  [source] nvarchar(16) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_user_oauth] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'租户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'tenant_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'第三方系统用户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'uuid'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'user_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'账号',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'username'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'nickname'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'头像',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'avatar'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'应用主页',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'blog'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'公司名',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'company'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'地址',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'location'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'邮件',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'email'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'备注',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'remark'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'性别',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'gender'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'来源',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth',
+'COLUMN', N'source'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户第三方认证表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_oauth'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_user_other
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user_other]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_user_other]
+GO
+
+CREATE TABLE [dbo].[blade_user_other] (
+  [id] bigint  NOT NULL,
+  [user_id] bigint  NULL,
+  [user_ext] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_user_other] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_other',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_other',
+'COLUMN', N'user_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户拓展信息',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_other',
+'COLUMN', N'user_ext'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户平台拓展表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_other'
+GO
+
+
+-- ----------------------------
+-- Table structure for blade_user_web
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user_web]') AND type IN ('U'))
+	DROP TABLE [dbo].[blade_user_web]
+GO
+
+CREATE TABLE [dbo].[blade_user_web] (
+  [id] bigint  NOT NULL,
+  [user_id] bigint  NULL,
+  [user_ext] varchar(255) COLLATE Chinese_PRC_CI_AS  NULL
+)
+GO
+
+ALTER TABLE [dbo].[blade_user_web] SET (LOCK_ESCALATION = TABLE)
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_web',
+'COLUMN', N'id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户ID',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_web',
+'COLUMN', N'user_id'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户拓展信息',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_web',
+'COLUMN', N'user_ext'
+GO
+
+EXEC sp_addextendedproperty
+'MS_Description', N'用户平台拓展表',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_user_web'
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_attach
+-- ----------------------------
+ALTER TABLE [dbo].[blade_attach] ADD CONSTRAINT [PK__blade_at__3213E83F38EE7070] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_client
+-- ----------------------------
+ALTER TABLE [dbo].[blade_client] ADD CONSTRAINT [PK__blade_cl__3213E83F3BCADD1B] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_code
+-- ----------------------------
+ALTER TABLE [dbo].[blade_code] ADD CONSTRAINT [PK__blade_co__3213E83F3EA749C6] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_datasource
+-- ----------------------------
+ALTER TABLE [dbo].[blade_datasource] ADD CONSTRAINT [PK__blade_da__3213E83F4183B671] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_dept
+-- ----------------------------
+ALTER TABLE [dbo].[blade_dept] ADD CONSTRAINT [PK__blade_de__3213E83F4460231C] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_dict
+-- ----------------------------
+ALTER TABLE [dbo].[blade_dict] ADD CONSTRAINT [PK__blade_di__3213E83F473C8FC7] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_dict_biz
+-- ----------------------------
+ALTER TABLE [dbo].[blade_dict_biz] ADD CONSTRAINT [PK__blade_di__3213E83F4A18FC72] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_log_api
+-- ----------------------------
+ALTER TABLE [dbo].[blade_log_api] ADD CONSTRAINT [PK__blade_lo__3213E83F4CF5691D] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_log_error
+-- ----------------------------
+ALTER TABLE [dbo].[blade_log_error] ADD CONSTRAINT [PK__blade_lo__3213E83F4FD1D5C8] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_log_usual
+-- ----------------------------
+ALTER TABLE [dbo].[blade_log_usual] ADD CONSTRAINT [PK__blade_lo__3213E83F52AE4273] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_menu
+-- ----------------------------
+ALTER TABLE [dbo].[blade_menu] ADD CONSTRAINT [PK__blade_me__3213E83F558AAF1E] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_model
+-- ----------------------------
+ALTER TABLE [dbo].[blade_model] ADD CONSTRAINT [PK__blade_mo__3213E83F2101D846] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_model_prototype
+-- ----------------------------
+ALTER TABLE [dbo].[blade_model_prototype] ADD CONSTRAINT [PK__blade_mo__3213E83F24D2692A] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_notice
+-- ----------------------------
+ALTER TABLE [dbo].[blade_notice] ADD CONSTRAINT [PK__blade_no__3213E83F58671BC9] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_oss
+-- ----------------------------
+ALTER TABLE [dbo].[blade_oss] ADD CONSTRAINT [PK__blade_os__3213E83F5B438874] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_param
+-- ----------------------------
+ALTER TABLE [dbo].[blade_param] ADD CONSTRAINT [PK__blade_pa__3213E83F5E1FF51F] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_post
+-- ----------------------------
+ALTER TABLE [dbo].[blade_post] ADD CONSTRAINT [PK__blade_po__3213E83F60FC61CA] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_process_leave
+-- ----------------------------
+ALTER TABLE [dbo].[blade_process_leave] ADD CONSTRAINT [PK__blade_pr__3213E83F63D8CE75] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_region
+-- ----------------------------
+ALTER TABLE [dbo].[blade_region] ADD CONSTRAINT [PK__blade_re__357D4CF866B53B20] PRIMARY KEY CLUSTERED ([code])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_report_file
+-- ----------------------------
+ALTER TABLE [dbo].[blade_report_file] ADD CONSTRAINT [PK__blade_re__3213E83F1C722D53] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_role
+-- ----------------------------
+ALTER TABLE [dbo].[blade_role] ADD CONSTRAINT [PK__blade_ro__3213E83F6991A7CB] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_role_menu
+-- ----------------------------
+ALTER TABLE [dbo].[blade_role_menu] ADD CONSTRAINT [PK__blade_ro__3213E83F6C6E1476] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_role_scope
+-- ----------------------------
+ALTER TABLE [dbo].[blade_role_scope] ADD CONSTRAINT [PK__blade_ro__3213E83F6F4A8121] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_scope_api
+-- ----------------------------
+ALTER TABLE [dbo].[blade_scope_api] ADD CONSTRAINT [PK__blade_sc__3213E83F7226EDCC] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_scope_data
+-- ----------------------------
+ALTER TABLE [dbo].[blade_scope_data] ADD CONSTRAINT [PK__blade_sc__3213E83F75035A77] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_sms
+-- ----------------------------
+ALTER TABLE [dbo].[blade_sms] ADD CONSTRAINT [PK__blade_sm__3213E83F77DFC722] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_tenant
+-- ----------------------------
+ALTER TABLE [dbo].[blade_tenant] ADD CONSTRAINT [PK__blade_te__3213E83F7ABC33CD] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_tenant_package
+-- ----------------------------
+ALTER TABLE [dbo].[blade_tenant_package] ADD CONSTRAINT [PK__blade_te__3213E83F4D7F7902] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_top_menu
+-- ----------------------------
+ALTER TABLE [dbo].[blade_top_menu] ADD CONSTRAINT [PK__blade_to__3213E83F7D98A078] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_top_menu_setting
+-- ----------------------------
+ALTER TABLE [dbo].[blade_top_menu_setting] ADD CONSTRAINT [PK__blade_to__3213E83F00750D23] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_user
+-- ----------------------------
+ALTER TABLE [dbo].[blade_user] ADD CONSTRAINT [PK__blade_us__3213E83F035179CE] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_app
+-- ----------------------------
+ALTER TABLE [dbo].[blade_user_app] ADD CONSTRAINT [PK__blade_us__3213E83F318258D2] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_dept
+-- ----------------------------
+ALTER TABLE [dbo].[blade_user_dept] ADD CONSTRAINT [PK__blade_us__3213E83F062DE679] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_oauth
+-- ----------------------------
+ALTER TABLE [dbo].[blade_user_oauth] ADD CONSTRAINT [PK__blade_us__3213E83F090A5324] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_other
+-- ----------------------------
+ALTER TABLE [dbo].[blade_user_other] ADD CONSTRAINT [PK__blade_us__3213E83F3552E9B6] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
+
+-- ----------------------------
+-- Primary Key structure for table blade_user_web
+-- ----------------------------
+ALTER TABLE [dbo].[blade_user_web] ADD CONSTRAINT [PK__blade_us__3213E83F2DB1C7EE] PRIMARY KEY CLUSTERED ([id])
+WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+ON [PRIMARY]
+GO
+
diff --git a/skjcmanager/doc/sql/update/bladex-update-dameng-3.0.0~3.0.1.sql b/skjcmanager/doc/sql/update/bladex-update-dameng-3.0.0~3.0.1.sql
new file mode 100644
index 0000000..1dee51f
--- /dev/null
+++ b/skjcmanager/doc/sql/update/bladex-update-dameng-3.0.0~3.0.1.sql
@@ -0,0 +1,126 @@
+-- -----------------------------------
+-- 修改 代码生成表字段类型
+-- -----------------------------------
+ALTER TABLE "BLADEX"."BLADE_CODE" ALTER COLUMN "DATASOURCE_ID" RENAME TO "MODEL_ID";
+
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."MODEL_ID" IS '数据模型主键';
+
+-- -----------------------------------
+-- 新增 代码生成表字段类型
+-- -----------------------------------
+ALTER TABLE "BLADEX"."BLADE_CODE" ADD "TEMPLATE_TYPE" VARCHAR(32);
+ALTER TABLE "BLADEX"."BLADE_CODE" ADD "AUTHOR" VARCHAR(32);
+ALTER TABLE "BLADEX"."BLADE_CODE" ADD "SUB_MODEL_ID" VARCHAR(32);
+ALTER TABLE "BLADEX"."BLADE_CODE" ADD "SUB_FK_ID" VARCHAR(32);
+ALTER TABLE "BLADEX"."BLADE_CODE" ADD "TREE_ID" VARCHAR(32);
+ALTER TABLE "BLADEX"."BLADE_CODE" ADD "TREE_PID" VARCHAR(32);
+ALTER TABLE "BLADEX"."BLADE_CODE" ADD "TREE_NAME" VARCHAR(64);
+
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."TEMPLATE_TYPE" IS '模版类型';
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."AUTHOR" IS '作者信息';
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."SUB_MODEL_ID" IS '子表模型主键';
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."SUB_FK_ID" IS '子表绑定外键';
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."TREE_ID" IS '树主键字段';
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."TREE_PID" IS '树父主键字段';
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."TREE_NAME" IS '树名称字段';
+
+
+-- -----------------------------------
+-- 新增模型设计菜单
+-- -----------------------------------
+INSERT INTO "BLADEX"."BLADE_MENU"("ID", "PARENT_ID", "CODE", "NAME", "ALIAS", "PATH", "SOURCE", "SORT", "CATEGORY", "ACTION", "IS_OPEN", "COMPONENT", "REMARK", "IS_DELETED")
+VALUES ('1161272593873321996', '1123598815738675217', 'model', '数据模型设计', 'menu', '/tool/model', 'iconfont icon-biaodan', 3, 1, 0, 1, '', '', 0);
+
+
+-- -----------------------------------
+-- 新增 数据模型表
+-- -----------------------------------
+CREATE TABLE "BLADEX"."BLADE_MODEL"
+(
+    "ID" BIGINT IDENTITY(1, 1) NOT NULL,
+    "DATASOURCE_ID" BIGINT,
+    "MODEL_NAME" VARCHAR(50),
+    "MODEL_CODE" VARCHAR(50),
+    "MODEL_TABLE" VARCHAR(100),
+    "MODEL_CLASS" VARCHAR(100),
+    "MODEL_REMARK" VARCHAR(500),
+    "CREATE_USER" BIGINT,
+    "CREATE_DEPT" BIGINT,
+    "CREATE_TIME" TIMESTAMP(0),
+    "UPDATE_USER" BIGINT,
+    "UPDATE_TIME" TIMESTAMP(0),
+    "STATUS" INT,
+    "IS_DELETED" INT,
+    NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
+
+COMMENT ON TABLE "BLADEX"."BLADE_MODEL" IS '数据模型表';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."DATASOURCE_ID" IS '数据源主键';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."ID" IS '主键';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."IS_DELETED" IS '是否已删除';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."MODEL_CLASS" IS '模型类名';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."MODEL_CODE" IS '模型编号';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."MODEL_NAME" IS '模型名称';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."MODEL_REMARK" IS '模型备注';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."MODEL_TABLE" IS '物理表名';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."UPDATE_USER" IS '修改人';
+
+-- -----------------------------------
+-- 新增 数据原型表
+-- -----------------------------------
+CREATE TABLE "BLADEX"."BLADE_MODEL_PROTOTYPE"
+(
+    "ID" BIGINT IDENTITY(1, 1) NOT NULL,
+    "MODEL_ID" BIGINT,
+    "JDBC_NAME" VARCHAR(50),
+    "JDBC_TYPE" VARCHAR(20),
+    "COMMENT" VARCHAR(500),
+    "PROPERTY_TYPE" VARCHAR(20),
+    "PROPERTY_ENTITY" VARCHAR(500),
+    "PROPERTY_NAME" VARCHAR(50),
+    "IS_LIST" INT,
+    "IS_FORM" INT,
+    "IS_ROW" INT,
+    "COMPONENT_TYPE" VARCHAR(50),
+    "DICT_CODE" VARCHAR(50),
+    "IS_REQUIRED" INT,
+    "IS_QUERY" INT,
+    "QUERY_TYPE" VARCHAR(50),
+    "CREATE_USER" BIGINT,
+    "CREATE_DEPT" BIGINT,
+    "CREATE_TIME" TIMESTAMP(0),
+    "UPDATE_USER" BIGINT,
+    "UPDATE_TIME" TIMESTAMP(0),
+    "STATUS" INT,
+    "IS_DELETED" INT,
+    NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "MAIN", CLUSTERBTR) ;
+
+COMMENT ON TABLE "BLADEX"."BLADE_MODEL_PROTOTYPE" IS '数据原型表';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."COMMENT" IS '注释说明';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."COMPONENT_TYPE" IS '组件类型';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."DICT_CODE" IS '字典编码';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_DELETED" IS '是否已删除';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_FORM" IS '表单显示';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_LIST" IS '列表显示';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_QUERY" IS '查询配置';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_REQUIRED" IS '是否必填';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_ROW" IS '独占一行';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."JDBC_NAME" IS '物理列名';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."JDBC_TYPE" IS '物理类型';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."MODEL_ID" IS '模型主键';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."PROPERTY_ENTITY" IS '实体类型引用';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."PROPERTY_NAME" IS '实体列名';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."PROPERTY_TYPE" IS '实体类型';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."QUERY_TYPE" IS '查询类型';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."UPDATE_USER" IS '修改人';
+
diff --git a/skjcmanager/doc/sql/update/bladex-update-mysql-3.0.0~3.0.1.sql b/skjcmanager/doc/sql/update/bladex-update-mysql-3.0.0~3.0.1.sql
new file mode 100644
index 0000000..5b6a561
--- /dev/null
+++ b/skjcmanager/doc/sql/update/bladex-update-mysql-3.0.0~3.0.1.sql
@@ -0,0 +1,73 @@
+-- -----------------------------------
+-- 修改 代码生成表字段类型
+-- -----------------------------------
+ALTER TABLE `blade_code`
+    CHANGE COLUMN `datasource_id` `model_id` bigint(20) NULL DEFAULT NULL COMMENT '数据模型主键' AFTER `id`;
+
+-- -----------------------------------
+-- 新增 代码生成表字段类型
+-- -----------------------------------
+ALTER TABLE `blade_code`
+    ADD COLUMN `template_type` varchar(32) NULL COMMENT '模版类型' AFTER `package_name`,
+    ADD COLUMN `author` varchar(32) NULL COMMENT '作者信息' AFTER `template_type`,
+    ADD COLUMN `sub_model_id` varchar(32) NULL COMMENT '子表模型主键' AFTER `author`,
+    ADD COLUMN `sub_fk_id` varchar(32) NULL COMMENT '子表绑定外键' AFTER `sub_model_id`,
+    ADD COLUMN `tree_id` varchar(32) NULL COMMENT '树主键字段' AFTER `sub_fk_id`,
+    ADD COLUMN `tree_pid` varchar(32) NULL COMMENT '树父主键字段' AFTER `tree_id`,
+    ADD COLUMN `tree_name` varchar(64) NULL COMMENT '树名称字段' AFTER `tree_pid`;
+
+-- -----------------------------------
+-- 新增模型设计菜单
+-- -----------------------------------
+INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `component`, `remark`, `is_deleted`) VALUES (1161272593873321996, 1123598815738675217, 'model', '数据模型设计', 'menu', '/tool/model', 'iconfont icon-biaodan', 3, 1, 0, 1, '', '', 0);
+
+-- -----------------------------------
+-- 新增 数据模型表
+-- -----------------------------------
+CREATE TABLE `blade_model`  (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `datasource_id` bigint(20) NULL DEFAULT NULL COMMENT '数据源主键',
+  `model_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型名称',
+  `model_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型编号',
+  `model_table` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物理表名',
+  `model_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型类名',
+  `model_remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型备注',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`)
+) COMMENT = '数据模型表';
+
+-- -----------------------------------
+-- 新增 数据原型表
+-- -----------------------------------
+CREATE TABLE `blade_model_prototype`  (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `model_id` bigint(20) NULL DEFAULT NULL COMMENT '模型主键',
+  `jdbc_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物理列名',
+  `jdbc_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物理类型',
+  `comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '注释说明',
+  `property_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实体类型',
+  `property_entity` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实体类型引用',
+  `property_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实体列名',
+  `is_list` int(2) NULL DEFAULT NULL COMMENT '列表显示',
+  `is_form` int(2) NULL DEFAULT NULL COMMENT '表单显示',
+  `is_row` int(2) NULL DEFAULT NULL COMMENT '独占一行',
+  `component_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件类型',
+  `dict_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典编码',
+  `is_required` int(2) NULL DEFAULT NULL COMMENT '是否必填',
+  `is_query` int(2) NULL DEFAULT NULL COMMENT '查询配置',
+  `query_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '查询类型',
+  `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人',
+  `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门',
+  `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+  `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人',
+  `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间',
+  `status` int(2) NULL DEFAULT NULL COMMENT '状态',
+  `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除',
+  PRIMARY KEY (`id`)
+) COMMENT = '数据原型表';
diff --git a/skjcmanager/doc/sql/update/bladex-update-oracle-3.0.0~3.0.1.sql b/skjcmanager/doc/sql/update/bladex-update-oracle-3.0.0~3.0.1.sql
new file mode 100644
index 0000000..9f3f45e
--- /dev/null
+++ b/skjcmanager/doc/sql/update/bladex-update-oracle-3.0.0~3.0.1.sql
@@ -0,0 +1,122 @@
+-- -----------------------------------
+-- 修改 代码生成表字段类型
+-- -----------------------------------
+ALTER TABLE "BLADEX"."BLADE_CODE" RENAME COLUMN DATASOURCE_ID TO MODEL_ID;
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."MODEL_ID" IS '数据模型主键';
+
+-- -----------------------------------
+-- 新增 代码生成表字段类型
+-- -----------------------------------
+ALTER TABLE "BLADEX"."BLADE_CODE"
+    ADD ("TEMPLATE_TYPE" VARCHAR2(32) )
+    ADD ("AUTHOR" VARCHAR2(32) )
+    ADD ("SUB_MODEL_ID" VARCHAR2(32) )
+    ADD ("SUB_FK_ID" VARCHAR2(32) )
+    ADD ("TREE_ID" VARCHAR2(32) )
+    ADD ("TREE_PID" VARCHAR2(32) )
+    ADD ("TREE_NAME" VARCHAR2(64) );
+
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."TEMPLATE_TYPE" IS '模版类型';
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."AUTHOR" IS '作者信息';
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."SUB_MODEL_ID" IS '子表模型主键';
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."SUB_FK_ID" IS '子表绑定外键';
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."TREE_ID" IS '树主键字段';
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."TREE_PID" IS '树父主键字段';
+COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."TREE_NAME" IS '树名称字段';
+
+-- -----------------------------------
+-- 新增模型设计菜单
+-- -----------------------------------
+INSERT INTO "BLADEX"."BLADE_MENU"("ID", "PARENT_ID", "CODE", "NAME", "ALIAS", "PATH", "SOURCE", "SORT", "CATEGORY", "ACTION", "IS_OPEN", "COMPONENT", "REMARK", "IS_DELETED")
+VALUES ('1161272593873321996', '1123598815738675217', 'model', '数据模型设计', 'menu', '/tool/model', 'iconfont icon-biaodan', 3, 1, 0, 1, '', '', 0);
+
+-- -----------------------------------
+-- 新增 数据模型表
+-- -----------------------------------
+CREATE TABLE "BLADEX"."BLADE_MODEL" (
+   "ID" NUMBER(20) NOT NULL ,
+   "DATASOURCE_ID" NUMBER(20) ,
+   "MODEL_NAME" NVARCHAR2(50) ,
+   "MODEL_CODE" NVARCHAR2(50) ,
+   "MODEL_TABLE" NVARCHAR2(100) ,
+   "MODEL_CLASS" NVARCHAR2(100) ,
+   "MODEL_REMARK" NVARCHAR2(500) ,
+   "CREATE_USER" NUMBER(20) ,
+   "CREATE_DEPT" NUMBER(20) ,
+   "CREATE_TIME" DATE ,
+   "UPDATE_USER" NUMBER(20) ,
+   "UPDATE_TIME" DATE ,
+   "STATUS" NUMBER(11) ,
+   "IS_DELETED" NUMBER(11) ,
+   PRIMARY KEY ("ID")
+);
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."ID" IS '主键';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."DATASOURCE_ID" IS '数据源主键';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."MODEL_NAME" IS '模型名称';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."MODEL_CODE" IS '模型编号';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."MODEL_TABLE" IS '物理表名';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."MODEL_CLASS" IS '模型类名';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."MODEL_REMARK" IS '模型备注';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADEX"."BLADE_MODEL" IS '数据模型表';
+
+
+-- -----------------------------------
+-- 新增 数据原型表
+-- -----------------------------------
+CREATE TABLE "BLADEX"."BLADE_MODEL_PROTOTYPE" (
+    "ID" NUMBER(20) NOT NULL ,
+    "MODEL_ID" NUMBER(20) ,
+    "JDBC_NAME" NVARCHAR2(50) ,
+    "JDBC_TYPE" NVARCHAR2(20) ,
+    "COMMENT" NVARCHAR2(500) ,
+    "PROPERTY_TYPE" NVARCHAR2(20) ,
+    "PROPERTY_ENTITY" NVARCHAR2(500) ,
+    "PROPERTY_NAME" NVARCHAR2(50) ,
+    "IS_LIST" NUMBER(11) ,
+    "IS_FORM" NUMBER(11) ,
+    "IS_ROW" NUMBER(11) ,
+    "COMPONENT_TYPE" NVARCHAR2(50) ,
+    "DICT_CODE" NVARCHAR2(50) ,
+    "IS_REQUIRED" NUMBER(11) ,
+    "IS_QUERY" NUMBER(11) ,
+    "QUERY_TYPE" NVARCHAR2(50) ,
+    "CREATE_USER" NUMBER(20) ,
+    "CREATE_DEPT" NUMBER(20) ,
+    "CREATE_TIME" DATE ,
+    "UPDATE_USER" NUMBER(20) ,
+    "UPDATE_TIME" DATE ,
+    "STATUS" NUMBER(11) ,
+    "IS_DELETED" NUMBER(11) ,
+    PRIMARY KEY ("ID")
+);
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."ID" IS '主键';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."MODEL_ID" IS '模型主键';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."JDBC_NAME" IS '物理列名';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."JDBC_TYPE" IS '物理类型';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."COMMENT" IS '注释说明';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."PROPERTY_TYPE" IS '实体类型';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."PROPERTY_ENTITY" IS '实体类型引用';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."PROPERTY_NAME" IS '实体列名';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_LIST" IS '列表显示';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_FORM" IS '表单显示';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_ROW" IS '独占一行';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."COMPONENT_TYPE" IS '组件类型';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."DICT_CODE" IS '字典编码';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_REQUIRED" IS '是否必填';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_QUERY" IS '查询配置';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."QUERY_TYPE" IS '查询类型';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."CREATE_USER" IS '创建人';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."CREATE_DEPT" IS '创建部门';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."CREATE_TIME" IS '创建时间';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."UPDATE_USER" IS '修改人';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."UPDATE_TIME" IS '修改时间';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."STATUS" IS '状态';
+COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_DELETED" IS '是否已删除';
+COMMENT ON TABLE "BLADEX"."BLADE_MODEL_PROTOTYPE" IS '数据原型表';
diff --git a/skjcmanager/doc/sql/update/bladex-update-postgresql-3.0.0~3.0.1.sql b/skjcmanager/doc/sql/update/bladex-update-postgresql-3.0.0~3.0.1.sql
new file mode 100644
index 0000000..ffec8c2
--- /dev/null
+++ b/skjcmanager/doc/sql/update/bladex-update-postgresql-3.0.0~3.0.1.sql
@@ -0,0 +1,171 @@
+-- -----------------------------------
+-- 给代码生成添加字段
+-- -----------------------------------
+ALTER TABLE "blade_code" RENAME COLUMN "datasource_id" TO "model_id";
+COMMENT ON COLUMN "blade_code"."model_id" IS '数据模型主键';
+
+-- -----------------------------------
+-- 新增 代码生成表字段类型
+-- -----------------------------------
+ALTER TABLE "blade_code"
+    ADD COLUMN "template_type" varchar(32),
+    ADD COLUMN "author" varchar(32),
+    ADD COLUMN "sub_model_id" varchar(32),
+    ADD COLUMN "sub_fk_id" varchar(32),
+    ADD COLUMN "tree_id" varchar(32),
+    ADD COLUMN "tree_pid" varchar(32),
+    ADD COLUMN "tree_name" varchar(64);
+
+COMMENT ON COLUMN "blade_code"."template_type" IS '模版类型';
+
+COMMENT ON COLUMN "blade_code"."author" IS '作者信息';
+
+COMMENT ON COLUMN "blade_code"."sub_model_id" IS '子表模型主键';
+
+COMMENT ON COLUMN "blade_code"."sub_fk_id" IS '子表绑定外键';
+
+COMMENT ON COLUMN "blade_code"."tree_id" IS '树主键字段';
+
+COMMENT ON COLUMN "blade_code"."tree_pid" IS '树父主键字段';
+
+COMMENT ON COLUMN "blade_code"."tree_name" IS '树名称字段';
+
+
+-- -----------------------------------
+-- 新增模型设计菜单
+-- -----------------------------------
+INSERT INTO "blade_menu"("id", "parent_id", "code", "name", "alias", "path", "source", "sort", "category", "action", "is_open", "component", "remark", "is_deleted") VALUES (1161272593873321996, 1123598815738675217, 'model', '数据模型设计', 'menu', '/tool/model', 'iconfont icon-biaodan', 3, 1, 0, 1, '', '', 0);
+
+-- -----------------------------------
+-- 新增 数据模型表
+-- -----------------------------------
+CREATE TABLE "blade_model" (
+    "id" int8 NOT NULL,
+    "datasource_id" int8,
+    "model_name" varchar(50) COLLATE "pg_catalog"."default",
+    "model_code" varchar(50) COLLATE "pg_catalog"."default",
+    "model_table" varchar(100) COLLATE "pg_catalog"."default",
+    "model_class" varchar(100) COLLATE "pg_catalog"."default",
+    "model_remark" varchar(500) COLLATE "pg_catalog"."default",
+    "create_user" int8,
+    "create_dept" int8,
+    "create_time" timestamp(6),
+    "update_user" int8,
+    "update_time" timestamp(6),
+    "status" int4,
+    "is_deleted" int4,
+    PRIMARY KEY ("id")
+)
+;
+
+COMMENT ON COLUMN "blade_model"."id" IS '主键';
+
+COMMENT ON COLUMN "blade_model"."datasource_id" IS '数据源主键';
+
+COMMENT ON COLUMN "blade_model"."model_name" IS '模型名称';
+
+COMMENT ON COLUMN "blade_model"."model_code" IS '模型编号';
+
+COMMENT ON COLUMN "blade_model"."model_table" IS '物理表名';
+
+COMMENT ON COLUMN "blade_model"."model_class" IS '模型类名';
+
+COMMENT ON COLUMN "blade_model"."model_remark" IS '模型备注';
+
+COMMENT ON COLUMN "blade_model"."create_user" IS '创建人';
+
+COMMENT ON COLUMN "blade_model"."create_dept" IS '创建部门';
+
+COMMENT ON COLUMN "blade_model"."create_time" IS '创建时间';
+
+COMMENT ON COLUMN "blade_model"."update_user" IS '修改人';
+
+COMMENT ON COLUMN "blade_model"."update_time" IS '修改时间';
+
+COMMENT ON COLUMN "blade_model"."status" IS '状态';
+
+COMMENT ON COLUMN "blade_model"."is_deleted" IS '是否已删除';
+
+COMMENT ON TABLE "blade_model" IS '数据模型表';
+
+-- -----------------------------------
+-- 新增 数据原型表
+-- -----------------------------------
+CREATE TABLE "blade_model_prototype" (
+    "id" int8 NOT NULL,
+    "model_id" int8,
+    "jdbc_name" varchar(50) COLLATE "pg_catalog"."default",
+    "jdbc_type" varchar(20) COLLATE "pg_catalog"."default",
+    "comment" varchar(500) COLLATE "pg_catalog"."default",
+    "property_type" varchar(20) COLLATE "pg_catalog"."default",
+    "property_entity" varchar(500) COLLATE "pg_catalog"."default",
+    "property_name" varchar(50) COLLATE "pg_catalog"."default",
+    "is_list" int4,
+    "is_form" int4,
+    "is_row" int4,
+    "component_type" varchar(50) COLLATE "pg_catalog"."default",
+    "dict_code" varchar(50) COLLATE "pg_catalog"."default",
+    "is_required" int4,
+    "validate_type" varchar(50) COLLATE "pg_catalog"."default",
+    "is_query" int4,
+    "query_type" varchar(50) COLLATE "pg_catalog"."default",
+    "create_user" int8,
+    "create_dept" int8,
+    "create_time" timestamp(6),
+    "update_user" int8,
+    "update_time" timestamp(6),
+    "status" int4,
+    "is_deleted" int4,
+    PRIMARY KEY ("id")
+)
+;
+
+COMMENT ON COLUMN "blade_model_prototype"."id" IS '主键';
+
+COMMENT ON COLUMN "blade_model_prototype"."model_id" IS '模型主键';
+
+COMMENT ON COLUMN "blade_model_prototype"."jdbc_name" IS '物理列名';
+
+COMMENT ON COLUMN "blade_model_prototype"."jdbc_type" IS '物理类型';
+
+COMMENT ON COLUMN "blade_model_prototype"."comment" IS '注释说明';
+
+COMMENT ON COLUMN "blade_model_prototype"."property_type" IS '实体类型';
+
+COMMENT ON COLUMN "blade_model_prototype"."property_entity" IS '实体类型引用';
+
+COMMENT ON COLUMN "blade_model_prototype"."property_name" IS '实体列名';
+
+COMMENT ON COLUMN "blade_model_prototype"."is_list" IS '列表显示';
+
+COMMENT ON COLUMN "blade_model_prototype"."is_form" IS '表单显示';
+
+COMMENT ON COLUMN "blade_model_prototype"."is_row" IS '独占一行';
+
+COMMENT ON COLUMN "blade_model_prototype"."component_type" IS '组件类型';
+
+COMMENT ON COLUMN "blade_model_prototype"."dict_code" IS '字典编码';
+
+COMMENT ON COLUMN "blade_model_prototype"."is_required" IS '是否必填';
+
+COMMENT ON COLUMN "blade_model_prototype"."validate_type" IS '验证类型';
+
+COMMENT ON COLUMN "blade_model_prototype"."is_query" IS '查询配置';
+
+COMMENT ON COLUMN "blade_model_prototype"."query_type" IS '查询类型';
+
+COMMENT ON COLUMN "blade_model_prototype"."create_user" IS '创建人';
+
+COMMENT ON COLUMN "blade_model_prototype"."create_dept" IS '创建部门';
+
+COMMENT ON COLUMN "blade_model_prototype"."create_time" IS '创建时间';
+
+COMMENT ON COLUMN "blade_model_prototype"."update_user" IS '修改人';
+
+COMMENT ON COLUMN "blade_model_prototype"."update_time" IS '修改时间';
+
+COMMENT ON COLUMN "blade_model_prototype"."status" IS '状态';
+
+COMMENT ON COLUMN "blade_model_prototype"."is_deleted" IS '是否已删除';
+
+COMMENT ON TABLE "blade_model_prototype" IS '数据原型表';
diff --git a/skjcmanager/doc/sql/update/bladex-update-sqlserver-3.0.0~3.0.1.sql b/skjcmanager/doc/sql/update/bladex-update-sqlserver-3.0.0~3.0.1.sql
new file mode 100644
index 0000000..27cfab0
--- /dev/null
+++ b/skjcmanager/doc/sql/update/bladex-update-sqlserver-3.0.0~3.0.1.sql
@@ -0,0 +1,430 @@
+-- -----------------------------------
+-- 修改 代码生成表字段类型
+-- -----------------------------------
+EXEC sp_rename '[dbo].[blade_code].[datasource_id]', 'model_id', 'COLUMN'
+GO
+
+IF ((SELECT COUNT(*) FROM ::fn_listextendedproperty('MS_Description',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'model_id')) > 0)
+  EXEC sp_updateextendedproperty
+'MS_Description', N'数据模型主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'model_id'
+ELSE
+  EXEC sp_addextendedproperty
+'MS_Description', N'数据模型主键',
+'SCHEMA', N'dbo',
+'TABLE', N'blade_code',
+'COLUMN', N'model_id';
+
+-- -----------------------------------
+-- 新增 代码生成表字段类型
+-- -----------------------------------
+ALTER TABLE [dbo].[blade_code] ADD [template_type] nvarchar(32)
+    GO
+
+ALTER TABLE [dbo].[blade_code] ADD [author] nvarchar(32)
+    GO
+
+ALTER TABLE [dbo].[blade_code] ADD [sub_model_id] nvarchar(32)
+    GO
+
+ALTER TABLE [dbo].[blade_code] ADD [sub_fk_id] nvarchar(32)
+    GO
+
+ALTER TABLE [dbo].[blade_code] ADD [tree_id] nvarchar(32)
+    GO
+
+ALTER TABLE [dbo].[blade_code] ADD [tree_pid] nvarchar(32)
+    GO
+
+ALTER TABLE [dbo].[blade_code] ADD [tree_name] nvarchar(64)
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'模版类型',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_code',
+    'COLUMN', N'template_type'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'作者信息',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_code',
+    'COLUMN', N'author'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'子表模型主键',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_code',
+    'COLUMN', N'sub_model_id'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'子表绑定外键',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_code',
+    'COLUMN', N'sub_fk_id'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'树主键字段',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_code',
+    'COLUMN', N'tree_id'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'树父主键字段',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_code',
+    'COLUMN', N'tree_pid'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'树名称字段',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_code',
+    'COLUMN', N'tree_name';
+
+-- -----------------------------------
+-- 新增模型设计菜单
+-- -----------------------------------
+INSERT INTO [dbo].[blade_menu]([id], [parent_id], [code], [name], [alias], [path], [source], [sort], [category], [action], [is_open], [component], [remark], [is_deleted]) VALUES (1161272593873321996, 1123598815738675217, N'model', N'数据模型设计', N'menu', N'/tool/model', N'iconfont icon-biaodan', 3, 1, 0, 1, N'', NULL, 0);
+
+-- -----------------------------------
+-- 新增 数据模型表
+-- -----------------------------------
+CREATE TABLE [dbo].[blade_model] (
+    [id] bigint NOT NULL,
+    [datasource_id] bigint NULL,
+    [model_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL,
+    [model_code] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL,
+    [model_table] nvarchar(100) COLLATE Chinese_PRC_CI_AS NULL,
+    [model_class] nvarchar(100) COLLATE Chinese_PRC_CI_AS NULL,
+    [model_remark] nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL,
+    [create_user] bigint NULL,
+    [create_dept] bigint NULL,
+    [create_time] datetime2(0) NULL,
+    [update_user] bigint NULL,
+    [update_time] datetime2(0) NULL,
+    [status] int NULL,
+    [is_deleted] int NULL,
+    PRIMARY KEY CLUSTERED ([id])
+    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+    )
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'主键',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model',
+    'COLUMN', N'id'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'数据源主键',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model',
+    'COLUMN', N'datasource_id'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'模型名称',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model',
+    'COLUMN', N'model_name'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'模型编号',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model',
+    'COLUMN', N'model_code'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'物理表名',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model',
+    'COLUMN', N'model_table'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'模型类名',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model',
+    'COLUMN', N'model_class'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'模型备注',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model',
+    'COLUMN', N'model_remark'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'创建人',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model',
+    'COLUMN', N'create_user'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'创建部门',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model',
+    'COLUMN', N'create_dept'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'创建时间',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model',
+    'COLUMN', N'create_time'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'修改人',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model',
+    'COLUMN', N'update_user'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'修改时间',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model',
+    'COLUMN', N'update_time'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'状态',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model',
+    'COLUMN', N'status'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'是否已删除',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model',
+    'COLUMN', N'is_deleted'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'数据模型表',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model';
+
+-- -----------------------------------
+-- 新增 数据原型表
+-- -----------------------------------
+CREATE TABLE [dbo].[blade_model_prototype] (
+    [id] bigint NOT NULL,
+    [model_id] bigint NULL,
+    [jdbc_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL,
+    [jdbc_type] nvarchar(20) COLLATE Chinese_PRC_CI_AS NULL,
+    [comment] nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL,
+    [property_type] nvarchar(20) COLLATE Chinese_PRC_CI_AS NULL,
+    [property_entity] nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL,
+    [property_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL,
+    [is_list] int NULL,
+    [is_form] int NULL,
+    [is_row] int NULL,
+    [component_type] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL,
+    [dict_code] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL,
+    [is_required] int NULL,
+    [validate_type] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL,
+    [is_query] int NULL,
+    [query_type] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL,
+    [create_user] bigint NULL,
+    [create_dept] bigint NULL,
+    [create_time] datetime2(0) NULL,
+    [update_user] bigint NULL,
+    [update_time] datetime2(0) NULL,
+    [status] int NULL,
+    [is_deleted] int NULL,
+    PRIMARY KEY CLUSTERED ([id])
+    WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
+    )
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'主键',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'id'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'模型主键',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'model_id'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'物理列名',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'jdbc_name'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'物理类型',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'jdbc_type'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'注释说明',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'comment'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'实体类型',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'property_type'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'实体类型引用',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'property_entity'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'实体列名',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'property_name'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'列表显示',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'is_list'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'表单显示',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'is_form'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'独占一行',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'is_row'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'组件类型',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'component_type'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'字典编码',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'dict_code'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'是否必填',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'is_required'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'验证类型',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'validate_type'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'查询配置',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'is_query'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'查询类型',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'query_type'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'创建人',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'create_user'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'创建部门',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'create_dept'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'创建时间',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'create_time'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'修改人',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'update_user'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'修改时间',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'update_time'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'状态',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'status'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'是否已删除',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype',
+    'COLUMN', N'is_deleted'
+    GO
+
+    EXEC sp_addextendedproperty
+    'MS_Description', N'数据原型表',
+    'SCHEMA', N'dbo',
+    'TABLE', N'blade_model_prototype';
diff --git a/skjcmanager/pom.xml b/skjcmanager/pom.xml
new file mode 100644
index 0000000..5be0853
--- /dev/null
+++ b/skjcmanager/pom.xml
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.springblade</groupId>
+    <artifactId>skjcmanager</artifactId>
+    <version>3.0.1.RELEASE</version>
+    <packaging>pom</packaging>
+
+    <properties>
+        <bladex.project.version>3.0.1.RELEASE</bladex.project.version>
+
+        <java.version>1.8</java.version>
+        <maven.plugin.version>3.8.1</maven.plugin.version>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+
+        <spring.boot.version>2.7.1</spring.boot.version>
+        <spring.cloud.version>2021.0.3</spring.cloud.version>
+        <spring.platform.version>Cairo-SR8</spring.platform.version>
+
+        <!-- 推荐使用Harbor -->
+        <docker.registry.url>192.168.0.157</docker.registry.url>
+        <docker.registry.host>http://${docker.registry.url}:2375</docker.registry.host>
+        <docker.username>admin</docker.username>
+        <docker.password>Harbor12345</docker.password>
+        <docker.namespace>blade</docker.namespace>
+        <docker.plugin.version>1.4.13</docker.plugin.version>
+    </properties>
+
+    <modules>
+        <module>skjcmanager-auth</module>
+        <module>skjcmanager-common</module>
+        <module>skjcmanager-gateway</module>
+        <module>skjcmanager-ops</module>
+        <module>skjcmanager-ops-api</module>
+        <module>skjcmanager-plugin</module>
+        <module>skjcmanager-plugin-api</module>
+        <module>skjcmanager-service</module>
+        <module>skjcmanager-service-api</module>
+    </modules>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springblade.platform</groupId>
+                <artifactId>blade-bom</artifactId>
+                <version>${bladex.project.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.springblade</groupId>
+                <artifactId>skjcmanager-common</artifactId>
+                <version>${bladex.project.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring.boot.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring.cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+            <dependency>
+                <groupId>io.spring.platform</groupId>
+                <artifactId>platform-bom</artifactId>
+                <version>${spring.platform.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <!--达梦数据库-->
+        <dependency>
+            <groupId>com.dameng</groupId>
+            <artifactId>Dm8JdbcDriver18</artifactId>
+            <version>8.1.1.49</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>${project.name}</finalName>
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+            <resource>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**/*.xml</include>
+                </includes>
+            </resource>
+        </resources>
+        <pluginManagement>
+            <plugins>
+                <plugin>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-maven-plugin</artifactId>
+                    <version>${spring.boot.version}</version>
+                    <configuration>
+                        <fork>true</fork>
+                        <finalName>${project.build.finalName}</finalName>
+                    </configuration>
+                    <executions>
+                        <execution>
+                            <goals>
+                                <goal>repackage</goal>
+                            </goals>
+                        </execution>
+                    </executions>
+                </plugin>
+                <plugin>
+                    <groupId>com.spotify</groupId>
+                    <artifactId>dockerfile-maven-plugin</artifactId>
+                    <version>${docker.plugin.version}</version>
+                    <configuration>
+                        <username>${docker.username}</username>
+                        <password>${docker.password}</password>
+                        <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+                        <tag>${project.version}</tag>
+                        <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+                        <buildArgs>
+                            <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+                        </buildArgs>
+                    </configuration>
+                    <!--子服务添加如下配置,运行 mvn deploy 命令便会自动打包镜像-->
+                    <!--<executions>
+                        <execution>
+                            <id>default</id>
+                            <goals>
+                                <goal>build</goal>
+                                <goal>push</goal>
+                            </goals>
+                        </execution>
+                    </executions>-->
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-antrun-plugin</artifactId>
+                    <executions>
+                        <execution>
+                            <phase>package</phase>
+                            <goals>
+                                <goal>run</goal>
+                            </goals>
+                            <configuration>
+                                <tasks>
+                                    <!--suppress UnresolvedMavenProperty -->
+                                    <copy overwrite="true"
+                                          tofile="${session.executionRootDirectory}/target/${project.artifactId}.jar"
+                                          file="${project.build.directory}/${project.artifactId}.jar" />
+                                </tasks>
+                            </configuration>
+                        </execution>
+                    </executions>
+                </plugin>
+            </plugins>
+        </pluginManagement>
+        <plugins>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>dockerfile-maven-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>${maven.plugin.version}</version>
+                <configuration>
+                    <source>${java.version}</source>
+                    <target>${java.version}</target>
+                    <encoding>UTF-8</encoding>
+                    <compilerArgs>
+                        <arg>-parameters</arg>
+                    </compilerArgs>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>aliyun-repos</id>
+            <url>https://maven.aliyun.com/repository/public/</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>blade-release</id>
+            <name>Release Repository</name>
+            <url>http://nexus.javablade.com/repository/maven-releases/</url>
+        </repository>
+    </repositories>
+
+    <pluginRepositories>
+        <pluginRepository>
+            <id>aliyun-plugin</id>
+            <url>https://maven.aliyun.com/repository/public/</url>
+            <snapshots>
+                <enabled>false</enabled>
+            </snapshots>
+        </pluginRepository>
+    </pluginRepositories>
+
+</project>
diff --git a/skjcmanager/script/docker/app/.env b/skjcmanager/script/docker/app/.env
new file mode 100644
index 0000000..2dd593e
--- /dev/null
+++ b/skjcmanager/script/docker/app/.env
@@ -0,0 +1,2 @@
+REGISTER=192.168.0.157/blade
+TAG=3.0.1.RELEASE
diff --git a/skjcmanager/script/docker/app/deploy.sh b/skjcmanager/script/docker/app/deploy.sh
new file mode 100644
index 0000000..0de5179
--- /dev/null
+++ b/skjcmanager/script/docker/app/deploy.sh
@@ -0,0 +1,164 @@
+#!/bin/bash
+
+#使用说明,用来提示输入参数
+usage() {
+	echo "Usage: sh 执行脚本.sh [port|mount|base|monitor|modules|prometheus|alertmanager|stop|rm|rmiNoneTag]"
+	exit 1
+}
+
+#开启所需端口
+port(){
+	#gateway
+	firewall-cmd --add-port=88/tcp --permanent
+	#web
+	firewall-cmd --add-port=8000/tcp --permanent
+	#nacos
+	firewall-cmd --add-port=8848/tcp --permanent
+	firewall-cmd --add-port=9848/tcp --permanent
+	firewall-cmd --add-port=9849/tcp --permanent
+	#sentinel
+	firewall-cmd --add-port=8858/tcp --permanent
+	#grafana
+	firewall-cmd --add-port=3000/tcp --permanent
+	#mysql
+	firewall-cmd --add-port=3306/tcp --permanent
+	#redis
+	firewall-cmd --add-port=3379/tcp --permanent
+	#admin
+	firewall-cmd --add-port=7002/tcp --permanent
+	#turbine
+	firewall-cmd --add-port=7003/tcp --permanent
+	#ureport
+	firewall-cmd --add-port=8108/tcp --permanent
+	#zipkin
+	firewall-cmd --add-port=9411/tcp --permanent
+	#prometheus
+	firewall-cmd --add-port=9090/tcp --permanent
+	#swagger
+	firewall-cmd --add-port=18000/tcp --permanent
+	#firewalld
+	service firewalld restart
+}
+
+##放置挂载文件
+mount(){
+	#挂载配置文件
+	if test ! -f "/docker/nginx/api/nginx.conf" ;then
+		mkdir -p /docker/nginx/api
+		cp nginx/api/nginx.conf /docker/nginx/api/nginx.conf
+	fi
+	if test ! -f "/docker/nginx/web/nginx.conf" ;then
+		mkdir -p /docker/nginx/web
+		cp nginx/web/nginx.conf /docker/nginx/web/nginx.conf
+		cp -r nginx/web/html /docker/nginx/web/html
+	fi
+	if test ! -f "/docker/nacos/init.d/custom.properties" ;then
+		mkdir -p /docker/nacos/init.d
+		cp nacos/init.d/custom.properties /docker/nacos/init.d/custom.properties
+	fi
+	if test ! -f "/docker/prometheus/prometheus.yml" ;then
+		mkdir -p /docker/prometheus
+		cp prometheus/config/prometheus.yml /docker/prometheus/prometheus.yml
+	fi
+	if test ! -f "/docker/prometheus/rules/alert_rules.yml" ;then
+		mkdir -p /docker/prometheus/rules
+		cp prometheus/config/alert_rules.yml /docker/prometheus/rules/alert_rules.yml
+	fi
+	if test ! -f "/docker/grafana/grafana.ini" ;then
+		mkdir -p /docker/grafana
+		cp prometheus/config/grafana.ini /docker/grafana/grafana.ini
+	fi
+	if test ! -f "/docker/alertmanager/alertmanager.yml" ;then
+		mkdir -p /docker/alertmanager
+		cp prometheus/config/alertmanager.yml /docker/alertmanager/alertmanager.yml
+	fi
+	if test ! -f "/docker/alertmanager/templates/wechat.tmpl" ;then
+		mkdir -p /docker/alertmanager/templates
+		cp prometheus/config/wechat.tmpl /docker/alertmanager/templates/wechat.tmpl
+	fi
+	if test ! -f "/docker/webhook_dingtalk/dingtalk.yml" ;then
+		mkdir -p /docker/webhook_dingtalk
+		cp prometheus/config/dingtalk.yml /docker/webhook_dingtalk/dingtalk.yml
+	fi
+	#增加目录权限
+	chmod -R 777 /docker/prometheus
+	chmod -R 777 /docker/grafana
+	chmod -R 777 /docker/alertmanager
+}
+
+#启动基础模块
+base(){
+	docker-compose up -d nacos sentinel seata-server web-nginx blade-nginx blade-redis
+}
+
+#启动监控模块
+monitor(){
+	docker-compose up -d blade-admin blade-turbine
+}
+
+#启动程序模块
+modules(){
+	docker-compose up -d blade-gateway1 blade-gateway2 blade-auth1 blade-auth2 blade-swagger blade-report blade-user blade-desk blade-system blade-log blade-flow blade-resource
+}
+
+#启动普罗米修斯模块
+prometheus(){
+	docker-compose up -d prometheus node-exporter mysqld-exporter cadvisor grafana
+}
+
+#启动监听模块
+alertmanager(){
+	docker-compose up -d alertmanager webhook-dingtalk
+}
+
+#关闭所有模块
+stop(){
+	docker-compose stop
+}
+
+#删除所有模块
+rm(){
+	docker-compose rm
+}
+
+#删除Tag为空的镜像
+rmiNoneTag(){
+	docker images|grep none|awk '{print $3}'|xargs docker rmi -f
+}
+
+#根据输入参数,选择执行对应方法,不输入则执行使用说明
+case "$1" in
+"port")
+	port
+;;
+"mount")
+	mount
+;;
+"base")
+	base
+;;
+"monitor")
+	monitor
+;;
+"modules")
+	modules
+;;
+"prometheus")
+	prometheus
+;;
+"alertmanager")
+	alertmanager
+;;
+"stop")
+	stop
+;;
+"rm")
+	rm
+;;
+"rmiNoneTag")
+	rmiNoneTag
+;;
+*)
+	usage
+;;
+esac
diff --git a/skjcmanager/script/docker/app/docker-compose.yml b/skjcmanager/script/docker/app/docker-compose.yml
new file mode 100644
index 0000000..23e71df
--- /dev/null
+++ b/skjcmanager/script/docker/app/docker-compose.yml
@@ -0,0 +1,367 @@
+version: '3'
+services:
+
+  ####################################################################################################
+  ###===================================  以下为中间件模块  =========================================###
+  ####################################################################################################
+
+  nacos:
+    image: nacos/nacos-server:2.0.1
+    hostname: "nacos-standalone"
+    environment:
+      - MODE=standalone
+      - TZ=Asia/Shanghai
+    volumes:
+      - /docker/nacos/standalone-logs/:/home/nacos/logs
+      - /docker/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties
+    ports:
+      - 8848:8848
+      - 9848:9848
+      - 9849:9849
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.48
+
+  sentinel:
+    image: bladex/sentinel-dashboard:1.8.0
+    hostname: "sentinel"
+    environment:
+      - TZ=Asia/Shanghai
+    ports:
+      - 8858:8858
+    restart: on-failure
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.58
+
+  seata-server:
+    image: seataio/seata-server:1.4.1
+    hostname: "seata-server"
+    ports:
+      - 8091:8091
+    environment:
+      - TZ=Asia/Shanghai
+      - SEATA_PORT=8091
+      - STORE_MODE=file
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.68
+
+  blade-nginx:
+    image: nginx:stable-alpine-perl
+    hostname: "blade-nginx"
+    environment:
+      - TZ=Asia/Shanghai
+    ports:
+    - 88:88
+    volumes:
+    - /docker/nginx/api/nginx.conf:/etc/nginx/nginx.conf
+    privileged: true
+    restart: always
+    networks:
+    - blade_net
+
+  web-nginx:
+    image: nginx:stable-alpine-perl
+    hostname: "web-nginx"
+    environment:
+      - TZ=Asia/Shanghai
+    ports:
+      - 8000:8000
+    volumes:
+      - /docker/nginx/web/html:/usr/share/nginx/html
+      - /docker/nginx/web/nginx.conf:/etc/nginx/nginx.conf
+    privileged: true
+    restart: always
+    networks:
+      - blade_net
+
+  blade-redis:
+    image: redis:5.0.8-alpine
+    hostname: "blade-redis"
+    environment:
+      - TZ=Asia/Shanghai
+    ports:
+    - 3379:6379
+    volumes:
+    - /docker/redis/data:/data
+    command: "redis-server --appendonly yes"
+    privileged: true
+    restart: always
+    networks:
+    - blade_net
+
+  ####################################################################################################
+  ###=================================  以下为BladeX服务模块  =======================================###
+  ####################################################################################################
+
+  blade-admin:
+    image: "${REGISTER}/blade-admin:${TAG}"
+    environment:
+      - TZ=Asia/Shanghai
+    ports:
+    - 7002:7002
+    privileged: true
+    restart: always
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.72
+
+  blade-swagger:
+    image: "${REGISTER}/blade-swagger:${TAG}"
+    environment:
+      - TZ=Asia/Shanghai
+    ports:
+      - 18000:18000
+    privileged: true
+    restart: always
+    networks:
+      - blade_net
+
+  blade-turbine:
+    image: "${REGISTER}/blade-turbine:${TAG}"
+    environment:
+      - TZ=Asia/Shanghai
+    ports:
+      - 7003:7003
+    privileged: true
+    restart: always
+    networks:
+      - blade_net
+
+  blade-gateway1:
+    image: "${REGISTER}/blade-gateway:${TAG}"
+    environment:
+      - TZ=Asia/Shanghai
+    privileged: true
+    restart: always
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.81
+
+  blade-gateway2:
+    image: "${REGISTER}/blade-gateway:${TAG}"
+    environment:
+      - TZ=Asia/Shanghai
+    privileged: true
+    restart: always
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.82
+
+  blade-auth1:
+    image: "${REGISTER}/blade-auth:${TAG}"
+    environment:
+      - TZ=Asia/Shanghai
+    privileged: true
+    restart: always
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.91
+
+  blade-auth2:
+    image: "${REGISTER}/blade-auth:${TAG}"
+    environment:
+      - TZ=Asia/Shanghai
+    privileged: true
+    restart: always
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.92
+
+  blade-report:
+    image: "${REGISTER}/blade-report:${TAG}"
+    environment:
+      - TZ=Asia/Shanghai
+    privileged: true
+    restart: always
+    ports:
+      - 8108:8108
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.98
+
+  blade-log:
+    image: "${REGISTER}/blade-log:${TAG}"
+    environment:
+      - TZ=Asia/Shanghai
+    privileged: true
+    restart: always
+    networks:
+    - blade_net
+
+  blade-desk:
+    image: "${REGISTER}/blade-desk:${TAG}"
+    environment:
+      - TZ=Asia/Shanghai
+    privileged: true
+    restart: always
+    networks:
+    - blade_net
+
+  blade-user:
+    image: "${REGISTER}/blade-user:${TAG}"
+    environment:
+      - TZ=Asia/Shanghai
+    privileged: true
+    restart: always
+    networks:
+    - blade_net
+
+  blade-system:
+    image: "${REGISTER}/blade-system:${TAG}"
+    environment:
+      - TZ=Asia/Shanghai
+    privileged: true
+    restart: always
+    networks:
+    - blade_net
+
+  blade-flow:
+    image: "${REGISTER}/blade-flow:${TAG}"
+    environment:
+      - TZ=Asia/Shanghai
+    privileged: true
+    restart: always
+    networks:
+      - blade_net
+
+  blade-resource:
+    image: "${REGISTER}/blade-resource:${TAG}"
+    environment:
+      - TZ=Asia/Shanghai
+    privileged: true
+    restart: always
+    networks:
+      - blade_net
+
+  ####################################################################################################
+  ###===============================  以下为Prometheus监控模块  =====================================###
+  ####################################################################################################
+
+  prometheus:
+    image: prom/prometheus:v2.24.1
+    hostname: "prometheus"
+    environment:
+      - TZ=Asia/Shanghai
+    ports:
+      - 9090:9090
+    volumes:
+      - /docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
+      - /docker/prometheus/rules:/etc/prometheus/rules
+    command: "--config.file=/etc/prometheus/prometheus.yml  --web.enable-lifecycle"
+    privileged: true
+    restart: always
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.90
+
+  node-exporter:
+    image: prom/node-exporter:v1.0.1
+    hostname: "node-exporter"
+    environment:
+      - TZ=Asia/Shanghai
+    ports:
+      - 9190:9100
+    privileged: true
+    restart: always
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.93
+
+  mysqld-exporter:
+    image: prom/mysqld-exporter:v0.12.1
+    hostname: "mysqld-exporter"
+    environment:
+      - TZ=Asia/Shanghai
+      # 需要先在mysql服务执行如下语句
+      # =====================================================================================
+      # === CREATE USER 'exporter'@'mysql服务ip' IDENTIFIED BY '密码';                     ===
+      # === GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'mysql服务ip';  ===
+      # === flush privileges;                                                             ===
+      # =====================================================================================
+      - DATA_SOURCE_NAME=exporter:密码@(mysql服务ip:mysql服务端口)/
+    ports:
+      - 9104:9104
+    privileged: true
+    restart: always
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.94
+
+  cadvisor:
+    image: google/cadvisor:v0.33.0
+    hostname: "cadvisor"
+    environment:
+      - TZ=Asia/Shanghai
+    ports:
+      - 18080:8080
+    volumes:
+      - /:/rootfs:ro
+      - /var/run:/var/run:rw
+      - /sys:/sys:ro
+      - /var/lib/docker/:/var/lib/docker:ro
+      - /dev/disk/:/dev/disk:ro
+    command: "detach=true"
+    privileged: true
+    restart: always
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.180
+
+  grafana:
+    image: grafana/grafana:7.3.7
+    hostname: "grafana"
+    environment:
+      - TZ=Asia/Shanghai
+      - GF_SERVER_ROOT_URL=https://grafana.bladex.vip
+      - GF_SECURITY_ADMIN_PASSWORD=1qaz@WSX
+    ports:
+      - 3000:3000
+    volumes:
+      - /docker/grafana/grafana.ini:/etc/grafana/grafana.ini
+      - /docker/grafana:/var/lib/grafana
+    privileged: true
+    restart: always
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.30
+
+  alertmanager:
+    image: prom/alertmanager:v0.21.0
+    hostname: "alertmanager"
+    environment:
+      - TZ=Asia/Shanghai
+    ports:
+      - 9093:9093
+    volumes:
+      - /docker/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml
+      - /docker/alertmanager/data:/etc/alertmanager/data
+      - /docker/alertmanager/templates:/etc/alertmanager/templates
+    command: "--config.file=/etc/alertmanager/alertmanager.yml --storage.path=/etc/alertmanager/data"
+    privileged: true
+    restart: always
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.99
+
+  webhook-dingtalk:
+    image: timonwong/prometheus-webhook-dingtalk:v1.4.0
+    hostname: "webhook-dingtalk"
+    environment:
+      - TZ=Asia/Shanghai
+    ports:
+      - 8060:8060
+    command: "ding.profile=webhook_robot=https://oapi.dingtalk.com/robot/send?access_token=xxxxx"
+    privileged: true
+    restart: always
+    networks:
+      blade_net:
+        ipv4_address: 172.30.0.96
+
+networks:
+  blade_net:
+    driver: bridge
+    ipam:
+      config:
+      - subnet: 172.30.0.0/16
diff --git a/skjcmanager/script/docker/app/nacos/init.d/custom.properties b/skjcmanager/script/docker/app/nacos/init.d/custom.properties
new file mode 100644
index 0000000..f6fd2a0
--- /dev/null
+++ b/skjcmanager/script/docker/app/nacos/init.d/custom.properties
@@ -0,0 +1,19 @@
+#spring.security.enabled=false
+#management.security=false
+#security.basic.enabled=false
+#nacos.security.ignore.urls=/**
+#management.metrics.export.elastic.host=http://localhost:9200
+# metrics for prometheus
+management.endpoints.web.exposure.include=*
+
+# metrics for elastic search
+#management.metrics.export.elastic.enabled=false
+#management.metrics.export.elastic.host=http://localhost:9200
+
+# metrics for influx
+#management.metrics.export.influx.enabled=false
+#management.metrics.export.influx.db=springboot
+#management.metrics.export.influx.uri=http://localhost:8086
+#management.metrics.export.influx.auto-create-db=true
+#management.metrics.export.influx.consistency=one
+#management.metrics.export.influx.compressed=true
diff --git a/skjcmanager/script/docker/app/nginx/api/nginx.conf b/skjcmanager/script/docker/app/nginx/api/nginx.conf
new file mode 100644
index 0000000..64d3fb0
--- /dev/null
+++ b/skjcmanager/script/docker/app/nginx/api/nginx.conf
@@ -0,0 +1,71 @@
+
+user  root;
+worker_processes  1;
+
+error_log  /var/log/nginx/error.log warn;
+pid        /var/run/nginx.pid;
+
+
+events {
+    worker_connections  1024;
+}
+
+
+http {
+    include       /etc/nginx/mime.types;
+    default_type  application/octet-stream;
+
+    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
+                      '$status $body_bytes_sent "$http_referer" '
+                      '"$http_user_agent" "$http_x_forwarded_for"';
+
+    access_log  /var/log/nginx/access.log  main;
+
+    sendfile        on;
+    #tcp_nopush     on;
+
+    keepalive_timeout  65;
+
+    #gzip  on;
+
+    #include /etc/nginx/conf.d/*.conf;
+
+    upstream gateway {
+                 server 172.30.0.81;
+                 server 172.30.0.82;
+             }
+
+    upstream auth {
+                 server 172.30.0.91:8100;
+                 server 172.30.0.92:8100;
+             }
+
+    server {
+      listen       88;
+      server_name  gateway;
+      location / {
+           proxy_set_header Host $host;
+           proxy_set_header X-Real-IP $remote_addr;
+           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+           proxy_buffering off;
+           proxy_pass http://gateway;
+      }
+
+      if ($request_uri ~ "/actuator") {
+          return 403;
+      }
+    }
+
+    server {
+      listen       9000;
+      server_name  auth;
+      location / {
+           proxy_set_header Host $host;
+           proxy_set_header X-Real-IP $remote_addr;
+           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+           proxy_buffering off;
+           proxy_pass http://auth;
+      }
+    }
+
+}
diff --git a/skjcmanager/script/docker/app/nginx/web/html/index.html b/skjcmanager/script/docker/app/nginx/web/html/index.html
new file mode 100644
index 0000000..5616b14
--- /dev/null
+++ b/skjcmanager/script/docker/app/nginx/web/html/index.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Hello BladeX</title>
+</head>
+<body>
+<div style="text-align: center">Hello BladeX !</div>
+</body>
+</html>
diff --git a/skjcmanager/script/docker/app/nginx/web/nginx.conf b/skjcmanager/script/docker/app/nginx/web/nginx.conf
new file mode 100644
index 0000000..19a89ae
--- /dev/null
+++ b/skjcmanager/script/docker/app/nginx/web/nginx.conf
@@ -0,0 +1,65 @@
+
+user  root;
+worker_processes  1;
+
+error_log  /var/log/nginx/error.log warn;
+pid        /var/run/nginx.pid;
+
+
+events {
+    worker_connections  1024;
+}
+
+
+http {
+    include       /etc/nginx/mime.types;
+    default_type  application/octet-stream;
+
+    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
+                      '$status $body_bytes_sent "$http_referer" '
+                      '"$http_user_agent" "$http_x_forwarded_for"';
+
+    access_log  /var/log/nginx/access.log  main;
+
+    sendfile        on;
+    #tcp_nopush     on;
+
+    keepalive_timeout  65;
+
+    #gzip  on;
+
+    #include /etc/nginx/conf.d/*.conf;
+
+    upstream gateway {
+                 server 172.30.0.81;
+                 server 172.30.0.82;
+             }
+
+
+    server {
+      listen       8000;
+      server_name  web;
+      root         /usr/share/nginx/html;
+
+      location / {
+           #若系统无法访问则放开下面的注释
+           #root   html;
+           #index  index.html;
+      }
+
+      location ^~ /oauth/redirect {
+           rewrite ^(.*)$ /index.html break;
+      }
+
+      location ^~ /api {
+           proxy_set_header Host $host;
+           proxy_set_header X-Real-IP $remote_addr;
+           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+           proxy_buffering off;
+           rewrite ^/api/(.*)$ /$1 break;
+           proxy_pass http://gateway;
+      }
+    }
+
+
+}
diff --git a/skjcmanager/script/docker/app/prometheus/config/alert_rules.yml b/skjcmanager/script/docker/app/prometheus/config/alert_rules.yml
new file mode 100644
index 0000000..db23fdd
--- /dev/null
+++ b/skjcmanager/script/docker/app/prometheus/config/alert_rules.yml
@@ -0,0 +1,118 @@
+groups:
+  - name: alert_rules
+    rules:
+      - alert: CpuUsageAlertWarning
+        expr: sum(avg(irate(node_cpu_seconds_total{mode!='idle'}[5m])) without (cpu)) by (instance) > 0.60
+        for: 2m
+        labels:
+          level: warning
+        annotations:
+          summary: "Instance {{ $labels.instance }} CPU usage high"
+          description: "{{ $labels.instance }} CPU usage above 60% (current value: {{ $value }})"
+      - alert: CpuUsageAlertSerious
+        #expr: sum(avg(irate(node_cpu_seconds_total{mode!='idle'}[5m])) without (cpu)) by (instance) > 0.85
+        expr: (100 - (avg by (instance) (irate(node_cpu_seconds_total{job=~".*",mode="idle"}[5m])) * 100)) > 85
+        for: 3m
+        labels:
+          level: serious
+        annotations:
+          summary: "Instance {{ $labels.instance }} CPU usage high"
+          description: "{{ $labels.instance }} CPU usage above 85% (current value: {{ $value }})"
+      - alert: MemUsageAlertWarning
+        expr: avg by(instance) ((1 - (node_memory_MemFree_bytes + node_memory_Buffers_bytes + node_memory_Cached_bytes) / node_memory_MemTotal_bytes) * 100) > 70
+        for: 2m
+        labels:
+          level: warning
+        annotations:
+          summary: "Instance {{ $labels.instance }} MEM usage high"
+          description: "{{$labels.instance}}: MEM usage is above 70% (current value is: {{ $value }})"
+      - alert: MemUsageAlertSerious
+        expr: (node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes)/node_memory_MemTotal_bytes > 0.90
+        for: 3m
+        labels:
+          level: serious
+        annotations:
+          summary: "Instance {{ $labels.instance }} MEM usage high"
+          description: "{{ $labels.instance }} MEM usage above 90% (current value: {{ $value }})"
+      - alert: DiskUsageAlertWarning
+        expr: (1 - node_filesystem_free_bytes{fstype!="rootfs",mountpoint!="",mountpoint!~"/(run|var|sys|dev).*"} / node_filesystem_size_bytes) * 100 > 80
+        for: 2m
+        labels:
+          level: warning
+        annotations:
+          summary: "Instance {{ $labels.instance }} Disk usage high"
+          description: "{{$labels.instance}}: Disk usage is above 80% (current value is: {{ $value }})"
+      - alert: DiskUsageAlertSerious
+        expr: (1 - node_filesystem_free_bytes{fstype!="rootfs",mountpoint!="",mountpoint!~"/(run|var|sys|dev).*"} / node_filesystem_size_bytes) * 100 > 90
+        for: 3m
+        labels:
+          level: serious
+        annotations:
+          summary: "Instance {{ $labels.instance }} Disk usage high"
+          description: "{{$labels.instance}}: Disk usage is above 90% (current value is: {{ $value }})"
+      - alert: NodeFileDescriptorUsage
+        expr: avg by (instance) (node_filefd_allocated{} / node_filefd_maximum{}) * 100 > 60
+        for: 2m
+        labels:
+          level: warning
+        annotations:
+          summary: "Instance {{ $labels.instance }} File Descriptor usage high"
+          description: "{{$labels.instance}}: File Descriptor usage is above 60% (current value is: {{ $value }})"
+      - alert: NodeLoad15
+        expr: avg by (instance) (node_load15{}) > 80
+        for: 2m
+        labels:
+          level: warning
+        annotations:
+          summary: "Instance {{ $labels.instance }} Load15 usage high"
+          description: "{{$labels.instance}}: Load15 is above 80 (current value is: {{ $value }})"
+      - alert: NodeAgentStatus
+        expr: avg by (instance) (up{}) == 0
+        for: 2m
+        labels:
+          level: warning
+        annotations:
+          summary: "{{$labels.instance}}: has been down"
+          description: "{{$labels.instance}}: Node_Exporter Agent is down (current value is: {{ $value }})"
+      - alert: NodeProcsBlocked
+        expr: avg by (instance) (node_procs_blocked{}) > 10
+        for: 2m
+        labels:
+          level: warning
+        annotations:
+          summary: "Instance {{ $labels.instance }}  Process Blocked usage high"
+          description: "{{$labels.instance}}: Node Blocked Procs detected! above 10 (current value is: {{ $value }})"
+      - alert: NetworkTransmitRate
+        #expr:  avg by (instance) (floor(irate(node_network_transmit_bytes_total{device="ens192"}[2m]) / 1024 / 1024)) > 50
+        expr:  avg by (instance) (floor(irate(node_network_transmit_bytes_total{}[2m]) / 1024 / 1024 * 8 )) > 40
+        for: 1m
+        labels:
+          level: warning
+        annotations:
+          summary: "Instance {{ $labels.instance }} Network Transmit Rate usage high"
+          description: "{{$labels.instance}}: Node Transmit Rate (Upload) is above 40Mbps/s (current value is: {{ $value }}Mbps/s)"
+      - alert: NetworkReceiveRate
+        #expr:  avg by (instance) (floor(irate(node_network_receive_bytes_total{device="ens192"}[2m]) / 1024 / 1024)) > 50
+        expr:  avg by (instance) (floor(irate(node_network_receive_bytes_total{}[2m]) / 1024 / 1024 * 8 )) > 40
+        for: 1m
+        labels:
+          level: warning
+        annotations:
+          summary: "Instance {{ $labels.instance }} Network Receive Rate usage high"
+          description: "{{$labels.instance}}: Node Receive Rate (Download) is above 40Mbps/s (current value is: {{ $value }}Mbps/s)"
+      - alert: DiskReadRate
+        expr: avg by (instance) (floor(irate(node_disk_read_bytes_total{}[2m]) / 1024 )) > 200
+        for: 2m
+        labels:
+          level: warning
+        annotations:
+          summary: "Instance {{ $labels.instance }} Disk Read Rate usage high"
+          description: "{{$labels.instance}}: Node Disk Read Rate is above 200KB/s (current value is: {{ $value }}KB/s)"
+      - alert: DiskWriteRate
+        expr: avg by (instance) (floor(irate(node_disk_written_bytes_total{}[2m]) / 1024 / 1024 )) > 20
+        for: 2m
+        labels:
+          level: warning
+        annotations:
+          summary: "Instance {{ $labels.instance }} Disk Write Rate usage high"
+          description: "{{$labels.instance}}: Node Disk Write Rate is above 20MB/s (current value is: {{ $value }}MB/s)"
diff --git a/skjcmanager/script/docker/app/prometheus/config/alertmanager.yml b/skjcmanager/script/docker/app/prometheus/config/alertmanager.yml
new file mode 100644
index 0000000..09cfe38
--- /dev/null
+++ b/skjcmanager/script/docker/app/prometheus/config/alertmanager.yml
@@ -0,0 +1,56 @@
+global:
+  # 在没有报警的情况下声明为已解决的时间
+  resolve_timeout: 5m
+  # 配置邮件发送信息
+  smtp_smarthost: 'smtp.163.com:25'
+  # 邮箱地址
+  smtp_from: 'bladejava@163.com'
+  # 邮箱地址
+  smtp_auth_username: 'bladejava@163.com'
+  # 邮箱授权码,需要自行开启设置,非邮箱密码
+  smtp_auth_password: 'xxxxxxxx'
+  # 邮箱地址
+  smtp_hello: 'bladejava@163.com'
+  smtp_require_tls: false
+
+templates:
+  # 告警模板文件
+  - "/etc/alertmanager/templates/wechat.tmpl"
+
+route:
+  # 接收到告警后到自定义分组
+  group_by: ["alertname"]
+  # 分组创建后初始化等待时长
+  group_wait: 10s
+  # 告警信息发送之前的等待时长
+  group_interval: 30s
+  # 重复报警的间隔时长
+  repeat_interval: 5m
+  # 默认消息接收
+  receiver: "wechat"
+
+receivers:
+  # 微信
+  - name: "wechat"
+    wechat_configs:
+      # 是否发送恢复信息
+      - send_resolved: true
+        # 填写应用 AgentId
+        agent_id: "1000002"
+        # 填写应用 Secret
+        api_secret: "jxxxxxxxxxxxxxxxxxxxc"
+        # 填写企业 ID
+        corp_id: "wwxxxxxxxxxxx01d"
+        # 填写接收消息的群体
+        to_user: "@all"
+  # 钉钉
+  - name: 'dingtalk'
+    webhook_configs:
+      # prometheus-webhook-dingtalk服务的地址
+      - url: http://172.30.0.96:8060/dingtalk/webhook_robot/send
+        send_resolved: true
+  # 邮件
+  - name: 'email'
+    email_configs:
+      - to: 'your email'
+        send_resolved: true
diff --git a/skjcmanager/script/docker/app/prometheus/config/dingtalk.yml b/skjcmanager/script/docker/app/prometheus/config/dingtalk.yml
new file mode 100644
index 0000000..9fd668b
--- /dev/null
+++ b/skjcmanager/script/docker/app/prometheus/config/dingtalk.yml
@@ -0,0 +1,12 @@
+timeout: 5s
+
+targets:
+  webhook_robot:
+    # 钉钉机器人创建后的webhook地址
+    url: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxx
+  webhook_mention_all:
+    # 钉钉机器人创建后的webhook地址
+    url: https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxx
+    # 提醒全员
+    mention:
+      all: true
diff --git a/skjcmanager/script/docker/app/prometheus/config/grafana.ini b/skjcmanager/script/docker/app/prometheus/config/grafana.ini
new file mode 100644
index 0000000..b1e5ac0
--- /dev/null
+++ b/skjcmanager/script/docker/app/prometheus/config/grafana.ini
@@ -0,0 +1,849 @@
+##################### Grafana Configuration Example #####################
+#
+# Everything has defaults so you only need to uncomment things you want to
+# change
+
+# possible values : production, development
+;app_mode = production
+
+# instance name, defaults to HOSTNAME environment variable value or hostname if HOSTNAME var is empty
+;instance_name = ${HOSTNAME}
+
+#################################### Paths ####################################
+[paths]
+# Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)
+;data = /var/lib/grafana
+
+# Temporary files in `data` directory older than given duration will be removed
+;temp_data_lifetime = 24h
+
+# Directory where grafana can store logs
+;logs = /var/log/grafana
+
+# Directory where grafana will automatically scan and look for plugins
+;plugins = /var/lib/grafana/plugins
+
+# folder that contains provisioning config files that grafana will apply on startup and while running.
+;provisioning = conf/provisioning
+
+#################################### Server ####################################
+[server]
+# Protocol (http, https, h2, socket)
+;protocol = http
+
+# The ip address to bind to, empty will bind to all interfaces
+;http_addr =
+
+# The http port  to use
+;http_port = 3000
+
+# The public facing domain name used to access grafana from a browser
+;domain = localhost
+
+# Redirect to correct domain if host header does not match domain
+# Prevents DNS rebinding attacks
+;enforce_domain = false
+
+# The full public facing url you use in browser, used for redirects and emails
+# If you use reverse proxy and sub path specify full url (with sub path)
+;root_url = %(protocol)s://%(domain)s:%(http_port)s/
+
+# Serve Grafana from subpath specified in `root_url` setting. By default it is set to `false` for compatibility reasons.
+;serve_from_sub_path = false
+
+# Log web requests
+;router_logging = false
+
+# the path relative working path
+;static_root_path = public
+
+# enable gzip
+;enable_gzip = false
+
+# https certs & key file
+;cert_file =
+;cert_key =
+
+# Unix socket path
+;socket =
+
+#################################### Database ####################################
+[database]
+# You can configure the database connection by specifying type, host, name, user and password
+# as separate properties or as on string using the url properties.
+
+# Either "mysql", "postgres" or "sqlite3", it's your choice
+;type = sqlite3
+;host = 127.0.0.1:3306
+;name = grafana
+;user = root
+# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
+;password =
+
+# Use either URL or the previous fields to configure the database
+# Example: mysql://user:secret@host:port/database
+;url =
+
+# For "postgres" only, either "disable", "require" or "verify-full"
+;ssl_mode = disable
+
+;ca_cert_path =
+;client_key_path =
+;client_cert_path =
+;server_cert_name =
+
+# For "sqlite3" only, path relative to data_path setting
+;path = grafana.db
+
+# Max idle conn setting default is 2
+;max_idle_conn = 2
+
+# Max conn setting default is 0 (mean not set)
+;max_open_conn =
+
+# Connection Max Lifetime default is 14400 (means 14400 seconds or 4 hours)
+;conn_max_lifetime = 14400
+
+# Set to true to log the sql calls and execution times.
+;log_queries =
+
+# For "sqlite3" only. cache mode setting used for connecting to the database. (private, shared)
+;cache_mode = private
+
+#################################### Cache server #############################
+[remote_cache]
+# Either "redis", "memcached" or "database" default is "database"
+;type = database
+
+# cache connectionstring options
+# database: will use Grafana primary database.
+# redis: config like redis server e.g. `addr=127.0.0.1:6379,pool_size=100,db=0,ssl=false`. Only addr is required. ssl may be 'true', 'false', or 'insecure'.
+# memcache: 127.0.0.1:11211
+;connstr =
+
+#################################### Data proxy ###########################
+[dataproxy]
+
+# This enables data proxy logging, default is false
+;logging = false
+
+# How long the data proxy waits before timing out, default is 30 seconds.
+# This setting also applies to core backend HTTP data sources where query requests use an HTTP client with timeout set.
+;timeout = 30
+
+# How many seconds the data proxy waits before sending a keepalive probe request.
+;keep_alive_seconds = 30
+
+# How many seconds the data proxy waits for a successful TLS Handshake before timing out.
+;tls_handshake_timeout_seconds = 10
+
+# How many seconds the data proxy will wait for a server's first response headers after
+# fully writing the request headers if the request has an "Expect: 100-continue"
+# header. A value of 0 will result in the body being sent immediately, without
+# waiting for the server to approve.
+;expect_continue_timeout_seconds = 1
+
+# The maximum number of idle connections that Grafana will keep alive.
+;max_idle_connections = 100
+
+# How many seconds the data proxy keeps an idle connection open before timing out.
+;idle_conn_timeout_seconds = 90
+
+# If enabled and user is not anonymous, data proxy will add X-Grafana-User header with username into the request, default is false.
+;send_user_header = false
+
+#################################### Analytics ####################################
+[analytics]
+# Server reporting, sends usage counters to stats.grafana.org every 24 hours.
+# No ip addresses are being tracked, only simple counters to track
+# running instances, dashboard and error counts. It is very helpful to us.
+# Change this option to false to disable reporting.
+;reporting_enabled = true
+
+# Set to false to disable all checks to https://grafana.net
+# for new versions (grafana itself and plugins), check is used
+# in some UI views to notify that grafana or plugin update exists
+# This option does not cause any auto updates, nor send any information
+# only a GET request to http://grafana.com to get latest versions
+;check_for_updates = true
+
+# Google Analytics universal tracking code, only enabled if you specify an id here
+;google_analytics_ua_id =
+
+# Google Tag Manager ID, only enabled if you specify an id here
+;google_tag_manager_id =
+
+#################################### Security ####################################
+[security]
+# disable creation of admin user on first start of grafana
+;disable_initial_admin_creation = false
+
+# default admin user, created on startup
+;admin_user = admin
+
+# default admin password, can be changed before first start of grafana,  or in profile settings
+;admin_password = admin
+
+# used for signing
+;secret_key = SW2YcwTIb9zpOOhoPsMm
+
+# disable gravatar profile images
+;disable_gravatar = false
+
+# data source proxy whitelist (ip_or_domain:port separated by spaces)
+;data_source_proxy_whitelist =
+
+# disable protection against brute force login attempts
+;disable_brute_force_login_protection = false
+
+# set to true if you host Grafana behind HTTPS. default is false.
+;cookie_secure = false
+
+# set cookie SameSite attribute. defaults to `lax`. can be set to "lax", "strict", "none" and "disabled"
+;cookie_samesite = lax
+
+# set to true if you want to allow browsers to render Grafana in a <frame>, <iframe>, <embed> or <object>. default is false.
+;allow_embedding = false
+
+# Set to true if you want to enable http strict transport security (HSTS) response header.
+# This is only sent when HTTPS is enabled in this configuration.
+# HSTS tells browsers that the site should only be accessed using HTTPS.
+;strict_transport_security = false
+
+# Sets how long a browser should cache HSTS. Only applied if strict_transport_security is enabled.
+;strict_transport_security_max_age_seconds = 86400
+
+# Set to true if to enable HSTS preloading option. Only applied if strict_transport_security is enabled.
+;strict_transport_security_preload = false
+
+# Set to true if to enable the HSTS includeSubDomains option. Only applied if strict_transport_security is enabled.
+;strict_transport_security_subdomains = false
+
+# Set to true to enable the X-Content-Type-Options response header.
+# The X-Content-Type-Options response HTTP header is a marker used by the server to indicate that the MIME types advertised
+# in the Content-Type headers should not be changed and be followed.
+;x_content_type_options = true
+
+# Set to true to enable the X-XSS-Protection header, which tells browsers to stop pages from loading
+# when they detect reflected cross-site scripting (XSS) attacks.
+;x_xss_protection = true
+
+#################################### Snapshots ###########################
+[snapshots]
+# snapshot sharing options
+;external_enabled = true
+;external_snapshot_url = https://snapshots-origin.raintank.io
+;external_snapshot_name = Publish to snapshot.raintank.io
+
+# Set to true to enable this Grafana instance act as an external snapshot server and allow unauthenticated requests for
+# creating and deleting snapshots.
+;public_mode = false
+
+# remove expired snapshot
+;snapshot_remove_expired = true
+
+#################################### Dashboards History ##################
+[dashboards]
+# Number dashboard versions to keep (per dashboard). Default: 20, Minimum: 1
+;versions_to_keep = 20
+
+# Minimum dashboard refresh interval. When set, this will restrict users to set the refresh interval of a dashboard lower than given interval. Per default this is 5 seconds.
+# The interval string is a possibly signed sequence of decimal numbers, followed by a unit suffix (ms, s, m, h, d), e.g. 30s or 1m.
+;min_refresh_interval = 5s
+
+# Path to the default home dashboard. If this value is empty, then Grafana uses StaticRootPath + "dashboards/home.json"
+;default_home_dashboard_path =
+
+#################################### Users ###############################
+[users]
+# disable user signup / registration
+;allow_sign_up = true
+
+# Allow non admin users to create organizations
+;allow_org_create = true
+
+# Set to true to automatically assign new users to the default organization (id 1)
+;auto_assign_org = true
+
+# Set this value to automatically add new users to the provided organization (if auto_assign_org above is set to true)
+;auto_assign_org_id = 1
+
+# Default role new users will be automatically assigned (if disabled above is set to true)
+;auto_assign_org_role = Viewer
+
+# Require email validation before sign up completes
+;verify_email_enabled = false
+
+# Background text for the user field on the login page
+;login_hint = email or username
+;password_hint = password
+
+# Default UI theme ("dark" or "light")
+;default_theme = dark
+
+# External user management, these options affect the organization users view
+;external_manage_link_url =
+;external_manage_link_name =
+;external_manage_info =
+
+# Viewers can edit/inspect dashboard settings in the browser. But not save the dashboard.
+;viewers_can_edit = false
+
+# Editors can administrate dashboard, folders and teams they create
+;editors_can_admin = false
+
+# The duration in time a user invitation remains valid before expiring. This setting should be expressed as a duration. Examples: 6h (hours), 2d (days), 1w (week). Default is 24h (24 hours). The minimum supported duration is 15m (15 minutes).
+;user_invite_max_lifetime_duration = 24h
+
+[auth]
+# Login cookie name
+;login_cookie_name = grafana_session
+
+# The maximum lifetime (duration) an authenticated user can be inactive before being required to login at next visit. Default is 7 days (7d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month). The lifetime resets at each successful token rotation.
+;login_maximum_inactive_lifetime_duration =
+
+# The maximum lifetime (duration) an authenticated user can be logged in since login time before being required to login. Default is 30 days (30d). This setting should be expressed as a duration, e.g. 5m (minutes), 6h (hours), 10d (days), 2w (weeks), 1M (month).
+;login_maximum_lifetime_duration =
+
+# How often should auth tokens be rotated for authenticated users when being active. The default is each 10 minutes.
+;token_rotation_interval_minutes = 10
+
+# Set to true to disable (hide) the login form, useful if you use OAuth, defaults to false
+;disable_login_form = false
+
+# Set to true to disable the signout link in the side menu. useful if you use auth.proxy, defaults to false
+;disable_signout_menu = false
+
+# URL to redirect the user to after sign out
+;signout_redirect_url =
+
+# Set to true to attempt login with OAuth automatically, skipping the login screen.
+# This setting is ignored if multiple OAuth providers are configured.
+;oauth_auto_login = false
+
+# OAuth state max age cookie duration in seconds. Defaults to 600 seconds.
+;oauth_state_cookie_max_age = 600
+
+# limit of api_key seconds to live before expiration
+;api_key_max_seconds_to_live = -1
+
+# Set to true to enable SigV4 authentication option for HTTP-based datasources.
+;sigv4_auth_enabled = false
+
+#################################### Anonymous Auth ######################
+[auth.anonymous]
+# enable anonymous access
+;enabled = false
+
+# specify organization name that should be used for unauthenticated users
+;org_name = Main Org.
+
+# specify role for unauthenticated users
+;org_role = Viewer
+
+# mask the Grafana version number for unauthenticated users
+;hide_version = false
+
+#################################### GitHub Auth ##########################
+[auth.github]
+;enabled = false
+;allow_sign_up = true
+;client_id = some_id
+;client_secret = some_secret
+;scopes = user:email,read:org
+;auth_url = https://github.com/login/oauth/authorize
+;token_url = https://github.com/login/oauth/access_token
+;api_url = https://api.github.com/user
+;allowed_domains =
+;team_ids =
+;allowed_organizations =
+
+#################################### GitLab Auth #########################
+[auth.gitlab]
+;enabled = false
+;allow_sign_up = true
+;client_id = some_id
+;client_secret = some_secret
+;scopes = api
+;auth_url = https://gitlab.com/oauth/authorize
+;token_url = https://gitlab.com/oauth/token
+;api_url = https://gitlab.com/api/v4
+;allowed_domains =
+;allowed_groups =
+
+#################################### Google Auth ##########################
+[auth.google]
+;enabled = false
+;allow_sign_up = true
+;client_id = some_client_id
+;client_secret = some_client_secret
+;scopes = https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email
+;auth_url = https://accounts.google.com/o/oauth2/auth
+;token_url = https://accounts.google.com/o/oauth2/token
+;api_url = https://www.googleapis.com/oauth2/v1/userinfo
+;allowed_domains =
+;hosted_domain =
+
+#################################### Grafana.com Auth ####################
+[auth.grafana_com]
+;enabled = false
+;allow_sign_up = true
+;client_id = some_id
+;client_secret = some_secret
+;scopes = user:email
+;allowed_organizations =
+
+#################################### Azure AD OAuth #######################
+[auth.azuread]
+;name = Azure AD
+;enabled = false
+;allow_sign_up = true
+;client_id = some_client_id
+;client_secret = some_client_secret
+;scopes = openid email profile
+;auth_url = https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize
+;token_url = https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token
+;allowed_domains =
+;allowed_groups =
+
+#################################### Okta OAuth #######################
+[auth.okta]
+;name = Okta
+;enabled = false
+;allow_sign_up = true
+;client_id = some_id
+;client_secret = some_secret
+;scopes = openid profile email groups
+;auth_url = https://<tenant-id>.okta.com/oauth2/v1/authorize
+;token_url = https://<tenant-id>.okta.com/oauth2/v1/token
+;api_url = https://<tenant-id>.okta.com/oauth2/v1/userinfo
+;allowed_domains =
+;allowed_groups =
+;role_attribute_path =
+
+#################################### Generic OAuth ##########################
+[auth.generic_oauth]
+;enabled = false
+;name = OAuth
+;allow_sign_up = true
+;client_id = some_id
+;client_secret = some_secret
+;scopes = user:email,read:org
+;email_attribute_name = email:primary
+;email_attribute_path =
+;login_attribute_path =
+;id_token_attribute_name =
+;auth_url = https://foo.bar/login/oauth/authorize
+;token_url = https://foo.bar/login/oauth/access_token
+;api_url = https://foo.bar/user
+;allowed_domains =
+;team_ids =
+;allowed_organizations =
+;role_attribute_path =
+;tls_skip_verify_insecure = false
+;tls_client_cert =
+;tls_client_key =
+;tls_client_ca =
+
+#################################### Basic Auth ##########################
+[auth.basic]
+;enabled = true
+
+#################################### Auth Proxy ##########################
+[auth.proxy]
+;enabled = false
+;header_name = X-WEBAUTH-USER
+;header_property = username
+;auto_sign_up = true
+;sync_ttl = 60
+;whitelist = 192.168.1.1, 192.168.2.1
+;headers = Email:X-User-Email, Name:X-User-Name
+# Read the auth proxy docs for details on what the setting below enables
+;enable_login_token = false
+
+#################################### Auth LDAP ##########################
+[auth.ldap]
+;enabled = false
+;config_file = /etc/grafana/ldap.toml
+;allow_sign_up = true
+
+# LDAP backround sync (Enterprise only)
+# At 1 am every day
+;sync_cron = "0 0 1 * * *"
+;active_sync_enabled = true
+
+#################################### SMTP / Emailing ##########################
+[smtp]
+;enabled = false
+;host = localhost:25
+;user =
+# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
+;password =
+;cert_file =
+;key_file =
+;skip_verify = false
+;from_address = admin@grafana.localhost
+;from_name = Grafana
+# EHLO identity in SMTP dialog (defaults to instance_name)
+;ehlo_identity = dashboard.example.com
+# SMTP startTLS policy (defaults to 'OpportunisticStartTLS')
+;startTLS_policy = NoStartTLS
+
+[emails]
+;welcome_email_on_sign_up = false
+;templates_pattern = emails/*.html
+
+#################################### Logging ##########################
+[log]
+# Either "console", "file", "syslog". Default is console and  file
+# Use space to separate multiple modes, e.g. "console file"
+;mode = console file
+
+# Either "debug", "info", "warn", "error", "critical", default is "info"
+;level = info
+
+# optional settings to set different levels for specific loggers. Ex filters = sqlstore:debug
+;filters =
+
+# For "console" mode only
+[log.console]
+;level =
+
+# log line format, valid options are text, console and json
+;format = console
+
+# For "file" mode only
+[log.file]
+;level =
+
+# log line format, valid options are text, console and json
+;format = text
+
+# This enables automated log rotate(switch of following options), default is true
+;log_rotate = true
+
+# Max line number of single file, default is 1000000
+;max_lines = 1000000
+
+# Max size shift of single file, default is 28 means 1 << 28, 256MB
+;max_size_shift = 28
+
+# Segment log daily, default is true
+;daily_rotate = true
+
+# Expired days of log file(delete after max days), default is 7
+;max_days = 7
+
+[log.syslog]
+;level =
+
+# log line format, valid options are text, console and json
+;format = text
+
+# Syslog network type and address. This can be udp, tcp, or unix. If left blank, the default unix endpoints will be used.
+;network =
+;address =
+
+# Syslog facility. user, daemon and local0 through local7 are valid.
+;facility =
+
+# Syslog tag. By default, the process' argv[0] is used.
+;tag =
+
+#################################### Usage Quotas ########################
+[quota]
+; enabled = false
+
+#### set quotas to -1 to make unlimited. ####
+# limit number of users per Org.
+; org_user = 10
+
+# limit number of dashboards per Org.
+; org_dashboard = 100
+
+# limit number of data_sources per Org.
+; org_data_source = 10
+
+# limit number of api_keys per Org.
+; org_api_key = 10
+
+# limit number of orgs a user can create.
+; user_org = 10
+
+# Global limit of users.
+; global_user = -1
+
+# global limit of orgs.
+; global_org = -1
+
+# global limit of dashboards
+; global_dashboard = -1
+
+# global limit of api_keys
+; global_api_key = -1
+
+# global limit on number of logged in users.
+; global_session = -1
+
+#################################### Alerting ############################
+[alerting]
+# Disable alerting engine & UI features
+;enabled = true
+# Makes it possible to turn off alert rule execution but alerting UI is visible
+;execute_alerts = true
+
+# Default setting for new alert rules. Defaults to categorize error and timeouts as alerting. (alerting, keep_state)
+;error_or_timeout = alerting
+
+# Default setting for how Grafana handles nodata or null values in alerting. (alerting, no_data, keep_state, ok)
+;nodata_or_nullvalues = no_data
+
+# Alert notifications can include images, but rendering many images at the same time can overload the server
+# This limit will protect the server from render overloading and make sure notifications are sent out quickly
+;concurrent_render_limit = 5
+
+
+# Default setting for alert calculation timeout. Default value is 30
+;evaluation_timeout_seconds = 30
+
+# Default setting for alert notification timeout. Default value is 30
+;notification_timeout_seconds = 30
+
+# Default setting for max attempts to sending alert notifications. Default value is 3
+;max_attempts = 3
+
+# Makes it possible to enforce a minimal interval between evaluations, to reduce load on the backend
+;min_interval_seconds = 1
+
+# Configures for how long alert annotations are stored. Default is 0, which keeps them forever.
+# This setting should be expressed as a duration. Examples: 6h (hours), 10d (days), 2w (weeks), 1M (month).
+;max_annotation_age =
+
+# Configures max number of alert annotations that Grafana stores. Default value is 0, which keeps all alert annotations.
+;max_annotations_to_keep =
+
+#################################### Annotations #########################
+
+[annotations.dashboard]
+# Dashboard annotations means that annotations are associated with the dashboard they are created on.
+
+# Configures how long dashboard annotations are stored. Default is 0, which keeps them forever.
+# This setting should be expressed as a duration. Examples: 6h (hours), 10d (days), 2w (weeks), 1M (month).
+;max_age =
+
+# Configures max number of dashboard annotations that Grafana stores. Default value is 0, which keeps all dashboard annotations.
+;max_annotations_to_keep =
+
+[annotations.api]
+# API annotations means that the annotations have been created using the API without any
+# association with a dashboard.
+
+# Configures how long Grafana stores API annotations. Default is 0, which keeps them forever.
+# This setting should be expressed as a duration. Examples: 6h (hours), 10d (days), 2w (weeks), 1M (month).
+;max_age =
+
+# Configures max number of API annotations that Grafana keeps. Default value is 0, which keeps all API annotations.
+;max_annotations_to_keep =
+
+#################################### Explore #############################
+[explore]
+# Enable the Explore section
+;enabled = true
+
+#################################### Internal Grafana Metrics ##########################
+# Metrics available at HTTP API Url /metrics
+[metrics]
+# Disable / Enable internal metrics
+;enabled           = true
+# Graphite Publish interval
+;interval_seconds  = 10
+# Disable total stats (stat_totals_*) metrics to be generated
+;disable_total_stats = false
+
+#If both are set, basic auth will be required for the metrics endpoint.
+; basic_auth_username =
+; basic_auth_password =
+
+# Metrics environment info adds dimensions to the `grafana_environment_info` metric, which
+# can expose more information about the Grafana instance.
+[metrics.environment_info]
+#exampleLabel1 = exampleValue1
+#exampleLabel2 = exampleValue2
+
+# Send internal metrics to Graphite
+[metrics.graphite]
+# Enable by setting the address setting (ex localhost:2003)
+;address =
+;prefix = prod.grafana.%(instance_name)s.
+
+#################################### Grafana.com integration  ##########################
+# Url used to import dashboards directly from Grafana.com
+[grafana_com]
+;url = https://grafana.com
+
+#################################### Distributed tracing ############
+[tracing.jaeger]
+# Enable by setting the address sending traces to jaeger (ex localhost:6831)
+;address = localhost:6831
+# Tag that will always be included in when creating new spans. ex (tag1:value1,tag2:value2)
+;always_included_tag = tag1:value1
+# Type specifies the type of the sampler: const, probabilistic, rateLimiting, or remote
+;sampler_type = const
+# jaeger samplerconfig param
+# for "const" sampler, 0 or 1 for always false/true respectively
+# for "probabilistic" sampler, a probability between 0 and 1
+# for "rateLimiting" sampler, the number of spans per second
+# for "remote" sampler, param is the same as for "probabilistic"
+# and indicates the initial sampling rate before the actual one
+# is received from the mothership
+;sampler_param = 1
+# sampling_server_url is the URL of a sampling manager providing a sampling strategy.
+;sampling_server_url =
+# Whether or not to use Zipkin propagation (x-b3- HTTP headers).
+;zipkin_propagation = false
+# Setting this to true disables shared RPC spans.
+# Not disabling is the most common setting when using Zipkin elsewhere in your infrastructure.
+;disable_shared_zipkin_spans = false
+
+#################################### External image storage ##########################
+[external_image_storage]
+# Used for uploading images to public servers so they can be included in slack/email messages.
+# you can choose between (s3, webdav, gcs, azure_blob, local)
+;provider =
+
+[external_image_storage.s3]
+;endpoint =
+;path_style_access =
+;bucket =
+;region =
+;path =
+;access_key =
+;secret_key =
+
+[external_image_storage.webdav]
+;url =
+;public_url =
+;username =
+;password =
+
+[external_image_storage.gcs]
+;key_file =
+;bucket =
+;path =
+
+[external_image_storage.azure_blob]
+;account_name =
+;account_key =
+;container_name =
+
+[external_image_storage.local]
+# does not require any configuration
+
+[rendering]
+# Options to configure a remote HTTP image rendering service, e.g. using https://github.com/grafana/grafana-image-renderer.
+# URL to a remote HTTP image renderer service, e.g. http://localhost:8081/render, will enable Grafana to render panels and dashboards to PNG-images using HTTP requests to an external service.
+;server_url =
+# If the remote HTTP image renderer service runs on a different server than the Grafana server you may have to configure this to a URL where Grafana is reachable, e.g. http://grafana.domain/.
+;callback_url =
+# Concurrent render request limit affects when the /render HTTP endpoint is used. Rendering many images at the same time can overload the server,
+# which this setting can help protect against by only allowing a certain amount of concurrent requests.
+;concurrent_render_request_limit = 30
+
+[panels]
+# If set to true Grafana will allow script tags in text panels. Not recommended as it enable XSS vulnerabilities.
+;disable_sanitize_html = false
+
+[plugins]
+;enable_alpha = false
+;app_tls_skip_verify_insecure = false
+# Enter a comma-separated list of plugin identifiers to identify plugins that are allowed to be loaded even if they lack a valid signature.
+;allow_loading_unsigned_plugins =
+;marketplace_url = https://grafana.com/grafana/plugins/
+
+#################################### Grafana Image Renderer Plugin ##########################
+[plugin.grafana-image-renderer]
+# Instruct headless browser instance to use a default timezone when not provided by Grafana, e.g. when rendering panel image of alert.
+# See ICU’s metaZones.txt (https://cs.chromium.org/chromium/src/third_party/icu/source/data/misc/metaZones.txt) for a list of supported
+# timezone IDs. Fallbacks to TZ environment variable if not set.
+;rendering_timezone =
+
+# Instruct headless browser instance to use a default language when not provided by Grafana, e.g. when rendering panel image of alert.
+# Please refer to the HTTP header Accept-Language to understand how to format this value, e.g. 'fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5'.
+;rendering_language =
+
+# Instruct headless browser instance to use a default device scale factor when not provided by Grafana, e.g. when rendering panel image of alert.
+# Default is 1. Using a higher value will produce more detailed images (higher DPI), but will require more disk space to store an image.
+;rendering_viewport_device_scale_factor =
+
+# Instruct headless browser instance whether to ignore HTTPS errors during navigation. Per default HTTPS errors are not ignored. Due to
+# the security risk it's not recommended to ignore HTTPS errors.
+;rendering_ignore_https_errors =
+
+# Instruct headless browser instance whether to capture and log verbose information when rendering an image. Default is false and will
+# only capture and log error messages. When enabled, debug messages are captured and logged as well.
+# For the verbose information to be included in the Grafana server log you have to adjust the rendering log level to debug, configure
+# [log].filter = rendering:debug.
+;rendering_verbose_logging =
+
+# Instruct headless browser instance whether to output its debug and error messages into running process of remote rendering service.
+# Default is false. This can be useful to enable (true) when troubleshooting.
+;rendering_dumpio =
+
+# Additional arguments to pass to the headless browser instance. Default is --no-sandbox. The list of Chromium flags can be found
+# here (https://peter.sh/experiments/chromium-command-line-switches/). Multiple arguments is separated with comma-character.
+;rendering_args =
+
+# You can configure the plugin to use a different browser binary instead of the pre-packaged version of Chromium.
+# Please note that this is not recommended, since you may encounter problems if the installed version of Chrome/Chromium is not
+# compatible with the plugin.
+;rendering_chrome_bin =
+
+# Instruct how headless browser instances are created. Default is 'default' and will create a new browser instance on each request.
+# Mode 'clustered' will make sure that only a maximum of browsers/incognito pages can execute concurrently.
+# Mode 'reusable' will have one browser instance and will create a new incognito page on each request.
+;rendering_mode =
+
+# When rendering_mode = clustered you can instruct how many browsers or incognito pages can execute concurrently. Default is 'browser'
+# and will cluster using browser instances.
+# Mode 'context' will cluster using incognito pages.
+;rendering_clustering_mode =
+# When rendering_mode = clustered you can define maximum number of browser instances/incognito pages that can execute concurrently..
+;rendering_clustering_max_concurrency =
+
+# Limit the maximum viewport width, height and device scale factor that can be requested.
+;rendering_viewport_max_width =
+;rendering_viewport_max_height =
+;rendering_viewport_max_device_scale_factor =
+
+# Change the listening host and port of the gRPC server. Default host is 127.0.0.1 and default port is 0 and will automatically assign
+# a port not in use.
+;grpc_host =
+;grpc_port =
+
+[enterprise]
+# Path to a valid Grafana Enterprise license.jwt file
+;license_path =
+
+[feature_toggles]
+# enable features, separated by spaces
+;enable =
+
+[date_formats]
+# For information on what formatting patterns that are supported https://momentjs.com/docs/#/displaying/
+
+# Default system date format used in time range picker and other places where full time is displayed
+;full_date = YYYY-MM-DD HH:mm:ss
+
+# Used by graph and other places where we only show small intervals
+;interval_second = HH:mm:ss
+;interval_minute = HH:mm
+;interval_hour = MM/DD HH:mm
+;interval_day = MM/DD
+;interval_month = YYYY-MM
+;interval_year = YYYY
+
+# Experimental feature
+;use_browser_locale = false
+
+# Default timezone for user preferences. Options are 'browser' for the browser local timezone or a timezone name from IANA Time Zone database, e.g. 'UTC' or 'Europe/Amsterdam' etc.
+;default_timezone = browser
diff --git a/skjcmanager/script/docker/app/prometheus/config/prometheus.yml b/skjcmanager/script/docker/app/prometheus/config/prometheus.yml
new file mode 100644
index 0000000..b272d0a
--- /dev/null
+++ b/skjcmanager/script/docker/app/prometheus/config/prometheus.yml
@@ -0,0 +1,68 @@
+# my global config
+global:
+  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
+  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
+  # scrape_timeout is set to the global default (10s).
+
+# Alertmanager configuration
+alerting:
+  alertmanagers:
+  - static_configs:
+    - targets: ['172.30.0.99:9093']
+
+# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
+rule_files:
+  - "rules/alert_rules.yml"
+
+# A scrape configuration containing exactly one endpoint to scrape:
+# Here it's Prometheus itself.
+scrape_configs:
+  # 监控 prometheus
+  - job_name: 'prometheus'
+    static_configs:
+      - targets: ['172.30.0.90:9090'] #填写prometheus服务ip:端口
+  # 监控 linux
+  - job_name: linux
+    static_configs:
+      - targets: ['172.30.0.93:9100'] #填写node-exporter的docker服务ip:端口或者宿主机ip:映射的端口
+        labels:
+          instance: localhost:linux #实例名称或ip
+  # 监控 mysql
+  - job_name: 'mysql'
+    static_configs:
+      - targets: ['172.30.0.94:9104'] #填写mysqld-exporter的docker服务ip:端口或者宿主机ip:映射的端口
+        labels:
+          instance: localhost:mysql #实例名称或ip
+  # 监控 cadvisor
+  - job_name: "docker"
+    static_configs:
+      - targets: ['172.30.0.180:8080'] #填写cadvisor服务ip:端口
+  # 监控 nacos
+  - job_name: "nacos"
+    metrics_path: '/nacos/actuator/prometheus'
+    static_configs:
+      - targets: ['172.30.0.48:8848'] #填写nacos服务ip:端口
+  # 监控 bladex
+  - job_name: "bladex"
+    metrics_path: "/actuator/prometheus"
+    scrape_interval: 5s
+    consul_sd_configs:
+      #必须保证prometheus能调用否则不会显示
+      #若是docker部署必须保证网络与各服务调通
+      - server: '172.30.0.72:7002' #填写实现consul-api的blade-admin服务ip:端口
+        #匹配所有service
+        services: []
+    relabel_configs:
+      #service 源标签
+      - source_labels: [__meta_consul_service]
+        #匹配 "blade" 开头的service
+        regex: "blade*"
+        #执行的动作
+        action: drop
+        #将service的label重写为application
+      - source_labels: [__meta_consul_service]
+        target_label: application
+      - source_labels: [__meta_consul_service_address]
+        target_label: instance
+      - source_labels: [__meta_consul_tags]
+        target_label:  job
diff --git a/skjcmanager/script/docker/app/prometheus/config/wechat.tmpl b/skjcmanager/script/docker/app/prometheus/config/wechat.tmpl
new file mode 100644
index 0000000..0af660f
--- /dev/null
+++ b/skjcmanager/script/docker/app/prometheus/config/wechat.tmpl
@@ -0,0 +1,34 @@
+{{ define "wechat.default.message" }}
+{{- if gt (len .Alerts.Firing) 0 -}}
+{{- range $index, $alert := .Alerts -}}
+{{- if eq $index 0 -}}
+==========告警通知==========
+告警类型: {{ $alert.Labels.alertname }}
+告警状态: {{ $alert.Status }}
+告警级别: {{ $alert.Labels.level }}
+{{- end }}
+==========告警详情==========
+告警主题: {{ $alert.Annotations.summary }}
+告警详情: {{ $alert.Annotations.description }}
+故障时间: {{ $alert.StartsAt.Local }}
+{{ if gt (len $alert.Labels.instance) 0 -}}故障实例: {{ $alert.Labels.instance }}{{- end -}}
+{{- end }}
+{{- end }}
+
+{{- if gt (len .Alerts.Resolved) 0 -}}
+{{- range $index, $alert := .Alerts -}}
+{{- if eq $index 0 -}}
+==========恢复通知==========
+告警类型: {{ $alert.Labels.alertname }}
+告警状态: {{ $alert.Status }}
+告警级别: {{ $alert.Labels.level }}
+{{- end }}
+==========恢复详情==========
+告警主题: {{ $alert.Annotations.summary }}
+告警详情: {{ $alert.Annotations.description }}
+故障时间: {{ $alert.StartsAt.Local }}
+恢复时间: {{ $alert.EndsAt.Local }}
+{{ if gt (len $alert.Labels.instance) 0 -}}故障实例: {{ $alert.Labels.instance }}{{- end -}}
+{{- end }}
+{{- end }}
+{{- end }}
diff --git a/skjcmanager/script/docker/app/prometheus/dashboard/bladex-docker.json b/skjcmanager/script/docker/app/prometheus/dashboard/bladex-docker.json
new file mode 100644
index 0000000..ed0198b
--- /dev/null
+++ b/skjcmanager/script/docker/app/prometheus/dashboard/bladex-docker.json
@@ -0,0 +1,1705 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "Prometheus",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "limit": 100,
+        "name": "Annotations & Alerts",
+        "showIn": 0,
+        "type": "dashboard"
+      }
+    ]
+  },
+  "description": "SpringCloud服务Docker监控",
+  "editable": true,
+  "gnetId": 11600,
+  "graphTooltip": 1,
+  "id": 26,
+  "iteration": 1612431043072,
+  "links": [
+    {
+      "icon": "cloud",
+      "tags": [],
+      "title": "BladeX",
+      "type": "link",
+      "url": "https://bladex.vip"
+    }
+  ],
+  "panels": [
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "rgba(245, 54, 54, 0.9)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(50, 172, 45, 0.97)"
+      ],
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 8,
+        "x": 0,
+        "y": 0
+      },
+      "height": "20",
+      "id": 28,
+      "interval": null,
+      "isNew": true,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "count(container_last_seen{image!=\"\"})",
+          "intervalFactor": 2,
+          "legendFormat": "",
+          "metric": "container_last_seen",
+          "refId": "A",
+          "step": 240
+        }
+      ],
+      "thresholds": "",
+      "title": "运行容器",
+      "transparent": true,
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "avg"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "rgba(245, 54, 54, 0.9)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(50, 172, 45, 0.97)"
+      ],
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "mbytes",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 8,
+        "x": 8,
+        "y": 0
+      },
+      "height": "20",
+      "id": 24,
+      "interval": null,
+      "isNew": true,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(container_memory_usage_bytes{image!=\"\"})/1024/1024",
+          "intervalFactor": 2,
+          "legendFormat": "",
+          "metric": "container_memory_usage_bytes",
+          "refId": "A",
+          "step": 240
+        }
+      ],
+      "thresholds": "",
+      "title": "内存占用",
+      "transparent": true,
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "rgba(245, 54, 54, 0.9)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(50, 172, 45, 0.97)"
+      ],
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "percent",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 8,
+        "x": 16,
+        "y": 0
+      },
+      "height": "20",
+      "id": 26,
+      "interval": null,
+      "isNew": true,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(rate(container_cpu_user_seconds_total{image!=\"\"}[5m]) * 100)",
+          "intervalFactor": 2,
+          "legendFormat": "",
+          "metric": "container_memory_usage_bytes",
+          "refId": "A",
+          "step": 240
+        }
+      ],
+      "thresholds": "",
+      "title": "CPU占用",
+      "transparent": true,
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "aliasColors": {
+        "{id=\"/\",instance=\"cadvisor:8080\",job=\"prometheus\"}": "#BA43A9"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 3,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 6,
+        "w": 12,
+        "x": 0,
+        "y": 3
+      },
+      "hiddenSeries": false,
+      "id": 5,
+      "isNew": true,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": false,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null as zero",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(container_cpu_system_seconds_total{instance=~\"$node\"}[1m]))",
+          "hide": true,
+          "intervalFactor": 2,
+          "legendFormat": "a",
+          "refId": "B",
+          "step": 120
+        },
+        {
+          "expr": "sum(rate(container_cpu_system_seconds_total{instance=~\"$node\",name=~\".+\"}[1m]))",
+          "hide": true,
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "nur container",
+          "refId": "F",
+          "step": 10
+        },
+        {
+          "expr": "sum(rate(container_cpu_system_seconds_total{instance=~\"$node\",id=\"/\"}[1m]))",
+          "hide": true,
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "nur docker host",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "expr": "sum(rate(process_cpu_seconds_total{instance=~\"$node\"}[$interval])) * 100",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "host",
+          "metric": "",
+          "refId": "C",
+          "step": 4
+        },
+        {
+          "expr": "sum(rate(container_cpu_system_seconds_total{instance=~\"$node\",name=~\".+\"}[1m])) + sum(rate(container_cpu_system_seconds_total{instance=~\"$node\",id=\"/\"}[1m])) + sum(rate(process_cpu_seconds_total{instance=~\"$node\"}[1m]))",
+          "hide": true,
+          "intervalFactor": 2,
+          "legendFormat": "",
+          "refId": "D",
+          "step": 120
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "节点CPU用量",
+      "tooltip": {
+        "msResolution": true,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": false,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "percent",
+          "label": "",
+          "logBase": 1,
+          "max": 120,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": false
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {
+        "SENT": "#BF1B00"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 5,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 6,
+        "w": 12,
+        "x": 12,
+        "y": 3
+      },
+      "hiddenSeries": false,
+      "id": 19,
+      "isNew": true,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": false,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null as zero",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 1,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(container_network_receive_bytes_total{instance=~\"$node\",id=\"/\"}[$interval])) by (id)",
+          "intervalFactor": 2,
+          "legendFormat": "RECEIVED",
+          "refId": "A",
+          "step": 4
+        },
+        {
+          "expr": "- sum(rate(container_network_transmit_bytes_total{instance=~\"$node\",id=\"/\"}[$interval])) by (id)",
+          "hide": false,
+          "intervalFactor": 2,
+          "legendFormat": "SENT",
+          "refId": "B",
+          "step": 4
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "节点网络传输",
+      "tooltip": {
+        "msResolution": true,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": false,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": false
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 24,
+        "x": 0,
+        "y": 9
+      },
+      "hiddenSeries": false,
+      "id": 30,
+      "isNew": true,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": true,
+        "max": false,
+        "min": false,
+        "rightSide": true,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "connected",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "rate(container_cpu_user_seconds_total{image!=\"\"}[5m]) * 100",
+          "intervalFactor": 2,
+          "legendFormat": "{{name}}",
+          "metric": "cpu",
+          "refId": "A",
+          "step": 10
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "CPU占用趋势",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "percent",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 24,
+        "x": 0,
+        "y": 16
+      },
+      "hiddenSeries": false,
+      "id": 32,
+      "isNew": true,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": true,
+        "max": false,
+        "min": false,
+        "rightSide": true,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "connected",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "container_memory_usage_bytes{image!=\"\"}",
+          "hide": false,
+          "intervalFactor": 2,
+          "legendFormat": "{{name}}",
+          "metric": "container_memory_usage_bytes",
+          "refId": "A",
+          "step": 10
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "内存占用趋势",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": false
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 3,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 10,
+        "w": 12,
+        "x": 0,
+        "y": 23
+      },
+      "hiddenSeries": false,
+      "id": 11,
+      "isNew": true,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null as zero",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "container_memory_rss{instance=~\"$node\",name=~\".+\"}",
+          "hide": true,
+          "intervalFactor": 2,
+          "legendFormat": "{{name}}",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "expr": "container_memory_usage_bytes{instance=~\"$node\",name=~\".+\"}",
+          "hide": true,
+          "intervalFactor": 2,
+          "legendFormat": "{{name}}",
+          "refId": "B",
+          "step": 20
+        },
+        {
+          "expr": "sum(container_memory_cache{instance=~\"$node\",name=~\".+\"}) by (name)",
+          "hide": false,
+          "intervalFactor": 2,
+          "legendFormat": "{{name}}",
+          "refId": "C",
+          "step": 2
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "容器缓存内存",
+      "tooltip": {
+        "msResolution": true,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": false
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 3,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 10,
+        "w": 12,
+        "x": 12,
+        "y": 23
+      },
+      "hiddenSeries": false,
+      "id": 10,
+      "isNew": true,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null as zero",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(container_memory_rss{instance=~\"$node\",name=~\".+\"}) by (name)",
+          "hide": false,
+          "intervalFactor": 2,
+          "legendFormat": "{{name}}",
+          "refId": "A",
+          "step": 2
+        },
+        {
+          "expr": "container_memory_usage_bytes{instance=~\"$node\",name=~\".+\"}",
+          "hide": true,
+          "intervalFactor": 2,
+          "legendFormat": "{{name}}",
+          "refId": "B",
+          "step": 240
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "容器内存占用",
+      "tooltip": {
+        "msResolution": true,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 10,
+        "w": 12,
+        "x": 0,
+        "y": 33
+      },
+      "hiddenSeries": false,
+      "id": 9,
+      "isNew": true,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "hideEmpty": false,
+        "hideZero": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null as zero",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(container_network_transmit_bytes_total{instance=~\"$node\",name=~\".+\"}[$interval])) by (name)",
+          "intervalFactor": 2,
+          "legendFormat": "{{name}}",
+          "refId": "A",
+          "step": 2
+        },
+        {
+          "expr": "rate(container_network_transmit_bytes_total{instance=~\"$node\",id=\"/\"}[$interval])",
+          "hide": true,
+          "intervalFactor": 2,
+          "legendFormat": "",
+          "refId": "B",
+          "step": 10
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "容器网络发送趋势",
+      "tooltip": {
+        "msResolution": true,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "Bps",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": "",
+          "logBase": 10,
+          "max": 8,
+          "min": 0,
+          "show": false
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 5,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 10,
+        "w": 12,
+        "x": 12,
+        "y": 33
+      },
+      "hiddenSeries": false,
+      "id": 1,
+      "isNew": true,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null as zero",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(container_cpu_usage_seconds_total{instance=~\"$node\",name=~\".+\"}[$interval])) by (name) * 100",
+          "format": "time_series",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "{{name}}",
+          "metric": "container_cp",
+          "refId": "F",
+          "step": 2
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "容器CPU占用",
+      "tooltip": {
+        "msResolution": true,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "percent",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": false
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 10,
+        "w": 12,
+        "x": 0,
+        "y": 43
+      },
+      "hiddenSeries": false,
+      "id": 8,
+      "isNew": true,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null as zero",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(container_network_receive_bytes_total{instance=~\"$node\",name=~\".+\"}[$interval])) by (name)",
+          "intervalFactor": 2,
+          "legendFormat": "{{name}}",
+          "refId": "A",
+          "step": 2
+        },
+        {
+          "expr": "- rate(container_network_transmit_bytes_total{instance=~\"$node\",name=~\".+\"}[$interval])",
+          "hide": true,
+          "intervalFactor": 2,
+          "legendFormat": "{{name}}",
+          "refId": "B",
+          "step": 10
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "容器网络接收趋势",
+      "tooltip": {
+        "msResolution": true,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "Bps",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "columns": [
+        {
+          "text": "Avg",
+          "value": "avg"
+        }
+      ],
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fontSize": "100%",
+      "gridPos": {
+        "h": 10,
+        "w": 12,
+        "x": 12,
+        "y": 43
+      },
+      "hideTimeOverride": false,
+      "id": 18,
+      "isNew": true,
+      "links": [],
+      "pageSize": 100,
+      "scroll": true,
+      "showHeader": true,
+      "sort": {
+        "col": 0,
+        "desc": true
+      },
+      "styles": [
+        {
+          "align": "auto",
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "pattern": "Time",
+          "type": "date"
+        },
+        {
+          "align": "auto",
+          "colorMode": null,
+          "colors": [
+            "rgba(245, 54, 54, 0.9)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(50, 172, 45, 0.97)"
+          ],
+          "decimals": 2,
+          "pattern": "/.*/",
+          "thresholds": [],
+          "type": "number",
+          "unit": "short"
+        }
+      ],
+      "targets": [
+        {
+          "expr": "cadvisor_version_info{instance=~\"$node\"}",
+          "intervalFactor": 2,
+          "legendFormat": "cAdvisor Version: {{cadvisorVersion}}",
+          "refId": "A",
+          "step": 2
+        },
+        {
+          "expr": "prometheus_build_info{}",
+          "intervalFactor": 2,
+          "legendFormat": "Prometheus Version: {{version}}",
+          "refId": "B",
+          "step": 2
+        },
+        {
+          "expr": "node_exporter_build_info{instance=~\"$node\"}",
+          "intervalFactor": 2,
+          "legendFormat": "Node-Exporter Version: {{version}}",
+          "refId": "C",
+          "step": 2
+        },
+        {
+          "expr": "cadvisor_version_info{instance=~\"$node\"}",
+          "hide": false,
+          "intervalFactor": 2,
+          "legendFormat": "Docker Version: {{dockerVersion}}",
+          "refId": "D",
+          "step": 2
+        },
+        {
+          "expr": "cadvisor_version_info{instance=~\"$node\"}",
+          "intervalFactor": 2,
+          "legendFormat": "Host OS Version: {{osVersion}}",
+          "refId": "E",
+          "step": 2
+        },
+        {
+          "expr": "cadvisor_version_info{instance=~\"$node\"}",
+          "intervalFactor": 2,
+          "legendFormat": "Host Kernel Version: {{kernelVersion}}",
+          "refId": "F",
+          "step": 2
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "中间件版本",
+      "transform": "timeseries_aggregations",
+      "type": "table-old"
+    }
+  ],
+  "refresh": "5s",
+  "schemaVersion": 26,
+  "style": "dark",
+  "tags": [
+    "docker"
+  ],
+  "templating": {
+    "list": [
+      {
+        "auto": true,
+        "auto_count": 50,
+        "auto_min": "50s",
+        "current": {
+          "selected": false,
+          "text": "auto",
+          "value": "$__auto_interval_interval"
+        },
+        "datasource": null,
+        "error": null,
+        "hide": 0,
+        "includeAll": false,
+        "label": "间隔",
+        "multi": false,
+        "name": "interval",
+        "options": [
+          {
+            "selected": true,
+            "text": "auto",
+            "value": "$__auto_interval_interval"
+          },
+          {
+            "selected": false,
+            "text": "30s",
+            "value": "30s"
+          },
+          {
+            "selected": false,
+            "text": "1m",
+            "value": "1m"
+          },
+          {
+            "selected": false,
+            "text": "2m",
+            "value": "2m"
+          },
+          {
+            "selected": false,
+            "text": "3m",
+            "value": "3m"
+          },
+          {
+            "selected": false,
+            "text": "5m",
+            "value": "5m"
+          },
+          {
+            "selected": false,
+            "text": "7m",
+            "value": "7m"
+          },
+          {
+            "selected": false,
+            "text": "10m",
+            "value": "10m"
+          },
+          {
+            "selected": false,
+            "text": "30m",
+            "value": "30m"
+          },
+          {
+            "selected": false,
+            "text": "1h",
+            "value": "1h"
+          },
+          {
+            "selected": false,
+            "text": "6h",
+            "value": "6h"
+          },
+          {
+            "selected": false,
+            "text": "12h",
+            "value": "12h"
+          },
+          {
+            "selected": false,
+            "text": "1d",
+            "value": "1d"
+          },
+          {
+            "selected": false,
+            "text": "7d",
+            "value": "7d"
+          },
+          {
+            "selected": false,
+            "text": "14d",
+            "value": "14d"
+          },
+          {
+            "selected": false,
+            "text": "30d",
+            "value": "30d"
+          }
+        ],
+        "query": "30s,1m,2m,3m,5m,7m,10m,30m,1h,6h,12h,1d,7d,14d,30d",
+        "refresh": 2,
+        "skipUrlSync": false,
+        "type": "interval"
+      },
+      {
+        "allValue": null,
+        "current": {
+          "selected": false,
+          "text": "docker",
+          "value": "docker"
+        },
+        "datasource": "Prometheus",
+        "definition": "label_values(container_cpu_user_seconds_total, job)",
+        "error": null,
+        "hide": 0,
+        "includeAll": false,
+        "label": "任务",
+        "multi": false,
+        "name": "job",
+        "options": [],
+        "query": "label_values(container_cpu_user_seconds_total, job)",
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 1,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allValue": "",
+        "current": {
+          "selected": false,
+          "text": "All",
+          "value": "$__all"
+        },
+        "datasource": "Prometheus",
+        "definition": "label_values(container_cpu_user_seconds_total{job=~\"$job\"}, instance)",
+        "error": null,
+        "hide": 0,
+        "includeAll": true,
+        "label": "节点",
+        "multi": true,
+        "name": "node",
+        "options": [],
+        "query": "label_values(container_cpu_user_seconds_total{job=~\"$job\"}, instance)",
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 1,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allValue": "All",
+        "current": {
+          "selected": false,
+          "text": "All",
+          "value": "$__all"
+        },
+        "datasource": "Prometheus",
+        "definition": "label_values(container_cpu_user_seconds_total{instance=~\"172.30.0.78:18080|172.30.0.79:18080\", name!=\"cadvisor\"}, name)",
+        "error": null,
+        "hide": 2,
+        "includeAll": true,
+        "label": "Prod",
+        "multi": true,
+        "name": "Prod",
+        "options": [],
+        "query": "label_values(container_cpu_user_seconds_total{instance=~\"172.30.0.78:18080|172.30.0.79:18080\", name!=\"cadvisor\"}, name)",
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 1,
+        "tagValuesQuery": "apps.prod",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allValue": "All",
+        "current": {
+          "selected": false,
+          "text": "All",
+          "value": "$__all"
+        },
+        "datasource": "Prometheus",
+        "definition": "label_values(container_cpu_user_seconds_total{instance=~\"172.30.0.78:18080|172.30.0.79:180800\", name!=\"cadvisor\"}, name)",
+        "error": null,
+        "hide": 2,
+        "includeAll": true,
+        "label": "NonProd",
+        "multi": true,
+        "name": "NonProd",
+        "options": [],
+        "query": "label_values(container_cpu_user_seconds_total{instance=~\"172.30.0.78:18080|172.30.0.79:180800\", name!=\"cadvisor\"}, name)",
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 0,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      }
+    ]
+  },
+  "time": {
+    "from": "now-15m",
+    "to": "now"
+  },
+  "timepicker": {
+    "refresh_intervals": [
+      "5s",
+      "10s",
+      "30s",
+      "1m",
+      "5m",
+      "15m",
+      "30m",
+      "1h",
+      "2h",
+      "1d"
+    ],
+    "time_options": [
+      "5m",
+      "15m",
+      "1h",
+      "6h",
+      "12h",
+      "24h",
+      "2d",
+      "7d",
+      "30d"
+    ]
+  },
+  "timezone": "browser",
+  "title": "BladeX监控大屏--Docker",
+  "uid": "bladex-docker",
+  "version": 1
+}
diff --git a/skjcmanager/script/docker/app/prometheus/dashboard/bladex-jvm.json b/skjcmanager/script/docker/app/prometheus/dashboard/bladex-jvm.json
new file mode 100644
index 0000000..966629f
--- /dev/null
+++ b/skjcmanager/script/docker/app/prometheus/dashboard/bladex-jvm.json
@@ -0,0 +1,3825 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "limit": 100,
+        "name": "Annotations & Alerts",
+        "showIn": 0,
+        "type": "dashboard"
+      },
+      {
+        "datasource": "Prometheus",
+        "enable": true,
+        "expr": "resets(process_uptime_seconds{application=\"$application\", instance=\"$instance\"}[1m]) > 0",
+        "iconColor": "rgba(255, 96, 96, 1)",
+        "limit": 100,
+        "name": "进程重启打标",
+        "showIn": 0,
+        "step": "1m",
+        "tagKeys": "restart-tag",
+        "tags": [],
+        "textFormat": "uptime reset",
+        "titleFormat": "Restart",
+        "type": "tags"
+      }
+    ]
+  },
+  "description": "SpringCloud微服务JVM监控",
+  "editable": true,
+  "gnetId": 12856,
+  "graphTooltip": 1,
+  "id": 16,
+  "iteration": 1612272472672,
+  "links": [
+    {
+      "icon": "cloud",
+      "tags": [],
+      "title": "BladeX",
+      "type": "link",
+      "url": "https://bladex.vip"
+    }
+  ],
+  "panels": [
+    {
+      "collapsed": false,
+      "datasource": "${DS_SPRING-DEMOT}",
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 0
+      },
+      "id": 125,
+      "panels": [],
+      "repeat": null,
+      "title": "概览",
+      "type": "row"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": [
+        "rgba(245, 54, 54, 0.9)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(50, 172, 45, 0.97)"
+      ],
+      "datasource": "Prometheus",
+      "decimals": 1,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "s",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 6,
+        "x": 0,
+        "y": 1
+      },
+      "height": "",
+      "id": 63,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "70%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "process_uptime_seconds{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "",
+          "metric": "",
+          "refId": "A",
+          "step": 14400
+        }
+      ],
+      "thresholds": "",
+      "title": "进程启动时长",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": [
+        "rgba(245, 54, 54, 0.9)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(50, 172, 45, 0.97)"
+      ],
+      "datasource": "Prometheus",
+      "decimals": null,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "dateTimeAsIso",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 6,
+        "x": 6,
+        "y": 1
+      },
+      "height": "",
+      "id": 92,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "70%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "process_start_time_seconds{application=\"$application\", instance=\"$instance\"}*1000",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "",
+          "metric": "",
+          "refId": "A",
+          "step": 14400
+        }
+      ],
+      "thresholds": "",
+      "title": "进程启动时间",
+      "type": "singlestat",
+      "valueFontSize": "70%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": [
+        "rgba(50, 172, 45, 0.97)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(245, 54, 54, 0.9)"
+      ],
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "percent",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 6,
+        "x": 12,
+        "y": 1
+      },
+      "id": 65,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "70%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", area=\"heap\"})*100/sum(jvm_memory_max_bytes{application=\"$application\",instance=\"$instance\", area=\"heap\"})",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "",
+          "refId": "A",
+          "step": 14400
+        }
+      ],
+      "thresholds": "70,90",
+      "title": "堆内存使用率",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": [
+        "rgba(50, 172, 45, 0.97)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(245, 54, 54, 0.9)"
+      ],
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "percent",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 6,
+        "x": 18,
+        "y": 1
+      },
+      "id": 75,
+      "interval": null,
+      "links": [],
+      "mappingType": 2,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "70%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        },
+        {
+          "from": "-99999999999999999999999999999999",
+          "text": "N/A",
+          "to": "0"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", area=\"nonheap\"})*100/sum(jvm_memory_max_bytes{application=\"$application\",instance=\"$instance\", area=\"nonheap\"})",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "",
+          "refId": "A",
+          "step": 14400
+        }
+      ],
+      "thresholds": "70,90",
+      "title": "非堆内存使用率",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        },
+        {
+          "op": "=",
+          "text": "x",
+          "value": ""
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "collapsed": false,
+      "datasource": "${DS_SPRING-DEMOT}",
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 4
+      },
+      "id": 126,
+      "panels": [],
+      "repeat": null,
+      "title": "服务黄金指标",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "description": "平均每秒处理的请求数",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 0,
+        "y": 5
+      },
+      "hiddenSeries": false,
+      "id": 111,
+      "legend": {
+        "avg": false,
+        "current": true,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(http_server_requests_seconds_count{application=\"$application\", instance=\"$instance\"}[1m]))",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "HTTP",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "QPS(1分钟平均)",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "decimals": null,
+          "format": "ops",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {
+        "HTTP": "#890f02",
+        "HTTP - 5xx": "#bf1b00"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 6,
+        "y": 5
+      },
+      "hiddenSeries": false,
+      "id": 112,
+      "legend": {
+        "avg": false,
+        "current": true,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(http_server_requests_seconds_count{application=\"$application\", instance=\"$instance\", status=~\"5..\"}[1m]))",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "HTTP - 5xx",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "错误数(1分钟平均)",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "decimals": null,
+          "format": "ops",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 12,
+        "y": 5
+      },
+      "hiddenSeries": false,
+      "id": 113,
+      "legend": {
+        "avg": false,
+        "current": true,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(http_server_requests_seconds_sum{application=\"$application\", instance=\"$instance\", status!~\"5..\"}[1m]))/sum(rate(http_server_requests_seconds_count{application=\"$application\", instance=\"$instance\", status!~\"5..\"}[1m]))",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 1,
+          "legendFormat": "HTTP - AVG",
+          "refId": "A"
+        },
+        {
+          "expr": "max(http_server_requests_seconds_max{application=\"$application\", instance=\"$instance\", status!~\"5..\"})",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 1,
+          "legendFormat": "HTTP - MAX",
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "请求耗时(1分钟平均)",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "s",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "description": "饱和度指标来自于Google SRE的的黄金指标, 指服务的过载程度, 当系统过载时, 往往意味着请求需要排队处理",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 18,
+        "y": 5
+      },
+      "hiddenSeries": false,
+      "id": 119,
+      "legend": {
+        "alignAsTable": false,
+        "avg": false,
+        "current": true,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "tomcat_threads_busy_threads{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 2,
+          "legendFormat": "TOMCAT - BSY",
+          "refId": "A"
+        },
+        {
+          "expr": "tomcat_threads_current_threads{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 2,
+          "legendFormat": "TOMCAT - CUR",
+          "refId": "B"
+        },
+        {
+          "expr": "tomcat_threads_config_max_threads{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 2,
+          "legendFormat": "TOMCAT - MAX",
+          "refId": "C"
+        },
+        {
+          "expr": "jetty_threads_busy{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 2,
+          "legendFormat": "JETTY - BSY",
+          "refId": "D"
+        },
+        {
+          "expr": "jetty_threads_current{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 2,
+          "legendFormat": "JETTY - CUR",
+          "refId": "E"
+        },
+        {
+          "expr": "jetty_threads_config_max{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 2,
+          "legendFormat": "JETTY - MAX",
+          "refId": "F"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "饱和度",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": "${DS_SPRING-DEMOT}",
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 12
+      },
+      "id": 127,
+      "panels": [],
+      "repeat": null,
+      "title": "JVM 内存",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 0,
+        "y": 13
+      },
+      "hiddenSeries": false,
+      "id": 24,
+      "legend": {
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", area=\"heap\"})",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "used",
+          "metric": "",
+          "refId": "A",
+          "step": 2400
+        },
+        {
+          "expr": "sum(jvm_memory_committed_bytes{application=\"$application\", instance=\"$instance\", area=\"heap\"})",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "committed",
+          "refId": "B",
+          "step": 2400
+        },
+        {
+          "expr": "sum(jvm_memory_max_bytes{application=\"$application\", instance=\"$instance\", area=\"heap\"})",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "max",
+          "refId": "C",
+          "step": 2400
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "堆内存",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "mbytes",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 6,
+        "y": 13
+      },
+      "hiddenSeries": false,
+      "id": 25,
+      "legend": {
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", area=\"nonheap\"})",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "used",
+          "metric": "",
+          "refId": "A",
+          "step": 2400
+        },
+        {
+          "expr": "sum(jvm_memory_committed_bytes{application=\"$application\", instance=\"$instance\", area=\"nonheap\"})",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "committed",
+          "refId": "B",
+          "step": 2400
+        },
+        {
+          "expr": "sum(jvm_memory_max_bytes{application=\"$application\", instance=\"$instance\", area=\"nonheap\"})",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "max",
+          "refId": "C",
+          "step": 2400
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "非堆内存",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "mbytes",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 12,
+        "y": 13
+      },
+      "hiddenSeries": false,
+      "id": 26,
+      "legend": {
+        "alignAsTable": false,
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\"})",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "used",
+          "metric": "",
+          "refId": "A",
+          "step": 2400
+        },
+        {
+          "expr": "sum(jvm_memory_committed_bytes{application=\"$application\", instance=\"$instance\"})",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "committed",
+          "refId": "B",
+          "step": 2400
+        },
+        {
+          "expr": "sum(jvm_memory_max_bytes{application=\"$application\", instance=\"$instance\"})",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "max",
+          "refId": "C",
+          "step": 2400
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "总内存",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "mbytes",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "description": "从操作系统层面看JVM进程的内存使用, 因为JVM并不是直接按照配置的内存参数申请全部内存",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 18,
+        "y": 13
+      },
+      "hiddenSeries": false,
+      "id": 86,
+      "legend": {
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "process_memory_vss_bytes{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "hide": true,
+          "intervalFactor": 2,
+          "legendFormat": "vss",
+          "metric": "",
+          "refId": "A",
+          "step": 2400
+        },
+        {
+          "expr": "process_memory_rss_bytes{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "rss",
+          "refId": "B"
+        },
+        {
+          "expr": "process_memory_swap_bytes{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "swap",
+          "refId": "C"
+        },
+        {
+          "expr": "process_memory_rss_bytes{application=\"$application\", instance=\"$instance\"} + process_memory_swap_bytes{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "total",
+          "refId": "D"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "JVM 进程内存",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "mbytes",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": "Prometheus",
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 20
+      },
+      "id": 128,
+      "panels": [],
+      "repeat": null,
+      "title": "JVM 负载",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 0,
+        "y": 21
+      },
+      "hiddenSeries": false,
+      "id": 106,
+      "legend": {
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "system_cpu_usage{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 1,
+          "legendFormat": "system",
+          "metric": "",
+          "refId": "A",
+          "step": 2400
+        },
+        {
+          "expr": "process_cpu_usage{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 1,
+          "legendFormat": "process",
+          "refId": "B"
+        },
+        {
+          "expr": "avg_over_time(process_cpu_usage{application=\"$application\", instance=\"$instance\"}[1h])",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 1,
+          "legendFormat": "process-1h",
+          "refId": "C"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "CPU 使用率",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "short",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "decimals": 1,
+          "format": "percentunit",
+          "label": "",
+          "logBase": 1,
+          "max": "1",
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 6,
+        "y": 21
+      },
+      "hiddenSeries": false,
+      "id": 93,
+      "legend": {
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "system_load_average_1m{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "load1",
+          "metric": "",
+          "refId": "A",
+          "step": 2400
+        },
+        {
+          "expr": "system_cpu_count{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "cpu核数",
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Load",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "short",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "decimals": 1,
+          "format": "short",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 12,
+        "y": 21
+      },
+      "hiddenSeries": false,
+      "id": 32,
+      "legend": {
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "jvm_threads_live_threads{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "live",
+          "metric": "",
+          "refId": "A",
+          "step": 2400
+        },
+        {
+          "expr": "jvm_threads_daemon_threads{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "daemon",
+          "metric": "",
+          "refId": "B",
+          "step": 2400
+        },
+        {
+          "expr": "jvm_threads_peak_threads{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "peak",
+          "refId": "C",
+          "step": 2400
+        },
+        {
+          "expr": "process_threads{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "process",
+          "refId": "D",
+          "step": 2400
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "线程数",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "short",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "decimals": 0,
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {
+        "blocked": "#bf1b00",
+        "new": "#fce2de",
+        "runnable": "#7eb26d",
+        "terminated": "#511749",
+        "timed-waiting": "#c15c17",
+        "waiting": "#eab839"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "description": "需特别关注blocked的线程数, 这意味着线程被阻塞了, 如果线程全部是blocked状态, 则系统无法处理新请求",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 18,
+        "y": 21
+      },
+      "hiddenSeries": false,
+      "id": 124,
+      "legend": {
+        "alignAsTable": false,
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "jvm_threads_states_threads{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "{{state}}",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "各状态线程数",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {
+        "debug": "#1F78C1",
+        "error": "#BF1B00",
+        "info": "#508642",
+        "trace": "#6ED0E0",
+        "warn": "#EAB839"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 18,
+        "x": 0,
+        "y": 28
+      },
+      "height": "",
+      "hiddenSeries": false,
+      "id": 91,
+      "legend": {
+        "alignAsTable": false,
+        "avg": false,
+        "current": true,
+        "hideEmpty": false,
+        "hideZero": false,
+        "max": true,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": true,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "error",
+          "yaxis": 1
+        },
+        {
+          "alias": "warn",
+          "yaxis": 1
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "increase(logback_events_total{application=\"$application\", instance=\"$instance\"}[1m])",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "{{level}}",
+          "metric": "",
+          "refId": "A",
+          "step": 1200
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Logback日志数",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "short",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "decimals": 0,
+          "format": "opm",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 18,
+        "y": 28
+      },
+      "hiddenSeries": false,
+      "id": 61,
+      "legend": {
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "process_files_open_files{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 2,
+          "legendFormat": "open",
+          "metric": "",
+          "refId": "A",
+          "step": 2400
+        },
+        {
+          "expr": "process_files_max_files{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 2,
+          "legendFormat": "max",
+          "metric": "",
+          "refId": "B",
+          "step": 2400
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "文件描述符",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "short",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "decimals": 0,
+          "format": "short",
+          "label": null,
+          "logBase": 10,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": "Prometheus",
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 35
+      },
+      "id": 129,
+      "panels": [],
+      "repeat": "persistence_counts",
+      "title": "JVM 堆内存详细",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 24,
+        "x": 0,
+        "y": 36
+      },
+      "hiddenSeries": false,
+      "id": 3,
+      "legend": {
+        "alignAsTable": false,
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "maxPerRow": 3,
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "repeat": "jvm_memory_pool_heap",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_heap\"}",
+          "format": "time_series",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "used",
+          "metric": "",
+          "refId": "A",
+          "step": 1800
+        },
+        {
+          "expr": "jvm_memory_committed_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_heap\"}",
+          "format": "time_series",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "commited",
+          "metric": "",
+          "refId": "B",
+          "step": 1800
+        },
+        {
+          "expr": "jvm_memory_max_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_heap\"}",
+          "format": "time_series",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "max",
+          "metric": "",
+          "refId": "C",
+          "step": 1800
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "$jvm_memory_pool_heap",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "mbytes",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": "Prometheus",
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 43
+      },
+      "id": 130,
+      "panels": [],
+      "repeat": null,
+      "title": "JVM 非堆内存详细",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 24,
+        "x": 0,
+        "y": 44
+      },
+      "hiddenSeries": false,
+      "id": 78,
+      "legend": {
+        "alignAsTable": false,
+        "avg": false,
+        "current": true,
+        "max": true,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "maxPerRow": 3,
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "repeat": "jvm_memory_pool_nonheap",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
+          "format": "time_series",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "used",
+          "metric": "",
+          "refId": "A",
+          "step": 1800
+        },
+        {
+          "expr": "jvm_memory_committed_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
+          "format": "time_series",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "commited",
+          "metric": "",
+          "refId": "B",
+          "step": 1800
+        },
+        {
+          "expr": "jvm_memory_max_bytes{application=\"$application\", instance=\"$instance\", id=~\"$jvm_memory_pool_nonheap\"}",
+          "format": "time_series",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 2,
+          "legendFormat": "max",
+          "metric": "",
+          "refId": "C",
+          "step": 1800
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "$jvm_memory_pool_nonheap",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "mbytes",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": "Prometheus",
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 51
+      },
+      "id": 131,
+      "panels": [],
+      "repeat": null,
+      "title": "垃圾回收(GC)",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 0,
+        "y": 52
+      },
+      "hiddenSeries": false,
+      "id": 98,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "rate(jvm_gc_pause_seconds_count{application=\"$application\", instance=\"$instance\"}[1m])",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 1,
+          "legendFormat": "{{action}} ({{cause}})",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "GC 次数",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "ops",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 8,
+        "y": 52
+      },
+      "hiddenSeries": false,
+      "id": 101,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "rate(jvm_gc_pause_seconds_sum{application=\"$application\", instance=\"$instance\"}[1m])/rate(jvm_gc_pause_seconds_count{application=\"$application\", instance=\"$instance\"}[1m])",
+          "format": "time_series",
+          "hide": false,
+          "instant": false,
+          "intervalFactor": 1,
+          "legendFormat": "avg {{action}} ({{cause}})",
+          "refId": "A"
+        },
+        {
+          "expr": "jvm_gc_pause_seconds_max{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "hide": false,
+          "instant": false,
+          "intervalFactor": 1,
+          "legendFormat": "max {{action}} ({{cause}})",
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "GC暂停时间",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "s",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "description": "内存分配的大小, 以及从新生代晋升到老年代的内存大小",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 16,
+        "y": 52
+      },
+      "hiddenSeries": false,
+      "id": 99,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "rate(jvm_gc_memory_allocated_bytes_total{application=\"$application\", instance=\"$instance\"}[1m])",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "allocated",
+          "refId": "A"
+        },
+        {
+          "expr": "rate(jvm_gc_memory_promoted_bytes_total{application=\"$application\", instance=\"$instance\"}[1m])",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "promoted",
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "内存分配/晋升",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "Bps",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": "Prometheus",
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 59
+      },
+      "id": 132,
+      "panels": [],
+      "repeat": null,
+      "title": "类加载",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 0,
+        "y": 60
+      },
+      "hiddenSeries": false,
+      "id": 37,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "jvm_classes_loaded_classes{application=\"$application\", instance=\"$instance\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "loaded",
+          "metric": "",
+          "refId": "A",
+          "step": 1200
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "已加载的类的数量",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "short",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "description": "可能增加或减少, 在Java中使用一些脚本语言例如groovy时, 需要关注, 防止因为逻辑异常产生大量的类, 进而导致metaspace满, 而metaspace满会触发full gc, 如无法释放则会导致JVM hang住",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 12,
+        "y": 60
+      },
+      "hiddenSeries": false,
+      "id": 38,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "delta(jvm_classes_loaded_classes{application=\"$application\",instance=\"$instance\"}[1m])",
+          "format": "time_series",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "delta-1m",
+          "metric": "",
+          "refId": "A",
+          "step": 1200
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "加载类数量变化",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "ops",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "decimals": null,
+          "format": "short",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": "Prometheus",
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 67
+      },
+      "id": 133,
+      "panels": [],
+      "repeat": null,
+      "title": "Buffer Pools",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 0,
+        "y": 68
+      },
+      "hiddenSeries": false,
+      "id": 33,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "jvm_buffer_memory_used_bytes{application=\"$application\", instance=\"$instance\", id=\"direct\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "used",
+          "metric": "",
+          "refId": "A",
+          "step": 2400
+        },
+        {
+          "expr": "jvm_buffer_total_capacity_bytes{application=\"$application\", instance=\"$instance\", id=\"direct\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "capacity",
+          "metric": "",
+          "refId": "B",
+          "step": 2400
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Direct Buffers",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "short",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 6,
+        "y": 68
+      },
+      "hiddenSeries": false,
+      "id": 83,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "jvm_buffer_count_buffers{application=\"$application\", instance=\"$instance\", id=\"direct\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "count",
+          "metric": "",
+          "refId": "A",
+          "step": 2400
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Direct Buffers",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "short",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "decimals": 0,
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 12,
+        "y": 68
+      },
+      "hiddenSeries": false,
+      "id": 85,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "jvm_buffer_memory_used_bytes{application=\"$application\", instance=\"$instance\", id=\"mapped\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "used",
+          "metric": "",
+          "refId": "A",
+          "step": 2400
+        },
+        {
+          "expr": "jvm_buffer_total_capacity_bytes{application=\"$application\", instance=\"$instance\", id=\"mapped\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "capacity",
+          "metric": "",
+          "refId": "B",
+          "step": 2400
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Mapped Buffers",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "short",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {
+        "leftLogBase": 1,
+        "leftMax": null,
+        "leftMin": null,
+        "rightLogBase": 1,
+        "rightMax": null,
+        "rightMin": null
+      },
+      "gridPos": {
+        "h": 7,
+        "w": 6,
+        "x": 18,
+        "y": 68
+      },
+      "hiddenSeries": false,
+      "id": 84,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "jvm_buffer_count_buffers{application=\"$application\", instance=\"$instance\", id=\"mapped\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "count",
+          "metric": "",
+          "refId": "A",
+          "step": 2400
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Mapped Buffers",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "x-axis": true,
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "y-axis": true,
+      "y_formats": [
+        "short",
+        "short"
+      ],
+      "yaxes": [
+        {
+          "decimals": 0,
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    }
+  ],
+  "refresh": "10s",
+  "schemaVersion": 26,
+  "style": "dark",
+  "tags": [
+    "jvm"
+  ],
+  "templating": {
+    "list": [
+      {
+        "allValue": null,
+        "current": {
+          "isNone": true,
+          "selected": false,
+          "text": "None",
+          "value": ""
+        },
+        "datasource": "Prometheus",
+        "definition": "",
+        "error": null,
+        "hide": 0,
+        "includeAll": false,
+        "label": "服务名",
+        "multi": false,
+        "name": "application",
+        "options": [],
+        "query": "label_values(application)",
+        "refresh": 2,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 0,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allFormat": "glob",
+        "allValue": null,
+        "current": {
+          "isNone": true,
+          "selected": false,
+          "text": "None",
+          "value": ""
+        },
+        "datasource": "Prometheus",
+        "definition": "",
+        "error": null,
+        "hide": 0,
+        "includeAll": false,
+        "label": "实例地址",
+        "multi": false,
+        "multiFormat": "glob",
+        "name": "instance",
+        "options": [],
+        "query": "label_values(jvm_memory_used_bytes{application=\"$application\"}, instance)",
+        "refresh": 2,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 0,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allFormat": "glob",
+        "allValue": null,
+        "current": {
+          "selected": false,
+          "text": "All",
+          "value": "$__all"
+        },
+        "datasource": "Prometheus",
+        "definition": "",
+        "error": null,
+        "hide": 0,
+        "includeAll": true,
+        "label": "JVM堆内存",
+        "multi": false,
+        "multiFormat": "glob",
+        "name": "jvm_memory_pool_heap",
+        "options": [],
+        "query": "label_values(jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", area=\"heap\"},id)",
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 1,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allFormat": "glob",
+        "allValue": null,
+        "current": {
+          "selected": false,
+          "text": "All",
+          "value": "$__all"
+        },
+        "datasource": "Prometheus",
+        "definition": "",
+        "error": null,
+        "hide": 0,
+        "includeAll": true,
+        "label": "JVM非堆内存",
+        "multi": false,
+        "multiFormat": "glob",
+        "name": "jvm_memory_pool_nonheap",
+        "options": [],
+        "query": "label_values(jvm_memory_used_bytes{application=\"$application\", instance=\"$instance\", area=\"nonheap\"},id)",
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 2,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      }
+    ]
+  },
+  "time": {
+    "from": "now-1h",
+    "to": "now"
+  },
+  "timepicker": {
+    "now": true,
+    "refresh_intervals": [
+      "5s",
+      "10s",
+      "30s",
+      "1m",
+      "5m",
+      "15m",
+      "30m",
+      "1h",
+      "2h",
+      "1d"
+    ],
+    "time_options": [
+      "5m",
+      "15m",
+      "1h",
+      "6h",
+      "12h",
+      "24h",
+      "2d",
+      "7d",
+      "30d"
+    ]
+  },
+  "timezone": "browser",
+  "title": "BladeX监控大屏--JVM",
+  "uid": "bladex-jvm",
+  "version": 1
+}
diff --git a/skjcmanager/script/docker/app/prometheus/dashboard/bladex-linux.json b/skjcmanager/script/docker/app/prometheus/dashboard/bladex-linux.json
new file mode 100644
index 0000000..f67ff76
--- /dev/null
+++ b/skjcmanager/script/docker/app/prometheus/dashboard/bladex-linux.json
@@ -0,0 +1,3841 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "type": "dashboard"
+      }
+    ]
+  },
+  "description": "Linux服务器监控",
+  "editable": true,
+  "gnetId": 8919,
+  "graphTooltip": 1,
+  "id": 34,
+  "iteration": 1612446791794,
+  "links": [
+    {
+      "icon": "cloud",
+      "tags": [],
+      "targetBlank": true,
+      "title": "BladeX",
+      "tooltip": "",
+      "type": "link",
+      "url": "https://bladex.vip"
+    }
+  ],
+  "panels": [
+    {
+      "collapsed": false,
+      "datasource": "Prometheus",
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 0
+      },
+      "id": 187,
+      "panels": [],
+      "title": "资源总览(关联JOB项)当前选中主机:$show_hostname,实例:$node",
+      "type": "row"
+    },
+    {
+      "columns": [],
+      "datasource": "Prometheus",
+      "description": "分区使用率、磁盘读取、磁盘写入、下载带宽、上传带宽,如果有多个网卡或者多个分区,是采集的使用率最高的网卡或者分区的数值。\n\n连接数:CurrEstab - 当前状态为 ESTABLISHED 或 CLOSE-WAIT 的 TCP 连接数。",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fontSize": "80%",
+      "gridPos": {
+        "h": 7,
+        "w": 24,
+        "x": 0,
+        "y": 1
+      },
+      "id": 185,
+      "pageSize": null,
+      "showHeader": true,
+      "sort": {
+        "col": 30,
+        "desc": true
+      },
+      "styles": [
+        {
+          "alias": "主机名",
+          "align": "auto",
+          "colorMode": null,
+          "colors": [
+            "rgba(245, 54, 54, 0.9)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(50, 172, 45, 0.97)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 1,
+          "link": false,
+          "linkTooltip": "",
+          "linkUrl": "",
+          "mappingType": 1,
+          "pattern": "nodename",
+          "thresholds": [],
+          "type": "string",
+          "unit": "bytes"
+        },
+        {
+          "alias": "IP(链接到明细)",
+          "align": "auto",
+          "colorMode": null,
+          "colors": [
+            "rgba(245, 54, 54, 0.9)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(50, 172, 45, 0.97)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 2,
+          "link": true,
+          "linkTargetBlank": false,
+          "linkTooltip": "浏览主机明细",
+          "linkUrl": "d/9CWBz0bik/node-exporter?orgId=1&var-job=${job}&var-hostname=All&var-node=${__cell}&var-device=All&var-origin_prometheus=$origin_prometheus",
+          "mappingType": 1,
+          "pattern": "instance",
+          "thresholds": [],
+          "type": "number",
+          "unit": "short"
+        },
+        {
+          "alias": "内存",
+          "align": "auto",
+          "colorMode": null,
+          "colors": [
+            "rgba(245, 54, 54, 0.9)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(50, 172, 45, 0.97)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 2,
+          "link": false,
+          "mappingType": 1,
+          "pattern": "Value #B",
+          "thresholds": [],
+          "type": "number",
+          "unit": "bytes"
+        },
+        {
+          "alias": "CPU核",
+          "align": "auto",
+          "colorMode": null,
+          "colors": [
+            "rgba(245, 54, 54, 0.9)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(50, 172, 45, 0.97)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": null,
+          "mappingType": 1,
+          "pattern": "Value #C",
+          "thresholds": [],
+          "type": "number",
+          "unit": "short"
+        },
+        {
+          "alias": " 运行时间",
+          "align": "auto",
+          "colorMode": null,
+          "colors": [
+            "rgba(245, 54, 54, 0.9)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(50, 172, 45, 0.97)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 2,
+          "mappingType": 1,
+          "pattern": "Value #D",
+          "thresholds": [],
+          "type": "number",
+          "unit": "s"
+        },
+        {
+          "alias": "分区使用率*",
+          "align": "auto",
+          "colorMode": "cell",
+          "colors": [
+            "rgba(50, 172, 45, 0.97)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(245, 54, 54, 0.9)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 2,
+          "mappingType": 1,
+          "pattern": "Value #E",
+          "thresholds": [
+            "70",
+            "85"
+          ],
+          "type": "number",
+          "unit": "percent"
+        },
+        {
+          "alias": "CPU使用率",
+          "align": "auto",
+          "colorMode": "cell",
+          "colors": [
+            "rgba(50, 172, 45, 0.97)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(245, 54, 54, 0.9)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 2,
+          "mappingType": 1,
+          "pattern": "Value #F",
+          "thresholds": [
+            "70",
+            "85"
+          ],
+          "type": "number",
+          "unit": "percent"
+        },
+        {
+          "alias": "内存使用率",
+          "align": "auto",
+          "colorMode": "cell",
+          "colors": [
+            "rgba(50, 172, 45, 0.97)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(245, 54, 54, 0.9)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 2,
+          "mappingType": 1,
+          "pattern": "Value #G",
+          "thresholds": [
+            "70",
+            "85"
+          ],
+          "type": "number",
+          "unit": "percent"
+        },
+        {
+          "alias": "磁盘读取*",
+          "align": "auto",
+          "colorMode": "cell",
+          "colors": [
+            "rgba(50, 172, 45, 0.97)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(245, 54, 54, 0.9)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 2,
+          "mappingType": 1,
+          "pattern": "Value #H",
+          "thresholds": [
+            "10485760",
+            "20485760"
+          ],
+          "type": "number",
+          "unit": "Bps"
+        },
+        {
+          "alias": "磁盘写入*",
+          "align": "auto",
+          "colorMode": "cell",
+          "colors": [
+            "rgba(50, 172, 45, 0.97)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(245, 54, 54, 0.9)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 2,
+          "mappingType": 1,
+          "pattern": "Value #I",
+          "thresholds": [
+            "10485760",
+            "20485760"
+          ],
+          "type": "number",
+          "unit": "Bps"
+        },
+        {
+          "alias": "下载带宽*",
+          "align": "auto",
+          "colorMode": "cell",
+          "colors": [
+            "rgba(50, 172, 45, 0.97)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(245, 54, 54, 0.9)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 2,
+          "mappingType": 1,
+          "pattern": "Value #J",
+          "thresholds": [
+            "30485760",
+            "104857600"
+          ],
+          "type": "number",
+          "unit": "bps"
+        },
+        {
+          "alias": "上传带宽*",
+          "align": "auto",
+          "colorMode": "cell",
+          "colors": [
+            "rgba(50, 172, 45, 0.97)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(245, 54, 54, 0.9)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 2,
+          "mappingType": 1,
+          "pattern": "Value #K",
+          "thresholds": [
+            "30485760",
+            "104857600"
+          ],
+          "type": "number",
+          "unit": "bps"
+        },
+        {
+          "alias": "5m负载",
+          "align": "auto",
+          "colorMode": null,
+          "colors": [
+            "rgba(245, 54, 54, 0.9)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(50, 172, 45, 0.97)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 2,
+          "mappingType": 1,
+          "pattern": "Value #L",
+          "thresholds": [],
+          "type": "number",
+          "unit": "short"
+        },
+        {
+          "alias": "连接数",
+          "align": "auto",
+          "colorMode": "cell",
+          "colors": [
+            "rgba(50, 172, 45, 0.97)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(245, 54, 54, 0.9)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 2,
+          "mappingType": 1,
+          "pattern": "Value #M",
+          "thresholds": [
+            "1000",
+            "1500"
+          ],
+          "type": "string",
+          "unit": "short"
+        },
+        {
+          "alias": "TCP_tw",
+          "align": "center",
+          "colorMode": "cell",
+          "colors": [
+            "rgba(50, 172, 45, 0.97)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(245, 54, 54, 0.9)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": null,
+          "mappingType": 1,
+          "pattern": "Value #N",
+          "thresholds": [
+            "5000",
+            "20000"
+          ],
+          "type": "number",
+          "unit": "short"
+        },
+        {
+          "alias": "",
+          "align": "right",
+          "colorMode": null,
+          "colors": [
+            "rgba(245, 54, 54, 0.9)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(50, 172, 45, 0.97)"
+          ],
+          "decimals": 2,
+          "pattern": "/.*/",
+          "thresholds": [],
+          "type": "hidden",
+          "unit": "short"
+        }
+      ],
+      "targets": [
+        {
+          "expr": "node_uname_info{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"} - 0",
+          "format": "table",
+          "instant": true,
+          "interval": "",
+          "legendFormat": "主机名",
+          "refId": "A"
+        },
+        {
+          "expr": "sum(time() - node_boot_time_seconds{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"})by(instance)",
+          "format": "table",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "运行时间",
+          "refId": "D"
+        },
+        {
+          "expr": "node_memory_MemTotal_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"} - 0",
+          "format": "table",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "总内存",
+          "refId": "B"
+        },
+        {
+          "expr": "count(node_cpu_seconds_total{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",mode='system'}) by (instance)",
+          "format": "table",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "总核数",
+          "refId": "C"
+        },
+        {
+          "expr": "node_load5{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"}",
+          "format": "table",
+          "instant": true,
+          "interval": "",
+          "legendFormat": "5分钟负载",
+          "refId": "L"
+        },
+        {
+          "expr": "(1 - avg(rate(node_cpu_seconds_total{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",mode=\"idle\"}[$interval])) by (instance)) * 100",
+          "format": "table",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "CPU使用率",
+          "refId": "F"
+        },
+        {
+          "expr": "(1 - (node_memory_MemAvailable_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"} / (node_memory_MemTotal_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"})))* 100",
+          "format": "table",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "内存使用率",
+          "refId": "G"
+        },
+        {
+          "expr": "max((node_filesystem_size_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",fstype=~\"ext.?|xfs\"}-node_filesystem_free_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",fstype=~\"ext.?|xfs\"}) *100/(node_filesystem_avail_bytes {origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",fstype=~\"ext.?|xfs\"}+(node_filesystem_size_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",fstype=~\"ext.?|xfs\"}-node_filesystem_free_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",fstype=~\"ext.?|xfs\"})))by(instance)",
+          "format": "table",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "分区使用率",
+          "refId": "E"
+        },
+        {
+          "expr": "max(rate(node_disk_read_bytes_total{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"}[$interval])) by (instance)",
+          "format": "table",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "最大读取",
+          "refId": "H"
+        },
+        {
+          "expr": "max(rate(node_disk_written_bytes_total{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"}[$interval])) by (instance)",
+          "format": "table",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "最大写入",
+          "refId": "I"
+        },
+        {
+          "expr": "node_netstat_Tcp_CurrEstab{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"} - 0",
+          "format": "table",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "连接数",
+          "refId": "M"
+        },
+        {
+          "expr": "node_sockstat_TCP_tw{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"} - 0",
+          "format": "table",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "TIME_WAIT",
+          "refId": "N"
+        },
+        {
+          "expr": "max(rate(node_network_receive_bytes_total{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"}[$interval])*8) by (instance)",
+          "format": "table",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "下载带宽",
+          "refId": "J"
+        },
+        {
+          "expr": "max(rate(node_network_transmit_bytes_total{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"}[$interval])*8) by (instance)",
+          "format": "table",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "上传带宽",
+          "refId": "K"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "服务器资源总览表【JOB:$job,主机总数:$total】",
+      "transform": "table",
+      "type": "table-old"
+    },
+    {
+      "aliasColors": {
+        "192.168.200.241:9100_Total": "dark-red",
+        "Idle - Waiting for something to happen": "#052B51",
+        "guest": "#9AC48A",
+        "idle": "#052B51",
+        "iowait": "#EAB839",
+        "irq": "#BF1B00",
+        "nice": "#C15C17",
+        "sdb_每秒I/O操作%": "#d683ce",
+        "softirq": "#E24D42",
+        "steal": "#FCE2DE",
+        "system": "#508642",
+        "user": "#5195CE",
+        "磁盘花费在I/O操作占比": "#ba43a9"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": null,
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 0,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 0,
+        "y": 8
+      },
+      "hiddenSeries": false,
+      "id": 191,
+      "legend": {
+        "alignAsTable": false,
+        "avg": false,
+        "current": true,
+        "hideEmpty": true,
+        "hideZero": true,
+        "max": false,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "sideWidth": null,
+        "sort": "current",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "maxPerRow": 6,
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "repeat": null,
+      "seriesOverrides": [
+        {
+          "alias": "总平均使用率",
+          "lines": false,
+          "pointradius": 1,
+          "points": true,
+          "yaxis": 2
+        },
+        {
+          "alias": "总核数",
+          "color": "#C4162A"
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "count(node_cpu_seconds_total{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\", mode='system'})",
+          "format": "time_series",
+          "hide": false,
+          "instant": false,
+          "interval": "30m",
+          "intervalFactor": 1,
+          "legendFormat": "总核数",
+          "refId": "B",
+          "step": 240
+        },
+        {
+          "expr": "sum(node_load5{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"})",
+          "format": "time_series",
+          "hide": false,
+          "interval": "30m",
+          "intervalFactor": 1,
+          "legendFormat": "总5分钟负载",
+          "refId": "A",
+          "step": 240
+        },
+        {
+          "expr": "avg(1 - avg(rate(node_cpu_seconds_total{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",mode=\"idle\"}[$interval])) by (instance)) * 100",
+          "format": "time_series",
+          "hide": false,
+          "interval": "30m",
+          "intervalFactor": 1,
+          "legendFormat": "总平均使用率",
+          "refId": "F",
+          "step": 240
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "$job:整体总负载与整体平均CPU使用率",
+      "tooltip": {
+        "shared": true,
+        "sort": 2,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "decimals": null,
+          "format": "short",
+          "label": "总负载",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "decimals": 0,
+          "format": "percent",
+          "label": "平均使用率",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {
+        "192.168.200.241:9100_总内存": "dark-red",
+        "内存_Avaliable": "#6ED0E0",
+        "内存_Cached": "#EF843C",
+        "内存_Free": "#629E51",
+        "内存_Total": "#6d1f62",
+        "内存_Used": "#eab839",
+        "可用": "#9ac48a",
+        "总内存": "#bf1b00"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 1,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 0,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 8,
+        "y": 8
+      },
+      "height": "300",
+      "hiddenSeries": false,
+      "id": 195,
+      "legend": {
+        "alignAsTable": false,
+        "avg": false,
+        "current": true,
+        "max": false,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "sort": "current",
+        "sortDesc": false,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "总内存",
+          "color": "#C4162A",
+          "fill": 0
+        },
+        {
+          "alias": "总平均使用率",
+          "lines": false,
+          "pointradius": 1,
+          "points": true,
+          "yaxis": 2
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(node_memory_MemTotal_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"})",
+          "format": "time_series",
+          "hide": false,
+          "instant": false,
+          "interval": "30m",
+          "intervalFactor": 1,
+          "legendFormat": "总内存",
+          "refId": "A",
+          "step": 4
+        },
+        {
+          "expr": "sum(node_memory_MemTotal_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"} - node_memory_MemAvailable_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"})",
+          "format": "time_series",
+          "hide": false,
+          "interval": "30m",
+          "intervalFactor": 1,
+          "legendFormat": "总已用",
+          "refId": "B",
+          "step": 4
+        },
+        {
+          "expr": "(sum(node_memory_MemTotal_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"} - node_memory_MemAvailable_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"}) / sum(node_memory_MemTotal_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"}))*100",
+          "format": "time_series",
+          "hide": false,
+          "interval": "30m",
+          "intervalFactor": 1,
+          "legendFormat": "总平均使用率",
+          "refId": "H"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "$job:整体总内存与整体平均内存使用率",
+      "tooltip": {
+        "shared": true,
+        "sort": 2,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "decimals": null,
+          "format": "bytes",
+          "label": "总内存量",
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "decimals": null,
+          "format": "percent",
+          "label": "平均使用率",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 1,
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 0,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 16,
+        "y": 8
+      },
+      "hiddenSeries": false,
+      "id": 197,
+      "legend": {
+        "alignAsTable": false,
+        "avg": false,
+        "current": true,
+        "hideEmpty": false,
+        "hideZero": false,
+        "max": false,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "sideWidth": null,
+        "sort": "current",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "总平均使用率",
+          "lines": false,
+          "pointradius": 1,
+          "points": true,
+          "yaxis": 2
+        },
+        {
+          "alias": "总磁盘量",
+          "color": "#C4162A"
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(avg(node_filesystem_size_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",fstype=~\"xfs|ext.*\"})by(device,instance))",
+          "format": "time_series",
+          "instant": false,
+          "interval": "30m",
+          "intervalFactor": 1,
+          "legendFormat": "总磁盘量",
+          "refId": "E"
+        },
+        {
+          "expr": "sum(avg(node_filesystem_size_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",fstype=~\"xfs|ext.*\"})by(device,instance)) - sum(avg(node_filesystem_free_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",fstype=~\"xfs|ext.*\"})by(device,instance))",
+          "format": "time_series",
+          "instant": false,
+          "interval": "30m",
+          "intervalFactor": 1,
+          "legendFormat": "总使用量",
+          "refId": "C"
+        },
+        {
+          "expr": "(sum(avg(node_filesystem_size_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",fstype=~\"xfs|ext.*\"})by(device,instance)) - sum(avg(node_filesystem_free_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",fstype=~\"xfs|ext.*\"})by(device,instance))) *100/(sum(avg(node_filesystem_avail_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",fstype=~\"xfs|ext.*\"})by(device,instance))+(sum(avg(node_filesystem_size_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",fstype=~\"xfs|ext.*\"})by(device,instance)) - sum(avg(node_filesystem_free_bytes{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",fstype=~\"xfs|ext.*\"})by(device,instance))))",
+          "format": "time_series",
+          "instant": false,
+          "interval": "30m",
+          "intervalFactor": 1,
+          "legendFormat": "总平均使用率",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "$job:整体总磁盘与整体平均磁盘使用率",
+      "tooltip": {
+        "shared": true,
+        "sort": 2,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "decimals": 1,
+          "format": "bytes",
+          "label": "总磁盘量",
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "decimals": null,
+          "format": "percent",
+          "label": "平均使用率",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": "Prometheus",
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 15
+      },
+      "id": 189,
+      "panels": [],
+      "title": "资源明细:【$show_hostname】",
+      "type": "row"
+    },
+    {
+      "cacheTimeout": null,
+      "datasource": "Prometheus",
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "decimals": 0,
+          "mappings": [
+            {
+              "id": 0,
+              "op": "=",
+              "text": "N/A",
+              "type": 1,
+              "value": "null"
+            }
+          ],
+          "nullValueMode": "null",
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "rgba(245, 54, 54, 0.9)",
+                "value": null
+              },
+              {
+                "color": "rgba(237, 129, 40, 0.89)",
+                "value": 1
+              },
+              {
+                "color": "rgba(50, 172, 45, 0.97)",
+                "value": 3
+              }
+            ]
+          },
+          "unit": "s"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 2,
+        "w": 2,
+        "x": 0,
+        "y": 16
+      },
+      "hideTimeOverride": true,
+      "id": 15,
+      "interval": null,
+      "links": [],
+      "maxDataPoints": 100,
+      "options": {
+        "colorMode": "value",
+        "graphMode": "none",
+        "justifyMode": "auto",
+        "orientation": "horizontal",
+        "reduceOptions": {
+          "calcs": [
+            "lastNotNull"
+          ],
+          "fields": "",
+          "values": false
+        },
+        "textMode": "auto"
+      },
+      "pluginVersion": "7.3.7",
+      "targets": [
+        {
+          "expr": "avg(time() - node_boot_time_seconds{instance=~\"$node\"})",
+          "format": "time_series",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A",
+          "step": 40
+        }
+      ],
+      "title": "运行时间",
+      "type": "stat"
+    },
+    {
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "color": {
+            "mode": "thresholds"
+          },
+          "custom": {},
+          "decimals": 1,
+          "mappings": [
+            {
+              "from": "",
+              "id": 1,
+              "operator": "",
+              "text": "N/A",
+              "to": "",
+              "type": 1,
+              "value": "0"
+            }
+          ],
+          "max": 100,
+          "min": 0.1,
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "green",
+                "value": null
+              },
+              {
+                "color": "#EAB839",
+                "value": 70
+              },
+              {
+                "color": "red",
+                "value": 90
+              }
+            ]
+          },
+          "unit": "percent"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 6,
+        "w": 3,
+        "x": 2,
+        "y": 16
+      },
+      "id": 177,
+      "options": {
+        "displayMode": "lcd",
+        "orientation": "horizontal",
+        "reduceOptions": {
+          "calcs": [
+            "last"
+          ],
+          "fields": "",
+          "values": false
+        },
+        "showUnfilled": true
+      },
+      "pluginVersion": "7.3.7",
+      "targets": [
+        {
+          "expr": "100 - (avg(rate(node_cpu_seconds_total{instance=~\"$node\",mode=\"idle\"}[$interval])) * 100)",
+          "instant": true,
+          "interval": "",
+          "legendFormat": "总CPU使用率",
+          "refId": "A"
+        },
+        {
+          "expr": "avg(rate(node_cpu_seconds_total{instance=~\"$node\",mode=\"iowait\"}[$interval])) * 100",
+          "hide": true,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "IOwait使用率",
+          "refId": "C"
+        },
+        {
+          "expr": "(1 - (node_memory_MemAvailable_bytes{instance=~\"$node\"} / (node_memory_MemTotal_bytes{instance=~\"$node\"})))* 100",
+          "instant": true,
+          "interval": "",
+          "legendFormat": "内存使用率",
+          "refId": "B"
+        },
+        {
+          "expr": "(node_filesystem_size_bytes{instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint=\"$maxmount\"}-node_filesystem_free_bytes{instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint=\"$maxmount\"})*100 /(node_filesystem_avail_bytes {instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint=\"$maxmount\"}+(node_filesystem_size_bytes{instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint=\"$maxmount\"}-node_filesystem_free_bytes{instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint=\"$maxmount\"}))",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "legendFormat": "最大分区({{mountpoint}})使用率",
+          "refId": "D"
+        },
+        {
+          "expr": "(1 - ((node_memory_SwapFree_bytes{instance=~\"$node\"} + 1)/ (node_memory_SwapTotal_bytes{instance=~\"$node\"} + 1))) * 100",
+          "instant": true,
+          "legendFormat": "交换分区使用率",
+          "refId": "F"
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "",
+      "transformations": [],
+      "type": "bargauge"
+    },
+    {
+      "columns": [],
+      "datasource": "Prometheus",
+      "description": "本看板中的:磁盘总量、使用量、可用量、使用率保持和df命令的Size、Used、Avail、Use% 列的值一致,并且Use%的值会四舍五入保留一位小数,会更加准确。\n\n注:df中Use%算法为:(size - free) * 100 / (avail + (size - free)),结果是整除则为该值,非整除则为该值+1,结果的单位是%。\n参考df命令源码:",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fontSize": "80%",
+      "gridPos": {
+        "h": 6,
+        "w": 10,
+        "x": 5,
+        "y": 16
+      },
+      "id": 181,
+      "links": [
+        {
+          "targetBlank": true,
+          "title": "https://github.com/coreutils/coreutils/blob/master/src/df.c",
+          "url": "https://github.com/coreutils/coreutils/blob/master/src/df.c"
+        }
+      ],
+      "pageSize": null,
+      "scroll": true,
+      "showHeader": true,
+      "sort": {
+        "col": 6,
+        "desc": false
+      },
+      "styles": [
+        {
+          "alias": "分区",
+          "align": "auto",
+          "colorMode": null,
+          "colors": [
+            "rgba(50, 172, 45, 0.97)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(245, 54, 54, 0.9)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 2,
+          "mappingType": 1,
+          "pattern": "mountpoint",
+          "thresholds": [
+            ""
+          ],
+          "type": "string",
+          "unit": "bytes"
+        },
+        {
+          "alias": "可用空间",
+          "align": "auto",
+          "colorMode": "value",
+          "colors": [
+            "rgba(245, 54, 54, 0.9)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(50, 172, 45, 0.97)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 1,
+          "mappingType": 1,
+          "pattern": "Value #A",
+          "thresholds": [
+            "10000000000",
+            "20000000000"
+          ],
+          "type": "number",
+          "unit": "bytes"
+        },
+        {
+          "alias": "使用率",
+          "align": "auto",
+          "colorMode": "cell",
+          "colors": [
+            "rgba(50, 172, 45, 0.97)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(245, 54, 54, 0.9)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 1,
+          "mappingType": 1,
+          "pattern": "Value #B",
+          "thresholds": [
+            "70",
+            "85"
+          ],
+          "type": "number",
+          "unit": "percent"
+        },
+        {
+          "alias": "总空间",
+          "align": "auto",
+          "colorMode": null,
+          "colors": [
+            "rgba(245, 54, 54, 0.9)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(50, 172, 45, 0.97)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 0,
+          "link": false,
+          "mappingType": 1,
+          "pattern": "Value #C",
+          "thresholds": [],
+          "type": "number",
+          "unit": "bytes"
+        },
+        {
+          "alias": "文件系统",
+          "align": "auto",
+          "colorMode": null,
+          "colors": [
+            "rgba(245, 54, 54, 0.9)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(50, 172, 45, 0.97)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 2,
+          "link": false,
+          "mappingType": 1,
+          "pattern": "fstype",
+          "thresholds": [],
+          "type": "string",
+          "unit": "short"
+        },
+        {
+          "alias": "设备名",
+          "align": "auto",
+          "colorMode": null,
+          "colors": [
+            "rgba(245, 54, 54, 0.9)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(50, 172, 45, 0.97)"
+          ],
+          "dateFormat": "YYYY-MM-DD HH:mm:ss",
+          "decimals": 2,
+          "link": false,
+          "mappingType": 1,
+          "pattern": "device",
+          "preserveFormat": false,
+          "sanitize": false,
+          "thresholds": [],
+          "type": "string",
+          "unit": "short"
+        },
+        {
+          "alias": "",
+          "align": "auto",
+          "colorMode": null,
+          "colors": [
+            "rgba(245, 54, 54, 0.9)",
+            "rgba(237, 129, 40, 0.89)",
+            "rgba(50, 172, 45, 0.97)"
+          ],
+          "decimals": 2,
+          "pattern": "/.*/",
+          "preserveFormat": true,
+          "sanitize": false,
+          "thresholds": [],
+          "type": "hidden",
+          "unit": "short"
+        }
+      ],
+      "targets": [
+        {
+          "expr": "node_filesystem_size_bytes{instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint !~\".*pod.*\"}-0",
+          "format": "table",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "总量",
+          "refId": "C"
+        },
+        {
+          "expr": "node_filesystem_avail_bytes {instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint !~\".*pod.*\"}-0",
+          "format": "table",
+          "hide": false,
+          "instant": true,
+          "interval": "10s",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A"
+        },
+        {
+          "expr": "(node_filesystem_size_bytes{instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint !~\".*pod.*\"}-node_filesystem_free_bytes{instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint !~\".*pod.*\"}) *100/(node_filesystem_avail_bytes {instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint !~\".*pod.*\"}+(node_filesystem_size_bytes{instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint !~\".*pod.*\"}-node_filesystem_free_bytes{instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint !~\".*pod.*\"}))",
+          "format": "table",
+          "hide": false,
+          "instant": true,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "B"
+        }
+      ],
+      "title": "【$show_hostname】:各分区可用空间(EXT.*/XFS)",
+      "transform": "table",
+      "type": "table-old"
+    },
+    {
+      "cacheTimeout": null,
+      "datasource": "Prometheus",
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "decimals": 2,
+          "mappings": [
+            {
+              "id": 0,
+              "op": "=",
+              "text": "N/A",
+              "type": 1,
+              "value": "null"
+            }
+          ],
+          "nullValueMode": "connected",
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "rgba(50, 172, 45, 0.97)",
+                "value": null
+              },
+              {
+                "color": "rgba(237, 129, 40, 0.89)",
+                "value": 20
+              },
+              {
+                "color": "#d44a3a",
+                "value": 50
+              }
+            ]
+          },
+          "unit": "percent"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 2,
+        "w": 2,
+        "x": 15,
+        "y": 16
+      },
+      "id": 20,
+      "interval": null,
+      "links": [],
+      "maxDataPoints": 100,
+      "options": {
+        "colorMode": "value",
+        "graphMode": "area",
+        "justifyMode": "auto",
+        "orientation": "horizontal",
+        "reduceOptions": {
+          "calcs": [
+            "last"
+          ],
+          "fields": "",
+          "values": false
+        },
+        "textMode": "auto"
+      },
+      "pluginVersion": "7.3.7",
+      "targets": [
+        {
+          "expr": "avg(rate(node_cpu_seconds_total{instance=~\"$node\",mode=\"iowait\"}[$interval])) * 100",
+          "format": "time_series",
+          "hide": false,
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A",
+          "step": 20
+        }
+      ],
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "CPU iowait",
+      "type": "stat"
+    },
+    {
+      "aliasColors": {
+        "cn-shenzhen.i-wz9cq1dcb6zwc39ehw59_cni0_in": "light-red",
+        "cn-shenzhen.i-wz9cq1dcb6zwc39ehw59_cni0_in下载": "green",
+        "cn-shenzhen.i-wz9cq1dcb6zwc39ehw59_cni0_out上传": "yellow",
+        "cn-shenzhen.i-wz9cq1dcb6zwc39ehw59_eth0_in下载": "purple",
+        "cn-shenzhen.i-wz9cq1dcb6zwc39ehw59_eth0_out": "purple",
+        "cn-shenzhen.i-wz9cq1dcb6zwc39ehw59_eth0_out上传": "blue"
+      },
+      "bars": true,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 6,
+        "w": 7,
+        "x": 17,
+        "y": 16
+      },
+      "hiddenSeries": false,
+      "id": 183,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": true,
+        "hideEmpty": true,
+        "hideZero": true,
+        "max": true,
+        "min": false,
+        "show": false,
+        "sort": "current",
+        "sortDesc": true,
+        "total": true,
+        "values": true
+      },
+      "lines": false,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null as zero",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 1,
+      "points": false,
+      "renderer": "flot",
+      "repeat": null,
+      "seriesOverrides": [
+        {
+          "alias": "/.*_out上传$/",
+          "transform": "negative-Y"
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "increase(node_network_receive_bytes_total{instance=~\"$node\",device=~\"$device\"}[60m])",
+          "interval": "60m",
+          "intervalFactor": 1,
+          "legendFormat": "{{device}}_in下载",
+          "metric": "",
+          "refId": "A",
+          "step": 600,
+          "target": ""
+        },
+        {
+          "expr": "increase(node_network_transmit_bytes_total{instance=~\"$node\",device=~\"$device\"}[60m])",
+          "hide": false,
+          "interval": "60m",
+          "intervalFactor": 1,
+          "legendFormat": "{{device}}_out上传",
+          "refId": "B",
+          "step": 600
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "每小时流量$device",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": "上传(-)/下载(+)",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": false
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "cacheTimeout": null,
+      "datasource": "Prometheus",
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "mappings": [
+            {
+              "id": 0,
+              "op": "=",
+              "text": "N/A",
+              "type": 1,
+              "value": "null"
+            }
+          ],
+          "nullValueMode": "null",
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "rgba(245, 54, 54, 0.9)",
+                "value": null
+              },
+              {
+                "color": "rgba(237, 129, 40, 0.89)",
+                "value": 1
+              },
+              {
+                "color": "rgba(50, 172, 45, 0.97)",
+                "value": 2
+              }
+            ]
+          },
+          "unit": "short"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 2,
+        "w": 2,
+        "x": 0,
+        "y": 18
+      },
+      "id": 14,
+      "interval": null,
+      "links": [],
+      "maxDataPoints": 100,
+      "options": {
+        "colorMode": "value",
+        "graphMode": "none",
+        "justifyMode": "auto",
+        "orientation": "horizontal",
+        "reduceOptions": {
+          "calcs": [
+            "lastNotNull"
+          ],
+          "fields": "",
+          "values": false
+        },
+        "textMode": "value"
+      },
+      "pluginVersion": "7.3.7",
+      "targets": [
+        {
+          "expr": "count(node_cpu_seconds_total{instance=~\"$node\", mode='system'})",
+          "format": "time_series",
+          "instant": true,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A",
+          "step": 20
+        }
+      ],
+      "title": "CPU 核数",
+      "type": "stat"
+    },
+    {
+      "cacheTimeout": null,
+      "datasource": "Prometheus",
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "mappings": [
+            {
+              "id": 0,
+              "op": "=",
+              "text": "N/A",
+              "type": 1,
+              "value": "null"
+            }
+          ],
+          "nullValueMode": "null",
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "rgba(245, 54, 54, 0.9)",
+                "value": null
+              },
+              {
+                "color": "rgba(237, 129, 40, 0.89)",
+                "value": 100000
+              },
+              {
+                "color": "rgba(50, 172, 45, 0.97)",
+                "value": 1000000
+              }
+            ]
+          },
+          "unit": "short"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 2,
+        "w": 2,
+        "x": 15,
+        "y": 18
+      },
+      "id": 179,
+      "interval": null,
+      "links": [],
+      "maxDataPoints": 100,
+      "options": {
+        "colorMode": "value",
+        "graphMode": "none",
+        "justifyMode": "auto",
+        "orientation": "horizontal",
+        "reduceOptions": {
+          "calcs": [
+            "lastNotNull"
+          ],
+          "fields": "",
+          "values": false
+        },
+        "textMode": "auto"
+      },
+      "pluginVersion": "7.3.7",
+      "targets": [
+        {
+          "expr": "avg(node_filesystem_files_free{instance=~\"$node\",mountpoint=\"$maxmount\",fstype=~\"ext.?|xfs\"})",
+          "format": "time_series",
+          "instant": true,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A",
+          "step": 20
+        }
+      ],
+      "title": "剩余节点数:$maxmount ",
+      "type": "stat"
+    },
+    {
+      "cacheTimeout": null,
+      "datasource": "Prometheus",
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "decimals": 0,
+          "mappings": [
+            {
+              "id": 0,
+              "op": "=",
+              "text": "N/A",
+              "type": 1,
+              "value": "null"
+            }
+          ],
+          "nullValueMode": "null",
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "rgba(245, 54, 54, 0.9)",
+                "value": null
+              },
+              {
+                "color": "rgba(237, 129, 40, 0.89)",
+                "value": 2
+              },
+              {
+                "color": "rgba(50, 172, 45, 0.97)",
+                "value": 3
+              }
+            ]
+          },
+          "unit": "bytes"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 2,
+        "w": 2,
+        "x": 0,
+        "y": 20
+      },
+      "id": 75,
+      "interval": null,
+      "links": [],
+      "maxDataPoints": 100,
+      "options": {
+        "colorMode": "value",
+        "graphMode": "none",
+        "justifyMode": "auto",
+        "orientation": "horizontal",
+        "reduceOptions": {
+          "calcs": [
+            "lastNotNull"
+          ],
+          "fields": "",
+          "values": false
+        },
+        "textMode": "auto"
+      },
+      "pluginVersion": "7.3.7",
+      "targets": [
+        {
+          "expr": "sum(node_memory_MemTotal_bytes{instance=~\"$node\"})",
+          "format": "time_series",
+          "instant": true,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "{{instance}}",
+          "refId": "A",
+          "step": 20
+        }
+      ],
+      "title": "总内存",
+      "type": "stat"
+    },
+    {
+      "cacheTimeout": null,
+      "datasource": "Prometheus",
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "mappings": [
+            {
+              "id": 0,
+              "op": "=",
+              "text": "N/A",
+              "type": 1,
+              "value": "null"
+            }
+          ],
+          "nullValueMode": "null",
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "rgba(245, 54, 54, 0.9)",
+                "value": null
+              },
+              {
+                "color": "rgba(237, 129, 40, 0.89)",
+                "value": 1024
+              },
+              {
+                "color": "rgba(50, 172, 45, 0.97)",
+                "value": 10000
+              }
+            ]
+          },
+          "unit": "locale"
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 2,
+        "w": 2,
+        "x": 15,
+        "y": 20
+      },
+      "id": 178,
+      "interval": null,
+      "links": [],
+      "maxDataPoints": 100,
+      "options": {
+        "colorMode": "value",
+        "graphMode": "none",
+        "justifyMode": "auto",
+        "orientation": "horizontal",
+        "reduceOptions": {
+          "calcs": [
+            "lastNotNull"
+          ],
+          "fields": "",
+          "values": false
+        },
+        "textMode": "auto"
+      },
+      "pluginVersion": "7.3.7",
+      "targets": [
+        {
+          "expr": "avg(node_filefd_maximum{instance=~\"$node\"})",
+          "format": "time_series",
+          "instant": true,
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A",
+          "step": 20
+        }
+      ],
+      "title": "总文件描述符",
+      "type": "stat"
+    },
+    {
+      "aliasColors": {
+        "192.168.200.241:9100_Total": "dark-red",
+        "Idle - Waiting for something to happen": "#052B51",
+        "guest": "#9AC48A",
+        "idle": "#052B51",
+        "iowait": "#EAB839",
+        "irq": "#BF1B00",
+        "nice": "#C15C17",
+        "sdb_每秒I/O操作%": "#d683ce",
+        "softirq": "#E24D42",
+        "steal": "#FCE2DE",
+        "system": "#508642",
+        "user": "#5195CE",
+        "磁盘花费在I/O操作占比": "#ba43a9"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 8,
+        "w": 8,
+        "x": 0,
+        "y": 22
+      },
+      "hiddenSeries": false,
+      "id": 7,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": true,
+        "hideEmpty": true,
+        "hideZero": true,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sideWidth": null,
+        "sort": "current",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "maxPerRow": 6,
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "repeat": null,
+      "seriesOverrides": [
+        {
+          "alias": "/.*总使用率/",
+          "color": "#C4162A",
+          "fill": 0
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "avg(rate(node_cpu_seconds_total{instance=~\"$node\",mode=\"system\"}[$interval])) by (instance) *100",
+          "format": "time_series",
+          "hide": false,
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "系统使用率",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "expr": "avg(rate(node_cpu_seconds_total{instance=~\"$node\",mode=\"user\"}[$interval])) by (instance) *100",
+          "format": "time_series",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "用户使用率",
+          "refId": "B",
+          "step": 240
+        },
+        {
+          "expr": "avg(rate(node_cpu_seconds_total{instance=~\"$node\",mode=\"iowait\"}[$interval])) by (instance) *100",
+          "format": "time_series",
+          "hide": false,
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "磁盘IO使用率",
+          "refId": "D",
+          "step": 240
+        },
+        {
+          "expr": "(1 - avg(rate(node_cpu_seconds_total{instance=~\"$node\",mode=\"idle\"}[$interval])) by (instance))*100",
+          "format": "time_series",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "总使用率",
+          "refId": "F",
+          "step": 240
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "CPU使用率",
+      "tooltip": {
+        "shared": true,
+        "sort": 2,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "decimals": 0,
+          "format": "percent",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": false
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {
+        "192.168.200.241:9100_总内存": "dark-red",
+        "使用率": "yellow",
+        "内存_Avaliable": "#6ED0E0",
+        "内存_Cached": "#EF843C",
+        "内存_Free": "#629E51",
+        "内存_Total": "#6d1f62",
+        "内存_Used": "#eab839",
+        "可用": "#9ac48a",
+        "总内存": "#bf1b00"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 8,
+        "w": 8,
+        "x": 8,
+        "y": 22
+      },
+      "height": "300",
+      "hiddenSeries": false,
+      "id": 156,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": true,
+        "hideEmpty": true,
+        "hideZero": true,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sort": "current",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "总内存",
+          "color": "#C4162A",
+          "fill": 0
+        },
+        {
+          "alias": "使用率",
+          "color": "rgb(0, 209, 255)",
+          "lines": false,
+          "pointradius": 1,
+          "points": true,
+          "yaxis": 2
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "node_memory_MemTotal_bytes{instance=~\"$node\"}",
+          "format": "time_series",
+          "hide": false,
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "总内存",
+          "refId": "A",
+          "step": 4
+        },
+        {
+          "expr": "node_memory_MemTotal_bytes{instance=~\"$node\"} - node_memory_MemAvailable_bytes{instance=~\"$node\"}",
+          "format": "time_series",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "已用",
+          "refId": "B",
+          "step": 4
+        },
+        {
+          "expr": "node_memory_MemAvailable_bytes{instance=~\"$node\"}",
+          "format": "time_series",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "可用",
+          "refId": "F",
+          "step": 4
+        },
+        {
+          "expr": "node_memory_Buffers_bytes{instance=~\"$node\"}",
+          "format": "time_series",
+          "hide": true,
+          "intervalFactor": 1,
+          "legendFormat": "内存_Buffers",
+          "refId": "D",
+          "step": 4
+        },
+        {
+          "expr": "node_memory_MemFree_bytes{instance=~\"$node\"}",
+          "format": "time_series",
+          "hide": true,
+          "intervalFactor": 1,
+          "legendFormat": "内存_Free",
+          "refId": "C",
+          "step": 4
+        },
+        {
+          "expr": "node_memory_Cached_bytes{instance=~\"$node\"}",
+          "format": "time_series",
+          "hide": true,
+          "intervalFactor": 1,
+          "legendFormat": "内存_Cached",
+          "refId": "E",
+          "step": 4
+        },
+        {
+          "expr": "node_memory_MemTotal_bytes{instance=~\"$node\"} - (node_memory_Cached_bytes{instance=~\"$node\"} + node_memory_Buffers_bytes{instance=~\"$node\"} + node_memory_MemFree_bytes{instance=~\"$node\"})",
+          "format": "time_series",
+          "hide": true,
+          "intervalFactor": 1,
+          "refId": "G"
+        },
+        {
+          "expr": "(1 - (node_memory_MemAvailable_bytes{instance=~\"$node\"} / (node_memory_MemTotal_bytes{instance=~\"$node\"})))* 100",
+          "format": "time_series",
+          "hide": false,
+          "interval": "30m",
+          "intervalFactor": 10,
+          "legendFormat": "使用率",
+          "refId": "H"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "内存信息",
+      "tooltip": {
+        "shared": true,
+        "sort": 2,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": "0",
+          "show": true
+        },
+        {
+          "format": "percent",
+          "label": "内存使用率",
+          "logBase": 1,
+          "max": "100",
+          "min": "0",
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {
+        "192.168.10.227:9100_em1_in下载": "super-light-green",
+        "192.168.10.227:9100_em1_out上传": "dark-blue"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 8,
+        "w": 8,
+        "x": 16,
+        "y": 22
+      },
+      "height": "300",
+      "hiddenSeries": false,
+      "id": 157,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": true,
+        "hideEmpty": true,
+        "hideZero": true,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sort": "current",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 2,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "/.*_out上传$/",
+          "transform": "negative-Y"
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "rate(node_network_receive_bytes_total{instance=~'$node',device=~\"$device\"}[$interval])*8",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "{{device}}_in下载",
+          "refId": "A",
+          "step": 4
+        },
+        {
+          "expr": "rate(node_network_transmit_bytes_total{instance=~'$node',device=~\"$device\"}[$interval])*8",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "{{device}}_out上传",
+          "refId": "B",
+          "step": 4
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "每秒网络带宽使用$device",
+      "tooltip": {
+        "shared": true,
+        "sort": 2,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "bps",
+          "label": "上传(-)/下载(+)",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": false
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {
+        "15分钟": "#6ED0E0",
+        "1分钟": "#BF1B00",
+        "5分钟": "#CCA300"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 1,
+      "grid": {},
+      "gridPos": {
+        "h": 8,
+        "w": 8,
+        "x": 0,
+        "y": 30
+      },
+      "height": "300",
+      "hiddenSeries": false,
+      "id": 13,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": true,
+        "hideEmpty": true,
+        "hideZero": true,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sort": "current",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "maxPerRow": 6,
+      "nullPointMode": "null as zero",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "repeat": null,
+      "seriesOverrides": [
+        {
+          "alias": "/.*总核数/",
+          "color": "#C4162A"
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "node_load1{instance=~\"$node\"}",
+          "format": "time_series",
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "1分钟负载",
+          "metric": "",
+          "refId": "A",
+          "step": 20,
+          "target": ""
+        },
+        {
+          "expr": "node_load5{instance=~\"$node\"}",
+          "format": "time_series",
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "5分钟负载",
+          "refId": "B",
+          "step": 20
+        },
+        {
+          "expr": "node_load15{instance=~\"$node\"}",
+          "format": "time_series",
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "15分钟负载",
+          "refId": "C",
+          "step": 20
+        },
+        {
+          "expr": " sum(count(node_cpu_seconds_total{instance=~\"$node\", mode='system'}) by (cpu,instance)) by(instance)",
+          "format": "time_series",
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "CPU总核数",
+          "refId": "D",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "系统平均负载",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 2,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {
+        "vda_write": "#6ED0E0"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "Read bytes 每个磁盘分区每秒读取的比特数\nWritten bytes 每个磁盘分区每秒写入的比特数",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 1,
+      "gridPos": {
+        "h": 8,
+        "w": 8,
+        "x": 8,
+        "y": 30
+      },
+      "height": "300",
+      "hiddenSeries": false,
+      "id": 168,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": true,
+        "hideEmpty": true,
+        "hideZero": true,
+        "max": true,
+        "min": true,
+        "show": true,
+        "sort": "current",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "/.*_读取$/",
+          "transform": "negative-Y"
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "rate(node_disk_read_bytes_total{instance=~\"$node\"}[$interval])",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "{{device}}_读取",
+          "refId": "A",
+          "step": 10
+        },
+        {
+          "expr": "rate(node_disk_written_bytes_total{instance=~\"$node\"}[$interval])",
+          "format": "time_series",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "{{device}}_写入",
+          "refId": "B",
+          "step": 10
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "每秒磁盘读写容量",
+      "tooltip": {
+        "shared": true,
+        "sort": 2,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "decimals": null,
+          "format": "Bps",
+          "label": "读取(-)/写入(+)",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": false
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 1,
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 0,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 8,
+        "w": 8,
+        "x": 16,
+        "y": 30
+      },
+      "hiddenSeries": false,
+      "id": 174,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": true,
+        "hideEmpty": true,
+        "hideZero": true,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sideWidth": null,
+        "sort": "current",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "/Inodes.*/",
+          "yaxis": 2
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "(node_filesystem_size_bytes{instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint !~\".*pod.*\"}-node_filesystem_free_bytes{instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint !~\".*pod.*\"}) *100/(node_filesystem_avail_bytes {instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint !~\".*pod.*\"}+(node_filesystem_size_bytes{instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint !~\".*pod.*\"}-node_filesystem_free_bytes{instance=~'$node',fstype=~\"ext.*|xfs\",mountpoint !~\".*pod.*\"}))",
+          "format": "time_series",
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "{{mountpoint}}",
+          "refId": "A"
+        },
+        {
+          "expr": "node_filesystem_files_free{instance=~'$node',fstype=~\"ext.?|xfs\"} / node_filesystem_files{instance=~'$node',fstype=~\"ext.?|xfs\"}",
+          "hide": true,
+          "interval": "",
+          "legendFormat": "Inodes:{{instance}}:{{mountpoint}}",
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "磁盘使用率",
+      "tooltip": {
+        "shared": true,
+        "sort": 2,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "decimals": null,
+          "format": "percent",
+          "label": "",
+          "logBase": 1,
+          "max": "100",
+          "min": "0",
+          "show": true
+        },
+        {
+          "decimals": 2,
+          "format": "percentunit",
+          "label": null,
+          "logBase": 1,
+          "max": "1",
+          "min": null,
+          "show": false
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {
+        "vda_write": "#6ED0E0"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "Reads completed: 每个磁盘分区每秒读完成次数\n\nWrites completed: 每个磁盘分区每秒写完成次数\n\nIO now 每个磁盘分区每秒正在处理的输入/输出请求数",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 0,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 9,
+        "w": 8,
+        "x": 0,
+        "y": 38
+      },
+      "height": "300",
+      "hiddenSeries": false,
+      "id": 161,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": true,
+        "hideEmpty": true,
+        "hideZero": true,
+        "max": true,
+        "min": true,
+        "show": true,
+        "sort": "current",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "/.*_读取$/",
+          "transform": "negative-Y"
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "rate(node_disk_reads_completed_total{instance=~\"$node\"}[$interval])",
+          "format": "time_series",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "{{device}}_读取",
+          "refId": "A",
+          "step": 10
+        },
+        {
+          "expr": "rate(node_disk_writes_completed_total{instance=~\"$node\"}[$interval])",
+          "format": "time_series",
+          "hide": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "{{device}}_写入",
+          "refId": "B",
+          "step": 10
+        },
+        {
+          "expr": "node_disk_io_now{instance=~\"$node\"}",
+          "format": "time_series",
+          "hide": true,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "{{device}}",
+          "refId": "C"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "磁盘读写速率(IOPS)",
+      "tooltip": {
+        "shared": true,
+        "sort": 2,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "decimals": null,
+          "format": "iops",
+          "label": "读取(-)/写入(+)I/O ops/sec",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {
+        "Idle - Waiting for something to happen": "#052B51",
+        "guest": "#9AC48A",
+        "idle": "#052B51",
+        "iowait": "#EAB839",
+        "irq": "#BF1B00",
+        "nice": "#C15C17",
+        "sdb_每秒I/O操作%": "#d683ce",
+        "softirq": "#E24D42",
+        "steal": "#FCE2DE",
+        "system": "#508642",
+        "user": "#5195CE",
+        "磁盘花费在I/O操作占比": "#ba43a9"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": null,
+      "description": "每一秒钟的自然时间内,花费在I/O上的耗时。(wall-clock time)\n\nnode_disk_io_time_seconds_total:\n磁盘花费在输入/输出操作上的秒数。该值为累加值。(Milliseconds Spent Doing I/Os)\n\nrate(node_disk_io_time_seconds_total[1m]):\n计算每秒的速率:(last值-last前一个值)/时间戳差值,即:1秒钟内磁盘花费在I/O操作的时间占比。",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 9,
+        "w": 8,
+        "x": 8,
+        "y": 38
+      },
+      "hiddenSeries": false,
+      "id": 175,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": true,
+        "hideEmpty": true,
+        "hideZero": true,
+        "max": true,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "sideWidth": null,
+        "sort": null,
+        "sortDesc": null,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "maxPerRow": 6,
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "rate(node_disk_io_time_seconds_total{instance=~\"$node\"}[$interval])",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "{{device}}_每秒I/O操作%",
+          "refId": "C"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "每1秒内I/O操作耗时占比",
+      "tooltip": {
+        "shared": true,
+        "sort": 2,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "decimals": null,
+          "format": "percentunit",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": false
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {
+        "vda": "#6ED0E0"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "Read time seconds 每个磁盘分区读操作花费的秒数\n\nWrite time seconds 每个磁盘分区写操作花费的秒数\n\nIO time seconds 每个磁盘分区输入/输出操作花费的秒数\n\nIO time weighted seconds每个磁盘分区输入/输出操作花费的加权秒数",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 1,
+      "gridPos": {
+        "h": 9,
+        "w": 8,
+        "x": 16,
+        "y": 38
+      },
+      "height": "300",
+      "hiddenSeries": false,
+      "id": 160,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": true,
+        "hideEmpty": true,
+        "hideZero": true,
+        "max": true,
+        "min": true,
+        "show": true,
+        "sort": "current",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null as zero",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "/,*_读取$/",
+          "transform": "negative-Y"
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "rate(node_disk_read_time_seconds_total{instance=~\"$node\"}[$interval]) / rate(node_disk_reads_completed_total{instance=~\"$node\"}[$interval])",
+          "format": "time_series",
+          "hide": false,
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "{{device}}_读取",
+          "refId": "B"
+        },
+        {
+          "expr": "rate(node_disk_write_time_seconds_total{instance=~\"$node\"}[$interval]) / rate(node_disk_writes_completed_total{instance=~\"$node\"}[$interval])",
+          "format": "time_series",
+          "hide": false,
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "{{device}}_写入",
+          "refId": "C"
+        },
+        {
+          "expr": "rate(node_disk_io_time_seconds_total{instance=~\"$node\"}[$interval])",
+          "format": "time_series",
+          "hide": true,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "{{device}}",
+          "refId": "A",
+          "step": 10
+        },
+        {
+          "expr": "rate(node_disk_io_time_weighted_seconds_total{instance=~\"$node\"}[$interval])",
+          "format": "time_series",
+          "hide": true,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "{{device}}_加权",
+          "refId": "D"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "每次IO读写的耗时(参考:小于100ms)(beta)",
+      "tooltip": {
+        "shared": true,
+        "sort": 2,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "s",
+          "label": "读取(-)/写入(+)",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": false
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {
+        "192.168.200.241:9100_TCP_alloc": "semi-dark-blue",
+        "TCP": "#6ED0E0",
+        "TCP_alloc": "blue"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "Sockets_used - 已使用的所有协议套接字总量\n\nCurrEstab - 当前状态为 ESTABLISHED 或 CLOSE-WAIT 的 TCP 连接数\n\nTCP_alloc - 已分配(已建立、已申请到sk_buff)的TCP套接字数量\n\nTCP_tw - 等待关闭的TCP连接数\n\nUDP_inuse - 正在使用的 UDP 套接字数量\n\nRetransSegs - TCP 重传报文数\n\nOutSegs - TCP 发送的报文数\n\nInSegs - TCP 接收的报文数",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 0,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 8,
+        "w": 16,
+        "x": 0,
+        "y": 47
+      },
+      "height": "300",
+      "hiddenSeries": false,
+      "id": 158,
+      "interval": "",
+      "legend": {
+        "alignAsTable": true,
+        "avg": false,
+        "current": true,
+        "hideEmpty": true,
+        "hideZero": true,
+        "max": true,
+        "min": false,
+        "rightSide": true,
+        "show": true,
+        "sideWidth": null,
+        "sort": "current",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "/.*Sockets_used/",
+          "color": "#E02F44",
+          "lines": false,
+          "pointradius": 1,
+          "points": true,
+          "yaxis": 2
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "node_netstat_Tcp_CurrEstab{instance=~'$node'}",
+          "format": "time_series",
+          "hide": false,
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "CurrEstab",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "expr": "node_sockstat_TCP_tw{instance=~'$node'}",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "TCP_tw",
+          "refId": "D"
+        },
+        {
+          "expr": "node_sockstat_sockets_used{instance=~'$node'}",
+          "hide": false,
+          "interval": "30m",
+          "intervalFactor": 1,
+          "legendFormat": "Sockets_used",
+          "refId": "B"
+        },
+        {
+          "expr": "node_sockstat_UDP_inuse{instance=~'$node'}",
+          "interval": "",
+          "legendFormat": "UDP_inuse",
+          "refId": "C"
+        },
+        {
+          "expr": "node_sockstat_TCP_alloc{instance=~'$node'}",
+          "interval": "",
+          "legendFormat": "TCP_alloc",
+          "refId": "E"
+        },
+        {
+          "expr": "rate(node_netstat_Tcp_PassiveOpens{instance=~'$node'}[$interval])",
+          "hide": true,
+          "interval": "",
+          "legendFormat": "{{instance}}_Tcp_PassiveOpens",
+          "refId": "G"
+        },
+        {
+          "expr": "rate(node_netstat_Tcp_ActiveOpens{instance=~'$node'}[$interval])",
+          "hide": true,
+          "interval": "",
+          "legendFormat": "{{instance}}_Tcp_ActiveOpens",
+          "refId": "F"
+        },
+        {
+          "expr": "rate(node_netstat_Tcp_InSegs{instance=~'$node'}[$interval])",
+          "interval": "",
+          "legendFormat": "Tcp_InSegs",
+          "refId": "H"
+        },
+        {
+          "expr": "rate(node_netstat_Tcp_OutSegs{instance=~'$node'}[$interval])",
+          "interval": "",
+          "legendFormat": "Tcp_OutSegs",
+          "refId": "I"
+        },
+        {
+          "expr": "rate(node_netstat_Tcp_RetransSegs{instance=~'$node'}[$interval])",
+          "hide": false,
+          "interval": "",
+          "legendFormat": "Tcp_RetransSegs",
+          "refId": "J"
+        },
+        {
+          "expr": "rate(node_netstat_TcpExt_ListenDrops{instance=~'$node'}[$interval])",
+          "hide": true,
+          "interval": "",
+          "legendFormat": "",
+          "refId": "K"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "网络Socket连接信息",
+      "tooltip": {
+        "shared": true,
+        "sort": 2,
+        "value_type": "individual"
+      },
+      "transformations": [],
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": "已使用的所有协议套接字总量",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {
+        "filefd_192.168.200.241:9100": "super-light-green",
+        "switches_192.168.200.241:9100": "semi-dark-red",
+        "使用的文件描述符_10.118.72.128:9100": "red",
+        "每秒上下文切换次数_10.118.71.245:9100": "yellow",
+        "每秒上下文切换次数_10.118.72.128:9100": "yellow"
+      },
+      "bars": false,
+      "cacheTimeout": null,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "description": "",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {},
+          "links": []
+        },
+        "overrides": []
+      },
+      "fill": 0,
+      "fillGradient": 1,
+      "gridPos": {
+        "h": 8,
+        "w": 8,
+        "x": 16,
+        "y": 47
+      },
+      "hiddenSeries": false,
+      "hideTimeOverride": false,
+      "id": 16,
+      "legend": {
+        "alignAsTable": false,
+        "avg": false,
+        "current": true,
+        "max": false,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 1,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "/每秒上下文切换次数.*/",
+          "color": "#FADE2A",
+          "lines": false,
+          "pointradius": 1,
+          "points": true,
+          "yaxis": 2
+        },
+        {
+          "alias": "/使用的文件描述符.*/",
+          "color": "#F2495C"
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "node_filefd_allocated{instance=~\"$node\"}",
+          "format": "time_series",
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 5,
+          "legendFormat": "使用的文件描述符",
+          "refId": "B"
+        },
+        {
+          "expr": "rate(node_context_switches_total{instance=~\"$node\"}[$interval])",
+          "interval": "",
+          "intervalFactor": 5,
+          "legendFormat": "每秒上下文切换次数",
+          "refId": "A"
+        },
+        {
+          "expr": "  (node_filefd_allocated{instance=~\"$node\"}/node_filefd_maximum{instance=~\"$node\"}) *100",
+          "format": "time_series",
+          "hide": true,
+          "instant": false,
+          "interval": "",
+          "intervalFactor": 5,
+          "legendFormat": "使用的文件描述符占比_{{instance}}",
+          "refId": "C"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "打开的文件描述符(左 )/每秒上下文切换次数(右)",
+      "tooltip": {
+        "shared": true,
+        "sort": 2,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": "使用的文件描述符",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": "context_switches",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    }
+  ],
+  "refresh": "",
+  "schemaVersion": 26,
+  "style": "dark",
+  "tags": [
+    "node_exporter"
+  ],
+  "templating": {
+    "list": [
+      {
+        "allValue": "",
+        "current": {
+          "isNone": true,
+          "selected": false,
+          "text": "None",
+          "value": ""
+        },
+        "datasource": "Prometheus",
+        "definition": "label_values(origin_prometheus)",
+        "error": null,
+        "hide": 0,
+        "includeAll": false,
+        "label": "数据源",
+        "multi": false,
+        "name": "origin_prometheus",
+        "options": [],
+        "query": "label_values(origin_prometheus)",
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 5,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allValue": null,
+        "current": {
+          "selected": false,
+          "text": "linux",
+          "value": "linux"
+        },
+        "datasource": "Prometheus",
+        "definition": "label_values(node_uname_info{origin_prometheus=~\"$origin_prometheus\"}, job)",
+        "error": null,
+        "hide": 0,
+        "includeAll": false,
+        "label": "JOB",
+        "multi": false,
+        "name": "job",
+        "options": [],
+        "query": "label_values(node_uname_info{origin_prometheus=~\"$origin_prometheus\"}, job)",
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 5,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allValue": null,
+        "current": {
+          "selected": false,
+          "text": "All",
+          "value": "$__all"
+        },
+        "datasource": "Prometheus",
+        "definition": "label_values(node_uname_info{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"}, nodename)",
+        "error": null,
+        "hide": 0,
+        "includeAll": true,
+        "label": "主机名",
+        "multi": false,
+        "name": "hostname",
+        "options": [],
+        "query": "label_values(node_uname_info{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"}, nodename)",
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 5,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allFormat": "glob",
+        "allValue": null,
+        "current": {
+          "selected": false,
+          "text": "localhost",
+          "value": "localhost"
+        },
+        "datasource": "Prometheus",
+        "definition": "label_values(node_uname_info{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",nodename=~\"$hostname\"},instance)",
+        "error": null,
+        "hide": 0,
+        "includeAll": false,
+        "label": "Instance",
+        "multi": true,
+        "multiFormat": "regex values",
+        "name": "node",
+        "options": [],
+        "query": "label_values(node_uname_info{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",nodename=~\"$hostname\"},instance)",
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 5,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allFormat": "glob",
+        "allValue": null,
+        "current": {
+          "selected": false,
+          "text": "All",
+          "value": "$__all"
+        },
+        "datasource": "Prometheus",
+        "definition": "label_values(node_network_info{origin_prometheus=~\"$origin_prometheus\",device!~'tap.*|veth.*|br.*|docker.*|virbr.*|lo.*|cni.*'},device)",
+        "error": null,
+        "hide": 0,
+        "includeAll": true,
+        "label": "网卡",
+        "multi": true,
+        "multiFormat": "regex values",
+        "name": "device",
+        "options": [],
+        "query": "label_values(node_network_info{origin_prometheus=~\"$origin_prometheus\",device!~'tap.*|veth.*|br.*|docker.*|virbr.*|lo.*|cni.*'},device)",
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 1,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "auto": false,
+        "auto_count": 100,
+        "auto_min": "10s",
+        "current": {
+          "selected": false,
+          "text": "2m",
+          "value": "2m"
+        },
+        "error": null,
+        "hide": 0,
+        "label": "时间间隔",
+        "name": "interval",
+        "options": [
+          {
+            "selected": false,
+            "text": "30s",
+            "value": "30s"
+          },
+          {
+            "selected": false,
+            "text": "1m",
+            "value": "1m"
+          },
+          {
+            "selected": true,
+            "text": "2m",
+            "value": "2m"
+          },
+          {
+            "selected": false,
+            "text": "3m",
+            "value": "3m"
+          },
+          {
+            "selected": false,
+            "text": "5m",
+            "value": "5m"
+          },
+          {
+            "selected": false,
+            "text": "10m",
+            "value": "10m"
+          },
+          {
+            "selected": false,
+            "text": "30m",
+            "value": "30m"
+          }
+        ],
+        "query": "30s,1m,2m,3m,5m,10m,30m",
+        "queryValue": "",
+        "refresh": 2,
+        "skipUrlSync": false,
+        "type": "interval"
+      },
+      {
+        "allValue": null,
+        "current": {
+          "selected": false,
+          "text": "/etc/hosts",
+          "value": "/etc/hosts"
+        },
+        "datasource": "Prometheus",
+        "definition": "query_result(topk(1,sort_desc (max(node_filesystem_size_bytes{origin_prometheus=~\"$origin_prometheus\",instance=~'$node',fstype=~\"ext.?|xfs\",mountpoint!~\".*pods.*\"}) by (mountpoint))))",
+        "error": null,
+        "hide": 2,
+        "includeAll": false,
+        "label": "最大挂载目录",
+        "multi": false,
+        "name": "maxmount",
+        "options": [],
+        "query": "query_result(topk(1,sort_desc (max(node_filesystem_size_bytes{origin_prometheus=~\"$origin_prometheus\",instance=~'$node',fstype=~\"ext.?|xfs\",mountpoint!~\".*pods.*\"}) by (mountpoint))))",
+        "refresh": 2,
+        "regex": "/.*\\\"(.*)\\\".*/",
+        "skipUrlSync": false,
+        "sort": 5,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allValue": null,
+        "current": {
+          "selected": false,
+          "text": "f85cdb87b22d",
+          "value": "f85cdb87b22d"
+        },
+        "datasource": "Prometheus",
+        "definition": "label_values(node_uname_info{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",instance=~\"$node\"}, nodename)",
+        "error": null,
+        "hide": 2,
+        "includeAll": false,
+        "label": "展示使用的主机名",
+        "multi": false,
+        "name": "show_hostname",
+        "options": [],
+        "query": "label_values(node_uname_info{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\",instance=~\"$node\"}, nodename)",
+        "refresh": 1,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 5,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      },
+      {
+        "allValue": null,
+        "current": {
+          "selected": false,
+          "text": "1",
+          "value": "1"
+        },
+        "datasource": "Prometheus",
+        "definition": "query_result(count(node_uname_info{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"}))",
+        "error": null,
+        "hide": 2,
+        "includeAll": false,
+        "label": "主机数",
+        "multi": false,
+        "name": "total",
+        "options": [],
+        "query": "query_result(count(node_uname_info{origin_prometheus=~\"$origin_prometheus\",job=~\"$job\"}))",
+        "refresh": 1,
+        "regex": "/{} (.*) .*/",
+        "skipUrlSync": false,
+        "sort": 0,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      }
+    ]
+  },
+  "time": {
+    "from": "now-12h",
+    "to": "now"
+  },
+  "timepicker": {
+    "hidden": false,
+    "now": true,
+    "refresh_intervals": [
+      "15s",
+      "30s",
+      "1m",
+      "5m",
+      "15m",
+      "30m"
+    ],
+    "time_options": [
+      "5m",
+      "15m",
+      "1h",
+      "6h",
+      "12h",
+      "24h",
+      "2d",
+      "7d",
+      "30d"
+    ]
+  },
+  "timezone": "browser",
+  "title": "BladeX监控大屏-Linux",
+  "uid": "bladex-linux",
+  "version": 1
+}
diff --git a/skjcmanager/script/docker/app/prometheus/dashboard/bladex-mysql.json b/skjcmanager/script/docker/app/prometheus/dashboard/bladex-mysql.json
new file mode 100644
index 0000000..e07cb6a
--- /dev/null
+++ b/skjcmanager/script/docker/app/prometheus/dashboard/bladex-mysql.json
@@ -0,0 +1,5055 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": false,
+        "iconColor": "#e0752d",
+        "limit": 100,
+        "name": "PMM Annotations",
+        "showIn": 0,
+        "tags": [
+          "pmm_annotation"
+        ],
+        "type": "tags"
+      }
+    ]
+  },
+  "description": "Mysql性能监控",
+  "editable": true,
+  "gnetId": 7362,
+  "graphTooltip": 1,
+  "id": 36,
+  "iteration": 1612449338253,
+  "links": [
+    {
+      "icon": "cloud",
+      "includeVars": false,
+      "keepTime": false,
+      "tags": [
+        "QAN"
+      ],
+      "targetBlank": false,
+      "title": "BladeX",
+      "tooltip": "",
+      "type": "link",
+      "url": "https://bladex.vip"
+    }
+  ],
+  "panels": [
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 0
+      },
+      "id": 382,
+      "panels": [],
+      "repeat": null,
+      "title": "",
+      "type": "row"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": [
+        "rgba(245, 54, 54, 0.9)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(50, 172, 45, 0.97)"
+      ],
+      "datasource": "Prometheus",
+      "decimals": 1,
+      "description": "**MySQL Uptime**\n\nThe amount of time since the last restart of the MySQL server process.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "s",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 0,
+        "y": 1
+      },
+      "height": "125px",
+      "id": 12,
+      "interval": "$interval",
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "s",
+      "postfixFontSize": "80%",
+      "prefix": "",
+      "prefixFontSize": "80%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "calculatedInterval": "10m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_global_status_uptime{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "5m",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "metric": "",
+          "refId": "A",
+          "step": 300
+        }
+      ],
+      "thresholds": "300,3600",
+      "title": "MySQL Uptime",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "rgba(245, 54, 54, 0.9)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(50, 172, 45, 0.97)"
+      ],
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**Current QPS**\n\nBased on the queries reported by MySQL's ``SHOW STATUS`` command, it is the number of statements executed by the server within the last second. This variable includes statements executed within stored programs, unlike the Questions variable. It does not count \n``COM_PING`` or ``COM_STATISTICS`` commands.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "short",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 6,
+        "y": 1
+      },
+      "height": "125px",
+      "id": 13,
+      "interval": "$interval",
+      "links": [
+        {
+          "targetBlank": true,
+          "title": "MySQL Server Status Variables",
+          "url": "https://dev.mysql.com/doc/refman/5.7/en/server-status-variables.html#statvar_Queries"
+        }
+      ],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "80%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "calculatedInterval": "10m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_queries{instance=\"$host\"}[$interval]) or irate(mysql_global_status_queries{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        }
+      ],
+      "thresholds": "35,75",
+      "title": "Current QPS",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "rgba(50, 172, 45, 0.97)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(245, 54, 54, 0.9)"
+      ],
+      "datasource": "Prometheus",
+      "decimals": 0,
+      "description": "**InnoDB Buffer Pool Size**\n\nInnoDB maintains a storage area called the buffer pool for caching data and indexes in memory.  Knowing how the InnoDB buffer pool works, and taking advantage of it to keep frequently accessed data in memory, is one of the most important aspects of MySQL tuning. The goal is to keep the working set in memory. In most cases, this should be between 60%-90% of available memory on a dedicated database host, but depends on many factors.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "bytes",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 12,
+        "y": 1
+      },
+      "height": "125px",
+      "id": 51,
+      "interval": "$interval",
+      "links": [
+        {
+          "targetBlank": true,
+          "title": "Tuning the InnoDB Buffer Pool Size",
+          "url": "https://www.percona.com/blog/2015/06/02/80-ram-tune-innodb_buffer_pool_size/"
+        }
+      ],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "80%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "calculatedInterval": "10m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_global_variables_innodb_buffer_pool_size{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "5m",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "metric": "",
+          "refId": "A",
+          "step": 300
+        }
+      ],
+      "thresholds": "90,95",
+      "title": "InnoDB Buffer Pool Size",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": true,
+      "colors": [
+        "rgba(245, 54, 54, 0.9)",
+        "rgba(237, 129, 40, 0.89)",
+        "rgba(50, 172, 45, 0.97)"
+      ],
+      "datasource": "Prometheus",
+      "decimals": 0,
+      "description": "**InnoDB Buffer Pool Size % of Total RAM**\n\nInnoDB maintains a storage area called the buffer pool for caching data and indexes in memory.  Knowing how the InnoDB buffer pool works, and taking advantage of it to keep frequently accessed data in memory, is one of the most important aspects of MySQL tuning. The goal is to keep the working set in memory. In most cases, this should be between 60%-90% of available memory on a dedicated database host, but depends on many factors.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "percent",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 6,
+        "x": 18,
+        "y": 1
+      },
+      "height": "125px",
+      "id": 52,
+      "interval": "$interval",
+      "links": [
+        {
+          "targetBlank": true,
+          "title": "Tuning the InnoDB Buffer Pool Size",
+          "url": "https://www.percona.com/blog/2015/06/02/80-ram-tune-innodb_buffer_pool_size/"
+        }
+      ],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "80%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "repeat": null,
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "maxValue": 100,
+        "minValue": 0,
+        "show": true
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "calculatedInterval": "10m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "(mysql_global_variables_innodb_buffer_pool_size{instance=\"$host\"} * 100) / on (instance) node_memory_MemTotal_bytes{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "5m",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "metric": "",
+          "refId": "A",
+          "step": 300
+        }
+      ],
+      "thresholds": "40,80",
+      "title": "Buffer Pool Size of Total RAM",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [],
+      "valueName": "current"
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 5
+      },
+      "id": 383,
+      "panels": [],
+      "repeat": null,
+      "title": "Connections",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 0,
+      "description": "**Max Connections** \n\nMax Connections is the maximum permitted number of simultaneous client connections. By default, this is 151. Increasing this value increases the number of file descriptors that mysqld requires. If the required number of descriptors are not available, the server reduces the value of Max Connections.\n\nmysqld actually permits Max Connections + 1 clients to connect. The extra connection is reserved for use by accounts that have the SUPER privilege, such as root.\n\nMax Used Connections is the maximum number of connections that have been in use simultaneously since the server started.\n\nConnections is the number of connection attempts (successful or not) to the MySQL server.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 0,
+        "y": 6
+      },
+      "height": "250px",
+      "hiddenSeries": false,
+      "id": 92,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [
+        {
+          "targetBlank": true,
+          "title": "MySQL Server System Variables",
+          "url": "https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_connections"
+        }
+      ],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "Max Connections",
+          "fill": 0
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "max(max_over_time(mysql_global_status_threads_connected{instance=\"$host\"}[$interval])  or mysql_global_status_threads_connected{instance=\"$host\"} )",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Connections",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_global_status_max_used_connections{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Max Used Connections",
+          "metric": "",
+          "refId": "C",
+          "step": 20,
+          "target": ""
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_global_variables_max_connections{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Max Connections",
+          "metric": "",
+          "refId": "B",
+          "step": 20,
+          "target": ""
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Connections",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**MySQL Active Threads**\n\nThreads Connected is the number of open connections, while Threads Running is the number of threads not sleeping.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 12,
+        "y": 6
+      },
+      "hiddenSeries": false,
+      "id": 10,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": true,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "Peak Threads Running",
+          "color": "#E24D42",
+          "lines": false,
+          "pointradius": 1,
+          "points": true
+        },
+        {
+          "alias": "Peak Threads Connected",
+          "color": "#1F78C1"
+        },
+        {
+          "alias": "Avg Threads Running",
+          "color": "#EAB839"
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "max_over_time(mysql_global_status_threads_connected{instance=\"$host\"}[$interval]) or\nmax_over_time(mysql_global_status_threads_connected{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "hide": false,
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Peak Threads Connected",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "max_over_time(mysql_global_status_threads_running{instance=\"$host\"}[$interval]) or\nmax_over_time(mysql_global_status_threads_running{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Peak Threads Running",
+          "metric": "",
+          "refId": "B",
+          "step": 20
+        },
+        {
+          "expr": "avg_over_time(mysql_global_status_threads_running{instance=\"$host\"}[$interval]) or \navg_over_time(mysql_global_status_threads_running{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Avg Threads Running",
+          "refId": "C",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Client Thread Activity",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": [
+          "total"
+        ]
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": "Threads",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": false
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 13
+      },
+      "id": 384,
+      "panels": [],
+      "repeat": null,
+      "title": "Table Locks",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": null,
+      "description": "**MySQL Questions**\n\nThe number of statements executed by the server. This includes only statements sent to the server by clients and not statements executed within stored programs, unlike the Queries used in the QPS calculation. \n\nThis variable does not count the following commands:\n* ``COM_PING``\n* ``COM_STATISTICS``\n* ``COM_STMT_PREPARE``\n* ``COM_STMT_CLOSE``\n* ``COM_STMT_RESET``",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 0,
+        "y": 14
+      },
+      "hiddenSeries": false,
+      "id": 53,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [
+        {
+          "targetBlank": true,
+          "title": "MySQL Queries and Questions",
+          "url": "https://www.percona.com/blog/2014/05/29/how-mysql-queries-and-questions-are-measured/"
+        }
+      ],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_questions{instance=\"$host\"}[$interval]) or irate(mysql_global_status_questions{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Questions",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Questions",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**MySQL Thread Cache**\n\nThe thread_cache_size variable sets how many threads the server should cache to reuse. When a client disconnects, the client's threads are put in the cache if the cache is not full. It is autosized in MySQL 5.6.8 and above (capped to 100). Requests for threads are satisfied by reusing threads taken from the cache if possible, and only when the cache is empty is a new thread created.\n\n* *Threads_created*: The number of threads created to handle connections.\n* *Threads_cached*: The number of threads in the thread cache.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 12,
+        "y": 14
+      },
+      "hiddenSeries": false,
+      "id": 11,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [
+        {
+          "title": "Tuning information",
+          "url": "https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_thread_cache_size"
+        }
+      ],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "Threads Created",
+          "fill": 0
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_global_variables_thread_cache_size{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Thread Cache Size",
+          "metric": "",
+          "refId": "B",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_global_status_threads_cached{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Threads Cached",
+          "metric": "",
+          "refId": "C",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_threads_created{instance=\"$host\"}[$interval]) or irate(mysql_global_status_threads_created{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Threads Created",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Thread Cache",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 21
+      },
+      "id": 385,
+      "panels": [],
+      "repeat": null,
+      "title": "Temporary Objects",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 0,
+        "y": 22
+      },
+      "hiddenSeries": false,
+      "id": 22,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_created_tmp_tables{instance=\"$host\"}[$interval]) or irate(mysql_global_status_created_tmp_tables{instance=\"$host\"}[5m])",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Created Tmp Tables",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_created_tmp_disk_tables{instance=\"$host\"}[$interval]) or irate(mysql_global_status_created_tmp_disk_tables{instance=\"$host\"}[5m])",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Created Tmp Disk Tables",
+          "metric": "",
+          "refId": "B",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_created_tmp_files{instance=\"$host\"}[$interval]) or irate(mysql_global_status_created_tmp_files{instance=\"$host\"}[5m])",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Created Tmp Files",
+          "metric": "",
+          "refId": "C",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Temporary Objects",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**MySQL Select Types**\n\nAs with most relational databases, selecting based on indexes is more efficient than scanning an entire table's data. Here we see the counters for selects not done with indexes.\n\n* ***Select Scan*** is how many queries caused full table scans, in which all the data in the table had to be read and either discarded or returned.\n* ***Select Range*** is how many queries used a range scan, which means MySQL scanned all rows in a given range.\n* ***Select Full Join*** is the number of joins that are not joined on an index, this is usually a huge performance hit.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 12,
+        "y": 22
+      },
+      "height": "250px",
+      "hiddenSeries": false,
+      "id": 311,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "hideZero": true,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_select_full_join{instance=\"$host\"}[$interval]) or irate(mysql_global_status_select_full_join{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Select Full Join",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_select_full_range_join{instance=\"$host\"}[$interval]) or irate(mysql_global_status_select_full_range_join{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Select Full Range Join",
+          "metric": "",
+          "refId": "B",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_select_range{instance=\"$host\"}[$interval]) or irate(mysql_global_status_select_range{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Select Range",
+          "metric": "",
+          "refId": "C",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_select_range_check{instance=\"$host\"}[$interval]) or irate(mysql_global_status_select_range_check{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Select Range Check",
+          "metric": "",
+          "refId": "D",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_select_scan{instance=\"$host\"}[$interval]) or irate(mysql_global_status_select_scan{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Select Scan",
+          "metric": "",
+          "refId": "E",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Select Types",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 29
+      },
+      "id": 386,
+      "panels": [],
+      "repeat": null,
+      "title": "Sorts",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**MySQL Sorts**\n\nDue to a query's structure, order, or other requirements, MySQL sorts the rows before returning them. For example, if a table is ordered 1 to 10 but you want the results reversed, MySQL then has to sort the rows to return 10 to 1.\n\nThis graph also shows when sorts had to scan a whole table or a given range of a table in order to return the results and which could not have been sorted via an index.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 0,
+        "y": 30
+      },
+      "hiddenSeries": false,
+      "id": 30,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "hideZero": true,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_sort_rows{instance=\"$host\"}[$interval]) or irate(mysql_global_status_sort_rows{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Sort Rows",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_sort_range{instance=\"$host\"}[$interval]) or irate(mysql_global_status_sort_range{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Sort Range",
+          "metric": "",
+          "refId": "B",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_sort_merge_passes{instance=\"$host\"}[$interval]) or irate(mysql_global_status_sort_merge_passes{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Sort Merge Passes",
+          "metric": "",
+          "refId": "C",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_sort_scan{instance=\"$host\"}[$interval]) or irate(mysql_global_status_sort_scan{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Sort Scan",
+          "metric": "",
+          "refId": "D",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Sorts",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**MySQL Slow Queries**\n\nSlow queries are defined as queries being slower than the long_query_time setting. For example, if you have long_query_time set to 3, all queries that take longer than 3 seconds to complete will show on this graph.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 12,
+        "y": 30
+      },
+      "hiddenSeries": false,
+      "id": 48,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_slow_queries{instance=\"$host\"}[$interval]) or irate(mysql_global_status_slow_queries{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Slow Queries",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Slow Queries",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 37
+      },
+      "id": 387,
+      "panels": [],
+      "repeat": null,
+      "title": "Aborted",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**Aborted Connections**\n\nWhen a given host connects to MySQL and the connection is interrupted in the middle (for example due to bad credentials), MySQL keeps that info in a system table (since 5.6 this table is exposed in performance_schema).\n\nIf the amount of failed requests without a successful connection reaches the value of max_connect_errors, mysqld assumes that something is wrong and blocks the host from further connection.\n\nTo allow connections from that host again, you need to issue the ``FLUSH HOSTS`` statement.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 0,
+        "y": 38
+      },
+      "hiddenSeries": false,
+      "id": 47,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_aborted_connects{instance=\"$host\"}[$interval]) or irate(mysql_global_status_aborted_connects{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Aborted Connects (attempts)",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_aborted_clients{instance=\"$host\"}[$interval]) or irate(mysql_global_status_aborted_clients{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Aborted Clients (timeout)",
+          "metric": "",
+          "refId": "B",
+          "step": 20,
+          "target": ""
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Aborted Connections",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "cumulative"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**Table Locks**\n\nMySQL takes a number of different locks for varying reasons. In this graph we see how many Table level locks MySQL has requested from the storage engine. In the case of InnoDB, many times the locks could actually be row locks as it only takes table level locks in a few specific cases.\n\nIt is most useful to compare Locks Immediate and Locks Waited. If Locks waited is rising, it means you have lock contention. Otherwise, Locks Immediate rising and falling is normal activity.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 12,
+        "y": 38
+      },
+      "hiddenSeries": false,
+      "id": 32,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_table_locks_immediate{instance=\"$host\"}[$interval]) or irate(mysql_global_status_table_locks_immediate{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Table Locks Immediate",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_table_locks_waited{instance=\"$host\"}[$interval]) or irate(mysql_global_status_table_locks_waited{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Table Locks Waited",
+          "metric": "",
+          "refId": "B",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Table Locks",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 45
+      },
+      "id": 388,
+      "panels": [],
+      "repeat": null,
+      "title": "Network",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**MySQL Network Traffic**\n\nHere we can see how much network traffic is generated by MySQL. Outbound is network traffic sent from MySQL and Inbound is network traffic MySQL has received.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 6,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 0,
+        "y": 46
+      },
+      "hiddenSeries": false,
+      "id": 9,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_bytes_received{instance=\"$host\"}[$interval]) or irate(mysql_global_status_bytes_received{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Inbound",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_bytes_sent{instance=\"$host\"}[$interval]) or irate(mysql_global_status_bytes_sent{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Outbound",
+          "metric": "",
+          "refId": "B",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Network Traffic",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "Bps",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "none",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": true,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**MySQL Network Usage Hourly**\n\nHere we can see how much network traffic is generated by MySQL per hour. You can use the bar graph to compare data sent by MySQL and data received by MySQL.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 6,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 12,
+        "y": 46
+      },
+      "height": "250px",
+      "hiddenSeries": false,
+      "id": 381,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": false,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "increase(mysql_global_status_bytes_received{instance=\"$host\"}[1h])",
+          "format": "time_series",
+          "interval": "1h",
+          "intervalFactor": 1,
+          "legendFormat": "Received",
+          "metric": "",
+          "refId": "A",
+          "step": 3600
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "increase(mysql_global_status_bytes_sent{instance=\"$host\"}[1h])",
+          "format": "time_series",
+          "interval": "1h",
+          "intervalFactor": 1,
+          "legendFormat": "Sent",
+          "metric": "",
+          "refId": "B",
+          "step": 3600
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": "24h",
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Network Usage Hourly",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "bytes",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "none",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 53
+      },
+      "id": 389,
+      "panels": [],
+      "repeat": null,
+      "title": "Memory",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 0,
+      "description": "***System Memory***: Total Memory for the system.\\\n***InnoDB Buffer Pool Data***: InnoDB maintains a storage area called the buffer pool for caching data and indexes in memory.\\\n***TokuDB Cache Size***: Similar in function to the InnoDB Buffer Pool,  TokuDB will allocate 50% of the installed RAM for its own cache.\\\n***Key Buffer Size***: Index blocks for MYISAM tables are buffered and are shared by all threads. key_buffer_size is the size of the buffer used for index blocks.\\\n***Adaptive Hash Index Size***: When InnoDB notices that some index values are being accessed very frequently, it builds a hash index for them in memory on top of B-Tree indexes.\\\n ***Query Cache Size***: The query cache stores the text of a SELECT statement together with the corresponding result that was sent to the client. The query cache has huge scalability problems in that only one thread can do an operation in the query cache at the same time.\\\n***InnoDB Dictionary Size***: The data dictionary is InnoDB ‘s internal catalog of tables. InnoDB stores the data dictionary on disk, and loads entries into memory while the server is running.\\\n***InnoDB Log Buffer Size***: The MySQL InnoDB log buffer allows transactions to run without having to write the log to disk before the transactions commit.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 6,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 24,
+        "x": 0,
+        "y": 54
+      },
+      "hiddenSeries": false,
+      "id": 50,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "hideEmpty": true,
+        "hideZero": true,
+        "max": true,
+        "min": true,
+        "rightSide": true,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [
+        {
+          "title": "Detailed descriptions about metrics",
+          "url": "https://www.percona.com/doc/percona-monitoring-and-management/dashboard.mysql-overview.html#mysql-internal-memory-overview"
+        }
+      ],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "System Memory",
+          "fill": 0,
+          "stack": false
+        }
+      ],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "node_memory_MemTotal_bytes{instance=\"$host\"}",
+          "format": "time_series",
+          "intervalFactor": 2,
+          "legendFormat": "System Memory",
+          "refId": "G",
+          "step": 4
+        },
+        {
+          "expr": "mysql_global_status_innodb_page_size{instance=\"$host\"} * on (instance) mysql_global_status_buffer_pool_pages{instance=\"$host\",state=\"data\"}",
+          "format": "time_series",
+          "hide": false,
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "InnoDB Buffer Pool Data",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "expr": "mysql_global_variables_innodb_log_buffer_size{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "InnoDB Log Buffer Size",
+          "refId": "D",
+          "step": 20
+        },
+        {
+          "expr": "mysql_global_variables_innodb_additional_mem_pool_size{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 2,
+          "legendFormat": "InnoDB Additional Memory Pool Size",
+          "refId": "H",
+          "step": 40
+        },
+        {
+          "expr": "mysql_global_status_innodb_mem_dictionary{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "InnoDB Dictionary Size",
+          "refId": "F",
+          "step": 20
+        },
+        {
+          "expr": "mysql_global_variables_key_buffer_size{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Key Buffer Size",
+          "refId": "B",
+          "step": 20
+        },
+        {
+          "expr": "mysql_global_variables_query_cache_size{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Query Cache Size",
+          "refId": "C",
+          "step": 20
+        },
+        {
+          "expr": "mysql_global_status_innodb_mem_adaptive_hash{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Adaptive Hash Index Size",
+          "refId": "E",
+          "step": 20
+        },
+        {
+          "expr": "mysql_global_variables_tokudb_cache_size{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "TokuDB Cache Size",
+          "refId": "I",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Internal Memory Overview",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 61
+      },
+      "id": 390,
+      "panels": [],
+      "repeat": null,
+      "title": "Command, Handlers, Processes",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**Top Command Counters**\n\nThe Com_{{xxx}} statement counter variables indicate the number of times each xxx statement has been executed. There is one status variable for each type of statement. For example, Com_delete and Com_update count [``DELETE``](https://dev.mysql.com/doc/refman/5.7/en/delete.html) and [``UPDATE``](https://dev.mysql.com/doc/refman/5.7/en/update.html) statements, respectively. Com_delete_multi and Com_update_multi are similar but apply to [``DELETE``](https://dev.mysql.com/doc/refman/5.7/en/delete.html) and [``UPDATE``](https://dev.mysql.com/doc/refman/5.7/en/update.html) statements that use multiple-table syntax.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 24,
+        "x": 0,
+        "y": 62
+      },
+      "hiddenSeries": false,
+      "id": 14,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "hideEmpty": false,
+        "hideZero": false,
+        "max": true,
+        "min": true,
+        "rightSide": true,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [
+        {
+          "title": "Server Status Variables (Com_xxx)",
+          "url": "https://dev.mysql.com/doc/refman/5.7/en/server-status-variables.html#statvar_Com_xxx"
+        }
+      ],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "topk(5, rate(mysql_global_status_commands_total{instance=\"$host\"}[$interval])>0) or topk(5, irate(mysql_global_status_commands_total{instance=\"$host\"}[5m])>0)",
+          "format": "time_series",
+          "hide": false,
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Com_{{ command }}",
+          "metric": "",
+          "refId": "B",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Top Command Counters",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": true,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**Top Command Counters Hourly**\n\nThe Com_{{xxx}} statement counter variables indicate the number of times each xxx statement has been executed. There is one status variable for each type of statement. For example, Com_delete and Com_update count [``DELETE``](https://dev.mysql.com/doc/refman/5.7/en/delete.html) and [``UPDATE``](https://dev.mysql.com/doc/refman/5.7/en/update.html) statements, respectively. Com_delete_multi and Com_update_multi are similar but apply to [``DELETE``](https://dev.mysql.com/doc/refman/5.7/en/delete.html) and [``UPDATE``](https://dev.mysql.com/doc/refman/5.7/en/update.html) statements that use multiple-table syntax.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 6,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 24,
+        "x": 0,
+        "y": 69
+      },
+      "hiddenSeries": false,
+      "id": 39,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "rightSide": true,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": false,
+      "linewidth": 2,
+      "links": [
+        {
+          "title": "Server Status Variables (Com_xxx)",
+          "url": "https://dev.mysql.com/doc/refman/5.7/en/server-status-variables.html#statvar_Com_xxx"
+        }
+      ],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "topk(5, increase(mysql_global_status_commands_total{instance=\"$host\"}[1h])>0)",
+          "format": "time_series",
+          "interval": "1h",
+          "intervalFactor": 1,
+          "legendFormat": "Com_{{ command }}",
+          "metric": "",
+          "refId": "A",
+          "step": 3600
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": "24h",
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Top Command Counters Hourly",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**MySQL Handlers**\n\nHandler statistics are internal statistics on how MySQL is selecting, updating, inserting, and modifying rows, tables, and indexes.\n\nThis is in fact the layer between the Storage Engine and MySQL.\n\n* `read_rnd_next` is incremented when the server performs a full table scan and this is a counter you don't really want to see with a high value.\n* `read_key` is incremented when a read is done with an index.\n* `read_next` is incremented when the storage engine is asked to 'read the next index entry'. A high value means a lot of index scans are being done.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 24,
+        "x": 0,
+        "y": 76
+      },
+      "hiddenSeries": false,
+      "id": 8,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "hideZero": true,
+        "max": true,
+        "min": true,
+        "rightSide": true,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_handlers_total{instance=\"$host\", handler!~\"commit|rollback|savepoint.*|prepare\"}[$interval]) or irate(mysql_global_status_handlers_total{instance=\"$host\", handler!~\"commit|rollback|savepoint.*|prepare\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "{{ handler }}",
+          "metric": "",
+          "refId": "J",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Handlers",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 24,
+        "x": 0,
+        "y": 83
+      },
+      "hiddenSeries": false,
+      "id": 28,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "hideZero": true,
+        "max": true,
+        "min": true,
+        "rightSide": true,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_handlers_total{instance=\"$host\", handler=~\"commit|rollback|savepoint.*|prepare\"}[$interval]) or irate(mysql_global_status_handlers_total{instance=\"$host\", handler=~\"commit|rollback|savepoint.*|prepare\"}[5m])",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "{{ handler }}",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Transaction Handlers",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 0,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 24,
+        "x": 0,
+        "y": 90
+      },
+      "hiddenSeries": false,
+      "id": 40,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "hideZero": true,
+        "max": true,
+        "min": false,
+        "rightSide": true,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_info_schema_threads{instance=\"$host\"}",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "{{ state }}",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Process States",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": true,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 6,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 24,
+        "x": 0,
+        "y": 97
+      },
+      "hiddenSeries": false,
+      "id": 49,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "hideZero": true,
+        "max": true,
+        "min": false,
+        "rightSide": true,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": false,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "topk(5, avg_over_time(mysql_info_schema_threads{instance=\"$host\"}[1h]))",
+          "interval": "1h",
+          "intervalFactor": 1,
+          "legendFormat": "{{ state }}",
+          "metric": "",
+          "refId": "A",
+          "step": 3600
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": "24h",
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Top Process States Hourly",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 104
+      },
+      "id": 391,
+      "panels": [],
+      "repeat": null,
+      "title": "Query Cache",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**MySQL Query Cache Memory**\n\nThe query cache has huge scalability problems in that only one thread can do an operation in the query cache at the same time. This serialization is true not only for SELECTs, but also for INSERT/UPDATE/DELETE.\n\nThis also means that the larger the `query_cache_size` is set to, the slower those operations become. In concurrent environments, the MySQL Query Cache quickly becomes a contention point, decreasing performance. MariaDB and AWS Aurora have done work to try and eliminate the query cache contention in their flavors of MySQL, while MySQL 8.0 has eliminated the query cache feature.\n\nThe recommended settings for most environments is to set:\n  ``query_cache_type=0``\n  ``query_cache_size=0``\n\nNote that while you can dynamically change these values, to completely remove the contention point you have to restart the database.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 0,
+        "y": 105
+      },
+      "hiddenSeries": false,
+      "id": 46,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_global_status_qcache_free_memory{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Free Memory",
+          "metric": "",
+          "refId": "F",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_global_variables_query_cache_size{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Query Cache Size",
+          "metric": "",
+          "refId": "E",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Query Cache Memory",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "bytes",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**MySQL Query Cache Activity**\n\nThe query cache has huge scalability problems in that only one thread can do an operation in the query cache at the same time. This serialization is true not only for SELECTs, but also for INSERT/UPDATE/DELETE.\n\nThis also means that the larger the `query_cache_size` is set to, the slower those operations become. In concurrent environments, the MySQL Query Cache quickly becomes a contention point, decreasing performance. MariaDB and AWS Aurora have done work to try and eliminate the query cache contention in their flavors of MySQL, while MySQL 8.0 has eliminated the query cache feature.\n\nThe recommended settings for most environments is to set:\n``query_cache_type=0``\n``query_cache_size=0``\n\nNote that while you can dynamically change these values, to completely remove the contention point you have to restart the database.",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 12,
+        "y": 105
+      },
+      "height": "",
+      "hiddenSeries": false,
+      "id": 45,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_qcache_hits{instance=\"$host\"}[$interval]) or irate(mysql_global_status_qcache_hits{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Hits",
+          "metric": "",
+          "refId": "B",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_qcache_inserts{instance=\"$host\"}[$interval]) or irate(mysql_global_status_qcache_inserts{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Inserts",
+          "metric": "",
+          "refId": "C",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_qcache_not_cached{instance=\"$host\"}[$interval]) or irate(mysql_global_status_qcache_not_cached{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Not Cached",
+          "metric": "",
+          "refId": "D",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_qcache_lowmem_prunes{instance=\"$host\"}[$interval]) or irate(mysql_global_status_qcache_lowmem_prunes{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Prunes",
+          "metric": "",
+          "refId": "F",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_global_status_qcache_queries_in_cache{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Queries in Cache",
+          "metric": "",
+          "refId": "E",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Query Cache Activity",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 112
+      },
+      "id": 392,
+      "panels": [],
+      "repeat": null,
+      "title": "Files and Tables",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 0,
+        "y": 113
+      },
+      "hiddenSeries": false,
+      "id": 43,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_opened_files{instance=\"$host\"}[$interval]) or irate(mysql_global_status_opened_files{instance=\"$host\"}[5m])",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Openings",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL File Openings",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 12,
+        "y": 113
+      },
+      "hiddenSeries": false,
+      "id": 41,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_global_status_open_files{instance=\"$host\"}",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Open Files",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_global_variables_open_files_limit{instance=\"$host\"}",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Open Files Limit",
+          "metric": "",
+          "refId": "D",
+          "step": 20
+        },
+        {
+          "expr": "mysql_global_status_innodb_num_open_files{instance=\"$host\"}",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "InnoDB Open Files",
+          "refId": "B",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Open Files",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 120
+      },
+      "id": 393,
+      "panels": [],
+      "repeat": null,
+      "title": "Table Openings",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**MySQL Table Open Cache Status**\n\nThe recommendation is to set the `table_open_cache_instances` to a loose correlation to virtual CPUs, keeping in mind that more instances means the cache is split more times. If you have a cache set to 500 but it has 10 instances, each cache will only have 50 cached.\n\nThe `table_definition_cache` and `table_open_cache` can be left as default as they are auto-sized MySQL 5.6 and above (ie: do not set them to any value).",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 0,
+        "y": 121
+      },
+      "hiddenSeries": false,
+      "id": 44,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [
+        {
+          "title": "Server Status Variables (table_open_cache)",
+          "url": "http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_table_open_cache"
+        }
+      ],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "Table Open Cache Hit Ratio",
+          "yaxis": 2
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(mysql_global_status_opened_tables{instance=\"$host\"}[$interval]) or irate(mysql_global_status_opened_tables{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Openings",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "expr": "rate(mysql_global_status_table_open_cache_hits{instance=\"$host\"}[$interval]) or irate(mysql_global_status_table_open_cache_hits{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Hits",
+          "refId": "B",
+          "step": 20
+        },
+        {
+          "expr": "rate(mysql_global_status_table_open_cache_misses{instance=\"$host\"}[$interval]) or irate(mysql_global_status_table_open_cache_misses{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Misses",
+          "refId": "C",
+          "step": 20
+        },
+        {
+          "expr": "rate(mysql_global_status_table_open_cache_overflows{instance=\"$host\"}[$interval]) or irate(mysql_global_status_table_open_cache_overflows{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Misses due to Overflows",
+          "refId": "D",
+          "step": 20
+        },
+        {
+          "expr": "(rate(mysql_global_status_table_open_cache_hits{instance=\"$host\"}[$interval]) or irate(mysql_global_status_table_open_cache_hits{instance=\"$host\"}[5m]))/((rate(mysql_global_status_table_open_cache_hits{instance=\"$host\"}[$interval]) or irate(mysql_global_status_table_open_cache_hits{instance=\"$host\"}[5m]))+(rate(mysql_global_status_table_open_cache_misses{instance=\"$host\"}[$interval]) or irate(mysql_global_status_table_open_cache_misses{instance=\"$host\"}[5m])))",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Table Open Cache Hit Ratio",
+          "refId": "E",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Table Open Cache Status",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "percentunit",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**MySQL Open Tables**\n\nThe recommendation is to set the `table_open_cache_instances` to a loose correlation to virtual CPUs, keeping in mind that more instances means the cache is split more times. If you have a cache set to 500 but it has 10 instances, each cache will only have 50 cached.\n\nThe `table_definition_cache` and `table_open_cache` can be left as default as they are auto-sized MySQL 5.6 and above (ie: do not set them to any value).",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 12,
+        "x": 12,
+        "y": 121
+      },
+      "hiddenSeries": false,
+      "id": 42,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [
+        {
+          "title": "Server Status Variables (table_open_cache)",
+          "url": "http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_table_open_cache"
+        }
+      ],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_global_status_open_tables{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Open Tables",
+          "metric": "",
+          "refId": "B",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_global_variables_table_open_cache{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Table Open Cache",
+          "metric": "",
+          "refId": "C",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Open Tables",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 128
+      },
+      "id": 394,
+      "panels": [],
+      "repeat": null,
+      "title": "MySQL Table Definition Cache",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "description": "**MySQL Table Definition Cache**\n\nThe recommendation is to set the `table_open_cache_instances` to a loose correlation to virtual CPUs, keeping in mind that more instances means the cache is split more times. If you have a cache set to 500 but it has 10 instances, each cache will only have 50 cached.\n\nThe `table_definition_cache` and `table_open_cache` can be left as default as they are auto-sized MySQL 5.6 and above (ie: do not set them to any value).",
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 24,
+        "x": 0,
+        "y": 129
+      },
+      "hiddenSeries": false,
+      "id": 54,
+      "legend": {
+        "alignAsTable": true,
+        "avg": true,
+        "current": false,
+        "max": true,
+        "min": true,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [
+        {
+          "title": "Server Status Variables (table_open_cache)",
+          "url": "http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_table_open_cache"
+        }
+      ],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "Opened Table Definitions",
+          "yaxis": 2
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_global_status_open_table_definitions{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Open Table Definitions",
+          "metric": "",
+          "refId": "B",
+          "step": 20
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "mysql_global_variables_table_definition_cache{instance=\"$host\"}",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Table Definitions Cache Size",
+          "metric": "",
+          "refId": "C",
+          "step": 20
+        },
+        {
+          "expr": "rate(mysql_global_status_opened_table_definitions{instance=\"$host\"}[$interval]) or irate(mysql_global_status_opened_table_definitions{instance=\"$host\"}[5m])",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Opened Table Definitions",
+          "refId": "A",
+          "step": 20
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "MySQL Table Definition Cache",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "short",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": null,
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 136
+      },
+      "id": 395,
+      "panels": [],
+      "repeat": null,
+      "title": "System Charts",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": null,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 0,
+        "y": 137
+      },
+      "hiddenSeries": false,
+      "id": 31,
+      "legend": {
+        "alignAsTable": false,
+        "avg": true,
+        "current": false,
+        "hideEmpty": false,
+        "max": false,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2s",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(node_vmstat_pgpgin{instance=\"$host\"}[$interval]) * 1024 or irate(node_vmstat_pgpgin{instance=\"$host\"}[5m]) * 1024",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Page In",
+          "metric": "",
+          "refId": "A",
+          "step": 20,
+          "target": ""
+        },
+        {
+          "calculatedInterval": "2s",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(node_vmstat_pgpgout{instance=\"$host\"}[$interval]) * 1024 or irate(node_vmstat_pgpgout{instance=\"$host\"}[5m]) * 1024",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Page Out",
+          "metric": "",
+          "refId": "B",
+          "step": 20,
+          "target": ""
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "I/O Activity",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "Bps",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "bytes",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": null,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 6,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 8,
+        "y": 137
+      },
+      "height": "250px",
+      "hiddenSeries": false,
+      "id": 37,
+      "legend": {
+        "alignAsTable": false,
+        "avg": true,
+        "current": false,
+        "hideEmpty": false,
+        "max": false,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2s",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "node_memory_MemTotal_bytes{instance=\"$host\"} - (node_memory_MemFree_bytes{instance=\"$host\"} + node_memory_Buffers{instance=\"$host\"} + node_memory_Cached{instance=\"$host\"})",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Used",
+          "metric": "",
+          "refId": "A",
+          "step": 20,
+          "target": ""
+        },
+        {
+          "calculatedInterval": "2s",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "node_memory_MemFree_bytes{instance=\"$host\"}",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Free",
+          "metric": "",
+          "refId": "B",
+          "step": 20,
+          "target": ""
+        },
+        {
+          "calculatedInterval": "2s",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "node_memory_Buffers{instance=\"$host\"}",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Buffers",
+          "metric": "",
+          "refId": "D",
+          "step": 20,
+          "target": ""
+        },
+        {
+          "calculatedInterval": "2s",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "node_memory_Cached{instance=\"$host\"}",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Cached",
+          "metric": "",
+          "refId": "E",
+          "step": 20,
+          "target": ""
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Memory Distribution",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "bytes",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "bytes",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {
+        "Load 1m": "#58140C",
+        "Max Core Utilization": "#bf1b00",
+        "iowait": "#e24d42",
+        "nice": "#1f78c1",
+        "softirq": "#806eb7",
+        "system": "#eab839",
+        "user": "#508642"
+      },
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": null,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 6,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 16,
+        "y": 137
+      },
+      "height": "",
+      "hiddenSeries": false,
+      "id": 2,
+      "legend": {
+        "alignAsTable": false,
+        "avg": true,
+        "current": false,
+        "hideEmpty": true,
+        "hideZero": true,
+        "max": false,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "Max Core Utilization",
+          "lines": false,
+          "pointradius": 1,
+          "points": true,
+          "stack": false
+        },
+        {
+          "alias": "Load 1m",
+          "color": "#58140C",
+          "fill": 2,
+          "stack": false,
+          "yaxis": 2
+        }
+      ],
+      "spaceLength": 10,
+      "stack": true,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2s",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "clamp_max(((avg by (mode) ( (clamp_max(rate(node_cpu_seconds_total{instance=\"$host\",mode!=\"idle\"}[$interval]),1)) or (clamp_max(irate(node_cpu_seconds_total{instance=\"$host\",mode!=\"idle\"}[5m]),1)) ))*100 or (avg_over_time(node_cpu_seconds_total_average{instance=~\"$host\", mode!=\"total\", mode!=\"idle\"}[$interval]) or avg_over_time(node_cpu_seconds_total_average{instance=~\"$host\", mode!=\"total\", mode!=\"idle\"}[5m]))),100)",
+          "format": "time_series",
+          "hide": false,
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "{{ mode }}",
+          "metric": "",
+          "refId": "A",
+          "step": 20
+        },
+        {
+          "expr": "clamp_max(max by () (sum  by (cpu) ( (clamp_max(rate(node_cpu_seconds_total{instance=\"$host\",mode!=\"idle\",mode!=\"iowait\"}[$interval]),1)) or (clamp_max(irate(node_cpu_seconds_total{instance=\"$host\",mode!=\"idle\",mode!=\"iowait\"}[5m]),1)) ))*100,100)",
+          "format": "time_series",
+          "hide": true,
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Max Core Utilization",
+          "refId": "B",
+          "step": 20
+        },
+        {
+          "expr": "node_load1{instance=\"$host\"}",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 2,
+          "legendFormat": "Load 1m",
+          "refId": "C"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "CPU Usage / Load",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "decimals": 1,
+          "format": "percent",
+          "label": "",
+          "logBase": 1,
+          "max": 100,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "none",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": 2,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 0,
+        "y": 144
+      },
+      "height": "250px",
+      "hiddenSeries": false,
+      "id": 36,
+      "legend": {
+        "alignAsTable": false,
+        "avg": true,
+        "current": false,
+        "hideEmpty": true,
+        "hideZero": true,
+        "max": false,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "total": false,
+        "values": true
+      },
+      "lines": false,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 1,
+      "points": true,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "sum((rate(node_disk_read_time_seconds_total{device!~\"dm-.+\", instance=\"$host\"}[$interval]) / rate(node_disk_reads_completed_total{device!~\"dm-.+\", instance=\"$host\"}[$interval])) or (irate(node_disk_read_time_seconds_total{device!~\"dm-.+\", instance=\"$host\"}[5m]) / irate(node_disk_reads_completed_total{device!~\"dm-.+\", instance=\"$host\"}[5m]))\nor avg_over_time(aws_rds_read_latency_average{instance=\"$host\"}[$interval]) or avg_over_time(aws_rds_read_latency_average{instance=\"$host\"}[5m]))",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Read",
+          "metric": "",
+          "refId": "A",
+          "step": 20,
+          "target": ""
+        },
+        {
+          "calculatedInterval": "2m",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "sum((rate(node_disk_write_time_seconds_total{device!~\"dm-.+\", instance=\"$host\"}[$interval]) / rate(node_disk_writes_completed_total{device!~\"dm-.+\", instance=\"$host\"}[$interval])) or (irate(node_disk_write_time_seconds_total{device!~\"dm-.+\", instance=\"$host\"}[5m]) / irate(node_disk_writes_completed_total{device!~\"dm-.+\", instance=\"$host\"}[5m])) or \navg_over_time(aws_rds_write_latency_average{instance=\"$host\"}[$interval]) or avg_over_time(aws_rds_write_latency_average{instance=\"$host\"}[5m]))",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Write",
+          "metric": "",
+          "refId": "B",
+          "step": 20,
+          "target": ""
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Disk Latency",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "ms",
+          "label": "",
+          "logBase": 2,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "ms",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": null,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 8,
+        "y": 144
+      },
+      "height": "250px",
+      "hiddenSeries": false,
+      "id": 21,
+      "legend": {
+        "alignAsTable": false,
+        "avg": true,
+        "current": false,
+        "hideEmpty": false,
+        "max": false,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [
+        {
+          "alias": "Outbound",
+          "transform": "negative-Y"
+        }
+      ],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2s",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "sum(rate(node_network_receive_bytes_total{instance=\"$host\", device!=\"lo\"}[$interval])) or sum(irate(node_network_receive_bytes_total{instance=\"$host\", device!=\"lo\"}[5m])) or sum(max_over_time(rdsosmetrics_network_rx{instance=\"$host\"}[$interval])) or sum(max_over_time(rdsosmetrics_network_rx{instance=\"$host\"}[5m])) ",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Inbound",
+          "metric": "",
+          "refId": "B",
+          "step": 20,
+          "target": ""
+        },
+        {
+          "calculatedInterval": "2s",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "sum(rate(node_network_transmit_bytes_total{instance=\"$host\", device!=\"lo\"}[$interval])) or sum(irate(node_network_transmit_bytes_total{instance=\"$host\", device!=\"lo\"}[5m])) or\nsum(max_over_time(rdsosmetrics_network_tx{instance=\"$host\"}[$interval])) or sum(max_over_time(rdsosmetrics_network_tx{instance=\"$host\"}[5m]))",
+          "format": "time_series",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Outbound",
+          "metric": "",
+          "refId": "A",
+          "step": 20,
+          "target": ""
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Network Traffic",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "Bps",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "bytes",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "decimals": null,
+      "editable": true,
+      "error": false,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 2,
+      "fillGradient": 0,
+      "grid": {},
+      "gridPos": {
+        "h": 7,
+        "w": 8,
+        "x": 16,
+        "y": 144
+      },
+      "hiddenSeries": false,
+      "id": 38,
+      "legend": {
+        "alignAsTable": false,
+        "avg": true,
+        "current": false,
+        "hideEmpty": false,
+        "max": false,
+        "min": false,
+        "rightSide": false,
+        "show": true,
+        "sort": "avg",
+        "sortDesc": true,
+        "total": false,
+        "values": true
+      },
+      "lines": true,
+      "linewidth": 2,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "calculatedInterval": "2s",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(node_vmstat_pswpin{instance=\"$host\"}[$interval]) * 4096 or irate(node_vmstat_pswpin{instance=\"$host\"}[5m]) * 4096",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Swap In (Reads)",
+          "metric": "",
+          "refId": "A",
+          "step": 20,
+          "target": ""
+        },
+        {
+          "calculatedInterval": "2s",
+          "datasourceErrors": {},
+          "errors": {},
+          "expr": "rate(node_vmstat_pswpout{instance=\"$host\"}[$interval]) * 4096 or irate(node_vmstat_pswpout{instance=\"$host\"}[5m]) * 4096",
+          "interval": "$interval",
+          "intervalFactor": 1,
+          "legendFormat": "Swap Out (Writes)",
+          "metric": "",
+          "refId": "B",
+          "step": 20,
+          "target": ""
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "Swap Activity",
+      "tooltip": {
+        "msResolution": false,
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "Bps",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        },
+        {
+          "format": "bytes",
+          "logBase": 1,
+          "max": null,
+          "min": 0,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    }
+  ],
+  "refresh": "1m",
+  "schemaVersion": 26,
+  "style": "dark",
+  "tags": [
+    "MySQL"
+  ],
+  "templating": {
+    "list": [
+      {
+        "allFormat": "glob",
+        "auto": true,
+        "auto_count": 200,
+        "auto_min": "1s",
+        "current": {
+          "selected": false,
+          "text": "auto",
+          "value": "$__auto_interval_interval"
+        },
+        "datasource": "Prometheus",
+        "error": null,
+        "hide": 0,
+        "includeAll": false,
+        "label": "Interval",
+        "multi": false,
+        "multiFormat": "glob",
+        "name": "interval",
+        "options": [
+          {
+            "selected": true,
+            "text": "auto",
+            "value": "$__auto_interval_interval"
+          },
+          {
+            "selected": false,
+            "text": "1s",
+            "value": "1s"
+          },
+          {
+            "selected": false,
+            "text": "5s",
+            "value": "5s"
+          },
+          {
+            "selected": false,
+            "text": "1m",
+            "value": "1m"
+          },
+          {
+            "selected": false,
+            "text": "5m",
+            "value": "5m"
+          },
+          {
+            "selected": false,
+            "text": "1h",
+            "value": "1h"
+          },
+          {
+            "selected": false,
+            "text": "6h",
+            "value": "6h"
+          },
+          {
+            "selected": false,
+            "text": "1d",
+            "value": "1d"
+          }
+        ],
+        "query": "1s,5s,1m,5m,1h,6h,1d",
+        "refresh": 2,
+        "skipUrlSync": false,
+        "type": "interval"
+      },
+      {
+        "allFormat": "glob",
+        "allValue": null,
+        "current": {
+          "selected": false,
+          "text": "mysqld-exporter",
+          "value": "mysqld-exporter"
+        },
+        "datasource": "Prometheus",
+        "definition": "",
+        "error": null,
+        "hide": 0,
+        "includeAll": false,
+        "label": "Host",
+        "multi": false,
+        "multiFormat": "regex values",
+        "name": "host",
+        "options": [],
+        "query": "label_values(mysql_up, instance)",
+        "refresh": 1,
+        "refresh_on_load": false,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 1,
+        "tagValuesQuery": null,
+        "tags": [],
+        "tagsQuery": null,
+        "type": "query",
+        "useTags": false
+      }
+    ]
+  },
+  "time": {
+    "from": "now-5m",
+    "to": "now"
+  },
+  "timepicker": {
+    "collapse": false,
+    "enable": true,
+    "hidden": false,
+    "notice": false,
+    "now": true,
+    "refresh_intervals": [
+      "5s",
+      "10s",
+      "30s",
+      "1m",
+      "5m",
+      "15m",
+      "30m",
+      "1h",
+      "2h",
+      "1d"
+    ],
+    "status": "Stable",
+    "time_options": [
+      "5m",
+      "15m",
+      "1h",
+      "6h",
+      "12h",
+      "24h",
+      "2d",
+      "7d",
+      "30d"
+    ],
+    "type": "timepicker"
+  },
+  "timezone": "browser",
+  "title": "BladeX监控大屏--MySql",
+  "uid": "bladex-mysql",
+  "version": 1
+}
diff --git a/skjcmanager/script/docker/app/prometheus/dashboard/bladex-nacos.json b/skjcmanager/script/docker/app/prometheus/dashboard/bladex-nacos.json
new file mode 100644
index 0000000..e306484
--- /dev/null
+++ b/skjcmanager/script/docker/app/prometheus/dashboard/bladex-nacos.json
@@ -0,0 +1,4539 @@
+{
+  "annotations": {
+    "list": [
+      {
+        "builtIn": 1,
+        "datasource": "-- Grafana --",
+        "enable": true,
+        "hide": true,
+        "iconColor": "rgba(0, 211, 255, 1)",
+        "name": "Annotations & Alerts",
+        "type": "dashboard"
+      }
+    ]
+  },
+  "description": "Nacos监控",
+  "editable": true,
+  "gnetId": 13221,
+  "graphTooltip": 1,
+  "id": 23,
+  "iteration": 1612422996467,
+  "links": [
+    {
+      "icon": "cloud",
+      "tags": [],
+      "title": "BladeX",
+      "tooltip": "",
+      "type": "link",
+      "url": "https://bladex.vip"
+    }
+  ],
+  "panels": [
+    {
+      "collapsed": false,
+      "datasource": "Prometheus",
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 0
+      },
+      "id": 80,
+      "panels": [],
+      "title": "nacos monitor",
+      "type": "row"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 3,
+        "x": 0,
+        "y": 1
+      },
+      "id": 89,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "count(nacos_monitor{name=\"configCount\"})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "",
+      "title": "UP",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 3,
+        "x": 3,
+        "y": 1
+      },
+      "id": 90,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "max(nacos_monitor{name='serviceCount'})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "",
+      "title": "service count",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 3,
+        "x": 6,
+        "y": 1
+      },
+      "id": 93,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "max(nacos_monitor{name='ipCount'})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "",
+      "title": "ip count",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 3,
+        "x": 9,
+        "y": 1
+      },
+      "id": 92,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "max(nacos_monitor{name='configCount', instance=~'$instance'})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "",
+      "title": "config count",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 3,
+        "x": 12,
+        "y": 1
+      },
+      "id": 91,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(nacos_monitor{name='longPolling'})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "",
+      "title": "long polling",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": false,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 3,
+        "x": 15,
+        "y": 1
+      },
+      "id": 88,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(nacos_monitor{name='getConfig', instance=~'$instance'}) by (name)",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "",
+      "title": "config push total",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {
+            "align": null,
+            "filterable": false
+          },
+          "mappings": [],
+          "thresholds": {
+            "mode": "absolute",
+            "steps": [
+              {
+                "color": "green",
+                "value": null
+              },
+              {
+                "color": "red",
+                "value": 80
+              }
+            ]
+          }
+        },
+        "overrides": []
+      },
+      "gridPos": {
+        "h": 3,
+        "w": 6,
+        "x": 18,
+        "y": 1
+      },
+      "id": 82,
+      "links": [],
+      "options": {
+        "content": "<center>\n  <a href=\"https://nacos.io\">\n    <img src=\"https://s1.ax1x.com/2020/10/22/BiuZRO.png\" style=\"height: 50px; margin-top:20px\" />\n  </a>\n</center>",
+        "mode": "html"
+      },
+      "pluginVersion": "7.3.7",
+      "timeFrom": null,
+      "timeShift": null,
+      "title": "",
+      "type": "text"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorPrefix": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "Prometheus",
+      "decimals": null,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 100,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 9,
+        "x": 0,
+        "y": 4
+      },
+      "id": 33,
+      "interval": "",
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "%",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "repeat": null,
+      "repeatDirection": "h",
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "max(system_cpu_usage{instance=~'$instance'}) * 100",
+          "format": "time_series",
+          "interval": "",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "50,80",
+      "title": "cpu",
+      "type": "singlestat",
+      "valueFontSize": "70%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorPrefix": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "Prometheus",
+      "decimals": null,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 70,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 9,
+        "x": 9,
+        "y": 4
+      },
+      "id": 32,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "%",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(jvm_memory_used_bytes{area=\"heap\", instance=~'$instance'})/sum(jvm_memory_max_bytes{area=\"heap\", instance=~'$instance'}) * 100",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "50,70",
+      "title": "memory",
+      "type": "singlestat",
+      "valueFontSize": "70%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "dashboardFilter": "",
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "folderId": null,
+      "gridPos": {
+        "h": 16,
+        "w": 6,
+        "x": 18,
+        "y": 4
+      },
+      "id": 48,
+      "limit": 10,
+      "links": [],
+      "nameFilter": "",
+      "onlyAlertsOnDashboard": false,
+      "repeat": null,
+      "show": "current",
+      "sortOrder": 1,
+      "stateFilter": [],
+      "title": "alert list",
+      "type": "alertlist"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorPrefix": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "Prometheus",
+      "decimals": null,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 1500,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 9,
+        "x": 0,
+        "y": 8
+      },
+      "id": 29,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "max(jvm_threads_daemon_threads{instance=~'$instance'})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "800,1500",
+      "title": "threads",
+      "type": "singlestat",
+      "valueFontSize": "70%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorPrefix": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "Prometheus",
+      "decimals": null,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 20,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 9,
+        "x": 9,
+        "y": 8
+      },
+      "id": 30,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "max(system_load_average_1m{instance=~'$instance'})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "5,10",
+      "title": "load",
+      "type": "singlestat",
+      "valueFontSize": "70%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorPrefix": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "Prometheus",
+      "decimals": null,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 5000,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 9,
+        "x": 0,
+        "y": 12
+      },
+      "id": 61,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "ms",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(rate(nacos_timer_seconds_sum{instance=~'$instance'}[1m]))/sum(rate(nacos_timer_seconds_count{instance=~'$instance'}[1m])) * 1000",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "3000,5000",
+      "title": "notify rt",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorPrefix": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "Prometheus",
+      "decimals": null,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 5000,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 9,
+        "x": 9,
+        "y": 12
+      },
+      "id": 26,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "ms",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(rate(http_server_requests_seconds_sum{instance=~'$instance'}[1m]))/sum(rate(http_server_requests_seconds_count{instance=~'$instance'}[1m])) * 1000",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "3000,5000",
+      "title": "rt",
+      "type": "singlestat",
+      "valueFontSize": "80%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorPrefix": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "Prometheus",
+      "decimals": null,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 2000,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 9,
+        "x": 0,
+        "y": 16
+      },
+      "id": 25,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "sum(rate(http_server_requests_seconds_count{instance=~'$instance'}[1m]))",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": "1000,2000",
+      "title": "qps",
+      "type": "singlestat",
+      "valueFontSize": "70%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "cacheTimeout": null,
+      "colorBackground": false,
+      "colorPrefix": false,
+      "colorValue": false,
+      "colors": [
+        "#299c46",
+        "rgba(237, 129, 40, 0.89)",
+        "#d44a3a"
+      ],
+      "datasource": "Prometheus",
+      "decimals": null,
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "format": "none",
+      "gauge": {
+        "maxValue": 5000,
+        "minValue": 0,
+        "show": true,
+        "thresholdLabels": false,
+        "thresholdMarkers": true
+      },
+      "gridPos": {
+        "h": 4,
+        "w": 9,
+        "x": 9,
+        "y": 16
+      },
+      "id": 70,
+      "interval": null,
+      "links": [],
+      "mappingType": 1,
+      "mappingTypes": [
+        {
+          "name": "value to text",
+          "value": 1
+        },
+        {
+          "name": "range to text",
+          "value": 2
+        }
+      ],
+      "maxDataPoints": 100,
+      "nullPointMode": "connected",
+      "nullText": null,
+      "postfix": "ms",
+      "postfixFontSize": "50%",
+      "prefix": "",
+      "prefixFontSize": "50%",
+      "rangeMaps": [
+        {
+          "from": "null",
+          "text": "N/A",
+          "to": "null"
+        }
+      ],
+      "sparkline": {
+        "fillColor": "rgba(31, 118, 189, 0.18)",
+        "full": false,
+        "lineColor": "rgb(31, 120, 193)",
+        "show": false
+      },
+      "tableColumn": "",
+      "targets": [
+        {
+          "expr": "max(nacos_monitor{name='avgPushCost', instance=~'$instance'})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": "1000,5000",
+      "title": "avgPushCost",
+      "type": "singlestat",
+      "valueFontSize": "70%",
+      "valueMaps": [
+        {
+          "op": "=",
+          "text": "N/A",
+          "value": "null"
+        }
+      ],
+      "valueName": "current"
+    },
+    {
+      "collapsed": false,
+      "datasource": "Prometheus",
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 20
+      },
+      "id": 78,
+      "panels": [],
+      "title": "nacos detail",
+      "type": "row"
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 0,
+        "y": 21
+      },
+      "hiddenSeries": false,
+      "id": 20,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(http_server_requests_seconds_sum{uri=~'/v1/cs/configs|/nacos/v1/ns', instance=~'$instance'}[1m])/rate(http_server_requests_seconds_count{uri=~'/v1/cs/configs|/nacos/v1/ns/instance|/nacos/v1/ns/health', instance=~'$instance'}[1m])) by (method,uri) * 1000",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        },
+        {
+          "expr": "sum(rate(http_server_requests_seconds_sum{instance=~'$instance'}[1m]))/sum(rate(http_server_requests_seconds_count{instance=~'$instance'}[1m])) * 1000",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 1,
+          "legendFormat": "all",
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "rt",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 8,
+        "y": 21
+      },
+      "hiddenSeries": false,
+      "id": 41,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "repeat": "group",
+      "repeatDirection": "h",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(nacos_monitor{name='longPolling', instance=~'$instance'})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "long polling",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 16,
+        "y": 21
+      },
+      "hiddenSeries": false,
+      "id": 37,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "max(system_load_average_1m{instance=~'$instance'})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "load 1m",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 0,
+        "y": 26
+      },
+      "hiddenSeries": false,
+      "id": 18,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(http_server_requests_seconds_count{uri=~'/v1/cs/configs|/nacos/v1/ns/instance|/nacos/v1/ns/health', instance=~'$instance'}[1m])) by (method,uri)",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        },
+        {
+          "expr": "sum(rate(http_server_requests_seconds_count[1m]))",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "qps",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 8,
+        "y": 26
+      },
+      "hiddenSeries": false,
+      "id": 52,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(nacos_monitor{name='leaderStatus', instance=~'$instance'})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "leaderStatus",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 16,
+        "y": 26
+      },
+      "hiddenSeries": false,
+      "id": 50,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(nacos_monitor{name='avgPushCost', instance=~'$instance'})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "avgPushCost",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 0,
+        "y": 31
+      },
+      "hiddenSeries": false,
+      "id": 53,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "max(nacos_monitor{name='maxPushCost', instance=~'$instance'})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "maxPushCost",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 8,
+        "y": 31
+      },
+      "hiddenSeries": false,
+      "id": 83,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(nacos_monitor{name='publish', instance=~'$instance'}) by (name)",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "publish config",
+          "refId": "A"
+        },
+        {
+          "expr": "sum(nacos_monitor{name='getConfig', instance=~'$instance'}) by (name)",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "get config",
+          "refId": "B"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "config statistics",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 16,
+        "y": 31
+      },
+      "hiddenSeries": false,
+      "id": 16,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(nacos_monitor{name=~'.*HealthCheck', instance=~'$instance'}[1m])) by (name) * 60",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "health check",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "collapsed": false,
+      "datasource": "Prometheus",
+      "gridPos": {
+        "h": 1,
+        "w": 24,
+        "x": 0,
+        "y": 36
+      },
+      "id": 74,
+      "panels": [],
+      "title": "nacos alert",
+      "type": "row"
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                50
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "A",
+                "1m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "for": "1m",
+        "frequency": "1m",
+        "handler": 1,
+        "name": "cpu alert",
+        "noDataState": "ok",
+        "notifications": [
+          {
+            "id": 1
+          }
+        ]
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 0,
+        "y": 37
+      },
+      "hiddenSeries": false,
+      "id": 45,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "max(system_cpu_usage) * 100",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 50
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "cpu alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                15
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "A",
+                "1m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "frequency": "60s",
+        "handler": 1,
+        "name": "load 1m alert",
+        "noDataState": "ok",
+        "notifications": []
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 8,
+        "y": 37
+      },
+      "hiddenSeries": false,
+      "id": 86,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "max(system_load_average_1m)",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 15
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "load  alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                60
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "A",
+                "5m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "frequency": "60s",
+        "handler": 1,
+        "name": "memory alert",
+        "noDataState": "ok",
+        "notifications": []
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 16,
+        "y": 37
+      },
+      "hiddenSeries": false,
+      "id": 46,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(jvm_memory_used_bytes{area=\"heap\"})/sum(jvm_memory_max_bytes{area=\"heap\"}) * 100",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 60
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "memory alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                500
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "A",
+                "1m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "frequency": "60s",
+        "handler": 1,
+        "name": "threads alert",
+        "noDataState": "ok",
+        "notifications": []
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 0,
+        "y": 42
+      },
+      "hiddenSeries": false,
+      "id": 39,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "max(jvm_threads_daemon_threads)",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 500
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "threads alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                5
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "A",
+                "1m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "for": "1m",
+        "frequency": "1m",
+        "handler": 1,
+        "message": "too many full gc",
+        "name": "gc alert",
+        "noDataState": "ok",
+        "notifications": [
+          {
+            "id": 1
+          }
+        ]
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 8,
+        "y": 42
+      },
+      "hiddenSeries": false,
+      "id": 38,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "max(rate(jvm_gc_pause_seconds_count{action=\"end of major GC\"}[5m])) * 300",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 5
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "gc alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                10
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "A",
+                "1m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "frequency": "60s",
+        "handler": 1,
+        "name": "notify task alert",
+        "noDataState": "ok",
+        "notifications": []
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 16,
+        "y": 42
+      },
+      "hiddenSeries": false,
+      "id": 49,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(nacos_monitor{name='notifyTask'})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 10
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "notify task alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                5000
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "B",
+                "1m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "frequency": "60s",
+        "handler": 1,
+        "name": "rt alert",
+        "noDataState": "ok",
+        "notifications": []
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 0,
+        "y": 47
+      },
+      "hiddenSeries": false,
+      "id": 85,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(http_server_requests_seconds_sum[1m]))/sum(rate(http_server_requests_seconds_count[1m])) * 1000",
+          "format": "time_series",
+          "hide": false,
+          "intervalFactor": 1,
+          "refId": "B"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 5000
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "rt alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                5000
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "A",
+                "1m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "frequency": "60s",
+        "handler": 1,
+        "name": "long polling alert",
+        "noDataState": "ok",
+        "notifications": []
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 8,
+        "y": 47
+      },
+      "hiddenSeries": false,
+      "id": 84,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "repeatDirection": "h",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "max(nacos_monitor{name='longPolling'})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "legendFormat": "",
+          "refId": "A"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 5000
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "long polling alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": "",
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                1
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "A",
+                "1m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "frequency": "60s",
+        "handler": 1,
+        "name": "config unhealth exception alert",
+        "noDataState": "ok",
+        "notifications": []
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 16,
+        "y": 47
+      },
+      "hiddenSeries": false,
+      "id": 56,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(nacos_exception_total{name='unhealth'}[1m])) * 60",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 1
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "config unhealth exception alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                1
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "A",
+                "1m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "frequency": "60s",
+        "handler": 1,
+        "name": "db exception alert",
+        "noDataState": "ok",
+        "notifications": []
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 0,
+        "y": 52
+      },
+      "hiddenSeries": false,
+      "id": 54,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(nacos_exception_total{name='db'}[1m])) * 60",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 1
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "db exception alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                1
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "A",
+                "1m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "frequency": "60s",
+        "handler": 1,
+        "name": "failedPush alert",
+        "noDataState": "ok",
+        "notifications": []
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 8,
+        "y": 52
+      },
+      "hiddenSeries": false,
+      "id": 51,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(nacos_monitor{name='failedPush'})",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 1
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "failed push alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                1
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "A",
+                "1m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "frequency": "60s",
+        "handler": 1,
+        "name": "illegalArgument exception alert",
+        "noDataState": "ok",
+        "notifications": []
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 16,
+        "y": 52
+      },
+      "hiddenSeries": false,
+      "id": 59,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(nacos_exception_total{name='illegalArgument'}[1m])) * 60",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 1
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "illegalArgument exception alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                1
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "A",
+                "5m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "frequency": "60s",
+        "handler": 1,
+        "name": "naming disk exception alert",
+        "noDataState": "ok",
+        "notifications": []
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 0,
+        "y": 57
+      },
+      "hiddenSeries": false,
+      "id": 57,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(nacos_exception_total{name='disk'}[1m])) * 60",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 1
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "naming disk exception alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                1
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "A",
+                "1m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "frequency": "60s",
+        "handler": 1,
+        "name": "config notify exception alert",
+        "noDataState": "ok",
+        "notifications": []
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 8,
+        "y": 57
+      },
+      "hiddenSeries": false,
+      "id": 55,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(nacos_exception_total{name='configNotify'}[1m])) * 60",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 1
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "config notify exception alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                1
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "A",
+                "1m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "frequency": "60s",
+        "handler": 1,
+        "name": "naming leader send beat failed exception alert",
+        "noDataState": "ok",
+        "notifications": []
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 8,
+        "x": 16,
+        "y": 57
+      },
+      "hiddenSeries": false,
+      "id": 58,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(nacos_exception_total{name='leaderSendBeatFailed'}[1m])) * 60",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 1
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "naming leader send beat failed exception alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    },
+    {
+      "alert": {
+        "conditions": [
+          {
+            "evaluator": {
+              "params": [
+                1
+              ],
+              "type": "gt"
+            },
+            "operator": {
+              "type": "and"
+            },
+            "query": {
+              "params": [
+                "A",
+                "1m",
+                "now"
+              ]
+            },
+            "reducer": {
+              "params": [],
+              "type": "avg"
+            },
+            "type": "query"
+          }
+        ],
+        "executionErrorState": "keep_state",
+        "frequency": "60s",
+        "handler": 1,
+        "name": "nacos_exception alert",
+        "noDataState": "ok",
+        "notifications": []
+      },
+      "aliasColors": {},
+      "bars": false,
+      "dashLength": 10,
+      "dashes": false,
+      "datasource": "Prometheus",
+      "fieldConfig": {
+        "defaults": {
+          "custom": {}
+        },
+        "overrides": []
+      },
+      "fill": 1,
+      "fillGradient": 0,
+      "gridPos": {
+        "h": 5,
+        "w": 24,
+        "x": 0,
+        "y": 62
+      },
+      "hiddenSeries": false,
+      "id": 60,
+      "legend": {
+        "avg": false,
+        "current": false,
+        "max": false,
+        "min": false,
+        "show": true,
+        "total": false,
+        "values": false
+      },
+      "lines": true,
+      "linewidth": 1,
+      "links": [],
+      "nullPointMode": "null",
+      "options": {
+        "alertThreshold": true
+      },
+      "percentage": false,
+      "pluginVersion": "7.3.7",
+      "pointradius": 5,
+      "points": false,
+      "renderer": "flot",
+      "seriesOverrides": [],
+      "spaceLength": 10,
+      "stack": false,
+      "steppedLine": false,
+      "targets": [
+        {
+          "expr": "sum(rate(nacos_exception_total{name='nacos'}[1m])) * 60",
+          "format": "time_series",
+          "intervalFactor": 1,
+          "refId": "A"
+        }
+      ],
+      "thresholds": [
+        {
+          "colorMode": "critical",
+          "fill": true,
+          "line": true,
+          "op": "gt",
+          "value": 1
+        }
+      ],
+      "timeFrom": null,
+      "timeRegions": [],
+      "timeShift": null,
+      "title": "nacos exception alert",
+      "tooltip": {
+        "shared": true,
+        "sort": 0,
+        "value_type": "individual"
+      },
+      "type": "graph",
+      "xaxis": {
+        "buckets": null,
+        "mode": "time",
+        "name": null,
+        "show": true,
+        "values": []
+      },
+      "yaxes": [
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        },
+        {
+          "format": "short",
+          "label": null,
+          "logBase": 1,
+          "max": null,
+          "min": null,
+          "show": true
+        }
+      ],
+      "yaxis": {
+        "align": false,
+        "alignLevel": null
+      }
+    }
+  ],
+  "refresh": false,
+  "schemaVersion": 26,
+  "style": "dark",
+  "tags": [
+    "nacos"
+  ],
+  "templating": {
+    "list": [
+      {
+        "allValue": "",
+        "current": {
+          "selected": false,
+          "text": "All",
+          "value": "$__all"
+        },
+        "datasource": "Prometheus",
+        "definition": "label_values(instance)",
+        "error": null,
+        "hide": 0,
+        "includeAll": true,
+        "label": "instance",
+        "multi": false,
+        "name": "instance",
+        "options": [],
+        "query": "label_values(instance)",
+        "refresh": 2,
+        "regex": "",
+        "skipUrlSync": false,
+        "sort": 0,
+        "tagValuesQuery": "",
+        "tags": [],
+        "tagsQuery": "",
+        "type": "query",
+        "useTags": false
+      }
+    ]
+  },
+  "time": {
+    "from": "now-5m",
+    "to": "now"
+  },
+  "timepicker": {
+    "refresh_intervals": [
+      "5s",
+      "10s",
+      "30s",
+      "1m",
+      "5m",
+      "15m",
+      "30m",
+      "1h",
+      "2h",
+      "1d"
+    ],
+    "time_options": [
+      "5m",
+      "15m",
+      "1h",
+      "6h",
+      "12h",
+      "24h",
+      "2d",
+      "7d",
+      "30d"
+    ]
+  },
+  "timezone": "browser",
+  "title": "BladeX监控大屏--Nacos",
+  "uid": "bladex-nacos",
+  "version": 1
+}
diff --git a/skjcmanager/script/docker/elk/README.md b/skjcmanager/script/docker/elk/README.md
new file mode 100644
index 0000000..ac5b782
--- /dev/null
+++ b/skjcmanager/script/docker/elk/README.md
@@ -0,0 +1,27 @@
+## 一、调整内存:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144](elasticsearch用户拥有的内存权限太小,至少需要262144)
+
+#### 1.修改配置sysctl.conf
+[root@localhost ~]# vi /etc/sysctl.conf
+#### 2.添加下面配置:
+vm.max_map_count=262144
+#### 3.重新加载:
+[root@localhost ~]# sysctl -p
+#### 4.最后重新启动elasticsearch,即可启动成功。
+
+
+## 二、Docker 命令自动补全
+#### 1.安装依赖工具bash-complete
+[root@localhost ~]# yum install -y bash-completion
+
+[root@localhost ~]# source /usr/share/bash-completion/completions/docker
+
+[root@localhost ~]# source /usr/share/bash-completion/bash_completion
+
+## 三、将本文件夹内的文件拷贝至服务器
+#### 1.对sh脚本赋予执行权限
+
+#### 2.执行 ./deploy.sh
+
+#### 3.等待服务启动完毕即可
+
+#### 4.卸载执行 ./undeploy.sh
\ No newline at end of file
diff --git a/skjcmanager/script/docker/elk/deploy.sh b/skjcmanager/script/docker/elk/deploy.sh
new file mode 100644
index 0000000..cb003fa
--- /dev/null
+++ b/skjcmanager/script/docker/elk/deploy.sh
@@ -0,0 +1,88 @@
+#./bin/bash
+# 定义颜色
+BLUE_COLOR="\033[36m"
+RED_COLOR="\033[31m"
+GREEN_COLOR="\033[32m"
+VIOLET_COLOR="\033[35m"
+RES="\033[0m"
+
+echo -e "${BLUE_COLOR}# ######################################################################${RES}"
+echo -e "${BLUE_COLOR}#                       Docker ELK Deploy Script                       #${RES}"
+echo -e "${BLUE_COLOR}# ######################################################################${RES}"
+
+# 创建目录
+echo -e "${BLUE_COLOR}---> create [elasticsearch]directory start.${RES}"
+if [ ! -d "./elasticsearch/" ]; then
+mkdir -p ./elasticsearch/master/conf ./elasticsearch/master/data ./elasticsearch/master/logs \
+    ./elasticsearch/slave1/conf ./elasticsearch/slave1/data ./elasticsearch/slave1/logs \
+    ./elasticsearch/slave2/conf ./elasticsearch/slave2/data ./elasticsearch/slave2/logs
+fi
+
+echo -e "${RED_COLOR}---> create [kibana]directory start.${RES}"
+if [ ! -d "./kibana/" ]; then
+mkdir -p ./kibana/conf ./kibana/logs
+fi
+
+ echo -e "${GREEN_COLOR}---> create [logstash]directory start.${RES}"
+ if [ ! -d "./logstash/" ]; then
+ mkdir -p ./logstash/conf ./logstash/logs
+ fi
+
+echo -e "${GREEN_COLOR}---> create [filebeat]directory start.${RES}"
+if [ ! -d "./filebeat/" ]; then
+mkdir -p ./filebeat/conf ./filebeat/logs ./filebeat/data
+fi
+
+echo -e "${VIOLET_COLOR}---> create [nginx]directory start.${RES}"
+if [ ! -d "./nginx/" ]; then
+mkdir -p ./nginx/conf ./nginx/logs ./nginx/www
+fi
+echo -e "${BLUE_COLOR}===> create directory success.${RES}"
+
+# 目录授权(data/logs 都要授读/写权限)
+echo -e "${BLUE_COLOR}---> directory authorize start.${RES}"
+if [ -d "./elasticsearch/" ]; then
+chmod 777 ./elasticsearch/master/data/ ./elasticsearch/master/logs/ \
+    ./elasticsearch/slave1/data/ ./elasticsearch/slave1/logs/ \
+    ./elasticsearch/slave2/data/ ./elasticsearch/slave2/logs
+fi
+
+if [ -d "./filebeat/" ]; then
+chmod 777 ./filebeat/data/ ./filebeat/logs/
+fi
+echo -e "${BLUE_COLOR}===> directory authorize success.${RES}"
+
+# 移动配置文件
+echo -e "${BLUE_COLOR}---> move [elasticsearch]config file start.${RES}"
+if [ -f "./es-master.yml" ] && [ -f "./es-slave1.yml" ] && [ -f "./es-slave2.yml" ]; then
+mv ./es-master.yml ./elasticsearch/master/conf
+mv ./es-slave1.yml ./elasticsearch/slave1/conf
+mv ./es-slave2.yml ./elasticsearch/slave2/conf
+fi
+
+echo -e "${RED_COLOR}---> move [kibana]config file start.${RES}"
+if [ -f "./kibana.yml" ]; then
+mv ./kibana.yml ./kibana/conf
+fi
+
+echo -e "${GREEN_COLOR}---> move [logstash]config file start.${RES}"
+if [ -f "./logstash.yml" ] && [ -f "./logstash-filebeat.conf" ]; then
+mv ./logstash-filebeat.conf ./logstash/conf
+mv ./logstash.yml ./logstash/conf
+fi
+
+echo -e "${GREEN_COLOR}---> move [filebeat]config file start.${RES}"
+if [ -f "./filebeat.yml" ]; then
+mv ./filebeat.yml ./filebeat/conf
+fi
+
+echo -e "${VIOLET_COLOR}---> move [nginx]config file start.${RES}"
+if [ -f "./nginx.conf" ]; then
+mv ./nginx.conf ./nginx/conf
+fi
+echo -e "${BLUE_COLOR}===> move config files success.${RES}"
+echo -e "${GREEN_COLOR}>>>>>>>>>>>>>>>>>> The End <<<<<<<<<<<<<<<<<<${RES}"
+
+# 部署项目
+echo -e "${BLUE_COLOR}==================> Docker deploy Start <==================${RES}"
+docker-compose up --build -d
diff --git a/skjcmanager/script/docker/elk/docker-compose.yml b/skjcmanager/script/docker/elk/docker-compose.yml
new file mode 100644
index 0000000..a738465
--- /dev/null
+++ b/skjcmanager/script/docker/elk/docker-compose.yml
@@ -0,0 +1,115 @@
+version: "3"
+services:
+  es-master:
+    container_name: es-master
+    hostname: es-master
+    image: elasticsearch:7.1.1
+    restart: always
+    ports:
+      - 9200:9200
+      - 9300:9300
+    volumes:
+      - ./elasticsearch/master/conf/es-master.yml:/usr/share/elasticsearch/config/elasticsearch.yml
+      - ./elasticsearch/master/data:/usr/share/elasticsearch/data
+      - ./elasticsearch/master/logs:/usr/share/elasticsearch/logs
+    environment:
+      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
+
+  es-slave1:
+    container_name: es-slave1
+    image: elasticsearch:7.1.1
+    restart: always
+    ports:
+      - 9201:9200
+      - 9301:9300
+    volumes:
+      - ./elasticsearch/slave1/conf/es-slave1.yml:/usr/share/elasticsearch/config/elasticsearch.yml
+      - ./elasticsearch/slave1/data:/usr/share/elasticsearch/data
+      - ./elasticsearch/slave1/logs:/usr/share/elasticsearch/logs
+    environment:
+      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
+
+  es-slave2:
+    container_name: es-slave2
+    image: elasticsearch:7.1.1
+    restart: always
+    ports:
+      - 9202:9200
+      - 9302:9300
+    volumes:
+      - ./elasticsearch/slave2/conf/es-slave2.yml:/usr/share/elasticsearch/config/elasticsearch.yml
+      - ./elasticsearch/slave2/data:/usr/share/elasticsearch/data
+      - ./elasticsearch/slave2/logs:/usr/share/elasticsearch/logs
+    environment:
+      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
+
+  es-head:
+    container_name: es-head
+    image: mobz/elasticsearch-head:5
+    restart: always
+    ports:
+      - 9100:9100
+    depends_on:
+      - es-master
+      - es-slave1
+      - es-slave2
+
+  kibana:
+    container_name: kibana
+    hostname: kibana
+    image: kibana:7.1.1
+    restart: always
+    ports:
+      - 5601:5601
+    volumes:
+      - ./kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml
+    environment:
+      - elasticsearch.hosts=http://es-master:9200
+    depends_on:
+      - es-master
+      - es-slave1
+      - es-slave2
+
+  filebeat:
+    # 容器名称
+    container_name: filebeat
+    # 主机名称
+    hostname: filebeat
+    # 镜像
+    image: docker.elastic.co/beats/filebeat:7.1.1
+    # 重启机制
+    restart: always
+    # 持久化挂载
+    volumes:
+      - ./filebeat/conf/filebeat.yml:/usr/share/filebeat/filebeat.yml
+      # 映射到容器中[作为数据源]
+      - ./logs:/home/project/elk/logs
+      - ./filebeat/logs:/usr/share/filebeat/logs
+      - ./filebeat/data:/usr/share/filebeat/data
+    # 将指定容器连接到当前连接,可以设置别名,避免ip方式导致的容器重启动态改变的无法连接情况
+    links:
+      - logstash
+    ports:
+      - 9000:9000
+    # 依赖服务[可无]
+    depends_on:
+      - es-master
+      - es-slave1
+      - es-slave2
+
+  logstash:
+    container_name: logstash
+    hostname: logstash
+    image: logstash:7.1.1
+    command: logstash -f ./conf/logstash-filebeat.conf
+    restart: always
+    volumes:
+      # 映射到容器中
+      - ./logstash/conf/logstash-filebeat.conf:/usr/share/logstash/conf/logstash-filebeat.conf
+      - ./logstash/conf/logstash.yml:/usr/share/logstash/config/logstash.yml
+    ports:
+      - 5044:5044
+    depends_on:
+      - es-master
+      - es-slave1
+      - es-slave2
diff --git a/skjcmanager/script/docker/elk/es-master.yml b/skjcmanager/script/docker/elk/es-master.yml
new file mode 100644
index 0000000..8d7c298
--- /dev/null
+++ b/skjcmanager/script/docker/elk/es-master.yml
@@ -0,0 +1,28 @@
+# 集群名称
+cluster.name: es-cluster
+# 节点名称
+node.name: es-master
+# 是否可以成为master节点
+node.master: true
+# 是否允许该节点存储数据,默认开启
+node.data: false
+# 网络绑定
+network.host: 0.0.0.0
+# 设置对外服务的http端口
+http.port: 9200
+# 设置节点间交互的tcp端口
+transport.port: 9300
+# 集群发现
+discovery.seed_hosts:
+  - es-master
+  - es-slave1
+  - es-slave2
+# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
+cluster.initial_master_nodes:
+  - es-master
+# 支持跨域访问
+http.cors.enabled: true
+http.cors.allow-origin: "*"
+# 安全认证
+xpack.security.enabled: false
+#http.cors.allow-headers: "Authorization"
diff --git a/skjcmanager/script/docker/elk/es-slave1.yml b/skjcmanager/script/docker/elk/es-slave1.yml
new file mode 100644
index 0000000..b252387
--- /dev/null
+++ b/skjcmanager/script/docker/elk/es-slave1.yml
@@ -0,0 +1,28 @@
+# 集群名称
+cluster.name: es-cluster
+# 节点名称
+node.name: es-slave1
+# 是否可以成为master节点
+node.master: true
+# 是否允许该节点存储数据,默认开启
+node.data: true
+# 网络绑定
+network.host: 0.0.0.0
+# 设置对外服务的http端口
+http.port: 9201
+# 设置节点间交互的tcp端口
+#transport.port: 9301
+# 集群发现
+discovery.seed_hosts:
+  - es-master
+  - es-slave1
+  - es-slave2
+# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
+cluster.initial_master_nodes:
+  - es-master
+# 支持跨域访问
+http.cors.enabled: true
+http.cors.allow-origin: "*"
+# 安全认证
+xpack.security.enabled: false
+#http.cors.allow-headers: "Authorization"
diff --git a/skjcmanager/script/docker/elk/es-slave2.yml b/skjcmanager/script/docker/elk/es-slave2.yml
new file mode 100644
index 0000000..8f489c2
--- /dev/null
+++ b/skjcmanager/script/docker/elk/es-slave2.yml
@@ -0,0 +1,28 @@
+# 集群名称
+cluster.name: es-cluster
+# 节点名称
+node.name: es-slave2
+# 是否可以成为master节点
+node.master: true
+# 是否允许该节点存储数据,默认开启
+node.data: true
+# 网络绑定
+network.host: 0.0.0.0
+# 设置对外服务的http端口
+http.port: 9202
+# 设置节点间交互的tcp端口
+#transport.port: 9302
+# 集群发现
+discovery.seed_hosts:
+  - es-master
+  - es-slave1
+  - es-slave2
+# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算
+cluster.initial_master_nodes:
+  - es-master
+# 支持跨域访问
+http.cors.enabled: true
+http.cors.allow-origin: "*"
+# 安全认证
+xpack.security.enabled: false
+#http.cors.allow-headers: "Authorization"
diff --git a/skjcmanager/script/docker/elk/filebeat.yml b/skjcmanager/script/docker/elk/filebeat.yml
new file mode 100644
index 0000000..1825380
--- /dev/null
+++ b/skjcmanager/script/docker/elk/filebeat.yml
@@ -0,0 +1,37 @@
+filebeat.inputs:
+  - type: log
+    enabled: true
+    paths:
+      # 当前目录下的所有.log文件
+      - /home/project/elk/logs/*.log
+    multiline.pattern: ^\[
+    multiline.negate: true
+    multiline.match: after
+  - type: tcp
+    enabled: true
+    max_message_size: 10MiB
+    host: "0.0.0.0:9000"
+
+filebeat.config.modules:
+  path: ${path.config}/modules.d/*.yml
+  reload.enabled: false
+
+setup.template.settings:
+  index.number_of_shards: 1
+
+setup.dashboards.enabled: false
+
+setup.kibana:
+  host: "http://kibana:5601"
+
+# 不直接传输至ES
+#output.elasticsearch:
+# hosts: ["http://es-master:9200"]
+# index: "filebeat-%{[beat.version]}-%{+yyyy.MM.dd}"
+
+output.logstash:
+  hosts: ["logstash:5044"]
+
+processors:
+  - add_host_metadata: ~
+  - add_cloud_metadata: ~
diff --git a/skjcmanager/script/docker/elk/kibana.yml b/skjcmanager/script/docker/elk/kibana.yml
new file mode 100644
index 0000000..80c2d28
--- /dev/null
+++ b/skjcmanager/script/docker/elk/kibana.yml
@@ -0,0 +1,8 @@
+# 服务端口
+server.port: 5601
+# 服务IP
+server.host: "0.0.0.0"
+# ES
+elasticsearch.hosts: ["http://es-master:9200"]
+# 汉化
+i18n.locale: "zh-CN"
diff --git a/skjcmanager/script/docker/elk/logstash-filebeat.conf b/skjcmanager/script/docker/elk/logstash-filebeat.conf
new file mode 100644
index 0000000..3c2938f
--- /dev/null
+++ b/skjcmanager/script/docker/elk/logstash-filebeat.conf
@@ -0,0 +1,23 @@
+input {
+    # 来源beats
+    beats {
+        # 端口
+        port => "5044"
+    }
+}
+# 分析、过滤插件,可以多个
+filter {
+    grok {
+        match => { "message" => "%{COMBINEDAPACHELOG}"}
+    }
+    geoip {
+        source => "clientip"
+    }
+}
+output {
+    # 选择elasticsearch
+    elasticsearch {
+        hosts => ["http://es-master:9200"]
+        index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
+    }
+}
diff --git a/skjcmanager/script/docker/elk/logstash.yml b/skjcmanager/script/docker/elk/logstash.yml
new file mode 100644
index 0000000..ce1b72d
--- /dev/null
+++ b/skjcmanager/script/docker/elk/logstash.yml
@@ -0,0 +1,8 @@
+# 服务IP
+http.host: "0.0.0.0"
+# ES
+xpack.monitoring.elasticsearch.hosts: [ "http://es-master:9200" ]
+
+xpack.monitoring.enabled: true
+
+xpack.management.enabled: false
diff --git a/skjcmanager/script/docker/elk/undeploy.sh b/skjcmanager/script/docker/elk/undeploy.sh
new file mode 100644
index 0000000..c7d3632
--- /dev/null
+++ b/skjcmanager/script/docker/elk/undeploy.sh
@@ -0,0 +1,16 @@
+#./bin/bash
+# 定义颜色
+BLUE_COLOR="\033[36m"
+RED_COLOR="\033[31m"
+GREEN_COLOR="\033[32m"
+VIOLET_COLOR="\033[35m"
+RES="\033[0m"
+
+echo -e "${BLUE_COLOR}# ######################################################################${RES}"
+echo -e "${BLUE_COLOR}#                       Docker ELK UnDeploy Script                     #${RES}"
+echo -e "${BLUE_COLOR}# ######################################################################${RES}"
+
+# 部署项目
+echo -e "${BLUE_COLOR}==================> Docker UnDeploy Start <==================${RES}"
+docker-compose stop
+docker-compose rm
diff --git a/skjcmanager/script/fatjar/service.cmd b/skjcmanager/script/fatjar/service.cmd
new file mode 100644
index 0000000..a5ab801
--- /dev/null
+++ b/skjcmanager/script/fatjar/service.cmd
@@ -0,0 +1 @@
+java -Xms1024m -Xmx1024m -jar app.jar
diff --git a/skjcmanager/script/fatjar/service.sh b/skjcmanager/script/fatjar/service.sh
new file mode 100644
index 0000000..a2f1875
--- /dev/null
+++ b/skjcmanager/script/fatjar/service.sh
@@ -0,0 +1,76 @@
+#!/bin/bash
+
+#设置jar文件名
+APP_NAME=app.jar
+
+#使用说明,用来提示输入参数
+usage() {
+echo "Usage: sh 执行脚本.sh [start|stop|restart|status]"
+exit 1
+}
+
+#检查程序是否在运行
+is_exist(){
+pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
+#如果不存在返回1,存在返回0
+if [ -z "${pid}" ]; then
+return 1
+else
+return 0
+fi
+}
+
+#启动方法
+start(){
+is_exist
+if [ $? -eq "0" ]; then
+echo "${APP_NAME} is already running. pid=${pid} ."
+else
+nohup java -Xms1024m -Xmx1024m -jar $APP_NAME > /dev/null 2>&1 &
+fi
+}
+
+#停止方法
+stop(){
+is_exist
+if [ $? -eq "0" ]; then
+kill -9 $pid
+else
+echo "${APP_NAME} is not running"
+fi
+}
+
+#输出运行状态
+status(){
+is_exist
+if [ $? -eq "0" ]; then
+echo "${APP_NAME} is running. Pid is ${pid}"
+else
+echo "${APP_NAME} is NOT running."
+fi
+}
+
+#重启
+restart(){
+stop
+start
+}
+
+#根据输入参数,选择执行对应方法,不输入则执行使用说明
+case "$1" in
+"start")
+start
+;;
+"stop")
+stop
+;;
+"status")
+status
+;;
+"restart")
+restart
+;;
+*)
+usage
+;;
+esac
diff --git a/skjcmanager/skjcmanager-auth/Dockerfile b/skjcmanager/skjcmanager-auth/Dockerfile
new file mode 100644
index 0000000..f659c09
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/Dockerfile
@@ -0,0 +1,21 @@
+#Docker镜像可以选择以下三种,前两种已经内置字体,第三种为原生的openjdk8-openj9镜像
+#1.FROM bladex/alpine-java:8_server-jre_cn_unlimited
+#2.FROM bladex/alpine-java:openjdk8-openj9_cn_slim
+#3.FROM adoptopenjdk/openjdk8-openj9:jdk8u262-b10_openj9-0.21.0-alpine-slim
+#第3点的tag可以到该地址查询:https://hub.docker.com/r/adoptopenjdk/openjdk8-openj9/tags?page=1&ordering=last_updated&name=alpine-slim
+#版本介绍一览:https://hub.docker.com/r/adoptopenjdk/openjdk8-openj9
+FROM bladex/alpine-java:openjdk8-openj9_cn_slim
+
+MAINTAINER bladejava@qq.com
+
+RUN mkdir -p /blade/auth
+
+WORKDIR /blade/auth
+
+EXPOSE 8100
+
+ADD ./target/blade-auth.jar ./app.jar
+
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
+
+CMD ["--spring.profiles.active=test"]
diff --git a/skjcmanager/skjcmanager-auth/README.md b/skjcmanager/skjcmanager-auth/README.md
new file mode 100644
index 0000000..5c1c3e5
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/README.md
@@ -0,0 +1,32 @@
+## 目前主要支持的oauth协议
+一、 授权码模式
+授权码模式(authorization_code)主要针对第三方应用,是最为复杂也最为安全的一种模式,操作步骤如下
+1. 访问地址:http://localhost:8100/oauth/authorize?client_id=blade&redirect_uri=http://example.com&code=233333&response_type=code
+2. 获取跳转后的code值(http://example.com/?code=VhYNLR)之后,调用 http://localhost/blade-auth/oauth/token 传入对应的参数
+
+请求头:
+Authorization : Basic YmxhZGU6YmxhZGU= ("YmxhZGU6YmxhZGU="为clientId:clientSecret串转换为的base64编码)
+
+表单:
+grant_type:authorization_code
+scope:all
+code:VhYNLR
+redirect_uri: http://example.com
+
+二、 密码模式
+密码模式(password)主要针对自家应用,可信度较高,所以可以使用简便安全共存的模式,操作步骤如下
+1. 直接调用 http://localhost/blade-auth/oauth/token 传入对应的参数
+
+请求头:
+Authorization : Basic YmxhZGU6YmxhZGU= ("YmxhZGU6YmxhZGU="为clientId:clientSecret串转换为的base64编码)
+
+表单:
+grant_type:password
+scope:all
+username:admin
+password:123456
+
+## 获取到token后如何获取用户信息
+1. 拼接请求头
+Authorization :bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZXN0IjoidGVzdCIsInVzZXJfbmFtZSI6ImFkbWluIiwic2NvcGUiOlsiYWxsIl0sImV4cCI6MTU1MzE2MTA5NSwiYXV0aG9yaXRpZXMiOlsiUk9MRV9VU0VSIl0sImp0aSI6IjE0YmMyYjAyLTgxY2UtNDFiNC04ZTI3LTA5YWE0ZmU4ZWMwYyIsImNsaWVudF9pZCI6ImJsYWRlIn0.jTmioQDq-fSNNn7YCwl3wP0JE-etSWtzLDe545mDbP4
+2. 调用 http://localhost/blade-auth/oauth/user-info 既可获得对应用户信息
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-auth/pom.xml b/skjcmanager/skjcmanager-auth/pom.xml
new file mode 100644
index 0000000..91693a7
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/pom.xml
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <artifactId>skjcmanager</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+
+    <artifactId>skjcmanager-auth</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <!--Blade-->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-common</artifactId>
+            <version>${bladex.project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springblade</groupId>
+                    <artifactId>skjcmanager-scope-api</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-db</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-cloud</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-metrics</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-swagger</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-social</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-user-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-system-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <!--安全模块-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.security.oauth</groupId>
+            <artifactId>spring-security-oauth2</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.security</groupId>
+            <artifactId>spring-security-jwt</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-redis</artifactId>
+        </dependency>
+        <!-- 验证码 -->
+        <dependency>
+            <groupId>com.github.whvcse</groupId>
+            <artifactId>easy-captcha</artifactId>
+        </dependency>
+        <!--freemarker-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-freemarker</artifactId>
+        </dependency>
+        <!-- 链路追踪、服务监控 -->
+        <!--<dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-trace</artifactId>
+        </dependency>-->
+        <!-- 解决Java11无法运行的问题 -->
+        <!--<dependency>
+            <groupId>javax.xml.bind</groupId>
+            <artifactId>jaxb-api</artifactId>
+            <version>2.2.11</version>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.xml.bind</groupId>
+            <artifactId>jaxb-core</artifactId>
+            <version>2.2.11</version>
+        </dependency>
+        <dependency>
+            <groupId>com.sun.xml.bind</groupId>
+            <artifactId>jaxb-impl</artifactId>
+            <version>2.2.11</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.activation</groupId>
+            <artifactId>activation</artifactId>
+            <version>1.1.1</version>
+        </dependency>-->
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>dockerfile-maven-plugin</artifactId>
+                <configuration>
+                    <username>${docker.username}</username>
+                    <password>${docker.password}</password>
+                    <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+                    <tag>${project.version}</tag>
+                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+                    <buildArgs>
+                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+                    </buildArgs>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/AuthApplication.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/AuthApplication.java
new file mode 100644
index 0000000..250626b
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/AuthApplication.java
@@ -0,0 +1,39 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth;
+
+
+import cn.gistack.common.constant.AppsConstant;
+import org.springblade.core.cloud.client.BladeCloudApplication;
+import org.springblade.core.launch.BladeApplication;
+import org.springblade.core.launch.constant.AppConstant;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+/**
+ * 用户认证服务器
+ *
+ * @author Chill
+ */
+@BladeCloudApplication
+@EnableFeignClients(basePackages = "cn.gistack.system.user.feign")
+public class AuthApplication {
+
+	public static void main(String[] args) {
+		BladeApplication.run(AppsConstant.APPLICATION_AUTH_NAME, AuthApplication.class, args);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/BladeAuthorizationServerConfiguration.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/BladeAuthorizationServerConfiguration.java
new file mode 100644
index 0000000..4c9a655
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/BladeAuthorizationServerConfiguration.java
@@ -0,0 +1,117 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.config;
+
+import cn.gistack.auth.constant.AuthConstant;
+import cn.gistack.auth.service.BladeClientDetailsServiceImpl;
+import lombok.AllArgsConstructor;
+import lombok.SneakyThrows;
+import cn.gistack.auth.granter.BladeTokenGranter;
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.social.props.SocialProperties;
+import cn.gistack.system.user.feign.IUserClient;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.annotation.Order;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer;
+import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter;
+import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer;
+import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer;
+import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerSecurityConfigurer;
+import org.springframework.security.oauth2.provider.TokenGranter;
+import org.springframework.security.oauth2.provider.token.TokenEnhancer;
+import org.springframework.security.oauth2.provider.token.TokenEnhancerChain;
+import org.springframework.security.oauth2.provider.token.TokenStore;
+import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter;
+
+import javax.sql.DataSource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 认证服务器配置
+ *
+ * @author Chill
+ */
+@Order
+@Configuration(proxyBeanMethods = false)
+@AllArgsConstructor
+@EnableAuthorizationServer
+public class BladeAuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {
+
+	private final DataSource dataSource;
+
+	private final AuthenticationManager authenticationManager;
+
+	private final UserDetailsService userDetailsService;
+
+	private final TokenStore tokenStore;
+
+	private final TokenEnhancer jwtTokenEnhancer;
+
+	private final JwtAccessTokenConverter jwtAccessTokenConverter;
+
+	private final BladeRedis bladeRedis;
+
+	private final IUserClient userClient;
+
+	private final SocialProperties socialProperties;
+
+	@Override
+	public void configure(AuthorizationServerEndpointsConfigurer endpoints) {
+		//获取自定义tokenGranter
+		TokenGranter tokenGranter = BladeTokenGranter.getTokenGranter(authenticationManager, endpoints, bladeRedis, userClient, socialProperties);
+
+		//配置端点
+		endpoints.tokenStore(tokenStore)
+			.authenticationManager(authenticationManager)
+			.userDetailsService(userDetailsService)
+			.tokenGranter(tokenGranter);
+
+		//扩展token返回结果
+		if (jwtAccessTokenConverter != null && jwtTokenEnhancer != null) {
+			TokenEnhancerChain tokenEnhancerChain = new TokenEnhancerChain();
+			List<TokenEnhancer> enhancerList = new ArrayList<>();
+			enhancerList.add(jwtTokenEnhancer);
+			enhancerList.add(jwtAccessTokenConverter);
+			tokenEnhancerChain.setTokenEnhancers(enhancerList);
+			//jwt增强
+			endpoints.tokenEnhancer(tokenEnhancerChain).accessTokenConverter(jwtAccessTokenConverter);
+		}
+	}
+
+	/**
+	 * 配置客户端信息
+	 */
+	@Override
+	@SneakyThrows
+	public void configure(ClientDetailsServiceConfigurer clients) {
+		BladeClientDetailsServiceImpl clientDetailsService = new BladeClientDetailsServiceImpl(dataSource);
+		clientDetailsService.setSelectClientDetailsSql(AuthConstant.DEFAULT_SELECT_STATEMENT);
+		clientDetailsService.setFindClientDetailsSql(AuthConstant.DEFAULT_FIND_STATEMENT);
+		clients.withClientDetails(clientDetailsService);
+	}
+
+	@Override
+	public void configure(AuthorizationServerSecurityConfigurer oauthServer) {
+		oauthServer
+			.allowFormAuthenticationForClients()
+			.tokenKeyAccess("permitAll()")
+			.checkTokenAccess("isAuthenticated()");
+	}
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/BladeResourceServerConfiguration.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/BladeResourceServerConfiguration.java
new file mode 100644
index 0000000..13cfe8b
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/BladeResourceServerConfiguration.java
@@ -0,0 +1,57 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.config;
+
+import lombok.AllArgsConstructor;
+import lombok.SneakyThrows;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.oauth2.config.annotation.web.configuration.ResourceServerConfigurerAdapter;
+
+/**
+ * 自定义资源放行
+ *
+ * @author Chill
+ */
+@Configuration(proxyBeanMethods = false)
+@AllArgsConstructor
+public class BladeResourceServerConfiguration extends ResourceServerConfigurerAdapter {
+
+	@Override
+	@SneakyThrows
+	public void configure(HttpSecurity http) {
+		http.authorizeRequests()
+			.antMatchers(
+				"/actuator/**",
+				"/oauth/captcha",
+				"/oauth/logout",
+				"/oauth/clear-cache",
+				"/oauth/render/**",
+				"/oauth/callback/**",
+				"/oauth/revoke/**",
+				"/oauth/refresh/**",
+				"/oauth/login",
+				"/oauth/form",
+				"/token/**",
+				"/mobile/**",
+				"/static/**",
+				"/v2/api-docs").permitAll()
+			.anyRequest().authenticated().and()
+			.csrf().disable();
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/JwtTokenStoreConfiguration.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/JwtTokenStoreConfiguration.java
new file mode 100644
index 0000000..7493ad5
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/JwtTokenStoreConfiguration.java
@@ -0,0 +1,77 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.config;
+
+import cn.gistack.auth.support.BladeJwtTokenEnhancer;
+import org.springblade.core.jwt.props.JwtProperties;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.jwt.crypto.sign.MacSigner;
+import org.springframework.security.jwt.crypto.sign.SignatureVerifier;
+import org.springframework.security.oauth2.provider.token.TokenEnhancer;
+import org.springframework.security.oauth2.provider.token.TokenStore;
+import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter;
+import org.springframework.security.oauth2.provider.token.store.JwtTokenStore;
+
+/**
+ * JwtTokenStore
+ *
+ * @author Chill
+ */
+@Configuration(proxyBeanMethods = false)
+@ConditionalOnProperty(prefix = "blade.security.oauth2", name = "storeType", havingValue = "jwt", matchIfMissing = true)
+public class JwtTokenStoreConfiguration {
+
+	/**
+	 * 使用jwtTokenStore存储token
+	 */
+	@Bean
+	public TokenStore jwtTokenStore(JwtProperties jwtProperties) {
+		return new JwtTokenStore(getJwtAccessTokenConverter(jwtProperties));
+	}
+
+	/**
+	 * 用于生成jwt
+	 */
+	@Bean
+	public JwtAccessTokenConverter jwtAccessTokenConverter(JwtProperties jwtProperties) {
+		return getJwtAccessTokenConverter(jwtProperties);
+	}
+
+	/**
+	 * 自定义 JwtAccessTokenConverter
+	 */
+	private JwtAccessTokenConverter getJwtAccessTokenConverter(JwtProperties jwtProperties) {
+		JwtAccessTokenConverter accessTokenConverter = new JwtAccessTokenConverter();
+		accessTokenConverter.setSigningKey(jwtProperties.getSignKey());
+		SignatureVerifier verifier = new MacSigner(jwtProperties.getSignKey());
+		accessTokenConverter.setVerifier(verifier);
+		return accessTokenConverter;
+	}
+
+	/**
+	 * 用于扩展jwt
+	 */
+	@Bean
+	@ConditionalOnMissingBean(name = "jwtTokenEnhancer")
+	public TokenEnhancer jwtTokenEnhancer(JwtAccessTokenConverter jwtAccessTokenConverter, JwtProperties jwtProperties) {
+		return new BladeJwtTokenEnhancer(jwtAccessTokenConverter, jwtProperties);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/SecurityConfiguration.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/SecurityConfiguration.java
new file mode 100644
index 0000000..6f927d0
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/config/SecurityConfiguration.java
@@ -0,0 +1,64 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.config;
+
+import cn.gistack.auth.support.BladePasswordEncoderFactories;
+import lombok.AllArgsConstructor;
+import lombok.SneakyThrows;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.builders.WebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.crypto.password.PasswordEncoder;
+
+/**
+ * Security配置
+ *
+ * @author Chill
+ */
+@Configuration(proxyBeanMethods = false)
+@AllArgsConstructor
+public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
+
+	@Bean
+	@Override
+	@SneakyThrows
+	public AuthenticationManager authenticationManagerBean() {
+		return super.authenticationManagerBean();
+	}
+
+	@Bean
+	public PasswordEncoder passwordEncoder() {
+		return BladePasswordEncoderFactories.createDelegatingPasswordEncoder();
+	}
+
+	@Override
+	@SneakyThrows
+	protected void configure(HttpSecurity http) {
+		http.headers().frameOptions().disable();
+		http.httpBasic().and().csrf().disable();
+		http.formLogin().loginPage("/oauth/login").loginProcessingUrl("/oauth/form");
+	}
+
+	@Override
+	public void configure(WebSecurity web) {
+		web.ignoring().antMatchers("/js/*.js", "/css/*.css");
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/constant/AuthConstant.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/constant/AuthConstant.java
new file mode 100644
index 0000000..60d117c
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/constant/AuthConstant.java
@@ -0,0 +1,53 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.constant;
+
+/**
+ * 授权校验常量
+ *
+ * @author Chill
+ */
+public interface AuthConstant {
+
+	/**
+	 * 密码加密规则
+	 */
+	String ENCRYPT = "{blade}";
+
+	/**
+	 * blade_client表字段
+	 */
+	String CLIENT_FIELDS = "client_id, CONCAT('{noop}',client_secret) as client_secret, resource_ids, scope, authorized_grant_types, " +
+		"web_server_redirect_uri, authorities, access_token_validity, " +
+		"refresh_token_validity, additional_information, autoapprove";
+
+	/**
+	 * blade_client查询语句
+	 */
+	String BASE_STATEMENT = "select " + CLIENT_FIELDS + " from blade_client";
+
+	/**
+	 * blade_client查询排序
+	 */
+	String DEFAULT_FIND_STATEMENT = BASE_STATEMENT + " order by client_id";
+
+	/**
+	 * 查询client_id
+	 */
+	String DEFAULT_SELECT_STATEMENT = BASE_STATEMENT + " where client_id = ?";
+
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/endpoint/BladeSocialEndpoint.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/endpoint/BladeSocialEndpoint.java
new file mode 100644
index 0000000..34ba293
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/endpoint/BladeSocialEndpoint.java
@@ -0,0 +1,88 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.endpoint;
+
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import me.zhyd.oauth.model.AuthCallback;
+import me.zhyd.oauth.model.AuthToken;
+import me.zhyd.oauth.request.AuthRequest;
+import me.zhyd.oauth.utils.AuthStateUtils;
+import org.springblade.core.social.props.SocialProperties;
+import org.springblade.core.social.utils.SocialUtil;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * SocialEndpoint
+ *
+ * @author Chill
+ */
+@NonDS
+@Slf4j
+@RestController
+@AllArgsConstructor
+@ConditionalOnProperty(value = "social.enabled", havingValue = "true")
+public class BladeSocialEndpoint {
+
+	private final SocialProperties socialProperties;
+
+	/**
+	 * 授权完毕跳转
+	 */
+	@RequestMapping("/oauth/render/{source}")
+	public void renderAuth(@PathVariable("source") String source, HttpServletResponse response) throws IOException {
+		AuthRequest authRequest = SocialUtil.getAuthRequest(source, socialProperties);
+		String authorizeUrl = authRequest.authorize(AuthStateUtils.createState());
+		response.sendRedirect(authorizeUrl);
+	}
+
+	/**
+	 * 获取认证信息
+	 */
+	@RequestMapping("/oauth/callback/{source}")
+	public Object login(@PathVariable("source") String source, AuthCallback callback) {
+		AuthRequest authRequest = SocialUtil.getAuthRequest(source, socialProperties);
+		return authRequest.login(callback);
+	}
+
+	/**
+	 * 撤销授权
+	 */
+	@RequestMapping("/oauth/revoke/{source}/{token}")
+	public Object revokeAuth(@PathVariable("source") String source, @PathVariable("token") String token) {
+		AuthRequest authRequest = SocialUtil.getAuthRequest(source, socialProperties);
+		return authRequest.revoke(AuthToken.builder().accessToken(token).build());
+	}
+
+	/**
+	 * 续期令牌
+	 */
+	@RequestMapping("/oauth/refresh/{source}")
+	public Object refreshAuth(@PathVariable("source") String source, String token) {
+		AuthRequest authRequest = SocialUtil.getAuthRequest(source, socialProperties);
+		return authRequest.refresh(AuthToken.builder().refreshToken(token).build());
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/endpoint/BladeTokenEndPoint.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/endpoint/BladeTokenEndPoint.java
new file mode 100644
index 0000000..54fddb2
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/endpoint/BladeTokenEndPoint.java
@@ -0,0 +1,157 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.endpoint;
+
+import com.wf.captcha.SpecCaptcha;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import cn.gistack.common.cache.CacheNames;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.jwt.JwtUtil;
+import org.springblade.core.jwt.props.JwtProperties;
+import org.springblade.core.launch.constant.TokenConstant;
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.core.tool.utils.WebUtil;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.oauth2.common.OAuth2AccessToken;
+import org.springframework.security.oauth2.common.OAuth2RefreshToken;
+import org.springframework.security.oauth2.provider.AuthorizationRequest;
+import org.springframework.security.oauth2.provider.ClientDetailsService;
+import org.springframework.security.oauth2.provider.token.TokenStore;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpSession;
+import java.time.Duration;
+
+import static org.springblade.core.cache.constant.CacheConstant.*;
+
+/**
+ * BladeEndPoint
+ *
+ * @author Chill
+ */
+@NonDS
+@Slf4j
+@RestController
+@AllArgsConstructor
+public class BladeTokenEndPoint {
+
+	private final BladeRedis bladeRedis;
+	private final JwtProperties jwtProperties;
+	private final ClientDetailsService clientDetailsService;
+	private final TokenStore tokenStore;
+
+	/**
+	 * 登录页面
+	 */
+	@GetMapping("/oauth/login")
+	public ModelAndView require(ModelAndView model) {
+		model.setViewName("login");
+		return model;
+	}
+
+	/**
+	 * 授权页面
+	 */
+	@GetMapping("/oauth/confirm_access")
+	public ModelAndView confirm(HttpSession session, ModelAndView model) {
+		Object auth = session.getAttribute("authorizationRequest");
+		if (auth != null) {
+			AuthorizationRequest authorizationRequest = (AuthorizationRequest) auth;
+			model.addObject("client", clientDetailsService.loadClientByClientId(authorizationRequest.getClientId()));
+			model.addObject("principal", SecurityContextHolder.getContext().getAuthentication().getPrincipal());
+		}
+		model.setViewName("confirm");
+		return model;
+	}
+
+	/**
+	 * 用户信息
+	 */
+	@GetMapping("/oauth/user-info")
+	public R<Authentication> currentUser(Authentication authentication) {
+		return R.data(authentication);
+	}
+
+	/**
+	 * 验证码
+	 */
+	@GetMapping("/oauth/captcha")
+	public Kv captcha() {
+		SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 5);
+		String verCode = specCaptcha.text().toLowerCase();
+		String key = StringUtil.randomUUID();
+		// 存入redis并设置过期时间为30分钟
+		bladeRedis.setEx(CacheNames.CAPTCHA_KEY + key, verCode, Duration.ofMinutes(30));
+		// 将key和base64返回给前端
+		return Kv.create().set("key", key).set("image", specCaptcha.toBase64());
+	}
+
+	/**
+	 * 退出登录
+	 */
+	@GetMapping("/oauth/logout")
+	public Kv logout() {
+		BladeUser user = AuthUtil.getUser();
+		String token = JwtUtil.getToken(WebUtil.getRequest().getHeader(TokenConstant.HEADER));
+		// 清空redis保存的token
+		if (user != null && jwtProperties.getState()) {
+			JwtUtil.removeAccessToken(user.getTenantId(), String.valueOf(user.getUserId()), token);
+		}
+		// 清空资源服务器保存的token
+		OAuth2AccessToken accessToken = tokenStore.readAccessToken(token);
+		OAuth2RefreshToken refreshToken = null;
+		if (accessToken != null && StringUtil.isNoneBlank(accessToken.getValue())) {
+			refreshToken = accessToken.getRefreshToken();
+			tokenStore.removeAccessToken(accessToken);
+		}
+		if (refreshToken != null && StringUtil.isNoneBlank(refreshToken.getValue())) {
+			tokenStore.removeRefreshToken(refreshToken);
+		}
+		return Kv.create().set("success", "true").set("msg", "success");
+	}
+
+	/**
+	 * 缓存清空
+	 */
+	@GetMapping("/oauth/clear-cache")
+	public Kv clearCache() {
+		CacheUtil.clear(BIZ_CACHE);
+		CacheUtil.clear(USER_CACHE);
+		CacheUtil.clear(DICT_CACHE);
+		CacheUtil.clear(FLOW_CACHE);
+		CacheUtil.clear(SYS_CACHE);
+		CacheUtil.clear(PARAM_CACHE);
+		CacheUtil.clear(RESOURCE_CACHE);
+		CacheUtil.clear(MENU_CACHE);
+		CacheUtil.clear(DICT_CACHE, Boolean.FALSE);
+		CacheUtil.clear(MENU_CACHE, Boolean.FALSE);
+		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+		CacheUtil.clear(PARAM_CACHE, Boolean.FALSE);
+		return Kv.create().set("success", "true").set("msg", "success");
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/BladeTokenGranter.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/BladeTokenGranter.java
new file mode 100644
index 0000000..0441d5e
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/BladeTokenGranter.java
@@ -0,0 +1,52 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.granter;
+
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.social.props.SocialProperties;
+import cn.gistack.system.user.feign.IUserClient;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer;
+import org.springframework.security.oauth2.provider.CompositeTokenGranter;
+import org.springframework.security.oauth2.provider.TokenGranter;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 自定义拓展TokenGranter
+ *
+ * @author Chill
+ */
+public class BladeTokenGranter {
+
+	/**
+	 * 自定义tokenGranter
+	 */
+	public static TokenGranter getTokenGranter(final AuthenticationManager authenticationManager, final AuthorizationServerEndpointsConfigurer endpoints, BladeRedis bladeRedis, IUserClient userClient, SocialProperties socialProperties) {
+		// 默认tokenGranter集合
+		List<TokenGranter> granters = new ArrayList<>(Collections.singletonList(endpoints.getTokenGranter()));
+		// 增加验证码模式
+		granters.add(new CaptchaTokenGranter(authenticationManager, endpoints.getTokenServices(), endpoints.getClientDetailsService(), endpoints.getOAuth2RequestFactory(), bladeRedis));
+		// 增加第三方登陆模式
+		granters.add(new SocialTokenGranter(endpoints.getTokenServices(), endpoints.getClientDetailsService(), endpoints.getOAuth2RequestFactory(), userClient, socialProperties));
+		// 组合tokenGranter集合
+		return new CompositeTokenGranter(granters);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/CaptchaTokenGranter.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/CaptchaTokenGranter.java
new file mode 100644
index 0000000..04faaae
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/CaptchaTokenGranter.java
@@ -0,0 +1,82 @@
+package cn.gistack.auth.granter;
+
+import cn.gistack.auth.utils.TokenUtil;
+import cn.gistack.common.cache.CacheNames;
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.core.tool.utils.WebUtil;
+import org.springframework.security.authentication.*;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.oauth2.common.exceptions.InvalidGrantException;
+import org.springframework.security.oauth2.common.exceptions.UserDeniedAuthorizationException;
+import org.springframework.security.oauth2.provider.*;
+import org.springframework.security.oauth2.provider.token.AbstractTokenGranter;
+import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * 验证码TokenGranter
+ *
+ * @author Chill
+ */
+public class CaptchaTokenGranter extends AbstractTokenGranter {
+
+	private static final String GRANT_TYPE = "captcha";
+
+	private final AuthenticationManager authenticationManager;
+
+	private BladeRedis bladeRedis;
+
+	public CaptchaTokenGranter(AuthenticationManager authenticationManager,
+							   AuthorizationServerTokenServices tokenServices, ClientDetailsService clientDetailsService, OAuth2RequestFactory requestFactory, BladeRedis bladeRedis) {
+		this(authenticationManager, tokenServices, clientDetailsService, requestFactory, GRANT_TYPE);
+		this.bladeRedis = bladeRedis;
+	}
+
+	protected CaptchaTokenGranter(AuthenticationManager authenticationManager, AuthorizationServerTokenServices tokenServices,
+												ClientDetailsService clientDetailsService, OAuth2RequestFactory requestFactory, String grantType) {
+		super(tokenServices, clientDetailsService, requestFactory, grantType);
+		this.authenticationManager = authenticationManager;
+	}
+
+	@Override
+	protected OAuth2Authentication getOAuth2Authentication(ClientDetails client, TokenRequest tokenRequest) {
+		HttpServletRequest request = WebUtil.getRequest();
+		// 增加验证码判断
+		String key = request.getHeader(TokenUtil.CAPTCHA_HEADER_KEY);
+		String code = request.getHeader(TokenUtil.CAPTCHA_HEADER_CODE);
+		// 获取验证码
+		String redisCode = bladeRedis.get(CacheNames.CAPTCHA_KEY + key);
+		// 判断验证码
+		if (code == null || !StringUtil.equalsIgnoreCase(redisCode, code)) {
+			throw new UserDeniedAuthorizationException(TokenUtil.CAPTCHA_NOT_CORRECT);
+		}
+
+		Map<String, String> parameters = new LinkedHashMap<String, String>(tokenRequest.getRequestParameters());
+		String username = parameters.get("username");
+		String password = parameters.get("password");
+		// Protect from downstream leaks of password
+		parameters.remove("password");
+
+		Authentication userAuth = new UsernamePasswordAuthenticationToken(username, password);
+		((AbstractAuthenticationToken) userAuth).setDetails(parameters);
+		try {
+			userAuth = authenticationManager.authenticate(userAuth);
+		}
+		catch (AccountStatusException | BadCredentialsException ase) {
+			//covers expired, locked, disabled cases (mentioned in section 5.2, draft 31)
+			throw new InvalidGrantException(ase.getMessage());
+		}
+		// If the username/password are wrong the spec says we should send 400/invalid grant
+
+		if (userAuth == null || !userAuth.isAuthenticated()) {
+			throw new InvalidGrantException("Could not authenticate user: " + username);
+		}
+
+		OAuth2Request storedOAuth2Request = getRequestFactory().createOAuth2Request(client, tokenRequest);
+		return new OAuth2Authentication(storedOAuth2Request, userAuth);
+	}
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/SocialTokenGranter.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/SocialTokenGranter.java
new file mode 100644
index 0000000..b1c7d6f
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/granter/SocialTokenGranter.java
@@ -0,0 +1,130 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.granter;
+
+import cn.gistack.auth.constant.AuthConstant;
+import cn.gistack.auth.service.BladeUserDetails;
+import me.zhyd.oauth.model.AuthCallback;
+import me.zhyd.oauth.model.AuthResponse;
+import me.zhyd.oauth.model.AuthUser;
+import me.zhyd.oauth.request.AuthRequest;
+import cn.gistack.auth.utils.TokenUtil;
+import org.springblade.core.social.props.SocialProperties;
+import org.springblade.core.social.utils.SocialUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.WebUtil;
+import cn.gistack.system.user.entity.User;
+import cn.gistack.system.user.entity.UserInfo;
+import cn.gistack.system.user.entity.UserOauth;
+import cn.gistack.system.user.feign.IUserClient;
+import org.springframework.security.authentication.AbstractAuthenticationToken;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.authority.AuthorityUtils;
+import org.springframework.security.oauth2.common.exceptions.InvalidGrantException;
+import org.springframework.security.oauth2.provider.*;
+import org.springframework.security.oauth2.provider.token.AbstractTokenGranter;
+import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * 第三方登录认证类
+ *
+ * @author Chill
+ */
+public class SocialTokenGranter extends AbstractTokenGranter {
+	private static final String GRANT_TYPE = "social";
+	private static final Integer AUTH_SUCCESS_CODE = 2000;
+
+	private final IUserClient userClient;
+	private final SocialProperties socialProperties;
+
+	protected SocialTokenGranter(AuthorizationServerTokenServices tokenServices, ClientDetailsService clientDetailsService, OAuth2RequestFactory requestFactory, IUserClient userClient, SocialProperties socialProperties) {
+		super(tokenServices, clientDetailsService, requestFactory, GRANT_TYPE);
+		this.userClient = userClient;
+		this.socialProperties = socialProperties;
+	}
+
+	@Override
+	protected OAuth2Authentication getOAuth2Authentication(ClientDetails client, TokenRequest tokenRequest) {
+		// 请求头租户信息
+		HttpServletRequest request = WebUtil.getRequest();
+		String tenantId = Func.toStr(request.getHeader(TokenUtil.TENANT_HEADER_KEY), TokenUtil.DEFAULT_TENANT_ID);
+
+		Map<String, String> parameters = new LinkedHashMap<>(tokenRequest.getRequestParameters());
+		// 开放平台来源
+		String sourceParameter = parameters.get("source");
+		// 匹配是否有别名定义
+		String source = socialProperties.getAlias().getOrDefault(sourceParameter, sourceParameter);
+		// 开放平台授权码
+		String code = parameters.get("code");
+		// 开放平台状态吗
+		String state = parameters.get("state");
+
+		// 获取开放平台授权数据
+		AuthRequest authRequest = SocialUtil.getAuthRequest(source, socialProperties);
+		AuthCallback authCallback = new AuthCallback();
+		authCallback.setCode(code);
+		authCallback.setState(state);
+		AuthResponse authResponse = authRequest.login(authCallback);
+		AuthUser authUser;
+		if (authResponse.getCode() == AUTH_SUCCESS_CODE) {
+			authUser = (AuthUser) authResponse.getData();
+		} else {
+			throw new InvalidGrantException("social grant failure, auth response is not success");
+		}
+
+		// 组装数据
+		UserOauth userOauth = Objects.requireNonNull(BeanUtil.copy(authUser, UserOauth.class));
+		userOauth.setSource(authUser.getSource());
+		userOauth.setTenantId(tenantId);
+		userOauth.setUuid(authUser.getUuid());
+
+		// 远程调用,获取认证信息
+		R<UserInfo> result = userClient.userAuthInfo(userOauth);
+		BladeUserDetails bladeUserDetails;
+		if (result.isSuccess()) {
+			User user = result.getData().getUser();
+			Kv detail = result.getData().getDetail();
+			if (user == null || user.getId() == null) {
+				throw new InvalidGrantException("social grant failure, user is null");
+			}
+			bladeUserDetails = new BladeUserDetails(user.getId(),
+				tenantId, result.getData().getOauthId(), user.getName(), user.getRealName(), user.getDeptId(), user.getPostId(), user.getRoleId(), Func.join(result.getData().getRoles()), Func.toStr(userOauth.getAvatar(), TokenUtil.DEFAULT_AVATAR),
+				userOauth.getUsername(), AuthConstant.ENCRYPT + user.getPassword(), detail, true, true, true, true,
+				AuthorityUtils.commaSeparatedStringToAuthorityList(Func.join(result.getData().getRoles())));
+		} else {
+			throw new InvalidGrantException("social grant failure, feign client return error");
+		}
+
+		// 组装认证数据,关闭密码校验
+		Authentication userAuth = new UsernamePasswordAuthenticationToken(bladeUserDetails, null, bladeUserDetails.getAuthorities());
+		((AbstractAuthenticationToken) userAuth).setDetails(parameters);
+		OAuth2Request storedOAuth2Request = getRequestFactory().createOAuth2Request(client, tokenRequest);
+
+		// 返回 OAuth2Authentication
+		return new OAuth2Authentication(storedOAuth2Request, userAuth);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeClientDetailsServiceImpl.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeClientDetailsServiceImpl.java
new file mode 100644
index 0000000..b391034
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeClientDetailsServiceImpl.java
@@ -0,0 +1,51 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.service;
+
+import org.springframework.security.oauth2.provider.ClientDetails;
+import org.springframework.security.oauth2.provider.client.JdbcClientDetailsService;
+import org.springframework.stereotype.Component;
+
+import javax.sql.DataSource;
+
+/**
+ * 客户端信息
+ *
+ * @author Chill
+ */
+@Component
+public class BladeClientDetailsServiceImpl extends JdbcClientDetailsService {
+
+	public BladeClientDetailsServiceImpl(DataSource dataSource) {
+		super(dataSource);
+	}
+
+	/**
+	 * 缓存客户端信息
+	 *
+	 * @param clientId 客户端id
+	 */
+	@Override
+	public ClientDetails loadClientByClientId(String clientId) {
+		try {
+			return super.loadClientByClientId(clientId);
+		} catch (Exception ex) {
+			ex.printStackTrace();
+			return null;
+		}
+	}
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetails.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetails.java
new file mode 100644
index 0000000..acb7334
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetails.java
@@ -0,0 +1,99 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.service;
+
+import lombok.Getter;
+import org.springblade.core.tool.support.Kv;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.userdetails.User;
+
+import java.util.Collection;
+
+/**
+ * 用户信息拓展
+ *
+ * @author Chill
+ */
+@Getter
+public class BladeUserDetails extends User {
+
+	/**
+	 * 用户id
+	 */
+	private final Long userId;
+	/**
+	 * 租户ID
+	 */
+	private final String tenantId;
+	/**
+	 * 第三方认证ID
+	 */
+	private final String oauthId;
+	/**
+	 * 昵称
+	 */
+	private final String name;
+	/**
+	 * 真名
+	 */
+	private final String realName;
+	/**
+	 * 账号
+	 */
+	private final String account;
+	/**
+	 * 部门id
+	 */
+	private final String deptId;
+	/**
+	 * 岗位id
+	 */
+	private final String postId;
+	/**
+	 * 角色id
+	 */
+	private final String roleId;
+	/**
+	 * 角色名
+	 */
+	private final String roleName;
+	/**
+	 * 头像
+	 */
+	private final String avatar;
+	/**
+	 * 用户详情
+	 */
+	private final Kv detail;
+
+	public BladeUserDetails(Long userId, String tenantId, String oauthId, String name, String realName, String deptId, String postId, String roleId, String roleName, String avatar, String username, String password, Kv detail, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection<? extends GrantedAuthority> authorities) {
+		super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities);
+		this.userId = userId;
+		this.tenantId = tenantId;
+		this.oauthId = oauthId;
+		this.name = name;
+		this.realName = realName;
+		this.account = username;
+		this.deptId = deptId;
+		this.postId = postId;
+		this.roleId = roleId;
+		this.roleName = roleName;
+		this.avatar = avatar;
+		this.detail = detail;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java
new file mode 100644
index 0000000..41109c8
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/service/BladeUserDetailsServiceImpl.java
@@ -0,0 +1,211 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.service;
+
+import cn.gistack.auth.constant.AuthConstant;
+import com.alibaba.nacos.common.utils.StringUtils;
+import io.jsonwebtoken.Claims;
+import lombok.AllArgsConstructor;
+import lombok.SneakyThrows;
+import cn.gistack.auth.utils.TokenUtil;
+import cn.gistack.common.cache.CacheNames;
+import org.springblade.core.jwt.JwtUtil;
+import org.springblade.core.jwt.props.JwtProperties;
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.*;
+import cn.gistack.system.cache.ParamCache;
+import cn.gistack.system.entity.Tenant;
+import cn.gistack.system.feign.ISysClient;
+import cn.gistack.system.user.entity.User;
+import cn.gistack.system.user.entity.UserInfo;
+import cn.gistack.system.user.enums.UserEnum;
+import cn.gistack.system.user.feign.IUserClient;
+import org.springframework.security.core.authority.AuthorityUtils;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.security.oauth2.common.exceptions.UserDeniedAuthorizationException;
+import org.springframework.stereotype.Service;
+import javax.servlet.http.HttpServletRequest;
+import java.time.Duration;
+import java.util.List;
+
+/**
+ * 用户信息
+ *
+ * @author Chill
+ */
+@Service
+@AllArgsConstructor
+public class BladeUserDetailsServiceImpl implements UserDetailsService {
+
+	public static final Integer FAIL_COUNT = 5;
+	public static final String FAIL_COUNT_VALUE = "account.failCount";
+
+	private final IUserClient userClient;
+	private final ISysClient sysClient;
+
+	private final BladeRedis bladeRedis;
+	private final JwtProperties jwtProperties;
+
+	@Override
+	@SneakyThrows
+	public BladeUserDetails loadUserByUsername(String username) {
+		HttpServletRequest request = WebUtil.getRequest();
+		// 获取用户绑定ID
+		String headerDept = request.getHeader(TokenUtil.DEPT_HEADER_KEY);
+		String headerRole = request.getHeader(TokenUtil.ROLE_HEADER_KEY);
+		// 获取租户ID
+		String headerTenant = request.getHeader(TokenUtil.TENANT_HEADER_KEY);
+		String paramTenant = request.getParameter(TokenUtil.TENANT_PARAM_KEY);
+		String password = request.getParameter(TokenUtil.PASSWORD_KEY);
+		String grantType = request.getParameter(TokenUtil.GRANT_TYPE_KEY);
+		// 判断租户请求头
+		if (StringUtil.isAllBlank(headerTenant, paramTenant)) {
+			throw new UserDeniedAuthorizationException(TokenUtil.TENANT_NOT_FOUND);
+		}
+		// 判断令牌合法性
+		if (!judgeRefreshToken(grantType, request)) {
+			throw new UserDeniedAuthorizationException(TokenUtil.TOKEN_NOT_PERMISSION);
+		}
+
+		// 指定租户ID
+		String tenantId = StringUtils.isBlank(headerTenant) ? paramTenant : headerTenant;
+		// 判断登录是否锁定
+		int count = getFailCount(tenantId, username);
+		int failCount = Func.toInt(ParamCache.getValue(FAIL_COUNT_VALUE), FAIL_COUNT);
+		if (count >= failCount) {
+			throw new UserDeniedAuthorizationException(TokenUtil.USER_HAS_TOO_MANY_FAILS);
+		}
+
+		// 获取租户信息
+		R<Tenant> tenant = sysClient.getTenant(tenantId);
+		if (tenant.isSuccess()) {
+			if (TokenUtil.judgeTenant(tenant.getData())) {
+				throw new UserDeniedAuthorizationException(TokenUtil.USER_HAS_NO_TENANT_PERMISSION);
+			}
+		} else {
+			throw new UserDeniedAuthorizationException(TokenUtil.USER_HAS_NO_TENANT);
+		}
+
+		// 获取用户类型
+		String userType = Func.toStr(request.getHeader(TokenUtil.USER_TYPE_HEADER_KEY), TokenUtil.DEFAULT_USER_TYPE);
+
+		// 远程调用返回数据
+		R<UserInfo> result;
+		// 根据不同用户类型调用对应的接口返回数据,用户可自行拓展
+		if (userType.equals(UserEnum.WEB.getName())) {
+			result = userClient.userInfo(tenantId, username, UserEnum.WEB.getName());
+		} else if (userType.equals(UserEnum.APP.getName())) {
+			result = userClient.userInfo(tenantId, username, UserEnum.APP.getName());
+		} else {
+			result = userClient.userInfo(tenantId, username, UserEnum.OTHER.getName());
+		}
+
+		// 判断返回信息
+		if (result.isSuccess()) {
+			UserInfo userInfo = result.getData();
+			User user = userInfo.getUser();
+			// 用户不存在,但提示用户名与密码错误并锁定账号
+			if (user == null || user.getId() == null) {
+				setFailCount(tenantId, username, count);
+				throw new UsernameNotFoundException(TokenUtil.USER_NOT_FOUND);
+			}
+			// 用户存在但密码错误,超过次数则锁定账号
+			if (grantType != null && !grantType.equals(TokenUtil.REFRESH_TOKEN_KEY) && !user.getPassword().equals(DigestUtil.hex(password))) {
+				setFailCount(tenantId, username, count);
+				throw new UsernameNotFoundException(TokenUtil.USER_NOT_FOUND);
+			}
+			// 用户角色不存在
+			if (Func.isEmpty(userInfo.getRoles())) {
+				throw new UserDeniedAuthorizationException(TokenUtil.USER_HAS_NO_ROLE);
+			}
+			// 多部门情况下指定单部门
+			if (Func.isNotEmpty(headerDept) && user.getDeptId().contains(headerDept)) {
+				user.setDeptId(headerDept);
+			}
+			// 多角色情况下指定单角色
+			if (Func.isNotEmpty(headerRole) && user.getRoleId().contains(headerRole)) {
+				R<List<String>> roleResult = sysClient.getRoleAliases(headerRole);
+				if (roleResult.isSuccess()) {
+					userInfo.setRoles(roleResult.getData());
+				}
+				user.setRoleId(headerRole);
+			}
+			// 成功则清除登录错误次数
+			delFailCount(tenantId, username);
+			return new BladeUserDetails(user.getId(),
+				user.getTenantId(), StringPool.EMPTY, user.getName(), user.getRealName(), user.getDeptId(), user.getPostId(), user.getRoleId(), Func.join(userInfo.getRoles()), Func.toStr(user.getAvatar(), TokenUtil.DEFAULT_AVATAR),
+				username, AuthConstant.ENCRYPT + user.getPassword(), userInfo.getDetail(), true, true, true, true,
+				AuthorityUtils.commaSeparatedStringToAuthorityList(Func.join(result.getData().getRoles())));
+		} else {
+			throw new UsernameNotFoundException(result.getMsg());
+		}
+	}
+
+	/**
+	 * 获取账号错误次数
+	 *
+	 * @param tenantId 租户id
+	 * @param username 账号
+	 * @return int
+	 */
+	private int getFailCount(String tenantId, String username) {
+		return Func.toInt(bladeRedis.get(CacheNames.tenantKey(tenantId, CacheNames.USER_FAIL_KEY, username)), 0);
+	}
+
+	/**
+	 * 设置账号错误次数
+	 *
+	 * @param tenantId 租户id
+	 * @param username 账号
+	 * @param count    次数
+	 */
+	private void setFailCount(String tenantId, String username, int count) {
+		bladeRedis.setEx(CacheNames.tenantKey(tenantId, CacheNames.USER_FAIL_KEY, username), count + 1, Duration.ofMinutes(30));
+	}
+
+	/**
+	 * 清空账号错误次数
+	 *
+	 * @param tenantId 租户id
+	 * @param username 账号
+	 */
+	private void delFailCount(String tenantId, String username) {
+		bladeRedis.del(CacheNames.tenantKey(tenantId, CacheNames.USER_FAIL_KEY, username));
+	}
+
+	/**
+	 * 校验refreshToken合法性
+	 *
+	 * @param grantType 认证类型
+	 * @param request   请求
+	 */
+	private boolean judgeRefreshToken(String grantType, HttpServletRequest request) {
+		if (jwtProperties.getState() && jwtProperties.getSingle() && StringUtil.equals(grantType, TokenUtil.REFRESH_TOKEN_KEY)) {
+			String refreshToken = request.getParameter(TokenUtil.REFRESH_TOKEN_KEY);
+			Claims claims = JwtUtil.parseJWT(refreshToken);
+			String tenantId = String.valueOf(claims.get("tenant_id"));
+			String userId = String.valueOf(claims.get("user_id"));
+			String token = JwtUtil.getRefreshToken(tenantId, userId, refreshToken);
+			return StringUtil.equalsIgnoreCase(token, refreshToken);
+		}
+		return true;
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladeJwtTokenEnhancer.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladeJwtTokenEnhancer.java
new file mode 100644
index 0000000..bf1b36a
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladeJwtTokenEnhancer.java
@@ -0,0 +1,86 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.support;
+
+import cn.gistack.auth.service.BladeUserDetails;
+import lombok.AllArgsConstructor;
+import cn.gistack.auth.utils.TokenUtil;
+import org.springblade.core.jwt.JwtUtil;
+import org.springblade.core.jwt.props.JwtProperties;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken;
+import org.springframework.security.oauth2.common.OAuth2AccessToken;
+import org.springframework.security.oauth2.common.OAuth2RefreshToken;
+import org.springframework.security.oauth2.provider.OAuth2Authentication;
+import org.springframework.security.oauth2.provider.token.TokenEnhancer;
+import org.springframework.security.oauth2.provider.token.store.JwtAccessTokenConverter;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * jwt返回参数增强
+ *
+ * @author Chill
+ */
+@AllArgsConstructor
+public class BladeJwtTokenEnhancer implements TokenEnhancer {
+
+	private final JwtAccessTokenConverter jwtAccessTokenConverter;
+	private final JwtProperties jwtProperties;
+
+	@Override
+	public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) {
+		BladeUserDetails principal = (BladeUserDetails) authentication.getUserAuthentication().getPrincipal();
+
+		//token参数增强
+		Map<String, Object> info = new HashMap<>(16);
+		info.put(TokenUtil.CLIENT_ID, TokenUtil.getClientIdFromHeader());
+		info.put(TokenUtil.USER_ID, Func.toStr(principal.getUserId()));
+		info.put(TokenUtil.DEPT_ID, Func.toStr(principal.getDeptId()));
+		info.put(TokenUtil.POST_ID, Func.toStr(principal.getPostId()));
+		info.put(TokenUtil.ROLE_ID, Func.toStr(principal.getRoleId()));
+		info.put(TokenUtil.TENANT_ID, principal.getTenantId());
+		info.put(TokenUtil.OAUTH_ID, principal.getOauthId());
+		info.put(TokenUtil.ACCOUNT, principal.getAccount());
+		info.put(TokenUtil.USER_NAME, principal.getUsername());
+		info.put(TokenUtil.NICK_NAME, principal.getName());
+		info.put(TokenUtil.REAL_NAME, principal.getRealName());
+		info.put(TokenUtil.ROLE_NAME, principal.getRoleName());
+		info.put(TokenUtil.AVATAR, principal.getAvatar());
+		info.put(TokenUtil.DETAIL, principal.getDetail());
+		info.put(TokenUtil.LICENSE, TokenUtil.LICENSE_NAME);
+		((DefaultOAuth2AccessToken) accessToken).setAdditionalInformation(info);
+
+		//token状态设置
+		if (jwtProperties.getState()) {
+			OAuth2AccessToken oAuth2AccessToken = jwtAccessTokenConverter.enhance(accessToken, authentication);
+			String accessTokenValue = oAuth2AccessToken.getValue();
+			String tenantId = principal.getTenantId();
+			String userId = Func.toStr(principal.getUserId());
+			JwtUtil.addAccessToken(tenantId, userId, accessTokenValue, accessToken.getExpiresIn());
+
+			if (jwtProperties.getSingle()) {
+				OAuth2RefreshToken oAuth2RefreshToken = oAuth2AccessToken.getRefreshToken();
+				String refreshTokenValue = oAuth2RefreshToken.getValue();
+				JwtUtil.addRefreshToken(tenantId, userId, refreshTokenValue, accessToken.getExpiresIn() * 168);
+			}
+		}
+
+		return accessToken;
+	}
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladeNoOpPasswordEncoder.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladeNoOpPasswordEncoder.java
new file mode 100644
index 0000000..a033c03
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladeNoOpPasswordEncoder.java
@@ -0,0 +1,50 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.support;
+
+import org.springframework.security.crypto.password.PasswordEncoder;
+
+/**
+ * 无密码加密
+ *
+ * @author Chill
+ */
+public class BladeNoOpPasswordEncoder implements PasswordEncoder {
+
+	@Override
+	public String encode(CharSequence rawPassword) {
+		return rawPassword.toString();
+	}
+
+	@Override
+	public boolean matches(CharSequence rawPassword, String encodedPassword) {
+		return rawPassword.toString().equals(encodedPassword);
+	}
+
+	/**
+	 * Get the singleton {@link BladeNoOpPasswordEncoder}.
+	 */
+	public static PasswordEncoder getInstance() {
+		return INSTANCE;
+	}
+
+	private static final PasswordEncoder INSTANCE = new BladeNoOpPasswordEncoder();
+
+	private BladeNoOpPasswordEncoder() {
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladePasswordEncoder.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladePasswordEncoder.java
new file mode 100644
index 0000000..fe61f54
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladePasswordEncoder.java
@@ -0,0 +1,39 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.support;
+
+import org.springblade.core.tool.utils.DigestUtil;
+import org.springframework.security.crypto.password.PasswordEncoder;
+
+/**
+ * 自定义密码加密
+ *
+ * @author Chill
+ */
+public class BladePasswordEncoder implements PasswordEncoder {
+
+	@Override
+	public String encode(CharSequence rawPassword) {
+		return DigestUtil.hex((String) rawPassword);
+	}
+
+	@Override
+	public boolean matches(CharSequence rawPassword, String encodedPassword) {
+		return encodedPassword.equals(encode(rawPassword));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladePasswordEncoderFactories.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladePasswordEncoderFactories.java
new file mode 100644
index 0000000..a736347
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/support/BladePasswordEncoderFactories.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2002-2017 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package cn.gistack.auth.support;
+
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.DelegatingPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder;
+import org.springframework.security.crypto.scrypt.SCryptPasswordEncoder;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 自定义密码工厂
+ *
+ * @author Rob Winch, Chill
+ * @since 5.0
+ */
+public class BladePasswordEncoderFactories {
+
+	/**
+	 * Creates a {@link DelegatingPasswordEncoder} with default mappings. Additional
+	 * mappings may be added and the encoding will be updated to conform with best
+	 * practices. However, due to the nature of {@link DelegatingPasswordEncoder} the
+	 * updates should not impact users. The mappings current are:
+	 *
+	 * <ul>
+	 * <li>blade - {@link BladePasswordEncoder} (sha1(md5("password")))</li>
+	 * <li>bcrypt - {@link BCryptPasswordEncoder} (Also used for encoding)</li>
+	 * <li>noop - {@link BladeNoOpPasswordEncoder}</li>
+	 * <li>pbkdf2 - {@link Pbkdf2PasswordEncoder}</li>
+	 * <li>scrypt - {@link SCryptPasswordEncoder}</li>
+	 * </ul>
+	 *
+	 * @return the {@link PasswordEncoder} to use
+	 */
+	public static PasswordEncoder createDelegatingPasswordEncoder() {
+		String encodingId = "blade";
+		Map<String, PasswordEncoder> encoders = new HashMap<>(16);
+		encoders.put(encodingId, new BladePasswordEncoder());
+		encoders.put("bcrypt", new BCryptPasswordEncoder());
+		encoders.put("noop", BladeNoOpPasswordEncoder.getInstance());
+		encoders.put("pbkdf2", new Pbkdf2PasswordEncoder());
+		encoders.put("scrypt", new SCryptPasswordEncoder());
+
+		return new DelegatingPasswordEncoder(encodingId, encoders);
+	}
+
+	private BladePasswordEncoderFactories() {
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/utils/TokenUtil.java b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/utils/TokenUtil.java
new file mode 100644
index 0000000..8e93a65
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/java/cn/gistack/auth/utils/TokenUtil.java
@@ -0,0 +1,182 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.auth.utils;
+
+import lombok.SneakyThrows;
+import cn.gistack.common.constant.TenantConstant;
+import org.springblade.core.launch.constant.TokenConstant;
+import org.springblade.core.tenant.BladeTenantProperties;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.jackson.JsonUtil;
+import org.springblade.core.tool.utils.*;
+import cn.gistack.system.entity.Tenant;
+import org.springframework.security.authentication.BadCredentialsException;
+import org.springframework.security.oauth2.common.exceptions.UnapprovedClientAuthenticationException;
+import org.springframework.security.oauth2.common.exceptions.UserDeniedAuthorizationException;
+
+import java.util.Base64;
+import java.util.Calendar;
+import java.util.Date;
+
+/**
+ * 认证工具类
+ *
+ * @author Chill
+ */
+public class TokenUtil {
+
+	public final static String AVATAR = TokenConstant.AVATAR;
+	public final static String ACCOUNT = TokenConstant.ACCOUNT;
+	public final static String USER_NAME = TokenConstant.USER_NAME;
+	public final static String NICK_NAME = TokenConstant.NICK_NAME;
+	public final static String REAL_NAME = TokenConstant.REAL_NAME;
+	public final static String USER_ID = TokenConstant.USER_ID;
+	public final static String DEPT_ID = TokenConstant.DEPT_ID;
+	public final static String POST_ID = TokenConstant.POST_ID;
+	public final static String ROLE_ID = TokenConstant.ROLE_ID;
+	public final static String ROLE_NAME = TokenConstant.ROLE_NAME;
+	public final static String TENANT_ID = TokenConstant.TENANT_ID;
+	public final static String OAUTH_ID = TokenConstant.OAUTH_ID;
+	public final static String CLIENT_ID = TokenConstant.CLIENT_ID;
+	public final static String DETAIL = TokenConstant.DETAIL;
+	public final static String LICENSE = TokenConstant.LICENSE;
+	public final static String LICENSE_NAME = TokenConstant.LICENSE_NAME;
+
+	public final static String DEPT_HEADER_KEY = "Dept-Id";
+	public final static String ROLE_HEADER_KEY = "Role-Id";
+	public final static String CAPTCHA_HEADER_KEY = "Captcha-Key";
+	public final static String CAPTCHA_HEADER_CODE = "Captcha-Code";
+	public final static String CAPTCHA_NOT_CORRECT = "验证码不正确";
+	public final static String TENANT_HEADER_KEY = "Tenant-Id";
+	public final static String TENANT_PARAM_KEY = "tenant_id";
+	public final static String DEFAULT_TENANT_ID = "000000";
+	public final static String TENANT_NOT_FOUND = "租户ID未找到";
+	public final static String USER_TYPE_HEADER_KEY = "User-Type";
+	public final static String DEFAULT_USER_TYPE = "web";
+	public final static String TOKEN_NOT_PERMISSION = "令牌授权已过期";
+	public final static String USER_NOT_FOUND = "用户名或密码错误";
+	public final static String USER_HAS_NO_ROLE = "未获得用户的角色信息";
+	public final static String USER_HAS_NO_TENANT = "未获得用户的租户信息";
+	public final static String USER_HAS_NO_TENANT_PERMISSION = "租户授权已过期,请联系管理员";
+	public final static String USER_HAS_TOO_MANY_FAILS = "登录错误次数过多,请稍后再试";
+	public final static String HEADER_KEY = "Authorization";
+	public final static String HEADER_PREFIX = "Basic ";
+	public final static String DEFAULT_AVATAR = "";
+	public final static String PASSWORD_KEY = "password";
+	public final static String GRANT_TYPE_KEY = "grant_type";
+	public final static String REFRESH_TOKEN_KEY = "refresh_token";
+
+	private static BladeTenantProperties tenantProperties;
+
+	/**
+	 * 获取租户配置
+	 *
+	 * @return tenantProperties
+	 */
+	private static BladeTenantProperties getTenantProperties() {
+		if (tenantProperties == null) {
+			tenantProperties = SpringUtil.getBean(BladeTenantProperties.class);
+		}
+		return tenantProperties;
+	}
+
+	/**
+	 * 解码
+	 */
+	@SneakyThrows
+	public static String[] extractAndDecodeHeader() {
+		String header = WebUtil.getRequest().getHeader(TokenUtil.HEADER_KEY);
+		if (header == null || !header.startsWith(TokenUtil.HEADER_PREFIX)) {
+			throw new UnapprovedClientAuthenticationException("请求头中无client信息");
+		}
+
+		byte[] base64Token = header.substring(6).getBytes(Charsets.UTF_8_NAME);
+
+		byte[] decoded;
+		try {
+			decoded = Base64.getDecoder().decode(base64Token);
+		} catch (IllegalArgumentException var7) {
+			throw new BadCredentialsException("Failed to decode basic authentication token");
+		}
+
+		String token = new String(decoded, Charsets.UTF_8_NAME);
+		int index = token.indexOf(StringPool.COLON);
+		if (index == -1) {
+			throw new BadCredentialsException("Invalid basic authentication token");
+		} else {
+			return new String[]{token.substring(0, index), token.substring(index + 1)};
+		}
+	}
+
+	/**
+	 * 获取请求头中的客户端id
+	 */
+	public static String getClientIdFromHeader() {
+		String[] tokens = extractAndDecodeHeader();
+		return tokens[0];
+	}
+
+	/**
+	 * 获取token过期时间(次日凌晨3点)
+	 *
+	 * @return expire
+	 */
+	public static int getTokenValiditySecond() {
+		Calendar cal = Calendar.getInstance();
+		cal.add(Calendar.DAY_OF_YEAR, 1);
+		cal.set(Calendar.HOUR_OF_DAY, 3);
+		cal.set(Calendar.SECOND, 0);
+		cal.set(Calendar.MINUTE, 0);
+		cal.set(Calendar.MILLISECOND, 0);
+		return (int) (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000;
+	}
+
+	/**
+	 * 获取refreshToken过期时间
+	 *
+	 * @return expire
+	 */
+	public static int getRefreshTokenValiditySeconds() {
+		return 60 * 60 * 24 * 15;
+	}
+
+	/**
+	 * 判断租户权限
+	 *
+	 * @param tenant 租户信息
+	 * @return boolean
+	 */
+	public static boolean judgeTenant(Tenant tenant) {
+		if (tenant == null || tenant.getId() == null) {
+			throw new UserDeniedAuthorizationException(TokenUtil.USER_HAS_NO_TENANT);
+		}
+		if (StringUtil.equalsIgnoreCase(tenant.getTenantId(), BladeConstant.ADMIN_TENANT_ID)) {
+			return false;
+		}
+		Date expireTime = tenant.getExpireTime();
+		if (getTenantProperties().getLicense()) {
+			String licenseKey = tenant.getLicenseKey();
+			String decrypt = DesUtil.decryptFormHex(licenseKey, TenantConstant.DES_KEY);
+			expireTime = JsonUtil.parse(decrypt, Tenant.class).getExpireTime();
+		}
+		if (expireTime != null && expireTime.before(DateUtil.now())) {
+			throw new UserDeniedAuthorizationException(TokenUtil.USER_HAS_NO_TENANT_PERMISSION);
+		}
+		return false;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/resources/application-dev.yml b/skjcmanager/skjcmanager-auth/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..152ff70
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/resources/application-dev.yml
@@ -0,0 +1,15 @@
+#服务器端口
+server:
+  port: 8100
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.dev.url}
+    username: ${blade.datasource.dev.username}
+    password: ${blade.datasource.dev.password}
+
+#第三方登陆
+social:
+  enabled: true
+  domain: http://127.0.0.1:1888
diff --git a/skjcmanager/skjcmanager-auth/src/main/resources/application-prod.yml b/skjcmanager/skjcmanager-auth/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..a13351f
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/resources/application-prod.yml
@@ -0,0 +1,15 @@
+#服务器端口
+server:
+  port: 8100
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.prod.url}
+    username: ${blade.datasource.prod.username}
+    password: ${blade.datasource.prod.password}
+
+#第三方登陆
+social:
+  enabled: true
+  domain: http://127.0.0.1:1888
diff --git a/skjcmanager/skjcmanager-auth/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-auth/src/main/resources/application-test.yml
new file mode 100644
index 0000000..6f51f71
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/resources/application-test.yml
@@ -0,0 +1,15 @@
+#服务器端口
+server:
+  port: 8100
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.test.url}
+    username: ${blade.datasource.test.username}
+    password: ${blade.datasource.test.password}
+
+#第三方登陆
+social:
+  enabled: true
+  domain: http://127.0.0.1:1888
diff --git a/skjcmanager/skjcmanager-auth/src/main/resources/application.yml b/skjcmanager/skjcmanager-auth/src/main/resources/application.yml
new file mode 100644
index 0000000..9e7573c
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/resources/application.yml
@@ -0,0 +1,65 @@
+# 在使用Spring默认数据源Hikari的情况下配置以下配置项
+spring:
+  datasource:
+    hikari:
+      # 自动提交从池中返回的连接
+      auto-commit: true
+      # 连接池中维护的最小空闲连接数
+      minimum-idle: 10
+      # 连接池中允许的最大连接数。缺省值:10;推荐的公式:((core_count * 2) + effective_spindle_count)
+      maximum-pool-size: 60
+      # 空闲连接超时时间,默认值600000(10分钟),大于等于max-lifetime且max-lifetime>0,会被重置为0;不等于0且小于10秒,会被重置为10秒。
+      # 只有空闲连接数大于最大连接数且空闲时间超过该值,才会被释放
+      idle-timeout: 30000
+      # 连接最大存活时间.不等于0且小于30秒,会被重置为默认值30分钟.设置应该比mysql设置的超时时间短
+      max-lifetime: 1800000
+      # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒
+      connection-timeout: 30000
+      # 连接测试查询
+      connection-test-query: select 1
+      #connection-test-query: select 1 from dual
+  freemarker:
+    # 模板后缀名
+    suffix: .ftl
+    # 文档类型
+    content-type: text/html
+    # 页面编码
+    charset: UTF-8
+    # 页面缓存
+    cache: false
+    # 模板路径
+    template-loader-path: classpath:/templates/
+  web:
+    # 资源路径
+    resources:
+      static-locations: classpath:/static/
+
+#swagger文档
+swagger:
+  base-packages:
+    - org.springblade
+    - org.springframework.security.oauth2.provider.endpoint
+
+#第三方登陆
+social:
+  oauth:
+    GITHUB:
+      client-id: 233************
+      client-secret: 233************************************
+      redirect-uri: ${social.domain}/oauth/redirect/github
+    GITEE:
+      client-id: 233************
+      client-secret: 233************************************
+      redirect-uri: ${social.domain}/oauth/redirect/gitee
+    WECHAT_OPEN:
+      client-id: 233************
+      client-secret: 233************************************
+      redirect-uri: ${social.domain}/oauth/redirect/wechat
+    QQ:
+      client-id: 233************
+      client-secret: 233************************************
+      redirect-uri: ${social.domain}/oauth/redirect/qq
+    DINGTALK:
+      client-id: 233************
+      client-secret: 233************************************
+      redirect-uri: ${social.domain}/oauth/redirect/dingtalk
diff --git a/skjcmanager/skjcmanager-auth/src/main/resources/static/css/bootstrap.min.css b/skjcmanager/skjcmanager-auth/src/main/resources/static/css/bootstrap.min.css
new file mode 100644
index 0000000..493c086
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/resources/static/css/bootstrap.min.css
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap v4.6.1 (https://getbootstrap.com/)
+ * Copyright 2011-2021 The Bootstrap Authors
+ * Copyright 2011-2021 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;font-size:1rem;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-row>.col>.valid-tooltip,.form-row>[class*=col-]>.valid-tooltip{left:5px}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem)!important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.was-validated select.form-control:valid,select.form-control.is-valid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc(.75em + 2.3125rem)!important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-row>.col>.invalid-tooltip,.form-row>[class*=col-]>.invalid-tooltip{left:5px}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem)!important;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.was-validated select.form-control:invalid,select.form-control.is-invalid{padding-right:3rem!important;background-position:right 1.5rem center}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc(.75em + 2.3125rem)!important;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat,#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e") center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem) no-repeat}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{color:#fff;background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{color:#212529;background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{color:#212529;background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label,.input-group:not(.has-validation)>.custom-file:not(:last-child) .custom-file-label::after,.input-group:not(.has-validation)>.custom-select:not(:last-child),.input-group:not(.has-validation)>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label,.input-group.has-validation>.custom-file:nth-last-child(n+3) .custom-file-label::after,.input-group.has-validation>.custom-select:nth-last-child(n+3),.input-group.has-validation>.form-control:nth-last-child(n+3){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.btn,.input-group.has-validation>.input-group-append:nth-last-child(n+3)>.input-group-text,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.btn,.input-group:not(.has-validation)>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;z-index:1;display:block;min-height:1.5rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.25rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:50%/50% 50% no-repeat}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") right .75rem center/8px 10px no-repeat;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;overflow:hidden;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;overflow:hidden;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:50%/100% 100% no-repeat}.navbar-nav-scroll{max-height:75vh;overflow-y:auto}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:not(:first-of-type){border-top-left-radius:0;border-top-right-radius:0}.accordion>.card>.card-header{border-radius:0;margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:3;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:50%/100% 100% no-repeat}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}
diff --git a/skjcmanager/skjcmanager-auth/src/main/resources/static/css/iofrm-style.css b/skjcmanager/skjcmanager-auth/src/main/resources/static/css/iofrm-style.css
new file mode 100644
index 0000000..0166625
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/resources/static/css/iofrm-style.css
@@ -0,0 +1,1818 @@
+/*------------------------------------------------------------------
+ * Theme Name: iofrm - form templates
+ * Theme URI: http://www.brandio.io/envato/iofrm
+ * Author: Brandio
+ * Author URI: http://www.brandio.io/
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ -------------------------------------------------------------------*/
+
+@import url("https://fonts.googleapis.com/css?family=Lato:100,300,400,700,900");
+
+/* -----------------------------------
+    1 - General Styles
+------------------------------------*/
+*, body {
+    font-family: "Lato", sans-serif;
+    font-weight: 400;
+    -webkit-font-smoothing: antialiased;
+    text-rendering: optimizeLegibility;
+    -moz-osx-font-smoothing: grayscale;
+}
+
+html, body {
+    height: 100%;
+}
+
+.form-body {
+    background-color: #0093FF;
+    height: 100%;
+}
+
+.form-body > .row {
+    position: relative;
+    margin-left: 0;
+    margin-right: 0;
+    height: 100%;
+}
+
+.website-logo {
+    display: inline-block;
+    position: absolute;
+    z-index: 1000;
+    top: 50px;
+    left: 50px;
+    right: initial;
+    bottom: initial;
+}
+
+.website-logo img {
+    width: 100px;
+}
+
+.website-logo a {
+    display: inline-block;
+}
+
+.website-logo .logo {
+    display: inline-block;
+    background-image: url("../images/logo-light.svg");
+    background-size: contain;
+    background-repeat: no-repeat;
+}
+
+.website-logo .logo img {
+    width: 150px;
+}
+
+.website-logo .logo img.logo-size {
+    opacity: 0 !important;
+}
+
+.website-logo-inside {
+    margin-bottom: 70px;
+}
+
+.website-logo-inside img {
+    width: 100px;
+}
+
+.website-logo-inside a {
+    display: inline-block;
+}
+
+.website-logo-inside .logo {
+    display: inline-block;
+    background-image: url("../images/logo-light.svg");
+    background-size: contain;
+    background-repeat: no-repeat;
+}
+
+.website-logo-inside .logo img {
+    width: 100px;
+}
+
+.website-logo-inside .logo img.logo-size {
+    opacity: 0 !important;
+}
+
+.preview-body {
+    padding-top: 70px;
+    padding-bottom: 70px;
+    text-align: center;
+}
+
+.preview-body .web-logo {
+    margin-bottom: 50px;
+}
+
+.preview-body .web-logo img {
+    width: 130px;
+}
+
+.preview-body .web-title {
+    font-size: 30px;
+    font-weight: 300;
+    color: #000;
+    line-height: 35px;
+    margin-bottom: 50px;
+}
+
+.preview-body .img-link {
+    display: inline-block;
+    width: 100%;
+    margin: 20px 0;
+    padding: 0 5px;
+}
+
+.preview-body .img-link img {
+    width: 100%;
+    border-radius: 15px;
+    -webkit-box-shadow: 0 0 5px rgba(160, 163, 165, 0.38);
+    box-shadow: 0 0 5px rgba(160, 163, 165, 0.38);
+    -webkit-transition: all 0.5s cubic-bezier(0.34, 1.61, 0.7, 1);
+    transition: all 0.5s cubic-bezier(0.34, 1.61, 0.7, 1);
+}
+
+.preview-body .img-link:hover img, .preview-body .img-link:focus img {
+    -webkit-transform: scale(1.05);
+    -moz-transform: scale(1.05);
+    -ms-transform: scale(1.05);
+    transform: scale(1.05);
+    -webkit-box-shadow: 0 11px 19px rgba(160, 163, 165, 0.3);
+    box-shadow: 0 11px 19px rgba(160, 163, 165, 0.3);
+}
+
+.img-holder {
+    display: inline-block;
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 550px;
+    min-height: 700px;
+    height: 100%;
+    overflow: hidden;
+    background-color: #000000;
+    padding: 60px;
+    text-align: center;
+    z-index: 999;
+}
+
+.img-holder .info-holder {
+    position: relative;
+    top: 50%;
+    -webkit-transform: translateY(-50%);
+    -moz-transform: translateY(-50%);
+    -ms-transform: translateY(-50%);
+    transform: translateY(-50%);
+}
+
+.img-holder .info-holder h3 {
+    display: inline-block;
+    color: #fff;
+    text-align: left;
+    font-size: 23px;
+    font-weight: 900;
+    margin-bottom: 30px;
+    width: 100%;
+    max-width: 378px;
+    padding-right: 30px;
+}
+
+.img-holder .info-holder h2 {
+    display: inline-block;
+    color: #fff;
+    text-align: left;
+    font-size: 32px;
+    font-weight: 900;
+    margin-bottom: 30px;
+    width: 100%;
+    max-width: 378px;
+}
+
+.img-holder .info-holder h2 span {
+    font-size: 32px;
+    font-weight: 900;
+    color: #FE4777;
+}
+
+.img-holder .info-holder p {
+    display: inline-block;
+    color: #fff;
+    text-align: left;
+    font-size: 18px;
+    font-weight: 300;
+    line-height: 20px;
+    margin-bottom: 50px;
+    width: 100%;
+    max-width: 378px;
+    padding-right: 30px;
+}
+
+.img-holder .info-holder img {
+    width: 100%;
+    max-width: 378px;
+}
+
+.img-holder .info-holder img.md-size {
+    max-width: 290px;
+}
+
+.img-holder .info-holder.simple-info h3 {
+    padding-right: 0;
+}
+
+.img-holder .info-holder.simple-info p {
+    padding-right: 0;
+}
+
+.img-holder .info-holder.simple-info img {
+    max-width: 160px;
+    margin-bottom: 50px;
+}
+
+.img-holder .bg {
+    position: absolute;
+    opacity: 0.23;
+    left: 0;
+    top: 0;
+    width: 100%;
+    height: 100%;
+    background-image: url("../images/img1.jpg");
+    background-size: cover;
+    background-position: center;
+    z-index: -1;
+}
+
+@media (min-height: 700px) {
+    .img-holder {
+        position: fixed;
+    }
+
+    .website-logo {
+        position: fixed;
+    }
+}
+
+.form-holder {
+    margin-left: 550px;
+    width: 100%;
+}
+
+.form-holder .form-content {
+    position: relative;
+    text-align: center;
+    display: -webkit-box;
+    display: -moz-box;
+    display: -ms-flexbox;
+    display: -webkit-flex;
+    display: flex;
+    -webkit-justify-content: center;
+    justify-content: center;
+    -webkit-align-items: center;
+    align-items: center;
+    padding: 60px;
+    min-height: 100%;
+}
+
+.form-holder .form-content ::-webkit-input-placeholder {
+    color: #526489;
+}
+
+.form-holder .form-content :-moz-placeholder {
+    color: #526489;
+}
+
+.form-holder .form-content ::-moz-placeholder {
+    color: #526489;
+}
+
+.form-holder .form-content :-ms-input-placeholder {
+    color: #526489;
+}
+
+.form-control:focus {
+    -webkit-box-shadow: none;
+    box-shadow: none;
+}
+
+.form-control ::-webkit-input-placeholder {
+    color: #526489;
+}
+
+.form-control :-moz-placeholder {
+    color: #526489;
+}
+
+.form-control ::-moz-placeholder {
+    color: #526489;
+}
+
+.form-control :-ms-input-placeholder {
+    color: #526489;
+}
+
+.form-content {
+    position: relative;
+    background-color: #0093FF;
+}
+
+.form-content .form-group {
+    color: #fff;
+    font-size: 15px;
+    font-weight: 300;
+}
+
+.form-content .form-items {
+    display: inline-block;
+    width: 100%;
+    max-width: 380px;
+    text-align: left;
+    -webkit-transition: all 0.4s ease;
+    transition: all 0.4s ease;
+}
+
+.form-content .form-icon {
+    text-align: center;
+    width: 100%;
+    line-height: 0;
+    margin-top: calc(-42px - 35px);
+    margin-bottom: 28px;
+}
+
+.form-content .form-icon .icon-holder {
+    position: relative;
+    display: inline-block;
+    width: 85px;
+    height: 85px;
+    border-radius: 85px;
+    background-color: #4A77F7;
+    padding: 20px;
+}
+
+.form-content .form-icon .icon-holder img {
+    position: absolute;
+    width: 50%;
+    top: 50%;
+    left: 50%;
+    margin-top: -23%;
+    margin-left: -25%;
+}
+
+.form-content h3 {
+    color: #fff;
+    text-align: left;
+    font-size: 24px;
+    font-weight: 900;
+    margin-bottom: 10px;
+}
+
+.form-content h3.form-title {
+    margin-bottom: 30px;
+}
+
+.form-content h3.form-title-center {
+    margin-bottom: 30px;
+    text-align: center;
+    font-size: 22px;
+}
+
+.form-content p {
+    color: #fff;
+    text-align: left;
+    font-size: 18px;
+    font-weight: 300;
+    line-height: 20px;
+    margin-bottom: 30px;
+}
+
+.form-content p.form-subtitle {
+    font-size: 16px;
+    margin-bottom: 15px;
+}
+
+.form-content small.error-message {
+    color: lightcoral;
+}
+
+.form-content label {
+    color: #fff;
+    text-align: left;
+    font-size: 15px;
+    font-weight: 300;
+    line-height: 20px;
+    margin-bottom: 10px;
+}
+
+.form-content .page-links {
+    margin-bottom: 34px;
+}
+
+.form-content .page-links a {
+    position: relative;
+    display: inline-block;
+    text-decoration: none;
+    color: #fff;
+    font-weight: 300;
+    font-size: 15px;
+    margin-right: 20px;
+    -webkit-transition: all 0.3s ease;
+    transition: all 0.3s ease;
+}
+
+.form-content .page-links a:last-child {
+    margin-right: 0;
+}
+
+.form-content .page-links a:after {
+    position: absolute;
+    content: "";
+    width: 100%;
+    height: 2px;
+    left: 0;
+    bottom: -10px;
+    background-color: rgba(255, 255, 255, 0.5);
+    -webkit-transition: all 0.3s ease;
+    transition: all 0.3s ease;
+}
+
+.form-content .page-links a.active {
+    font-weight: 700;
+}
+
+.form-content .page-links a.active:after {
+    background-color: #fff;
+}
+
+.form-content .page-links a:hover:after, .form-content .page-links a:focus:after {
+    background-color: #fff;
+}
+
+.form-content input, .form-content .dropdown-toggle.btn-default {
+    width: 100%;
+    padding: 9px 20px;
+    text-align: left;
+    border: 0;
+    outline: 0;
+    border-radius: 6px;
+    background-color: #fff;
+    font-size: 15px;
+    font-weight: 300;
+    color: #8D8D8D;
+    -webkit-transition: all 0.3s ease;
+    transition: all 0.3s ease;
+    margin-bottom: 14px;
+}
+
+.form-content input:hover, .form-content input:focus, .form-content .dropdown-toggle.btn-default:hover, .form-content .dropdown-toggle.btn-default:focus {
+    border: 0;
+    background-color: #ebeff8;
+    color: #8D8D8D;
+}
+
+.form-content textarea {
+    position: static !important;
+    width: 100%;
+    padding: 8px 20px;
+    border-radius: 6px;
+    text-align: left;
+    background-color: #fff;
+    border: 0;
+    font-size: 15px;
+    font-weight: 300;
+    color: #8D8D8D;
+    outline: none;
+    resize: none;
+    height: 120px;
+    -webkit-transition: none;
+    transition: none;
+    margin-bottom: 14px;
+}
+
+.form-content textarea:hover, .form-content textarea:focus {
+    border: 0;
+    background-color: #ebeff8;
+    color: #8D8D8D;
+}
+
+.form-content .custom-file {
+    margin-bottom: 14px;
+}
+
+.form-content .custom-file-label {
+    position: absolute;
+    padding: 9px 44px 9px 20px;
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    text-align: left;
+    border: 0;
+    outline: 0;
+    border-radius: 6px;
+    background-color: #fff;
+    font-size: 15px;
+    font-weight: 300;
+    color: #8D8D8D;
+    outline: none !important;
+    -webkit-box-shadow: none !important;
+    box-shadow: none !important;
+    -webkit-transition: all 0.3s ease;
+    transition: all 0.3s ease;
+}
+
+.form-content .custom-file-label:after {
+    content: "\f382" !important;
+    font-family: Font Awesome\ 5 Free;
+    font-style: normal;
+    font-weight: 600;
+    padding: 0.475rem 0.75rem 0.375rem;
+    color: #495057;
+    background-color: transparent;
+    border-left: 0;
+    border-radius: 0;
+    -webkit-transition: all 0.3s ease;
+    transition: all 0.3s ease;
+}
+
+.form-content input[type=checkbox], .form-content input[type=radio] {
+    width: auto;
+}
+
+.form-content input[type=checkbox]:not(:checked), .form-content input[type=checkbox]:checked, .form-content input[type=radio]:not(:checked), .form-content input[type=radio]:checked {
+    position: absolute;
+    left: -9999px;
+}
+
+.form-content input[type=checkbox]:not(:checked) + label, .form-content input[type=checkbox]:checked + label, .form-content input[type=radio]:not(:checked) + label, .form-content input[type=radio]:checked + label {
+    position: relative;
+    padding-left: 23px;
+    cursor: pointer;
+    display: inline;
+    color: #fff;
+    font-size: 15px;
+    font-weight: 700;
+    margin-left: 0;
+    -webkit-transition: all 0.3s ease;
+    transition: all 0.3s ease;
+    -webkit-touch-callout: none;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+}
+
+.form-content input[type=checkbox]:checked + label, .form-content input[type=radio]:checked + label {
+    color: #fff;
+}
+
+.form-content input[type=checkbox]:checked + label:before, .form-content input[type=radio]:checked + label:before {
+    content: "";
+    position: absolute;
+    left: 0;
+    top: 2px;
+    width: 15px;
+    height: 15px;
+    background: #fff;
+    border-radius: 50px;
+    border: 0px solid #fff;
+    -webkit-transition: all 0.3s ease;
+    transition: all 0.3s ease;
+}
+
+.form-content input[type=checkbox]:not(:checked) + label:before, .form-content input[type=radio]:not(:checked) + label:before {
+    content: "";
+    position: absolute;
+    left: 0;
+    top: 2px;
+    width: 15px;
+    height: 15px;
+    background: transparent;
+    border-radius: 50px;
+    border: 2px solid #fff;
+    -webkit-transition: all 0.3s ease;
+    transition: all 0.3s ease;
+}
+
+.form-content input[type=checkbox]:not(:checked) + label:after, .form-content input[type=radio]:not(:checked) + label:after {
+    opacity: 0;
+    -webkit-transform: scale(0);
+    -moz-transform: scale(0);
+    -ms-transform: scale(0);
+    transform: scale(0);
+}
+
+.form-content input[type=checkbox]:disabled + label, .form-content input[type=radio]:disabled + label {
+    opacity: 0.6;
+}
+
+.form-content input[type=checkbox]:checked + label:after, .form-content input[type=checkbox]:not(:checked) + label:after {
+    content: "\f00c";
+    font-family: "Font Awesome 5 Free";
+    font-style: normal;
+    font-weight: 600;
+    position: absolute;
+    top: 3px;
+    left: 3px;
+    font-size: 9px;
+    color: #0093FF;
+    line-height: 14px;
+    -webkit-transition: all 0.2s ease;
+    transition: all 0.2s ease;
+}
+
+.form-content input[type=checkbox]:checked + label:before {
+    border-radius: 4px;
+}
+
+.form-content input[type=checkbox]:not(:checked) + label:before {
+    border-radius: 4px;
+}
+
+.form-content input[type=radio]:checked + label:after, .form-content input[type=radio]:not(:checked) + label:after {
+    content: "";
+    position: absolute;
+    top: 7px;
+    left: 5px;
+    width: 5px;
+    height: 5px;
+    border-radius: 20px;
+    background-color: #0093FF;
+    -webkit-transition: all 0.2s ease;
+    transition: all 0.2s ease;
+}
+
+.form-content .custom-options {
+    display: -webkit-box;
+    display: -moz-box;
+    display: -ms-flexbox;
+    display: -webkit-flex;
+    display: flex;
+}
+
+.form-content .custom-options input[type=checkbox], .form-content .custom-options input[type=radio] {
+    width: auto;
+}
+
+.form-content .custom-options input[type=checkbox]:not(:checked), .form-content .custom-options input[type=checkbox]:checked, .form-content .custom-options input[type=radio]:not(:checked), .form-content .custom-options input[type=radio]:checked {
+    position: absolute;
+    left: -9999px;
+}
+
+.form-content .custom-options input[type=checkbox]:not(:checked) + label, .form-content .custom-options input[type=checkbox]:checked + label, .form-content .custom-options input[type=radio]:not(:checked) + label, .form-content .custom-options input[type=radio]:checked + label {
+    position: relative;
+    padding-left: 0;
+    cursor: pointer;
+    display: inline;
+    color: #606060;
+    background-color: #F7F7F7;
+    font-size: 13px;
+    font-weight: 400;
+    margin-left: 0;
+    border-radius: 5px;
+    padding: 4px 10px;
+    margin-right: 10px;
+    -webkit-transition: all 0.3s ease;
+    transition: all 0.3s ease;
+    -webkit-touch-callout: none;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+    flex-grow: 1;
+    text-align: center;
+}
+
+.form-content .custom-options input[type=checkbox]:not(:checked) + label:last-child, .form-content .custom-options input[type=checkbox]:checked + label:last-child, .form-content .custom-options input[type=radio]:not(:checked) + label:last-child, .form-content .custom-options input[type=radio]:checked + label:last-child {
+    margin-right: 0;
+}
+
+.form-content .custom-options input[type=checkbox]:not(:checked) + label:after, .form-content .custom-options input[type=checkbox]:checked + label:after, .form-content .custom-options input[type=radio]:not(:checked) + label:after, .form-content .custom-options input[type=radio]:checked + label:after {
+    display: none;
+}
+
+.form-content .custom-options input[type=checkbox]:checked + label, .form-content .custom-options input[type=radio]:checked + label {
+    color: #fff;
+    background-color: #57D38C;
+    font-weight: 400;
+    -webkit-box-shadow: 0 3px 8px rgba(74, 230, 142, 0.35);
+    box-shadow: 0 3px 8px rgba(74, 230, 142, 0.35);
+}
+
+.form-content .custom-options input[type=checkbox]:checked + label:before, .form-content .custom-options input[type=radio]:checked + label:before {
+    display: none;
+}
+
+.form-content .custom-options input[type=checkbox]:not(:checked) + label:before, .form-content .custom-options input[type=radio]:not(:checked) + label:before {
+    display: none;
+}
+
+.form-content .custom-options input[type=checkbox]:not(:checked) + label:after, .form-content .custom-options input[type=radio]:not(:checked) + label:after {
+    display: none;
+}
+
+.form-content .form-button {
+    margin-top: 30px;
+    margin-bottom: 25px;
+}
+
+.form-content .form-button .ibtn {
+    border-radius: 6px;
+    border: 0;
+    padding: 6px 28px;
+    background-color: #fff;
+    width: 100%;
+    color: #29A4FF;
+    font-size: 14px;
+    font-weight: 700;
+    text-decoration: none;
+    cursor: pointer;
+    margin-right: 10px;
+    outline: none;
+    -webkit-transition: all 0.3s ease;
+    transition: all 0.3s ease;
+    -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0.16);
+    box-shadow: 0 0 0 rgba(0, 0, 0, 0.16);
+}
+
+.form-content .form-button .ibtn.ibtn-full {
+    width: 100%;
+}
+
+.form-content .form-button .ibtn:last-child {
+    margin-right: 0;
+}
+
+.form-content .form-button .ibtn:hover, .form-content .form-button .ibtn:focus {
+    -webkit-box-shadow: 0 5px 6px rgba(0, 0, 0, 0.16);
+    box-shadow: 0 5px 6px rgba(0, 0, 0, 0.16);
+}
+
+.form-content .form-button .ibtn.less-padding {
+    padding: 6px 15px !important;
+}
+
+.form-content .form-button .ibtn.extra-padding {
+    font-size: 16px;
+    padding: 10px 32px;
+}
+
+.form-content .form-button a {
+    font-size: 13px;
+    font-weight: 700;
+    color: #fff;
+}
+
+.form-content .form-button.full-width {
+    margin-top: 15px;
+}
+
+.form-content .form-button.full-width .ibtn {
+    width: 100%;
+}
+
+.form-content .btn {
+    border-radius: 6px;
+    padding: 6px 28px;
+    font-size: 14px;
+    font-weight: 700;
+    margin-right: 10px;
+    border: 0;
+}
+
+.form-content .btn.btn-light {
+    color: #B0C2D0;
+}
+
+.form-content .btn.btn-light:hover, .form-content .btn.btn-light:focus {
+    color: #a0b6c6;
+}
+
+.form-content .btn :last-child {
+    margin-right: 0;
+}
+
+.form-content form {
+    margin-bottom: 30px;
+}
+
+.form-content .other-links span {
+    font-size: 12px;
+    font-weight: 300;
+    color: #fff;
+    margin-right: 20px;
+}
+
+.form-content .other-links a {
+    font-size: 12px;
+    font-weight: 700;
+    color: #fff;
+    margin-right: 10px;
+}
+
+.form-content .other-links a:last-child {
+    margin-right: 0;
+}
+
+.form-content .other-links a i {
+    display: inline-block;
+    width: 25px;
+    height: 25px;
+    background-color: #000;
+    color: #fff;
+    border-radius: 25px;
+    text-align: center;
+    padding-top: 5px;
+    font-size: 15px;
+    margin: 0 5px;
+    -webkit-transition: all 0.3s ease;
+    transition: all 0.3s ease;
+}
+
+.form-content .other-links a i[class*=fa-twitter] {
+    background-color: #00aced;
+}
+
+.form-content .other-links a i[class*=fa-facebook] {
+    background-color: #3b5998;
+}
+
+.form-content .other-links a i[class*=fa-youtube] {
+    background-color: #bb0000;
+}
+
+.form-content .other-links a i[class*=fa-google] {
+    background-color: #dd4b39;
+}
+
+.form-content .other-links a i[class*=fa-linkedin] {
+    background-color: #007bb6;
+}
+
+.form-content .other-links a i[class*=fa-instagram] {
+    background-color: #517fa4;
+}
+
+.form-content .other-links a i:hover, .form-content .other-links a i:focus {
+    opacity: 0.8;
+}
+
+.form-content.form-sm input, .form-content.form-sm .dropdown-toggle.btn-default {
+    padding: 6px 16px;
+    margin-bottom: 10px;
+    font-size: 14px;
+}
+
+.form-content.form-sm textarea {
+    padding: 6px 16px;
+    margin-bottom: 10px;
+    font-size: 14px;
+}
+
+.form-content.form-sm .form-button .ibtn {
+    padding: 4px 28px;
+}
+
+.form-content.form-sm .btn {
+    padding: 4px 28px;
+}
+
+.form-content .form-sent {
+    position: absolute;
+    text-align: center;
+    opacity: 0;
+    pointer-events: none;
+    z-index: 1;
+    -webkit-transform-origin: center center;
+    -moz-transform-origin: center center;
+    -ms-transform-origin: center center;
+    transform-origin: center center;
+    -webkit-transform: scale(0.7) translateX(200px);
+    -moz-transform: scale(0.7) translateX(200px);
+    -ms-transform: scale(0.7) translateX(200px);
+    transform: scale(0.7) translateX(200px);
+    -webkit-transition: all 0.4s ease;
+    transition: all 0.4s ease;
+}
+
+.form-content .form-sent.show-it {
+    opacity: 1;
+    pointer-events: all;
+    z-index: 2;
+    -webkit-transform: scale(1) translateX(0);
+    -moz-transform: scale(1) translateX(0);
+    -ms-transform: scale(1) translateX(0);
+    transform: scale(1) translateX(0);
+}
+
+.form-content .form-sent.show-it .tick-holder .tick-icon {
+    -webkit-animation: tick-anime3 0.7s cubic-bezier(0.34, 1.61, 0.7, 1) 0s forwards;
+    -moz-animation: tick-anime3 0.7s cubic-bezier(0.34, 1.61, 0.7, 1) 0s forwards;
+    -ms-animation: tick-anime3 0.7s cubic-bezier(0.34, 1.61, 0.7, 1) 0s forwards;
+    animation: tick-anime3 0.7s cubic-bezier(0.34, 1.61, 0.7, 1) 0s forwards;
+}
+
+.form-content .form-sent.show-it .tick-holder .tick-icon:before {
+    -webkit-animation: tick-anime1 0.2s linear 0.2s forwards;
+    -moz-animation: tick-anime1 0.2s linear 0.2s forwards;
+    -ms-animation: tick-anime1 0.2s linear 0.2s forwards;
+    animation: tick-anime1 0.2s linear 0.2s forwards;
+}
+
+.form-content .form-sent.show-it .tick-holder .tick-icon:after {
+    -webkit-animation: tick-anime2 0.4s ease 0.4s forwards;
+    -moz-animation: tick-anime2 0.4s ease 0.4s forwards;
+    -ms-animation: tick-anime2 0.4s ease 0.4s forwards;
+    animation: tick-anime2 0.4s ease 0.4s forwards;
+}
+
+.form-content .form-sent .tick-holder {
+    text-align: center;
+    margin-bottom: 12px;
+}
+
+.form-content .form-sent .tick-holder .tick-icon {
+    position: relative;
+    display: inline-block;
+    width: 40px;
+    height: 40px;
+    border-radius: 40px;
+    background-color: rgba(255, 255, 255, 0);
+    -webkit-transform: rotate(35deg) scale(2);
+    -moz-transform: rotate(35deg) scale(2);
+    -ms-transform: rotate(35deg) scale(2);
+    transform: rotate(35deg) scale(2);
+    -webkit-transform-origin: center center;
+    -moz-transform-origin: center center;
+    -ms-transform-origin: center center;
+    transform-origin: center center;
+}
+
+.form-content .form-sent .tick-holder .tick-icon:before {
+    content: "";
+    position: absolute;
+    background-color: #fff;
+    width: 10px;
+    height: 2px;
+    top: 28px;
+    left: 14px;
+    border-radius: 2px;
+    -webkit-transform-origin: left center;
+    -moz-transform-origin: left center;
+    -ms-transform-origin: left center;
+    transform-origin: left center;
+    -webkit-transform: scaleX(0);
+    -moz-transform: scaleX(0);
+    -ms-transform: scaleX(0);
+    transform: scaleX(0);
+}
+
+.form-content .form-sent .tick-holder .tick-icon:after {
+    content: "";
+    position: absolute;
+    background-color: #fff;
+    width: 2px;
+    height: 20px;
+    top: 9px;
+    left: 22px;
+    border-radius: 2px;
+    -webkit-transform-origin: center bottom;
+    -moz-transform-origin: center bottom;
+    -ms-transform-origin: center bottom;
+    transform-origin: center bottom;
+    -webkit-transform: scaleY(0);
+    -moz-transform: scaleY(0);
+    -ms-transform: scaleY(0);
+    transform: scaleY(0);
+}
+
+.form-content .form-sent h3 {
+    text-align: center;
+    color: #fff;
+}
+
+.form-content .form-sent p {
+    text-align: center;
+    color: #fff;
+    font-size: 15px;
+    opacity: 0.8;
+    margin-bottom: 20px;
+}
+
+.form-content .form-sent .info-holder {
+    font-size: 12px;
+    font-weight: 700;
+    color: #fff;
+    border-top: 1px solid rgba(255, 255, 255, 0.5);
+    padding: 10px;
+    margin-top: 60px;
+}
+
+.form-content .form-sent .info-holder span {
+    font-size: 12px;
+    font-weight: 700;
+    color: #fff;
+    opacity: 0.6;
+}
+
+.form-content .form-sent .info-holder a {
+    font-size: 12px;
+    font-weight: 700;
+    color: #fff;
+    opacity: 0.9;
+}
+
+.form-content .hide-it {
+    opacity: 0;
+    z-index: 1;
+    pointer-events: none;
+    -webkit-transform-origin: center center;
+    -moz-transform-origin: center center;
+    -ms-transform-origin: center center;
+    transform-origin: center center;
+    -webkit-transform: scale(0.7) translateX(-200px);
+    -moz-transform: scale(0.7) translateX(-200px);
+    -ms-transform: scale(0.7) translateX(-200px);
+    transform: scale(0.7) translateX(-200px);
+}
+
+.form-content .row {
+    margin-right: -6px;
+    margin-left: -6px;
+}
+
+.form-content .row.top-padding {
+    padding-top: 30px;
+}
+
+.form-content .row.top-padding .form-button {
+    margin-top: 0;
+}
+
+.form-content .row .col {
+    padding-right: 6px;
+    padding-left: 6px;
+}
+
+.input-with-ccicon {
+    position: relative;
+    display: inline-block;
+    width: 100%;
+}
+
+.input-with-ccicon #ccicon {
+    position: absolute;
+    right: 0.6rem;
+    top: 0.55rem;
+    font-size: 1.6rem;
+}
+
+.input-with-ccicon #ccicon[class*=visa] {
+    color: #3744a2;
+}
+
+.input-with-ccicon #ccicon[class*=amex] {
+    color: #1d8bd4;
+}
+
+.input-with-ccicon #ccicon[class*=diners-club] {
+    color: #1d72d4;
+}
+
+.input-with-ccicon #ccicon[class*=mastercard] {
+    color: #e42613;
+}
+
+.input-with-ccicon #ccicon[class*=discover] {
+    color: #ef940b;
+}
+
+.input-with-ccicon input {
+    padding-right: 45px;
+}
+
+.nav-tabs {
+    border-bottom: 0;
+    margin-bottom: 2.2rem;
+}
+
+.nav-tabs .nav-item .nav-link {
+    position: relative;
+    border: 0;
+    font-weight: 300;
+    padding: 0.5rem 0;
+    margin-right: 1.2rem;
+    text-align: center;
+    color: #000;
+    background-color: transparent;
+    -webkit-transition: all 0.3s ease;
+    transition: all 0.3s ease;
+}
+
+.nav-tabs .nav-item .nav-link:before {
+    content: "";
+    position: absolute;
+    left: 0;
+    bottom: -3px;
+    width: 100%;
+    height: 2px;
+    background-color: #DEDEDE;
+    -webkit-transition: all 0.3s ease;
+    transition: all 0.3s ease;
+}
+
+.nav-tabs .nav-item .nav-link.active {
+    font-weight: 700;
+}
+
+.nav-tabs .nav-item .nav-link.active:before {
+    height: 3px;
+    background-color: #57D38C;
+}
+
+.form-subtitle {
+    font-size: 19px;
+    font-weight: 300;
+    color: #fff;
+    margin-bottom: 1rem;
+}
+
+.inline-el-holder .inline-el {
+    display: inline-block;
+    margin-right: 1.3rem;
+}
+
+.rad-with-details {
+    margin-bottom: 1rem;
+}
+
+.rad-with-details .more-info {
+    color: #fff;
+    font-size: 14px;
+    font-weight: 300;
+    margin-top: 0.3rem;
+}
+
+.separator {
+    border-top: 1px solid #C7C7C7;
+    margin-top: 1rem;
+    margin-bottom: 2rem;
+}
+
+input.sm-content {
+    max-width: 110px;
+}
+
+.form-body.on-top .website-logo {
+    position: absolute;
+}
+
+.form-body.on-top .img-holder {
+    display: block;
+    position: relative;
+    width: 100%;
+    min-height: initial;
+    height: initial;
+    overflow: initial;
+    padding: 40px;
+}
+
+.form-body.on-top .img-holder .info-holder.simple-info h3 {
+    margin-bottom: 16px;
+}
+
+.form-body.on-top .img-holder .info-holder.simple-info p {
+    margin-bottom: 10px;
+}
+
+.form-body.on-top .img-holder .info-holder.simple-info img {
+    margin-bottom: 20px;
+}
+
+.form-body.on-top .form-holder {
+    margin-left: 0;
+}
+
+@keyframes tick-anime1 {
+    0% {
+        -webkit-transform: scaleX(0);
+        -moz-transform: scaleX(0);
+        -ms-transform: scaleX(0);
+        transform: scaleX(0);
+    }
+
+    100% {
+        -webkit-transform: scaleX(1);
+        -moz-transform: scaleX(1);
+        -ms-transform: scaleX(1);
+        transform: scaleX(1);
+    }
+}
+
+@keyframes tick-anime2 {
+    0% {
+        -webkit-transform: scaleY(0);
+        -moz-transform: scaleY(0);
+        -ms-transform: scaleY(0);
+        transform: scaleY(0);
+    }
+
+    100% {
+        -webkit-transform: scaleY(1);
+        -moz-transform: scaleY(1);
+        -ms-transform: scaleY(1);
+        transform: scaleY(1);
+    }
+}
+
+@keyframes tick-anime3 {
+    0% {
+        background-color: rgba(255, 255, 255, 0);
+        -webkit-transform: rotate(35deg) scale(2);
+        -moz-transform: rotate(35deg) scale(2);
+        -ms-transform: rotate(35deg) scale(2);
+        transform: rotate(35deg) scale(2);
+    }
+
+    100% {
+        background-color: rgba(255, 255, 255, 0.2);
+        -webkit-transform: rotate(45deg) scale(1);
+        -moz-transform: rotate(45deg) scale(1);
+        -ms-transform: rotate(45deg) scale(1);
+        transform: rotate(45deg) scale(1);
+    }
+}
+
+@keyframes c-tick-anime3 {
+    0% {
+        background-color: rgba(233, 253, 214, 0);
+        -webkit-transform: rotate(35deg) scale(2);
+        -moz-transform: rotate(35deg) scale(2);
+        -ms-transform: rotate(35deg) scale(2);
+        transform: rotate(35deg) scale(2);
+    }
+
+    100% {
+        background-color: #E9FDD6;
+        -webkit-transform: rotate(45deg) scale(1);
+        -moz-transform: rotate(45deg) scale(1);
+        -ms-transform: rotate(45deg) scale(1);
+        transform: rotate(45deg) scale(1);
+    }
+}
+
+.alert {
+    position: relative;
+    padding: 6px 12px;
+    border: 1px solid #000;
+    color: #000000;
+    font-size: 13px;
+    font-weight: 700;
+}
+
+.alert a, .alert a.alert-link {
+    font-weight: 700;
+    color: #000000;
+}
+
+.alert p {
+    font-size: 13px;
+    font-weight: 700;
+    margin-bottom: 18px;
+}
+
+.alert.alert-primary {
+    background-color: #e2f0ff;
+    border-color: #3a86d6;
+}
+
+.alert.alert-primary hr {
+    border-top-color: #3a86d6;
+}
+
+.alert.alert-secondary {
+    background-color: #f0f0f0;
+    border-color: #8e9396;
+}
+
+.alert.alert-secondary hr {
+    border-top-color: #8e9396;
+}
+
+.alert.alert-success {
+    background-color: #F7FFF0;
+    border-color: #8CCB57;
+}
+
+.alert.alert-success hr {
+    border-top-color: #8CCB57;
+}
+
+.alert.alert-danger {
+    background-color: #FFFAFA;
+    border-color: #F55050;
+}
+
+.alert.alert-danger hr {
+    border-top-color: #F55050;
+}
+
+.alert.alert-warning {
+    background-color: #fff8e1;
+    border-color: #f1cb4b;
+}
+
+.alert.alert-warning hr {
+    border-top-color: #f1cb4b;
+}
+
+.alert.alert-info {
+    background-color: #dcedf1;
+    border-color: #42bfdb;
+}
+
+.alert.alert-info hr {
+    border-top-color: #42bfdb;
+}
+
+.alert.alert-light {
+    background-color: #fefefe;
+    border-color: #a7a4a4;
+}
+
+.alert.alert-light hr {
+    border-top-color: #a7a4a4;
+}
+
+.alert.alert-dark {
+    background-color: #d6d8d9;
+    border-color: #525557;
+}
+
+.alert.alert-dark hr {
+    border-top-color: #525557;
+}
+
+.alert.with-icon {
+    padding-left: 32px;
+}
+
+.alert.with-icon[class*=alert-]:before {
+    position: absolute;
+    font-family: "Font Awesome 5 Free";
+    font-style: normal;
+    font-weight: 600;
+    top: 7px;
+    left: 7px;
+    width: 20px;
+    font-size: 12px;
+    text-align: center;
+}
+
+.alert.with-icon.alert-primary:before {
+    content: "\f12a";
+    color: #3a86d6;
+}
+
+.alert.with-icon.alert-secondary:before {
+    content: "\f12a";
+    color: #8e9396;
+}
+
+.alert.with-icon.alert-success:before {
+    content: "\f00c";
+    color: #8CCB57;
+}
+
+.alert.with-icon.alert-danger:before {
+    content: "\f071";
+    color: #F55050;
+}
+
+.alert.with-icon.alert-warning:before {
+    content: "\f06a";
+    color: #f1cb4b;
+}
+
+.alert.with-icon.alert-info:before {
+    content: "\f129";
+    color: #42bfdb;
+}
+
+.alert.with-icon.alert-light:before {
+    content: "\f12a";
+    color: #a7a4a4;
+}
+
+.alert.with-icon.alert-dark:before {
+    content: "\f12a";
+    color: #525557;
+}
+
+.alert .close {
+    color: #727272;
+    font-size: 0.9rem;
+    padding: 3px;
+    outline: none;
+}
+
+.alert .close span {
+    color: #727272;
+}
+
+.form-body.without-side .website-logo {
+    top: 70px;
+    left: 50%;
+    margin-left: -50px;
+    right: initial;
+    bottom: initial;
+    display: inline-block;
+}
+
+.form-body.without-side .website-logo-inside .logo {
+    background-image: url("../images/logo-dark.svg");
+}
+
+.form-body.without-side .form-holder .form-content ::-webkit-input-placeholder {
+    color: #000;
+}
+
+.form-body.without-side .form-holder .form-content :-moz-placeholder {
+    color: #000;
+}
+
+.form-body.without-side .form-holder .form-content ::-moz-placeholder {
+    color: #000;
+}
+
+.form-body.without-side .form-holder .form-content :-ms-input-placeholder {
+    color: #000;
+}
+
+.form-body.without-side h3 {
+    color: #000;
+}
+
+.form-body.without-side p {
+    color: #000;
+}
+
+.form-body.without-side label {
+    color: #000;
+}
+
+.form-body.without-side .img-holder {
+    z-index: 0;
+    width: 100%;
+    overflow: hidden;
+}
+
+.form-body.without-side .img-holder .info-holder img {
+    display: none;
+    max-width: 534px;
+    -webkit-animation: zoom-in-img 50s linear 0s infinite;
+    -moz-animation: zoom-in-img 50s linear 0s infinite;
+    -ms-animation: zoom-in-img 50s linear 0s infinite;
+    animation: zoom-in-img 50s linear 0s infinite;
+    -webkit-transform-origin: center center;
+    -moz-transform-origin: center center;
+    -ms-transform-origin: center center;
+    transform-origin: center center;
+    -webkit-transform: scale(1);
+    -moz-transform: scale(1);
+    -ms-transform: scale(1);
+    transform: scale(1);
+}
+
+.form-body.without-side .form-holder {
+    margin-left: 0;
+}
+
+.form-body.without-side .form-holder .form-content {
+    background-color: transparent;
+}
+
+.form-body.without-side .form-content {
+    padding: 125px 60px 60px;
+    -webkit-perspective: 800px;
+    -moz-perspective: 800px;
+    -ms-perspective: 800px;
+    perspective: 800px;
+}
+
+.form-body.without-side .form-content .form-items {
+    padding: 35px 30px;
+    border-radius: 10px;
+    background-color: #fff;
+    -webkit-box-shadow: 0 6px 15px rgba(0, 0, 0, 0.16);
+    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.16);
+}
+
+.form-body.without-side .form-content .form-items form {
+    margin-bottom: 0;
+}
+
+.form-body.without-side .form-content .form-items .other-links {
+    margin-top: 38px;
+    margin-bottom: 30px;
+}
+
+.form-body.without-side .form-content .form-items .other-links .text {
+    font-size: 13px;
+    font-weight: 300;
+    color: #000;
+    margin-bottom: 15px;
+}
+
+.form-body.without-side .form-content .form-items .other-links a {
+    display: inline-block;
+    padding: 5px;
+    border-radius: 2px;
+    color: #000;
+    background-color: #F7F7F7;
+}
+
+.form-body.without-side .form-content .form-items .other-links a i {
+    width: 18px;
+    height: 18px;
+    font-size: 9px;
+    margin-left: 0;
+}
+
+.form-body.without-side .form-content .form-items .page-links {
+    margin-bottom: 0;
+}
+
+.form-body.without-side .form-content .form-items .page-links a {
+    font-weight: 700;
+}
+
+.form-body.without-side .form-content .form-items .page-links a:after {
+    bottom: -3px;
+}
+
+.form-body.without-side .form-content .page-links a {
+    color: #000;
+}
+
+.form-body.without-side .form-content .page-links a:after {
+    background-color: rgba(222, 222, 222, 0.7);
+}
+
+.form-body.without-side .form-content .page-links a.active:after, .form-body.without-side .form-content .page-links a:hover:after, .form-body.without-side .form-content .page-links a:focus:after {
+    background-color: #0092FE;
+}
+
+.form-body.without-side .form-content input, .form-body.without-side .form-content .dropdown-toggle.btn-default {
+    border: 0;
+    background-color: #F7F7F7;
+    color: #000000;
+}
+
+.form-body.without-side .form-content input:hover, .form-body.without-side .form-content input:focus, .form-body.without-side .form-content .dropdown-toggle.btn-default:hover, .form-body.without-side .form-content .dropdown-toggle.btn-default:focus {
+    border: 0;
+    background-color: #eaeaea;
+    color: #000000;
+}
+
+.form-body.without-side .form-content textarea {
+    background-color: #F7F7F7;
+    border: 0;
+    color: #000000;
+}
+
+.form-body.without-side .form-content textarea:hover, .form-body.without-side .form-content textarea:focus {
+    border: 0;
+    background-color: #eaeaea;
+    color: #000000;
+}
+
+.form-body.without-side .form-content input[type=checkbox]:not(:checked) + label, .form-body.without-side .form-content input[type=checkbox]:checked + label, .form-body.without-side .form-content input[type=radio]:not(:checked) + label, .form-body.without-side .form-content input[type=radio]:checked + label {
+    color: #000;
+}
+
+.form-body.without-side .form-content input[type=checkbox]:checked + label, .form-body.without-side .form-content input[type=radio]:checked + label {
+    color: #000;
+}
+
+.form-body.without-side .form-content input[type=checkbox]:checked + label:before, .form-body.without-side .form-content input[type=radio]:checked + label:before {
+    background: #000;
+    border: 0px solid #000;
+}
+
+.form-body.without-side .form-content input[type=checkbox]:not(:checked) + label:before, .form-body.without-side .form-content input[type=radio]:not(:checked) + label:before {
+    background: transparent;
+    border: 2px solid #000;
+}
+
+.form-body.without-side .form-content input[type=checkbox]:not(:checked) + label:after, .form-body.without-side .form-content input[type=checkbox]:checked + label:after {
+    color: #fff;
+}
+
+.form-body.without-side .form-content input[type=radio]:not(:checked) + label:after, .form-body.without-side .form-content input[type=radio]:checked + label:after {
+    background-color: #fff;
+}
+
+.form-body.without-side .form-content .custom-options input[type=checkbox]:not(:checked) + label, .form-body.without-side .form-content .custom-options input[type=checkbox]:checked + label, .form-body.without-side .form-content .custom-options input[type=radio]:not(:checked) + label, .form-body.without-side .form-content .custom-options input[type=radio]:checked + label {
+    color: #606060;
+    background-color: #F7F7F7;
+}
+
+.form-body.without-side .form-content .custom-options input[type=checkbox]:checked + label, .form-body.without-side .form-content .custom-options input[type=radio]:checked + label {
+    color: #fff;
+    background-color: #57D38C;
+    -webkit-box-shadow: 0 3px 8px rgba(74, 230, 142, 0.35);
+    box-shadow: 0 3px 8px rgba(74, 230, 142, 0.35);
+}
+
+.form-body.without-side .form-content .form-button {
+    margin-bottom: 0;
+}
+
+.form-body.without-side .form-content .form-button .ibtn {
+    background-color: #29A4FF;
+    color: #fff;
+    -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0.16);
+    box-shadow: 0 0 0 rgba(0, 0, 0, 0.16);
+}
+
+.form-body.without-side .form-content .form-button .ibtn:hover, .form-body.without-side .form-content .form-button .ibtn:focus {
+    -webkit-box-shadow: 0 5px 6px rgba(0, 0, 0, 0.16);
+    box-shadow: 0 5px 6px rgba(0, 0, 0, 0.16);
+}
+
+.form-body.without-side .form-content .form-button a {
+    font-weight: 300;
+    color: #000;
+}
+
+.form-body.without-side .form-content .form-sent {
+    padding: 35px 30px;
+    border-radius: 10px;
+    background-color: #fff;
+    -webkit-box-shadow: 0 6px 15px rgba(0, 0, 0, 0.16);
+    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.16);
+    -webkit-transform: rotateY(-180deg);
+    -moz-transform: rotateY(-180deg);
+    -ms-transform: rotateY(-180deg);
+    transform: rotateY(-180deg);
+}
+
+.form-body.without-side .form-content .form-sent.show-it {
+    -webkit-transform: rotateY(0deg);
+    -moz-transform: rotateY(0deg);
+    -ms-transform: rotateY(0deg);
+    transform: rotateY(0deg);
+}
+
+.form-body.without-side .form-content .form-sent .tick-holder .tick-icon {
+    -webkit-animation: c-tick-anime3 0.7s cubic-bezier(0.34, 1.61, 0.7, 1) 0s forwards;
+    -moz-animation: c-tick-anime3 0.7s cubic-bezier(0.34, 1.61, 0.7, 1) 0s forwards;
+    -ms-animation: c-tick-anime3 0.7s cubic-bezier(0.34, 1.61, 0.7, 1) 0s forwards;
+    animation: c-tick-anime3 0.7s cubic-bezier(0.34, 1.61, 0.7, 1) 0s forwards;
+    background-color: rgba(233, 253, 214, 0);
+}
+
+.form-body.without-side .form-content .form-sent .tick-holder .tick-icon:before {
+    background-color: #8CCB57;
+}
+
+.form-body.without-side .form-content .form-sent .tick-holder .tick-icon:after {
+    background-color: #8CCB57;
+}
+
+.form-body.without-side .form-content .form-sent h3 {
+    color: #000;
+}
+
+.form-body.without-side .form-content .form-sent p {
+    color: #000;
+}
+
+.form-body.without-side .form-content .form-sent .info-holder {
+    border-top: 1px solid rgba(0, 0, 0, 0.5);
+}
+
+.form-body.without-side .form-content .form-sent .info-holder span {
+    color: #000;
+}
+
+.form-body.without-side .form-content .form-sent .info-holder a {
+    color: #000;
+}
+
+.form-body.without-side .form-content .hide-it {
+    -webkit-transform: rotateY(180deg);
+    -moz-transform: rotateY(180deg);
+    -ms-transform: rotateY(180deg);
+    transform: rotateY(180deg);
+}
+
+@keyframes zoom-in-img {
+    0% {
+        -webkit-transform: scale(1);
+        -moz-transform: scale(1);
+        -ms-transform: scale(1);
+        transform: scale(1);
+    }
+
+    50% {
+        -webkit-transform: scale(1.15);
+        -moz-transform: scale(1.15);
+        -ms-transform: scale(1.15);
+        transform: scale(1.15);
+    }
+
+    100% {
+        -webkit-transform: scale(1);
+        -moz-transform: scale(1);
+        -ms-transform: scale(1);
+        transform: scale(1);
+    }
+}
+
+/* -----------------------------------
+    2 - Responsive Styles
+------------------------------------*/
+@media (max-width: 992px) {
+    .img-holder {
+        display: none;
+    }
+
+    .form-holder {
+        margin-left: 0;
+    }
+
+    .form-holder .form-content {
+        padding: 125px 60px 60px;
+    }
+
+    .form-body.on-top .form-holder .form-content, .form-body.on-top-mobile .form-holder .form-content {
+        padding: 60px;
+    }
+
+    .website-logo {
+        position: relative;
+        top: 50px;
+        left: 50px;
+        right: initial;
+        bottom: initial;
+    }
+
+    .website-logo .logo {
+        background-image: url("../images/logo-light.svg");
+    }
+
+    .form-body.without-side .img-holder {
+        display: inline-block;
+    }
+
+    .form-body.without-side .website-logo .logo {
+        background-image: url("../images/logo-light.svg");
+    }
+
+    .form-body.without-side .form-holder .form-content {
+        padding: 125px 30px 60px;
+    }
+
+    .form-body.on-top-mobile .website-logo {
+        position: absolute;
+    }
+
+    .form-body.on-top-mobile .img-holder {
+        display: block;
+        position: relative;
+        width: 100%;
+        min-height: initial;
+        height: initial;
+        overflow: initial;
+        padding: 40px;
+    }
+
+    .form-body.on-top-mobile .img-holder .info-holder.simple-info h3 {
+        margin-bottom: 16px;
+    }
+
+    .form-body.on-top-mobile .img-holder .info-holder.simple-info p {
+        margin-bottom: 10px;
+    }
+
+    .form-body.on-top-mobile .img-holder .info-holder.simple-info img {
+        margin-bottom: 20px;
+    }
+
+    .form-body.on-top-mobile .form-holder {
+        margin-left: 0;
+    }
+}
+
+@media (max-width: 575px) {
+    .form-body.on-top .img-holder, .form-body.on-top-mobile .img-holder {
+        padding: 90px 40px 40px;
+    }
+
+    .form-content .row.top-padding .form-button {
+        text-align: left !important;
+        margin-top: 30px;
+    }
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/resources/static/css/iofrm-theme.css b/skjcmanager/skjcmanager-auth/src/main/resources/static/css/iofrm-theme.css
new file mode 100644
index 0000000..95c32e0
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/resources/static/css/iofrm-theme.css
@@ -0,0 +1,544 @@
+/*------------------------------------------------------------------
+ * Theme Name: iofrm - form templates
+ * Theme URI: http://www.brandio.io/envato/iofrm
+ * Author: Brandio
+ * Author URI: http://www.brandio.io/
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ -------------------------------------------------------------------*/
+
+body {
+    background-color: #152733;
+}
+
+.form-body {
+    background-color: #152733;
+}
+
+.website-logo {
+    display: none;
+    top: 50px;
+    left: 50px;
+    right: initial;
+    bottom: initial;
+}
+
+.website-logo img {
+    width: 100px;
+}
+
+.website-logo .logo {
+    background-image: url("../images/logo-light.svg");
+}
+
+.website-logo .logo img {
+    width: 100px;
+}
+
+.website-logo-inside img {
+    width: 100px;
+}
+
+.website-logo-inside .logo {
+    background-image: url("../images/logo-light.svg");
+}
+
+.website-logo-inside .logo img {
+    width: 100px;
+}
+
+.img-holder {
+    width: 0;
+    background-color: #5CBAFF;
+}
+
+.img-holder .info-holder h3 {
+    color: #fff;
+    text-align: left;
+}
+
+.img-holder .info-holder h3 span {
+    color: #fff;
+}
+
+.img-holder .info-holder h2 {
+    color: #fff;
+    text-align: left;
+}
+
+.img-holder .info-holder h2 span {
+    color: #fff;
+}
+
+.img-holder .info-holder p {
+    color: #fff;
+    text-align: left;
+}
+
+.img-holder .bg {
+    opacity: 0.23;
+    background-image: none;
+}
+
+.form-holder {
+    margin-left: 0;
+}
+
+.form-holder .form-content ::-webkit-input-placeholder {
+    color: #8D8D8D !important;
+}
+
+.form-holder .form-content :-moz-placeholder {
+    color: #8D8D8D !important;
+}
+
+.form-holder .form-content ::-moz-placeholder {
+    color: #8D8D8D !important;
+}
+
+.form-holder .form-content :-ms-input-placeholder {
+    color: #8D8D8D !important;
+}
+
+.form-content {
+    background-color: #152733;
+}
+
+.form-content .form-group {
+    color: #fff;
+}
+
+.form-content .form-items {
+    max-width: 380px;
+    text-align: center;
+}
+
+.form-content .form-icon {
+    margin-top: calc(-42px - 35px);
+}
+
+.form-content .form-icon .icon-holder {
+    background-color: #4A77F7;
+}
+
+.form-content h1 {
+    color: #fff;
+    text-align: center;
+}
+
+.form-content h2 {
+    color: #fff;
+    text-align: center;
+}
+
+.form-content h3 {
+    color: #fff;
+    text-align: center;
+}
+
+.form-content p {
+    color: #fff;
+    text-align: center;
+}
+
+.form-content label {
+    color: #fff;
+    text-align: center;
+}
+
+.form-content .page-links a {
+    color: #fff;
+}
+
+.form-content .page-links a:after {
+    background-color: rgba(255, 255, 255, 0.5);
+}
+
+.form-content .page-links a.active:after {
+    background-color: #fff;
+}
+
+.form-content .page-links a:hover:after, .form-content .page-links a:focus:after {
+    background-color: #fff;
+}
+
+.form-content input, .form-content .dropdown-toggle.btn-default {
+    border: 0;
+    background-color: #fff;
+    color: #8D8D8D;
+}
+
+.form-content input:hover, .form-content input:focus, .form-content .dropdown-toggle.btn-default:hover, .form-content .dropdown-toggle.btn-default:focus {
+    border: 0;
+    background-color: #ebeff8;
+    color: #8D8D8D;
+}
+
+.form-content textarea {
+    border: 0;
+    background-color: #fff;
+    color: #8D8D8D;
+}
+
+.form-content textarea:hover, .form-content textarea:focus {
+    border: 0;
+    background-color: #ebeff8;
+    color: #8D8D8D;
+}
+
+.form-content .custom-file-label {
+    border: 0;
+    background-color: #fff;
+    color: #8D8D8D;
+}
+
+.form-content .custom-file-label:after {
+    color: #0093FF;
+}
+
+.form-content .custom-file:hover .custom-file-label, .form-content .custom-file:focus .custom-file-label {
+    border: 0;
+    background-color: #ebeff8;
+    color: #8D8D8D;
+}
+
+.form-content input[type=checkbox]:not(:checked) + label, .form-content input[type=checkbox]:checked + label, .form-content input[type=radio]:not(:checked) + label, .form-content input[type=radio]:checked + label {
+    color: #fff;
+    font-weight: 700;
+}
+
+.form-content input[type=checkbox]:checked + label, .form-content input[type=radio]:checked + label {
+    color: #fff;
+}
+
+.form-content input[type=checkbox]:checked + label:before, .form-content input[type=radio]:checked + label:before {
+    background: #fff;
+    border: 0px solid #fff;
+}
+
+.form-content input[type=checkbox]:not(:checked) + label:before, .form-content input[type=radio]:not(:checked) + label:before {
+    background: transparent;
+    border: 2px solid #fff;
+}
+
+.form-content input[type=checkbox]:not(:checked) + label:after, .form-content input[type=checkbox]:checked + label:after {
+    color: #152733;
+}
+
+.form-content input[type=radio]:not(:checked) + label:after, .form-content input[type=radio]:checked + label:after {
+    background-color: #152733;
+}
+
+.form-content .custom-options input[type=checkbox]:not(:checked) + label, .form-content .custom-options input[type=checkbox]:checked + label, .form-content .custom-options input[type=radio]:not(:checked) + label, .form-content .custom-options input[type=radio]:checked + label {
+    color: #606060;
+    background-color: #F7F7F7;
+}
+
+.form-content .custom-options input[type=checkbox]:checked + label, .form-content .custom-options input[type=radio]:checked + label {
+    color: #fff;
+    background-color: #1592E6;
+    -webkit-box-shadow: 0 3px 8px rgba(0, 0, 0, 0.16);
+    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.16);
+}
+
+.form-content .form-button .ibtn {
+    background-color: #1592E6;
+    color: #fff;
+    -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0.16);
+    box-shadow: 0 0 0 rgba(0, 0, 0, 0.16);
+}
+
+.form-content .form-button .ibtn:hover, .form-content .form-button .ibtn:focus {
+    background-color: #1592E6;
+    color: #fff;
+    -webkit-box-shadow: 0 5px 6px rgba(0, 0, 0, 0.16);
+    box-shadow: 0 5px 6px rgba(0, 0, 0, 0.16);
+}
+
+.form-content .form-button a {
+    color: #fff;
+}
+
+.form-content .other-links span {
+    color: #fff;
+}
+
+.form-content .other-links a {
+    color: #fff;
+}
+
+.form-content .form-sent .tick-holder .tick-icon {
+    background-color: rgba(14, 30, 41, 0);
+}
+
+.form-content .form-sent .tick-holder .tick-icon:before {
+    background-color: #8CCB57;
+}
+
+.form-content .form-sent .tick-holder .tick-icon:after {
+    background-color: #8CCB57;
+}
+
+.form-content .form-sent h3 {
+    color: #fff;
+}
+
+.form-content .form-sent p {
+    color: #fff;
+}
+
+.form-content .form-sent .info-holder {
+    color: #fff;
+    border-top: 1px solid rgba(255, 255, 255, 0.5);
+}
+
+.form-content .form-sent .info-holder span {
+    color: #fff;
+}
+
+.form-content .form-sent .info-holder a {
+    color: #fff;
+}
+
+@keyframes tick-anime3 {
+    0% {
+        background-color: rgba(14, 30, 41, 0);
+        -webkit-transform: rotate(35deg) scale(2);
+        -moz-transform: rotate(35deg) scale(2);
+        -ms-transform: rotate(35deg) scale(2);
+        transform: rotate(35deg) scale(2);
+    }
+
+    100% {
+        background-color: #0E1E29;
+        -webkit-transform: rotate(45deg) scale(1);
+        -moz-transform: rotate(45deg) scale(1);
+        -ms-transform: rotate(45deg) scale(1);
+        transform: rotate(45deg) scale(1);
+    }
+}
+
+.alert {
+    color: #fff;
+}
+
+.alert.alert-primary {
+    background-color: rgba(226, 240, 255, 0);
+    border-color: #3a86d6;
+}
+
+.alert.alert-primary hr {
+    border-top-color: #3a86d6;
+}
+
+.alert.alert-secondary {
+    background-color: rgba(240, 240, 240, 0);
+    border-color: #8e9396;
+}
+
+.alert.alert-secondary hr {
+    border-top-color: #8e9396;
+}
+
+.alert.alert-success {
+    background-color: rgba(247, 255, 240, 0);
+    border-color: #8CCB57;
+}
+
+.alert.alert-success hr {
+    border-top-color: #8CCB57;
+}
+
+.alert.alert-danger {
+    background-color: rgba(255, 250, 250, 0);
+    border-color: #F55050;
+}
+
+.alert.alert-danger hr {
+    border-top-color: #F55050;
+}
+
+.alert.alert-warning {
+    background-color: rgba(255, 248, 225, 0);
+    border-color: #f1cb4b;
+}
+
+.alert.alert-warning hr {
+    border-top-color: #f1cb4b;
+}
+
+.alert.alert-info {
+    background-color: rgba(220, 237, 241, 0);
+    border-color: #42bfdb;
+}
+
+.alert.alert-info hr {
+    border-top-color: #42bfdb;
+}
+
+.alert.alert-light {
+    background-color: rgba(254, 254, 254, 0);
+    border-color: #a7a4a4;
+}
+
+.alert.alert-light hr {
+    border-top-color: #a7a4a4;
+}
+
+.alert.alert-dark {
+    background-color: rgba(214, 216, 217, 0);
+    border-color: #525557;
+}
+
+.alert.alert-dark hr {
+    border-top-color: #525557;
+}
+
+.alert.with-icon.alert-primary:before {
+    color: #3a86d6;
+}
+
+.alert.with-icon.alert-secondary:before {
+    color: #8e9396;
+}
+
+.alert.with-icon.alert-success:before {
+    color: #8CCB57;
+}
+
+.alert.with-icon.alert-danger:before {
+    color: #F55050;
+}
+
+.alert.with-icon.alert-warning:before {
+    color: #f1cb4b;
+}
+
+.alert.with-icon.alert-info:before {
+    color: #42bfdb;
+}
+
+.alert.with-icon.alert-light:before {
+    color: #a7a4a4;
+}
+
+.alert.with-icon.alert-dark:before {
+    color: #525557;
+}
+
+.alert a, .alert a.alert-link {
+    color: #fff;
+}
+
+.alert .close {
+    color: #727272;
+}
+
+.alert .close span {
+    color: #727272;
+}
+
+.form-subtitle {
+    color: #fff;
+}
+
+.rad-with-details .more-info {
+    color: #fff;
+}
+
+.form-body.without-side h3 {
+    color: #000;
+}
+
+.form-body.without-side p {
+    color: #000;
+}
+
+.form-body.without-side label {
+    color: #000;
+}
+
+.form-body.without-side .img-holder .info-holder img {
+    display: inline-block;
+}
+
+.form-body.without-side .form-content .form-items {
+    padding: 35px 30px;
+    background-color: #fff;
+}
+
+.form-body.without-side .form-content .form-items .other-links .text {
+    color: #000;
+}
+
+.form-body.without-side .form-content .form-items .other-links a {
+    color: #000;
+    background-color: #F7F7F7;
+}
+
+.form-body.without-side .form-content .page-links a {
+    color: #000;
+}
+
+.form-body.without-side .form-content .page-links a:after {
+    background-color: rgba(255, 255, 255, 0.5);
+}
+
+.form-body.without-side .form-content .page-links a.active:after {
+    background-color: #fff;
+}
+
+.form-body.without-side .form-content .page-links a:hover:after, .form-body.without-side .form-content .page-links a:focus:after {
+    background-color: #fff;
+}
+
+.form-body.without-side .form-content input, .form-body.without-side .form-content .dropdown-toggle.btn-default {
+    border: 0;
+    background-color: #fff;
+    color: #8D8D8D;
+}
+
+.form-body.without-side .form-content input:hover, .form-body.without-side .form-content input:focus, .form-body.without-side .form-content .dropdown-toggle.btn-default:hover, .form-body.without-side .form-content .dropdown-toggle.btn-default:focus {
+    border: 0;
+    background-color: #fff;
+    color: #8D8D8D;
+}
+
+.form-body.without-side .form-content .form-button .ibtn {
+    background-color: #1592E6;
+    color: #fff;
+    -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0.16);
+    box-shadow: 0 0 0 rgba(0, 0, 0, 0.16);
+}
+
+.form-body.without-side .form-content .form-button .ibtn:hover, .form-body.without-side .form-content .form-button .ibtn:focus {
+    -webkit-box-shadow: 0 5px 6px rgba(0, 0, 0, 0.16);
+    box-shadow: 0 5px 6px rgba(0, 0, 0, 0.16);
+}
+
+.form-body.without-side .form-content .form-button a {
+    color: #fff;
+}
+
+/* -----------------------------------
+    2 - Responsive Styles
+------------------------------------*/
+@media (max-width: 992px) {
+    .form-holder {
+        margin-left: 0;
+    }
+
+    .website-logo {
+        top: 50px;
+        left: 50px;
+        right: initial;
+        bottom: initial;
+    }
+
+    .website-logo .logo {
+        background-image: url("../images/logo-light.svg");
+    }
+
+    .form-body.without-side .website-logo .logo {
+        background-image: url("../images/logo-light.svg");
+    }
+}
diff --git a/skjcmanager/skjcmanager-auth/src/main/resources/static/js/bootstrap.min.js b/skjcmanager/skjcmanager-auth/src/main/resources/static/js/bootstrap.min.js
new file mode 100644
index 0000000..4e07ef4
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/resources/static/js/bootstrap.min.js
@@ -0,0 +1,6 @@
+/*!
+  * Bootstrap v4.6.1 (https://getbootstrap.com/)
+  * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
+  */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap={},t.jQuery,t.Popper)}(this,(function(t,e,n){"use strict";function i(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var o=i(e),a=i(n);function s(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function l(t,e,n){return e&&s(t.prototype,e),n&&s(t,n),t}function r(){return r=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},r.apply(this,arguments)}function u(t,e){return u=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},u(t,e)}var f="transitionend";var d={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var e=o.default(t).css("transition-duration"),n=o.default(t).css("transition-delay"),i=parseFloat(e),a=parseFloat(n);return i||a?(e=e.split(",")[0],n=n.split(",")[0],1e3*(parseFloat(e)+parseFloat(n))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){o.default(t).trigger(f)},supportsTransitionEnd:function(){return Boolean(f)},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],a=e[i],s=a&&d.isElement(a)?"element":null===(l=a)||"undefined"==typeof l?""+l:{}.toString.call(l).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(s))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+o+'".')}var l},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){var e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?d.findShadowRoot(t.parentNode):null},jQueryDetection:function(){if("undefined"==typeof o.default)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=o.default.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};d.jQueryDetection(),o.default.fn.emulateTransitionEnd=function(t){var e=this,n=!1;return o.default(this).one(d.TRANSITION_END,(function(){n=!0})),setTimeout((function(){n||d.triggerTransitionEnd(e)}),t),this},o.default.event.special[d.TRANSITION_END]={bindType:f,delegateType:f,handle:function(t){if(o.default(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var c="bs.alert",h=o.default.fn.alert,g=function(){function t(t){this._element=t}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.dispose=function(){o.default.removeData(this._element,c),this._element=null},e._getRootElement=function(t){var e=d.getSelectorFromElement(t),n=!1;return e&&(n=document.querySelector(e)),n||(n=o.default(t).closest(".alert")[0]),n},e._triggerCloseEvent=function(t){var e=o.default.Event("close.bs.alert");return o.default(t).trigger(e),e},e._removeElement=function(t){var e=this;if(o.default(t).removeClass("show"),o.default(t).hasClass("fade")){var n=d.getTransitionDurationFromElement(t);o.default(t).one(d.TRANSITION_END,(function(n){return e._destroyElement(t,n)})).emulateTransitionEnd(n)}else this._destroyElement(t)},e._destroyElement=function(t){o.default(t).detach().trigger("closed.bs.alert").remove()},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(c);i||(i=new t(this),n.data(c,i)),"close"===e&&i[e](this)}))},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}}]),t}();o.default(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',g._handleDismiss(new g)),o.default.fn.alert=g._jQueryInterface,o.default.fn.alert.Constructor=g,o.default.fn.alert.noConflict=function(){return o.default.fn.alert=h,g._jQueryInterface};var m="bs.button",p=o.default.fn.button,_="active",v='[data-toggle^="button"]',y='input:not([type="hidden"])',b=".btn",E=function(){function t(t){this._element=t,this.shouldAvoidTriggerChange=!1}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=o.default(this._element).closest('[data-toggle="buttons"]')[0];if(n){var i=this._element.querySelector(y);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(_))t=!1;else{var a=n.querySelector(".active");a&&o.default(a).removeClass(_)}t&&("checkbox"!==i.type&&"radio"!==i.type||(i.checked=!this._element.classList.contains(_)),this.shouldAvoidTriggerChange||o.default(i).trigger("change")),i.focus(),e=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(_)),t&&o.default(this._element).toggleClass(_))},e.dispose=function(){o.default.removeData(this._element,m),this._element=null},t._jQueryInterface=function(e,n){return this.each((function(){var i=o.default(this),a=i.data(m);a||(a=new t(this),i.data(m,a)),a.shouldAvoidTriggerChange=n,"toggle"===e&&a[e]()}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}}]),t}();o.default(document).on("click.bs.button.data-api",v,(function(t){var e=t.target,n=e;if(o.default(e).hasClass("btn")||(e=o.default(e).closest(b)[0]),!e||e.hasAttribute("disabled")||e.classList.contains("disabled"))t.preventDefault();else{var i=e.querySelector(y);if(i&&(i.hasAttribute("disabled")||i.classList.contains("disabled")))return void t.preventDefault();"INPUT"!==n.tagName&&"LABEL"===e.tagName||E._jQueryInterface.call(o.default(e),"toggle","INPUT"===n.tagName)}})).on("focus.bs.button.data-api blur.bs.button.data-api",v,(function(t){var e=o.default(t.target).closest(b)[0];o.default(e).toggleClass("focus",/^focus(in)?$/.test(t.type))})),o.default(window).on("load.bs.button.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),e=0,n=t.length;e<n;e++){var i=t[e],o=i.querySelector(y);o.checked||o.hasAttribute("checked")?i.classList.add(_):i.classList.remove(_)}for(var a=0,s=(t=[].slice.call(document.querySelectorAll('[data-toggle="button"]'))).length;a<s;a++){var l=t[a];"true"===l.getAttribute("aria-pressed")?l.classList.add(_):l.classList.remove(_)}})),o.default.fn.button=E._jQueryInterface,o.default.fn.button.Constructor=E,o.default.fn.button.noConflict=function(){return o.default.fn.button=p,E._jQueryInterface};var T="carousel",w="bs.carousel",C=o.default.fn[T],S="active",N="next",D="prev",A="slid.bs.carousel",I=".active.carousel-item",k={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},O={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},j={TOUCH:"touch",PEN:"pen"},P=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(".carousel-indicators"),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var e=t.prototype;return e.next=function(){this._isSliding||this._slide(N)},e.nextWhenVisible=function(){var t=o.default(this._element);!document.hidden&&t.is(":visible")&&"hidden"!==t.css("visibility")&&this.next()},e.prev=function(){this._isSliding||this._slide(D)},e.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(d.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=this._element.querySelector(I);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)o.default(this._element).one(A,(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?N:D;this._slide(i,this._items[t])}},e.dispose=function(){o.default(this._element).off(".bs.carousel"),o.default.removeData(this._element,w),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=r({},k,t),d.typeCheckConfig(T,t,O),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&o.default(this._element).on("keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&o.default(this._element).on("mouseenter.bs.carousel",(function(e){return t.pause(e)})).on("mouseleave.bs.carousel",(function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&j[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},n=function(e){t._pointerEvent&&j[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout((function(e){return t.cycle(e)}),500+t._config.interval))};o.default(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",(function(t){return t.preventDefault()})),this._pointerEvent?(o.default(this._element).on("pointerdown.bs.carousel",(function(t){return e(t)})),o.default(this._element).on("pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(o.default(this._element).on("touchstart.bs.carousel",(function(t){return e(t)})),o.default(this._element).on("touchmove.bs.carousel",(function(e){return function(e){t.touchDeltaX=e.originalEvent.touches&&e.originalEvent.touches.length>1?0:e.originalEvent.touches[0].clientX-t.touchStartX}(e)})),o.default(this._element).on("touchend.bs.carousel",(function(t){return n(t)})))}},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n=t===N,i=t===D,o=this._getItemIndex(e),a=this._items.length-1;if((i&&0===o||n&&o===a)&&!this._config.wrap)return e;var s=(o+(t===D?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(this._element.querySelector(I)),a=o.default.Event("slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n});return o.default(this._element).trigger(a),a},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var e=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));o.default(e).removeClass(S);var n=this._indicatorsElement.children[this._getItemIndex(t)];n&&o.default(n).addClass(S)}},e._updateInterval=function(){var t=this._activeElement||this._element.querySelector(I);if(t){var e=parseInt(t.getAttribute("data-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval}},e._slide=function(t,e){var n,i,a,s=this,l=this._element.querySelector(I),r=this._getItemIndex(l),u=e||l&&this._getItemByDirection(t,l),f=this._getItemIndex(u),c=Boolean(this._interval);if(t===N?(n="carousel-item-left",i="carousel-item-next",a="left"):(n="carousel-item-right",i="carousel-item-prev",a="right"),u&&o.default(u).hasClass(S))this._isSliding=!1;else if(!this._triggerSlideEvent(u,a).isDefaultPrevented()&&l&&u){this._isSliding=!0,c&&this.pause(),this._setActiveIndicatorElement(u),this._activeElement=u;var h=o.default.Event(A,{relatedTarget:u,direction:a,from:r,to:f});if(o.default(this._element).hasClass("slide")){o.default(u).addClass(i),d.reflow(u),o.default(l).addClass(n),o.default(u).addClass(n);var g=d.getTransitionDurationFromElement(l);o.default(l).one(d.TRANSITION_END,(function(){o.default(u).removeClass(n+" "+i).addClass(S),o.default(l).removeClass("active "+i+" "+n),s._isSliding=!1,setTimeout((function(){return o.default(s._element).trigger(h)}),0)})).emulateTransitionEnd(g)}else o.default(l).removeClass(S),o.default(u).addClass(S),this._isSliding=!1,o.default(this._element).trigger(h);c&&this.cycle()}},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data(w),i=r({},k,o.default(this).data());"object"==typeof e&&(i=r({},i,e));var a="string"==typeof e?e:i.slide;if(n||(n=new t(this,i),o.default(this).data(w,n)),"number"==typeof e)n.to(e);else if("string"==typeof a){if("undefined"==typeof n[a])throw new TypeError('No method named "'+a+'"');n[a]()}else i.interval&&i.ride&&(n.pause(),n.cycle())}))},t._dataApiClickHandler=function(e){var n=d.getSelectorFromElement(this);if(n){var i=o.default(n)[0];if(i&&o.default(i).hasClass("carousel")){var a=r({},o.default(i).data(),o.default(this).data()),s=this.getAttribute("data-slide-to");s&&(a.interval=!1),t._jQueryInterface.call(o.default(i),a),s&&o.default(i).data(w).to(s),e.preventDefault()}}},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return k}}]),t}();o.default(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",P._dataApiClickHandler),o.default(window).on("load.bs.carousel.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),e=0,n=t.length;e<n;e++){var i=o.default(t[e]);P._jQueryInterface.call(i,i.data())}})),o.default.fn[T]=P._jQueryInterface,o.default.fn[T].Constructor=P,o.default.fn[T].noConflict=function(){return o.default.fn[T]=C,P._jQueryInterface};var L="collapse",R="bs.collapse",x=o.default.fn[L],q="show",F="collapse",Q="collapsing",B="collapsed",H="width",U='[data-toggle="collapse"]',M={toggle:!0,parent:""},W={toggle:"boolean",parent:"(string|element)"},V=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=[].slice.call(document.querySelectorAll(U)),i=0,o=n.length;i<o;i++){var a=n[i],s=d.getSelectorFromElement(a),l=[].slice.call(document.querySelectorAll(s)).filter((function(e){return e===t}));null!==s&&l.length>0&&(this._selector=s,this._triggerArray.push(a))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var e=t.prototype;return e.toggle=function(){o.default(this._element).hasClass(q)?this.hide():this.show()},e.show=function(){var e,n,i=this;if(!(this._isTransitioning||o.default(this._element).hasClass(q)||(this._parent&&0===(e=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter((function(t){return"string"==typeof i._config.parent?t.getAttribute("data-parent")===i._config.parent:t.classList.contains(F)}))).length&&(e=null),e&&(n=o.default(e).not(this._selector).data(R))&&n._isTransitioning))){var a=o.default.Event("show.bs.collapse");if(o.default(this._element).trigger(a),!a.isDefaultPrevented()){e&&(t._jQueryInterface.call(o.default(e).not(this._selector),"hide"),n||o.default(e).data(R,null));var s=this._getDimension();o.default(this._element).removeClass(F).addClass(Q),this._element.style[s]=0,this._triggerArray.length&&o.default(this._triggerArray).removeClass(B).attr("aria-expanded",!0),this.setTransitioning(!0);var l="scroll"+(s[0].toUpperCase()+s.slice(1)),r=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,(function(){o.default(i._element).removeClass(Q).addClass("collapse show"),i._element.style[s]="",i.setTransitioning(!1),o.default(i._element).trigger("shown.bs.collapse")})).emulateTransitionEnd(r),this._element.style[s]=this._element[l]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&o.default(this._element).hasClass(q)){var e=o.default.Event("hide.bs.collapse");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._getDimension();this._element.style[n]=this._element.getBoundingClientRect()[n]+"px",d.reflow(this._element),o.default(this._element).addClass(Q).removeClass("collapse show");var i=this._triggerArray.length;if(i>0)for(var a=0;a<i;a++){var s=this._triggerArray[a],l=d.getSelectorFromElement(s);null!==l&&(o.default([].slice.call(document.querySelectorAll(l))).hasClass(q)||o.default(s).addClass(B).attr("aria-expanded",!1))}this.setTransitioning(!0),this._element.style[n]="";var r=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,(function(){t.setTransitioning(!1),o.default(t._element).removeClass(Q).addClass(F).trigger("hidden.bs.collapse")})).emulateTransitionEnd(r)}}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){o.default.removeData(this._element,R),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=r({},M,t)).toggle=Boolean(t.toggle),d.typeCheckConfig(L,t,W),t},e._getDimension=function(){return o.default(this._element).hasClass(H)?H:"height"},e._getParent=function(){var e,n=this;d.isElement(this._config.parent)?(e=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(e=this._config.parent[0])):e=document.querySelector(this._config.parent);var i='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',a=[].slice.call(e.querySelectorAll(i));return o.default(a).each((function(e,i){n._addAriaAndCollapsedClass(t._getTargetFromElement(i),[i])})),e},e._addAriaAndCollapsedClass=function(t,e){var n=o.default(t).hasClass(q);e.length&&o.default(e).toggleClass(B,!n).attr("aria-expanded",n)},t._getTargetFromElement=function(t){var e=d.getSelectorFromElement(t);return e?document.querySelector(e):null},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(R),a=r({},M,n.data(),"object"==typeof e&&e?e:{});if(!i&&a.toggle&&"string"==typeof e&&/show|hide/.test(e)&&(a.toggle=!1),i||(i=new t(this,a),n.data(R,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return M}}]),t}();o.default(document).on("click.bs.collapse.data-api",U,(function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var e=o.default(this),n=d.getSelectorFromElement(this),i=[].slice.call(document.querySelectorAll(n));o.default(i).each((function(){var t=o.default(this),n=t.data(R)?"toggle":e.data();V._jQueryInterface.call(t,n)}))})),o.default.fn[L]=V._jQueryInterface,o.default.fn[L].Constructor=V,o.default.fn[L].noConflict=function(){return o.default.fn[L]=x,V._jQueryInterface};var z="dropdown",K="bs.dropdown",X=o.default.fn[z],Y=new RegExp("38|40|27"),$="disabled",J="show",G="dropdown-menu-right",Z="hide.bs.dropdown",tt="hidden.bs.dropdown",et="click.bs.dropdown.data-api",nt="keydown.bs.dropdown.data-api",it='[data-toggle="dropdown"]',ot=".dropdown-menu",at={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},st={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},lt=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var e=t.prototype;return e.toggle=function(){if(!this._element.disabled&&!o.default(this._element).hasClass($)){var e=o.default(this._menu).hasClass(J);t._clearMenus(),e||this.show(!0)}},e.show=function(e){if(void 0===e&&(e=!1),!(this._element.disabled||o.default(this._element).hasClass($)||o.default(this._menu).hasClass(J))){var n={relatedTarget:this._element},i=o.default.Event("show.bs.dropdown",n),s=t._getParentFromElement(this._element);if(o.default(s).trigger(i),!i.isDefaultPrevented()){if(!this._inNavbar&&e){if("undefined"==typeof a.default)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");var l=this._element;"parent"===this._config.reference?l=s:d.isElement(this._config.reference)&&(l=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(l=this._config.reference[0])),"scrollParent"!==this._config.boundary&&o.default(s).addClass("position-static"),this._popper=new a.default(l,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===o.default(s).closest(".navbar-nav").length&&o.default(document.body).children().on("mouseover",null,o.default.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),o.default(this._menu).toggleClass(J),o.default(s).toggleClass(J).trigger(o.default.Event("shown.bs.dropdown",n))}}},e.hide=function(){if(!this._element.disabled&&!o.default(this._element).hasClass($)&&o.default(this._menu).hasClass(J)){var e={relatedTarget:this._element},n=o.default.Event(Z,e),i=t._getParentFromElement(this._element);o.default(i).trigger(n),n.isDefaultPrevented()||(this._popper&&this._popper.destroy(),o.default(this._menu).toggleClass(J),o.default(i).toggleClass(J).trigger(o.default.Event(tt,e)))}},e.dispose=function(){o.default.removeData(this._element,K),o.default(this._element).off(".bs.dropdown"),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},e.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},e._addEventListeners=function(){var t=this;o.default(this._element).on("click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},e._getConfig=function(t){return t=r({},this.constructor.Default,o.default(this._element).data(),t),d.typeCheckConfig(z,t,this.constructor.DefaultType),t},e._getMenuElement=function(){if(!this._menu){var e=t._getParentFromElement(this._element);e&&(this._menu=e.querySelector(ot))}return this._menu},e._getPlacement=function(){var t=o.default(this._element.parentNode),e="bottom-start";return t.hasClass("dropup")?e=o.default(this._menu).hasClass(G)?"top-end":"top-start":t.hasClass("dropright")?e="right-start":t.hasClass("dropleft")?e="left-start":o.default(this._menu).hasClass(G)&&(e="bottom-end"),e},e._detectNavbar=function(){return o.default(this._element).closest(".navbar").length>0},e._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t._config.offset(e.offsets,t._element)),e}:e.offset=this._config.offset,e},e._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),r({},t,this._config.popperConfig)},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data(K);if(n||(n=new t(this,"object"==typeof e?e:null),o.default(this).data(K,n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=[].slice.call(document.querySelectorAll(it)),i=0,a=n.length;i<a;i++){var s=t._getParentFromElement(n[i]),l=o.default(n[i]).data(K),r={relatedTarget:n[i]};if(e&&"click"===e.type&&(r.clickEvent=e),l){var u=l._menu;if(o.default(s).hasClass(J)&&!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&o.default.contains(s,e.target))){var f=o.default.Event(Z,r);o.default(s).trigger(f),f.isDefaultPrevented()||("ontouchstart"in document.documentElement&&o.default(document.body).children().off("mouseover",null,o.default.noop),n[i].setAttribute("aria-expanded","false"),l._popper&&l._popper.destroy(),o.default(u).removeClass(J),o.default(s).removeClass(J).trigger(o.default.Event(tt,r)))}}}},t._getParentFromElement=function(t){var e,n=d.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},t._dataApiKeydownHandler=function(e){if(!(/input|textarea/i.test(e.target.tagName)?32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||o.default(e.target).closest(ot).length):!Y.test(e.which))&&!this.disabled&&!o.default(this).hasClass($)){var n=t._getParentFromElement(this),i=o.default(n).hasClass(J);if(i||27!==e.which){if(e.preventDefault(),e.stopPropagation(),!i||27===e.which||32===e.which)return 27===e.which&&o.default(n.querySelector(it)).trigger("focus"),void o.default(this).trigger("click");var a=[].slice.call(n.querySelectorAll(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)")).filter((function(t){return o.default(t).is(":visible")}));if(0!==a.length){var s=a.indexOf(e.target);38===e.which&&s>0&&s--,40===e.which&&s<a.length-1&&s++,s<0&&(s=0),a[s].focus()}}}},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return at}},{key:"DefaultType",get:function(){return st}}]),t}();o.default(document).on(nt,it,lt._dataApiKeydownHandler).on(nt,ot,lt._dataApiKeydownHandler).on(et+" keyup.bs.dropdown.data-api",lt._clearMenus).on(et,it,(function(t){t.preventDefault(),t.stopPropagation(),lt._jQueryInterface.call(o.default(this),"toggle")})).on(et,".dropdown form",(function(t){t.stopPropagation()})),o.default.fn[z]=lt._jQueryInterface,o.default.fn[z].Constructor=lt,o.default.fn[z].noConflict=function(){return o.default.fn[z]=X,lt._jQueryInterface};var rt="bs.modal",ut=o.default.fn.modal,ft="modal-open",dt="fade",ct="show",ht="modal-static",gt="hidden.bs.modal",mt="show.bs.modal",pt="focusin.bs.modal",_t="resize.bs.modal",vt="click.dismiss.bs.modal",yt="keydown.dismiss.bs.modal",bt="mousedown.dismiss.bs.modal",Et=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",Tt={backdrop:!0,keyboard:!0,focus:!0,show:!0},wt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Ct=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(".modal-dialog"),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}var e=t.prototype;return e.toggle=function(t){return this._isShown?this.hide():this.show(t)},e.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){var n=o.default.Event(mt,{relatedTarget:t});o.default(this._element).trigger(n),n.isDefaultPrevented()||(this._isShown=!0,o.default(this._element).hasClass(dt)&&(this._isTransitioning=!0),this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),o.default(this._element).on(vt,'[data-dismiss="modal"]',(function(t){return e.hide(t)})),o.default(this._dialog).on(bt,(function(){o.default(e._element).one("mouseup.dismiss.bs.modal",(function(t){o.default(t.target).is(e._element)&&(e._ignoreBackdropClick=!0)}))})),this._showBackdrop((function(){return e._showElement(t)})))}},e.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=o.default.Event("hide.bs.modal");if(o.default(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()){this._isShown=!1;var i=o.default(this._element).hasClass(dt);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),o.default(document).off(pt),o.default(this._element).removeClass(ct),o.default(this._element).off(vt),o.default(this._dialog).off(bt),i){var a=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,(function(t){return e._hideModal(t)})).emulateTransitionEnd(a)}else this._hideModal()}}},e.dispose=function(){[window,this._element,this._dialog].forEach((function(t){return o.default(t).off(".bs.modal")})),o.default(document).off(pt),o.default.removeData(this._element,rt),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(t){return t=r({},Tt,t),d.typeCheckConfig("modal",t,wt),t},e._triggerBackdropTransition=function(){var t=this,e=o.default.Event("hidePrevented.bs.modal");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){var n=this._element.scrollHeight>document.documentElement.clientHeight;n||(this._element.style.overflowY="hidden"),this._element.classList.add(ht);var i=d.getTransitionDurationFromElement(this._dialog);o.default(this._element).off(d.TRANSITION_END),o.default(this._element).one(d.TRANSITION_END,(function(){t._element.classList.remove(ht),n||o.default(t._element).one(d.TRANSITION_END,(function(){t._element.style.overflowY=""})).emulateTransitionEnd(t._element,i)})).emulateTransitionEnd(i),this._element.focus()}},e._showElement=function(t){var e=this,n=o.default(this._element).hasClass(dt),i=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),o.default(this._dialog).hasClass("modal-dialog-scrollable")&&i?i.scrollTop=0:this._element.scrollTop=0,n&&d.reflow(this._element),o.default(this._element).addClass(ct),this._config.focus&&this._enforceFocus();var a=o.default.Event("shown.bs.modal",{relatedTarget:t}),s=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,o.default(e._element).trigger(a)};if(n){var l=d.getTransitionDurationFromElement(this._dialog);o.default(this._dialog).one(d.TRANSITION_END,s).emulateTransitionEnd(l)}else s()},e._enforceFocus=function(){var t=this;o.default(document).off(pt).on(pt,(function(e){document!==e.target&&t._element!==e.target&&0===o.default(t._element).has(e.target).length&&t._element.focus()}))},e._setEscapeEvent=function(){var t=this;this._isShown?o.default(this._element).on(yt,(function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()})):this._isShown||o.default(this._element).off(yt)},e._setResizeEvent=function(){var t=this;this._isShown?o.default(window).on(_t,(function(e){return t.handleUpdate(e)})):o.default(window).off(_t)},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._showBackdrop((function(){o.default(document.body).removeClass(ft),t._resetAdjustments(),t._resetScrollbar(),o.default(t._element).trigger(gt)}))},e._removeBackdrop=function(){this._backdrop&&(o.default(this._backdrop).remove(),this._backdrop=null)},e._showBackdrop=function(t){var e=this,n=o.default(this._element).hasClass(dt)?dt:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),o.default(this._backdrop).appendTo(document.body),o.default(this._element).on(vt,(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._triggerBackdropTransition():e.hide())})),n&&d.reflow(this._backdrop),o.default(this._backdrop).addClass(ct),!t)return;if(!n)return void t();var i=d.getTransitionDurationFromElement(this._backdrop);o.default(this._backdrop).one(d.TRANSITION_END,t).emulateTransitionEnd(i)}else if(!this._isShown&&this._backdrop){o.default(this._backdrop).removeClass(ct);var a=function(){e._removeBackdrop(),t&&t()};if(o.default(this._element).hasClass(dt)){var s=d.getTransitionDurationFromElement(this._backdrop);o.default(this._backdrop).one(d.TRANSITION_END,a).emulateTransitionEnd(s)}else a()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){var e=[].slice.call(document.querySelectorAll(Et)),n=[].slice.call(document.querySelectorAll(".sticky-top"));o.default(e).each((function(e,n){var i=n.style.paddingRight,a=o.default(n).css("padding-right");o.default(n).data("padding-right",i).css("padding-right",parseFloat(a)+t._scrollbarWidth+"px")})),o.default(n).each((function(e,n){var i=n.style.marginRight,a=o.default(n).css("margin-right");o.default(n).data("margin-right",i).css("margin-right",parseFloat(a)-t._scrollbarWidth+"px")}));var i=document.body.style.paddingRight,a=o.default(document.body).css("padding-right");o.default(document.body).data("padding-right",i).css("padding-right",parseFloat(a)+this._scrollbarWidth+"px")}o.default(document.body).addClass(ft)},e._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(Et));o.default(t).each((function(t,e){var n=o.default(e).data("padding-right");o.default(e).removeData("padding-right"),e.style.paddingRight=n||""}));var e=[].slice.call(document.querySelectorAll(".sticky-top"));o.default(e).each((function(t,e){var n=o.default(e).data("margin-right");"undefined"!=typeof n&&o.default(e).css("margin-right",n).removeData("margin-right")}));var n=o.default(document.body).data("padding-right");o.default(document.body).removeData("padding-right"),document.body.style.paddingRight=n||""},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(e,n){return this.each((function(){var i=o.default(this).data(rt),a=r({},Tt,o.default(this).data(),"object"==typeof e&&e?e:{});if(i||(i=new t(this,a),o.default(this).data(rt,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}else a.show&&i.show(n)}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return Tt}}]),t}();o.default(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',(function(t){var e,n=this,i=d.getSelectorFromElement(this);i&&(e=document.querySelector(i));var a=o.default(e).data(rt)?"toggle":r({},o.default(e).data(),o.default(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var s=o.default(e).one(mt,(function(t){t.isDefaultPrevented()||s.one(gt,(function(){o.default(n).is(":visible")&&n.focus()}))}));Ct._jQueryInterface.call(o.default(e),a,this)})),o.default.fn.modal=Ct._jQueryInterface,o.default.fn.modal.Constructor=Ct,o.default.fn.modal.noConflict=function(){return o.default.fn.modal=ut,Ct._jQueryInterface};var St=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Nt=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Dt=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;function At(t,e,n){if(0===t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),a=[].slice.call(i.body.querySelectorAll("*")),s=function(t,n){var i=a[t],s=i.nodeName.toLowerCase();if(-1===o.indexOf(i.nodeName.toLowerCase()))return i.parentNode.removeChild(i),"continue";var l=[].slice.call(i.attributes),r=[].concat(e["*"]||[],e[s]||[]);l.forEach((function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===St.indexOf(n)||Boolean(Nt.test(t.nodeValue)||Dt.test(t.nodeValue));for(var i=e.filter((function(t){return t instanceof RegExp})),o=0,a=i.length;o<a;o++)if(i[o].test(n))return!0;return!1})(t,r)||i.removeAttribute(t.nodeName)}))},l=0,r=a.length;l<r;l++)s(l);return i.body.innerHTML}var It="tooltip",kt="bs.tooltip",Ot=o.default.fn.tooltip,jt=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Pt=["sanitize","whiteList","sanitizeFn"],Lt="fade",Rt="show",xt="show",qt="out",Ft="hover",Qt="focus",Bt={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Ht={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",customClass:"",sanitize:!0,sanitizeFn:null,whiteList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Ut={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},Mt={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},Wt=function(){function t(t,e){if("undefined"==typeof a.default)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var e=t.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=o.default(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(o.default(this.getTipElement()).hasClass(Rt))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),o.default.removeData(this.element,this.constructor.DATA_KEY),o.default(this.element).off(this.constructor.EVENT_KEY),o.default(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&o.default(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.show=function(){var t=this;if("none"===o.default(this.element).css("display"))throw new Error("Please use show on visible elements");var e=o.default.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){o.default(this.element).trigger(e);var n=d.findShadowRoot(this.element),i=o.default.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(e.isDefaultPrevented()||!i)return;var s=this.getTipElement(),l=d.getUID(this.constructor.NAME);s.setAttribute("id",l),this.element.setAttribute("aria-describedby",l),this.setContent(),this.config.animation&&o.default(s).addClass(Lt);var r="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,u=this._getAttachment(r);this.addAttachmentClass(u);var f=this._getContainer();o.default(s).data(this.constructor.DATA_KEY,this),o.default.contains(this.element.ownerDocument.documentElement,this.tip)||o.default(s).appendTo(f),o.default(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new a.default(this.element,s,this._getPopperConfig(u)),o.default(s).addClass(Rt),o.default(s).addClass(this.config.customClass),"ontouchstart"in document.documentElement&&o.default(document.body).children().on("mouseover",null,o.default.noop);var c=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,o.default(t.element).trigger(t.constructor.Event.SHOWN),e===qt&&t._leave(null,t)};if(o.default(this.tip).hasClass(Lt)){var h=d.getTransitionDurationFromElement(this.tip);o.default(this.tip).one(d.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},e.hide=function(t){var e=this,n=this.getTipElement(),i=o.default.Event(this.constructor.Event.HIDE),a=function(){e._hoverState!==xt&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),o.default(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(o.default(this.element).trigger(i),!i.isDefaultPrevented()){if(o.default(n).removeClass(Rt),"ontouchstart"in document.documentElement&&o.default(document.body).children().off("mouseover",null,o.default.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,o.default(this.tip).hasClass(Lt)){var s=d.getTransitionDurationFromElement(n);o.default(n).one(d.TRANSITION_END,a).emulateTransitionEnd(s)}else a();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(t){o.default(this.getTipElement()).addClass("bs-tooltip-"+t)},e.getTipElement=function(){return this.tip=this.tip||o.default(this.config.template)[0],this.tip},e.setContent=function(){var t=this.getTipElement();this.setElementContent(o.default(t.querySelectorAll(".tooltip-inner")),this.getTitle()),o.default(t).removeClass("fade show")},e.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=At(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?o.default(e).parent().is(t)||t.empty().append(e):t.text(o.default(e).text())},e.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},e._getPopperConfig=function(t){var e=this;return r({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},e._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,t.config.offset(e.offsets,t.element)),e}:e.offset=this.config.offset,e},e._getContainer=function(){return!1===this.config.container?document.body:d.isElement(this.config.container)?o.default(this.config.container):o.default(document).find(this.config.container)},e._getAttachment=function(t){return Bt[t.toUpperCase()]},e._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)o.default(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n=e===Ft?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===Ft?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;o.default(t.element).on(n,t.config.selector,(function(e){return t._enter(e)})).on(i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},o.default(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=r({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},e._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||o.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Qt:Ft]=!0),o.default(e.getTipElement()).hasClass(Rt)||e._hoverState===xt?e._hoverState=xt:(clearTimeout(e._timeout),e._hoverState=xt,e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){e._hoverState===xt&&e.show()}),e.config.delay.show):e.show())},e._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||o.default(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),o.default(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Qt:Ft]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=qt,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){e._hoverState===qt&&e.hide()}),e.config.delay.hide):e.hide())},e._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},e._getConfig=function(t){var e=o.default(this.element).data();return Object.keys(e).forEach((function(t){-1!==Pt.indexOf(t)&&delete e[t]})),"number"==typeof(t=r({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),d.typeCheckConfig(It,t,this.constructor.DefaultType),t.sanitize&&(t.template=At(t.template,t.whiteList,t.sanitizeFn)),t},e._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},e._cleanTipClass=function(){var t=o.default(this.getTipElement()),e=t.attr("class").match(jt);null!==e&&e.length&&t.removeClass(e.join(""))},e._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},e._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(o.default(t).removeClass(Lt),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(kt),a="object"==typeof e&&e;if((i||!/dispose|hide/.test(e))&&(i||(i=new t(this,a),n.data(kt,i)),"string"==typeof e)){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return Ht}},{key:"NAME",get:function(){return It}},{key:"DATA_KEY",get:function(){return kt}},{key:"Event",get:function(){return Mt}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Ut}}]),t}();o.default.fn.tooltip=Wt._jQueryInterface,o.default.fn.tooltip.Constructor=Wt,o.default.fn.tooltip.noConflict=function(){return o.default.fn.tooltip=Ot,Wt._jQueryInterface};var Vt="bs.popover",zt=o.default.fn.popover,Kt=new RegExp("(^|\\s)bs-popover\\S+","g"),Xt=r({},Wt.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),Yt=r({},Wt.DefaultType,{content:"(string|element|function)"}),$t={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},Jt=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),e.prototype.constructor=e,u(e,n);var a=i.prototype;return a.isWithContent=function(){return this.getTitle()||this._getContent()},a.addAttachmentClass=function(t){o.default(this.getTipElement()).addClass("bs-popover-"+t)},a.getTipElement=function(){return this.tip=this.tip||o.default(this.config.template)[0],this.tip},a.setContent=function(){var t=o.default(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(".popover-body"),e),t.removeClass("fade show")},a._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},a._cleanTipClass=function(){var t=o.default(this.getTipElement()),e=t.attr("class").match(Kt);null!==e&&e.length>0&&t.removeClass(e.join(""))},i._jQueryInterface=function(t){return this.each((function(){var e=o.default(this).data(Vt),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new i(this,n),o.default(this).data(Vt,e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},l(i,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return Xt}},{key:"NAME",get:function(){return"popover"}},{key:"DATA_KEY",get:function(){return Vt}},{key:"Event",get:function(){return $t}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Yt}}]),i}(Wt);o.default.fn.popover=Jt._jQueryInterface,o.default.fn.popover.Constructor=Jt,o.default.fn.popover.noConflict=function(){return o.default.fn.popover=zt,Jt._jQueryInterface};var Gt="scrollspy",Zt="bs.scrollspy",te=o.default.fn[Gt],ee="active",ne="position",ie=".nav, .list-group",oe={offset:10,method:"auto",target:""},ae={offset:"number",method:"string",target:"(string|element)"},se=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,o.default(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process()}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":ne,n="auto"===this._config.method?e:this._config.method,i=n===ne?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var e,a=d.getSelectorFromElement(t);if(a&&(e=document.querySelector(a)),e){var s=e.getBoundingClientRect();if(s.width||s.height)return[o.default(e)[n]().top+i,a]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},e.dispose=function(){o.default.removeData(this._element,Zt),o.default(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=r({},oe,"object"==typeof t&&t?t:{})).target&&d.isElement(t.target)){var e=o.default(t.target).attr("id");e||(e=d.getUID(Gt),o.default(t.target).attr("id",e)),t.target="#"+e}return d.typeCheckConfig(Gt,t,ae),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;)this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}},e._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map((function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'})),n=o.default([].slice.call(document.querySelectorAll(e.join(","))));n.hasClass("dropdown-item")?(n.closest(".dropdown").find(".dropdown-toggle").addClass(ee),n.addClass(ee)):(n.addClass(ee),n.parents(ie).prev(".nav-link, .list-group-item").addClass(ee),n.parents(ie).prev(".nav-item").children(".nav-link").addClass(ee)),o.default(this._scrollElement).trigger("activate.bs.scrollspy",{relatedTarget:t})},e._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter((function(t){return t.classList.contains(ee)})).forEach((function(t){return t.classList.remove(ee)}))},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this).data(Zt);if(n||(n=new t(this,"object"==typeof e&&e),o.default(this).data(Zt,n)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"Default",get:function(){return oe}}]),t}();o.default(window).on("load.bs.scrollspy.data-api",(function(){for(var t=[].slice.call(document.querySelectorAll('[data-spy="scroll"]')),e=t.length;e--;){var n=o.default(t[e]);se._jQueryInterface.call(n,n.data())}})),o.default.fn[Gt]=se._jQueryInterface,o.default.fn[Gt].Constructor=se,o.default.fn[Gt].noConflict=function(){return o.default.fn[Gt]=te,se._jQueryInterface};var le="bs.tab",re=o.default.fn.tab,ue="active",fe="fade",de="show",ce=".active",he="> li > .active",ge=function(){function t(t){this._element=t}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&o.default(this._element).hasClass(ue)||o.default(this._element).hasClass("disabled"))){var e,n,i=o.default(this._element).closest(".nav, .list-group")[0],a=d.getSelectorFromElement(this._element);if(i){var s="UL"===i.nodeName||"OL"===i.nodeName?he:ce;n=(n=o.default.makeArray(o.default(i).find(s)))[n.length-1]}var l=o.default.Event("hide.bs.tab",{relatedTarget:this._element}),r=o.default.Event("show.bs.tab",{relatedTarget:n});if(n&&o.default(n).trigger(l),o.default(this._element).trigger(r),!r.isDefaultPrevented()&&!l.isDefaultPrevented()){a&&(e=document.querySelector(a)),this._activate(this._element,i);var u=function(){var e=o.default.Event("hidden.bs.tab",{relatedTarget:t._element}),i=o.default.Event("shown.bs.tab",{relatedTarget:n});o.default(n).trigger(e),o.default(t._element).trigger(i)};e?this._activate(e,e.parentNode,u):u()}}},e.dispose=function(){o.default.removeData(this._element,le),this._element=null},e._activate=function(t,e,n){var i=this,a=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?o.default(e).children(ce):o.default(e).find(he))[0],s=n&&a&&o.default(a).hasClass(fe),l=function(){return i._transitionComplete(t,a,n)};if(a&&s){var r=d.getTransitionDurationFromElement(a);o.default(a).removeClass(de).one(d.TRANSITION_END,l).emulateTransitionEnd(r)}else l()},e._transitionComplete=function(t,e,n){if(e){o.default(e).removeClass(ue);var i=o.default(e.parentNode).find("> .dropdown-menu .active")[0];i&&o.default(i).removeClass(ue),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}o.default(t).addClass(ue),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),d.reflow(t),t.classList.contains(fe)&&t.classList.add(de);var a=t.parentNode;if(a&&"LI"===a.nodeName&&(a=a.parentNode),a&&o.default(a).hasClass("dropdown-menu")){var s=o.default(t).closest(".dropdown")[0];if(s){var l=[].slice.call(s.querySelectorAll(".dropdown-toggle"));o.default(l).addClass(ue)}t.setAttribute("aria-expanded",!0)}n&&n()},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(le);if(i||(i=new t(this),n.data(le,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e]()}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}}]),t}();o.default(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),ge._jQueryInterface.call(o.default(this),"show")})),o.default.fn.tab=ge._jQueryInterface,o.default.fn.tab.Constructor=ge,o.default.fn.tab.noConflict=function(){return o.default.fn.tab=re,ge._jQueryInterface};var me="bs.toast",pe=o.default.fn.toast,_e="hide",ve="show",ye="showing",be="click.dismiss.bs.toast",Ee={animation:!0,autohide:!0,delay:500},Te={animation:"boolean",autohide:"boolean",delay:"number"},we=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var e=t.prototype;return e.show=function(){var t=this,e=o.default.Event("show.bs.toast");if(o.default(this._element).trigger(e),!e.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var n=function(){t._element.classList.remove(ye),t._element.classList.add(ve),o.default(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove(_e),d.reflow(this._element),this._element.classList.add(ye),this._config.animation){var i=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,n).emulateTransitionEnd(i)}else n()}},e.hide=function(){if(this._element.classList.contains(ve)){var t=o.default.Event("hide.bs.toast");o.default(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},e.dispose=function(){this._clearTimeout(),this._element.classList.contains(ve)&&this._element.classList.remove(ve),o.default(this._element).off(be),o.default.removeData(this._element,me),this._element=null,this._config=null},e._getConfig=function(t){return t=r({},Ee,o.default(this._element).data(),"object"==typeof t&&t?t:{}),d.typeCheckConfig("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;o.default(this._element).on(be,'[data-dismiss="toast"]',(function(){return t.hide()}))},e._close=function(){var t=this,e=function(){t._element.classList.add(_e),o.default(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove(ve),this._config.animation){var n=d.getTransitionDurationFromElement(this._element);o.default(this._element).one(d.TRANSITION_END,e).emulateTransitionEnd(n)}else e()},e._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(e){return this.each((function(){var n=o.default(this),i=n.data(me);if(i||(i=new t(this,"object"==typeof e&&e),n.data(me,i)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e](this)}}))},l(t,null,[{key:"VERSION",get:function(){return"4.6.1"}},{key:"DefaultType",get:function(){return Te}},{key:"Default",get:function(){return Ee}}]),t}();o.default.fn.toast=we._jQueryInterface,o.default.fn.toast.Constructor=we,o.default.fn.toast.noConflict=function(){return o.default.fn.toast=pe,we._jQueryInterface},t.Alert=g,t.Button=E,t.Carousel=P,t.Collapse=V,t.Dropdown=lt,t.Modal=Ct,t.Popover=Jt,t.Scrollspy=se,t.Tab=ge,t.Toast=we,t.Tooltip=Wt,t.Util=d,Object.defineProperty(t,"__esModule",{value:!0})}));
diff --git a/skjcmanager/skjcmanager-auth/src/main/resources/static/js/jquery.min.js b/skjcmanager/skjcmanager-auth/src/main/resources/static/js/jquery.min.js
new file mode 100644
index 0000000..4d9b3a2
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/resources/static/js/jquery.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});
diff --git a/skjcmanager/skjcmanager-auth/src/main/resources/static/js/md5.js b/skjcmanager/skjcmanager-auth/src/main/resources/static/js/md5.js
new file mode 100644
index 0000000..af5a9b6
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/resources/static/js/md5.js
@@ -0,0 +1,683 @@
+/**
+ * [js-md5]{@link https://github.com/emn178/js-md5}
+ *
+ * @namespace md5
+ * @version 0.7.3
+ * @author Chen, Yi-Cyuan [emn178@gmail.com]
+ * @copyright Chen, Yi-Cyuan 2014-2017
+ * @license MIT
+ */
+(function () {
+    'use strict';
+
+    var ERROR = 'input is invalid type';
+    var WINDOW = typeof window === 'object';
+    var root = WINDOW ? window : {};
+    if (root.JS_MD5_NO_WINDOW) {
+        WINDOW = false;
+    }
+    var WEB_WORKER = !WINDOW && typeof self === 'object';
+    var NODE_JS = !root.JS_MD5_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;
+    if (NODE_JS) {
+        root = global;
+    } else if (WEB_WORKER) {
+        root = self;
+    }
+    var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && typeof module === 'object' && module.exports;
+    var AMD = typeof define === 'function' && define.amd;
+    var ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';
+    var HEX_CHARS = '0123456789abcdef'.split('');
+    var EXTRA = [128, 32768, 8388608, -2147483648];
+    var SHIFT = [0, 8, 16, 24];
+    var OUTPUT_TYPES = ['hex', 'array', 'digest', 'buffer', 'arrayBuffer', 'base64'];
+    var BASE64_ENCODE_CHAR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');
+
+    var blocks = [], buffer8;
+    if (ARRAY_BUFFER) {
+        var buffer = new ArrayBuffer(68);
+        buffer8 = new Uint8Array(buffer);
+        blocks = new Uint32Array(buffer);
+    }
+
+    if (root.JS_MD5_NO_NODE_JS || !Array.isArray) {
+        Array.isArray = function (obj) {
+            return Object.prototype.toString.call(obj) === '[object Array]';
+        };
+    }
+
+    if (ARRAY_BUFFER && (root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {
+        ArrayBuffer.isView = function (obj) {
+            return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;
+        };
+    }
+
+    /**
+     * @method hex
+     * @memberof md5
+     * @description Output hash as hex string
+     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+     * @returns {String} Hex string
+     * @example
+     * md5.hex('The quick brown fox jumps over the lazy dog');
+     * // equal to
+     * md5('The quick brown fox jumps over the lazy dog');
+     */
+    /**
+     * @method digest
+     * @memberof md5
+     * @description Output hash as bytes array
+     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+     * @returns {Array} Bytes array
+     * @example
+     * md5.digest('The quick brown fox jumps over the lazy dog');
+     */
+    /**
+     * @method array
+     * @memberof md5
+     * @description Output hash as bytes array
+     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+     * @returns {Array} Bytes array
+     * @example
+     * md5.array('The quick brown fox jumps over the lazy dog');
+     */
+    /**
+     * @method arrayBuffer
+     * @memberof md5
+     * @description Output hash as ArrayBuffer
+     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+     * @returns {ArrayBuffer} ArrayBuffer
+     * @example
+     * md5.arrayBuffer('The quick brown fox jumps over the lazy dog');
+     */
+    /**
+     * @method buffer
+     * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.
+     * @memberof md5
+     * @description Output hash as ArrayBuffer
+     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+     * @returns {ArrayBuffer} ArrayBuffer
+     * @example
+     * md5.buffer('The quick brown fox jumps over the lazy dog');
+     */
+    /**
+     * @method base64
+     * @memberof md5
+     * @description Output hash as base64 string
+     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+     * @returns {String} base64 string
+     * @example
+     * md5.base64('The quick brown fox jumps over the lazy dog');
+     */
+    var createOutputMethod = function (outputType) {
+        return function (message) {
+            return new Md5(true).update(message)[outputType]();
+        };
+    };
+
+    /**
+     * @method create
+     * @memberof md5
+     * @description Create Md5 object
+     * @returns {Md5} Md5 object.
+     * @example
+     * var hash = md5.create();
+     */
+    /**
+     * @method update
+     * @memberof md5
+     * @description Create and update Md5 object
+     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+     * @returns {Md5} Md5 object.
+     * @example
+     * var hash = md5.update('The quick brown fox jumps over the lazy dog');
+     * // equal to
+     * var hash = md5.create();
+     * hash.update('The quick brown fox jumps over the lazy dog');
+     */
+    var createMethod = function () {
+        var method = createOutputMethod('hex');
+        if (NODE_JS) {
+            method = nodeWrap(method);
+        }
+        method.create = function () {
+            return new Md5();
+        };
+        method.update = function (message) {
+            return method.create().update(message);
+        };
+        for (var i = 0; i < OUTPUT_TYPES.length; ++i) {
+            var type = OUTPUT_TYPES[i];
+            method[type] = createOutputMethod(type);
+        }
+        return method;
+    };
+
+    var nodeWrap = function (method) {
+        var crypto = eval("require('crypto')");
+        var Buffer = eval("require('buffer').Buffer");
+        var nodeMethod = function (message) {
+            if (typeof message === 'string') {
+                return crypto.createHash('md5').update(message, 'utf8').digest('hex');
+            } else {
+                if (message === null || message === undefined) {
+                    throw ERROR;
+                } else if (message.constructor === ArrayBuffer) {
+                    message = new Uint8Array(message);
+                }
+            }
+            if (Array.isArray(message) || ArrayBuffer.isView(message) ||
+                message.constructor === Buffer) {
+                return crypto.createHash('md5').update(new Buffer(message)).digest('hex');
+            } else {
+                return method(message);
+            }
+        };
+        return nodeMethod;
+    };
+
+    /**
+     * Md5 class
+     * @class Md5
+     * @description This is internal class.
+     * @see {@link md5.create}
+     */
+    function Md5(sharedMemory) {
+        if (sharedMemory) {
+            blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] =
+                blocks[4] = blocks[5] = blocks[6] = blocks[7] =
+                    blocks[8] = blocks[9] = blocks[10] = blocks[11] =
+                        blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;
+            this.blocks = blocks;
+            this.buffer8 = buffer8;
+        } else {
+            if (ARRAY_BUFFER) {
+                var buffer = new ArrayBuffer(68);
+                this.buffer8 = new Uint8Array(buffer);
+                this.blocks = new Uint32Array(buffer);
+            } else {
+                this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+            }
+        }
+        this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0;
+        this.finalized = this.hashed = false;
+        this.first = true;
+    }
+
+    /**
+     * @method update
+     * @memberof Md5
+     * @instance
+     * @description Update hash
+     * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+     * @returns {Md5} Md5 object.
+     * @see {@link md5.update}
+     */
+    Md5.prototype.update = function (message) {
+        if (this.finalized) {
+            return;
+        }
+
+        var notString, type = typeof message;
+        if (type !== 'string') {
+            if (type === 'object') {
+                if (message === null) {
+                    throw ERROR;
+                } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {
+                    message = new Uint8Array(message);
+                } else if (!Array.isArray(message)) {
+                    if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {
+                        throw ERROR;
+                    }
+                }
+            } else {
+                throw ERROR;
+            }
+            notString = true;
+        }
+        var code, index = 0, i, length = message.length, blocks = this.blocks;
+        var buffer8 = this.buffer8;
+
+        while (index < length) {
+            if (this.hashed) {
+                this.hashed = false;
+                blocks[0] = blocks[16];
+                blocks[16] = blocks[1] = blocks[2] = blocks[3] =
+                    blocks[4] = blocks[5] = blocks[6] = blocks[7] =
+                        blocks[8] = blocks[9] = blocks[10] = blocks[11] =
+                            blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;
+            }
+
+            if (notString) {
+                if (ARRAY_BUFFER) {
+                    for (i = this.start; index < length && i < 64; ++index) {
+                        buffer8[i++] = message[index];
+                    }
+                } else {
+                    for (i = this.start; index < length && i < 64; ++index) {
+                        blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];
+                    }
+                }
+            } else {
+                if (ARRAY_BUFFER) {
+                    for (i = this.start; index < length && i < 64; ++index) {
+                        code = message.charCodeAt(index);
+                        if (code < 0x80) {
+                            buffer8[i++] = code;
+                        } else if (code < 0x800) {
+                            buffer8[i++] = 0xc0 | (code >> 6);
+                            buffer8[i++] = 0x80 | (code & 0x3f);
+                        } else if (code < 0xd800 || code >= 0xe000) {
+                            buffer8[i++] = 0xe0 | (code >> 12);
+                            buffer8[i++] = 0x80 | ((code >> 6) & 0x3f);
+                            buffer8[i++] = 0x80 | (code & 0x3f);
+                        } else {
+                            code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));
+                            buffer8[i++] = 0xf0 | (code >> 18);
+                            buffer8[i++] = 0x80 | ((code >> 12) & 0x3f);
+                            buffer8[i++] = 0x80 | ((code >> 6) & 0x3f);
+                            buffer8[i++] = 0x80 | (code & 0x3f);
+                        }
+                    }
+                } else {
+                    for (i = this.start; index < length && i < 64; ++index) {
+                        code = message.charCodeAt(index);
+                        if (code < 0x80) {
+                            blocks[i >> 2] |= code << SHIFT[i++ & 3];
+                        } else if (code < 0x800) {
+                            blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];
+                            blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];
+                        } else if (code < 0xd800 || code >= 0xe000) {
+                            blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];
+                            blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];
+                            blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];
+                        } else {
+                            code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));
+                            blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];
+                            blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];
+                            blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];
+                            blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];
+                        }
+                    }
+                }
+            }
+            this.lastByteIndex = i;
+            this.bytes += i - this.start;
+            if (i >= 64) {
+                this.start = i - 64;
+                this.hash();
+                this.hashed = true;
+            } else {
+                this.start = i;
+            }
+        }
+        if (this.bytes > 4294967295) {
+            this.hBytes += this.bytes / 4294967296 << 0;
+            this.bytes = this.bytes % 4294967296;
+        }
+        return this;
+    };
+
+    Md5.prototype.finalize = function () {
+        if (this.finalized) {
+            return;
+        }
+        this.finalized = true;
+        var blocks = this.blocks, i = this.lastByteIndex;
+        blocks[i >> 2] |= EXTRA[i & 3];
+        if (i >= 56) {
+            if (!this.hashed) {
+                this.hash();
+            }
+            blocks[0] = blocks[16];
+            blocks[16] = blocks[1] = blocks[2] = blocks[3] =
+                blocks[4] = blocks[5] = blocks[6] = blocks[7] =
+                    blocks[8] = blocks[9] = blocks[10] = blocks[11] =
+                        blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0;
+        }
+        blocks[14] = this.bytes << 3;
+        blocks[15] = this.hBytes << 3 | this.bytes >>> 29;
+        this.hash();
+    };
+
+    Md5.prototype.hash = function () {
+        var a, b, c, d, bc, da, blocks = this.blocks;
+
+        if (this.first) {
+            a = blocks[0] - 680876937;
+            a = (a << 7 | a >>> 25) - 271733879 << 0;
+            d = (-1732584194 ^ a & 2004318071) + blocks[1] - 117830708;
+            d = (d << 12 | d >>> 20) + a << 0;
+            c = (-271733879 ^ (d & (a ^ -271733879))) + blocks[2] - 1126478375;
+            c = (c << 17 | c >>> 15) + d << 0;
+            b = (a ^ (c & (d ^ a))) + blocks[3] - 1316259209;
+            b = (b << 22 | b >>> 10) + c << 0;
+        } else {
+            a = this.h0;
+            b = this.h1;
+            c = this.h2;
+            d = this.h3;
+            a += (d ^ (b & (c ^ d))) + blocks[0] - 680876936;
+            a = (a << 7 | a >>> 25) + b << 0;
+            d += (c ^ (a & (b ^ c))) + blocks[1] - 389564586;
+            d = (d << 12 | d >>> 20) + a << 0;
+            c += (b ^ (d & (a ^ b))) + blocks[2] + 606105819;
+            c = (c << 17 | c >>> 15) + d << 0;
+            b += (a ^ (c & (d ^ a))) + blocks[3] - 1044525330;
+            b = (b << 22 | b >>> 10) + c << 0;
+        }
+
+        a += (d ^ (b & (c ^ d))) + blocks[4] - 176418897;
+        a = (a << 7 | a >>> 25) + b << 0;
+        d += (c ^ (a & (b ^ c))) + blocks[5] + 1200080426;
+        d = (d << 12 | d >>> 20) + a << 0;
+        c += (b ^ (d & (a ^ b))) + blocks[6] - 1473231341;
+        c = (c << 17 | c >>> 15) + d << 0;
+        b += (a ^ (c & (d ^ a))) + blocks[7] - 45705983;
+        b = (b << 22 | b >>> 10) + c << 0;
+        a += (d ^ (b & (c ^ d))) + blocks[8] + 1770035416;
+        a = (a << 7 | a >>> 25) + b << 0;
+        d += (c ^ (a & (b ^ c))) + blocks[9] - 1958414417;
+        d = (d << 12 | d >>> 20) + a << 0;
+        c += (b ^ (d & (a ^ b))) + blocks[10] - 42063;
+        c = (c << 17 | c >>> 15) + d << 0;
+        b += (a ^ (c & (d ^ a))) + blocks[11] - 1990404162;
+        b = (b << 22 | b >>> 10) + c << 0;
+        a += (d ^ (b & (c ^ d))) + blocks[12] + 1804603682;
+        a = (a << 7 | a >>> 25) + b << 0;
+        d += (c ^ (a & (b ^ c))) + blocks[13] - 40341101;
+        d = (d << 12 | d >>> 20) + a << 0;
+        c += (b ^ (d & (a ^ b))) + blocks[14] - 1502002290;
+        c = (c << 17 | c >>> 15) + d << 0;
+        b += (a ^ (c & (d ^ a))) + blocks[15] + 1236535329;
+        b = (b << 22 | b >>> 10) + c << 0;
+        a += (c ^ (d & (b ^ c))) + blocks[1] - 165796510;
+        a = (a << 5 | a >>> 27) + b << 0;
+        d += (b ^ (c & (a ^ b))) + blocks[6] - 1069501632;
+        d = (d << 9 | d >>> 23) + a << 0;
+        c += (a ^ (b & (d ^ a))) + blocks[11] + 643717713;
+        c = (c << 14 | c >>> 18) + d << 0;
+        b += (d ^ (a & (c ^ d))) + blocks[0] - 373897302;
+        b = (b << 20 | b >>> 12) + c << 0;
+        a += (c ^ (d & (b ^ c))) + blocks[5] - 701558691;
+        a = (a << 5 | a >>> 27) + b << 0;
+        d += (b ^ (c & (a ^ b))) + blocks[10] + 38016083;
+        d = (d << 9 | d >>> 23) + a << 0;
+        c += (a ^ (b & (d ^ a))) + blocks[15] - 660478335;
+        c = (c << 14 | c >>> 18) + d << 0;
+        b += (d ^ (a & (c ^ d))) + blocks[4] - 405537848;
+        b = (b << 20 | b >>> 12) + c << 0;
+        a += (c ^ (d & (b ^ c))) + blocks[9] + 568446438;
+        a = (a << 5 | a >>> 27) + b << 0;
+        d += (b ^ (c & (a ^ b))) + blocks[14] - 1019803690;
+        d = (d << 9 | d >>> 23) + a << 0;
+        c += (a ^ (b & (d ^ a))) + blocks[3] - 187363961;
+        c = (c << 14 | c >>> 18) + d << 0;
+        b += (d ^ (a & (c ^ d))) + blocks[8] + 1163531501;
+        b = (b << 20 | b >>> 12) + c << 0;
+        a += (c ^ (d & (b ^ c))) + blocks[13] - 1444681467;
+        a = (a << 5 | a >>> 27) + b << 0;
+        d += (b ^ (c & (a ^ b))) + blocks[2] - 51403784;
+        d = (d << 9 | d >>> 23) + a << 0;
+        c += (a ^ (b & (d ^ a))) + blocks[7] + 1735328473;
+        c = (c << 14 | c >>> 18) + d << 0;
+        b += (d ^ (a & (c ^ d))) + blocks[12] - 1926607734;
+        b = (b << 20 | b >>> 12) + c << 0;
+        bc = b ^ c;
+        a += (bc ^ d) + blocks[5] - 378558;
+        a = (a << 4 | a >>> 28) + b << 0;
+        d += (bc ^ a) + blocks[8] - 2022574463;
+        d = (d << 11 | d >>> 21) + a << 0;
+        da = d ^ a;
+        c += (da ^ b) + blocks[11] + 1839030562;
+        c = (c << 16 | c >>> 16) + d << 0;
+        b += (da ^ c) + blocks[14] - 35309556;
+        b = (b << 23 | b >>> 9) + c << 0;
+        bc = b ^ c;
+        a += (bc ^ d) + blocks[1] - 1530992060;
+        a = (a << 4 | a >>> 28) + b << 0;
+        d += (bc ^ a) + blocks[4] + 1272893353;
+        d = (d << 11 | d >>> 21) + a << 0;
+        da = d ^ a;
+        c += (da ^ b) + blocks[7] - 155497632;
+        c = (c << 16 | c >>> 16) + d << 0;
+        b += (da ^ c) + blocks[10] - 1094730640;
+        b = (b << 23 | b >>> 9) + c << 0;
+        bc = b ^ c;
+        a += (bc ^ d) + blocks[13] + 681279174;
+        a = (a << 4 | a >>> 28) + b << 0;
+        d += (bc ^ a) + blocks[0] - 358537222;
+        d = (d << 11 | d >>> 21) + a << 0;
+        da = d ^ a;
+        c += (da ^ b) + blocks[3] - 722521979;
+        c = (c << 16 | c >>> 16) + d << 0;
+        b += (da ^ c) + blocks[6] + 76029189;
+        b = (b << 23 | b >>> 9) + c << 0;
+        bc = b ^ c;
+        a += (bc ^ d) + blocks[9] - 640364487;
+        a = (a << 4 | a >>> 28) + b << 0;
+        d += (bc ^ a) + blocks[12] - 421815835;
+        d = (d << 11 | d >>> 21) + a << 0;
+        da = d ^ a;
+        c += (da ^ b) + blocks[15] + 530742520;
+        c = (c << 16 | c >>> 16) + d << 0;
+        b += (da ^ c) + blocks[2] - 995338651;
+        b = (b << 23 | b >>> 9) + c << 0;
+        a += (c ^ (b | ~d)) + blocks[0] - 198630844;
+        a = (a << 6 | a >>> 26) + b << 0;
+        d += (b ^ (a | ~c)) + blocks[7] + 1126891415;
+        d = (d << 10 | d >>> 22) + a << 0;
+        c += (a ^ (d | ~b)) + blocks[14] - 1416354905;
+        c = (c << 15 | c >>> 17) + d << 0;
+        b += (d ^ (c | ~a)) + blocks[5] - 57434055;
+        b = (b << 21 | b >>> 11) + c << 0;
+        a += (c ^ (b | ~d)) + blocks[12] + 1700485571;
+        a = (a << 6 | a >>> 26) + b << 0;
+        d += (b ^ (a | ~c)) + blocks[3] - 1894986606;
+        d = (d << 10 | d >>> 22) + a << 0;
+        c += (a ^ (d | ~b)) + blocks[10] - 1051523;
+        c = (c << 15 | c >>> 17) + d << 0;
+        b += (d ^ (c | ~a)) + blocks[1] - 2054922799;
+        b = (b << 21 | b >>> 11) + c << 0;
+        a += (c ^ (b | ~d)) + blocks[8] + 1873313359;
+        a = (a << 6 | a >>> 26) + b << 0;
+        d += (b ^ (a | ~c)) + blocks[15] - 30611744;
+        d = (d << 10 | d >>> 22) + a << 0;
+        c += (a ^ (d | ~b)) + blocks[6] - 1560198380;
+        c = (c << 15 | c >>> 17) + d << 0;
+        b += (d ^ (c | ~a)) + blocks[13] + 1309151649;
+        b = (b << 21 | b >>> 11) + c << 0;
+        a += (c ^ (b | ~d)) + blocks[4] - 145523070;
+        a = (a << 6 | a >>> 26) + b << 0;
+        d += (b ^ (a | ~c)) + blocks[11] - 1120210379;
+        d = (d << 10 | d >>> 22) + a << 0;
+        c += (a ^ (d | ~b)) + blocks[2] + 718787259;
+        c = (c << 15 | c >>> 17) + d << 0;
+        b += (d ^ (c | ~a)) + blocks[9] - 343485551;
+        b = (b << 21 | b >>> 11) + c << 0;
+
+        if (this.first) {
+            this.h0 = a + 1732584193 << 0;
+            this.h1 = b - 271733879 << 0;
+            this.h2 = c - 1732584194 << 0;
+            this.h3 = d + 271733878 << 0;
+            this.first = false;
+        } else {
+            this.h0 = this.h0 + a << 0;
+            this.h1 = this.h1 + b << 0;
+            this.h2 = this.h2 + c << 0;
+            this.h3 = this.h3 + d << 0;
+        }
+    };
+
+    /**
+     * @method hex
+     * @memberof Md5
+     * @instance
+     * @description Output hash as hex string
+     * @returns {String} Hex string
+     * @see {@link md5.hex}
+     * @example
+     * hash.hex();
+     */
+    Md5.prototype.hex = function () {
+        this.finalize();
+
+        var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3;
+
+        return HEX_CHARS[(h0 >> 4) & 0x0F] + HEX_CHARS[h0 & 0x0F] +
+            HEX_CHARS[(h0 >> 12) & 0x0F] + HEX_CHARS[(h0 >> 8) & 0x0F] +
+            HEX_CHARS[(h0 >> 20) & 0x0F] + HEX_CHARS[(h0 >> 16) & 0x0F] +
+            HEX_CHARS[(h0 >> 28) & 0x0F] + HEX_CHARS[(h0 >> 24) & 0x0F] +
+            HEX_CHARS[(h1 >> 4) & 0x0F] + HEX_CHARS[h1 & 0x0F] +
+            HEX_CHARS[(h1 >> 12) & 0x0F] + HEX_CHARS[(h1 >> 8) & 0x0F] +
+            HEX_CHARS[(h1 >> 20) & 0x0F] + HEX_CHARS[(h1 >> 16) & 0x0F] +
+            HEX_CHARS[(h1 >> 28) & 0x0F] + HEX_CHARS[(h1 >> 24) & 0x0F] +
+            HEX_CHARS[(h2 >> 4) & 0x0F] + HEX_CHARS[h2 & 0x0F] +
+            HEX_CHARS[(h2 >> 12) & 0x0F] + HEX_CHARS[(h2 >> 8) & 0x0F] +
+            HEX_CHARS[(h2 >> 20) & 0x0F] + HEX_CHARS[(h2 >> 16) & 0x0F] +
+            HEX_CHARS[(h2 >> 28) & 0x0F] + HEX_CHARS[(h2 >> 24) & 0x0F] +
+            HEX_CHARS[(h3 >> 4) & 0x0F] + HEX_CHARS[h3 & 0x0F] +
+            HEX_CHARS[(h3 >> 12) & 0x0F] + HEX_CHARS[(h3 >> 8) & 0x0F] +
+            HEX_CHARS[(h3 >> 20) & 0x0F] + HEX_CHARS[(h3 >> 16) & 0x0F] +
+            HEX_CHARS[(h3 >> 28) & 0x0F] + HEX_CHARS[(h3 >> 24) & 0x0F];
+    };
+
+    /**
+     * @method toString
+     * @memberof Md5
+     * @instance
+     * @description Output hash as hex string
+     * @returns {String} Hex string
+     * @see {@link md5.hex}
+     * @example
+     * hash.toString();
+     */
+    Md5.prototype.toString = Md5.prototype.hex;
+
+    /**
+     * @method digest
+     * @memberof Md5
+     * @instance
+     * @description Output hash as bytes array
+     * @returns {Array} Bytes array
+     * @see {@link md5.digest}
+     * @example
+     * hash.digest();
+     */
+    Md5.prototype.digest = function () {
+        this.finalize();
+
+        var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3;
+        return [
+            h0 & 0xFF, (h0 >> 8) & 0xFF, (h0 >> 16) & 0xFF, (h0 >> 24) & 0xFF,
+            h1 & 0xFF, (h1 >> 8) & 0xFF, (h1 >> 16) & 0xFF, (h1 >> 24) & 0xFF,
+            h2 & 0xFF, (h2 >> 8) & 0xFF, (h2 >> 16) & 0xFF, (h2 >> 24) & 0xFF,
+            h3 & 0xFF, (h3 >> 8) & 0xFF, (h3 >> 16) & 0xFF, (h3 >> 24) & 0xFF
+        ];
+    };
+
+    /**
+     * @method array
+     * @memberof Md5
+     * @instance
+     * @description Output hash as bytes array
+     * @returns {Array} Bytes array
+     * @see {@link md5.array}
+     * @example
+     * hash.array();
+     */
+    Md5.prototype.array = Md5.prototype.digest;
+
+    /**
+     * @method arrayBuffer
+     * @memberof Md5
+     * @instance
+     * @description Output hash as ArrayBuffer
+     * @returns {ArrayBuffer} ArrayBuffer
+     * @see {@link md5.arrayBuffer}
+     * @example
+     * hash.arrayBuffer();
+     */
+    Md5.prototype.arrayBuffer = function () {
+        this.finalize();
+
+        var buffer = new ArrayBuffer(16);
+        var blocks = new Uint32Array(buffer);
+        blocks[0] = this.h0;
+        blocks[1] = this.h1;
+        blocks[2] = this.h2;
+        blocks[3] = this.h3;
+        return buffer;
+    };
+
+    /**
+     * @method buffer
+     * @deprecated This maybe confuse with Buffer in node.js. Please use arrayBuffer instead.
+     * @memberof Md5
+     * @instance
+     * @description Output hash as ArrayBuffer
+     * @returns {ArrayBuffer} ArrayBuffer
+     * @see {@link md5.buffer}
+     * @example
+     * hash.buffer();
+     */
+    Md5.prototype.buffer = Md5.prototype.arrayBuffer;
+
+    /**
+     * @method base64
+     * @memberof Md5
+     * @instance
+     * @description Output hash as base64 string
+     * @returns {String} base64 string
+     * @see {@link md5.base64}
+     * @example
+     * hash.base64();
+     */
+    Md5.prototype.base64 = function () {
+        var v1, v2, v3, base64Str = '', bytes = this.array();
+        for (var i = 0; i < 15;) {
+            v1 = bytes[i++];
+            v2 = bytes[i++];
+            v3 = bytes[i++];
+            base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] +
+                BASE64_ENCODE_CHAR[(v1 << 4 | v2 >>> 4) & 63] +
+                BASE64_ENCODE_CHAR[(v2 << 2 | v3 >>> 6) & 63] +
+                BASE64_ENCODE_CHAR[v3 & 63];
+        }
+        v1 = bytes[i];
+        base64Str += BASE64_ENCODE_CHAR[v1 >>> 2] +
+            BASE64_ENCODE_CHAR[(v1 << 4) & 63] +
+            '==';
+        return base64Str;
+    };
+
+    var exports = createMethod();
+
+    if (COMMON_JS) {
+        module.exports = exports;
+    } else {
+        /**
+         * @method md5
+         * @description Md5 hash function, export to global in browsers.
+         * @param {String|Array|Uint8Array|ArrayBuffer} message message to hash
+         * @returns {String} md5 hashes
+         * @example
+         * md5(''); // d41d8cd98f00b204e9800998ecf8427e
+         * md5('The quick brown fox jumps over the lazy dog'); // 9e107d9d372bb6826bd81d3542a419d6
+         * md5('The quick brown fox jumps over the lazy dog.'); // e4d909c290d0fb1ca068ffaddf22cbd0
+         *
+         * // It also supports UTF-8 encoding
+         * md5('中文'); // a7bac2239fcdcb3a067903d8077c4a07
+         *
+         * // It also supports byte `Array`, `Uint8Array`, `ArrayBuffer`
+         * md5([]); // d41d8cd98f00b204e9800998ecf8427e
+         * md5(new Uint8Array([])); // d41d8cd98f00b204e9800998ecf8427e
+         */
+        root.md5 = exports;
+        if (AMD) {
+            define(function () {
+                return exports;
+            });
+        }
+    }
+})();
diff --git a/skjcmanager/skjcmanager-auth/src/main/resources/static/js/popper.min.js b/skjcmanager/skjcmanager-auth/src/main/resources/static/js/popper.min.js
new file mode 100644
index 0000000..30047d3
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/resources/static/js/popper.min.js
@@ -0,0 +1,5 @@
+/*
+ Copyright (C) Federico Zivolo 2020
+ Distributed under the MIT License (license terms are at http://opensource.org/licenses/MIT).
+ */
+(function(e,t){'object'==typeof exports&&'undefined'!=typeof module?module.exports=t():'function'==typeof define&&define.amd?define(t):e.Popper=t()})(this,function(){'use strict';function e(e){return e&&'[object Function]'==={}.toString.call(e)}function t(e,t){if(1!==e.nodeType)return[];var o=e.ownerDocument.defaultView,n=o.getComputedStyle(e,null);return t?n[t]:n}function o(e){return'HTML'===e.nodeName?e:e.parentNode||e.host}function n(e){if(!e)return document.body;switch(e.nodeName){case'HTML':case'BODY':return e.ownerDocument.body;case'#document':return e.body;}var i=t(e),r=i.overflow,p=i.overflowX,s=i.overflowY;return /(auto|scroll|overlay)/.test(r+s+p)?e:n(o(e))}function i(e){return e&&e.referenceNode?e.referenceNode:e}function r(e){return 11===e?re:10===e?pe:re||pe}function p(e){if(!e)return document.documentElement;for(var o=r(10)?document.body:null,n=e.offsetParent||null;n===o&&e.nextElementSibling;)n=(e=e.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&'BODY'!==i&&'HTML'!==i?-1!==['TH','TD','TABLE'].indexOf(n.nodeName)&&'static'===t(n,'position')?p(n):n:e?e.ownerDocument.documentElement:document.documentElement}function s(e){var t=e.nodeName;return'BODY'!==t&&('HTML'===t||p(e.firstElementChild)===e)}function d(e){return null===e.parentNode?e:d(e.parentNode)}function a(e,t){if(!e||!e.nodeType||!t||!t.nodeType)return document.documentElement;var o=e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_FOLLOWING,n=o?e:t,i=o?t:e,r=document.createRange();r.setStart(n,0),r.setEnd(i,0);var l=r.commonAncestorContainer;if(e!==l&&t!==l||n.contains(i))return s(l)?l:p(l);var f=d(e);return f.host?a(f.host,t):a(e,d(t).host)}function l(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:'top',o='top'===t?'scrollTop':'scrollLeft',n=e.nodeName;if('BODY'===n||'HTML'===n){var i=e.ownerDocument.documentElement,r=e.ownerDocument.scrollingElement||i;return r[o]}return e[o]}function f(e,t){var o=2<arguments.length&&void 0!==arguments[2]&&arguments[2],n=l(t,'top'),i=l(t,'left'),r=o?-1:1;return e.top+=n*r,e.bottom+=n*r,e.left+=i*r,e.right+=i*r,e}function m(e,t){var o='x'===t?'Left':'Top',n='Left'==o?'Right':'Bottom';return parseFloat(e['border'+o+'Width'])+parseFloat(e['border'+n+'Width'])}function h(e,t,o,n){return ee(t['offset'+e],t['scroll'+e],o['client'+e],o['offset'+e],o['scroll'+e],r(10)?parseInt(o['offset'+e])+parseInt(n['margin'+('Height'===e?'Top':'Left')])+parseInt(n['margin'+('Height'===e?'Bottom':'Right')]):0)}function c(e){var t=e.body,o=e.documentElement,n=r(10)&&getComputedStyle(o);return{height:h('Height',t,o,n),width:h('Width',t,o,n)}}function g(e){return le({},e,{right:e.left+e.width,bottom:e.top+e.height})}function u(e){var o={};try{if(r(10)){o=e.getBoundingClientRect();var n=l(e,'top'),i=l(e,'left');o.top+=n,o.left+=i,o.bottom+=n,o.right+=i}else o=e.getBoundingClientRect()}catch(t){}var p={left:o.left,top:o.top,width:o.right-o.left,height:o.bottom-o.top},s='HTML'===e.nodeName?c(e.ownerDocument):{},d=s.width||e.clientWidth||p.width,a=s.height||e.clientHeight||p.height,f=e.offsetWidth-d,h=e.offsetHeight-a;if(f||h){var u=t(e);f-=m(u,'x'),h-=m(u,'y'),p.width-=f,p.height-=h}return g(p)}function b(e,o){var i=2<arguments.length&&void 0!==arguments[2]&&arguments[2],p=r(10),s='HTML'===o.nodeName,d=u(e),a=u(o),l=n(e),m=t(o),h=parseFloat(m.borderTopWidth),c=parseFloat(m.borderLeftWidth);i&&s&&(a.top=ee(a.top,0),a.left=ee(a.left,0));var b=g({top:d.top-a.top-h,left:d.left-a.left-c,width:d.width,height:d.height});if(b.marginTop=0,b.marginLeft=0,!p&&s){var w=parseFloat(m.marginTop),y=parseFloat(m.marginLeft);b.top-=h-w,b.bottom-=h-w,b.left-=c-y,b.right-=c-y,b.marginTop=w,b.marginLeft=y}return(p&&!i?o.contains(l):o===l&&'BODY'!==l.nodeName)&&(b=f(b,o)),b}function w(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=e.ownerDocument.documentElement,n=b(e,o),i=ee(o.clientWidth,window.innerWidth||0),r=ee(o.clientHeight,window.innerHeight||0),p=t?0:l(o),s=t?0:l(o,'left'),d={top:p-n.top+n.marginTop,left:s-n.left+n.marginLeft,width:i,height:r};return g(d)}function y(e){var n=e.nodeName;if('BODY'===n||'HTML'===n)return!1;if('fixed'===t(e,'position'))return!0;var i=o(e);return!!i&&y(i)}function E(e){if(!e||!e.parentElement||r())return document.documentElement;for(var o=e.parentElement;o&&'none'===t(o,'transform');)o=o.parentElement;return o||document.documentElement}function v(e,t,r,p){var s=4<arguments.length&&void 0!==arguments[4]&&arguments[4],d={top:0,left:0},l=s?E(e):a(e,i(t));if('viewport'===p)d=w(l,s);else{var f;'scrollParent'===p?(f=n(o(t)),'BODY'===f.nodeName&&(f=e.ownerDocument.documentElement)):'window'===p?f=e.ownerDocument.documentElement:f=p;var m=b(f,l,s);if('HTML'===f.nodeName&&!y(l)){var h=c(e.ownerDocument),g=h.height,u=h.width;d.top+=m.top-m.marginTop,d.bottom=g+m.top,d.left+=m.left-m.marginLeft,d.right=u+m.left}else d=m}r=r||0;var v='number'==typeof r;return d.left+=v?r:r.left||0,d.top+=v?r:r.top||0,d.right-=v?r:r.right||0,d.bottom-=v?r:r.bottom||0,d}function x(e){var t=e.width,o=e.height;return t*o}function O(e,t,o,n,i){var r=5<arguments.length&&void 0!==arguments[5]?arguments[5]:0;if(-1===e.indexOf('auto'))return e;var p=v(o,n,r,i),s={top:{width:p.width,height:t.top-p.top},right:{width:p.right-t.right,height:p.height},bottom:{width:p.width,height:p.bottom-t.bottom},left:{width:t.left-p.left,height:p.height}},d=Object.keys(s).map(function(e){return le({key:e},s[e],{area:x(s[e])})}).sort(function(e,t){return t.area-e.area}),a=d.filter(function(e){var t=e.width,n=e.height;return t>=o.clientWidth&&n>=o.clientHeight}),l=0<a.length?a[0].key:d[0].key,f=e.split('-')[1];return l+(f?'-'+f:'')}function L(e,t,o){var n=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,r=n?E(t):a(t,i(o));return b(o,r,n)}function S(e){var t=e.ownerDocument.defaultView,o=t.getComputedStyle(e),n=parseFloat(o.marginTop||0)+parseFloat(o.marginBottom||0),i=parseFloat(o.marginLeft||0)+parseFloat(o.marginRight||0),r={width:e.offsetWidth+i,height:e.offsetHeight+n};return r}function T(e){var t={left:'right',right:'left',bottom:'top',top:'bottom'};return e.replace(/left|right|bottom|top/g,function(e){return t[e]})}function C(e,t,o){o=o.split('-')[0];var n=S(e),i={width:n.width,height:n.height},r=-1!==['right','left'].indexOf(o),p=r?'top':'left',s=r?'left':'top',d=r?'height':'width',a=r?'width':'height';return i[p]=t[p]+t[d]/2-n[d]/2,i[s]=o===s?t[s]-n[a]:t[T(s)],i}function D(e,t){return Array.prototype.find?e.find(t):e.filter(t)[0]}function N(e,t,o){if(Array.prototype.findIndex)return e.findIndex(function(e){return e[t]===o});var n=D(e,function(e){return e[t]===o});return e.indexOf(n)}function P(t,o,n){var i=void 0===n?t:t.slice(0,N(t,'name',n));return i.forEach(function(t){t['function']&&console.warn('`modifier.function` is deprecated, use `modifier.fn`!');var n=t['function']||t.fn;t.enabled&&e(n)&&(o.offsets.popper=g(o.offsets.popper),o.offsets.reference=g(o.offsets.reference),o=n(o,t))}),o}function k(){if(!this.state.isDestroyed){var e={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};e.offsets.reference=L(this.state,this.popper,this.reference,this.options.positionFixed),e.placement=O(this.options.placement,e.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),e.originalPlacement=e.placement,e.positionFixed=this.options.positionFixed,e.offsets.popper=C(this.popper,e.offsets.reference,e.placement),e.offsets.popper.position=this.options.positionFixed?'fixed':'absolute',e=P(this.modifiers,e),this.state.isCreated?this.options.onUpdate(e):(this.state.isCreated=!0,this.options.onCreate(e))}}function W(e,t){return e.some(function(e){var o=e.name,n=e.enabled;return n&&o===t})}function B(e){for(var t=[!1,'ms','Webkit','Moz','O'],o=e.charAt(0).toUpperCase()+e.slice(1),n=0;n<t.length;n++){var i=t[n],r=i?''+i+o:e;if('undefined'!=typeof document.body.style[r])return r}return null}function H(){return this.state.isDestroyed=!0,W(this.modifiers,'applyStyle')&&(this.popper.removeAttribute('x-placement'),this.popper.style.position='',this.popper.style.top='',this.popper.style.left='',this.popper.style.right='',this.popper.style.bottom='',this.popper.style.willChange='',this.popper.style[B('transform')]=''),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function A(e){var t=e.ownerDocument;return t?t.defaultView:window}function M(e,t,o,i){var r='BODY'===e.nodeName,p=r?e.ownerDocument.defaultView:e;p.addEventListener(t,o,{passive:!0}),r||M(n(p.parentNode),t,o,i),i.push(p)}function F(e,t,o,i){o.updateBound=i,A(e).addEventListener('resize',o.updateBound,{passive:!0});var r=n(e);return M(r,'scroll',o.updateBound,o.scrollParents),o.scrollElement=r,o.eventsEnabled=!0,o}function I(){this.state.eventsEnabled||(this.state=F(this.reference,this.options,this.state,this.scheduleUpdate))}function R(e,t){return A(e).removeEventListener('resize',t.updateBound),t.scrollParents.forEach(function(e){e.removeEventListener('scroll',t.updateBound)}),t.updateBound=null,t.scrollParents=[],t.scrollElement=null,t.eventsEnabled=!1,t}function U(){this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=R(this.reference,this.state))}function Y(e){return''!==e&&!isNaN(parseFloat(e))&&isFinite(e)}function V(e,t){Object.keys(t).forEach(function(o){var n='';-1!==['width','height','top','right','bottom','left'].indexOf(o)&&Y(t[o])&&(n='px'),e.style[o]=t[o]+n})}function j(e,t){Object.keys(t).forEach(function(o){var n=t[o];!1===n?e.removeAttribute(o):e.setAttribute(o,t[o])})}function q(e,t){var o=e.offsets,n=o.popper,i=o.reference,r=$,p=function(e){return e},s=r(i.width),d=r(n.width),a=-1!==['left','right'].indexOf(e.placement),l=-1!==e.placement.indexOf('-'),f=t?a||l||s%2==d%2?r:Z:p,m=t?r:p;return{left:f(1==s%2&&1==d%2&&!l&&t?n.left-1:n.left),top:m(n.top),bottom:m(n.bottom),right:f(n.right)}}function K(e,t,o){var n=D(e,function(e){var o=e.name;return o===t}),i=!!n&&e.some(function(e){return e.name===o&&e.enabled&&e.order<n.order});if(!i){var r='`'+t+'`';console.warn('`'+o+'`'+' modifier is required by '+r+' modifier in order to work, be sure to include it before '+r+'!')}return i}function z(e){return'end'===e?'start':'start'===e?'end':e}function G(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1],o=he.indexOf(e),n=he.slice(o+1).concat(he.slice(0,o));return t?n.reverse():n}function _(e,t,o,n){var i=e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+i[1],p=i[2];if(!r)return e;if(0===p.indexOf('%')){var s;switch(p){case'%p':s=o;break;case'%':case'%r':default:s=n;}var d=g(s);return d[t]/100*r}if('vh'===p||'vw'===p){var a;return a='vh'===p?ee(document.documentElement.clientHeight,window.innerHeight||0):ee(document.documentElement.clientWidth,window.innerWidth||0),a/100*r}return r}function X(e,t,o,n){var i=[0,0],r=-1!==['right','left'].indexOf(n),p=e.split(/(\+|\-)/).map(function(e){return e.trim()}),s=p.indexOf(D(p,function(e){return-1!==e.search(/,|\s/)}));p[s]&&-1===p[s].indexOf(',')&&console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');var d=/\s*,\s*|\s+/,a=-1===s?[p]:[p.slice(0,s).concat([p[s].split(d)[0]]),[p[s].split(d)[1]].concat(p.slice(s+1))];return a=a.map(function(e,n){var i=(1===n?!r:r)?'height':'width',p=!1;return e.reduce(function(e,t){return''===e[e.length-1]&&-1!==['+','-'].indexOf(t)?(e[e.length-1]=t,p=!0,e):p?(e[e.length-1]+=t,p=!1,e):e.concat(t)},[]).map(function(e){return _(e,i,t,o)})}),a.forEach(function(e,t){e.forEach(function(o,n){Y(o)&&(i[t]+=o*('-'===e[n-1]?-1:1))})}),i}function J(e,t){var o,n=t.offset,i=e.placement,r=e.offsets,p=r.popper,s=r.reference,d=i.split('-')[0];return o=Y(+n)?[+n,0]:X(n,p,s,d),'left'===d?(p.top+=o[0],p.left-=o[1]):'right'===d?(p.top+=o[0],p.left+=o[1]):'top'===d?(p.left+=o[0],p.top-=o[1]):'bottom'===d&&(p.left+=o[0],p.top+=o[1]),e.popper=p,e}var Q=Math.min,Z=Math.floor,$=Math.round,ee=Math.max,te='undefined'!=typeof window&&'undefined'!=typeof document&&'undefined'!=typeof navigator,oe=function(){for(var e=['Edge','Trident','Firefox'],t=0;t<e.length;t+=1)if(te&&0<=navigator.userAgent.indexOf(e[t]))return 1;return 0}(),ne=te&&window.Promise,ie=ne?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then(function(){t=!1,e()}))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout(function(){t=!1,e()},oe))}},re=te&&!!(window.MSInputMethodContext&&document.documentMode),pe=te&&/MSIE 10/.test(navigator.userAgent),se=function(e,t){if(!(e instanceof t))throw new TypeError('Cannot call a class as a function')},de=function(){function e(e,t){for(var o,n=0;n<t.length;n++)o=t[n],o.enumerable=o.enumerable||!1,o.configurable=!0,'value'in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}(),ae=function(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e},le=Object.assign||function(e){for(var t,o=1;o<arguments.length;o++)for(var n in t=arguments[o],t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},fe=te&&/Firefox/i.test(navigator.userAgent),me=['auto-start','auto','auto-end','top-start','top','top-end','right-start','right','right-end','bottom-end','bottom','bottom-start','left-end','left','left-start'],he=me.slice(3),ce={FLIP:'flip',CLOCKWISE:'clockwise',COUNTERCLOCKWISE:'counterclockwise'},ge=function(){function t(o,n){var i=this,r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};se(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=ie(this.update.bind(this)),this.options=le({},t.Defaults,r),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=o&&o.jquery?o[0]:o,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(le({},t.Defaults.modifiers,r.modifiers)).forEach(function(e){i.options.modifiers[e]=le({},t.Defaults.modifiers[e]||{},r.modifiers?r.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(e){return le({name:e},i.options.modifiers[e])}).sort(function(e,t){return e.order-t.order}),this.modifiers.forEach(function(t){t.enabled&&e(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var p=this.options.eventsEnabled;p&&this.enableEventListeners(),this.state.eventsEnabled=p}return de(t,[{key:'update',value:function(){return k.call(this)}},{key:'destroy',value:function(){return H.call(this)}},{key:'enableEventListeners',value:function(){return I.call(this)}},{key:'disableEventListeners',value:function(){return U.call(this)}}]),t}();return ge.Utils=('undefined'==typeof window?global:window).PopperUtils,ge.placements=me,ge.Defaults={placement:'bottom',positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(e){var t=e.placement,o=t.split('-')[0],n=t.split('-')[1];if(n){var i=e.offsets,r=i.reference,p=i.popper,s=-1!==['bottom','top'].indexOf(o),d=s?'left':'top',a=s?'width':'height',l={start:ae({},d,r[d]),end:ae({},d,r[d]+r[a]-p[a])};e.offsets.popper=le({},p,l[n])}return e}},offset:{order:200,enabled:!0,fn:J,offset:0},preventOverflow:{order:300,enabled:!0,fn:function(e,t){var o=t.boundariesElement||p(e.instance.popper);e.instance.reference===o&&(o=p(o));var n=B('transform'),i=e.instance.popper.style,r=i.top,s=i.left,d=i[n];i.top='',i.left='',i[n]='';var a=v(e.instance.popper,e.instance.reference,t.padding,o,e.positionFixed);i.top=r,i.left=s,i[n]=d,t.boundaries=a;var l=t.priority,f=e.offsets.popper,m={primary:function(e){var o=f[e];return f[e]<a[e]&&!t.escapeWithReference&&(o=ee(f[e],a[e])),ae({},e,o)},secondary:function(e){var o='right'===e?'left':'top',n=f[o];return f[e]>a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),ae({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=le({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=Z,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]<r(n[d])&&(e.offsets.popper[d]=r(n[d])-o[a]),o[d]>r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!K(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-u<s[m]&&(e.offsets.popper[m]-=s[m]-(d[c]-u)),d[m]+u>s[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,w=t(e.instance.popper),y=parseFloat(w['margin'+f]),E=parseFloat(w['border'+f+'Width']),v=b-e.offsets.popper[m]-y-E;return v=ee(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},ae(n,m,$(v)),ae(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case ce.FLIP:p=[n,i];break;case ce.CLOCKWISE:p=G(n);break;case ce.COUNTERCLOCKWISE:p=G(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=Z,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)<f(l.right)||'top'===n&&f(a.bottom)>f(l.top)||'bottom'===n&&f(a.top)<f(l.bottom),h=f(a.left)<f(o.left),c=f(a.right)>f(o.right),g=f(a.top)<f(o.top),u=f(a.bottom)>f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,w=-1!==['top','bottom'].indexOf(n),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&g||!w&&'end'===r&&u),E=!!t.flipVariationsByContent&&(w&&'start'===r&&c||w&&'end'===r&&h||!w&&'start'===r&&u||!w&&'end'===r&&g),v=y||E;(m||b||v)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),v&&(r=z(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=le({},e.offsets.popper,C(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport',flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!K(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=D(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottom<o.top||t.left>o.right||t.top>o.bottom||t.right<o.left){if(!0===e.hide)return e;e.hide=!0,e.attributes['x-out-of-boundaries']=''}else{if(!1===e.hide)return e;e.hide=!1,e.attributes['x-out-of-boundaries']=!1}return e}},computeStyle:{order:850,enabled:!0,fn:function(e,t){var o=t.x,n=t.y,i=e.offsets.popper,r=D(e.instance.modifiers,function(e){return'applyStyle'===e.name}).gpuAcceleration;void 0!==r&&console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');var s,d,a=void 0===r?t.gpuAcceleration:r,l=p(e.instance.popper),f=u(l),m={position:i.position},h=q(e,2>window.devicePixelRatio||!fe),c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=B('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var w='bottom'==c?-1:1,y='right'==g?-1:1;m[c]=d*w,m[g]=s*y,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=le({},E,e.attributes),e.styles=le({},m,e.styles),e.arrowStyles=le({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return V(e.instance.popper,e.styles),j(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&V(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),V(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ge});
diff --git a/skjcmanager/skjcmanager-auth/src/main/resources/templates/confirm.ftl b/skjcmanager/skjcmanager-auth/src/main/resources/templates/confirm.ftl
new file mode 100644
index 0000000..0659bb4
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/resources/templates/confirm.ftl
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>BladeX 统一认证系统</title>
+    <link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
+    <link rel="stylesheet" type="text/css" href="/css/iofrm-style.css">
+    <link rel="stylesheet" type="text/css" href="/css/iofrm-theme.css">
+</head>
+<body>
+<div class="form-body">
+    <div class="row">
+        <div class="form-holder">
+            <div class="form-content">
+                <div class="form-items">
+                    <div class="website-logo-inside">
+                        <h1>BladeX 统一认证系统</h1>
+                    </div>
+                    <p>应用 [${client.clientId!'未定义应用名称'}] 请求授权</p>
+                    <p>授权后该应用将取得系统操作权限</p>
+                    <div class="page-links">
+                        <a>授权账号 [${principal.username!'未获取到账号信息'}]</a>
+                    </div>
+                    <form action="/oauth/authorize" method="post">
+                        <input name='user_oauth_approval' value='true' type='hidden'/>
+                        <div class="form-button">
+                            <button id="submit" type="submit" class="ibtn">同意/授权</button>
+                        </div>
+                    </form>
+                    <div class="other-links">
+                        <span>Copyrights © 2022 <a href="https://bladex.vip" target="_blank">BladeX</a> All Rights Reserved.</span>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="/js/jquery.min.js"></script>
+<script src="/js/popper.min.js"></script>
+<script src="/js/bootstrap.min.js"></script>
+<script>
+    $(window).on("load", function () {
+        // 初始化页面增加租户id传递
+        updateUrlParam("state", "${principal.tenantId}");
+    });
+
+    // 添加url中参数的值
+    function updateUrlParam(name, val) {
+        let thisURL = document.location.href;
+        let value = getUrlParam(name);
+        if (value != null) {
+            return false;
+        } else {
+            thisURL = thisURL + "&" + name + "=" + val;
+        }
+        window.location.href = thisURL;
+    }
+
+    // 获取url中参数的值
+    function getUrlParam(name) {
+        let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+        let r = window.location.search.substr(1).match(reg);
+        if (r != null) return unescape(r[2]);
+        return null;
+    }
+</script>
+</body>
+</html>
diff --git a/skjcmanager/skjcmanager-auth/src/main/resources/templates/login.ftl b/skjcmanager/skjcmanager-auth/src/main/resources/templates/login.ftl
new file mode 100644
index 0000000..d441de0
--- /dev/null
+++ b/skjcmanager/skjcmanager-auth/src/main/resources/templates/login.ftl
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>BladeX 统一认证系统</title>
+    <link rel="stylesheet" type="text/css" href="/css/bootstrap.min.css">
+    <link rel="stylesheet" type="text/css" href="/css/iofrm-style.css">
+    <link rel="stylesheet" type="text/css" href="/css/iofrm-theme.css">
+</head>
+<body>
+<div class="form-body">
+    <div class="row">
+        <div class="form-holder">
+            <div class="form-content">
+                <div class="form-items">
+                    <div class="website-logo-inside">
+                        <h1>BladeX 统一认证系统</h1>
+                    </div>
+                    <p>欢迎使用统一认证,提交后请对应用进行授权</p>
+                    <div class="page-links">
+                        <a>请输入认证信息</a>
+                    </div>
+                    <form id="form" action="/oauth/form" method="post">
+                        <input class="form-control" type="text" name="tenant_id" placeholder="请输入租户ID" required>
+                        <input class="form-control" type="text" name="username" placeholder="请输入用户名" required>
+                        <input class="form-control" id="ipt" type="password" name="password" placeholder="请输入密码" required>
+                        <div class="form-button">
+                            <button id="btn" type="button" class="ibtn">登 录</button>
+                        </div>
+                    </form>
+                    <div class="other-links">
+                        <span>Copyrights © 2022 <a href="https://bladex.vip" target="_blank">BladeX</a> All Rights Reserved.</span>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+<script src="/js/jquery.min.js"></script>
+<script src="/js/popper.min.js"></script>
+<script src="/js/bootstrap.min.js"></script>
+<script src="/js/md5.js"></script>
+<script>
+    $("#btn").click(function(){
+        const val = $("#ipt").val();
+        $("#ipt").val(md5(val));
+        $("#btn").attr("disabled", "disabled");
+        $("#btn").text("登 录 中");
+        $("#form").submit();
+    });
+</script>
+</body>
+</html>
diff --git a/skjcmanager/skjcmanager-common/pom.xml b/skjcmanager/skjcmanager-common/pom.xml
new file mode 100644
index 0000000..803a909
--- /dev/null
+++ b/skjcmanager/skjcmanager-common/pom.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-common</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-launch</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-loadbalancer</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-auto</artifactId>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                    <finalName>${project.name}</finalName>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/cache/CacheNames.java b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/cache/CacheNames.java
new file mode 100644
index 0000000..37116c5
--- /dev/null
+++ b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/cache/CacheNames.java
@@ -0,0 +1,59 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.common.cache;
+
+/**
+ * 缓存名
+ *
+ * @author Chill
+ */
+public interface CacheNames {
+
+	/**
+	 * 返回拼接后的key
+	 *
+	 * @param cacheKey      缓存key
+	 * @param cacheKeyValue 缓存key值
+	 * @return tenantKey
+	 */
+	static String cacheKey(String cacheKey, String cacheKeyValue) {
+		return cacheKey.concat(cacheKeyValue);
+	}
+
+	/**
+	 * 返回租户格式的key
+	 *
+	 * @param tenantId      租户编号
+	 * @param cacheKey      缓存key
+	 * @param cacheKeyValue 缓存key值
+	 * @return tenantKey
+	 */
+	static String tenantKey(String tenantId, String cacheKey, String cacheKeyValue) {
+		return tenantId.concat(":").concat(cacheKey).concat(cacheKeyValue);
+	}
+
+	/**
+	 * 验证码key
+	 */
+	String CAPTCHA_KEY = "blade:auth::blade:captcha:";
+
+	/**
+	 * 登录失败key
+	 */
+	String USER_FAIL_KEY = "blade:user::blade:fail:";
+
+}
diff --git a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/config/BladeCommonConfiguration.java b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/config/BladeCommonConfiguration.java
new file mode 100644
index 0000000..6446b5b
--- /dev/null
+++ b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/config/BladeCommonConfiguration.java
@@ -0,0 +1,32 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.common.config;
+
+
+import lombok.AllArgsConstructor;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 公共封装包配置类
+ *
+ * @author Chill
+ */
+@Configuration(proxyBeanMethods = false)
+@AllArgsConstructor
+public class BladeCommonConfiguration {
+
+}
diff --git a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/AppsConstant.java b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/AppsConstant.java
new file mode 100644
index 0000000..9c006c1
--- /dev/null
+++ b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/AppsConstant.java
@@ -0,0 +1,30 @@
+package cn.gistack.common.constant;
+
+public interface AppsConstant {
+
+	String APPLICATION_VERSION = "3.0.1.RELEASE";
+	String BASE_PACKAGES = "cn.skjcmanager";
+	String APPLICATION_NAME_PREFIX = "skjcmanager-";
+	String APPLICATION_GATEWAY_NAME = "skjcmanager-gateway";
+	String APPLICATION_AUTH_NAME = "skjcmanager-auth";
+	String APPLICATION_ADMIN_NAME = "skjcmanager-admin";
+	String APPLICATION_REPORT_NAME = "skjcmanager-report";
+	String APPLICATION_TURBINE_NAME = "skjcmanager-turbine";
+	String APPLICATION_ZIPKIN_NAME = "skjcmanager-zipkin";
+	String APPLICATION_WEBSOCKET_NAME = "skjcmanager-websocket";
+	String APPLICATION_DESK_NAME = "skjcmanager-desk";
+	String APPLICATION_SYSTEM_NAME = "skjcmanager-system";
+	String APPLICATION_USER_NAME = "skjcmanager-user";
+	String APPLICATION_LOG_NAME = "skjcmanager-log";
+	String APPLICATION_DEVELOP_NAME = "skjcmanager-develop";
+	String APPLICATION_FLOWDESIGN_NAME = "skjcmanager-flowdesign";
+	String APPLICATION_FLOW_NAME = "skjcmanager-flow";
+	String APPLICATION_RESOURCE_NAME = "skjcmanager-resource";
+	String APPLICATION_SWAGGER_NAME = "skjcmanager-swagger";
+	String APPLICATION_TEST_NAME = "skjcmanager-test";
+	String APPLICATION_DEMO_NAME = "skjcmanager-demo";
+	String DEV_CODE = "dev";
+	String PROD_CODE = "prod";
+	String TEST_CODE = "test";
+	String OS_NAME_LINUX = "LINUX";
+}
diff --git a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/CommonConstant.java b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/CommonConstant.java
new file mode 100644
index 0000000..ed12c90
--- /dev/null
+++ b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/CommonConstant.java
@@ -0,0 +1,77 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.common.constant;
+
+/**
+ * 通用常量
+ *
+ * @author Chill
+ */
+public interface CommonConstant {
+
+	/**
+	 * sword 系统名
+	 */
+	String SWORD_NAME = "sword";
+
+	/**
+	 * saber 系统名
+	 */
+	String SABER_NAME = "saber";
+
+	/**
+	 * 顶级父节点id
+	 */
+	Long TOP_PARENT_ID = 0L;
+
+	/**
+	 * 顶级父节点名称
+	 */
+	String TOP_PARENT_NAME = "顶级";
+
+	/**
+	 * 未封存状态值
+	 */
+	Integer NOT_SEALED_ID = 0;
+
+	/**
+	 * 默认密码
+	 */
+	String DEFAULT_PASSWORD = "123456";
+
+	/**
+	 * 默认密码参数值
+	 */
+	String DEFAULT_PARAM_PASSWORD = "account.initPassword";
+
+	/**
+	 * 默认排序字段
+	 */
+	String SORT_FIELD = "sort";
+
+	/**
+	 * 数据权限类型
+	 */
+	Integer DATA_SCOPE_CATEGORY = 1;
+
+	/**
+	 * 接口权限类型
+	 */
+	Integer API_SCOPE_CATEGORY = 2;
+
+
+}
diff --git a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/LauncherConstant.java b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/LauncherConstant.java
new file mode 100644
index 0000000..40479bf
--- /dev/null
+++ b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/LauncherConstant.java
@@ -0,0 +1,230 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.common.constant;
+
+import org.springblade.core.launch.constant.AppConstant;
+
+import static org.springblade.core.launch.constant.AppConstant.APPLICATION_NAME_PREFIX;
+
+/**
+ * 启动常量
+ *
+ * @author Chill
+ */
+public interface LauncherConstant {
+
+	/**
+	 * xxljob
+	 */
+	String APPLICATION_XXLJOB_NAME = APPLICATION_NAME_PREFIX + "xxljob";
+
+	/**
+	 * xxljob
+	 */
+	String APPLICATION_XXLJOB_ADMIN_NAME = APPLICATION_NAME_PREFIX + "xxljob-admin";
+
+	/**
+	 * nacos dev 地址
+	 */
+	String NACOS_DEV_ADDR = "172.16.13.144:8848";
+
+	/**
+	 * nacos prod 地址
+	 */
+	String NACOS_PROD_ADDR = "172.30.0.48:8848";
+
+	/**
+	 * nacos test 地址
+	 */
+	String NACOS_TEST_ADDR = "172.30.0.48:8848";
+
+	/**
+	 * sentinel dev 地址
+	 */
+	String SENTINEL_DEV_ADDR = "127.0.0.1:8858";
+
+	/**
+	 * sentinel prod 地址
+	 */
+	String SENTINEL_PROD_ADDR = "172.30.0.58:8858";
+
+	/**
+	 * sentinel test 地址
+	 */
+	String SENTINEL_TEST_ADDR = "172.30.0.58:8858";
+
+	/**
+	 * seata dev 地址
+	 */
+	String SEATA_DEV_ADDR = "127.0.0.1:8091";
+
+	/**
+	 * seata prod 地址
+	 */
+	String SEATA_PROD_ADDR = "172.30.0.68:8091";
+
+	/**
+	 * seata test 地址
+	 */
+	String SEATA_TEST_ADDR = "172.30.0.68:8091";
+
+	/**
+	 * zipkin dev 地址
+	 */
+	String ZIPKIN_DEV_ADDR = "http://127.0.0.1:9411";
+
+	/**
+	 * zipkin prod 地址
+	 */
+	String ZIPKIN_PROD_ADDR = "http://172.30.0.71:9411";
+
+	/**
+	 * zipkin test 地址
+	 */
+	String ZIPKIN_TEST_ADDR = "http://172.30.0.71:9411";
+
+	/**
+	 * elk dev 地址
+	 */
+	String ELK_DEV_ADDR = "127.0.0.1:9000";
+
+	/**
+	 * elk prod 地址
+	 */
+	String ELK_PROD_ADDR = "172.30.0.72:9000";
+
+	/**
+	 * elk test 地址
+	 */
+	String ELK_TEST_ADDR = "172.30.0.72:9000";
+
+	/**
+	 * seata file模式
+	 */
+	String FILE_MODE = "file";
+
+	/**
+	 * seata nacos模式
+	 */
+	String NACOS_MODE = "nacos";
+
+	/**
+	 * seata default模式
+	 */
+	String DEFAULT_MODE = "default";
+
+	/**
+	 * seata group后缀
+	 */
+	String GROUP_NAME = "-group";
+
+	/**
+	 * seata 服务组格式
+	 *
+	 * @param appName 服务名
+	 * @return group
+	 */
+	static String seataServiceGroup(String appName) {
+		return appName.concat(GROUP_NAME);
+	}
+
+	/**
+	 * 动态获取nacos地址
+	 *
+	 * @param profile 环境变量
+	 * @return addr
+	 */
+	static String nacosAddr(String profile) {
+		switch (profile) {
+			case (AppConstant.PROD_CODE):
+				return NACOS_PROD_ADDR;
+			case (AppConstant.TEST_CODE):
+				return NACOS_TEST_ADDR;
+			default:
+				return NACOS_DEV_ADDR;
+		}
+	}
+
+	/**
+	 * 动态获取sentinel地址
+	 *
+	 * @param profile 环境变量
+	 * @return addr
+	 */
+	static String sentinelAddr(String profile) {
+		switch (profile) {
+			case (AppConstant.PROD_CODE):
+				return SENTINEL_PROD_ADDR;
+			case (AppConstant.TEST_CODE):
+				return SENTINEL_TEST_ADDR;
+			default:
+				return SENTINEL_DEV_ADDR;
+		}
+	}
+
+	/**
+	 * 动态获取seata地址
+	 *
+	 * @param profile 环境变量
+	 * @return addr
+	 */
+	static String seataAddr(String profile) {
+		switch (profile) {
+			case (AppConstant.PROD_CODE):
+				return SEATA_PROD_ADDR;
+			case (AppConstant.TEST_CODE):
+				return SEATA_TEST_ADDR;
+			default:
+				return SEATA_DEV_ADDR;
+		}
+	}
+
+	/**
+	 * 动态获取zipkin地址
+	 *
+	 * @param profile 环境变量
+	 * @return addr
+	 */
+	static String zipkinAddr(String profile) {
+		switch (profile) {
+			case (AppConstant.PROD_CODE):
+				return ZIPKIN_PROD_ADDR;
+			case (AppConstant.TEST_CODE):
+				return ZIPKIN_TEST_ADDR;
+			default:
+				return ZIPKIN_DEV_ADDR;
+		}
+	}
+
+	/**
+	 * 动态获取elk地址
+	 *
+	 * @param profile 环境变量
+	 * @return addr
+	 */
+	static String elkAddr(String profile) {
+		switch (profile) {
+			case (AppConstant.PROD_CODE):
+				return ELK_PROD_ADDR;
+			case (AppConstant.TEST_CODE):
+				return ELK_TEST_ADDR;
+			default:
+				return ELK_DEV_ADDR;
+		}
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/TenantConstant.java b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/TenantConstant.java
new file mode 100644
index 0000000..7df526a
--- /dev/null
+++ b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/constant/TenantConstant.java
@@ -0,0 +1,66 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.common.constant;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 租户常量
+ *
+ * @author Chill
+ */
+public interface TenantConstant {
+
+	/**
+	 * 租户默认密码KEY
+	 */
+	String PASSWORD_KEY = "tenant.default.password";
+
+	/**
+	 * 租户默认账号额度KEY
+	 */
+	String ACCOUNT_NUMBER_KEY = "tenant.default.accountNumber";
+
+	/**
+	 * 租户默认菜单集合KEY
+	 */
+	String ACCOUNT_MENU_CODE_KEY = "tenant.default.menuCode";
+
+	/**
+	 * 租户默认密码
+	 */
+	String DEFAULT_PASSWORD = "123456";
+
+	/**
+	 * 租户授权码默认16位密钥
+	 */
+	String DES_KEY = "0000000000000000";
+
+	/**
+	 * 租户默认账号额度
+	 */
+	Integer DEFAULT_ACCOUNT_NUMBER = -1;
+
+	/**
+	 * 租户默认菜单集合
+	 */
+	List<String> MENU_CODES = Arrays.asList(
+		"desk", "flow", "work", "monitor", "resource", "role", "user", "dept", "dictbiz", "topmenu"
+	);
+
+}
diff --git a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/launch/LauncherServiceImpl.java b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/launch/LauncherServiceImpl.java
new file mode 100644
index 0000000..78bf8ae
--- /dev/null
+++ b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/launch/LauncherServiceImpl.java
@@ -0,0 +1,61 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.common.launch;
+
+import cn.gistack.common.constant.LauncherConstant;
+import org.springblade.core.auto.service.AutoService;
+import org.springblade.core.launch.service.LauncherService;
+import org.springblade.core.launch.utils.PropsUtil;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+
+import java.util.Properties;
+
+/**
+ * 启动参数拓展
+ *
+ * @author smallchil
+ */
+@AutoService(LauncherService.class)
+public class LauncherServiceImpl implements LauncherService {
+
+	@Override
+	public void launcher(SpringApplicationBuilder builder, String appName, String profile, boolean isLocalDev) {
+		Properties props = System.getProperties();
+		// 通用注册
+		PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.server-addr", LauncherConstant.nacosAddr(profile));
+		PropsUtil.setProperty(props, "spring.cloud.nacos.config.server-addr", LauncherConstant.nacosAddr(profile));
+		PropsUtil.setProperty(props, "spring.cloud.sentinel.transport.dashboard", LauncherConstant.sentinelAddr(profile));
+		PropsUtil.setProperty(props, "spring.zipkin.base-url", LauncherConstant.zipkinAddr(profile));
+		PropsUtil.setProperty(props, "spring.datasource.dynamic.enabled", "false");
+
+		// 开启elk日志
+		// PropsUtil.setProperty(props, "blade.log.elk.destination", LauncherConstant.elkAddr(profile));
+
+		// seata注册地址
+		// PropsUtil.setProperty(props, "seata.service.grouplist.default", LauncherConstant.seataAddr(profile));
+		// seata注册group格式
+		// PropsUtil.setProperty(props, "seata.tx-service-group", LauncherConstant.seataServiceGroup(appName));
+		// seata配置服务group
+		// PropsUtil.setProperty(props, "seata.service.vgroup-mapping.".concat(LauncherConstant.seataServiceGroup(appName)), LauncherConstant.DEFAULT_MODE);
+		// seata注册模式配置
+		// PropsUtil.setProperty(props, "seata.registry.type", LauncherConstant.NACOS_MODE);
+		// PropsUtil.setProperty(props, "seata.registry.nacos.server-addr", LauncherConstant.nacosAddr(profile));
+		// PropsUtil.setProperty(props, "seata.config.type", LauncherConstant.NACOS_MODE);
+		// PropsUtil.setProperty(props, "seata.config.nacos.server-addr", LauncherConstant.nacosAddr(profile));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/CommonUtil.java b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/CommonUtil.java
new file mode 100644
index 0000000..14eb083
--- /dev/null
+++ b/skjcmanager/skjcmanager-common/src/main/java/cn/gistack/common/utils/CommonUtil.java
@@ -0,0 +1,26 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.common.utils;
+
+/**
+ * 通用工具类
+ *
+ * @author Chill
+ */
+public class CommonUtil {
+
+}
diff --git a/skjcmanager/skjcmanager-common/src/main/resources/banner.txt b/skjcmanager/skjcmanager-common/src/main/resources/banner.txt
new file mode 100644
index 0000000..c0f1066
--- /dev/null
+++ b/skjcmanager/skjcmanager-common/src/main/resources/banner.txt
@@ -0,0 +1,8 @@
+${AnsiColor.BLUE}                   ______  _             _       ___   ___
+${AnsiColor.BLUE}                   | ___ \| |           | |      \  \ /  /
+${AnsiColor.BLUE}                   | |_/ /| |  __ _   __| |  ___  \  V  /
+${AnsiColor.BLUE}                   | ___ \| | / _` | / _` | / _ \   > <
+${AnsiColor.BLUE}                   | |_/ /| || (_| || (_| ||  __/ /  .  \
+${AnsiColor.BLUE}                   \____/ |_| \__,_| \__,_| \___|/__/ \__\
+
+${AnsiColor.BLUE}:: BladeX ${blade.service.version} :: ${spring.application.name}:${AnsiColor.RED}${blade.env}${AnsiColor.BLUE} :: Running SpringBoot ${spring-boot.version} :: ${AnsiColor.BRIGHT_BLACK}
diff --git a/skjcmanager/skjcmanager-gateway/Dockerfile b/skjcmanager/skjcmanager-gateway/Dockerfile
new file mode 100644
index 0000000..35ae928
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/Dockerfile
@@ -0,0 +1,15 @@
+FROM bladex/alpine-java:openjdk8-openj9_cn_slim
+
+MAINTAINER bladejava@qq.com
+
+RUN mkdir -p /blade/gateway
+
+WORKDIR /blade/gateway
+
+EXPOSE 80
+
+ADD ./target/blade-gateway.jar ./app.jar
+
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
+
+CMD ["--spring.profiles.active=test"]
diff --git a/skjcmanager/skjcmanager-gateway/pom.xml b/skjcmanager/skjcmanager-gateway/pom.xml
new file mode 100644
index 0000000..b974c96
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/pom.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-gateway</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <!--Blade-->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-launch</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-web</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-undertow</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-common</artifactId>
+            <version>${bladex.project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springblade</groupId>
+                    <artifactId>skjcmanager-core-launch</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-metrics</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-jwt</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+        </dependency>
+        <!--Spring-->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-gateway</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-bootstrap</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis-reactive</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>de.codecentric</groupId>
+            <artifactId>spring-boot-admin-starter-client</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>dockerfile-maven-plugin</artifactId>
+                <configuration>
+                    <username>${docker.username}</username>
+                    <password>${docker.password}</password>
+                    <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+                    <tag>${project.version}</tag>
+                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+                    <buildArgs>
+                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+                    </buildArgs>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/GateWayApplication.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/GateWayApplication.java
new file mode 100644
index 0000000..822d002
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/GateWayApplication.java
@@ -0,0 +1,40 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway;
+
+import cn.gistack.common.constant.AppsConstant;
+import org.springblade.core.launch.BladeApplication;
+import org.springblade.core.launch.constant.AppConstant;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+/**
+ * 项目启动
+ *
+ * @author Chill
+ */
+@EnableScheduling
+@EnableDiscoveryClient
+@SpringBootApplication
+public class GateWayApplication {
+
+	public static void main(String[] args) {
+		BladeApplication.run(AppsConstant.APPLICATION_GATEWAY_NAME, GateWayApplication.class, args);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/config/ErrorHandlerConfiguration.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/config/ErrorHandlerConfiguration.java
new file mode 100644
index 0000000..9ee8ce0
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/config/ErrorHandlerConfiguration.java
@@ -0,0 +1,44 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.config;
+
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import cn.gistack.gateway.handler.ErrorExceptionHandler;
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
+import org.springframework.boot.autoconfigure.web.ServerProperties;
+import org.springframework.boot.autoconfigure.web.reactive.error.ErrorWebFluxAutoConfiguration;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 异常处理配置类
+ *
+ * @author Chill
+ */
+@Configuration(proxyBeanMethods = false)
+@AutoConfigureBefore(ErrorWebFluxAutoConfiguration.class)
+@EnableConfigurationProperties({ServerProperties.class})
+public class ErrorHandlerConfiguration {
+
+	@Bean
+	public ErrorExceptionHandler globalExceptionHandler(ObjectMapper objectMapper) {
+		return new ErrorExceptionHandler(objectMapper);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/config/RouterFunctionConfiguration.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/config/RouterFunctionConfiguration.java
new file mode 100644
index 0000000..5ff0fe3
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/config/RouterFunctionConfiguration.java
@@ -0,0 +1,81 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.config;
+
+import cn.gistack.gateway.props.AuthProperties;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.http.server.reactive.ServerHttpResponse;
+import org.springframework.web.cors.reactive.CorsUtils;
+import org.springframework.web.server.ServerWebExchange;
+import org.springframework.web.server.WebFilter;
+import org.springframework.web.server.WebFilterChain;
+import reactor.core.publisher.Mono;
+
+/**
+ * 路由配置信息
+ *
+ * @author Chill
+ */
+@Slf4j
+@Configuration(proxyBeanMethods = false)
+@AllArgsConstructor
+@EnableConfigurationProperties({AuthProperties.class})
+public class RouterFunctionConfiguration {
+
+	/**
+	 * 这里为支持的请求头,如果有自定义的header字段请自己添加
+	 */
+	private static final String ALLOWED_HEADERS = "X-Requested-With, Tenant-Id, Blade-Auth, Content-Type, Authorization, credential, X-XSRF-TOKEN, token, username, client, knfie4j-gateway-request, knife4j-gateway-code, request-origion";
+	private static final String ALLOWED_METHODS = "GET,POST,PUT,DELETE,OPTIONS,HEAD";
+	private static final String ALLOWED_ORIGIN = "*";
+	private static final String ALLOWED_EXPOSE = "*";
+	private static final String MAX_AGE = "18000L";
+
+	/**
+	 * 跨域配置
+	 */
+	@Bean
+	public WebFilter corsFilter() {
+		return (ServerWebExchange ctx, WebFilterChain chain) -> {
+			ServerHttpRequest request = ctx.getRequest();
+			if (CorsUtils.isCorsRequest(request)) {
+				ServerHttpResponse response = ctx.getResponse();
+				HttpHeaders headers = response.getHeaders();
+				headers.add("Access-Control-Allow-Headers", ALLOWED_HEADERS);
+				headers.add("Access-Control-Allow-Methods", ALLOWED_METHODS);
+				headers.add("Access-Control-Allow-Origin", ALLOWED_ORIGIN);
+				headers.add("Access-Control-Expose-Headers", ALLOWED_EXPOSE);
+				headers.add("Access-Control-Max-Age", MAX_AGE);
+				headers.add("Access-Control-Allow-Credentials", "true");
+				if (request.getMethod() == HttpMethod.OPTIONS) {
+					response.setStatusCode(HttpStatus.OK);
+					return Mono.empty();
+				}
+			}
+			return chain.filter(ctx);
+		};
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/DynamicRouteService.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/DynamicRouteService.java
new file mode 100644
index 0000000..ad92ab7
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/DynamicRouteService.java
@@ -0,0 +1,101 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.dynamic;
+
+import org.springframework.cloud.gateway.event.RefreshRoutesEvent;
+import org.springframework.cloud.gateway.route.RouteDefinition;
+import org.springframework.cloud.gateway.route.RouteDefinitionWriter;
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.context.ApplicationEventPublisherAware;
+import org.springframework.stereotype.Service;
+import reactor.core.publisher.Mono;
+
+import java.util.List;
+
+/**
+ * 动态路由业务类
+ *
+ * @author Chill
+ */
+@Service
+public class DynamicRouteService implements ApplicationEventPublisherAware {
+
+	private final RouteDefinitionWriter routeDefinitionWriter;
+
+	private ApplicationEventPublisher publisher;
+
+	public DynamicRouteService(RouteDefinitionWriter routeDefinitionWriter) {
+		this.routeDefinitionWriter = routeDefinitionWriter;
+	}
+
+	@Override
+	public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
+		this.publisher = applicationEventPublisher;
+	}
+
+	/**
+	 * 增加路由
+	 */
+	public String save(RouteDefinition definition) {
+		try {
+			routeDefinitionWriter.save(Mono.just(definition)).subscribe();
+			this.publisher.publishEvent(new RefreshRoutesEvent(this));
+			return "save success";
+		} catch (Exception e) {
+			e.printStackTrace();
+			return "save failure";
+		}
+	}
+
+	/**
+	 * 更新路由
+	 */
+	public String update(RouteDefinition definition) {
+		try {
+			this.routeDefinitionWriter.delete(Mono.just(definition.getId()));
+			this.routeDefinitionWriter.save(Mono.just(definition)).subscribe();
+			this.publisher.publishEvent(new RefreshRoutesEvent(this));
+			return "update success";
+		} catch (Exception e) {
+			e.printStackTrace();
+			return "update failure";
+		}
+	}
+
+	/**
+	 * 更新路由
+	 */
+	public String updateList(List<RouteDefinition> routeDefinitions) {
+		routeDefinitions.forEach(this::update);
+		return "update done";
+	}
+
+	/**
+	 * 删除路由
+	 */
+	public String delete(String id) {
+		try {
+			this.routeDefinitionWriter.delete(Mono.just(id));
+			return "delete success";
+		} catch (Exception e) {
+			e.printStackTrace();
+			return "delete failure";
+		}
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/DynamicRouteServiceListener.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/DynamicRouteServiceListener.java
new file mode 100644
index 0000000..936549f
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/DynamicRouteServiceListener.java
@@ -0,0 +1,96 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.dynamic;
+
+import com.alibaba.cloud.nacos.NacosConfigProperties;
+import com.alibaba.cloud.nacos.NacosDiscoveryProperties;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.nacos.api.NacosFactory;
+import com.alibaba.nacos.api.PropertyKeyConst;
+import com.alibaba.nacos.api.config.ConfigService;
+import com.alibaba.nacos.api.config.listener.Listener;
+import com.alibaba.nacos.api.exception.NacosException;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.launch.constant.NacosConstant;
+import org.springblade.core.launch.props.BladeProperties;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.cloud.gateway.route.RouteDefinition;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Properties;
+import java.util.concurrent.Executor;
+
+/**
+ * 动态路由监听器
+ *
+ * @author Chill
+ */
+@Order
+@Slf4j
+@Component
+@RefreshScope
+public class DynamicRouteServiceListener {
+
+	private final DynamicRouteService dynamicRouteService;
+	private final NacosDiscoveryProperties nacosDiscoveryProperties;
+	private final NacosConfigProperties nacosConfigProperties;
+	private final BladeProperties bladeProperties;
+
+	public DynamicRouteServiceListener(DynamicRouteService dynamicRouteService, NacosDiscoveryProperties nacosDiscoveryProperties, NacosConfigProperties nacosConfigProperties, BladeProperties bladeProperties) {
+		this.dynamicRouteService = dynamicRouteService;
+		this.nacosDiscoveryProperties = nacosDiscoveryProperties;
+		this.nacosConfigProperties = nacosConfigProperties;
+		this.bladeProperties = bladeProperties;
+		dynamicRouteServiceListener();
+	}
+
+	/**
+	 * 监听Nacos下发的动态路由配置
+	 */
+	private void dynamicRouteServiceListener() {
+		try {
+			String dataId = NacosConstant.dataId(bladeProperties.getName(), bladeProperties.getEnv(), NacosConstant.NACOS_CONFIG_JSON_FORMAT);
+			String group = nacosConfigProperties.getGroup();
+			Properties properties = new Properties();
+			properties.setProperty(PropertyKeyConst.SERVER_ADDR, nacosDiscoveryProperties.getServerAddr());
+			properties.setProperty(PropertyKeyConst.NAMESPACE, nacosDiscoveryProperties.getNamespace());
+			ConfigService configService = NacosFactory.createConfigService(properties);
+			configService.addListener(dataId, group, new Listener() {
+				@Override
+				public void receiveConfigInfo(String configInfo) {
+					List<RouteDefinition> routeDefinitions = JSON.parseArray(configInfo, RouteDefinition.class);
+					dynamicRouteService.updateList(routeDefinitions);
+				}
+
+				@Override
+				public Executor getExecutor() {
+					return null;
+				}
+			});
+			String configInfo = configService.getConfig(dataId, group, 5000);
+			if (configInfo != null) {
+				List<RouteDefinition> routeDefinitions = JSON.parseArray(configInfo, RouteDefinition.class);
+				dynamicRouteService.updateList(routeDefinitions);
+			}
+		} catch (NacosException ignored) {
+			ignored.printStackTrace();
+		}
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/GatewayFilter.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/GatewayFilter.java
new file mode 100644
index 0000000..7da2435
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/GatewayFilter.java
@@ -0,0 +1,41 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.dynamic;
+
+import lombok.Data;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * 过滤器定义模型
+ *
+ * @author Chill
+ */
+@Data
+public class GatewayFilter {
+
+	/**
+	 * 过滤器对应的Name
+	 */
+	private String name;
+
+	/**
+	 * 对应的路由规则
+	 */
+	private Map<String, String> args = new LinkedHashMap<>();
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/GatewayPredicate.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/GatewayPredicate.java
new file mode 100644
index 0000000..e0e7528
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/GatewayPredicate.java
@@ -0,0 +1,41 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.dynamic;
+
+import lombok.Data;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+/**
+ * 路由断言定义模型
+ *
+ * @author Chill
+ */
+@Data
+public class GatewayPredicate {
+
+	/**
+	 * 断言对应的Name
+	 */
+	private String name;
+
+	/**
+	 * 配置的断言规则
+	 */
+	private Map<String, String> args = new LinkedHashMap<>();
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/GatewayRoute.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/GatewayRoute.java
new file mode 100644
index 0000000..61e3781
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/dynamic/GatewayRoute.java
@@ -0,0 +1,57 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.dynamic;
+
+
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Gateway的路由定义模型
+ *
+ * @author Chill
+ */
+@Data
+public class GatewayRoute {
+
+	/**
+	 * 路由的id
+	 */
+	private String id;
+
+	/**
+	 * 路由断言集合配置
+	 */
+	private List<GatewayPredicate> predicates = new ArrayList<>();
+
+	/**
+	 * 路由过滤器集合配置
+	 */
+	private List<GatewayFilter> filters = new ArrayList<>();
+
+	/**
+	 * 路由规则转发的目标uri
+	 */
+	private String uri;
+
+	/**
+	 * 路由执行的顺序
+	 */
+	private int order = 0;
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/AuthFilter.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/AuthFilter.java
new file mode 100644
index 0000000..8deb05a
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/AuthFilter.java
@@ -0,0 +1,120 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.filter;
+
+import cn.gistack.gateway.props.AuthProperties;
+import cn.gistack.gateway.provider.AuthProvider;
+import cn.gistack.gateway.provider.RequestProvider;
+import cn.gistack.gateway.provider.ResponseProvider;
+import com.alibaba.nacos.common.utils.StringUtils;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.jsonwebtoken.Claims;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.jwt.JwtUtil;
+import org.springblade.core.jwt.props.JwtProperties;
+import org.springblade.core.launch.constant.TokenConstant;
+import org.springframework.cloud.gateway.filter.GatewayFilterChain;
+import org.springframework.cloud.gateway.filter.GlobalFilter;
+import org.springframework.core.Ordered;
+import org.springframework.core.io.buffer.DataBuffer;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.server.reactive.ServerHttpResponse;
+import org.springframework.stereotype.Component;
+import org.springframework.util.AntPathMatcher;
+import org.springframework.web.server.ServerWebExchange;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
+
+import java.nio.charset.StandardCharsets;
+
+/**
+ * 鉴权认证
+ *
+ * @author Chill
+ */
+@Slf4j
+@Component
+@AllArgsConstructor
+public class AuthFilter implements GlobalFilter, Ordered {
+	private final AuthProperties authProperties;
+	private final ObjectMapper objectMapper;
+	private final JwtProperties jwtProperties;
+	private final AntPathMatcher antPathMatcher = new AntPathMatcher();
+
+	@Override
+	public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
+		//校验 Token 放行
+		String originalRequestUrl = RequestProvider.getOriginalRequestUrl(exchange);
+		String path = exchange.getRequest().getURI().getPath();
+		if (isSkip(path) || isSkip(originalRequestUrl)) {
+			return chain.filter(exchange);
+		}
+		//校验 Token 合法性
+		ServerHttpResponse resp = exchange.getResponse();
+		String headerToken = exchange.getRequest().getHeaders().getFirst(AuthProvider.AUTH_KEY);
+		String paramToken = exchange.getRequest().getQueryParams().getFirst(AuthProvider.AUTH_KEY);
+		if (StringUtils.isBlank(headerToken) && StringUtils.isBlank(paramToken)) {
+			return unAuth(resp, "缺失令牌,鉴权失败");
+		}
+		String auth = StringUtils.isBlank(headerToken) ? paramToken : headerToken;
+		String token = JwtUtil.getToken(auth);
+		Claims claims = JwtUtil.parseJWT(token);
+		if (token == null || claims == null) {
+			return unAuth(resp, "请求未授权");
+		}
+		//判断 Token 状态
+		if (jwtProperties.getState()) {
+			String tenantId = String.valueOf(claims.get(TokenConstant.TENANT_ID));
+			String userId = String.valueOf(claims.get(TokenConstant.USER_ID));
+			String accessToken = JwtUtil.getAccessToken(tenantId, userId, token);
+			if (!token.equalsIgnoreCase(accessToken)) {
+				return unAuth(resp, "令牌已失效");
+			}
+		}
+		return chain.filter(exchange);
+	}
+
+	private boolean isSkip(String path) {
+		return AuthProvider.getDefaultSkipUrl().stream().anyMatch(pattern -> antPathMatcher.match(pattern, path))
+			|| authProperties.getSkipUrl().stream().anyMatch(pattern -> antPathMatcher.match(pattern, path))
+ 			|| authProperties.getAuth().stream().anyMatch(auth -> antPathMatcher.match(auth.getPattern(), path))
+ 			|| authProperties.getBasic().stream().anyMatch(basic -> antPathMatcher.match(basic.getPattern(), path))
+			|| authProperties.getSign().stream().anyMatch(sign -> antPathMatcher.match(sign.getPattern(), path));
+	}
+
+	private Mono<Void> unAuth(ServerHttpResponse resp, String msg) {
+		resp.setStatusCode(HttpStatus.UNAUTHORIZED);
+		resp.getHeaders().add("Content-Type", "application/json;charset=UTF-8");
+		String result = "";
+		try {
+			result = objectMapper.writeValueAsString(ResponseProvider.unAuth(msg));
+		} catch (JsonProcessingException e) {
+			log.error(e.getMessage(), e);
+		}
+		DataBuffer buffer = resp.bufferFactory().wrap(result.getBytes(StandardCharsets.UTF_8));
+		return resp.writeWith(Flux.just(buffer));
+	}
+
+
+	@Override
+	public int getOrder() {
+		return -100;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/GlobalRequestLogFilter.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/GlobalRequestLogFilter.java
new file mode 100644
index 0000000..3d99140
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/GlobalRequestLogFilter.java
@@ -0,0 +1,112 @@
+/*
+ *      Copyright (c) 2018-2028, DreamLu All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: DreamLu 卢春梦 (596392912@qq.com)
+ */
+package cn.gistack.gateway.filter;
+
+import cn.gistack.gateway.provider.AuthProvider;
+import cn.gistack.gateway.provider.RequestProvider;
+import com.alibaba.nacos.common.utils.StringUtils;
+import io.jsonwebtoken.Claims;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.jwt.JwtUtil;
+import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.cloud.gateway.filter.GatewayFilterChain;
+import org.springframework.cloud.gateway.filter.GlobalFilter;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.Ordered;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.web.server.ServerWebExchange;
+import reactor.core.publisher.Mono;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * webflux 日志请求记录,方便开发调试。请求日志过滤器排序尽量低。
+ *
+ * <p>
+ * 注意:暂时不支持结构体打印,想实现,请看下面的链接。
+ * https://stackoverflow.com/questions/45240005/how-to-log-request-and-response-bodies-in-spring-webflux
+ * https://github.com/Silvmike/webflux-demo/blob/master/tests/src/test/java/ru/hardcoders/demo/webflux/web_handler/filters/logging
+ * </p>
+ *
+ * @author dream.lu
+ */
+@Slf4j
+@Configuration(proxyBeanMethods = false)
+@RequiredArgsConstructor
+@ConditionalOnProperty(value = "blade.log.request.enabled", havingValue = "true", matchIfMissing = true)
+public class GlobalRequestLogFilter implements GlobalFilter, Ordered {
+	private final WebEndpointProperties endpointProperties;
+
+	@Override
+	public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
+		ServerHttpRequest request = exchange.getRequest();
+		// 打印请求路径
+		String path = request.getPath().pathWithinApplication().value();
+
+		// 忽略 endpoint 请求
+		String endpointBasePath = endpointProperties.getBasePath();
+		if (StringUtils.isNotBlank(endpointBasePath) && path.startsWith(endpointBasePath)) {
+			return chain.filter(exchange);
+		}
+
+		String requestUrl = RequestProvider.getOriginalRequestUrl(exchange);
+
+		// 构建成一条长 日志,避免并发下日志错乱
+		StringBuilder beforeReqLog = new StringBuilder(300);
+		// 日志参数
+		List<Object> beforeReqArgs = new ArrayList<>();
+		beforeReqLog.append("\n\n================ Gateway Request Start  ================\n");
+		// 打印路由
+		beforeReqLog.append("===> {}: {}\n");
+		// 参数
+		String requestMethod = request.getMethodValue();
+		beforeReqArgs.add(requestMethod);
+		beforeReqArgs.add(requestUrl);
+
+		// 打印请求头
+		HttpHeaders headers = request.getHeaders();
+		headers.forEach((headerName, headerValue) -> {
+			beforeReqLog.append("===Headers===  {}: {}\n");
+			beforeReqArgs.add(headerName);
+			if (AuthProvider.AUTH_KEY.toLowerCase().equals(headerName)) {
+				String value = headerValue.get(0);
+				String token = JwtUtil.getToken(value);
+				Claims claims = JwtUtil.parseJWT(token);
+				beforeReqArgs.add((claims == null) ? "" : claims.toString());
+				beforeReqLog.append("===Headers===  {}: {}\n");
+				beforeReqArgs.add(headerName.concat("-original"));
+				beforeReqArgs.add(headerValue.toArray());
+			} else {
+				beforeReqArgs.add(headerValue.toArray());
+			}
+		});
+
+		beforeReqLog.append("================  Gateway Request End  =================\n");
+		// 打印执行时间
+		log.info(beforeReqLog.toString(), beforeReqArgs.toArray());
+		return chain.filter(exchange);
+	}
+
+	@Override
+	public int getOrder() {
+		return Ordered.LOWEST_PRECEDENCE;
+	}
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/GlobalResponseLogFilter.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/GlobalResponseLogFilter.java
new file mode 100644
index 0000000..a11c4f2
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/GlobalResponseLogFilter.java
@@ -0,0 +1,99 @@
+/*
+ *      Copyright (c) 2018-2028, DreamLu All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: DreamLu 卢春梦 (596392912@qq.com)
+ */
+package cn.gistack.gateway.filter;
+
+import com.alibaba.nacos.common.utils.StringUtils;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.cloud.gateway.filter.GatewayFilterChain;
+import org.springframework.cloud.gateway.filter.GlobalFilter;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.Ordered;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.http.server.reactive.ServerHttpResponse;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.server.ServerWebExchange;
+import org.springframework.web.util.UriComponentsBuilder;
+import reactor.core.publisher.Mono;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * webflux 相应日志,方便开发调试,注意排序要优先。
+ *
+ * @author dream.lu
+ */
+@Slf4j
+@Configuration(proxyBeanMethods = false)
+@RequiredArgsConstructor
+@ConditionalOnProperty(value = "blade.log.request.enabled", havingValue = "true", matchIfMissing = true)
+public class GlobalResponseLogFilter implements GlobalFilter, Ordered {
+	private final WebEndpointProperties endpointProperties;
+
+	@Override
+	public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
+		ServerHttpRequest request = exchange.getRequest();
+		// 打印请求路径
+		String path = request.getPath().pathWithinApplication().value();
+		// 忽略 endpoint 请求
+		String endpointBasePath = endpointProperties.getBasePath();
+		if (StringUtils.isNotBlank(endpointBasePath) && path.startsWith(endpointBasePath)) {
+			return chain.filter(exchange);
+		}
+		return chain.filter(exchange).then(
+			Mono.fromRunnable(() -> {
+				MultiValueMap<String, String> queryParams = request.getQueryParams();
+				String requestUrl = UriComponentsBuilder.fromPath(path).queryParams(queryParams).build().toUriString();
+
+				// 构建成一条长 日志,避免并发下日志错乱
+				StringBuilder responseLog = new StringBuilder(300);
+				// 日志参数
+				List<Object> responseArgs = new ArrayList<>();
+				responseLog.append("\n\n================ Gateway Response Start  ================\n");
+				ServerHttpResponse response = exchange.getResponse();
+				// 打印路由 200 get: /api/xxx/xxx
+				responseLog.append("<=== {} {}: {}\n");
+				// 参数
+				String requestMethod = request.getMethodValue();
+				responseArgs.add(response.getStatusCode().value());
+				responseArgs.add(requestMethod);
+				responseArgs.add(requestUrl);
+
+				// 打印请求头
+				HttpHeaders headers = response.getHeaders();
+				headers.forEach((headerName, headerValue) -> {
+					responseLog.append("===Headers===  {}: {}\n");
+					responseArgs.add(headerName);
+					responseArgs.add(headerValue.toArray());
+				});
+
+				responseLog.append("================  Gateway Response End  =================\n");
+				// 打印执行时间
+				log.info(responseLog.toString(), responseArgs.toArray());
+			})
+		);
+	}
+
+	@Override
+	public int getOrder() {
+		return Ordered.HIGHEST_PRECEDENCE;
+	}
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/RequestFilter.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/RequestFilter.java
new file mode 100644
index 0000000..7dd6d00
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/RequestFilter.java
@@ -0,0 +1,63 @@
+package cn.gistack.gateway.filter;
+
+import org.springframework.cloud.gateway.filter.GatewayFilterChain;
+import org.springframework.cloud.gateway.filter.GlobalFilter;
+import org.springframework.core.Ordered;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+import org.springframework.web.server.ServerWebExchange;
+import reactor.core.publisher.Mono;
+
+import java.util.Arrays;
+import java.util.stream.Collectors;
+
+import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.GATEWAY_REQUEST_URL_ATTR;
+import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.addOriginalRequestUrl;
+
+/**
+ * <p>
+ * 全局拦截器,作用所有的微服务
+ * <p>
+ * 1. 对请求头中参数进行处理 from 参数进行清洗
+ * 2. 重写StripPrefix = 1,支持全局
+ *
+ * @author lengleng
+ */
+@Component
+public class RequestFilter implements GlobalFilter, Ordered {
+
+	/**
+	 * Process the Web request and (optionally) delegate to the next
+	 * {@code WebFilter} through the given {@link GatewayFilterChain}.
+	 *
+	 * @param exchange the current server exchange
+	 * @param chain    provides a way to delegate to the next filter
+	 * @return {@code Mono<Void>} to indicate when request processing is complete
+	 */
+	@Override
+	public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
+		// 1. 清洗请求头中from 参数
+		ServerHttpRequest request = exchange.getRequest().mutate()
+			.headers(httpHeaders -> httpHeaders.remove("X"))
+			.build();
+
+		// 2. 重写StripPrefix
+		addOriginalRequestUrl(exchange, request.getURI());
+		String rawPath = request.getURI().getRawPath();
+		String newPath = "/" + Arrays.stream(StringUtils.tokenizeToStringArray(rawPath, "/"))
+			.skip(1L).collect(Collectors.joining("/"));
+		ServerHttpRequest newRequest = request.mutate()
+			.path(newPath)
+			.build();
+		exchange.getAttributes().put(GATEWAY_REQUEST_URL_ATTR, newRequest.getURI());
+
+		return chain.filter(exchange.mutate().request(newRequest.mutate().build()).build());
+	}
+
+	@Override
+	public int getOrder() {
+		return -1000;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/handler/ErrorExceptionHandler.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/handler/ErrorExceptionHandler.java
new file mode 100644
index 0000000..3504aba
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/handler/ErrorExceptionHandler.java
@@ -0,0 +1,96 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.handler;
+
+import cn.gistack.gateway.provider.ResponseProvider;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.boot.web.reactive.error.ErrorWebExceptionHandler;
+import org.springframework.core.annotation.Order;
+import org.springframework.core.io.buffer.DataBufferFactory;
+import org.springframework.http.MediaType;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.http.server.reactive.ServerHttpResponse;
+import org.springframework.web.server.ResponseStatusException;
+import org.springframework.web.server.ServerWebExchange;
+import reactor.core.publisher.Mono;
+
+import java.util.Map;
+
+/**
+ * 异常处理
+ *
+ * @author Chill
+ */
+@Order(-1)
+@RequiredArgsConstructor
+public class ErrorExceptionHandler implements ErrorWebExceptionHandler {
+
+	private final ObjectMapper objectMapper;
+
+	@Override
+	public Mono<Void> handle(ServerWebExchange exchange, Throwable ex) {
+		ServerHttpRequest request = exchange.getRequest();
+		ServerHttpResponse response = exchange.getResponse();
+
+		if (response.isCommitted()) {
+			return Mono.error(ex);
+		}
+
+		response.getHeaders().setContentType(MediaType.APPLICATION_JSON);
+		if (ex instanceof ResponseStatusException) {
+			response.setStatusCode(((ResponseStatusException) ex).getStatus());
+		}
+
+		return response.writeWith(Mono.fromSupplier(() -> {
+			DataBufferFactory bufferFactory = response.bufferFactory();
+			try {
+				int status = 500;
+				if (response.getStatusCode() != null) {
+					status = response.getStatusCode().value();
+				}
+				Map<String, Object> result = ResponseProvider.response(status, this.buildMessage(request, ex));
+				return bufferFactory.wrap(objectMapper.writeValueAsBytes(result));
+			} catch (JsonProcessingException e) {
+				return bufferFactory.wrap(new byte[0]);
+			}
+		}));
+	}
+
+
+	/**
+	 * 构建异常信息
+	 */
+	private String buildMessage(ServerHttpRequest request, Throwable ex) {
+		String uri = request.getURI().toString();
+		if (uri.endsWith("doc.html")) {
+			return "[Swagger聚合网关] 已迁移至 [blade-swagger] 服务,请开启 [blade-swagger] 服务并访问 [http://127.0.0.1:18000/doc.html]";
+		}
+		StringBuilder message = new StringBuilder("Failed to handle request [");
+		message.append(request.getMethodValue());
+		message.append(" ");
+		message.append(request.getURI());
+		message.append("]");
+		if (ex != null) {
+			message.append(": ");
+			message.append(ex.getMessage());
+		}
+		return message.toString();
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/props/AuthProperties.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/props/AuthProperties.java
new file mode 100644
index 0000000..1ae2c63
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/props/AuthProperties.java
@@ -0,0 +1,59 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.props;
+
+import cn.gistack.gateway.provider.AuthSecure;
+import cn.gistack.gateway.provider.BasicSecure;
+import cn.gistack.gateway.provider.SignSecure;
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 权限过滤
+ *
+ * @author Chill
+ */
+@Data
+@RefreshScope
+@ConfigurationProperties("blade.secure")
+public class AuthProperties {
+
+	/**
+	 * 放行API集合
+	 */
+	private final List<String> skipUrl = new ArrayList<>();
+
+	/**
+	 * 自定义授权配置
+	 */
+	private final List<AuthSecure> auth = new ArrayList<>();
+
+	/**
+	 * 基础认证配置
+	 */
+	private final List<BasicSecure> basic = new ArrayList<>();
+
+	/**
+	 * 签名认证配置
+	 */
+	private final List<SignSecure> sign = new ArrayList<>();
+
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/AuthProvider.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/AuthProvider.java
new file mode 100644
index 0000000..63f05fe
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/AuthProvider.java
@@ -0,0 +1,67 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.provider;
+
+import org.springblade.core.launch.constant.TokenConstant;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 鉴权配置
+ *
+ * @author Chill
+ */
+public class AuthProvider {
+
+	public static final String AUTH_KEY = TokenConstant.HEADER;
+	private static final List<String> DEFAULT_SKIP_URL = new ArrayList<>();
+
+	static {
+		DEFAULT_SKIP_URL.add("/example");
+		DEFAULT_SKIP_URL.add("/oauth/token/**");
+		DEFAULT_SKIP_URL.add("/oauth/captcha/**");
+		DEFAULT_SKIP_URL.add("/oauth/clear-cache/**");
+		DEFAULT_SKIP_URL.add("/oauth/user-info");
+		DEFAULT_SKIP_URL.add("/oauth/render/**");
+		DEFAULT_SKIP_URL.add("/oauth/callback/**");
+		DEFAULT_SKIP_URL.add("/oauth/revoke/**");
+		DEFAULT_SKIP_URL.add("/oauth/refresh/**");
+		DEFAULT_SKIP_URL.add("/token/**");
+		DEFAULT_SKIP_URL.add("/actuator/**");
+		DEFAULT_SKIP_URL.add("/v2/api-docs/**");
+		DEFAULT_SKIP_URL.add("/auth/**");
+		DEFAULT_SKIP_URL.add("/log/**");
+		DEFAULT_SKIP_URL.add("/menu/routes");
+		DEFAULT_SKIP_URL.add("/menu/auth-routes");
+		DEFAULT_SKIP_URL.add("/menu/top-menu");
+		DEFAULT_SKIP_URL.add("/tenant/info");
+		DEFAULT_SKIP_URL.add("/process/resource-view");
+		DEFAULT_SKIP_URL.add("/process/diagram-view");
+		DEFAULT_SKIP_URL.add("/manager/check-upload");
+		DEFAULT_SKIP_URL.add("/error/**");
+		DEFAULT_SKIP_URL.add("/assets/**");
+	}
+
+	/**
+	 * 默认无需鉴权的API
+	 */
+	public static List<String> getDefaultSkipUrl() {
+		return DEFAULT_SKIP_URL;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/AuthSecure.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/AuthSecure.java
new file mode 100644
index 0000000..902b34c
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/AuthSecure.java
@@ -0,0 +1,37 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.provider;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 自定义授权规则
+ *
+ * @author Chill
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class AuthSecure {
+	/**
+	 * 请求路径
+	 */
+	private String pattern;
+
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/BasicSecure.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/BasicSecure.java
new file mode 100644
index 0000000..c531819
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/BasicSecure.java
@@ -0,0 +1,37 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.provider;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 基础授权规则
+ *
+ * @author Chill
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class BasicSecure {
+	/**
+	 * 请求路径
+	 */
+	private String pattern;
+
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/RequestProvider.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/RequestProvider.java
new file mode 100644
index 0000000..9edb080
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/RequestProvider.java
@@ -0,0 +1,49 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.provider;
+
+import org.springframework.cloud.gateway.support.ServerWebExchangeUtils;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.server.ServerWebExchange;
+import org.springframework.web.util.UriComponentsBuilder;
+
+import java.net.URI;
+import java.util.LinkedHashSet;
+
+/**
+ * RequestProvider
+ *
+ * @author Chill
+ */
+public class RequestProvider {
+
+	/**
+	 * 获取原始url
+	 *
+	 * @param exchange
+	 * @return
+	 */
+	public static String getOriginalRequestUrl(ServerWebExchange exchange) {
+		ServerHttpRequest request = exchange.getRequest();
+		LinkedHashSet<URI> uris = exchange.getRequiredAttribute(ServerWebExchangeUtils.GATEWAY_ORIGINAL_REQUEST_URL_ATTR);
+		URI requestUri = uris.stream().findFirst().orElse(request.getURI());
+		MultiValueMap<String, String> queryParams = request.getQueryParams();
+		return UriComponentsBuilder.fromPath(requestUri.getRawPath()).queryParams(queryParams).build().toUriString();
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/ResponseProvider.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/ResponseProvider.java
new file mode 100644
index 0000000..e8da13c
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/ResponseProvider.java
@@ -0,0 +1,84 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.provider;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 请求响应返回
+ *
+ * @author Chill
+ */
+public class ResponseProvider {
+
+	/**
+	 * 成功
+	 *
+	 * @param message 信息
+	 * @return
+	 */
+	public static Map<String, Object> success(String message) {
+		return response(200, message);
+	}
+
+	/**
+	 * 失败
+	 *
+	 * @param message 信息
+	 * @return
+	 */
+	public static Map<String, Object> fail(String message) {
+		return response(400, message);
+	}
+
+	/**
+	 * 未授权
+	 *
+	 * @param message 信息
+	 * @return
+	 */
+	public static Map<String, Object> unAuth(String message) {
+		return response(401, message);
+	}
+
+	/**
+	 * 服务器异常
+	 *
+	 * @param message 信息
+	 * @return
+	 */
+	public static Map<String, Object> error(String message) {
+		return response(500, message);
+	}
+
+	/**
+	 * 构建返回的JSON数据格式
+	 *
+	 * @param status  状态码
+	 * @param message 信息
+	 * @return
+	 */
+	public static Map<String, Object> response(int status, String message) {
+		Map<String, Object> map = new HashMap<>(16);
+		map.put("code", status);
+		map.put("msg", message);
+		map.put("data", null);
+		return map;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/SignSecure.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/SignSecure.java
new file mode 100644
index 0000000..a62c7a0
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/provider/SignSecure.java
@@ -0,0 +1,37 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.gateway.provider;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 签名授权规则
+ *
+ * @author Chill
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class SignSecure {
+	/**
+	 * 请求路径
+	 */
+	private String pattern;
+
+}
diff --git a/skjcmanager/skjcmanager-gateway/src/main/resources/application-dev.yml b/skjcmanager/skjcmanager-gateway/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..b8eaf54
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/resources/application-dev.yml
@@ -0,0 +1,11 @@
+blade:
+  #多团队协作服务配置
+  loadbalancer:
+    #开启配置
+    enabled: true
+    #灰度版本
+    #version: 3.0.0
+    #负载均衡优先调用的ip段
+    prior-ip-pattern:
+      - 192.168.0.*
+      - 127.0.0.1
diff --git a/skjcmanager/skjcmanager-gateway/src/main/resources/bootstrap.yml b/skjcmanager/skjcmanager-gateway/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..5c9f4fd
--- /dev/null
+++ b/skjcmanager/skjcmanager-gateway/src/main/resources/bootstrap.yml
@@ -0,0 +1,12 @@
+server:
+  port: 80
+
+spring:
+  cloud:
+    gateway:
+      discovery:
+        locator:
+          enabled: true
+    loadbalancer:
+      retry:
+        enabled: true
diff --git a/skjcmanager/skjcmanager-ops-api/pom.xml b/skjcmanager/skjcmanager-ops-api/pom.xml
new file mode 100644
index 0000000..8440eca
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/pom.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-ops-api</artifactId>
+    <name>${project.artifactId}</name>
+    <version>3.0.1.RELEASE</version>
+    <packaging>pom</packaging>
+    <description>BladeX 微服务API集合</description>
+
+    <modules>
+        <module>skjcmanager-flow-api</module>
+        <module>skjcmanager-resource-api</module>
+    </modules>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-mybatis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-auto</artifactId>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                    <finalName>${project.name}</finalName>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/pom.xml b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/pom.xml
new file mode 100644
index 0000000..da90e16
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/pom.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-ops-api</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-flow-api</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+
+
+</project>
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/constant/ProcessConstant.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/constant/ProcessConstant.java
new file mode 100644
index 0000000..e7c028b
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/constant/ProcessConstant.java
@@ -0,0 +1,61 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.core.constant;
+
+/**
+ * 流程常量.
+ *
+ * @author Chill
+ */
+public interface ProcessConstant {
+
+	/**
+	 * 请假流程标识
+	 */
+	String LEAVE_KEY = "Leave";
+
+	/**
+	 * 报销流程标识
+	 */
+	String EXPENSE_KEY = "Expense";
+
+	/**
+	 * 同意标识
+	 */
+	String PASS_KEY = "pass";
+
+	/**
+	 * 同意代号
+	 */
+	String PASS_ALIAS = "ok";
+
+	/**
+	 * 同意默认批复
+	 */
+	String PASS_COMMENT = "同意";
+
+	/**
+	 * 驳回默认批复
+	 */
+	String NOT_PASS_COMMENT = "驳回";
+
+	/**
+	 * 创建人变量名
+	 */
+	String TASK_VARIABLE_CREATE_USER = "createUser";
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/entity/BladeFlow.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/entity/BladeFlow.java
new file mode 100644
index 0000000..485bcfd
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/entity/BladeFlow.java
@@ -0,0 +1,179 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.core.entity;
+
+import lombok.Data;
+import cn.gistack.flow.core.constant.ProcessConstant;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * 工作流通用实体类
+ *
+ * @author Chill
+ */
+@Data
+public class BladeFlow implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 任务编号
+	 */
+	private String taskId;
+	/**
+	 * 任务名称
+	 */
+	private String taskName;
+	/**
+	 * 任务定义Key
+	 */
+	private String taskDefinitionKey;
+	/**
+	 * 任务执行人编号
+	 */
+	private String assignee;
+	/**
+	 * 任务执行人名称
+	 */
+	private String assigneeName;
+	/**
+	 * 流程分类
+	 */
+	private String category;
+	/**
+	 * 流程分类名
+	 */
+	private String categoryName;
+	/**
+	 * 创建时间
+	 */
+	private Date createTime;
+	/**
+	 * 结束时间
+	 */
+	private Date endTime;
+	/**
+	 * 签收时间
+	 */
+	private Date claimTime;
+	/**
+	 * 历史任务结束时间
+	 */
+	private Date historyTaskEndTime;
+	/**
+	 * 执行ID
+	 */
+	private String executionId;
+	/**
+	 * 流程实例ID
+	 */
+	private String processInstanceId;
+	/**
+	 * 流程ID
+	 */
+	private String processDefinitionId;
+	/**
+	 * 流程标识
+	 */
+	private String processDefinitionKey;
+	/**
+	 * 流程名
+	 */
+	private String processDefinitionName;
+	/**
+	 * 流程版本
+	 */
+	private int processDefinitionVersion;
+	/**
+	 * 流程说明
+	 */
+	private String processDefinitionDesc;
+	/**
+	 * 流程简图名
+	 */
+	private String processDefinitionDiagramResName;
+	/**
+	 * 流程重命名
+	 */
+	private String processDefinitionResName;
+	/**
+	 * 历史任务流程实例ID 查看流程图会用到
+	 */
+	private String historyProcessInstanceId;
+	/**
+	 * 流程实例是否结束
+	 */
+	private String processIsFinished;
+	/**
+	 * 历史活动ID
+	 */
+	private String historyActivityId;
+	/**
+	 * 历史活动流程
+	 */
+	private String historyActivityName;
+	/**
+	 * 历史活动耗时
+	 */
+	private String historyActivityDurationTime;
+	/**
+	 * 业务绑定Table
+	 */
+	private String businessTable;
+	/**
+	 * 业务绑定ID
+	 */
+	private String businessId;
+	/**
+	 * 任务状态
+	 */
+	private String status;
+	/**
+	 * 任务意见
+	 */
+	private String comment;
+	/**
+	 * 是否通过
+	 */
+	private boolean isPass;
+	/**
+	 * 是否通过代号
+	 */
+	private String flag;
+	/**
+	 * 开始查询日期
+	 */
+	private Date beginDate;
+	/**
+	 * 结束查询日期
+	 */
+	private Date endDate;
+	/**
+	 * 流程参数
+	 */
+	private Map<String, Object> variables;
+
+	/**
+	 * 获取是否通过
+	 */
+	public boolean isPass() {
+		return ProcessConstant.PASS_ALIAS.equals(flag) || ProcessConstant.PASS_COMMENT.equals(comment);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/entity/FlowEntity.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/entity/FlowEntity.java
new file mode 100644
index 0000000..d8b931b
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/entity/FlowEntity.java
@@ -0,0 +1,43 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.core.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/**
+ * FlowEntity
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class FlowEntity extends BaseEntity {
+
+	@TableField(exist = false)
+	private BladeFlow flow;
+
+	public BladeFlow getFlow() {
+		if (flow == null) {
+			flow = new BladeFlow();
+		}
+		return flow;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/enums/FlowModeEnum.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/enums/FlowModeEnum.java
new file mode 100644
index 0000000..4dfd49f
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/enums/FlowModeEnum.java
@@ -0,0 +1,45 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.core.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 流程类型枚举
+ *
+ * @author Chill
+ */
+@Getter
+@AllArgsConstructor
+public enum FlowModeEnum {
+
+	/**
+	 * 通用流程
+	 */
+	COMMON("common", 1),
+
+	/**
+	 * 定制流程
+	 */
+	CUSTOM("custom", 2),
+	;
+
+	final String name;
+	final int mode;
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/feign/IFlowClient.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/feign/IFlowClient.java
new file mode 100644
index 0000000..b5c0c89
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/feign/IFlowClient.java
@@ -0,0 +1,100 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.core.feign;
+
+import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.core.tool.api.R;
+import cn.gistack.flow.core.entity.BladeFlow;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.Map;
+
+/**
+ * 工作流远程调用接口.
+ *
+ * @author Chill
+ */
+@FeignClient(
+	value = AppConstant.APPLICATION_FLOW_NAME,
+	fallback = IFlowClientFallback.class
+)
+public interface IFlowClient {
+
+	String API_PREFIX = "/client";
+	String START_PROCESS_INSTANCE_BY_ID = API_PREFIX + "/start-process-instance-by-id";
+	String START_PROCESS_INSTANCE_BY_KEY = API_PREFIX + "/start-process-instance-by-key";
+	String COMPLETE_TASK = API_PREFIX + "/complete-task";
+	String TASK_VARIABLE = API_PREFIX + "/task-variable";
+	String TASK_VARIABLES = API_PREFIX + "/task-variables";
+
+	/**
+	 * 开启流程
+	 *
+	 * @param processDefinitionId 流程id
+	 * @param businessKey         业务key
+	 * @param variables           参数
+	 * @return BladeFlow
+	 */
+	@PostMapping(START_PROCESS_INSTANCE_BY_ID)
+	R<BladeFlow> startProcessInstanceById(@RequestParam("processDefinitionId") String processDefinitionId, @RequestParam("businessKey") String businessKey, @RequestBody Map<String, Object> variables);
+
+	/**
+	 * 开启流程
+	 *
+	 * @param processDefinitionKey 流程标识
+	 * @param businessKey          业务key
+	 * @param variables            参数
+	 * @return BladeFlow
+	 */
+	@PostMapping(START_PROCESS_INSTANCE_BY_KEY)
+	R<BladeFlow> startProcessInstanceByKey(@RequestParam("processDefinitionKey") String processDefinitionKey, @RequestParam("businessKey") String businessKey, @RequestBody Map<String, Object> variables);
+
+	/**
+	 * 完成任务
+	 *
+	 * @param taskId            任务id
+	 * @param processInstanceId 流程实例id
+	 * @param comment           评论
+	 * @param variables         参数
+	 * @return R
+	 */
+	@PostMapping(COMPLETE_TASK)
+	R completeTask(@RequestParam("taskId") String taskId, @RequestParam("processInstanceId") String processInstanceId, @RequestParam("comment") String comment, @RequestBody Map<String, Object> variables);
+
+	/**
+	 * 获取流程变量
+	 *
+	 * @param taskId       任务id
+	 * @param variableName 变量名
+	 * @return R
+	 */
+	@GetMapping(TASK_VARIABLE)
+	R<Object> taskVariable(@RequestParam("taskId") String taskId, @RequestParam("variableName") String variableName);
+
+	/**
+	 * 获取流程变量集合
+	 *
+	 * @param taskId 任务id
+	 * @return R
+	 */
+	@GetMapping(TASK_VARIABLES)
+	R<Map<String, Object>> taskVariables(@RequestParam("taskId") String taskId);
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/feign/IFlowClientFallback.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/feign/IFlowClientFallback.java
new file mode 100644
index 0000000..a8149be
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/feign/IFlowClientFallback.java
@@ -0,0 +1,58 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.core.feign;
+
+import org.springblade.core.tool.api.R;
+import cn.gistack.flow.core.entity.BladeFlow;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * 流程远程调用失败处理类
+ *
+ * @author Chill
+ */
+@Component
+public class IFlowClientFallback implements IFlowClient {
+
+	@Override
+	public R<BladeFlow> startProcessInstanceById(String processDefinitionId, String businessKey, Map<String, Object> variables) {
+		return R.fail("远程调用失败");
+	}
+
+	@Override
+	public R<BladeFlow> startProcessInstanceByKey(String processDefinitionKey, String businessKey, Map<String, Object> variables) {
+		return R.fail("远程调用失败");
+	}
+
+	@Override
+	public R completeTask(String taskId, String processInstanceId, String comment, Map<String, Object> variables) {
+		return R.fail("远程调用失败");
+	}
+
+	@Override
+	public R<Object> taskVariable(String taskId, String variableName) {
+		return R.fail("远程调用失败");
+	}
+
+	@Override
+	public R<Map<String, Object>> taskVariables(String taskId) {
+		return R.fail("远程调用失败");
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/utils/FlowUtil.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/utils/FlowUtil.java
new file mode 100644
index 0000000..05b9eb4
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/utils/FlowUtil.java
@@ -0,0 +1,66 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.core.utils;
+
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
+import cn.gistack.flow.core.constant.ProcessConstant;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 工作流工具类
+ *
+ * @author Chill
+ */
+public class FlowUtil {
+
+	/**
+	 * 定义流程key对应的表名
+	 */
+	private final static Map<String, String> BUSINESS_TABLE = new HashMap<>();
+
+	static {
+		BUSINESS_TABLE.put(ProcessConstant.LEAVE_KEY, "blade_process_leave");
+	}
+
+	/**
+	 * 通过流程key获取业务表名
+	 *
+	 * @param key 流程key
+	 */
+	public static String getBusinessTable(String key) {
+		String businessTable = BUSINESS_TABLE.get(key);
+		if (Func.isEmpty(businessTable)) {
+			throw new RuntimeException("流程启动失败,未找到相关业务表");
+		}
+		return businessTable;
+	}
+
+	/**
+	 * 获取业务标识
+	 *
+	 * @param businessTable 业务表
+	 * @param businessId    业务表主键
+	 * @return businessKey
+	 */
+	public static String getBusinessKey(String businessTable, String businessId) {
+		return StringUtil.format("{}:{}", businessTable, businessId);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/utils/TaskUtil.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/utils/TaskUtil.java
new file mode 100644
index 0000000..d63744e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-flow-api/src/main/java/cn/gistack/flow/core/utils/TaskUtil.java
@@ -0,0 +1,71 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.core.utils;
+
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
+
+import static org.springblade.core.launch.constant.FlowConstant.TASK_USR_PREFIX;
+
+/**
+ * 工作流任务工具类
+ *
+ * @author Chill
+ */
+public class TaskUtil {
+
+	/**
+	 * 获取任务用户格式
+	 *
+	 * @return taskUser
+	 */
+	public static String getTaskUser() {
+		return StringUtil.format("{}{}", TASK_USR_PREFIX, AuthUtil.getUserId());
+	}
+
+	/**
+	 * 获取任务用户格式
+	 *
+	 * @param userId 用户id
+	 * @return taskUser
+	 */
+	public static String getTaskUser(String userId) {
+		return StringUtil.format("{}{}", TASK_USR_PREFIX, userId);
+	}
+
+
+	/**
+	 * 获取用户主键
+	 *
+	 * @param taskUser 任务用户
+	 * @return userId
+	 */
+	public static Long getUserId(String taskUser) {
+		return Func.toLong(StringUtil.removePrefix(taskUser, TASK_USR_PREFIX));
+	}
+
+	/**
+	 * 获取用户组格式
+	 *
+	 * @return candidateGroup
+	 */
+	public static String getCandidateGroup() {
+		return AuthUtil.getUserRole();
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/pom.xml b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/pom.xml
new file mode 100644
index 0000000..c4af972
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/pom.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-ops-api</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-resource-api</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-sms</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-tenant</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/Attach.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/Attach.java
new file mode 100644
index 0000000..bdea831
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/Attach.java
@@ -0,0 +1,71 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tenant.mp.TenantEntity;
+
+/**
+ * 附件表实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_attach")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "Attach对象", description = "附件表")
+public class Attach extends TenantEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 附件地址
+	 */
+	@ApiModelProperty(value = "附件地址")
+	private String link;
+	/**
+	 * 附件域名
+	 */
+	@ApiModelProperty(value = "附件域名")
+	private String domainUrl;
+	/**
+	 * 附件名称
+	 */
+	@ApiModelProperty(value = "附件名称")
+	private String name;
+	/**
+	 * 附件原名
+	 */
+	@ApiModelProperty(value = "附件原名")
+	private String originalName;
+	/**
+	 * 附件拓展名
+	 */
+	@ApiModelProperty(value = "附件拓展名")
+	private String extension;
+	/**
+	 * 附件大小
+	 */
+	@ApiModelProperty(value = "附件大小")
+	private Long attachSize;
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/Oss.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/Oss.java
new file mode 100644
index 0000000..2b908e2
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/Oss.java
@@ -0,0 +1,87 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tenant.mp.TenantEntity;
+
+/**
+ * 实体类
+ *
+ * @author BladeX
+ */
+@Data
+@TableName("blade_oss")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "Oss对象", description = "Oss对象")
+public class Oss extends TenantEntity {
+
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 所属分类
+	 */
+	@ApiModelProperty(value = "所属分类")
+	private Integer category;
+
+	/**
+	 * 资源编号
+	 */
+	@ApiModelProperty(value = "资源编号")
+	private String ossCode;
+
+	/**
+	 * oss地址
+	 */
+	@ApiModelProperty(value = "资源地址")
+	private String endpoint;
+	/**
+	 * accessKey
+	 */
+	@ApiModelProperty(value = "accessKey")
+	private String accessKey;
+	/**
+	 * secretKey
+	 */
+	@ApiModelProperty(value = "secretKey")
+	private String secretKey;
+	/**
+	 * 空间名
+	 */
+	@ApiModelProperty(value = "空间名")
+	private String bucketName;
+	/**
+	 * 应用ID TencentCOS需要
+	 */
+	@ApiModelProperty(value = "应用ID")
+	private String appId;
+	/**
+	 * 地域简称 TencentCOS需要
+	 */
+	@ApiModelProperty(value = "地域简称")
+	private String region;
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remark;
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/Sms.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/Sms.java
new file mode 100644
index 0000000..cfa90f0
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/entity/Sms.java
@@ -0,0 +1,82 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tenant.mp.TenantEntity;
+
+/**
+ * 短信配置表实体类
+ *
+ * @author BladeX
+ */
+@Data
+@TableName("blade_sms")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "Sms对象", description = "短信配置表")
+public class Sms extends TenantEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 资源编号
+	 */
+	@ApiModelProperty(value = "资源编号")
+	private String smsCode;
+
+	/**
+	 * 模板ID
+	 */
+	@ApiModelProperty(value = "模板ID")
+	private String templateId;
+	/**
+	 * 分类
+	 */
+	@ApiModelProperty(value = "分类")
+	private Integer category;
+	/**
+	 * accessKey
+	 */
+	@ApiModelProperty(value = "accessKey")
+	private String accessKey;
+	/**
+	 * secretKey
+	 */
+	@ApiModelProperty(value = "secretKey")
+	private String secretKey;
+	/**
+	 * regionId
+	 */
+	@ApiModelProperty(value = "regionId")
+	private String regionId;
+	/**
+	 * 短信签名
+	 */
+	@ApiModelProperty(value = "短信签名")
+	private String signName;
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remark;
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/enums/SmsCodeEnum.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/enums/SmsCodeEnum.java
new file mode 100644
index 0000000..44f4749
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/enums/SmsCodeEnum.java
@@ -0,0 +1,62 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import org.springblade.core.tool.utils.StringPool;
+
+/**
+ * Sms资源编码枚举类
+ *
+ * @author Chill
+ * @apiNote 该枚举类对应短信配置模块的资源编码,可根据业务需求自行拓展
+ */
+@Getter
+@AllArgsConstructor
+public enum SmsCodeEnum {
+
+	/**
+	 * 默认编号
+	 */
+	DEFAULT(StringPool.EMPTY, 1),
+
+	/**
+	 * 验证码编号
+	 */
+	VALIDATE("validate", 2),
+
+	/**
+	 * 通知公告编号
+	 */
+	NOTICE("notice", 3),
+
+	/**
+	 * 下单通知编号
+	 */
+	ORDER("order", 4),
+
+	/**
+	 * 会议通知编号
+	 */
+	MEETING("meeting", 5),
+	;
+
+	final String name;
+	final int category;
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/ISmsClient.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/ISmsClient.java
new file mode 100644
index 0000000..c055b6a
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/ISmsClient.java
@@ -0,0 +1,74 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.feign;
+
+import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.core.sms.model.SmsResponse;
+import org.springblade.core.tool.api.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * ISmsClient
+ *
+ * @author Chill
+ */
+@FeignClient(
+	value = AppConstant.APPLICATION_RESOURCE_NAME,
+	fallback = ISmsClientFallback.class
+)
+public interface ISmsClient {
+	String API_PREFIX = "/client";
+	String SEND_MESSAGE = API_PREFIX + "/send-message";
+	String SEND_VALIDATE = API_PREFIX + "/send-validate";
+	String VALIDATE_MESSAGE = API_PREFIX + "/validate-message";
+
+	/**
+	 * 通用短信发送
+	 *
+	 * @param code   资源编号
+	 * @param params 模板参数
+	 * @param phones 手机号集合
+	 * @return R
+	 */
+	@PostMapping(SEND_MESSAGE)
+	R<SmsResponse> sendMessage(@RequestParam("code") String code, @RequestParam("params") String params, @RequestParam("phones") String phones);
+
+	/**
+	 * 短信验证码发送
+	 *
+	 * @param code  资源编号
+	 * @param phone 手机号
+	 * @return R
+	 */
+	@PostMapping(SEND_VALIDATE)
+	R sendValidate(@RequestParam("code") String code, @RequestParam("phone") String phone);
+
+	/**
+	 * 校验短信
+	 *
+	 * @param code  资源编号
+	 * @param id    校验id
+	 * @param value 校验值
+	 * @param phone 手机号
+	 * @return R
+	 */
+	@PostMapping(VALIDATE_MESSAGE)
+	R validateMessage(@RequestParam("code") String code, @RequestParam("id") String id, @RequestParam("value") String value, @RequestParam("phone") String phone);
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/ISmsClientFallback.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/ISmsClientFallback.java
new file mode 100644
index 0000000..27dd0b1
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/feign/ISmsClientFallback.java
@@ -0,0 +1,44 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.feign;
+
+import org.springblade.core.tool.api.R;
+import org.springframework.stereotype.Component;
+
+/**
+ * 流程远程调用失败处理类
+ *
+ * @author Chill
+ */
+@Component
+public class ISmsClientFallback implements ISmsClient {
+	@Override
+	public R sendMessage(String code, String params, String phones) {
+		return R.fail("远程调用失败");
+	}
+
+	@Override
+	public R sendValidate(String code, String phone) {
+		return R.fail("远程调用失败");
+	}
+
+	@Override
+	public R validateMessage(String code, String id, String value, String phone) {
+		return R.fail("远程调用失败");
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/utils/SmsUtil.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/utils/SmsUtil.java
new file mode 100644
index 0000000..dddc088
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/utils/SmsUtil.java
@@ -0,0 +1,113 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.utils;
+
+import cn.gistack.resource.feign.ISmsClient;
+import org.springblade.core.sms.model.SmsCode;
+import org.springblade.core.sms.model.SmsResponse;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.jackson.JsonUtil;
+import org.springblade.core.tool.utils.RandomType;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.core.tool.utils.StringUtil;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 短信服务工具类
+ *
+ * @author Chill
+ */
+public class SmsUtil {
+
+	public static final String PARAM_KEY = "code";
+	public static final String SEND_SUCCESS = "短信发送成功";
+	public static final String SEND_FAIL = "短信发送失败";
+	public static final String VALIDATE_SUCCESS = "短信校验成功";
+	public static final String VALIDATE_FAIL = "短信校验失败";
+
+	private static ISmsClient smsClient;
+
+	/**
+	 * 获取短信服务构建类
+	 *
+	 * @return SmsBuilder
+	 */
+	public static ISmsClient getSmsClient() {
+		if (smsClient == null) {
+			smsClient = SpringUtil.getBean(ISmsClient.class);
+		}
+		return smsClient;
+	}
+
+	/**
+	 * 获取短信验证码参数
+	 *
+	 * @return 验证码参数
+	 */
+	public static Map<String, String> getValidateParams() {
+		Map<String, String> params = new HashMap<>(1);
+		params.put(PARAM_KEY, StringUtil.random(6, RandomType.INT));
+		return params;
+	}
+
+	/**
+	 * 发送短信
+	 *
+	 * @param code   资源编号
+	 * @param params 模板参数
+	 * @param phones 手机号集合
+	 * @return 发送结果
+	 */
+	public static SmsResponse sendMessage(String code, Map<String, String> params, String phones) {
+		R<SmsResponse> result = getSmsClient().sendMessage(code, JsonUtil.toJson(params), phones);
+		return result.getData();
+	}
+
+	/**
+	 * 发送验证码
+	 *
+	 * @param code  资源编号
+	 * @param phone 手机号
+	 * @return 发送结果
+	 */
+	public static SmsCode sendValidate(String code, String phone) {
+		SmsCode smsCode = new SmsCode();
+		R result = getSmsClient().sendValidate(code, phone);
+		if (result.isSuccess()) {
+			smsCode = JsonUtil.parse(JsonUtil.toJson(result.getData()), SmsCode.class);
+		} else {
+			smsCode.setSuccess(Boolean.FALSE);
+		}
+		return smsCode;
+	}
+
+	/**
+	 * 校验短信
+	 *
+	 * @param code  资源编号
+	 * @param id    校验id
+	 * @param value 校验值
+	 * @return 发送结果
+	 */
+	public static boolean validateMessage(String code, String id, String value, String phone) {
+		R result = getSmsClient().validateMessage(code, id, value, phone);
+		return result.isSuccess();
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/AttachVO.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/AttachVO.java
new file mode 100644
index 0000000..155c3a3
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/AttachVO.java
@@ -0,0 +1,35 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.resource.entity.Attach;
+
+/**
+ * 附件表视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "AttachVO对象", description = "附件表")
+public class AttachVO extends Attach {
+	private static final long serialVersionUID = 1L;
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/OssVO.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/OssVO.java
new file mode 100644
index 0000000..d9897c5
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/OssVO.java
@@ -0,0 +1,29 @@
+package cn.gistack.resource.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.resource.entity.Oss;
+
+/**
+ * OssVO
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "OssVO对象", description = "对象存储表")
+public class OssVO extends Oss {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 分类名
+	 */
+	private String categoryName;
+
+	/**
+	 * 是否启用
+	 */
+	private String statusName;
+
+}
diff --git a/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/SmsVO.java b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/SmsVO.java
new file mode 100644
index 0000000..911ceeb
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops-api/skjcmanager-resource-api/src/main/java/cn/gistack/resource/vo/SmsVO.java
@@ -0,0 +1,45 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.resource.entity.Sms;
+
+/**
+ * 短信配置表视图实体类
+ *
+ * @author BladeX
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "SmsVO对象", description = "短信配置表")
+public class SmsVO extends Sms {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 分类名
+	 */
+	private String categoryName;
+
+	/**
+	 * 是否启用
+	 */
+	private String statusName;
+
+}
diff --git a/skjcmanager/skjcmanager-ops/pom.xml b/skjcmanager/skjcmanager-ops/pom.xml
new file mode 100644
index 0000000..540d759
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/pom.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-ops</artifactId>
+    <name>${project.artifactId}</name>
+    <version>3.0.1.RELEASE</version>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>skjcmanager-admin</module>
+        <module>skjcmanager-develop</module>
+        <module>skjcmanager-flow</module>
+        <module>skjcmanager-log</module>
+        <module>skjcmanager-report</module>
+        <module>skjcmanager-resource</module>
+        <module>skjcmanager-swagger</module>
+        <module>skjcmanager-xxljob</module>
+        <module>skjcmanager-xxljob-admin</module>
+    </modules>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-metrics</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-admin/Dockerfile b/skjcmanager/skjcmanager-ops/skjcmanager-admin/Dockerfile
new file mode 100644
index 0000000..c6d8287
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-admin/Dockerfile
@@ -0,0 +1,15 @@
+FROM bladex/alpine-java:openjdk8-openj9_cn_slim
+
+MAINTAINER bladejava@qq.com
+
+RUN mkdir -p /blade/admin
+
+WORKDIR /blade/admin
+
+EXPOSE 7002
+
+ADD ./target/blade-admin.jar ./app.jar
+
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
+
+CMD ["--spring.profiles.active=test"]
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-admin/README.md b/skjcmanager/skjcmanager-ops/skjcmanager-admin/README.md
new file mode 100644
index 0000000..a1bb270
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-admin/README.md
@@ -0,0 +1,21 @@
+## SDK下载
+
+#### Java SDK 下载
+    下载SDK: https://open-doc.dingtalk.com/microapp/faquestions/vzbp02
+    
+## 配置项
+
+#### bootstrap.yml
+
+```
+# 监控的相关配置
+monitor:
+  ding-talk:
+    enabled: false
+    # 用于自定义域名,默认会自动填充为 http://ip:port
+    link: http://localhost:${server.port}
+    # 钉钉配置的令牌
+    access-token: xxx
+    # 如果采用密钥形式,需要添加,否则需要去掉该参数
+    secret: xxx
+```
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-admin/pom.xml b/skjcmanager/skjcmanager-ops/skjcmanager-admin/pom.xml
new file mode 100644
index 0000000..b3ba324
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-admin/pom.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-ops</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-admin</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <!--Blade-->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-common</artifactId>
+            <version>${bladex.project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springblade</groupId>
+                    <artifactId>blade-core-launch</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-launch</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-web</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-undertow</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-prometheus</artifactId>
+        </dependency>
+        <!-- Nacos -->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.alibaba.nacos</groupId>
+                    <artifactId>nacos-client</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.alibaba.nacos</groupId>
+                    <artifactId>nacos-client</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba.nacos</groupId>
+            <artifactId>nacos-client</artifactId>
+        </dependency>
+        <!--Admin-Server-->
+        <dependency>
+            <groupId>de.codecentric</groupId>
+            <artifactId>spring-boot-admin-starter-server</artifactId>
+        </dependency>
+        <!--Security-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+        <!--<dependency>
+            <groupId>org.springframework.security.oauth.boot</groupId>
+            <artifactId>spring-security-oauth2-autoconfigure</artifactId>
+        </dependency>-->
+        <!--Taobao-Sdk-->
+        <dependency>
+            <groupId>com.taobao</groupId>
+            <artifactId>taobao-sdk</artifactId>
+            <version>20201116</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>dockerfile-maven-plugin</artifactId>
+                <configuration>
+                    <username>${docker.username}</username>
+                    <password>${docker.password}</password>
+                    <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+                    <tag>${project.version}</tag>
+                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+                    <buildArgs>
+                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+                    </buildArgs>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/AdminApplication.java b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/AdminApplication.java
new file mode 100644
index 0000000..3074ad4
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/AdminApplication.java
@@ -0,0 +1,39 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.admin;
+
+import de.codecentric.boot.admin.server.config.EnableAdminServer;
+import org.springblade.core.launch.BladeApplication;
+import org.springblade.core.launch.constant.AppConstant;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+/**
+ * admin启动器
+ *
+ * @author Chill
+ */
+@EnableAdminServer
+@EnableDiscoveryClient
+@SpringBootApplication
+public class AdminApplication {
+
+	public static void main(String[] args) {
+		BladeApplication.run(AppConstant.APPLICATION_ADMIN_NAME, AdminApplication.class, args);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/config/AdminConfiguration.java b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/config/AdminConfiguration.java
new file mode 100644
index 0000000..6bd3693
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/config/AdminConfiguration.java
@@ -0,0 +1,32 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.admin.config;
+
+import cn.gistack.admin.dingtalk.MonitorProperties;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 启动器
+ *
+ * @author Chill
+ */
+@Configuration(proxyBeanMethods = false)
+@EnableConfigurationProperties(MonitorProperties.class)
+public class AdminConfiguration {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/config/DingTalkConfiguration.java b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/config/DingTalkConfiguration.java
new file mode 100644
index 0000000..864b96d
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/config/DingTalkConfiguration.java
@@ -0,0 +1,52 @@
+/*
+ *      Copyright (c) 2018-2028, DreamLu All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: DreamLu 卢春梦 (596392912@qq.com)
+ */
+package cn.gistack.admin.config;
+
+import cn.gistack.admin.dingtalk.DingTalkNotifier;
+import cn.gistack.admin.dingtalk.DingTalkService;
+import cn.gistack.admin.dingtalk.MonitorProperties;
+import de.codecentric.boot.admin.server.domain.entities.InstanceRepository;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.Environment;
+import org.springframework.web.reactive.function.client.WebClient;
+
+/**
+ * 钉钉自动配置
+ *
+ * @author L.cm
+ */
+@Configuration(proxyBeanMethods = false)
+@ConditionalOnProperty(value = "monitor.ding-talk.enabled", havingValue = "true")
+public class DingTalkConfiguration {
+
+	@Bean
+	public DingTalkService dingTalkService(MonitorProperties properties,
+                                           WebClient.Builder builder) {
+		return new DingTalkService(properties, builder.build());
+	}
+
+	@Bean
+	public DingTalkNotifier dingTalkNotifier(MonitorProperties properties,
+                                             DingTalkService dingTalkService,
+                                             InstanceRepository repository,
+                                             Environment environment) {
+		return new DingTalkNotifier(dingTalkService, properties, environment, repository);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/config/SecurityConfiguration.java b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/config/SecurityConfiguration.java
new file mode 100644
index 0000000..10db164
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/config/SecurityConfiguration.java
@@ -0,0 +1,73 @@
+/*
+ *      Copyright (c) 2018-2028, DreamLu All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: DreamLu 卢春梦 (596392912@qq.com)
+ */
+package cn.gistack.admin.config;
+
+import cn.gistack.admin.security.InternalAuthorizationManager;
+import de.codecentric.boot.admin.server.config.AdminServerProperties;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity;
+import org.springframework.security.config.web.server.ServerHttpSecurity;
+import org.springframework.security.web.server.SecurityWebFilterChain;
+import org.springframework.security.web.server.authentication.RedirectServerAuthenticationSuccessHandler;
+
+import java.net.URI;
+
+/**
+ * 监控安全配置
+ *
+ * @author L.cm
+ */
+@EnableWebFluxSecurity
+@Configuration(proxyBeanMethods = false)
+@EnableConfigurationProperties(AdminServerProperties.class)
+public class SecurityConfiguration {
+	private final String contextPath;
+
+	public SecurityConfiguration(AdminServerProperties adminServerProperties) {
+		this.contextPath = adminServerProperties.getContextPath();
+	}
+
+	@Bean
+	public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) {
+		// @formatter:off
+		RedirectServerAuthenticationSuccessHandler successHandler = new RedirectServerAuthenticationSuccessHandler();
+		successHandler.setLocation(URI.create(contextPath + "/"));
+		return http.headers().frameOptions().disable().and()
+			.authorizeExchange()
+			// 放开静态文件和登陆
+			.pathMatchers(
+				contextPath + "/assets/**"
+				, contextPath + "/login"
+				, contextPath + "/v1/agent/**"
+				, contextPath + "/v1/catalog/**"
+				, contextPath + "/v1/health/**"
+			).permitAll()
+			// 内网可访问 actuator
+			.pathMatchers(contextPath + "/actuator", contextPath + "/actuator/**").access(new InternalAuthorizationManager())
+			.anyExchange().authenticated().and()
+			.formLogin().loginPage(contextPath + "/login")
+			.authenticationSuccessHandler(successHandler).and()
+			.logout().logoutUrl(contextPath + "/logout").and()
+			.httpBasic().disable()
+			.csrf().disable()
+			.build();
+		// @formatter:on
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/dingtalk/DingTalkNotifier.java b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/dingtalk/DingTalkNotifier.java
new file mode 100644
index 0000000..b81abd2
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/dingtalk/DingTalkNotifier.java
@@ -0,0 +1,105 @@
+/*
+ *      Copyright (c) 2018-2028, DreamLu All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: DreamLu 卢春梦 (596392912@qq.com)
+ */
+package cn.gistack.admin.dingtalk;
+
+import de.codecentric.boot.admin.server.domain.entities.Instance;
+import de.codecentric.boot.admin.server.domain.entities.InstanceRepository;
+import de.codecentric.boot.admin.server.domain.events.InstanceEvent;
+import de.codecentric.boot.admin.server.domain.events.InstanceStatusChangedEvent;
+import de.codecentric.boot.admin.server.domain.values.Registration;
+import de.codecentric.boot.admin.server.domain.values.StatusInfo;
+import de.codecentric.boot.admin.server.notify.AbstractEventNotifier;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.core.env.Environment;
+import org.springframework.lang.NonNull;
+import reactor.core.publisher.Mono;
+
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * 服务上下线告警
+ *
+ * <p>
+ * 注意:AbstractStatusChangeNotifier 这个事件有毛病
+ * </p>
+ *
+ * @author L.cm
+ */
+@Slf4j
+public class DingTalkNotifier extends AbstractEventNotifier {
+	private final DingTalkService dingTalkService;
+	private final MonitorProperties properties;
+	private final Environment environment;
+	public static final DateTimeFormatter DATETIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+	public DingTalkNotifier(DingTalkService dingTalkService, MonitorProperties properties,
+							Environment environment, InstanceRepository repository) {
+		super(repository);
+		this.dingTalkService = dingTalkService;
+		this.properties = properties;
+		this.environment = environment;
+	}
+
+	@NonNull
+	@Override
+	protected Mono<Void> doNotify(@NonNull InstanceEvent event, @NonNull Instance instance) {
+		if (event instanceof InstanceStatusChangedEvent) {
+			// 构造请求结构
+			return createAndPushMsg(event, instance);
+		}
+		return Mono.empty();
+	}
+
+	private Mono<Void> createAndPushMsg(InstanceEvent event, Instance instance) {
+		Registration registration = instance.getRegistration();
+		// 服务名
+		String appName = registration.getName();
+		// 服务地址
+		String serviceUrl = registration.getServiceUrl();
+		StatusInfo status = instance.getStatusInfo();
+		// 时间
+		LocalDateTime localDateTime = LocalDateTime.ofInstant(event.getTimestamp(), ZoneId.systemDefault());
+		MonitorProperties.DingTalk dingTalk = properties.getDingTalk();
+		String title = dingTalk.getService().getTitle();
+
+		String message = "## **" + title + "**\n" +
+			"#### **【服务】** " + appName + "\n" +
+			"#### **【环境】** " + environment.getActiveProfiles()[0] + "\n" +
+			"#### **【地址】** " + serviceUrl + "\n" +
+			"#### **【状态】** " + statusCn(status) + "\n" +
+			"#### **【时间】** " + DATETIME_FORMATTER.format(localDateTime) + "\n" +
+			"#### **【详情】** " + dingTalk.getLink() + "\n";
+
+		return dingTalkService.pushMsg(title, message);
+	}
+
+	private String statusCn(StatusInfo status) {
+		if (status.isUp()) {
+			return "应用上线(IS UP)";
+		} else if (status.isDown()) {
+			return "应用宕机(IS DOWN)";
+		} else if (status.isOffline()) {
+			return "应用掉线(IS OFFLINE)";
+		} else if (status.isUnknown()) {
+			return "未知状态(UNKNOWN)";
+		} else {
+			return "异常状态";
+		}
+	}
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/dingtalk/DingTalkService.java b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/dingtalk/DingTalkService.java
new file mode 100644
index 0000000..d188c8e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/dingtalk/DingTalkService.java
@@ -0,0 +1,110 @@
+/*
+ *      Copyright (c) 2018-2028, DreamLu All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: DreamLu 卢春梦 (596392912@qq.com)
+ */
+package cn.gistack.admin.dingtalk;
+
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.MediaType;
+import org.springframework.util.Base64Utils;
+import org.springframework.util.StringUtils;
+import org.springframework.web.reactive.function.BodyInserters;
+import org.springframework.web.reactive.function.client.WebClient;
+import org.springframework.web.util.UriUtils;
+import reactor.core.publisher.Mono;
+
+import javax.crypto.Mac;
+import javax.crypto.SecretKey;
+import javax.crypto.spec.SecretKeySpec;
+import java.net.URI;
+import java.nio.charset.StandardCharsets;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 钉钉 服务
+ *
+ * @author L.cm
+ */
+@Slf4j
+@RequiredArgsConstructor
+public class DingTalkService {
+	private static final String DING_TALK_ROBOT_URL = "https://oapi.dingtalk.com/robot/send?access_token=";
+	private final MonitorProperties properties;
+	private final WebClient webClient;
+
+	/**
+	 * 发送消息
+	 *
+	 * @param title title
+	 * @param text  消息
+	 */
+	public Mono<Void> pushMsg(String title, String text) {
+		log.info("钉钉消息:[创建消息体]title:{}, text:{}", title, text);
+
+		HashMap<String, String> params = new HashMap<>(2);
+		params.put("title", title);
+		params.put("text", text);
+
+		Map<String, Object> body = new HashMap<>(2);
+		body.put("msgtype", "markdown");
+		body.put("markdown", params);
+		log.info("创建消息体 json:{}", body);
+
+		MonitorProperties.DingTalk dingTalk = properties.getDingTalk();
+		String accessToken = dingTalk.getAccessToken();
+		if (!StringUtils.hasText(accessToken)) {
+			log.error("DingTalk alert config accessToken ${monitor.ding-talk.access-token} is blank.");
+			return Mono.empty();
+		}
+
+		String urlString = DING_TALK_ROBOT_URL + dingTalk.getAccessToken();
+		// 有私钥要签名
+		String secret = dingTalk.getSecret();
+		if (StringUtils.hasText(secret)) {
+			long timestamp = System.currentTimeMillis();
+			urlString += String.format("&timestamp=%s&sign=%s", timestamp, getSign(secret, timestamp));
+		}
+		return webClient.post()
+			.uri(URI.create(urlString))
+			.contentType(MediaType.APPLICATION_JSON)
+			.body(BodyInserters.fromValue(body))
+			.retrieve()
+			.bodyToMono(String.class)
+			.doOnSuccess((result) -> log.info("钉钉消息:[消息返回]result:{}", result))
+			.then();
+	}
+
+	private static String getSign(String secret, long timestamp) {
+		String stringToSign = timestamp + "\n" + secret;
+		byte[] hmacSha256Bytes = digestHmac(stringToSign, secret);
+		return UriUtils.encode(Base64Utils.encodeToString(hmacSha256Bytes), StandardCharsets.UTF_8);
+	}
+
+	public static byte[] digestHmac(String data, String key) {
+		SecretKey secretKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
+		try {
+			Mac mac = Mac.getInstance(secretKey.getAlgorithm());
+			mac.init(secretKey);
+			return mac.doFinal(data.getBytes(StandardCharsets.UTF_8));
+		} catch (NoSuchAlgorithmException | InvalidKeyException e) {
+			throw new RuntimeException(e.getMessage());
+		}
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/dingtalk/MonitorProperties.java b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/dingtalk/MonitorProperties.java
new file mode 100644
index 0000000..2df3bd3
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/dingtalk/MonitorProperties.java
@@ -0,0 +1,67 @@
+/*
+ *      Copyright (c) 2018-2028, DreamLu All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: DreamLu 卢春梦 (596392912@qq.com)
+ */
+package cn.gistack.admin.dingtalk;
+
+
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+
+/**
+ * 监控配置
+ *
+ * @author L.cm
+ */
+@Getter
+@Setter
+@RefreshScope
+@ConfigurationProperties("monitor")
+public class MonitorProperties {
+	private DingTalk dingTalk = new DingTalk();
+
+	@Getter
+	@Setter
+	public static class DingTalk {
+		/**
+		 * 启用钉钉告警,默认为 true
+		 */
+		private boolean enabled = false;
+		/**
+		 * 钉钉机器人 token
+		 */
+		private String accessToken;
+		/**
+		 * 签名:如果有 secret 则进行签名,兼容老接口
+		 */
+		private String secret;
+		/**
+		 * 地址配置
+		 */
+		private String link;
+		private Service service = new Service();
+	}
+
+	@Getter
+	@Setter
+	public static class Service {
+		/**
+		 * 服务 状态 title
+		 */
+		private String title = "服务状态通知";
+	}
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/security/InternalAuthorizationManager.java b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/security/InternalAuthorizationManager.java
new file mode 100644
index 0000000..f107963
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/java/cn/gistack/admin/security/InternalAuthorizationManager.java
@@ -0,0 +1,75 @@
+/*
+ *      Copyright (c) 2018-2028, DreamLu All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: DreamLu 卢春梦 (596392912@qq.com)
+ */
+package cn.gistack.admin.security;
+
+import org.springblade.core.launch.utils.INetUtil;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.server.reactive.ServerHttpRequest;
+import org.springframework.security.authorization.AuthorizationDecision;
+import org.springframework.security.authorization.ReactiveAuthorizationManager;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.web.server.authorization.AuthorizationContext;
+import org.springframework.web.server.ServerWebExchange;
+import reactor.core.publisher.Mono;
+
+import java.net.InetSocketAddress;
+import java.util.Optional;
+
+/**
+ * 内网认证管理,内网放行,外网认证
+ *
+ * @author L.cm
+ */
+public class InternalAuthorizationManager implements ReactiveAuthorizationManager<AuthorizationContext> {
+	private static final String HEADER_X_FORWARDED_FOR = "X-Forwarded-For";
+
+	@Override
+	public Mono<AuthorizationDecision> check(Mono<Authentication> authentication, AuthorizationContext context) {
+		return Mono.just(getAuthorizationDecision(context));
+	}
+
+	private static AuthorizationDecision getAuthorizationDecision(AuthorizationContext context) {
+		return new AuthorizationDecision(isInternalNet(context));
+	}
+
+	/**
+	 * 判断是否内网 ip 请求
+	 *
+	 * @param context AuthorizationContext
+	 * @return 是否内网 ip
+	 */
+	private static boolean isInternalNet(AuthorizationContext context) {
+		ServerHttpRequest request = Optional.ofNullable(context)
+			.map(AuthorizationContext::getExchange)
+			.map(ServerWebExchange::getRequest)
+			.orElse(null);
+		if (request == null) {
+			return false;
+		}
+		HttpHeaders headers = request.getHeaders();
+		// 如果没有 X-Forwarded-For 代表为 admin 拉取
+		if (!headers.containsKey(HEADER_X_FORWARDED_FOR)) {
+			return true;
+		}
+		return Optional.of(request)
+			.map(ServerHttpRequest::getRemoteAddress)
+			.map(InetSocketAddress::getAddress)
+			.map(INetUtil::isInternalIp)
+			.orElse(false);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/resources/bootstrap.yml b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..8945a35
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-admin/src/main/resources/bootstrap.yml
@@ -0,0 +1,48 @@
+server:
+  port: 7002
+  undertow:
+    threads:
+      # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
+      io: 16
+      # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
+      worker: 400
+    # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
+    buffer-size: 1024
+    # 是否分配的直接内存
+    direct-buffers: true
+
+spring:
+  boot:
+    admin:
+      # 忽略服务名
+      discovery:
+        ignored-services:
+          - consul
+          - serverAddr
+      # 自定义UI界面
+      ui:
+        title: BladeX Monitor
+        external-views:
+          - label: 架构官网
+            url: https://bladex.vip/
+            order: 1
+            iframe: true
+      # 用于内网安全,判断 admin proxy
+      instance-proxy:
+        ignored-headers: "X-Forwarded-For"
+  # 自定义登录用户名密码
+  security:
+    user:
+      name: blade
+      password: blade
+
+# 监控的相关配置
+monitor:
+  ding-talk:
+    enabled: false
+    # 用于自定义域名,默认会自动填充为 http://ip:port
+    link: http://localhost:${server.port}
+    # 钉钉配置的令牌
+    access-token: xxx
+    # 如果采用密钥形式,需要添加,否则需要去掉该参数
+    secret:
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/pom.xml b/skjcmanager/skjcmanager-ops/skjcmanager-develop/pom.xml
new file mode 100644
index 0000000..b33cdf4
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/pom.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <parent>
+        <groupId>org.springblade</groupId>
+        <artifactId>skjcmanager-ops</artifactId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-develop</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <!--Blade-->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-boot</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-develop</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-swagger</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-common</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-dict-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/DevelopApplication.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/DevelopApplication.java
new file mode 100644
index 0000000..5d5f15f
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/DevelopApplication.java
@@ -0,0 +1,36 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop;
+
+import org.springblade.core.cloud.client.BladeCloudApplication;
+import org.springblade.core.launch.BladeApplication;
+import org.springblade.core.launch.constant.AppConstant;
+
+/**
+ * Develop启动器
+ *
+ * @author Chill
+ */
+@BladeCloudApplication
+public class DevelopApplication {
+
+	public static void main(String[] args) {
+		BladeApplication.run(AppConstant.APPLICATION_DEVELOP_NAME, DevelopApplication.class, args);
+	}
+
+}
+
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/CodeController.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/CodeController.java
new file mode 100644
index 0000000..81958be
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/CodeController.java
@@ -0,0 +1,190 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.controller;
+
+import cn.gistack.develop.entity.Code;
+import cn.gistack.develop.entity.Datasource;
+import cn.gistack.develop.entity.Model;
+import cn.gistack.develop.entity.ModelPrototype;
+import cn.gistack.develop.service.ICodeService;
+import cn.gistack.develop.service.IDatasourceService;
+import cn.gistack.develop.service.IModelPrototypeService;
+import cn.gistack.develop.service.IModelService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.jackson.JsonUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.develop.support.BladeCodeGenerator;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.validation.Valid;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/code")
+@Api(value = "代码生成", tags = "代码生成")
+@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+public class CodeController extends BladeController {
+
+	private final ICodeService codeService;
+	private final IDatasourceService datasourceService;
+	private final IModelService modelService;
+	private final IModelPrototypeService modelPrototypeService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入code")
+	public R<Code> detail(Code code) {
+		Code detail = codeService.getOne(Condition.getQueryWrapper(code));
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页
+	 */
+	@GetMapping("/list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "codeName", value = "模块名", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "tableName", value = "表名", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "modelName", value = "实体名", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入code")
+	public R<IPage<Code>> list(@ApiIgnore @RequestParam Map<String, Object> code, Query query) {
+		IPage<Code> pages = codeService.page(Condition.getPage(query), Condition.getQueryWrapper(code, Code.class));
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "新增或修改", notes = "传入code")
+	public R submit(@Valid @RequestBody Code code) {
+		return R.status(codeService.submit(code));
+	}
+
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(codeService.removeByIds(Func.toLongList(ids)));
+	}
+
+	/**
+	 * 复制
+	 */
+	@PostMapping("/copy")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "复制", notes = "传入id")
+	public R copy(@ApiParam(value = "主键", required = true) @RequestParam Long id) {
+		Code code = codeService.getById(id);
+		code.setId(null);
+		code.setCodeName(code.getCodeName() + "-copy");
+		return R.status(codeService.save(code));
+	}
+
+	/**
+	 * 代码生成
+	 */
+	@PostMapping("/gen-code")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "代码生成", notes = "传入ids")
+	public R genCode(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		Collection<Code> codes = codeService.listByIds(Func.toLongList(ids));
+		codes.forEach(code -> {
+			BladeCodeGenerator generator = new BladeCodeGenerator();
+			// 设置基础模型
+			Model model = modelService.getById(code.getModelId());
+			generator.setModelCode(model.getModelCode());
+			generator.setModelClass(model.getModelClass());
+			// 设置模型集合
+			List<ModelPrototype> prototypes = modelPrototypeService.prototypeList(model.getId());
+			generator.setModel(JsonUtil.readMap(JsonUtil.toJson(model)));
+			generator.setPrototypes(JsonUtil.readListMap(JsonUtil.toJson(prototypes)));
+			if (StringUtil.isNotBlank(code.getSubModelId())) {
+				Model subModel = modelService.getById(Func.toLong(code.getSubModelId()));
+				List<ModelPrototype> subPrototypes = modelPrototypeService.prototypeList(subModel.getId());
+				generator.setSubModel(JsonUtil.readMap(JsonUtil.toJson(subModel)));
+				generator.setSubPrototypes(JsonUtil.readListMap(JsonUtil.toJson(subPrototypes)));
+			}
+			// 设置数据源
+			Datasource datasource = datasourceService.getById(model.getDatasourceId());
+			generator.setDriverName(datasource.getDriverClass());
+			generator.setUrl(datasource.getUrl());
+			generator.setUsername(datasource.getUsername());
+			generator.setPassword(datasource.getPassword());
+			// 设置基础配置
+			generator.setCodeStyle(code.getCodeStyle());
+			generator.setCodeName(code.getCodeName());
+			generator.setServiceName(code.getServiceName());
+			generator.setPackageName(code.getPackageName());
+			generator.setPackageDir(code.getApiPath());
+			generator.setPackageWebDir(code.getWebPath());
+			generator.setTablePrefix(Func.toStrArray(code.getTablePrefix()));
+			generator.setIncludeTables(Func.toStrArray(code.getTableName()));
+			// 设置模版信息
+			generator.setTemplateType(code.getTemplateType());
+			generator.setAuthor(code.getAuthor());
+			generator.setSubModelId(code.getSubModelId());
+			generator.setSubFkId(code.getSubFkId());
+			generator.setTreeId(code.getTreeId());
+			generator.setTreePid(code.getTreePid());
+			generator.setTreeName(code.getTreeName());
+			// 设置是否继承基础业务字段
+			generator.setHasSuperEntity(code.getBaseMode() == 2);
+			// 设置是否开启包装器模式
+			generator.setHasWrapper(code.getWrapMode() == 2);
+			// 设置是否开启远程调用模式
+			generator.setHasFeign(code.getFeignMode() == 2);
+			// 设置控制器服务名前缀
+			generator.setHasServiceName(Boolean.TRUE);
+			// 启动代码生成
+			generator.run();
+		});
+		return R.success("代码生成成功");
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/DatasourceController.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/DatasourceController.java
new file mode 100644
index 0000000..a7632ca
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/DatasourceController.java
@@ -0,0 +1,128 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.controller;
+
+import cn.gistack.develop.entity.Datasource;
+import cn.gistack.develop.service.IDatasourceService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * 数据源配置表 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/datasource")
+@Api(value = "数据源配置表", tags = "数据源配置表接口")
+public class DatasourceController extends BladeController {
+
+	private final IDatasourceService datasourceService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入datasource")
+	public R<Datasource> detail(Datasource datasource) {
+		Datasource detail = datasourceService.getOne(Condition.getQueryWrapper(datasource));
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页 数据源配置表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入datasource")
+	public R<IPage<Datasource>> list(Datasource datasource, Query query) {
+		IPage<Datasource> pages = datasourceService.page(Condition.getPage(query), Condition.getQueryWrapper(datasource));
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 数据源配置表
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入datasource")
+	public R save(@Valid @RequestBody Datasource datasource) {
+		return R.status(datasourceService.save(datasource));
+	}
+
+	/**
+	 * 修改 数据源配置表
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入datasource")
+	public R update(@Valid @RequestBody Datasource datasource) {
+		return R.status(datasourceService.updateById(datasource));
+	}
+
+	/**
+	 * 新增或修改 数据源配置表
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入datasource")
+	public R submit(@Valid @RequestBody Datasource datasource) {
+		datasource.setUrl(datasource.getUrl().replace("&amp;", "&"));
+		return R.status(datasourceService.saveOrUpdate(datasource));
+	}
+
+
+	/**
+	 * 删除 数据源配置表
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(datasourceService.deleteLogic(Func.toLongList(ids)));
+	}
+
+	/**
+	 * 数据源列表
+	 */
+	@GetMapping("/select")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "下拉数据源", notes = "查询列表")
+	public R<List<Datasource>> select() {
+		List<Datasource> list = datasourceService.list();
+		return R.data(list);
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/ModelController.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/ModelController.java
new file mode 100644
index 0000000..76bcb68
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/ModelController.java
@@ -0,0 +1,228 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.controller;
+
+import cn.gistack.develop.entity.Datasource;
+import cn.gistack.develop.entity.Model;
+import cn.gistack.develop.entity.ModelPrototype;
+import cn.gistack.develop.service.IDatasourceService;
+import cn.gistack.develop.service.IModelPrototypeService;
+import cn.gistack.develop.service.IModelService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
+import com.baomidou.mybatisplus.generator.config.StrategyConfig;
+import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder;
+import com.baomidou.mybatisplus.generator.config.po.TableInfo;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.Iterator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 数据模型表 控制器
+ *
+ * @author Chill
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/model")
+@Api(value = "数据模型表", tags = "数据模型表接口")
+public class ModelController extends BladeController {
+
+	private final IModelService modelService;
+	private final IModelPrototypeService modelPrototypeService;
+	private final IDatasourceService datasourceService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入model")
+	public R<Model> detail(Model model) {
+		Model detail = modelService.getOne(Condition.getQueryWrapper(model));
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页 数据模型表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入model")
+	public R<IPage<Model>> list(Model model, Query query) {
+		IPage<Model> pages = modelService.page(Condition.getPage(query), Condition.getQueryWrapper(model));
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 数据模型表
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "新增", notes = "传入model")
+	public R save(@Valid @RequestBody Model model) {
+		return R.status(modelService.save(model));
+	}
+
+	/**
+	 * 修改 数据模型表
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "修改", notes = "传入model")
+	public R update(@Valid @RequestBody Model model) {
+		return R.status(modelService.updateById(model));
+	}
+
+	/**
+	 * 新增或修改 数据模型表
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "新增或修改", notes = "传入model")
+	public R submit(@Valid @RequestBody Model model) {
+		return R.status(modelService.saveOrUpdate(model));
+	}
+
+	/**
+	 * 删除 数据模型表
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(modelService.deleteLogic(Func.toLongList(ids)));
+	}
+
+	/**
+	 * 模型列表
+	 */
+	@GetMapping("/select")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "模型列表", notes = "模型列表")
+	public R<List<Model>> select() {
+		List<Model> list = modelService.list();
+		list.forEach(model -> model.setModelName(model.getModelTable() + StringPool.COLON + StringPool.SPACE + model.getModelName()));
+		return R.data(list);
+	}
+
+	/**
+	 * 获取物理表列表
+	 */
+	@GetMapping("/table-list")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "物理表列表", notes = "传入datasourceId")
+	public R<List<TableInfo>> tableList(Long datasourceId) {
+		Datasource datasource = datasourceService.getById(datasourceId);
+		ConfigBuilder config = getConfigBuilder(datasource);
+		List<TableInfo> tableInfoList = config.getTableInfoList().stream()
+			.filter(tableInfo -> !StringUtil.startsWithIgnoreCase(tableInfo.getName(), "ACT_"))
+			.map(tableInfo -> tableInfo.setComment(tableInfo.getName() + StringPool.COLON + tableInfo.getComment()))
+			.collect(Collectors.toList());
+		return R.data(tableInfoList);
+	}
+
+	/**
+	 * 获取物理表信息
+	 */
+	@GetMapping("/table-info")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "物理表信息", notes = "传入model信息")
+	public R<TableInfo> tableInfo(Long modelId, String tableName, Long datasourceId) {
+		if (StringUtil.isBlank(tableName)) {
+			Model model = modelService.getById(modelId);
+			tableName = model.getModelTable();
+		}
+		TableInfo tableInfo = getTableInfo(tableName, datasourceId);
+		return R.data(tableInfo);
+	}
+
+	/**
+	 * 获取字段信息
+	 */
+	@GetMapping("/model-prototype")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "物理表字段信息", notes = "传入modelId与datasourceId")
+	public R modelPrototype(Long modelId, Long datasourceId) {
+		List<ModelPrototype> modelPrototypeList = modelPrototypeService.list(Wrappers.<ModelPrototype>query().lambda().eq(ModelPrototype::getModelId, modelId));
+		if (modelPrototypeList.size() > 0) {
+			return R.data(modelPrototypeList);
+		}
+		Model model = modelService.getById(modelId);
+		String tableName = model.getModelTable();
+		TableInfo tableInfo = getTableInfo(tableName, datasourceId);
+		if (tableInfo != null) {
+			return R.data(tableInfo.getFields());
+		} else {
+			return R.fail("未获得相关表信息");
+		}
+	}
+
+	/**
+	 * 获取表信息
+	 *
+	 * @param tableName    表名
+	 * @param datasourceId 数据源主键
+	 */
+	private TableInfo getTableInfo(String tableName, Long datasourceId) {
+		Datasource datasource = datasourceService.getById(datasourceId);
+		ConfigBuilder config = getConfigBuilder(datasource);
+		List<TableInfo> tableInfoList = config.getTableInfoList();
+		TableInfo tableInfo = null;
+		Iterator<TableInfo> iterator = tableInfoList.stream().filter(table -> table.getName().equals(tableName)).collect(Collectors.toList()).iterator();
+		if (iterator.hasNext()) {
+			tableInfo = iterator.next();
+			tableInfo.setEntityName(tableInfo.getEntityName().replace(StringUtil.firstCharToUpper(tableName.split(StringPool.UNDERSCORE)[0]), StringPool.EMPTY));
+		}
+		return tableInfo;
+	}
+
+	/**
+	 * 获取表配置信息
+	 *
+	 * @param datasource 数据源信息
+	 */
+	private ConfigBuilder getConfigBuilder(Datasource datasource) {
+		StrategyConfig strategyConfig = new StrategyConfig.Builder()
+			.entityBuilder()
+			.naming(NamingStrategy.underline_to_camel)
+			.columnNaming(NamingStrategy.underline_to_camel).build();
+		DataSourceConfig datasourceConfig = new DataSourceConfig.Builder(
+			datasource.getUrl(), datasource.getUsername(), datasource.getPassword()
+		).build();
+		return new ConfigBuilder(null, datasourceConfig, strategyConfig, null, null, null);
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/ModelPrototypeController.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/ModelPrototypeController.java
new file mode 100644
index 0000000..7cca5d0
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/controller/ModelPrototypeController.java
@@ -0,0 +1,136 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.controller;
+
+import cn.gistack.develop.entity.ModelPrototype;
+import cn.gistack.develop.service.IModelPrototypeService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * 数据原型表 控制器
+ *
+ * @author Chill
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/model-prototype")
+@Api(value = "数据原型表", tags = "数据原型表接口")
+public class ModelPrototypeController extends BladeController {
+
+	private final IModelPrototypeService modelPrototypeService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入modelPrototype")
+	public R<ModelPrototype> detail(ModelPrototype modelPrototype) {
+		ModelPrototype detail = modelPrototypeService.getOne(Condition.getQueryWrapper(modelPrototype));
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页 数据原型表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入modelPrototype")
+	public R<IPage<ModelPrototype>> list(ModelPrototype modelPrototype, Query query) {
+		IPage<ModelPrototype> pages = modelPrototypeService.page(Condition.getPage(query), Condition.getQueryWrapper(modelPrototype));
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 数据原型表
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入modelPrototype")
+	public R save(@Valid @RequestBody ModelPrototype modelPrototype) {
+		return R.status(modelPrototypeService.save(modelPrototype));
+	}
+
+	/**
+	 * 修改 数据原型表
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入modelPrototype")
+	public R update(@Valid @RequestBody ModelPrototype modelPrototype) {
+		return R.status(modelPrototypeService.updateById(modelPrototype));
+	}
+
+	/**
+	 * 新增或修改 数据原型表
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入modelPrototype")
+	public R submit(@Valid @RequestBody ModelPrototype modelPrototype) {
+		return R.status(modelPrototypeService.saveOrUpdate(modelPrototype));
+	}
+
+	/**
+	 * 批量新增或修改 数据原型表
+	 */
+	@PostMapping("/submit-list")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "批量新增或修改", notes = "传入modelPrototype集合")
+	public R submitList(@Valid @RequestBody List<ModelPrototype> modelPrototypes) {
+		return R.status(modelPrototypeService.submitList(modelPrototypes));
+	}
+
+	/**
+	 * 删除 数据原型表
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(modelPrototypeService.deleteLogic(Func.toLongList(ids)));
+	}
+
+	/**
+	 * 数据原型列表
+	 */
+	@GetMapping("/select")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "数据原型列表", notes = "数据原型列表")
+	public R<List<ModelPrototype>> select(@ApiParam(value = "数据模型Id", required = true) @RequestParam Long modelId) {
+		List<ModelPrototype> list = modelPrototypeService.list(Wrappers.<ModelPrototype>query().lambda().eq(ModelPrototype::getModelId, modelId));
+		list.forEach(prototype -> prototype.setComment(prototype.getJdbcName() + StringPool.COLON + StringPool.SPACE + prototype.getComment()));
+		return R.data(list);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/dto/ModelDTO.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/dto/ModelDTO.java
new file mode 100644
index 0000000..a33e52b
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/dto/ModelDTO.java
@@ -0,0 +1,42 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.dto;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.develop.entity.Model;
+import cn.gistack.develop.entity.ModelPrototype;
+
+import java.util.List;
+
+/**
+ * 代码模型DTO
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ModelDTO extends Model {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 代码建模原型
+	 */
+	private List<ModelPrototype> prototypes;
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/Code.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/Code.java
new file mode 100644
index 0000000..32ae247
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/Code.java
@@ -0,0 +1,180 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_code")
+@ApiModel(value = "Code对象", description = "Code对象")
+public class Code implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "主键")
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
+
+	/**
+	 * 数据模型主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "数据模型主键")
+	private Long modelId;
+
+	/**
+	 * 模块名称
+	 */
+	@ApiModelProperty(value = "服务名称")
+	private String serviceName;
+
+	/**
+	 * 模块名称
+	 */
+	@ApiModelProperty(value = "模块名称")
+	private String codeName;
+
+	/**
+	 * 表名
+	 */
+	@ApiModelProperty(value = "表名")
+	private String tableName;
+
+	/**
+	 * 实体名
+	 */
+	@ApiModelProperty(value = "表前缀")
+	private String tablePrefix;
+
+	/**
+	 * 主键名
+	 */
+	@ApiModelProperty(value = "主键名")
+	private String pkName;
+
+	/**
+	 * 后端包名
+	 */
+	@ApiModelProperty(value = "后端包名")
+	private String packageName;
+
+	/**
+	 * 模版类型
+	 */
+	@ApiModelProperty(value = "模版类型")
+	private String templateType;
+
+	/**
+	 * 作者信息
+	 */
+	@ApiModelProperty(value = "作者信息")
+	private String author;
+
+	/**
+	 * 子表模型主键
+	 */
+	@ApiModelProperty(value = "子表模型主键")
+	private String subModelId;
+
+	/**
+	 * 子表绑定外键
+	 */
+	@ApiModelProperty(value = "子表绑定外键")
+	private String subFkId;
+
+	/**
+	 * 树主键字段
+	 */
+	@ApiModelProperty(value = "树主键字段")
+	private String treeId;
+
+	/**
+	 * 树父主键字段
+	 */
+	@ApiModelProperty(value = "树父主键字段")
+	private String treePid;
+
+	/**
+	 * 树名称字段
+	 */
+	@ApiModelProperty(value = "树名称字段")
+	private String treeName;
+
+	/**
+	 * 基础业务模式
+	 */
+	@ApiModelProperty(value = "基础业务模式")
+	private Integer baseMode;
+
+	/**
+	 * 包装器模式
+	 */
+	@ApiModelProperty(value = "包装器模式")
+	private Integer wrapMode;
+
+	/**
+	 * 远程调用模式
+	 */
+	@ApiModelProperty(value = "远程调用模式")
+	private Integer feignMode;
+
+	/**
+	 * 代码风格
+	 */
+	@ApiModelProperty(value = "代码风格")
+	private String codeStyle;
+
+	/**
+	 * 后端路径
+	 */
+	@ApiModelProperty(value = "后端路径")
+	private String apiPath;
+
+	/**
+	 * 前端路径
+	 */
+	@ApiModelProperty(value = "前端路径")
+	private String webPath;
+
+	/**
+	 * 是否已删除
+	 */
+	@TableLogic
+	@ApiModelProperty(value = "是否已删除")
+	private Integer isDeleted;
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/Datasource.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/Datasource.java
new file mode 100644
index 0000000..23f0c41
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/Datasource.java
@@ -0,0 +1,71 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import org.springblade.core.mp.base.BaseEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 数据源配置表实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_datasource")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "Datasource对象", description = "数据源配置表")
+public class Datasource extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 名称
+	 */
+	@ApiModelProperty(value = "名称")
+	private String name;
+	/**
+	 * 驱动类
+	 */
+	@ApiModelProperty(value = "驱动类")
+	private String driverClass;
+	/**
+	 * 连接地址
+	 */
+	@ApiModelProperty(value = "连接地址")
+	private String url;
+	/**
+	 * 用户名
+	 */
+	@ApiModelProperty(value = "用户名")
+	private String username;
+	/**
+	 * 密码
+	 */
+	@ApiModelProperty(value = "密码")
+	private String password;
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remark;
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/Model.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/Model.java
new file mode 100644
index 0000000..84a5d7b
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/Model.java
@@ -0,0 +1,74 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/**
+ * 数据模型表实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_model")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "Model对象", description = "数据模型表")
+public class Model extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 数据源主键
+	 */
+	@ApiModelProperty(value = "数据源主键")
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long datasourceId;
+	/**
+	 * 模型名称
+	 */
+	@ApiModelProperty(value = "模型名称")
+	private String modelName;
+	/**
+	 * 模型编号
+	 */
+	@ApiModelProperty(value = "模型编号")
+	private String modelCode;
+	/**
+	 * 物理表名
+	 */
+	@ApiModelProperty(value = "物理表名")
+	private String modelTable;
+	/**
+	 * 模型类名
+	 */
+	@ApiModelProperty(value = "模型类名")
+	private String modelClass;
+	/**
+	 * 模型备注
+	 */
+	@ApiModelProperty(value = "模型备注")
+	private String modelRemark;
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/ModelPrototype.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/ModelPrototype.java
new file mode 100644
index 0000000..00bf485
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/entity/ModelPrototype.java
@@ -0,0 +1,119 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/**
+ * 数据原型表实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_model_prototype")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "ModelPrototype对象", description = "数据原型表")
+public class ModelPrototype extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 模型主键
+	 */
+	@ApiModelProperty(value = "模型主键")
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long modelId;
+	/**
+	 * 物理列名
+	 */
+	@ApiModelProperty(value = "物理列名")
+	private String jdbcName;
+	/**
+	 * 物理类型
+	 */
+	@ApiModelProperty(value = "物理类型")
+	private String jdbcType;
+	/**
+	 * 实体列名
+	 */
+	@ApiModelProperty(value = "实体列名")
+	private String propertyName;
+	/**
+	 * 实体类型
+	 */
+	@ApiModelProperty(value = "实体类型")
+	private String propertyType;
+	/**
+	 * 实体类型引用
+	 */
+	@ApiModelProperty(value = "实体类型引用")
+	private String propertyEntity;
+	/**
+	 * 注释说明
+	 */
+	@ApiModelProperty(value = "注释说明")
+	private String comment;
+	/**
+	 * 列表显示
+	 */
+	@ApiModelProperty(value = "列表显示")
+	private Integer isList;
+	/**
+	 * 表单显示
+	 */
+	@ApiModelProperty(value = "表单显示")
+	private Integer isForm;
+	/**
+	 * 独占一行
+	 */
+	@ApiModelProperty(value = "独占一行")
+	private Integer isRow;
+	/**
+	 * 组件类型
+	 */
+	@ApiModelProperty(value = "组件类型")
+	private String componentType;
+	/**
+	 * 字典编码
+	 */
+	@ApiModelProperty(value = "字典编码")
+	private String dictCode;
+	/**
+	 * 是否必填
+	 */
+	@ApiModelProperty(value = "是否必填")
+	private Integer isRequired;
+	/**
+	 * 查询配置
+	 */
+	@ApiModelProperty(value = "查询配置")
+	private Integer isQuery;
+	/**
+	 * 查询类型
+	 */
+	@ApiModelProperty(value = "查询类型")
+	private String queryType;
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/CodeMapper.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/CodeMapper.java
new file mode 100644
index 0000000..fc4d5e9
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/CodeMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.mapper;
+
+import cn.gistack.develop.entity.Code;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface CodeMapper extends BaseMapper<Code> {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/CodeMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/CodeMapper.xml
new file mode 100644
index 0000000..6560cf4
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/CodeMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.develop.mapper.CodeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="codeResultMap" type="cn.gistack.develop.entity.Code">
+        <id column="id" property="id"/>
+        <result column="datasource_id" property="datasourceId"/>
+        <result column="service_name" property="serviceName"/>
+        <result column="code_name" property="codeName"/>
+        <result column="table_name" property="tableName"/>
+        <result column="pk_name" property="pkName"/>
+        <result column="base_mode" property="baseMode"/>
+        <result column="wrap_mode" property="wrapMode"/>
+        <result column="table_prefix" property="tablePrefix"/>
+        <result column="package_name" property="packageName"/>
+        <result column="api_path" property="apiPath"/>
+        <result column="web_path" property="webPath"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/DatasourceMapper.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/DatasourceMapper.java
new file mode 100644
index 0000000..4e622cc
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/DatasourceMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.mapper;
+
+import cn.gistack.develop.entity.Datasource;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 数据源配置表 Mapper 接口
+ *
+ * @author Chill
+ */
+public interface DatasourceMapper extends BaseMapper<Datasource> {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/DatasourceMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/DatasourceMapper.xml
new file mode 100644
index 0000000..5213534
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/DatasourceMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.develop.mapper.DatasourceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="datasourceResultMap" type="cn.gistack.develop.entity.Datasource">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="driver_class" property="driverClass"/>
+        <result column="url" property="url"/>
+        <result column="username" property="username"/>
+        <result column="password" property="password"/>
+        <result column="remark" property="remark"/>
+    </resultMap>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelMapper.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelMapper.java
new file mode 100644
index 0000000..979b729
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.mapper;
+
+import cn.gistack.develop.entity.Model;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 数据模型表 Mapper 接口
+ *
+ * @author Chill
+ */
+public interface ModelMapper extends BaseMapper<Model> {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelMapper.xml
new file mode 100644
index 0000000..52b1955
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelMapper.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.develop.mapper.ModelMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="modelResultMap" type="cn.gistack.develop.entity.Model">
+        <id column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="datasource_id" property="datasourceId"/>
+        <result column="model_name" property="modelName"/>
+        <result column="model_code" property="modelCode"/>
+        <result column="model_table" property="modelTable"/>
+        <result column="model_class" property="modelClass"/>
+        <result column="model_remark" property="modelRemark"/>
+    </resultMap>
+
+
+    <select id="selectModelPage" resultMap="modelResultMap">
+        select * from blade_model where is_deleted = 0
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelPrototypeMapper.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelPrototypeMapper.java
new file mode 100644
index 0000000..67e88f7
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelPrototypeMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.mapper;
+
+import cn.gistack.develop.entity.ModelPrototype;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 数据原型表 Mapper 接口
+ *
+ * @author Chill
+ */
+public interface ModelPrototypeMapper extends BaseMapper<ModelPrototype> {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelPrototypeMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelPrototypeMapper.xml
new file mode 100644
index 0000000..eeca2a2
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/mapper/ModelPrototypeMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.develop.mapper.ModelPrototypeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="modelPrototypeResultMap" type="cn.gistack.develop.entity.ModelPrototype">
+        <id column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="jdbc_name" property="jdbcName"/>
+        <result column="jdbc_type" property="jdbcType"/>
+        <result column="comment" property="comment"/>
+        <result column="property_type" property="propertyType"/>
+        <result column="property_entity" property="propertyEntity"/>
+        <result column="property_name" property="propertyName"/>
+        <result column="is_form" property="isForm"/>
+        <result column="is_row" property="isRow"/>
+        <result column="component_type" property="componentType"/>
+        <result column="dict_code" property="dictCode"/>
+        <result column="is_required" property="isRequired"/>
+        <result column="is_list" property="isList"/>
+        <result column="is_query" property="isQuery"/>
+        <result column="query_type" property="queryType"/>
+    </resultMap>
+
+
+    <select id="selectModelPrototypePage" resultMap="modelPrototypeResultMap">
+        select * from blade_model_prototype where is_deleted = 0
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/ICodeService.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/ICodeService.java
new file mode 100644
index 0000000..651a40d
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/ICodeService.java
@@ -0,0 +1,38 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.service;
+
+
+import cn.gistack.develop.entity.Code;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface ICodeService extends IService<Code> {
+
+	/**
+	 * 提交
+	 *
+	 * @param code
+	 * @return
+	 */
+	boolean submit(Code code);
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/IDatasourceService.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/IDatasourceService.java
new file mode 100644
index 0000000..10b3989
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/IDatasourceService.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.service;
+
+import cn.gistack.develop.entity.Datasource;
+import org.springblade.core.mp.base.BaseService;
+
+/**
+ * 数据源配置表 服务类
+ *
+ * @author Chill
+ */
+public interface IDatasourceService extends BaseService<Datasource> {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/IModelPrototypeService.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/IModelPrototypeService.java
new file mode 100644
index 0000000..a77fe4f
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/IModelPrototypeService.java
@@ -0,0 +1,47 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.service;
+
+import cn.gistack.develop.entity.ModelPrototype;
+import org.springblade.core.mp.base.BaseService;
+
+import java.util.List;
+
+/**
+ * 数据原型表 服务类
+ *
+ * @author Chill
+ */
+public interface IModelPrototypeService extends BaseService<ModelPrototype> {
+
+	/**
+	 * 批量提交
+	 *
+	 * @param modelPrototypes 原型集合
+	 * @return boolean
+	 */
+	boolean submitList(List<ModelPrototype> modelPrototypes);
+
+	/**
+	 * 原型列表
+	 *
+	 * @param modelId 模型ID
+	 * @return List<ModelPrototype>
+	 */
+	List<ModelPrototype> prototypeList(Long modelId);
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/IModelService.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/IModelService.java
new file mode 100644
index 0000000..9005e59
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/IModelService.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.service;
+
+import cn.gistack.develop.entity.Model;
+import org.springblade.core.mp.base.BaseService;
+
+/**
+ * 数据模型表 服务类
+ *
+ * @author Chill
+ */
+public interface IModelService extends BaseService<Model> {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/CodeServiceImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/CodeServiceImpl.java
new file mode 100644
index 0000000..51e8511
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/CodeServiceImpl.java
@@ -0,0 +1,39 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.service.impl;
+
+import cn.gistack.develop.entity.Code;
+import cn.gistack.develop.mapper.CodeMapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.tool.constant.BladeConstant;
+import cn.gistack.develop.service.ICodeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class CodeServiceImpl extends ServiceImpl<CodeMapper, Code> implements ICodeService {
+
+	@Override
+	public boolean submit(Code code) {
+		code.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+		return saveOrUpdate(code);
+	}
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/DatasourceServiceImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/DatasourceServiceImpl.java
new file mode 100644
index 0000000..a43c669
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/DatasourceServiceImpl.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.service.impl;
+
+import cn.gistack.develop.entity.Datasource;
+import cn.gistack.develop.mapper.DatasourceMapper;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import cn.gistack.develop.service.IDatasourceService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 数据源配置表 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class DatasourceServiceImpl extends BaseServiceImpl<DatasourceMapper, Datasource> implements IDatasourceService {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/ModelPrototypeServiceImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/ModelPrototypeServiceImpl.java
new file mode 100644
index 0000000..42d5ce2
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/ModelPrototypeServiceImpl.java
@@ -0,0 +1,55 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.service.impl;
+
+import cn.gistack.develop.entity.ModelPrototype;
+import cn.gistack.develop.mapper.ModelPrototypeMapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import cn.gistack.develop.service.IModelPrototypeService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * 数据原型表 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class ModelPrototypeServiceImpl extends BaseServiceImpl<ModelPrototypeMapper, ModelPrototype> implements IModelPrototypeService {
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean submitList(List<ModelPrototype> modelPrototypes) {
+		modelPrototypes.forEach(modelPrototype -> {
+			if (modelPrototype.getId() == null) {
+				this.save(modelPrototype);
+			} else {
+				this.updateById(modelPrototype);
+			}
+		});
+		return true;
+	}
+
+	@Override
+	public List<ModelPrototype> prototypeList(Long modelId) {
+		return this.list(Wrappers.<ModelPrototype>lambdaQuery().eq(ModelPrototype::getModelId, modelId));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/ModelServiceImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/ModelServiceImpl.java
new file mode 100644
index 0000000..7f28e57
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/java/cn/gistack/develop/service/impl/ModelServiceImpl.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.develop.service.impl;
+
+import cn.gistack.develop.entity.Model;
+import cn.gistack.develop.mapper.ModelMapper;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import cn.gistack.develop.service.IModelService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 数据模型表 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class ModelServiceImpl extends BaseServiceImpl<ModelMapper, Model> implements IModelService {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/application-dev.yml b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..e81d987
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/application-dev.yml
@@ -0,0 +1,10 @@
+#服务器端口
+server:
+  port: 7007
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.dev.url}
+    username: ${blade.datasource.dev.username}
+    password: ${blade.datasource.dev.password}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/application-prod.yml b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..ff20d10
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/application-prod.yml
@@ -0,0 +1,11 @@
+#服务器端口
+server:
+  port: 7007
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.prod.url}
+    username: ${blade.datasource.prod.username}
+    password: ${blade.datasource.prod.password}
+
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/application-test.yml
new file mode 100644
index 0000000..e8a77d1
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/application-test.yml
@@ -0,0 +1,10 @@
+#服务器端口
+server:
+  port: 7007
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.test.url}
+    username: ${blade.datasource.test.username}
+    password: ${blade.datasource.test.password}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/templates/code.properties b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/templates/code.properties
new file mode 100644
index 0000000..50420cb
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/main/resources/templates/code.properties
@@ -0,0 +1,5 @@
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.datasource.url=jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
+spring.datasource.username=root
+spring.datasource.password=root
+author=BladeX
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/test/java/cn/gistack/test/CodeGenerator.java b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/test/java/cn/gistack/test/CodeGenerator.java
new file mode 100644
index 0000000..d837956
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/test/java/cn/gistack/test/CodeGenerator.java
@@ -0,0 +1,95 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.test;
+
+
+import org.springblade.develop.constant.DevelopConstant;
+import org.springblade.develop.support.BladeCodeGenerator;
+
+/**
+ * 代码生成器
+ *
+ * @author Chill
+ */
+public class CodeGenerator {
+
+	/**
+	 * 代码生成的模块名
+	 */
+	public static String CODE_NAME = "资源管理";
+	/**
+	 * 代码所在服务名
+	 */
+	public static String SERVICE_NAME = "blade-develop";
+	/**
+	 * 代码生成的包名
+	 */
+	public static String PACKAGE_NAME = "org.springblade.develop";
+	/**
+	 * 前端代码生成风格
+	 */
+	public static String CODE_STYLE = DevelopConstant.SABER_NAME;
+	/**
+	 * 前端代码生成地址
+	 */
+	public static String PACKAGE_WEB_DIR = "/Users/chill/Workspaces/product/Saber";
+	/**
+	 * 需要去掉的表前缀
+	 */
+	public static String[] TABLE_PREFIX = {"blade_"};
+	/**
+	 * 需要生成的表名(两者只能取其一)
+	 */
+	public static String[] INCLUDE_TABLES = {"blade_datasource"};
+	/**
+	 * 需要排除的表名(两者只能取其一)
+	 */
+	public static String[] EXCLUDE_TABLES = {};
+	/**
+	 * 是否包含基础业务字段
+	 */
+	public static Boolean HAS_SUPER_ENTITY = Boolean.TRUE;
+	/**
+	 * 是否包含远程调用
+	 */
+	private static Boolean HAS_FEIGN = Boolean.TRUE;
+	/**
+	 * 基础业务字段
+	 */
+	public static String[] SUPER_ENTITY_COLUMNS = {"id", "create_time", "create_user", "create_dept", "update_time", "update_user", "status", "is_deleted"};
+
+
+	/**
+	 * RUN THIS
+	 */
+	public static void main(String[] args) {
+		BladeCodeGenerator generator = new BladeCodeGenerator();
+		generator.setCodeName(CODE_NAME);
+		generator.setServiceName(SERVICE_NAME);
+		generator.setCodeStyle(CODE_STYLE);
+		generator.setPackageName(PACKAGE_NAME);
+		generator.setPackageWebDir(PACKAGE_WEB_DIR);
+		generator.setTablePrefix(TABLE_PREFIX);
+		generator.setIncludeTables(INCLUDE_TABLES);
+		generator.setExcludeTables(EXCLUDE_TABLES);
+		generator.setHasSuperEntity(HAS_SUPER_ENTITY);
+		generator.setHasFeign(HAS_FEIGN);
+		generator.setSuperEntityColumns(SUPER_ENTITY_COLUMNS);
+		generator.run();
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/test/resources/templates/code.properties b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/test/resources/templates/code.properties
new file mode 100644
index 0000000..50420cb
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-develop/src/test/resources/templates/code.properties
@@ -0,0 +1,5 @@
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.datasource.url=jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
+spring.datasource.username=root
+spring.datasource.password=root
+author=BladeX
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/Dockerfile b/skjcmanager/skjcmanager-ops/skjcmanager-flow/Dockerfile
new file mode 100644
index 0000000..ae270ca
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/Dockerfile
@@ -0,0 +1,15 @@
+FROM bladex/alpine-java:8_server-jre_cn_unlimited
+
+MAINTAINER bladejava@qq.com
+
+RUN mkdir -p /blade/flow
+
+WORKDIR /blade/flow
+
+EXPOSE 8008
+
+ADD ./target/blade-flow.jar ./app.jar
+
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
+
+CMD ["--spring.profiles.active=test"]
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/doc/nacos/blade-flow-dev.yaml b/skjcmanager/skjcmanager-ops/skjcmanager-flow/doc/nacos/blade-flow-dev.yaml
new file mode 100644
index 0000000..5c791f4
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/doc/nacos/blade-flow-dev.yaml
@@ -0,0 +1,39 @@
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    #driver-class-name: org.postgresql.Driver
+    #driver-class-name: oracle.jdbc.OracleDriver
+    #driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+    #driver-class-name: dm.jdbc.driver.DmDriver
+    druid:
+      # MySql、PostgreSQL、SqlServer、DaMeng校验
+      validation-query: select 1
+      # Oracle校验
+      #validation-query: select 1 from dual
+
+#项目模块集中配置
+blade:
+  #工作流模块开发生产环境数据库地址
+  datasource:
+    flow:
+      dev:
+        # MySql
+        url: jdbc:mysql://localhost:3306/bladex_flow?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
+        username: root
+        password: root
+        # PostgreSQL
+        #url: jdbc:postgresql://127.0.0.1:5432/bladex_flow
+        #username: postgres
+        #password: 123456
+        # Oracle
+        #url: jdbc:oracle:thin:@127.0.0.1:1521:orcl
+        #username: BLADEX_FLOW
+        #password: BLADEX_FLOW
+        # SqlServer
+        #url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex_flow
+        #username: bladex_flow
+        #password: bladex_flow
+        # DaMeng
+        #url: jdbc:dm://127.0.0.1:5236/BLADEX_FLOW?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
+        #username: BLADEX_FLOW
+        #password: BLADEX_FLOW
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/pom.xml b/skjcmanager/skjcmanager-ops/skjcmanager-flow/pom.xml
new file mode 100644
index 0000000..f152c03
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/pom.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-ops</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-flow</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <!-- Blade -->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-common</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-boot</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-swagger</artifactId>
+        </dependency>
+        <!--<dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-transaction</artifactId>
+        </dependency>-->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-dict-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-scope-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-auto</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-user-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-flow-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <!-- 工作流 -->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-flowable</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>dockerfile-maven-plugin</artifactId>
+                <configuration>
+                    <username>${docker.username}</username>
+                    <password>${docker.password}</password>
+                    <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+                    <tag>${project.version}</tag>
+                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+                    <buildArgs>
+                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+                    </buildArgs>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/FlowApplication.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/FlowApplication.java
new file mode 100644
index 0000000..a10341f
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/FlowApplication.java
@@ -0,0 +1,37 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow;
+
+import org.springblade.core.cloud.client.BladeCloudApplication;
+import org.springblade.core.launch.BladeApplication;
+import org.springblade.core.launch.constant.AppConstant;
+
+/**
+ * Flowable启动器
+ *
+ * @author Chill
+ */
+//@SeataCloudApplication
+@BladeCloudApplication
+public class FlowApplication {
+
+	public static void main(String[] args) {
+		BladeApplication.run(AppConstant.APPLICATION_FLOW_NAME, FlowApplication.class, args);
+	}
+
+}
+
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/controller/WorkController.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/controller/WorkController.java
new file mode 100644
index 0000000..4c52d98
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/controller/WorkController.java
@@ -0,0 +1,147 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.business.controller;
+
+import cn.gistack.flow.business.service.FlowBusinessService;
+import cn.gistack.flow.core.entity.BladeFlow;
+import cn.gistack.flow.core.utils.TaskUtil;
+import cn.gistack.flow.engine.entity.FlowProcess;
+import cn.gistack.flow.engine.service.FlowEngineService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.flowable.engine.TaskService;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 流程事务通用接口
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("work")
+@Api(value = "流程事务通用接口", tags = "流程事务通用接口")
+public class WorkController {
+
+	private final TaskService taskService;
+	private final FlowEngineService flowEngineService;
+	private final FlowBusinessService flowBusinessService;
+
+	/**
+	 * 发起事务列表页
+	 */
+	@GetMapping("start-list")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "发起事务列表页", notes = "传入流程类型")
+	public R<IPage<FlowProcess>> startList(@ApiParam("流程类型") String category, Query query, @RequestParam(required = false, defaultValue = "1") Integer mode) {
+		IPage<FlowProcess> pages = flowEngineService.selectProcessPage(Condition.getPage(query), category, mode);
+		return R.data(pages);
+	}
+
+	/**
+	 * 待签事务列表页
+	 */
+	@GetMapping("claim-list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "待签事务列表页", notes = "传入流程信息")
+	public R<IPage<BladeFlow>> claimList(@ApiParam("流程信息") BladeFlow bladeFlow, Query query) {
+		IPage<BladeFlow> pages = flowBusinessService.selectClaimPage(Condition.getPage(query), bladeFlow);
+		return R.data(pages);
+	}
+
+	/**
+	 * 待办事务列表页
+	 */
+	@GetMapping("todo-list")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "待办事务列表页", notes = "传入流程信息")
+	public R<IPage<BladeFlow>> todoList(@ApiParam("流程信息") BladeFlow bladeFlow, Query query) {
+		IPage<BladeFlow> pages = flowBusinessService.selectTodoPage(Condition.getPage(query), bladeFlow);
+		return R.data(pages);
+	}
+
+	/**
+	 * 已发事务列表页
+	 */
+	@GetMapping("send-list")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "已发事务列表页", notes = "传入流程信息")
+	public R<IPage<BladeFlow>> sendList(@ApiParam("流程信息") BladeFlow bladeFlow, Query query) {
+		IPage<BladeFlow> pages = flowBusinessService.selectSendPage(Condition.getPage(query), bladeFlow);
+		return R.data(pages);
+	}
+
+	/**
+	 * 办结事务列表页
+	 */
+	@GetMapping("done-list")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "办结事务列表页", notes = "传入流程信息")
+	public R<IPage<BladeFlow>> doneList(@ApiParam("流程信息") BladeFlow bladeFlow, Query query) {
+		IPage<BladeFlow> pages = flowBusinessService.selectDonePage(Condition.getPage(query), bladeFlow);
+		return R.data(pages);
+	}
+
+	/**
+	 * 签收事务
+	 *
+	 * @param taskId 任务id
+	 */
+	@PostMapping("claim-task")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "签收事务", notes = "传入流程信息")
+	public R claimTask(@ApiParam("任务id") String taskId) {
+		taskService.claim(taskId, TaskUtil.getTaskUser());
+		return R.success("签收事务成功");
+	}
+
+	/**
+	 * 完成任务
+	 *
+	 * @param flow 请假信息
+	 */
+	@PostMapping("complete-task")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "完成任务", notes = "传入流程信息")
+	public R completeTask(@ApiParam("任务信息") @RequestBody BladeFlow flow) {
+		return R.status(flowBusinessService.completeTask(flow));
+	}
+
+	/**
+	 * 删除任务
+	 *
+	 * @param taskId 任务id
+	 * @param reason 删除原因
+	 */
+	@PostMapping("delete-task")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除任务", notes = "传入流程信息")
+	public R deleteTask(@ApiParam("任务id") String taskId, @ApiParam("删除原因") String reason) {
+		taskService.deleteTask(taskId, reason);
+		return R.success("删除任务成功");
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/feign/FlowClient.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/feign/FlowClient.java
new file mode 100644
index 0000000..1960028
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/feign/FlowClient.java
@@ -0,0 +1,107 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.business.feign;
+
+import cn.gistack.flow.core.entity.BladeFlow;
+import cn.gistack.flow.core.feign.IFlowClient;
+import cn.gistack.flow.core.utils.TaskUtil;
+import lombok.AllArgsConstructor;
+import org.flowable.engine.IdentityService;
+import org.flowable.engine.RuntimeService;
+import org.flowable.engine.TaskService;
+import org.flowable.engine.runtime.ProcessInstance;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * 流程远程调用实现类
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+public class FlowClient implements IFlowClient {
+
+	private final RuntimeService runtimeService;
+	private final IdentityService identityService;
+	private final TaskService taskService;
+
+	@Override
+	@PostMapping(START_PROCESS_INSTANCE_BY_ID)
+	public R<BladeFlow> startProcessInstanceById(String processDefinitionId, String businessKey, @RequestBody Map<String, Object> variables) {
+		// 设置流程启动用户
+		identityService.setAuthenticatedUserId(TaskUtil.getTaskUser());
+		// 开启流程
+		ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinitionId, businessKey, variables);
+		// 组装流程通用类
+		BladeFlow flow = new BladeFlow();
+		flow.setProcessInstanceId(processInstance.getId());
+		return R.data(flow);
+	}
+
+	@Override
+	@PostMapping(START_PROCESS_INSTANCE_BY_KEY)
+	public R<BladeFlow> startProcessInstanceByKey(String processDefinitionKey, String businessKey, @RequestBody Map<String, Object> variables) {
+		// 设置流程启动用户
+		identityService.setAuthenticatedUserId(TaskUtil.getTaskUser());
+		// 开启流程
+		ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey, businessKey, variables);
+		// 组装流程通用类
+		BladeFlow flow = new BladeFlow();
+		flow.setProcessInstanceId(processInstance.getId());
+		return R.data(flow);
+	}
+
+	@Override
+	@PostMapping(COMPLETE_TASK)
+	public R completeTask(String taskId, String processInstanceId, String comment, @RequestBody Map<String, Object> variables) {
+		// 增加评论
+		if (StringUtil.isNoneBlank(processInstanceId, comment)) {
+			taskService.addComment(taskId, processInstanceId, comment);
+		}
+		// 非空判断
+		if (Func.isEmpty(variables)) {
+			variables = Kv.create();
+		}
+		// 完成任务
+		taskService.complete(taskId, variables);
+		return R.success("流程提交成功");
+	}
+
+	@Override
+	@GetMapping(TASK_VARIABLE)
+	public R<Object> taskVariable(String taskId, String variableName) {
+		return R.data(taskService.getVariable(taskId, variableName));
+	}
+
+	@Override
+	@GetMapping(TASK_VARIABLES)
+	public R<Map<String, Object>> taskVariables(String taskId) {
+		return R.data(taskService.getVariables(taskId));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/service/FlowBusinessService.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/service/FlowBusinessService.java
new file mode 100644
index 0000000..e949540
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/service/FlowBusinessService.java
@@ -0,0 +1,72 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.business.service;
+
+import cn.gistack.flow.core.entity.BladeFlow;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+/**
+ * 流程业务类
+ *
+ * @author Chill
+ */
+public interface FlowBusinessService {
+
+	/**
+	 * 流程待签列表
+	 *
+	 * @param page      分页工具
+	 * @param bladeFlow 流程类
+	 * @return
+	 */
+	IPage<BladeFlow> selectClaimPage(IPage<BladeFlow> page, BladeFlow bladeFlow);
+
+	/**
+	 * 流程待办列表
+	 *
+	 * @param page      分页工具
+	 * @param bladeFlow 流程类
+	 * @return
+	 */
+	IPage<BladeFlow> selectTodoPage(IPage<BladeFlow> page, BladeFlow bladeFlow);
+
+	/**
+	 * 流程已发列表
+	 *
+	 * @param page      分页工具
+	 * @param bladeFlow 流程类
+	 * @return
+	 */
+	IPage<BladeFlow> selectSendPage(IPage<BladeFlow> page, BladeFlow bladeFlow);
+
+	/**
+	 * 流程办结列表
+	 *
+	 * @param page      分页工具
+	 * @param bladeFlow 流程类
+	 * @return
+	 */
+	IPage<BladeFlow> selectDonePage(IPage<BladeFlow> page, BladeFlow bladeFlow);
+
+	/**
+	 * 完成任务
+	 *
+	 * @param leave 请假信息
+	 * @return boolean
+	 */
+	boolean completeTask(BladeFlow leave);
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/service/impl/FlowBusinessServiceImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/service/impl/FlowBusinessServiceImpl.java
new file mode 100644
index 0000000..2fcaecb
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/business/service/impl/FlowBusinessServiceImpl.java
@@ -0,0 +1,333 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.business.service.impl;
+
+import cn.gistack.flow.business.service.FlowBusinessService;
+import cn.gistack.flow.core.constant.ProcessConstant;
+import cn.gistack.flow.core.entity.BladeFlow;
+import cn.gistack.flow.core.utils.TaskUtil;
+import cn.gistack.flow.engine.constant.FlowEngineConstant;
+import cn.gistack.flow.engine.entity.FlowProcess;
+import cn.gistack.flow.engine.utils.FlowCache;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import lombok.AllArgsConstructor;
+import org.flowable.engine.HistoryService;
+import org.flowable.engine.TaskService;
+import org.flowable.engine.history.HistoricProcessInstance;
+import org.flowable.engine.history.HistoricProcessInstanceQuery;
+import org.flowable.task.api.TaskQuery;
+import org.flowable.task.api.history.HistoricTaskInstance;
+import org.flowable.task.api.history.HistoricTaskInstanceQuery;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 流程业务实现类
+ *
+ * @author Chill
+ */
+@Service
+@AllArgsConstructor
+public class FlowBusinessServiceImpl implements FlowBusinessService {
+
+	private final TaskService taskService;
+	private final HistoryService historyService;
+
+	@Override
+	public IPage<BladeFlow> selectClaimPage(IPage<BladeFlow> page, BladeFlow bladeFlow) {
+		String taskUser = TaskUtil.getTaskUser();
+		String taskGroup = TaskUtil.getCandidateGroup();
+		List<BladeFlow> flowList = new LinkedList<>();
+
+		// 个人等待签收的任务
+		TaskQuery claimUserQuery = taskService.createTaskQuery().taskCandidateUser(taskUser)
+			.includeProcessVariables().active().orderByTaskCreateTime().desc();
+		// 定制流程等待签收的任务
+		TaskQuery claimRoleWithTenantIdQuery = taskService.createTaskQuery().taskTenantId(AuthUtil.getTenantId()).taskCandidateGroupIn(Func.toStrList(taskGroup))
+			.includeProcessVariables().active().orderByTaskCreateTime().desc();
+		// 通用流程等待签收的任务
+		TaskQuery claimRoleWithoutTenantIdQuery = taskService.createTaskQuery().taskWithoutTenantId().taskCandidateGroupIn(Func.toStrList(taskGroup))
+			.includeProcessVariables().active().orderByTaskCreateTime().desc();
+
+		// 构建列表数据
+		buildFlowTaskList(bladeFlow, flowList, claimUserQuery, FlowEngineConstant.STATUS_CLAIM);
+		buildFlowTaskList(bladeFlow, flowList, claimRoleWithTenantIdQuery, FlowEngineConstant.STATUS_CLAIM);
+		buildFlowTaskList(bladeFlow, flowList, claimRoleWithoutTenantIdQuery, FlowEngineConstant.STATUS_CLAIM);
+
+		// 计算总数
+		long count = claimUserQuery.count() + claimRoleWithTenantIdQuery.count() + claimRoleWithoutTenantIdQuery.count();
+		// 设置页数
+		page.setSize(count);
+		// 设置总数
+		page.setTotal(count);
+		// 设置数据
+		page.setRecords(flowList);
+		return page;
+	}
+
+	@Override
+	public IPage<BladeFlow> selectTodoPage(IPage<BladeFlow> page, BladeFlow bladeFlow) {
+		String taskUser = TaskUtil.getTaskUser();
+		List<BladeFlow> flowList = new LinkedList<>();
+
+		// 已签收的任务
+		TaskQuery todoQuery = taskService.createTaskQuery().taskAssignee(taskUser).active()
+			.includeProcessVariables().orderByTaskCreateTime().desc();
+
+		// 构建列表数据
+		buildFlowTaskList(bladeFlow, flowList, todoQuery, FlowEngineConstant.STATUS_TODO);
+
+		// 计算总数
+		long count = todoQuery.count();
+		// 设置页数
+		page.setSize(count);
+		// 设置总数
+		page.setTotal(count);
+		// 设置数据
+		page.setRecords(flowList);
+		return page;
+	}
+
+	@Override
+	public IPage<BladeFlow> selectSendPage(IPage<BladeFlow> page, BladeFlow bladeFlow) {
+		String taskUser = TaskUtil.getTaskUser();
+		List<BladeFlow> flowList = new LinkedList<>();
+
+		HistoricProcessInstanceQuery historyQuery = historyService.createHistoricProcessInstanceQuery().startedBy(taskUser).orderByProcessInstanceStartTime().desc();
+
+		if (bladeFlow.getCategory() != null) {
+			historyQuery.processDefinitionCategory(bladeFlow.getCategory());
+		}
+		if (bladeFlow.getProcessDefinitionName() != null) {
+			historyQuery.processDefinitionName(bladeFlow.getProcessDefinitionName());
+		}
+		if (bladeFlow.getBeginDate() != null) {
+			historyQuery.startedAfter(bladeFlow.getBeginDate());
+		}
+		if (bladeFlow.getEndDate() != null) {
+			historyQuery.startedBefore(bladeFlow.getEndDate());
+		}
+
+		// 查询列表
+		List<HistoricProcessInstance> historyList = historyQuery.listPage(Func.toInt((page.getCurrent() - 1) * page.getSize()), Func.toInt(page.getSize()));
+
+		historyList.forEach(historicProcessInstance -> {
+			BladeFlow flow = new BladeFlow();
+			// historicProcessInstance
+			flow.setCreateTime(historicProcessInstance.getStartTime());
+			flow.setEndTime(historicProcessInstance.getEndTime());
+			flow.setVariables(historicProcessInstance.getProcessVariables());
+			String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey());
+			if (businessKey.length > 1) {
+				flow.setBusinessTable(businessKey[0]);
+				flow.setBusinessId(businessKey[1]);
+			}
+			flow.setHistoryActivityName(historicProcessInstance.getName());
+			flow.setProcessInstanceId(historicProcessInstance.getId());
+			flow.setHistoryProcessInstanceId(historicProcessInstance.getId());
+			// ProcessDefinition
+			FlowProcess processDefinition = FlowCache.getProcessDefinition(historicProcessInstance.getProcessDefinitionId());
+			flow.setProcessDefinitionId(processDefinition.getId());
+			flow.setProcessDefinitionName(processDefinition.getName());
+			flow.setProcessDefinitionVersion(processDefinition.getVersion());
+			flow.setProcessDefinitionKey(processDefinition.getKey());
+			flow.setCategory(processDefinition.getCategory());
+			flow.setCategoryName(FlowCache.getCategoryName(processDefinition.getCategory()));
+			flow.setProcessInstanceId(historicProcessInstance.getId());
+			// HistoricTaskInstance
+			List<HistoricTaskInstance> historyTasks = historyService.createHistoricTaskInstanceQuery().processInstanceId(historicProcessInstance.getId()).orderByHistoricTaskInstanceEndTime().desc().list();
+			if (Func.isNotEmpty(historyTasks)) {
+				HistoricTaskInstance historyTask = historyTasks.iterator().next();
+				flow.setTaskId(historyTask.getId());
+				flow.setTaskName(historyTask.getName());
+				flow.setTaskDefinitionKey(historyTask.getTaskDefinitionKey());
+			}
+			// Status
+			if (historicProcessInstance.getEndActivityId() != null) {
+				flow.setProcessIsFinished(FlowEngineConstant.STATUS_FINISHED);
+			} else {
+				flow.setProcessIsFinished(FlowEngineConstant.STATUS_UNFINISHED);
+			}
+			flow.setStatus(FlowEngineConstant.STATUS_FINISH);
+			flowList.add(flow);
+		});
+
+		// 计算总数
+		long count = historyQuery.count();
+		// 设置总数
+		page.setTotal(count);
+		page.setRecords(flowList);
+		return page;
+	}
+
+	@Override
+	public IPage<BladeFlow> selectDonePage(IPage<BladeFlow> page, BladeFlow bladeFlow) {
+		String taskUser = TaskUtil.getTaskUser();
+		List<BladeFlow> flowList = new LinkedList<>();
+
+		HistoricTaskInstanceQuery doneQuery = historyService.createHistoricTaskInstanceQuery().taskAssignee(taskUser).finished()
+			.includeProcessVariables().orderByHistoricTaskInstanceEndTime().desc();
+
+		if (bladeFlow.getCategory() != null) {
+			doneQuery.processCategoryIn(Func.toStrList(bladeFlow.getCategory()));
+		}
+		if (bladeFlow.getProcessDefinitionName() != null) {
+			doneQuery.processDefinitionName(bladeFlow.getProcessDefinitionName());
+		}
+		if (bladeFlow.getBeginDate() != null) {
+			doneQuery.taskCompletedAfter(bladeFlow.getBeginDate());
+		}
+		if (bladeFlow.getEndDate() != null) {
+			doneQuery.taskCompletedBefore(bladeFlow.getEndDate());
+		}
+
+		// 查询列表
+		List<HistoricTaskInstance> doneList = doneQuery.listPage(Func.toInt((page.getCurrent() - 1) * page.getSize()), Func.toInt(page.getSize()));
+		doneList.forEach(historicTaskInstance -> {
+			BladeFlow flow = new BladeFlow();
+			flow.setTaskId(historicTaskInstance.getId());
+			flow.setTaskDefinitionKey(historicTaskInstance.getTaskDefinitionKey());
+			flow.setTaskName(historicTaskInstance.getName());
+			flow.setAssignee(historicTaskInstance.getAssignee());
+			flow.setCreateTime(historicTaskInstance.getCreateTime());
+			flow.setExecutionId(historicTaskInstance.getExecutionId());
+			flow.setHistoryTaskEndTime(historicTaskInstance.getEndTime());
+			flow.setVariables(historicTaskInstance.getProcessVariables());
+
+			FlowProcess processDefinition = FlowCache.getProcessDefinition(historicTaskInstance.getProcessDefinitionId());
+			flow.setProcessDefinitionId(processDefinition.getId());
+			flow.setProcessDefinitionName(processDefinition.getName());
+			flow.setProcessDefinitionKey(processDefinition.getKey());
+			flow.setProcessDefinitionVersion(processDefinition.getVersion());
+			flow.setCategory(processDefinition.getCategory());
+			flow.setCategoryName(FlowCache.getCategoryName(processDefinition.getCategory()));
+
+			flow.setProcessInstanceId(historicTaskInstance.getProcessInstanceId());
+			flow.setHistoryProcessInstanceId(historicTaskInstance.getProcessInstanceId());
+			HistoricProcessInstance historicProcessInstance = getHistoricProcessInstance((historicTaskInstance.getProcessInstanceId()));
+			if (Func.isNotEmpty(historicProcessInstance)) {
+				String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey());
+				flow.setBusinessTable(businessKey[0]);
+				flow.setBusinessId(businessKey[1]);
+				if (historicProcessInstance.getEndActivityId() != null) {
+					flow.setProcessIsFinished(FlowEngineConstant.STATUS_FINISHED);
+				} else {
+					flow.setProcessIsFinished(FlowEngineConstant.STATUS_UNFINISHED);
+				}
+			}
+			flow.setStatus(FlowEngineConstant.STATUS_FINISH);
+			flowList.add(flow);
+		});
+		// 计算总数
+		long count = doneQuery.count();
+		// 设置总数
+		page.setTotal(count);
+		page.setRecords(flowList);
+		return page;
+	}
+
+	@Override
+	public boolean completeTask(BladeFlow flow) {
+		String taskId = flow.getTaskId();
+		String processInstanceId = flow.getProcessInstanceId();
+		String comment = Func.toStr(flow.getComment(), ProcessConstant.PASS_COMMENT);
+		// 增加评论
+		if (StringUtil.isNoneBlank(processInstanceId, comment)) {
+			taskService.addComment(taskId, processInstanceId, comment);
+		}
+		// 创建变量
+		Map<String, Object> variables = flow.getVariables();
+		if (variables == null) {
+			variables = Kv.create();
+		}
+		variables.put(ProcessConstant.PASS_KEY, flow.isPass());
+		// 完成任务
+		taskService.complete(taskId, variables);
+		return true;
+	}
+
+	/**
+	 * 构建流程
+	 *
+	 * @param bladeFlow 流程通用类
+	 * @param flowList  流程列表
+	 * @param taskQuery 任务查询类
+	 * @param status    状态
+	 */
+	private void buildFlowTaskList(BladeFlow bladeFlow, List<BladeFlow> flowList, TaskQuery taskQuery, String status) {
+		if (bladeFlow.getCategory() != null) {
+			taskQuery.processCategoryIn(Func.toStrList(bladeFlow.getCategory()));
+		}
+		if (bladeFlow.getProcessDefinitionName() != null) {
+			taskQuery.processDefinitionName(bladeFlow.getProcessDefinitionName());
+		}
+		if (bladeFlow.getBeginDate() != null) {
+			taskQuery.taskCreatedAfter(bladeFlow.getBeginDate());
+		}
+		if (bladeFlow.getEndDate() != null) {
+			taskQuery.taskCreatedBefore(bladeFlow.getEndDate());
+		}
+		taskQuery.list().forEach(task -> {
+			BladeFlow flow = new BladeFlow();
+			flow.setTaskId(task.getId());
+			flow.setTaskDefinitionKey(task.getTaskDefinitionKey());
+			flow.setTaskName(task.getName());
+			flow.setAssignee(task.getAssignee());
+			flow.setCreateTime(task.getCreateTime());
+			flow.setClaimTime(task.getClaimTime());
+			flow.setExecutionId(task.getExecutionId());
+			flow.setVariables(task.getProcessVariables());
+
+			HistoricProcessInstance historicProcessInstance = getHistoricProcessInstance(task.getProcessInstanceId());
+			if (Func.isNotEmpty(historicProcessInstance)) {
+				String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey());
+				flow.setBusinessTable(businessKey[0]);
+				flow.setBusinessId(businessKey[1]);
+			}
+
+			FlowProcess processDefinition = FlowCache.getProcessDefinition(task.getProcessDefinitionId());
+			flow.setCategory(processDefinition.getCategory());
+			flow.setCategoryName(FlowCache.getCategoryName(processDefinition.getCategory()));
+			flow.setProcessDefinitionId(processDefinition.getId());
+			flow.setProcessDefinitionName(processDefinition.getName());
+			flow.setProcessDefinitionKey(processDefinition.getKey());
+			flow.setProcessDefinitionVersion(processDefinition.getVersion());
+			flow.setProcessInstanceId(task.getProcessInstanceId());
+			flow.setStatus(status);
+			flowList.add(flow);
+		});
+	}
+
+	/**
+	 * 获取历史流程
+	 *
+	 * @param processInstanceId 流程实例id
+	 * @return HistoricProcessInstance
+	 */
+	private HistoricProcessInstance getHistoricProcessInstance(String processInstanceId) {
+		return historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/config/FlowableConfiguration.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/config/FlowableConfiguration.java
new file mode 100644
index 0000000..ed58a85
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/config/FlowableConfiguration.java
@@ -0,0 +1,44 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.engine.config;
+
+import lombok.AllArgsConstructor;
+import org.flowable.spring.SpringProcessEngineConfiguration;
+import org.flowable.spring.boot.EngineConfigurationConfigurer;
+import org.flowable.spring.boot.FlowableProperties;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Flowable配置类
+ *
+ * @author Chill
+ */
+@Configuration(proxyBeanMethods = false)
+@AllArgsConstructor
+@EnableConfigurationProperties(FlowableProperties.class)
+public class FlowableConfiguration implements EngineConfigurationConfigurer<SpringProcessEngineConfiguration> {
+	private final FlowableProperties flowableProperties;
+
+	@Override
+	public void configure(SpringProcessEngineConfiguration engineConfiguration) {
+		engineConfiguration.setActivityFontName(flowableProperties.getActivityFontName());
+		engineConfiguration.setLabelFontName(flowableProperties.getLabelFontName());
+		engineConfiguration.setAnnotationFontName(flowableProperties.getAnnotationFontName());
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/constant/FlowEngineConstant.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/constant/FlowEngineConstant.java
new file mode 100644
index 0000000..05fae3a
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/constant/FlowEngineConstant.java
@@ -0,0 +1,52 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.engine.constant;
+
+/**
+ * 流程常量.
+ *
+ * @author zhuangqian
+ */
+public interface FlowEngineConstant {
+
+	String FLOWABLE_BASE_PACKAGES = "org.flowable.ui";
+
+	String SUFFIX = ".bpmn20.xml";
+
+	String ACTIVE = "active";
+
+	String SUSPEND = "suspend";
+
+	String STATUS_TODO = "todo";
+
+	String STATUS_CLAIM = "claim";
+
+	String STATUS_SEND = "send";
+
+	String STATUS_DONE = "done";
+
+	String STATUS_FINISHED = "finished";
+
+	String STATUS_UNFINISHED = "unfinished";
+
+	String STATUS_FINISH = "finish";
+
+	String START_EVENT = "startEvent";
+
+	String END_EVENT = "endEvent";
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowFollowController.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowFollowController.java
new file mode 100644
index 0000000..4a7fcef
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowFollowController.java
@@ -0,0 +1,70 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.engine.controller;
+
+import cn.gistack.flow.engine.entity.FlowExecution;
+import cn.gistack.flow.engine.service.FlowEngineService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 流程状态控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@RequestMapping("follow")
+@AllArgsConstructor
+@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+public class FlowFollowController {
+
+	private final FlowEngineService flowEngineService;
+
+	/**
+	 * 流程状态列表
+	 */
+	@GetMapping("list")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "分页", notes = "传入notice")
+	public R<IPage<FlowExecution>> list(Query query, @ApiParam(value = "流程实例id") String processInstanceId, @ApiParam(value = "流程key") String processDefinitionKey) {
+		IPage<FlowExecution> pages = flowEngineService.selectFollowPage(Condition.getPage(query), processInstanceId, processDefinitionKey);
+		return R.data(pages);
+	}
+
+	/**
+	 * 删除流程实例
+	 */
+	@PostMapping("delete-process-instance")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "删除", notes = "传入主键集合")
+	public R deleteProcessInstance(@ApiParam(value = "流程实例id") @RequestParam String processInstanceId, @ApiParam(value = "删除原因") @RequestParam String deleteReason) {
+		boolean temp = flowEngineService.deleteProcessInstance(processInstanceId, deleteReason);
+		return R.status(temp);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowManagerController.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowManagerController.java
new file mode 100644
index 0000000..083d4fd
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowManagerController.java
@@ -0,0 +1,123 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.engine.controller;
+
+import cn.gistack.flow.engine.constant.FlowEngineConstant;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.flow.engine.entity.FlowProcess;
+import cn.gistack.flow.engine.service.FlowEngineService;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 流程管理接口
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@RequestMapping("manager")
+@AllArgsConstructor
+@Api(value = "流程管理接口", tags = "流程管理接口")
+@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+public class FlowManagerController {
+
+	private final FlowEngineService flowEngineService;
+
+	/**
+	 * 分页
+	 */
+	@GetMapping("list")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "分页", notes = "传入流程类型")
+	public R<IPage<FlowProcess>> list(@ApiParam("流程类型") String category, Query query, @RequestParam(required = false, defaultValue = "1") Integer mode) {
+		IPage<FlowProcess> pages = flowEngineService.selectProcessPage(Condition.getPage(query), category, mode);
+		return R.data(pages);
+	}
+
+
+	/**
+	 * 变更流程状态
+	 *
+	 * @param state     状态
+	 * @param processId 流程id
+	 */
+	@PostMapping("change-state")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "变更流程状态", notes = "传入state,processId")
+	public R changeState(@RequestParam String state, @RequestParam String processId) {
+		String msg = flowEngineService.changeState(state, processId);
+		return R.success(msg);
+	}
+
+	/**
+	 * 删除部署流程
+	 *
+	 * @param deploymentIds 部署流程id集合
+	 */
+	@PostMapping("delete-deployment")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "删除部署流程", notes = "部署流程id集合")
+	public R deleteDeployment(String deploymentIds) {
+		return R.status(flowEngineService.deleteDeployment(deploymentIds));
+	}
+
+	/**
+	 * 检查流程文件格式
+	 *
+	 * @param file 流程文件
+	 */
+	@PostMapping("check-upload")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "上传部署流程文件", notes = "传入文件")
+	public R checkUpload(@RequestParam MultipartFile file) {
+		boolean temp = Objects.requireNonNull(file.getOriginalFilename()).endsWith(FlowEngineConstant.SUFFIX);
+		return R.data(Kv.create().set("name", file.getOriginalFilename()).set("success", temp));
+	}
+
+	/**
+	 * 上传部署流程文件
+	 *
+	 * @param files    流程文件
+	 * @param category 类型
+	 */
+	@PostMapping("deploy-upload")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "上传部署流程文件", notes = "传入文件")
+	public R deployUpload(@RequestParam List<MultipartFile> files,
+						  @RequestParam String category,
+						  @RequestParam(required = false, defaultValue = "") String tenantIds) {
+		return R.status(flowEngineService.deployUpload(files, category, Func.toStrList(tenantIds)));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowModelController.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowModelController.java
new file mode 100644
index 0000000..4d462f5
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowModelController.java
@@ -0,0 +1,118 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.engine.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.flow.engine.entity.FlowModel;
+import cn.gistack.flow.engine.service.FlowEngineService;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.Map;
+
+/**
+ * 流程模型控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@RequestMapping("model")
+@AllArgsConstructor
+@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+public class FlowModelController {
+
+	private final FlowEngineService flowEngineService;
+
+	/**
+	 * 分页
+	 */
+	@GetMapping("/list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "modelKey", value = "模型标识", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "name", value = "模型名称", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "分页", notes = "传入notice")
+	public R<IPage<FlowModel>> list(@ApiIgnore @RequestParam Map<String, Object> flow, Query query) {
+		IPage<FlowModel> pages = flowEngineService.page(Condition.getPage(query), Condition.getQueryWrapper(flow, FlowModel.class)
+			.select("id,model_key modelKey,name,description,version,created,last_updated lastUpdated")
+			.orderByDesc("last_updated"));
+		return R.data(pages);
+	}
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "删除", notes = "传入主键集合")
+	public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
+		boolean temp = flowEngineService.removeByIds(Func.toStrList(ids));
+		return R.status(temp);
+	}
+
+	/**
+	 * 部署
+	 */
+	@PostMapping("/deploy")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "部署", notes = "传入模型id和分类")
+	public R deploy(@ApiParam(value = "模型id") @RequestParam String modelId,
+					@ApiParam(value = "工作流分类") @RequestParam String category,
+					@ApiParam(value = "租户ID") @RequestParam(required = false, defaultValue = "") String tenantIds) {
+		boolean temp = flowEngineService.deployModel(modelId, category, Func.toStrList(tenantIds));
+		return R.status(temp);
+	}
+
+	@PostMapping("submit")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "保存/编辑")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "id", value = "模型id"),
+		@ApiImplicitParam(name = "name", value = "模型名称", required = true),
+		@ApiImplicitParam(name = "modelKey", value = "模型key", required = true),
+		@ApiImplicitParam(name = "description", value = "模型描述"),
+		@ApiImplicitParam(name = "xml", value = "模型xml", required = true),
+	})
+	public R<FlowModel> submit(@RequestBody @ApiIgnore FlowModel model) {
+		return R.data(flowEngineService.submitModel(model));
+	}
+
+	@GetMapping("detail")
+	@ApiOperation(value = "详情")
+	@ApiOperationSupport(order = 5)
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "id", value = "模型id", required = true),
+	})
+	public R<FlowModel> detail(String id) {
+		return R.data(flowEngineService.getById(id));
+	}
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowProcessController.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowProcessController.java
new file mode 100644
index 0000000..eaddf31
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/controller/FlowProcessController.java
@@ -0,0 +1,96 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.engine.controller;
+
+import cn.gistack.flow.core.entity.BladeFlow;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import cn.gistack.flow.engine.service.FlowEngineService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 流程通用控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@Slf4j
+@RestController
+@AllArgsConstructor
+@RequestMapping("process")
+public class FlowProcessController {
+
+	private static final String IMAGE_NAME = "image";
+	private final FlowEngineService flowEngineService;
+
+	/**
+	 * 获取流转历史列表
+	 *
+	 * @param processInstanceId 流程实例id
+	 * @param startActivityId   开始节点id
+	 * @param endActivityId     结束节点id
+	 */
+	@GetMapping(value = "history-flow-list")
+	public R<List<BladeFlow>> historyFlowList(@RequestParam String processInstanceId, String startActivityId, String endActivityId) {
+		return R.data(flowEngineService.historyFlowList(processInstanceId, startActivityId, endActivityId));
+	}
+
+	/**
+	 * 流程节点进程图
+	 *
+	 * @param processDefinitionId 流程id
+	 * @param processInstanceId   流程实例id
+	 */
+	@GetMapping(value = "model-view")
+	public R modelView(String processDefinitionId, String processInstanceId) {
+		return R.data(flowEngineService.modelView(processDefinitionId, processInstanceId));
+	}
+
+	/**
+	 * 流程节点进程图
+	 *
+	 * @param processInstanceId   流程实例id
+	 * @param httpServletResponse http响应
+	 */
+	@GetMapping(value = "diagram-view")
+	public void diagramView(String processInstanceId, HttpServletResponse httpServletResponse) {
+		flowEngineService.diagramView(processInstanceId, httpServletResponse);
+	}
+
+	/**
+	 * 流程图展示
+	 *
+	 * @param processDefinitionId 流程id
+	 * @param processInstanceId   实例id
+	 * @param resourceType        资源类型
+	 * @param response            响应
+	 */
+	@GetMapping("resource-view")
+	public void resourceView(@RequestParam String processDefinitionId, String processInstanceId, @RequestParam(defaultValue = IMAGE_NAME) String resourceType, HttpServletResponse response) {
+		flowEngineService.resourceView(processDefinitionId, processInstanceId, resourceType, response);
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/entity/FlowExecution.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/entity/FlowExecution.java
new file mode 100644
index 0000000..5d8649e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/entity/FlowExecution.java
@@ -0,0 +1,50 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.engine.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 运行实体类
+ *
+ * @author Chill
+ */
+@Data
+public class FlowExecution implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	private String id;
+	private String name;
+	private String startUserId;
+	private String startUser;
+	private Date startTime;
+	private String taskDefinitionId;
+	private String taskDefinitionKey;
+	private String category;
+	private String categoryName;
+	private String processInstanceId;
+	private String processDefinitionId;
+	private String processDefinitionKey;
+	private String activityId;
+	private int suspensionState;
+	private String executionId;
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/entity/FlowModel.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/entity/FlowModel.java
new file mode 100644
index 0000000..37255af
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/entity/FlowModel.java
@@ -0,0 +1,58 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.engine.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 流程模型
+ *
+ * @author Chill
+ */
+@Data
+@TableName("ACT_DE_MODEL")
+public class FlowModel implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	public static final int MODEL_TYPE_BPMN = 0;
+	public static final int MODEL_TYPE_FORM = 2;
+	public static final int MODEL_TYPE_APP = 3;
+	public static final int MODEL_TYPE_DECISION_TABLE = 4;
+	public static final int MODEL_TYPE_CMMN = 5;
+
+	private String id;
+	private String name;
+	private String modelKey;
+	private String description;
+	private Date created;
+	private Date lastUpdated;
+	private String createdBy;
+	private String lastUpdatedBy;
+	private Integer version;
+	private String modelEditorJson;
+	private String modelComment;
+	private Integer modelType;
+	private String tenantId;
+	private byte[] thumbnail;
+	private String modelEditorXml;
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/entity/FlowProcess.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/entity/FlowProcess.java
new file mode 100644
index 0000000..cddffc0
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/entity/FlowProcess.java
@@ -0,0 +1,65 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.engine.entity;
+
+import cn.gistack.flow.engine.utils.FlowCache;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.flowable.engine.impl.persistence.entity.ProcessDefinitionEntityImpl;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * FlowProcess
+ *
+ * @author Chill
+ */
+@Data
+@NoArgsConstructor
+public class FlowProcess implements Serializable {
+
+	private String id;
+	private String tenantId;
+	private String name;
+	private String key;
+	private String category;
+	private String categoryName;
+	private Integer version;
+	private String deploymentId;
+	private String resourceName;
+	private String diagramResourceName;
+	private Integer suspensionState;
+	private Date deploymentTime;
+
+	public FlowProcess(ProcessDefinitionEntityImpl entity) {
+		if (entity != null) {
+			this.id = entity.getId();
+			this.tenantId = entity.getTenantId();
+			this.name = entity.getName();
+			this.key = entity.getKey();
+			this.category = entity.getCategory();
+			this.categoryName = FlowCache.getCategoryName(entity.getCategory());
+			this.version = entity.getVersion();
+			this.deploymentId = entity.getDeploymentId();
+			this.resourceName = entity.getResourceName();
+			this.diagramResourceName = entity.getDiagramResourceName();
+			this.suspensionState = entity.getSuspensionState();
+		}
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/mapper/FlowMapper.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/mapper/FlowMapper.java
new file mode 100644
index 0000000..4ea0597
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/mapper/FlowMapper.java
@@ -0,0 +1,46 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.engine.mapper;
+
+import cn.gistack.flow.engine.entity.FlowModel;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
+
+/**
+ * FlowMapper.
+ *
+ * @author Chill
+ */
+public interface FlowMapper extends BaseMapper<FlowModel> {
+
+	/**
+	 * 自定义分页
+	 * @param page
+	 * @param flowModel
+	 * @return
+	 */
+	List<FlowModel> selectFlowPage(IPage page, FlowModel flowModel);
+
+	/**
+	 * 获取模型
+	 * @param parentModelId
+	 * @return
+	 */
+	List<FlowModel> findByParentModelId(String parentModelId);
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/mapper/FlowMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/mapper/FlowMapper.xml
new file mode 100644
index 0000000..4ed0bfd
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/mapper/FlowMapper.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.flow.engine.mapper.FlowMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="flowModelResultMap" type="cn.gistack.flow.engine.entity.FlowModel">
+        <result column="id" property="id"/>
+        <result column="name" property="name"/>
+        <result column="model_key" property="modelKey"/>
+        <result column="description" property="description"/>
+        <result column="model_comment" property="modelComment"/>
+        <result column="created" property="created"/>
+        <result column="created_by" property="createdBy"/>
+        <result column="last_updated" property="lastUpdated"/>
+        <result column="last_updated_by" property="lastUpdatedBy"/>
+        <result column="version" property="version"/>
+        <result column="model_editor_json" property="modelEditorJson"/>
+        <result column="thumbnail" property="thumbnail"/>
+        <result column="model_type" property="modelType"/>
+        <result column="tenant_id" property="tenantId"/>
+    </resultMap>
+
+    <select id="selectFlowPage" resultMap="flowModelResultMap">
+        SELECT
+            a.id,
+            a.name,
+            a.model_key,
+            a.description,
+            a.model_comment,
+            a.created,
+            a.created_by,
+            a.last_updated,
+            a.last_updated_by,
+            a.version,
+            a.model_editor_json,
+            a.thumbnail,
+            a.model_type,
+            a.tenant_id
+        FROM
+            ACT_DE_MODEL a
+        WHERE
+            1 = 1
+        ORDER BY
+            a.created DESC
+    </select>
+
+    <select id="findByParentModelId" parameterType="string" resultMap="flowModelResultMap">
+        select model.* from ACT_DE_MODEL_RELATION modelrelation
+                                inner join ACT_DE_MODEL model on modelrelation.model_id = model.id
+        where modelrelation.parent_model_id = #{_parameter}
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/service/FlowEngineService.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/service/FlowEngineService.java
new file mode 100644
index 0000000..ae4d0e7
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/service/FlowEngineService.java
@@ -0,0 +1,166 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.engine.service;
+
+import cn.gistack.flow.core.entity.BladeFlow;
+import cn.gistack.flow.engine.entity.FlowExecution;
+import cn.gistack.flow.engine.entity.FlowModel;
+import cn.gistack.flow.engine.entity.FlowProcess;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * FlowService
+ *
+ * @author Chill
+ */
+public interface FlowEngineService extends IService<FlowModel> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page      分页工具
+	 * @param flowModel 流程模型
+	 * @return
+	 */
+	IPage<FlowModel> selectFlowPage(IPage<FlowModel> page, FlowModel flowModel);
+
+	/**
+	 * 流程管理列表
+	 *
+	 * @param page     分页工具
+	 * @param category 分类
+	 * @param mode     形态
+	 * @return
+	 */
+	IPage<FlowProcess> selectProcessPage(IPage<FlowProcess> page, String category, Integer mode);
+
+	/**
+	 * 流程管理列表
+	 *
+	 * @param page                 分页工具
+	 * @param processInstanceId    流程实例id
+	 * @param processDefinitionKey 流程key
+	 * @return
+	 */
+	IPage<FlowExecution> selectFollowPage(IPage<FlowExecution> page, String processInstanceId, String processDefinitionKey);
+
+	/**
+	 * 获取流转历史列表
+	 *
+	 * @param processInstanceId 流程实例id
+	 * @param startActivityId   开始节点id
+	 * @param endActivityId     结束节点id
+	 * @return
+	 */
+	List<BladeFlow> historyFlowList(String processInstanceId, String startActivityId, String endActivityId);
+
+	/**
+	 * 变更流程状态
+	 *
+	 * @param state     状态
+	 * @param processId 流程ID
+	 * @return
+	 */
+	String changeState(String state, String processId);
+
+	/**
+	 * 删除部署流程
+	 *
+	 * @param deploymentIds 部署流程id集合
+	 * @return
+	 */
+	boolean deleteDeployment(String deploymentIds);
+
+	/**
+	 * 上传部署流程
+	 *
+	 * @param files        流程配置文件
+	 * @param category     流程分类
+	 * @param tenantIdList 租户id集合
+	 * @return
+	 */
+	boolean deployUpload(List<MultipartFile> files, String category, List<String> tenantIdList);
+
+	/**
+	 * 部署流程
+	 *
+	 * @param modelId      模型id
+	 * @param category     分类
+	 * @param tenantIdList 租户id集合
+	 * @return
+	 */
+	boolean deployModel(String modelId, String category, List<String> tenantIdList);
+
+	/**
+	 * 删除流程实例
+	 *
+	 * @param processInstanceId 流程实例id
+	 * @param deleteReason      删除原因
+	 * @return
+	 */
+	boolean deleteProcessInstance(String processInstanceId, String deleteReason);
+
+
+	/**
+	 * 保存/更新模型
+	 *
+	 * @param model 模型
+	 * @return 模型
+	 */
+	FlowModel submitModel(FlowModel model);
+
+	/**
+	 * 流程节点进程图
+	 *
+	 * @param processDefinitionId
+	 * @param processInstanceId
+	 * @return
+	 */
+	Map<String, Object> modelView(String processDefinitionId, String processInstanceId);
+
+	/**
+	 * 流程节点进程图
+	 *
+	 * @param processInstanceId
+	 * @param httpServletResponse
+	 */
+	void diagramView(String processInstanceId, HttpServletResponse httpServletResponse);
+
+	/**
+	 * 流程图展示
+	 *
+	 * @param processDefinitionId
+	 * @param processInstanceId
+	 * @param resourceType
+	 * @param response
+	 */
+	void resourceView(String processDefinitionId, String processInstanceId, String resourceType, HttpServletResponse response);
+
+	/**
+	 * 获取XML
+	 *
+	 * @param model
+	 * @return
+	 */
+	byte[] getModelEditorXML(FlowModel model);
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/service/impl/FlowEngineServiceImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/service/impl/FlowEngineServiceImpl.java
new file mode 100644
index 0000000..f412d51
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/service/impl/FlowEngineServiceImpl.java
@@ -0,0 +1,559 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.engine.service.impl;
+
+import cn.gistack.flow.core.entity.BladeFlow;
+import cn.gistack.flow.core.enums.FlowModeEnum;
+import cn.gistack.flow.core.utils.TaskUtil;
+import cn.gistack.flow.engine.utils.FlowCache;
+import cn.gistack.system.user.cache.UserCache;
+import cn.gistack.system.user.entity.User;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.flowable.bpmn.converter.BpmnXMLConverter;
+import org.flowable.bpmn.model.BpmnModel;
+import org.flowable.bpmn.model.Process;
+import org.flowable.common.engine.impl.util.IoUtil;
+import org.flowable.common.engine.impl.util.io.StringStreamSource;
+import org.flowable.editor.language.json.converter.BpmnJsonConverter;
+import org.flowable.engine.*;
+import org.flowable.engine.history.HistoricActivityInstance;
+import org.flowable.engine.history.HistoricProcessInstance;
+import org.flowable.engine.impl.persistence.entity.ExecutionEntityImpl;
+import org.flowable.engine.impl.persistence.entity.ProcessDefinitionEntityImpl;
+import org.flowable.engine.repository.Deployment;
+import org.flowable.engine.repository.ProcessDefinition;
+import org.flowable.engine.repository.ProcessDefinitionQuery;
+import org.flowable.engine.runtime.ProcessInstance;
+import org.flowable.engine.runtime.ProcessInstanceQuery;
+import org.flowable.engine.task.Comment;
+import org.flowable.image.ProcessDiagramGenerator;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.FileUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
+import cn.gistack.flow.engine.constant.FlowEngineConstant;
+import cn.gistack.flow.engine.entity.FlowExecution;
+import cn.gistack.flow.engine.entity.FlowModel;
+import cn.gistack.flow.engine.entity.FlowProcess;
+import cn.gistack.flow.engine.mapper.FlowMapper;
+import cn.gistack.flow.engine.service.FlowEngineService;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.*;
+
+/**
+ * 工作流服务实现类
+ *
+ * @author Chill
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class FlowEngineServiceImpl extends ServiceImpl<FlowMapper, FlowModel> implements FlowEngineService {
+	private static final String ALREADY_IN_STATE = "already in state";
+	private static final String USR_TASK = "userTask";
+	private static final String IMAGE_NAME = "image";
+	private static final String XML_NAME = "xml";
+	private static final Integer INT_1024 = 1024;
+	private static final BpmnJsonConverter BPMN_JSON_CONVERTER = new BpmnJsonConverter();
+	private static final BpmnXMLConverter BPMN_XML_CONVERTER = new BpmnXMLConverter();
+	private final ObjectMapper objectMapper;
+	private final RepositoryService repositoryService;
+	private final RuntimeService runtimeService;
+	private final HistoryService historyService;
+	private final TaskService taskService;
+	private final ProcessEngine processEngine;
+
+	@Override
+	public IPage<FlowModel> selectFlowPage(IPage<FlowModel> page, FlowModel flowModel) {
+		return page.setRecords(baseMapper.selectFlowPage(page, flowModel));
+	}
+
+	@Override
+	public IPage<FlowProcess> selectProcessPage(IPage<FlowProcess> page, String category, Integer mode) {
+		ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery().latestVersion().orderByProcessDefinitionKey().asc();
+		// 通用流程
+		if (mode == FlowModeEnum.COMMON.getMode()) {
+			processDefinitionQuery.processDefinitionWithoutTenantId();
+		}
+		// 定制流程
+		else if (!AuthUtil.isAdministrator()) {
+			processDefinitionQuery.processDefinitionTenantId(AuthUtil.getTenantId());
+		}
+		if (StringUtils.isNotEmpty(category)) {
+			processDefinitionQuery.processDefinitionCategory(category);
+		}
+		List<ProcessDefinition> processDefinitionList = processDefinitionQuery.listPage(Func.toInt((page.getCurrent() - 1) * page.getSize()), Func.toInt(page.getSize()));
+		List<FlowProcess> flowProcessList = new ArrayList<>();
+		processDefinitionList.forEach(processDefinition -> {
+			String deploymentId = processDefinition.getDeploymentId();
+			Deployment deployment = repositoryService.createDeploymentQuery().deploymentId(deploymentId).singleResult();
+			FlowProcess flowProcess = new FlowProcess((ProcessDefinitionEntityImpl) processDefinition);
+			flowProcess.setDeploymentTime(deployment.getDeploymentTime());
+			flowProcessList.add(flowProcess);
+		});
+		page.setTotal(processDefinitionQuery.count());
+		page.setRecords(flowProcessList);
+		return page;
+	}
+
+	@Override
+	public IPage<FlowExecution> selectFollowPage(IPage<FlowExecution> page, String processInstanceId, String processDefinitionKey) {
+		ProcessInstanceQuery processInstanceQuery = runtimeService.createProcessInstanceQuery();
+		if (StringUtil.isNotBlank(processInstanceId)) {
+			processInstanceQuery.processInstanceId(processInstanceId);
+		}
+		if (StringUtil.isNotBlank(processDefinitionKey)) {
+			processInstanceQuery.processDefinitionKey(processDefinitionKey);
+		}
+		List<FlowExecution> flowList = new ArrayList<>();
+		List<ProcessInstance> procInsList = processInstanceQuery.listPage(Func.toInt((page.getCurrent() - 1) * page.getSize()), Func.toInt(page.getSize()));
+		procInsList.forEach(processInstance -> {
+			ExecutionEntityImpl execution = (ExecutionEntityImpl) processInstance;
+			FlowExecution flowExecution = new FlowExecution();
+			flowExecution.setId(execution.getId());
+			flowExecution.setName(execution.getName());
+			flowExecution.setStartUserId(execution.getStartUserId());
+			User taskUser = UserCache.getUserByTaskUser(execution.getStartUserId());
+			if (taskUser != null) {
+				flowExecution.setStartUser(taskUser.getName());
+			}
+			flowExecution.setStartTime(execution.getStartTime());
+			flowExecution.setExecutionId(execution.getId());
+			flowExecution.setProcessInstanceId(execution.getProcessInstanceId());
+			flowExecution.setProcessDefinitionId(execution.getProcessDefinitionId());
+			flowExecution.setProcessDefinitionKey(execution.getProcessDefinitionKey());
+			flowExecution.setSuspensionState(execution.getSuspensionState());
+			FlowProcess processDefinition = FlowCache.getProcessDefinition(execution.getProcessDefinitionId());
+			flowExecution.setCategory(processDefinition.getCategory());
+			flowExecution.setCategoryName(FlowCache.getCategoryName(processDefinition.getCategory()));
+			flowList.add(flowExecution);
+		});
+		page.setTotal(processInstanceQuery.count());
+		page.setRecords(flowList);
+		return page;
+	}
+
+	@Override
+	public List<BladeFlow> historyFlowList(String processInstanceId, String startActivityId, String endActivityId) {
+		List<BladeFlow> flowList = new LinkedList<>();
+		List<HistoricActivityInstance> historicActivityInstanceList = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().orderByHistoricActivityInstanceEndTime().asc().list();
+		boolean start = false;
+		Map<String, Integer> activityMap = new HashMap<>(16);
+		for (int i = 0; i < historicActivityInstanceList.size(); i++) {
+			HistoricActivityInstance historicActivityInstance = historicActivityInstanceList.get(i);
+			// 过滤开始节点前的节点
+			if (StringUtil.isNotBlank(startActivityId) && startActivityId.equals(historicActivityInstance.getActivityId())) {
+				start = true;
+			}
+			if (StringUtil.isNotBlank(startActivityId) && !start) {
+				continue;
+			}
+			// 显示开始节点和结束节点,并且执行人不为空的任务
+			if (StringUtils.equals(USR_TASK, historicActivityInstance.getActivityType())
+				|| FlowEngineConstant.START_EVENT.equals(historicActivityInstance.getActivityType())
+				|| FlowEngineConstant.END_EVENT.equals(historicActivityInstance.getActivityType())) {
+				// 给节点增加序号
+				Integer activityNum = activityMap.get(historicActivityInstance.getActivityId());
+				if (activityNum == null) {
+					activityMap.put(historicActivityInstance.getActivityId(), activityMap.size());
+				}
+				BladeFlow flow = new BladeFlow();
+				flow.setHistoryActivityId(historicActivityInstance.getActivityId());
+				flow.setHistoryActivityName(historicActivityInstance.getActivityName());
+				flow.setCreateTime(historicActivityInstance.getStartTime());
+				flow.setEndTime(historicActivityInstance.getEndTime());
+				String durationTime = DateUtil.secondToTime(Func.toLong(historicActivityInstance.getDurationInMillis(), 0L) / 1000);
+				flow.setHistoryActivityDurationTime(durationTime);
+				// 获取流程发起人名称
+				if (FlowEngineConstant.START_EVENT.equals(historicActivityInstance.getActivityType())) {
+					List<HistoricProcessInstance> processInstanceList = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).orderByProcessInstanceStartTime().asc().list();
+					if (processInstanceList.size() > 0) {
+						if (StringUtil.isNotBlank(processInstanceList.get(0).getStartUserId())) {
+							String taskUser = processInstanceList.get(0).getStartUserId();
+							User user = UserCache.getUser(TaskUtil.getUserId(taskUser));
+							if (user != null) {
+								flow.setAssignee(historicActivityInstance.getAssignee());
+								flow.setAssigneeName(user.getName());
+							}
+						}
+					}
+				}
+				// 获取任务执行人名称
+				if (StringUtil.isNotBlank(historicActivityInstance.getAssignee())) {
+					User user = UserCache.getUser(TaskUtil.getUserId(historicActivityInstance.getAssignee()));
+					if (user != null) {
+						flow.setAssignee(historicActivityInstance.getAssignee());
+						flow.setAssigneeName(user.getName());
+					}
+				}
+				// 获取意见评论内容
+				if (StringUtil.isNotBlank(historicActivityInstance.getTaskId())) {
+					List<Comment> commentList = taskService.getTaskComments(historicActivityInstance.getTaskId());
+					if (commentList.size() > 0) {
+						flow.setComment(commentList.get(0).getFullMessage());
+					}
+				}
+				flowList.add(flow);
+			}
+			// 过滤结束节点后的节点
+			if (StringUtils.isNotBlank(endActivityId) && endActivityId.equals(historicActivityInstance.getActivityId())) {
+				boolean temp = false;
+				Integer activityNum = activityMap.get(historicActivityInstance.getActivityId());
+				// 该活动节点,后续节点是否在结束节点之前,在后续节点中是否存在
+				for (int j = i + 1; j < historicActivityInstanceList.size(); j++) {
+					HistoricActivityInstance hi = historicActivityInstanceList.get(j);
+					Integer activityNumA = activityMap.get(hi.getActivityId());
+					boolean numberTemp = activityNumA != null && activityNumA < activityNum;
+					boolean equalsTemp = StringUtils.equals(hi.getActivityId(), historicActivityInstance.getActivityId());
+					if (numberTemp || equalsTemp) {
+						temp = true;
+					}
+				}
+				if (!temp) {
+					break;
+				}
+			}
+		}
+		return flowList;
+	}
+
+	@Override
+	public String changeState(String state, String processId) {
+		try {
+			if (state.equals(FlowEngineConstant.ACTIVE)) {
+				repositoryService.activateProcessDefinitionById(processId, true, null);
+				return StringUtil.format("激活ID为 [{}] 的流程成功", processId);
+			} else if (state.equals(FlowEngineConstant.SUSPEND)) {
+				repositoryService.suspendProcessDefinitionById(processId, true, null);
+				return StringUtil.format("挂起ID为 [{}] 的流程成功", processId);
+			} else {
+				return "暂无流程变更";
+			}
+		} catch (Exception e) {
+			if (e.getMessage().contains(ALREADY_IN_STATE)) {
+				return StringUtil.format("ID为 [{}] 的流程已是此状态,无需操作", processId);
+			}
+			return e.getMessage();
+		}
+	}
+
+	@Override
+	public boolean deleteDeployment(String deploymentIds) {
+		Func.toStrList(deploymentIds).forEach(deploymentId -> repositoryService.deleteDeployment(deploymentId, true));
+		return true;
+	}
+
+	@Override
+	public boolean deployUpload(List<MultipartFile> files, String category, List<String> tenantIdList) {
+		files.forEach(file -> {
+			try {
+				String fileName = file.getOriginalFilename();
+				InputStream fileInputStream = file.getInputStream();
+				byte[] bytes = FileUtil.copyToByteArray(fileInputStream);
+				if (Func.isNotEmpty(tenantIdList)) {
+					tenantIdList.forEach(tenantId -> {
+						Deployment deployment = repositoryService.createDeployment().addBytes(fileName, bytes).tenantId(tenantId).deploy();
+						deploy(deployment, category);
+					});
+				} else {
+					Deployment deployment = repositoryService.createDeployment().addBytes(fileName, bytes).deploy();
+					deploy(deployment, category);
+				}
+			} catch (IOException e) {
+				e.printStackTrace();
+			}
+		});
+		return true;
+	}
+
+	@Override
+	public boolean deployModel(String modelId, String category, List<String> tenantIdList) {
+		FlowModel model = this.getById(modelId);
+		if (model == null) {
+			throw new ServiceException("未找到模型 id: " + modelId);
+		}
+		byte[] bytes = getBpmnXML(model);
+		String processName = model.getName();
+		if (!StringUtil.endsWithIgnoreCase(processName, FlowEngineConstant.SUFFIX)) {
+			processName += FlowEngineConstant.SUFFIX;
+		}
+		String finalProcessName = processName;
+		if (Func.isNotEmpty(tenantIdList)) {
+			tenantIdList.forEach(tenantId -> {
+				Deployment deployment = repositoryService.createDeployment().addBytes(finalProcessName, bytes).name(model.getName()).key(model.getModelKey()).tenantId(tenantId).deploy();
+				deploy(deployment, category);
+			});
+		} else {
+			Deployment deployment = repositoryService.createDeployment().addBytes(finalProcessName, bytes).name(model.getName()).key(model.getModelKey()).deploy();
+			deploy(deployment, category);
+		}
+		return true;
+	}
+
+	@Override
+	public boolean deleteProcessInstance(String processInstanceId, String deleteReason) {
+		runtimeService.deleteProcessInstance(processInstanceId, deleteReason);
+		return true;
+	}
+
+	private void deploy(Deployment deployment, String category) {
+		log.debug("流程部署--------deploy:  " + deployment + "  分类---------->" + category);
+		List<ProcessDefinition> list = repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).list();
+		StringBuilder logBuilder = new StringBuilder(500);
+		List<Object> logArgs = new ArrayList<>();
+		// 设置流程分类
+		for (ProcessDefinition processDefinition : list) {
+			if (StringUtil.isNotBlank(category)) {
+				repositoryService.setProcessDefinitionCategory(processDefinition.getId(), category);
+			}
+			logBuilder.append("部署成功,流程ID={} \n");
+			logArgs.add(processDefinition.getId());
+		}
+		if (list.size() == 0) {
+			throw new ServiceException("部署失败,未找到流程");
+		} else {
+			log.info(logBuilder.toString(), logArgs.toArray());
+		}
+	}
+
+	@Override
+	public FlowModel submitModel(FlowModel model) {
+		FlowModel flowModel = new FlowModel();
+		flowModel.setId(model.getId());
+		flowModel.setVersion(Func.toInt(model.getVersion(), 0) + 1);
+		flowModel.setName(model.getName());
+		flowModel.setModelKey(model.getModelKey());
+		flowModel.setModelType(FlowModel.MODEL_TYPE_BPMN);
+		flowModel.setCreatedBy(TaskUtil.getTaskUser());
+		flowModel.setDescription(model.getDescription());
+		flowModel.setLastUpdated(Calendar.getInstance().getTime());
+		flowModel.setLastUpdatedBy(TaskUtil.getTaskUser());
+		flowModel.setTenantId(AuthUtil.getTenantId());
+		flowModel.setModelEditorXml(model.getModelEditorXml());
+		if (StringUtil.isBlank(model.getId())) {
+			flowModel.setCreated(Calendar.getInstance().getTime());
+		}
+		if (StringUtil.isNotBlank(model.getModelEditorXml())) {
+			flowModel.setModelEditorJson(getBpmnJson(model.getModelEditorXml()));
+		}
+		this.saveOrUpdate(flowModel);
+		return flowModel;
+	}
+
+	@Override
+	public Map<String, Object> modelView(String processDefinitionId, String processInstanceId) {
+		Map<String, Object> result = new HashMap<>();
+		// 节点标记
+		if (StringUtil.isNotBlank(processInstanceId)) {
+			result.put("flow", this.historyFlowList(processInstanceId, null, null));
+			HistoricProcessInstance processInstance = historyService.createHistoricProcessInstanceQuery()
+				.processInstanceId(processInstanceId)
+				.singleResult();
+			processDefinitionId = processInstance.getProcessDefinitionId();
+		}
+		BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
+		// 流程图展示
+		result.put("xml", new String(new BpmnXMLConverter().convertToXML(bpmnModel)));
+		return result;
+	}
+
+	@Override
+	public void diagramView(String processInstanceId, HttpServletResponse httpServletResponse) {
+		// 获得当前活动的节点
+		String processDefinitionId;
+		// 如果流程已经结束,则得到结束节点
+		if (this.isFinished(processInstanceId)) {
+			HistoricProcessInstance pi = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
+			processDefinitionId = pi.getProcessDefinitionId();
+		} else {
+			// 如果流程没有结束,则取当前活动节点
+			// 根据流程实例ID获得当前处于活动状态的ActivityId合集
+			ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
+			processDefinitionId = pi.getProcessDefinitionId();
+		}
+		List<String> highLightedActivities = new ArrayList<>();
+
+		// 获得活动的节点
+		List<HistoricActivityInstance> highLightedActivityList = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list();
+
+		for (HistoricActivityInstance tempActivity : highLightedActivityList) {
+			String activityId = tempActivity.getActivityId();
+			highLightedActivities.add(activityId);
+		}
+
+		List<String> flows = new ArrayList<>();
+		// 获取流程图
+		BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId);
+		ProcessEngineConfiguration engConf = processEngine.getProcessEngineConfiguration();
+
+		ProcessDiagramGenerator diagramGenerator = engConf.getProcessDiagramGenerator();
+		InputStream in = diagramGenerator.generateDiagram(bpmnModel, "bmp", highLightedActivities, flows, engConf.getActivityFontName(),
+			engConf.getLabelFontName(), engConf.getAnnotationFontName(), engConf.getClassLoader(), 1.0, true);
+		OutputStream out = null;
+		byte[] buf = new byte[1024];
+		int length;
+		try {
+			out = httpServletResponse.getOutputStream();
+			while ((length = in.read(buf)) != -1) {
+				out.write(buf, 0, length);
+			}
+		} catch (IOException e) {
+			log.error("操作异常", e);
+		} finally {
+			IoUtil.closeSilently(out);
+			IoUtil.closeSilently(in);
+		}
+	}
+
+	@Override
+	public void resourceView(String processDefinitionId, String processInstanceId, String resourceType, HttpServletResponse response) {
+		if (StringUtil.isAllBlank(processDefinitionId, processInstanceId)) {
+			return;
+		}
+		if (StringUtil.isBlank(processDefinitionId)) {
+			ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
+			processDefinitionId = processInstance.getProcessDefinitionId();
+		}
+		ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefinitionId).singleResult();
+		String resourceName = "";
+		if (resourceType.equals(IMAGE_NAME)) {
+			resourceName = processDefinition.getDiagramResourceName();
+		} else if (resourceType.equals(XML_NAME)) {
+			resourceName = processDefinition.getResourceName();
+		}
+		try {
+			InputStream resourceAsStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), resourceName);
+			byte[] b = new byte[1024];
+			int len;
+			while ((len = resourceAsStream.read(b, 0, INT_1024)) != -1) {
+				response.getOutputStream().write(b, 0, len);
+			}
+		} catch (Exception exception) {
+			exception.printStackTrace();
+		}
+	}
+
+	@Override
+	public byte[] getModelEditorXML(FlowModel model) {
+		return getBpmnXML(model);
+	}
+
+	/**
+	 * 是否已完结
+	 *
+	 * @param processInstanceId 流程实例id
+	 * @return bool
+	 */
+	private boolean isFinished(String processInstanceId) {
+		return historyService.createHistoricProcessInstanceQuery().finished()
+			.processInstanceId(processInstanceId).count() > 0;
+	}
+
+
+	/**
+	 * xml转bpmn json
+	 *
+	 * @param xml xml
+	 * @return json
+	 */
+	private String getBpmnJson(String xml) {
+		return BPMN_JSON_CONVERTER.convertToJson(getBpmnModel(xml)).toString();
+	}
+
+	/**
+	 * xml转bpmnModel
+	 *
+	 * @param xml xml
+	 * @return bpmnModel
+	 */
+	private BpmnModel getBpmnModel(String xml) {
+		return BPMN_XML_CONVERTER.convertToBpmnModel(new StringStreamSource(xml), false, false);
+	}
+
+	private byte[] getBpmnXML(FlowModel model) {
+		BpmnModel bpmnModel = getBpmnModel(model);
+		return getBpmnXML(bpmnModel);
+	}
+
+	private byte[] getBpmnXML(BpmnModel bpmnModel) {
+		for (Process process : bpmnModel.getProcesses()) {
+			if (StringUtils.isNotEmpty(process.getId())) {
+				char firstCharacter = process.getId().charAt(0);
+				if (Character.isDigit(firstCharacter)) {
+					process.setId("a" + process.getId());
+				}
+			}
+		}
+		return BPMN_XML_CONVERTER.convertToXML(bpmnModel);
+	}
+
+	private BpmnModel getBpmnModel(FlowModel model) {
+		BpmnModel bpmnModel;
+		try {
+			Map<String, FlowModel> formMap = new HashMap<>(16);
+			Map<String, FlowModel> decisionTableMap = new HashMap<>(16);
+
+			List<FlowModel> referencedModels = baseMapper.findByParentModelId(model.getId());
+			for (FlowModel childModel : referencedModels) {
+				if (FlowModel.MODEL_TYPE_FORM == childModel.getModelType()) {
+					formMap.put(childModel.getId(), childModel);
+
+				} else if (FlowModel.MODEL_TYPE_DECISION_TABLE == childModel.getModelType()) {
+					decisionTableMap.put(childModel.getId(), childModel);
+				}
+			}
+			bpmnModel = getBpmnModel(model, formMap, decisionTableMap);
+		} catch (Exception e) {
+			log.error("Could not generate BPMN 2.0 model for {}", model.getId(), e);
+			throw new ServiceException("Could not generate BPMN 2.0 model");
+		}
+		return bpmnModel;
+	}
+
+	private BpmnModel getBpmnModel(FlowModel model, Map<String, FlowModel> formMap, Map<String, FlowModel> decisionTableMap) {
+		try {
+			ObjectNode editorJsonNode = (ObjectNode) objectMapper.readTree(model.getModelEditorJson());
+			Map<String, String> formKeyMap = new HashMap<>(16);
+			for (FlowModel formModel : formMap.values()) {
+				formKeyMap.put(formModel.getId(), formModel.getModelKey());
+			}
+			Map<String, String> decisionTableKeyMap = new HashMap<>(16);
+			for (FlowModel decisionTableModel : decisionTableMap.values()) {
+				decisionTableKeyMap.put(decisionTableModel.getId(), decisionTableModel.getModelKey());
+			}
+			return BPMN_JSON_CONVERTER.convertToBpmnModel(editorJsonNode, formKeyMap, decisionTableKeyMap);
+		} catch (Exception e) {
+			log.error("Could not generate BPMN 2.0 model for {}", model.getId(), e);
+			throw new ServiceException("Could not generate BPMN 2.0 model");
+		}
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/utils/FlowCache.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/utils/FlowCache.java
new file mode 100644
index 0000000..91c18ee
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/java/cn/gistack/flow/engine/utils/FlowCache.java
@@ -0,0 +1,78 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.engine.utils;
+
+import cn.gistack.system.cache.DictCache;
+import org.flowable.engine.RepositoryService;
+import org.flowable.engine.impl.persistence.entity.ProcessDefinitionEntityImpl;
+import org.flowable.engine.repository.ProcessDefinition;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.core.tool.utils.StringPool;
+import cn.gistack.flow.engine.entity.FlowProcess;
+
+import static org.springblade.core.cache.constant.CacheConstant.FLOW_CACHE;
+
+/**
+ * 流程缓存
+ *
+ * @author Chill
+ */
+public class FlowCache {
+
+	private static final String FLOW_DEFINITION_ID = "definition:id:";
+	private static RepositoryService repositoryService;
+
+	private static RepositoryService getRepositoryService() {
+		if (repositoryService == null) {
+			repositoryService = SpringUtil.getBean(RepositoryService.class);
+		}
+		return repositoryService;
+	}
+
+	/**
+	 * 获得流程定义对象
+	 *
+	 * @param processDefinitionId 流程对象id
+	 * @return
+	 */
+	public static FlowProcess getProcessDefinition(String processDefinitionId) {
+		return CacheUtil.get(FLOW_CACHE, FLOW_DEFINITION_ID, processDefinitionId, () -> {
+			ProcessDefinition processDefinition = getRepositoryService().createProcessDefinitionQuery().processDefinitionId(processDefinitionId).singleResult();
+			ProcessDefinitionEntityImpl processDefinitionEntity = BeanUtil.copy(processDefinition, ProcessDefinitionEntityImpl.class);
+			return new FlowProcess(processDefinitionEntity);
+		});
+	}
+
+	/**
+	 * 获取流程类型名
+	 *
+	 * @param category 流程类型
+	 * @return
+	 */
+	public static String getCategoryName(String category) {
+		String[] categoryArr = category.split(StringPool.UNDERSCORE);
+		if (categoryArr.length <= 1) {
+			return StringPool.EMPTY;
+		} else {
+			return DictCache.getValue(category.split(StringPool.UNDERSCORE)[0], Func.toInt(category.split(StringPool.UNDERSCORE)[1]));
+		}
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application-dev.yml b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..29ece1c
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application-dev.yml
@@ -0,0 +1,6 @@
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.flow.dev.url}
+    username: ${blade.datasource.flow.dev.username}
+    password: ${blade.datasource.flow.dev.password}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application-prod.yml b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..a967e8c
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application-prod.yml
@@ -0,0 +1,6 @@
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.flow.prod.url}
+    username: ${blade.datasource.flow.prod.username}
+    password: ${blade.datasource.flow.prod.password}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application-test.yml
new file mode 100644
index 0000000..2a393d5
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application-test.yml
@@ -0,0 +1,6 @@
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.flow.test.url}
+    username: ${blade.datasource.flow.test.username}
+    password: ${blade.datasource.flow.test.password}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application.yml b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application.yml
new file mode 100644
index 0000000..2919d5f
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/application.yml
@@ -0,0 +1,13 @@
+#服务器端口
+server:
+  port: 8008
+
+#flowable配置
+flowable:
+  activity-font-name: \u5B8B\u4F53
+  label-font-name: \u5B8B\u4F53
+  annotation-font-name: \u5B8B\u4F53
+  check-process-definitions: false
+  database-schema-update: false
+  async-executor-activate: false
+  async-history-executor-activate: false
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/processes/LeaveProcess.bpmn20.xml b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/processes/LeaveProcess.bpmn20.xml
new file mode 100644
index 0000000..4d86c05
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/main/resources/processes/LeaveProcess.bpmn20.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.flowable.org/processdef">
+    <process id="Leave" name="请假流程" isExecutable="true">
+        <documentation>请假流程</documentation>
+        <startEvent id="start" name="开始" flowable:initiator="applyUser"></startEvent>
+        <userTask id="hrTask" name="人事审批" flowable:assignee="${taskUser}">
+            <extensionElements>
+                <modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
+            </extensionElements>
+        </userTask>
+        <exclusiveGateway id="judgeTask"></exclusiveGateway>
+        <userTask id="managerTak" name="经理审批" flowable:candidateGroups="manager"></userTask>
+        <userTask id="bossTask" name="老板审批" flowable:candidateGroups="boss"></userTask>
+        <endEvent id="end" name="结束"></endEvent>
+        <sequenceFlow id="flow1" sourceRef="start" targetRef="hrTask"></sequenceFlow>
+        <sequenceFlow id="managerPassFlow" name="通过" sourceRef="managerTak" targetRef="end">
+            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass}]]></conditionExpression>
+        </sequenceFlow>
+        <userTask id="userTask" name="调整申请" flowable:assignee="${applyUser}">
+            <extensionElements>
+                <modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete>
+            </extensionElements>
+        </userTask>
+        <sequenceFlow id="bossPassFlow" name="通过" sourceRef="bossTask" targetRef="end">
+            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass}]]></conditionExpression>
+        </sequenceFlow>
+        <sequenceFlow id="judgeMore" name="大于3天" sourceRef="judgeTask" targetRef="bossTask">
+            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${days > 3}]]></conditionExpression>
+        </sequenceFlow>
+        <sequenceFlow id="managerNotPassFlow" name="驳回" sourceRef="managerTak" targetRef="userTask">
+            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!pass}]]></conditionExpression>
+        </sequenceFlow>
+        <sequenceFlow id="bossNotPassFlow" name="驳回" sourceRef="bossTask" targetRef="userTask">
+            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!pass}]]></conditionExpression>
+        </sequenceFlow>
+        <sequenceFlow id="hrPassFlow" name="同意" sourceRef="hrTask" targetRef="judgeTask">
+            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass}]]></conditionExpression>
+        </sequenceFlow>
+        <sequenceFlow id="hrNotPassFlow" name="驳回" sourceRef="hrTask" targetRef="userTask">
+            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!pass}]]></conditionExpression>
+        </sequenceFlow>
+        <sequenceFlow id="judgeLess" name="小于3天" sourceRef="judgeTask" targetRef="managerTak">
+            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${days <= 3}]]></conditionExpression>
+        </sequenceFlow>
+        <sequenceFlow id="userPassFlow" name="重新申请" sourceRef="userTask" targetRef="hrTask">
+            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass}]]></conditionExpression>
+        </sequenceFlow>
+        <sequenceFlow id="userNotPassFlow" name="关闭申请" sourceRef="userTask" targetRef="end">
+            <conditionExpression xsi:type="tFormalExpression"><![CDATA[${!pass}]]></conditionExpression>
+        </sequenceFlow>
+    </process>
+    <bpmndi:BPMNDiagram id="BPMNDiagram_Leave">
+        <bpmndi:BPMNPlane bpmnElement="Leave" id="BPMNPlane_Leave">
+            <bpmndi:BPMNShape bpmnElement="start" id="BPMNShape_start">
+                <omgdc:Bounds height="30.0" width="30.0" x="300.0" y="135.0"></omgdc:Bounds>
+            </bpmndi:BPMNShape>
+            <bpmndi:BPMNShape bpmnElement="hrTask" id="BPMNShape_hrTask">
+                <omgdc:Bounds height="80.0" width="100.0" x="360.0" y="165.0"></omgdc:Bounds>
+            </bpmndi:BPMNShape>
+            <bpmndi:BPMNShape bpmnElement="judgeTask" id="BPMNShape_judgeTask">
+                <omgdc:Bounds height="40.0" width="40.0" x="255.0" y="300.0"></omgdc:Bounds>
+            </bpmndi:BPMNShape>
+            <bpmndi:BPMNShape bpmnElement="managerTak" id="BPMNShape_managerTak">
+                <omgdc:Bounds height="80.0" width="100.0" x="555.0" y="75.0"></omgdc:Bounds>
+            </bpmndi:BPMNShape>
+            <bpmndi:BPMNShape bpmnElement="bossTask" id="BPMNShape_bossTask">
+                <omgdc:Bounds height="80.0" width="100.0" x="450.0" y="420.0"></omgdc:Bounds>
+            </bpmndi:BPMNShape>
+            <bpmndi:BPMNShape bpmnElement="end" id="BPMNShape_end">
+                <omgdc:Bounds height="28.0" width="28.0" x="705.0" y="390.0"></omgdc:Bounds>
+            </bpmndi:BPMNShape>
+            <bpmndi:BPMNShape bpmnElement="userTask" id="BPMNShape_userTask">
+                <omgdc:Bounds height="80.0" width="100.0" x="510.0" y="270.0"></omgdc:Bounds>
+            </bpmndi:BPMNShape>
+            <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
+                <omgdi:waypoint x="327.9390183144677" y="157.4917313275668"></omgdi:waypoint>
+                <omgdi:waypoint x="360.0" y="176.05263157894737"></omgdi:waypoint>
+            </bpmndi:BPMNEdge>
+            <bpmndi:BPMNEdge bpmnElement="hrPassFlow" id="BPMNEdge_hrPassFlow">
+                <omgdi:waypoint x="363.04347826086956" y="244.95000000000002"></omgdi:waypoint>
+                <omgdi:waypoint x="285.77299999999997" y="310.79999999999995"></omgdi:waypoint>
+            </bpmndi:BPMNEdge>
+            <bpmndi:BPMNEdge bpmnElement="hrNotPassFlow" id="BPMNEdge_hrNotPassFlow">
+                <omgdi:waypoint x="459.95" y="236.21875000000006"></omgdi:waypoint>
+                <omgdi:waypoint x="513.9794844818516" y="270.0"></omgdi:waypoint>
+            </bpmndi:BPMNEdge>
+            <bpmndi:BPMNEdge bpmnElement="judgeLess" id="BPMNEdge_judgeLess">
+                <omgdi:waypoint x="274.3359375" y="300.66397214564284"></omgdi:waypoint>
+                <omgdi:waypoint x="274.3359375" y="115.0"></omgdi:waypoint>
+                <omgdi:waypoint x="554.9999999999982" y="115.0"></omgdi:waypoint>
+            </bpmndi:BPMNEdge>
+            <bpmndi:BPMNEdge bpmnElement="userPassFlow" id="BPMNEdge_userPassFlow">
+                <omgdi:waypoint x="510.0" y="310.0"></omgdi:waypoint>
+                <omgdi:waypoint x="411.0" y="310.0"></omgdi:waypoint>
+                <omgdi:waypoint x="411.0" y="244.95000000000002"></omgdi:waypoint>
+            </bpmndi:BPMNEdge>
+            <bpmndi:BPMNEdge bpmnElement="bossPassFlow" id="BPMNEdge_bossPassFlow">
+                <omgdi:waypoint x="549.9499999999998" y="447.2146118721461"></omgdi:waypoint>
+                <omgdi:waypoint x="705.4331577666419" y="407.4567570622598"></omgdi:waypoint>
+            </bpmndi:BPMNEdge>
+            <bpmndi:BPMNEdge bpmnElement="judgeMore" id="BPMNEdge_judgeMore">
+                <omgdi:waypoint x="287.29730895645025" y="327.65205479452055"></omgdi:waypoint>
+                <omgdi:waypoint x="450.0" y="428.8888888888889"></omgdi:waypoint>
+            </bpmndi:BPMNEdge>
+            <bpmndi:BPMNEdge bpmnElement="managerPassFlow" id="BPMNEdge_managerPassFlow">
+                <omgdi:waypoint x="620.7588235294118" y="154.95"></omgdi:waypoint>
+                <omgdi:waypoint x="713.8613704477151" y="390.96328050279476"></omgdi:waypoint>
+            </bpmndi:BPMNEdge>
+            <bpmndi:BPMNEdge bpmnElement="userNotPassFlow" id="BPMNEdge_userNotPassFlow">
+                <omgdi:waypoint x="609.95" y="339.5301886792453"></omgdi:waypoint>
+                <omgdi:waypoint x="706.9383699359797" y="396.87411962686997"></omgdi:waypoint>
+            </bpmndi:BPMNEdge>
+            <bpmndi:BPMNEdge bpmnElement="bossNotPassFlow" id="BPMNEdge_bossNotPassFlow">
+                <omgdi:waypoint x="515.98" y="420.0"></omgdi:waypoint>
+                <omgdi:waypoint x="544.0" y="349.95000000000005"></omgdi:waypoint>
+            </bpmndi:BPMNEdge>
+            <bpmndi:BPMNEdge bpmnElement="managerNotPassFlow" id="BPMNEdge_managerNotPassFlow">
+                <omgdi:waypoint x="595.438344721373" y="154.95"></omgdi:waypoint>
+                <omgdi:waypoint x="567.9366337262223" y="270.0"></omgdi:waypoint>
+            </bpmndi:BPMNEdge>
+        </bpmndi:BPMNPlane>
+    </bpmndi:BPMNDiagram>
+</definitions>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/java/cn/gistack/flow/test/BladeTest.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/java/cn/gistack/flow/test/BladeTest.java
new file mode 100644
index 0000000..c24d036
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/java/cn/gistack/flow/test/BladeTest.java
@@ -0,0 +1,46 @@
+package cn.gistack.flow.test;
+
+import cn.gistack.flow.engine.entity.FlowModel;
+import cn.gistack.flow.engine.service.FlowEngineService;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.springblade.core.test.BladeBootTest;
+import org.springblade.core.test.BladeSpringExtension;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+/**
+ * Blade单元测试
+ *
+ * @author Chill
+ */
+@ExtendWith(BladeSpringExtension.class)
+@BladeBootTest(appName = "blade-flow", enableLoader = true)
+public class BladeTest {
+
+	@Autowired
+	private FlowEngineService service;
+
+	@Test
+	public void contextLoads() {
+		System.out.println("=====数据迁移启动=====");
+
+		// 获取 ACT_DE_MODEL 表需要转换的数据
+		List<FlowModel> list = service.list();
+		// 循环转换
+		list.forEach(flowModel -> {
+			if (StringUtil.isBlank(flowModel.getModelEditorXml())) {
+				service.update(Wrappers.<FlowModel>lambdaUpdate()
+					.set(FlowModel::getModelEditorXml, new String(service.getModelEditorXML(flowModel)))
+					.ge(FlowModel::getId, flowModel.getId())
+				);
+			}
+		});
+
+		System.out.println("=====数据迁移完毕=====");
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/java/cn/gistack/flow/test/launch/LauncherTestServiceImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/java/cn/gistack/flow/test/launch/LauncherTestServiceImpl.java
new file mode 100644
index 0000000..5f3ef75
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/java/cn/gistack/flow/test/launch/LauncherTestServiceImpl.java
@@ -0,0 +1,43 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.flow.test.launch;
+
+import cn.gistack.common.constant.LauncherConstant;
+import org.springblade.core.auto.service.AutoService;
+import org.springblade.core.launch.service.LauncherService;
+import org.springblade.core.launch.utils.PropsUtil;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+
+import java.util.Properties;
+
+/**
+ * 启动参数拓展
+ *
+ * @author smallchil
+ */
+@AutoService(LauncherService.class)
+public class LauncherTestServiceImpl implements LauncherService {
+
+	@Override
+	public void launcher(SpringApplicationBuilder builder, String appName, String profile, boolean isLocalDev) {
+		Properties props = System.getProperties();
+		PropsUtil.setProperty(props, "spring.cloud.nacos.discovery.server-addr", LauncherConstant.nacosAddr(profile));
+		PropsUtil.setProperty(props, "spring.cloud.nacos.config.server-addr", LauncherConstant.nacosAddr(profile));
+		PropsUtil.setProperty(props, "spring.datasource.dynamic.enabled", "false");
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application-dev.yml b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application-dev.yml
new file mode 100644
index 0000000..29ece1c
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application-dev.yml
@@ -0,0 +1,6 @@
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.flow.dev.url}
+    username: ${blade.datasource.flow.dev.username}
+    password: ${blade.datasource.flow.dev.password}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application-prod.yml b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application-prod.yml
new file mode 100644
index 0000000..a967e8c
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application-prod.yml
@@ -0,0 +1,6 @@
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.flow.prod.url}
+    username: ${blade.datasource.flow.prod.username}
+    password: ${blade.datasource.flow.prod.password}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application-test.yml b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application-test.yml
new file mode 100644
index 0000000..2a393d5
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application-test.yml
@@ -0,0 +1,6 @@
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.flow.test.url}
+    username: ${blade.datasource.flow.test.username}
+    password: ${blade.datasource.flow.test.password}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application.yml b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application.yml
new file mode 100644
index 0000000..2919d5f
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-flow/src/test/resources/application.yml
@@ -0,0 +1,13 @@
+#服务器端口
+server:
+  port: 8008
+
+#flowable配置
+flowable:
+  activity-font-name: \u5B8B\u4F53
+  label-font-name: \u5B8B\u4F53
+  annotation-font-name: \u5B8B\u4F53
+  check-process-definitions: false
+  database-schema-update: false
+  async-executor-activate: false
+  async-history-executor-activate: false
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/Dockerfile b/skjcmanager/skjcmanager-ops/skjcmanager-log/Dockerfile
new file mode 100644
index 0000000..3a13130
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/Dockerfile
@@ -0,0 +1,15 @@
+FROM bladex/alpine-java:openjdk8-openj9_cn_slim
+
+MAINTAINER bladejava@qq.com
+
+RUN mkdir -p /blade/log
+
+WORKDIR /blade/log
+
+EXPOSE 8103
+
+ADD ./target/blade-log.jar ./app.jar
+
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
+
+CMD ["--spring.profiles.active=test"]
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/pom.xml b/skjcmanager/skjcmanager-ops/skjcmanager-log/pom.xml
new file mode 100644
index 0000000..f28b794
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/pom.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-ops</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-log</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <!--Blade-->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-common</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-boot</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-tenant</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>dockerfile-maven-plugin</artifactId>
+                <configuration>
+                    <username>${docker.username}</username>
+                    <password>${docker.password}</password>
+                    <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+                    <tag>${project.version}</tag>
+                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+                    <buildArgs>
+                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+                    </buildArgs>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/LogApplication.java b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/LogApplication.java
new file mode 100644
index 0000000..a091364
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/LogApplication.java
@@ -0,0 +1,35 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.core.log;
+
+import org.springblade.core.cloud.client.BladeCloudApplication;
+import org.springblade.core.launch.BladeApplication;
+import org.springblade.core.launch.constant.AppConstant;
+
+/**
+ * 日志服务
+ *
+ * @author Chill
+ */
+@BladeCloudApplication
+public class LogApplication {
+
+	public static void main(String[] args) {
+		BladeApplication.run(AppConstant.APPLICATION_LOG_NAME, LogApplication.class, args);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/controller/LogApiController.java b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/controller/LogApiController.java
new file mode 100644
index 0000000..75a242b
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/controller/LogApiController.java
@@ -0,0 +1,66 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.core.log.controller;
+
+
+import cn.gistack.core.log.service.ILogApiService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import lombok.AllArgsConstructor;
+import org.springblade.core.log.model.LogApi;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.Map;
+
+/**
+ * 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/api")
+public class LogApiController {
+
+	private final ILogApiService logService;
+
+	/**
+	 * 查询单条
+	 */
+	@GetMapping("/detail")
+	public R<LogApi> detail(LogApi log) {
+		return R.data(logService.getOne(Condition.getQueryWrapper(log)));
+	}
+
+	/**
+	 * 查询多条(分页)
+	 */
+	@GetMapping("/list")
+	public R<IPage<LogApi>> list(@ApiIgnore @RequestParam Map<String, Object> log, Query query) {
+		IPage<LogApi> pages = logService.page(Condition.getPage(query.setDescs("create_time")), Condition.getQueryWrapper(log, LogApi.class));
+		return R.data(pages);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/controller/LogErrorController.java b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/controller/LogErrorController.java
new file mode 100644
index 0000000..7652d96
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/controller/LogErrorController.java
@@ -0,0 +1,66 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.core.log.controller;
+
+
+import cn.gistack.core.log.service.ILogErrorService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import lombok.AllArgsConstructor;
+import org.springblade.core.log.model.LogError;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.Map;
+
+/**
+ * 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/error")
+public class LogErrorController {
+
+	private final ILogErrorService errorLogService;
+
+	/**
+	 * 查询单条
+	 */
+	@GetMapping("/detail")
+	public R<LogError> detail(LogError logError) {
+		return R.data(errorLogService.getOne(Condition.getQueryWrapper(logError)));
+	}
+
+	/**
+	 * 查询多条(分页)
+	 */
+	@GetMapping("/list")
+	public R<IPage<LogError>> list(@ApiIgnore @RequestParam Map<String, Object> logError, Query query) {
+		IPage<LogError> pages = errorLogService.page(Condition.getPage(query.setDescs("create_time")), Condition.getQueryWrapper(logError, LogError.class));
+		return R.data(pages);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/controller/LogUsualController.java b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/controller/LogUsualController.java
new file mode 100644
index 0000000..1a72002
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/controller/LogUsualController.java
@@ -0,0 +1,66 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.core.log.controller;
+
+
+import cn.gistack.core.log.service.ILogUsualService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import lombok.AllArgsConstructor;
+import org.springblade.core.log.model.LogUsual;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.Map;
+
+/**
+ * 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/usual")
+public class LogUsualController {
+
+	private final ILogUsualService logService;
+
+	/**
+	 * 查询单条
+	 */
+	@GetMapping("/detail")
+	public R<LogUsual> detail(LogUsual log) {
+		return R.data(logService.getOne(Condition.getQueryWrapper(log)));
+	}
+
+	/**
+	 * 查询多条(分页)
+	 */
+	@GetMapping("/list")
+	public R<IPage<LogUsual>> list(@ApiIgnore @RequestParam Map<String, Object> log, Query query) {
+		IPage<LogUsual> pages = logService.page(Condition.getPage(query), Condition.getQueryWrapper(log, LogUsual.class));
+		return R.data(pages);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/feign/LogClient.java b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/feign/LogClient.java
new file mode 100644
index 0000000..ee2a498
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/feign/LogClient.java
@@ -0,0 +1,69 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.core.log.feign;
+
+import lombok.AllArgsConstructor;
+import org.springblade.core.log.feign.ILogClient;
+import org.springblade.core.log.model.LogApi;
+import org.springblade.core.log.model.LogError;
+import org.springblade.core.log.model.LogUsual;
+import cn.gistack.core.log.service.ILogApiService;
+import cn.gistack.core.log.service.ILogErrorService;
+import cn.gistack.core.log.service.ILogUsualService;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 日志服务Feign实现类
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+public class LogClient implements ILogClient {
+
+	private final ILogUsualService usualLogService;
+
+	private final ILogApiService apiLogService;
+
+	private final ILogErrorService errorLogService;
+
+	@Override
+	@PostMapping(API_PREFIX + "/saveUsualLog")
+	public R<Boolean> saveUsualLog(@RequestBody LogUsual log) {
+		log.setParams(log.getParams().replace("&amp;", "&"));
+		return R.data(usualLogService.save(log));
+	}
+
+	@Override
+	@PostMapping(API_PREFIX + "/saveApiLog")
+	public R<Boolean> saveApiLog(@RequestBody LogApi log) {
+		log.setParams(log.getParams().replace("&amp;", "&"));
+		return R.data(apiLogService.save(log));
+	}
+
+	@Override
+	@PostMapping(API_PREFIX + "/saveErrorLog")
+	public R<Boolean> saveErrorLog(@RequestBody LogError log) {
+		log.setParams(log.getParams().replace("&amp;", "&"));
+		return R.data(errorLogService.save(log));
+	}
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogApiMapper.java b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogApiMapper.java
new file mode 100644
index 0000000..9e4434e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogApiMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.core.log.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.core.log.model.LogApi;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface LogApiMapper extends BaseMapper<LogApi> {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogApiMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogApiMapper.xml
new file mode 100644
index 0000000..e3374e2
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogApiMapper.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.core.log.mapper.LogApiMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="logResultMap" type="org.springblade.core.log.model.LogApi">
+        <result column="id" property="id"/>
+        <result column="create_time" property="createTime"/>
+        <result column="service_id" property="serviceId"/>
+        <result column="server_host" property="serverHost"/>
+        <result column="server_ip" property="serverIp"/>
+        <result column="env" property="env"/>
+        <result column="type" property="type"/>
+        <result column="title" property="title"/>
+        <result column="method" property="method"/>
+        <result column="request_uri" property="requestUri"/>
+        <result column="user_agent" property="userAgent"/>
+        <result column="remote_ip" property="remoteIp"/>
+        <result column="method_class" property="methodClass"/>
+        <result column="method_name" property="methodName"/>
+        <result column="params" property="params"/>
+        <result column="time" property="time"/>
+        <result column="create_by" property="createBy"/>
+    </resultMap>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogErrorMapper.java b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogErrorMapper.java
new file mode 100644
index 0000000..19abc5e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogErrorMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.core.log.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.core.log.model.LogError;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface LogErrorMapper extends BaseMapper<LogError> {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogErrorMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogErrorMapper.xml
new file mode 100644
index 0000000..77abfec
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogErrorMapper.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.core.log.mapper.LogErrorMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="errorLogResultMap" type="org.springblade.core.log.model.LogError">
+        <result column="id" property="id"/>
+        <result column="create_time" property="createTime"/>
+        <result column="service_id" property="serviceId"/>
+        <result column="server_host" property="serverHost"/>
+        <result column="server_ip" property="serverIp"/>
+        <result column="env" property="env"/>
+        <result column="method" property="method"/>
+        <result column="request_uri" property="requestUri"/>
+        <result column="user_agent" property="userAgent"/>
+        <result column="stack_trace" property="stackTrace"/>
+        <result column="exception_name" property="exceptionName"/>
+        <result column="message" property="message"/>
+        <result column="line_number" property="lineNumber"/>
+        <result column="method_class" property="methodClass"/>
+        <result column="file_name" property="fileName"/>
+        <result column="method_name" property="methodName"/>
+        <result column="params" property="params"/>
+        <result column="create_by" property="createBy"/>
+    </resultMap>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogUsualMapper.java b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogUsualMapper.java
new file mode 100644
index 0000000..d2c7dc0
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogUsualMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.core.log.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.core.log.model.LogUsual;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface LogUsualMapper extends BaseMapper<LogUsual> {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogUsualMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogUsualMapper.xml
new file mode 100644
index 0000000..af1198e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/mapper/LogUsualMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.core.log.mapper.LogUsualMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="logResultMap" type="org.springblade.core.log.model.LogUsual">
+        <result column="id" property="id"/>
+        <result column="create_time" property="createTime"/>
+        <result column="service_id" property="serviceId"/>
+        <result column="server_host" property="serverHost"/>
+        <result column="server_ip" property="serverIp"/>
+        <result column="env" property="env"/>
+        <result column="log_level" property="logLevel"/>
+        <result column="log_data" property="logData"/>
+        <result column="method" property="method"/>
+        <result column="request_uri" property="requestUri"/>
+        <result column="user_agent" property="userAgent"/>
+        <result column="params" property="params"/>
+        <result column="create_by" property="createBy"/>
+    </resultMap>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/ILogApiService.java b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/ILogApiService.java
new file mode 100644
index 0000000..a89756e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/ILogApiService.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.core.log.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.core.log.model.LogApi;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface ILogApiService extends IService<LogApi> {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/ILogErrorService.java b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/ILogErrorService.java
new file mode 100644
index 0000000..4e6d478
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/ILogErrorService.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.core.log.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.core.log.model.LogError;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface ILogErrorService extends IService<LogError> {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/ILogUsualService.java b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/ILogUsualService.java
new file mode 100644
index 0000000..ab68757
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/ILogUsualService.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.core.log.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.core.log.model.LogUsual;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface ILogUsualService extends IService<LogUsual> {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/impl/LogApiServiceImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/impl/LogApiServiceImpl.java
new file mode 100644
index 0000000..c6aece1
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/impl/LogApiServiceImpl.java
@@ -0,0 +1,34 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.core.log.service.impl;
+
+import cn.gistack.core.log.mapper.LogApiMapper;
+import cn.gistack.core.log.service.ILogApiService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.log.model.LogApi;
+import org.springframework.stereotype.Service;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class LogApiServiceImpl extends ServiceImpl<LogApiMapper, LogApi> implements ILogApiService {
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/impl/LogErrorServiceImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/impl/LogErrorServiceImpl.java
new file mode 100644
index 0000000..13646a4
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/impl/LogErrorServiceImpl.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.core.log.service.impl;
+
+import cn.gistack.core.log.mapper.LogErrorMapper;
+import cn.gistack.core.log.service.ILogErrorService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.log.model.LogError;
+import org.springframework.stereotype.Service;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class LogErrorServiceImpl extends ServiceImpl<LogErrorMapper, LogError> implements ILogErrorService {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/impl/LogUsualServiceImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/impl/LogUsualServiceImpl.java
new file mode 100644
index 0000000..94c25e9
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/java/cn/gistack/core/log/service/impl/LogUsualServiceImpl.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.core.log.service.impl;
+
+import cn.gistack.core.log.mapper.LogUsualMapper;
+import cn.gistack.core.log.service.ILogUsualService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.log.model.LogUsual;
+import org.springframework.stereotype.Service;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class LogUsualServiceImpl extends ServiceImpl<LogUsualMapper, LogUsual> implements ILogUsualService {
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/resources/application-dev.yml b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..8c1f22c
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/resources/application-dev.yml
@@ -0,0 +1,10 @@
+#服务器端口
+server:
+  port: 8103
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.dev.url}
+    username: ${blade.datasource.dev.username}
+    password: ${blade.datasource.dev.password}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/resources/application-prod.yml b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..736e57a
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/resources/application-prod.yml
@@ -0,0 +1,10 @@
+#数据源配置
+server:
+  port: 8103
+
+spring:
+  datasource:
+    url: ${blade.datasource.prod.url}
+    username: ${blade.datasource.prod.username}
+    password: ${blade.datasource.prod.password}
+
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/resources/application-test.yml
new file mode 100644
index 0000000..a7850c2
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-log/src/main/resources/application-test.yml
@@ -0,0 +1,9 @@
+#数据源配置
+server:
+  port: 8103
+
+spring:
+  datasource:
+    url: ${blade.datasource.test.url}
+    username: ${blade.datasource.test.username}
+    password: ${blade.datasource.test.password}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-report/Dockerfile b/skjcmanager/skjcmanager-ops/skjcmanager-report/Dockerfile
new file mode 100644
index 0000000..ecab6f2
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-report/Dockerfile
@@ -0,0 +1,15 @@
+FROM bladex/alpine-java:openjdk8-openj9_cn_slim
+
+MAINTAINER bladejava@qq.com
+
+RUN mkdir -p /blade/report
+
+WORKDIR /blade/report
+
+EXPOSE 8108
+
+ADD ./target/blade-report.jar ./app.jar
+
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
+
+CMD ["--spring.profiles.active=test"]
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-report/pom.xml b/skjcmanager/skjcmanager-ops/skjcmanager-report/pom.xml
new file mode 100644
index 0000000..f1858cb
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-report/pom.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-ops</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-report</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <!--Blade-->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-common</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-boot</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-tenant</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-report</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>dockerfile-maven-plugin</artifactId>
+                <configuration>
+                    <username>${docker.username}</username>
+                    <password>${docker.password}</password>
+                    <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+                    <tag>${project.version}</tag>
+                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+                    <buildArgs>
+                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+                    </buildArgs>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/java/cn/gistack/report/ReportApplication.java b/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/java/cn/gistack/report/ReportApplication.java
new file mode 100644
index 0000000..875512f
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/java/cn/gistack/report/ReportApplication.java
@@ -0,0 +1,35 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.report;
+
+import org.springblade.core.cloud.client.BladeCloudApplication;
+import org.springblade.core.launch.BladeApplication;
+import org.springblade.core.launch.constant.AppConstant;
+
+/**
+ * UReport启动器
+ *
+ * @author Chill
+ */
+@BladeCloudApplication
+public class ReportApplication {
+
+	public static void main(String[] args) {
+		BladeApplication.run(AppConstant.APPLICATION_REPORT_NAME, ReportApplication.class, args);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/java/cn/gistack/report/config/BladeReportConfiguration.java b/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/java/cn/gistack/report/config/BladeReportConfiguration.java
new file mode 100644
index 0000000..cd6887d
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/java/cn/gistack/report/config/BladeReportConfiguration.java
@@ -0,0 +1,43 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.report.config;
+
+import org.springblade.core.report.datasource.ReportDataSource;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.sql.DataSource;
+
+/**
+ * 报表配置类
+ *
+ * @author Chill
+ */
+@Configuration(proxyBeanMethods = false)
+@ConditionalOnProperty(value = "report.enabled", havingValue = "true", matchIfMissing = true)
+public class BladeReportConfiguration {
+
+	/**
+	 * 自定义报表可选数据源
+	 */
+	@Bean
+	public ReportDataSource reportDataSource(DataSource dataSource) {
+		return new ReportDataSource(dataSource);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application-dev.yml b/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..97f23c8
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application-dev.yml
@@ -0,0 +1,6 @@
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.dev.url}
+    username: ${blade.datasource.dev.username}
+    password: ${blade.datasource.dev.password}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application-prod.yml b/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..c238494
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application-prod.yml
@@ -0,0 +1,6 @@
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.prod.url}
+    username: ${blade.datasource.prod.username}
+    password: ${blade.datasource.prod.password}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application-test.yml
new file mode 100644
index 0000000..5738832
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application-test.yml
@@ -0,0 +1,6 @@
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.test.url}
+    username: ${blade.datasource.test.username}
+    password: ${blade.datasource.test.password}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application.yml b/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application.yml
new file mode 100644
index 0000000..027a146
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-report/src/main/resources/application.yml
@@ -0,0 +1,10 @@
+#服务器端口
+server:
+  port: 8108
+
+#报表配置
+report:
+  enabled: true
+  database:
+    provider:
+      prefix: blade-
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/Dockerfile b/skjcmanager/skjcmanager-ops/skjcmanager-resource/Dockerfile
new file mode 100644
index 0000000..1a47df2
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/Dockerfile
@@ -0,0 +1,15 @@
+FROM bladex/alpine-java:openjdk8-openj9_cn_slim
+
+MAINTAINER bladejava@qq.com
+
+RUN mkdir -p /blade/resource
+
+WORKDIR /blade/resource
+
+EXPOSE 8010
+
+ADD ./target/blade-resource.jar ./app.jar
+
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
+
+CMD ["--spring.profiles.active=test"]
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/pom.xml b/skjcmanager/skjcmanager-ops/skjcmanager-resource/pom.xml
new file mode 100644
index 0000000..3696d0d
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/pom.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-ops</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-resource</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-common</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-boot</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-swagger</artifactId>
+        </dependency>
+        <!--Oss-->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-oss</artifactId>
+        </dependency>
+        <!--Sms-->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-sms</artifactId>
+        </dependency>
+        <!--MinIO-->
+        <dependency>
+            <groupId>io.minio</groupId>
+            <artifactId>minio</artifactId>
+        </dependency>
+        <!--Alioss-->
+        <dependency>
+            <groupId>com.aliyun.oss</groupId>
+            <artifactId>aliyun-sdk-oss</artifactId>
+        </dependency>
+        <!--AliSms-->
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-core</artifactId>
+        </dependency>
+        <!--腾讯COS-->
+        <dependency>
+            <groupId>com.qcloud</groupId>
+            <artifactId>cos_api</artifactId>
+        </dependency>
+        <!--腾讯SMS-->
+        <dependency>
+            <groupId>com.github.qcloudsms</groupId>
+            <artifactId>qcloudsms</artifactId>
+        </dependency>
+        <!--QiNiu-->
+        <dependency>
+            <groupId>com.qiniu</groupId>
+            <artifactId>qiniu-java-sdk</artifactId>
+        </dependency>
+        <!--YunPian-->
+        <dependency>
+            <groupId>com.yunpian.sdk</groupId>
+            <artifactId>yunpian-java-sdk</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-resource-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-dict-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>dockerfile-maven-plugin</artifactId>
+                <configuration>
+                    <username>${docker.username}</username>
+                    <password>${docker.password}</password>
+                    <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+                    <tag>${project.version}</tag>
+                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+                    <buildArgs>
+                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+                    </buildArgs>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/ResourceApplication.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/ResourceApplication.java
new file mode 100644
index 0000000..20f1c9d
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/ResourceApplication.java
@@ -0,0 +1,36 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource;
+
+import org.springblade.core.cloud.client.BladeCloudApplication;
+import org.springblade.core.launch.BladeApplication;
+import org.springblade.core.launch.constant.AppConstant;
+
+/**
+ * 资源启动器
+ *
+ * @author Chill
+ */
+@BladeCloudApplication
+public class ResourceApplication {
+
+	public static void main(String[] args) {
+		BladeApplication.run(AppConstant.APPLICATION_RESOURCE_NAME, ResourceApplication.class, args);
+	}
+
+}
+
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/AliOssBuilder.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/AliOssBuilder.java
new file mode 100644
index 0000000..7966e05
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/AliOssBuilder.java
@@ -0,0 +1,63 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.builder.oss;
+
+import com.aliyun.oss.ClientConfiguration;
+import com.aliyun.oss.OSSClient;
+import com.aliyun.oss.common.auth.CredentialsProvider;
+import com.aliyun.oss.common.auth.DefaultCredentialProvider;
+import lombok.SneakyThrows;
+import org.springblade.core.oss.OssTemplate;
+import org.springblade.core.oss.AliossTemplate;
+import org.springblade.core.oss.props.OssProperties;
+import org.springblade.core.oss.rule.OssRule;
+import cn.gistack.resource.entity.Oss;
+
+/**
+ * 阿里云存储构建类
+ *
+ * @author Chill
+ */
+public class AliOssBuilder {
+
+	@SneakyThrows
+	public static OssTemplate template(Oss oss, OssRule ossRule) {
+		// 创建ClientConfiguration。ClientConfiguration是OSSClient的配置类,可配置代理、连接超时、最大连接数等参数。
+		ClientConfiguration conf = new ClientConfiguration();
+		// 设置OSSClient允许打开的最大HTTP连接数,默认为1024个。
+		conf.setMaxConnections(1024);
+		// 设置Socket层传输数据的超时时间,默认为50000毫秒。
+		conf.setSocketTimeout(50000);
+		// 设置建立连接的超时时间,默认为50000毫秒。
+		conf.setConnectionTimeout(50000);
+		// 设置从连接池中获取连接的超时时间(单位:毫秒),默认不超时。
+		conf.setConnectionRequestTimeout(1000);
+		// 设置连接空闲超时时间。超时则关闭连接,默认为60000毫秒。
+		conf.setIdleConnectionTime(60000);
+		// 设置失败请求重试次数,默认为3次。
+		conf.setMaxErrorRetry(5);
+		OssProperties ossProperties = new OssProperties();
+		ossProperties.setEndpoint(oss.getEndpoint());
+		ossProperties.setAccessKey(oss.getAccessKey());
+		ossProperties.setSecretKey(oss.getSecretKey());
+		ossProperties.setBucketName(oss.getBucketName());
+		CredentialsProvider credentialsProvider = new DefaultCredentialProvider(ossProperties.getAccessKey(), ossProperties.getSecretKey());
+		OSSClient ossClient = new OSSClient(ossProperties.getEndpoint(), credentialsProvider, conf);
+		return new AliossTemplate(ossClient, ossProperties, ossRule);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/MinioOssBuilder.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/MinioOssBuilder.java
new file mode 100644
index 0000000..c24e42c
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/MinioOssBuilder.java
@@ -0,0 +1,48 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.builder.oss;
+
+import io.minio.MinioClient;
+import lombok.SneakyThrows;
+import org.springblade.core.oss.OssTemplate;
+import org.springblade.core.oss.MinioTemplate;
+import org.springblade.core.oss.props.OssProperties;
+import org.springblade.core.oss.rule.OssRule;
+import cn.gistack.resource.entity.Oss;
+
+/**
+ * Minio云存储构建类
+ *
+ * @author Chill
+ */
+public class MinioOssBuilder {
+
+	@SneakyThrows
+	public static OssTemplate template(Oss oss, OssRule ossRule) {
+		MinioClient minioClient = MinioClient.builder()
+			.endpoint(oss.getEndpoint())
+			.credentials(oss.getAccessKey(), oss.getSecretKey())
+			.build();
+		OssProperties ossProperties = new OssProperties();
+		ossProperties.setEndpoint(oss.getEndpoint());
+		ossProperties.setAccessKey(oss.getAccessKey());
+		ossProperties.setSecretKey(oss.getSecretKey());
+		ossProperties.setBucketName(oss.getBucketName());
+		return new MinioTemplate(minioClient, ossRule, ossProperties);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/OssBuilder.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/OssBuilder.java
new file mode 100644
index 0000000..b88258d
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/OssBuilder.java
@@ -0,0 +1,160 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.builder.oss;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.oss.OssTemplate;
+import org.springblade.core.oss.enums.OssEnum;
+import org.springblade.core.oss.enums.OssStatusEnum;
+import org.springblade.core.oss.props.OssProperties;
+import org.springblade.core.oss.rule.BladeOssRule;
+import org.springblade.core.oss.rule.OssRule;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.core.tool.utils.WebUtil;
+import cn.gistack.resource.entity.Oss;
+import cn.gistack.resource.service.IOssService;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import static org.springblade.core.cache.constant.CacheConstant.RESOURCE_CACHE;
+
+/**
+ * Oss云存储统一构建类
+ *
+ * @author Chill
+ */
+public class OssBuilder {
+
+	public static final String OSS_CODE = "oss:code:";
+	public static final String OSS_PARAM_KEY = "code";
+
+	private final OssProperties ossProperties;
+	private final IOssService ossService;
+
+	public OssBuilder(OssProperties ossProperties, IOssService ossService) {
+		this.ossProperties = ossProperties;
+		this.ossService = ossService;
+	}
+
+	/**
+	 * OssTemplate配置缓存池
+	 */
+	private final Map<String, OssTemplate> templatePool = new ConcurrentHashMap<>();
+
+	/**
+	 * oss配置缓存池
+	 */
+	private final Map<String, Oss> ossPool = new ConcurrentHashMap<>();
+
+	/**
+	 * 获取template
+	 *
+	 * @return OssTemplate
+	 */
+	public OssTemplate template() {
+		return template(StringPool.EMPTY);
+	}
+
+	/**
+	 * 获取template
+	 *
+	 * @param code 资源编号
+	 * @return OssTemplate
+	 */
+	public OssTemplate template(String code) {
+		String tenantId = AuthUtil.getTenantId();
+		Oss oss = getOss(tenantId, code);
+		Oss ossCached = ossPool.get(tenantId);
+		OssTemplate template = templatePool.get(tenantId);
+		// 若为空或者不一致,则重新加载
+		if (Func.hasEmpty(template, ossCached) || !oss.getEndpoint().equals(ossCached.getEndpoint()) || !oss.getAccessKey().equals(ossCached.getAccessKey())) {
+			synchronized (OssBuilder.class) {
+				template = templatePool.get(tenantId);
+				if (Func.hasEmpty(template, ossCached) || !oss.getEndpoint().equals(ossCached.getEndpoint()) || !oss.getAccessKey().equals(ossCached.getAccessKey())) {
+					OssRule ossRule;
+					// 若采用默认设置则开启多租户模式, 若是用户自定义oss则不开启
+					if (oss.getEndpoint().equals(ossProperties.getEndpoint()) && oss.getAccessKey().equals(ossProperties.getAccessKey()) && ossProperties.getTenantMode()) {
+						ossRule = new BladeOssRule(Boolean.TRUE);
+					} else {
+						ossRule = new BladeOssRule(Boolean.FALSE);
+					}
+					if (oss.getCategory() == OssEnum.MINIO.getCategory()) {
+						template = MinioOssBuilder.template(oss, ossRule);
+					} else if (oss.getCategory() == OssEnum.QINIU.getCategory()) {
+						template = QiniuOssBuilder.template(oss, ossRule);
+					} else if (oss.getCategory() == OssEnum.ALI.getCategory()) {
+						template = AliOssBuilder.template(oss, ossRule);
+					} else if (oss.getCategory() == OssEnum.TENCENT.getCategory()) {
+						template = TencentOssBuilder.template(oss, ossRule);
+					}
+					templatePool.put(tenantId, template);
+					ossPool.put(tenantId, oss);
+				}
+			}
+		}
+		return template;
+	}
+
+	/**
+	 * 获取对象存储实体
+	 *
+	 * @param tenantId 租户ID
+	 * @return Oss
+	 */
+	public Oss getOss(String tenantId, String code) {
+		String key = tenantId;
+		LambdaQueryWrapper<Oss> lqw = Wrappers.<Oss>query().lambda().eq(Oss::getTenantId, tenantId);
+		// 获取传参的资源编号并查询,若有则返回,若没有则调启用的配置
+		String ossCode = StringUtil.isBlank(code) ? WebUtil.getParameter(OSS_PARAM_KEY) : code;
+		if (StringUtil.isNotBlank(ossCode)) {
+			key = key.concat(StringPool.DASH).concat(ossCode);
+			lqw.eq(Oss::getOssCode, ossCode);
+		} else {
+			lqw.eq(Oss::getStatus, OssStatusEnum.ENABLE.getNum());
+		}
+		Oss oss = CacheUtil.get(RESOURCE_CACHE, OSS_CODE, key, () -> {
+			Oss o = ossService.getOne(lqw);
+			// 若为空则调用默认配置
+			if ((Func.isEmpty(o))) {
+				Oss defaultOss = new Oss();
+				defaultOss.setId(0L);
+				defaultOss.setCategory(OssEnum.of(ossProperties.getName()).getCategory());
+				defaultOss.setEndpoint(ossProperties.getEndpoint());
+				defaultOss.setBucketName(ossProperties.getBucketName());
+				defaultOss.setAccessKey(ossProperties.getAccessKey());
+				defaultOss.setSecretKey(ossProperties.getSecretKey());
+				return defaultOss;
+			} else {
+				return o;
+			}
+		});
+		if (oss == null || oss.getId() == null) {
+			throw new ServiceException("未获取到对应的对象存储配置");
+		} else {
+			return oss;
+		}
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/QiniuOssBuilder.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/QiniuOssBuilder.java
new file mode 100644
index 0000000..62f2773
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/QiniuOssBuilder.java
@@ -0,0 +1,52 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.builder.oss;
+
+import com.qiniu.storage.BucketManager;
+import com.qiniu.storage.Configuration;
+import com.qiniu.storage.Region;
+import com.qiniu.storage.UploadManager;
+import com.qiniu.util.Auth;
+import lombok.SneakyThrows;
+import org.springblade.core.oss.OssTemplate;
+import org.springblade.core.oss.QiniuTemplate;
+import org.springblade.core.oss.props.OssProperties;
+import org.springblade.core.oss.rule.OssRule;
+import cn.gistack.resource.entity.Oss;
+
+/**
+ * 七牛云存储构建类
+ *
+ * @author Chill
+ */
+public class QiniuOssBuilder {
+
+	@SneakyThrows
+	public static OssTemplate template(Oss oss, OssRule ossRule) {
+		Configuration cfg = new Configuration(Region.autoRegion());
+		Auth auth = Auth.create(oss.getAccessKey(), oss.getSecretKey());
+		UploadManager uploadManager = new UploadManager(cfg);
+		BucketManager bucketManager = new BucketManager(auth, cfg);
+		OssProperties ossProperties = new OssProperties();
+		ossProperties.setEndpoint(oss.getEndpoint());
+		ossProperties.setAccessKey(oss.getAccessKey());
+		ossProperties.setSecretKey(oss.getSecretKey());
+		ossProperties.setBucketName(oss.getBucketName());
+		return new QiniuTemplate(auth, uploadManager, bucketManager, ossProperties, ossRule);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/TencentOssBuilder.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/TencentOssBuilder.java
new file mode 100644
index 0000000..850ee78
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/oss/TencentOssBuilder.java
@@ -0,0 +1,66 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.builder.oss;
+
+import com.qcloud.cos.COSClient;
+import com.qcloud.cos.ClientConfig;
+import com.qcloud.cos.auth.BasicCOSCredentials;
+import com.qcloud.cos.auth.COSCredentials;
+import com.qcloud.cos.region.Region;
+import lombok.SneakyThrows;
+import org.springblade.core.oss.OssTemplate;
+import org.springblade.core.oss.props.OssProperties;
+import org.springblade.core.oss.rule.OssRule;
+import org.springblade.core.oss.TencentCosTemplate;
+import cn.gistack.resource.entity.Oss;
+
+/**
+ * 腾讯云存储构建类
+ *
+ * @author Chill
+ */
+public class TencentOssBuilder {
+
+	@SneakyThrows
+	public static OssTemplate template(Oss oss, OssRule ossRule) {
+		// 创建配置类
+		OssProperties ossProperties = new OssProperties();
+		ossProperties.setEndpoint(oss.getEndpoint());
+		ossProperties.setAccessKey(oss.getAccessKey());
+		ossProperties.setSecretKey(oss.getSecretKey());
+		ossProperties.setBucketName(oss.getBucketName());
+		ossProperties.setAppId(oss.getAppId());
+		ossProperties.setRegion(oss.getRegion());
+		// 初始化用户身份信息(secretId, secretKey)
+		COSCredentials credentials = new BasicCOSCredentials(ossProperties.getAccessKey(), ossProperties.getSecretKey());
+		// 设置 bucket 的区域, COS 地域的简称请参照 https://cloud.tencent.com/document/product/436/6224
+		Region region = new Region(ossProperties.getRegion());
+		// clientConfig 中包含了设置 region, https(默认 http), 超时, 代理等 set 方法, 使用可参见源码或者常见问题 Java SDK 部分。
+		ClientConfig clientConfig = new ClientConfig(region);
+		// 设置OSSClient允许打开的最大HTTP连接数,默认为1024个。
+		clientConfig.setMaxConnectionsCount(1024);
+		// 设置Socket层传输数据的超时时间,默认为50000毫秒。
+		clientConfig.setSocketTimeout(50000);
+		// 设置建立连接的超时时间,默认为50000毫秒。
+		clientConfig.setConnectionTimeout(50000);
+		// 设置从连接池中获取连接的超时时间(单位:毫秒),默认不超时。
+		clientConfig.setConnectionRequestTimeout(1000);
+		COSClient cosClient = new COSClient(credentials, clientConfig);
+		return new TencentCosTemplate(cosClient, ossProperties, ossRule);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/AliSmsBuilder.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/AliSmsBuilder.java
new file mode 100644
index 0000000..25f738a
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/AliSmsBuilder.java
@@ -0,0 +1,50 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.builder.sms;
+
+import com.aliyuncs.DefaultAcsClient;
+import com.aliyuncs.IAcsClient;
+import com.aliyuncs.profile.DefaultProfile;
+import com.aliyuncs.profile.IClientProfile;
+import lombok.SneakyThrows;
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.sms.SmsTemplate;
+import org.springblade.core.sms.AliSmsTemplate;
+import org.springblade.core.sms.props.SmsProperties;
+import cn.gistack.resource.entity.Sms;
+
+/**
+ * 阿里云短信构建类
+ *
+ * @author Chill
+ */
+public class AliSmsBuilder {
+
+	@SneakyThrows
+	public static SmsTemplate template(Sms sms, BladeRedis bladeRedis) {
+		SmsProperties smsProperties = new SmsProperties();
+		smsProperties.setTemplateId(sms.getTemplateId());
+		smsProperties.setAccessKey(sms.getAccessKey());
+		smsProperties.setSecretKey(sms.getSecretKey());
+		smsProperties.setRegionId(sms.getRegionId());
+		smsProperties.setSignName(sms.getSignName());
+		IClientProfile profile = DefaultProfile.getProfile(smsProperties.getRegionId(), smsProperties.getAccessKey(), smsProperties.getSecretKey());
+		IAcsClient acsClient = new DefaultAcsClient(profile);
+		return new AliSmsTemplate(smsProperties, acsClient, bladeRedis);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/QiniuSmsBuilder.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/QiniuSmsBuilder.java
new file mode 100644
index 0000000..fe32de7
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/QiniuSmsBuilder.java
@@ -0,0 +1,47 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.builder.sms;
+
+import com.qiniu.sms.SmsManager;
+import com.qiniu.util.Auth;
+import lombok.SneakyThrows;
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.sms.SmsTemplate;
+import org.springblade.core.sms.props.SmsProperties;
+import org.springblade.core.sms.QiniuSmsTemplate;
+import cn.gistack.resource.entity.Sms;
+
+/**
+ * 七牛云短信构建类
+ *
+ * @author Chill
+ */
+public class QiniuSmsBuilder {
+
+	@SneakyThrows
+	public static SmsTemplate template(Sms sms, BladeRedis bladeRedis) {
+		SmsProperties smsProperties = new SmsProperties();
+		smsProperties.setTemplateId(sms.getTemplateId());
+		smsProperties.setAccessKey(sms.getAccessKey());
+		smsProperties.setSecretKey(sms.getSecretKey());
+		smsProperties.setSignName(sms.getSignName());
+		Auth auth = Auth.create(smsProperties.getAccessKey(), smsProperties.getSecretKey());
+		SmsManager smsManager = new SmsManager(auth);
+		return new QiniuSmsTemplate(smsProperties, smsManager, bladeRedis);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/SmsBuilder.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/SmsBuilder.java
new file mode 100644
index 0000000..37566ab
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/SmsBuilder.java
@@ -0,0 +1,157 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.builder.sms;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.sms.SmsTemplate;
+import org.springblade.core.sms.enums.SmsEnum;
+import org.springblade.core.sms.enums.SmsStatusEnum;
+import org.springblade.core.sms.props.SmsProperties;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.core.tool.utils.WebUtil;
+import cn.gistack.resource.entity.Sms;
+import cn.gistack.resource.service.ISmsService;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import static org.springblade.core.cache.constant.CacheConstant.RESOURCE_CACHE;
+
+/**
+ * Sms短信服务统一构建类
+ *
+ * @author Chill
+ */
+public class SmsBuilder {
+
+	public static final String SMS_CODE = "sms:code:";
+	public static final String SMS_PARAM_KEY = "code";
+
+	private final SmsProperties smsProperties;
+	private final ISmsService smsService;
+	private final BladeRedis bladeRedis;
+
+
+	public SmsBuilder(SmsProperties smsProperties, ISmsService smsService, BladeRedis bladeRedis) {
+		this.smsProperties = smsProperties;
+		this.smsService = smsService;
+		this.bladeRedis = bladeRedis;
+	}
+
+	/**
+	 * SmsTemplate配置缓存池
+	 */
+	private final Map<String, SmsTemplate> templatePool = new ConcurrentHashMap<>();
+
+	/**
+	 * Sms配置缓存池
+	 */
+	private final Map<String, Sms> smsPool = new ConcurrentHashMap<>();
+
+
+	/**
+	 * 获取template
+	 *
+	 * @return SmsTemplate
+	 */
+	public SmsTemplate template() {
+		return template(StringPool.EMPTY);
+	}
+
+	/**
+	 * 获取template
+	 *
+	 * @param code 资源编号
+	 * @return SmsTemplate
+	 */
+	public SmsTemplate template(String code) {
+		String tenantId = AuthUtil.getTenantId();
+		Sms sms = getSms(tenantId, code);
+		Sms smsCached = smsPool.get(tenantId);
+		SmsTemplate template = templatePool.get(tenantId);
+		// 若为空或者不一致,则重新加载
+		if (Func.hasEmpty(template, smsCached) || !sms.getTemplateId().equals(smsCached.getTemplateId()) || !sms.getAccessKey().equals(smsCached.getAccessKey())) {
+			synchronized (SmsBuilder.class) {
+				template = templatePool.get(tenantId);
+				if (Func.hasEmpty(template, smsCached) || !sms.getTemplateId().equals(smsCached.getTemplateId()) || !sms.getAccessKey().equals(smsCached.getAccessKey())) {
+					if (sms.getCategory() == SmsEnum.YUNPIAN.getCategory()) {
+						template = YunpianSmsBuilder.template(sms, bladeRedis);
+					} else if (sms.getCategory() == SmsEnum.QINIU.getCategory()) {
+						template = QiniuSmsBuilder.template(sms, bladeRedis);
+					} else if (sms.getCategory() == SmsEnum.ALI.getCategory()) {
+						template = AliSmsBuilder.template(sms, bladeRedis);
+					} else if (sms.getCategory() == SmsEnum.TENCENT.getCategory()) {
+						template = TencentSmsBuilder.template(sms, bladeRedis);
+					}
+					templatePool.put(tenantId, template);
+					smsPool.put(tenantId, sms);
+				}
+			}
+		}
+		return template;
+	}
+
+
+	/**
+	 * 获取短信实体
+	 *
+	 * @param tenantId 租户ID
+	 * @return Sms
+	 */
+	public Sms getSms(String tenantId, String code) {
+		String key = tenantId;
+		LambdaQueryWrapper<Sms> lqw = Wrappers.<Sms>query().lambda().eq(Sms::getTenantId, tenantId);
+		// 获取传参的资源编号并查询,若有则返回,若没有则调启用的配置
+		String smsCode = StringUtil.isBlank(code) ? WebUtil.getParameter(SMS_PARAM_KEY) : code;
+		if (StringUtil.isNotBlank(smsCode)) {
+			key = key.concat(StringPool.DASH).concat(smsCode);
+			lqw.eq(Sms::getSmsCode, smsCode);
+		} else {
+			lqw.eq(Sms::getStatus, SmsStatusEnum.ENABLE.getNum());
+		}
+		Sms sms = CacheUtil.get(RESOURCE_CACHE, SMS_CODE, key, () -> {
+			Sms s = smsService.getOne(lqw);
+			// 若为空则调用默认配置
+			if ((Func.isEmpty(s))) {
+				Sms defaultSms = new Sms();
+				defaultSms.setId(0L);
+				defaultSms.setTemplateId(smsProperties.getTemplateId());
+				defaultSms.setRegionId(smsProperties.getRegionId());
+				defaultSms.setCategory(SmsEnum.of(smsProperties.getName()).getCategory());
+				defaultSms.setAccessKey(smsProperties.getAccessKey());
+				defaultSms.setSecretKey(smsProperties.getSecretKey());
+				defaultSms.setSignName(smsProperties.getSignName());
+				return defaultSms;
+			} else {
+				return s;
+			}
+		});
+		if (sms == null || sms.getId() == null) {
+			throw new ServiceException("未获取到对应的短信配置");
+		} else {
+			return sms;
+		}
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/TencentSmsBuilder.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/TencentSmsBuilder.java
new file mode 100644
index 0000000..b8b3b8b
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/TencentSmsBuilder.java
@@ -0,0 +1,46 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.builder.sms;
+
+import com.github.qcloudsms.SmsMultiSender;
+import lombok.SneakyThrows;
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.sms.SmsTemplate;
+import org.springblade.core.sms.props.SmsProperties;
+import org.springblade.core.sms.TencentSmsTemplate;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.resource.entity.Sms;
+
+/**
+ * 腾讯云短信构建类
+ *
+ * @author Chill
+ */
+public class TencentSmsBuilder {
+
+	@SneakyThrows
+	public static SmsTemplate template(Sms sms, BladeRedis bladeRedis) {
+		SmsProperties smsProperties = new SmsProperties();
+		smsProperties.setTemplateId(sms.getTemplateId());
+		smsProperties.setAccessKey(sms.getAccessKey());
+		smsProperties.setSecretKey(sms.getSecretKey());
+		smsProperties.setSignName(sms.getSignName());
+		SmsMultiSender smsSender = new SmsMultiSender(Func.toInt(smsProperties.getAccessKey()), sms.getSecretKey());
+		return new TencentSmsTemplate(smsProperties, smsSender, bladeRedis);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/YunpianSmsBuilder.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/YunpianSmsBuilder.java
new file mode 100644
index 0000000..d365c4e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/builder/sms/YunpianSmsBuilder.java
@@ -0,0 +1,44 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.builder.sms;
+
+import com.yunpian.sdk.YunpianClient;
+import lombok.SneakyThrows;
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.sms.SmsTemplate;
+import org.springblade.core.sms.props.SmsProperties;
+import org.springblade.core.sms.YunpianSmsTemplate;
+import cn.gistack.resource.entity.Sms;
+
+/**
+ * 云片短信构建类
+ *
+ * @author Chill
+ */
+public class YunpianSmsBuilder {
+
+	@SneakyThrows
+	public static SmsTemplate template(Sms sms, BladeRedis bladeRedis) {
+		SmsProperties smsProperties = new SmsProperties();
+		smsProperties.setTemplateId(sms.getTemplateId());
+		smsProperties.setAccessKey(sms.getAccessKey());
+		smsProperties.setSignName(sms.getSignName());
+		YunpianClient client = new YunpianClient(smsProperties.getAccessKey()).init();
+		return new YunpianSmsTemplate(smsProperties, client, bladeRedis);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/config/BladeOssConfiguration.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/config/BladeOssConfiguration.java
new file mode 100644
index 0000000..e3bc1dc
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/config/BladeOssConfiguration.java
@@ -0,0 +1,44 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.config;
+
+import lombok.AllArgsConstructor;
+import org.springblade.core.oss.props.OssProperties;
+import cn.gistack.resource.builder.oss.OssBuilder;
+import cn.gistack.resource.service.IOssService;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Oss配置类
+ *
+ * @author Chill
+ */
+@Configuration(proxyBeanMethods = false)
+@AllArgsConstructor
+public class BladeOssConfiguration {
+
+	private final OssProperties ossProperties;
+
+	private final IOssService ossService;
+
+	@Bean
+	public OssBuilder ossBuilder() {
+		return new OssBuilder(ossProperties, ossService);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/config/BladeSmsConfiguration.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/config/BladeSmsConfiguration.java
new file mode 100644
index 0000000..ca9194d
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/config/BladeSmsConfiguration.java
@@ -0,0 +1,47 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.config;
+
+import lombok.AllArgsConstructor;
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.sms.props.SmsProperties;
+import cn.gistack.resource.builder.sms.SmsBuilder;
+import cn.gistack.resource.service.ISmsService;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Sms配置类
+ *
+ * @author Chill
+ */
+@Configuration(proxyBeanMethods = false)
+@AllArgsConstructor
+public class BladeSmsConfiguration {
+
+	private final SmsProperties smsProperties;
+
+	private final ISmsService smsService;
+
+	private final BladeRedis bladeRedis;
+
+	@Bean
+	public SmsBuilder smsBuilder() {
+		return new SmsBuilder(smsProperties, smsService, bladeRedis);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/AttachController.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/AttachController.java
new file mode 100644
index 0000000..0e87695
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/AttachController.java
@@ -0,0 +1,127 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.controller;
+
+import cn.gistack.resource.service.IAttachService;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.resource.entity.Attach;
+import cn.gistack.resource.vo.AttachVO;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * 附件表 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/attach")
+@Api(value = "附件", tags = "附件")
+public class AttachController extends BladeController {
+
+	private final IAttachService attachService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入attach")
+	public R<Attach> detail(Attach attach) {
+		Attach detail = attachService.getOne(Condition.getQueryWrapper(attach));
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页 附件表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入attach")
+	public R<IPage<Attach>> list(Attach attach, Query query) {
+		IPage<Attach> pages = attachService.page(Condition.getPage(query), Condition.getQueryWrapper(attach));
+		return R.data(pages);
+	}
+
+	/**
+	 * 自定义分页 附件表
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入attach")
+	public R<IPage<AttachVO>> page(AttachVO attach, Query query) {
+		IPage<AttachVO> pages = attachService.selectAttachPage(Condition.getPage(query), attach);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 附件表
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入attach")
+	public R save(@Valid @RequestBody Attach attach) {
+		return R.status(attachService.save(attach));
+	}
+
+	/**
+	 * 修改 附件表
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入attach")
+	public R update(@Valid @RequestBody Attach attach) {
+		return R.status(attachService.updateById(attach));
+	}
+
+	/**
+	 * 新增或修改 附件表
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入attach")
+	public R submit(@Valid @RequestBody Attach attach) {
+		return R.status(attachService.saveOrUpdate(attach));
+	}
+
+
+	/**
+	 * 删除 附件表
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(attachService.deleteLogic(Func.toLongList(ids)));
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/OssController.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/OssController.java
new file mode 100644
index 0000000..806d7a4
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/OssController.java
@@ -0,0 +1,151 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.controller;
+
+import cn.gistack.resource.service.IOssService;
+import cn.gistack.resource.wrapper.OssWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.resource.entity.Oss;
+import cn.gistack.resource.vo.OssVO;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.validation.Valid;
+
+import static org.springblade.core.cache.constant.CacheConstant.RESOURCE_CACHE;
+
+/**
+ * 控制器
+ *
+ * @author BladeX
+ */
+@NonDS
+@ApiIgnore
+@RestController
+@AllArgsConstructor
+@RequestMapping("/oss")
+@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+@Api(value = "对象存储接口", tags = "对象存储接口")
+public class OssController extends BladeController {
+
+	private final IOssService ossService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入oss")
+	public R<OssVO> detail(Oss oss) {
+		Oss detail = ossService.getOne(Condition.getQueryWrapper(oss));
+		return R.data(OssWrapper.build().entityVO(detail));
+	}
+
+	/**
+	 * 分页
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入oss")
+	public R<IPage<OssVO>> list(Oss oss, Query query) {
+		IPage<Oss> pages = ossService.page(Condition.getPage(query), Condition.getQueryWrapper(oss));
+		return R.data(OssWrapper.build().pageVO(pages));
+	}
+
+	/**
+	 * 自定义分页
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入oss")
+	public R<IPage<OssVO>> page(OssVO oss, Query query) {
+		IPage<OssVO> pages = ossService.selectOssPage(Condition.getPage(query), oss);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入oss")
+	public R save(@Valid @RequestBody Oss oss) {
+		CacheUtil.clear(RESOURCE_CACHE);
+		return R.status(ossService.save(oss));
+	}
+
+	/**
+	 * 修改
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入oss")
+	public R update(@Valid @RequestBody Oss oss) {
+		CacheUtil.clear(RESOURCE_CACHE);
+		return R.status(ossService.updateById(oss));
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入oss")
+	public R submit(@Valid @RequestBody Oss oss) {
+		CacheUtil.clear(RESOURCE_CACHE);
+		return R.status(ossService.submit(oss));
+	}
+
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		CacheUtil.clear(RESOURCE_CACHE);
+		return R.status(ossService.deleteLogic(Func.toLongList(ids)));
+	}
+
+
+	/**
+	 * 启用
+	 */
+	@PostMapping("/enable")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "配置启用", notes = "传入id")
+	public R enable(@ApiParam(value = "主键", required = true) @RequestParam Long id) {
+		CacheUtil.clear(RESOURCE_CACHE);
+		return R.status(ossService.enable(id));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/SmsController.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/SmsController.java
new file mode 100644
index 0000000..9c3d011
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/controller/SmsController.java
@@ -0,0 +1,152 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.controller;
+
+import cn.gistack.resource.service.ISmsService;
+import cn.gistack.resource.wrapper.SmsWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.resource.entity.Sms;
+import cn.gistack.resource.vo.SmsVO;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.validation.Valid;
+
+import static org.springblade.core.cache.constant.CacheConstant.RESOURCE_CACHE;
+
+/**
+ * 短信配置表 控制器
+ *
+ * @author BladeX
+ */
+@NonDS
+@ApiIgnore
+@RestController
+@AllArgsConstructor
+@RequestMapping("/sms")
+@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+@Api(value = "短信配置表", tags = "短信配置表接口")
+public class SmsController extends BladeController {
+
+	private final ISmsService smsService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入sms")
+	public R<SmsVO> detail(Sms sms) {
+		Sms detail = smsService.getOne(Condition.getQueryWrapper(sms));
+		return R.data(SmsWrapper.build().entityVO(detail));
+	}
+
+	/**
+	 * 分页 短信配置表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入sms")
+	public R<IPage<SmsVO>> list(Sms sms, Query query) {
+		IPage<Sms> pages = smsService.page(Condition.getPage(query), Condition.getQueryWrapper(sms));
+		return R.data(SmsWrapper.build().pageVO(pages));
+	}
+
+
+	/**
+	 * 自定义分页 短信配置表
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入sms")
+	public R<IPage<SmsVO>> page(SmsVO sms, Query query) {
+		IPage<SmsVO> pages = smsService.selectSmsPage(Condition.getPage(query), sms);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 短信配置表
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入sms")
+	public R save(@Valid @RequestBody Sms sms) {
+		CacheUtil.clear(RESOURCE_CACHE);
+		return R.status(smsService.save(sms));
+	}
+
+	/**
+	 * 修改 短信配置表
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入sms")
+	public R update(@Valid @RequestBody Sms sms) {
+		CacheUtil.clear(RESOURCE_CACHE);
+		return R.status(smsService.updateById(sms));
+	}
+
+	/**
+	 * 新增或修改 短信配置表
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入sms")
+	public R submit(@Valid @RequestBody Sms sms) {
+		CacheUtil.clear(RESOURCE_CACHE);
+		return R.status(smsService.submit(sms));
+	}
+
+
+	/**
+	 * 删除 短信配置表
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		CacheUtil.clear(RESOURCE_CACHE);
+		return R.status(smsService.deleteLogic(Func.toLongList(ids)));
+	}
+
+	/**
+	 * 启用
+	 */
+	@PostMapping("/enable")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "配置启用", notes = "传入id")
+	public R enable(@ApiParam(value = "主键", required = true) @RequestParam Long id) {
+		CacheUtil.clear(RESOURCE_CACHE);
+		return R.status(smsService.enable(id));
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/endpoint/OssEndpoint.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/endpoint/OssEndpoint.java
new file mode 100644
index 0000000..5255973
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/endpoint/OssEndpoint.java
@@ -0,0 +1,246 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.endpoint;
+
+import cn.gistack.resource.builder.oss.OssBuilder;
+import cn.gistack.resource.service.IAttachService;
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import lombok.SneakyThrows;
+import org.springblade.core.oss.model.BladeFile;
+import org.springblade.core.oss.model.OssFile;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.utils.FileUtil;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.resource.entity.Attach;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 对象存储端点
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/oss/endpoint")
+@Api(value = "对象存储端点", tags = "对象存储端点")
+public class OssEndpoint {
+
+	/**
+	 * 对象存储构建类
+	 */
+	private final OssBuilder ossBuilder;
+
+	/**
+	 * 附件表服务
+	 */
+	private final IAttachService attachService;
+
+	/**
+	 * 创建存储桶
+	 *
+	 * @param bucketName 存储桶名称
+	 * @return Bucket
+	 */
+	@SneakyThrows
+	@PostMapping("/make-bucket")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R makeBucket(@RequestParam String bucketName) {
+		ossBuilder.template().makeBucket(bucketName);
+		return R.success("创建成功");
+	}
+
+	/**
+	 * 创建存储桶
+	 *
+	 * @param bucketName 存储桶名称
+	 * @return R
+	 */
+	@SneakyThrows
+	@PostMapping("/remove-bucket")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R removeBucket(@RequestParam String bucketName) {
+		ossBuilder.template().removeBucket(bucketName);
+		return R.success("删除成功");
+	}
+
+	/**
+	 * 拷贝文件
+	 *
+	 * @param fileName       存储桶对象名称
+	 * @param destBucketName 目标存储桶名称
+	 * @param destFileName   目标存储桶对象名称
+	 * @return R
+	 */
+	@SneakyThrows
+	@PostMapping("/copy-file")
+	public R copyFile(@RequestParam String fileName, @RequestParam String destBucketName, String destFileName) {
+		ossBuilder.template().copyFile(fileName, destBucketName, destFileName);
+		return R.success("操作成功");
+	}
+
+	/**
+	 * 获取文件信息
+	 *
+	 * @param fileName 存储桶对象名称
+	 * @return InputStream
+	 */
+	@SneakyThrows
+	@GetMapping("/stat-file")
+	public R<OssFile> statFile(@RequestParam String fileName) {
+		return R.data(ossBuilder.template().statFile(fileName));
+	}
+
+	/**
+	 * 获取文件相对路径
+	 *
+	 * @param fileName 存储桶对象名称
+	 * @return String
+	 */
+	@SneakyThrows
+	@GetMapping("/file-path")
+	public R<String> filePath(@RequestParam String fileName) {
+		return R.data(ossBuilder.template().filePath(fileName));
+	}
+
+
+	/**
+	 * 获取文件外链
+	 *
+	 * @param fileName 存储桶对象名称
+	 * @return String
+	 */
+	@SneakyThrows
+	@GetMapping("/file-link")
+	public R<String> fileLink(@RequestParam String fileName) {
+		return R.data(ossBuilder.template().fileLink(fileName));
+	}
+
+	/**
+	 * 上传文件
+	 *
+	 * @param file 文件
+	 * @return ObjectStat
+	 */
+	@SneakyThrows
+	@PostMapping("/put-file")
+	public R<BladeFile> putFile(@RequestParam MultipartFile file) {
+		BladeFile bladeFile = ossBuilder.template().putFile(file.getOriginalFilename(), file.getInputStream());
+		return R.data(bladeFile);
+	}
+
+	/**
+	 * 上传文件
+	 *
+	 * @param fileName 存储桶对象名称
+	 * @param file     文件
+	 * @return ObjectStat
+	 */
+	@SneakyThrows
+	@PostMapping("/put-file-by-name")
+	public R<BladeFile> putFile(@RequestParam String fileName, @RequestParam MultipartFile file) {
+		BladeFile bladeFile = ossBuilder.template().putFile(fileName, file.getInputStream());
+		return R.data(bladeFile);
+	}
+
+	/**
+	 * 上传文件并保存至附件表
+	 *
+	 * @param file 文件
+	 * @return ObjectStat
+	 */
+	@SneakyThrows
+	@PostMapping("/put-file-attach")
+	public R<BladeFile> putFileAttach(@RequestParam MultipartFile file) {
+		String fileName = file.getOriginalFilename();
+		BladeFile bladeFile = ossBuilder.template().putFile(fileName, file.getInputStream());
+		Long attachId = buildAttach(fileName, file.getSize(), bladeFile);
+		bladeFile.setAttachId(attachId);
+		return R.data(bladeFile);
+	}
+
+	/**
+	 * 上传文件并保存至附件表
+	 *
+	 * @param fileName 存储桶对象名称
+	 * @param file     文件
+	 * @return ObjectStat
+	 */
+	@SneakyThrows
+	@PostMapping("/put-file-attach-by-name")
+	public R<BladeFile> putFileAttach(@RequestParam String fileName, @RequestParam MultipartFile file) {
+		BladeFile bladeFile = ossBuilder.template().putFile(fileName, file.getInputStream());
+		Long attachId = buildAttach(fileName, file.getSize(), bladeFile);
+		bladeFile.setAttachId(attachId);
+		return R.data(bladeFile);
+	}
+
+	/**
+	 * 构建附件表
+	 *
+	 * @param fileName  文件名
+	 * @param fileSize  文件大小
+	 * @param bladeFile 对象存储文件
+	 * @return attachId
+	 */
+	private Long buildAttach(String fileName, Long fileSize, BladeFile bladeFile) {
+		String fileExtension = FileUtil.getFileExtension(fileName);
+		Attach attach = new Attach();
+		attach.setDomainUrl(bladeFile.getDomain());
+		attach.setLink(bladeFile.getLink());
+		attach.setName(bladeFile.getName());
+		attach.setOriginalName(bladeFile.getOriginalName());
+		attach.setAttachSize(fileSize);
+		attach.setExtension(fileExtension);
+		attachService.save(attach);
+		return attach.getId();
+	}
+
+	/**
+	 * 删除文件
+	 *
+	 * @param fileName 存储桶对象名称
+	 * @return R
+	 */
+	@SneakyThrows
+	@PostMapping("/remove-file")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R removeFile(@RequestParam String fileName) {
+		ossBuilder.template().removeFile(fileName);
+		return R.success("操作成功");
+	}
+
+	/**
+	 * 批量删除文件
+	 *
+	 * @param fileNames 存储桶对象名称集合
+	 * @return R
+	 */
+	@SneakyThrows
+	@PostMapping("/remove-files")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R removeFiles(@RequestParam String fileNames) {
+		ossBuilder.template().removeFiles(Func.toStrList(fileNames));
+		return R.success("操作成功");
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/endpoint/SmsEndpoint.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/endpoint/SmsEndpoint.java
new file mode 100644
index 0000000..2bb3751
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/endpoint/SmsEndpoint.java
@@ -0,0 +1,176 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.endpoint;
+
+import cn.gistack.resource.builder.sms.SmsBuilder;
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import lombok.SneakyThrows;
+import org.springblade.core.sms.model.SmsCode;
+import org.springblade.core.sms.model.SmsData;
+import org.springblade.core.sms.model.SmsResponse;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.jackson.JsonUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static cn.gistack.resource.utils.SmsUtil.*;
+
+/**
+ * 短信服务端点
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/sms/endpoint")
+@Api(value = "短信服务端点", tags = "短信服务端点")
+public class SmsEndpoint {
+
+	/**
+	 * 短信服务构建类
+	 */
+	private final SmsBuilder smsBuilder;
+
+	//================================= 短信服务校验 =================================
+
+	/**
+	 * 短信验证码发送
+	 *
+	 * @param phone 手机号
+	 */
+	@SneakyThrows
+	@PostMapping("/send-validate")
+	public R sendValidate(@RequestParam String phone) {
+		Map<String, String> params = getValidateParams();
+		SmsCode smsCode = smsBuilder.template().sendValidate(new SmsData(params).setKey(PARAM_KEY), phone);
+		return smsCode.isSuccess() ? R.data(smsCode, SEND_SUCCESS) : R.fail(SEND_FAIL);
+	}
+
+	/**
+	 * 校验短信
+	 *
+	 * @param smsCode 短信校验信息
+	 */
+	@SneakyThrows
+	@PostMapping("/validate-message")
+	public R validateMessage(SmsCode smsCode) {
+		boolean validate = smsBuilder.template().validateMessage(smsCode);
+		return validate ? R.success(VALIDATE_SUCCESS) : R.fail(VALIDATE_FAIL);
+	}
+
+	//========== 通用短信自定义发送(支持自定义params参数传递, 推荐用于测试, 不推荐用于生产环境) ==========
+
+	/**
+	 * 发送信息
+	 *
+	 * @param params 自定义短信参数
+	 * @param phones 手机号集合
+	 */
+	@SneakyThrows
+	@PostMapping("/send-message")
+	public R sendMessage(@RequestParam String code, @RequestParam String params, @RequestParam String phones) {
+		SmsData smsData = new SmsData(JsonUtil.readMap(params, String.class, String.class));
+		return send(code, smsData, phones);
+	}
+
+	//========== 指定短信服务发送(可根据各种场景自定拓展定制, 损失灵活性增加安全性, 推荐用于生产环境) ==========
+
+	/**
+	 * 短信通知
+	 *
+	 * @param phones 手机号集合
+	 */
+	@SneakyThrows
+	@PostMapping("/send-notice")
+	public R sendNotice(@RequestParam String phones) {
+		Map<String, String> params = new HashMap<>(3);
+		params.put("title", "通知标题");
+		params.put("content", "通知内容");
+		params.put("date", "通知时间");
+		SmsData smsData = new SmsData(params);
+		return send(smsData, phones);
+	}
+
+	/**
+	 * 订单通知
+	 *
+	 * @param phones 手机号集合
+	 */
+	@SneakyThrows
+	@PostMapping("/send-order")
+	public R sendOrder(@RequestParam String phones) {
+		Map<String, String> params = new HashMap<>(3);
+		params.put("orderNo", "订单编号");
+		params.put("packageNo", "快递单号");
+		params.put("user", "收件人");
+		SmsData smsData = new SmsData(params);
+		return send(smsData, phones);
+	}
+
+	/**
+	 * 会议通知
+	 *
+	 * @param phones 手机号集合
+	 */
+	@SneakyThrows
+	@PostMapping("/send-meeting")
+	public R sendMeeting(@RequestParam String phones) {
+		Map<String, String> params = new HashMap<>(2);
+		params.put("roomId", "会议室");
+		params.put("topic", "会议主题");
+		params.put("date", "会议时间");
+		SmsData smsData = new SmsData(params);
+		return send(smsData, phones);
+	}
+
+	//================================= 通用短信发送接口 =================================
+
+	/**
+	 * 通用短信发送接口
+	 *
+	 * @param smsData 短信内容
+	 * @param phones  手机号列表
+	 * @return 是否发送成功
+	 */
+	private R send(SmsData smsData, String phones) {
+		SmsResponse response = smsBuilder.template().sendMessage(smsData, Func.toStrList(phones));
+		return response.isSuccess() ? R.success(SEND_SUCCESS) : R.fail(SEND_FAIL);
+	}
+
+	/**
+	 * 通用短信发送接口
+	 *
+	 * @param code    资源编号
+	 * @param smsData 短信内容
+	 * @param phones  手机号列表
+	 * @return 是否发送成功
+	 */
+	private R send(String code, SmsData smsData, String phones) {
+		SmsResponse response = smsBuilder.template(code).sendMessage(smsData, Func.toStrList(phones));
+		return response.isSuccess() ? R.success(SEND_SUCCESS) : R.fail(SEND_FAIL);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/feign/SmsClient.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/feign/SmsClient.java
new file mode 100644
index 0000000..c422d1c
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/feign/SmsClient.java
@@ -0,0 +1,70 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.feign;
+
+import lombok.AllArgsConstructor;
+import org.springblade.core.sms.model.SmsCode;
+import org.springblade.core.sms.model.SmsData;
+import org.springblade.core.sms.model.SmsResponse;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.jackson.JsonUtil;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.resource.builder.sms.SmsBuilder;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+import static cn.gistack.resource.utils.SmsUtil.*;
+
+/**
+ * 短信远程调用服务
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+public class SmsClient implements ISmsClient {
+
+	private final SmsBuilder smsBuilder;
+
+	@Override
+	@PostMapping(SEND_MESSAGE)
+	public R<SmsResponse> sendMessage(String code, String params, String phones) {
+		SmsData smsData = new SmsData(JsonUtil.readMap(params, String.class, String.class));
+		SmsResponse response = smsBuilder.template(code).sendMessage(smsData, Func.toStrList(phones));
+		return R.data(response);
+	}
+
+	@Override
+	@PostMapping(SEND_VALIDATE)
+	public R sendValidate(String code, String phone) {
+		Map<String, String> params = getValidateParams();
+		SmsCode smsCode = smsBuilder.template(code).sendValidate(new SmsData(params).setKey(PARAM_KEY), phone);
+		return smsCode.isSuccess() ? R.data(smsCode, SEND_SUCCESS) : R.fail(SEND_FAIL);
+	}
+
+	@Override
+	@PostMapping(VALIDATE_MESSAGE)
+	public R validateMessage(String code, String id, String value, String phone) {
+		SmsCode smsCode = new SmsCode().setId(id).setValue(value).setPhone(phone);
+		boolean validate = smsBuilder.template(code).validateMessage(smsCode);
+		return validate ? R.success(VALIDATE_SUCCESS) : R.fail(VALIDATE_FAIL);
+	}
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/AttachMapper.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/AttachMapper.java
new file mode 100644
index 0000000..8455a24
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/AttachMapper.java
@@ -0,0 +1,42 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import cn.gistack.resource.entity.Attach;
+import cn.gistack.resource.vo.AttachVO;
+
+import java.util.List;
+
+/**
+ * 附件表 Mapper 接口
+ *
+ * @author Chill
+ */
+public interface AttachMapper extends BaseMapper<Attach> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param attach
+	 * @return
+	 */
+	List<AttachVO> selectAttachPage(IPage page, AttachVO attach);
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/AttachMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/AttachMapper.xml
new file mode 100644
index 0000000..2aabbbf
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/AttachMapper.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.resource.mapper.AttachMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="attachResultMap" type="cn.gistack.resource.entity.Attach">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="link" property="link"/>
+        <result column="domain_url" property="domainUrl"/>
+        <result column="name" property="name"/>
+        <result column="original_name" property="originalName"/>
+        <result column="extension" property="extension"/>
+        <result column="attach_size" property="attachSize"/>
+    </resultMap>
+
+
+    <select id="selectAttachPage" resultMap="attachResultMap">
+        select * from blade_attach where is_deleted = 0
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/OssMapper.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/OssMapper.java
new file mode 100644
index 0000000..ad92bf0
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/OssMapper.java
@@ -0,0 +1,42 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import cn.gistack.resource.entity.Oss;
+import cn.gistack.resource.vo.OssVO;
+
+import java.util.List;
+
+/**
+ *  Mapper 接口
+ *
+ * @author BladeX
+ */
+public interface OssMapper extends BaseMapper<Oss> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param oss
+	 * @return
+	 */
+	List<OssVO> selectOssPage(IPage page, OssVO oss);
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/OssMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/OssMapper.xml
new file mode 100644
index 0000000..66b5dec
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/OssMapper.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.resource.mapper.OssMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="ossResultMap" type="cn.gistack.resource.entity.Oss">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="oss_code" property="ossCode"/>
+        <result column="category" property="category"/>
+        <result column="endpoint" property="endpoint"/>
+        <result column="access_key" property="accessKey"/>
+        <result column="secret_key" property="secretKey"/>
+        <result column="bucket_name" property="bucketName"/>
+        <result column="app_id" property="appId"/>
+        <result column="region" property="region"/>
+        <result column="remark" property="remark"/>
+    </resultMap>
+
+
+    <select id="selectOssPage" resultMap="ossResultMap">
+        select * from blade_oss where is_deleted = 0
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/SmsMapper.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/SmsMapper.java
new file mode 100644
index 0000000..5866a36
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/SmsMapper.java
@@ -0,0 +1,41 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.mapper;
+
+import cn.gistack.resource.entity.Sms;
+import cn.gistack.resource.vo.SmsVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import java.util.List;
+
+/**
+ * 短信配置表 Mapper 接口
+ *
+ * @author BladeX
+ */
+public interface SmsMapper extends BaseMapper<Sms> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param sms
+	 * @return
+	 */
+	List<SmsVO> selectSmsPage(IPage page, SmsVO sms);
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/SmsMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/SmsMapper.xml
new file mode 100644
index 0000000..9f0cfd0
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/mapper/SmsMapper.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.resource.mapper.SmsMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="smsResultMap" type="cn.gistack.resource.entity.Sms">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="sms_code" property="smsCode"/>
+        <result column="template_id" property="templateId"/>
+        <result column="category" property="category"/>
+        <result column="access_key" property="accessKey"/>
+        <result column="secret_key" property="secretKey"/>
+        <result column="region_id" property="regionId"/>
+        <result column="sign_name" property="signName"/>
+        <result column="remark" property="remark"/>
+    </resultMap>
+
+
+    <select id="selectSmsPage" resultMap="smsResultMap">
+        select * from blade_sms where is_deleted = 0
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/IAttachService.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/IAttachService.java
new file mode 100644
index 0000000..7ce5f27
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/IAttachService.java
@@ -0,0 +1,40 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseService;
+import cn.gistack.resource.entity.Attach;
+import cn.gistack.resource.vo.AttachVO;
+
+/**
+ * 附件表 服务类
+ *
+ * @author Chill
+ */
+public interface IAttachService extends BaseService<Attach> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param attach
+	 * @return
+	 */
+	IPage<AttachVO> selectAttachPage(IPage<AttachVO> page, AttachVO attach);
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/IOssService.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/IOssService.java
new file mode 100644
index 0000000..50cbeec
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/IOssService.java
@@ -0,0 +1,56 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseService;
+import cn.gistack.resource.entity.Oss;
+import cn.gistack.resource.vo.OssVO;
+
+/**
+ * 服务类
+ *
+ * @author BladeX
+ */
+public interface IOssService extends BaseService<Oss> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param oss
+	 * @return
+	 */
+	IPage<OssVO> selectOssPage(IPage<OssVO> page, OssVO oss);
+
+	/**
+	 * 提交oss信息
+	 *
+	 * @param oss
+	 * @return
+	 */
+	boolean submit(Oss oss);
+
+	/**
+	 * 启动配置
+	 *
+	 * @param id
+	 * @return
+	 */
+	boolean enable(Long id);
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/ISmsService.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/ISmsService.java
new file mode 100644
index 0000000..09416e9
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/ISmsService.java
@@ -0,0 +1,56 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseService;
+import cn.gistack.resource.entity.Sms;
+import cn.gistack.resource.vo.SmsVO;
+
+/**
+ * 短信配置表 服务类
+ *
+ * @author BladeX
+ */
+public interface ISmsService extends BaseService<Sms> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param sms
+	 * @return
+	 */
+	IPage<SmsVO> selectSmsPage(IPage<SmsVO> page, SmsVO sms);
+
+	/**
+	 * 提交oss信息
+	 *
+	 * @param oss
+	 * @return
+	 */
+	boolean submit(Sms oss);
+
+	/**
+	 * 启动配置
+	 *
+	 * @param id
+	 * @return
+	 */
+	boolean enable(Long id);
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/AttachServiceImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/AttachServiceImpl.java
new file mode 100644
index 0000000..bd3d7e3
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/AttachServiceImpl.java
@@ -0,0 +1,40 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.service.impl;
+
+import cn.gistack.resource.mapper.AttachMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import cn.gistack.resource.entity.Attach;
+import cn.gistack.resource.service.IAttachService;
+import cn.gistack.resource.vo.AttachVO;
+import org.springframework.stereotype.Service;
+
+/**
+ * 附件表 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class AttachServiceImpl extends BaseServiceImpl<AttachMapper, Attach> implements IAttachService {
+
+	@Override
+	public IPage<AttachVO> selectAttachPage(IPage<AttachVO> page, AttachVO attach) {
+		return page.setRecords(baseMapper.selectAttachPage(page, attach));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/OssServiceImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/OssServiceImpl.java
new file mode 100644
index 0000000..4edd5f4
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/OssServiceImpl.java
@@ -0,0 +1,67 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.service.impl;
+
+import cn.gistack.resource.mapper.OssMapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.resource.entity.Oss;
+import cn.gistack.resource.vo.OssVO;
+import cn.gistack.resource.service.IOssService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 服务实现类
+ *
+ * @author BladeX
+ */
+@Service
+public class OssServiceImpl extends BaseServiceImpl<OssMapper, Oss> implements IOssService {
+
+	@Override
+	public IPage<OssVO> selectOssPage(IPage<OssVO> page, OssVO oss) {
+		return page.setRecords(baseMapper.selectOssPage(page, oss));
+	}
+
+	@Override
+	public boolean submit(Oss oss) {
+		LambdaQueryWrapper<Oss> lqw = Wrappers.<Oss>query().lambda()
+			.eq(Oss::getOssCode, oss.getOssCode()).eq(Oss::getTenantId, AuthUtil.getTenantId());
+		Long cnt = baseMapper.selectCount(Func.isEmpty(oss.getId()) ? lqw : lqw.notIn(Oss::getId, oss.getId()));
+		if (cnt > 0L) {
+			throw new ServiceException("当前资源编号已存在!");
+		}
+		return this.saveOrUpdate(oss);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean enable(Long id) {
+		// 先禁用
+		boolean temp1 = this.update(Wrappers.<Oss>update().lambda().set(Oss::getStatus, 1));
+		// 在启用
+		boolean temp2 = this.update(Wrappers.<Oss>update().lambda().set(Oss::getStatus, 2).eq(Oss::getId, id));
+		return temp1 && temp2;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/SmsServiceImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/SmsServiceImpl.java
new file mode 100644
index 0000000..499a6c3
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/service/impl/SmsServiceImpl.java
@@ -0,0 +1,67 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.service.impl;
+
+import cn.gistack.resource.mapper.SmsMapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.resource.entity.Sms;
+import cn.gistack.resource.service.ISmsService;
+import cn.gistack.resource.vo.SmsVO;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 短信配置表 服务实现类
+ *
+ * @author BladeX
+ */
+@Service
+public class SmsServiceImpl extends BaseServiceImpl<SmsMapper, Sms> implements ISmsService {
+
+	@Override
+	public IPage<SmsVO> selectSmsPage(IPage<SmsVO> page, SmsVO sms) {
+		return page.setRecords(baseMapper.selectSmsPage(page, sms));
+	}
+
+	@Override
+	public boolean submit(Sms sms) {
+		LambdaQueryWrapper<Sms> lqw = Wrappers.<Sms>query().lambda()
+			.eq(Sms::getSmsCode, sms.getSmsCode()).eq(Sms::getTenantId, AuthUtil.getTenantId());
+		Long cnt = baseMapper.selectCount(Func.isEmpty(sms.getId()) ? lqw : lqw.notIn(Sms::getId, sms.getId()));
+		if (cnt > 0L) {
+			throw new ServiceException("当前资源编号已存在!");
+		}
+		return this.saveOrUpdate(sms);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean enable(Long id) {
+		// 先禁用
+		boolean temp1 = this.update(Wrappers.<Sms>update().lambda().set(Sms::getStatus, 1));
+		// 在启用
+		boolean temp2 = this.update(Wrappers.<Sms>update().lambda().set(Sms::getStatus, 2).eq(Sms::getId, id));
+		return temp1 && temp2;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/wrapper/OssWrapper.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/wrapper/OssWrapper.java
new file mode 100644
index 0000000..8bba850
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/wrapper/OssWrapper.java
@@ -0,0 +1,49 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.wrapper;
+
+import cn.gistack.system.cache.DictCache;
+import cn.gistack.system.enums.DictEnum;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import cn.gistack.resource.entity.Oss;
+import cn.gistack.resource.vo.OssVO;
+
+import java.util.Objects;
+
+/**
+ * 包装类,返回视图层所需的字段
+ *
+ * @author BladeX
+ */
+public class OssWrapper extends BaseEntityWrapper<Oss, OssVO> {
+
+	public static OssWrapper build() {
+		return new OssWrapper();
+	}
+
+	@Override
+	public OssVO entityVO(Oss oss) {
+		OssVO ossVO = Objects.requireNonNull(BeanUtil.copy(oss, OssVO.class));
+		String categoryName = DictCache.getValue(DictEnum.OSS, oss.getCategory());
+		String statusName = DictCache.getValue(DictEnum.YES_NO, oss.getStatus());
+		ossVO.setCategoryName(categoryName);
+		ossVO.setStatusName(statusName);
+		return ossVO;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/wrapper/SmsWrapper.java b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/wrapper/SmsWrapper.java
new file mode 100644
index 0000000..cac48f3
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/java/cn/gistack/resource/wrapper/SmsWrapper.java
@@ -0,0 +1,49 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.resource.wrapper;
+
+import cn.gistack.system.cache.DictCache;
+import cn.gistack.system.enums.DictEnum;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import cn.gistack.resource.entity.Sms;
+import cn.gistack.resource.vo.SmsVO;
+
+import java.util.Objects;
+
+/**
+ * 短信配置表包装类,返回视图层所需的字段
+ *
+ * @author BladeX
+ */
+public class SmsWrapper extends BaseEntityWrapper<Sms, SmsVO> {
+
+	public static SmsWrapper build() {
+		return new SmsWrapper();
+	}
+
+	@Override
+	public SmsVO entityVO(Sms sms) {
+		SmsVO smsVO = Objects.requireNonNull(BeanUtil.copy(sms, SmsVO.class));
+		String categoryName = DictCache.getValue(DictEnum.SMS, sms.getCategory());
+		String statusName = DictCache.getValue(DictEnum.YES_NO, sms.getStatus());
+		smsVO.setCategoryName(categoryName);
+		smsVO.setStatusName(statusName);
+		return smsVO;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application-dev.yml b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..2ef6032
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application-dev.yml
@@ -0,0 +1,7 @@
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.dev.url}
+    username: ${blade.datasource.dev.username}
+    password: ${blade.datasource.dev.password}
+
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application-prod.yml b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..70e928b
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application-prod.yml
@@ -0,0 +1,7 @@
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.prod.url}
+    username: ${blade.datasource.prod.username}
+    password: ${blade.datasource.prod.password}
+
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application-test.yml
new file mode 100644
index 0000000..5738832
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application-test.yml
@@ -0,0 +1,6 @@
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.test.url}
+    username: ${blade.datasource.test.username}
+    password: ${blade.datasource.test.password}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application.yml b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application.yml
new file mode 100644
index 0000000..f5e2576
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-resource/src/main/resources/application.yml
@@ -0,0 +1,13 @@
+#服务器端口
+server:
+  port: 8010
+
+#默认对象存储配置
+oss:
+  enabled: true
+  name: minio
+  tenant-mode: true
+  endpoint: http://127.0.0.1:9000
+  access-key: D99KGE6ZTQXSATTJWU24
+  secret-key: QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ
+  bucket-name: bladex
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-swagger/Dockerfile b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/Dockerfile
new file mode 100644
index 0000000..f90c966
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/Dockerfile
@@ -0,0 +1,15 @@
+FROM bladex/alpine-java:openjdk8-openj9_cn_slim
+
+MAINTAINER bladejava@qq.com
+
+RUN mkdir -p /blade/swagger
+
+WORKDIR /blade/swagger
+
+EXPOSE 18000
+
+ADD ./target/blade-swagger.jar ./app.jar
+
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
+
+CMD ["--spring.profiles.active=test"]
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-swagger/pom.xml b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/pom.xml
new file mode 100644
index 0000000..05e6e19
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/pom.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-ops</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-swagger</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-common</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-cloud</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>knife4j-aggregation-spring-boot-starter</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>dockerfile-maven-plugin</artifactId>
+                <configuration>
+                    <username>${docker.username}</username>
+                    <password>${docker.password}</password>
+                    <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+                    <tag>${project.version}</tag>
+                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+                    <buildArgs>
+                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+                    </buildArgs>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/java/cn/gistack/swagger/SwaggerApplication.java b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/java/cn/gistack/swagger/SwaggerApplication.java
new file mode 100644
index 0000000..0d4139c
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/java/cn/gistack/swagger/SwaggerApplication.java
@@ -0,0 +1,36 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.swagger;
+
+
+import org.springblade.core.cloud.client.BladeCloudApplication;
+import org.springblade.core.launch.BladeApplication;
+import org.springblade.core.launch.constant.AppConstant;
+
+/**
+ * swagger聚合启动器
+ *
+ * @author Chill
+ */
+@BladeCloudApplication
+public class SwaggerApplication {
+
+	public static void main(String[] args) {
+		BladeApplication.run(AppConstant.APPLICATION_SWAGGER_NAME, SwaggerApplication.class, args);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application-dev.yml b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..bbb5197
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application-dev.yml
@@ -0,0 +1,12 @@
+knife4j:
+  cloud:
+    routes:
+      - name: 授权模块
+        uri: 127.0.0.1
+        location: /blade-auth/v2/api-docs
+      - name: 工作台模块
+        uri: 127.0.0.1
+        location: /blade-desk/v2/api-docs
+      - name: 系统模块
+        uri: 127.0.0.1
+        location: /blade-system/v2/api-docs
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application-prod.yml b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..0f83d07
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application-prod.yml
@@ -0,0 +1,12 @@
+knife4j:
+  cloud:
+    routes:
+      - name: 授权模块
+        uri: 192.168.0.157:88
+        location: /blade-auth/v2/api-docs
+      - name: 工作台模块
+        uri: 192.168.0.157:88
+        location: /blade-desk/v2/api-docs
+      - name: 系统模块
+        uri: 192.168.0.157:88
+        location: /blade-system/v2/api-docs
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application-test.yml
new file mode 100644
index 0000000..0f83d07
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application-test.yml
@@ -0,0 +1,12 @@
+knife4j:
+  cloud:
+    routes:
+      - name: 授权模块
+        uri: 192.168.0.157:88
+        location: /blade-auth/v2/api-docs
+      - name: 工作台模块
+        uri: 192.168.0.157:88
+        location: /blade-desk/v2/api-docs
+      - name: 系统模块
+        uri: 192.168.0.157:88
+        location: /blade-system/v2/api-docs
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application.yml b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application.yml
new file mode 100644
index 0000000..79ad80d
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/application.yml
@@ -0,0 +1,6 @@
+server:
+  port: 18000
+knife4j:
+  enableAggregation: true
+  cloud:
+    enable: true
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/banner.txt b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/banner.txt
new file mode 100644
index 0000000..c0f1066
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-swagger/src/main/resources/banner.txt
@@ -0,0 +1,8 @@
+${AnsiColor.BLUE}                   ______  _             _       ___   ___
+${AnsiColor.BLUE}                   | ___ \| |           | |      \  \ /  /
+${AnsiColor.BLUE}                   | |_/ /| |  __ _   __| |  ___  \  V  /
+${AnsiColor.BLUE}                   | ___ \| | / _` | / _` | / _ \   > <
+${AnsiColor.BLUE}                   | |_/ /| || (_| || (_| ||  __/ /  .  \
+${AnsiColor.BLUE}                   \____/ |_| \__,_| \__,_| \___|/__/ \__\
+
+${AnsiColor.BLUE}:: BladeX ${blade.service.version} :: ${spring.application.name}:${AnsiColor.RED}${blade.env}${AnsiColor.BLUE} :: Running SpringBoot ${spring-boot.version} :: ${AnsiColor.BRIGHT_BLACK}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/Dockerfile b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/Dockerfile
new file mode 100644
index 0000000..bb0f770
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/Dockerfile
@@ -0,0 +1,13 @@
+FROM bladex/alpine-java:openjdk8-openj9_cn_slim
+
+MAINTAINER bladejava@qq.com
+
+RUN mkdir -p /blade/xxljob-admin
+
+WORKDIR /blade/xxljob-admin
+
+EXPOSE 7009
+
+ADD ./target/blade-xxljob-admin.jar ./app.jar
+
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
diff --git "a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/XXL-JOB\345\256\230\346\226\271\346\226\207\346\241\243.md" "b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/XXL-JOB\345\256\230\346\226\271\346\226\207\346\241\243.md"
new file mode 100644
index 0000000..b62155b
--- /dev/null
+++ "b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/XXL-JOB\345\256\230\346\226\271\346\226\207\346\241\243.md"
@@ -0,0 +1,1740 @@
+## 《分布式任务调度平台XXL-JOB》
+
+[![Actions Status](https://github.com/xuxueli/xxl-job/workflows/Java%20CI/badge.svg)](https://github.com/xuxueli/xxl-job/actions)
+[![Maven Central](https://maven-badges.herokuapp.com/maven-central/com.xuxueli/xxl-job/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.xuxueli/xxl-job/)
+[![GitHub release](https://img.shields.io/github/release/xuxueli/xxl-job.svg)](https://github.com/xuxueli/xxl-job/releases)
+[![GitHub stars](https://img.shields.io/github/stars/xuxueli/xxl-job)](https://github.com/xuxueli/xxl-job/)
+[![Docker Status](https://img.shields.io/docker/pulls/xuxueli/xxl-job-admin)](https://hub.docker.com/r/xuxueli/xxl-job-admin/)
+[![License](https://img.shields.io/badge/license-GPLv3-blue.svg)](http://www.gnu.org/licenses/gpl-3.0.html)
+[![donate](https://img.shields.io/badge/%24-donate-ff69b4.svg?style=flat)](https://www.xuxueli.com/page/donate.html)
+
+[TOCM]
+
+[TOC]
+
+## 一、简介
+
+### 1.1 概述
+XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
+
+### 1.2 社区交流    
+- [社区交流](https://www.xuxueli.com/page/community.html)
+
+### 1.3 特性
+- 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
+- 2、动态:支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;
+- 3、调度中心HA(中心式):调度采用中心式设计,“调度中心”自研调度组件并支持集群部署,可保证调度中心HA;
+- 4、执行器HA(分布式):任务分布式执行,任务"执行器"支持集群部署,可保证任务执行HA;
+- 5、注册中心: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。同时,也支持手动录入执行器地址;
+- 6、弹性扩容缩容:一旦有新执行器机器上线或者下线,下次调度时将会重新分配任务;
+- 7、路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等;
+- 8、故障转移:任务路由策略选择"故障转移"情况下,如果执行器集群中某一台机器故障,将会自动Failover切换到一台正常的执行器发送调度请求。
+- 9、阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
+- 10、任务超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;
+- 11、任务失败重试:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;其中分片任务支持分片粒度的失败重试;
+- 12、任务失败告警;默认提供邮件方式失败告警,同时预留扩展接口,可方便的扩展短信、钉钉等告警方式;
+- 13、分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数开发分片任务;
+- 14、动态分片:分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。
+- 15、事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的API服务,可根据业务事件灵活触发。
+- 16、任务进度监控:支持实时监控任务进度;
+- 17、Rolling实时日志:支持在线查看调度结果,并且支持以Rolling方式实时查看执行器输出的完整的执行日志;
+- 18、GLUE:提供Web IDE,支持在线开发任务逻辑代码,动态发布,实时编译生效,省略部署上线的过程。支持30个版本的历史版本回溯。
+- 19、脚本任务:支持以GLUE模式开发和运行脚本任务,包括Shell、Python、NodeJS、PHP、PowerShell等类型脚本;
+- 20、命令行任务:原生提供通用命令行任务Handler(Bean任务,"CommandJobHandler");业务方只需要提供命令行即可;
+- 21、任务依赖:支持配置子任务依赖,当父任务执行结束且执行成功后将会主动触发一次子任务的执行, 多个子任务用逗号分隔;
+- 22、一致性:“调度中心”通过DB锁保证集群分布式调度的一致性, 一次任务调度只会触发一次执行;
+- 23、自定义任务参数:支持在线配置调度任务入参,即时生效;
+- 24、调度线程池:调度系统多线程触发调度运行,确保调度精确执行,不被堵塞;
+- 25、数据加密:调度中心和执行器之间的通讯进行数据加密,提升调度信息安全性;
+- 26、邮件报警:任务失败时支持邮件报警,支持配置多邮件地址群发报警邮件;
+- 27、推送maven中央仓库: 将会把最新稳定版推送到maven中央仓库, 方便用户接入和使用;
+- 28、运行报表:支持实时查看运行数据,如任务数量、调度次数、执行器数量等;以及调度报表,如调度日期分布图,调度成功分布图等;
+- 29、全异步:任务调度流程全异步化设计实现,如异步调度、异步运行、异步回调等,有效对密集调度进行流量削峰,理论上支持任意时长任务的运行;
+- 30、跨平台:原生提供通用HTTP任务Handler(Bean任务,"HttpJobHandler");业务方只需要提供HTTP链接即可,不限制语言、平台;
+- 31、国际化:调度中心支持国际化设置,提供中文、英文两种可选语言,默认为中文;
+- 32、容器化:提供官方docker镜像,并实时更新推送dockerhub,进一步实现产品开箱即用;
+- 33、线程池隔离:调度线程池进行隔离拆分,慢任务自动降级进入"Slow"线程池,避免耗尽调度线程,提高系统稳定性;
+- 34、用户管理:支持在线管理系统用户,存在管理员、普通用户两种角色;
+- 35、权限控制:执行器维度进行权限控制,管理员拥有全量权限,普通用户需要分配执行器权限后才允许相关操作;
+
+
+### 1.4 发展
+于2015年中,我在github上创建XXL-JOB项目仓库并提交第一个commit,随之进行系统结构设计,UI选型,交互设计……
+
+于2015-11月,XXL-JOB终于RELEASE了第一个大版本V1.0, 随后我将之发布到OSCHINA,XXL-JOB在OSCHINA上获得了@红薯的热门推荐,同期分别达到了OSCHINA的“热门动弹”排行第一和git.oschina的开源软件月热度排行第一,在此特别感谢红薯,感谢大家的关注和支持。
+
+于2015-12月,我将XXL-JOB发表到我司内部知识库,并且得到内部同事认可。
+
+于2016-01月,我司展开XXL-JOB的内部接入和定制工作,在此感谢袁某和尹某两位同事的贡献,同时也感谢内部其他给与关注与支持的同事。
+
+于2017-05-13,在上海举办的 "[第62期开源中国源创会](https://www.oschina.net/event/2236961)" 的 "放码过来" 环节,我登台对XXL-JOB做了演讲,台下五百位在场观众反响热烈([图文回顾](https://www.oschina.net/question/2686220_2242120) )。
+
+于2017-10-22,又拍云 Open Talk 联合 Spring Cloud 中国社区举办的 "[进击的微服务实战派上海站](https://opentalk.upyun.com/303.html)",我登台对XXL-JOB做了演讲,现场观众反响热烈并在会后与XXL-JOB用户热烈讨论交流。
+
+于2017-12-11,XXL-JOB有幸参会《[InfoQ ArchSummit全球架构师峰会](http://bj2017.archsummit.com/)》,并被拍拍贷架构总监"杨波老师"在专题 "[微服务原理、基础架构和开源实践](http://bj2017.archsummit.com/training/2)" 中现场介绍。
+
+于2017-12-18,XXL-JOB参与"[2017年度最受欢迎中国开源软件](http://www.oschina.net/project/top_cn_2017?sort=1)"评比,在当时已录入的约九千个国产开源项目中角逐,最终进入了前30强。
+
+于2018-01-15,XXL-JOB参与"[2017码云最火开源项目](https://www.oschina.net/news/92438/2017-mayun-top-50)"评比,在当时已录入的约六千五百个码云项目中角逐,最终进去了前20强。
+
+于2018-04-14,iTechPlus在上海举办的 "[2018互联网开发者大会](http://www.itdks.com/eventlist/detail/2065)",我登台对XXL-JOB做了演讲,现场观众反响热烈并在会后与XXL-JOB用户热烈讨论交流。
+
+于2018-05-27,在上海举办的 "[第75期开源中国源创会](https://www.oschina.net/event/2278742)" 的 "架构" 主题专场,我登台进行“基础架构与中间件图谱”主题演讲,台下上千位在场观众反响热烈([图文回顾](https://www.oschina.net/question/3802184_2280606) )。
+
+于2018-12-05,XXL-JOB参与"[2018年度最受欢迎中国开源软件](https://www.oschina.net/project/top_cn_2018?sort=1)"评比,在当时已录入的一万多个开源项目中角逐,最终排名第19名。
+
+于2019-12-10,XXL-JOB参与"[2019年度最受欢迎中国开源软件](https://www.oschina.net/project/top_cn_2019)"评比,在当时已录入的一万多个开源项目中角逐,最终排名"开发框架和基础组件类"第9名。
+
+> 我司大众点评目前已接入XXL-JOB,内部别名《Ferrari》(Ferrari基于XXL-JOB的V1.1版本定制而成,新接入应用推荐升级最新版本)。
+据最新统计, 自2016-01-21接入至2017-12-01期间,该系统已调度约100万次,表现优异。新接入应用推荐使用最新版本,因为经过数十个版本的更新,系统的任务模型、UI交互模型以及底层调度通讯模型都有了较大的优化和提升,核心功能更加稳定高效。
+
+至今,XXL-JOB已接入多家公司的线上产品线,接入场景如电商业务,O2O业务和大数据作业等,截止最新统计时间为止,XXL-JOB已接入的公司包括不限于:
+    
+	- 1、大众点评【美团点评】
+	- 2、山东学而网络科技有限公司;
+	- 3、安徽慧通互联科技有限公司;
+	- 4、人人聚财金服;
+	- 5、上海棠棣信息科技股份有限公司
+	- 6、运满满【运满满】
+	- 7、米其林 (中国区)【米其林】
+	- 8、妈妈联盟
+	- 9、九樱天下(北京)信息技术有限公司
+	- 10、万普拉斯科技有限公司【一加手机】
+	- 11、上海亿保健康管理有限公司
+	- 12、海尔馨厨【海尔】
+	- 13、河南大红包电子商务有限公司
+	- 14、成都顺点科技有限公司
+	- 15、深圳市怡亚通
+	- 16、深圳麦亚信科技股份有限公司
+	- 17、上海博莹科技信息技术有限公司
+	- 18、中国平安科技有限公司【中国平安】
+	- 19、杭州知时信息科技有限公司
+	- 20、博莹科技(上海)有限公司
+	- 21、成都依能股份有限责任公司
+	- 22、湖南高阳通联信息技术有限公司
+	- 23、深圳市邦德文化发展有限公司
+	- 24、福建阿思可网络教育有限公司
+	- 25、优信二手车【优信】
+	- 26、上海悠游堂投资发展股份有限公司【悠游堂】
+	- 27、北京粉笔蓝天科技有限公司
+	- 28、中秀科技(无锡)有限公司
+	- 29、武汉空心科技有限公司
+	- 30、北京蚂蚁风暴科技有限公司
+	- 31、四川互宜达科技有限公司
+	- 32、钱包行云(北京)科技有限公司
+	- 33、重庆欣才集团
+    - 34、咪咕互动娱乐有限公司【中国移动】
+    - 35、北京诺亦腾科技有限公司
+    - 36、增长引擎(北京)信息技术有限公司
+    - 37、北京英贝思科技有限公司
+    - 38、刚泰集团
+    - 39、深圳泰久信息系统股份有限公司
+    - 40、随行付支付有限公司
+    - 41、广州瀚农网络科技有限公司
+    - 42、享点科技有限公司
+    - 43、杭州比智科技有限公司
+    - 44、圳临界线网络科技有限公司
+    - 45、广州知识圈网络科技有限公司
+    - 46、国誉商业上海有限公司
+    - 47、海尔消费金融有限公司,嗨付、够花【海尔】
+    - 48、广州巴图鲁信息科技有限公司
+    - 49、深圳市鹏海运电子数据交换有限公司
+    - 50、深圳市亚飞电子商务有限公司
+    - 51、上海趣医网络有限公司
+    - 52、聚金资本
+    - 53、北京父母邦网络科技有限公司
+    - 54、中山元赫软件科技有限公司
+    - 55、中商惠民(北京)电子商务有限公司
+    - 56、凯京集团
+    - 57、华夏票联(北京)科技有限公司
+    - 58、拍拍贷【拍拍贷】
+    - 59、北京尚德机构在线教育有限公司
+    - 60、任子行股份有限公司
+    - 61、北京时态电子商务有限公司
+    - 62、深圳卷皮网络科技有限公司
+    - 63、北京安博通科技股份有限公司
+    - 64、未来无线网
+    - 65、厦门瓷禧网络有限公司
+    - 66、北京递蓝科软件股份有限公司
+    - 67、郑州创海软件科技公司
+    - 68、北京国槐信息科技有限公司
+    - 69、浪潮软件集团
+    - 70、多立恒(北京)信息技术有限公司
+    - 71、广州极迅客信息科技有限公司
+    - 72、赫基(中国)集团股份有限公司
+    - 73、海投汇
+    - 74、上海润益创业孵化器管理股份有限公司
+    - 75、汉纳森(厦门)数据股份有限公司
+    - 76、安信信托
+    - 77、岚儒财富
+    - 78、捷道软件
+    - 79、湖北享七网络科技有限公司
+    - 80、湖南创发科技责任有限公司
+    - 81、深圳小安时代互联网金融服务有限公司
+    - 82、湖北享七网络科技有限公司
+    - 83、钱包行云(北京)科技有限公司
+    - 84、360金融【360】
+    - 85、易企秀
+    - 86、摩贝(上海)生物科技有限公司
+    - 87、广东芯智慧科技有限公司
+    - 88、联想集团【联想】
+    - 89、怪兽充电
+    - 90、行圆汽车
+    - 91、深圳店店通科技邮箱公司
+    - 92、京东【京东】
+    - 93、米庄理财
+    - 94、咖啡易融
+    - 95、梧桐诚选
+    - 96、恒大地产【恒大】
+    - 97、昆明龙慧
+    - 98、上海涩瑶软件
+    - 99、易信【网易】
+    - 100、铜板街
+    - 101、杭州云若网络科技有限公司
+    - 102、特百惠(中国)有限公司
+    - 103、常山众卡运力供应链管理有限公司
+    - 104、深圳立创电子商务有限公司
+    - 105、杭州智诺科技股份有限公司
+    - 106、北京云漾信息科技有限公司
+    - 107、深圳市多银科技有限公司
+    - 108、亲宝宝
+    - 109、上海博卡软件科技有限公司
+    - 110、智慧树在线教育平台
+    - 111、米族金融
+    - 112、北京辰森世纪
+    - 113、云南滇医通
+    - 114、广州市分领网络科技有限责任公司
+    - 115、浙江微能科技有限公司
+    - 116、上海馨飞电子商务有限公司
+    - 117、上海宝尊电子商务有限公司
+    - 118、直客通科技技术有限公司
+    - 119、科度科技有限公司
+    - 120、上海数慧系统技术有限公司
+    - 121、我的医药网
+    - 122、多粉平台
+    - 123、铁甲二手机
+    - 124、上海海新得数据技术有限公司
+    - 125、深圳市珍爱网信息技术有限公司【珍爱网】
+    - 126、小蜜蜂
+    - 127、吉荣数科技
+    - 128、上海恺域信息科技有限公司
+    - 129、广州荔支网络有限公司【荔枝FM】
+    - 130、杭州闪宝科技有限公司
+    - 131、北京互联新网科技发展有限公司
+    - 132、誉道科技
+    - 133、山西兆盛房地产开发有限公司
+    - 134、北京蓝睿通达科技有限公司
+    - 135、月亮小屋(中国)有限公司【蓝月亮】
+    - 136、青岛国瑞信息技术有限公司
+    - 137、博雅云计算(北京)有限公司
+    - 138、华泰证券香港子公司
+    - 139、杭州东方通信软件技术有限公司
+    - 140、武汉博晟安全技术股份有限公司
+    - 141、深圳市六度人和科技有限公司
+    - 142、杭州趣维科技有限公司(小影)
+    - 143、宁波单车侠之家科技有限公司【单车侠】
+    - 144、丁丁云康信息科技(北京)有限公司
+    - 145、云钱袋
+    - 146、南京中兴力维
+    - 147、上海矽昌通信技术有限公司
+    - 148、深圳萨科科技
+    - 149、中通服创立科技有限责任公司
+    - 150、深圳市对庄科技有限公司
+    - 151、上证所信息网络有限公司
+    - 152、杭州火烧云科技有限公司【婚礼纪】
+    - 153、天津青芒果科技有限公司【芒果头条】
+    - 154、长飞光纤光缆股份有限公司
+    - 155、世纪凯歌(北京)医疗科技有限公司
+    - 156、浙江霖梓控股有限公司
+    - 157、江西腾飞网络技术有限公司
+    - 158、安迅物流有限公司
+    - 159、肉联网
+    - 160、北京北广梯影广告传媒有限公司
+    - 161、上海数慧系统技术有限公司
+    - 162、大志天成
+    - 163、上海云鹊医
+    - 164、上海云鹊医
+    - 165、墨迹天气【墨迹天气】
+    - 166、上海逸橙信息科技有限公司
+    - 167、沅朋物联
+    - 168、杭州恒生云融网络科技有限公司
+    - 169、绿米联创
+    - 170、重庆易宠科技有限公司
+    - 171、安徽引航科技有限公司(乐职网)
+    - 172、上海数联医信企业发展有限公司
+    - 173、良彬建材
+    - 174、杭州求是同创网络科技有限公司
+    - 175、荷马国际
+    - 176、点雇网
+    - 177、深圳市华星光电技术有限公司
+    - 178、厦门神州鹰软件科技有限公司
+    - 179、深圳市招商信诺人寿保险有限公司
+    - 180、上海好屋网信息技术有限公司
+    - 181、海信集团【海信】
+    - 182、信凌可信息科技(上海)有限公司
+    - 183、长春天成科技发展有限公司
+    - 184、用友金融信息技术股份有限公司【用友】
+    - 185、北京咖啡易融有限公司
+    - 186、国投瑞银基金管理有限公司
+    - 187、晋松(上海)网络信息技术有限公司
+    - 188、深圳市随手科技有限公司【随手记】
+    - 189、深圳水务科技有限公司
+    - 190、易企秀【易企秀】
+    - 191、北京磁云科技
+    - 192、南京蜂泰互联网科技有限公司
+    - 193、章鱼直播
+    - 194、奖多多科技
+    - 195、天津市神州商龙科技股份有限公司
+    - 196、岩心科技
+    - 197、车码科技(北京)有限公司
+    - 198、贵阳市投资控股集团
+    - 199、康旗股份
+    - 200、龙腾出行
+    - 201、杭州华量软件
+    - 202、合肥顶岭医疗科技有限公司
+    - 203、重庆表达式科技有限公司
+    - 204、上海米道信息科技有限公司
+    - 205、北京益友会科技有限公司
+    - 206、北京融贯电子商务有限公司
+    - 207、中国外汇交易中心
+    - 208、中国外运股份有限公司
+    - 209、中国上海晓圈教育科技有限公司
+    - 210、普联软件股份有限公司
+    - 211、北京科蓝软件股份有限公司
+    - 212、江苏斯诺物联科技有限公司
+    - 213、北京搜狐-狐友【搜狐】
+    - 214、新大陆网商金融
+    - 215、山东神码中税信息科技有限公司
+    - 216、河南汇顺网络科技有限公司
+    - 217、北京华夏思源科技发展有限公司
+    - 218、上海东普信息科技有限公司
+    - 219、上海鸣勃网络科技有限公司
+    - 220、广东学苑教育发展有限公司
+    - 221、深圳强时科技有限公司
+    - 222、上海云砺信息科技有限公司
+    - 223、重庆愉客行网络有限公司
+    - 224、数云
+    - 225、国家电网运检部
+    - 226、杭州找趣
+    - 227、浩鲸云计算科技股份有限公司
+    - 228、科大讯飞【科大讯飞】
+    - 229、杭州行装网络科技有限公司
+    - 230、即有分期金融
+    - 231、深圳法司德信息科技有限公司
+    - 232、上海博复信息科技有限公司
+    - 233、杭州云嘉云计算有限公司
+    - 234、有家民宿(有家美宿)
+    - 235、北京赢销通软件技术有限公司
+    - 236、浙江聚有财金融服务外包有限公司
+    - 237、易族智汇(北京)科技有限公司
+    - 238、合肥顶岭医疗科技开发有限公司
+    - 239、车船宝(深圳)旭珩科技有限公司)
+    - 240、广州富力地产有限公司
+    - 241、氢课(上海)教育科技有限公司
+    - 242、武汉氪细胞网络技术有限公司
+    - 243、杭州有云科技有限公司
+    - 244、上海仙豆智能机器人有限公司
+    - 245、拉卡拉支付股份有限公司【拉卡拉】
+    - 246、虎彩印艺股份有限公司
+    - 247、北京数微科技有限公司
+    - 248、广东智瑞科技有限公司
+    - 249、找钢网
+    - 250、九机网
+    - 251、杭州跑跑网络科技有限公司
+    - 252、深圳未来云集
+    - 253、杭州每日给力科技有限公司
+    - 254、上海齐犇信息科技有限公司
+    - 255、滴滴出行【滴滴】
+    - 256、合肥云诊信息科技有限公司
+    - 257、云知声智能科技股份有限公司
+    - 258、南京坦道科技有限公司
+    - 259、爱乐优(二手平台)
+    - 260、猫眼电影(私有化部署)【猫眼电影】
+    - 261、美团大象(私有化部署)【美团大象】
+    - 262、作业帮教育科技(北京)有限公司【作业帮】
+    - 263、北京小年糕互联网技术有限公司
+    - 264、山东矩阵软件工程股份有限公司
+    - 265、陕西国驿软件科技有限公司
+    - 266、君开信息科技
+    - 267、村鸟网络科技有限责任公司
+    - 268、云南国际信托有限公司
+    - 269、金智教育
+    - 270、珠海市筑巢科技有限公司
+    - 271、上海百胜软件股份有限公司
+    - 272、深圳市科盾科技有限公司
+    - 273、哈啰出行【哈啰】
+    - 274、途虎养车【途虎】
+    - 275、卡思优派人力资源集团
+    - 276、南京观为智慧软件科技有限公司
+    - 277、杭州城市大脑科技有限公司
+    - 278、猿辅导【猿辅导】
+    - 279、洛阳健创网络科技有限公司
+    - 280、魔力耳朵
+    - 281、亿阳信通
+    - 282、上海招鲤科技有限公司
+    - 283、四川商旅无忧科技服务有限公司
+    - 284、UU跑腿
+    - 285、北京老虎证券【老虎证券】
+    - 286、悠活省吧(北京)网络科技有限公司
+    - 287、F5未来商店
+    - 288、深圳环阳通信息技术有限公司
+    - 289、遠傳電信
+	- ……
+
+> 更多接入的公司,欢迎在 [登记地址](https://github.com/xuxueli/xxl-job/issues/1 ) 登记,登记仅仅为了产品推广。
+
+欢迎大家的关注和使用,XXL-JOB也将拥抱变化,持续发展。
+
+
+### 1.5 下载
+
+#### 文档地址
+
+- [中文文档](https://www.xuxueli.com/xxl-job/)
+- [English Documentation](https://www.xuxueli.com/xxl-job/en/)
+
+#### 源码仓库地址
+
+源码仓库地址 | Release Download
+--- | ---
+[https://github.com/xuxueli/xxl-job](https://github.com/xuxueli/xxl-job) | [Download](https://github.com/xuxueli/xxl-job/releases)  
+[http://gitee.com/xuxueli0323/xxl-job](http://gitee.com/xuxueli0323/xxl-job) | [Download](http://gitee.com/xuxueli0323/xxl-job/releases)
+
+
+#### 中央仓库地址
+
+```
+<!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-job-core/ -->
+<dependency>
+    <groupId>com.xuxueli</groupId>
+    <artifactId>xxl-job-core</artifactId>
+    <version>${最新稳定版本}</version>
+</dependency>
+```
+
+
+### 1.6 环境
+- Maven3+
+- Jdk1.7+
+- Mysql5.7+
+
+
+## 二、快速入门
+
+### 2.1 初始化“调度数据库”
+请下载项目源码并解压,获取 "调度数据库初始化SQL脚本" 并执行即可。
+
+"调度数据库初始化SQL脚本" 位置为:
+
+    /xxl-job/doc/db/tables_xxl_job.sql
+
+调度中心支持集群部署,集群情况下各节点务必连接同一个mysql实例;
+
+如果mysql做主从,调度中心集群节点务必强制走主库;
+
+### 2.2 编译源码
+解压源码,按照maven格式将源码导入IDE, 使用maven进行编译即可,源码结构如下:
+
+    xxl-job-admin:调度中心
+    xxl-job-core:公共依赖
+    xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用,也可以参考其并将现有项目改造成执行器)
+        :xxl-job-executor-sample-springboot:Springboot版本,通过Springboot管理执行器,推荐这种方式;
+        :xxl-job-executor-sample-spring:Spring版本,通过Spring容器管理执行器,比较通用;
+        :xxl-job-executor-sample-frameless:无框架版本;
+        :xxl-job-executor-sample-jfinal:JFinal版本,通过JFinal管理执行器;
+        :xxl-job-executor-sample-nutz:Nutz版本,通过Nutz管理执行器;
+        :xxl-job-executor-sample-jboot:jboot版本,通过jboot管理执行器;
+        
+
+### 2.3 配置部署“调度中心”
+
+    调度中心项目:xxl-job-admin
+    作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。
+
+#### 步骤一:调度中心配置:
+调度中心配置文件地址:
+
+    /xxl-job/xxl-job-admin/src/main/resources/application.properties
+
+
+调度中心配置内容说明:
+
+    ### 调度中心JDBC链接:链接地址请保持和 2.1章节 所创建的调度数据库的地址一致
+    spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?Unicode=true&characterEncoding=UTF-8
+    spring.datasource.username=root
+    spring.datasource.password=root_pwd
+    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
+    
+    ### 报警邮箱
+    spring.mail.host=smtp.qq.com
+    spring.mail.port=25
+    spring.mail.username=xxx@qq.com
+    spring.mail.password=xxx
+    spring.mail.properties.mail.smtp.auth=true
+    spring.mail.properties.mail.smtp.starttls.enable=true
+    spring.mail.properties.mail.smtp.starttls.required=true
+    spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
+    
+    ### 调度中心通讯TOKEN [选填]:非空时启用;
+    xxl.job.accessToken=
+    
+    ### 调度中心国际化配置 [选填]: 默认为空,表示中文; "en" 表示英文;
+    xxl.job.i18n=
+    
+    ## 调度线程池最大线程配置【必填】
+    xxl.job.triggerpool.fast.max=200
+    xxl.job.triggerpool.slow.max=100
+    
+    ### 调度中心日志表数据保存天数 [必填]:过期日志自动清理;限制大于等于7时生效,否则, 如-1,关闭自动清理功能;
+    xxl.job.logretentiondays=30
+    
+    
+
+#### 步骤二:部署项目:
+如果已经正确进行上述配置,可将项目编译打包部署。
+
+调度中心访问地址:http://localhost:8080/xxl-job-admin (该地址执行器将会使用到,作为回调地址)
+
+默认登录账号 "admin/123456", 登录后运行界面如下图所示。
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_6yC0.png "在这里输入图片标题")
+
+至此“调度中心”项目已经部署成功。
+
+#### 步骤三:调度中心集群(可选):
+调度中心支持集群部署,提升调度系统容灾和可用性。
+
+调度中心集群部署时,几点要求和建议:
+- DB配置保持一致;
+- 集群机器时钟保持一致(单机集群忽视);
+- 建议:推荐通过nginx为调度中心集群做负载均衡,分配域名。调度中心访问、执行器回调配置、调用API服务等操作均通过该域名进行。
+
+
+#### 其他:Docker 镜像方式搭建调度中心:
+
+- 下载镜像
+
+```
+// Docker地址:https://hub.docker.com/r/xuxueli/xxl-job-admin/     (建议指定版本号)
+docker pull xuxueli/xxl-job-admin
+```
+
+- 创建容器并运行
+
+```
+docker run -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin  -d xuxueli/xxl-job-admin
+
+/**
+* 如需自定义 mysql 等配置,可通过 "PARAMS" 指定,参数格式 RAMS="--key=value  --key2=value2" ;
+* 配置项参考文件:/xxl-job/xxl-job-admin/src/main/resources/application.properties
+*/
+docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?Unicode=true&characterEncoding=UTF-8" -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin  -d xuxueli/xxl-job-admin
+```
+
+
+### 2.4 配置部署“执行器项目”
+
+    “执行器”项目:xxl-job-executor-sample-springboot (提供多种版本执行器供选择,现以 springboot 版本为例,可直接使用,也可以参考其并将现有项目改造成执行器)
+    作用:负责接收“调度中心”的调度并执行;可直接部署执行器,也可以将执行器集成到现有业务项目中。
+    
+#### 步骤一:maven依赖
+确认pom文件中引入了 "xxl-job-core" 的maven依赖;
+    
+#### 步骤二:执行器配置
+执行器配置,配置文件地址:
+
+    /xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/application.properties
+
+执行器配置,配置内容说明:
+
+    ### 调度中心部署跟地址 [选填]:如调度中心集群部署存在多个地址则用逗号分隔。执行器将会使用该地址进行"执行器心跳注册"和"任务结果回调";为空则关闭自动注册;
+    xxl.job.admin.addresses=http://127.0.0.1:8080/xxl-job-admin
+    
+    ### 执行器AppName [选填]:执行器心跳注册分组依据;为空则关闭自动注册
+    xxl.job.executor.appname=xxl-job-executor-sample
+    
+    ### 执行器IP [选填]:默认为空表示自动获取IP,多网卡时可手动设置指定IP,该IP不会绑定Host仅作为通讯实用;地址信息用于 "执行器注册" 和 "调度中心请求并触发任务";
+    xxl.job.executor.ip=
+    
+    ### 执行器端口号 [选填]:小于等于0则自动获取;默认端口为9999,单机部署多个执行器时,注意要配置不同执行器端口;
+    xxl.job.executor.port=9999
+    
+    ### 执行器通讯TOKEN [选填]:非空时启用;
+    xxl.job.accessToken=
+        
+    ### 执行器运行日志文件存储磁盘路径 [选填] :需要对该路径拥有读写权限;为空则使用默认路径;
+    xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
+    
+    ### 执行器日志文件保存天数 [选填] : 过期日志自动清理, 限制值大于等于3时生效; 否则, 如-1, 关闭自动清理功能;
+    xxl.job.executor.logretentiondays=30
+    
+
+#### 步骤三:执行器组件配置
+
+执行器组件,配置文件地址:
+
+    /xxl-job/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/core/config/XxlJobConfig.java
+
+执行器组件,配置内容说明:
+
+```
+@Bean
+public XxlJobSpringExecutor xxlJobExecutor() {
+    logger.info(">>>>>>>>>>> xxl-job config init.");
+    XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+    xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+    xxlJobSpringExecutor.setAppName(appName);
+    xxlJobSpringExecutor.setIp(ip);
+    xxlJobSpringExecutor.setPort(port);
+    xxlJobSpringExecutor.setAccessToken(accessToken);
+    xxlJobSpringExecutor.setLogPath(logPath);
+    xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+    return xxlJobSpringExecutor;
+}
+```
+
+#### 步骤四:部署执行器项目:
+如果已经正确进行上述配置,可将执行器项目编译打部署,系统提供多种执行器Sample示例项目,选择其中一个即可,各自的部署方式如下。
+
+    xxl-job-executor-sample-springboot:项目编译打包成springboot类型的可执行JAR包,命令启动即可;
+    xxl-job-executor-sample-spring:项目编译打包成WAR包,并部署到tomcat中。
+    xxl-job-executor-sample-jfinal:同上
+    xxl-job-executor-sample-nutz:同上
+    xxl-job-executor-sample-jboot:同上
+    
+
+至此“执行器”项目已经部署结束。
+
+#### 步骤五:执行器集群(可选):
+执行器支持集群部署,提升调度系统可用性,同时提升任务处理能力。
+
+执行器集群部署时,几点要求和建议:
+- 执行器回调地址(xxl.job.admin.addresses)需要保持一致;执行器根据该配置进行执行器自动注册等操作。 
+- 同一个执行器集群内AppName(xxl.job.executor.appname)需要保持一致;调度中心根据该配置动态发现不同集群的在线执行器列表。
+
+
+### 2.5 开发第一个任务“Hello World”       
+本示例以新建一个 “GLUE模式(Java)” 运行模式的任务为例。更多有关任务的详细配置,请查看“章节三:任务详解”。
+( “GLUE模式(Java)”的执行代码托管到调度中心在线维护,相比“Bean模式任务”需要在执行器项目开发部署上线,更加简便轻量)
+
+> 前提:请确认“调度中心”和“执行器”项目已经成功部署并启动;
+
+#### 步骤一:新建任务:
+登录调度中心,点击下图所示“新建任务”按钮,新建示例任务。然后,参考下面截图中任务的参数配置,点击保存。
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_o8HQ.png "在这里输入图片标题")
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_ZAsz.png "在这里输入图片标题")
+
+
+#### 步骤二:“GLUE模式(Java)” 任务开发:
+请点击任务右侧 “GLUE” 按钮,进入 “GLUE编辑器开发界面” ,见下图。“GLUE模式(Java)” 运行模式的任务默认已经初始化了示例任务代码,即打印Hello World。
+( “GLUE模式(Java)” 运行模式的任务实际上是一段继承自IJobHandler的Java类代码,它在执行器项目中运行,可使用@Resource/@Autowire注入执行器里中的其他服务,详细介绍请查看第三章节)
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Fgql.png "在这里输入图片标题")
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_dNUJ.png "在这里输入图片标题")
+
+#### 步骤三:触发执行:
+请点击任务右侧 “执行” 按钮,可手动触发一次任务执行(通常情况下,通过配置Cron表达式进行任务调度出发)。
+
+#### 步骤四:查看日志: 
+请点击任务右侧 “日志” 按钮,可前往任务日志界面查看任务日志。
+在任务日志界面中,可查看该任务的历史调度记录以及每一次调度的任务调度信息、执行参数和执行信息。运行中的任务点击右侧的“执行日志”按钮,可进入日志控制台查看实时执行日志。
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_inc8.png "在这里输入图片标题")
+
+在日志控制台,可以Rolling方式实时查看任务在执行器一侧运行输出的日志信息,实时监控任务进度;
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_eYrv.png "在这里输入图片标题")
+
+## 三、任务详解
+
+### 配置属性详细说明:
+
+    - 执行器:任务的绑定的执行器,任务触发调度时将会自动发现注册成功的执行器, 实现任务自动发现功能; 另一方面也可以方便的进行任务分组。每个任务必须绑定一个执行器, 可在 "执行器管理" 进行设置;
+    - 任务描述:任务的描述信息,便于任务管理;
+    - 路由策略:当执行器集群部署时,提供丰富的路由策略,包括;
+        FIRST(第一个):固定选择第一个机器;
+        LAST(最后一个):固定选择最后一个机器;
+        ROUND(轮询):;
+        RANDOM(随机):随机选择在线的机器;
+        CONSISTENT_HASH(一致性HASH):每个任务按照Hash算法固定选择某一台机器,且所有任务均匀散列在不同机器上。
+        LEAST_FREQUENTLY_USED(最不经常使用):使用频率最低的机器优先被选举;
+        LEAST_RECENTLY_USED(最近最久未使用):最久为使用的机器优先被选举;
+        FAILOVER(故障转移):按照顺序依次进行心跳检测,第一个心跳检测成功的机器选定为目标执行器并发起调度;
+        BUSYOVER(忙碌转移):按照顺序依次进行空闲检测,第一个空闲检测成功的机器选定为目标执行器并发起调度;
+        SHARDING_BROADCAST(分片广播):广播触发对应集群中所有机器执行一次任务,同时系统自动传递分片参数;可根据分片参数开发分片任务;
+        
+    - Cron:触发任务执行的Cron表达式;
+    - 运行模式:
+        BEAN模式:任务以JobHandler方式维护在执行器端;需要结合 "JobHandler" 属性匹配执行器中任务;
+        GLUE模式(Java):任务以源码方式维护在调度中心;该模式的任务实际上是一段继承自IJobHandler的Java类代码并 "groovy" 源码方式维护,它在执行器项目中运行,可使用@Resource/@Autowire注入执行器里中的其他服务;
+        GLUE模式(Shell):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "shell" 脚本;
+        GLUE模式(Python):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "python" 脚本;
+        GLUE模式(PHP):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "php" 脚本;
+        GLUE模式(NodeJS):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "nodejs" 脚本;
+        GLUE模式(PowerShell):任务以源码方式维护在调度中心;该模式的任务实际上是一段 "PowerShell" 脚本;
+    - JobHandler:运行模式为 "BEAN模式" 时生效,对应执行器中新开发的JobHandler类“@JobHandler”注解自定义的value值;
+    - 阻塞处理策略:调度过于密集执行器来不及处理时的处理策略;
+        单机串行(默认):调度请求进入单机执行器后,调度请求进入FIFO队列并以串行方式运行;
+        丢弃后续调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,本次请求将会被丢弃并标记为失败;
+        覆盖之前调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,将会终止运行中的调度任务并清空队列,然后运行本地调度任务;
+    - 子任务:每个任务都拥有一个唯一的任务ID(任务ID可以从任务列表获取),当本任务执行结束并且执行成功时,将会触发子任务ID所对应的任务的一次主动调度。
+    - 任务超时时间:支持自定义任务超时时间,任务运行超时将会主动中断任务;
+    - 失败重试次数;支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;
+    - 报警邮件:任务调度失败时邮件通知的邮箱地址,支持配置多邮箱地址,配置多个邮箱地址时用逗号分隔;
+    - 负责人:任务的负责人;
+    - 执行参数:任务执行所需的参数;
+
+    
+### 3.1 BEAN模式(类形式)
+
+基于类的Bean模式开发方式,这是比较原始的一种开发方式。
+
+- 优点:兼容性好、不限制项目环境,即使是无框架项目,如main方法直接启动的项目也可以提供支持,可以参考示例项目 "xxl-job-executor-sample-frameless";
+- 缺点:每个任务需要占用一个Java类,比较浪费资源;而且,不支持自动扫描任务注入到执行器容器,需要手动注入。
+
+#### 步骤一:执行器项目中,开发Job类:
+
+    - 1、开发一个继承自"com.xxl.job.core.handler.IJobHandler"的JobHandler类。
+    - 2、手动通过如下方式注入到执行器容器。
+    ```
+    XxlJobExecutor.registJobHandler("demoJobHandler", new DemoJobHandler());
+    ```
+
+#### 步骤二:调度中心,新建调度任务
+后续步骤和 "3.2 BEAN模式(方法形式)"一致,可以前往参考。
+
+
+### 3.2 BEAN模式(方法形式)
+
+基于方法的Bean模式开发方式,这是比较推荐的开发方式。
+
+- 优点:每个任务只需要开发一个方法,添加"@XxlJob"注解即可。更加方便、快速。会自动扫描任务注入到执行器容器。
+- 缺点:要求Spring容器环境;
+
+>基于方法开发的任务,底层会生成JobHandler代理,和基于类的方式一样,任务也会以JobHandler的形式存在于执行器任务容器中。
+
+#### 步骤一:执行器项目中,开发Job方法:
+
+    - 1、在Spring Bean实例中,开发Job方法,方式格式要求为 "public ReturnT<String> execute(String param)"
+    - 2、为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+    - 3、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
+    
+```
+// 可参考Sample示例执行器中的 "com.xxl.job.executor.service.jobhandler.SampleXxlJob" ,如下:
+@XxlJob("demoJobHandler")
+public ReturnT<String> execute(String param) {
+
+    XxlJobLogger.log("hello world.");
+    return ReturnT.SUCCESS;
+}
+```
+
+#### 步骤二:调度中心,新建调度任务
+参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "BEAN模式",JobHandler属性填写任务注解“@XxlJob”中定义的值;
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_ZAsz.png "在这里输入图片标题")
+
+#### 原生内置Bean模式任务
+为方便用户参考与快速实用,示例执行器内原生提供多个Bean模式任务Handler,可以直接配置实用,如下:
+
+- demoJobHandler:简单示例任务,任务内部模拟耗时任务逻辑,用户可在线体验Rolling Log等功能;
+- shardingJobHandler:分片示例任务,任务内部模拟处理分片参数,可参考熟悉分片任务;
+- httpJobHandler:通用HTTP任务Handler;业务方只需要提供HTTP链接即可,不限制语言、平台;
+- commandJobHandler:通用命令行任务Handler;业务方只需要提供命令行即可;如 “pwd”命令;
+
+
+### 3.3 GLUE模式(Java)
+任务以源码方式维护在调度中心,支持通过Web IDE在线更新,实时编译和生效,因此不需要指定JobHandler。开发流程如下:
+
+#### 步骤一:调度中心,新建调度任务:
+参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "GLUE模式(Java)";
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_tJOq.png "在这里输入图片标题")
+
+#### 步骤二:开发任务代码:
+选中指定任务,点击该任务右侧“GLUE”按钮,将会前往GLUE任务的Web IDE界面,在该界面支持对任务代码进行开发(也可以在IDE中开发完成后,复制粘贴到编辑中)。
+
+版本回溯功能(支持30个版本的版本回溯):在GLUE任务的Web IDE界面,选择右上角下拉框“版本回溯”,会列出该GLUE的更新历史,选择相应版本即可显示该版本代码,保存后GLUE代码即回退到对应的历史版本;
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_dNUJ.png "在这里输入图片标题")
+
+### 3.4 GLUE模式(Shell)
+
+#### 步骤一:调度中心,新建调度任务   
+参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "GLUE模式(Shell)";
+
+#### 步骤二:开发任务代码:
+选中指定任务,点击该任务右侧“GLUE”按钮,将会前往GLUE任务的Web IDE界面,在该界面支持对任务代码进行开发(也可以在IDE中开发完成后,复制粘贴到编辑中)。
+
+该模式的任务实际上是一段 "shell" 脚本;
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_iUw0.png "在这里输入图片标题")
+
+### 3.4 GLUE模式(Python)
+
+#### 步骤一:调度中心,新建调度任务   
+参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "GLUE模式(Python)";
+
+#### 步骤二:开发任务代码:
+选中指定任务,点击该任务右侧“GLUE”按钮,将会前往GLUE任务的Web IDE界面,在该界面支持对任务代码进行开发(也可以在IDE中开发完成后,复制粘贴到编辑中)。
+
+该模式的任务实际上是一段 "python" 脚本;
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_BPLG.png "在这里输入图片标题")
+
+### 3.5 GLUE模式(NodeJS)
+
+#### 步骤一:调度中心,新建调度任务   
+参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "GLUE模式(NodeJS)";
+
+#### 步骤二:开发任务代码:
+选中指定任务,点击该任务右侧“GLUE”按钮,将会前往GLUE任务的Web IDE界面,在该界面支持对任务代码进行开发(也可以在IDE中开发完成后,复制粘贴到编辑中)。
+
+该模式的任务实际上是一段 "nodeJS" 脚本;
+
+### 3.6 GLUE模式(PHP)
+同上
+
+### 3.7 GLUE模式(PowerShell)
+同上
+
+
+
+## 四、操作指南
+
+### 4.1 配置执行器
+点击进入"执行器管理"界面, 如下图:
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Hr2T.png "在这里输入图片标题")
+
+    1、"调度中心OnLine:"右侧显示在线的"调度中心"列表, 任务执行结束后, 将会以failover的模式进行回调调度中心通知执行结果, 避免回调的单点风险;
+    2、"执行器列表" 中显示在线的执行器列表, 可通过"OnLine 机器"查看对应执行器的集群机器。
+
+点击按钮 "+新增执行器" 弹框如下图, 可新增执行器配置:
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_V3vF.png "在这里输入图片标题")
+
+执行器属性说明
+
+    AppName: 是每个执行器集群的唯一标示AppName, 执行器会周期性以AppName为对象进行自动注册。可通过该配置自动发现注册成功的执行器, 供任务调度时使用;
+    名称: 执行器的名称, 因为AppName限制字母数字等组成,可读性不强, 名称为了提高执行器的可读性;
+    排序: 执行器的排序, 系统中需要执行器的地方,如任务新增, 将会按照该排序读取可用的执行器列表;
+    注册方式:调度中心获取执行器地址的方式;
+        自动注册:执行器自动进行执行器注册,调度中心通过底层注册表可以动态发现执行器机器地址;
+        手动录入:人工手动录入执行器的地址信息,多地址逗号分隔,供调度中心使用;
+    机器地址:"注册方式"为"手动录入"时有效,支持人工维护执行器的地址信息;
+
+### 4.2 新建任务
+进入任务管理界面,点击“新增任务”按钮,在弹出的“新增任务”界面配置任务属性后保存即可。详情页参考章节 "三、任务详解"。
+
+### 4.3 编辑任务
+进入任务管理界面,选中指定任务。点击该任务右侧“编辑”按钮,在弹出的“编辑任务”界面更新任务属性后保存即可,可以修改设置的任务属性信息:
+
+### 4.4 编辑GLUE代码
+
+该操作仅针对GLUE任务。
+
+选中指定任务,点击该任务右侧“GLUE”按钮,将会前往GLUE任务的Web IDE界面,在该界面支持对任务代码进行开发。可参考章节 "3.3 GLUE模式(Java)"。
+
+### 4.5 启动/停止任务
+可对任务进行“启动”和“停止”操作。
+需要注意的是,此处的启动/停止仅针对任务的后续调度触发行为,不会影响到已经触发的调度任务,如需终止已经触发的调度任务,可查看“4.9 终止运行中的任务”
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_ZAhX.png "在这里输入图片标题")
+
+### 4.6 手动触发一次调度
+点击“执行”按钮,可手动触发一次任务调度,不影响原有调度规则。
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_ZAhX.png "在这里输入图片标题")
+
+### 4.7 查看调度日志
+点击“日志”按钮,可以查看任务历史调度日志。在历史调入日志界面可查看每次任务调度的调度结果、执行结果等,点击“执行日志”按钮可查看执行器完整日志。
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_ZAhX.png "在这里输入图片标题")
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_UDSo.png "在这里输入图片标题")
+
+    调度时间:"调度中心"触发本次调度并向"执行器"发送任务执行信号的时间;
+    调度结果:"调度中心"触发本次调度的结果,200表示成功,500或其他表示失败;
+    调度备注:"调度中心"触发本次调度的日志信息;
+    执行器地址:本次任务执行的机器地址
+    运行模式:触发调度时任务的运行模式,运行模式可参考章节 "三、任务详解";
+    任务参数:本地任务执行的入参
+    执行时间:"执行器"中本次任务执行结束后回调的时间;
+    执行结果:"执行器"中本次任务执行的结果,200表示成功,500或其他表示失败;
+    执行备注:"执行器"中本次任务执行的日志信息;
+    操作:
+        "执行日志"按钮:点击可查看本地任务执行的详细日志信息;详见“4.8 查看执行日志”;
+        "终止任务"按钮:点击可终止本地调度对应执行器上本任务的执行线程,包括未执行的阻塞任务一并被终止;
+
+### 4.8 查看执行日志
+点击执行日志右侧的 “执行日志” 按钮,可跳转至执行日志界面,可以查看业务代码中打印的完整日志,如下图;
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_tvGI.png "在这里输入图片标题")
+
+### 4.9 终止运行中的任务
+仅针对执行中的任务。
+在任务日志界面,点击右侧的“终止任务”按钮,将会向本次任务对应的执行器发送任务终止请求,将会终止掉本次任务,同时会清空掉整个任务执行队列。
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_hIci.png "在这里输入图片标题")
+
+任务终止时通过 "interrupt" 执行线程的方式实现, 将会触发 "InterruptedException" 异常。因此如果JobHandler内部catch到了该异常并消化掉的话, 任务终止功能将不可用。
+
+因此, 如果遇到上述任务终止不可用的情况, 需要在JobHandler中应该针对 "InterruptedException" 异常进行特殊处理 (向上抛出) , 正确逻辑如下:
+```
+try{
+    // do something
+} catch (Exception e) {
+    if (e instanceof InterruptedException) {
+        throw e;
+    }
+    logger.warn("{}", e);
+}
+```
+
+而且,在JobHandler中开启子线程时,子线程也不可catch处理"InterruptedException",应该主动向上抛出。
+
+任务终止时会执行对应JobHandler的"destroy()"方法,可以借助该方法处理一些资源回收的逻辑。
+
+
+### 4.10 删除执行日志
+在任务日志界面,选中执行器和任务之后,点击右侧的"删除"按钮将会出现"日志清理"弹框,弹框中支持选择不同类型的日志清理策略,选中后点击"确定"按钮即可进行日志清理操作;
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Ypik.png "在这里输入图片标题")
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_EB65.png "在这里输入图片标题")
+
+### 4.11 删除任务
+点击删除按钮,可以删除对应任务。
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Z9Qr.png "在这里输入图片标题")
+
+### 4.12 用户管理
+进入 "用户管理" 界面,可查看和管理用户信息;
+
+目前用户分为两种角色:
+- 管理员:拥有全量权限,支持在线管理用户信息,为用户分配权限,权限分配粒度为执行器;
+- 普通用户:仅拥有被分配权限的执行器,及相关任务的操作权限;
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_1001.png "在这里输入图片标题")
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_1002.png "在这里输入图片标题")
+
+
+## 五、总体设计
+### 5.1 源码目录介绍
+    - /doc :文档资料
+    - /db :“调度数据库”建表脚本
+    - /xxl-job-admin :调度中心,项目源码
+    - /xxl-job-core :公共Jar依赖
+    - /xxl-job-executor-samples :执行器,Sample示例项目(大家可以在该项目上进行开发,也可以将现有项目改造生成执行器项目)
+
+### 5.2 “调度数据库”配置
+XXL-JOB调度模块基于自研调度组件并支持集群部署,调度数据库表说明如下:
+
+    - xxl_job_lock:任务调度锁表;
+    - xxl_job_group:执行器信息表,维护任务执行器信息;
+    - xxl_job_info:调度扩展信息表: 用于保存XXL-JOB调度任务的扩展信息,如任务分组、任务名、机器地址、执行器、执行入参和报警邮件等等;
+    - xxl_job_log:调度日志表: 用于保存XXL-JOB任务调度的历史信息,如调度结果、执行结果、调度入参、调度机器和执行器等等;
+    - xxl_job_log_report:调度日志报表:用户存储XXL-JOB任务调度日志的报表,调度中心报表功能页面会用到;
+    - xxl_job_logglue:任务GLUE日志:用于保存GLUE更新历史,用于支持GLUE的版本回溯功能;
+    - xxl_job_registry:执行器注册表,维护在线的执行器和调度中心机器地址信息;
+    - xxl_job_user:系统用户表;
+
+
+### 5.3 架构设计
+#### 5.3.1 设计思想
+将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“调度中心”负责发起调度请求。
+
+将任务抽象成分散的JobHandler,交由“执行器”统一管理,“执行器”负责接收调度请求并执行对应的JobHandler中业务逻辑。
+
+因此,“调度”和“任务”两部分可以相互解耦,提高系统整体稳定性和扩展性;
+
+#### 5.3.2 系统组成
+- **调度模块(调度中心)**:
+    负责管理调度信息,按照调度配置发出调度请求,自身不承担业务代码。调度系统与任务解耦,提高了系统可用性和稳定性,同时调度系统性能不再受限于任务模块;
+    支持可视化、简单且动态的管理调度信息,包括任务新建,更新,删除,GLUE开发和任务报警等,所有上述操作都会实时生效,同时支持监控调度结果以及执行日志,支持执行器Failover。
+- **执行模块(执行器)**:
+    负责接收调度请求并执行任务逻辑。任务模块专注于任务的执行等操作,开发和维护更加简单和高效;
+    接收“调度中心”的执行请求、终止请求和日志请求等。
+
+#### 5.3.3 架构图
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Qohm.png "在这里输入图片标题")
+
+### 5.4 调度模块剖析
+#### 5.4.1 quartz的不足
+Quartz作为开源作业调度中的佼佼者,是作业调度的首选。但是集群环境中Quartz采用API的方式对任务进行管理,从而可以避免上述问题,但是同样存在以下问题:
+   
+- 问题一:调用API的的方式操作任务,不人性化;
+- 问题二:需要持久化业务QuartzJobBean到底层数据表中,系统侵入性相当严重。
+- 问题三:调度逻辑和QuartzJobBean耦合在同一个项目中,这将导致一个问题,在调度任务数量逐渐增多,同时调度任务逻辑逐渐加重的情况下,此时调度系统的性能将大大受限于业务;
+- 问题四:quartz底层以“抢占式”获取DB锁并由抢占成功节点负责运行任务,会导致节点负载悬殊非常大;而XXL-JOB通过执行器实现“协同分配式”运行任务,充分发挥集群优势,负载各节点均衡。
+
+XXL-JOB弥补了quartz的上述不足之处。
+
+#### 5.4.2 自研调度模块
+XXL-JOB最终选择自研调度组件(早期调度组件基于Quartz);一方面是为了精简系统降低冗余依赖,另一方面是为了提供系统的可控度与稳定性;
+
+XXL-JOB中“调度模块”和“任务模块”完全解耦,调度模块进行任务调度时,将会解析不同的任务参数发起远程调用,调用各自的远程执行器服务。这种调用模型类似RPC调用,调度中心提供调用代理的功能,而执行器提供远程服务的功能。
+
+#### 5.4.3 调度中心HA(集群)
+基于数据库的集群方案,数据库选用Mysql;集群分布式并发环境中进行定时任务调度时,会在各个节点会上报任务,存到数据库中,执行时会从数据库中取出触发器来执行,如果触发器的名称和执行时间相同,则只有一个节点去执行此任务。
+
+#### 5.4.4 调度线程池
+调度采用线程池方式实现,避免单线程因阻塞而引起任务调度延迟。
+
+
+#### 5.4.5 并行调度
+XXL-JOB调度模块默认采用并行机制,在多线程调度的情况下,调度模块被阻塞的几率很低,大大提高了调度系统的承载量。
+
+XXL-JOB的每个调度任务虽然在调度模块是并行调度执行的,但是任务调度传递到任务模块的“执行器”确实串行执行的,同时支持任务终止。
+
+#### 5.4.6 过期处理策略
+任务调度错过触发时间时的处理策略:
+- 可能原因:服务重启;调度线程被阻塞,线程被耗尽;上次调度持续阻塞,下次调度被错过;
+- 处理策略:
+    - 过期超5s:本次忽略,当前时间开始计算下次触发时间
+    - 过期5s内:立即触发一次,当前时间开始计算下次触发时间
+
+
+#### 5.4.7 日志回调服务
+调度模块的“调度中心”作为Web服务部署时,一方面承担调度中心功能,另一方面也为执行器提供API服务。
+
+调度中心提供的"日志回调服务API服务"代码位置如下:
+```
+xxl-job-admin#JobApiController.callback
+```
+
+“执行器”在接收到任务执行请求后,执行任务,在执行结束之后会将执行结果回调通知“调度中心”:
+
+#### 5.4.8 任务HA(Failover)
+执行器如若集群部署,调度中心将会感知到在线的所有执行器,如“127.0.0.1:9997, 127.0.0.1:9998, 127.0.0.1:9999”。
+
+当任务"路由策略"选择"故障转移(FAILOVER)"时,当调度中心每次发起调度请求时,会按照顺序对执行器发出心跳检测请求,第一个检测为存活状态的执行器将会被选定并发送调度请求。
+
+调度成功后,可在日志监控界面查看“调度备注”,如下;
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_jrdI.png "在这里输入图片标题")
+
+“调度备注”可以看出本地调度运行轨迹,执行器的"注册方式"、"地址列表"和任务的"路由策略"。"故障转移(FAILOVER)"路由策略下,调度中心首先对第一个地址进行心跳检测,心跳失败因此自动跳过,第二个依然心跳检测失败……
+直至心跳检测第三个地址“127.0.0.1:9999”成功,选定为“目标执行器”;然后对“目标执行器”发送调度请求,调度流程结束,等待执行器回调执行结果。
+
+#### 5.4.9 调度日志
+调度中心每次进行任务调度,都会记录一条任务日志,任务日志主要包括以下三部分内容:
+
+- 任务信息:包括“执行器地址”、“JobHandler”和“执行参数”等属性,点击任务ID按钮可查看,根据这些参数,可以精确的定位任务执行的具体机器和任务代码;
+- 调度信息:包括“调度时间”、“调度结果”和“调度日志”等,根据这些参数,可以了解“调度中心”发起调度请求时具体情况。
+- 执行信息:包括“执行时间”、“执行结果”和“执行日志”等,根据这些参数,可以了解在“执行器”端任务执行的具体情况;
+
+调度日志,针对单次调度,属性说明如下:
+- 执行器地址:任务执行的机器地址;
+- JobHandler:Bean模式表示任务执行的JobHandler名称;
+- 任务参数:任务执行的入参;
+- 调度时间:调度中心,发起调度的时间;
+- 调度结果:调度中心,发起调度的结果,SUCCESS或FAIL;
+- 调度备注:调度中心,发起调度的备注信息,如地址心跳检测日志等;
+- 执行时间:执行器,任务执行结束后回调的时间;
+- 执行结果:执行器,任务执行的结果,SUCCESS或FAIL;
+- 执行备注:执行器,任务执行的备注信息,如异常日志等;
+- 执行日志:任务执行过程中,业务代码中打印的完整执行日志,见“4.8 查看执行日志”;
+
+#### 5.4.10 任务依赖
+原理:XXL-JOB中每个任务都对应有一个任务ID,同时,每个任务支持设置属性“子任务ID”,因此,通过“任务ID”可以匹配任务依赖关系。
+
+当父任务执行结束并且执行成功时,将会根据“子任务ID”匹配子任务依赖,如果匹配到子任务,将会主动触发一次子任务的执行。
+
+在任务日志界面,点击任务的“执行备注”的“查看”按钮,可以看到匹配子任务以及触发子任务执行的日志信息,如无信息则表示未触发子任务执行,可参考下图。
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Wb2o.png "在这里输入图片标题")
+
+![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_jOAU.png "在这里输入图片标题")
+
+#### 5.4.11  全异步化 & 轻量级
+
+- 全异步化设计:XXL-JOB系统中业务逻辑在远程执行器执行,触发流程全异步化设计。相比直接在调度中心内部执行业务逻辑,极大的降低了调度线程占用时间;
+    - 异步调度:调度中心每次任务触发时仅发送一次调度请求,该调度请求首先推送“异步调度队列”,然后异步推送给远程执行器
+    - 异步执行:执行器会将请求存入“异步执行队列”并且立即响应调度中心,异步运行。
+- 轻量级设计:XXL-JOB调度中心中每个JOB逻辑非常 “轻”,在全异步化的基础上,单个JOB一次运行平均耗时基本在 "10ms" 之内(基本为一次请求的网络开销);因此,可以保证使用有限的线程支撑大量的JOB并发运行;
+
+得益于上述两点优化,理论上默认配置下的调度中心,单机能够支撑 5000 任务并发运行稳定运行;
+
+实际场景中,由于调度中心与执行器网络ping延迟不同、DB读写耗时不同、任务调度密集程度不同,会导致任务量上限会上下波动。
+
+如若需要支撑更多的任务量,可以通过 "调大调度线程数" 、"降低调度中心与执行器ping延迟" 和 "提升机器配置" 几种方式优化。
+
+#### 5.4.12 均衡调度
+
+调度中心在集群部署时会自动进行任务平均分配,触发组件每次获取与线程池数量(调度中心支持自定义调度线程池大小)相关数量的任务,避免大量任务集中在单个调度中心集群节点;
+
+
+### 5.5 任务 "运行模式" 剖析
+#### 5.5.1 "Bean模式" 任务
+开发步骤:可参考 "章节三" ;
+原理:每个Bean模式任务都是一个Spring的Bean类实例,它被维护在“执行器”项目的Spring容器中。任务类需要加“@JobHandler(value="名称")”注解,因为“执行器”会根据该注解识别Spring容器中的任务。任务类需要继承统一接口“IJobHandler”,任务逻辑在execute方法中开发,因为“执行器”在接收到调度中心的调度请求时,将会调用“IJobHandler”的execute方法,执行任务逻辑。
+
+#### 5.5.2 "GLUE模式(Java)" 任务
+开发步骤:可参考 "章节三" ;
+原理:每个 "GLUE模式(Java)" 任务的代码,实际上是“一个继承自“IJobHandler”的实现类的类代码”,“执行器”接收到“调度中心”的调度请求时,会通过Groovy类加载器加载此代码,实例化成Java对象,同时注入此代码中声明的Spring服务(请确保Glue代码中的服务和类引用在“执行器”项目中存在),然后调用该对象的execute方法,执行任务逻辑。
+
+#### 5.5.3 GLUE模式(Shell) + GLUE模式(Python) + GLUE模式(NodeJS)
+开发步骤:可参考 "章节三" ;
+原理:脚本任务的源码托管在调度中心,脚本逻辑在执行器运行。当触发脚本任务时,执行器会加载脚本源码在执行器机器上生成一份脚本文件,然后通过Java代码调用该脚本;并且实时将脚本输出日志写到任务日志文件中,从而在调度中心可以实时监控脚本运行情况;
+
+目前支持的脚本类型如下:
+
+    - shell脚本:任务运行模式选择为 "GLUE模式(Shell)"时支持 "shell" 脚本任务;
+    - python脚本:任务运行模式选择为 "GLUE模式(Python)"时支持 "python" 脚本任务;
+    - nodejs脚本:务运行模式选择为 "GLUE模式(NodeJS)"时支持 "nodejs" 脚本任务;
+
+脚本任务通过 Exit Code 判断任务执行结果,状态码可参考章节 "5.15 任务执行结果说明";
+
+#### 5.5.4 执行器
+执行器实际上是一个内嵌的Server,默认端口9999(配置项:xxl.job.executor.port)。
+
+在项目启动时,执行器会通过“@JobHandler”识别Spring容器中“Bean模式任务”,以注解的value属性为key管理起来。
+
+“执行器”接收到“调度中心”的调度请求时,如果任务类型为“Bean模式”,将会匹配Spring容器中的“Bean模式任务”,然后调用其execute方法,执行任务逻辑。如果任务类型为“GLUE模式”,将会加载GLue代码,实例化Java对象,注入依赖的Spring服务(注意:Glue代码中注入的Spring服务,必须存在与该“执行器”项目的Spring容器中),然后调用execute方法,执行任务逻辑。
+
+#### 5.5.5 任务日志
+XXL-JOB会为每次调度请求生成一个单独的日志文件,需要通过 "XxlJobLogger.log" 打印执行日志,“调度中心”查看执行日志时将会加载对应的日志文件。
+
+(历史版本通过重写LOG4J的Appender实现,存在依赖限制,该方式在新版本已经被抛弃)
+
+日志文件存放的位置可在“执行器”配置文件进行自定义,默认目录格式为:/data/applogs/xxl-job/jobhandler/“格式化日期”/“数据库调度日志记录的主键ID.log”。
+
+在JobHandler中开启子线程时,子线程将会将会把日志打印在父线程即JobHandler的执行日志中,方便日志追踪。
+
+### 5.6 通讯模块剖析
+
+#### 5.6.1 一次完整的任务调度通讯流程 
+    - 1、“调度中心”向“执行器”发送http调度请求: “执行器”中接收请求的服务,实际上是一台内嵌Server,默认端口9999;
+    - 2、“执行器”执行任务逻辑;
+    - 3、“执行器”http回调“调度中心”调度结果: “调度中心”中接收回调的服务,是针对执行器开放一套API服务;
+
+#### 5.6.2 通讯数据加密
+调度中心向执行器发送的调度请求时使用RequestModel和ResponseModel两个对象封装调度请求参数和响应数据, 在进行通讯之前底层会将上述两个对象对象序列化,并进行数据协议以及时间戳检验,从而达到数据加密的功能;
+
+### 5.7 任务注册, 任务自动发现   
+自v1.5版本之后, 任务取消了"任务执行机器"属性, 改为通过任务注册和自动发现的方式, 动态获取远程执行器地址并执行。
+
+    AppName: 每个执行器机器集群的唯一标示, 任务注册以 "执行器" 为最小粒度进行注册; 每个任务通过其绑定的执行器可感知对应的执行器机器列表;
+    注册表: 见"xxl_job_registry"表, "执行器" 在进行任务注册时将会周期性维护一条注册记录,即机器地址和AppName的绑定关系; "调度中心" 从而可以动态感知每个AppName在线的机器列表;
+    执行器注册: 任务注册Beat周期默认30s; 执行器以一倍Beat进行执行器注册, 调度中心以一倍Beat进行动态任务发现; 注册信息的失效时间为三倍Beat; 
+    执行器注册摘除:执行器销毁时,将会主动上报调度中心并摘除对应的执行器机器信息,提高心跳注册的实时性;
+    
+
+为保证系统"轻量级"并且降低学习部署成本,没有采用Zookeeper作为注册中心,采用DB方式进行任务注册发现;
+
+### 5.8 任务执行结果
+自v1.6.2之后,任务执行结果通过 "IJobHandler" 的返回值 "ReturnT" 进行判断;
+当返回值符合 "ReturnT.code == ReturnT.SUCCESS_CODE" 时表示任务执行成功,否则表示任务执行失败,而且可以通过 "ReturnT.msg" 回调错误信息给调度中心;
+从而,在任务逻辑中可以方便的控制任务执行结果;
+
+### 5.9 分片广播 & 动态分片   
+执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发对应集群中所有执行器执行一次任务,同时系统自动传递分片参数;可根据分片参数开发分片任务;
+
+"分片广播" 以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。
+
+"分片广播" 和普通任务开发流程一致,不同之处在于可以可以获取分片参数,获取分片参数进行分片业务处理。
+
+- Java语言任务获取分片参数方式:BEAN、GLUE模式(Java)
+```
+// 可参考Sample示例执行器中的示例任务"ShardingJobHandler"了解试用 
+ShardingUtil.ShardingVO shardingVO = ShardingUtil.getShardingVo();
+```
+- 脚本语言任务获取分片参数方式:GLUE模式(Shell)、GLUE模式(Python)、GLUE模式(Nodejs)
+```
+// 脚本任务入参固定为三个,依次为:任务传参、分片序号、分片总数。以Shell模式任务为例,获取分片参数代码如下
+echo "分片序号 index = $2"
+echo "分片总数 total = $3"
+```  
+    
+分片参数属性说明:
+
+    index:当前分片序号(从0开始),执行器集群列表中当前执行器的序号;
+    total:总分片数,执行器集群的总机器数量;
+
+该特性适用场景如:
+- 1、分片任务场景:10个执行器的集群来处理10w条数据,每台机器只需要处理1w条数据,耗时降低10倍;
+- 2、广播任务场景:广播执行器机器运行shell脚本、广播集群节点进行缓存更新等
+
+### 5.10 访问令牌(AccessToken)
+为提升系统安全性,调度中心和执行器进行安全性校验,双方AccessToken匹配才允许通讯;
+
+调度中心和执行器,可通过配置项 "xxl.job.accessToken" 进行AccessToken的设置。
+
+调度中心和执行器,如果需要正常通讯,只有两种设置;
+
+- 设置一:调度中心和执行器,均不设置AccessToken;关闭安全性校验;
+- 设置二:调度中心和执行器,设置了相同的AccessToken;
+
+### 5.11 调度中心API服务
+
+调度中心提供了API服务,主要分为两种类型:
+#### 5.11.1 提供给执行器的API服务:
+    1、任务结果回调服务;
+    2、执行器注册服务;
+    3、执行器注册摘除服务;
+    4、触发任务单次执行服务,支持任务根据业务事件触发;
+    
+API服务位置:com.xxl.job.core.biz.AdminBiz.java  
+API服务请求参考代码:com.xxl.job.adminbiz.AdminBizTest.java
+
+#### 5.11.2 提供给业务的API服务:
+    1、任务列表查询;
+    2、任务新增;
+    3、任务更新;
+    4、任务删除;
+    5、任务启动;
+    6、任务停止;
+    7、任务触发;
+    
+API服务位置:JobInfoController.java     
+API服务请求参考代码:可参考任务界面操作的ajax请求。任何ajax接口均可配置成为API服务,只需在待启用的API服务上添加 “@PermissionLimit(limit = false)” 注解取消登陆态拦截即可;
+
+### 5.12 执行器API服务
+执行器提供了API服务,供调度中心选择使用,目前提供的API服务有:
+
+    1、心跳检测:调度中心使用
+    2、忙碌检测:调度中心使用
+    3、触发任务执行:调度中心使用;本地进行任务开发时,可使用该API服务模拟触发任务;
+    4、获取Rolling Log:调度中心使用
+    5、终止任务:调度中心使用
+    
+API服务位置:com.xxl.job.core.biz.ExecutorBiz     
+API服务请求参考代码:com.xxl.job.executor.ExecutorBizTest
+
+### 5.13 故障转移 & 失败重试
+一次完整任务流程包括"调度(调度中心) + 执行(执行器)"两个阶段。
+    
+- "故障转移"发生在调度阶段,在执行器集群部署时,如果某一台执行器发生故障,该策略支持自动进行Failover切换到一台正常的执行器机器并且完成调度请求流程。
+- "失败重试"发生在"调度 + 执行"两个阶段,支持通过自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;
+
+### 5.14 执行器灰度上线
+调度中心与业务解耦,只需部署一次后常年不需要维护。但是,执行器中托管运行着业务作业,作业上线和变更需要重启执行器,尤其是Bean模式任务。
+执行器重启可能会中断运行中的任务。但是,XXL-JOB得益于自建执行器与自建注册中心,可以通过灰度上线的方式,避免因重启导致的任务中断的问题。
+
+步骤如下:
+- 1、执行器改为手动注册,下线一半机器列表(A组),线上运行另一半机器列表(B组);
+- 2、等待A组机器任务运行结束并编译上线;执行器注册地址替换为A组;
+- 3、等待B组机器任务运行结束并编译上线;执行器注册地址替换为A组+B组;
+操作结束;
+
+### 5.15 任务执行结果说明
+系统根据以下标准判断任务执行结果,可参考之。
+
+-- | Bean/Glue(Java) | Glue(Shell) 等脚本任务
+--- | --- | ---
+成功 | IJobHandler.SUCCESS | 0
+失败 | IJobHandler.FAIL | -1(非0状态码)
+
+### 5.16 任务超时控制
+支持设置任务超时时间,任务运行超时的情况下,将会主动中断任务;
+
+需要注意的是,任务超时中断时与任务终止机制(可查看“4.9 终止运行中的任务”)类似,也是通过 "interrupt" 中断任务,因此业务代码需要将 "InterruptedException" 外抛,否则功能不可用。
+
+### 5.17 跨平台 & 跨语言
+跨平台、跨语言主要体现在以下两个方面:
+- 1、提供Java、Python、PHP……等十来种任务模式,可参考章节 “5.5 任务 "运行模式" ”;理论上可扩展任意语言任务模式;
+- 2、提供基于HTTP的任务Handler(Bean任务,JobHandler="HttpJobHandler");业务方只需要提供HTTP链接即可,不限制语言、平台;
+
+### 5.18 任务失败告警
+默认提供邮件失败告警,可扩展短信、钉钉等方式,扩展代码位置为 "JobFailMonitorHelper.failAlarm";
+
+### 5.19 调度中心Docker镜像构建
+可以通过以下命令快速构建调度中心,并启动运行;
+```
+mvn clean package
+docker build -t xuxueli/xxl-job-admin ./xxl-job-admin
+docker run --name xxl-job-admin -p 8080:8080 -d xuxueli/xxl-job-admin
+```
+
+### 5.20 避免任务重复执行   
+调度密集或者耗时任务可能会导致任务阻塞,集群情况下调度组件小概率情况下会重复触发;
+针对上述情况,可以通过结合 "单机路由策略(如:第一台、一致性哈希)" + "阻塞策略(如:单机串行、丢弃后续调度)" 来规避,最终避免任务重复执行。 
+
+### 5.21 命令行任务   
+原生提供通用命令行任务Handler(Bean任务,"CommandJobHandler");业务方只需要提供命令行即可;
+如任务参数 "pwd" 将会执行命令并输出数据;
+
+### 5.22  日志自动清理
+XXL-JOB日志主要包含如下两部分,均支持日志自动清理,说明如下:
+- 调度中心日志表数据:可借助配置项 "xxl.job.logretentiondays" 设置日志表数据保存天数,过期日志自动清理;详情可查看上文配置说明;
+- 执行器日志文件数据:可借助配置项 "xxl.job.executor.logretentiondays" 设置日志文件数据保存天数,过期日志自动清理;详情可查看上文配置说明;
+
+
+## 六、版本更新日志
+### 6.1 版本 V1.1.x,新特性[2015-12-05]
+**【于V1.1.x版本,XXL-JOB正式应用于我司,内部定制别名为 “Ferrari”,新接入应用推荐使用最新版本】**
+- 1、简单:支持通过Web页面对任务进行CRUD操作,操作简单,一分钟上手;
+- 2、动态:支持动态修改任务状态,动态暂停/恢复任务,即时生效;
+- 3、服务HA:任务信息持久化到mysql中,Job服务天然支持集群,保证服务HA;
+- 4、任务HA:某台Job服务挂掉,任务会平滑分配给其他的某一台存活服务,即使所有服务挂掉,重启时或补偿执行丢失任务;
+- 5、一个任务只会在其中一台服务器上执行;
+- 6、任务串行执行;
+- 7、支持自定义参数;
+- 8、支持远程任务执行终止;
+
+### 6.2 版本 V1.2.x,新特性[2016-01-17]
+- 1、支持任务分组;
+- 2、支持“本地任务”、“远程任务”;
+- 3、底层通讯支持两种方式,Servlet方式 + JETTY方式;
+- 4、支持“任务日志”;
+- 5、支持“串行执行”,并行执行;
+	
+	说明:V1.2版本将系统架构按功能拆分为:
+	
+		- 调度模块(调度中心):负责管理调度信息,按照调度配置发出调度请求;
+		- 执行模块(执行器):负责接收调度请求并执行任务逻辑;
+		- 通讯模块:负责调度模块和任务模块之间的信息通讯;
+	优点:
+	
+		- 解耦:任务模块提供任务接口,调度模块维护调度信息,业务相互独立;
+		- 高扩展性;
+		- 稳定性;
+
+### 6.3 版本 V1.3.0,新特性[2016-05-19]
+- 1、遗弃“本地任务”模式,推荐使用“远程任务”,易于系统解耦,任务对应的JobHandler统称为“执行器”;
+- 2、遗弃“servlet”方式底层系统通讯,推荐使用JETTY方式,调度+回调双向通讯,重构通讯逻辑;
+- 3、UI交互优化:左侧菜单展开状态优化,菜单项选中状态优化,任务列表打开表格有压缩优化;
+- 4、【重要】“执行器”细分为:BEAN、GLUE两种开发模式,简介见下文:
+	
+	“执行器” 模式简介:
+		- BEAN模式执行器:每个执行器都是Spring的一个Bean实例,XXL-JOB通过注解@JobHandler识别和调度执行器;
+		 -GLUE模式执行器:每个执行器对应一段代码,在线Web编辑和维护,动态编译生效,执行器负责加载GLUE代码和执行;
+
+### 6.4 版本 V1.3.1,新特性[2016-05-23]
+- 1、更新项目目录结构:
+	- /xxl-job-admin -------------------- 【调度中心】:负责管理调度信息,按照调度配置发出调度请求;
+	- /xxl-job-core ----------------------- 公共依赖
+	- /xxl-job-executor-example ------ 【执行器】:负责接收调度请求并执行任务逻辑;
+	- /db ---------------------------------- 建表脚本
+	- /doc --------------------------------- 用户手册
+- 2、在新的目录结构上,升级了用户手册;
+- 3、优化了一些交互和UI;
+
+### 6.5 版本 V1.3.2,新特性[2016-05-28]
+- 1、调度逻辑进行事务包裹;
+- 2、执行器异步回调执行日志;
+- 3、【重要】在 “调度中心” 支持HA的基础上,扩展执行器的Failover支持,支持配置多执行期地址;
+
+### 6.6 版本 V1.4.0 新特性[2016-07-24]
+- 1、任务依赖: 通过事件触发方式实现, 任务执行成功并回调时会主动触发一次子任务的调度, 多个子任务用逗号分隔;
+- 2、执行器底层实现代码进行重度重构, 优化底层建表脚本;
+- 3、执行器中任务线程分组逻辑优化: 之前根据执行器JobHandler进行线程分组,当多个任务复用Jobhanlder会导致相互阻塞。现改为根据调度中心任务进行任务线程分组,任务与任务执行相互隔离;
+- 4、执行器调度通讯方案优化, 通过Hex + HC实现建议RPC通讯协议, 优化了通讯参数的维护和解析流程;
+- 5、调度中心, 新建/编辑任务, 界面属性调整: 
+    - 5.1、任务新增/编辑界面中去除 "任务名JobName"属性 ,该属性改为系统自动生成: 该字段之前主要用于在 "调度中心" 唯一标示一个任务, 现实意义不大, 因此计划淡化掉该字段,改为系统生成UUID,从而简化任务新建的操作;
+    - 5.2、任务新增/编辑界面中去除 "GLUE模式" 复选框位置调整, 改为贴近"JobHandler"输入框右侧;
+    - 5.3、任务新增/编辑界面中去除 "报警阈值" 属性;
+    - 5.4、任务新增/编辑界面中去除 "子任务Key" 属性, 每个任务全局任务Key可以从任务列表获取, 当本任务执行结束且成功后, 将会根据子任务Key匹配子任务并主动触发一次子任务执行;
+- 6、问题修复:
+    - 6.1、执行器jetty关闭优化,解决一处可能导致jetty无法关闭的问题;
+    - 6.2、执行器任务终止时,执行队列回调优化,解决一处导致任务无法回调的问题;
+    - 6.3、调度中心中列表分页参数优化,解决一处因服务器限制post长度而引起的问题;
+    - 6.4、执行器Jobhandler注解优化,解决一处因事务代理导致的容器无法加载JobHandler的问题;
+    - 6.5、远程调度优化,禁用retry策略,解决一处可能导致重复调用的问题;
+
+Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段, 地址见分支 [V1.3](https://github.com/xuxueli/xxl-job/tree/v1.3) 。新特性将会在master分支持续更新。
+
+### 6.7 版本 V1.4.1 新特性[2016-09-06]
+- 1、项目成功推送maven中央仓库, 中央仓库地址以及依赖如下: 
+    ```
+    <!-- http://repo1.maven.org/maven2/com/xuxueli/xxl-job-core/ -->
+    <dependency>
+        <groupId>com.xuxueli</groupId>
+        <artifactId>xxl-job-core</artifactId>
+        <version>${最新稳定版}</version>
+    </dependency>
+    ```
+- 2、为适配中央仓库规则, 项目groupId从com.xxl改为com.xuxueli。
+- 3、系统版本不在维护在项目跟pom中,各个子模块单独配置版本配置,解决子模块无法单独编译的问题;
+- 4、底层RPC通讯,传输数据的字节长度统计规则优化,可节省50%数据传输量;
+- 5、IJobHandler取消任务返回值,原通过返回值判断执行状态,逻辑改为:默认任务执行成功,仅在捕获异常时认定任务执行失败。
+- 6、系统公共弹框功能,插件化;
+- 7、底层表结构,表明统一大写;
+- 8、调度中心,异常处理器JSON响应的ContentType修改,修复浏览器不识别的问题;
+
+### 6.8 版本 V1.4.2 新特性[2016-09-29]
+- 1、推送新版本 V1.4.2 至中央仓库, 大版本 V1.4 进入维护阶段;
+- 2、任务新增时,任务列表偏移问题修复;
+- 3、修复一处因bootstrap不支持模态框重叠而导致的样式错乱的问题, 在任务编辑时会出现该问题;
+- 4、调度超时和Handler匹配不到时,调度状态优化;
+- 5、因catch异常,导致任务不可终止的问题,给出解决方案, 见文档;
+
+### 6.9 版本 V1.5.0 特性[2016-11-13]
+- 1、任务注册: 执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行。
+- 2、"执行器" 新增参数 "AppName" : 是每个执行器集群的唯一标示AppName, 并周期性以AppName为对象进行自动注册。
+- 3、调度中心新增栏目 "执行器管理" : 管理在线的执行器, 通过属性AppName自动发现注册的执行器。只有被管理的执行器才允许被使用;
+- 4、"任务组"属性改为"执行器": 每个任务需要绑定指定的执行器, 调度地址通过绑定的执行器获取;
+- 5、抛弃"任务机器"属性: 通过任务绑定的执行器, 自动发现注册的远程执行器地址并触发调度请求。
+- 6、"公共依赖"中新增DBGlueLoader,基于原生jdbc实现GLUE源码的加载器,减少第三方依赖(mybatis,spring-orm等);精简和优化执行器测配置(针对GLUE任务),降低上手难度;
+- 7、表结构调整,底层重构优化;
+- 8、"调度中心"自动注册和发现,failover: 调度中心周期性自动注册, 任务回调时可以感知在线的所有调度中心地址, 通过failover的方式进行任务回调,避免回调单点风险。
+
+### 6.10 版本 V1.5.1 特性[2016-11-13]
+- 1、底层代码重构和逻辑优化,POM清理以及CleanCode;
+- 2、Servlet/JSP Spec设定为3.0/2.2
+- 3、Spring升级至3.2.17.RELEASE版本;
+- 4、Jetty升级版本至8.2.0.v20160908;
+- 5、已推送V1.5.0和V1.5.1至Maven中央仓库;
+
+### 6.10 版本 V1.5.2 特性[2017-02-28]
+- 1、IP工具类获取IP逻辑优化,IP静态缓存;
+- 2、执行器、调度中心,均支持自定义注册IP地址;解决机器多网卡时错误网卡注册的情况;
+- 3、任务跨天执行时生成多份日志文件的问题修复;
+- 4、底层日志底层日志调整,非敏感日志level调整为debug;
+- 5、升级数据库连接池c3p0版本;
+- 6、执行器log4j配置优化,去除无效属性;
+- 7、底层代码重构和逻辑优化以及CleanCode;
+- 8、GLUE依赖注入逻辑优化,支持别名注入;
+
+### 6.11 版本 V1.6.0 特性[2017-03-13]
+- 1、通讯方案升级,原基于HEX的通讯模型调整为基于HTTP的B-RPC的通讯模型;
+- 2、执行器支持手动设置执行地址列表,提供开关切换使用注册地址还是手动设置的地址;
+- 3、执行器路由规则:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移;
+- 4、规范线程模型统一,统一线程销毁方案(通过listener或stop方法,容器销毁时销毁线程;Daemon方式有时不太理想);
+- 5、规范系统配置数据,通过配置文件统一管理;
+- 6、CleanCode,清理无效的历史参数;
+- 7、底层扩展数据结构以及相关表结构调整;
+- 8、新建任务默认为非运行状态;
+- 9、GLUE模式任务实例更新逻辑优化,原根据超时时间更新改为根据版本号更新,源码变动版本号加一;
+
+### 6.12 版本 V1.6.1 特性[2017-03-25]
+- 1、Rolling日志;
+- 2、WebIDE交互重构;
+- 3、通讯增强校验,有效过滤非正常请求;
+- 4、权限增强校验,采用动态登录TOKEN(推荐接入内部SSO);
+- 5、数据库配置优化,解决乱码问题;
+
+### 6.13 版本 V1.6.2 特性[2017-04-25]
+- 1、运行报表:支持实时查看运行数据,如任务数量、调度次数、执行器数量等;以及调度报表,如调度日期分布图,调度成功分布图等;
+- 2、JobHandler支持设置任务返回值,在任务逻辑中可以方便的控制任务执行结果;
+- 3、资源路径包含空格或中文时资源文件无法加载时,无法准确查看异常信息的问题处理。
+- 4、路由策越优化:循环和LFU路由策略计数器自增无上限问题和首次路由压力集中在首台机器的问题修复;
+
+### 6.14 版本 V1.7.0 特性[2017-05-02]
+- 1、脚本任务:支持以GLUE模式开发和运行脚本任务,包括Shell、Python和Groovy等类型脚本;
+- 2、新增spring-boot类型执行器example项目;
+- 3、升级jetty版本至9.2;
+- 4、任务运行日志移除log4j组件依赖,改为底层自主实现,从而取消了对日志组件的依赖限制;
+- 5、执行器移除GlueLoader依赖,改为推送方式实现,从而GLUE源码加载不再依赖JDBC;
+- 6、登录拦截Redirect时获取项目名,解决非根据目录发布时跳转404问题;
+
+### 6.15 版本 V1.7.1 特性[2017-05-08]
+- 1、运行日志读写编码统一为UTF-8,解决windows环境下日志乱码问题;
+- 2、通讯超时时间限定为10s,避免异常情况下调度线程占用;
+- 3、执行器,server启动、销毁和注册逻辑调整;
+- 4、JettyServer关闭逻辑优化,修复执行器无法正常关闭导致端口占用和频繁打印c3p0日志的问题;
+- 5、JobHandler中开启子线程时,支持子线程输出执行日志并通过Rolling查看。
+- 6、任务日志清理功能;
+- 7、弹框组件统一替换为layer;
+- 8、升级quartz版本至2.3.0;
+
+### 6.16 版本 V1.7.2 特性[2017-05-17]
+- 1、阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
+- 2、失败处理策略;调度失败时的处理策略,策略包括:失败告警(默认)、失败重试;
+- 3、通讯时间戳超时时间调整为180s;
+- 4、执行器与数据库彻底解耦,但是执行器需要配置调度中心集群地址。调度中心提供API供执行器回调和心跳注册服务,取消调度中心内部jetty,心跳周期调整为30s,心跳失效为三倍心跳;
+- 5、执行参数编辑时丢失问题修复;
+- 6、新增任务测试Demo,方便在开发时进行任务逻辑测试;
+
+### 6.17 版本 V1.8.0 特性[2017-07-17]
+- 1、任务Cron更新逻辑优化,改为rescheduleJob,同时防止cron重复设置;
+- 2、API回调服务失败状态码优化,方便问题排查;
+- 3、XxlJobLogger的日志多参数支持;
+- 4、路由策略新增 "忙碌转移" 模式:按照顺序依次进行空闲检测,第一个空闲检测成功的机器选定为目标执行器并发起调度;
+- 5、路由策略代码重构;
+- 6、执行器重复注册问题修复;
+- 7、任务线程轮空30次后自动销毁,降低低频任务的无效线程消耗。
+- 8、执行器任务执行结果批量回调,降低回调频率提升执行器性能;
+- 9、springboot版本执行器,取消XML配置,改为类配置方式;
+- 10、执行日志,支持根据运行 "状态" 筛选日志;
+- 11、调度中心任务注册检测逻辑优化;
+
+### 6.18 版本 V1.8.1 特性[2017-07-30]
+- 1、分片广播任务:执行器集群部署时,任务路由策略选择"分片广播"情况下,一次任务调度将会广播触发集群中所有执行器执行一次任务,可根据分片参数处理分片任务;
+- 2、动态分片:分片广播任务以执行器为维度进行分片,支持动态扩容执行器集群从而动态增加分片数量,协同进行业务处理;在进行大数据量业务操作时可显著提升任务处理能力和速度。
+- 3、执行器JobHandler禁止命名冲突;
+- 4、执行器集群地址列表进行自然排序;
+- 5、调度中心,DAO层代码精简优化并且新增测试用例覆盖;
+- 6、调度中心API服务改为自研RPC形式,统一底层通讯模型;
+- 7、新增调度中心API服务测试Demo,方便在调度中心API扩展和测试;
+- 8、任务列表页交互优化,更换执行器分组时自动刷新任务列表,新建任务时默认定位在当前执行器位置;
+- 9、访问令牌(accessToken):为提升系统安全性,调度中心和执行器进行安全性校验,双方AccessToken匹配才允许通讯;
+- 10、springboot版本执行器,升级至1.5.6.RELEASE版本;
+- 11、统一maven依赖版本管理;
+
+### 6.19 版本 V1.8.2 特性[2017-09-04]
+- 1、项目主页搭建:提供中英文文档:https://www.xuxueli.com/xxl-job 
+- 2、JFinal执行器Sample示例项目;
+- 3、事件触发:除了"Cron方式"和"任务依赖方式"触发任务执行之外,支持基于事件的触发任务方式。调度中心提供触发任务单次执行的API服务,可根据业务事件灵活触发。
+- 4、执行器摘除:执行器销毁时,主动通知调度中心并摘除对应执行器节点,提高执行器状态感知的时效性。
+- 5、执行器手动设置IP时将会绑定Host;
+- 6、规范项目目录,方便扩展多执行器;
+- 7、解决执行器回调URL不支持配置HTTPS时问题;
+- 8、执行器回调线程销毁前, 批量回调队列中数据,防止任务结果丢失;
+- 9、调度中心任务监控线程销毁时,批量对失败任务告警,防止告警信息丢失;
+- 10、任务日志文件路径时间戳格式化时SimpleDateFormat并发问题解决;
+
+### 6.20 版本 V1.9.0 特性[2017-12-29]
+- 1、新增Nutz执行器Sample示例项目;
+- 2、新增任务运行模式 "GLUE模式(NodeJS) ",支持NodeJS脚本任务;
+- 3、脚本任务Shell、Python和Nodejs等支持获取分片参数;
+- 4、失败重试,完整支持:调度中心调度失败且启用"失败重试"策略时,将会自动重试一次;执行器执行失败且回调失败重试状态(新增失败重试状态返回值)时,也将会自动重试一次;
+- 5、失败告警策略扩展:默认提供邮件失败告警,可扩展短信等,扩展代码位置为 "JobFailMonitorHelper.failAlarm";
+- 6、执行器端口支持自动生成(小于等于0时),避免端口定义冲突;
+- 7、调度报表优化,支持时间区间筛选;
+- 8、Log组件支持输出异常栈信息,底层实现优化;
+- 9、告警邮件样式优化,调整为表格形式,邮件组件调整为commons-email简化邮件操作;
+- 10、项目依赖全量升级至较新稳定版本,如spring、jackson等等;
+- 11、任务日志,记录发起调度的机器信息;
+- 12、交互优化,如登陆注销;
+- 13、任务Cron长度扩展支持至128位,支持负责类型Cron设置;
+- 14、执行器地址录入交互优化,地址长度扩展支持至512位,支持大规模执行器集群配置;
+- 15、任务参数“IJobHandler.execute”入参改为“String params”,增强入参通用性。
+- 16、IJobHandler提供init/destroy方法,支持在相应任务线程初始化和销毁时进行附加操作;
+- 17、任务注解调整为 “@JobHandler”,与任务抽象接口统一;
+- 18、修复任务监控线程被耗时任务阻塞的问题;
+- 19、修复任务监控线程无法监控任务触发和执行状态均未0的问题;
+- 20、执行器动态代理对象,拦截非业务方法的执行;
+- 21、修复JobThread捕获Error错误不更新JobLog的问题;
+- 22、修复任务列表界面左侧菜单合并时样式错乱问题;
+- 23、调度中心项目日志配置改为xml文件格式;
+- 24、Log地址格式兼容,支持非"/"结尾路径配置;
+- 25、底层系统日志级别规范调整,清理遗留代码;
+- 26、建表SQL优化,支持同步创建制定编码的库和表;
+- 27、系统安全性优化,登陆Token写Cookie时进行MD5加密,同时Cookie启用HttpOnly;
+- 28、新增"任务ID"属性,移除"JobKey"属性,前者承担所有功能,方便后续增强任务依赖功能。
+- 29、任务循环依赖问题修复,避免子任务与父任务重复导致的调度死循环;
+- 30、任务列表新增筛选条件 "任务描述",快速检索任务;
+- 31、执行器Log文件定期清理功能:执行器新增配置项("xxl.job.executor.logretentiondays")日志保存天数,日志文件过期自动删除。
+
+### 6.21 版本 V1.9.1 特性[2018-02-22]
+- 1、国际化:调度中心实现国际化,支持中文、英文两种语言,默认为中文。
+- 2、调度报表新增"运行中"中状态项;
+- 3、调度报表优化,报表SQL调优并且新增LocalCache缓存(缓存时间60s),提高大数据量下报表加载速度;
+- 4、修复打包部署时资源文件乱码问题;
+- 5、修复新版本chrome滚动到顶部失效问题;
+- 6、调度中心配置加载优化,取消对配置文件名的强依赖,支持加载磁盘配置;
+- 7、修复脚本任务Log文件未正常close的问题;
+- 8、项目依赖全量升级至较新稳定版本,如spring、jackson等等;
+
+### 6.22 版本 V1.9.2 特性[2018-10-05]
+- 1、任务超时控制:新增任务属性 "任务超时时间",并支持自定义,任务运行超时将会主动中断任务;
+- 2、任务失败重试次数:新增任务属性 "失败重试次数",并支持自定义,当任务失败时将会按照预设的失败重试次数主动进行重试;同时收敛废弃其他失败重试策略,如调度失败、执行失败、状态码失败等;
+- 3、新增任务运行模式 "GLUE模式(PHP) ",支持php脚本任务;
+- 4、新增任务运行模式 "GLUE模式(PowerShell) ",支持PowerShell脚本任务;
+- 5、调度全异步处理:任务触发之后,推送到调度队列,多线程并发处理调度请求,提高任务调度速率的同时,避免因网络问题导致quartz调度线程阻塞的问题;
+- 6、执行器任务结果落盘优化:执行器回调失败时将任务结果写磁盘,待重启或网络恢复时重试回调任务结果,防止任务执行结果丢失;
+- 7、任务日志查询速度大幅提升:百万级别数据量搜索速度提升1000倍;
+- 8、调度中心提供API服务,支持通过API服务对任务进行查询、新增、更新、启停等操作;
+- 9、底层自研Log组件参数占位符改为"{}",并修复打印有参日志时参数不匹配导致报错的问题;
+- 10、任务回调结果优化,支持展示在Rolling log中,方便问题排查;
+- 11、底层LocalCache组件兼容性优化,支持jdk9、jdk10及以上版本编译部署;
+- 12、告警邮件固定使用 UTF-8 编码格式,修复由机器编码导致的邮件乱码问题;
+- 13、告警邮件中展示失败告警信息;
+- 14、告警邮箱支持SSL配置;
+- 15、Window机器下File.separator不兼容问题修复;
+- 16、脚本任务异常Log输出优化;
+- 17、任务线程停止变量修饰符优化;
+- 18、脚本任务Log文件流关闭优化;
+- 19、任务报表成功、失败和进行中统计问题修复;
+- 20、核心依赖Core内部国际化处理;
+- 21、默认Quartz线程数调整为50;
+- 22、新增左侧菜单"运行报表";
+- 23、执行器手动设置IP时取消绑定Host的操作,该IP仅供执行器注册使用;修复指定外网IP时无法绑定执行器Host的问题;
+- 24、取消父子任务不可重复的限制,支持循环任务触发等特殊场景;
+- 25、任务调度备注中标注任务触发类型,如Cron触发、父任务触发、API触发等等,方便排查调度日志;
+- 26、底层日志组件SimpleDateFormat线程安全问题修复;
+- 27、执行器通讯线程优化,corePoolSize从256降低至32;
+- 28、任务日志表状态字段类型优化;
+- 29、GLUE脚本文件自动清理功能,及时清理过期脚本文件;
+- 30、执行器注册方式切换优化,切换自动注册时主动同步在线机器,避免执行器为空的问题;
+- 31、跨平台:除了提供Java、Python、PHP等十来种任务模式之外,新增提供基于HTTP的任务模式;
+- 32、底层RPC序列化协议调整为hessian2;
+- 33、修复表字段 “t.order”与数据库关键字冲突查询失败的问题,
+- 34、任务属性枚举 "任务模式、阻塞策略" 国际化优化;
+- 35、分片任务失败重试优化,仅重试当前失败的分片;
+- 36、任务触发时支持动态传参,调度中心与API服务均提供提供动态参数功能;
+- 37、任务执行日志、调度日志字段类型调整,改为text类型并取消字数限制;
+- 38、GLUE任务脚本字段类型调整,改为mediumtext类型,提高GLUE长度上限;
+- 39、任务监控线程Log输出优化,运行中任务的监控Log改为debug级别,减少非核心日志量;
+- 40、项目依赖全量升级至较新稳定版本,如spring、Jackson、groovy等等;
+- 41、docker支持:调度中心提供 Dockerfile 方便快速构建docker镜像; 
+
+### 6.23 版本 V2.0.0 Release Notes[2018-11-04]
+- 1、调度中心迁移到 springboot;
+- 2、底层通讯组件迁移至 xxl-rpc;
+- 3、容器化:提供官方docker镜像,并实时更新推送dockerhub(docker pull xuxueli/xxl-job-admin),进一步实现产品开箱即用;
+- 4、新增无框架执行器Sample示例项目 "xxl-job-executor-sample-frameless"。不依赖第三方框架,只需main方法即可启动运行执行器;
+- 5、命令行任务:原生提供通用命令行任务Handler(Bean任务,"CommandJobHandler");业务方只需要提供命令行即可;
+- 6、任务状态优化,仅运行状态"NORMAL"任务关联至quartz,降低quartz底层数据存储与调度压力;
+- 7、任务状态规范:新增任务默认停止状态,任务更新时保持任务状态不变;
+- 8、IP获取逻辑优化,优先遍历网卡来获取可用IP;
+- 9、任务新增的API服务接口返回任务ID,方便调用方实用;
+- 10、组件化优化,移除对 spring 的依赖:非spring应用选用 "XxlJobExecutor" 、spring应用选用 "XxlJobSpringExecutor" 作为执行器组件; 
+- 11、任务RollingLog展示逻辑优化,修复超时任务无法查看的问题;
+- 12、多项UI组件升级到最新版本,如:CodeMirror、Echarts、Jquery 等;
+- 13、项目依赖升级 groovy 至较新稳定版本;pom清理;
+- 14、子任务失败重试重试逻辑优化,子任务失败时将会按照其预设的失败重试次数主动进行重试
+
+### 6.23 版本 v2.0.1 Release Notes[2018-11-09]
+- 1、左侧菜单折叠动画问题修复;
+- 2、调度报表日期分布图默认值统一;
+- 3、freemarker对数字默认加千分位问题修复,解决日志ID被分隔导致查看日志失败问题;
+- 4、底层通讯组件升级,修复通讯异常时无效等待的问题;
+- 5、执行器启动之后jetty停止的问题修复;
+
+### 6.24 版本 v2.0.2 Release Notes[2019-04-20]
+- 1、底层通讯方案优化:升级较新版本xxl-rpc,由"JETTY"方案调整为"NETTY_HTTP"方案,执行器内嵌netty-http-server提供服务,调度中心复用容器端口提供服务;
+- 2、任务告警逻辑调整,改为通过扫描失败日志方式触发。一方面精确扫描失败任务,降低扫描范围;另一方面取消内存队列,降低线程内存消耗;
+- 3、Quartz触发线程池废弃并替换为 "XxlJobThreadPool",降低线程切换、内存占用带来的消耗,提高调度性能;
+- 4、调度线程池隔离,拆分为"Fast"和"Slow"两个线程池,1分钟窗口期内任务耗时达500ms超过10次,该窗口期内判定为慢任务,慢任务自动降级进入"Slow"线程池,避免耗尽调度线程,提高系统稳定性;
+- 5、执行器热部署时JobHandler重新初始化,修复由此导致的 "jobhandler naming conflicts." 问题;
+- 6、新增Class的加载缓存,解决频繁加载Class会使jvm的方法区空间不足导致OOM的问题;
+- 7、任务支持更换绑定执行器,方便任务分组转移和管理;
+- 8、调度中心告警邮件发送组件改为 “spring-boot-starter-mail”;
+- 9、记住密码功能优化,选中时永久记住;非选中时关闭浏览器即登出;
+- 10、项目依赖升级至较新稳定版本,如quartz、spring、jackson、groovy、xxl-rpc等等;
+- 11、精简项目,取消第三方依赖,如 commons-collections4、commons-lang3 ;
+- 12、执行器回调日志落盘方案复用RPC序列化方案,并移除Jackson依赖;
+- 13、底层Log调优,应用正常终止取消异常栈信息打印;
+- 14、交互优化,尽量避免新开页面窗口;仅WebIDE支持新开页,并提供窗口快速关闭按钮;任务启、停、删除、触发等轻操作提示改为toast方式,
+- 15、任务暂停、删除优化,避免quartz delete不完整导致任务脏数据;
+- 16、任务回调、心跳注册成功日志优化,非核心常规日志调整为debug级别,降低冗余日志输出;
+- 17、调整首页报表默认区间为本周,避免日志量太大查询缓慢;
+- 18、LRU路由更新不及时问题修复;
+- 19、任务失败告警邮件发送逻辑优化;
+- 20、调度日志排序逻辑调整为按照调度时间倒序,兼容TIDB等主键不连续日志存储组件;
+- 21、执行器优雅停机优化;
+- 22、连接池配置优化,增强连接有效性验证;
+- 23、JobHandler#msg长度限制,修复异常情况下日志超长导致内存溢出的问题;
+- 24、升级xxl-rpc至较新版本,修复springboot 2.x版本兼容性问题;
+
+### 6.25 版本 v2.1.0 Release Notes[2019-07-07]
+- 1、自研调度组件,移除quartz依赖:一方面是为了精简系统降低冗余依赖,另一方面是为了提供系统的可控度与稳定性;
+    - 触发:单节点周期性触发,运行事件如delayqueue;
+    - 调度:集群竞争,负载方式协同处理,锁竞争-更新触发信息-推送时间轮-锁释放-锁竞争;
+- 2、底层表结构重构:移除11张quartz相关表,并对现有表结构优化梳理;
+- 3、任务日志主键调整为long数据类型,防止海量日志情况下数据溢出;
+- 4、底层线程模型重构:移除Quartz线程池,降低系统线程与内存开销;
+- 5、用户管理:支持在线管理系统用户,存在管理员、普通用户两种角色;
+- 6、权限管理:执行器维度进行权限控制,管理员拥有全量权限,普通用户需要分配执行器权限后才允许相关操作;
+- 7、调度线程池参数调优;
+- 8、注册表索引优化,缓解锁表问题;
+- 9、新增Jboot执行器Sample示例项目;
+- 10、任务列表优化,支持根据 "任务状态"、"负责人" 属性筛选任务;
+- 11、任务日志列表交互优化,操作按钮合并为分割按钮;
+- 12、项目依赖升级至较新稳定版本,如spring、springboot、groovy、xxl-rpc等等;并清理冗余POM;
+- 13、升级xxl-rpc至较新版本,修复代理服务初始化时远程服务不可用导致长连冗余创建的问题;
+- 14、首页调度报表的日期排序在TIDB下乱序问题修复;
+- 15、调度中心与执行器双向通讯超时时间调整为3s;
+- 16、调度组件销毁流程优化,先停止调度线程,然后等待时间轮内存量任务处理完成,最终销毁时间轮线程;
+- 17、执行器回调线程优化,回调地址为空时销毁问题修复;
+- 18、HttpJobHandler优化,响应数据指定UTF-8格式,避免中文乱码;
+- 19、代码优化,ConcurrentHashMap变量类型改为ConcurrentMap,避免因不同版本实现不同导致的兼容性问题;
+
+
+### 6.26 版本 v2.1.1 Release Notes[2019-11-24]
+- 1、 调度中心日志自动清理功能(至此,调度中心/执行器均支持日志自动清理,过期天数均默认设置为30天):调度中心新增配置项("xxl.job.logretentiondays")日志保存天数,过期日志自动清理;解决海量日志情况下日志表慢SQL问题;限制大于等于7时生效,否则关闭清理功能,默认为30;
+- 2、 调度报表优化:新增日志报表的存储表,三天内的任务日志会以每分钟一次的频率异步同步至报表中;任务报表仅读取报表数据,极大提升加载速度;
+- 3、 Cron在线生成工具:任务新增、编辑框通过组件在线生成Cron表达式;
+- 4、 Cron下次执行时间查询:支持通过界面在线查看后续连续5次执行时间;
+- 5、 调度中心新增应用健康检查功能,借助“spring-boot-starter-actuator”,相对地址 “/actuator/health”;
+- 6、 DB脚本默认编码改为utf8mb4,修复字符乱码问题(建议Mysql版本5.7+);
+- 7、 调度中心任务平均分配,触发组件每次获取与线程池数量相关数量的任务,避免大量任务集中在单个调度中心集群节点;
+- 8、 任务触发组件优化,预加载频率正常1s一次,当预加载轮空时主动休眠一个加载周期,动态降低加载频率从而降低DB压力;
+- 9、 调度组件优化:针对永远不会触发的Cron禁止配置和启动;任务Cron最后一次触发后再也不会触发时,比如一次性任务,主动停止相关任务;
+- 10、DB重连优化,修复DB宕机重连后任务调度停止的问题,重连后自动加入调度集群触发任务调度;
+- 11、注册监控线程优化,降低死锁几率;
+- 12、调度中心日志删除优化,改为分页获取ID并根据ID删除的方式,避免批量删除海量日志导致死锁问题;
+- 13、任务重试时参数丢失的问题修复;
+- 14、调度中心移除SQL中的 "now()" 函数;集群部署时不再依赖DB时钟,仅需要保证调度中心应用节点时钟一致即可;
+- 15、任务触发组件加载顺序调整,避免小概率情况下组件随机加载顺序导致的I18N的NPE问题;
+- 16、JobThread自销毁优化,避免并发触发导致triggerQueue中任务丢失问题;
+- 17、调度中心密码限制18位,修复修改密码超过18位无法登陆的问题;
+- 18、任务告警组件分页参数无效问题修复;
+- 19、升级xxl-rpc版本:服务端线程优化,降低线程内存开销;IpUtil优化:增加连通性校,过滤明确非法的网卡;
+- 20、调度中心回调API服务改为restful方式;
+- 21、UI优化,任务列表和日志列表数据表格宽度比例调整,避免数据换行提升体验;
+- 22、登录界面取消默认填写的登录账号密码;
+- 23、执行器表属性调整,"顺序" 属性调整为整型,解决执行器数据较多时无法正确排序的问题;
+- 24、任务列表交互优化,支持查看任务所属执行器的注册节点;
+- 25、项目依赖升级至较新稳定版本,如spring、spring-boot、mybatis、slf4j、groovy等等;
+
+### 6.27 版本 v2.1.2 Release Notes[2019-12-12]
+- 1、方法任务支持:由原来基于JobHandler类任务开发方式,优化为支持基于方法的任务开发方式;因此,可以支持单个类中开发多个任务方法,进行类复用
+```
+@XxlJob("demoJobHandler")
+public ReturnT<String> execute(String param) {
+    XxlJobLogger.log("hello world");
+    return ReturnT.SUCCESS;
+}
+```
+- 2、移除commons-exec,采用原生方式实现,降低第三方依赖;
+- 3、执行器回调乱码问题修复;
+- 4、调度中心dispatcher servlet加载顺序优化;
+- 5、执行器回调地址https兼容支持;
+- 6、多个项目依赖升级至较新稳定版本;
+- 注意:最新版本 "XxlJobSpringExecutor" 逻辑有调整,历史项目中该组件的配置方式请参考Sample示例项目进行调整,尤其注意需要移除组件的init和destroy方法;
+
+
+### TODO LIST
+- 1、任务分片路由:分片采用一致性Hash算法计算出尽量稳定的分片顺序,即使注册机器存在波动也不会引起分批分片顺序大的波动;目前采用IP自然排序,可以满足需求,待定;
+- 2、任务单机多线程:提升任务单机并行处理能力;
+- 3、调度任务优先级;
+- 4、多数据库支持,在重写并移除Quartz的基础上,DAO层通过JPA实现,不限制数据库类型;
+- 5、执行器Log清理功能:调度中心Log删除时同步删除执行器中的Log文件;
+- 6、任务自动注册:Bean模式任务,JobHandler自动从执行器中查询展示为下拉框,选择后自动填充任务名称等属性;待考虑,因为任务自动注册将会导致任务难以管理控制;
+- 7、API事件触发类型任务(更类似MQ消息)支持"动态传参、延时消费";该类型任务不走调度组件,单独建立MQ消息表,调度中心竞争触发;待定,该功能与 XXL-MQ 冲突,该场景建议用后者;
+- 8、调度线程池改为协程方式实现,大幅降低系统内存消耗;
+- 9、任务、执行器数据全量本地缓存;新增消息表广播通知;
+- 10、忙碌转移优化,全部机器忙碌时不再直接失败;
+- 11、失败重试间隔;
+- 12、SimpleTrigger:除Cron外,支持设置固定时间间隔触发;
+- 13、调度日志列表加上执行时长列,并支持排序;
+- 14、DAG流程任务:替换子任务,支持参数传递:配置并列的"a-b、b-c"路径列表,构成串行、并行、dag任务流程,"dagre-d3"绘图;任务依赖,流程图,子任务+会签任务,各节点日志;支持根据成功、失败选择分支;
+- 15、日期过滤:支持多个时间段排除;
+- 16、告警邮件内容,支持自定义模板配置;
+- 17、暂停状态,支持Cron 为空;
+- 18、新增任务运行模式 "GLUE模式(GO) ",支持GO任务;
+- 19、注册中心优化,实时性注册发现:心跳注册间隔10s,refresh失败则首次注册并立即更新注册信息,心跳类似;30s过期销毁;
+- 20、提供执行器Docker镜像;
+- 21、脚本任务,支持数据参数,新版本仅支持单参数不支持需要兼容;
+- 22、GLUE 模式 Web Ide 版本对比功能;
+- 23、批量调度:调度请求入queue,调度线程批量获取调度请求并发起远程调度;提高线程效率;
+- 24、多语言执行器:约定跨语言通讯方案,以及通讯接口;
+- 25、移除commons-exec,采用原生实现;
+- 26、调度中心JDK版本调整为JDK8,从而升级至最新版本SpringBoot;
+- 27、执行器服务端口与注册端口分离,支持docker动态随机端口;
+- 28、执行器端口复用,复用容器端口提供通讯服务;
+- 29、自定义失败重试时间间隔;
+- 30、分片任务全部成功后触发子任务;
+- 31、任务复制功能;点击复制是弹出新建任务弹框,并初始化被复制任务信息;
+- 32、AccessToken按照执行器维度设置;控制调度、回调;
+- 33、任务执行一次的时候指定IP;
+- 34、通讯调整;双向HTTP,回调和其他API自定义AccessToken,Restful,执行器复用容器端口;
+- 35、父子任务参数传递;流程任务等,透传动态参数;
+- 36、新增执行器描述、任务描述属性;
+
+
+## 七、其他
+
+### 7.1 项目贡献
+欢迎参与项目贡献!比如提交PR修复一个bug,或者新建 [Issue](https://github.com/xuxueli/xxl-job/issues/) 讨论新特性或者变更。
+
+### 7.2 用户接入登记
+更多接入的公司,欢迎在 [登记地址](https://github.com/xuxueli/xxl-job/issues/1 ) 登记,登记仅仅为了产品推广。
+
+### 7.3 开源协议和版权
+产品开源免费,并且将持续提供免费的社区技术支持。个人或企业内部可自由的接入和使用。
+
+- Licensed under the GNU General Public License (GPL) v3.
+- Copyright (c) 2015-present, xuxueli.
+
+---
+### 捐赠
+无论捐赠金额多少都足够表达您这份心意,非常感谢 :)      [前往捐赠](https://www.xuxueli.com/page/donate.html )
diff --git "a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/XXL-JOB\346\236\266\346\236\204\345\233\276.pptx" "b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/XXL-JOB\346\236\266\346\236\204\345\233\276.pptx"
new file mode 100644
index 0000000..5445216
--- /dev/null
+++ "b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/XXL-JOB\346\236\266\346\236\204\345\233\276.pptx"
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/db/tables_xxl_job.sql b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/db/tables_xxl_job.sql
new file mode 100644
index 0000000..ae87f76
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/db/tables_xxl_job.sql
@@ -0,0 +1,119 @@
+#
+# XXL-JOB v2.1.2
+# Copyright (c) 2015-present, xuxueli.
+
+CREATE database if NOT EXISTS `xxl_job` default character set utf8mb4 collate utf8mb4_unicode_ci;
+use `xxl_job`;
+
+
+CREATE TABLE `xxl_job_info` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `job_group` int(11) NOT NULL COMMENT '执行器主键ID',
+  `job_cron` varchar(128) NOT NULL COMMENT '任务执行CRON',
+  `job_desc` varchar(255) NOT NULL,
+  `add_time` datetime DEFAULT NULL,
+  `update_time` datetime DEFAULT NULL,
+  `author` varchar(64) DEFAULT NULL COMMENT '作者',
+  `alarm_email` varchar(255) DEFAULT NULL COMMENT '报警邮件',
+  `executor_route_strategy` varchar(50) DEFAULT NULL COMMENT '执行器路由策略',
+  `executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler',
+  `executor_param` varchar(512) DEFAULT NULL COMMENT '执行器任务参数',
+  `executor_block_strategy` varchar(50) DEFAULT NULL COMMENT '阻塞处理策略',
+  `executor_timeout` int(11) NOT NULL DEFAULT '0' COMMENT '任务执行超时时间,单位秒',
+  `executor_fail_retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '失败重试次数',
+  `glue_type` varchar(50) NOT NULL COMMENT 'GLUE类型',
+  `glue_source` mediumtext COMMENT 'GLUE源代码',
+  `glue_remark` varchar(128) DEFAULT NULL COMMENT 'GLUE备注',
+  `glue_updatetime` datetime DEFAULT NULL COMMENT 'GLUE更新时间',
+  `child_jobid` varchar(255) DEFAULT NULL COMMENT '子任务ID,多个逗号分隔',
+  `trigger_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '调度状态:0-停止,1-运行',
+  `trigger_last_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '上次调度时间',
+  `trigger_next_time` bigint(13) NOT NULL DEFAULT '0' COMMENT '下次调度时间',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE `xxl_job_log` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `job_group` int(11) NOT NULL COMMENT '执行器主键ID',
+  `job_id` int(11) NOT NULL COMMENT '任务,主键ID',
+  `executor_address` varchar(255) DEFAULT NULL COMMENT '执行器地址,本次执行的地址',
+  `executor_handler` varchar(255) DEFAULT NULL COMMENT '执行器任务handler',
+  `executor_param` varchar(512) DEFAULT NULL COMMENT '执行器任务参数',
+  `executor_sharding_param` varchar(20) DEFAULT NULL COMMENT '执行器任务分片参数,格式如 1/2',
+  `executor_fail_retry_count` int(11) NOT NULL DEFAULT '0' COMMENT '失败重试次数',
+  `trigger_time` datetime DEFAULT NULL COMMENT '调度-时间',
+  `trigger_code` int(11) NOT NULL COMMENT '调度-结果',
+  `trigger_msg` text COMMENT '调度-日志',
+  `handle_time` datetime DEFAULT NULL COMMENT '执行-时间',
+  `handle_code` int(11) NOT NULL COMMENT '执行-状态',
+  `handle_msg` text COMMENT '执行-日志',
+  `alarm_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '告警状态:0-默认、1-无需告警、2-告警成功、3-告警失败',
+  PRIMARY KEY (`id`),
+  KEY `I_trigger_time` (`trigger_time`),
+  KEY `I_handle_code` (`handle_code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE `xxl_job_log_report` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `trigger_day` datetime DEFAULT NULL COMMENT '调度-时间',
+  `running_count` int(11) NOT NULL DEFAULT '0' COMMENT '运行中-日志数量',
+  `suc_count` int(11) NOT NULL DEFAULT '0' COMMENT '执行成功-日志数量',
+  `fail_count` int(11) NOT NULL DEFAULT '0' COMMENT '执行失败-日志数量',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `i_trigger_day` (`trigger_day`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE `xxl_job_logglue` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `job_id` int(11) NOT NULL COMMENT '任务,主键ID',
+  `glue_type` varchar(50) DEFAULT NULL COMMENT 'GLUE类型',
+  `glue_source` mediumtext COMMENT 'GLUE源代码',
+  `glue_remark` varchar(128) NOT NULL COMMENT 'GLUE备注',
+  `add_time` datetime DEFAULT NULL,
+  `update_time` datetime DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE `xxl_job_registry` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `registry_group` varchar(50) NOT NULL,
+  `registry_key` varchar(255) NOT NULL,
+  `registry_value` varchar(255) NOT NULL,
+  `update_time` datetime DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `i_g_k_v` (`registry_group`,`registry_key`,`registry_value`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE `xxl_job_group` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `app_name` varchar(64) NOT NULL COMMENT '执行器AppName',
+  `title` varchar(12) NOT NULL COMMENT '执行器名称',
+  `order` int(11) NOT NULL DEFAULT '0' COMMENT '排序',
+  `address_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '执行器地址类型:0=自动注册、1=手动录入',
+  `address_list` varchar(512) DEFAULT NULL COMMENT '执行器地址列表,多地址逗号分隔',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE `xxl_job_user` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `username` varchar(50) NOT NULL COMMENT '账号',
+  `password` varchar(50) NOT NULL COMMENT '密码',
+  `role` tinyint(4) NOT NULL COMMENT '角色:0-普通用户、1-管理员',
+  `permission` varchar(255) DEFAULT NULL COMMENT '权限:执行器ID列表,多个逗号分割',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `i_username` (`username`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+CREATE TABLE `xxl_job_lock` (
+  `lock_name` varchar(50) NOT NULL COMMENT '锁名称',
+  PRIMARY KEY (`lock_name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+
+INSERT INTO `xxl_job_group`(`id`, `app_name`, `title`, `order`, `address_type`, `address_list`) VALUES (1, 'blade-xxljob', '示例执行器', 1, 0, NULL);
+INSERT INTO `xxl_job_info`(`id`, `job_group`, `job_cron`, `job_desc`, `add_time`, `update_time`, `author`, `alarm_email`, `executor_route_strategy`, `executor_handler`, `executor_param`, `executor_block_strategy`, `executor_timeout`, `executor_fail_retry_count`, `glue_type`, `glue_source`, `glue_remark`, `glue_updatetime`, `child_jobid`) VALUES (1, 1, '0 0 0 * * ? *', '测试任务1', '2018-11-03 22:21:31', '2018-11-03 22:21:31', 'XXL', '', 'FIRST', 'demoJobHandler', '', 'SERIAL_EXECUTION', 0, 0, 'BEAN', '', 'GLUE代码初始化', '2018-11-03 22:21:31', '');
+INSERT INTO `xxl_job_user`(`id`, `username`, `password`, `role`, `permission`) VALUES (1, 'admin', 'e10adc3949ba59abbe56e057f20f883e', 1, NULL);
+INSERT INTO `xxl_job_lock` ( `lock_name`) VALUES ( 'schedule_lock');
+
+commit;
+
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/nacos/blade-xxljob-admin-dev.yaml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/nacos/blade-xxljob-admin-dev.yaml
new file mode 100644
index 0000000..a1dda78
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/doc/nacos/blade-xxljob-admin-dev.yaml
@@ -0,0 +1,16 @@
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    druid:
+      validation-query: select 1
+
+#项目模块集中配置
+blade:
+  #工作流模块开发生产环境数据库地址
+  datasource:
+    job:
+      dev:
+        # MySql
+        url: jdbc:mysql://127.0.0.1:3306/xxl_job?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8
+        username: root
+        password: root
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/pom.xml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/pom.xml
new file mode 100644
index 0000000..04c2e56
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/pom.xml
@@ -0,0 +1,117 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-ops</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-xxljob-admin</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
+        <maven.compiler.source>1.8</maven.compiler.source>
+        <maven.compiler.target>1.8</maven.compiler.target>
+        <maven.test.skip>true</maven.test.skip>
+
+        <xxl-rpc.version>1.5.0</xxl-rpc.version>
+
+        <spring.version>4.3.25.RELEASE</spring.version>
+        <spring-boot.version>1.5.22.RELEASE</spring-boot.version>
+        <mybatis-spring-boot-starter.version>1.3.5</mybatis-spring-boot-starter.version>
+        <mysql-connector-java.version>5.1.48</mysql-connector-java.version>
+
+        <slf4j-api.version>1.7.29</slf4j-api.version>
+        <junit.version>4.12</junit.version>
+
+        <groovy.version>2.5.8</groovy.version>
+
+        <maven-source-plugin.version>3.2.0</maven-source-plugin.version>
+        <maven-javadoc-plugin.version>3.1.1</maven-javadoc-plugin.version>
+        <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
+        <maven-war-plugin.version>3.2.3</maven-war-plugin.version>
+    </properties>
+
+
+    <dependencies>
+        <!--Blade-->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-common</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-cloud</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-launch</artifactId>
+        </dependency>
+        <!-- freemarker-starter -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-freemarker</artifactId>
+        </dependency>
+
+        <!-- mail-starter -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-mail</artifactId>
+        </dependency>
+        <!-- starter-actuator -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <!-- mybatis-starter:mybatis + mybatis-spring + tomcat-jdbc(default) -->
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+            <version>${mybatis-spring-boot-starter.version}</version>
+        </dependency>
+        <!-- mysql -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+        <!-- xxl-job-core -->
+        <dependency>
+            <groupId>com.xuxueli</groupId>
+            <artifactId>xxl-job-core</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>dockerfile-maven-plugin</artifactId>
+                <configuration>
+                    <username>${docker.username}</username>
+                    <password>${docker.password}</password>
+                    <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+                    <tag>${project.version}</tag>
+                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+                    <buildArgs>
+                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+                    </buildArgs>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/JobAdminApplication.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/JobAdminApplication.java
new file mode 100644
index 0000000..d68d4bf
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/JobAdminApplication.java
@@ -0,0 +1,17 @@
+package cn.gistack.job.admin;
+
+import cn.gistack.common.constant.LauncherConstant;
+import org.springblade.core.launch.BladeApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @author xuxueli 2018-10-28 00:38:13
+ */
+@SpringBootApplication
+public class JobAdminApplication {
+
+	public static void main(String[] args) {
+		BladeApplication.run(LauncherConstant.APPLICATION_XXLJOB_ADMIN_NAME, JobAdminApplication.class, args);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/IndexController.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/IndexController.java
new file mode 100644
index 0000000..42ae2c5
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/IndexController.java
@@ -0,0 +1,93 @@
+package cn.gistack.job.admin.controller;
+
+import cn.gistack.job.admin.service.LoginService;
+import cn.gistack.job.admin.service.XxlJobService;
+import cn.gistack.job.admin.controller.annotation.PermissionLimit;
+import com.xxl.job.core.biz.model.ReturnT;
+import org.springframework.beans.propertyeditors.CustomDateEditor;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.WebDataBinder;
+import org.springframework.web.bind.annotation.InitBinder;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * index controller
+ * @author xuxueli 2015-12-19 16:13:16
+ */
+@Controller
+public class IndexController {
+
+	@Resource
+	private XxlJobService xxlJobService;
+	@Resource
+	private LoginService loginService;
+
+
+	@RequestMapping("/")
+	public String index(Model model) {
+
+		Map<String, Object> dashboardMap = xxlJobService.dashboardInfo();
+		model.addAllAttributes(dashboardMap);
+
+		return "index";
+	}
+
+    @RequestMapping("/chartInfo")
+	@ResponseBody
+	public ReturnT<Map<String, Object>> chartInfo(Date startDate, Date endDate) {
+        ReturnT<Map<String, Object>> chartInfo = xxlJobService.chartInfo(startDate, endDate);
+        return chartInfo;
+    }
+
+	@RequestMapping("/toLogin")
+	@PermissionLimit(limit=false)
+	public String toLogin(HttpServletRequest request, HttpServletResponse response) {
+		if (loginService.ifLogin(request, response) != null) {
+			return "redirect:/";
+		}
+		return "login";
+	}
+
+	@RequestMapping(value="login", method=RequestMethod.POST)
+	@ResponseBody
+	@PermissionLimit(limit=false)
+	public ReturnT<String> loginDo(HttpServletRequest request, HttpServletResponse response, String userName, String password, String ifRemember){
+		boolean ifRem = (ifRemember!=null && ifRemember.trim().length()>0 && "on".equals(ifRemember))?true:false;
+		return loginService.login(request, response, userName, password, ifRem);
+	}
+
+	@RequestMapping(value="logout", method=RequestMethod.POST)
+	@ResponseBody
+	@PermissionLimit(limit=false)
+	public ReturnT<String> logout(HttpServletRequest request, HttpServletResponse response){
+		return loginService.logout(request, response);
+	}
+
+	@RequestMapping("/help")
+	public String help() {
+
+		/*if (!PermissionInterceptor.ifLogin(request)) {
+			return "redirect:/toLogin";
+		}*/
+
+		return "help";
+	}
+
+	@InitBinder
+	public void initBinder(WebDataBinder binder) {
+		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		dateFormat.setLenient(false);
+		binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobApiController.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobApiController.java
new file mode 100644
index 0000000..1d21bc9
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobApiController.java
@@ -0,0 +1,129 @@
+package cn.gistack.job.admin.controller;
+
+import cn.gistack.job.admin.core.conf.XxlJobAdminConfig;
+import cn.gistack.job.admin.core.exception.XxlJobException;
+import cn.gistack.job.admin.core.util.JacksonUtil;
+import cn.gistack.job.admin.controller.annotation.PermissionLimit;
+import com.xxl.job.core.biz.AdminBiz;
+import com.xxl.job.core.biz.model.HandleCallbackParam;
+import com.xxl.job.core.biz.model.RegistryParam;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.util.XxlJobRemotingUtil;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * Created by xuxueli on 17/5/10.
+ */
+@Controller
+@RequestMapping("/api")
+public class JobApiController {
+
+    @Resource
+    private AdminBiz adminBiz;
+
+
+    // ---------------------- base ----------------------
+
+    /**
+     * valid access token
+     */
+    private void validAccessToken(HttpServletRequest request){
+        if (XxlJobAdminConfig.getAdminConfig().getAccessToken()!=null
+                && XxlJobAdminConfig.getAdminConfig().getAccessToken().trim().length()>0
+                && !XxlJobAdminConfig.getAdminConfig().getAccessToken().equals(request.getHeader(XxlJobRemotingUtil.XXL_RPC_ACCESS_TOKEN))) {
+            throw new XxlJobException("The access token is wrong.");
+        }
+    }
+
+    /**
+     * parse Param
+     */
+    private Object parseParam(String data, Class<?> parametrized, Class<?>... parameterClasses){
+        Object param = null;
+        try {
+            if (parameterClasses != null) {
+                param = JacksonUtil.readValue(data, parametrized, parameterClasses);
+            } else {
+                param = JacksonUtil.readValue(data, parametrized);
+            }
+        } catch (Exception e) { }
+        if (param==null) {
+            throw new XxlJobException("The request data invalid.");
+        }
+        return param;
+    }
+
+    // ---------------------- admin biz ----------------------
+
+    /**
+     * callback
+     *
+     * @param data
+     * @return
+     */
+    @RequestMapping("/callback")
+    @ResponseBody
+    @PermissionLimit(limit=false)
+    public ReturnT<String> callback(HttpServletRequest request, @RequestBody(required = false) String data) {
+        // valid
+        validAccessToken(request);
+
+        // param
+        List<HandleCallbackParam> callbackParamList = (List<HandleCallbackParam>) parseParam(data, List.class, HandleCallbackParam.class);
+
+        // invoke
+        return adminBiz.callback(callbackParamList);
+    }
+
+
+
+    /**
+     * registry
+     *
+     * @param data
+     * @return
+     */
+    @RequestMapping("/registry")
+    @ResponseBody
+    @PermissionLimit(limit=false)
+    public ReturnT<String> registry(HttpServletRequest request, @RequestBody(required = false) String data) {
+        // valid
+        validAccessToken(request);
+
+        // param
+        RegistryParam registryParam = (RegistryParam) parseParam(data, RegistryParam.class);
+
+        // invoke
+        return adminBiz.registry(registryParam);
+    }
+
+    /**
+     * registry remove
+     *
+     * @param data
+     * @return
+     */
+    @RequestMapping("/registryRemove")
+    @ResponseBody
+    @PermissionLimit(limit=false)
+    public ReturnT<String> registryRemove(HttpServletRequest request, @RequestBody(required = false) String data) {
+        // valid
+        validAccessToken(request);
+
+        // param
+        RegistryParam registryParam = (RegistryParam) parseParam(data, RegistryParam.class);
+
+        // invoke
+        return adminBiz.registryRemove(registryParam);
+    }
+
+    // ---------------------- job biz ----------------------
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobCodeController.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobCodeController.java
new file mode 100644
index 0000000..86c4e59
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobCodeController.java
@@ -0,0 +1,96 @@
+package cn.gistack.job.admin.controller;
+
+import cn.gistack.job.admin.core.model.XxlJobInfo;
+import cn.gistack.job.admin.core.model.XxlJobLogGlue;
+import cn.gistack.job.admin.core.util.I18nUtil;
+import cn.gistack.job.admin.dao.XxlJobInfoDao;
+import cn.gistack.job.admin.dao.XxlJobLogGlueDao;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.glue.GlueTypeEnum;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * job code controller
+ * @author xuxueli 2015-12-19 16:13:16
+ */
+@Controller
+@RequestMapping("/jobcode")
+public class JobCodeController {
+
+	@Resource
+	private XxlJobInfoDao xxlJobInfoDao;
+	@Resource
+	private XxlJobLogGlueDao xxlJobLogGlueDao;
+
+	@RequestMapping
+	public String index(HttpServletRequest request, Model model, int jobId) {
+		XxlJobInfo jobInfo = xxlJobInfoDao.loadById(jobId);
+		List<XxlJobLogGlue> jobLogGlues = xxlJobLogGlueDao.findByJobId(jobId);
+
+		if (jobInfo == null) {
+			throw new RuntimeException(I18nUtil.getString("jobinfo_glue_jobid_unvalid"));
+		}
+		if (GlueTypeEnum.BEAN == GlueTypeEnum.match(jobInfo.getGlueType())) {
+			throw new RuntimeException(I18nUtil.getString("jobinfo_glue_gluetype_unvalid"));
+		}
+
+		// valid permission
+		JobInfoController.validPermission(request, jobInfo.getJobGroup());
+
+		// Glue类型-字典
+		model.addAttribute("GlueTypeEnum", GlueTypeEnum.values());
+
+		model.addAttribute("jobInfo", jobInfo);
+		model.addAttribute("jobLogGlues", jobLogGlues);
+		return "jobcode/jobcode.index";
+	}
+
+	@RequestMapping("/save")
+	@ResponseBody
+	public ReturnT<String> save(Model model, int id, String glueSource, String glueRemark) {
+		// valid
+		if (glueRemark==null) {
+			return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobinfo_glue_remark")) );
+		}
+		if (glueRemark.length()<4 || glueRemark.length()>100) {
+			return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_remark_limit"));
+		}
+		XxlJobInfo exists_jobInfo = xxlJobInfoDao.loadById(id);
+		if (exists_jobInfo == null) {
+			return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_jobid_unvalid"));
+		}
+
+		// update new code
+		exists_jobInfo.setGlueSource(glueSource);
+		exists_jobInfo.setGlueRemark(glueRemark);
+		exists_jobInfo.setGlueUpdatetime(new Date());
+
+		exists_jobInfo.setUpdateTime(new Date());
+		xxlJobInfoDao.update(exists_jobInfo);
+
+		// log old code
+		XxlJobLogGlue xxlJobLogGlue = new XxlJobLogGlue();
+		xxlJobLogGlue.setJobId(exists_jobInfo.getId());
+		xxlJobLogGlue.setGlueType(exists_jobInfo.getGlueType());
+		xxlJobLogGlue.setGlueSource(glueSource);
+		xxlJobLogGlue.setGlueRemark(glueRemark);
+
+		xxlJobLogGlue.setAddTime(new Date());
+		xxlJobLogGlue.setUpdateTime(new Date());
+		xxlJobLogGlueDao.save(xxlJobLogGlue);
+
+		// remove code backup more than 30
+		xxlJobLogGlueDao.removeOld(exists_jobInfo.getId(), 30);
+
+		return ReturnT.SUCCESS;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobGroupController.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobGroupController.java
new file mode 100644
index 0000000..1d8c401
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobGroupController.java
@@ -0,0 +1,165 @@
+package cn.gistack.job.admin.controller;
+
+import cn.gistack.job.admin.core.util.I18nUtil;
+import cn.gistack.job.admin.dao.XxlJobGroupDao;
+import cn.gistack.job.admin.dao.XxlJobInfoDao;
+import cn.gistack.job.admin.dao.XxlJobRegistryDao;
+import cn.gistack.job.admin.core.model.XxlJobGroup;
+import cn.gistack.job.admin.core.model.XxlJobRegistry;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.enums.RegistryConfig;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+/**
+ * job group controller
+ * @author xuxueli 2016-10-02 20:52:56
+ */
+@Controller
+@RequestMapping("/jobgroup")
+public class JobGroupController {
+
+	@Resource
+	public XxlJobInfoDao xxlJobInfoDao;
+	@Resource
+	public XxlJobGroupDao xxlJobGroupDao;
+	@Resource
+	private XxlJobRegistryDao xxlJobRegistryDao;
+
+	@RequestMapping
+	public String index(Model model) {
+
+		// job group (executor)
+		List<XxlJobGroup> list = xxlJobGroupDao.findAll();
+
+		model.addAttribute("list", list);
+		return "jobgroup/jobgroup.index";
+	}
+
+	@RequestMapping("/save")
+	@ResponseBody
+	public ReturnT<String> save(XxlJobGroup xxlJobGroup){
+
+		// valid
+		if (xxlJobGroup.getAppName()==null || xxlJobGroup.getAppName().trim().length()==0) {
+			return new ReturnT<String>(500, (I18nUtil.getString("system_please_input")+"AppName") );
+		}
+		if (xxlJobGroup.getAppName().length()<4 || xxlJobGroup.getAppName().length()>64) {
+			return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_appName_length") );
+		}
+		if (xxlJobGroup.getTitle()==null || xxlJobGroup.getTitle().trim().length()==0) {
+			return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobgroup_field_title")) );
+		}
+		if (xxlJobGroup.getAddressType()!=0) {
+			if (xxlJobGroup.getAddressList()==null || xxlJobGroup.getAddressList().trim().length()==0) {
+				return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_addressType_limit") );
+			}
+			String[] addresss = xxlJobGroup.getAddressList().split(",");
+			for (String item: addresss) {
+				if (item==null || item.trim().length()==0) {
+					return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_registryList_unvalid") );
+				}
+			}
+		}
+
+		int ret = xxlJobGroupDao.save(xxlJobGroup);
+		return (ret>0)?ReturnT.SUCCESS:ReturnT.FAIL;
+	}
+
+	@RequestMapping("/update")
+	@ResponseBody
+	public ReturnT<String> update(XxlJobGroup xxlJobGroup){
+		// valid
+		if (xxlJobGroup.getAppName()==null || xxlJobGroup.getAppName().trim().length()==0) {
+			return new ReturnT<String>(500, (I18nUtil.getString("system_please_input")+"AppName") );
+		}
+		if (xxlJobGroup.getAppName().length()<4 || xxlJobGroup.getAppName().length()>64) {
+			return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_appName_length") );
+		}
+		if (xxlJobGroup.getTitle()==null || xxlJobGroup.getTitle().trim().length()==0) {
+			return new ReturnT<String>(500, (I18nUtil.getString("system_please_input") + I18nUtil.getString("jobgroup_field_title")) );
+		}
+		if (xxlJobGroup.getAddressType() == 0) {
+			// 0=自动注册
+			List<String> registryList = findRegistryByAppName(xxlJobGroup.getAppName());
+			String addressListStr = null;
+			if (registryList!=null && !registryList.isEmpty()) {
+				Collections.sort(registryList);
+				addressListStr = "";
+				for (String item:registryList) {
+					addressListStr += item + ",";
+				}
+				addressListStr = addressListStr.substring(0, addressListStr.length()-1);
+			}
+			xxlJobGroup.setAddressList(addressListStr);
+		} else {
+			// 1=手动录入
+			if (xxlJobGroup.getAddressList()==null || xxlJobGroup.getAddressList().trim().length()==0) {
+				return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_addressType_limit") );
+			}
+			String[] addresss = xxlJobGroup.getAddressList().split(",");
+			for (String item: addresss) {
+				if (item==null || item.trim().length()==0) {
+					return new ReturnT<String>(500, I18nUtil.getString("jobgroup_field_registryList_unvalid") );
+				}
+			}
+		}
+
+		int ret = xxlJobGroupDao.update(xxlJobGroup);
+		return (ret>0)?ReturnT.SUCCESS:ReturnT.FAIL;
+	}
+
+	private List<String> findRegistryByAppName(String appNameParam){
+		HashMap<String, List<String>> appAddressMap = new HashMap<String, List<String>>();
+		List<XxlJobRegistry> list = xxlJobRegistryDao.findAll(RegistryConfig.DEAD_TIMEOUT, new Date());
+		if (list != null) {
+			for (XxlJobRegistry item: list) {
+				if (RegistryConfig.RegistType.EXECUTOR.name().equals(item.getRegistryGroup())) {
+					String appName = item.getRegistryKey();
+					List<String> registryList = appAddressMap.get(appName);
+					if (registryList == null) {
+						registryList = new ArrayList<String>();
+					}
+
+					if (!registryList.contains(item.getRegistryValue())) {
+						registryList.add(item.getRegistryValue());
+					}
+					appAddressMap.put(appName, registryList);
+				}
+			}
+		}
+		return appAddressMap.get(appNameParam);
+	}
+
+	@RequestMapping("/remove")
+	@ResponseBody
+	public ReturnT<String> remove(int id){
+
+		// valid
+		int count = xxlJobInfoDao.pageListCount(0, 10, id, -1,  null, null, null);
+		if (count > 0) {
+			return new ReturnT<String>(500, I18nUtil.getString("jobgroup_del_limit_0") );
+		}
+
+		List<XxlJobGroup> allList = xxlJobGroupDao.findAll();
+		if (allList.size() == 1) {
+			return new ReturnT<String>(500, I18nUtil.getString("jobgroup_del_limit_1") );
+		}
+
+		int ret = xxlJobGroupDao.remove(id);
+		return (ret>0)?ReturnT.SUCCESS:ReturnT.FAIL;
+	}
+
+	@RequestMapping("/loadById")
+	@ResponseBody
+	public ReturnT<XxlJobGroup> loadById(int id){
+		XxlJobGroup jobGroup = xxlJobGroupDao.load(id);
+		return jobGroup!=null?new ReturnT<XxlJobGroup>(jobGroup):new ReturnT<XxlJobGroup>(ReturnT.FAIL_CODE, null);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobInfoController.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobInfoController.java
new file mode 100644
index 0000000..fc74381
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobInfoController.java
@@ -0,0 +1,166 @@
+package cn.gistack.job.admin.controller;
+
+import cn.gistack.job.admin.core.cron.CronExpression;
+import cn.gistack.job.admin.core.exception.XxlJobException;
+import cn.gistack.job.admin.core.route.ExecutorRouteStrategyEnum;
+import cn.gistack.job.admin.core.thread.JobTriggerPoolHelper;
+import cn.gistack.job.admin.core.trigger.TriggerTypeEnum;
+import cn.gistack.job.admin.core.util.I18nUtil;
+import cn.gistack.job.admin.dao.XxlJobGroupDao;
+import cn.gistack.job.admin.service.LoginService;
+import cn.gistack.job.admin.service.XxlJobService;
+import cn.gistack.job.admin.core.model.XxlJobGroup;
+import cn.gistack.job.admin.core.model.XxlJobInfo;
+import cn.gistack.job.admin.core.model.XxlJobUser;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
+import com.xxl.job.core.glue.GlueTypeEnum;
+import com.xxl.job.core.util.DateUtil;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.text.ParseException;
+import java.util.*;
+
+/**
+ * index controller
+ * @author xuxueli 2015-12-19 16:13:16
+ */
+@Controller
+@RequestMapping("/jobinfo")
+public class JobInfoController {
+
+	@Resource
+	private XxlJobGroupDao xxlJobGroupDao;
+	@Resource
+	private XxlJobService xxlJobService;
+
+	@RequestMapping
+	public String index(HttpServletRequest request, Model model, @RequestParam(required = false, defaultValue = "-1") int jobGroup) {
+
+		// 枚举-字典
+		model.addAttribute("ExecutorRouteStrategyEnum", ExecutorRouteStrategyEnum.values());	    // 路由策略-列表
+		model.addAttribute("GlueTypeEnum", GlueTypeEnum.values());								// Glue类型-字典
+		model.addAttribute("ExecutorBlockStrategyEnum", ExecutorBlockStrategyEnum.values());	    // 阻塞处理策略-字典
+
+		// 执行器列表
+		List<XxlJobGroup> jobGroupList_all =  xxlJobGroupDao.findAll();
+
+		// filter group
+		List<XxlJobGroup> jobGroupList = filterJobGroupByRole(request, jobGroupList_all);
+		if (jobGroupList==null || jobGroupList.size()==0) {
+			throw new XxlJobException(I18nUtil.getString("jobgroup_empty"));
+		}
+
+		model.addAttribute("JobGroupList", jobGroupList);
+		model.addAttribute("jobGroup", jobGroup);
+
+		return "jobinfo/jobinfo.index";
+	}
+
+	public static List<XxlJobGroup> filterJobGroupByRole(HttpServletRequest request, List<XxlJobGroup> jobGroupList_all){
+		List<XxlJobGroup> jobGroupList = new ArrayList<>();
+		if (jobGroupList_all!=null && jobGroupList_all.size()>0) {
+			XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY);
+			if (loginUser.getRole() == 1) {
+				jobGroupList = jobGroupList_all;
+			} else {
+				List<String> groupIdStrs = new ArrayList<>();
+				if (loginUser.getPermission()!=null && loginUser.getPermission().trim().length()>0) {
+					groupIdStrs = Arrays.asList(loginUser.getPermission().trim().split(","));
+				}
+				for (XxlJobGroup groupItem:jobGroupList_all) {
+					if (groupIdStrs.contains(String.valueOf(groupItem.getId()))) {
+						jobGroupList.add(groupItem);
+					}
+				}
+			}
+		}
+		return jobGroupList;
+	}
+	public static void validPermission(HttpServletRequest request, int jobGroup) {
+		XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY);
+		if (!loginUser.validPermission(jobGroup)) {
+			throw new RuntimeException(I18nUtil.getString("system_permission_limit") + "[username="+ loginUser.getUsername() +"]");
+		}
+	}
+
+	@RequestMapping("/pageList")
+	@ResponseBody
+	public Map<String, Object> pageList(@RequestParam(required = false, defaultValue = "0") int start,
+			@RequestParam(required = false, defaultValue = "10") int length,
+			int jobGroup, int triggerStatus, String jobDesc, String executorHandler, String author) {
+
+		return xxlJobService.pageList(start, length, jobGroup, triggerStatus, jobDesc, executorHandler, author);
+	}
+
+	@RequestMapping("/add")
+	@ResponseBody
+	public ReturnT<String> add(XxlJobInfo jobInfo) {
+		return xxlJobService.add(jobInfo);
+	}
+
+	@RequestMapping("/update")
+	@ResponseBody
+	public ReturnT<String> update(XxlJobInfo jobInfo) {
+		return xxlJobService.update(jobInfo);
+	}
+
+	@RequestMapping("/remove")
+	@ResponseBody
+	public ReturnT<String> remove(int id) {
+		return xxlJobService.remove(id);
+	}
+
+	@RequestMapping("/stop")
+	@ResponseBody
+	public ReturnT<String> pause(int id) {
+		return xxlJobService.stop(id);
+	}
+
+	@RequestMapping("/start")
+	@ResponseBody
+	public ReturnT<String> start(int id) {
+		return xxlJobService.start(id);
+	}
+
+	@RequestMapping("/trigger")
+	@ResponseBody
+	//@PermissionLimit(limit = false)
+	public ReturnT<String> triggerJob(int id, String executorParam) {
+		// force cover job param
+		if (executorParam == null) {
+			executorParam = "";
+		}
+
+		JobTriggerPoolHelper.trigger(id, TriggerTypeEnum.MANUAL, -1, null, executorParam);
+		return ReturnT.SUCCESS;
+	}
+
+	@RequestMapping("/nextTriggerTime")
+	@ResponseBody
+	public ReturnT<List<String>> nextTriggerTime(String cron) {
+		List<String> result = new ArrayList<>();
+		try {
+			CronExpression cronExpression = new CronExpression(cron);
+			Date lastTime = new Date();
+			for (int i = 0; i < 5; i++) {
+				lastTime = cronExpression.getNextValidTimeAfter(lastTime);
+				if (lastTime != null) {
+					result.add(DateUtil.formatDateTime(lastTime));
+				} else {
+					break;
+				}
+			}
+		} catch (ParseException e) {
+			return new ReturnT<List<String>>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid"));
+		}
+		return new ReturnT<List<String>>(result);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobLogController.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobLogController.java
new file mode 100644
index 0000000..cdfbef1
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/JobLogController.java
@@ -0,0 +1,230 @@
+package cn.gistack.job.admin.controller;
+
+import cn.gistack.job.admin.core.exception.XxlJobException;
+import cn.gistack.job.admin.core.scheduler.XxlJobScheduler;
+import cn.gistack.job.admin.core.util.I18nUtil;
+import cn.gistack.job.admin.dao.XxlJobGroupDao;
+import cn.gistack.job.admin.dao.XxlJobInfoDao;
+import cn.gistack.job.admin.dao.XxlJobLogDao;
+import cn.gistack.job.admin.core.model.XxlJobGroup;
+import cn.gistack.job.admin.core.model.XxlJobInfo;
+import cn.gistack.job.admin.core.model.XxlJobLog;
+import com.xxl.job.core.biz.ExecutorBiz;
+import com.xxl.job.core.biz.model.LogResult;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.util.DateUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * index controller
+ * @author xuxueli 2015-12-19 16:13:16
+ */
+@Controller
+@RequestMapping("/joblog")
+public class JobLogController {
+	private static Logger logger = LoggerFactory.getLogger(JobLogController.class);
+
+	@Resource
+	private XxlJobGroupDao xxlJobGroupDao;
+	@Resource
+	public XxlJobInfoDao xxlJobInfoDao;
+	@Resource
+	public XxlJobLogDao xxlJobLogDao;
+
+	@RequestMapping
+	public String index(HttpServletRequest request, Model model, @RequestParam(required = false, defaultValue = "0") Integer jobId) {
+
+		// 执行器列表
+		List<XxlJobGroup> jobGroupList_all =  xxlJobGroupDao.findAll();
+
+		// filter group
+		List<XxlJobGroup> jobGroupList = JobInfoController.filterJobGroupByRole(request, jobGroupList_all);
+		if (jobGroupList==null || jobGroupList.size()==0) {
+			throw new XxlJobException(I18nUtil.getString("jobgroup_empty"));
+		}
+
+		model.addAttribute("JobGroupList", jobGroupList);
+
+		// 任务
+		if (jobId > 0) {
+			XxlJobInfo jobInfo = xxlJobInfoDao.loadById(jobId);
+			if (jobInfo == null) {
+				throw new RuntimeException(I18nUtil.getString("jobinfo_field_id") + I18nUtil.getString("system_unvalid"));
+			}
+
+			model.addAttribute("jobInfo", jobInfo);
+
+			// valid permission
+			JobInfoController.validPermission(request, jobInfo.getJobGroup());
+		}
+
+		return "joblog/joblog.index";
+	}
+
+	@RequestMapping("/getJobsByGroup")
+	@ResponseBody
+	public ReturnT<List<XxlJobInfo>> getJobsByGroup(int jobGroup){
+		List<XxlJobInfo> list = xxlJobInfoDao.getJobsByGroup(jobGroup);
+		return new ReturnT<List<XxlJobInfo>>(list);
+	}
+
+	@RequestMapping("/pageList")
+	@ResponseBody
+	public Map<String, Object> pageList(HttpServletRequest request,
+										@RequestParam(required = false, defaultValue = "0") int start,
+										@RequestParam(required = false, defaultValue = "10") int length,
+										int jobGroup, int jobId, int logStatus, String filterTime) {
+
+		// valid permission
+		JobInfoController.validPermission(request, jobGroup);	// 仅管理员支持查询全部;普通用户仅支持查询有权限的 jobGroup
+
+		// parse param
+		Date triggerTimeStart = null;
+		Date triggerTimeEnd = null;
+		if (filterTime!=null && filterTime.trim().length()>0) {
+			String[] temp = filterTime.split(" - ");
+			if (temp.length == 2) {
+				triggerTimeStart = DateUtil.parseDateTime(temp[0]);
+				triggerTimeEnd = DateUtil.parseDateTime(temp[1]);
+			}
+		}
+
+		// page query
+		List<XxlJobLog> list = xxlJobLogDao.pageList(start, length, jobGroup, jobId, triggerTimeStart, triggerTimeEnd, logStatus);
+		int list_count = xxlJobLogDao.pageListCount(start, length, jobGroup, jobId, triggerTimeStart, triggerTimeEnd, logStatus);
+
+		// package result
+		Map<String, Object> maps = new HashMap<String, Object>();
+	    maps.put("recordsTotal", list_count);		// 总记录数
+	    maps.put("recordsFiltered", list_count);	// 过滤后的总记录数
+	    maps.put("data", list);  					// 分页列表
+		return maps;
+	}
+
+	@RequestMapping("/logDetailPage")
+	public String logDetailPage(int id, Model model){
+
+		// base check
+		ReturnT<String> logStatue = ReturnT.SUCCESS;
+		XxlJobLog jobLog = xxlJobLogDao.load(id);
+		if (jobLog == null) {
+            throw new RuntimeException(I18nUtil.getString("joblog_logid_unvalid"));
+		}
+
+        model.addAttribute("triggerCode", jobLog.getTriggerCode());
+        model.addAttribute("handleCode", jobLog.getHandleCode());
+        model.addAttribute("executorAddress", jobLog.getExecutorAddress());
+        model.addAttribute("triggerTime", jobLog.getTriggerTime().getTime());
+        model.addAttribute("logId", jobLog.getId());
+		return "joblog/joblog.detail";
+	}
+
+	@RequestMapping("/logDetailCat")
+	@ResponseBody
+	public ReturnT<LogResult> logDetailCat(String executorAddress, long triggerTime, long logId, int fromLineNum){
+		try {
+			ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(executorAddress);
+			ReturnT<LogResult> logResult = executorBiz.log(triggerTime, logId, fromLineNum);
+
+			// is end
+            if (logResult.getContent()!=null && logResult.getContent().getFromLineNum() > logResult.getContent().getToLineNum()) {
+                XxlJobLog jobLog = xxlJobLogDao.load(logId);
+                if (jobLog.getHandleCode() > 0) {
+                    logResult.getContent().setEnd(true);
+                }
+            }
+
+			return logResult;
+		} catch (Exception e) {
+			logger.error(e.getMessage(), e);
+			return new ReturnT<LogResult>(ReturnT.FAIL_CODE, e.getMessage());
+		}
+	}
+
+	@RequestMapping("/logKill")
+	@ResponseBody
+	public ReturnT<String> logKill(int id){
+		// base check
+		XxlJobLog log = xxlJobLogDao.load(id);
+		XxlJobInfo jobInfo = xxlJobInfoDao.loadById(log.getJobId());
+		if (jobInfo==null) {
+			return new ReturnT<String>(500, I18nUtil.getString("jobinfo_glue_jobid_unvalid"));
+		}
+		if (ReturnT.SUCCESS_CODE != log.getTriggerCode()) {
+			return new ReturnT<String>(500, I18nUtil.getString("joblog_kill_log_limit"));
+		}
+
+		// request of kill
+		ReturnT<String> runResult = null;
+		try {
+			ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(log.getExecutorAddress());
+			runResult = executorBiz.kill(jobInfo.getId());
+		} catch (Exception e) {
+			logger.error(e.getMessage(), e);
+			runResult = new ReturnT<String>(500, e.getMessage());
+		}
+
+		if (ReturnT.SUCCESS_CODE == runResult.getCode()) {
+			log.setHandleCode(ReturnT.FAIL_CODE);
+			log.setHandleMsg( I18nUtil.getString("joblog_kill_log_byman")+":" + (runResult.getMsg()!=null?runResult.getMsg():""));
+			log.setHandleTime(new Date());
+			xxlJobLogDao.updateHandleInfo(log);
+			return new ReturnT<String>(runResult.getMsg());
+		} else {
+			return new ReturnT<String>(500, runResult.getMsg());
+		}
+	}
+
+	@RequestMapping("/clearLog")
+	@ResponseBody
+	public ReturnT<String> clearLog(int jobGroup, int jobId, int type){
+
+		Date clearBeforeTime = null;
+		int clearBeforeNum = 0;
+		if (type == 1) {
+			clearBeforeTime = DateUtil.addMonths(new Date(), -1);	// 清理一个月之前日志数据
+		} else if (type == 2) {
+			clearBeforeTime = DateUtil.addMonths(new Date(), -3);	// 清理三个月之前日志数据
+		} else if (type == 3) {
+			clearBeforeTime = DateUtil.addMonths(new Date(), -6);	// 清理六个月之前日志数据
+		} else if (type == 4) {
+			clearBeforeTime = DateUtil.addYears(new Date(), -1);	// 清理一年之前日志数据
+		} else if (type == 5) {
+			clearBeforeNum = 1000;		// 清理一千条以前日志数据
+		} else if (type == 6) {
+			clearBeforeNum = 10000;		// 清理一万条以前日志数据
+		} else if (type == 7) {
+			clearBeforeNum = 30000;		// 清理三万条以前日志数据
+		} else if (type == 8) {
+			clearBeforeNum = 100000;	// 清理十万条以前日志数据
+		} else if (type == 9) {
+			clearBeforeNum = 0;			// 清理所有日志数据
+		} else {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("joblog_clean_type_unvalid"));
+		}
+
+		List<Long> logIds = null;
+		do {
+			logIds = xxlJobLogDao.findClearLogIds(jobGroup, jobId, clearBeforeTime, clearBeforeNum, 1000);
+			if (logIds!=null && logIds.size()>0) {
+				xxlJobLogDao.clearLog(logIds);
+			}
+		} while (logIds!=null && logIds.size()>0);
+
+		return ReturnT.SUCCESS;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/UserController.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/UserController.java
new file mode 100644
index 0000000..fd22233
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/UserController.java
@@ -0,0 +1,172 @@
+package cn.gistack.job.admin.controller;
+
+import cn.gistack.job.admin.core.util.I18nUtil;
+import cn.gistack.job.admin.dao.XxlJobGroupDao;
+import cn.gistack.job.admin.dao.XxlJobUserDao;
+import cn.gistack.job.admin.service.LoginService;
+import cn.gistack.job.admin.controller.annotation.PermissionLimit;
+import cn.gistack.job.admin.core.model.XxlJobGroup;
+import cn.gistack.job.admin.core.model.XxlJobUser;
+import com.xxl.job.core.biz.model.ReturnT;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.util.DigestUtils;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author xuxueli 2019-05-04 16:39:50
+ */
+@Controller
+@RequestMapping("/user")
+public class UserController {
+
+    @Resource
+    private XxlJobUserDao xxlJobUserDao;
+    @Resource
+    private XxlJobGroupDao xxlJobGroupDao;
+
+    @RequestMapping
+    @PermissionLimit(adminuser = true)
+    public String index(Model model) {
+
+        // 执行器列表
+        List<XxlJobGroup> groupList = xxlJobGroupDao.findAll();
+        model.addAttribute("groupList", groupList);
+
+        return "user/user.index";
+    }
+
+    @RequestMapping("/pageList")
+    @ResponseBody
+    @PermissionLimit(adminuser = true)
+    public Map<String, Object> pageList(@RequestParam(required = false, defaultValue = "0") int start,
+                                        @RequestParam(required = false, defaultValue = "10") int length,
+                                        String username, int role) {
+
+        // page list
+        List<XxlJobUser> list = xxlJobUserDao.pageList(start, length, username, role);
+        int list_count = xxlJobUserDao.pageListCount(start, length, username, role);
+
+        // package result
+        Map<String, Object> maps = new HashMap<String, Object>();
+        maps.put("recordsTotal", list_count);		// 总记录数
+        maps.put("recordsFiltered", list_count);	// 过滤后的总记录数
+        maps.put("data", list);  					// 分页列表
+        return maps;
+    }
+
+    @RequestMapping("/add")
+    @ResponseBody
+    @PermissionLimit(adminuser = true)
+    public ReturnT<String> add(XxlJobUser xxlJobUser) {
+
+        // valid username
+        if (!StringUtils.hasText(xxlJobUser.getUsername())) {
+            return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_please_input")+I18nUtil.getString("user_username") );
+        }
+        xxlJobUser.setUsername(xxlJobUser.getUsername().trim());
+        if (!(xxlJobUser.getUsername().length()>=4 && xxlJobUser.getUsername().length()<=20)) {
+            return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit")+"[4-20]" );
+        }
+        // valid password
+        if (!StringUtils.hasText(xxlJobUser.getPassword())) {
+            return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_please_input")+I18nUtil.getString("user_password") );
+        }
+        xxlJobUser.setPassword(xxlJobUser.getPassword().trim());
+        if (!(xxlJobUser.getPassword().length()>=4 && xxlJobUser.getPassword().length()<=20)) {
+            return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit")+"[4-20]" );
+        }
+        // md5 password
+        xxlJobUser.setPassword(DigestUtils.md5DigestAsHex(xxlJobUser.getPassword().getBytes()));
+
+        // check repeat
+        XxlJobUser existUser = xxlJobUserDao.loadByUserName(xxlJobUser.getUsername());
+        if (existUser != null) {
+            return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("user_username_repeat") );
+        }
+
+        // write
+        xxlJobUserDao.save(xxlJobUser);
+        return ReturnT.SUCCESS;
+    }
+
+    @RequestMapping("/update")
+    @ResponseBody
+    @PermissionLimit(adminuser = true)
+    public ReturnT<String> update(HttpServletRequest request, XxlJobUser xxlJobUser) {
+
+        // avoid opt login seft
+        XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY);
+        if (loginUser.getUsername().equals(xxlJobUser.getUsername())) {
+            return new ReturnT<String>(ReturnT.FAIL.getCode(), I18nUtil.getString("user_update_loginuser_limit"));
+        }
+
+        // valid password
+        if (StringUtils.hasText(xxlJobUser.getPassword())) {
+            xxlJobUser.setPassword(xxlJobUser.getPassword().trim());
+            if (!(xxlJobUser.getPassword().length()>=4 && xxlJobUser.getPassword().length()<=20)) {
+                return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit")+"[4-20]" );
+            }
+            // md5 password
+            xxlJobUser.setPassword(DigestUtils.md5DigestAsHex(xxlJobUser.getPassword().getBytes()));
+        } else {
+            xxlJobUser.setPassword(null);
+        }
+
+        // write
+        xxlJobUserDao.update(xxlJobUser);
+        return ReturnT.SUCCESS;
+    }
+
+    @RequestMapping("/remove")
+    @ResponseBody
+    @PermissionLimit(adminuser = true)
+    public ReturnT<String> remove(HttpServletRequest request, int id) {
+
+        // avoid opt login seft
+        XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY);
+        if (loginUser.getId() == id) {
+            return new ReturnT<String>(ReturnT.FAIL.getCode(), I18nUtil.getString("user_update_loginuser_limit"));
+        }
+
+        xxlJobUserDao.delete(id);
+        return ReturnT.SUCCESS;
+    }
+
+    @RequestMapping("/updatePwd")
+    @ResponseBody
+    public ReturnT<String> updatePwd(HttpServletRequest request, String password){
+
+        // valid password
+        if (password==null || password.trim().length()==0){
+            return new ReturnT<String>(ReturnT.FAIL.getCode(), "密码不可为空");
+        }
+        password = password.trim();
+        if (!(password.length()>=4 && password.length()<=20)) {
+            return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("system_lengh_limit")+"[4-20]" );
+        }
+
+        // md5 password
+        String md5Password = DigestUtils.md5DigestAsHex(password.getBytes());
+
+        // update pwd
+        XxlJobUser loginUser = (XxlJobUser) request.getAttribute(LoginService.LOGIN_IDENTITY_KEY);
+
+        // do write
+        XxlJobUser existUser = xxlJobUserDao.loadByUserName(loginUser.getUsername());
+        existUser.setPassword(md5Password);
+        xxlJobUserDao.update(existUser);
+
+        return ReturnT.SUCCESS;
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/annotation/PermissionLimit.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/annotation/PermissionLimit.java
new file mode 100644
index 0000000..3f7e7ba
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/annotation/PermissionLimit.java
@@ -0,0 +1,29 @@
+package cn.gistack.job.admin.controller.annotation;
+
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 权限限制
+ * @author xuxueli 2015-12-12 18:29:02
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface PermissionLimit {
+
+	/**
+	 * 登录拦截 (默认拦截)
+	 */
+	boolean limit() default true;
+
+	/**
+	 * 要求管理员权限
+	 *
+	 * @return
+	 */
+	boolean adminuser() default false;
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/interceptor/CookieInterceptor.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/interceptor/CookieInterceptor.java
new file mode 100644
index 0000000..9155825
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/interceptor/CookieInterceptor.java
@@ -0,0 +1,43 @@
+package cn.gistack.job.admin.controller.interceptor;
+
+import cn.gistack.job.admin.core.util.FtlUtil;
+import cn.gistack.job.admin.core.util.I18nUtil;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+
+/**
+ * push cookies to model as cookieMap
+ *
+ * @author xuxueli 2015-12-12 18:09:04
+ */
+@Component
+public class CookieInterceptor extends HandlerInterceptorAdapter {
+
+	@Override
+	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
+			ModelAndView modelAndView) throws Exception {
+
+		// cookie
+		if (modelAndView!=null && request.getCookies()!=null && request.getCookies().length>0) {
+			HashMap<String, Cookie> cookieMap = new HashMap<String, Cookie>();
+			for (Cookie ck : request.getCookies()) {
+				cookieMap.put(ck.getName(), ck);
+			}
+			modelAndView.addObject("cookieMap", cookieMap);
+		}
+
+		// static method
+		if (modelAndView != null) {
+			modelAndView.addObject("I18nUtil", FtlUtil.generateStaticModel(I18nUtil.class.getName()));
+		}
+
+		super.postHandle(request, response, handler, modelAndView);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/interceptor/PermissionInterceptor.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/interceptor/PermissionInterceptor.java
new file mode 100644
index 0000000..37533db
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/interceptor/PermissionInterceptor.java
@@ -0,0 +1,59 @@
+package cn.gistack.job.admin.controller.interceptor;
+
+import cn.gistack.job.admin.controller.annotation.PermissionLimit;
+import cn.gistack.job.admin.core.model.XxlJobUser;
+import cn.gistack.job.admin.core.util.I18nUtil;
+import cn.gistack.job.admin.service.LoginService;
+import org.springframework.stereotype.Component;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 权限拦截
+ *
+ * @author xuxueli 2015-12-12 18:09:04
+ */
+@Component
+public class PermissionInterceptor extends HandlerInterceptorAdapter {
+
+	@Resource
+	private LoginService loginService;
+
+	@Override
+	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+
+		if (!(handler instanceof HandlerMethod)) {
+			return super.preHandle(request, response, handler);
+		}
+
+		// if need login
+		boolean needLogin = true;
+		boolean needAdminuser = false;
+		HandlerMethod method = (HandlerMethod)handler;
+		PermissionLimit permission = method.getMethodAnnotation(PermissionLimit.class);
+		if (permission!=null) {
+			needLogin = permission.limit();
+			needAdminuser = permission.adminuser();
+		}
+
+		if (needLogin) {
+			XxlJobUser loginUser = loginService.ifLogin(request, response);
+			if (loginUser == null) {
+				response.sendRedirect(request.getContextPath() + "/toLogin");
+				//request.getRequestDispatcher("/toLogin").forward(request, response);
+				return false;
+			}
+			if (needAdminuser && loginUser.getRole()!=1) {
+				throw new RuntimeException(I18nUtil.getString("system_permission_limit"));
+			}
+			request.setAttribute(LoginService.LOGIN_IDENTITY_KEY, loginUser);
+		}
+
+		return super.preHandle(request, response, handler);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/interceptor/WebMvcConfig.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/interceptor/WebMvcConfig.java
new file mode 100644
index 0000000..c8a5717
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/interceptor/WebMvcConfig.java
@@ -0,0 +1,29 @@
+package cn.gistack.job.admin.controller.interceptor;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+
+import javax.annotation.Resource;
+
+/**
+ * web mvc config
+ *
+ * @author xuxueli 2018-04-02 20:48:20
+ */
+@Configuration(proxyBeanMethods = false)
+public class WebMvcConfig extends WebMvcConfigurerAdapter {
+
+    @Resource
+    private PermissionInterceptor permissionInterceptor;
+    @Resource
+    private CookieInterceptor cookieInterceptor;
+
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+        registry.addInterceptor(permissionInterceptor).addPathPatterns("/**");
+        registry.addInterceptor(cookieInterceptor).addPathPatterns("/**");
+        super.addInterceptors(registry);
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/resolver/WebExceptionResolver.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/resolver/WebExceptionResolver.java
new file mode 100644
index 0000000..ae7c0e8
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/controller/resolver/WebExceptionResolver.java
@@ -0,0 +1,64 @@
+package cn.gistack.job.admin.controller.resolver;
+
+import cn.gistack.job.admin.core.exception.XxlJobException;
+import cn.gistack.job.admin.core.util.JacksonUtil;
+import com.xxl.job.core.biz.model.ReturnT;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.HandlerExceptionResolver;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * common exception resolver
+ *
+ * @author xuxueli 2016-1-6 19:22:18
+ */
+@Component
+public class WebExceptionResolver implements HandlerExceptionResolver {
+	private static transient Logger logger = LoggerFactory.getLogger(WebExceptionResolver.class);
+
+	@Override
+	public ModelAndView resolveException(HttpServletRequest request,
+			HttpServletResponse response, Object handler, Exception ex) {
+
+		if (!(ex instanceof XxlJobException)) {
+			logger.error("WebExceptionResolver:{}", ex);
+		}
+
+		// if json
+		boolean isJson = false;
+		HandlerMethod method = (HandlerMethod)handler;
+		ResponseBody responseBody = method.getMethodAnnotation(ResponseBody.class);
+		if (responseBody != null) {
+			isJson = true;
+		}
+
+		// error result
+		ReturnT<String> errorResult = new ReturnT<String>(ReturnT.FAIL_CODE, ex.toString().replaceAll("\n", "<br/>"));
+
+		// response
+		ModelAndView mv = new ModelAndView();
+		if (isJson) {
+			try {
+				response.setContentType("application/json;charset=utf-8");
+				response.getWriter().print(JacksonUtil.writeValueAsString(errorResult));
+			} catch (IOException e) {
+				logger.error(e.getMessage(), e);
+			}
+			return mv;
+		} else {
+
+			mv.addObject("exceptionMsg", errorResult.getMsg());
+			mv.setViewName("/common/common.exception");
+			return mv;
+		}
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/conf/XxlJobAdminConfig.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/conf/XxlJobAdminConfig.java
new file mode 100644
index 0000000..e9556ee
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/conf/XxlJobAdminConfig.java
@@ -0,0 +1,148 @@
+package cn.gistack.job.admin.core.conf;
+
+import cn.gistack.job.admin.core.scheduler.XxlJobScheduler;
+import cn.gistack.job.admin.dao.*;
+import com.xxl.job.admin.dao.*;
+import org.springframework.beans.factory.DisposableBean;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import javax.sql.DataSource;
+
+/**
+ * xxl-job config
+ *
+ * @author xuxueli 2017-04-28
+ */
+
+@Component
+public class XxlJobAdminConfig implements InitializingBean, DisposableBean {
+
+    private static XxlJobAdminConfig adminConfig = null;
+    public static XxlJobAdminConfig getAdminConfig() {
+        return adminConfig;
+    }
+
+
+    // ---------------------- XxlJobScheduler ----------------------
+
+    private XxlJobScheduler xxlJobScheduler;
+
+    @Override
+    public void afterPropertiesSet() throws Exception {
+        adminConfig = this;
+
+        xxlJobScheduler = new XxlJobScheduler();
+        xxlJobScheduler.init();
+    }
+
+    @Override
+    public void destroy() throws Exception {
+        xxlJobScheduler.destroy();
+    }
+
+
+    // ---------------------- XxlJobScheduler ----------------------
+
+    // conf
+    @Value("${xxl.job.i18n}")
+    private String i18n;
+
+    @Value("${xxl.job.accessToken}")
+    private String accessToken;
+
+    @Value("${spring.mail.username}")
+    private String emailUserName;
+
+    @Value("${xxl.job.triggerpool.fast.max}")
+    private int triggerPoolFastMax;
+
+    @Value("${xxl.job.triggerpool.slow.max}")
+    private int triggerPoolSlowMax;
+
+    @Value("${xxl.job.logretentiondays}")
+    private int logretentiondays;
+
+    // dao, service
+
+    @Resource
+    private XxlJobLogDao xxlJobLogDao;
+    @Resource
+    private XxlJobInfoDao xxlJobInfoDao;
+    @Resource
+    private XxlJobRegistryDao xxlJobRegistryDao;
+    @Resource
+    private XxlJobGroupDao xxlJobGroupDao;
+    @Resource
+    private XxlJobLogReportDao xxlJobLogReportDao;
+    @Resource
+    private JavaMailSender mailSender;
+    @Resource
+    private DataSource dataSource;
+
+
+    public String getI18n() {
+        return i18n;
+    }
+
+    public String getAccessToken() {
+        return accessToken;
+    }
+
+    public String getEmailUserName() {
+        return emailUserName;
+    }
+
+    public int getTriggerPoolFastMax() {
+        if (triggerPoolFastMax < 200) {
+            return 200;
+        }
+        return triggerPoolFastMax;
+    }
+
+    public int getTriggerPoolSlowMax() {
+        if (triggerPoolSlowMax < 100) {
+            return 100;
+        }
+        return triggerPoolSlowMax;
+    }
+
+    public int getLogretentiondays() {
+        if (logretentiondays < 7) {
+            return -1;  // Limit greater than or equal to 7, otherwise close
+        }
+        return logretentiondays;
+    }
+
+    public XxlJobLogDao getXxlJobLogDao() {
+        return xxlJobLogDao;
+    }
+
+    public XxlJobInfoDao getXxlJobInfoDao() {
+        return xxlJobInfoDao;
+    }
+
+    public XxlJobRegistryDao getXxlJobRegistryDao() {
+        return xxlJobRegistryDao;
+    }
+
+    public XxlJobGroupDao getXxlJobGroupDao() {
+        return xxlJobGroupDao;
+    }
+
+    public XxlJobLogReportDao getXxlJobLogReportDao() {
+        return xxlJobLogReportDao;
+    }
+
+    public JavaMailSender getMailSender() {
+        return mailSender;
+    }
+
+    public DataSource getDataSource() {
+        return dataSource;
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/cron/CronExpression.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/cron/CronExpression.java
new file mode 100644
index 0000000..eb1bcb8
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/cron/CronExpression.java
@@ -0,0 +1,1666 @@
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package cn.gistack.job.admin.core.cron;
+
+import java.io.Serializable;
+import java.text.ParseException;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.Map;
+import java.util.SortedSet;
+import java.util.StringTokenizer;
+import java.util.TimeZone;
+import java.util.TreeSet;
+
+/**
+ * Provides a parser and evaluator for unix-like cron expressions. Cron
+ * expressions provide the ability to specify complex time combinations such as
+ * &quot;At 8:00am every Monday through Friday&quot; or &quot;At 1:30am every
+ * last Friday of the month&quot;.
+ * <P>
+ * Cron expressions are comprised of 6 required fields and one optional field
+ * separated by white space. The fields respectively are described as follows:
+ *
+ * <table cellspacing="8">
+ * <tr>
+ * <th align="left">Field Name</th>
+ * <th align="left">&nbsp;</th>
+ * <th align="left">Allowed Values</th>
+ * <th align="left">&nbsp;</th>
+ * <th align="left">Allowed Special Characters</th>
+ * </tr>
+ * <tr>
+ * <td align="left"><code>Seconds</code></td>
+ * <td align="left">&nbsp;</th>
+ * <td align="left"><code>0-59</code></td>
+ * <td align="left">&nbsp;</th>
+ * <td align="left"><code>, - * /</code></td>
+ * </tr>
+ * <tr>
+ * <td align="left"><code>Minutes</code></td>
+ * <td align="left">&nbsp;</th>
+ * <td align="left"><code>0-59</code></td>
+ * <td align="left">&nbsp;</th>
+ * <td align="left"><code>, - * /</code></td>
+ * </tr>
+ * <tr>
+ * <td align="left"><code>Hours</code></td>
+ * <td align="left">&nbsp;</th>
+ * <td align="left"><code>0-23</code></td>
+ * <td align="left">&nbsp;</th>
+ * <td align="left"><code>, - * /</code></td>
+ * </tr>
+ * <tr>
+ * <td align="left"><code>Day-of-month</code></td>
+ * <td align="left">&nbsp;</th>
+ * <td align="left"><code>1-31</code></td>
+ * <td align="left">&nbsp;</th>
+ * <td align="left"><code>, - * ? / L W</code></td>
+ * </tr>
+ * <tr>
+ * <td align="left"><code>Month</code></td>
+ * <td align="left">&nbsp;</th>
+ * <td align="left"><code>0-11 or JAN-DEC</code></td>
+ * <td align="left">&nbsp;</th>
+ * <td align="left"><code>, - * /</code></td>
+ * </tr>
+ * <tr>
+ * <td align="left"><code>Day-of-Week</code></td>
+ * <td align="left">&nbsp;</th>
+ * <td align="left"><code>1-7 or SUN-SAT</code></td>
+ * <td align="left">&nbsp;</th>
+ * <td align="left"><code>, - * ? / L #</code></td>
+ * </tr>
+ * <tr>
+ * <td align="left"><code>Year (Optional)</code></td>
+ * <td align="left">&nbsp;</th>
+ * <td align="left"><code>empty, 1970-2199</code></td>
+ * <td align="left">&nbsp;</th>
+ * <td align="left"><code>, - * /</code></td>
+ * </tr>
+ * </table>
+ * <P>
+ * The '*' character is used to specify all values. For example, &quot;*&quot;
+ * in the minute field means &quot;every minute&quot;.
+ * <P>
+ * The '?' character is allowed for the day-of-month and day-of-week fields. It
+ * is used to specify 'no specific value'. This is useful when you need to
+ * specify something in one of the two fields, but not the other.
+ * <P>
+ * The '-' character is used to specify ranges For example &quot;10-12&quot; in
+ * the hour field means &quot;the hours 10, 11 and 12&quot;.
+ * <P>
+ * The ',' character is used to specify additional values. For example
+ * &quot;MON,WED,FRI&quot; in the day-of-week field means &quot;the days Monday,
+ * Wednesday, and Friday&quot;.
+ * <P>
+ * The '/' character is used to specify increments. For example &quot;0/15&quot;
+ * in the seconds field means &quot;the seconds 0, 15, 30, and 45&quot;. And
+ * &quot;5/15&quot; in the seconds field means &quot;the seconds 5, 20, 35, and
+ * 50&quot;.  Specifying '*' before the  '/' is equivalent to specifying 0 is
+ * the value to start with. Essentially, for each field in the expression, there
+ * is a set of numbers that can be turned on or off. For seconds and minutes,
+ * the numbers range from 0 to 59. For hours 0 to 23, for days of the month 0 to
+ * 31, and for months 0 to 11 (JAN to DEC). The &quot;/&quot; character simply helps you turn
+ * on every &quot;nth&quot; value in the given set. Thus &quot;7/6&quot; in the
+ * month field only turns on month &quot;7&quot;, it does NOT mean every 6th
+ * month, please note that subtlety.
+ * <P>
+ * The 'L' character is allowed for the day-of-month and day-of-week fields.
+ * This character is short-hand for &quot;last&quot;, but it has different
+ * meaning in each of the two fields. For example, the value &quot;L&quot; in
+ * the day-of-month field means &quot;the last day of the month&quot; - day 31
+ * for January, day 28 for February on non-leap years. If used in the
+ * day-of-week field by itself, it simply means &quot;7&quot; or
+ * &quot;SAT&quot;. But if used in the day-of-week field after another value, it
+ * means &quot;the last xxx day of the month&quot; - for example &quot;6L&quot;
+ * means &quot;the last friday of the month&quot;. You can also specify an offset
+ * from the last day of the month, such as "L-3" which would mean the third-to-last
+ * day of the calendar month. <i>When using the 'L' option, it is important not to
+ * specify lists, or ranges of values, as you'll get confusing/unexpected results.</i>
+ * <P>
+ * The 'W' character is allowed for the day-of-month field.  This character
+ * is used to specify the weekday (Monday-Friday) nearest the given day.  As an
+ * example, if you were to specify &quot;15W&quot; as the value for the
+ * day-of-month field, the meaning is: &quot;the nearest weekday to the 15th of
+ * the month&quot;. So if the 15th is a Saturday, the trigger will fire on
+ * Friday the 14th. If the 15th is a Sunday, the trigger will fire on Monday the
+ * 16th. If the 15th is a Tuesday, then it will fire on Tuesday the 15th.
+ * However if you specify &quot;1W&quot; as the value for day-of-month, and the
+ * 1st is a Saturday, the trigger will fire on Monday the 3rd, as it will not
+ * 'jump' over the boundary of a month's days.  The 'W' character can only be
+ * specified when the day-of-month is a single day, not a range or list of days.
+ * <P>
+ * The 'L' and 'W' characters can also be combined for the day-of-month
+ * expression to yield 'LW', which translates to &quot;last weekday of the
+ * month&quot;.
+ * <P>
+ * The '#' character is allowed for the day-of-week field. This character is
+ * used to specify &quot;the nth&quot; XXX day of the month. For example, the
+ * value of &quot;6#3&quot; in the day-of-week field means the third Friday of
+ * the month (day 6 = Friday and &quot;#3&quot; = the 3rd one in the month).
+ * Other examples: &quot;2#1&quot; = the first Monday of the month and
+ * &quot;4#5&quot; = the fifth Wednesday of the month. Note that if you specify
+ * &quot;#5&quot; and there is not 5 of the given day-of-week in the month, then
+ * no firing will occur that month.  If the '#' character is used, there can
+ * only be one expression in the day-of-week field (&quot;3#1,6#3&quot; is
+ * not valid, since there are two expressions).
+ * <P>
+ * <!--The 'C' character is allowed for the day-of-month and day-of-week fields.
+ * This character is short-hand for "calendar". This means values are
+ * calculated against the associated calendar, if any. If no calendar is
+ * associated, then it is equivalent to having an all-inclusive calendar. A
+ * value of "5C" in the day-of-month field means "the first day included by the
+ * calendar on or after the 5th". A value of "1C" in the day-of-week field
+ * means "the first day included by the calendar on or after Sunday".-->
+ * <P>
+ * The legal characters and the names of months and days of the week are not
+ * case sensitive.
+ *
+ * <p>
+ * <b>NOTES:</b>
+ * <ul>
+ * <li>Support for specifying both a day-of-week and a day-of-month value is
+ * not complete (you'll need to use the '?' character in one of these fields).
+ * </li>
+ * <li>Overflowing ranges is supported - that is, having a larger number on
+ * the left hand side than the right. You might do 22-2 to catch 10 o'clock
+ * at night until 2 o'clock in the morning, or you might have NOV-FEB. It is
+ * very important to note that overuse of overflowing ranges creates ranges
+ * that don't make sense and no effort has been made to determine which
+ * interpretation CronExpression chooses. An example would be
+ * "0 0 14-6 ? * FRI-MON". </li>
+ * </ul>
+ * </p>
+ *
+ *
+ * @author Sharada Jambula, James House
+ * @author Contributions from Mads Henderson
+ * @author Refactoring from CronTrigger to CronExpression by Aaron Craven
+ *
+ * Borrowed from quartz v2.3.1
+ *
+ */
+public final class CronExpression implements Serializable, Cloneable {
+
+    private static final long serialVersionUID = 12423409423L;
+
+    protected static final int SECOND = 0;
+    protected static final int MINUTE = 1;
+    protected static final int HOUR = 2;
+    protected static final int DAY_OF_MONTH = 3;
+    protected static final int MONTH = 4;
+    protected static final int DAY_OF_WEEK = 5;
+    protected static final int YEAR = 6;
+    protected static final int ALL_SPEC_INT = 99; // '*'
+    protected static final int NO_SPEC_INT = 98; // '?'
+    protected static final Integer ALL_SPEC = ALL_SPEC_INT;
+    protected static final Integer NO_SPEC = NO_SPEC_INT;
+
+    protected static final Map<String, Integer> monthMap = new HashMap<String, Integer>(20);
+    protected static final Map<String, Integer> dayMap = new HashMap<String, Integer>(60);
+    static {
+        monthMap.put("JAN", 0);
+        monthMap.put("FEB", 1);
+        monthMap.put("MAR", 2);
+        monthMap.put("APR", 3);
+        monthMap.put("MAY", 4);
+        monthMap.put("JUN", 5);
+        monthMap.put("JUL", 6);
+        monthMap.put("AUG", 7);
+        monthMap.put("SEP", 8);
+        monthMap.put("OCT", 9);
+        monthMap.put("NOV", 10);
+        monthMap.put("DEC", 11);
+
+        dayMap.put("SUN", 1);
+        dayMap.put("MON", 2);
+        dayMap.put("TUE", 3);
+        dayMap.put("WED", 4);
+        dayMap.put("THU", 5);
+        dayMap.put("FRI", 6);
+        dayMap.put("SAT", 7);
+    }
+
+    private final String cronExpression;
+    private TimeZone timeZone = null;
+    protected transient TreeSet<Integer> seconds;
+    protected transient TreeSet<Integer> minutes;
+    protected transient TreeSet<Integer> hours;
+    protected transient TreeSet<Integer> daysOfMonth;
+    protected transient TreeSet<Integer> months;
+    protected transient TreeSet<Integer> daysOfWeek;
+    protected transient TreeSet<Integer> years;
+
+    protected transient boolean lastdayOfWeek = false;
+    protected transient int nthdayOfWeek = 0;
+    protected transient boolean lastdayOfMonth = false;
+    protected transient boolean nearestWeekday = false;
+    protected transient int lastdayOffset = 0;
+    protected transient boolean expressionParsed = false;
+
+    public static final int MAX_YEAR = Calendar.getInstance().get(Calendar.YEAR) + 100;
+
+    /**
+     * Constructs a new <CODE>CronExpression</CODE> based on the specified
+     * parameter.
+     *
+     * @param cronExpression String representation of the cron expression the
+     *                       new object should represent
+     * @throws java.text.ParseException
+     *         if the string expression cannot be parsed into a valid
+     *         <CODE>CronExpression</CODE>
+     */
+    public CronExpression(String cronExpression) throws ParseException {
+        if (cronExpression == null) {
+            throw new IllegalArgumentException("cronExpression cannot be null");
+        }
+
+        this.cronExpression = cronExpression.toUpperCase(Locale.US);
+
+        buildExpression(this.cronExpression);
+    }
+
+    /**
+     * Constructs a new {@code CronExpression} as a copy of an existing
+     * instance.
+     *
+     * @param expression
+     *            The existing cron expression to be copied
+     */
+    public CronExpression(CronExpression expression) {
+        /*
+         * We don't call the other constructor here since we need to swallow the
+         * ParseException. We also elide some of the sanity checking as it is
+         * not logically trippable.
+         */
+        this.cronExpression = expression.getCronExpression();
+        try {
+            buildExpression(cronExpression);
+        } catch (ParseException ex) {
+            throw new AssertionError();
+        }
+        if (expression.getTimeZone() != null) {
+            setTimeZone((TimeZone) expression.getTimeZone().clone());
+        }
+    }
+
+    /**
+     * Indicates whether the given date satisfies the cron expression. Note that
+     * milliseconds are ignored, so two Dates falling on different milliseconds
+     * of the same second will always have the same result here.
+     *
+     * @param date the date to evaluate
+     * @return a boolean indicating whether the given date satisfies the cron
+     *         expression
+     */
+    public boolean isSatisfiedBy(Date date) {
+        Calendar testDateCal = Calendar.getInstance(getTimeZone());
+        testDateCal.setTime(date);
+        testDateCal.set(Calendar.MILLISECOND, 0);
+        Date originalDate = testDateCal.getTime();
+
+        testDateCal.add(Calendar.SECOND, -1);
+
+        Date timeAfter = getTimeAfter(testDateCal.getTime());
+
+        return ((timeAfter != null) && (timeAfter.equals(originalDate)));
+    }
+
+    /**
+     * Returns the next date/time <I>after</I> the given date/time which
+     * satisfies the cron expression.
+     *
+     * @param date the date/time at which to begin the search for the next valid
+     *             date/time
+     * @return the next valid date/time
+     */
+    public Date getNextValidTimeAfter(Date date) {
+        return getTimeAfter(date);
+    }
+
+    /**
+     * Returns the next date/time <I>after</I> the given date/time which does
+     * <I>not</I> satisfy the expression
+     *
+     * @param date the date/time at which to begin the search for the next
+     *             invalid date/time
+     * @return the next valid date/time
+     */
+    public Date getNextInvalidTimeAfter(Date date) {
+        long difference = 1000;
+
+        //move back to the nearest second so differences will be accurate
+        Calendar adjustCal = Calendar.getInstance(getTimeZone());
+        adjustCal.setTime(date);
+        adjustCal.set(Calendar.MILLISECOND, 0);
+        Date lastDate = adjustCal.getTime();
+
+        Date newDate;
+
+        //FUTURE_TODO: (QUARTZ-481) IMPROVE THIS! The following is a BAD solution to this problem. Performance will be very bad here, depending on the cron expression. It is, however A solution.
+
+        //keep getting the next included time until it's farther than one second
+        // apart. At that point, lastDate is the last valid fire time. We return
+        // the second immediately following it.
+        while (difference == 1000) {
+            newDate = getTimeAfter(lastDate);
+            if(newDate == null)
+                break;
+
+            difference = newDate.getTime() - lastDate.getTime();
+
+            if (difference == 1000) {
+                lastDate = newDate;
+            }
+        }
+
+        return new Date(lastDate.getTime() + 1000);
+    }
+
+    /**
+     * Returns the time zone for which this <code>CronExpression</code>
+     * will be resolved.
+     */
+    public TimeZone getTimeZone() {
+        if (timeZone == null) {
+            timeZone = TimeZone.getDefault();
+        }
+
+        return timeZone;
+    }
+
+    /**
+     * Sets the time zone for which  this <code>CronExpression</code>
+     * will be resolved.
+     */
+    public void setTimeZone(TimeZone timeZone) {
+        this.timeZone = timeZone;
+    }
+
+    /**
+     * Returns the string representation of the <CODE>CronExpression</CODE>
+     *
+     * @return a string representation of the <CODE>CronExpression</CODE>
+     */
+    @Override
+    public String toString() {
+        return cronExpression;
+    }
+
+    /**
+     * Indicates whether the specified cron expression can be parsed into a
+     * valid cron expression
+     *
+     * @param cronExpression the expression to evaluate
+     * @return a boolean indicating whether the given expression is a valid cron
+     *         expression
+     */
+    public static boolean isValidExpression(String cronExpression) {
+
+        try {
+            new CronExpression(cronExpression);
+        } catch (ParseException pe) {
+            return false;
+        }
+
+        return true;
+    }
+
+    public static void validateExpression(String cronExpression) throws ParseException {
+
+        new CronExpression(cronExpression);
+    }
+
+
+    ////////////////////////////////////////////////////////////////////////////
+    //
+    // Expression Parsing Functions
+    //
+    ////////////////////////////////////////////////////////////////////////////
+
+    protected void buildExpression(String expression) throws ParseException {
+        expressionParsed = true;
+
+        try {
+
+            if (seconds == null) {
+                seconds = new TreeSet<Integer>();
+            }
+            if (minutes == null) {
+                minutes = new TreeSet<Integer>();
+            }
+            if (hours == null) {
+                hours = new TreeSet<Integer>();
+            }
+            if (daysOfMonth == null) {
+                daysOfMonth = new TreeSet<Integer>();
+            }
+            if (months == null) {
+                months = new TreeSet<Integer>();
+            }
+            if (daysOfWeek == null) {
+                daysOfWeek = new TreeSet<Integer>();
+            }
+            if (years == null) {
+                years = new TreeSet<Integer>();
+            }
+
+            int exprOn = SECOND;
+
+            StringTokenizer exprsTok = new StringTokenizer(expression, " \t",
+                    false);
+
+            while (exprsTok.hasMoreTokens() && exprOn <= YEAR) {
+                String expr = exprsTok.nextToken().trim();
+
+                // throw an exception if L is used with other days of the month
+                if(exprOn == DAY_OF_MONTH && expr.indexOf('L') != -1 && expr.length() > 1 && expr.contains(",")) {
+                    throw new ParseException("Support for specifying 'L' and 'LW' with other days of the month is not implemented", -1);
+                }
+                // throw an exception if L is used with other days of the week
+                if(exprOn == DAY_OF_WEEK && expr.indexOf('L') != -1 && expr.length() > 1  && expr.contains(",")) {
+                    throw new ParseException("Support for specifying 'L' with other days of the week is not implemented", -1);
+                }
+                if(exprOn == DAY_OF_WEEK && expr.indexOf('#') != -1 && expr.indexOf('#', expr.indexOf('#') +1) != -1) {
+                    throw new ParseException("Support for specifying multiple \"nth\" days is not implemented.", -1);
+                }
+
+                StringTokenizer vTok = new StringTokenizer(expr, ",");
+                while (vTok.hasMoreTokens()) {
+                    String v = vTok.nextToken();
+                    storeExpressionVals(0, v, exprOn);
+                }
+
+                exprOn++;
+            }
+
+            if (exprOn <= DAY_OF_WEEK) {
+                throw new ParseException("Unexpected end of expression.",
+                            expression.length());
+            }
+
+            if (exprOn <= YEAR) {
+                storeExpressionVals(0, "*", YEAR);
+            }
+
+            TreeSet<Integer> dow = getSet(DAY_OF_WEEK);
+            TreeSet<Integer> dom = getSet(DAY_OF_MONTH);
+
+            // Copying the logic from the UnsupportedOperationException below
+            boolean dayOfMSpec = !dom.contains(NO_SPEC);
+            boolean dayOfWSpec = !dow.contains(NO_SPEC);
+
+            if (!dayOfMSpec || dayOfWSpec) {
+                if (!dayOfWSpec || dayOfMSpec) {
+                    throw new ParseException(
+                            "Support for specifying both a day-of-week AND a day-of-month parameter is not implemented.", 0);
+                }
+            }
+        } catch (ParseException pe) {
+            throw pe;
+        } catch (Exception e) {
+            throw new ParseException("Illegal cron expression format ("
+                    + e.toString() + ")", 0);
+        }
+    }
+
+    protected int storeExpressionVals(int pos, String s, int type)
+        throws ParseException {
+
+        int incr = 0;
+        int i = skipWhiteSpace(pos, s);
+        if (i >= s.length()) {
+            return i;
+        }
+        char c = s.charAt(i);
+        if ((c >= 'A') && (c <= 'Z') && (!s.equals("L")) && (!s.equals("LW")) && (!s.matches("^L-[0-9]*[W]?"))) {
+            String sub = s.substring(i, i + 3);
+            int sval = -1;
+            int eval = -1;
+            if (type == MONTH) {
+                sval = getMonthNumber(sub) + 1;
+                if (sval <= 0) {
+                    throw new ParseException("Invalid Month value: '" + sub + "'", i);
+                }
+                if (s.length() > i + 3) {
+                    c = s.charAt(i + 3);
+                    if (c == '-') {
+                        i += 4;
+                        sub = s.substring(i, i + 3);
+                        eval = getMonthNumber(sub) + 1;
+                        if (eval <= 0) {
+                            throw new ParseException("Invalid Month value: '" + sub + "'", i);
+                        }
+                    }
+                }
+            } else if (type == DAY_OF_WEEK) {
+                sval = getDayOfWeekNumber(sub);
+                if (sval < 0) {
+                    throw new ParseException("Invalid Day-of-Week value: '"
+                                + sub + "'", i);
+                }
+                if (s.length() > i + 3) {
+                    c = s.charAt(i + 3);
+                    if (c == '-') {
+                        i += 4;
+                        sub = s.substring(i, i + 3);
+                        eval = getDayOfWeekNumber(sub);
+                        if (eval < 0) {
+                            throw new ParseException(
+                                    "Invalid Day-of-Week value: '" + sub
+                                        + "'", i);
+                        }
+                    } else if (c == '#') {
+                        try {
+                            i += 4;
+                            nthdayOfWeek = Integer.parseInt(s.substring(i));
+                            if (nthdayOfWeek < 1 || nthdayOfWeek > 5) {
+                                throw new Exception();
+                            }
+                        } catch (Exception e) {
+                            throw new ParseException(
+                                    "A numeric value between 1 and 5 must follow the '#' option",
+                                    i);
+                        }
+                    } else if (c == 'L') {
+                        lastdayOfWeek = true;
+                        i++;
+                    }
+                }
+
+            } else {
+                throw new ParseException(
+                        "Illegal characters for this position: '" + sub + "'",
+                        i);
+            }
+            if (eval != -1) {
+                incr = 1;
+            }
+            addToSet(sval, eval, incr, type);
+            return (i + 3);
+        }
+
+        if (c == '?') {
+            i++;
+            if ((i + 1) < s.length()
+                    && (s.charAt(i) != ' ' && s.charAt(i + 1) != '\t')) {
+                throw new ParseException("Illegal character after '?': "
+                            + s.charAt(i), i);
+            }
+            if (type != DAY_OF_WEEK && type != DAY_OF_MONTH) {
+                throw new ParseException(
+                            "'?' can only be specified for Day-of-Month or Day-of-Week.",
+                            i);
+            }
+            if (type == DAY_OF_WEEK && !lastdayOfMonth) {
+                int val = daysOfMonth.last();
+                if (val == NO_SPEC_INT) {
+                    throw new ParseException(
+                                "'?' can only be specified for Day-of-Month -OR- Day-of-Week.",
+                                i);
+                }
+            }
+
+            addToSet(NO_SPEC_INT, -1, 0, type);
+            return i;
+        }
+
+        if (c == '*' || c == '/') {
+            if (c == '*' && (i + 1) >= s.length()) {
+                addToSet(ALL_SPEC_INT, -1, incr, type);
+                return i + 1;
+            } else if (c == '/'
+                    && ((i + 1) >= s.length() || s.charAt(i + 1) == ' ' || s
+                            .charAt(i + 1) == '\t')) {
+                throw new ParseException("'/' must be followed by an integer.", i);
+            } else if (c == '*') {
+                i++;
+            }
+            c = s.charAt(i);
+            if (c == '/') { // is an increment specified?
+                i++;
+                if (i >= s.length()) {
+                    throw new ParseException("Unexpected end of string.", i);
+                }
+
+                incr = getNumericValue(s, i);
+
+                i++;
+                if (incr > 10) {
+                    i++;
+                }
+                checkIncrementRange(incr, type, i);
+            } else {
+                incr = 1;
+            }
+
+            addToSet(ALL_SPEC_INT, -1, incr, type);
+            return i;
+        } else if (c == 'L') {
+            i++;
+            if (type == DAY_OF_MONTH) {
+                lastdayOfMonth = true;
+            }
+            if (type == DAY_OF_WEEK) {
+                addToSet(7, 7, 0, type);
+            }
+            if(type == DAY_OF_MONTH && s.length() > i) {
+                c = s.charAt(i);
+                if(c == '-') {
+                    ValueSet vs = getValue(0, s, i+1);
+                    lastdayOffset = vs.value;
+                    if(lastdayOffset > 30)
+                        throw new ParseException("Offset from last day must be <= 30", i+1);
+                    i = vs.pos;
+                }
+                if(s.length() > i) {
+                    c = s.charAt(i);
+                    if(c == 'W') {
+                        nearestWeekday = true;
+                        i++;
+                    }
+                }
+            }
+            return i;
+        } else if (c >= '0' && c <= '9') {
+            int val = Integer.parseInt(String.valueOf(c));
+            i++;
+            if (i >= s.length()) {
+                addToSet(val, -1, -1, type);
+            } else {
+                c = s.charAt(i);
+                if (c >= '0' && c <= '9') {
+                    ValueSet vs = getValue(val, s, i);
+                    val = vs.value;
+                    i = vs.pos;
+                }
+                i = checkNext(i, s, val, type);
+                return i;
+            }
+        } else {
+            throw new ParseException("Unexpected character: " + c, i);
+        }
+
+        return i;
+    }
+
+    private void checkIncrementRange(int incr, int type, int idxPos) throws ParseException {
+        if (incr > 59 && (type == SECOND || type == MINUTE)) {
+            throw new ParseException("Increment > 60 : " + incr, idxPos);
+        } else if (incr > 23 && (type == HOUR)) {
+            throw new ParseException("Increment > 24 : " + incr, idxPos);
+        } else if (incr > 31 && (type == DAY_OF_MONTH)) {
+            throw new ParseException("Increment > 31 : " + incr, idxPos);
+        } else if (incr > 7 && (type == DAY_OF_WEEK)) {
+            throw new ParseException("Increment > 7 : " + incr, idxPos);
+        } else if (incr > 12 && (type == MONTH)) {
+            throw new ParseException("Increment > 12 : " + incr, idxPos);
+        }
+    }
+
+    protected int checkNext(int pos, String s, int val, int type)
+        throws ParseException {
+
+        int end = -1;
+        int i = pos;
+
+        if (i >= s.length()) {
+            addToSet(val, end, -1, type);
+            return i;
+        }
+
+        char c = s.charAt(pos);
+
+        if (c == 'L') {
+            if (type == DAY_OF_WEEK) {
+                if(val < 1 || val > 7)
+                    throw new ParseException("Day-of-Week values must be between 1 and 7", -1);
+                lastdayOfWeek = true;
+            } else {
+                throw new ParseException("'L' option is not valid here. (pos=" + i + ")", i);
+            }
+            TreeSet<Integer> set = getSet(type);
+            set.add(val);
+            i++;
+            return i;
+        }
+
+        if (c == 'W') {
+            if (type == DAY_OF_MONTH) {
+                nearestWeekday = true;
+            } else {
+                throw new ParseException("'W' option is not valid here. (pos=" + i + ")", i);
+            }
+            if(val > 31)
+                throw new ParseException("The 'W' option does not make sense with values larger than 31 (max number of days in a month)", i);
+            TreeSet<Integer> set = getSet(type);
+            set.add(val);
+            i++;
+            return i;
+        }
+
+        if (c == '#') {
+            if (type != DAY_OF_WEEK) {
+                throw new ParseException("'#' option is not valid here. (pos=" + i + ")", i);
+            }
+            i++;
+            try {
+                nthdayOfWeek = Integer.parseInt(s.substring(i));
+                if (nthdayOfWeek < 1 || nthdayOfWeek > 5) {
+                    throw new Exception();
+                }
+            } catch (Exception e) {
+                throw new ParseException(
+                        "A numeric value between 1 and 5 must follow the '#' option",
+                        i);
+            }
+
+            TreeSet<Integer> set = getSet(type);
+            set.add(val);
+            i++;
+            return i;
+        }
+
+        if (c == '-') {
+            i++;
+            c = s.charAt(i);
+            int v = Integer.parseInt(String.valueOf(c));
+            end = v;
+            i++;
+            if (i >= s.length()) {
+                addToSet(val, end, 1, type);
+                return i;
+            }
+            c = s.charAt(i);
+            if (c >= '0' && c <= '9') {
+                ValueSet vs = getValue(v, s, i);
+                end = vs.value;
+                i = vs.pos;
+            }
+            if (i < s.length() && ((c = s.charAt(i)) == '/')) {
+                i++;
+                c = s.charAt(i);
+                int v2 = Integer.parseInt(String.valueOf(c));
+                i++;
+                if (i >= s.length()) {
+                    addToSet(val, end, v2, type);
+                    return i;
+                }
+                c = s.charAt(i);
+                if (c >= '0' && c <= '9') {
+                    ValueSet vs = getValue(v2, s, i);
+                    int v3 = vs.value;
+                    addToSet(val, end, v3, type);
+                    i = vs.pos;
+                    return i;
+                } else {
+                    addToSet(val, end, v2, type);
+                    return i;
+                }
+            } else {
+                addToSet(val, end, 1, type);
+                return i;
+            }
+        }
+
+        if (c == '/') {
+            if ((i + 1) >= s.length() || s.charAt(i + 1) == ' ' || s.charAt(i + 1) == '\t') {
+                throw new ParseException("'/' must be followed by an integer.", i);
+            }
+
+            i++;
+            c = s.charAt(i);
+            int v2 = Integer.parseInt(String.valueOf(c));
+            i++;
+            if (i >= s.length()) {
+                checkIncrementRange(v2, type, i);
+                addToSet(val, end, v2, type);
+                return i;
+            }
+            c = s.charAt(i);
+            if (c >= '0' && c <= '9') {
+                ValueSet vs = getValue(v2, s, i);
+                int v3 = vs.value;
+                checkIncrementRange(v3, type, i);
+                addToSet(val, end, v3, type);
+                i = vs.pos;
+                return i;
+            } else {
+                throw new ParseException("Unexpected character '" + c + "' after '/'", i);
+            }
+        }
+
+        addToSet(val, end, 0, type);
+        i++;
+        return i;
+    }
+
+    public String getCronExpression() {
+        return cronExpression;
+    }
+
+    public String getExpressionSummary() {
+        StringBuilder buf = new StringBuilder();
+
+        buf.append("seconds: ");
+        buf.append(getExpressionSetSummary(seconds));
+        buf.append("\n");
+        buf.append("minutes: ");
+        buf.append(getExpressionSetSummary(minutes));
+        buf.append("\n");
+        buf.append("hours: ");
+        buf.append(getExpressionSetSummary(hours));
+        buf.append("\n");
+        buf.append("daysOfMonth: ");
+        buf.append(getExpressionSetSummary(daysOfMonth));
+        buf.append("\n");
+        buf.append("months: ");
+        buf.append(getExpressionSetSummary(months));
+        buf.append("\n");
+        buf.append("daysOfWeek: ");
+        buf.append(getExpressionSetSummary(daysOfWeek));
+        buf.append("\n");
+        buf.append("lastdayOfWeek: ");
+        buf.append(lastdayOfWeek);
+        buf.append("\n");
+        buf.append("nearestWeekday: ");
+        buf.append(nearestWeekday);
+        buf.append("\n");
+        buf.append("NthDayOfWeek: ");
+        buf.append(nthdayOfWeek);
+        buf.append("\n");
+        buf.append("lastdayOfMonth: ");
+        buf.append(lastdayOfMonth);
+        buf.append("\n");
+        buf.append("years: ");
+        buf.append(getExpressionSetSummary(years));
+        buf.append("\n");
+
+        return buf.toString();
+    }
+
+    protected String getExpressionSetSummary(java.util.Set<Integer> set) {
+
+        if (set.contains(NO_SPEC)) {
+            return "?";
+        }
+        if (set.contains(ALL_SPEC)) {
+            return "*";
+        }
+
+        StringBuilder buf = new StringBuilder();
+
+        Iterator<Integer> itr = set.iterator();
+        boolean first = true;
+        while (itr.hasNext()) {
+            Integer iVal = itr.next();
+            String val = iVal.toString();
+            if (!first) {
+                buf.append(",");
+            }
+            buf.append(val);
+            first = false;
+        }
+
+        return buf.toString();
+    }
+
+    protected String getExpressionSetSummary(java.util.ArrayList<Integer> list) {
+
+        if (list.contains(NO_SPEC)) {
+            return "?";
+        }
+        if (list.contains(ALL_SPEC)) {
+            return "*";
+        }
+
+        StringBuilder buf = new StringBuilder();
+
+        Iterator<Integer> itr = list.iterator();
+        boolean first = true;
+        while (itr.hasNext()) {
+            Integer iVal = itr.next();
+            String val = iVal.toString();
+            if (!first) {
+                buf.append(",");
+            }
+            buf.append(val);
+            first = false;
+        }
+
+        return buf.toString();
+    }
+
+    protected int skipWhiteSpace(int i, String s) {
+        for (; i < s.length() && (s.charAt(i) == ' ' || s.charAt(i) == '\t'); i++) {
+        }
+
+        return i;
+    }
+
+    protected int findNextWhiteSpace(int i, String s) {
+        for (; i < s.length() && (s.charAt(i) != ' ' || s.charAt(i) != '\t'); i++) {
+        }
+
+        return i;
+    }
+
+    protected void addToSet(int val, int end, int incr, int type)
+        throws ParseException {
+
+        TreeSet<Integer> set = getSet(type);
+
+        if (type == SECOND || type == MINUTE) {
+            if ((val < 0 || val > 59 || end > 59) && (val != ALL_SPEC_INT)) {
+                throw new ParseException(
+                        "Minute and Second values must be between 0 and 59",
+                        -1);
+            }
+        } else if (type == HOUR) {
+            if ((val < 0 || val > 23 || end > 23) && (val != ALL_SPEC_INT)) {
+                throw new ParseException(
+                        "Hour values must be between 0 and 23", -1);
+            }
+        } else if (type == DAY_OF_MONTH) {
+            if ((val < 1 || val > 31 || end > 31) && (val != ALL_SPEC_INT)
+                    && (val != NO_SPEC_INT)) {
+                throw new ParseException(
+                        "Day of month values must be between 1 and 31", -1);
+            }
+        } else if (type == MONTH) {
+            if ((val < 1 || val > 12 || end > 12) && (val != ALL_SPEC_INT)) {
+                throw new ParseException(
+                        "Month values must be between 1 and 12", -1);
+            }
+        } else if (type == DAY_OF_WEEK) {
+            if ((val == 0 || val > 7 || end > 7) && (val != ALL_SPEC_INT)
+                    && (val != NO_SPEC_INT)) {
+                throw new ParseException(
+                        "Day-of-Week values must be between 1 and 7", -1);
+            }
+        }
+
+        if ((incr == 0 || incr == -1) && val != ALL_SPEC_INT) {
+            if (val != -1) {
+                set.add(val);
+            } else {
+                set.add(NO_SPEC);
+            }
+
+            return;
+        }
+
+        int startAt = val;
+        int stopAt = end;
+
+        if (val == ALL_SPEC_INT && incr <= 0) {
+            incr = 1;
+            set.add(ALL_SPEC); // put in a marker, but also fill values
+        }
+
+        if (type == SECOND || type == MINUTE) {
+            if (stopAt == -1) {
+                stopAt = 59;
+            }
+            if (startAt == -1 || startAt == ALL_SPEC_INT) {
+                startAt = 0;
+            }
+        } else if (type == HOUR) {
+            if (stopAt == -1) {
+                stopAt = 23;
+            }
+            if (startAt == -1 || startAt == ALL_SPEC_INT) {
+                startAt = 0;
+            }
+        } else if (type == DAY_OF_MONTH) {
+            if (stopAt == -1) {
+                stopAt = 31;
+            }
+            if (startAt == -1 || startAt == ALL_SPEC_INT) {
+                startAt = 1;
+            }
+        } else if (type == MONTH) {
+            if (stopAt == -1) {
+                stopAt = 12;
+            }
+            if (startAt == -1 || startAt == ALL_SPEC_INT) {
+                startAt = 1;
+            }
+        } else if (type == DAY_OF_WEEK) {
+            if (stopAt == -1) {
+                stopAt = 7;
+            }
+            if (startAt == -1 || startAt == ALL_SPEC_INT) {
+                startAt = 1;
+            }
+        } else if (type == YEAR) {
+            if (stopAt == -1) {
+                stopAt = MAX_YEAR;
+            }
+            if (startAt == -1 || startAt == ALL_SPEC_INT) {
+                startAt = 1970;
+            }
+        }
+
+        // if the end of the range is before the start, then we need to overflow into
+        // the next day, month etc. This is done by adding the maximum amount for that
+        // type, and using modulus max to determine the value being added.
+        int max = -1;
+        if (stopAt < startAt) {
+            switch (type) {
+              case       SECOND : max = 60; break;
+              case       MINUTE : max = 60; break;
+              case         HOUR : max = 24; break;
+              case        MONTH : max = 12; break;
+              case  DAY_OF_WEEK : max = 7;  break;
+              case DAY_OF_MONTH : max = 31; break;
+              case         YEAR : throw new IllegalArgumentException("Start year must be less than stop year");
+              default           : throw new IllegalArgumentException("Unexpected type encountered");
+            }
+            stopAt += max;
+        }
+
+        for (int i = startAt; i <= stopAt; i += incr) {
+            if (max == -1) {
+                // ie: there's no max to overflow over
+                set.add(i);
+            } else {
+                // take the modulus to get the real value
+                int i2 = i % max;
+
+                // 1-indexed ranges should not include 0, and should include their max
+                if (i2 == 0 && (type == MONTH || type == DAY_OF_WEEK || type == DAY_OF_MONTH) ) {
+                    i2 = max;
+                }
+
+                set.add(i2);
+            }
+        }
+    }
+
+    TreeSet<Integer> getSet(int type) {
+        switch (type) {
+            case SECOND:
+                return seconds;
+            case MINUTE:
+                return minutes;
+            case HOUR:
+                return hours;
+            case DAY_OF_MONTH:
+                return daysOfMonth;
+            case MONTH:
+                return months;
+            case DAY_OF_WEEK:
+                return daysOfWeek;
+            case YEAR:
+                return years;
+            default:
+                return null;
+        }
+    }
+
+    protected ValueSet getValue(int v, String s, int i) {
+        char c = s.charAt(i);
+        StringBuilder s1 = new StringBuilder(String.valueOf(v));
+        while (c >= '0' && c <= '9') {
+            s1.append(c);
+            i++;
+            if (i >= s.length()) {
+                break;
+            }
+            c = s.charAt(i);
+        }
+        ValueSet val = new ValueSet();
+
+        val.pos = (i < s.length()) ? i : i + 1;
+        val.value = Integer.parseInt(s1.toString());
+        return val;
+    }
+
+    protected int getNumericValue(String s, int i) {
+        int endOfVal = findNextWhiteSpace(i, s);
+        String val = s.substring(i, endOfVal);
+        return Integer.parseInt(val);
+    }
+
+    protected int getMonthNumber(String s) {
+        Integer integer = monthMap.get(s);
+
+        if (integer == null) {
+            return -1;
+        }
+
+        return integer;
+    }
+
+    protected int getDayOfWeekNumber(String s) {
+        Integer integer = dayMap.get(s);
+
+        if (integer == null) {
+            return -1;
+        }
+
+        return integer;
+    }
+
+    ////////////////////////////////////////////////////////////////////////////
+    //
+    // Computation Functions
+    //
+    ////////////////////////////////////////////////////////////////////////////
+
+    public Date getTimeAfter(Date afterTime) {
+
+        // Computation is based on Gregorian year only.
+        Calendar cl = new java.util.GregorianCalendar(getTimeZone());
+
+        // move ahead one second, since we're computing the time *after* the
+        // given time
+        afterTime = new Date(afterTime.getTime() + 1000);
+        // CronTrigger does not deal with milliseconds
+        cl.setTime(afterTime);
+        cl.set(Calendar.MILLISECOND, 0);
+
+        boolean gotOne = false;
+        // loop until we've computed the next time, or we've past the endTime
+        while (!gotOne) {
+
+            //if (endTime != null && cl.getTime().after(endTime)) return null;
+            if(cl.get(Calendar.YEAR) > 2999) { // prevent endless loop...
+                return null;
+            }
+
+            SortedSet<Integer> st = null;
+            int t = 0;
+
+            int sec = cl.get(Calendar.SECOND);
+            int min = cl.get(Calendar.MINUTE);
+
+            // get second.................................................
+            st = seconds.tailSet(sec);
+            if (st != null && st.size() != 0) {
+                sec = st.first();
+            } else {
+                sec = seconds.first();
+                min++;
+                cl.set(Calendar.MINUTE, min);
+            }
+            cl.set(Calendar.SECOND, sec);
+
+            min = cl.get(Calendar.MINUTE);
+            int hr = cl.get(Calendar.HOUR_OF_DAY);
+            t = -1;
+
+            // get minute.................................................
+            st = minutes.tailSet(min);
+            if (st != null && st.size() != 0) {
+                t = min;
+                min = st.first();
+            } else {
+                min = minutes.first();
+                hr++;
+            }
+            if (min != t) {
+                cl.set(Calendar.SECOND, 0);
+                cl.set(Calendar.MINUTE, min);
+                setCalendarHour(cl, hr);
+                continue;
+            }
+            cl.set(Calendar.MINUTE, min);
+
+            hr = cl.get(Calendar.HOUR_OF_DAY);
+            int day = cl.get(Calendar.DAY_OF_MONTH);
+            t = -1;
+
+            // get hour...................................................
+            st = hours.tailSet(hr);
+            if (st != null && st.size() != 0) {
+                t = hr;
+                hr = st.first();
+            } else {
+                hr = hours.first();
+                day++;
+            }
+            if (hr != t) {
+                cl.set(Calendar.SECOND, 0);
+                cl.set(Calendar.MINUTE, 0);
+                cl.set(Calendar.DAY_OF_MONTH, day);
+                setCalendarHour(cl, hr);
+                continue;
+            }
+            cl.set(Calendar.HOUR_OF_DAY, hr);
+
+            day = cl.get(Calendar.DAY_OF_MONTH);
+            int mon = cl.get(Calendar.MONTH) + 1;
+            // '+ 1' because calendar is 0-based for this field, and we are
+            // 1-based
+            t = -1;
+            int tmon = mon;
+
+            // get day...................................................
+            boolean dayOfMSpec = !daysOfMonth.contains(NO_SPEC);
+            boolean dayOfWSpec = !daysOfWeek.contains(NO_SPEC);
+            if (dayOfMSpec && !dayOfWSpec) { // get day by day of month rule
+                st = daysOfMonth.tailSet(day);
+                if (lastdayOfMonth) {
+                    if(!nearestWeekday) {
+                        t = day;
+                        day = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
+                        day -= lastdayOffset;
+                        if(t > day) {
+                            mon++;
+                            if(mon > 12) {
+                                mon = 1;
+                                tmon = 3333; // ensure test of mon != tmon further below fails
+                                cl.add(Calendar.YEAR, 1);
+                            }
+                            day = 1;
+                        }
+                    } else {
+                        t = day;
+                        day = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
+                        day -= lastdayOffset;
+
+                        java.util.Calendar tcal = java.util.Calendar.getInstance(getTimeZone());
+                        tcal.set(Calendar.SECOND, 0);
+                        tcal.set(Calendar.MINUTE, 0);
+                        tcal.set(Calendar.HOUR_OF_DAY, 0);
+                        tcal.set(Calendar.DAY_OF_MONTH, day);
+                        tcal.set(Calendar.MONTH, mon - 1);
+                        tcal.set(Calendar.YEAR, cl.get(Calendar.YEAR));
+
+                        int ldom = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
+                        int dow = tcal.get(Calendar.DAY_OF_WEEK);
+
+                        if(dow == Calendar.SATURDAY && day == 1) {
+                            day += 2;
+                        } else if(dow == Calendar.SATURDAY) {
+                            day -= 1;
+                        } else if(dow == Calendar.SUNDAY && day == ldom) {
+                            day -= 2;
+                        } else if(dow == Calendar.SUNDAY) {
+                            day += 1;
+                        }
+
+                        tcal.set(Calendar.SECOND, sec);
+                        tcal.set(Calendar.MINUTE, min);
+                        tcal.set(Calendar.HOUR_OF_DAY, hr);
+                        tcal.set(Calendar.DAY_OF_MONTH, day);
+                        tcal.set(Calendar.MONTH, mon - 1);
+                        Date nTime = tcal.getTime();
+                        if(nTime.before(afterTime)) {
+                            day = 1;
+                            mon++;
+                        }
+                    }
+                } else if(nearestWeekday) {
+                    t = day;
+                    day = daysOfMonth.first();
+
+                    java.util.Calendar tcal = java.util.Calendar.getInstance(getTimeZone());
+                    tcal.set(Calendar.SECOND, 0);
+                    tcal.set(Calendar.MINUTE, 0);
+                    tcal.set(Calendar.HOUR_OF_DAY, 0);
+                    tcal.set(Calendar.DAY_OF_MONTH, day);
+                    tcal.set(Calendar.MONTH, mon - 1);
+                    tcal.set(Calendar.YEAR, cl.get(Calendar.YEAR));
+
+                    int ldom = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
+                    int dow = tcal.get(Calendar.DAY_OF_WEEK);
+
+                    if(dow == Calendar.SATURDAY && day == 1) {
+                        day += 2;
+                    } else if(dow == Calendar.SATURDAY) {
+                        day -= 1;
+                    } else if(dow == Calendar.SUNDAY && day == ldom) {
+                        day -= 2;
+                    } else if(dow == Calendar.SUNDAY) {
+                        day += 1;
+                    }
+
+
+                    tcal.set(Calendar.SECOND, sec);
+                    tcal.set(Calendar.MINUTE, min);
+                    tcal.set(Calendar.HOUR_OF_DAY, hr);
+                    tcal.set(Calendar.DAY_OF_MONTH, day);
+                    tcal.set(Calendar.MONTH, mon - 1);
+                    Date nTime = tcal.getTime();
+                    if(nTime.before(afterTime)) {
+                        day = daysOfMonth.first();
+                        mon++;
+                    }
+                } else if (st != null && st.size() != 0) {
+                    t = day;
+                    day = st.first();
+                    // make sure we don't over-run a short month, such as february
+                    int lastDay = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
+                    if (day > lastDay) {
+                        day = daysOfMonth.first();
+                        mon++;
+                    }
+                } else {
+                    day = daysOfMonth.first();
+                    mon++;
+                }
+
+                if (day != t || mon != tmon) {
+                    cl.set(Calendar.SECOND, 0);
+                    cl.set(Calendar.MINUTE, 0);
+                    cl.set(Calendar.HOUR_OF_DAY, 0);
+                    cl.set(Calendar.DAY_OF_MONTH, day);
+                    cl.set(Calendar.MONTH, mon - 1);
+                    // '- 1' because calendar is 0-based for this field, and we
+                    // are 1-based
+                    continue;
+                }
+            } else if (dayOfWSpec && !dayOfMSpec) { // get day by day of week rule
+                if (lastdayOfWeek) { // are we looking for the last XXX day of
+                    // the month?
+                    int dow = daysOfWeek.first(); // desired
+                    // d-o-w
+                    int cDow = cl.get(Calendar.DAY_OF_WEEK); // current d-o-w
+                    int daysToAdd = 0;
+                    if (cDow < dow) {
+                        daysToAdd = dow - cDow;
+                    }
+                    if (cDow > dow) {
+                        daysToAdd = dow + (7 - cDow);
+                    }
+
+                    int lDay = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
+
+                    if (day + daysToAdd > lDay) { // did we already miss the
+                        // last one?
+                        cl.set(Calendar.SECOND, 0);
+                        cl.set(Calendar.MINUTE, 0);
+                        cl.set(Calendar.HOUR_OF_DAY, 0);
+                        cl.set(Calendar.DAY_OF_MONTH, 1);
+                        cl.set(Calendar.MONTH, mon);
+                        // no '- 1' here because we are promoting the month
+                        continue;
+                    }
+
+                    // find date of last occurrence of this day in this month...
+                    while ((day + daysToAdd + 7) <= lDay) {
+                        daysToAdd += 7;
+                    }
+
+                    day += daysToAdd;
+
+                    if (daysToAdd > 0) {
+                        cl.set(Calendar.SECOND, 0);
+                        cl.set(Calendar.MINUTE, 0);
+                        cl.set(Calendar.HOUR_OF_DAY, 0);
+                        cl.set(Calendar.DAY_OF_MONTH, day);
+                        cl.set(Calendar.MONTH, mon - 1);
+                        // '- 1' here because we are not promoting the month
+                        continue;
+                    }
+
+                } else if (nthdayOfWeek != 0) {
+                    // are we looking for the Nth XXX day in the month?
+                    int dow = daysOfWeek.first(); // desired
+                    // d-o-w
+                    int cDow = cl.get(Calendar.DAY_OF_WEEK); // current d-o-w
+                    int daysToAdd = 0;
+                    if (cDow < dow) {
+                        daysToAdd = dow - cDow;
+                    } else if (cDow > dow) {
+                        daysToAdd = dow + (7 - cDow);
+                    }
+
+                    boolean dayShifted = false;
+                    if (daysToAdd > 0) {
+                        dayShifted = true;
+                    }
+
+                    day += daysToAdd;
+                    int weekOfMonth = day / 7;
+                    if (day % 7 > 0) {
+                        weekOfMonth++;
+                    }
+
+                    daysToAdd = (nthdayOfWeek - weekOfMonth) * 7;
+                    day += daysToAdd;
+                    if (daysToAdd < 0
+                            || day > getLastDayOfMonth(mon, cl
+                                    .get(Calendar.YEAR))) {
+                        cl.set(Calendar.SECOND, 0);
+                        cl.set(Calendar.MINUTE, 0);
+                        cl.set(Calendar.HOUR_OF_DAY, 0);
+                        cl.set(Calendar.DAY_OF_MONTH, 1);
+                        cl.set(Calendar.MONTH, mon);
+                        // no '- 1' here because we are promoting the month
+                        continue;
+                    } else if (daysToAdd > 0 || dayShifted) {
+                        cl.set(Calendar.SECOND, 0);
+                        cl.set(Calendar.MINUTE, 0);
+                        cl.set(Calendar.HOUR_OF_DAY, 0);
+                        cl.set(Calendar.DAY_OF_MONTH, day);
+                        cl.set(Calendar.MONTH, mon - 1);
+                        // '- 1' here because we are NOT promoting the month
+                        continue;
+                    }
+                } else {
+                    int cDow = cl.get(Calendar.DAY_OF_WEEK); // current d-o-w
+                    int dow = daysOfWeek.first(); // desired
+                    // d-o-w
+                    st = daysOfWeek.tailSet(cDow);
+                    if (st != null && st.size() > 0) {
+                        dow = st.first();
+                    }
+
+                    int daysToAdd = 0;
+                    if (cDow < dow) {
+                        daysToAdd = dow - cDow;
+                    }
+                    if (cDow > dow) {
+                        daysToAdd = dow + (7 - cDow);
+                    }
+
+                    int lDay = getLastDayOfMonth(mon, cl.get(Calendar.YEAR));
+
+                    if (day + daysToAdd > lDay) { // will we pass the end of
+                        // the month?
+                        cl.set(Calendar.SECOND, 0);
+                        cl.set(Calendar.MINUTE, 0);
+                        cl.set(Calendar.HOUR_OF_DAY, 0);
+                        cl.set(Calendar.DAY_OF_MONTH, 1);
+                        cl.set(Calendar.MONTH, mon);
+                        // no '- 1' here because we are promoting the month
+                        continue;
+                    } else if (daysToAdd > 0) { // are we swithing days?
+                        cl.set(Calendar.SECOND, 0);
+                        cl.set(Calendar.MINUTE, 0);
+                        cl.set(Calendar.HOUR_OF_DAY, 0);
+                        cl.set(Calendar.DAY_OF_MONTH, day + daysToAdd);
+                        cl.set(Calendar.MONTH, mon - 1);
+                        // '- 1' because calendar is 0-based for this field,
+                        // and we are 1-based
+                        continue;
+                    }
+                }
+            } else { // dayOfWSpec && !dayOfMSpec
+                throw new UnsupportedOperationException(
+                        "Support for specifying both a day-of-week AND a day-of-month parameter is not implemented.");
+            }
+            cl.set(Calendar.DAY_OF_MONTH, day);
+
+            mon = cl.get(Calendar.MONTH) + 1;
+            // '+ 1' because calendar is 0-based for this field, and we are
+            // 1-based
+            int year = cl.get(Calendar.YEAR);
+            t = -1;
+
+            // test for expressions that never generate a valid fire date,
+            // but keep looping...
+            if (year > MAX_YEAR) {
+                return null;
+            }
+
+            // get month...................................................
+            st = months.tailSet(mon);
+            if (st != null && st.size() != 0) {
+                t = mon;
+                mon = st.first();
+            } else {
+                mon = months.first();
+                year++;
+            }
+            if (mon != t) {
+                cl.set(Calendar.SECOND, 0);
+                cl.set(Calendar.MINUTE, 0);
+                cl.set(Calendar.HOUR_OF_DAY, 0);
+                cl.set(Calendar.DAY_OF_MONTH, 1);
+                cl.set(Calendar.MONTH, mon - 1);
+                // '- 1' because calendar is 0-based for this field, and we are
+                // 1-based
+                cl.set(Calendar.YEAR, year);
+                continue;
+            }
+            cl.set(Calendar.MONTH, mon - 1);
+            // '- 1' because calendar is 0-based for this field, and we are
+            // 1-based
+
+            year = cl.get(Calendar.YEAR);
+            t = -1;
+
+            // get year...................................................
+            st = years.tailSet(year);
+            if (st != null && st.size() != 0) {
+                t = year;
+                year = st.first();
+            } else {
+                return null; // ran out of years...
+            }
+
+            if (year != t) {
+                cl.set(Calendar.SECOND, 0);
+                cl.set(Calendar.MINUTE, 0);
+                cl.set(Calendar.HOUR_OF_DAY, 0);
+                cl.set(Calendar.DAY_OF_MONTH, 1);
+                cl.set(Calendar.MONTH, 0);
+                // '- 1' because calendar is 0-based for this field, and we are
+                // 1-based
+                cl.set(Calendar.YEAR, year);
+                continue;
+            }
+            cl.set(Calendar.YEAR, year);
+
+            gotOne = true;
+        } // while( !done )
+
+        return cl.getTime();
+    }
+
+    /**
+     * Advance the calendar to the particular hour paying particular attention
+     * to daylight saving problems.
+     *
+     * @param cal the calendar to operate on
+     * @param hour the hour to set
+     */
+    protected void setCalendarHour(Calendar cal, int hour) {
+        cal.set(java.util.Calendar.HOUR_OF_DAY, hour);
+        if (cal.get(java.util.Calendar.HOUR_OF_DAY) != hour && hour != 24) {
+            cal.set(java.util.Calendar.HOUR_OF_DAY, hour + 1);
+        }
+    }
+
+    /**
+     * NOT YET IMPLEMENTED: Returns the time before the given time
+     * that the <code>CronExpression</code> matches.
+     */
+    public Date getTimeBefore(Date endTime) {
+        // FUTURE_TODO: implement QUARTZ-423
+        return null;
+    }
+
+    /**
+     * NOT YET IMPLEMENTED: Returns the final time that the
+     * <code>CronExpression</code> will match.
+     */
+    public Date getFinalFireTime() {
+        // FUTURE_TODO: implement QUARTZ-423
+        return null;
+    }
+
+    protected boolean isLeapYear(int year) {
+        return ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));
+    }
+
+    protected int getLastDayOfMonth(int monthNum, int year) {
+
+        switch (monthNum) {
+            case 1:
+                return 31;
+            case 2:
+                return (isLeapYear(year)) ? 29 : 28;
+            case 3:
+                return 31;
+            case 4:
+                return 30;
+            case 5:
+                return 31;
+            case 6:
+                return 30;
+            case 7:
+                return 31;
+            case 8:
+                return 31;
+            case 9:
+                return 30;
+            case 10:
+                return 31;
+            case 11:
+                return 30;
+            case 12:
+                return 31;
+            default:
+                throw new IllegalArgumentException("Illegal month number: "
+                        + monthNum);
+        }
+    }
+
+
+    private void readObject(java.io.ObjectInputStream stream)
+        throws java.io.IOException, ClassNotFoundException {
+
+        stream.defaultReadObject();
+        try {
+            buildExpression(cronExpression);
+        } catch (Exception ignore) {
+        } // never happens
+    }
+
+    @Override
+    @Deprecated
+    public Object clone() {
+        return new CronExpression(this);
+    }
+}
+
+class ValueSet {
+    public int value;
+
+    public int pos;
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/exception/XxlJobException.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/exception/XxlJobException.java
new file mode 100644
index 0000000..1773df0
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/exception/XxlJobException.java
@@ -0,0 +1,14 @@
+package cn.gistack.job.admin.core.exception;
+
+/**
+ * @author xuxueli 2019-05-04 23:19:29
+ */
+public class XxlJobException extends RuntimeException {
+
+    public XxlJobException() {
+    }
+    public XxlJobException(String message) {
+        super(message);
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobGroup.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobGroup.java
new file mode 100644
index 0000000..2df08a9
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobGroup.java
@@ -0,0 +1,76 @@
+package cn.gistack.job.admin.core.model;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Created by xuxueli on 16/9/30.
+ */
+public class XxlJobGroup {
+
+    private int id;
+    private String appName;
+    private String title;
+    private int order;
+    private int addressType;        // 执行器地址类型:0=自动注册、1=手动录入
+    private String addressList;     // 执行器地址列表,多地址逗号分隔(手动录入)
+
+    // registry list
+    private List<String> registryList;  // 执行器地址列表(系统注册)
+    public List<String> getRegistryList() {
+        if (addressList!=null && addressList.trim().length()>0) {
+            registryList = new ArrayList<String>(Arrays.asList(addressList.split(",")));
+        }
+        return registryList;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getAppName() {
+        return appName;
+    }
+
+    public void setAppName(String appName) {
+        this.appName = appName;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public int getOrder() {
+        return order;
+    }
+
+    public void setOrder(int order) {
+        this.order = order;
+    }
+
+    public int getAddressType() {
+        return addressType;
+    }
+
+    public void setAddressType(int addressType) {
+        this.addressType = addressType;
+    }
+
+    public String getAddressList() {
+        return addressList;
+    }
+
+    public void setAddressList(String addressList) {
+        this.addressList = addressList;
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobInfo.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobInfo.java
new file mode 100644
index 0000000..3504028
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobInfo.java
@@ -0,0 +1,218 @@
+package cn.gistack.job.admin.core.model;
+
+import java.util.Date;
+
+/**
+ * xxl-job info
+ *
+ * @author xuxueli  2016-1-12 18:25:49
+ */
+public class XxlJobInfo {
+
+	private int id;				// 主键ID
+
+	private int jobGroup;		// 执行器主键ID
+	private String jobCron;		// 任务执行CRON表达式
+	private String jobDesc;
+
+	private Date addTime;
+	private Date updateTime;
+
+	private String author;		// 负责人
+	private String alarmEmail;	// 报警邮件
+
+	private String executorRouteStrategy;	// 执行器路由策略
+	private String executorHandler;		    // 执行器,任务Handler名称
+	private String executorParam;		    // 执行器,任务参数
+	private String executorBlockStrategy;	// 阻塞处理策略
+	private int executorTimeout;     		// 任务执行超时时间,单位秒
+	private int executorFailRetryCount;		// 失败重试次数
+
+	private String glueType;		// GLUE类型	#com.xxl.job.core.glue.GlueTypeEnum
+	private String glueSource;		// GLUE源代码
+	private String glueRemark;		// GLUE备注
+	private Date glueUpdatetime;	// GLUE更新时间
+
+	private String childJobId;		// 子任务ID,多个逗号分隔
+
+	private int triggerStatus;		// 调度状态:0-停止,1-运行
+	private long triggerLastTime;	// 上次调度时间
+	private long triggerNextTime;	// 下次调度时间
+
+
+	public int getId() {
+		return id;
+	}
+
+	public void setId(int id) {
+		this.id = id;
+	}
+
+	public int getJobGroup() {
+		return jobGroup;
+	}
+
+	public void setJobGroup(int jobGroup) {
+		this.jobGroup = jobGroup;
+	}
+
+	public String getJobCron() {
+		return jobCron;
+	}
+
+	public void setJobCron(String jobCron) {
+		this.jobCron = jobCron;
+	}
+
+	public String getJobDesc() {
+		return jobDesc;
+	}
+
+	public void setJobDesc(String jobDesc) {
+		this.jobDesc = jobDesc;
+	}
+
+	public Date getAddTime() {
+		return addTime;
+	}
+
+	public void setAddTime(Date addTime) {
+		this.addTime = addTime;
+	}
+
+	public Date getUpdateTime() {
+		return updateTime;
+	}
+
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = updateTime;
+	}
+
+	public String getAuthor() {
+		return author;
+	}
+
+	public void setAuthor(String author) {
+		this.author = author;
+	}
+
+	public String getAlarmEmail() {
+		return alarmEmail;
+	}
+
+	public void setAlarmEmail(String alarmEmail) {
+		this.alarmEmail = alarmEmail;
+	}
+
+	public String getExecutorRouteStrategy() {
+		return executorRouteStrategy;
+	}
+
+	public void setExecutorRouteStrategy(String executorRouteStrategy) {
+		this.executorRouteStrategy = executorRouteStrategy;
+	}
+
+	public String getExecutorHandler() {
+		return executorHandler;
+	}
+
+	public void setExecutorHandler(String executorHandler) {
+		this.executorHandler = executorHandler;
+	}
+
+	public String getExecutorParam() {
+		return executorParam;
+	}
+
+	public void setExecutorParam(String executorParam) {
+		this.executorParam = executorParam;
+	}
+
+	public String getExecutorBlockStrategy() {
+		return executorBlockStrategy;
+	}
+
+	public void setExecutorBlockStrategy(String executorBlockStrategy) {
+		this.executorBlockStrategy = executorBlockStrategy;
+	}
+
+	public int getExecutorTimeout() {
+		return executorTimeout;
+	}
+
+	public void setExecutorTimeout(int executorTimeout) {
+		this.executorTimeout = executorTimeout;
+	}
+
+	public int getExecutorFailRetryCount() {
+		return executorFailRetryCount;
+	}
+
+	public void setExecutorFailRetryCount(int executorFailRetryCount) {
+		this.executorFailRetryCount = executorFailRetryCount;
+	}
+
+	public String getGlueType() {
+		return glueType;
+	}
+
+	public void setGlueType(String glueType) {
+		this.glueType = glueType;
+	}
+
+	public String getGlueSource() {
+		return glueSource;
+	}
+
+	public void setGlueSource(String glueSource) {
+		this.glueSource = glueSource;
+	}
+
+	public String getGlueRemark() {
+		return glueRemark;
+	}
+
+	public void setGlueRemark(String glueRemark) {
+		this.glueRemark = glueRemark;
+	}
+
+	public Date getGlueUpdatetime() {
+		return glueUpdatetime;
+	}
+
+	public void setGlueUpdatetime(Date glueUpdatetime) {
+		this.glueUpdatetime = glueUpdatetime;
+	}
+
+	public String getChildJobId() {
+		return childJobId;
+	}
+
+	public void setChildJobId(String childJobId) {
+		this.childJobId = childJobId;
+	}
+
+	public int getTriggerStatus() {
+		return triggerStatus;
+	}
+
+	public void setTriggerStatus(int triggerStatus) {
+		this.triggerStatus = triggerStatus;
+	}
+
+	public long getTriggerLastTime() {
+		return triggerLastTime;
+	}
+
+	public void setTriggerLastTime(long triggerLastTime) {
+		this.triggerLastTime = triggerLastTime;
+	}
+
+	public long getTriggerNextTime() {
+		return triggerNextTime;
+	}
+
+	public void setTriggerNextTime(long triggerNextTime) {
+		this.triggerNextTime = triggerNextTime;
+	}
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobLog.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobLog.java
new file mode 100644
index 0000000..2eb0db6
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobLog.java
@@ -0,0 +1,157 @@
+package cn.gistack.job.admin.core.model;
+
+import java.util.Date;
+
+/**
+ * xxl-job log, used to track trigger process
+ * @author xuxueli  2015-12-19 23:19:09
+ */
+public class XxlJobLog {
+
+	private long id;
+
+	// job info
+	private int jobGroup;
+	private int jobId;
+
+	// execute info
+	private String executorAddress;
+	private String executorHandler;
+	private String executorParam;
+	private String executorShardingParam;
+	private int executorFailRetryCount;
+
+	// trigger info
+	private Date triggerTime;
+	private int triggerCode;
+	private String triggerMsg;
+
+	// handle info
+	private Date handleTime;
+	private int handleCode;
+	private String handleMsg;
+
+	// alarm info
+	private int alarmStatus;
+
+	public long getId() {
+		return id;
+	}
+
+	public void setId(long id) {
+		this.id = id;
+	}
+
+	public int getJobGroup() {
+		return jobGroup;
+	}
+
+	public void setJobGroup(int jobGroup) {
+		this.jobGroup = jobGroup;
+	}
+
+	public int getJobId() {
+		return jobId;
+	}
+
+	public void setJobId(int jobId) {
+		this.jobId = jobId;
+	}
+
+	public String getExecutorAddress() {
+		return executorAddress;
+	}
+
+	public void setExecutorAddress(String executorAddress) {
+		this.executorAddress = executorAddress;
+	}
+
+	public String getExecutorHandler() {
+		return executorHandler;
+	}
+
+	public void setExecutorHandler(String executorHandler) {
+		this.executorHandler = executorHandler;
+	}
+
+	public String getExecutorParam() {
+		return executorParam;
+	}
+
+	public void setExecutorParam(String executorParam) {
+		this.executorParam = executorParam;
+	}
+
+	public String getExecutorShardingParam() {
+		return executorShardingParam;
+	}
+
+	public void setExecutorShardingParam(String executorShardingParam) {
+		this.executorShardingParam = executorShardingParam;
+	}
+
+	public int getExecutorFailRetryCount() {
+		return executorFailRetryCount;
+	}
+
+	public void setExecutorFailRetryCount(int executorFailRetryCount) {
+		this.executorFailRetryCount = executorFailRetryCount;
+	}
+
+	public Date getTriggerTime() {
+		return triggerTime;
+	}
+
+	public void setTriggerTime(Date triggerTime) {
+		this.triggerTime = triggerTime;
+	}
+
+	public int getTriggerCode() {
+		return triggerCode;
+	}
+
+	public void setTriggerCode(int triggerCode) {
+		this.triggerCode = triggerCode;
+	}
+
+	public String getTriggerMsg() {
+		return triggerMsg;
+	}
+
+	public void setTriggerMsg(String triggerMsg) {
+		this.triggerMsg = triggerMsg;
+	}
+
+	public Date getHandleTime() {
+		return handleTime;
+	}
+
+	public void setHandleTime(Date handleTime) {
+		this.handleTime = handleTime;
+	}
+
+	public int getHandleCode() {
+		return handleCode;
+	}
+
+	public void setHandleCode(int handleCode) {
+		this.handleCode = handleCode;
+	}
+
+	public String getHandleMsg() {
+		return handleMsg;
+	}
+
+	public void setHandleMsg(String handleMsg) {
+		this.handleMsg = handleMsg;
+	}
+
+	public int getAlarmStatus() {
+		return alarmStatus;
+	}
+
+	public void setAlarmStatus(int alarmStatus) {
+		this.alarmStatus = alarmStatus;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobLogGlue.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobLogGlue.java
new file mode 100644
index 0000000..a837ea9
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobLogGlue.java
@@ -0,0 +1,75 @@
+package cn.gistack.job.admin.core.model;
+
+import java.util.Date;
+
+/**
+ * xxl-job log for glue, used to track job code process
+ * @author xuxueli 2016-5-19 17:57:46
+ */
+public class XxlJobLogGlue {
+
+	private int id;
+	private int jobId;				// 任务主键ID
+	private String glueType;		// GLUE类型	#com.xxl.job.core.glue.GlueTypeEnum
+	private String glueSource;
+	private String glueRemark;
+	private Date addTime;
+	private Date updateTime;
+
+	public int getId() {
+		return id;
+	}
+
+	public void setId(int id) {
+		this.id = id;
+	}
+
+	public int getJobId() {
+		return jobId;
+	}
+
+	public void setJobId(int jobId) {
+		this.jobId = jobId;
+	}
+
+	public String getGlueType() {
+		return glueType;
+	}
+
+	public void setGlueType(String glueType) {
+		this.glueType = glueType;
+	}
+
+	public String getGlueSource() {
+		return glueSource;
+	}
+
+	public void setGlueSource(String glueSource) {
+		this.glueSource = glueSource;
+	}
+
+	public String getGlueRemark() {
+		return glueRemark;
+	}
+
+	public void setGlueRemark(String glueRemark) {
+		this.glueRemark = glueRemark;
+	}
+
+	public Date getAddTime() {
+		return addTime;
+	}
+
+	public void setAddTime(Date addTime) {
+		this.addTime = addTime;
+	}
+
+	public Date getUpdateTime() {
+		return updateTime;
+	}
+
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = updateTime;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobLogReport.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobLogReport.java
new file mode 100644
index 0000000..ae38eff
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobLogReport.java
@@ -0,0 +1,54 @@
+package cn.gistack.job.admin.core.model;
+
+import java.util.Date;
+
+public class XxlJobLogReport {
+
+    private int id;
+
+    private Date triggerDay;
+
+    private int runningCount;
+    private int sucCount;
+    private int failCount;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public Date getTriggerDay() {
+        return triggerDay;
+    }
+
+    public void setTriggerDay(Date triggerDay) {
+        this.triggerDay = triggerDay;
+    }
+
+    public int getRunningCount() {
+        return runningCount;
+    }
+
+    public void setRunningCount(int runningCount) {
+        this.runningCount = runningCount;
+    }
+
+    public int getSucCount() {
+        return sucCount;
+    }
+
+    public void setSucCount(int sucCount) {
+        this.sucCount = sucCount;
+    }
+
+    public int getFailCount() {
+        return failCount;
+    }
+
+    public void setFailCount(int failCount) {
+        this.failCount = failCount;
+    }
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobRegistry.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobRegistry.java
new file mode 100644
index 0000000..c417b10
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobRegistry.java
@@ -0,0 +1,55 @@
+package cn.gistack.job.admin.core.model;
+
+import java.util.Date;
+
+/**
+ * Created by xuxueli on 16/9/30.
+ */
+public class XxlJobRegistry {
+
+    private int id;
+    private String registryGroup;
+    private String registryKey;
+    private String registryValue;
+    private Date updateTime;
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
+
+    public String getRegistryGroup() {
+        return registryGroup;
+    }
+
+    public void setRegistryGroup(String registryGroup) {
+        this.registryGroup = registryGroup;
+    }
+
+    public String getRegistryKey() {
+        return registryKey;
+    }
+
+    public void setRegistryKey(String registryKey) {
+        this.registryKey = registryKey;
+    }
+
+    public String getRegistryValue() {
+        return registryValue;
+    }
+
+    public void setRegistryValue(String registryValue) {
+        this.registryValue = registryValue;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobUser.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobUser.java
new file mode 100644
index 0000000..8cda165
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/model/XxlJobUser.java
@@ -0,0 +1,73 @@
+package cn.gistack.job.admin.core.model;
+
+import org.springframework.util.StringUtils;
+
+/**
+ * @author xuxueli 2019-05-04 16:43:12
+ */
+public class XxlJobUser {
+
+	private int id;
+	private String username;		// 账号
+	private String password;		// 密码
+	private int role;				// 角色:0-普通用户、1-管理员
+	private String permission;	// 权限:执行器ID列表,多个逗号分割
+
+	public int getId() {
+		return id;
+	}
+
+	public void setId(int id) {
+		this.id = id;
+	}
+
+	public String getUsername() {
+		return username;
+	}
+
+	public void setUsername(String username) {
+		this.username = username;
+	}
+
+	public String getPassword() {
+		return password;
+	}
+
+	public void setPassword(String password) {
+		this.password = password;
+	}
+
+	public int getRole() {
+		return role;
+	}
+
+	public void setRole(int role) {
+		this.role = role;
+	}
+
+	public String getPermission() {
+		return permission;
+	}
+
+	public void setPermission(String permission) {
+		this.permission = permission;
+	}
+
+	// plugin
+	public boolean validPermission(int jobGroup){
+		if (this.role == 1) {
+			return true;
+		} else {
+			if (StringUtils.hasText(this.permission)) {
+				for (String permissionItem : this.permission.split(",")) {
+					if (String.valueOf(jobGroup).equals(permissionItem)) {
+						return true;
+					}
+				}
+			}
+			return false;
+		}
+
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/old/RemoteHttpJobBean.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/old/RemoteHttpJobBean.java
new file mode 100644
index 0000000..b2dd151
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/old/RemoteHttpJobBean.java
@@ -0,0 +1,32 @@
+//package com.xxl.job.admin.core.jobbean;
+//
+//import com.xxl.job.admin.core.thread.JobTriggerPoolHelper;
+//import com.xxl.job.admin.core.trigger.TriggerTypeEnum;
+//import org.quartz.JobExecutionContext;
+//import org.quartz.JobExecutionException;
+//import org.quartz.JobKey;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.scheduling.quartz.QuartzJobBean;
+//
+///**
+// * http job bean
+// * “@DisallowConcurrentExecution” disable concurrent, thread size can not be only one, better given more
+// * @author xuxueli 2015-12-17 18:20:34
+// */
+////@DisallowConcurrentExecution
+//public class RemoteHttpJobBean extends QuartzJobBean {
+//	private static Logger logger = LoggerFactory.getLogger(RemoteHttpJobBean.class);
+//
+//	@Override
+//	protected void executeInternal(JobExecutionContext context)
+//			throws JobExecutionException {
+//
+//		// load jobId
+//		JobKey jobKey = context.getTrigger().getJobKey();
+//		Integer jobId = Integer.valueOf(jobKey.getName());
+//
+//
+//	}
+//
+//}
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/old/XxlJobDynamicScheduler.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/old/XxlJobDynamicScheduler.java
new file mode 100644
index 0000000..1e62aa1
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/old/XxlJobDynamicScheduler.java
@@ -0,0 +1,413 @@
+//package com.xxl.job.admin.core.schedule;
+//
+//import com.xxl.job.admin.core.conf.XxlJobAdminConfig;
+//import com.xxl.job.admin.core.jobbean.RemoteHttpJobBean;
+//import com.xxl.job.admin.core.model.XxlJobInfo;
+//import com.xxl.job.admin.core.thread.JobFailMonitorHelper;
+//import com.xxl.job.admin.core.thread.JobRegistryMonitorHelper;
+//import com.xxl.job.admin.core.thread.JobTriggerPoolHelper;
+//import com.xxl.job.admin.core.util.I18nUtil;
+//import com.xxl.job.core.biz.AdminBiz;
+//import com.xxl.job.core.biz.ExecutorBiz;
+//import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
+//import com.xxl.rpc.remoting.invoker.XxlRpcInvokerFactory;
+//import com.xxl.rpc.remoting.invoker.call.CallType;
+//import com.xxl.rpc.remoting.invoker.reference.XxlRpcReferenceBean;
+//import com.xxl.rpc.remoting.invoker.route.LoadBalance;
+//import com.xxl.rpc.remoting.net.NetEnum;
+//import com.xxl.rpc.remoting.net.impl.servlet.server.ServletServerHandler;
+//import com.xxl.rpc.remoting.provider.XxlRpcProviderFactory;
+//import com.xxl.rpc.serialize.Serializer;
+//import org.quartz.*;
+//import org.quartz.Trigger.TriggerState;
+//import org.quartz.impl.triggers.CronTriggerImpl;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.util.Assert;
+//
+//import javax.servlet.ServletException;
+//import javax.servlet.http.HttpServletRequest;
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.IOException;
+//import java.util.Date;
+//import java.util.concurrent.ConcurrentHashMap;
+//
+///**
+// * base quartz scheduler util
+// * @author xuxueli 2015-12-19 16:13:53
+// */
+//public final class XxlJobDynamicScheduler {
+//    private static final Logger logger = LoggerFactory.getLogger(XxlJobDynamicScheduler_old.class);
+//
+//    // ---------------------- param ----------------------
+//
+//    // scheduler
+//    private static Scheduler scheduler;
+//    public void setScheduler(Scheduler scheduler) {
+//		XxlJobDynamicScheduler_old.scheduler = scheduler;
+//	}
+//
+//
+//    // ---------------------- init + destroy ----------------------
+//    public void start() throws Exception {
+//        // valid
+//        Assert.notNull(scheduler, "quartz scheduler is null");
+//
+//        // init i18n
+//        initI18n();
+//
+//        // admin registry monitor run
+//        JobRegistryMonitorHelper.getInstance().start();
+//
+//        // admin monitor run
+//        JobFailMonitorHelper.getInstance().start();
+//
+//        // admin-server
+//        initRpcProvider();
+//
+//        logger.info(">>>>>>>>> init xxl-job admin success.");
+//    }
+//
+//
+//    public void destroy() throws Exception {
+//        // admin trigger pool stop
+//        JobTriggerPoolHelper.toStop();
+//
+//        // admin registry stop
+//        JobRegistryMonitorHelper.getInstance().toStop();
+//
+//        // admin monitor stop
+//        JobFailMonitorHelper.getInstance().toStop();
+//
+//        // admin-server
+//        stopRpcProvider();
+//    }
+//
+//
+//    // ---------------------- I18n ----------------------
+//
+//    private void initI18n(){
+//        for (ExecutorBlockStrategyEnum item:ExecutorBlockStrategyEnum.values()) {
+//            item.setTitle(I18nUtil.getString("jobconf_block_".concat(item.name())));
+//        }
+//    }
+//
+//
+//    // ---------------------- admin rpc provider (no server version) ----------------------
+//    private static ServletServerHandler servletServerHandler;
+//    private void initRpcProvider(){
+//        // init
+//        XxlRpcProviderFactory xxlRpcProviderFactory = new XxlRpcProviderFactory();
+//        xxlRpcProviderFactory.initConfig(
+//                NetEnum.NETTY_HTTP,
+//                Serializer.SerializeEnum.HESSIAN.getSerializer(),
+//                null,
+//                0,
+//                XxlJobAdminConfig.getAdminConfig().getAccessToken(),
+//                null,
+//                null);
+//
+//        // add services
+//        xxlRpcProviderFactory.addService(AdminBiz.class.getName(), null, XxlJobAdminConfig.getAdminConfig().getAdminBiz());
+//
+//        // servlet handler
+//        servletServerHandler = new ServletServerHandler(xxlRpcProviderFactory);
+//    }
+//    private void stopRpcProvider() throws Exception {
+//        XxlRpcInvokerFactory.getInstance().stop();
+//    }
+//    public static void invokeAdminService(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
+//        servletServerHandler.handle(null, request, response);
+//    }
+//
+//
+//    // ---------------------- executor-client ----------------------
+//    private static ConcurrentHashMap<String, ExecutorBiz> executorBizRepository = new ConcurrentHashMap<String, ExecutorBiz>();
+//    public static ExecutorBiz getExecutorBiz(String address) throws Exception {
+//        // valid
+//        if (address==null || address.trim().length()==0) {
+//            return null;
+//        }
+//
+//        // load-cache
+//        address = address.trim();
+//        ExecutorBiz executorBiz = executorBizRepository.get(address);
+//        if (executorBiz != null) {
+//            return executorBiz;
+//        }
+//
+//        // set-cache
+//        executorBiz = (ExecutorBiz) new XxlRpcReferenceBean(
+//                NetEnum.NETTY_HTTP,
+//                Serializer.SerializeEnum.HESSIAN.getSerializer(),
+//                CallType.SYNC,
+//                LoadBalance.ROUND,
+//                ExecutorBiz.class,
+//                null,
+//                5000,
+//                address,
+//                XxlJobAdminConfig.getAdminConfig().getAccessToken(),
+//                null,
+//                null).getObject();
+//
+//        executorBizRepository.put(address, executorBiz);
+//        return executorBiz;
+//    }
+//
+//
+//    // ---------------------- schedule util ----------------------
+//
+//    /**
+//     * fill job info
+//     *
+//     * @param jobInfo
+//     */
+//	public static void fillJobInfo(XxlJobInfo jobInfo) {
+//
+//        String name = String.valueOf(jobInfo.getId());
+//
+//        // trigger key
+//        TriggerKey triggerKey = TriggerKey.triggerKey(name);
+//        try {
+//
+//            // trigger cron
+//			Trigger trigger = scheduler.getTrigger(triggerKey);
+//			if (trigger!=null && trigger instanceof CronTriggerImpl) {
+//				String cronExpression = ((CronTriggerImpl) trigger).getCronExpression();
+//				jobInfo.setJobCron(cronExpression);
+//			}
+//
+//            // trigger state
+//            TriggerState triggerState = scheduler.getTriggerState(triggerKey);
+//			if (triggerState!=null) {
+//				jobInfo.setJobStatus(triggerState.name());
+//			}
+//
+//            //JobKey jobKey = new JobKey(jobInfo.getJobName(), String.valueOf(jobInfo.getJobGroup()));
+//            //JobDetail jobDetail = scheduler.getJobDetail(jobKey);
+//            //String jobClass = jobDetail.getJobClass().getName();
+//
+//		} catch (SchedulerException e) {
+//			logger.error(e.getMessage(), e);
+//		}
+//	}
+//
+//
+//    /**
+//     * add trigger + job
+//     *
+//     * @param jobName
+//     * @param cronExpression
+//     * @return
+//     * @throws SchedulerException
+//     */
+//	public static boolean addJob(String jobName, String cronExpression) throws SchedulerException {
+//    	// 1、job key
+//        TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
+//        JobKey jobKey = new JobKey(jobName);
+//
+//        // 2、valid
+//        if (scheduler.checkExists(triggerKey)) {
+//            return true;    // PASS
+//        }
+//
+//        // 3、corn trigger
+//        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression).withMisfireHandlingInstructionDoNothing();   // withMisfireHandlingInstructionDoNothing 忽略掉调度终止过程中忽略的调度
+//        CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build();
+//
+//        // 4、job detail
+//		Class<? extends Job> jobClass_ = RemoteHttpJobBean.class;   // Class.forName(jobInfo.getJobClass());
+//		JobDetail jobDetail = JobBuilder.newJob(jobClass_).withIdentity(jobKey).build();
+//
+//        /*if (jobInfo.getJobData()!=null) {
+//        	JobDataMap jobDataMap = jobDetail.getJobDataMap();
+//        	jobDataMap.putAll(JacksonUtil.readValue(jobInfo.getJobData(), Map.class));
+//        	// JobExecutionContext context.getMergedJobDataMap().get("mailGuid");
+//		}*/
+//
+//        // 5、schedule job
+//        Date date = scheduler.scheduleJob(jobDetail, cronTrigger);
+//
+//        logger.info(">>>>>>>>>>> addJob success(quartz), jobDetail:{}, cronTrigger:{}, date:{}", jobDetail, cronTrigger, date);
+//        return true;
+//    }
+//
+//
+//    /**
+//     * remove trigger + job
+//     *
+//     * @param jobName
+//     * @return
+//     * @throws SchedulerException
+//     */
+//    public static boolean removeJob(String jobName) throws SchedulerException {
+//
+//        JobKey jobKey = new JobKey(jobName);
+//        scheduler.deleteJob(jobKey);
+//
+//        /*TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
+//        if (scheduler.checkExists(triggerKey)) {
+//            scheduler.unscheduleJob(triggerKey);    // trigger + job
+//        }*/
+//
+//        logger.info(">>>>>>>>>>> removeJob success(quartz), jobKey:{}", jobKey);
+//        return true;
+//    }
+//
+//
+//    /**
+//     * updateJobCron
+//     *
+//     * @param jobName
+//     * @param cronExpression
+//     * @return
+//     * @throws SchedulerException
+//     */
+//	public static boolean updateJobCron(String jobName, String cronExpression) throws SchedulerException {
+//
+//        // 1、job key
+//        TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
+//
+//        // 2、valid
+//        if (!scheduler.checkExists(triggerKey)) {
+//            return true;    // PASS
+//        }
+//
+//        CronTrigger oldTrigger = (CronTrigger) scheduler.getTrigger(triggerKey);
+//
+//        // 3、avoid repeat cron
+//        String oldCron = oldTrigger.getCronExpression();
+//        if (oldCron.equals(cronExpression)){
+//            return true;    // PASS
+//        }
+//
+//        // 4、new cron trigger
+//        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression).withMisfireHandlingInstructionDoNothing();
+//        oldTrigger = oldTrigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(cronScheduleBuilder).build();
+//
+//        // 5、rescheduleJob
+//        scheduler.rescheduleJob(triggerKey, oldTrigger);
+//
+//        /*
+//        JobKey jobKey = new JobKey(jobName);
+//
+//        // old job detail
+//        JobDetail jobDetail = scheduler.getJobDetail(jobKey);
+//
+//        // new trigger
+//        HashSet<Trigger> triggerSet = new HashSet<Trigger>();
+//        triggerSet.add(cronTrigger);
+//        // cover trigger of job detail
+//        scheduler.scheduleJob(jobDetail, triggerSet, true);*/
+//
+//        logger.info(">>>>>>>>>>> resumeJob success, JobName:{}", jobName);
+//        return true;
+//    }
+//
+//
+//    /**
+//     * pause
+//     *
+//     * @param jobName
+//     * @return
+//     * @throws SchedulerException
+//     */
+//    /*public static boolean pauseJob(String jobName) throws SchedulerException {
+//
+//    	TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
+//
+//        boolean result = false;
+//        if (scheduler.checkExists(triggerKey)) {
+//            scheduler.pauseTrigger(triggerKey);
+//            result =  true;
+//        }
+//
+//        logger.info(">>>>>>>>>>> pauseJob {}, triggerKey:{}", (result?"success":"fail"),triggerKey);
+//        return result;
+//    }*/
+//
+//
+//    /**
+//     * resume
+//     *
+//     * @param jobName
+//     * @return
+//     * @throws SchedulerException
+//     */
+//    /*public static boolean resumeJob(String jobName) throws SchedulerException {
+//
+//        TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
+//
+//        boolean result = false;
+//        if (scheduler.checkExists(triggerKey)) {
+//            scheduler.resumeTrigger(triggerKey);
+//            result = true;
+//        }
+//
+//        logger.info(">>>>>>>>>>> resumeJob {}, triggerKey:{}", (result?"success":"fail"), triggerKey);
+//        return result;
+//    }*/
+//
+//
+//    /**
+//     * run
+//     *
+//     * @param jobName
+//     * @return
+//     * @throws SchedulerException
+//     */
+//    /*public static boolean triggerJob(String jobName) throws SchedulerException {
+//    	// TriggerKey : name + group
+//    	JobKey jobKey = new JobKey(jobName);
+//        TriggerKey triggerKey = TriggerKey.triggerKey(jobName);
+//
+//        boolean result = false;
+//        if (scheduler.checkExists(triggerKey)) {
+//            scheduler.triggerJob(jobKey);
+//            result = true;
+//            logger.info(">>>>>>>>>>> runJob success, jobKey:{}", jobKey);
+//        } else {
+//        	logger.info(">>>>>>>>>>> runJob fail, jobKey:{}", jobKey);
+//        }
+//        return result;
+//    }*/
+//
+//
+//    /**
+//     * finaAllJobList
+//     *
+//     * @return
+//     *//*
+//    @Deprecated
+//    public static List<Map<String, Object>> finaAllJobList(){
+//        List<Map<String, Object>> jobList = new ArrayList<Map<String,Object>>();
+//
+//        try {
+//            if (scheduler.getJobGroupNames()==null || scheduler.getJobGroupNames().size()==0) {
+//                return null;
+//            }
+//            String groupName = scheduler.getJobGroupNames().get(0);
+//            Set<JobKey> jobKeys = scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName));
+//            if (jobKeys!=null && jobKeys.size()>0) {
+//                for (JobKey jobKey : jobKeys) {
+//                    TriggerKey triggerKey = TriggerKey.triggerKey(jobKey.getName(), Scheduler.DEFAULT_GROUP);
+//                    Trigger trigger = scheduler.getTrigger(triggerKey);
+//                    JobDetail jobDetail = scheduler.getJobDetail(jobKey);
+//                    TriggerState triggerState = scheduler.getTriggerState(triggerKey);
+//                    Map<String, Object> jobMap = new HashMap<String, Object>();
+//                    jobMap.put("TriggerKey", triggerKey);
+//                    jobMap.put("Trigger", trigger);
+//                    jobMap.put("JobDetail", jobDetail);
+//                    jobMap.put("TriggerState", triggerState);
+//                    jobList.add(jobMap);
+//                }
+//            }
+//
+//        } catch (SchedulerException e) {
+//            logger.error(e.getMessage(), e);
+//            return null;
+//        }
+//        return jobList;
+//    }*/
+//
+//}
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/old/XxlJobThreadPool.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/old/XxlJobThreadPool.java
new file mode 100644
index 0000000..ad07430
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/old/XxlJobThreadPool.java
@@ -0,0 +1,58 @@
+//package com.xxl.job.admin.core.quartz;
+//
+//import org.quartz.SchedulerConfigException;
+//import org.quartz.spi.ThreadPool;
+//
+///**
+// * single thread pool, for async trigger
+// *
+// * @author xuxueli 2019-03-06
+// */
+//public class XxlJobThreadPool implements ThreadPool {
+//
+//    @Override
+//    public boolean runInThread(Runnable runnable) {
+//
+//        // async run
+//        runnable.run();
+//        return true;
+//
+//        //return false;
+//    }
+//
+//    @Override
+//    public int blockForAvailableThreads() {
+//        return 1;
+//    }
+//
+//    @Override
+//    public void initialize() throws SchedulerConfigException {
+//
+//    }
+//
+//    @Override
+//    public void shutdown(boolean waitForJobsToComplete) {
+//
+//    }
+//
+//    @Override
+//    public int getPoolSize() {
+//        return 1;
+//    }
+//
+//    @Override
+//    public void setInstanceId(String schedInstId) {
+//
+//    }
+//
+//    @Override
+//    public void setInstanceName(String schedName) {
+//
+//    }
+//
+//    // support
+//    public void setThreadCount(int count) {
+//        //
+//    }
+//
+//}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/ExecutorRouteStrategyEnum.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/ExecutorRouteStrategyEnum.java
new file mode 100644
index 0000000..7b30601
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/ExecutorRouteStrategyEnum.java
@@ -0,0 +1,49 @@
+package cn.gistack.job.admin.core.route;
+
+import cn.gistack.job.admin.core.route.strategy.*;
+import com.xxl.job.admin.core.route.strategy.*;
+import cn.gistack.job.admin.core.util.I18nUtil;
+
+/**
+ * Created by xuxueli on 17/3/10.
+ */
+public enum ExecutorRouteStrategyEnum {
+
+    FIRST(I18nUtil.getString("jobconf_route_first"), new ExecutorRouteFirst()),
+    LAST(I18nUtil.getString("jobconf_route_last"), new ExecutorRouteLast()),
+    ROUND(I18nUtil.getString("jobconf_route_round"), new ExecutorRouteRound()),
+    RANDOM(I18nUtil.getString("jobconf_route_random"), new ExecutorRouteRandom()),
+    CONSISTENT_HASH(I18nUtil.getString("jobconf_route_consistenthash"), new ExecutorRouteConsistentHash()),
+    LEAST_FREQUENTLY_USED(I18nUtil.getString("jobconf_route_lfu"), new ExecutorRouteLFU()),
+    LEAST_RECENTLY_USED(I18nUtil.getString("jobconf_route_lru"), new ExecutorRouteLRU()),
+    FAILOVER(I18nUtil.getString("jobconf_route_failover"), new ExecutorRouteFailover()),
+    BUSYOVER(I18nUtil.getString("jobconf_route_busyover"), new ExecutorRouteBusyover()),
+    SHARDING_BROADCAST(I18nUtil.getString("jobconf_route_shard"), null);
+
+    ExecutorRouteStrategyEnum(String title, ExecutorRouter router) {
+        this.title = title;
+        this.router = router;
+    }
+
+    private String title;
+    private ExecutorRouter router;
+
+    public String getTitle() {
+        return title;
+    }
+    public ExecutorRouter getRouter() {
+        return router;
+    }
+
+    public static ExecutorRouteStrategyEnum match(String name, ExecutorRouteStrategyEnum defaultItem){
+        if (name != null) {
+            for (ExecutorRouteStrategyEnum item: ExecutorRouteStrategyEnum.values()) {
+                if (item.name().equals(name)) {
+                    return item;
+                }
+            }
+        }
+        return defaultItem;
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/ExecutorRouter.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/ExecutorRouter.java
new file mode 100644
index 0000000..6a1faf0
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/ExecutorRouter.java
@@ -0,0 +1,24 @@
+package cn.gistack.job.admin.core.route;
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.biz.model.TriggerParam;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.List;
+
+/**
+ * Created by xuxueli on 17/3/10.
+ */
+public abstract class ExecutorRouter {
+    protected static Logger logger = LoggerFactory.getLogger(ExecutorRouter.class);
+
+    /**
+     * route address
+     *
+     * @param addressList
+     * @return  ReturnT.content=address
+     */
+    public abstract ReturnT<String> route(TriggerParam triggerParam, List<String> addressList);
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteBusyover.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteBusyover.java
new file mode 100644
index 0000000..ed392fa
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteBusyover.java
@@ -0,0 +1,47 @@
+package cn.gistack.job.admin.core.route.strategy;
+
+import cn.gistack.job.admin.core.route.ExecutorRouter;
+import cn.gistack.job.admin.core.scheduler.XxlJobScheduler;
+import cn.gistack.job.admin.core.util.I18nUtil;
+import com.xxl.job.core.biz.ExecutorBiz;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.biz.model.TriggerParam;
+
+import java.util.List;
+
+/**
+ * Created by xuxueli on 17/3/10.
+ */
+public class ExecutorRouteBusyover extends ExecutorRouter {
+
+    @Override
+    public ReturnT<String> route(TriggerParam triggerParam, List<String> addressList) {
+        StringBuffer idleBeatResultSB = new StringBuffer();
+        for (String address : addressList) {
+            // beat
+            ReturnT<String> idleBeatResult = null;
+            try {
+                ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(address);
+                idleBeatResult = executorBiz.idleBeat(triggerParam.getJobId());
+            } catch (Exception e) {
+                logger.error(e.getMessage(), e);
+                idleBeatResult = new ReturnT<String>(ReturnT.FAIL_CODE, ""+e );
+            }
+            idleBeatResultSB.append( (idleBeatResultSB.length()>0)?"<br><br>":"")
+                    .append(I18nUtil.getString("jobconf_idleBeat") + ":")
+                    .append("<br>address:").append(address)
+                    .append("<br>code:").append(idleBeatResult.getCode())
+                    .append("<br>msg:").append(idleBeatResult.getMsg());
+
+            // beat success
+            if (idleBeatResult.getCode() == ReturnT.SUCCESS_CODE) {
+                idleBeatResult.setMsg(idleBeatResultSB.toString());
+                idleBeatResult.setContent(address);
+                return idleBeatResult;
+            }
+        }
+
+        return new ReturnT<String>(ReturnT.FAIL_CODE, idleBeatResultSB.toString());
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java
new file mode 100644
index 0000000..f2371d5
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java
@@ -0,0 +1,85 @@
+package cn.gistack.job.admin.core.route.strategy;
+
+import cn.gistack.job.admin.core.route.ExecutorRouter;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.biz.model.TriggerParam;
+
+import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.List;
+import java.util.SortedMap;
+import java.util.TreeMap;
+
+/**
+ * 分组下机器地址相同,不同JOB均匀散列在不同机器上,保证分组下机器分配JOB平均;且每个JOB固定调度其中一台机器;
+ *      a、virtual node:解决不均衡问题
+ *      b、hash method replace hashCode:String的hashCode可能重复,需要进一步扩大hashCode的取值范围
+ * Created by xuxueli on 17/3/10.
+ */
+public class ExecutorRouteConsistentHash extends ExecutorRouter {
+
+    private static int VIRTUAL_NODE_NUM = 5;
+
+    /**
+     * get hash code on 2^32 ring (md5散列的方式计算hash值)
+     * @param key
+     * @return
+     */
+    private static long hash(String key) {
+
+        // md5 byte
+        MessageDigest md5;
+        try {
+            md5 = MessageDigest.getInstance("MD5");
+        } catch (NoSuchAlgorithmException e) {
+            throw new RuntimeException("MD5 not supported", e);
+        }
+        md5.reset();
+        byte[] keyBytes = null;
+        try {
+            keyBytes = key.getBytes("UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            throw new RuntimeException("Unknown string :" + key, e);
+        }
+
+        md5.update(keyBytes);
+        byte[] digest = md5.digest();
+
+        // hash code, Truncate to 32-bits
+        long hashCode = ((long) (digest[3] & 0xFF) << 24)
+                | ((long) (digest[2] & 0xFF) << 16)
+                | ((long) (digest[1] & 0xFF) << 8)
+                | (digest[0] & 0xFF);
+
+        long truncateHashCode = hashCode & 0xffffffffL;
+        return truncateHashCode;
+    }
+
+    public String hashJob(int jobId, List<String> addressList) {
+
+        // ------A1------A2-------A3------
+        // -----------J1------------------
+        TreeMap<Long, String> addressRing = new TreeMap<Long, String>();
+        for (String address: addressList) {
+            for (int i = 0; i < VIRTUAL_NODE_NUM; i++) {
+                long addressHash = hash("SHARD-" + address + "-NODE-" + i);
+                addressRing.put(addressHash, address);
+            }
+        }
+
+        long jobHash = hash(String.valueOf(jobId));
+        SortedMap<Long, String> lastRing = addressRing.tailMap(jobHash);
+        if (!lastRing.isEmpty()) {
+            return lastRing.get(lastRing.firstKey());
+        }
+        return addressRing.firstEntry().getValue();
+    }
+
+    @Override
+    public ReturnT<String> route(TriggerParam triggerParam, List<String> addressList) {
+        String address = hashJob(triggerParam.getJobId(), addressList);
+        return new ReturnT<String>(address);
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteFailover.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteFailover.java
new file mode 100644
index 0000000..15e6910
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteFailover.java
@@ -0,0 +1,48 @@
+package cn.gistack.job.admin.core.route.strategy;
+
+import cn.gistack.job.admin.core.route.ExecutorRouter;
+import cn.gistack.job.admin.core.scheduler.XxlJobScheduler;
+import cn.gistack.job.admin.core.util.I18nUtil;
+import com.xxl.job.core.biz.ExecutorBiz;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.biz.model.TriggerParam;
+
+import java.util.List;
+
+/**
+ * Created by xuxueli on 17/3/10.
+ */
+public class ExecutorRouteFailover extends ExecutorRouter {
+
+    @Override
+    public ReturnT<String> route(TriggerParam triggerParam, List<String> addressList) {
+
+        StringBuffer beatResultSB = new StringBuffer();
+        for (String address : addressList) {
+            // beat
+            ReturnT<String> beatResult = null;
+            try {
+                ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(address);
+                beatResult = executorBiz.beat();
+            } catch (Exception e) {
+                logger.error(e.getMessage(), e);
+                beatResult = new ReturnT<String>(ReturnT.FAIL_CODE, ""+e );
+            }
+            beatResultSB.append( (beatResultSB.length()>0)?"<br><br>":"")
+                    .append(I18nUtil.getString("jobconf_beat") + ":")
+                    .append("<br>address:").append(address)
+                    .append("<br>code:").append(beatResult.getCode())
+                    .append("<br>msg:").append(beatResult.getMsg());
+
+            // beat success
+            if (beatResult.getCode() == ReturnT.SUCCESS_CODE) {
+
+                beatResult.setMsg(beatResultSB.toString());
+                beatResult.setContent(address);
+                return beatResult;
+            }
+        }
+        return new ReturnT<String>(ReturnT.FAIL_CODE, beatResultSB.toString());
+
+    }
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteFirst.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteFirst.java
new file mode 100644
index 0000000..988e912
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteFirst.java
@@ -0,0 +1,19 @@
+package cn.gistack.job.admin.core.route.strategy;
+
+import cn.gistack.job.admin.core.route.ExecutorRouter;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.biz.model.TriggerParam;
+
+import java.util.List;
+
+/**
+ * Created by xuxueli on 17/3/10.
+ */
+public class ExecutorRouteFirst extends ExecutorRouter {
+
+    @Override
+    public ReturnT<String> route(TriggerParam triggerParam, List<String> addressList){
+        return new ReturnT<String>(addressList.get(0));
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteLFU.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteLFU.java
new file mode 100644
index 0000000..1beac73
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteLFU.java
@@ -0,0 +1,79 @@
+package cn.gistack.job.admin.core.route.strategy;
+
+import cn.gistack.job.admin.core.route.ExecutorRouter;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.biz.model.TriggerParam;
+
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+/**
+ * 单个JOB对应的每个执行器,使用频率最低的优先被选举
+ *      a(*)、LFU(Least Frequently Used):最不经常使用,频率/次数
+ *      b、LRU(Least Recently Used):最近最久未使用,时间
+ *
+ * Created by xuxueli on 17/3/10.
+ */
+public class ExecutorRouteLFU extends ExecutorRouter {
+
+    private static ConcurrentMap<Integer, HashMap<String, Integer>> jobLfuMap = new ConcurrentHashMap<Integer, HashMap<String, Integer>>();
+    private static long CACHE_VALID_TIME = 0;
+
+    public String route(int jobId, List<String> addressList) {
+
+        // cache clear
+        if (System.currentTimeMillis() > CACHE_VALID_TIME) {
+            jobLfuMap.clear();
+            CACHE_VALID_TIME = System.currentTimeMillis() + 1000*60*60*24;
+        }
+
+        // lfu item init
+        HashMap<String, Integer> lfuItemMap = jobLfuMap.get(jobId);     // Key排序可以用TreeMap+构造入参Compare;Value排序暂时只能通过ArrayList;
+        if (lfuItemMap == null) {
+            lfuItemMap = new HashMap<String, Integer>();
+            jobLfuMap.putIfAbsent(jobId, lfuItemMap);   // 避免重复覆盖
+        }
+
+        // put new
+        for (String address: addressList) {
+            if (!lfuItemMap.containsKey(address) || lfuItemMap.get(address) >1000000 ) {
+                lfuItemMap.put(address, new Random().nextInt(addressList.size()));  // 初始化时主动Random一次,缓解首次压力
+            }
+        }
+        // remove old
+        List<String> delKeys = new ArrayList<>();
+        for (String existKey: lfuItemMap.keySet()) {
+            if (!addressList.contains(existKey)) {
+                delKeys.add(existKey);
+            }
+        }
+        if (delKeys.size() > 0) {
+            for (String delKey: delKeys) {
+                lfuItemMap.remove(delKey);
+            }
+        }
+
+        // load least userd count address
+        List<Map.Entry<String, Integer>> lfuItemList = new ArrayList<Map.Entry<String, Integer>>(lfuItemMap.entrySet());
+        Collections.sort(lfuItemList, new Comparator<Map.Entry<String, Integer>>() {
+            @Override
+            public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
+                return o1.getValue().compareTo(o2.getValue());
+            }
+        });
+
+        Map.Entry<String, Integer> addressItem = lfuItemList.get(0);
+        String minAddress = addressItem.getKey();
+        addressItem.setValue(addressItem.getValue() + 1);
+
+        return addressItem.getKey();
+    }
+
+    @Override
+    public ReturnT<String> route(TriggerParam triggerParam, List<String> addressList) {
+        String address = route(triggerParam.getJobId(), addressList);
+        return new ReturnT<String>(address);
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteLRU.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteLRU.java
new file mode 100644
index 0000000..f794801
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteLRU.java
@@ -0,0 +1,76 @@
+package cn.gistack.job.admin.core.route.strategy;
+
+import cn.gistack.job.admin.core.route.ExecutorRouter;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.biz.model.TriggerParam;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+/**
+ * 单个JOB对应的每个执行器,最久为使用的优先被选举
+ *      a、LFU(Least Frequently Used):最不经常使用,频率/次数
+ *      b(*)、LRU(Least Recently Used):最近最久未使用,时间
+ *
+ * Created by xuxueli on 17/3/10.
+ */
+public class ExecutorRouteLRU extends ExecutorRouter {
+
+    private static ConcurrentMap<Integer, LinkedHashMap<String, String>> jobLRUMap = new ConcurrentHashMap<Integer, LinkedHashMap<String, String>>();
+    private static long CACHE_VALID_TIME = 0;
+
+    public String route(int jobId, List<String> addressList) {
+
+        // cache clear
+        if (System.currentTimeMillis() > CACHE_VALID_TIME) {
+            jobLRUMap.clear();
+            CACHE_VALID_TIME = System.currentTimeMillis() + 1000*60*60*24;
+        }
+
+        // init lru
+        LinkedHashMap<String, String> lruItem = jobLRUMap.get(jobId);
+        if (lruItem == null) {
+            /**
+             * LinkedHashMap
+             *      a、accessOrder:true=访问顺序排序(get/put时排序);false=插入顺序排期;
+             *      b、removeEldestEntry:新增元素时将会调用,返回true时会删除最老元素;可封装LinkedHashMap并重写该方法,比如定义最大容量,超出是返回true即可实现固定长度的LRU算法;
+             */
+            lruItem = new LinkedHashMap<String, String>(16, 0.75f, true);
+            jobLRUMap.putIfAbsent(jobId, lruItem);
+        }
+
+        // put new
+        for (String address: addressList) {
+            if (!lruItem.containsKey(address)) {
+                lruItem.put(address, address);
+            }
+        }
+        // remove old
+        List<String> delKeys = new ArrayList<>();
+        for (String existKey: lruItem.keySet()) {
+            if (!addressList.contains(existKey)) {
+                delKeys.add(existKey);
+            }
+        }
+        if (delKeys.size() > 0) {
+            for (String delKey: delKeys) {
+                lruItem.remove(delKey);
+            }
+        }
+
+        // load
+        String eldestKey = lruItem.entrySet().iterator().next().getKey();
+        String eldestValue = lruItem.get(eldestKey);
+        return eldestValue;
+    }
+
+    @Override
+    public ReturnT<String> route(TriggerParam triggerParam, List<String> addressList) {
+        String address = route(triggerParam.getJobId(), addressList);
+        return new ReturnT<String>(address);
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteLast.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteLast.java
new file mode 100644
index 0000000..5304712
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteLast.java
@@ -0,0 +1,19 @@
+package cn.gistack.job.admin.core.route.strategy;
+
+import cn.gistack.job.admin.core.route.ExecutorRouter;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.biz.model.TriggerParam;
+
+import java.util.List;
+
+/**
+ * Created by xuxueli on 17/3/10.
+ */
+public class ExecutorRouteLast extends ExecutorRouter {
+
+    @Override
+    public ReturnT<String> route(TriggerParam triggerParam, List<String> addressList) {
+        return new ReturnT<String>(addressList.get(addressList.size()-1));
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteRandom.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteRandom.java
new file mode 100644
index 0000000..ddc79e2
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteRandom.java
@@ -0,0 +1,23 @@
+package cn.gistack.job.admin.core.route.strategy;
+
+import cn.gistack.job.admin.core.route.ExecutorRouter;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.biz.model.TriggerParam;
+
+import java.util.List;
+import java.util.Random;
+
+/**
+ * Created by xuxueli on 17/3/10.
+ */
+public class ExecutorRouteRandom extends ExecutorRouter {
+
+    private static Random localRandom = new Random();
+
+    @Override
+    public ReturnT<String> route(TriggerParam triggerParam, List<String> addressList) {
+        String address = addressList.get(localRandom.nextInt(addressList.size()));
+        return new ReturnT<String>(address);
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteRound.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteRound.java
new file mode 100644
index 0000000..aa82cda
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/route/strategy/ExecutorRouteRound.java
@@ -0,0 +1,39 @@
+package cn.gistack.job.admin.core.route.strategy;
+
+import cn.gistack.job.admin.core.route.ExecutorRouter;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.biz.model.TriggerParam;
+
+import java.util.List;
+import java.util.Random;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+/**
+ * Created by xuxueli on 17/3/10.
+ */
+public class ExecutorRouteRound extends ExecutorRouter {
+
+    private static ConcurrentMap<Integer, Integer> routeCountEachJob = new ConcurrentHashMap<Integer, Integer>();
+    private static long CACHE_VALID_TIME = 0;
+    private static int count(int jobId) {
+        // cache clear
+        if (System.currentTimeMillis() > CACHE_VALID_TIME) {
+            routeCountEachJob.clear();
+            CACHE_VALID_TIME = System.currentTimeMillis() + 1000*60*60*24;
+        }
+
+        // count++
+        Integer count = routeCountEachJob.get(jobId);
+        count = (count==null || count>1000000)?(new Random().nextInt(100)):++count;  // 初始化时主动Random一次,缓解首次压力
+        routeCountEachJob.put(jobId, count);
+        return count;
+    }
+
+    @Override
+    public ReturnT<String> route(TriggerParam triggerParam, List<String> addressList) {
+        String address = addressList.get(count(triggerParam.getJobId())%addressList.size());
+        return new ReturnT<String>(address);
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/scheduler/XxlJobScheduler.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/scheduler/XxlJobScheduler.java
new file mode 100644
index 0000000..65cfe5f
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/scheduler/XxlJobScheduler.java
@@ -0,0 +1,113 @@
+package cn.gistack.job.admin.core.scheduler;
+
+import cn.gistack.job.admin.core.thread.*;
+import cn.gistack.job.admin.core.conf.XxlJobAdminConfig;
+import com.xxl.job.admin.core.thread.*;
+import cn.gistack.job.admin.core.util.I18nUtil;
+import com.xxl.job.core.biz.ExecutorBiz;
+import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
+import com.xxl.rpc.remoting.invoker.call.CallType;
+import com.xxl.rpc.remoting.invoker.reference.XxlRpcReferenceBean;
+import com.xxl.rpc.remoting.invoker.route.LoadBalance;
+import com.xxl.rpc.remoting.net.impl.netty_http.client.NettyHttpClient;
+import com.xxl.rpc.serialize.impl.HessianSerializer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+/**
+ * @author xuxueli 2018-10-28 00:18:17
+ */
+
+public class XxlJobScheduler  {
+    private static final Logger logger = LoggerFactory.getLogger(XxlJobScheduler.class);
+
+
+    public void init() throws Exception {
+        // init i18n
+        initI18n();
+
+        // admin registry monitor run
+        JobRegistryMonitorHelper.getInstance().start();
+
+        // admin monitor run
+        JobFailMonitorHelper.getInstance().start();
+
+        // admin trigger pool start
+        JobTriggerPoolHelper.toStart();
+
+        // admin log report start
+        JobLogReportHelper.getInstance().start();
+
+        // start-schedule
+        JobScheduleHelper.getInstance().start();
+
+        logger.info(">>>>>>>>> init xxl-job admin success.");
+    }
+
+
+    public void destroy() throws Exception {
+
+        // stop-schedule
+        JobScheduleHelper.getInstance().toStop();
+
+        // admin log report stop
+        JobLogReportHelper.getInstance().toStop();
+
+        // admin trigger pool stop
+        JobTriggerPoolHelper.toStop();
+
+        // admin monitor stop
+        JobFailMonitorHelper.getInstance().toStop();
+
+        // admin registry stop
+        JobRegistryMonitorHelper.getInstance().toStop();
+
+    }
+
+    // ---------------------- I18n ----------------------
+
+    private void initI18n(){
+        for (ExecutorBlockStrategyEnum item:ExecutorBlockStrategyEnum.values()) {
+            item.setTitle(I18nUtil.getString("jobconf_block_".concat(item.name())));
+        }
+    }
+
+    // ---------------------- executor-client ----------------------
+    private static ConcurrentMap<String, ExecutorBiz> executorBizRepository = new ConcurrentHashMap<String, ExecutorBiz>();
+    public static ExecutorBiz getExecutorBiz(String address) throws Exception {
+        // valid
+        if (address==null || address.trim().length()==0) {
+            return null;
+        }
+
+        // load-cache
+        address = address.trim();
+        ExecutorBiz executorBiz = executorBizRepository.get(address);
+        if (executorBiz != null) {
+            return executorBiz;
+        }
+
+        // set-cache
+        XxlRpcReferenceBean referenceBean = new XxlRpcReferenceBean();
+        referenceBean.setClient(NettyHttpClient.class);
+        referenceBean.setSerializer(HessianSerializer.class);
+        referenceBean.setCallType(CallType.SYNC);
+        referenceBean.setLoadBalance(LoadBalance.ROUND);
+        referenceBean.setIface(ExecutorBiz.class);
+        referenceBean.setVersion(null);
+        referenceBean.setTimeout(3000);
+        referenceBean.setAddress(address);
+        referenceBean.setAccessToken(XxlJobAdminConfig.getAdminConfig().getAccessToken());
+        referenceBean.setInvokeCallback(null);
+        referenceBean.setInvokerFactory(null);
+
+        executorBiz = (ExecutorBiz) referenceBean.getObject();
+
+        executorBizRepository.put(address, executorBiz);
+        return executorBiz;
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobFailMonitorHelper.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobFailMonitorHelper.java
new file mode 100644
index 0000000..eb9698e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobFailMonitorHelper.java
@@ -0,0 +1,209 @@
+package cn.gistack.job.admin.core.thread;
+
+import cn.gistack.job.admin.core.trigger.TriggerTypeEnum;
+import cn.gistack.job.admin.core.conf.XxlJobAdminConfig;
+import cn.gistack.job.admin.core.model.XxlJobGroup;
+import cn.gistack.job.admin.core.model.XxlJobInfo;
+import cn.gistack.job.admin.core.model.XxlJobLog;
+import cn.gistack.job.admin.core.util.I18nUtil;
+import com.xxl.job.core.biz.model.ReturnT;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.mail.javamail.MimeMessageHelper;
+
+import javax.mail.internet.MimeMessage;
+import java.text.MessageFormat;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * job monitor instance
+ *
+ * @author xuxueli 2015-9-1 18:05:56
+ */
+public class JobFailMonitorHelper {
+	private static Logger logger = LoggerFactory.getLogger(JobFailMonitorHelper.class);
+
+	private static JobFailMonitorHelper instance = new JobFailMonitorHelper();
+	public static JobFailMonitorHelper getInstance(){
+		return instance;
+	}
+
+	// ---------------------- monitor ----------------------
+
+	private Thread monitorThread;
+	private volatile boolean toStop = false;
+	public void start(){
+		monitorThread = new Thread(new Runnable() {
+
+			@Override
+			public void run() {
+
+				// monitor
+				while (!toStop) {
+					try {
+
+						List<Long> failLogIds = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findFailJobLogIds(1000);
+						if (failLogIds!=null && !failLogIds.isEmpty()) {
+							for (long failLogId: failLogIds) {
+
+								// lock log
+								int lockRet = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateAlarmStatus(failLogId, 0, -1);
+								if (lockRet < 1) {
+									continue;
+								}
+								XxlJobLog log = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().load(failLogId);
+								XxlJobInfo info = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().loadById(log.getJobId());
+
+								// 1、fail retry monitor
+								if (log.getExecutorFailRetryCount() > 0) {
+									JobTriggerPoolHelper.trigger(log.getJobId(), TriggerTypeEnum.RETRY, (log.getExecutorFailRetryCount()-1), log.getExecutorShardingParam(), log.getExecutorParam());
+									String retryMsg = "<br><br><span style=\"color:#F39C12;\" > >>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_type_retry") +"<<<<<<<<<<< </span><br>";
+									log.setTriggerMsg(log.getTriggerMsg() + retryMsg);
+									XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateTriggerInfo(log);
+								}
+
+								// 2、fail alarm monitor
+								int newAlarmStatus = 0;		// 告警状态:0-默认、-1=锁定状态、1-无需告警、2-告警成功、3-告警失败
+								if (info!=null && info.getAlarmEmail()!=null && info.getAlarmEmail().trim().length()>0) {
+									boolean alarmResult = true;
+									try {
+										alarmResult = failAlarm(info, log);
+									} catch (Exception e) {
+										alarmResult = false;
+										logger.error(e.getMessage(), e);
+									}
+									newAlarmStatus = alarmResult?2:3;
+								} else {
+									newAlarmStatus = 1;
+								}
+
+								XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateAlarmStatus(failLogId, -1, newAlarmStatus);
+							}
+						}
+
+					} catch (Exception e) {
+						if (!toStop) {
+							logger.error(">>>>>>>>>>> xxl-job, job fail monitor thread error:{}", e);
+						}
+					}
+
+                    try {
+                        TimeUnit.SECONDS.sleep(10);
+                    } catch (Exception e) {
+                        if (!toStop) {
+                            logger.error(e.getMessage(), e);
+                        }
+                    }
+
+                }
+
+				logger.info(">>>>>>>>>>> xxl-job, job fail monitor thread stop");
+
+			}
+		});
+		monitorThread.setDaemon(true);
+		monitorThread.setName("xxl-job, admin JobFailMonitorHelper");
+		monitorThread.start();
+	}
+
+	public void toStop(){
+		toStop = true;
+		// interrupt and wait
+		monitorThread.interrupt();
+		try {
+			monitorThread.join();
+		} catch (InterruptedException e) {
+			logger.error(e.getMessage(), e);
+		}
+	}
+
+
+	// ---------------------- alarm ----------------------
+
+	// email alarm template
+	private static final String mailBodyTemplate = "<h5>" + I18nUtil.getString("jobconf_monitor_detail") + ":</span>" +
+			"<table border=\"1\" cellpadding=\"3\" style=\"border-collapse:collapse; width:80%;\" >\n" +
+			"   <thead style=\"font-weight: bold;color: #ffffff;background-color: #ff8c00;\" >" +
+			"      <tr>\n" +
+			"         <td width=\"20%\" >"+ I18nUtil.getString("jobinfo_field_jobgroup") +"</td>\n" +
+			"         <td width=\"10%\" >"+ I18nUtil.getString("jobinfo_field_id") +"</td>\n" +
+			"         <td width=\"20%\" >"+ I18nUtil.getString("jobinfo_field_jobdesc") +"</td>\n" +
+			"         <td width=\"10%\" >"+ I18nUtil.getString("jobconf_monitor_alarm_title") +"</td>\n" +
+			"         <td width=\"40%\" >"+ I18nUtil.getString("jobconf_monitor_alarm_content") +"</td>\n" +
+			"      </tr>\n" +
+			"   </thead>\n" +
+			"   <tbody>\n" +
+			"      <tr>\n" +
+			"         <td>{0}</td>\n" +
+			"         <td>{1}</td>\n" +
+			"         <td>{2}</td>\n" +
+			"         <td>"+ I18nUtil.getString("jobconf_monitor_alarm_type") +"</td>\n" +
+			"         <td>{3}</td>\n" +
+			"      </tr>\n" +
+			"   </tbody>\n" +
+			"</table>";
+
+	/**
+	 * fail alarm
+	 *
+	 * @param jobLog
+	 */
+	private boolean failAlarm(XxlJobInfo info, XxlJobLog jobLog){
+		boolean alarmResult = true;
+
+		// send monitor email
+		if (info!=null && info.getAlarmEmail()!=null && info.getAlarmEmail().trim().length()>0) {
+
+			// alarmContent
+			String alarmContent = "Alarm Job LogId=" + jobLog.getId();
+			if (jobLog.getTriggerCode() != ReturnT.SUCCESS_CODE) {
+				alarmContent += "<br>TriggerMsg=<br>" + jobLog.getTriggerMsg();
+			}
+			if (jobLog.getHandleCode()>0 && jobLog.getHandleCode() != ReturnT.SUCCESS_CODE) {
+				alarmContent += "<br>HandleCode=" + jobLog.getHandleMsg();
+			}
+
+			// email info
+			XxlJobGroup group = XxlJobAdminConfig.getAdminConfig().getXxlJobGroupDao().load(Integer.valueOf(info.getJobGroup()));
+			String personal = I18nUtil.getString("admin_name_full");
+			String title = I18nUtil.getString("jobconf_monitor");
+			String content = MessageFormat.format(mailBodyTemplate,
+					group!=null?group.getTitle():"null",
+					info.getId(),
+					info.getJobDesc(),
+					alarmContent);
+
+			Set<String> emailSet = new HashSet<String>(Arrays.asList(info.getAlarmEmail().split(",")));
+			for (String email: emailSet) {
+
+				// make mail
+				try {
+					MimeMessage mimeMessage = XxlJobAdminConfig.getAdminConfig().getMailSender().createMimeMessage();
+
+					MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
+					helper.setFrom(XxlJobAdminConfig.getAdminConfig().getEmailUserName(), personal);
+					helper.setTo(email);
+					helper.setSubject(title);
+					helper.setText(content, true);
+
+					XxlJobAdminConfig.getAdminConfig().getMailSender().send(mimeMessage);
+				} catch (Exception e) {
+					logger.error(">>>>>>>>>>> xxl-job, job fail alarm email send error, JobLogId:{}", jobLog.getId(), e);
+
+					alarmResult = false;
+				}
+
+			}
+		}
+
+		// do something, custom alarm strategy, such as sms
+
+
+		return alarmResult;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobLogReportHelper.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobLogReportHelper.java
new file mode 100644
index 0000000..abeefeb
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobLogReportHelper.java
@@ -0,0 +1,152 @@
+package cn.gistack.job.admin.core.thread;
+
+import cn.gistack.job.admin.core.conf.XxlJobAdminConfig;
+import cn.gistack.job.admin.core.model.XxlJobLogReport;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * job log report helper
+ *
+ * @author xuxueli 2019-11-22
+ */
+public class JobLogReportHelper {
+    private static Logger logger = LoggerFactory.getLogger(JobLogReportHelper.class);
+
+    private static JobLogReportHelper instance = new JobLogReportHelper();
+    public static JobLogReportHelper getInstance(){
+        return instance;
+    }
+
+
+    private Thread logrThread;
+    private volatile boolean toStop = false;
+    public void start(){
+        logrThread = new Thread(new Runnable() {
+
+            @Override
+            public void run() {
+
+                // last clean log time
+                long lastCleanLogTime = 0;
+
+
+                while (!toStop) {
+
+                    // 1、log-report refresh: refresh log report in 3 days
+                    try {
+
+                        for (int i = 0; i < 3; i++) {
+
+                            // today
+                            Calendar itemDay = Calendar.getInstance();
+                            itemDay.add(Calendar.DAY_OF_MONTH, -i);
+                            itemDay.set(Calendar.HOUR_OF_DAY, 0);
+                            itemDay.set(Calendar.MINUTE, 0);
+                            itemDay.set(Calendar.SECOND, 0);
+                            itemDay.set(Calendar.MILLISECOND, 0);
+
+                            Date todayFrom = itemDay.getTime();
+
+                            itemDay.set(Calendar.HOUR_OF_DAY, 23);
+                            itemDay.set(Calendar.MINUTE, 59);
+                            itemDay.set(Calendar.SECOND, 59);
+                            itemDay.set(Calendar.MILLISECOND, 999);
+
+                            Date todayTo = itemDay.getTime();
+
+                            // refresh log-report every minute
+                            XxlJobLogReport xxlJobLogReport = new XxlJobLogReport();
+                            xxlJobLogReport.setTriggerDay(todayFrom);
+                            xxlJobLogReport.setRunningCount(0);
+                            xxlJobLogReport.setSucCount(0);
+                            xxlJobLogReport.setFailCount(0);
+
+                            Map<String, Object> triggerCountMap = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findLogReport(todayFrom, todayTo);
+                            if (triggerCountMap!=null && triggerCountMap.size()>0) {
+                                int triggerDayCount = triggerCountMap.containsKey("triggerDayCount")?Integer.valueOf(String.valueOf(triggerCountMap.get("triggerDayCount"))):0;
+                                int triggerDayCountRunning = triggerCountMap.containsKey("triggerDayCountRunning")?Integer.valueOf(String.valueOf(triggerCountMap.get("triggerDayCountRunning"))):0;
+                                int triggerDayCountSuc = triggerCountMap.containsKey("triggerDayCountSuc")?Integer.valueOf(String.valueOf(triggerCountMap.get("triggerDayCountSuc"))):0;
+                                int triggerDayCountFail = triggerDayCount - triggerDayCountRunning - triggerDayCountSuc;
+
+                                xxlJobLogReport.setRunningCount(triggerDayCountRunning);
+                                xxlJobLogReport.setSucCount(triggerDayCountSuc);
+                                xxlJobLogReport.setFailCount(triggerDayCountFail);
+                            }
+
+                            // do refresh
+                            int ret = XxlJobAdminConfig.getAdminConfig().getXxlJobLogReportDao().update(xxlJobLogReport);
+                            if (ret < 1) {
+                                XxlJobAdminConfig.getAdminConfig().getXxlJobLogReportDao().save(xxlJobLogReport);
+                            }
+                        }
+
+                    } catch (Exception e) {
+                        if (!toStop) {
+                            logger.error(">>>>>>>>>>> xxl-job, job log report thread error:{}", e);
+                        }
+                    }
+
+                    // 2、log-clean: switch open & once each day
+                    if (XxlJobAdminConfig.getAdminConfig().getLogretentiondays()>0
+                            && System.currentTimeMillis() - lastCleanLogTime > 24*60*60*1000) {
+
+                        // expire-time
+                        Calendar expiredDay = Calendar.getInstance();
+                        expiredDay.add(Calendar.DAY_OF_MONTH, -1 * XxlJobAdminConfig.getAdminConfig().getLogretentiondays());
+                        expiredDay.set(Calendar.HOUR_OF_DAY, 0);
+                        expiredDay.set(Calendar.MINUTE, 0);
+                        expiredDay.set(Calendar.SECOND, 0);
+                        expiredDay.set(Calendar.MILLISECOND, 0);
+                        Date clearBeforeTime = expiredDay.getTime();
+
+                        // clean expired log
+                        List<Long> logIds = null;
+                        do {
+                            logIds = XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().findClearLogIds(0, 0, clearBeforeTime, 0, 1000);
+                            if (logIds!=null && logIds.size()>0) {
+                                XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().clearLog(logIds);
+                            }
+                        } while (logIds!=null && logIds.size()>0);
+
+                        // update clean time
+                        lastCleanLogTime = System.currentTimeMillis();
+                    }
+
+                    try {
+                        TimeUnit.MINUTES.sleep(1);
+                    } catch (Exception e) {
+                        if (!toStop) {
+                            logger.error(e.getMessage(), e);
+                        }
+                    }
+
+                }
+
+                logger.info(">>>>>>>>>>> xxl-job, job log report thread stop");
+
+            }
+        });
+        logrThread.setDaemon(true);
+        logrThread.setName("xxl-job, admin JobLogReportHelper");
+        logrThread.start();
+    }
+
+    public void toStop(){
+        toStop = true;
+        // interrupt and wait
+        logrThread.interrupt();
+        try {
+            logrThread.join();
+        } catch (InterruptedException e) {
+            logger.error(e.getMessage(), e);
+        }
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobRegistryMonitorHelper.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobRegistryMonitorHelper.java
new file mode 100644
index 0000000..61735bd
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobRegistryMonitorHelper.java
@@ -0,0 +1,111 @@
+package cn.gistack.job.admin.core.thread;
+
+import cn.gistack.job.admin.core.conf.XxlJobAdminConfig;
+import cn.gistack.job.admin.core.model.XxlJobGroup;
+import cn.gistack.job.admin.core.model.XxlJobRegistry;
+import com.xxl.job.core.enums.RegistryConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * job registry instance
+ * @author xuxueli 2016-10-02 19:10:24
+ */
+public class JobRegistryMonitorHelper {
+	private static Logger logger = LoggerFactory.getLogger(JobRegistryMonitorHelper.class);
+
+	private static JobRegistryMonitorHelper instance = new JobRegistryMonitorHelper();
+	public static JobRegistryMonitorHelper getInstance(){
+		return instance;
+	}
+
+	private Thread registryThread;
+	private volatile boolean toStop = false;
+	public void start(){
+		registryThread = new Thread(new Runnable() {
+			@Override
+			public void run() {
+				while (!toStop) {
+					try {
+						// auto registry group
+						List<XxlJobGroup> groupList = XxlJobAdminConfig.getAdminConfig().getXxlJobGroupDao().findByAddressType(0);
+						if (groupList!=null && !groupList.isEmpty()) {
+
+							// remove dead address (admin/executor)
+							List<Integer> ids = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().findDead(RegistryConfig.DEAD_TIMEOUT, new Date());
+							if (ids!=null && ids.size()>0) {
+								XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().removeDead(ids);
+							}
+
+							// fresh online address (admin/executor)
+							HashMap<String, List<String>> appAddressMap = new HashMap<String, List<String>>();
+							List<XxlJobRegistry> list = XxlJobAdminConfig.getAdminConfig().getXxlJobRegistryDao().findAll(RegistryConfig.DEAD_TIMEOUT, new Date());
+							if (list != null) {
+								for (XxlJobRegistry item: list) {
+									if (RegistryConfig.RegistType.EXECUTOR.name().equals(item.getRegistryGroup())) {
+										String appName = item.getRegistryKey();
+										List<String> registryList = appAddressMap.get(appName);
+										if (registryList == null) {
+											registryList = new ArrayList<String>();
+										}
+
+										if (!registryList.contains(item.getRegistryValue())) {
+											registryList.add(item.getRegistryValue());
+										}
+										appAddressMap.put(appName, registryList);
+									}
+								}
+							}
+
+							// fresh group address
+							for (XxlJobGroup group: groupList) {
+								List<String> registryList = appAddressMap.get(group.getAppName());
+								String addressListStr = null;
+								if (registryList!=null && !registryList.isEmpty()) {
+									Collections.sort(registryList);
+									addressListStr = "";
+									for (String item:registryList) {
+										addressListStr += item + ",";
+									}
+									addressListStr = addressListStr.substring(0, addressListStr.length()-1);
+								}
+								group.setAddressList(addressListStr);
+								XxlJobAdminConfig.getAdminConfig().getXxlJobGroupDao().update(group);
+							}
+						}
+					} catch (Exception e) {
+						if (!toStop) {
+							logger.error(">>>>>>>>>>> xxl-job, job registry monitor thread error:{}", e);
+						}
+					}
+					try {
+						TimeUnit.SECONDS.sleep(RegistryConfig.BEAT_TIMEOUT);
+					} catch (InterruptedException e) {
+						if (!toStop) {
+							logger.error(">>>>>>>>>>> xxl-job, job registry monitor thread error:{}", e);
+						}
+					}
+				}
+				logger.info(">>>>>>>>>>> xxl-job, job registry monitor thread stop");
+			}
+		});
+		registryThread.setDaemon(true);
+		registryThread.setName("xxl-job, admin JobRegistryMonitorHelper");
+		registryThread.start();
+	}
+
+	public void toStop(){
+		toStop = true;
+		// interrupt and wait
+		registryThread.interrupt();
+		try {
+			registryThread.join();
+		} catch (InterruptedException e) {
+			logger.error(e.getMessage(), e);
+		}
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobScheduleHelper.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobScheduleHelper.java
new file mode 100644
index 0000000..0bb1f58
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobScheduleHelper.java
@@ -0,0 +1,354 @@
+package cn.gistack.job.admin.core.thread;
+
+import cn.gistack.job.admin.core.trigger.TriggerTypeEnum;
+import cn.gistack.job.admin.core.conf.XxlJobAdminConfig;
+import cn.gistack.job.admin.core.cron.CronExpression;
+import cn.gistack.job.admin.core.model.XxlJobInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.text.ParseException;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author xuxueli 2019-05-21
+ */
+public class JobScheduleHelper {
+    private static Logger logger = LoggerFactory.getLogger(JobScheduleHelper.class);
+
+    private static JobScheduleHelper instance = new JobScheduleHelper();
+    public static JobScheduleHelper getInstance(){
+        return instance;
+    }
+
+    public static final long PRE_READ_MS = 5000;    // pre read
+
+    private Thread scheduleThread;
+    private Thread ringThread;
+    private volatile boolean scheduleThreadToStop = false;
+    private volatile boolean ringThreadToStop = false;
+    private volatile static Map<Integer, List<Integer>> ringData = new ConcurrentHashMap<>();
+
+    public void start(){
+
+        // schedule thread
+        scheduleThread = new Thread(new Runnable() {
+            @Override
+            public void run() {
+
+                try {
+                    TimeUnit.MILLISECONDS.sleep(5000 - System.currentTimeMillis()%1000 );
+                } catch (InterruptedException e) {
+                    if (!scheduleThreadToStop) {
+                        logger.error(e.getMessage(), e);
+                    }
+                }
+                logger.info(">>>>>>>>> init xxl-job admin scheduler success.");
+
+                // pre-read count: treadpool-size * trigger-qps (each trigger cost 50ms, qps = 1000/50 = 20)
+                int preReadCount = (XxlJobAdminConfig.getAdminConfig().getTriggerPoolFastMax() + XxlJobAdminConfig.getAdminConfig().getTriggerPoolSlowMax()) * 20;
+
+                while (!scheduleThreadToStop) {
+
+                    // Scan Job
+                    long start = System.currentTimeMillis();
+
+                    Connection conn = null;
+                    Boolean connAutoCommit = null;
+                    PreparedStatement preparedStatement = null;
+
+                    boolean preReadSuc = true;
+                    try {
+
+                        conn = XxlJobAdminConfig.getAdminConfig().getDataSource().getConnection();
+                        connAutoCommit = conn.getAutoCommit();
+                        conn.setAutoCommit(false);
+
+                        preparedStatement = conn.prepareStatement(  "select * from xxl_job_lock where lock_name = 'schedule_lock' for update" );
+                        preparedStatement.execute();
+
+                        // tx start
+
+                        // 1、pre read
+                        long nowTime = System.currentTimeMillis();
+                        List<XxlJobInfo> scheduleList = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().scheduleJobQuery(nowTime + PRE_READ_MS, preReadCount);
+                        if (scheduleList!=null && scheduleList.size()>0) {
+                            // 2、push time-ring
+                            for (XxlJobInfo jobInfo: scheduleList) {
+
+                                // time-ring jump
+                                if (nowTime > jobInfo.getTriggerNextTime() + PRE_READ_MS) {
+                                    // 2.1、trigger-expire > 5s:pass && make next-trigger-time
+                                    logger.warn(">>>>>>>>>>> xxl-job, schedule misfire, jobId = " + jobInfo.getId());
+
+                                    // fresh next
+                                    refreshNextValidTime(jobInfo, new Date());
+
+                                } else if (nowTime > jobInfo.getTriggerNextTime()) {
+                                    // 2.2、trigger-expire < 5s:direct-trigger && make next-trigger-time
+
+                                    // 1、trigger
+                                    JobTriggerPoolHelper.trigger(jobInfo.getId(), TriggerTypeEnum.CRON, -1, null, null);
+                                    logger.debug(">>>>>>>>>>> xxl-job, schedule push trigger : jobId = " + jobInfo.getId() );
+
+                                    // 2、fresh next
+                                    refreshNextValidTime(jobInfo, new Date());
+
+                                    // next-trigger-time in 5s, pre-read again
+                                    if (jobInfo.getTriggerStatus()==1 && nowTime + PRE_READ_MS > jobInfo.getTriggerNextTime()) {
+
+                                        // 1、make ring second
+                                        int ringSecond = (int)((jobInfo.getTriggerNextTime()/1000)%60);
+
+                                        // 2、push time ring
+                                        pushTimeRing(ringSecond, jobInfo.getId());
+
+                                        // 3、fresh next
+                                        refreshNextValidTime(jobInfo, new Date(jobInfo.getTriggerNextTime()));
+
+                                    }
+
+                                } else {
+                                    // 2.3、trigger-pre-read:time-ring trigger && make next-trigger-time
+
+                                    // 1、make ring second
+                                    int ringSecond = (int)((jobInfo.getTriggerNextTime()/1000)%60);
+
+                                    // 2、push time ring
+                                    pushTimeRing(ringSecond, jobInfo.getId());
+
+                                    // 3、fresh next
+                                    refreshNextValidTime(jobInfo, new Date(jobInfo.getTriggerNextTime()));
+
+                                }
+
+                            }
+
+                            // 3、update trigger info
+                            for (XxlJobInfo jobInfo: scheduleList) {
+                                XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().scheduleUpdate(jobInfo);
+                            }
+
+                        } else {
+                            preReadSuc = false;
+                        }
+
+                        // tx stop
+
+
+                    } catch (Exception e) {
+                        if (!scheduleThreadToStop) {
+                            logger.error(">>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread error:{}", e);
+                        }
+                    } finally {
+
+                        // commit
+                        if (conn != null) {
+                            try {
+                                conn.commit();
+                            } catch (SQLException e) {
+                                if (!scheduleThreadToStop) {
+                                    logger.error(e.getMessage(), e);
+                                }
+                            }
+                            try {
+                                conn.setAutoCommit(connAutoCommit);
+                            } catch (SQLException e) {
+                                if (!scheduleThreadToStop) {
+                                    logger.error(e.getMessage(), e);
+                                }
+                            }
+                            try {
+                                conn.close();
+                            } catch (SQLException e) {
+                                if (!scheduleThreadToStop) {
+                                    logger.error(e.getMessage(), e);
+                                }
+                            }
+                        }
+
+                        // close PreparedStatement
+                        if (null != preparedStatement) {
+                            try {
+                                preparedStatement.close();
+                            } catch (SQLException e) {
+                                if (!scheduleThreadToStop) {
+                                    logger.error(e.getMessage(), e);
+                                }
+                            }
+                        }
+                    }
+                    long cost = System.currentTimeMillis()-start;
+
+
+                    // Wait seconds, align second
+                    if (cost < 1000) {  // scan-overtime, not wait
+                        try {
+                            // pre-read period: success > scan each second; fail > skip this period;
+                            TimeUnit.MILLISECONDS.sleep((preReadSuc?1000:PRE_READ_MS) - System.currentTimeMillis()%1000);
+                        } catch (InterruptedException e) {
+                            if (!scheduleThreadToStop) {
+                                logger.error(e.getMessage(), e);
+                            }
+                        }
+                    }
+
+                }
+
+                logger.info(">>>>>>>>>>> xxl-job, JobScheduleHelper#scheduleThread stop");
+            }
+        });
+        scheduleThread.setDaemon(true);
+        scheduleThread.setName("xxl-job, admin JobScheduleHelper#scheduleThread");
+        scheduleThread.start();
+
+
+        // ring thread
+        ringThread = new Thread(new Runnable() {
+            @Override
+            public void run() {
+
+                // align second
+                try {
+                    TimeUnit.MILLISECONDS.sleep(1000 - System.currentTimeMillis()%1000 );
+                } catch (InterruptedException e) {
+                    if (!ringThreadToStop) {
+                        logger.error(e.getMessage(), e);
+                    }
+                }
+
+                while (!ringThreadToStop) {
+
+                    try {
+                        // second data
+                        List<Integer> ringItemData = new ArrayList<>();
+                        int nowSecond = Calendar.getInstance().get(Calendar.SECOND);   // 避免处理耗时太长,跨过刻度,向前校验一个刻度;
+                        for (int i = 0; i < 2; i++) {
+                            List<Integer> tmpData = ringData.remove( (nowSecond+60-i)%60 );
+                            if (tmpData != null) {
+                                ringItemData.addAll(tmpData);
+                            }
+                        }
+
+                        // ring trigger
+                        logger.debug(">>>>>>>>>>> xxl-job, time-ring beat : " + nowSecond + " = " + Arrays.asList(ringItemData) );
+                        if (ringItemData.size() > 0) {
+                            // do trigger
+                            for (int jobId: ringItemData) {
+                                // do trigger
+                                JobTriggerPoolHelper.trigger(jobId, TriggerTypeEnum.CRON, -1, null, null);
+                            }
+                            // clear
+                            ringItemData.clear();
+                        }
+                    } catch (Exception e) {
+                        if (!ringThreadToStop) {
+                            logger.error(">>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread error:{}", e);
+                        }
+                    }
+
+                    // next second, align second
+                    try {
+                        TimeUnit.MILLISECONDS.sleep(1000 - System.currentTimeMillis()%1000);
+                    } catch (InterruptedException e) {
+                        if (!ringThreadToStop) {
+                            logger.error(e.getMessage(), e);
+                        }
+                    }
+                }
+                logger.info(">>>>>>>>>>> xxl-job, JobScheduleHelper#ringThread stop");
+            }
+        });
+        ringThread.setDaemon(true);
+        ringThread.setName("xxl-job, admin JobScheduleHelper#ringThread");
+        ringThread.start();
+    }
+
+    private void refreshNextValidTime(XxlJobInfo jobInfo, Date fromTime) throws ParseException {
+        Date nextValidTime = new CronExpression(jobInfo.getJobCron()).getNextValidTimeAfter(fromTime);
+        if (nextValidTime != null) {
+            jobInfo.setTriggerLastTime(jobInfo.getTriggerNextTime());
+            jobInfo.setTriggerNextTime(nextValidTime.getTime());
+        } else {
+            jobInfo.setTriggerStatus(0);
+            jobInfo.setTriggerLastTime(0);
+            jobInfo.setTriggerNextTime(0);
+        }
+    }
+
+    private void pushTimeRing(int ringSecond, int jobId){
+        // push async ring
+        List<Integer> ringItemData = ringData.get(ringSecond);
+        if (ringItemData == null) {
+            ringItemData = new ArrayList<Integer>();
+            ringData.put(ringSecond, ringItemData);
+        }
+        ringItemData.add(jobId);
+
+        logger.debug(">>>>>>>>>>> xxl-job, schedule push time-ring : " + ringSecond + " = " + Arrays.asList(ringItemData) );
+    }
+
+    public void toStop(){
+
+        // 1、stop schedule
+        scheduleThreadToStop = true;
+        try {
+            TimeUnit.SECONDS.sleep(1);  // wait
+        } catch (InterruptedException e) {
+            logger.error(e.getMessage(), e);
+        }
+        if (scheduleThread.getState() != Thread.State.TERMINATED){
+            // interrupt and wait
+            scheduleThread.interrupt();
+            try {
+                scheduleThread.join();
+            } catch (InterruptedException e) {
+                logger.error(e.getMessage(), e);
+            }
+        }
+
+        // if has ring data
+        boolean hasRingData = false;
+        if (!ringData.isEmpty()) {
+            for (int second : ringData.keySet()) {
+                List<Integer> tmpData = ringData.get(second);
+                if (tmpData!=null && tmpData.size()>0) {
+                    hasRingData = true;
+                    break;
+                }
+            }
+        }
+        if (hasRingData) {
+            try {
+                TimeUnit.SECONDS.sleep(8);
+            } catch (InterruptedException e) {
+                logger.error(e.getMessage(), e);
+            }
+        }
+
+        // stop ring (wait job-in-memory stop)
+        ringThreadToStop = true;
+        try {
+            TimeUnit.SECONDS.sleep(1);
+        } catch (InterruptedException e) {
+            logger.error(e.getMessage(), e);
+        }
+        if (ringThread.getState() != Thread.State.TERMINATED){
+            // interrupt and wait
+            ringThread.interrupt();
+            try {
+                ringThread.join();
+            } catch (InterruptedException e) {
+                logger.error(e.getMessage(), e);
+            }
+        }
+
+        logger.info(">>>>>>>>>>> xxl-job, JobScheduleHelper stop");
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobTriggerPoolHelper.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobTriggerPoolHelper.java
new file mode 100644
index 0000000..fdeefd9
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/thread/JobTriggerPoolHelper.java
@@ -0,0 +1,145 @@
+package cn.gistack.job.admin.core.thread;
+
+import cn.gistack.job.admin.core.trigger.TriggerTypeEnum;
+import cn.gistack.job.admin.core.trigger.XxlJobTrigger;
+import cn.gistack.job.admin.core.conf.XxlJobAdminConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * job trigger thread pool helper
+ *
+ * @author xuxueli 2018-07-03 21:08:07
+ */
+public class JobTriggerPoolHelper {
+    private static Logger logger = LoggerFactory.getLogger(JobTriggerPoolHelper.class);
+
+
+    // ---------------------- trigger pool ----------------------
+
+    // fast/slow thread pool
+    private ThreadPoolExecutor fastTriggerPool = null;
+    private ThreadPoolExecutor slowTriggerPool = null;
+
+    public void start(){
+        fastTriggerPool = new ThreadPoolExecutor(
+                10,
+                XxlJobAdminConfig.getAdminConfig().getTriggerPoolFastMax(),
+                60L,
+                TimeUnit.SECONDS,
+                new LinkedBlockingQueue<Runnable>(1000),
+                new ThreadFactory() {
+                    @Override
+                    public Thread newThread(Runnable r) {
+                        return new Thread(r, "xxl-job, admin JobTriggerPoolHelper-fastTriggerPool-" + r.hashCode());
+                    }
+                });
+
+        slowTriggerPool = new ThreadPoolExecutor(
+                10,
+                XxlJobAdminConfig.getAdminConfig().getTriggerPoolSlowMax(),
+                60L,
+                TimeUnit.SECONDS,
+                new LinkedBlockingQueue<Runnable>(2000),
+                new ThreadFactory() {
+                    @Override
+                    public Thread newThread(Runnable r) {
+                        return new Thread(r, "xxl-job, admin JobTriggerPoolHelper-slowTriggerPool-" + r.hashCode());
+                    }
+                });
+    }
+
+
+    public void stop() {
+        //triggerPool.shutdown();
+        fastTriggerPool.shutdownNow();
+        slowTriggerPool.shutdownNow();
+        logger.info(">>>>>>>>> xxl-job trigger thread pool shutdown success.");
+    }
+
+
+    // job timeout count
+    private volatile long minTim = System.currentTimeMillis()/60000;     // ms > min
+    private volatile ConcurrentMap<Integer, AtomicInteger> jobTimeoutCountMap = new ConcurrentHashMap<>();
+
+
+    /**
+     * add trigger
+     */
+    public void addTrigger(final int jobId, final TriggerTypeEnum triggerType, final int failRetryCount, final String executorShardingParam, final String executorParam) {
+
+        // choose thread pool
+        ThreadPoolExecutor triggerPool_ = fastTriggerPool;
+        AtomicInteger jobTimeoutCount = jobTimeoutCountMap.get(jobId);
+        if (jobTimeoutCount!=null && jobTimeoutCount.get() > 10) {      // job-timeout 10 times in 1 min
+            triggerPool_ = slowTriggerPool;
+        }
+
+        // trigger
+        triggerPool_.execute(new Runnable() {
+            @Override
+            public void run() {
+
+                long start = System.currentTimeMillis();
+
+                try {
+                    // do trigger
+                    XxlJobTrigger.trigger(jobId, triggerType, failRetryCount, executorShardingParam, executorParam);
+                } catch (Exception e) {
+                    logger.error(e.getMessage(), e);
+                } finally {
+
+                    // check timeout-count-map
+                    long minTim_now = System.currentTimeMillis()/60000;
+                    if (minTim != minTim_now) {
+                        minTim = minTim_now;
+                        jobTimeoutCountMap.clear();
+                    }
+
+                    // incr timeout-count-map
+                    long cost = System.currentTimeMillis()-start;
+                    if (cost > 500) {       // ob-timeout threshold 500ms
+                        AtomicInteger timeoutCount = jobTimeoutCountMap.putIfAbsent(jobId, new AtomicInteger(1));
+                        if (timeoutCount != null) {
+                            timeoutCount.incrementAndGet();
+                        }
+                    }
+
+                }
+
+            }
+        });
+    }
+
+
+
+    // ---------------------- helper ----------------------
+
+    private static JobTriggerPoolHelper helper = new JobTriggerPoolHelper();
+
+    public static void toStart() {
+        helper.start();
+    }
+    public static void toStop() {
+        helper.stop();
+    }
+
+    /**
+     * @param jobId
+     * @param triggerType
+     * @param failRetryCount
+     * 			>=0: use this param
+     * 			<0: use param from job info config
+     * @param executorShardingParam
+     * @param executorParam
+     *          null: use job param
+     *          not null: cover job param
+     */
+    public static void trigger(int jobId, TriggerTypeEnum triggerType, int failRetryCount, String executorShardingParam, String executorParam) {
+        helper.addTrigger(jobId, triggerType, failRetryCount, executorShardingParam, executorParam);
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/trigger/TriggerTypeEnum.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/trigger/TriggerTypeEnum.java
new file mode 100644
index 0000000..20e1f6d
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/trigger/TriggerTypeEnum.java
@@ -0,0 +1,26 @@
+package cn.gistack.job.admin.core.trigger;
+
+import cn.gistack.job.admin.core.util.I18nUtil;
+
+/**
+ * trigger type enum
+ *
+ * @author xuxueli 2018-09-16 04:56:41
+ */
+public enum TriggerTypeEnum {
+
+    MANUAL(I18nUtil.getString("jobconf_trigger_type_manual")),
+    CRON(I18nUtil.getString("jobconf_trigger_type_cron")),
+    RETRY(I18nUtil.getString("jobconf_trigger_type_retry")),
+    PARENT(I18nUtil.getString("jobconf_trigger_type_parent")),
+    API(I18nUtil.getString("jobconf_trigger_type_api"));
+
+    private TriggerTypeEnum(String title){
+        this.title = title;
+    }
+    private String title;
+    public String getTitle() {
+        return title;
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/trigger/XxlJobTrigger.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/trigger/XxlJobTrigger.java
new file mode 100644
index 0000000..4c9b8c7
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/trigger/XxlJobTrigger.java
@@ -0,0 +1,211 @@
+package cn.gistack.job.admin.core.trigger;
+
+import cn.gistack.job.admin.core.route.ExecutorRouteStrategyEnum;
+import cn.gistack.job.admin.core.conf.XxlJobAdminConfig;
+import cn.gistack.job.admin.core.scheduler.XxlJobScheduler;
+import cn.gistack.job.admin.core.model.XxlJobGroup;
+import cn.gistack.job.admin.core.model.XxlJobInfo;
+import cn.gistack.job.admin.core.model.XxlJobLog;
+import cn.gistack.job.admin.core.util.I18nUtil;
+import com.xxl.job.core.biz.ExecutorBiz;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.biz.model.TriggerParam;
+import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
+import com.xxl.rpc.util.IpUtil;
+import com.xxl.rpc.util.ThrowableUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Date;
+
+/**
+ * xxl-job trigger
+ * Created by xuxueli on 17/7/13.
+ */
+public class XxlJobTrigger {
+    private static Logger logger = LoggerFactory.getLogger(XxlJobTrigger.class);
+
+    /**
+     * trigger job
+     *
+     * @param jobId
+     * @param triggerType
+     * @param failRetryCount
+     * 			>=0: use this param
+     * 			<0: use param from job info config
+     * @param executorShardingParam
+     * @param executorParam
+     *          null: use job param
+     *          not null: cover job param
+     */
+    public static void trigger(int jobId, TriggerTypeEnum triggerType, int failRetryCount, String executorShardingParam, String executorParam) {
+        // load data
+        XxlJobInfo jobInfo = XxlJobAdminConfig.getAdminConfig().getXxlJobInfoDao().loadById(jobId);
+        if (jobInfo == null) {
+            logger.warn(">>>>>>>>>>>> trigger fail, jobId invalid,jobId={}", jobId);
+            return;
+        }
+        if (executorParam != null) {
+            jobInfo.setExecutorParam(executorParam);
+        }
+        int finalFailRetryCount = failRetryCount>=0?failRetryCount:jobInfo.getExecutorFailRetryCount();
+        XxlJobGroup group = XxlJobAdminConfig.getAdminConfig().getXxlJobGroupDao().load(jobInfo.getJobGroup());
+
+        // sharding param
+        int[] shardingParam = null;
+        if (executorShardingParam!=null){
+            String[] shardingArr = executorShardingParam.split("/");
+            if (shardingArr.length==2 && isNumeric(shardingArr[0]) && isNumeric(shardingArr[1])) {
+                shardingParam = new int[2];
+                shardingParam[0] = Integer.valueOf(shardingArr[0]);
+                shardingParam[1] = Integer.valueOf(shardingArr[1]);
+            }
+        }
+        if (ExecutorRouteStrategyEnum.SHARDING_BROADCAST==ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null)
+                && group.getRegistryList()!=null && !group.getRegistryList().isEmpty()
+                && shardingParam==null) {
+            for (int i = 0; i < group.getRegistryList().size(); i++) {
+                processTrigger(group, jobInfo, finalFailRetryCount, triggerType, i, group.getRegistryList().size());
+            }
+        } else {
+            if (shardingParam == null) {
+                shardingParam = new int[]{0, 1};
+            }
+            processTrigger(group, jobInfo, finalFailRetryCount, triggerType, shardingParam[0], shardingParam[1]);
+        }
+
+    }
+
+    private static boolean isNumeric(String str){
+        try {
+            int result = Integer.valueOf(str);
+            return true;
+        } catch (NumberFormatException e) {
+            return false;
+        }
+    }
+
+    /**
+     * @param group                     job group, registry list may be empty
+     * @param jobInfo
+     * @param finalFailRetryCount
+     * @param triggerType
+     * @param index                     sharding index
+     * @param total                     sharding index
+     */
+    private static void processTrigger(XxlJobGroup group, XxlJobInfo jobInfo, int finalFailRetryCount, TriggerTypeEnum triggerType, int index, int total){
+
+        // param
+        ExecutorBlockStrategyEnum blockStrategy = ExecutorBlockStrategyEnum.match(jobInfo.getExecutorBlockStrategy(), ExecutorBlockStrategyEnum.SERIAL_EXECUTION);  // block strategy
+        ExecutorRouteStrategyEnum executorRouteStrategyEnum = ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null);    // route strategy
+        String shardingParam = (ExecutorRouteStrategyEnum.SHARDING_BROADCAST==executorRouteStrategyEnum)?String.valueOf(index).concat("/").concat(String.valueOf(total)):null;
+
+        // 1、save log-id
+        XxlJobLog jobLog = new XxlJobLog();
+        jobLog.setJobGroup(jobInfo.getJobGroup());
+        jobLog.setJobId(jobInfo.getId());
+        jobLog.setTriggerTime(new Date());
+        XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().save(jobLog);
+        logger.debug(">>>>>>>>>>> xxl-job trigger start, jobId:{}", jobLog.getId());
+
+        // 2、init trigger-param
+        TriggerParam triggerParam = new TriggerParam();
+        triggerParam.setJobId(jobInfo.getId());
+        triggerParam.setExecutorHandler(jobInfo.getExecutorHandler());
+        triggerParam.setExecutorParams(jobInfo.getExecutorParam());
+        triggerParam.setExecutorBlockStrategy(jobInfo.getExecutorBlockStrategy());
+        triggerParam.setExecutorTimeout(jobInfo.getExecutorTimeout());
+        triggerParam.setLogId(jobLog.getId());
+        triggerParam.setLogDateTime(jobLog.getTriggerTime().getTime());
+        triggerParam.setGlueType(jobInfo.getGlueType());
+        triggerParam.setGlueSource(jobInfo.getGlueSource());
+        triggerParam.setGlueUpdatetime(jobInfo.getGlueUpdatetime().getTime());
+        triggerParam.setBroadcastIndex(index);
+        triggerParam.setBroadcastTotal(total);
+
+        // 3、init address
+        String address = null;
+        ReturnT<String> routeAddressResult = null;
+        if (group.getRegistryList()!=null && !group.getRegistryList().isEmpty()) {
+            if (ExecutorRouteStrategyEnum.SHARDING_BROADCAST == executorRouteStrategyEnum) {
+                if (index < group.getRegistryList().size()) {
+                    address = group.getRegistryList().get(index);
+                } else {
+                    address = group.getRegistryList().get(0);
+                }
+            } else {
+                routeAddressResult = executorRouteStrategyEnum.getRouter().route(triggerParam, group.getRegistryList());
+                if (routeAddressResult.getCode() == ReturnT.SUCCESS_CODE) {
+                    address = routeAddressResult.getContent();
+                }
+            }
+        } else {
+            routeAddressResult = new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("jobconf_trigger_address_empty"));
+        }
+
+        // 4、trigger remote executor
+        ReturnT<String> triggerResult = null;
+        if (address != null) {
+            triggerResult = runExecutor(triggerParam, address);
+        } else {
+            triggerResult = new ReturnT<String>(ReturnT.FAIL_CODE, null);
+        }
+
+        // 5、collection trigger info
+        StringBuffer triggerMsgSb = new StringBuffer();
+        triggerMsgSb.append(I18nUtil.getString("jobconf_trigger_type")).append(":").append(triggerType.getTitle());
+        triggerMsgSb.append("<br>").append(I18nUtil.getString("jobconf_trigger_admin_adress")).append(":").append(IpUtil.getIp());
+        triggerMsgSb.append("<br>").append(I18nUtil.getString("jobconf_trigger_exe_regtype")).append(":")
+                .append( (group.getAddressType() == 0)?I18nUtil.getString("jobgroup_field_addressType_0"):I18nUtil.getString("jobgroup_field_addressType_1") );
+        triggerMsgSb.append("<br>").append(I18nUtil.getString("jobconf_trigger_exe_regaddress")).append(":").append(group.getRegistryList());
+        triggerMsgSb.append("<br>").append(I18nUtil.getString("jobinfo_field_executorRouteStrategy")).append(":").append(executorRouteStrategyEnum.getTitle());
+        if (shardingParam != null) {
+            triggerMsgSb.append("("+shardingParam+")");
+        }
+        triggerMsgSb.append("<br>").append(I18nUtil.getString("jobinfo_field_executorBlockStrategy")).append(":").append(blockStrategy.getTitle());
+        triggerMsgSb.append("<br>").append(I18nUtil.getString("jobinfo_field_timeout")).append(":").append(jobInfo.getExecutorTimeout());
+        triggerMsgSb.append("<br>").append(I18nUtil.getString("jobinfo_field_executorFailRetryCount")).append(":").append(finalFailRetryCount);
+
+        triggerMsgSb.append("<br><br><span style=\"color:#00c0ef;\" > >>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_run") +"<<<<<<<<<<< </span><br>")
+                .append((routeAddressResult!=null&&routeAddressResult.getMsg()!=null)?routeAddressResult.getMsg()+"<br><br>":"").append(triggerResult.getMsg()!=null?triggerResult.getMsg():"");
+
+        // 6、save log trigger-info
+        jobLog.setExecutorAddress(address);
+        jobLog.setExecutorHandler(jobInfo.getExecutorHandler());
+        jobLog.setExecutorParam(jobInfo.getExecutorParam());
+        jobLog.setExecutorShardingParam(shardingParam);
+        jobLog.setExecutorFailRetryCount(finalFailRetryCount);
+        //jobLog.setTriggerTime();
+        jobLog.setTriggerCode(triggerResult.getCode());
+        jobLog.setTriggerMsg(triggerMsgSb.toString());
+        XxlJobAdminConfig.getAdminConfig().getXxlJobLogDao().updateTriggerInfo(jobLog);
+
+        logger.debug(">>>>>>>>>>> xxl-job trigger end, jobId:{}", jobLog.getId());
+    }
+
+    /**
+     * run executor
+     * @param triggerParam
+     * @param address
+     * @return
+     */
+    public static ReturnT<String> runExecutor(TriggerParam triggerParam, String address){
+        ReturnT<String> runResult = null;
+        try {
+            ExecutorBiz executorBiz = XxlJobScheduler.getExecutorBiz(address);
+            runResult = executorBiz.run(triggerParam);
+        } catch (Exception e) {
+            logger.error(">>>>>>>>>>> xxl-job trigger error, please check if the executor[{}] is running.", address, e);
+            runResult = new ReturnT<String>(ReturnT.FAIL_CODE, ThrowableUtil.toString(e));
+        }
+
+        StringBuffer runResultSB = new StringBuffer(I18nUtil.getString("jobconf_trigger_run") + ":");
+        runResultSB.append("<br>address:").append(address);
+        runResultSB.append("<br>code:").append(runResult.getCode());
+        runResultSB.append("<br>msg:").append(runResult.getMsg());
+
+        runResult.setMsg(runResultSB.toString());
+        return runResult;
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/CookieUtil.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/CookieUtil.java
new file mode 100644
index 0000000..a352b18
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/CookieUtil.java
@@ -0,0 +1,98 @@
+package cn.gistack.job.admin.core.util;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Cookie.Util
+ *
+ * @author xuxueli 2015-12-12 18:01:06
+ */
+public class CookieUtil {
+
+	// 默认缓存时间,单位/秒, 2H
+	private static final int COOKIE_MAX_AGE = Integer.MAX_VALUE;
+	// 保存路径,根路径
+	private static final String COOKIE_PATH = "/";
+
+	/**
+	 * 保存
+	 *
+	 * @param response
+	 * @param key
+	 * @param value
+	 * @param ifRemember
+	 */
+	public static void set(HttpServletResponse response, String key, String value, boolean ifRemember) {
+		int age = ifRemember?COOKIE_MAX_AGE:-1;
+		set(response, key, value, null, COOKIE_PATH, age, true);
+	}
+
+	/**
+	 * 保存
+	 *
+	 * @param response
+	 * @param key
+	 * @param value
+	 * @param maxAge
+	 */
+	private static void set(HttpServletResponse response, String key, String value, String domain, String path, int maxAge, boolean isHttpOnly) {
+		Cookie cookie = new Cookie(key, value);
+		if (domain != null) {
+			cookie.setDomain(domain);
+		}
+		cookie.setPath(path);
+		cookie.setMaxAge(maxAge);
+		cookie.setHttpOnly(isHttpOnly);
+		response.addCookie(cookie);
+	}
+
+	/**
+	 * 查询value
+	 *
+	 * @param request
+	 * @param key
+	 * @return
+	 */
+	public static String getValue(HttpServletRequest request, String key) {
+		Cookie cookie = get(request, key);
+		if (cookie != null) {
+			return cookie.getValue();
+		}
+		return null;
+	}
+
+	/**
+	 * 查询Cookie
+	 *
+	 * @param request
+	 * @param key
+	 */
+	private static Cookie get(HttpServletRequest request, String key) {
+		Cookie[] arr_cookie = request.getCookies();
+		if (arr_cookie != null && arr_cookie.length > 0) {
+			for (Cookie cookie : arr_cookie) {
+				if (cookie.getName().equals(key)) {
+					return cookie;
+				}
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * 删除Cookie
+	 *
+	 * @param request
+	 * @param response
+	 * @param key
+	 */
+	public static void remove(HttpServletRequest request, HttpServletResponse response, String key) {
+		Cookie cookie = get(request, key);
+		if (cookie != null) {
+			set(response, key, "", null, COOKIE_PATH, 0, true);
+		}
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/FtlUtil.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/FtlUtil.java
new file mode 100644
index 0000000..d658d85
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/FtlUtil.java
@@ -0,0 +1,31 @@
+package cn.gistack.job.admin.core.util;
+
+import freemarker.ext.beans.BeansWrapper;
+import freemarker.ext.beans.BeansWrapperBuilder;
+import freemarker.template.Configuration;
+import freemarker.template.TemplateHashModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * ftl util
+ *
+ * @author xuxueli 2018-01-17 20:37:48
+ */
+public class FtlUtil {
+    private static Logger logger = LoggerFactory.getLogger(FtlUtil.class);
+
+    private static BeansWrapper wrapper = new BeansWrapperBuilder(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS).build();     //BeansWrapper.getDefaultInstance();
+
+    public static TemplateHashModel generateStaticModel(String packageName) {
+        try {
+            TemplateHashModel staticModels = wrapper.getStaticModels();
+            TemplateHashModel fileStatics = (TemplateHashModel) staticModels.get(packageName);
+            return fileStatics;
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+        }
+        return null;
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/I18nUtil.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/I18nUtil.java
new file mode 100644
index 0000000..7e5473c
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/I18nUtil.java
@@ -0,0 +1,80 @@
+package cn.gistack.job.admin.core.util;
+
+import cn.gistack.job.admin.core.conf.XxlJobAdminConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.support.EncodedResource;
+import org.springframework.core.io.support.PropertiesLoaderUtils;
+
+import java.io.IOException;
+import java.text.MessageFormat;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+
+/**
+ * i18n util
+ *
+ * @author xuxueli 2018-01-17 20:39:06
+ */
+public class I18nUtil {
+    private static Logger logger = LoggerFactory.getLogger(I18nUtil.class);
+
+    private static Properties prop = null;
+    public static Properties loadI18nProp(){
+        if (prop != null) {
+            return prop;
+        }
+        try {
+            // build i18n prop
+            String i18n = XxlJobAdminConfig.getAdminConfig().getI18n();
+            i18n = (i18n!=null && i18n.trim().length()>0)?("_"+i18n):i18n;
+            String i18nFile = MessageFormat.format("i18n/message{0}.properties", i18n);
+
+            // load prop
+            Resource resource = new ClassPathResource(i18nFile);
+            EncodedResource encodedResource = new EncodedResource(resource,"UTF-8");
+            prop = PropertiesLoaderUtils.loadProperties(encodedResource);
+        } catch (IOException e) {
+            logger.error(e.getMessage(), e);
+        }
+        return prop;
+    }
+
+    /**
+     * get val of i18n key
+     *
+     * @param key
+     * @return
+     */
+    public static String getString(String key) {
+        return loadI18nProp().getProperty(key);
+    }
+
+    /**
+     * get mult val of i18n mult key, as json
+     *
+     * @param keys
+     * @return
+     */
+    public static String getMultString(String... keys) {
+        Map<String, String> map = new HashMap<String, String>();
+
+        Properties prop = loadI18nProp();
+        if (keys!=null && keys.length>0) {
+            for (String key: keys) {
+                map.put(key, prop.getProperty(key));
+            }
+        } else {
+            for (String key: prop.stringPropertyNames()) {
+                map.put(key, prop.getProperty(key));
+            }
+        }
+
+        String json = JacksonUtil.writeValueAsString(map);
+        return json;
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/JacksonUtil.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/JacksonUtil.java
new file mode 100644
index 0000000..4ab7039
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/JacksonUtil.java
@@ -0,0 +1,92 @@
+package cn.gistack.job.admin.core.util;
+
+import com.fasterxml.jackson.core.JsonGenerationException;
+import com.fasterxml.jackson.core.JsonParseException;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+
+/**
+ * Jackson util
+ *
+ * 1、obj need private and set/get;
+ * 2、do not support inner class;
+ *
+ * @author xuxueli 2015-9-25 18:02:56
+ */
+public class JacksonUtil {
+	private static Logger logger = LoggerFactory.getLogger(JacksonUtil.class);
+
+    private final static ObjectMapper objectMapper = new ObjectMapper();
+    public static ObjectMapper getInstance() {
+        return objectMapper;
+    }
+
+    /**
+     * bean、array、List、Map --> json
+     *
+     * @param obj
+     * @return json string
+     * @throws Exception
+     */
+    public static String writeValueAsString(Object obj) {
+    	try {
+			return getInstance().writeValueAsString(obj);
+		} catch (JsonGenerationException e) {
+			logger.error(e.getMessage(), e);
+		} catch (JsonMappingException e) {
+			logger.error(e.getMessage(), e);
+		} catch (IOException e) {
+			logger.error(e.getMessage(), e);
+		}
+        return null;
+    }
+
+    /**
+     * string --> bean、Map、List(array)
+     *
+     * @param jsonStr
+     * @param clazz
+     * @return obj
+     * @throws Exception
+     */
+    public static <T> T readValue(String jsonStr, Class<T> clazz) {
+    	try {
+			return getInstance().readValue(jsonStr, clazz);
+		} catch (JsonParseException e) {
+			logger.error(e.getMessage(), e);
+		} catch (JsonMappingException e) {
+			logger.error(e.getMessage(), e);
+		} catch (IOException e) {
+			logger.error(e.getMessage(), e);
+		}
+    	return null;
+    }
+
+	/**
+	 * string --> List<Bean>...
+	 *
+	 * @param jsonStr
+	 * @param parametrized
+	 * @param parameterClasses
+	 * @param <T>
+	 * @return
+	 */
+	public static <T> T readValue(String jsonStr, Class<?> parametrized, Class<?>... parameterClasses) {
+		try {
+			JavaType javaType = getInstance().getTypeFactory().constructParametricType(parametrized, parameterClasses);
+			return getInstance().readValue(jsonStr, javaType);
+		} catch (JsonParseException e) {
+			logger.error(e.getMessage(), e);
+		} catch (JsonMappingException e) {
+			logger.error(e.getMessage(), e);
+		} catch (IOException e) {
+			logger.error(e.getMessage(), e);
+		}
+		return null;
+	}
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/LocalCacheUtil.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/LocalCacheUtil.java
new file mode 100644
index 0000000..f0fb01d
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/core/util/LocalCacheUtil.java
@@ -0,0 +1,133 @@
+package cn.gistack.job.admin.core.util;
+
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+/**
+ * local cache tool
+ *
+ * @author xuxueli 2018-01-22 21:37:34
+ */
+public class LocalCacheUtil {
+
+    private static ConcurrentMap<String, LocalCacheData> cacheRepository = new ConcurrentHashMap<String, LocalCacheData>();   // 类型建议用抽象父类,兼容性更好;
+    private static class LocalCacheData{
+        private String key;
+        private Object val;
+        private long timeoutTime;
+
+        public LocalCacheData() {
+        }
+
+        public LocalCacheData(String key, Object val, long timeoutTime) {
+            this.key = key;
+            this.val = val;
+            this.timeoutTime = timeoutTime;
+        }
+
+        public String getKey() {
+            return key;
+        }
+
+        public void setKey(String key) {
+            this.key = key;
+        }
+
+        public Object getVal() {
+            return val;
+        }
+
+        public void setVal(Object val) {
+            this.val = val;
+        }
+
+        public long getTimeoutTime() {
+            return timeoutTime;
+        }
+
+        public void setTimeoutTime(long timeoutTime) {
+            this.timeoutTime = timeoutTime;
+        }
+    }
+
+
+    /**
+     * set cache
+     *
+     * @param key
+     * @param val
+     * @param cacheTime
+     * @return
+     */
+    public static boolean set(String key, Object val, long cacheTime){
+
+        // clean timeout cache, before set new cache (avoid cache too much)
+        cleanTimeoutCache();
+
+        // set new cache
+        if (key==null || key.trim().length()==0) {
+            return false;
+        }
+        if (val == null) {
+            remove(key);
+        }
+        if (cacheTime <= 0) {
+            remove(key);
+        }
+        long timeoutTime = System.currentTimeMillis() + cacheTime;
+        LocalCacheData localCacheData = new LocalCacheData(key, val, timeoutTime);
+        cacheRepository.put(localCacheData.getKey(), localCacheData);
+        return true;
+    }
+
+    /**
+     * remove cache
+     *
+     * @param key
+     * @return
+     */
+    public static boolean remove(String key){
+        if (key==null || key.trim().length()==0) {
+            return false;
+        }
+        cacheRepository.remove(key);
+        return true;
+    }
+
+    /**
+     * get cache
+     *
+     * @param key
+     * @return
+     */
+    public static Object get(String key){
+        if (key==null || key.trim().length()==0) {
+            return null;
+        }
+        LocalCacheData localCacheData = cacheRepository.get(key);
+        if (localCacheData!=null && System.currentTimeMillis()<localCacheData.getTimeoutTime()) {
+            return localCacheData.getVal();
+        } else {
+            remove(key);
+            return null;
+        }
+    }
+
+    /**
+     * clean timeout cache
+     *
+     * @return
+     */
+    public static boolean cleanTimeoutCache(){
+        if (!cacheRepository.keySet().isEmpty()) {
+            for (String key: cacheRepository.keySet()) {
+                LocalCacheData localCacheData = cacheRepository.get(key);
+                if (localCacheData!=null && System.currentTimeMillis()>=localCacheData.getTimeoutTime()) {
+                    cacheRepository.remove(key);
+                }
+            }
+        }
+        return true;
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobGroupDao.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobGroupDao.java
new file mode 100644
index 0000000..93f59f4
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobGroupDao.java
@@ -0,0 +1,26 @@
+package cn.gistack.job.admin.dao;
+
+import cn.gistack.job.admin.core.model.XxlJobGroup;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * Created by xuxueli on 16/9/30.
+ */
+@Mapper
+public interface XxlJobGroupDao {
+
+    public List<XxlJobGroup> findAll();
+
+    public List<XxlJobGroup> findByAddressType(@Param("addressType") int addressType);
+
+    public int save(XxlJobGroup xxlJobGroup);
+
+    public int update(XxlJobGroup xxlJobGroup);
+
+    public int remove(@Param("id") int id);
+
+    public XxlJobGroup load(@Param("id") int id);
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobInfoDao.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobInfoDao.java
new file mode 100644
index 0000000..74e7634
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobInfoDao.java
@@ -0,0 +1,49 @@
+package cn.gistack.job.admin.dao;
+
+import cn.gistack.job.admin.core.model.XxlJobInfo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+/**
+ * job info
+ * @author xuxueli 2016-1-12 18:03:45
+ */
+@Mapper
+public interface XxlJobInfoDao {
+
+	public List<XxlJobInfo> pageList(@Param("offset") int offset,
+									 @Param("pagesize") int pagesize,
+									 @Param("jobGroup") int jobGroup,
+									 @Param("triggerStatus") int triggerStatus,
+									 @Param("jobDesc") String jobDesc,
+									 @Param("executorHandler") String executorHandler,
+									 @Param("author") String author);
+	public int pageListCount(@Param("offset") int offset,
+							 @Param("pagesize") int pagesize,
+							 @Param("jobGroup") int jobGroup,
+							 @Param("triggerStatus") int triggerStatus,
+							 @Param("jobDesc") String jobDesc,
+							 @Param("executorHandler") String executorHandler,
+							 @Param("author") String author);
+
+	public int save(XxlJobInfo info);
+
+	public XxlJobInfo loadById(@Param("id") int id);
+
+	public int update(XxlJobInfo xxlJobInfo);
+
+	public int delete(@Param("id") long id);
+
+	public List<XxlJobInfo> getJobsByGroup(@Param("jobGroup") int jobGroup);
+
+	public int findAllCount();
+
+	public List<XxlJobInfo> scheduleJobQuery(@Param("maxNextTime") long maxNextTime, @Param("pagesize") int pagesize );
+
+	public int scheduleUpdate(XxlJobInfo xxlJobInfo);
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobLogDao.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobLogDao.java
new file mode 100644
index 0000000..38e8475
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobLogDao.java
@@ -0,0 +1,60 @@
+package cn.gistack.job.admin.dao;
+
+import cn.gistack.job.admin.core.model.XxlJobLog;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * job log
+ * @author xuxueli 2016-1-12 18:03:06
+ */
+@Mapper
+public interface XxlJobLogDao {
+
+	// exist jobId not use jobGroup, not exist use jobGroup
+	public List<XxlJobLog> pageList(@Param("offset") int offset,
+									@Param("pagesize") int pagesize,
+									@Param("jobGroup") int jobGroup,
+									@Param("jobId") int jobId,
+									@Param("triggerTimeStart") Date triggerTimeStart,
+									@Param("triggerTimeEnd") Date triggerTimeEnd,
+									@Param("logStatus") int logStatus);
+	public int pageListCount(@Param("offset") int offset,
+							 @Param("pagesize") int pagesize,
+							 @Param("jobGroup") int jobGroup,
+							 @Param("jobId") int jobId,
+							 @Param("triggerTimeStart") Date triggerTimeStart,
+							 @Param("triggerTimeEnd") Date triggerTimeEnd,
+							 @Param("logStatus") int logStatus);
+
+	public XxlJobLog load(@Param("id") long id);
+
+	public long save(XxlJobLog xxlJobLog);
+
+	public int updateTriggerInfo(XxlJobLog xxlJobLog);
+
+	public int updateHandleInfo(XxlJobLog xxlJobLog);
+
+	public int delete(@Param("jobId") int jobId);
+
+	public Map<String, Object> findLogReport(@Param("from") Date from,
+											 @Param("to") Date to);
+
+	public List<Long> findClearLogIds(@Param("jobGroup") int jobGroup,
+									  @Param("jobId") int jobId,
+									  @Param("clearBeforeTime") Date clearBeforeTime,
+									  @Param("clearBeforeNum") int clearBeforeNum,
+									  @Param("pagesize") int pagesize);
+	public int clearLog(@Param("logIds") List<Long> logIds);
+
+	public List<Long> findFailJobLogIds(@Param("pagesize") int pagesize);
+
+	public int updateAlarmStatus(@Param("logId") long logId,
+								 @Param("oldAlarmStatus") int oldAlarmStatus,
+								 @Param("newAlarmStatus") int newAlarmStatus);
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobLogGlueDao.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobLogGlueDao.java
new file mode 100644
index 0000000..9c38b27
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobLogGlueDao.java
@@ -0,0 +1,24 @@
+package cn.gistack.job.admin.dao;
+
+import cn.gistack.job.admin.core.model.XxlJobLogGlue;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * job log for glue
+ * @author xuxueli 2016-5-19 18:04:56
+ */
+@Mapper
+public interface XxlJobLogGlueDao {
+
+	public int save(XxlJobLogGlue xxlJobLogGlue);
+
+	public List<XxlJobLogGlue> findByJobId(@Param("jobId") int jobId);
+
+	public int removeOld(@Param("jobId") int jobId, @Param("limit") int limit);
+
+	public int deleteByJobId(@Param("jobId") int jobId);
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobLogReportDao.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobLogReportDao.java
new file mode 100644
index 0000000..de991cb
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobLogReportDao.java
@@ -0,0 +1,26 @@
+package cn.gistack.job.admin.dao;
+
+import cn.gistack.job.admin.core.model.XxlJobLogReport;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * job log
+ * @author xuxueli 2019-11-22
+ */
+@Mapper
+public interface XxlJobLogReportDao {
+
+	public int save(XxlJobLogReport xxlJobLogReport);
+
+	public int update(XxlJobLogReport xxlJobLogReport);
+
+	public List<XxlJobLogReport> queryLogReport(@Param("triggerDayFrom") Date triggerDayFrom,
+												@Param("triggerDayTo") Date triggerDayTo);
+
+	public XxlJobLogReport queryLogReportTotal();
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobRegistryDao.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobRegistryDao.java
new file mode 100644
index 0000000..295380e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobRegistryDao.java
@@ -0,0 +1,38 @@
+package cn.gistack.job.admin.dao;
+
+import cn.gistack.job.admin.core.model.XxlJobRegistry;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by xuxueli on 16/9/30.
+ */
+@Mapper
+public interface XxlJobRegistryDao {
+
+    public List<Integer> findDead(@Param("timeout") int timeout,
+                                  @Param("nowTime") Date nowTime);
+
+    public int removeDead(@Param("ids") List<Integer> ids);
+
+    public List<XxlJobRegistry> findAll(@Param("timeout") int timeout,
+                                        @Param("nowTime") Date nowTime);
+
+    public int registryUpdate(@Param("registryGroup") String registryGroup,
+                              @Param("registryKey") String registryKey,
+                              @Param("registryValue") String registryValue,
+                              @Param("updateTime") Date updateTime);
+
+    public int registrySave(@Param("registryGroup") String registryGroup,
+                            @Param("registryKey") String registryKey,
+                            @Param("registryValue") String registryValue,
+                            @Param("updateTime") Date updateTime);
+
+    public int registryDelete(@Param("registryGroup") String registryGroup,
+                          @Param("registryKey") String registryKey,
+                          @Param("registryValue") String registryValue);
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobUserDao.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobUserDao.java
new file mode 100644
index 0000000..a75adc9
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/dao/XxlJobUserDao.java
@@ -0,0 +1,31 @@
+package cn.gistack.job.admin.dao;
+
+import cn.gistack.job.admin.core.model.XxlJobUser;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * @author xuxueli 2019-05-04 16:44:59
+ */
+@Mapper
+public interface XxlJobUserDao {
+
+	public List<XxlJobUser> pageList(@Param("offset") int offset,
+                                     @Param("pagesize") int pagesize,
+                                     @Param("username") String username,
+									 @Param("role") int role);
+	public int pageListCount(@Param("offset") int offset,
+							 @Param("pagesize") int pagesize,
+							 @Param("username") String username,
+							 @Param("role") int role);
+
+	public XxlJobUser loadByUserName(@Param("username") String username);
+
+	public int save(XxlJobUser xxlJobUser);
+
+	public int update(XxlJobUser xxlJobUser);
+
+	public int delete(@Param("id") int id);
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/LoginService.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/LoginService.java
new file mode 100644
index 0000000..592ef6e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/LoginService.java
@@ -0,0 +1,107 @@
+package cn.gistack.job.admin.service;
+
+import cn.gistack.job.admin.dao.XxlJobUserDao;
+import cn.gistack.job.admin.core.model.XxlJobUser;
+import cn.gistack.job.admin.core.util.CookieUtil;
+import cn.gistack.job.admin.core.util.I18nUtil;
+import cn.gistack.job.admin.core.util.JacksonUtil;
+import com.xxl.job.core.biz.model.ReturnT;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.util.DigestUtils;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigInteger;
+
+/**
+ * @author xuxueli 2019-05-04 22:13:264
+ */
+@Configuration(proxyBeanMethods = false)
+public class LoginService {
+
+    public static final String LOGIN_IDENTITY_KEY = "XXL_JOB_LOGIN_IDENTITY";
+
+    @Resource
+    private XxlJobUserDao xxlJobUserDao;
+
+
+    private String makeToken(XxlJobUser xxlJobUser){
+        String tokenJson = JacksonUtil.writeValueAsString(xxlJobUser);
+        String tokenHex = new BigInteger(tokenJson.getBytes()).toString(16);
+        return tokenHex;
+    }
+    private XxlJobUser parseToken(String tokenHex){
+        XxlJobUser xxlJobUser = null;
+        if (tokenHex != null) {
+            String tokenJson = new String(new BigInteger(tokenHex, 16).toByteArray());      // username_password(md5)
+            xxlJobUser = JacksonUtil.readValue(tokenJson, XxlJobUser.class);
+        }
+        return xxlJobUser;
+    }
+
+
+    public ReturnT<String> login(HttpServletRequest request, HttpServletResponse response, String username, String password, boolean ifRemember){
+
+        // param
+        if (username==null || username.trim().length()==0 || password==null || password.trim().length()==0){
+            return new ReturnT<String>(500, I18nUtil.getString("login_param_empty"));
+        }
+
+        // valid passowrd
+        XxlJobUser xxlJobUser = xxlJobUserDao.loadByUserName(username);
+        if (xxlJobUser == null) {
+            return new ReturnT<String>(500, I18nUtil.getString("login_param_unvalid"));
+        }
+        String passwordMd5 = DigestUtils.md5DigestAsHex(password.getBytes());
+        if (!passwordMd5.equals(xxlJobUser.getPassword())) {
+            return new ReturnT<String>(500, I18nUtil.getString("login_param_unvalid"));
+        }
+
+        String loginToken = makeToken(xxlJobUser);
+
+        // do login
+        CookieUtil.set(response, LOGIN_IDENTITY_KEY, loginToken, ifRemember);
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * logout
+     *
+     * @param request
+     * @param response
+     */
+    public ReturnT<String> logout(HttpServletRequest request, HttpServletResponse response){
+        CookieUtil.remove(request, response, LOGIN_IDENTITY_KEY);
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * logout
+     *
+     * @param request
+     * @return
+     */
+    public XxlJobUser ifLogin(HttpServletRequest request, HttpServletResponse response){
+        String cookieToken = CookieUtil.getValue(request, LOGIN_IDENTITY_KEY);
+        if (cookieToken != null) {
+            XxlJobUser cookieUser = null;
+            try {
+                cookieUser = parseToken(cookieToken);
+            } catch (Exception e) {
+                logout(request, response);
+            }
+            if (cookieUser != null) {
+                XxlJobUser dbUser = xxlJobUserDao.loadByUserName(cookieUser.getUsername());
+                if (dbUser != null) {
+                    if (cookieUser.getPassword().equals(dbUser.getPassword())) {
+                        return dbUser;
+                    }
+                }
+            }
+        }
+        return null;
+    }
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/XxlJobService.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/XxlJobService.java
new file mode 100644
index 0000000..fb4d8ed
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/XxlJobService.java
@@ -0,0 +1,86 @@
+package cn.gistack.job.admin.service;
+
+
+import cn.gistack.job.admin.core.model.XxlJobInfo;
+import com.xxl.job.core.biz.model.ReturnT;
+
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * core job action for xxl-job
+ *
+ * @author xuxueli 2016-5-28 15:30:33
+ */
+public interface XxlJobService {
+
+	/**
+	 * page list
+	 *
+	 * @param start
+	 * @param length
+	 * @param jobGroup
+	 * @param jobDesc
+	 * @param executorHandler
+	 * @param author
+	 * @return
+	 */
+	public Map<String, Object> pageList(int start, int length, int jobGroup, int triggerStatus, String jobDesc, String executorHandler, String author);
+
+	/**
+	 * add job
+	 *
+	 * @param jobInfo
+	 * @return
+	 */
+	public ReturnT<String> add(XxlJobInfo jobInfo);
+
+	/**
+	 * update job
+	 *
+	 * @param jobInfo
+	 * @return
+	 */
+	public ReturnT<String> update(XxlJobInfo jobInfo);
+
+	/**
+	 * remove job
+	 * 	 *
+	 * @param id
+	 * @return
+	 */
+	public ReturnT<String> remove(int id);
+
+	/**
+	 * start job
+	 *
+	 * @param id
+	 * @return
+	 */
+	public ReturnT<String> start(int id);
+
+	/**
+	 * stop job
+	 *
+	 * @param id
+	 * @return
+	 */
+	public ReturnT<String> stop(int id);
+
+	/**
+	 * dashboard info
+	 *
+	 * @return
+	 */
+	public Map<String,Object> dashboardInfo();
+
+	/**
+	 * chart info
+	 *
+	 * @param startDate
+	 * @param endDate
+	 * @return
+	 */
+	public ReturnT<Map<String,Object>> chartInfo(Date startDate, Date endDate);
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/impl/AdminBizImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/impl/AdminBizImpl.java
new file mode 100644
index 0000000..c5a3e46
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/impl/AdminBizImpl.java
@@ -0,0 +1,171 @@
+package cn.gistack.job.admin.service.impl;
+
+import cn.gistack.job.admin.core.thread.JobTriggerPoolHelper;
+import cn.gistack.job.admin.core.trigger.TriggerTypeEnum;
+import cn.gistack.job.admin.dao.XxlJobGroupDao;
+import cn.gistack.job.admin.dao.XxlJobInfoDao;
+import cn.gistack.job.admin.dao.XxlJobLogDao;
+import cn.gistack.job.admin.dao.XxlJobRegistryDao;
+import cn.gistack.job.admin.core.model.XxlJobInfo;
+import cn.gistack.job.admin.core.model.XxlJobLog;
+import cn.gistack.job.admin.core.util.I18nUtil;
+import com.xxl.job.core.biz.AdminBiz;
+import com.xxl.job.core.biz.model.HandleCallbackParam;
+import com.xxl.job.core.biz.model.RegistryParam;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.IJobHandler;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import javax.annotation.Resource;
+import java.text.MessageFormat;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author xuxueli 2017-07-27 21:54:20
+ */
+@Service
+public class AdminBizImpl implements AdminBiz {
+    private static Logger logger = LoggerFactory.getLogger(AdminBizImpl.class);
+
+    @Resource
+    public XxlJobLogDao xxlJobLogDao;
+    @Resource
+    private XxlJobInfoDao xxlJobInfoDao;
+    @Resource
+    private XxlJobRegistryDao xxlJobRegistryDao;
+    @Resource
+    private XxlJobGroupDao xxlJobGroupDao;
+
+
+    @Override
+    public ReturnT<String> callback(List<HandleCallbackParam> callbackParamList) {
+        for (HandleCallbackParam handleCallbackParam: callbackParamList) {
+            ReturnT<String> callbackResult = callback(handleCallbackParam);
+            logger.debug(">>>>>>>>> JobApiController.callback {}, handleCallbackParam={}, callbackResult={}",
+                    (callbackResult.getCode()==IJobHandler.SUCCESS.getCode()?"success":"fail"), handleCallbackParam, callbackResult);
+        }
+
+        return ReturnT.SUCCESS;
+    }
+
+    private ReturnT<String> callback(HandleCallbackParam handleCallbackParam) {
+        // valid log item
+        XxlJobLog log = xxlJobLogDao.load(handleCallbackParam.getLogId());
+        if (log == null) {
+            return new ReturnT<String>(ReturnT.FAIL_CODE, "log item not found.");
+        }
+        if (log.getHandleCode() > 0) {
+            return new ReturnT<String>(ReturnT.FAIL_CODE, "log repeate callback.");     // avoid repeat callback, trigger child job etc
+        }
+
+        // trigger success, to trigger child job
+        String callbackMsg = null;
+        if (IJobHandler.SUCCESS.getCode() == handleCallbackParam.getExecuteResult().getCode()) {
+            XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(log.getJobId());
+            if (xxlJobInfo!=null && xxlJobInfo.getChildJobId()!=null && xxlJobInfo.getChildJobId().trim().length()>0) {
+                callbackMsg = "<br><br><span style=\"color:#00c0ef;\" > >>>>>>>>>>>"+ I18nUtil.getString("jobconf_trigger_child_run") +"<<<<<<<<<<< </span><br>";
+
+                String[] childJobIds = xxlJobInfo.getChildJobId().split(",");
+                for (int i = 0; i < childJobIds.length; i++) {
+                    int childJobId = (childJobIds[i]!=null && childJobIds[i].trim().length()>0 && isNumeric(childJobIds[i]))?Integer.valueOf(childJobIds[i]):-1;
+                    if (childJobId > 0) {
+
+                        JobTriggerPoolHelper.trigger(childJobId, TriggerTypeEnum.PARENT, -1, null, null);
+                        ReturnT<String> triggerChildResult = ReturnT.SUCCESS;
+
+                        // add msg
+                        callbackMsg += MessageFormat.format(I18nUtil.getString("jobconf_callback_child_msg1"),
+                                (i+1),
+                                childJobIds.length,
+                                childJobIds[i],
+                                (triggerChildResult.getCode()==ReturnT.SUCCESS_CODE?I18nUtil.getString("system_success"):I18nUtil.getString("system_fail")),
+                                triggerChildResult.getMsg());
+                    } else {
+                        callbackMsg += MessageFormat.format(I18nUtil.getString("jobconf_callback_child_msg2"),
+                                (i+1),
+                                childJobIds.length,
+                                childJobIds[i]);
+                    }
+                }
+
+            }
+        }
+
+        // handle msg
+        StringBuffer handleMsg = new StringBuffer();
+        if (log.getHandleMsg()!=null) {
+            handleMsg.append(log.getHandleMsg()).append("<br>");
+        }
+        if (handleCallbackParam.getExecuteResult().getMsg() != null) {
+            handleMsg.append(handleCallbackParam.getExecuteResult().getMsg());
+        }
+        if (callbackMsg != null) {
+            handleMsg.append(callbackMsg);
+        }
+
+        // success, save log
+        log.setHandleTime(new Date());
+        log.setHandleCode(handleCallbackParam.getExecuteResult().getCode());
+        log.setHandleMsg(handleMsg.toString());
+        xxlJobLogDao.updateHandleInfo(log);
+
+        return ReturnT.SUCCESS;
+    }
+
+    private boolean isNumeric(String str){
+        try {
+            int result = Integer.valueOf(str);
+            return true;
+        } catch (NumberFormatException e) {
+            return false;
+        }
+    }
+
+    @Override
+    public ReturnT<String> registry(RegistryParam registryParam) {
+
+        // valid
+        if (!StringUtils.hasText(registryParam.getRegistryGroup())
+                || !StringUtils.hasText(registryParam.getRegistryKey())
+                || !StringUtils.hasText(registryParam.getRegistryValue())) {
+            return new ReturnT<String>(ReturnT.FAIL_CODE, "Illegal Argument.");
+        }
+
+        int ret = xxlJobRegistryDao.registryUpdate(registryParam.getRegistryGroup(), registryParam.getRegistryKey(), registryParam.getRegistryValue(), new Date());
+        if (ret < 1) {
+            xxlJobRegistryDao.registrySave(registryParam.getRegistryGroup(), registryParam.getRegistryKey(), registryParam.getRegistryValue(), new Date());
+
+            // fresh
+            freshGroupRegistryInfo(registryParam);
+        }
+        return ReturnT.SUCCESS;
+    }
+
+    @Override
+    public ReturnT<String> registryRemove(RegistryParam registryParam) {
+
+        // valid
+        if (!StringUtils.hasText(registryParam.getRegistryGroup())
+                || !StringUtils.hasText(registryParam.getRegistryKey())
+                || !StringUtils.hasText(registryParam.getRegistryValue())) {
+            return new ReturnT<String>(ReturnT.FAIL_CODE, "Illegal Argument.");
+        }
+
+        int ret = xxlJobRegistryDao.registryDelete(registryParam.getRegistryGroup(), registryParam.getRegistryKey(), registryParam.getRegistryValue());
+        if (ret > 0) {
+
+            // fresh
+            freshGroupRegistryInfo(registryParam);
+        }
+        return ReturnT.SUCCESS;
+    }
+
+    private void freshGroupRegistryInfo(RegistryParam registryParam){
+        // Under consideration, prevent affecting core tables
+    }
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/impl/XxlJobServiceImpl.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/impl/XxlJobServiceImpl.java
new file mode 100644
index 0000000..3122eb7
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/java/cn/gistack/job/admin/service/impl/XxlJobServiceImpl.java
@@ -0,0 +1,373 @@
+package cn.gistack.job.admin.service.impl;
+
+import cn.gistack.job.admin.core.route.ExecutorRouteStrategyEnum;
+import cn.gistack.job.admin.core.thread.JobScheduleHelper;
+import cn.gistack.job.admin.dao.*;
+import cn.gistack.job.admin.core.model.XxlJobGroup;
+import cn.gistack.job.admin.core.model.XxlJobInfo;
+import cn.gistack.job.admin.core.cron.CronExpression;
+import cn.gistack.job.admin.core.model.XxlJobLogReport;
+import cn.gistack.job.admin.core.util.I18nUtil;
+import com.xxl.job.admin.dao.*;
+import cn.gistack.job.admin.service.XxlJobService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.enums.ExecutorBlockStrategyEnum;
+import com.xxl.job.core.glue.GlueTypeEnum;
+import com.xxl.job.core.util.DateUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.text.MessageFormat;
+import java.text.ParseException;
+import java.util.*;
+
+/**
+ * core job action for xxl-job
+ * @author xuxueli 2016-5-28 15:30:33
+ */
+@Service
+public class XxlJobServiceImpl implements XxlJobService {
+	private static Logger logger = LoggerFactory.getLogger(XxlJobServiceImpl.class);
+
+	@Resource
+	private XxlJobGroupDao xxlJobGroupDao;
+	@Resource
+	private XxlJobInfoDao xxlJobInfoDao;
+	@Resource
+	public XxlJobLogDao xxlJobLogDao;
+	@Resource
+	private XxlJobLogGlueDao xxlJobLogGlueDao;
+	@Resource
+	private XxlJobLogReportDao xxlJobLogReportDao;
+
+	@Override
+	public Map<String, Object> pageList(int start, int length, int jobGroup, int triggerStatus, String jobDesc, String executorHandler, String author) {
+
+		// page list
+		List<XxlJobInfo> list = xxlJobInfoDao.pageList(start, length, jobGroup, triggerStatus, jobDesc, executorHandler, author);
+		int list_count = xxlJobInfoDao.pageListCount(start, length, jobGroup, triggerStatus, jobDesc, executorHandler, author);
+
+		// package result
+		Map<String, Object> maps = new HashMap<String, Object>();
+	    maps.put("recordsTotal", list_count);		// 总记录数
+	    maps.put("recordsFiltered", list_count);	// 过滤后的总记录数
+	    maps.put("data", list);  					// 分页列表
+		return maps;
+	}
+
+	@Override
+	public ReturnT<String> add(XxlJobInfo jobInfo) {
+		// valid
+		XxlJobGroup group = xxlJobGroupDao.load(jobInfo.getJobGroup());
+		if (group == null) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_choose")+I18nUtil.getString("jobinfo_field_jobgroup")) );
+		}
+		if (!CronExpression.isValidExpression(jobInfo.getJobCron())) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid") );
+		}
+		if (jobInfo.getJobDesc()==null || jobInfo.getJobDesc().trim().length()==0) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input")+I18nUtil.getString("jobinfo_field_jobdesc")) );
+		}
+		if (jobInfo.getAuthor()==null || jobInfo.getAuthor().trim().length()==0) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input")+I18nUtil.getString("jobinfo_field_author")) );
+		}
+		if (ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null) == null) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorRouteStrategy")+I18nUtil.getString("system_unvalid")) );
+		}
+		if (ExecutorBlockStrategyEnum.match(jobInfo.getExecutorBlockStrategy(), null) == null) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorBlockStrategy")+I18nUtil.getString("system_unvalid")) );
+		}
+		if (GlueTypeEnum.match(jobInfo.getGlueType()) == null) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_gluetype")+I18nUtil.getString("system_unvalid")) );
+		}
+		if (GlueTypeEnum.BEAN==GlueTypeEnum.match(jobInfo.getGlueType()) && (jobInfo.getExecutorHandler()==null || jobInfo.getExecutorHandler().trim().length()==0) ) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input")+"JobHandler") );
+		}
+
+		// fix "\r" in shell
+		if (GlueTypeEnum.GLUE_SHELL==GlueTypeEnum.match(jobInfo.getGlueType()) && jobInfo.getGlueSource()!=null) {
+			jobInfo.setGlueSource(jobInfo.getGlueSource().replaceAll("\r", ""));
+		}
+
+		// ChildJobId valid
+        if (jobInfo.getChildJobId()!=null && jobInfo.getChildJobId().trim().length()>0) {
+			String[] childJobIds = jobInfo.getChildJobId().split(",");
+			for (String childJobIdItem: childJobIds) {
+				if (childJobIdItem!=null && childJobIdItem.trim().length()>0 && isNumeric(childJobIdItem)) {
+					XxlJobInfo childJobInfo = xxlJobInfoDao.loadById(Integer.parseInt(childJobIdItem));
+					if (childJobInfo==null) {
+						return new ReturnT<String>(ReturnT.FAIL_CODE,
+								MessageFormat.format((I18nUtil.getString("jobinfo_field_childJobId")+"({0})"+I18nUtil.getString("system_not_found")), childJobIdItem));
+					}
+				} else {
+					return new ReturnT<String>(ReturnT.FAIL_CODE,
+							MessageFormat.format((I18nUtil.getString("jobinfo_field_childJobId")+"({0})"+I18nUtil.getString("system_unvalid")), childJobIdItem));
+				}
+			}
+
+			// join , avoid "xxx,,"
+			String temp = "";
+			for (String item:childJobIds) {
+				temp += item + ",";
+			}
+			temp = temp.substring(0, temp.length()-1);
+
+			jobInfo.setChildJobId(temp);
+		}
+
+		// add in db
+		jobInfo.setAddTime(new Date());
+		jobInfo.setUpdateTime(new Date());
+		jobInfo.setGlueUpdatetime(new Date());
+		xxlJobInfoDao.save(jobInfo);
+		if (jobInfo.getId() < 1) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_add")+I18nUtil.getString("system_fail")) );
+		}
+
+		return new ReturnT<String>(String.valueOf(jobInfo.getId()));
+	}
+
+	private boolean isNumeric(String str){
+		try {
+			int result = Integer.valueOf(str);
+			return true;
+		} catch (NumberFormatException e) {
+			return false;
+		}
+	}
+
+	@Override
+	public ReturnT<String> update(XxlJobInfo jobInfo) {
+
+		// valid
+		if (!CronExpression.isValidExpression(jobInfo.getJobCron())) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid") );
+		}
+		if (jobInfo.getJobDesc()==null || jobInfo.getJobDesc().trim().length()==0) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input")+I18nUtil.getString("jobinfo_field_jobdesc")) );
+		}
+		if (jobInfo.getAuthor()==null || jobInfo.getAuthor().trim().length()==0) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("system_please_input")+I18nUtil.getString("jobinfo_field_author")) );
+		}
+		if (ExecutorRouteStrategyEnum.match(jobInfo.getExecutorRouteStrategy(), null) == null) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorRouteStrategy")+I18nUtil.getString("system_unvalid")) );
+		}
+		if (ExecutorBlockStrategyEnum.match(jobInfo.getExecutorBlockStrategy(), null) == null) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_executorBlockStrategy")+I18nUtil.getString("system_unvalid")) );
+		}
+
+		// ChildJobId valid
+        if (jobInfo.getChildJobId()!=null && jobInfo.getChildJobId().trim().length()>0) {
+			String[] childJobIds = jobInfo.getChildJobId().split(",");
+			for (String childJobIdItem: childJobIds) {
+				if (childJobIdItem!=null && childJobIdItem.trim().length()>0 && isNumeric(childJobIdItem)) {
+					XxlJobInfo childJobInfo = xxlJobInfoDao.loadById(Integer.parseInt(childJobIdItem));
+					if (childJobInfo==null) {
+						return new ReturnT<String>(ReturnT.FAIL_CODE,
+								MessageFormat.format((I18nUtil.getString("jobinfo_field_childJobId")+"({0})"+I18nUtil.getString("system_not_found")), childJobIdItem));
+					}
+				} else {
+					return new ReturnT<String>(ReturnT.FAIL_CODE,
+							MessageFormat.format((I18nUtil.getString("jobinfo_field_childJobId")+"({0})"+I18nUtil.getString("system_unvalid")), childJobIdItem));
+				}
+			}
+
+			// join , avoid "xxx,,"
+			String temp = "";
+			for (String item:childJobIds) {
+				temp += item + ",";
+			}
+			temp = temp.substring(0, temp.length()-1);
+
+			jobInfo.setChildJobId(temp);
+		}
+
+		// group valid
+		XxlJobGroup jobGroup = xxlJobGroupDao.load(jobInfo.getJobGroup());
+		if (jobGroup == null) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_jobgroup")+I18nUtil.getString("system_unvalid")) );
+		}
+
+		// stage job info
+		XxlJobInfo exists_jobInfo = xxlJobInfoDao.loadById(jobInfo.getId());
+		if (exists_jobInfo == null) {
+			return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_id")+I18nUtil.getString("system_not_found")) );
+		}
+
+		// next trigger time (5s后生效,避开预读周期)
+		long nextTriggerTime = exists_jobInfo.getTriggerNextTime();
+		if (exists_jobInfo.getTriggerStatus() == 1 && !jobInfo.getJobCron().equals(exists_jobInfo.getJobCron()) ) {
+			try {
+				Date nextValidTime = new CronExpression(jobInfo.getJobCron()).getNextValidTimeAfter(new Date(System.currentTimeMillis() + JobScheduleHelper.PRE_READ_MS));
+				if (nextValidTime == null) {
+					return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_never_fire"));
+				}
+				nextTriggerTime = nextValidTime.getTime();
+			} catch (ParseException e) {
+				logger.error(e.getMessage(), e);
+				return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid")+" | "+ e.getMessage());
+			}
+		}
+
+		exists_jobInfo.setJobGroup(jobInfo.getJobGroup());
+		exists_jobInfo.setJobCron(jobInfo.getJobCron());
+		exists_jobInfo.setJobDesc(jobInfo.getJobDesc());
+		exists_jobInfo.setAuthor(jobInfo.getAuthor());
+		exists_jobInfo.setAlarmEmail(jobInfo.getAlarmEmail());
+		exists_jobInfo.setExecutorRouteStrategy(jobInfo.getExecutorRouteStrategy());
+		exists_jobInfo.setExecutorHandler(jobInfo.getExecutorHandler());
+		exists_jobInfo.setExecutorParam(jobInfo.getExecutorParam());
+		exists_jobInfo.setExecutorBlockStrategy(jobInfo.getExecutorBlockStrategy());
+		exists_jobInfo.setExecutorTimeout(jobInfo.getExecutorTimeout());
+		exists_jobInfo.setExecutorFailRetryCount(jobInfo.getExecutorFailRetryCount());
+		exists_jobInfo.setChildJobId(jobInfo.getChildJobId());
+		exists_jobInfo.setTriggerNextTime(nextTriggerTime);
+
+		exists_jobInfo.setUpdateTime(new Date());
+        xxlJobInfoDao.update(exists_jobInfo);
+
+
+		return ReturnT.SUCCESS;
+	}
+
+	@Override
+	public ReturnT<String> remove(int id) {
+		XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(id);
+		if (xxlJobInfo == null) {
+			return ReturnT.SUCCESS;
+		}
+
+		xxlJobInfoDao.delete(id);
+		xxlJobLogDao.delete(id);
+		xxlJobLogGlueDao.deleteByJobId(id);
+		return ReturnT.SUCCESS;
+	}
+
+	@Override
+	public ReturnT<String> start(int id) {
+		XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(id);
+
+		// next trigger time (5s后生效,避开预读周期)
+		long nextTriggerTime = 0;
+		try {
+			Date nextValidTime = new CronExpression(xxlJobInfo.getJobCron()).getNextValidTimeAfter(new Date(System.currentTimeMillis() + JobScheduleHelper.PRE_READ_MS));
+			if (nextValidTime == null) {
+				return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_never_fire"));
+			}
+			nextTriggerTime = nextValidTime.getTime();
+		} catch (ParseException e) {
+			logger.error(e.getMessage(), e);
+			return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid")+" | "+ e.getMessage());
+		}
+
+		xxlJobInfo.setTriggerStatus(1);
+		xxlJobInfo.setTriggerLastTime(0);
+		xxlJobInfo.setTriggerNextTime(nextTriggerTime);
+
+		xxlJobInfo.setUpdateTime(new Date());
+		xxlJobInfoDao.update(xxlJobInfo);
+		return ReturnT.SUCCESS;
+	}
+
+	@Override
+	public ReturnT<String> stop(int id) {
+        XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(id);
+
+		xxlJobInfo.setTriggerStatus(0);
+		xxlJobInfo.setTriggerLastTime(0);
+		xxlJobInfo.setTriggerNextTime(0);
+
+		xxlJobInfo.setUpdateTime(new Date());
+		xxlJobInfoDao.update(xxlJobInfo);
+		return ReturnT.SUCCESS;
+	}
+
+	@Override
+	public Map<String, Object> dashboardInfo() {
+
+		int jobInfoCount = xxlJobInfoDao.findAllCount();
+		int jobLogCount = 0;
+		int jobLogSuccessCount = 0;
+		XxlJobLogReport xxlJobLogReport = xxlJobLogReportDao.queryLogReportTotal();
+		if (xxlJobLogReport != null) {
+			jobLogCount = xxlJobLogReport.getRunningCount() + xxlJobLogReport.getSucCount() + xxlJobLogReport.getFailCount();
+			jobLogSuccessCount = xxlJobLogReport.getSucCount();
+		}
+
+		// executor count
+		Set<String> executorAddressSet = new HashSet<String>();
+		List<XxlJobGroup> groupList = xxlJobGroupDao.findAll();
+
+		if (groupList!=null && !groupList.isEmpty()) {
+			for (XxlJobGroup group: groupList) {
+				if (group.getRegistryList()!=null && !group.getRegistryList().isEmpty()) {
+					executorAddressSet.addAll(group.getRegistryList());
+				}
+			}
+		}
+
+		int executorCount = executorAddressSet.size();
+
+		Map<String, Object> dashboardMap = new HashMap<String, Object>();
+		dashboardMap.put("jobInfoCount", jobInfoCount);
+		dashboardMap.put("jobLogCount", jobLogCount);
+		dashboardMap.put("jobLogSuccessCount", jobLogSuccessCount);
+		dashboardMap.put("executorCount", executorCount);
+		return dashboardMap;
+	}
+
+	@Override
+	public ReturnT<Map<String, Object>> chartInfo(Date startDate, Date endDate) {
+
+		// process
+		List<String> triggerDayList = new ArrayList<String>();
+		List<Integer> triggerDayCountRunningList = new ArrayList<Integer>();
+		List<Integer> triggerDayCountSucList = new ArrayList<Integer>();
+		List<Integer> triggerDayCountFailList = new ArrayList<Integer>();
+		int triggerCountRunningTotal = 0;
+		int triggerCountSucTotal = 0;
+		int triggerCountFailTotal = 0;
+
+		List<XxlJobLogReport> logReportList = xxlJobLogReportDao.queryLogReport(startDate, endDate);
+
+		if (logReportList!=null && logReportList.size()>0) {
+			for (XxlJobLogReport item: logReportList) {
+				String day = DateUtil.formatDate(item.getTriggerDay());
+				int triggerDayCountRunning = item.getRunningCount();
+				int triggerDayCountSuc = item.getSucCount();
+				int triggerDayCountFail = item.getFailCount();
+
+				triggerDayList.add(day);
+				triggerDayCountRunningList.add(triggerDayCountRunning);
+				triggerDayCountSucList.add(triggerDayCountSuc);
+				triggerDayCountFailList.add(triggerDayCountFail);
+
+				triggerCountRunningTotal += triggerDayCountRunning;
+				triggerCountSucTotal += triggerDayCountSuc;
+				triggerCountFailTotal += triggerDayCountFail;
+			}
+		} else {
+			for (int i = -6; i <= 0; i++) {
+				triggerDayList.add(DateUtil.formatDate(DateUtil.addDays(new Date(), i)));
+				triggerDayCountRunningList.add(0);
+				triggerDayCountSucList.add(0);
+				triggerDayCountFailList.add(0);
+			}
+		}
+
+		Map<String, Object> result = new HashMap<String, Object>();
+		result.put("triggerDayList", triggerDayList);
+		result.put("triggerDayCountRunningList", triggerDayCountRunningList);
+		result.put("triggerDayCountSucList", triggerDayCountSucList);
+		result.put("triggerDayCountFailList", triggerDayCountFailList);
+
+		result.put("triggerCountRunningTotal", triggerCountRunningTotal);
+		result.put("triggerCountSucTotal", triggerCountSucTotal);
+		result.put("triggerCountFailTotal", triggerCountFailTotal);
+
+		return new ReturnT<Map<String, Object>>(result);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application-dev.yml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..c7f2ad4
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application-dev.yml
@@ -0,0 +1,7 @@
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.job.dev.url}
+    username: ${blade.datasource.job.dev.username}
+    password: ${blade.datasource.job.dev.password}
+
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application-prod.yml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..396d0b9
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application-prod.yml
@@ -0,0 +1,7 @@
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.job.prod.url}
+    username: ${blade.datasource.job.prod.username}
+    password: ${blade.datasource.job.prod.password}
+
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application-test.yml
new file mode 100644
index 0000000..3fdf586
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application-test.yml
@@ -0,0 +1,6 @@
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.job.test.url}
+    username: ${blade.datasource.job.test.username}
+    password: ${blade.datasource.job.test.password}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application.yml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application.yml
new file mode 100644
index 0000000..3ef159d
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/application.yml
@@ -0,0 +1,61 @@
+server:
+  port: 7009
+  servlet:
+    context-path: /xxl-job-admin
+
+spring:
+  cloud:
+    nacos:
+      discovery:
+        metadata:
+          management:
+            context-path: ${server.servlet.context-path}/actuator
+  freemarker:
+    charset: UTF-8
+    request-context-attribute: request
+    settings:
+      number_format: 0.##########
+    suffix: .ftl
+    templateLoaderPath: classpath:/templates/
+  mail:
+    host: smtp.qq.com
+    password: xxx
+    port: 25
+    properties:
+      mail:
+        smtp:
+          auth: true
+          socketFactory:
+            class: javax.net.ssl.SSLSocketFactory
+          starttls:
+            enable: true
+            required: true
+    username: xxx@qq.com
+  mvc:
+    servlet:
+      load-on-startup: 0
+    static-path-pattern: /static/**
+  resources:
+    static-locations: classpath:/static/
+
+management:
+  health:
+    mail:
+      enabled: false
+  server:
+    servlet:
+      context-path: /actuator
+mybatis:
+  mapper-locations: classpath:/mybatis-mapper/*Mapper.xml
+
+xxl:
+  job:
+    accessToken: ''
+    i18n: ''
+    logretentiondays: 30
+    triggerpool:
+      fast:
+        max: 200
+      slow:
+        max: 100
+
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/i18n/message.properties b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/i18n/message.properties
new file mode 100644
index 0000000..ed7959f
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/i18n/message.properties
@@ -0,0 +1,262 @@
+admin_name=任务调度中心
+admin_name_full=分布式任务调度平台XXL-JOB
+admin_version=2.1.2
+admin_i18n=
+
+## system
+system_tips=系统提示
+system_ok=确定
+system_close=关闭
+system_save=保存
+system_cancel=取消
+system_search=搜索
+system_status=状态
+system_opt=操作
+system_please_input=请输入
+system_please_choose=请选择
+system_success=成功
+system_fail=失败
+system_add_suc=新增成功
+system_add_fail=新增失败
+system_update_suc=更新成功
+system_update_fail=更新失败
+system_all=全部
+system_api_error=接口异常
+system_show=查看
+system_empty=无
+system_opt_suc=操作成功
+system_opt_fail=操作失败
+system_opt_edit=编辑
+system_opt_del=删除
+system_unvalid=非法
+system_not_found=不存在
+system_nav=导航
+system_digits=整数
+system_lengh_limit=长度限制
+system_permission_limit=权限拦截
+system_welcome=欢迎
+
+## daterangepicker
+daterangepicker_ranges_recent_hour=最近一小时
+daterangepicker_ranges_today=今日
+daterangepicker_ranges_yesterday=昨日
+daterangepicker_ranges_this_month=本月
+daterangepicker_ranges_last_month=上个月
+daterangepicker_ranges_recent_week=最近一周
+daterangepicker_ranges_recent_month=最近一月
+daterangepicker_custom_name=自定义
+daterangepicker_custom_starttime=起始时间
+daterangepicker_custom_endtime=结束时间
+daterangepicker_custom_daysofweek=日,一,二,三,四,五,六
+daterangepicker_custom_monthnames=一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月
+
+## dataTable
+dataTable_sProcessing=处理中...
+dataTable_sLengthMenu=每页 _MENU_ 条记录
+dataTable_sZeroRecords=没有匹配结果
+dataTable_sInfo=第 _PAGE_ 页 ( 总共 _PAGES_ 页,_TOTAL_ 条记录 )
+dataTable_sInfoEmpty=无记录
+dataTable_sInfoFiltered=(由 _MAX_ 项结果过滤)
+dataTable_sSearch=搜索
+dataTable_sEmptyTable=表中数据为空
+dataTable_sLoadingRecords=载入中...
+dataTable_sFirst=首页
+dataTable_sPrevious=上页
+dataTable_sNext=下页
+dataTable_sLast=末页
+dataTable_sSortAscending=: 以升序排列此列
+dataTable_sSortDescending=: 以降序排列此列
+
+## login
+login_btn=登录
+login_remember_me=记住密码
+login_username_placeholder=请输入登录账号
+login_password_placeholder=请输入登录密码
+login_username_empty=请输入登录账号
+login_username_lt_4=登录账号不应低于4位
+login_password_empty=请输入登录密码
+login_password_lt_4=登录密码不应低于4位
+login_success=登录成功
+login_fail=登录失败
+login_param_empty=账号或密码为空
+login_param_unvalid=账号或密码错误
+
+## logout
+logout_btn=注销
+logout_confirm=确认注销登录?
+logout_success=注销成功
+logout_fail=注销失败
+
+## change pwd
+change_pwd=修改密码
+change_pwd_suc_to_logout=修改密码成功,即将注销登陆
+change_pwd_field_newpwd=新密码
+
+## dashboard
+job_dashboard_name=运行报表
+job_dashboard_job_num=任务数量
+job_dashboard_job_num_tip=调度中心运行的任务数量
+job_dashboard_trigger_num=调度次数
+job_dashboard_trigger_num_tip=调度中心触发的调度次数
+job_dashboard_jobgroup_num=执行器数量
+job_dashboard_jobgroup_num_tip=调度中心在线的执行器机器数量
+job_dashboard_report=调度报表
+job_dashboard_report_loaddata_fail=调度报表数据加载异常
+job_dashboard_date_report=日期分布图
+job_dashboard_rate_report=成功比例图
+
+## job info
+jobinfo_name=任务管理
+jobinfo_job=任务
+jobinfo_field_add=新增
+jobinfo_field_update=更新任务
+jobinfo_field_id=任务ID
+jobinfo_field_jobgroup=执行器
+jobinfo_field_jobdesc=任务描述
+jobinfo_field_gluetype=运行模式
+jobinfo_field_executorparam=任务参数
+jobinfo_field_cron_unvalid=Cron格式非法
+jobinfo_field_cron_never_fire=Cron非法,永远不会触发
+jobinfo_field_author=负责人
+jobinfo_field_timeout=任务超时时间
+jobinfo_field_alarmemail=报警邮件
+jobinfo_field_alarmemail_placeholder=请输入报警邮件,多个邮件地址则逗号分隔
+jobinfo_field_executorRouteStrategy=路由策略
+jobinfo_field_childJobId=子任务ID
+jobinfo_field_childJobId_placeholder=请输入子任务的任务ID,如存在多个则逗号分隔
+jobinfo_field_executorBlockStrategy=阻塞处理策略
+jobinfo_field_executorFailRetryCount=失败重试次数
+jobinfo_field_executorFailRetryCount_placeholder=失败重试次数,大于零时生效
+jobinfo_script_location=脚本位置
+jobinfo_shard_index=分片序号
+jobinfo_shard_total=分片总数
+jobinfo_opt_stop=停止
+jobinfo_opt_start=启动
+jobinfo_opt_log=查询日志
+jobinfo_opt_run=执行一次
+jobinfo_opt_registryinfo=注册节点
+jobinfo_opt_next_time=下次执行时间
+jobinfo_glue_remark=源码备注
+jobinfo_glue_remark_limit=源码备注长度限制为4~100
+jobinfo_glue_rollback=版本回溯
+jobinfo_glue_jobid_unvalid=任务ID非法
+jobinfo_glue_gluetype_unvalid=该任务非GLUE模式
+jobinfo_field_executorTimeout_placeholder=任务超时时间,单位秒,大于零时生效
+
+## job log
+joblog_name=调度日志
+joblog_status=状态
+joblog_status_all=全部
+joblog_status_suc=成功
+joblog_status_fail=失败
+joblog_status_running=进行中
+joblog_field_triggerTime=调度时间
+joblog_field_triggerCode=调度结果
+joblog_field_triggerMsg=调度备注
+joblog_field_handleTime=执行时间
+joblog_field_handleCode=执行结果
+joblog_field_handleMsg=执行备注
+joblog_field_executorAddress=执行器地址
+joblog_clean=清理
+joblog_clean_log=日志清理
+joblog_clean_type=清理方式
+joblog_clean_type_1=清理一个月之前日志数据
+joblog_clean_type_2=清理三个月之前日志数据
+joblog_clean_type_3=清理六个月之前日志数据
+joblog_clean_type_4=清理一年之前日志数据
+joblog_clean_type_5=清理一千条以前日志数据
+joblog_clean_type_6=清理一万条以前日志数据
+joblog_clean_type_7=清理三万条以前日志数据
+joblog_clean_type_8=清理十万条以前日志数据
+joblog_clean_type_9=清理所有日志数据
+joblog_clean_type_unvalid=清理类型参数异常
+joblog_handleCode_200=成功
+joblog_handleCode_500=失败
+joblog_handleCode_502=失败(超时)
+joblog_kill_log=终止任务
+joblog_kill_log_limit=调度失败,无法终止日志
+joblog_kill_log_byman=人为操作主动终止
+joblog_rolling_log=执行日志
+joblog_rolling_log_refresh=刷新
+joblog_rolling_log_triggerfail=任务发起调度失败,无法查看执行日志
+joblog_rolling_log_failoften=终止请求Rolling日志,请求失败次数超上限,可刷新页面重新加载日志
+joblog_logid_unvalid=日志ID非法
+
+## job group
+jobgroup_name=执行器管理
+jobgroup_list=执行器列表
+jobgroup_add=新增执行器
+jobgroup_edit=编辑执行器
+jobgroup_del=删除执行器
+jobgroup_field_order=排序
+jobgroup_field_title=名称
+jobgroup_field_addressType=注册方式
+jobgroup_field_addressType_0=自动注册
+jobgroup_field_addressType_1=手动录入
+jobgroup_field_addressType_limit=手动录入注册方式,机器地址不可为空
+jobgroup_field_registryList=机器地址
+jobgroup_field_registryList_unvalid=机器地址格式非法
+jobgroup_field_registryList_placeholder=请输入执行器地址列表,多地址逗号分隔
+jobgroup_field_appName_limit=限制以小写字母开头,由小写字母、数字和中划线组成
+jobgroup_field_appName_length=AppName长度限制为4~64
+jobgroup_field_title_length=名称长度限制为4~12
+jobgroup_field_order_digits=请输入整数
+jobgroup_field_orderrange=取值范围为1~1000
+jobgroup_del_limit_0=拒绝删除,该执行器使用中
+jobgroup_del_limit_1=拒绝删除, 系统至少保留一个执行器
+jobgroup_empty=不存在有效执行器,请联系管理员
+
+## job conf
+jobconf_block_SERIAL_EXECUTION=单机串行
+jobconf_block_DISCARD_LATER=丢弃后续调度
+jobconf_block_COVER_EARLY=覆盖之前调度
+jobconf_route_first=第一个
+jobconf_route_last=最后一个
+jobconf_route_round=轮询
+jobconf_route_random=随机
+jobconf_route_consistenthash=一致性HASH
+jobconf_route_lfu=最不经常使用
+jobconf_route_lru=最近最久未使用
+jobconf_route_failover=故障转移
+jobconf_route_busyover=忙碌转移
+jobconf_route_shard=分片广播
+jobconf_idleBeat=空闲检测
+jobconf_beat=心跳检测
+jobconf_monitor=任务调度中心监控报警
+jobconf_monitor_detail=监控告警明细
+jobconf_monitor_alarm_title=告警类型
+jobconf_monitor_alarm_type=调度失败
+jobconf_monitor_alarm_content=告警内容
+jobconf_trigger_admin_adress=调度机器
+jobconf_trigger_exe_regtype=执行器-注册方式
+jobconf_trigger_exe_regaddress=执行器-地址列表
+jobconf_trigger_address_empty=调度失败:执行器地址为空
+jobconf_trigger_run=触发调度
+jobconf_trigger_child_run=触发子任务
+jobconf_callback_child_msg1={0}/{1} [任务ID={2}], 触发{3}, 触发备注: {4} <br>
+jobconf_callback_child_msg2={0}/{1} [任务ID={2}], 触发失败, 触发备注: 任务ID格式错误 <br>
+jobconf_trigger_type=任务触发类型
+jobconf_trigger_type_cron=Cron触发
+jobconf_trigger_type_manual=手动触发
+jobconf_trigger_type_parent=父任务触发
+jobconf_trigger_type_api=API触发
+jobconf_trigger_type_retry=失败重试触发
+
+## user
+user_manage=用户管理
+user_username=账号
+user_password=密码
+user_role=角色
+user_role_admin=管理员
+user_role_normal=普通用户
+user_permission=权限
+user_add=新增用户
+user_update=更新用户
+user_username_repeat=账号重复
+user_username_valid=限制以小写字母开头,由小写字母、数字组成
+user_password_update_placeholder=请输入新密码,为空则不更新密码
+user_update_loginuser_limit=禁止操作当前登录账号
+
+## help
+job_help=使用教程
+job_help_document=官方文档
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/i18n/message_en.properties b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/i18n/message_en.properties
new file mode 100644
index 0000000..5436ca5
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/i18n/message_en.properties
@@ -0,0 +1,262 @@
+admin_name=Scheduling Center
+admin_name_full=Distributed Task Scheduling Platform XXL-JOB
+admin_version=2.1.2
+admin_i18n=en
+
+## system
+system_tips=System message
+system_ok=Confirm 
+system_close=Close
+system_save=Save 
+system_cancel=Cancel
+system_search=Search
+system_status=Status
+system_opt=Operate
+system_please_input=please input 
+system_please_choose=please choose 
+system_success=success
+system_fail=fail
+system_add_suc=add success
+system_add_fail=add fail
+system_update_suc=update success
+system_update_fail=update fail
+system_all=All
+system_api_error=net error
+system_show=Show
+system_empty=Empty
+system_opt_suc=operate success
+system_opt_fail=operate fail
+system_opt_edit=Edit 
+system_opt_del=Delete 
+system_unvalid=illegal
+system_not_found=not exist
+system_nav=Navigation
+system_digits=digits
+system_lengh_limit=Length limit
+system_permission_limit=Permission limit
+system_welcome=Welcome
+
+## daterangepicker
+daterangepicker_ranges_recent_hour=recent one hour
+daterangepicker_ranges_today=today
+daterangepicker_ranges_yesterday=yesterday
+daterangepicker_ranges_this_month=this month
+daterangepicker_ranges_last_month=last month
+daterangepicker_ranges_recent_week=recent one week
+daterangepicker_ranges_recent_month=recent one month
+daterangepicker_custom_name=custom
+daterangepicker_custom_starttime=start time
+daterangepicker_custom_endtime=end time
+daterangepicker_custom_daysofweek=Sun,Mon,Tue,Wed,Thu,Fri,Sat
+daterangepicker_custom_monthnames=Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec
+
+## dataTable
+dataTable_sProcessing=processing...
+dataTable_sLengthMenu= _MENU_ records per page
+dataTable_sZeroRecords=No matching results
+dataTable_sInfo=page _PAGE_  ( Total _PAGES_ pages,_TOTAL_ records )
+dataTable_sInfoEmpty=No Record
+dataTable_sInfoFiltered=(Filtered by _MAX_ results)
+dataTable_sSearch=Search
+dataTable_sEmptyTable=Table data is empty
+dataTable_sLoadingRecords=Loading...
+dataTable_sFirst=FIRST PAGE
+dataTable_sPrevious=Previous Page
+dataTable_sNext=Next Page
+dataTable_sLast=LAST PAGE
+dataTable_sSortAscending=: Rank this column in ascending order
+dataTable_sSortDescending=: Rank this column in descending order
+
+## login
+login_btn=Login
+login_remember_me=Remember Me
+login_username_placeholder=Please enter username
+login_password_placeholder=Please enter password
+login_username_empty=Please enter username
+login_username_lt_4=Username length should not be less than 4
+login_password_empty=Please enter password
+login_password_lt_4=Password length should not be less than 4
+login_success=Login success
+login_fail=Login fail
+login_param_empty=Username or password is empty
+login_param_unvalid=Username or password error
+
+## logout
+logout_btn=Logout
+logout_confirm=Confirm logout?
+logout_success=Logout success
+logout_fail=Logout fail
+
+## change pwd
+change_pwd=Change password
+change_pwd_suc_to_logout=Change password successful, about to log out login
+change_pwd_field_newpwd=new password
+
+## dashboard
+job_dashboard_name=Run report
+job_dashboard_job_num=Job number
+job_dashboard_job_num_tip=The number of tasks running in the scheduling center
+job_dashboard_trigger_num=trigger number
+job_dashboard_trigger_num_tip=The number of trigger record scheduled by the scheduling center
+job_dashboard_jobgroup_num=Executor number
+job_dashboard_jobgroup_num_tip=The number of online executor machines perceived by the scheduling center
+job_dashboard_report=Scheduling report
+job_dashboard_report_loaddata_fail=Scheduling report load data error
+job_dashboard_date_report=Date distribution
+job_dashboard_rate_report=Percentage distribution
+
+## job info
+jobinfo_name=Job Manage
+jobinfo_job=Job
+jobinfo_field_add=Add Job
+jobinfo_field_update=Edit Job
+jobinfo_field_id=Job ID
+jobinfo_field_jobgroup=Executor
+jobinfo_field_jobdesc=Job description
+jobinfo_field_timeout=Job timeout period
+jobinfo_field_gluetype=GLUE Type
+jobinfo_field_executorparam=Param
+jobinfo_field_cron_unvalid=The Cron is illegal
+jobinfo_field_cron_never_fire=The Cron will never fire
+jobinfo_field_author=Author
+jobinfo_field_alarmemail=Alarm email
+jobinfo_field_alarmemail_placeholder=Please enter alarm mail, if there are more than one comma separated
+jobinfo_field_executorRouteStrategy=Route Strategy
+jobinfo_field_childJobId=Child Job ID
+jobinfo_field_childJobId_placeholder=Please enter the Child job ID, if there are more than one comma separated
+jobinfo_field_executorBlockStrategy=Block Strategy
+jobinfo_field_executorFailRetryCount=Fail Retry Count
+jobinfo_field_executorFailRetryCount_placeholder=Fail Retry Count. effect if greater than zero
+jobinfo_script_location=Script location
+jobinfo_shard_index=Shard index
+jobinfo_shard_total=Shard total
+jobinfo_opt_stop=Stop
+jobinfo_opt_start=Start
+jobinfo_opt_log=Query Log
+jobinfo_opt_run=Run Once
+jobinfo_opt_registryinfo=Registry Info
+jobinfo_opt_next_time=Next trigger time
+jobinfo_glue_remark=Resource Remark
+jobinfo_glue_remark_limit=Resource Remark length is limited to 4~100
+jobinfo_glue_rollback=Version Backtrack
+jobinfo_glue_jobid_unvalid=Job ID is illegal
+jobinfo_glue_gluetype_unvalid=The job is not GLUE Type
+jobinfo_field_executorTimeout_placeholder=Job Timeout period,in seconds. effect if greater than zero
+
+## job log
+joblog_name=Trigger Log
+joblog_status=Status
+joblog_status_all=All
+joblog_status_suc=Success
+joblog_status_fail=Fail
+joblog_status_running=Running
+joblog_field_triggerTime=Trigger Time
+joblog_field_triggerCode=Trigger Result
+joblog_field_triggerMsg=Trigger Msg
+joblog_field_handleTime=Handle Time
+joblog_field_handleCode=Handle Result
+joblog_field_handleMsg=Trigger Msg
+joblog_field_executorAddress=Executor Address
+joblog_clean=Clean
+joblog_clean_log=Clean Log
+joblog_clean_type=Clean Type
+joblog_clean_type_1=Clean up log data a month ago
+joblog_clean_type_2=Clean up log data three month ago
+joblog_clean_type_3=Clean up log data six month ago
+joblog_clean_type_4=Clean up log data a year ago
+joblog_clean_type_5=Clean up log data a thousand record ago
+joblog_clean_type_6=Clean up log data ten thousand record ago
+joblog_clean_type_7=Clean up log data thirty thousand record ago
+joblog_clean_type_8=Clean up log data hundred thousand record ago
+joblog_clean_type_9=Clean up all log data
+joblog_clean_type_unvalid=Clean type is illegal
+joblog_handleCode_200=Success
+joblog_handleCode_500=Fail
+joblog_handleCode_502=Timeout
+joblog_kill_log=Kill Job
+joblog_kill_log_limit=Trigger Fail, can not kill job
+joblog_kill_log_byman=Manual operation to active kill job
+joblog_rolling_log=Rolling log
+joblog_rolling_log_refresh=Refresh 
+joblog_rolling_log_triggerfail=The job trigger fail, can not view the rolling log
+joblog_rolling_log_failoften=The request for the Rolling log is terminated, the number of failed requests exceeds the limit, Reload the log on the refresh page
+joblog_logid_unvalid=Log ID is illegal
+
+## job group
+jobgroup_name=Executor Manage
+jobgroup_list=Executor List
+jobgroup_add=Add Executor
+jobgroup_edit=Edit Executor
+jobgroup_del=Delete Executor
+jobgroup_field_order=Order
+jobgroup_field_title=Title
+jobgroup_field_addressType=Registry Type
+jobgroup_field_addressType_0=Automatic registration
+jobgroup_field_addressType_1=Manual registration
+jobgroup_field_addressType_limit=Manually registration type, the machine address must not be empty
+jobgroup_field_registryList=machine address
+jobgroup_field_registryList_unvalid=registry machine address is illegal
+jobgroup_field_registryList_placeholder=Please enter the machine address, if there are more than one comma separated
+jobgroup_field_appName_limit=Limit the beginning of a lowercase letter, consists of lowercase letters、number and hyphen.
+jobgroup_field_appName_length=AppName length is limited to 4~64
+jobgroup_field_title_length=Title length is limited to 4~12
+jobgroup_field_order_digits=Please enter a positive integer
+jobgroup_field_orderrange=Order is limited to 1~1000
+jobgroup_del_limit_0=Refuse to delete, the executor is being used
+jobgroup_del_limit_1=Refuses to delete, the system retains at least one executor
+jobgroup_empty=There is no valid executor. Please contact the administrator
+
+## job conf
+jobconf_block_SERIAL_EXECUTION=Serial execution
+jobconf_block_DISCARD_LATER=Discard Later
+jobconf_block_COVER_EARLY=Cover Early
+jobconf_route_first=First
+jobconf_route_last=Last
+jobconf_route_round=Round
+jobconf_route_random=Random
+jobconf_route_consistenthash=Consistent Hash
+jobconf_route_lfu=Least Frequently Used
+jobconf_route_lru=Least Recently Used
+jobconf_route_failover=Failover
+jobconf_route_busyover=Busyover
+jobconf_route_shard=Sharding Broadcast
+jobconf_idleBeat=Idle check
+jobconf_beat=Heartbeats
+jobconf_monitor=Task Scheduling Center monitor alarm
+jobconf_monitor_detail=monitor alarm details
+jobconf_monitor_alarm_title=Alarm Type
+jobconf_monitor_alarm_type=Trigger Fail
+jobconf_monitor_alarm_content=Alarm Content
+jobconf_trigger_admin_adress=Trigger machine address
+jobconf_trigger_exe_regtype=Execotor-Registry Type
+jobconf_trigger_exe_regaddress=Execotor-Registry Address
+jobconf_trigger_address_empty=Trigger Fail:registry address is empty
+jobconf_trigger_run=Trigger Job
+jobconf_trigger_child_run=Trigger child job
+jobconf_callback_child_msg1={0}/{1} [Job ID={2}], Trigger {3}, Trigger msg: {4} <br>
+jobconf_callback_child_msg2={0}/{1} [Job ID={2}], Trigger Fail, Trigger msg: Job ID is illegal <br>
+jobconf_trigger_type=Job trigger type
+jobconf_trigger_type_cron=Cron trigger
+jobconf_trigger_type_manual=Manual trigger
+jobconf_trigger_type_parent=Parent job trigger
+jobconf_trigger_type_api=Api trigger
+jobconf_trigger_type_retry=Fail retry trigger
+
+## user
+user_manage=User Manage
+user_username=Username
+user_password=Password
+user_role=Role
+user_role_admin=Admin User
+user_role_normal=Normal User
+user_permission=Permission
+user_add=Add User
+user_update=Edit User
+user_username_repeat=Username Repeat
+user_username_valid=Restrictions start with a lowercase letter and consist of lowercase letters and Numbers
+user_password_update_placeholder=Please input password, empty means not update
+user_update_loginuser_limit=Operation of current login account is not allowed
+
+## help
+job_help=Tutorial
+job_help_document=Official Document
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/logback.xml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/logback.xml
new file mode 100644
index 0000000..c4d2840
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/logback.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="false" debug="false">
+
+    <contextName>logback</contextName>
+    <property name="log.path" value="../data/applogs/xxl-job/xxl-job-admin.log"/>
+
+    <!-- 彩色日志依赖的渲染类 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
+    <conversionRule conversionWord="wex"
+                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
+    <conversionRule conversionWord="wEx"
+                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+    <!-- 彩色日志格式 -->
+    <property name="CONSOLE_LOG_PATTERN"
+              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+    <!-- 控制台输出 -->
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+            <charset>utf8</charset>
+        </encoder>
+    </appender>
+
+    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
+            </pattern>
+        </encoder>
+    </appender>
+
+    <root level="info">
+        <appender-ref ref="console"/>
+        <appender-ref ref="file"/>
+    </root>
+
+</configuration>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml
new file mode 100644
index 0000000..9b14af4
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobGroupMapper.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+	"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.job.admin.dao.XxlJobGroupDao">
+
+	<resultMap id="XxlJobGroup" type="cn.gistack.job.admin.core.model.XxlJobGroup" >
+		<result column="id" property="id" />
+	    <result column="app_name" property="appName" />
+	    <result column="title" property="title" />
+	    <result column="order" property="order" />
+		<result column="address_type" property="addressType" />
+		<result column="address_list" property="addressList" />
+	</resultMap>
+
+	<sql id="Base_Column_List">
+		t.id,
+		t.app_name,
+		t.title,
+		t.`order`,
+		t.address_type,
+		t.address_list
+	</sql>
+
+	<select id="findAll" resultMap="XxlJobGroup">
+		SELECT <include refid="Base_Column_List" />
+		FROM xxl_job_group AS t
+		ORDER BY t.order ASC
+	</select>
+
+	<select id="findByAddressType" parameterType="java.lang.Integer" resultMap="XxlJobGroup">
+		SELECT <include refid="Base_Column_List" />
+		FROM xxl_job_group AS t
+		WHERE t.address_type = #{addressType}
+		ORDER BY t.order ASC
+	</select>
+
+	<insert id="save" parameterType="cn.gistack.job.admin.core.model.XxlJobGroup" useGeneratedKeys="true" keyProperty="id" >
+		INSERT INTO xxl_job_group ( `app_name`, `title`, `order`, `address_type`, `address_list`)
+		values ( #{appName}, #{title}, #{order}, #{addressType}, #{addressList});
+	</insert>
+
+	<update id="update" parameterType="cn.gistack.job.admin.core.model.XxlJobGroup" >
+		UPDATE xxl_job_group
+		SET `app_name` = #{appName},
+			`title` = #{title},
+			`order` = #{order},
+			`address_type` = #{addressType},
+			`address_list` = #{addressList}
+		WHERE id = #{id}
+	</update>
+
+	<delete id="remove" parameterType="java.lang.Integer" >
+		DELETE FROM xxl_job_group
+		WHERE id = #{id}
+	</delete>
+
+	<select id="load" parameterType="java.lang.Integer" resultMap="XxlJobGroup">
+		SELECT <include refid="Base_Column_List" />
+		FROM xxl_job_group AS t
+		WHERE t.id = #{id}
+	</select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml
new file mode 100644
index 0000000..3261136
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobInfoMapper.xml
@@ -0,0 +1,229 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+	"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.job.admin.dao.XxlJobInfoDao">
+
+	<resultMap id="XxlJobInfo" type="cn.gistack.job.admin.core.model.XxlJobInfo" >
+		<result column="id" property="id" />
+
+		<result column="job_group" property="jobGroup" />
+	    <result column="job_cron" property="jobCron" />
+	    <result column="job_desc" property="jobDesc" />
+
+	    <result column="add_time" property="addTime" />
+	    <result column="update_time" property="updateTime" />
+
+	    <result column="author" property="author" />
+	    <result column="alarm_email" property="alarmEmail" />
+
+		<result column="executor_route_strategy" property="executorRouteStrategy" />
+		<result column="executor_handler" property="executorHandler" />
+	    <result column="executor_param" property="executorParam" />
+		<result column="executor_block_strategy" property="executorBlockStrategy" />
+		<result column="executor_timeout" property="executorTimeout" />
+		<result column="executor_fail_retry_count" property="executorFailRetryCount" />
+
+	    <result column="glue_type" property="glueType" />
+	    <result column="glue_source" property="glueSource" />
+	    <result column="glue_remark" property="glueRemark" />
+		<result column="glue_updatetime" property="glueUpdatetime" />
+
+		<result column="child_jobid" property="childJobId" />
+
+		<result column="trigger_status" property="triggerStatus" />
+		<result column="trigger_last_time" property="triggerLastTime" />
+		<result column="trigger_next_time" property="triggerNextTime" />
+	</resultMap>
+
+	<sql id="Base_Column_List">
+		t.id,
+		t.job_group,
+		t.job_cron,
+		t.job_desc,
+		t.add_time,
+		t.update_time,
+		t.author,
+		t.alarm_email,
+		t.executor_route_strategy,
+		t.executor_handler,
+		t.executor_param,
+		t.executor_block_strategy,
+		t.executor_timeout,
+		t.executor_fail_retry_count,
+		t.glue_type,
+		t.glue_source,
+		t.glue_remark,
+		t.glue_updatetime,
+		t.child_jobid,
+		t.trigger_status,
+		t.trigger_last_time,
+		t.trigger_next_time
+	</sql>
+
+	<select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobInfo">
+		SELECT <include refid="Base_Column_List" />
+		FROM xxl_job_info AS t
+		<trim prefix="WHERE" prefixOverrides="AND | OR" >
+			<if test="jobGroup gt 0">
+				AND t.job_group = #{jobGroup}
+			</if>
+            <if test="triggerStatus gte 0">
+                AND t.trigger_status = #{triggerStatus}
+            </if>
+			<if test="jobDesc != null and jobDesc != ''">
+				AND t.job_desc like CONCAT(CONCAT('%', #{jobDesc}), '%')
+			</if>
+			<if test="executorHandler != null and executorHandler != ''">
+				AND t.executor_handler like CONCAT(CONCAT('%', #{executorHandler}), '%')
+			</if>
+			<if test="author != null and author != ''">
+				AND t.author like CONCAT(CONCAT('%', #{author}), '%')
+			</if>
+		</trim>
+		ORDER BY id DESC
+		LIMIT #{offset}, #{pagesize}
+	</select>
+
+	<select id="pageListCount" parameterType="java.util.HashMap" resultType="int">
+		SELECT count(1)
+		FROM xxl_job_info AS t
+		<trim prefix="WHERE" prefixOverrides="AND | OR" >
+			<if test="jobGroup gt 0">
+				AND t.job_group = #{jobGroup}
+			</if>
+            <if test="triggerStatus gte 0">
+                AND t.trigger_status = #{triggerStatus}
+            </if>
+			<if test="jobDesc != null and jobDesc != ''">
+				AND t.job_desc like CONCAT(CONCAT('%', #{jobDesc}), '%')
+			</if>
+			<if test="executorHandler != null and executorHandler != ''">
+				AND t.executor_handler like CONCAT(CONCAT('%', #{executorHandler}), '%')
+			</if>
+			<if test="author != null and author != ''">
+				AND t.author like CONCAT(CONCAT('%', #{author}), '%')
+			</if>
+		</trim>
+	</select>
+
+	<insert id="save" parameterType="cn.gistack.job.admin.core.model.XxlJobInfo" useGeneratedKeys="true" keyProperty="id" >
+		INSERT INTO xxl_job_info (
+			job_group,
+			job_cron,
+			job_desc,
+			add_time,
+			update_time,
+			author,
+			alarm_email,
+            executor_route_strategy,
+			executor_handler,
+			executor_param,
+			executor_block_strategy,
+			executor_timeout,
+			executor_fail_retry_count,
+			glue_type,
+			glue_source,
+			glue_remark,
+			glue_updatetime,
+			child_jobid,
+			trigger_status,
+			trigger_last_time,
+			trigger_next_time
+		) VALUES (
+			#{jobGroup},
+			#{jobCron},
+			#{jobDesc},
+			#{addTime},
+			#{updateTime},
+			#{author},
+			#{alarmEmail},
+			#{executorRouteStrategy},
+			#{executorHandler},
+			#{executorParam},
+			#{executorBlockStrategy},
+			#{executorTimeout},
+			#{executorFailRetryCount},
+			#{glueType},
+			#{glueSource},
+			#{glueRemark},
+			#{glueUpdatetime},
+			#{childJobId},
+			#{triggerStatus},
+			#{triggerLastTime},
+			#{triggerNextTime}
+		);
+		<!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
+			SELECT LAST_INSERT_ID()
+			/*SELECT @@IDENTITY AS id*/
+		</selectKey>-->
+	</insert>
+
+	<select id="loadById" parameterType="java.util.HashMap" resultMap="XxlJobInfo">
+		SELECT <include refid="Base_Column_List" />
+		FROM xxl_job_info AS t
+		WHERE t.id = #{id}
+	</select>
+
+	<update id="update" parameterType="cn.gistack.job.admin.core.model.XxlJobInfo" >
+		UPDATE xxl_job_info
+		SET
+			job_group = #{jobGroup},
+			job_cron = #{jobCron},
+			job_desc = #{jobDesc},
+			update_time = #{updateTime},
+			author = #{author},
+			alarm_email = #{alarmEmail},
+			executor_route_strategy = #{executorRouteStrategy},
+			executor_handler = #{executorHandler},
+			executor_param = #{executorParam},
+			executor_block_strategy = #{executorBlockStrategy},
+			executor_timeout = ${executorTimeout},
+			executor_fail_retry_count = ${executorFailRetryCount},
+			glue_type = #{glueType},
+			glue_source = #{glueSource},
+			glue_remark = #{glueRemark},
+			glue_updatetime = #{glueUpdatetime},
+			child_jobid = #{childJobId},
+			trigger_status = #{triggerStatus},
+			trigger_last_time = #{triggerLastTime},
+			trigger_next_time = #{triggerNextTime}
+		WHERE id = #{id}
+	</update>
+
+	<delete id="delete" parameterType="java.util.HashMap">
+		DELETE
+		FROM xxl_job_info
+		WHERE id = #{id}
+	</delete>
+
+	<select id="getJobsByGroup" parameterType="java.util.HashMap" resultMap="XxlJobInfo">
+		SELECT <include refid="Base_Column_List" />
+		FROM xxl_job_info AS t
+		WHERE t.job_group = #{jobGroup}
+	</select>
+
+	<select id="findAllCount" resultType="int">
+		SELECT count(1)
+		FROM xxl_job_info
+	</select>
+
+
+	<select id="scheduleJobQuery" parameterType="java.util.HashMap" resultMap="XxlJobInfo">
+		SELECT <include refid="Base_Column_List" />
+		FROM xxl_job_info AS t
+		WHERE t.trigger_status = 1
+			and t.trigger_next_time <![CDATA[ <= ]]> #{maxNextTime}
+		ORDER BY id ASC
+		LIMIT #{pagesize}
+	</select>
+
+	<update id="scheduleUpdate" parameterType="cn.gistack.job.admin.core.model.XxlJobInfo"  >
+		UPDATE xxl_job_info
+		SET
+			trigger_last_time = #{triggerLastTime},
+			trigger_next_time = #{triggerNextTime},
+			trigger_status = #{triggerStatus}
+		WHERE id = #{id}
+	</update>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml
new file mode 100644
index 0000000..2075a7d
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobLogGlueMapper.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+	"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.job.admin.dao.XxlJobLogGlueDao">
+
+	<resultMap id="XxlJobLogGlue" type="cn.gistack.job.admin.core.model.XxlJobLogGlue" >
+		<result column="id" property="id" />
+	    <result column="job_id" property="jobId" />
+		<result column="glue_type" property="glueType" />
+	    <result column="glue_source" property="glueSource" />
+	    <result column="glue_remark" property="glueRemark" />
+	    <result column="add_time" property="addTime" />
+	    <result column="update_time" property="updateTime" />
+	</resultMap>
+
+	<sql id="Base_Column_List">
+		t.id,
+		t.job_id,
+		t.glue_type,
+		t.glue_source,
+		t.glue_remark,
+		t.add_time,
+		t.update_time
+	</sql>
+
+	<insert id="save" parameterType="cn.gistack.job.admin.core.model.XxlJobLogGlue" useGeneratedKeys="true" keyProperty="id" >
+		INSERT INTO xxl_job_logglue (
+			`job_id`,
+			`glue_type`,
+			`glue_source`,
+			`glue_remark`,
+			`add_time`,
+			`update_time`
+		) VALUES (
+			#{jobId},
+			#{glueType},
+			#{glueSource},
+			#{glueRemark},
+			#{addTime},
+			#{updateTime}
+		);
+		<!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
+			SELECT LAST_INSERT_ID()
+		</selectKey>-->
+	</insert>
+
+	<select id="findByJobId" parameterType="java.lang.Integer" resultMap="XxlJobLogGlue">
+		SELECT <include refid="Base_Column_List" />
+		FROM xxl_job_logglue AS t
+		WHERE t.job_id = #{jobId}
+		ORDER BY id DESC
+	</select>
+
+	<delete id="removeOld" >
+		DELETE FROM xxl_job_logglue
+		WHERE id NOT in(
+			SELECT id FROM(
+				SELECT id FROM xxl_job_logglue
+				WHERE `job_id` = #{jobId}
+				ORDER BY update_time desc
+				LIMIT 0, #{limit}
+			) t1
+		) AND `job_id` = #{jobId}
+	</delete>
+
+	<delete id="deleteByJobId" parameterType="java.lang.Integer" >
+		DELETE FROM xxl_job_logglue
+		WHERE `job_id` = #{jobId}
+	</delete>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
new file mode 100644
index 0000000..6a91b1f
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
@@ -0,0 +1,249 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+	"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.job.admin.dao.XxlJobLogDao">
+
+	<resultMap id="XxlJobLog" type="cn.gistack.job.admin.core.model.XxlJobLog" >
+		<result column="id" property="id" />
+
+		<result column="job_group" property="jobGroup" />
+		<result column="job_id" property="jobId" />
+
+		<result column="executor_address" property="executorAddress" />
+		<result column="executor_handler" property="executorHandler" />
+	    <result column="executor_param" property="executorParam" />
+		<result column="executor_sharding_param" property="executorShardingParam" />
+		<result column="executor_fail_retry_count" property="executorFailRetryCount" />
+
+	    <result column="trigger_time" property="triggerTime" />
+	    <result column="trigger_code" property="triggerCode" />
+	    <result column="trigger_msg" property="triggerMsg" />
+
+	    <result column="handle_time" property="handleTime" />
+	    <result column="handle_code" property="handleCode" />
+	    <result column="handle_msg" property="handleMsg" />
+
+		<result column="alarm_status" property="alarmStatus" />
+	</resultMap>
+
+	<sql id="Base_Column_List">
+		t.id,
+		t.job_group,
+		t.job_id,
+		t.executor_address,
+		t.executor_handler,
+		t.executor_param,
+		t.executor_sharding_param,
+		t.executor_fail_retry_count,
+		t.trigger_time,
+		t.trigger_code,
+		t.trigger_msg,
+		t.handle_time,
+		t.handle_code,
+		t.handle_msg,
+		t.alarm_status
+	</sql>
+
+	<select id="pageList" resultMap="XxlJobLog">
+		SELECT <include refid="Base_Column_List" />
+		FROM xxl_job_log AS t
+		<trim prefix="WHERE" prefixOverrides="AND | OR" >
+			<if test="jobId==0 and jobGroup gt 0">
+				AND t.job_group = #{jobGroup}
+			</if>
+			<if test="jobId gt 0">
+				AND t.job_id = #{jobId}
+			</if>
+			<if test="triggerTimeStart != null">
+				AND t.trigger_time <![CDATA[ >= ]]> #{triggerTimeStart}
+			</if>
+			<if test="triggerTimeEnd != null">
+				AND t.trigger_time <![CDATA[ <= ]]> #{triggerTimeEnd}
+			</if>
+			<if test="logStatus == 1" >
+				AND t.handle_code = 200
+			</if>
+			<if test="logStatus == 2" >
+				AND (
+					t.trigger_code NOT IN (0, 200) OR
+					t.handle_code NOT IN (0, 200)
+				)
+			</if>
+			<if test="logStatus == 3" >
+				AND t.trigger_code = 200
+				AND t.handle_code = 0
+			</if>
+		</trim>
+		ORDER BY t.trigger_time DESC
+		LIMIT #{offset}, #{pagesize}
+	</select>
+
+	<select id="pageListCount" resultType="int">
+		SELECT count(1)
+		FROM xxl_job_log AS t
+		<trim prefix="WHERE" prefixOverrides="AND | OR" >
+			<if test="jobId==0 and jobGroup gt 0">
+				AND t.job_group = #{jobGroup}
+			</if>
+			<if test="jobId gt 0">
+				AND t.job_id = #{jobId}
+			</if>
+			<if test="triggerTimeStart != null">
+				AND t.trigger_time <![CDATA[ >= ]]> #{triggerTimeStart}
+			</if>
+			<if test="triggerTimeEnd != null">
+				AND t.trigger_time <![CDATA[ <= ]]> #{triggerTimeEnd}
+			</if>
+			<if test="logStatus == 1" >
+				AND t.handle_code = 200
+			</if>
+			<if test="logStatus == 2" >
+				AND (
+					t.trigger_code NOT IN (0, 200) OR
+					t.handle_code NOT IN (0, 200)
+				)
+			</if>
+			<if test="logStatus == 3" >
+				AND t.trigger_code = 200
+				AND t.handle_code = 0
+			</if>
+		</trim>
+	</select>
+
+	<select id="load" parameterType="java.lang.Long" resultMap="XxlJobLog">
+		SELECT <include refid="Base_Column_List" />
+		FROM xxl_job_log AS t
+		WHERE t.id = #{id}
+	</select>
+
+
+	<insert id="save" parameterType="cn.gistack.job.admin.core.model.XxlJobLog" useGeneratedKeys="true" keyProperty="id" >
+		INSERT INTO xxl_job_log (
+			`job_group`,
+			`job_id`,
+			`trigger_time`,
+			`trigger_code`,
+			`handle_code`
+		) VALUES (
+			#{jobGroup},
+			#{jobId},
+			#{triggerTime},
+			#{triggerCode},
+			#{handleCode}
+		);
+		<!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
+			SELECT LAST_INSERT_ID()
+		</selectKey>-->
+	</insert>
+
+	<update id="updateTriggerInfo" >
+		UPDATE xxl_job_log
+		SET
+			`trigger_time`= #{triggerTime},
+			`trigger_code`= #{triggerCode},
+			`trigger_msg`= #{triggerMsg},
+			`executor_address`= #{executorAddress},
+			`executor_handler`=#{executorHandler},
+			`executor_param`= #{executorParam},
+			`executor_sharding_param`= #{executorShardingParam},
+			`executor_fail_retry_count`= #{executorFailRetryCount}
+		WHERE `id`= #{id}
+	</update>
+
+	<update id="updateHandleInfo">
+		UPDATE xxl_job_log
+		SET
+			`handle_time`= #{handleTime},
+			`handle_code`= #{handleCode},
+			`handle_msg`= #{handleMsg}
+		WHERE `id`= #{id}
+	</update>
+
+	<delete id="delete" >
+		delete from xxl_job_log
+		WHERE job_id = #{jobId}
+	</delete>
+
+    <!--<select id="triggerCountByDay" resultType="java.util.Map" >
+		SELECT
+			DATE_FORMAT(trigger_time,'%Y-%m-%d') triggerDay,
+			COUNT(handle_code) triggerDayCount,
+			SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) as triggerDayCountRunning,
+			SUM(CASE WHEN handle_code = 200 then 1 else 0 end) as triggerDayCountSuc
+		FROM xxl_job_log
+		WHERE trigger_time BETWEEN #{from} and #{to}
+		GROUP BY triggerDay
+		ORDER BY triggerDay
+    </select>-->
+
+    <select id="findLogReport" resultType="java.util.Map" >
+		SELECT
+			COUNT(handle_code) triggerDayCount,
+			SUM(CASE WHEN (trigger_code in (0, 200) and handle_code = 0) then 1 else 0 end) as triggerDayCountRunning,
+			SUM(CASE WHEN handle_code = 200 then 1 else 0 end) as triggerDayCountSuc
+		FROM xxl_job_log
+		WHERE trigger_time BETWEEN #{from} and #{to}
+    </select>
+
+	<select id="findClearLogIds" resultType="long" >
+		SELECT id FROM xxl_job_log
+		<trim prefix="WHERE" prefixOverrides="AND | OR" >
+			<if test="jobGroup gt 0">
+				AND job_group = #{jobGroup}
+			</if>
+			<if test="jobId gt 0">
+				AND job_id = #{jobId}
+			</if>
+			<if test="clearBeforeTime != null">
+				AND trigger_time <![CDATA[ <= ]]> #{clearBeforeTime}
+			</if>
+			<if test="clearBeforeNum gt 0">
+				AND id NOT in(
+				SELECT id FROM(
+				SELECT id FROM xxl_job_log AS t
+				<trim prefix="WHERE" prefixOverrides="AND | OR" >
+					<if test="jobGroup gt 0">
+						AND t.job_group = #{jobGroup}
+					</if>
+					<if test="jobId gt 0">
+						AND t.job_id = #{jobId}
+					</if>
+				</trim>
+				ORDER BY t.trigger_time desc
+				LIMIT 0, #{clearBeforeNum}
+				) t1
+				)
+			</if>
+		</trim>
+		order by id asc
+		LIMIT #{pagesize}
+	</select>
+
+	<delete id="clearLog" >
+		delete from xxl_job_log
+		WHERE id in
+		<foreach collection="logIds" item="item" open="(" close=")" separator="," >
+			#{item}
+		</foreach>
+	</delete>
+
+	<select id="findFailJobLogIds" resultType="long" >
+		SELECT id FROM `xxl_job_log`
+		WHERE !(
+			(trigger_code in (0, 200) and handle_code = 0)
+			OR
+			(handle_code = 200)
+		)
+		AND `alarm_status` = 0
+		ORDER BY id ASC
+		LIMIT #{pagesize}
+	</select>
+
+	<update id="updateAlarmStatus" >
+		UPDATE xxl_job_log
+		SET
+			`alarm_status` = #{newAlarmStatus}
+		WHERE `id`= #{logId} AND `alarm_status` = #{oldAlarmStatus}
+	</update>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobLogReportMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobLogReportMapper.xml
new file mode 100644
index 0000000..c5905a0
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobLogReportMapper.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+	"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.job.admin.dao.XxlJobLogReportDao">
+
+	<resultMap id="XxlJobLogReport" type="cn.gistack.job.admin.core.model.XxlJobLogReport" >
+		<result column="id" property="id" />
+	    <result column="trigger_day" property="triggerDay" />
+		<result column="running_count" property="runningCount" />
+	    <result column="suc_count" property="sucCount" />
+	    <result column="fail_count" property="failCount" />
+	</resultMap>
+
+	<sql id="Base_Column_List">
+		t.id,
+		t.trigger_day,
+		t.running_count,
+		t.suc_count,
+		t.fail_count
+	</sql>
+
+	<insert id="save" parameterType="cn.gistack.job.admin.core.model.XxlJobLogReport" useGeneratedKeys="true" keyProperty="id" >
+		INSERT INTO xxl_job_log_report (
+			`trigger_day`,
+			`running_count`,
+			`suc_count`,
+			`fail_count`
+		) VALUES (
+			#{triggerDay},
+			#{runningCount},
+			#{sucCount},
+			#{failCount}
+		);
+		<!--<selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="id">
+			SELECT LAST_INSERT_ID()
+		</selectKey>-->
+	</insert>
+
+	<update id="update" >
+        UPDATE xxl_job_log_report
+        SET `running_count` = #{runningCount},
+        	`suc_count` = #{sucCount},
+        	`fail_count` = #{failCount}
+        WHERE `trigger_day` = #{triggerDay}
+    </update>
+
+	<select id="queryLogReport" resultMap="XxlJobLogReport">
+		SELECT <include refid="Base_Column_List" />
+		FROM xxl_job_log_report AS t
+		WHERE t.trigger_day between #{triggerDayFrom} and #{triggerDayTo}
+		ORDER BY t.trigger_day ASC
+	</select>
+
+	<select id="queryLogReportTotal" resultMap="XxlJobLogReport">
+		SELECT
+			SUM(running_count) running_count,
+			SUM(suc_count) suc_count,
+			SUM(fail_count) fail_count
+		FROM xxl_job_log_report AS t
+	</select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobRegistryMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobRegistryMapper.xml
new file mode 100644
index 0000000..681aca1
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobRegistryMapper.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+	"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.job.admin.dao.XxlJobRegistryDao">
+
+	<resultMap id="XxlJobRegistry" type="cn.gistack.job.admin.core.model.XxlJobRegistry" >
+		<result column="id" property="id" />
+	    <result column="registry_group" property="registryGroup" />
+	    <result column="registry_key" property="registryKey" />
+	    <result column="registry_value" property="registryValue" />
+		<result column="update_time" property="updateTime" />
+	</resultMap>
+
+	<sql id="Base_Column_List">
+		t.id,
+		t.registry_group,
+		t.registry_key,
+		t.registry_value,
+		t.update_time
+	</sql>
+
+	<select id="findDead" parameterType="java.util.HashMap" resultType="java.lang.Integer" >
+		SELECT t.id
+		FROM xxl_job_registry AS t
+		WHERE t.update_time <![CDATA[ < ]]> DATE_ADD(#{nowTime},INTERVAL -#{timeout} SECOND)
+	</select>
+
+	<delete id="removeDead" parameterType="java.lang.Integer" >
+		DELETE FROM xxl_job_registry
+		WHERE id in
+		<foreach collection="ids" item="item" open="(" close=")" separator="," >
+			#{item}
+		</foreach>
+	</delete>
+
+	<select id="findAll" parameterType="java.util.HashMap" resultMap="XxlJobRegistry">
+		SELECT <include refid="Base_Column_List" />
+		FROM xxl_job_registry AS t
+		WHERE t.update_time <![CDATA[ > ]]> DATE_ADD(#{nowTime},INTERVAL -#{timeout} SECOND)
+	</select>
+
+    <update id="registryUpdate" >
+        UPDATE xxl_job_registry
+        SET `update_time` = #{updateTime}
+        WHERE `registry_group` = #{registryGroup}
+          AND `registry_key` = #{registryKey}
+          AND `registry_value` = #{registryValue}
+    </update>
+
+    <insert id="registrySave" >
+        INSERT INTO xxl_job_registry( `registry_group` , `registry_key` , `registry_value`, `update_time`)
+        VALUES( #{registryGroup}  , #{registryKey} , #{registryValue}, #{updateTime})
+    </insert>
+
+	<delete id="registryDelete" >
+		DELETE FROM xxl_job_registry
+		WHERE registry_group = #{registryGroup}
+			AND registry_key = #{registryKey}
+			AND registry_value = #{registryValue}
+	</delete>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobUserMapper.xml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobUserMapper.xml
new file mode 100644
index 0000000..26ec053
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/mybatis-mapper/XxlJobUserMapper.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+	"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.job.admin.dao.XxlJobUserDao">
+
+	<resultMap id="XxlJobUser" type="cn.gistack.job.admin.core.model.XxlJobUser" >
+		<result column="id" property="id" />
+		<result column="username" property="username" />
+	    <result column="password" property="password" />
+	    <result column="role" property="role" />
+	    <result column="permission" property="permission" />
+	</resultMap>
+
+	<sql id="Base_Column_List">
+		t.id,
+		t.username,
+		t.password,
+		t.role,
+		t.permission
+	</sql>
+
+	<select id="pageList" parameterType="java.util.HashMap" resultMap="XxlJobUser">
+		SELECT <include refid="Base_Column_List" />
+		FROM xxl_job_user AS t
+		<trim prefix="WHERE" prefixOverrides="AND | OR" >
+			<if test="username != null and username != ''">
+				AND t.username like CONCAT(CONCAT('%', #{username}), '%')
+			</if>
+			<if test="role gt -1">
+				AND t.role = #{role}
+			</if>
+		</trim>
+		ORDER BY username ASC
+		LIMIT #{offset}, #{pagesize}
+	</select>
+
+	<select id="pageListCount" parameterType="java.util.HashMap" resultType="int">
+		SELECT count(1)
+		FROM xxl_job_user AS t
+		<trim prefix="WHERE" prefixOverrides="AND | OR" >
+			<if test="username != null and username != ''">
+				AND t.username like CONCAT(CONCAT('%', #{username}), '%')
+			</if>
+			<if test="role gt -1">
+				AND t.role = #{role}
+			</if>
+		</trim>
+	</select>
+
+	<select id="loadByUserName" parameterType="java.util.HashMap" resultMap="XxlJobUser">
+		SELECT <include refid="Base_Column_List" />
+		FROM xxl_job_user AS t
+		WHERE t.username = #{username}
+	</select>
+
+	<insert id="save" parameterType="cn.gistack.job.admin.core.model.XxlJobUser" useGeneratedKeys="true" keyProperty="id" >
+		INSERT INTO xxl_job_user (
+			username,
+			password,
+			role,
+			permission
+		) VALUES (
+			#{username},
+			#{password},
+			#{role},
+			#{permission}
+		);
+	</insert>
+
+	<update id="update" parameterType="cn.gistack.job.admin.core.model.XxlJobUser" >
+		UPDATE xxl_job_user
+		SET
+			<if test="password != null and password != ''">
+				password = #{password},
+			</if>
+			role = #{role},
+			permission = #{permission}
+		WHERE id = #{id}
+	</update>
+
+	<delete id="delete" parameterType="java.util.HashMap">
+		DELETE
+		FROM xxl_job_user
+		WHERE id = #{id}
+	</delete>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/css/ionicons.min.css b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/css/ionicons.min.css
new file mode 100644
index 0000000..baba9e9
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/css/ionicons.min.css
@@ -0,0 +1,11 @@
+@charset "UTF-8";/*!
+  Ionicons, v2.0.0
+  Created by Ben Sperry for the Ionic Framework, http://ionicons.com/
+  https://twitter.com/benjsperry  https://twitter.com/ionicframework
+  MIT License: https://github.com/driftyco/ionicons
+
+  Android-style icons originally built by Google’s
+  Material Design Icons: https://github.com/google/material-design-icons
+  used under CC BY http://creativecommons.org/licenses/by/4.0/
+  Modified icons to fit ionicon’s grid from original.
+*/@font-face{font-family:"Ionicons";src:url("../fonts/ionicons.eot?v=2.0.0");src:url("../fonts/ionicons.eot?v=2.0.0#iefix") format("embedded-opentype"),url("../fonts/ionicons.ttf?v=2.0.0") format("truetype"),url("../fonts/ionicons.woff?v=2.0.0") format("woff"),url("../fonts/ionicons.svg?v=2.0.0#Ionicons") format("svg");font-weight:normal;font-style:normal}.ion,.ionicons,.ion-alert:before,.ion-alert-circled:before,.ion-android-add:before,.ion-android-add-circle:before,.ion-android-alarm-clock:before,.ion-android-alert:before,.ion-android-apps:before,.ion-android-archive:before,.ion-android-arrow-back:before,.ion-android-arrow-down:before,.ion-android-arrow-dropdown:before,.ion-android-arrow-dropdown-circle:before,.ion-android-arrow-dropleft:before,.ion-android-arrow-dropleft-circle:before,.ion-android-arrow-dropright:before,.ion-android-arrow-dropright-circle:before,.ion-android-arrow-dropup:before,.ion-android-arrow-dropup-circle:before,.ion-android-arrow-forward:before,.ion-android-arrow-up:before,.ion-android-attach:before,.ion-android-bar:before,.ion-android-bicycle:before,.ion-android-boat:before,.ion-android-bookmark:before,.ion-android-bulb:before,.ion-android-bus:before,.ion-android-calendar:before,.ion-android-call:before,.ion-android-camera:before,.ion-android-cancel:before,.ion-android-car:before,.ion-android-cart:before,.ion-android-chat:before,.ion-android-checkbox:before,.ion-android-checkbox-blank:before,.ion-android-checkbox-outline:before,.ion-android-checkbox-outline-blank:before,.ion-android-checkmark-circle:before,.ion-android-clipboard:before,.ion-android-close:before,.ion-android-cloud:before,.ion-android-cloud-circle:before,.ion-android-cloud-done:before,.ion-android-cloud-outline:before,.ion-android-color-palette:before,.ion-android-compass:before,.ion-android-contact:before,.ion-android-contacts:before,.ion-android-contract:before,.ion-android-create:before,.ion-android-delete:before,.ion-android-desktop:before,.ion-android-document:before,.ion-android-done:before,.ion-android-done-all:before,.ion-android-download:before,.ion-android-drafts:before,.ion-android-exit:before,.ion-android-expand:before,.ion-android-favorite:before,.ion-android-favorite-outline:before,.ion-android-film:before,.ion-android-folder:before,.ion-android-folder-open:before,.ion-android-funnel:before,.ion-android-globe:before,.ion-android-hand:before,.ion-android-hangout:before,.ion-android-happy:before,.ion-android-home:before,.ion-android-image:before,.ion-android-laptop:before,.ion-android-list:before,.ion-android-locate:before,.ion-android-lock:before,.ion-android-mail:before,.ion-android-map:before,.ion-android-menu:before,.ion-android-microphone:before,.ion-android-microphone-off:before,.ion-android-more-horizontal:before,.ion-android-more-vertical:before,.ion-android-navigate:before,.ion-android-notifications:before,.ion-android-notifications-none:before,.ion-android-notifications-off:before,.ion-android-open:before,.ion-android-options:before,.ion-android-people:before,.ion-android-person:before,.ion-android-person-add:before,.ion-android-phone-landscape:before,.ion-android-phone-portrait:before,.ion-android-pin:before,.ion-android-plane:before,.ion-android-playstore:before,.ion-android-print:before,.ion-android-radio-button-off:before,.ion-android-radio-button-on:before,.ion-android-refresh:before,.ion-android-remove:before,.ion-android-remove-circle:before,.ion-android-restaurant:before,.ion-android-sad:before,.ion-android-search:before,.ion-android-send:before,.ion-android-settings:before,.ion-android-share:before,.ion-android-share-alt:before,.ion-android-star:before,.ion-android-star-half:before,.ion-android-star-outline:before,.ion-android-stopwatch:before,.ion-android-subway:before,.ion-android-sunny:before,.ion-android-sync:before,.ion-android-textsms:before,.ion-android-time:before,.ion-android-train:before,.ion-android-unlock:before,.ion-android-upload:before,.ion-android-volume-down:before,.ion-android-volume-mute:before,.ion-android-volume-off:before,.ion-android-volume-up:before,.ion-android-walk:before,.ion-android-warning:before,.ion-android-watch:before,.ion-android-wifi:before,.ion-aperture:before,.ion-archive:before,.ion-arrow-down-a:before,.ion-arrow-down-b:before,.ion-arrow-down-c:before,.ion-arrow-expand:before,.ion-arrow-graph-down-left:before,.ion-arrow-graph-down-right:before,.ion-arrow-graph-up-left:before,.ion-arrow-graph-up-right:before,.ion-arrow-left-a:before,.ion-arrow-left-b:before,.ion-arrow-left-c:before,.ion-arrow-move:before,.ion-arrow-resize:before,.ion-arrow-return-left:before,.ion-arrow-return-right:before,.ion-arrow-right-a:before,.ion-arrow-right-b:before,.ion-arrow-right-c:before,.ion-arrow-shrink:before,.ion-arrow-swap:before,.ion-arrow-up-a:before,.ion-arrow-up-b:before,.ion-arrow-up-c:before,.ion-asterisk:before,.ion-at:before,.ion-backspace:before,.ion-backspace-outline:before,.ion-bag:before,.ion-battery-charging:before,.ion-battery-empty:before,.ion-battery-full:before,.ion-battery-half:before,.ion-battery-low:before,.ion-beaker:before,.ion-beer:before,.ion-bluetooth:before,.ion-bonfire:before,.ion-bookmark:before,.ion-bowtie:before,.ion-briefcase:before,.ion-bug:before,.ion-calculator:before,.ion-calendar:before,.ion-camera:before,.ion-card:before,.ion-cash:before,.ion-chatbox:before,.ion-chatbox-working:before,.ion-chatboxes:before,.ion-chatbubble:before,.ion-chatbubble-working:before,.ion-chatbubbles:before,.ion-checkmark:before,.ion-checkmark-circled:before,.ion-checkmark-round:before,.ion-chevron-down:before,.ion-chevron-left:before,.ion-chevron-right:before,.ion-chevron-up:before,.ion-clipboard:before,.ion-clock:before,.ion-close:before,.ion-close-circled:before,.ion-close-round:before,.ion-closed-captioning:before,.ion-cloud:before,.ion-code:before,.ion-code-download:before,.ion-code-working:before,.ion-coffee:before,.ion-compass:before,.ion-compose:before,.ion-connection-bars:before,.ion-contrast:before,.ion-crop:before,.ion-cube:before,.ion-disc:before,.ion-document:before,.ion-document-text:before,.ion-drag:before,.ion-earth:before,.ion-easel:before,.ion-edit:before,.ion-egg:before,.ion-eject:before,.ion-email:before,.ion-email-unread:before,.ion-erlenmeyer-flask:before,.ion-erlenmeyer-flask-bubbles:before,.ion-eye:before,.ion-eye-disabled:before,.ion-female:before,.ion-filing:before,.ion-film-marker:before,.ion-fireball:before,.ion-flag:before,.ion-flame:before,.ion-flash:before,.ion-flash-off:before,.ion-folder:before,.ion-fork:before,.ion-fork-repo:before,.ion-forward:before,.ion-funnel:before,.ion-gear-a:before,.ion-gear-b:before,.ion-grid:before,.ion-hammer:before,.ion-happy:before,.ion-happy-outline:before,.ion-headphone:before,.ion-heart:before,.ion-heart-broken:before,.ion-help:before,.ion-help-buoy:before,.ion-help-circled:before,.ion-home:before,.ion-icecream:before,.ion-image:before,.ion-images:before,.ion-information:before,.ion-information-circled:before,.ion-ionic:before,.ion-ios-alarm:before,.ion-ios-alarm-outline:before,.ion-ios-albums:before,.ion-ios-albums-outline:before,.ion-ios-americanfootball:before,.ion-ios-americanfootball-outline:before,.ion-ios-analytics:before,.ion-ios-analytics-outline:before,.ion-ios-arrow-back:before,.ion-ios-arrow-down:before,.ion-ios-arrow-forward:before,.ion-ios-arrow-left:before,.ion-ios-arrow-right:before,.ion-ios-arrow-thin-down:before,.ion-ios-arrow-thin-left:before,.ion-ios-arrow-thin-right:before,.ion-ios-arrow-thin-up:before,.ion-ios-arrow-up:before,.ion-ios-at:before,.ion-ios-at-outline:before,.ion-ios-barcode:before,.ion-ios-barcode-outline:before,.ion-ios-baseball:before,.ion-ios-baseball-outline:before,.ion-ios-basketball:before,.ion-ios-basketball-outline:before,.ion-ios-bell:before,.ion-ios-bell-outline:before,.ion-ios-body:before,.ion-ios-body-outline:before,.ion-ios-bolt:before,.ion-ios-bolt-outline:before,.ion-ios-book:before,.ion-ios-book-outline:before,.ion-ios-bookmarks:before,.ion-ios-bookmarks-outline:before,.ion-ios-box:before,.ion-ios-box-outline:before,.ion-ios-briefcase:before,.ion-ios-briefcase-outline:before,.ion-ios-browsers:before,.ion-ios-browsers-outline:before,.ion-ios-calculator:before,.ion-ios-calculator-outline:before,.ion-ios-calendar:before,.ion-ios-calendar-outline:before,.ion-ios-camera:before,.ion-ios-camera-outline:before,.ion-ios-cart:before,.ion-ios-cart-outline:before,.ion-ios-chatboxes:before,.ion-ios-chatboxes-outline:before,.ion-ios-chatbubble:before,.ion-ios-chatbubble-outline:before,.ion-ios-checkmark:before,.ion-ios-checkmark-empty:before,.ion-ios-checkmark-outline:before,.ion-ios-circle-filled:before,.ion-ios-circle-outline:before,.ion-ios-clock:before,.ion-ios-clock-outline:before,.ion-ios-close:before,.ion-ios-close-empty:before,.ion-ios-close-outline:before,.ion-ios-cloud:before,.ion-ios-cloud-download:before,.ion-ios-cloud-download-outline:before,.ion-ios-cloud-outline:before,.ion-ios-cloud-upload:before,.ion-ios-cloud-upload-outline:before,.ion-ios-cloudy:before,.ion-ios-cloudy-night:before,.ion-ios-cloudy-night-outline:before,.ion-ios-cloudy-outline:before,.ion-ios-cog:before,.ion-ios-cog-outline:before,.ion-ios-color-filter:before,.ion-ios-color-filter-outline:before,.ion-ios-color-wand:before,.ion-ios-color-wand-outline:before,.ion-ios-compose:before,.ion-ios-compose-outline:before,.ion-ios-contact:before,.ion-ios-contact-outline:before,.ion-ios-copy:before,.ion-ios-copy-outline:before,.ion-ios-crop:before,.ion-ios-crop-strong:before,.ion-ios-download:before,.ion-ios-download-outline:before,.ion-ios-drag:before,.ion-ios-email:before,.ion-ios-email-outline:before,.ion-ios-eye:before,.ion-ios-eye-outline:before,.ion-ios-fastforward:before,.ion-ios-fastforward-outline:before,.ion-ios-filing:before,.ion-ios-filing-outline:before,.ion-ios-film:before,.ion-ios-film-outline:before,.ion-ios-flag:before,.ion-ios-flag-outline:before,.ion-ios-flame:before,.ion-ios-flame-outline:before,.ion-ios-flask:before,.ion-ios-flask-outline:before,.ion-ios-flower:before,.ion-ios-flower-outline:before,.ion-ios-folder:before,.ion-ios-folder-outline:before,.ion-ios-football:before,.ion-ios-football-outline:before,.ion-ios-game-controller-a:before,.ion-ios-game-controller-a-outline:before,.ion-ios-game-controller-b:before,.ion-ios-game-controller-b-outline:before,.ion-ios-gear:before,.ion-ios-gear-outline:before,.ion-ios-glasses:before,.ion-ios-glasses-outline:before,.ion-ios-grid-view:before,.ion-ios-grid-view-outline:before,.ion-ios-heart:before,.ion-ios-heart-outline:before,.ion-ios-help:before,.ion-ios-help-empty:before,.ion-ios-help-outline:before,.ion-ios-home:before,.ion-ios-home-outline:before,.ion-ios-infinite:before,.ion-ios-infinite-outline:before,.ion-ios-information:before,.ion-ios-information-empty:before,.ion-ios-information-outline:before,.ion-ios-ionic-outline:before,.ion-ios-keypad:before,.ion-ios-keypad-outline:before,.ion-ios-lightbulb:before,.ion-ios-lightbulb-outline:before,.ion-ios-list:before,.ion-ios-list-outline:before,.ion-ios-location:before,.ion-ios-location-outline:before,.ion-ios-locked:before,.ion-ios-locked-outline:before,.ion-ios-loop:before,.ion-ios-loop-strong:before,.ion-ios-medical:before,.ion-ios-medical-outline:before,.ion-ios-medkit:before,.ion-ios-medkit-outline:before,.ion-ios-mic:before,.ion-ios-mic-off:before,.ion-ios-mic-outline:before,.ion-ios-minus:before,.ion-ios-minus-empty:before,.ion-ios-minus-outline:before,.ion-ios-monitor:before,.ion-ios-monitor-outline:before,.ion-ios-moon:before,.ion-ios-moon-outline:before,.ion-ios-more:before,.ion-ios-more-outline:before,.ion-ios-musical-note:before,.ion-ios-musical-notes:before,.ion-ios-navigate:before,.ion-ios-navigate-outline:before,.ion-ios-nutrition:before,.ion-ios-nutrition-outline:before,.ion-ios-paper:before,.ion-ios-paper-outline:before,.ion-ios-paperplane:before,.ion-ios-paperplane-outline:before,.ion-ios-partlysunny:before,.ion-ios-partlysunny-outline:before,.ion-ios-pause:before,.ion-ios-pause-outline:before,.ion-ios-paw:before,.ion-ios-paw-outline:before,.ion-ios-people:before,.ion-ios-people-outline:before,.ion-ios-person:before,.ion-ios-person-outline:before,.ion-ios-personadd:before,.ion-ios-personadd-outline:before,.ion-ios-photos:before,.ion-ios-photos-outline:before,.ion-ios-pie:before,.ion-ios-pie-outline:before,.ion-ios-pint:before,.ion-ios-pint-outline:before,.ion-ios-play:before,.ion-ios-play-outline:before,.ion-ios-plus:before,.ion-ios-plus-empty:before,.ion-ios-plus-outline:before,.ion-ios-pricetag:before,.ion-ios-pricetag-outline:before,.ion-ios-pricetags:before,.ion-ios-pricetags-outline:before,.ion-ios-printer:before,.ion-ios-printer-outline:before,.ion-ios-pulse:before,.ion-ios-pulse-strong:before,.ion-ios-rainy:before,.ion-ios-rainy-outline:before,.ion-ios-recording:before,.ion-ios-recording-outline:before,.ion-ios-redo:before,.ion-ios-redo-outline:before,.ion-ios-refresh:before,.ion-ios-refresh-empty:before,.ion-ios-refresh-outline:before,.ion-ios-reload:before,.ion-ios-reverse-camera:before,.ion-ios-reverse-camera-outline:before,.ion-ios-rewind:before,.ion-ios-rewind-outline:before,.ion-ios-rose:before,.ion-ios-rose-outline:before,.ion-ios-search:before,.ion-ios-search-strong:before,.ion-ios-settings:before,.ion-ios-settings-strong:before,.ion-ios-shuffle:before,.ion-ios-shuffle-strong:before,.ion-ios-skipbackward:before,.ion-ios-skipbackward-outline:before,.ion-ios-skipforward:before,.ion-ios-skipforward-outline:before,.ion-ios-snowy:before,.ion-ios-speedometer:before,.ion-ios-speedometer-outline:before,.ion-ios-star:before,.ion-ios-star-half:before,.ion-ios-star-outline:before,.ion-ios-stopwatch:before,.ion-ios-stopwatch-outline:before,.ion-ios-sunny:before,.ion-ios-sunny-outline:before,.ion-ios-telephone:before,.ion-ios-telephone-outline:before,.ion-ios-tennisball:before,.ion-ios-tennisball-outline:before,.ion-ios-thunderstorm:before,.ion-ios-thunderstorm-outline:before,.ion-ios-time:before,.ion-ios-time-outline:before,.ion-ios-timer:before,.ion-ios-timer-outline:before,.ion-ios-toggle:before,.ion-ios-toggle-outline:before,.ion-ios-trash:before,.ion-ios-trash-outline:before,.ion-ios-undo:before,.ion-ios-undo-outline:before,.ion-ios-unlocked:before,.ion-ios-unlocked-outline:before,.ion-ios-upload:before,.ion-ios-upload-outline:before,.ion-ios-videocam:before,.ion-ios-videocam-outline:before,.ion-ios-volume-high:before,.ion-ios-volume-low:before,.ion-ios-wineglass:before,.ion-ios-wineglass-outline:before,.ion-ios-world:before,.ion-ios-world-outline:before,.ion-ipad:before,.ion-iphone:before,.ion-ipod:before,.ion-jet:before,.ion-key:before,.ion-knife:before,.ion-laptop:before,.ion-leaf:before,.ion-levels:before,.ion-lightbulb:before,.ion-link:before,.ion-load-a:before,.ion-load-b:before,.ion-load-c:before,.ion-load-d:before,.ion-location:before,.ion-lock-combination:before,.ion-locked:before,.ion-log-in:before,.ion-log-out:before,.ion-loop:before,.ion-magnet:before,.ion-male:before,.ion-man:before,.ion-map:before,.ion-medkit:before,.ion-merge:before,.ion-mic-a:before,.ion-mic-b:before,.ion-mic-c:before,.ion-minus:before,.ion-minus-circled:before,.ion-minus-round:before,.ion-model-s:before,.ion-monitor:before,.ion-more:before,.ion-mouse:before,.ion-music-note:before,.ion-navicon:before,.ion-navicon-round:before,.ion-navigate:before,.ion-network:before,.ion-no-smoking:before,.ion-nuclear:before,.ion-outlet:before,.ion-paintbrush:before,.ion-paintbucket:before,.ion-paper-airplane:before,.ion-paperclip:before,.ion-pause:before,.ion-person:before,.ion-person-add:before,.ion-person-stalker:before,.ion-pie-graph:before,.ion-pin:before,.ion-pinpoint:before,.ion-pizza:before,.ion-plane:before,.ion-planet:before,.ion-play:before,.ion-playstation:before,.ion-plus:before,.ion-plus-circled:before,.ion-plus-round:before,.ion-podium:before,.ion-pound:before,.ion-power:before,.ion-pricetag:before,.ion-pricetags:before,.ion-printer:before,.ion-pull-request:before,.ion-qr-scanner:before,.ion-quote:before,.ion-radio-waves:before,.ion-record:before,.ion-refresh:before,.ion-reply:before,.ion-reply-all:before,.ion-ribbon-a:before,.ion-ribbon-b:before,.ion-sad:before,.ion-sad-outline:before,.ion-scissors:before,.ion-search:before,.ion-settings:before,.ion-share:before,.ion-shuffle:before,.ion-skip-backward:before,.ion-skip-forward:before,.ion-social-android:before,.ion-social-android-outline:before,.ion-social-angular:before,.ion-social-angular-outline:before,.ion-social-apple:before,.ion-social-apple-outline:before,.ion-social-bitcoin:before,.ion-social-bitcoin-outline:before,.ion-social-buffer:before,.ion-social-buffer-outline:before,.ion-social-chrome:before,.ion-social-chrome-outline:before,.ion-social-codepen:before,.ion-social-codepen-outline:before,.ion-social-css3:before,.ion-social-css3-outline:before,.ion-social-designernews:before,.ion-social-designernews-outline:before,.ion-social-dribbble:before,.ion-social-dribbble-outline:before,.ion-social-dropbox:before,.ion-social-dropbox-outline:before,.ion-social-euro:before,.ion-social-euro-outline:before,.ion-social-facebook:before,.ion-social-facebook-outline:before,.ion-social-foursquare:before,.ion-social-foursquare-outline:before,.ion-social-freebsd-devil:before,.ion-social-github:before,.ion-social-github-outline:before,.ion-social-google:before,.ion-social-google-outline:before,.ion-social-googleplus:before,.ion-social-googleplus-outline:before,.ion-social-hackernews:before,.ion-social-hackernews-outline:before,.ion-social-html5:before,.ion-social-html5-outline:before,.ion-social-instagram:before,.ion-social-instagram-outline:before,.ion-social-javascript:before,.ion-social-javascript-outline:before,.ion-social-linkedin:before,.ion-social-linkedin-outline:before,.ion-social-markdown:before,.ion-social-nodejs:before,.ion-social-octocat:before,.ion-social-pinterest:before,.ion-social-pinterest-outline:before,.ion-social-python:before,.ion-social-reddit:before,.ion-social-reddit-outline:before,.ion-social-rss:before,.ion-social-rss-outline:before,.ion-social-sass:before,.ion-social-skype:before,.ion-social-skype-outline:before,.ion-social-snapchat:before,.ion-social-snapchat-outline:before,.ion-social-tumblr:before,.ion-social-tumblr-outline:before,.ion-social-tux:before,.ion-social-twitch:before,.ion-social-twitch-outline:before,.ion-social-twitter:before,.ion-social-twitter-outline:before,.ion-social-usd:before,.ion-social-usd-outline:before,.ion-social-vimeo:before,.ion-social-vimeo-outline:before,.ion-social-whatsapp:before,.ion-social-whatsapp-outline:before,.ion-social-windows:before,.ion-social-windows-outline:before,.ion-social-wordpress:before,.ion-social-wordpress-outline:before,.ion-social-yahoo:before,.ion-social-yahoo-outline:before,.ion-social-yen:before,.ion-social-yen-outline:before,.ion-social-youtube:before,.ion-social-youtube-outline:before,.ion-soup-can:before,.ion-soup-can-outline:before,.ion-speakerphone:before,.ion-speedometer:before,.ion-spoon:before,.ion-star:before,.ion-stats-bars:before,.ion-steam:before,.ion-stop:before,.ion-thermometer:before,.ion-thumbsdown:before,.ion-thumbsup:before,.ion-toggle:before,.ion-toggle-filled:before,.ion-transgender:before,.ion-trash-a:before,.ion-trash-b:before,.ion-trophy:before,.ion-tshirt:before,.ion-tshirt-outline:before,.ion-umbrella:before,.ion-university:before,.ion-unlocked:before,.ion-upload:before,.ion-usb:before,.ion-videocamera:before,.ion-volume-high:before,.ion-volume-low:before,.ion-volume-medium:before,.ion-volume-mute:before,.ion-wand:before,.ion-waterdrop:before,.ion-wifi:before,.ion-wineglass:before,.ion-woman:before,.ion-wrench:before,.ion-xbox:before{display:inline-block;font-family:"Ionicons";speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-alert:before{content:"\f101"}.ion-alert-circled:before{content:"\f100"}.ion-android-add:before{content:"\f2c7"}.ion-android-add-circle:before{content:"\f359"}.ion-android-alarm-clock:before{content:"\f35a"}.ion-android-alert:before{content:"\f35b"}.ion-android-apps:before{content:"\f35c"}.ion-android-archive:before{content:"\f2c9"}.ion-android-arrow-back:before{content:"\f2ca"}.ion-android-arrow-down:before{content:"\f35d"}.ion-android-arrow-dropdown:before{content:"\f35f"}.ion-android-arrow-dropdown-circle:before{content:"\f35e"}.ion-android-arrow-dropleft:before{content:"\f361"}.ion-android-arrow-dropleft-circle:before{content:"\f360"}.ion-android-arrow-dropright:before{content:"\f363"}.ion-android-arrow-dropright-circle:before{content:"\f362"}.ion-android-arrow-dropup:before{content:"\f365"}.ion-android-arrow-dropup-circle:before{content:"\f364"}.ion-android-arrow-forward:before{content:"\f30f"}.ion-android-arrow-up:before{content:"\f366"}.ion-android-attach:before{content:"\f367"}.ion-android-bar:before{content:"\f368"}.ion-android-bicycle:before{content:"\f369"}.ion-android-boat:before{content:"\f36a"}.ion-android-bookmark:before{content:"\f36b"}.ion-android-bulb:before{content:"\f36c"}.ion-android-bus:before{content:"\f36d"}.ion-android-calendar:before{content:"\f2d1"}.ion-android-call:before{content:"\f2d2"}.ion-android-camera:before{content:"\f2d3"}.ion-android-cancel:before{content:"\f36e"}.ion-android-car:before{content:"\f36f"}.ion-android-cart:before{content:"\f370"}.ion-android-chat:before{content:"\f2d4"}.ion-android-checkbox:before{content:"\f374"}.ion-android-checkbox-blank:before{content:"\f371"}.ion-android-checkbox-outline:before{content:"\f373"}.ion-android-checkbox-outline-blank:before{content:"\f372"}.ion-android-checkmark-circle:before{content:"\f375"}.ion-android-clipboard:before{content:"\f376"}.ion-android-close:before{content:"\f2d7"}.ion-android-cloud:before{content:"\f37a"}.ion-android-cloud-circle:before{content:"\f377"}.ion-android-cloud-done:before{content:"\f378"}.ion-android-cloud-outline:before{content:"\f379"}.ion-android-color-palette:before{content:"\f37b"}.ion-android-compass:before{content:"\f37c"}.ion-android-contact:before{content:"\f2d8"}.ion-android-contacts:before{content:"\f2d9"}.ion-android-contract:before{content:"\f37d"}.ion-android-create:before{content:"\f37e"}.ion-android-delete:before{content:"\f37f"}.ion-android-desktop:before{content:"\f380"}.ion-android-document:before{content:"\f381"}.ion-android-done:before{content:"\f383"}.ion-android-done-all:before{content:"\f382"}.ion-android-download:before{content:"\f2dd"}.ion-android-drafts:before{content:"\f384"}.ion-android-exit:before{content:"\f385"}.ion-android-expand:before{content:"\f386"}.ion-android-favorite:before{content:"\f388"}.ion-android-favorite-outline:before{content:"\f387"}.ion-android-film:before{content:"\f389"}.ion-android-folder:before{content:"\f2e0"}.ion-android-folder-open:before{content:"\f38a"}.ion-android-funnel:before{content:"\f38b"}.ion-android-globe:before{content:"\f38c"}.ion-android-hand:before{content:"\f2e3"}.ion-android-hangout:before{content:"\f38d"}.ion-android-happy:before{content:"\f38e"}.ion-android-home:before{content:"\f38f"}.ion-android-image:before{content:"\f2e4"}.ion-android-laptop:before{content:"\f390"}.ion-android-list:before{content:"\f391"}.ion-android-locate:before{content:"\f2e9"}.ion-android-lock:before{content:"\f392"}.ion-android-mail:before{content:"\f2eb"}.ion-android-map:before{content:"\f393"}.ion-android-menu:before{content:"\f394"}.ion-android-microphone:before{content:"\f2ec"}.ion-android-microphone-off:before{content:"\f395"}.ion-android-more-horizontal:before{content:"\f396"}.ion-android-more-vertical:before{content:"\f397"}.ion-android-navigate:before{content:"\f398"}.ion-android-notifications:before{content:"\f39b"}.ion-android-notifications-none:before{content:"\f399"}.ion-android-notifications-off:before{content:"\f39a"}.ion-android-open:before{content:"\f39c"}.ion-android-options:before{content:"\f39d"}.ion-android-people:before{content:"\f39e"}.ion-android-person:before{content:"\f3a0"}.ion-android-person-add:before{content:"\f39f"}.ion-android-phone-landscape:before{content:"\f3a1"}.ion-android-phone-portrait:before{content:"\f3a2"}.ion-android-pin:before{content:"\f3a3"}.ion-android-plane:before{content:"\f3a4"}.ion-android-playstore:before{content:"\f2f0"}.ion-android-print:before{content:"\f3a5"}.ion-android-radio-button-off:before{content:"\f3a6"}.ion-android-radio-button-on:before{content:"\f3a7"}.ion-android-refresh:before{content:"\f3a8"}.ion-android-remove:before{content:"\f2f4"}.ion-android-remove-circle:before{content:"\f3a9"}.ion-android-restaurant:before{content:"\f3aa"}.ion-android-sad:before{content:"\f3ab"}.ion-android-search:before{content:"\f2f5"}.ion-android-send:before{content:"\f2f6"}.ion-android-settings:before{content:"\f2f7"}.ion-android-share:before{content:"\f2f8"}.ion-android-share-alt:before{content:"\f3ac"}.ion-android-star:before{content:"\f2fc"}.ion-android-star-half:before{content:"\f3ad"}.ion-android-star-outline:before{content:"\f3ae"}.ion-android-stopwatch:before{content:"\f2fd"}.ion-android-subway:before{content:"\f3af"}.ion-android-sunny:before{content:"\f3b0"}.ion-android-sync:before{content:"\f3b1"}.ion-android-textsms:before{content:"\f3b2"}.ion-android-time:before{content:"\f3b3"}.ion-android-train:before{content:"\f3b4"}.ion-android-unlock:before{content:"\f3b5"}.ion-android-upload:before{content:"\f3b6"}.ion-android-volume-down:before{content:"\f3b7"}.ion-android-volume-mute:before{content:"\f3b8"}.ion-android-volume-off:before{content:"\f3b9"}.ion-android-volume-up:before{content:"\f3ba"}.ion-android-walk:before{content:"\f3bb"}.ion-android-warning:before{content:"\f3bc"}.ion-android-watch:before{content:"\f3bd"}.ion-android-wifi:before{content:"\f305"}.ion-aperture:before{content:"\f313"}.ion-archive:before{content:"\f102"}.ion-arrow-down-a:before{content:"\f103"}.ion-arrow-down-b:before{content:"\f104"}.ion-arrow-down-c:before{content:"\f105"}.ion-arrow-expand:before{content:"\f25e"}.ion-arrow-graph-down-left:before{content:"\f25f"}.ion-arrow-graph-down-right:before{content:"\f260"}.ion-arrow-graph-up-left:before{content:"\f261"}.ion-arrow-graph-up-right:before{content:"\f262"}.ion-arrow-left-a:before{content:"\f106"}.ion-arrow-left-b:before{content:"\f107"}.ion-arrow-left-c:before{content:"\f108"}.ion-arrow-move:before{content:"\f263"}.ion-arrow-resize:before{content:"\f264"}.ion-arrow-return-left:before{content:"\f265"}.ion-arrow-return-right:before{content:"\f266"}.ion-arrow-right-a:before{content:"\f109"}.ion-arrow-right-b:before{content:"\f10a"}.ion-arrow-right-c:before{content:"\f10b"}.ion-arrow-shrink:before{content:"\f267"}.ion-arrow-swap:before{content:"\f268"}.ion-arrow-up-a:before{content:"\f10c"}.ion-arrow-up-b:before{content:"\f10d"}.ion-arrow-up-c:before{content:"\f10e"}.ion-asterisk:before{content:"\f314"}.ion-at:before{content:"\f10f"}.ion-backspace:before{content:"\f3bf"}.ion-backspace-outline:before{content:"\f3be"}.ion-bag:before{content:"\f110"}.ion-battery-charging:before{content:"\f111"}.ion-battery-empty:before{content:"\f112"}.ion-battery-full:before{content:"\f113"}.ion-battery-half:before{content:"\f114"}.ion-battery-low:before{content:"\f115"}.ion-beaker:before{content:"\f269"}.ion-beer:before{content:"\f26a"}.ion-bluetooth:before{content:"\f116"}.ion-bonfire:before{content:"\f315"}.ion-bookmark:before{content:"\f26b"}.ion-bowtie:before{content:"\f3c0"}.ion-briefcase:before{content:"\f26c"}.ion-bug:before{content:"\f2be"}.ion-calculator:before{content:"\f26d"}.ion-calendar:before{content:"\f117"}.ion-camera:before{content:"\f118"}.ion-card:before{content:"\f119"}.ion-cash:before{content:"\f316"}.ion-chatbox:before{content:"\f11b"}.ion-chatbox-working:before{content:"\f11a"}.ion-chatboxes:before{content:"\f11c"}.ion-chatbubble:before{content:"\f11e"}.ion-chatbubble-working:before{content:"\f11d"}.ion-chatbubbles:before{content:"\f11f"}.ion-checkmark:before{content:"\f122"}.ion-checkmark-circled:before{content:"\f120"}.ion-checkmark-round:before{content:"\f121"}.ion-chevron-down:before{content:"\f123"}.ion-chevron-left:before{content:"\f124"}.ion-chevron-right:before{content:"\f125"}.ion-chevron-up:before{content:"\f126"}.ion-clipboard:before{content:"\f127"}.ion-clock:before{content:"\f26e"}.ion-close:before{content:"\f12a"}.ion-close-circled:before{content:"\f128"}.ion-close-round:before{content:"\f129"}.ion-closed-captioning:before{content:"\f317"}.ion-cloud:before{content:"\f12b"}.ion-code:before{content:"\f271"}.ion-code-download:before{content:"\f26f"}.ion-code-working:before{content:"\f270"}.ion-coffee:before{content:"\f272"}.ion-compass:before{content:"\f273"}.ion-compose:before{content:"\f12c"}.ion-connection-bars:before{content:"\f274"}.ion-contrast:before{content:"\f275"}.ion-crop:before{content:"\f3c1"}.ion-cube:before{content:"\f318"}.ion-disc:before{content:"\f12d"}.ion-document:before{content:"\f12f"}.ion-document-text:before{content:"\f12e"}.ion-drag:before{content:"\f130"}.ion-earth:before{content:"\f276"}.ion-easel:before{content:"\f3c2"}.ion-edit:before{content:"\f2bf"}.ion-egg:before{content:"\f277"}.ion-eject:before{content:"\f131"}.ion-email:before{content:"\f132"}.ion-email-unread:before{content:"\f3c3"}.ion-erlenmeyer-flask:before{content:"\f3c5"}.ion-erlenmeyer-flask-bubbles:before{content:"\f3c4"}.ion-eye:before{content:"\f133"}.ion-eye-disabled:before{content:"\f306"}.ion-female:before{content:"\f278"}.ion-filing:before{content:"\f134"}.ion-film-marker:before{content:"\f135"}.ion-fireball:before{content:"\f319"}.ion-flag:before{content:"\f279"}.ion-flame:before{content:"\f31a"}.ion-flash:before{content:"\f137"}.ion-flash-off:before{content:"\f136"}.ion-folder:before{content:"\f139"}.ion-fork:before{content:"\f27a"}.ion-fork-repo:before{content:"\f2c0"}.ion-forward:before{content:"\f13a"}.ion-funnel:before{content:"\f31b"}.ion-gear-a:before{content:"\f13d"}.ion-gear-b:before{content:"\f13e"}.ion-grid:before{content:"\f13f"}.ion-hammer:before{content:"\f27b"}.ion-happy:before{content:"\f31c"}.ion-happy-outline:before{content:"\f3c6"}.ion-headphone:before{content:"\f140"}.ion-heart:before{content:"\f141"}.ion-heart-broken:before{content:"\f31d"}.ion-help:before{content:"\f143"}.ion-help-buoy:before{content:"\f27c"}.ion-help-circled:before{content:"\f142"}.ion-home:before{content:"\f144"}.ion-icecream:before{content:"\f27d"}.ion-image:before{content:"\f147"}.ion-images:before{content:"\f148"}.ion-information:before{content:"\f14a"}.ion-information-circled:before{content:"\f149"}.ion-ionic:before{content:"\f14b"}.ion-ios-alarm:before{content:"\f3c8"}.ion-ios-alarm-outline:before{content:"\f3c7"}.ion-ios-albums:before{content:"\f3ca"}.ion-ios-albums-outline:before{content:"\f3c9"}.ion-ios-americanfootball:before{content:"\f3cc"}.ion-ios-americanfootball-outline:before{content:"\f3cb"}.ion-ios-analytics:before{content:"\f3ce"}.ion-ios-analytics-outline:before{content:"\f3cd"}.ion-ios-arrow-back:before{content:"\f3cf"}.ion-ios-arrow-down:before{content:"\f3d0"}.ion-ios-arrow-forward:before{content:"\f3d1"}.ion-ios-arrow-left:before{content:"\f3d2"}.ion-ios-arrow-right:before{content:"\f3d3"}.ion-ios-arrow-thin-down:before{content:"\f3d4"}.ion-ios-arrow-thin-left:before{content:"\f3d5"}.ion-ios-arrow-thin-right:before{content:"\f3d6"}.ion-ios-arrow-thin-up:before{content:"\f3d7"}.ion-ios-arrow-up:before{content:"\f3d8"}.ion-ios-at:before{content:"\f3da"}.ion-ios-at-outline:before{content:"\f3d9"}.ion-ios-barcode:before{content:"\f3dc"}.ion-ios-barcode-outline:before{content:"\f3db"}.ion-ios-baseball:before{content:"\f3de"}.ion-ios-baseball-outline:before{content:"\f3dd"}.ion-ios-basketball:before{content:"\f3e0"}.ion-ios-basketball-outline:before{content:"\f3df"}.ion-ios-bell:before{content:"\f3e2"}.ion-ios-bell-outline:before{content:"\f3e1"}.ion-ios-body:before{content:"\f3e4"}.ion-ios-body-outline:before{content:"\f3e3"}.ion-ios-bolt:before{content:"\f3e6"}.ion-ios-bolt-outline:before{content:"\f3e5"}.ion-ios-book:before{content:"\f3e8"}.ion-ios-book-outline:before{content:"\f3e7"}.ion-ios-bookmarks:before{content:"\f3ea"}.ion-ios-bookmarks-outline:before{content:"\f3e9"}.ion-ios-box:before{content:"\f3ec"}.ion-ios-box-outline:before{content:"\f3eb"}.ion-ios-briefcase:before{content:"\f3ee"}.ion-ios-briefcase-outline:before{content:"\f3ed"}.ion-ios-browsers:before{content:"\f3f0"}.ion-ios-browsers-outline:before{content:"\f3ef"}.ion-ios-calculator:before{content:"\f3f2"}.ion-ios-calculator-outline:before{content:"\f3f1"}.ion-ios-calendar:before{content:"\f3f4"}.ion-ios-calendar-outline:before{content:"\f3f3"}.ion-ios-camera:before{content:"\f3f6"}.ion-ios-camera-outline:before{content:"\f3f5"}.ion-ios-cart:before{content:"\f3f8"}.ion-ios-cart-outline:before{content:"\f3f7"}.ion-ios-chatboxes:before{content:"\f3fa"}.ion-ios-chatboxes-outline:before{content:"\f3f9"}.ion-ios-chatbubble:before{content:"\f3fc"}.ion-ios-chatbubble-outline:before{content:"\f3fb"}.ion-ios-checkmark:before{content:"\f3ff"}.ion-ios-checkmark-empty:before{content:"\f3fd"}.ion-ios-checkmark-outline:before{content:"\f3fe"}.ion-ios-circle-filled:before{content:"\f400"}.ion-ios-circle-outline:before{content:"\f401"}.ion-ios-clock:before{content:"\f403"}.ion-ios-clock-outline:before{content:"\f402"}.ion-ios-close:before{content:"\f406"}.ion-ios-close-empty:before{content:"\f404"}.ion-ios-close-outline:before{content:"\f405"}.ion-ios-cloud:before{content:"\f40c"}.ion-ios-cloud-download:before{content:"\f408"}.ion-ios-cloud-download-outline:before{content:"\f407"}.ion-ios-cloud-outline:before{content:"\f409"}.ion-ios-cloud-upload:before{content:"\f40b"}.ion-ios-cloud-upload-outline:before{content:"\f40a"}.ion-ios-cloudy:before{content:"\f410"}.ion-ios-cloudy-night:before{content:"\f40e"}.ion-ios-cloudy-night-outline:before{content:"\f40d"}.ion-ios-cloudy-outline:before{content:"\f40f"}.ion-ios-cog:before{content:"\f412"}.ion-ios-cog-outline:before{content:"\f411"}.ion-ios-color-filter:before{content:"\f414"}.ion-ios-color-filter-outline:before{content:"\f413"}.ion-ios-color-wand:before{content:"\f416"}.ion-ios-color-wand-outline:before{content:"\f415"}.ion-ios-compose:before{content:"\f418"}.ion-ios-compose-outline:before{content:"\f417"}.ion-ios-contact:before{content:"\f41a"}.ion-ios-contact-outline:before{content:"\f419"}.ion-ios-copy:before{content:"\f41c"}.ion-ios-copy-outline:before{content:"\f41b"}.ion-ios-crop:before{content:"\f41e"}.ion-ios-crop-strong:before{content:"\f41d"}.ion-ios-download:before{content:"\f420"}.ion-ios-download-outline:before{content:"\f41f"}.ion-ios-drag:before{content:"\f421"}.ion-ios-email:before{content:"\f423"}.ion-ios-email-outline:before{content:"\f422"}.ion-ios-eye:before{content:"\f425"}.ion-ios-eye-outline:before{content:"\f424"}.ion-ios-fastforward:before{content:"\f427"}.ion-ios-fastforward-outline:before{content:"\f426"}.ion-ios-filing:before{content:"\f429"}.ion-ios-filing-outline:before{content:"\f428"}.ion-ios-film:before{content:"\f42b"}.ion-ios-film-outline:before{content:"\f42a"}.ion-ios-flag:before{content:"\f42d"}.ion-ios-flag-outline:before{content:"\f42c"}.ion-ios-flame:before{content:"\f42f"}.ion-ios-flame-outline:before{content:"\f42e"}.ion-ios-flask:before{content:"\f431"}.ion-ios-flask-outline:before{content:"\f430"}.ion-ios-flower:before{content:"\f433"}.ion-ios-flower-outline:before{content:"\f432"}.ion-ios-folder:before{content:"\f435"}.ion-ios-folder-outline:before{content:"\f434"}.ion-ios-football:before{content:"\f437"}.ion-ios-football-outline:before{content:"\f436"}.ion-ios-game-controller-a:before{content:"\f439"}.ion-ios-game-controller-a-outline:before{content:"\f438"}.ion-ios-game-controller-b:before{content:"\f43b"}.ion-ios-game-controller-b-outline:before{content:"\f43a"}.ion-ios-gear:before{content:"\f43d"}.ion-ios-gear-outline:before{content:"\f43c"}.ion-ios-glasses:before{content:"\f43f"}.ion-ios-glasses-outline:before{content:"\f43e"}.ion-ios-grid-view:before{content:"\f441"}.ion-ios-grid-view-outline:before{content:"\f440"}.ion-ios-heart:before{content:"\f443"}.ion-ios-heart-outline:before{content:"\f442"}.ion-ios-help:before{content:"\f446"}.ion-ios-help-empty:before{content:"\f444"}.ion-ios-help-outline:before{content:"\f445"}.ion-ios-home:before{content:"\f448"}.ion-ios-home-outline:before{content:"\f447"}.ion-ios-infinite:before{content:"\f44a"}.ion-ios-infinite-outline:before{content:"\f449"}.ion-ios-information:before{content:"\f44d"}.ion-ios-information-empty:before{content:"\f44b"}.ion-ios-information-outline:before{content:"\f44c"}.ion-ios-ionic-outline:before{content:"\f44e"}.ion-ios-keypad:before{content:"\f450"}.ion-ios-keypad-outline:before{content:"\f44f"}.ion-ios-lightbulb:before{content:"\f452"}.ion-ios-lightbulb-outline:before{content:"\f451"}.ion-ios-list:before{content:"\f454"}.ion-ios-list-outline:before{content:"\f453"}.ion-ios-location:before{content:"\f456"}.ion-ios-location-outline:before{content:"\f455"}.ion-ios-locked:before{content:"\f458"}.ion-ios-locked-outline:before{content:"\f457"}.ion-ios-loop:before{content:"\f45a"}.ion-ios-loop-strong:before{content:"\f459"}.ion-ios-medical:before{content:"\f45c"}.ion-ios-medical-outline:before{content:"\f45b"}.ion-ios-medkit:before{content:"\f45e"}.ion-ios-medkit-outline:before{content:"\f45d"}.ion-ios-mic:before{content:"\f461"}.ion-ios-mic-off:before{content:"\f45f"}.ion-ios-mic-outline:before{content:"\f460"}.ion-ios-minus:before{content:"\f464"}.ion-ios-minus-empty:before{content:"\f462"}.ion-ios-minus-outline:before{content:"\f463"}.ion-ios-monitor:before{content:"\f466"}.ion-ios-monitor-outline:before{content:"\f465"}.ion-ios-moon:before{content:"\f468"}.ion-ios-moon-outline:before{content:"\f467"}.ion-ios-more:before{content:"\f46a"}.ion-ios-more-outline:before{content:"\f469"}.ion-ios-musical-note:before{content:"\f46b"}.ion-ios-musical-notes:before{content:"\f46c"}.ion-ios-navigate:before{content:"\f46e"}.ion-ios-navigate-outline:before{content:"\f46d"}.ion-ios-nutrition:before{content:"\f470"}.ion-ios-nutrition-outline:before{content:"\f46f"}.ion-ios-paper:before{content:"\f472"}.ion-ios-paper-outline:before{content:"\f471"}.ion-ios-paperplane:before{content:"\f474"}.ion-ios-paperplane-outline:before{content:"\f473"}.ion-ios-partlysunny:before{content:"\f476"}.ion-ios-partlysunny-outline:before{content:"\f475"}.ion-ios-pause:before{content:"\f478"}.ion-ios-pause-outline:before{content:"\f477"}.ion-ios-paw:before{content:"\f47a"}.ion-ios-paw-outline:before{content:"\f479"}.ion-ios-people:before{content:"\f47c"}.ion-ios-people-outline:before{content:"\f47b"}.ion-ios-person:before{content:"\f47e"}.ion-ios-person-outline:before{content:"\f47d"}.ion-ios-personadd:before{content:"\f480"}.ion-ios-personadd-outline:before{content:"\f47f"}.ion-ios-photos:before{content:"\f482"}.ion-ios-photos-outline:before{content:"\f481"}.ion-ios-pie:before{content:"\f484"}.ion-ios-pie-outline:before{content:"\f483"}.ion-ios-pint:before{content:"\f486"}.ion-ios-pint-outline:before{content:"\f485"}.ion-ios-play:before{content:"\f488"}.ion-ios-play-outline:before{content:"\f487"}.ion-ios-plus:before{content:"\f48b"}.ion-ios-plus-empty:before{content:"\f489"}.ion-ios-plus-outline:before{content:"\f48a"}.ion-ios-pricetag:before{content:"\f48d"}.ion-ios-pricetag-outline:before{content:"\f48c"}.ion-ios-pricetags:before{content:"\f48f"}.ion-ios-pricetags-outline:before{content:"\f48e"}.ion-ios-printer:before{content:"\f491"}.ion-ios-printer-outline:before{content:"\f490"}.ion-ios-pulse:before{content:"\f493"}.ion-ios-pulse-strong:before{content:"\f492"}.ion-ios-rainy:before{content:"\f495"}.ion-ios-rainy-outline:before{content:"\f494"}.ion-ios-recording:before{content:"\f497"}.ion-ios-recording-outline:before{content:"\f496"}.ion-ios-redo:before{content:"\f499"}.ion-ios-redo-outline:before{content:"\f498"}.ion-ios-refresh:before{content:"\f49c"}.ion-ios-refresh-empty:before{content:"\f49a"}.ion-ios-refresh-outline:before{content:"\f49b"}.ion-ios-reload:before{content:"\f49d"}.ion-ios-reverse-camera:before{content:"\f49f"}.ion-ios-reverse-camera-outline:before{content:"\f49e"}.ion-ios-rewind:before{content:"\f4a1"}.ion-ios-rewind-outline:before{content:"\f4a0"}.ion-ios-rose:before{content:"\f4a3"}.ion-ios-rose-outline:before{content:"\f4a2"}.ion-ios-search:before{content:"\f4a5"}.ion-ios-search-strong:before{content:"\f4a4"}.ion-ios-settings:before{content:"\f4a7"}.ion-ios-settings-strong:before{content:"\f4a6"}.ion-ios-shuffle:before{content:"\f4a9"}.ion-ios-shuffle-strong:before{content:"\f4a8"}.ion-ios-skipbackward:before{content:"\f4ab"}.ion-ios-skipbackward-outline:before{content:"\f4aa"}.ion-ios-skipforward:before{content:"\f4ad"}.ion-ios-skipforward-outline:before{content:"\f4ac"}.ion-ios-snowy:before{content:"\f4ae"}.ion-ios-speedometer:before{content:"\f4b0"}.ion-ios-speedometer-outline:before{content:"\f4af"}.ion-ios-star:before{content:"\f4b3"}.ion-ios-star-half:before{content:"\f4b1"}.ion-ios-star-outline:before{content:"\f4b2"}.ion-ios-stopwatch:before{content:"\f4b5"}.ion-ios-stopwatch-outline:before{content:"\f4b4"}.ion-ios-sunny:before{content:"\f4b7"}.ion-ios-sunny-outline:before{content:"\f4b6"}.ion-ios-telephone:before{content:"\f4b9"}.ion-ios-telephone-outline:before{content:"\f4b8"}.ion-ios-tennisball:before{content:"\f4bb"}.ion-ios-tennisball-outline:before{content:"\f4ba"}.ion-ios-thunderstorm:before{content:"\f4bd"}.ion-ios-thunderstorm-outline:before{content:"\f4bc"}.ion-ios-time:before{content:"\f4bf"}.ion-ios-time-outline:before{content:"\f4be"}.ion-ios-timer:before{content:"\f4c1"}.ion-ios-timer-outline:before{content:"\f4c0"}.ion-ios-toggle:before{content:"\f4c3"}.ion-ios-toggle-outline:before{content:"\f4c2"}.ion-ios-trash:before{content:"\f4c5"}.ion-ios-trash-outline:before{content:"\f4c4"}.ion-ios-undo:before{content:"\f4c7"}.ion-ios-undo-outline:before{content:"\f4c6"}.ion-ios-unlocked:before{content:"\f4c9"}.ion-ios-unlocked-outline:before{content:"\f4c8"}.ion-ios-upload:before{content:"\f4cb"}.ion-ios-upload-outline:before{content:"\f4ca"}.ion-ios-videocam:before{content:"\f4cd"}.ion-ios-videocam-outline:before{content:"\f4cc"}.ion-ios-volume-high:before{content:"\f4ce"}.ion-ios-volume-low:before{content:"\f4cf"}.ion-ios-wineglass:before{content:"\f4d1"}.ion-ios-wineglass-outline:before{content:"\f4d0"}.ion-ios-world:before{content:"\f4d3"}.ion-ios-world-outline:before{content:"\f4d2"}.ion-ipad:before{content:"\f1f9"}.ion-iphone:before{content:"\f1fa"}.ion-ipod:before{content:"\f1fb"}.ion-jet:before{content:"\f295"}.ion-key:before{content:"\f296"}.ion-knife:before{content:"\f297"}.ion-laptop:before{content:"\f1fc"}.ion-leaf:before{content:"\f1fd"}.ion-levels:before{content:"\f298"}.ion-lightbulb:before{content:"\f299"}.ion-link:before{content:"\f1fe"}.ion-load-a:before{content:"\f29a"}.ion-load-b:before{content:"\f29b"}.ion-load-c:before{content:"\f29c"}.ion-load-d:before{content:"\f29d"}.ion-location:before{content:"\f1ff"}.ion-lock-combination:before{content:"\f4d4"}.ion-locked:before{content:"\f200"}.ion-log-in:before{content:"\f29e"}.ion-log-out:before{content:"\f29f"}.ion-loop:before{content:"\f201"}.ion-magnet:before{content:"\f2a0"}.ion-male:before{content:"\f2a1"}.ion-man:before{content:"\f202"}.ion-map:before{content:"\f203"}.ion-medkit:before{content:"\f2a2"}.ion-merge:before{content:"\f33f"}.ion-mic-a:before{content:"\f204"}.ion-mic-b:before{content:"\f205"}.ion-mic-c:before{content:"\f206"}.ion-minus:before{content:"\f209"}.ion-minus-circled:before{content:"\f207"}.ion-minus-round:before{content:"\f208"}.ion-model-s:before{content:"\f2c1"}.ion-monitor:before{content:"\f20a"}.ion-more:before{content:"\f20b"}.ion-mouse:before{content:"\f340"}.ion-music-note:before{content:"\f20c"}.ion-navicon:before{content:"\f20e"}.ion-navicon-round:before{content:"\f20d"}.ion-navigate:before{content:"\f2a3"}.ion-network:before{content:"\f341"}.ion-no-smoking:before{content:"\f2c2"}.ion-nuclear:before{content:"\f2a4"}.ion-outlet:before{content:"\f342"}.ion-paintbrush:before{content:"\f4d5"}.ion-paintbucket:before{content:"\f4d6"}.ion-paper-airplane:before{content:"\f2c3"}.ion-paperclip:before{content:"\f20f"}.ion-pause:before{content:"\f210"}.ion-person:before{content:"\f213"}.ion-person-add:before{content:"\f211"}.ion-person-stalker:before{content:"\f212"}.ion-pie-graph:before{content:"\f2a5"}.ion-pin:before{content:"\f2a6"}.ion-pinpoint:before{content:"\f2a7"}.ion-pizza:before{content:"\f2a8"}.ion-plane:before{content:"\f214"}.ion-planet:before{content:"\f343"}.ion-play:before{content:"\f215"}.ion-playstation:before{content:"\f30a"}.ion-plus:before{content:"\f218"}.ion-plus-circled:before{content:"\f216"}.ion-plus-round:before{content:"\f217"}.ion-podium:before{content:"\f344"}.ion-pound:before{content:"\f219"}.ion-power:before{content:"\f2a9"}.ion-pricetag:before{content:"\f2aa"}.ion-pricetags:before{content:"\f2ab"}.ion-printer:before{content:"\f21a"}.ion-pull-request:before{content:"\f345"}.ion-qr-scanner:before{content:"\f346"}.ion-quote:before{content:"\f347"}.ion-radio-waves:before{content:"\f2ac"}.ion-record:before{content:"\f21b"}.ion-refresh:before{content:"\f21c"}.ion-reply:before{content:"\f21e"}.ion-reply-all:before{content:"\f21d"}.ion-ribbon-a:before{content:"\f348"}.ion-ribbon-b:before{content:"\f349"}.ion-sad:before{content:"\f34a"}.ion-sad-outline:before{content:"\f4d7"}.ion-scissors:before{content:"\f34b"}.ion-search:before{content:"\f21f"}.ion-settings:before{content:"\f2ad"}.ion-share:before{content:"\f220"}.ion-shuffle:before{content:"\f221"}.ion-skip-backward:before{content:"\f222"}.ion-skip-forward:before{content:"\f223"}.ion-social-android:before{content:"\f225"}.ion-social-android-outline:before{content:"\f224"}.ion-social-angular:before{content:"\f4d9"}.ion-social-angular-outline:before{content:"\f4d8"}.ion-social-apple:before{content:"\f227"}.ion-social-apple-outline:before{content:"\f226"}.ion-social-bitcoin:before{content:"\f2af"}.ion-social-bitcoin-outline:before{content:"\f2ae"}.ion-social-buffer:before{content:"\f229"}.ion-social-buffer-outline:before{content:"\f228"}.ion-social-chrome:before{content:"\f4db"}.ion-social-chrome-outline:before{content:"\f4da"}.ion-social-codepen:before{content:"\f4dd"}.ion-social-codepen-outline:before{content:"\f4dc"}.ion-social-css3:before{content:"\f4df"}.ion-social-css3-outline:before{content:"\f4de"}.ion-social-designernews:before{content:"\f22b"}.ion-social-designernews-outline:before{content:"\f22a"}.ion-social-dribbble:before{content:"\f22d"}.ion-social-dribbble-outline:before{content:"\f22c"}.ion-social-dropbox:before{content:"\f22f"}.ion-social-dropbox-outline:before{content:"\f22e"}.ion-social-euro:before{content:"\f4e1"}.ion-social-euro-outline:before{content:"\f4e0"}.ion-social-facebook:before{content:"\f231"}.ion-social-facebook-outline:before{content:"\f230"}.ion-social-foursquare:before{content:"\f34d"}.ion-social-foursquare-outline:before{content:"\f34c"}.ion-social-freebsd-devil:before{content:"\f2c4"}.ion-social-github:before{content:"\f233"}.ion-social-github-outline:before{content:"\f232"}.ion-social-google:before{content:"\f34f"}.ion-social-google-outline:before{content:"\f34e"}.ion-social-googleplus:before{content:"\f235"}.ion-social-googleplus-outline:before{content:"\f234"}.ion-social-hackernews:before{content:"\f237"}.ion-social-hackernews-outline:before{content:"\f236"}.ion-social-html5:before{content:"\f4e3"}.ion-social-html5-outline:before{content:"\f4e2"}.ion-social-instagram:before{content:"\f351"}.ion-social-instagram-outline:before{content:"\f350"}.ion-social-javascript:before{content:"\f4e5"}.ion-social-javascript-outline:before{content:"\f4e4"}.ion-social-linkedin:before{content:"\f239"}.ion-social-linkedin-outline:before{content:"\f238"}.ion-social-markdown:before{content:"\f4e6"}.ion-social-nodejs:before{content:"\f4e7"}.ion-social-octocat:before{content:"\f4e8"}.ion-social-pinterest:before{content:"\f2b1"}.ion-social-pinterest-outline:before{content:"\f2b0"}.ion-social-python:before{content:"\f4e9"}.ion-social-reddit:before{content:"\f23b"}.ion-social-reddit-outline:before{content:"\f23a"}.ion-social-rss:before{content:"\f23d"}.ion-social-rss-outline:before{content:"\f23c"}.ion-social-sass:before{content:"\f4ea"}.ion-social-skype:before{content:"\f23f"}.ion-social-skype-outline:before{content:"\f23e"}.ion-social-snapchat:before{content:"\f4ec"}.ion-social-snapchat-outline:before{content:"\f4eb"}.ion-social-tumblr:before{content:"\f241"}.ion-social-tumblr-outline:before{content:"\f240"}.ion-social-tux:before{content:"\f2c5"}.ion-social-twitch:before{content:"\f4ee"}.ion-social-twitch-outline:before{content:"\f4ed"}.ion-social-twitter:before{content:"\f243"}.ion-social-twitter-outline:before{content:"\f242"}.ion-social-usd:before{content:"\f353"}.ion-social-usd-outline:before{content:"\f352"}.ion-social-vimeo:before{content:"\f245"}.ion-social-vimeo-outline:before{content:"\f244"}.ion-social-whatsapp:before{content:"\f4f0"}.ion-social-whatsapp-outline:before{content:"\f4ef"}.ion-social-windows:before{content:"\f247"}.ion-social-windows-outline:before{content:"\f246"}.ion-social-wordpress:before{content:"\f249"}.ion-social-wordpress-outline:before{content:"\f248"}.ion-social-yahoo:before{content:"\f24b"}.ion-social-yahoo-outline:before{content:"\f24a"}.ion-social-yen:before{content:"\f4f2"}.ion-social-yen-outline:before{content:"\f4f1"}.ion-social-youtube:before{content:"\f24d"}.ion-social-youtube-outline:before{content:"\f24c"}.ion-soup-can:before{content:"\f4f4"}.ion-soup-can-outline:before{content:"\f4f3"}.ion-speakerphone:before{content:"\f2b2"}.ion-speedometer:before{content:"\f2b3"}.ion-spoon:before{content:"\f2b4"}.ion-star:before{content:"\f24e"}.ion-stats-bars:before{content:"\f2b5"}.ion-steam:before{content:"\f30b"}.ion-stop:before{content:"\f24f"}.ion-thermometer:before{content:"\f2b6"}.ion-thumbsdown:before{content:"\f250"}.ion-thumbsup:before{content:"\f251"}.ion-toggle:before{content:"\f355"}.ion-toggle-filled:before{content:"\f354"}.ion-transgender:before{content:"\f4f5"}.ion-trash-a:before{content:"\f252"}.ion-trash-b:before{content:"\f253"}.ion-trophy:before{content:"\f356"}.ion-tshirt:before{content:"\f4f7"}.ion-tshirt-outline:before{content:"\f4f6"}.ion-umbrella:before{content:"\f2b7"}.ion-university:before{content:"\f357"}.ion-unlocked:before{content:"\f254"}.ion-upload:before{content:"\f255"}.ion-usb:before{content:"\f2b8"}.ion-videocamera:before{content:"\f256"}.ion-volume-high:before{content:"\f257"}.ion-volume-low:before{content:"\f258"}.ion-volume-medium:before{content:"\f259"}.ion-volume-mute:before{content:"\f25a"}.ion-wand:before{content:"\f358"}.ion-waterdrop:before{content:"\f25b"}.ion-wifi:before{content:"\f25c"}.ion-wineglass:before{content:"\f2b9"}.ion-woman:before{content:"\f25d"}.ion-wrench:before{content:"\f2ba"}.ion-xbox:before{content:"\f30c"}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.eot b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.eot
new file mode 100644
index 0000000..92a3f20
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.eot
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.svg b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.svg
new file mode 100644
index 0000000..49fc8f3
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.svg
@@ -0,0 +1,2230 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<!--
+2014-12-4: Created.
+-->
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata>
+Created by FontForge 20120731 at Thu Dec  4 09:51:48 2014
+ By Adam Bradley
+Created by Adam Bradley with FontForge 2.0 (http://fontforge.sf.net)
+</metadata>
+<defs>
+<font id="Ionicons" horiz-adv-x="448" >
+  <font-face 
+    font-family="Ionicons"
+    font-weight="500"
+    font-stretch="normal"
+    units-per-em="512"
+    panose-1="2 0 6 3 0 0 0 0 0 0"
+    ascent="448"
+    descent="-64"
+    bbox="-0.54049 -64 512.487 448"
+    underline-thickness="25.6"
+    underline-position="-51.2"
+    unicode-range="U+F100-F4F7"
+  />
+    <missing-glyph />
+    <glyph glyph-name="ion-alert-circled" unicode="&#xf100;" 
+d="M445 26c3 -5 5 -13 2 -18s-8 -8 -14 -8h-418c-6 0 -11 3 -14 8s-1 13 2 18l207 349c3 5 8 9 14 9s11 -4 14 -9zM256 48v48h-64v-48h64zM256 128v144h-64v-144h64z" />
+    <glyph glyph-name="ion-alert" unicode="&#xf101;" horiz-adv-x="128" 
+d="M128 -32h-128v96h128v-96zM112 128h-96l-16 288h128z" />
+    <glyph glyph-name="ion-android-add-circle" unicode="&#xf359;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM315 171v42h-86v86h-42v-86h-86v-42h86v-86h42v86h86z" />
+    <glyph glyph-name="ion-android-add" unicode="&#xf2c7;" horiz-adv-x="320" 
+d="M320 171h-139v-139h-42v139h-139v42h139v139h42v-139h139v-42z" />
+    <glyph glyph-name="ion-android-alarm-clock" unicode="&#xf35a;" horiz-adv-x="428" 
+d="M428 323l-28 -33l-98 82l28 33zM125 373l-97 -83l-28 33l97 83zM225 275v0v-111l85 -50l-16 -27l-101 61v127h32zM214 360c106 0 193 -86 193 -191s-87 -191 -193 -191c-107 0 -193 86 -193 191s86 191 193 191zM214 20c82 0 150 66 150 149c0 82 -68 149 -150 149
+s-150 -67 -150 -149s68 -149 150 -149z" />
+    <glyph glyph-name="ion-android-alert" unicode="&#xf35b;" horiz-adv-x="416" 
+d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM232 88v40h-48v-40h48zM232 176v128h-48v-128h48z" />
+    <glyph glyph-name="ion-android-apps" unicode="&#xf35c;" horiz-adv-x="320" 
+d="M0 272v80h80v-80h-80zM120 32v80h80v-80h-80zM0 32v80h80v-80h-80zM0 152v80h80v-80h-80zM120 152v80h80v-80h-80zM240 352h80v-80h-80v80zM120 272v80h80v-80h-80zM240 152v80h80v-80h-80zM240 32v80h80v-80h-80z" />
+    <glyph glyph-name="ion-android-archive" unicode="&#xf2c9;" horiz-adv-x="416" 
+d="M406 348c7 -7 10 -17 10 -29v-289c0 -25 -21 -46 -46 -46h-324c-25 0 -46 21 -46 46v289c0 12 3 22 10 29l33 39c6 8 16 13 26 13h278c10 0 20 -5 26 -13zM208 65l127 127h-81v46h-92v-46h-81zM49 354h317l-22 23h-277z" />
+    <glyph glyph-name="ion-android-arrow-back" unicode="&#xf2ca;" horiz-adv-x="342" 
+d="M342 213v-42h-260l119 -120l-30 -30l-171 171l171 171l31 -30l-120 -120h260z" />
+    <glyph glyph-name="ion-android-arrow-down" unicode="&#xf35d;" horiz-adv-x="342" 
+d="M192 363v-260l120 120l30 -31l-171 -171l-171 171l30 30l120 -119v260h42z" />
+    <glyph glyph-name="ion-android-arrow-dropdown-circle" unicode="&#xf35e;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 128l96 96h-192z" />
+    <glyph glyph-name="ion-android-arrow-dropdown" unicode="&#xf35f;" horiz-adv-x="256" 
+d="M0 256h256l-128 -128z" />
+    <glyph glyph-name="ion-android-arrow-dropleft-circle" unicode="&#xf360;" horiz-adv-x="416" 
+d="M416 192c0 -115 -93 -208 -208 -208s-208 93 -208 208s93 208 208 208s208 -93 208 -208zM144 192l96 -96v192z" />
+    <glyph glyph-name="ion-android-arrow-dropleft" unicode="&#xf361;" horiz-adv-x="128" 
+d="M128 320v-256l-128 128z" />
+    <glyph glyph-name="ion-android-arrow-dropright-circle" unicode="&#xf362;" horiz-adv-x="416" 
+d="M208 -16c-115 0 -208 93 -208 208s93 208 208 208s208 -93 208 -208s-93 -208 -208 -208zM176 96l96 96l-96 96v-192z" />
+    <glyph glyph-name="ion-android-arrow-dropright" unicode="&#xf363;" horiz-adv-x="128" 
+d="M0 320l128 -128l-128 -128v256z" />
+    <glyph glyph-name="ion-android-arrow-dropup-circle" unicode="&#xf364;" horiz-adv-x="416" 
+d="M416 192c0 -115 -93 -208 -208 -208s-208 93 -208 208s93 208 208 208s208 -93 208 -208zM304 160l-96 96l-96 -96h192z" />
+    <glyph glyph-name="ion-android-arrow-dropup" unicode="&#xf365;" horiz-adv-x="256" 
+d="M0 128l128 128l128 -128h-256z" />
+    <glyph glyph-name="ion-android-arrow-forward" unicode="&#xf30f;" horiz-adv-x="342" 
+d="M0 171v42h260l-119 120l30 30l171 -171l-171 -171l-31 30l120 120h-260z" />
+    <glyph glyph-name="ion-android-arrow-up" unicode="&#xf366;" horiz-adv-x="342" 
+d="M192 21h-42v260l-120 -119l-30 30l171 171l171 -171l-30 -31l-120 120v-260z" />
+    <glyph glyph-name="ion-android-attach" unicode="&#xf367;" horiz-adv-x="235" 
+d="M203 320h32v-235c0 -65 -53 -117 -118 -117s-117 52 -117 117v246c0 47 38 85 85 85s86 -38 86 -85v-246c0 -30 -24 -53 -54 -53s-53 23 -53 53v203h32v-203c0 -12 9 -21 21 -21s22 9 22 21v246c0 30 -24 53 -54 53s-53 -23 -53 -53v-246c0 -47 38 -85 85 -85
+s86 38 86 85v235z" />
+    <glyph glyph-name="ion-android-bar" unicode="&#xf368;" horiz-adv-x="384" 
+d="M171 171l-171 170v43h384v-43l-171 -170v-131h107v-40h-256v40h107v131zM96 299h192l43 42h-278z" />
+    <glyph glyph-name="ion-android-bicycle" unicode="&#xf369;" 
+d="M299 317c-19 0 -34 14 -34 33s15 34 34 34s33 -15 33 -34s-14 -33 -33 -33zM355 187c51 0 93 -43 93 -94s-42 -93 -93 -93s-94 42 -94 93s43 94 94 94zM355 28c36 0 65 29 65 65s-29 66 -65 66s-66 -30 -66 -66s30 -65 66 -65zM274 224l-30 45l-43 -45l39 -32v-112h-32
+v86l-61 38c-9 6 -19 15 -19 27c0 8 3 17 9 23l72 69c6 6 14 9 22 9c11 0 22 -7 28 -16l34 -60h59v-32h-78zM93 187c51 0 94 -43 94 -94s-43 -93 -94 -93s-93 42 -93 93s42 94 93 94zM93 28c36 0 66 29 66 65s-30 66 -66 66s-65 -30 -65 -66s29 -65 65 -65z" />
+    <glyph glyph-name="ion-android-boat" unicode="&#xf36a;" 
+d="M52 35l-51 139c-2 6 -1 12 1 17s8 8 13 10l38 13v98c0 23 20 43 43 43h64l16 53h96l16 -53h64c23 0 43 -20 43 -43v-98l38 -13c5 -2 11 -5 13 -10s3 -12 1 -17l-51 -139h-1c-34 0 -65 20 -86 43c-21 -23 -51 -43 -85 -43s-64 19 -85 42c-21 -23 -52 -42 -86 -42h-1z
+M96 312v-84l128 41l128 -41v84h-256zM309 40c0 0 59 -64 107 -64h-21c-30 0 -59 12 -86 26c-53 -28 -117 -28 -170 0c-27 -14 -56 -26 -86 -26h-21c49 0 107 64 107 64c52 -36 118 -36 170 0z" />
+    <glyph glyph-name="ion-android-bookmark" unicode="&#xf36b;" horiz-adv-x="288" 
+d="M248 384c22 0 40 -18 40 -40v-344l-144 64l-144 -64v344c0 22 18 40 40 40h208z" />
+    <glyph glyph-name="ion-android-bulb" unicode="&#xf36c;" 
+d="M224 278c-25 0 -50 -10 -68 -28s-28 -43 -28 -68c0 -34 18 -66 48 -83l16 -10v-18v-71h64v71v18l16 10c15 8 27 20 35 34c9 15 13 31 13 49c0 25 -10 50 -28 68s-43 28 -68 28zM245 416v0v-64h-42v64h42zM374 362v0l30 -30l-38 -38l-30 30zM74 362v0l38 -38l-30 -30
+l-38 38zM224 310v0c70 0 128 -58 128 -128c0 -48 -26 -89 -64 -111v-103h-128v103c-38 22 -64 64 -64 111c0 70 58 128 128 128zM448 203v0v-42h-64v42h64zM64 203v0v-42h-64v42h64z" />
+    <glyph glyph-name="ion-android-bus" unicode="&#xf36d;" horiz-adv-x="352" 
+d="M0 96v204c0 75 82 84 176 84s176 -9 176 -84v-204c0 -18 -14 -24 -27 -36v-39c0 -12 -9 -21 -21 -21h-21c-12 0 -22 9 -22 21v22h-170v-22c0 -12 -10 -21 -22 -21h-21c-12 0 -21 9 -21 21v39c-13 12 -27 17 -27 36zM80 80c18 0 32 14 32 32s-14 32 -32 32
+s-32 -14 -32 -32s14 -32 32 -32zM272 80c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM304 203v106h-256v-106h256z" />
+    <glyph glyph-name="ion-android-calendar" unicode="&#xf2d1;" horiz-adv-x="384" 
+d="M304 176v-96h-96v96h96zM272 384h48v-32h24c22 0 40 -18 40 -40v-272c0 -22 -18 -40 -40 -40h-304c-22 0 -40 18 -40 40v272c0 22 18 40 40 40h24v32h48v-32h160v32zM344 40v212h-304v-212h304z" />
+    <glyph glyph-name="ion-android-call" unicode="&#xf2d2;" horiz-adv-x="384" 
+d="M363 117c12 0 21 -9 21 -21v-75c0 -12 -9 -21 -21 -21c-201 0 -363 162 -363 363c0 12 9 21 21 21h75c12 0 21 -9 21 -21c0 -27 4 -52 13 -77c2 -7 0 -16 -5 -21l-47 -47c31 -61 80 -110 141 -141l47 47c5 6 14 7 21 5c23 -7 49 -12 76 -12z" />
+    <glyph glyph-name="ion-android-camera" unicode="&#xf2d3;" 
+d="M161 168c0 42 21 63 63 63s63 -21 63 -63s-21 -63 -63 -63s-63 21 -63 63zM408 352c11 0 20 -4 28 -12s12 -17 12 -28v-272c0 -11 -4 -20 -12 -28s-17 -12 -28 -12h-368c-11 0 -20 4 -28 12s-12 17 -12 28v272c0 11 4 20 12 28s17 12 28 12h88l32 32h128l32 -32h88z
+M224 56c31 0 57 11 79 33s33 48 33 79s-11 57 -33 79s-48 33 -79 33s-57 -11 -79 -33s-33 -48 -33 -79s11 -57 33 -79s48 -33 79 -33z" />
+    <glyph glyph-name="ion-android-cancel" unicode="&#xf36e;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM312 117l-75 75l75 75l-29 29l-75 -75l-75 75l-29 -29l75 -75l-75 -75l29 -29l75 75l75 -75z" />
+    <glyph glyph-name="ion-android-car" unicode="&#xf36f;" horiz-adv-x="384" 
+d="M339 331l45 -118v-160c0 -12 -9 -21 -21 -21h-22c-12 0 -21 9 -21 21v11h-256v-11c0 -12 -9 -21 -21 -21h-22c-12 0 -21 9 -21 21v160l45 118c4 13 16 21 30 21h234c14 0 26 -8 30 -21zM75 128c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM309 128
+c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM43 235h298l-32 85h-234z" />
+    <glyph glyph-name="ion-android-cart" unicode="&#xf370;" horiz-adv-x="416" 
+d="M122 70c23 0 41 -18 41 -41s-18 -42 -41 -42s-42 19 -42 42s19 41 42 41zM0 397h68l19 -42h308c11 0 21 -9 21 -20c0 -4 -1 -8 -2 -10l-75 -129c-7 -14 -20 -22 -36 -22h-155l-21 -32s-2 -5 -2 -6c0 -3 2 -5 5 -5h238v-40h-243c-26 0 -45 14 -45 42c0 7 2 15 5 20l31 51
+l-74 151h-42v42zM326 70c23 0 42 -18 42 -41s-19 -42 -42 -42s-41 19 -41 42s18 41 41 41z" />
+    <glyph glyph-name="ion-android-chat" unicode="&#xf2d4;" horiz-adv-x="416" 
+d="M344 384c4 0 7 -4 7 -8v-214c0 -4 -3 -9 -7 -9h-187l-90 -89v89h-57c-4 0 -10 5 -10 9v214c0 4 6 8 10 8h334zM408 321c4 0 8 -5 8 -9v-214c0 -4 -4 -9 -8 -9h-57v-89l-90 89h-130l39 39h181c18 0 25 10 25 26v167h32z" />
+    <glyph glyph-name="ion-android-checkbox-blank" unicode="&#xf371;" horiz-adv-x="384" 
+d="M341 384c23 0 43 -20 43 -43v-298c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h298z" />
+    <glyph glyph-name="ion-android-checkbox-outline-blank" unicode="&#xf372;" horiz-adv-x="384" 
+d="M341 341h-298v-298h298v298zM341 384v0c23 0 43 -20 43 -43v-298c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h298z" />
+    <glyph glyph-name="ion-android-checkbox-outline" unicode="&#xf373;" horiz-adv-x="384" 
+d="M105 233l66 -66l183 183l30 -30l-213 -213l-96 96zM341 43v170h43v-170c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h213v-43h-213v-298h298z" />
+    <glyph glyph-name="ion-android-checkbox" unicode="&#xf374;" horiz-adv-x="384" 
+d="M341 384c23 0 43 -20 43 -43v-298c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h298zM149 85l192 192l-30 30l-162 -162l-76 77l-30 -30z" />
+    <glyph glyph-name="ion-android-checkmark-circle" unicode="&#xf375;" horiz-adv-x="416" 
+d="M123 232l64 -64l179 178l29 -29l-208 -208l-93 93zM374 192h42c0 -114 -94 -208 -208 -208s-208 94 -208 208s94 208 208 208c28 0 54 -6 78 -16l-32 -32c-15 4 -30 6 -46 6c-92 0 -166 -74 -166 -166s74 -166 166 -166s166 74 166 166z" />
+    <glyph glyph-name="ion-android-clipboard" unicode="&#xf376;" horiz-adv-x="384" 
+d="M341 368c23 0 43 -20 43 -43v-314c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v314c0 23 20 43 43 43h87c7 28 32 48 62 48s55 -20 62 -48h87zM192 368c-12 0 -21 -9 -21 -21s9 -22 21 -22s21 10 21 22s-9 21 -21 21zM344 8v320h-40v-72h-224v72h-40v-320h304z" />
+    <glyph glyph-name="ion-android-close" unicode="&#xf2d7;" horiz-adv-x="298" 
+d="M298 311l-119 -119l119 -119l-30 -30l-119 119l-119 -119l-30 30l119 119l-119 119l30 30l119 -119l119 119z" />
+    <glyph glyph-name="ion-android-cloud-circle" unicode="&#xf377;" horiz-adv-x="416" 
+d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM302 109c29 0 52 23 52 52s-23 52 -52 52h-11c0 46 -37 83 -83 83c-38 0 -71 -26 -80 -62h-3c-34 0 -63 -29 -63 -63s29 -62 63 -62h177z" />
+    <glyph glyph-name="ion-android-cloud-done" unicode="&#xf378;" horiz-adv-x="480" 
+d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM197 85l141 141l-30 30l-111 -111l-44 45l-30 -30z" />
+    <glyph glyph-name="ion-android-cloud-outline" unicode="&#xf379;" horiz-adv-x="480" 
+d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM380 72c33 0 60 27 60 60s-27 60 -60 60h-30v10c0 61 -49 110 -110 110c-51 0 -93 -34 -106 -80h-14
+c-44 0 -80 -36 -80 -80s36 -80 80 -80h260z" />
+    <glyph glyph-name="ion-android-cloud" unicode="&#xf37a;" horiz-adv-x="480" 
+d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121z" />
+    <glyph glyph-name="ion-android-color-palette" unicode="&#xf37b;" horiz-adv-x="384" 
+d="M192 384c106 0 192 -77 192 -171c0 -59 -48 -106 -107 -106h-38c-18 0 -32 -14 -32 -32c0 -9 3 -17 8 -22s9 -12 9 -21c0 -18 -14 -32 -32 -32c-106 0 -192 86 -192 192s86 192 192 192zM75 192c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM139 277
+c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM245 277c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM309 192c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" />
+    <glyph glyph-name="ion-android-compass" unicode="&#xf37c;" 
+d="M224 217c13 0 25 -12 25 -25s-12 -25 -25 -25s-25 12 -25 25s12 25 25 25zM224 416c123 0 224 -101 224 -224s-101 -224 -224 -224s-224 101 -224 224s101 224 224 224zM273 143l85 183l-183 -85l-85 -183z" />
+    <glyph glyph-name="ion-android-contact" unicode="&#xf2d8;" horiz-adv-x="384" 
+d="M267 110c59 -18 104 -58 117 -110h-384c13 52 58 92 117 110c22 -13 48 -20 75 -20s53 7 75 20zM192 384c73 0 132 -59 132 -132s-59 -132 -132 -132s-132 59 -132 132s59 132 132 132zM192 153c42 0 78 26 92 63h-184c14 -37 50 -63 92 -63z" />
+    <glyph glyph-name="ion-android-contacts" unicode="&#xf2d9;" 
+d="M207 104c47 -14 76 -62 87 -104h-294c11 42 40 90 87 104c18 -10 38 -16 60 -16s42 6 60 16zM147 328c58 0 106 -48 106 -106s-48 -106 -106 -106s-106 48 -106 106s48 106 106 106zM147 141c34 0 62 23 74 51h-148c12 -28 40 -51 74 -51zM291 64c-13 20 -34 43 -60 53
+c11 9 21 23 28 35c13 -5 27 -8 42 -8c22 0 42 6 60 16c47 -14 76 -54 87 -96h-157zM275 248c-8 37 -31 69 -63 87c19 29 52 49 89 49c58 0 106 -48 106 -106s-48 -106 -106 -106c-11 0 -22 2 -32 5c3 8 6 16 7 25c8 -3 16 -4 25 -4c34 0 62 22 74 50h-100z" />
+    <glyph glyph-name="ion-android-contract" unicode="&#xf37d;" horiz-adv-x="384" 
+d="M0 77v51h128v-128h-51v77h-77zM77 307v77h51v-128h-128v51h77zM256 0v128h128v-51h-77v-77h-51zM307 307h77v-51h-128v128h51v-77z" />
+    <glyph glyph-name="ion-android-create" unicode="&#xf37e;" horiz-adv-x="384" 
+d="M0 80l236 236l80 -80l-236 -236h-80v80zM378 298l-40 -40l-80 80l40 40c9 9 20 9 29 0l51 -51c9 -9 9 -20 0 -29z" />
+    <glyph glyph-name="ion-android-delete" unicode="&#xf37f;" horiz-adv-x="320" 
+d="M32 43v245h256v-245c0 -23 -20 -43 -43 -43h-170c-23 0 -43 20 -43 43zM320 352v-32h-320v32h80l27 32h106l27 -32h80z" />
+    <glyph glyph-name="ion-android-desktop" unicode="&#xf380;" 
+d="M405 416c23 0 43 -20 43 -43v-282c0 -23 -20 -43 -43 -43h-138l42 -48v-32h-170v32l42 48h-138c-23 0 -43 20 -43 43v282c0 23 20 43 43 43h362zM405 128v245h-362v-245h362z" />
+    <glyph glyph-name="ion-android-document" unicode="&#xf381;" horiz-adv-x="320" 
+d="M192 400l128 -128v-248c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v336c0 22 18 40 40 40h152zM176 256h112l-112 112v-112z" />
+    <glyph glyph-name="ion-android-done-all" unicode="&#xf382;" horiz-adv-x="512" 
+d="M388 308l-140 -139l-31 31l140 139zM481 339l31 -31l-264 -263l-122 123l30 31l92 -91zM0 168l32 31l122 -123l-31 -31z" />
+    <glyph glyph-name="ion-android-done" unicode="&#xf383;" horiz-adv-x="384" 
+d="M122 108l230 230l32 -31l-262 -261l-122 122l32 31z" />
+    <glyph glyph-name="ion-android-download" unicode="&#xf2dd;" horiz-adv-x="480" 
+d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM208 180h-68l100 -100l100 100h-68v76h-64v-76z" />
+    <glyph glyph-name="ion-android-drafts" unicode="&#xf384;" 
+d="M448 246v-203c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v203c0 15 8 30 20 37l204 101l204 -101c13 -7 20 -22 20 -37zM224 144l171 112l-171 85l-171 -85z" />
+    <glyph glyph-name="ion-android-exit" unicode="&#xf385;" horiz-adv-x="384" 
+d="M151 115l55 56h-206v42h207l-56 56l30 30l107 -107l-107 -107zM341 384c23 0 43 -20 43 -43v-298c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v85h43v-85h298v298h-298v-85h-43v85c0 23 20 43 43 43h298z" />
+    <glyph glyph-name="ion-android-expand" unicode="&#xf386;" horiz-adv-x="384" 
+d="M333 51v77h51v-128h-128v51h77zM333 333h-77v51h128v-128h-51v77zM51 333v-77h-51v128h128v-51h-77zM51 51h77v-51h-128v128h51v-77z" />
+    <glyph glyph-name="ion-android-favorite-outline" unicode="&#xf387;" horiz-adv-x="416" 
+d="M302 384c64 0 114 -50 114 -115c0 -80 -71 -144 -178 -242l-30 -27l-30 27c-107 98 -178 162 -178 242c0 65 50 115 114 115c36 0 71 -17 94 -44c23 27 58 44 94 44zM221 55c50 46 94 86 123 122c28 35 40 63 40 92c0 23 -9 44 -24 59s-35 24 -58 24
+c-26 0 -53 -13 -70 -33l-24 -29l-24 29c-17 20 -44 33 -70 33c-23 0 -43 -9 -58 -24s-24 -36 -24 -59c0 -29 12 -57 40 -92c29 -36 73 -76 123 -122l4 -4l9 -8l9 8z" />
+    <glyph glyph-name="ion-android-favorite" unicode="&#xf388;" horiz-adv-x="416" 
+d="M208 0l-30 27c-107 98 -178 162 -178 242c0 65 50 115 114 115c36 0 71 -17 94 -44c23 27 58 44 94 44c64 0 114 -50 114 -115c0 -80 -71 -144 -178 -242z" />
+    <glyph glyph-name="ion-android-film" unicode="&#xf389;" horiz-adv-x="320" 
+d="M280 384h40v-384h-40v43h-40v-43h-160v43h-40v-43h-40v384h40v-43h40v43h160v-43h40v43zM80 85v43h-40v-43h40zM80 171v42h-40v-42h40zM80 256v43h-40v-43h40zM280 85v43h-40v-43h40zM280 171v42h-40v-42h40zM280 256v43h-40v-43h40z" />
+    <glyph glyph-name="ion-android-folder-open" unicode="&#xf38a;" 
+d="M405 304c23 0 43 -20 43 -43v-186c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v234c0 23 20 43 43 43h138l43 -48h181zM416 75v186c0 6 -5 11 -11 11h-373v-197c0 -6 5 -11 11 -11h362c6 0 11 5 11 11z" />
+    <glyph glyph-name="ion-android-folder" unicode="&#xf2e0;" 
+d="M181 352l43 -48h181c23 0 43 -20 43 -43v-186c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v234c0 23 20 43 43 43h138z" />
+    <glyph glyph-name="ion-android-funnel" unicode="&#xf38b;" 
+d="M176 48v48h96v-48h-96zM0 336h448v-48h-448v48zM80 167v50h288v-50h-288z" />
+    <glyph glyph-name="ion-android-globe" unicode="&#xf38c;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM186 15c6 15 21 29 8 39c-8 7 -16 14 -23 21c-2 2 -11 20 -9 23c5 9 6 14 8 24c3 12 -3 16 -13 22c-15 10 -29 23 -43 34c-7 5 -17 10 -20 19s-5 20 -10 28c-14 20 -12 34 -10 58
+c0 7 -1 16 -2 25c-28 -32 -42 -73 -42 -116c0 -48 18 -92 52 -126c29 -29 65 -46 104 -51zM334 66c23 23 39 51 47 82c-8 -1 -19 2 -19 2s-21 24 -23 45c-2 22 0 39 -3 57c-3 16 -20 31 -27 46c-7 14 -13 28 -20 42c2 -1 5 -2 7 -3c5 1 10 2 14 2c-23 16 -49 25 -76 29v-8
+l4 -9l-14 -13l-9 3l-10 10l-10 12l-14 5c-16 -2 -31 -7 -45 -13v-7c7 3 16 5 23 8c3 1 13 -7 16 -9c-4 -5 -21 -15 -22 -21c0 -2 7 -6 7 -10c0 -6 -1 -11 -1 -17c3 3 20 21 22 21c13 3 35 -19 37 -26s-22 -24 -33 -34c-8 -8 -25 -12 -20 -24c2 -4 10 -20 5 -24
+c-6 -5 -14 9 -17 12c-8 10 -26 7 -38 7c0 -17 -1 -31 15 -43c15 -11 30 -25 47 -33c13 -6 36 7 47 -1c16 -11 29 -21 47 -29c8 -3 33 -20 26 -31c-5 -8 -10 -15 -14 -23s-13 -20 -20 -25c-8 -6 -16 -17 -21 -29c35 7 66 23 92 49z" />
+    <glyph glyph-name="ion-android-hand" unicode="&#xf2e3;" horiz-adv-x="414" 
+d="M401 174c15 -15 18 -36 3 -51c0 0 -96 -103 -126 -121v0c-28 -21 -65 -34 -100 -34c-55 0 -101 36 -117 85v0v1c0 1 -1 2 -1 3l-58 189c-5 15 2 32 17 37s30 -3 35 -18l34 -88c1 -4 2 -2 2 1l-22 161c-3 15 7 30 22 33s30 -8 33 -23l25 -138c0 -2 2 -2 2 0v177
+c0 15 13 28 28 28s28 -13 28 -28l8 -175c0 -5 3 -4 4 -1l23 135c2 15 16 27 31 25s27 -17 25 -32l-21 -172c-1 -12 -3 -30 2 -36c8 -9 20 -9 31 2l42 42c15 15 35 13 50 -2z" />
+    <glyph glyph-name="ion-android-hangout" unicode="&#xf38d;" horiz-adv-x="352" 
+d="M176 400c97 0 176 -77 176 -172c0 -91 -76 -196 -176 -244v71c-97 0 -176 78 -176 173s79 172 176 172zM166 217v61h-62v-61h31l-21 -40h31zM248 217v61h-62v-61h31l-20 -40h31z" />
+    <glyph glyph-name="ion-android-happy" unicode="&#xf38e;" horiz-adv-x="416" 
+d="M208 400c114 0 208 -94 208 -208s-93 -208 -208 -208s-208 94 -208 208s93 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166zM281 213c-18 0 -31 13 -31 31s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31zM135 213
+c-18 0 -31 13 -31 31s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31zM208 78c-49 0 -89 29 -106 72h212c-17 -43 -57 -72 -106 -72z" />
+    <glyph glyph-name="ion-android-home" unicode="&#xf38f;" horiz-adv-x="416" 
+d="M160 0h-98v192h-62l208 192l208 -192h-62v-192h-98v128h-96v-128z" />
+    <glyph glyph-name="ion-android-image" unicode="&#xf2e4;" horiz-adv-x="384" 
+d="M384 43c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h298c23 0 43 -20 43 -43v-298zM117 160l-74 -96h298l-96 128l-74 -96z" />
+    <glyph glyph-name="ion-android-laptop" unicode="&#xf390;" horiz-adv-x="512" 
+d="M437 32h75c0 -23 -64 -32 -96 -32h-320c-32 0 -96 9 -96 32h75c-23 0 -43 20 -43 43v266c0 23 20 43 43 43h362c23 0 43 -20 43 -43v-266c0 -23 -20 -43 -43 -43zM75 341v-272h362v272h-362zM256 13c12 0 21 10 21 22s-9 21 -21 21s-21 -9 -21 -21s9 -22 21 -22z" />
+    <glyph glyph-name="ion-android-list" unicode="&#xf391;" horiz-adv-x="384" 
+d="M344 384c22 0 40 -18 40 -40v-304c0 -22 -18 -40 -40 -40h-304c-22 0 -40 18 -40 40v304c0 22 18 40 40 40h304zM240 80v48h-160v-48h160zM304 168v48h-224v-48h224zM304 256v48h-224v-48h224z" />
+    <glyph glyph-name="ion-android-locate" unicode="&#xf2e9;" 
+d="M224 272c44 0 80 -36 80 -80s-36 -80 -80 -80s-80 36 -80 80s36 80 80 80zM415 213h33v-42h-33c-10 -89 -81 -160 -170 -170v-33h-42v33c-89 10 -160 81 -170 170h-33v42h33c10 89 81 160 170 170v33h42v-33c89 -10 160 -81 170 -170zM224 43c82 0 149 67 149 149
+s-67 149 -149 149s-149 -67 -149 -149s67 -149 149 -149z" />
+    <glyph glyph-name="ion-android-lock" unicode="&#xf392;" horiz-adv-x="320" 
+d="M280 262c22 0 40 -18 40 -40v-200c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v200c0 22 18 40 40 40h20v40c0 55 45 100 100 100s100 -45 100 -100v-40h20zM160 80c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40zM222 262v40c0 34 -28 62 -62 62
+s-62 -28 -62 -62v-40h124z" />
+    <glyph glyph-name="ion-android-mail" unicode="&#xf2eb;" 
+d="M405 368c23 0 43 -20 43 -43v-266c0 -23 -20 -43 -43 -43h-362c-23 0 -43 20 -43 43v266c0 23 20 43 43 43h362zM400 277v43l-176 -117l-176 117v-43l176 -117z" />
+    <glyph glyph-name="ion-android-map" unicode="&#xf393;" horiz-adv-x="384" 
+d="M373 384c6 0 11 -5 11 -11v-322c0 -5 -3 -9 -7 -10l-121 -41l-128 45s-105 -41 -108 -42s-7 -3 -9 -3c-6 0 -11 5 -11 11v322c0 5 3 9 7 10l121 41l128 -45s103 40 108 42s7 3 9 3zM256 43v254l-128 44v-254z" />
+    <glyph glyph-name="ion-android-menu" unicode="&#xf394;" horiz-adv-x="384" 
+d="M0 64v43h384v-43h-384zM0 171v42h384v-42h-384zM0 320h384v-43h-384v43z" />
+    <glyph glyph-name="ion-android-microphone-off" unicode="&#xf395;" horiz-adv-x="408" 
+d="M316 93l58 -58l-58 58l58 -58l34 -33l-24 -24l-95 95c-19 -11 -40 -20 -62 -23v-82h-46v82c-75 10 -137 76 -137 153h39c0 -68 58 -117 121 -117c20 0 40 5 57 14l-32 33c-8 -3 -16 -5 -25 -5c-38 0 -69 31 -69 69v29l-135 134l24 24l111 -110v0l140 -140l5 -5l9 -9z
+M273 197c0 -4 0 -8 -1 -12l-137 137v25c0 38 31 69 69 69s69 -31 69 -69v-150zM365 203c0 -31 -10 -60 -27 -84l-27 28c9 17 15 36 15 56h39zM408 2v0l-34 33z" />
+    <glyph glyph-name="ion-android-microphone" unicode="&#xf2ec;" horiz-adv-x="320" 
+d="M160 128c-38 0 -69 31 -69 69v150c0 38 31 69 69 69s69 -31 69 -69v-150c0 -38 -31 -69 -69 -69zM281 203h39c0 -78 -62 -142 -137 -153v-82h-46v82c-75 10 -137 75 -137 153h39c0 -69 58 -116 121 -116s121 47 121 116z" />
+    <glyph glyph-name="ion-android-more-horizontal" unicode="&#xf396;" horiz-adv-x="320" 
+d="M40 232c22 0 40 -18 40 -40s-18 -40 -40 -40s-40 18 -40 40s18 40 40 40zM280 232c22 0 40 -18 40 -40s-18 -40 -40 -40s-40 18 -40 40s18 40 40 40zM160 232c22 0 40 -18 40 -40s-18 -40 -40 -40s-40 18 -40 40s18 40 40 40z" />
+    <glyph glyph-name="ion-android-more-vertical" unicode="&#xf397;" horiz-adv-x="80" 
+d="M80 312c0 -22 -18 -40 -40 -40s-40 18 -40 40s18 40 40 40s40 -18 40 -40zM80 72c0 -22 -18 -40 -40 -40s-40 18 -40 40s18 40 40 40s40 -18 40 -40zM80 192c0 -22 -18 -40 -40 -40s-40 18 -40 40s18 40 40 40s40 -18 40 -40z" />
+    <glyph glyph-name="ion-android-navigate" unicode="&#xf398;" horiz-adv-x="320" 
+d="M160 384l160 -369l-15 -15l-145 64l-145 -64l-15 15z" />
+    <glyph glyph-name="ion-android-notifications-none" unicode="&#xf399;" horiz-adv-x="352" 
+d="M177 328h-2c-6 0 -24 -5 -24 -5c-46 -10 -78 -53 -78 -100v-114v-13l-9 -10l-8 -8h240l-8 8l-9 10v13v114c0 47 -32 90 -78 100c0 0 -17 5 -24 5zM176 400v0c18 0 31 -13 31 -31v-15c59 -14 104 -68 104 -131v-114l41 -42v-21h-352v21l41 42v114c0 63 45 117 104 131v15
+c0 18 13 31 31 31zM217 26v0c0 -23 -18 -42 -41 -42s-41 19 -41 42h82z" />
+    <glyph glyph-name="ion-android-notifications-off" unicode="&#xf39a;" horiz-adv-x="364" 
+d="M182 -16c-23 0 -41 19 -41 42h82c0 -23 -18 -42 -41 -42zM57 341l295 -295v0l12 -12l-24 -24l-36 36h-298v21l41 41v115c0 23 6 44 16 63l-63 64l24 24l33 -33v0zM317 223v-94l-208 207c13 8 27 15 42 18v15c0 18 13 31 31 31s31 -13 31 -31v-15c59 -14 104 -67 104 -131
+z" />
+    <glyph glyph-name="ion-android-notifications" unicode="&#xf39b;" horiz-adv-x="352" 
+d="M176 -16c-23 0 -41 19 -41 42h82c0 -23 -18 -42 -41 -42zM311 109l41 -42v-21h-352v21l41 42v114c0 63 45 117 104 131v15c0 18 13 31 31 31s31 -13 31 -31v-15c59 -14 104 -68 104 -131v-114z" />
+    <glyph glyph-name="ion-android-open" unicode="&#xf39c;" horiz-adv-x="384" 
+d="M341 43v133h43v-133c0 -23 -20 -43 -43 -43h-298c-23 0 -43 20 -43 43v298c0 23 20 43 43 43h133v-43h-133v-298h298zM224 384h160v-160h-43v87l-215 -215l-30 30l215 215h-87v43z" />
+    <glyph glyph-name="ion-android-options" unicode="&#xf39d;" 
+d="M0 32v32h272v-32h-272zM368 32v32h80v-32h-80zM352 0c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v96c0 18 14 32 32 32v0c18 0 32 -14 32 -32v-96zM0 176v32h80v-32h-80zM176 176v32h272v-32h-272zM160 144c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v96
+c0 18 14 32 32 32v0c18 0 32 -14 32 -32v-96zM0 320v32h272v-32h-272zM368 320v32h80v-32h-80zM352 288c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v96c0 18 14 32 32 32v0c18 0 32 -14 32 -32v-96z" />
+    <glyph glyph-name="ion-android-people" unicode="&#xf39e;" 
+d="M305 216c-34 0 -61 27 -61 60s27 60 61 60s62 -27 62 -60s-28 -60 -62 -60zM143 216c-34 0 -62 27 -62 60s28 60 62 60s61 -27 61 -60s-27 -60 -61 -60zM143 172c48 0 145 -23 145 -70v-54h-288v54c0 47 95 70 143 70zM305 161c48 0 143 -12 143 -59v-54h-128v54
+c0 30 -9 41 -32 58c7 1 11 1 17 1z" />
+    <glyph glyph-name="ion-android-person-add" unicode="&#xf39f;" horiz-adv-x="480" 
+d="M288 192c-53 0 -96 43 -96 96s43 96 96 96s96 -43 96 -96s-43 -96 -96 -96zM288 144c64 0 192 -32 192 -96v-48h-384v48c0 64 128 96 192 96zM96 224h64v-32h-64v-64h-32v64h-64v32h64v64h32v-64z" />
+    <glyph glyph-name="ion-android-person" unicode="&#xf3a0;" horiz-adv-x="384" 
+d="M192 192c-53 0 -96 43 -96 96s43 96 96 96s96 -43 96 -96s-43 -96 -96 -96zM192 144c64 0 192 -32 192 -96v-48h-384v48c0 64 128 96 192 96z" />
+    <glyph glyph-name="ion-android-phone-landscape" unicode="&#xf3a1;" 
+d="M448 89c0 -23 -19 -41 -41 -41h-366c-22 0 -41 18 -41 41v206c0 23 19 41 41 41h366c22 0 41 -18 41 -41v-206zM80 84h288v216h-288v-216z" />
+    <glyph glyph-name="ion-android-phone-portrait" unicode="&#xf3a2;" horiz-adv-x="288" 
+d="M247 416c23 0 41 -19 41 -41v-366c0 -22 -18 -41 -41 -41h-206c-23 0 -41 19 -41 41v366c0 22 18 41 41 41h206zM252 48v288h-216v-288h216z" />
+    <glyph glyph-name="ion-android-pin" unicode="&#xf3a3;" horiz-adv-x="320" 
+d="M160 416c88 0 160 -71 160 -157c0 -118 -160 -291 -160 -291s-160 173 -160 291c0 86 72 157 160 157zM160 203c32 0 57 25 57 56s-25 56 -57 56s-57 -25 -57 -56s25 -56 57 -56z" />
+    <glyph glyph-name="ion-android-plane" unicode="&#xf3a4;" horiz-adv-x="384" 
+d="M384 112l-160 48v-114l48 -31v-31l-80 16l-80 -16v31l48 31v114l-160 -48v40l160 104v113c0 18 15 31 32 31s32 -13 32 -31v-113l160 -104v-40z" />
+    <glyph glyph-name="ion-android-playstore" unicode="&#xf2f0;" horiz-adv-x="416" 
+d="M416 296c-19 -214 -13 -312 -13 -312h-390s6 96 -13 312h104c0 57 47 104 104 104s104 -47 104 -104h104zM208 374c-43 0 -78 -35 -78 -78h156c0 43 -35 78 -78 78zM156 50l143 85l-143 84v-169z" />
+    <glyph glyph-name="ion-android-print" unicode="&#xf3a5;" horiz-adv-x="416" 
+d="M352 288c35 0 64 -29 64 -64v-139h-80v-85h-256v85h-80v139c0 35 29 64 64 64h288zM304 32v128h-192v-128h192zM336 384v0v-80h-256v80h256z" />
+    <glyph glyph-name="ion-android-radio-button-off" unicode="&#xf3a6;" horiz-adv-x="416" 
+d="M208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166z" />
+    <glyph glyph-name="ion-android-radio-button-on" unicode="&#xf3a7;" horiz-adv-x="416" 
+d="M208 296c57 0 104 -47 104 -104s-47 -104 -104 -104s-104 47 -104 104s47 104 104 104zM208 400c114 0 208 -94 208 -208s-94 -208 -208 -208s-208 94 -208 208s94 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166z" />
+    <glyph glyph-name="ion-android-refresh" unicode="&#xf3a8;" horiz-adv-x="352" 
+d="M176 60c56 0 104 34 123 84h46c-21 -74 -88 -128 -169 -128c-98 0 -176 79 -176 176s79 176 176 176c48 0 92 -20 124 -52l52 52v-154h-154l70 70c-23 24 -56 40 -92 40c-73 0 -132 -59 -132 -132s59 -132 132 -132z" />
+    <glyph glyph-name="ion-android-remove-circle" unicode="&#xf3a9;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM315 171v42h-214v-42h214z" />
+    <glyph glyph-name="ion-android-remove" unicode="&#xf2f4;" horiz-adv-x="320" 
+d="M0 171v42h320v-42h-320z" />
+    <glyph glyph-name="ion-android-restaurant" unicode="&#xf3aa;" horiz-adv-x="415" 
+d="M116 168l-91 89c-34 33 -34 86 0 119l153 -148zM264 206l-33 -31l150 -145l-30 -30l-150 146l-150 -146l-30 30s163 159 211 207c-15 32 -4 77 31 111c41 40 101 49 132 17c33 -31 24 -89 -17 -129c-34 -34 -80 -45 -114 -30z" />
+    <glyph glyph-name="ion-android-sad" unicode="&#xf3ab;" horiz-adv-x="416" 
+d="M208 160c45 0 83 -26 102 -64h-204c19 38 57 64 102 64zM208 400c114 0 208 -94 208 -208s-93 -208 -208 -208s-208 94 -208 208s93 208 208 208zM208 26c92 0 166 74 166 166s-74 166 -166 166s-166 -74 -166 -166s74 -166 166 -166zM281 213c-18 0 -31 13 -31 31
+s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31zM135 213c-18 0 -31 13 -31 31s13 31 31 31s31 -13 31 -31s-13 -31 -31 -31z" />
+    <glyph glyph-name="ion-android-search" unicode="&#xf2f5;" horiz-adv-x="384" 
+d="M274 143l110 -110l-33 -33l-109 110v17l-7 6c-25 -21 -58 -34 -93 -34c-79 0 -142 63 -142 142s63 143 141 143c79 0 142 -64 142 -143c0 -36 -13 -68 -34 -93l7 -5h18zM142 143c55 0 99 43 99 98s-44 99 -99 99s-98 -44 -98 -99s43 -98 98 -98z" />
+    <glyph glyph-name="ion-android-send" unicode="&#xf2f6;" horiz-adv-x="416" 
+d="M0 0v149l298 43l-298 43v149l416 -192z" />
+    <glyph glyph-name="ion-android-settings" unicode="&#xf2f7;" horiz-adv-x="416" 
+d="M366 171l47 -34c3 -3 4 -10 2 -14l-43 -71c-2 -4 -7 -7 -12 -5l-54 21c-12 -8 -23 -16 -36 -21l-8 -55c-1 -4 -6 -8 -11 -8h-85c-5 0 -10 3 -11 8l-8 55c-13 5 -25 13 -36 21l-54 -21c-4 -2 -10 1 -12 5l-43 71c-3 5 -2 11 2 14l45 34c0 7 -1 14 -1 21s1 14 1 21l-46 34
+c-3 3 -4 10 -2 14l43 71c2 4 7 7 12 5l54 -21c12 8 23 16 36 21l8 55c1 4 6 8 11 8h85c5 0 10 -4 11 -8l7 -55c13 -5 25 -13 36 -21l53 21c4 2 11 -1 13 -5l43 -71c3 -5 2 -11 -2 -14l-45 -34c0 -7 1 -14 1 -21s0 -15 -1 -21zM207 119c41 0 75 32 75 73s-34 73 -75 73
+s-74 -32 -74 -73s33 -73 74 -73z" />
+    <glyph glyph-name="ion-android-share-alt" unicode="&#xf3ac;" horiz-adv-x="384" 
+d="M320 104c34 0 62 -28 62 -62s-28 -62 -62 -62s-62 28 -62 62c0 5 1 10 2 14l-152 88c-12 -11 -27 -17 -44 -17c-35 0 -64 29 -64 64s28 64 63 64c17 0 32 -6 44 -17l151 87c-1 5 -2 10 -2 15c0 35 29 64 64 64s64 -29 64 -64s-29 -64 -64 -64c-17 0 -32 6 -44 17
+l-151 -87c1 -5 2 -10 2 -15s-1 -10 -2 -15l153 -88c11 11 26 16 42 16z" />
+    <glyph glyph-name="ion-android-share" unicode="&#xf2f8;" horiz-adv-x="384" 
+d="M384 200l-160 -147v88c-107 0 -171 -34 -224 -109c21 107 75 214 224 235v85z" />
+    <glyph glyph-name="ion-android-star-half" unicode="&#xf3ad;" horiz-adv-x="404" 
+d="M404 238l-110 -96l33 -142l-125 75l-125 -75l33 142l-110 96l145 12l57 134l57 -134zM219 103l60 -36l-16 68l-5 19l15 12l53 46l-70 6l-19 2l-8 18l-27 64v-189z" />
+    <glyph glyph-name="ion-android-star-outline" unicode="&#xf3ae;" horiz-adv-x="404" 
+d="M404 238l-110 -96l33 -142l-125 75l-125 -75l33 142l-110 96l145 12l57 134l57 -134zM219 103l60 -36l-16 68l-5 19l15 12l53 46l-70 6l-19 2l-8 18l-27 64l-27 -64l-8 -18l-19 -2l-70 -6l53 -46l15 -12l-5 -19l-16 -68l60 36l17 10z" />
+    <glyph glyph-name="ion-android-star" unicode="&#xf2fc;" horiz-adv-x="404" 
+d="M202 75l-125 -75l33 142l-110 96l145 12l57 134l57 -134l145 -12l-110 -96l33 -142z" />
+    <glyph glyph-name="ion-android-stopwatch" unicode="&#xf2fd;" horiz-adv-x="384" 
+d="M168 141v131h48v-131h-48zM344 278c25 -33 40 -74 40 -118c0 -106 -86 -192 -192 -192s-192 86 -192 192s86 192 192 192c44 0 85 -15 118 -40l31 30l33 -33zM298 54c28 28 44 66 44 106s-16 78 -44 106s-66 44 -106 44s-78 -16 -106 -44s-44 -66 -44 -106
+s16 -78 44 -106s66 -44 106 -44s78 16 106 44zM128 368v48h128v-48h-128z" />
+    <glyph glyph-name="ion-android-subway" unicode="&#xf3af;" horiz-adv-x="352" 
+d="M176 400c94 0 176 -10 176 -85v-214c0 -42 -33 -74 -75 -74l27 -27v-16h-256v16l27 27c-42 0 -75 32 -75 74v214c0 75 82 85 176 85zM80 64c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM160 208v96h-112v-96h112zM272 64c18 0 32 14 32 32
+s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM304 208v96h-112v-96h112z" />
+    <glyph glyph-name="ion-android-sunny" unicode="&#xf3b0;" 
+d="M224 288c-25 0 -50 -10 -68 -28s-28 -43 -28 -68s10 -50 28 -68s43 -28 68 -28s50 10 68 28s28 43 28 68s-10 50 -28 68s-43 28 -68 28zM245 416v0v-64h-42v64h42zM374 372v0l30 -30l-38 -38l-30 30zM74 372v0l38 -38l-30 -30l-38 38zM224 320v0c70 0 128 -58 128 -128
+s-58 -128 -128 -128s-128 58 -128 128s58 128 128 128zM448 213v0v-42h-64v42h64zM64 213v0v-42h-64v42h64zM366 80v0l38 -38l-30 -30l-38 38zM82 80v0l30 -30l-38 -38l-30 30zM245 32v0v-64h-42v64h42z" />
+    <glyph glyph-name="ion-android-sync" unicode="&#xf3b1;" horiz-adv-x="320" 
+d="M160 355c88 0 160 -73 160 -163c0 -32 -9 -62 -25 -87l-29 30c9 17 14 37 14 57c0 67 -54 122 -120 122v-61l-80 82l80 81v-61zM160 70v61l80 -82l-80 -81v61c-88 0 -160 73 -160 163c0 32 9 63 25 87l29 -30c-9 -17 -14 -37 -14 -57c0 -67 54 -122 120 -122z" />
+    <glyph glyph-name="ion-android-textsms" unicode="&#xf3b2;" horiz-adv-x="384" 
+d="M344 384c22 0 40 -18 40 -40v-240c0 -22 -18 -40 -40 -40h-280l-64 -64v344c0 22 10 40 32 40h312zM134 206v40h-38v-40h38zM211 206v40h-38v-40h38zM288 206v40h-38v-40h38z" />
+    <glyph glyph-name="ion-android-time" unicode="&#xf3b3;" horiz-adv-x="426" 
+d="M213 405c117 0 213 -96 213 -213s-95 -213 -213 -213s-213 96 -213 213s95 213 213 213zM213 22c94 0 170 76 170 170s-76 170 -170 170s-170 -76 -170 -170s76 -170 170 -170zM224 298v-111l96 -57l-16 -26l-112 67v127h32z" />
+    <glyph glyph-name="ion-android-train" unicode="&#xf3b4;" horiz-adv-x="352" 
+d="M0 101v214c0 75 82 85 176 85s176 -10 176 -85v-214c0 -42 -33 -74 -75 -74l27 -27v-16h-256v16l27 27c-42 0 -75 32 -75 74zM176 72c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40zM304 224v96h-256v-96h256z" />
+    <glyph glyph-name="ion-android-unlock" unicode="&#xf3b5;" horiz-adv-x="320" 
+d="M280 262c22 0 40 -18 40 -40v-200c0 -22 -18 -40 -40 -40h-240c-22 0 -40 18 -40 40v200c0 22 18 40 40 40h182v40v0c0 34 -28 62 -62 62s-62 -28 -62 -62h-38c0 55 45 100 100 100s100 -45 100 -100v-40h20zM160 80c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40
+s18 -40 40 -40z" />
+    <glyph glyph-name="ion-android-upload" unicode="&#xf3b6;" horiz-adv-x="480" 
+d="M387 231c52 -3 93 -46 93 -99c0 -55 -45 -100 -100 -100h-260c-66 0 -120 54 -120 120c0 62 47 113 107 119c25 48 75 81 133 81c73 0 133 -52 147 -121zM272 172h68l-100 100l-100 -100h68v-76h64v76z" />
+    <glyph glyph-name="ion-android-volume-down" unicode="&#xf3b7;" horiz-adv-x="288" 
+d="M0 256h85l107 112v-352l-107 112h-85v128zM288 192c0 -38 -21 -73 -53 -88v177c32 -16 53 -51 53 -89z" />
+    <glyph glyph-name="ion-android-volume-mute" unicode="&#xf3b8;" horiz-adv-x="192" 
+d="M0 256h85l107 112v-352l-107 112h-85v128z" />
+    <glyph glyph-name="ion-android-volume-off" unicode="&#xf3b9;" horiz-adv-x="384" 
+d="M342 192c0 69 -45 128 -107 147v45c85 -20 149 -99 149 -192c0 -35 -8 -68 -24 -96l-32 32c9 19 14 41 14 64zM192 368v-104l-51 51zM357 51v0l24 -24l-24 -24l-40 40c-23 -21 -51 -36 -82 -43v45c19 6 37 15 52 28l-95 95v-152l-107 112h-85v128h85l9 10l-91 91l24 24z
+M288 192c0 -7 0 -15 -2 -22l-51 51v60c32 -16 53 -51 53 -89z" />
+    <glyph glyph-name="ion-android-volume-up" unicode="&#xf3ba;" horiz-adv-x="384" 
+d="M0 256h85l107 112v-352l-107 112h-85v128zM288 192c0 -38 -21 -73 -53 -88v177c32 -16 53 -51 53 -89zM235 384c85 -20 149 -99 149 -192s-64 -172 -149 -192v45c62 19 106 78 106 147s-44 128 -106 147v45z" />
+    <glyph glyph-name="ion-android-walk" unicode="&#xf3bb;" horiz-adv-x="272" 
+d="M168 336c-22 0 -40 18 -40 40s18 40 40 40s40 -18 40 -40s-18 -40 -40 -40zM168 216l-20 38l-20 -62l57 -96v-128h-38v96l-50 68l-57 -164h-40l81 320l-41 -16v-80h-40v112l111 38c4 1 10 1 13 1c13 0 23 -6 31 -18l45 -69h72v-40h-104z" />
+    <glyph glyph-name="ion-android-warning" unicode="&#xf3bc;" 
+d="M0 -16l224 416l224 -416h-448zM248 48v48h-48v-48h48zM248 128v96h-48v-96h48z" />
+    <glyph glyph-name="ion-android-watch" unicode="&#xf3bd;" horiz-adv-x="320" 
+d="M320 192c0 -51 -24 -96 -61 -125l-19 -115h-160l-19 115c-37 29 -61 74 -61 125s24 96 61 125l19 115h160l19 -115c37 -29 61 -74 61 -125zM40 192c0 -66 54 -120 120 -120s120 54 120 120s-54 120 -120 120s-120 -54 -120 -120z" />
+    <glyph glyph-name="ion-android-wifi" unicode="&#xf305;" horiz-adv-x="416" 
+d="M208 219c23 0 42 -18 42 -41s-19 -41 -42 -41s-42 18 -42 41s19 41 42 41zM333 178c0 -45 -26 -85 -63 -107l-20 36c25 14 41 40 41 71c0 45 -37 82 -83 82s-83 -37 -83 -82c0 -31 16 -57 41 -71l-20 -36c-37 22 -63 62 -63 107c0 68 56 124 125 124s125 -56 125 -124z
+M208 384c114 0 208 -93 208 -206c0 -76 -42 -142 -104 -178l-21 36c50 28 83 81 83 142c0 91 -74 165 -166 165s-166 -74 -166 -165c0 -61 33 -113 83 -142l-21 -36c-62 36 -104 102 -104 178c0 113 94 206 208 206z" />
+    <glyph glyph-name="ion-aperture" unicode="&#xf313;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c36 36 56 85 56 136s-20 100 -56 136s-85 56 -136 56s-100 -20 -136 -56s-56 -85 -56 -136s20 -100 56 -136s85 -56 136 -56s100 20 136 56zM168 342l56 -86h-147
+c17 40 50 71 91 86zM381 160h-102l72 129c21 -27 33 -60 33 -97c0 -11 -1 -22 -3 -32zM328 314l-49 -90l-78 126c8 1 15 2 23 2c40 0 76 -14 104 -38zM67 224h102l-72 -129c-21 27 -33 60 -33 97c0 11 1 22 3 32zM280 42l-56 86h147c-17 -40 -50 -71 -91 -86zM120 70l49 90
+l78 -126c-8 -1 -15 -2 -23 -2c-40 0 -76 14 -104 38z" />
+    <glyph glyph-name="ion-archive" unicode="&#xf102;" 
+d="M224 140l-128 116h80v96h96v-96h80zM433 151c11 -6 17 -19 15 -32l-9 -67c-2 -13 -9 -20 -28 -20h-374c-18 0 -26 7 -28 20l-9 67c-2 13 3 26 14 32l72 55h42l-62 -62h50c2 0 5 -1 6 -3l18 -45h168l18 45c1 2 3 3 5 3h51l-62 62h42z" />
+    <glyph glyph-name="ion-arrow-down-a" unicode="&#xf103;" horiz-adv-x="384" 
+d="M192 -0l-192 192h112v192h160v-192h112z" />
+    <glyph glyph-name="ion-arrow-down-b" unicode="&#xf104;" horiz-adv-x="320" 
+d="M3 263c-2 2 -3 6 -3 9c0 9 8 16 17 16v0h286v0c9 0 17 -7 17 -16c0 -3 -1 -6 -3 -8l-2 -3l-136 -156c-5 -5 -11 -9 -19 -9s-14 4 -19 9l-136 156z" />
+    <glyph glyph-name="ion-arrow-down-c" unicode="&#xf105;" horiz-adv-x="274" 
+d="M265 125l-105 -100c-6 -6 -14 -9 -23 -9s-16 3 -22 9l-106 100c-12 12 -12 31 0 43s34 12 46 0l50 -48v217c0 17 14 31 32 31s32 -14 32 -31v-217l50 48c12 12 34 12 46 0s12 -31 0 -43z" />
+    <glyph glyph-name="ion-arrow-expand" unicode="&#xf25e;" horiz-adv-x="320" 
+d="M178 238l64 64l-50 50h128v-128l-50 50l-64 -64zM178 146l28 28l64 -64l50 50v-128h-128l50 50zM142 146l-64 -64l50 -50h-128v128l50 -50l64 64zM142 238l-28 -28l-64 64l-50 -50v128h128l-50 -50z" />
+    <glyph glyph-name="ion-arrow-graph-down-left" unicode="&#xf25f;" 
+d="M0 64v160l61 -61l131 141l107 -112l149 128l-149 -203l-107 107l-94 -98l62 -62h-160z" />
+    <glyph glyph-name="ion-arrow-graph-down-right" unicode="&#xf260;" 
+d="M288 64l62 62l-94 98l-107 -107l-149 203l149 -128l107 112l131 -141l61 61v-160h-160z" />
+    <glyph glyph-name="ion-arrow-graph-up-left" unicode="&#xf261;" 
+d="M160 320l-62 -62l94 -98l107 107l149 -203l-149 128l-107 -112l-131 141l-61 -61v160h160z" />
+    <glyph glyph-name="ion-arrow-graph-up-right" unicode="&#xf262;" 
+d="M288 320h160v-160l-61 61l-131 -141l-107 112l-149 -128l149 203l107 -107l94 98z" />
+    <glyph glyph-name="ion-arrow-left-a" unicode="&#xf106;" horiz-adv-x="384" 
+d="M0 192l192 192v-112h192v-160h-192v-112z" />
+    <glyph glyph-name="ion-arrow-left-b" unicode="&#xf107;" horiz-adv-x="192" 
+d="M167 349c2 2 6 3 9 3c9 0 16 -8 16 -17v0v-286v0c0 -9 -7 -17 -16 -17c-3 0 -7 1 -9 3l-2 2l-156 136c-5 5 -9 11 -9 19s4 14 9 19l156 136z" />
+    <glyph glyph-name="ion-arrow-left-c" unicode="&#xf108;" horiz-adv-x="352" 
+d="M109 320c12 12 32 12 44 0s12 -34 0 -46l-49 -50h217c17 0 31 -14 31 -32s-14 -32 -31 -32h-217l48 -50c12 -12 12 -34 0 -46s-31 -12 -43 0l-100 106c-6 6 -9 13 -9 22s3 17 9 23z" />
+    <glyph glyph-name="ion-arrow-move" unicode="&#xf263;" 
+d="M448 192l-96 -96v76h-109l1 -108h76l-96 -96l-96 96h76v108h-108v-76l-96 96l96 96v-76h108v108h-76l96 96l96 -96h-76v-108h108v76z" />
+    <glyph glyph-name="ion-arrow-resize" unicode="&#xf264;" horiz-adv-x="320" 
+d="M192 352h128v-128l-50 50l-9 -9l-183 -183l50 -50h-128v128l50 -50l128 128v0l64 64z" />
+    <glyph glyph-name="ion-arrow-return-left" unicode="&#xf265;" horiz-adv-x="384" 
+d="M128 352v-64h248c4 0 8 -4 8 -8v-240c0 -4 -4 -8 -8 -8h-304c-4 0 -8 4 -8 8v48c0 4 4 8 8 8h248v128h-192v-64l-128 96z" />
+    <glyph glyph-name="ion-arrow-return-right" unicode="&#xf266;" horiz-adv-x="384" 
+d="M384 256l-128 -96v64h-192v-128h248c4 0 8 -4 8 -8v-48c0 -4 -4 -8 -8 -8h-304c-4 0 -8 4 -8 8v240c0 4 4 8 8 8h248v64z" />
+    <glyph glyph-name="ion-arrow-right-a" unicode="&#xf109;" horiz-adv-x="384" 
+d="M384 192l-192 -192v112h-192v160h192v112z" />
+    <glyph glyph-name="ion-arrow-right-b" unicode="&#xf10a;" horiz-adv-x="192" 
+d="M25 35c-2 -2 -6 -3 -9 -3c-9 0 -16 8 -16 17v0v286v0c0 9 7 17 16 17c3 0 6 -1 8 -3l3 -2l156 -136c5 -5 9 -11 9 -19s-4 -14 -9 -19l-156 -136z" />
+    <glyph glyph-name="ion-arrow-right-c" unicode="&#xf10b;" horiz-adv-x="352" 
+d="M243 320l100 -105c6 -6 9 -14 9 -23s-3 -16 -9 -22l-100 -106c-12 -12 -31 -12 -43 0s-12 34 0 46l48 50h-217c-17 0 -31 14 -31 32s14 32 31 32h217l-49 50c-12 12 -12 34 0 46s32 12 44 0z" />
+    <glyph glyph-name="ion-arrow-shrink" unicode="&#xf267;" horiz-adv-x="384" 
+d="M384 356l-82 -82l50 -50h-128v128l50 -50l82 82zM384 28l-28 -28l-82 82l-50 -50v128h128l-50 -50zM0 28l82 82l-50 50h128v-128l-50 50l-82 -82zM0 356l28 28l82 -82l50 50v-128h-128l50 50z" />
+    <glyph glyph-name="ion-arrow-swap" unicode="&#xf268;" horiz-adv-x="384" 
+d="M0 120c0 4 4 8 8 8h248v64l128 -96l-128 -96v64h-248c-4 0 -8 4 -8 8v48zM384 264c0 -4 -4 -8 -8 -8h-248v-64l-128 96l128 96v-64h248c4 0 8 -4 8 -8v-48z" />
+    <glyph glyph-name="ion-arrow-up-a" unicode="&#xf10c;" horiz-adv-x="384" 
+d="M192 384l192 -192h-112v-192h-160v192h-112z" />
+    <glyph glyph-name="ion-arrow-up-b" unicode="&#xf10d;" horiz-adv-x="320" 
+d="M317 121c2 -2 3 -6 3 -9c0 -9 -8 -16 -17 -16v0h-286v0c-9 0 -17 7 -17 16c0 3 1 6 3 8l2 3l136 156c5 5 11 9 19 9s14 -4 19 -9l136 -156z" />
+    <glyph glyph-name="ion-arrow-up-c" unicode="&#xf10e;" horiz-adv-x="274" 
+d="M9 259l105 100c6 6 14 9 23 9s16 -3 22 -9l106 -100c12 -12 12 -31 0 -43s-34 -12 -46 0l-50 48v-217c0 -17 -14 -31 -32 -31s-32 14 -32 31v217l-50 -49c-12 -12 -34 -12 -46 0s-12 32 0 44z" />
+    <glyph glyph-name="ion-asterisk" unicode="&#xf314;" 
+d="M448 224v-64l-186 10l104 -170l-56 -32l-86 176l-86 -176l-56 32l104 170l-186 -10v64l187 -7l-109 167l60 32l86 -176l86 176l60 -32l-109 -167z" />
+    <glyph glyph-name="ion-at" unicode="&#xf10f;" 
+d="M422 41c-24 -25 -52 -43 -85 -55s-69 -18 -105 -18c-35 0 -66 6 -95 17s-53 26 -73 46s-36 43 -47 71s-17 58 -17 90s6 62 18 89s29 51 50 71s46 35 74 47c28 11 58 17 90 17c28 0 55 -4 81 -12s49 -20 69 -36s36 -36 48 -60s18 -53 18 -85c0 -24 -3 -46 -10 -64
+s-16 -34 -27 -46s-24 -22 -38 -28s-29 -10 -45 -10s-29 4 -39 12s-15 17 -15 29h-3c-6 -10 -15 -19 -28 -28s-28 -13 -46 -13c-28 0 -49 9 -64 27s-23 42 -23 71c0 17 3 34 9 50s14 31 24 44s23 23 38 31s31 12 49 12c15 0 27 -4 38 -10c10 -6 18 -15 21 -24h1l5 24h54
+l-24 -113c-1 -6 -2 -12 -3 -19s-2 -13 -2 -19c0 -7 1 -13 4 -18s7 -7 15 -7c16 0 29 9 39 26s16 40 16 68c0 24 -4 45 -12 64s-20 34 -34 47s-32 23 -52 29s-41 9 -65 9c-26 0 -49 -4 -70 -13s-39 -22 -54 -38s-27 -34 -35 -56c-8 -21 -13 -44 -13 -69c0 -26 4 -51 13 -72
+s21 -39 37 -54s35 -27 57 -35s46 -12 72 -12c33 0 61 6 85 16s45 25 65 43zM231 260c-10 0 -18 -2 -25 -8s-14 -13 -19 -22s-8 -18 -11 -28s-4 -20 -4 -30c0 -5 0 -10 1 -16c1 -5 3 -10 6 -15s7 -8 12 -11s11 -5 19 -5c11 0 20 3 28 8s14 13 19 21s9 16 11 26s3 19 3 27
+c0 6 0 13 -1 19s-4 12 -7 17s-7 9 -12 12s-12 5 -20 5z" />
+    <glyph glyph-name="ion-backspace-outline" unicode="&#xf3be;" horiz-adv-x="512" 
+d="M413 116c2 -2 3 -4 3 -6s-1 -4 -3 -6l-21 -22c-2 -2 -4 -2 -6 -2s-4 0 -6 2l-76 77l-76 -77c-2 -2 -4 -2 -6 -2s-4 0 -6 2l-21 22c-2 2 -3 4 -3 6s1 4 3 6l76 76l-77 76c-3 3 -3 9 0 12l22 22c2 2 4 2 6 2s4 0 6 -2l76 -76l76 76c2 2 4 2 6 2s4 0 6 -2l22 -22
+c3 -3 3 -9 0 -12l-77 -76zM499 354c9 -9 13 -20 13 -33v-256c0 -27 -20 -49 -46 -49h-298c-13 0 -24 3 -34 9c-9 5 -16 11 -23 20v0l-1 1l-110 146l110 148c14 19 34 28 58 28h298c13 0 24 -5 33 -14zM480 65v256c0 9 -5 15 -14 15h-298c-11 0 -22 -3 -32 -16l-96 -128
+l96 -128c8 -10 17 -16 32 -16h298c9 0 14 8 14 17z" />
+    <glyph glyph-name="ion-backspace" unicode="&#xf3bf;" horiz-adv-x="512" 
+d="M499 354c9 -9 13 -20 13 -33v-256c0 -27 -20 -49 -46 -49h-298c-13 0 -24 3 -34 9c-9 5 -16 11 -23 20v0l-1 1l-110 146l110 148c14 19 34 28 58 28h298c13 0 24 -5 33 -14zM413 116l-76 76l77 76c3 3 3 9 0 12l-22 22c-2 2 -4 2 -6 2s-4 0 -6 -2l-76 -76l-76 76
+c-2 2 -4 2 -6 2s-4 0 -6 -2l-22 -22c-3 -3 -3 -9 0 -12l77 -76l-76 -76c-2 -2 -3 -4 -3 -6s1 -4 3 -6l21 -22c2 -2 4 -2 6 -2s4 0 6 2l76 77l76 -77c2 -2 4 -2 6 -2s4 0 6 2l21 22c2 2 3 4 3 6s-1 4 -3 6z" />
+    <glyph glyph-name="ion-bag" unicode="&#xf110;" 
+d="M416 288l32 -320h-448l32 320h64v4c0 68 56 124 124 124h8c68 0 124 -56 124 -124v-4h64zM128 292v-4h192v4c0 51 -41 92 -92 92v0h-8c-51 0 -92 -41 -92 -92zM36 0h376l-25 256h-35v-36c10 -6 16 -16 16 -28c0 -18 -14 -32 -32 -32s-32 14 -32 32c0 12 6 22 16 28v36
+h-192v-36c10 -6 16 -16 16 -28c0 -18 -14 -32 -32 -32s-32 14 -32 32c0 12 6 22 16 28v36h-35z" />
+    <glyph glyph-name="ion-battery-charging" unicode="&#xf111;" 
+d="M10 64c-6 0 -10 4 -10 10v236c0 6 4 10 10 10h381c6 0 10 -4 10 -10v-54h37c6 0 10 -4 10 -10v-108c0 -6 -4 -10 -10 -10h-37v-54c0 -6 -4 -10 -10 -10h-381zM225 288l-100 -111h61l-27 -81l100 111h-61z" />
+    <glyph glyph-name="ion-battery-empty" unicode="&#xf112;" 
+d="M438 256c6 0 10 -4 10 -10v-108c0 -6 -4 -10 -10 -10h-37v-54c0 -6 -4 -10 -10 -10h-381c-6 0 -10 4 -10 10v236c0 6 4 10 10 10h381c6 0 10 -4 10 -10v-54h37zM416 160v64h-15h-32v32v32h-337v-192h337v32v32h32h15z" />
+    <glyph glyph-name="ion-battery-full" unicode="&#xf113;" 
+d="M438 256c6 0 10 -4 10 -10v-108c0 -6 -4 -10 -10 -10h-37v-54c0 -6 -4 -10 -10 -10h-381c-6 0 -10 4 -10 10v236c0 6 4 10 10 10h381c6 0 10 -4 10 -10v-54h37z" />
+    <glyph glyph-name="ion-battery-half" unicode="&#xf114;" 
+d="M438 256c6 0 10 -4 10 -10v-108c0 -6 -4 -10 -10 -10h-37v-54c0 -6 -4 -10 -10 -10h-381c-6 0 -10 4 -10 10v236c0 6 4 10 10 10h381c6 0 10 -4 10 -10v-54h37zM416 160v64h-15h-32v32v32h-81l32 -192h49v32v32h32h15z" />
+    <glyph glyph-name="ion-battery-low" unicode="&#xf115;" 
+d="M10 64c-6 0 -10 4 -10 10v236c0 6 4 10 10 10h381c6 0 10 -4 10 -10v-54h37c6 0 10 -4 10 -10v-108c0 -6 -4 -10 -10 -10h-37v-54c0 -6 -4 -10 -10 -10h-381zM369 288h-209l32 -192h177v32v32h32h15v64h-15h-32v32v32z" />
+    <glyph glyph-name="ion-beaker" unicode="&#xf269;" horiz-adv-x="384" 
+d="M80 256h240v-224c0 -9 -7 -16 -16 -16h-208c-9 0 -16 7 -16 16v224zM296 104v48c0 4 -4 8 -8 8s-8 -4 -8 -8v-48c0 -4 4 -8 8 -8s8 4 8 8zM288 176c4 0 8 4 8 8s-4 8 -8 8s-8 -4 -8 -8s4 -8 8 -8zM381 416c3 0 3 -2 3 -3s-2 -3 -3 -5s-13 -20 -13 -40v-336
+c0 -35 -29 -64 -64 -64h-208c-35 0 -64 29 -64 64v307c0 32 -2 33 -32 37c0 12 11 40 65 40h316zM336 368c0 5 0 16 1 16h-273c-1 0 -3 0 -4 -1c5 -7 4 -32 4 -44v-307c0 -18 14 -32 32 -32h210c17 0 30 14 30 32v336z" />
+    <glyph glyph-name="ion-beer" unicode="&#xf26a;" 
+d="M384 288c35 0 64 -29 64 -64v-96c0 -35 -29 -64 -64 -64h-32v-80c0 -9 -7 -16 -16 -16h-256c-9 0 -16 7 -16 16v223c-26 0 -48 22 -48 48v54v1c-10 11 -16 26 -16 42c0 35 29 64 64 64c18 0 34 -8 46 -20c10 12 26 20 43 20c14 0 27 -6 37 -14c12 9 26 14 42 14
+c17 0 34 -6 46 -16c11 10 26 16 42 16c35 0 64 -29 64 -64c0 -24 -18 -44 -32 -48v-16h32zM296 144c4 0 8 3 8 8v0v48c0 4 -4 8 -8 8s-8 -4 -8 -8v-48c0 -3 2 -6 4 -7c1 -1 2 -1 4 -1zM303 220c1 2 1 4 1 6s-1 4 -3 5s-4 1 -6 1s-4 -2 -5 -4s-2 -4 -2 -6s2 -4 4 -5
+s4 -1 6 -1s4 2 5 4zM320 288v32h-20c-3 -8 -7 -16 -13 -23c-13 -16 -33 -25 -55 -25c-26 0 -48 13 -61 33c-6 -2 -12 -3 -18 -3c-12 0 -23 4 -32 10c-2 1 -3 3 -5 4c-1 -2 -2 -3 -3 -5c-5 -6 -11 -10 -17 -14v-32v-9h80c0 4 4 8 8 8s8 -4 8 -8h128v32zM351 343c1 3 1 6 1 9
+c0 18 -14 32 -32 32c-9 0 -17 -4 -23 -10c-2 -2 -6 -5 -16 -6h-8c-6 1 -12 3 -14 5c-7 7 -16 11 -27 11c-9 0 -18 -4 -25 -9l-7 -7c0 -1 0 -1 -1 -2c-3 -3 -7 -5 -11 -5c-5 0 -8 3 -11 6c-1 2 -2 3 -3 5s-3 4 -5 6c-4 4 -10 6 -16 6c-10 0 -18 -9 -25 -16
+c-7 -8 -27 -8 -34 0s-18 16 -30 16c-18 0 -32 -14 -32 -32c0 -2 1 -5 1 -7c2 -9 7 -17 15 -21v-34v-35c0 -9 7 -16 16 -16v26v23v32c10 0 18 4 24 11c2 2 3 4 4 6c0 0 6 10 12 11s20 6 30 -5c4 -5 11 -9 19 -9c3 0 5 1 7 2c3 1 7 2 9 4v0c3 2 6 4 10 4c7 0 12 -4 14 -10
+c0 0 1 -1 1 -2c1 -3 1 -5 3 -8c7 -12 20 -20 35 -20c13 0 25 6 32 16c5 7 8 15 8 24s9 8 9 8h7h48c6 0 13 -3 15 -9zM416 128v96c0 18 -14 32 -32 32h-32v-160h32c18 0 32 14 32 32zM128 280c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM288 280c0 5 3 8 8 8s8 -3 8 -8
+s-3 -8 -8 -8s-8 3 -8 8z" />
+    <glyph glyph-name="ion-bluetooth" unicode="&#xf116;" horiz-adv-x="256" 
+d="M12 304c16 16 18 13 19 12l68 -65v0v0c2 -2 10 -10 10 -3v156v0v2c0 6 6 10 12 10c4 0 7 -2 9 -4v0s117 -113 122 -117s5 -10 1 -14l-84 -81s-4 -4 -4 -8s4 -8 4 -8l84 -81c4 -4 4 -10 -1 -14s-122 -117 -122 -117v0c-2 -2 -5 -4 -9 -4c-6 0 -12 4 -12 10v2v0v156
+s-8 -1 -10 -3v0v-1l-68 -64c-1 -1 -3 -4 -19 12s-12 17 -11 18s90 86 90 86s4 3 4 8v0c0 5 -4 8 -4 8s-89 85 -90 86s-5 2 11 18zM152 328v-79c0 -8 8 -1 10 1l30 30s3 5 3 7s-1 5 -3 7l-30 30c-2 2 -10 11 -10 4zM152 135v-79s8 2 10 4l30 30c2 2 3 5 3 7s-1 5 -3 7l-30 30
+c-2 2 -10 9 -10 1z" />
+    <glyph glyph-name="ion-bonfire" unicode="&#xf315;" horiz-adv-x="384" 
+d="M207 97l15 -89c1 -3 1 -5 1 -8c0 -18 -14 -32 -32 -32s-32 14 -32 32c0 2 0 5 1 7l15 92v0c2 7 8 13 16 13s15 -7 16 -15zM242 93v0v0v0zM329 58c9 -8 10 -25 0 -35s-27 -9 -35 0c-1 1 -2 3 -3 4l-49 66c-3 5 -2 11 2 15c5 5 10 5 16 1l64 -47c2 -1 3 -3 5 -4zM309 113v0
+v0v0zM371 126c9 -1 13 -7 13 -19c0 -9 -10 -14 -18 -12l-57 18v0v0c-3 2 -6 5 -5 9s4 7 8 6zM75 113v0v0v0zM75 113v0l-58 -18c-8 -2 -17 3 -17 12c0 12 3 18 12 19l60 2c4 1 7 -2 8 -6s-2 -7 -5 -9v0zM124 109c5 4 11 4 16 -1c4 -4 5 -10 2 -15l-49 -66c-1 -1 -2 -3 -3 -4
+c-10 -10 -25 -10 -35 0s-10 25 0 35c2 2 3 3 5 4zM288 320c0 -32 -9 -58 -50 -86c-37 -26 -94 -46 -110 -106c0 0 -58 24 -48 96s124 106 112 192c24 0 96 -35 96 -96zM288 192c-16 -50 -44 -64 -80 -64c-15 0 -32 9 -43 26c12 15 28 26 47 37c9 5 20 10 29 16
+c21 14 38 31 47 49c5 -15 5 -48 0 -64zM88 288c-6 4 -9 14 -8 27c2 22 34 39 32 69c14 2 31 -3 42 -24c-5 -11 -15 -21 -28 -34s-26 -22 -38 -38z" />
+    <glyph glyph-name="ion-bookmark" unicode="&#xf26b;" horiz-adv-x="192" 
+d="M184 384c4 0 8 -4 8 -8v-56h-192v56c0 4 4 8 8 8h176zM0 0v304h192v-304l-96 96z" />
+    <glyph glyph-name="ion-bowtie" unicode="&#xf3c0;" 
+d="M192 236c0 0 8 5 20 7c21 4 39 5 47 -9c10 -17 19 -53 17 -85c-1 -17 -5 -22 -5 -22s-15 -10 -47 -7c-35 3 -40 15 -40 15s5 12 8 43s0 58 0 58zM152 163c-17 -4 -38 -10 -38 -10s45 4 64 9c-4 -21 -10 -34 -10 -34s-83 -80 -116 -80c-28 0 -52 68 -52 144s26 144 52 144
+c35 0 106 -57 128 -97c0 0 3 -16 2 -32c-10 5 -24 10 -44 14c-28 6 -42 3 -42 3s18 -4 57 -17c15 -5 22 -8 29 -10c0 -3 -1 -7 -1 -10c0 -5 0 -10 -1 -15c-5 -2 -15 -6 -28 -9zM396 336c26 0 52 -68 52 -144s-24 -144 -52 -144c-37 0 -104 68 -112 79c0 0 4 5 5 22v9
+c16 -7 70 -13 70 -13s-21 6 -40 11c-13 4 -25 8 -30 10c-1 11 -2 23 -4 33c17 11 69 34 69 34s-15 -2 -35 -9c-14 -5 -29 -11 -37 -14c-3 10 -7 18 -10 24c0 1 -1 4 -1 4v1c22 40 89 97 125 97z" />
+    <glyph glyph-name="ion-briefcase" unicode="&#xf26c;" 
+d="M240 176v8h208v-176c0 -4 -4 -8 -8 -8h-432c-4 0 -8 4 -8 8v176h208v-8h32zM440 304c4 0 8 -4 8 -8v-96h-208v8h-32v-8h-208v96c0 4 4 8 8 8h120v31c1 28 22 49 51 49h90c30 0 50 -21 51 -49v-31h120zM288 332v1c0 10 -9 19 -19 19h-90c-10 0 -19 -9 -19 -19v-1v-1v-27
+h128v27v1z" />
+    <glyph glyph-name="ion-bug" unicode="&#xf2be;" 
+d="M343 321c-6 -16 -16 -31 -28 -43c-24 -24 -57 -37 -91 -37s-67 13 -91 37c-12 12 -22 27 -28 43c29 39 72 63 119 63s90 -24 119 -63zM95 305c22 -45 68 -77 121 -80v-225c-40 2 -77 22 -104 54c-7 -6 -10 -9 -13 -15c8 -9 7 -22 -1 -31c-9 -10 -24 -11 -34 -2
+s-11 24 -2 34l3 3s2 1 2 1c4 13 13 25 27 36c-15 26 -26 57 -29 90c-7 0 -12 -2 -17 -3c-1 -13 -11 -23 -24 -23s-24 11 -24 24s11 24 24 24h3c4 2 8 5 12 6c7 2 14 4 25 4c1 23 6 45 13 65c-6 4 -11 7 -15 11c-6 5 -11 13 -14 19c-1 0 -3 1 -4 2c-12 6 -15 21 -9 33
+s21 15 33 9c11 -6 15 -20 10 -31c2 -3 3 -7 4 -8c2 -2 5 -3 8 -5c2 3 3 5 5 8zM424 192c13 0 24 -11 24 -24s-11 -24 -24 -24s-23 10 -24 23c-5 1 -10 3 -17 3c-3 -33 -14 -64 -29 -90c14 -11 23 -23 27 -36c0 0 1 0 2 -1l3 -3c9 -10 8 -25 -2 -34s-25 -8 -34 2
+c-8 9 -9 22 -1 31c-3 6 -6 9 -13 15c-27 -32 -64 -52 -104 -54v225c53 3 99 35 121 80c2 -3 3 -5 5 -8c3 2 6 3 8 5c1 1 2 5 4 8c-5 11 -1 25 10 31c12 6 27 3 33 -9s3 -27 -9 -33c-1 -1 -3 -2 -4 -2c-3 -6 -8 -14 -14 -19c-4 -4 -9 -7 -15 -11c7 -20 12 -42 13 -65
+c11 0 18 -2 25 -4c4 -1 8 -4 12 -6h3z" />
+    <glyph glyph-name="ion-calculator" unicode="&#xf26d;" horiz-adv-x="320" 
+d="M304 416c9 0 16 -7 16 -16v-416c0 -9 -7 -16 -16 -16h-288c-9 0 -16 7 -16 16v416c0 9 7 16 16 16h288zM48 240v-32h32v32h-32zM48 176v-32h32v32h-32zM48 112v-32h32v32h-32zM144 16v32h-96v-32h96zM144 80v32h-32v-32h32zM144 144v32h-32v-32h32zM144 208v32h-32v-32
+h32zM208 16v32h-32v-32h32zM208 80v32h-32v-32h32zM208 144v32h-32v-32h32zM208 208v32h-32v-32h32zM272 16v96h-32v-96h32zM272 144v32h-32v-32h32zM272 208v32h-32v-32h32zM272 288v80h-224v-80h224z" />
+    <glyph glyph-name="ion-calendar" unicode="&#xf117;" 
+d="M112 320c-18 0 -32 14 -32 32v32c0 18 14 32 32 32s32 -14 32 -32v-32c0 -18 -14 -32 -32 -32zM336 320c-18 0 -32 14 -32 32v32c0 18 14 32 32 32s32 -14 32 -32v-32c0 -18 -14 -32 -32 -32zM440 384c4 0 8 -4 8 -8v-400c0 -4 -4 -8 -8 -8h-432c-4 0 -8 4 -8 8v400
+c0 4 4 8 8 8h56v-41c0 -22 24 -39 48 -39s48 17 48 39v41h128v-41c0 -22 25 -39 49 -39s47 17 47 39v41h56zM400 16v256h-352v-256h352z" />
+    <glyph glyph-name="ion-camera" unicode="&#xf118;" horiz-adv-x="416" 
+d="M382 301c18 0 34 -14 34 -33v-202c0 -19 -16 -34 -34 -34h-348c-19 0 -34 15 -34 34v202c0 19 15 33 34 33h69l39 40v0c6 7 15 11 25 11h84c9 0 17 -4 23 -10v0v0v0l41 -41h67zM208 82c51 0 92 42 92 93s-41 93 -92 93s-92 -42 -92 -93s41 -93 92 -93zM376 248
+c8 0 14 6 14 14s-6 14 -14 14s-14 -6 -14 -14s6 -14 14 -14zM208 245c38 0 70 -31 70 -70s-32 -70 -70 -70c-39 0 -70 31 -70 70s31 70 70 70z" />
+    <glyph glyph-name="ion-card" unicode="&#xf119;" 
+d="M420 352c16 0 28 -12 28 -28v0v-264v0c0 -16 -12 -28 -28 -28h-392c-16 0 -28 12 -28 28v0v0v264v0v0c0 16 12 28 28 28h392zM45 320c-7 0 -12 -5 -13 -12v-20h384v20c-1 7 -6 12 -13 12h-358zM403 64c7 0 12 5 13 12v116h-384v-116c1 -7 6 -12 13 -12h358zM64 128v16
+h192v-16h-192zM64 96v16h96v-16h-96zM320 96v48h64v-48h-64z" />
+    <glyph glyph-name="ion-cash" unicode="&#xf316;" horiz-adv-x="512" 
+d="M0 352h512v-256h-512v256zM193 128c-20 23 -33 58 -33 96s13 73 33 96h-97c0 -35 -29 -64 -64 -64v-80c27 0 48 -21 48 -48h113zM298 187c3 4 4 9 4 15c0 3 0 5 -1 8s-2 6 -4 8s-4 4 -7 6s-6 4 -10 5c-1 0 -4 1 -7 2s-5 0 -8 1v31c2 -1 5 -2 7 -3c4 -3 6 -7 7 -13h20
+c0 5 -2 9 -4 13s-5 8 -9 11s-9 5 -14 6c-2 1 -5 2 -7 2v9h-18v-9c-2 0 -4 -1 -6 -2c-5 -1 -10 -2 -14 -5s-7 -6 -9 -10s-4 -9 -4 -14c0 -3 0 -5 1 -8s2 -5 4 -7s5 -5 8 -7s7 -4 12 -5c3 -1 6 0 8 -1v-35c-3 1 -6 2 -9 4s-5 4 -6 7s-2 6 -2 9h-20c0 -5 2 -11 4 -16
+c3 -5 6 -8 10 -11s9 -6 15 -7c3 -1 5 -2 8 -2v-9h18v9c3 0 6 1 9 2c5 1 10 2 14 5s7 7 10 11zM480 176v80c-35 0 -64 29 -64 64h-97c20 -23 33 -58 33 -96s-13 -73 -33 -96h113c0 27 22 48 48 48zM64 224c0 21 11 32 32 32s32 -11 32 -32s-11 -32 -32 -32s-32 11 -32 32z
+M384 224c0 21 11 32 32 32s32 -11 32 -32s-11 -32 -32 -32s-32 11 -32 32zM273 213c2 -1 4 -2 6 -4s3 -5 3 -9c0 -2 0 -4 -1 -6s-2 -4 -4 -5s-5 -3 -8 -4c-1 0 -2 -1 -4 -1v31c3 -1 6 -1 8 -2zM236 257c1 2 3 3 5 4s4 2 6 2v-26c-4 1 -7 3 -9 5s-4 4 -4 8c0 3 1 5 2 7zM0 32
+v32h512v-32h-512z" />
+    <glyph glyph-name="ion-chatbox-working" unicode="&#xf11a;" horiz-adv-x="416" 
+d="M76 48c-42 0 -76 31 -76 71v209c0 40 34 72 76 72h264c42 0 76 -32 76 -72v-209c0 -40 -34 -71 -76 -71h-4v-64s-79 54 -86 59s-7 5 -21 5h-153zM304 256c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM208 256c-18 0 -32 -14 -32 -32s14 -32 32 -32
+s32 14 32 32s-14 32 -32 32zM112 256c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32z" />
+    <glyph glyph-name="ion-chatbox" unicode="&#xf11b;" horiz-adv-x="416" 
+d="M76 48c-42 0 -76 31 -76 71v209c0 40 34 72 76 72h264c42 0 76 -32 76 -72v-209c0 -40 -34 -71 -76 -71h-4v-64s-79 54 -86 59s-7 5 -21 5h-153z" />
+    <glyph glyph-name="ion-chatboxes" unicode="&#xf11c;" horiz-adv-x="416" 
+d="M246 82l26 -18c-4 -21 -29 -32 -52 -32h-90c-8 0 -11 -2 -13 -3l-53 -45v48h-16c-26 0 -48 16 -48 41v129c0 25 20 45 46 45h2v-101c0 -33 29 -59 64 -59h117c10 0 14 -3 17 -5zM353 400c35 0 63 -27 63 -60v-168c0 -33 -28 -60 -63 -60h-17v-64l-75 60c-2 2 -7 4 -17 4
+h-101c-35 0 -63 27 -63 60v98v70c0 33 21 60 56 60h217z" />
+    <glyph glyph-name="ion-chatbubble-working" unicode="&#xf11d;" horiz-adv-x="416" 
+d="M208 -1c-115 0 -208 89 -208 200s93 201 208 201s208 -90 208 -201c0 -40 -12 -77 -33 -108c-1 -1 -2 -3 -3 -4v0c-2 -4 -4 -10 -4 -15l22 -88l-84 31c-4 2 -8 2 -12 2s-7 -1 -11 -2v0c-1 0 -1 -1 -2 -1c-25 -10 -52 -15 -81 -15zM304 224c-18 0 -32 -14 -32 -32
+s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM208 224c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM112 224c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32z" />
+    <glyph glyph-name="ion-chatbubble" unicode="&#xf11e;" horiz-adv-x="416" 
+d="M208 -1c-115 0 -208 89 -208 200s93 201 208 201s208 -90 208 -201c0 -40 -12 -77 -33 -108c-1 -1 -2 -3 -3 -4v0c-2 -4 -4 -10 -4 -15l22 -88l-84 31c-4 2 -8 2 -12 2s-7 -1 -11 -2v0c-1 0 -1 -1 -2 -1c-25 -10 -52 -15 -81 -15z" />
+    <glyph glyph-name="ion-chatbubbles" unicode="&#xf11f;" horiz-adv-x="416" 
+d="M25 57c-1 1 0 2 -1 3c-15 22 -24 49 -24 77c0 42 19 80 49 106c-2 -11 -4 -22 -4 -34c0 -92 78 -168 174 -168c15 0 30 2 44 6c-27 -32 -69 -53 -115 -53c-20 0 -40 5 -58 12h-1v0c-2 1 -5 2 -8 2s-6 -1 -9 -2l-56 -22l12 63c0 4 -1 7 -3 10v0zM242 400
+c96 0 174 -76 174 -168c0 -33 -11 -64 -28 -90c-1 -1 -1 -2 -2 -3v0c-2 -4 -3 -8 -3 -12l17 -74l-69 26c-3 1 -6 2 -10 2c-3 0 -6 -1 -9 -2v0l-2 -1c-8 -3 -16 -5 -24 -7c-14 -4 -29 -6 -44 -6c-96 0 -173 75 -173 167c0 12 1 24 3 35c16 76 86 133 170 133z" />
+    <glyph glyph-name="ion-checkmark-circled" unicode="&#xf120;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM339 267c1 1 1 2 1 3s0 3 -1 4l-31 24c-1 1 -3 1 -4 1s-2 0 -3 -1l-111 -143s-44 42 -45 43s-4 3 -6 3s-3 -2 -4 -3l-25 -25l-1 -1c-1 -1 -1 -3 -1 -4s0 -2 1 -3l2 -1
+s78 -75 79 -76s3 -3 5 -3s4 2 5 3z" />
+    <glyph glyph-name="ion-checkmark-round" unicode="&#xf121;" horiz-adv-x="416" 
+d="M400 376c17 -13 22 -39 9 -57l-207 -302c-13 -18 -37 -22 -54 -9s-137 147 -137 147c-15 16 -15 42 1 58s40 15 55 -2l99 -107l180 263c13 18 37 22 54 9z" />
+    <glyph glyph-name="ion-checkmark" unicode="&#xf122;" horiz-adv-x="416" 
+d="M414 338c1 -2 2 -4 2 -6s-1 -4 -2 -6l-249 -320c-2 -2 -5 -6 -9 -6s-8 3 -10 5s-141 136 -141 136l-3 3c-1 2 -2 4 -2 6s1 3 2 5l2 2c14 15 42 44 44 46s4 6 8 6s8 -4 10 -6s80 -78 80 -78l200 257c2 2 4 2 6 2s5 -1 7 -2z" />
+    <glyph glyph-name="ion-chevron-down" unicode="&#xf123;" 
+d="M224 150v0v0l174 167c4 4 12 4 16 0l31 -30c4 -4 4 -12 0 -16l-213 -204c-2 -2 -5 -3 -8 -3s-6 1 -8 3l-213 204c-4 4 -4 12 0 16l31 30c4 4 12 4 16 0z" />
+    <glyph glyph-name="ion-chevron-left" unicode="&#xf124;" horiz-adv-x="256" 
+d="M86 192l167 -174c4 -4 4 -12 0 -16l-30 -31c-4 -4 -12 -4 -16 0l-204 213c-2 2 -3 5 -3 8s1 6 3 8l204 213c4 4 12 3 16 -1l30 -30c4 -4 4 -12 0 -16l-167 -174v0v0z" />
+    <glyph glyph-name="ion-chevron-right" unicode="&#xf125;" horiz-adv-x="256" 
+d="M170 192v0v0l-167 174c-4 4 -4 12 0 16l30 30c4 4 12 5 16 1l204 -213c2 -2 3 -5 3 -8s-1 -6 -3 -8l-204 -213c-4 -4 -12 -4 -16 0l-30 31c-4 4 -4 12 0 16z" />
+    <glyph glyph-name="ion-chevron-up" unicode="&#xf126;" 
+d="M224 234l-174 -167c-4 -4 -12 -4 -16 0l-31 30c-4 4 -4 12 0 16l213 204c2 2 5 3 8 3s6 -1 8 -3l213 -204c4 -4 4 -12 0 -16l-31 -30c-4 -4 -12 -4 -16 0l-174 167v0v0z" />
+    <glyph glyph-name="ion-clipboard" unicode="&#xf127;" horiz-adv-x="352" 
+d="M80 288c2 20 10 35 28 40l1 1c12 3 21 7 21 20v21c0 26 21 46 46 46s46 -20 46 -46v-21c0 -13 9 -18 21 -21h2c18 -5 25 -20 27 -40h-192zM176 384c-8 0 -13 -6 -13 -14s5 -14 13 -14s14 6 14 14s-6 14 -14 14zM325 384c15 0 27 -12 27 -28v-360c0 -16 -12 -28 -27 -28
+h-149h-148c-15 0 -28 12 -28 28v360c0 16 13 28 28 28h73v-13c0 -11 -9 -19 -19 -19h-37c-7 0 -12 -6 -12 -13v-327c0 -6 5 -12 11 -12h265c6 0 11 6 11 12v327c0 7 -5 13 -12 13h-37c-10 0 -20 8 -20 19v13h74zM64 224v32h112v-32h-112zM64 32v32h160v-32h-160zM64 96v32
+h129v-32h-129zM64 160v32h208v-32h-208z" />
+    <glyph glyph-name="ion-clock" unicode="&#xf26e;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c10 10 19 21 26 33l-27 16l8 14l27 -16c13 25 21 52 22 81h-32v16h32c-1 29 -9 56 -22 81l-27 -16l-8 14l27 16c-7 12 -16 23 -26 33s-21 19 -33 26l-16 -27l-14 8
+l16 27c-25 13 -52 21 -81 22v-32h-16v32c-29 -1 -56 -9 -81 -22l16 -27l-14 -8l-16 27c-12 -7 -23 -16 -33 -26s-19 -21 -26 -33l27 -16l-8 -14l-27 16c-13 -25 -21 -52 -22 -81h32v-16h-32c1 -29 9 -56 22 -81l27 16l8 -14l-27 -16c7 -12 16 -23 26 -33s21 -19 33 -26
+l16 27l14 -8l-16 -27c25 -13 52 -21 81 -22v32h16v-32c29 1 56 9 81 22l-16 27l14 8l16 -27c12 7 23 16 33 26zM368 207v-32h-117c-6 -9 -16 -15 -27 -15c-18 0 -32 14 -32 32c0 12 6 22 16 28v68h32v-68c5 -3 9 -8 12 -13h116z" />
+    <glyph glyph-name="ion-close-circled" unicode="&#xf128;" 
+d="M224 415c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM332 116l-75 75l76 75c3 3 3 9 0 12l-22 21c-2 2 -4 3 -6 3s-3 -1 -5 -3l-76 -74l-76 74c-2 2 -3 3 -5 3s-4 -1 -6 -3l-21 -21c-3 -3 -3 -9 0 -12l76 -75l-76 -76
+c-2 -1 -2 -3 -2 -5s0 -4 2 -6l21 -22c2 -2 4 -2 6 -2s4 0 6 2l75 76l76 -75c2 -2 3 -3 5 -3s4 1 6 3l21 21c2 1 3 4 3 6s-1 4 -3 6z" />
+    <glyph glyph-name="ion-close-round" unicode="&#xf129;" horiz-adv-x="384" 
+d="M374 61c14 -14 14 -37 0 -51s-37 -14 -51 0l-131 131l-131 -131c-14 -14 -36 -14 -50 0s-14 37 0 51l130 131l-130 131c-14 14 -14 37 0 51s36 14 50 0l131 -131l131 131c14 14 37 14 51 0s14 -37 0 -51l-131 -131z" />
+    <glyph glyph-name="ion-close" unicode="&#xf12a;" horiz-adv-x="384" 
+d="M380 61c3 -3 4 -6 4 -10s-1 -7 -4 -10l-38 -37c-3 -3 -5 -4 -9 -4s-7 1 -10 4l-131 131l-131 -131c-3 -3 -5 -4 -9 -4s-7 1 -10 4l-38 37c-3 3 -4 6 -4 10s1 7 4 10l132 131l-132 130c-5 5 -5 15 0 20l37 38c3 2 6 4 10 4s7 -1 10 -4l131 -130l131 130c3 2 6 4 10 4
+s7 -1 10 -4l37 -38c5 -5 5 -14 0 -19l-132 -130z" />
+    <glyph glyph-name="ion-closed-captioning" unicode="&#xf317;" horiz-adv-x="512" 
+d="M0 384h512v-384h-512v384zM464 192c0 27 0 44 -4 80s-23 56 -59 60s-91 4 -138 4h-7h-7c-47 0 -102 0 -138 -4s-55 -24 -59 -60s-4 -53 -4 -80s2 -47 4 -80s19 -56 59 -60s96 -4 145 -4s105 0 145 4s57 27 59 60s4 53 4 80zM372 164v4h53c0 -27 -7 -48 -19 -62
+s-32 -21 -61 -21c-14 0 -26 2 -36 5s-18 9 -25 17s-12 19 -15 33s-5 30 -5 51s3 39 7 53s9 25 17 33s17 14 27 17s22 5 34 5c25 0 44 -7 57 -21s19 -37 19 -62h-52v1c0 20 -12 33 -27 33s-25 -11 -28 -30c0 0 -2 -11 -2 -29s2 -28 2 -28c1 -17 12 -29 27 -29s27 10 27 29v1z
+M195 164v4h53c0 -27 -7 -48 -19 -62s-32 -21 -61 -21c-14 0 -26 2 -36 5s-18 9 -25 17s-12 19 -15 33s-5 30 -5 51s3 39 7 53s9 25 17 33s17 14 27 17s22 5 34 5c25 0 44 -7 57 -21s19 -37 19 -62h-52v1c0 20 -12 33 -27 33s-25 -11 -28 -30c0 0 -2 -11 -2 -29s2 -28 2 -28
+c1 -17 12 -29 27 -29s27 10 27 29v1z" />
+    <glyph glyph-name="ion-cloud" unicode="&#xf12b;" 
+d="M366 215c45 0 82 -38 82 -84s-37 -83 -82 -83v0h-276c-49 0 -90 41 -90 91c0 40 26 74 61 86c5 29 29 51 59 51c10 0 18 -3 26 -7c19 40 59 67 105 67c64 0 115 -53 115 -118v-3z" />
+    <glyph glyph-name="ion-code-download" unicode="&#xf26f;" 
+d="M299 164l-63 -63v0l-1 -1v0l-2 -1v0l-1 -1v0l-2 -1v0h-1v0h-1c-1 0 -3 -1 -4 -1s-3 1 -4 1h-1v0h-1v0l-2 1v0l-1 1v0c-1 1 -2 1 -3 2v0l-63 63c-6 6 -6 17 0 23s18 6 24 0l35 -34v118c0 9 7 17 16 17s16 -8 16 -17v-118l35 34c6 6 18 6 24 0s6 -17 0 -23zM136 56
+c-6 0 -12 2 -17 7l-112 112c-9 9 -9 25 0 34l112 112c9 9 25 9 34 0s9 -25 0 -34l-95 -95l95 -95c9 -9 9 -25 0 -34c-5 -5 -11 -7 -17 -7zM312 56c-6 0 -12 2 -17 7c-9 9 -9 25 0 34l95 95l-95 95c-9 9 -9 25 0 34s25 9 34 0l112 -112c9 -9 9 -25 0 -34l-112 -112
+c-5 -5 -11 -7 -17 -7z" />
+    <glyph glyph-name="ion-code-working" unicode="&#xf270;" 
+d="M128 192c0 16 8 24 24 24s24 -8 24 -24s-8 -24 -24 -24s-24 8 -24 24zM200 192c0 16 8 24 24 24s24 -8 24 -24s-8 -24 -24 -24s-24 8 -24 24zM272 192c0 16 8 24 24 24s24 -8 24 -24s-8 -24 -24 -24s-24 8 -24 24zM136 56c-7 0 -12 2 -17 7l-112 112c-5 5 -7 10 -7 17
+s2 12 7 17l112 112c5 5 10 7 17 7s12 -2 17 -7s7 -10 7 -17s-2 -12 -7 -17l-95 -95l95 -95c5 -5 7 -10 7 -17s-2 -12 -7 -17s-10 -7 -17 -7zM312 56c-7 0 -12 2 -17 7s-7 10 -7 17s2 12 7 17l95 95l-95 95c-5 5 -7 10 -7 17s2 12 7 17s10 7 17 7s12 -2 17 -7l112 -112
+c5 -5 7 -10 7 -17s-2 -12 -7 -17l-112 -112c-5 -5 -10 -7 -17 -7z" />
+    <glyph glyph-name="ion-code" unicode="&#xf271;" 
+d="M136 56c-6 0 -12 2 -17 7l-112 112c-9 9 -9 25 0 34l112 112c9 9 25 9 34 0s9 -25 0 -34l-95 -95l95 -95c9 -9 9 -25 0 -34c-5 -5 -11 -7 -17 -7zM312 56c-6 0 -12 2 -17 7c-9 9 -9 25 0 34l95 95l-95 95c-9 9 -9 25 0 34s25 9 34 0l112 -112c9 -9 9 -25 0 -34l-112 -112
+c-5 -5 -11 -7 -17 -7z" />
+    <glyph glyph-name="ion-coffee" unicode="&#xf272;" horiz-adv-x="384" 
+d="M319 191c37 -7 65 -40 65 -79c0 -20 -8 -39 -21 -54c-15 -17 -37 -26 -61 -26c-8 0 -17 1 -25 3c-6 1 -10 3 -15 5c-11 -15 -23 -25 -32 -33v0c-5 -5 -12 -7 -19 -7h-102c-7 0 -14 2 -19 7v0c-17 15 -41 36 -62 86s-28 91 -28 111s3 20 16 20h101c-5 17 -37 19 -37 46
+c0 17 15 32 28 37c-2 -8 -3 -14 -3 -21c0 -19 39 -30 39 -53c0 -3 0 -6 -1 -9h56c1 5 2 10 2 14c0 36 -56 36 -56 84c0 28 21 55 47 62c-4 -14 -9 -23 -9 -35c0 -32 57 -50 57 -88c0 -13 -5 -25 -12 -37h76c13 0 16 0 16 -20c0 -4 0 -8 -1 -13zM302 64c33 0 50 25 50 48
+s-17 43 -39 47c-4 -19 -11 -42 -21 -66c-4 -9 -8 -17 -12 -25c6 -3 13 -4 22 -4z" />
+    <glyph glyph-name="ion-compass" unicode="&#xf273;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224c0 39 10 76 27 108c-16 12 -27 30 -27 52c0 35 29 64 64 64c22 0 40 -11 52 -27c32 17 69 27 108 27zM32 352c0 -10 5 -20 13 -26c13 17 28 32 45 45c-6 8 -16 13 -26 13c-18 0 -32 -14 -32 -32z
+M360 56c36 36 56 85 56 136s-20 100 -56 136s-85 56 -136 56s-100 -20 -136 -56s-56 -85 -56 -136s20 -100 56 -136s85 -56 136 -56s100 20 136 56zM320 320c0 0 -54 -130 -72 -152s-120 -104 -120 -104s54 132 72 152s120 104 120 104z" />
+    <glyph glyph-name="ion-compose" unicode="&#xf12c;" horiz-adv-x="384" 
+d="M379 348c7 -7 7 -18 0 -25l-32 -31l-55 55l31 32c7 7 18 7 25 0zM282 338l55 -55l-177 -173l-64 -14l14 64zM320 192l32 32v-201c0 -13 -10 -23 -23 -23h-306c-13 0 -23 10 -23 23v306c0 13 10 23 23 23h201l-32 -32h-149c-6 0 -11 -5 -11 -10v-268s4 -10 10 -10h269
+s9 5 9 10v150z" />
+    <glyph glyph-name="ion-connection-bars" unicode="&#xf274;" horiz-adv-x="352" 
+d="M0 32v64h64v-64h-64zM96 32v128h64v-128h-64zM192 32v224h64v-224h-64zM288 32v320h64v-320h-64z" />
+    <glyph glyph-name="ion-contrast" unicode="&#xf275;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c36 36 56 85 56 136s-20 100 -56 136s-85 56 -136 56v-384c51 0 100 20 136 56z" />
+    <glyph glyph-name="ion-crop" unicode="&#xf3c1;" 
+d="M320 -32v48h64v-48h-64zM384 96h64v-64h-384v256h-64v64h64v64h64v-320h192v192h-176v64h240v-256z" />
+    <glyph glyph-name="ion-cube" unicode="&#xf318;" 
+d="M435 280c7 0 13 -6 13 -12v-183c0 -9 -6 -17 -14 -22v-1l-175 -92v-1c-2 -1 -4 -1 -6 -1c-7 0 -13 6 -13 12v185c0 9 5 17 13 22v0l3 2l172 89l2 1c2 1 3 1 5 1zM422 329c0 0 8 -3 8 -9c0 -7 -8 -11 -8 -11l-183 -97l-2 -1c-4 -2 -8 -3 -13 -3s-9 1 -13 3l-2 1l-183 96
+s-8 5 -8 12c0 6 8 9 8 9l181 82s11 5 17 5s17 -5 17 -5zM195 187c8 -5 13 -13 13 -22v-185c0 -6 -6 -12 -13 -12c-2 0 -4 1 -6 2v0l-175 92v1c-8 5 -14 13 -14 22v183c0 6 6 12 13 12c2 0 4 0 5 -1l2 -1l171 -89z" />
+    <glyph glyph-name="ion-disc" unicode="&#xf12d;" 
+d="M224 289c54 0 97 -43 97 -97s-43 -97 -97 -97s-97 43 -97 97s43 97 97 97zM224 148c24 0 44 20 44 44s-20 44 -44 44s-44 -20 -44 -44s20 -44 44 -44zM224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM224 69
+c68 0 123 55 123 123s-55 123 -123 123s-123 -55 -123 -123s55 -123 123 -123z" />
+    <glyph glyph-name="ion-document-text" unicode="&#xf12e;" horiz-adv-x="288" 
+d="M286 279c1 -3 2 -6 2 -10v-245c0 -13 -10 -24 -22 -24h-243c-12 0 -23 11 -23 24v336c0 13 11 24 23 24h160c3 0 6 0 9 -2c2 -1 5 -3 7 -5l84 -92c2 -2 2 -4 3 -6zM48 269v-10c0 -1 1 -3 3 -3h71c2 0 3 2 3 3v10c0 2 -1 3 -3 3h-71c-2 0 -3 -1 -3 -3zM48 141v-10
+c0 -1 1 -3 3 -3h123c2 0 2 2 2 3v10c0 2 0 3 -2 3h-123c-2 0 -3 -1 -3 -3zM208 67v10c0 2 0 3 -2 3h-155c-2 0 -3 -1 -3 -3v-10c0 -1 1 -3 3 -3h155c2 0 2 2 2 3zM240 195v10c0 2 0 3 -2 3h-187c-2 0 -3 -1 -3 -3v-10c0 -1 1 -3 3 -3h187c2 0 2 2 2 3zM193 270h60l-71 78
+v-66c0 -6 5 -12 11 -12z" />
+    <glyph glyph-name="ion-document" unicode="&#xf12f;" horiz-adv-x="288" 
+d="M287 279c1 -3 1 -5 1 -9v-244c0 -13 -9 -26 -21 -26h-243c-12 0 -24 13 -24 26v335c0 13 12 23 24 23h160c3 0 6 0 9 -2c2 -1 5 -2 7 -4l83 -92c2 -2 3 -4 4 -7zM193 337v-63h58zM32 32h224v210h-67c-15 0 -28 13 -28 28v82h-129v-320z" />
+    <glyph glyph-name="ion-drag" unicode="&#xf130;" horiz-adv-x="512" 
+d="M0 272v32h512v-32h-512zM0 176v32h512v-32h-512zM0 80v32h512v-32h-512z" />
+    <glyph glyph-name="ion-earth" unicode="&#xf276;" 
+d="M325 322c2 -4 7 -12 3 -15c-3 -2 -10 -2 -13 5s0 11 -5 9s-7 3 -6 4c1 2 3 3 5 4c0 2 -4 8 2 7c4 -1 12 -10 14 -14zM344 277v0v0zM403 251c0 0 -2 0 0 0v0zM224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM141 19l8 -4
+c3 -1 6 -2 10 -3c14 -5 28 -8 43 -10c28 -3 56 -1 83 8c15 5 30 11 43 20c6 4 6 16 10 24c8 16 -2 33 12 47c12 14 4 19 4 34c0 10 8 18 4 29c-1 4 -7 -3 -9 1c-5 7 -21 1 -28 2c-13 2 -24 14 -33 23c-5 5 0 20 1 26c4 15 0 33 19 38c5 1 5 9 10 11c5 1 10 3 15 4
+c9 1 17 -2 26 -2c10 0 14 -5 22 -11c7 -6 13 -3 22 -5c7 0 0 5 -2 8c-3 2 -6 2 -8 2c-16 4 -23 22 -36 30c-6 3 -9 2 -11 0c-1 -1 1 -12 1 -12c-1 -3 -10 -4 -13 -5c-9 -2 -29 17 -15 22c4 1 27 5 24 15c-3 6 2 13 -5 14c-8 1 -7 7 -15 8c-5 1 -5 11 -5 14c0 9 2 6 9 7
+c-17 11 -37 19 -57 24c-1 -3 -5 -12 -8 -12c-5 -1 -6 0 -9 -3c-9 -10 -16 -28 -25 -7c-4 11 5 19 2 28h-6h-3c6 -12 -5 -18 -8 -19c-8 0 -10 5 -17 4c-4 -1 -7 4 -11 2s-13 -8 -14 -12c-3 -12 6 -13 14 -6c6 6 17 12 25 6c6 -5 5 -9 5 -14s-1 -18 -9 -16c-4 1 -7 6 -11 3
+c-8 -7 -18 -6 -29 -9c-10 -2 -16 -6 -25 -9c-8 -3 -11 -4 -12 -12c0 -2 0 -14 -3 -15c-5 -2 -8 22 -22 20c-12 -1 -30 -13 -25 -28c2 -5 28 -3 10 -14c-2 -1 2 -17 2 -20c1 -8 13 -18 21 -10c6 6 6 5 14 2c15 -8 33 -15 45 -27c6 -6 9 -24 17 -28c9 -5 19 -5 26 -14
+c6 -7 -2 -19 -8 -23c-4 -2 -12 -24 -16 -29c-2 -4 -12 -6 -16 -7c-3 0 -7 -9 -9 -11c-7 -7 -8 -13 -17 -19c-18 -12 -22 -23 -18 -44c2 -8 5 -13 11 -16zM100 46l2 -2c7 -6 15 -11 23 -16c-21 21 -23 49 -21 78l3 24c1 3 -4 7 -4 11c0 10 0 5 -8 13c-4 4 -10 11 -12 17
+c-7 16 1 30 10 43c9 14 -7 20 -10 32c-1 6 -7 6 -6 12c1 7 -4 5 -9 9c-12 8 -1 20 -7 26c-43 -70 -36 -162 16 -224c1 -1 0 -1 1 -2h1c3 -4 6 -8 9 -11s7 -6 10 -9z" />
+    <glyph glyph-name="ion-easel" unicode="&#xf3c2;" 
+d="M48 112v192h352v-192h-352zM432 352c9 0 16 -7 16 -16v-256c0 -9 -7 -16 -16 -16h-416c-9 0 -16 7 -16 16v256c0 9 7 16 16 16h416zM416 96v224h-384v-224h384zM48 -32l29 80h31l-28 -80h-32zM239 416l17 -48h-64l17 48h30zM340 48h31l29 -80h-32zM208 0v48h32v-48h-32z
+" />
+    <glyph glyph-name="ion-edit" unicode="&#xf2bf;" 
+d="M381 259l-250 -251l-91 91l251 250zM440 360c12 -12 11 -32 -2 -45l-45 -45l-91 91l45 45c13 13 33 14 45 2zM32 85l85 -85l-117 -32z" />
+    <glyph glyph-name="ion-egg" unicode="&#xf277;" horiz-adv-x="320" 
+d="M160 416c64 0 160 -133 160 -257s-64 -191 -160 -191s-160 67 -160 191s96 257 160 257z" />
+    <glyph glyph-name="ion-eject" unicode="&#xf131;" horiz-adv-x="320" 
+d="M303 128h-286v0c-10 0 -17 7 -17 16c0 3 1 5 3 8l138 191c5 5 11 9 19 9s14 -4 19 -9l138 -190c2 -3 3 -6 3 -9c0 -9 -7 -16 -17 -16v0zM308 96c7 0 12 -5 12 -12v-40c0 -7 -5 -12 -12 -12h-296c-7 0 -12 5 -12 12v40c0 7 5 12 12 12h296z" />
+    <glyph glyph-name="ion-email-unread" unicode="&#xf3c3;" horiz-adv-x="480" 
+d="M352 288c0 43 21 64 64 64s64 -21 64 -64s-21 -64 -64 -64s-64 21 -64 64zM209 288h127c0 -17 5 -33 15 -47c-6 -3 -14 -8 -22 -12s-16 -8 -23 -12s-14 -8 -22 -12s-15 -8 -21 -11s-11 -6 -16 -9s-9 -5 -12 -7s-4 -3 -5 -3c-6 -3 -13 -4 -21 -4s-15 1 -21 4
+c-1 1 -15 8 -42 23s-54 29 -81 44s-43 23 -46 25c-7 4 -12 8 -13 11c-1 4 -1 6 1 8s6 2 11 2h191zM277 175c18 11 45 30 83 56c16 -15 34 -23 56 -23v-155c0 -2 -1 -4 -2 -7s-3 -5 -5 -7s-4 -4 -7 -5s-6 -2 -8 -2h-185h-185c-5 0 -11 2 -16 7s-8 9 -8 14v205c0 6 3 8 9 5
+c2 -1 11 -7 26 -17s32 -22 53 -36s39 -26 53 -35l-83 -93c-2 -2 -2 -4 -1 -5c2 -1 4 -1 6 1l98 83c16 -10 25 -16 27 -17c6 -3 13 -4 21 -4s15 1 21 4c2 1 11 7 27 17l98 -83c2 -2 5 -2 6 -1s0 3 -2 5z" />
+    <glyph glyph-name="ion-email" unicode="&#xf132;" horiz-adv-x="416" 
+d="M19 299c-4 2 -11 7 -13 11c-3 8 1 10 12 10h191h191c11 0 15 -2 12 -10c-2 -4 -9 -9 -13 -11c-11 -6 -163 -89 -169 -92s-12 -4 -21 -4s-15 1 -21 4s-158 86 -169 92zM408 295c9 4 8 -1 8 -5v-205c0 -9 -12 -21 -22 -21h-185h-185c-10 0 -24 12 -24 21v205s0 9 9 5
+c8 -4 83 -56 132 -88l-83 -93c-2 -2 -2 -4 -1 -5s4 -1 6 1l98 83c15 -10 25 -16 27 -17c8 -4 14 -4 21 -4s13 0 21 4c2 1 12 7 27 17l98 -83c2 -2 5 -2 6 -1s0 3 -2 5l-82 93c49 32 123 84 131 88z" />
+    <glyph glyph-name="ion-erlenmeyer-flask-bubbles" unicode="&#xf3c4;" horiz-adv-x="384" 
+d="M382 21c2 -4 3 -10 0 -14s-8 -7 -13 -7h-177h-178c-5 0 -9 3 -12 7s-2 10 0 14l118 199v150c0 8 6 14 14 14s15 -6 15 -14v-80c4 3 10 5 16 5c15 0 27 -12 27 -27s-12 -26 -27 -26c-6 0 -12 2 -16 5v-31c0 -2 -1 -4 -2 -6l-35 -59h72c-15 6 -26 20 -26 37
+c0 23 19 42 43 42c15 0 27 -8 35 -19c-1 2 -1 3 -1 5v154c0 8 6 14 14 14s15 -6 15 -14v-150zM218 151h53l-31 54c2 -5 3 -11 3 -17c0 -17 -10 -31 -25 -37zM201 319c-12 0 -22 9 -22 21s10 21 22 21s22 -9 22 -21s-10 -21 -22 -21z" />
+    <glyph glyph-name="ion-erlenmeyer-flask" unicode="&#xf3c5;" horiz-adv-x="384" 
+d="M375 52c6 -9 9 -20 9 -32c0 -28 -16 -52 -63 -52h-258c-47 0 -63 24 -63 52c0 12 3 23 9 32l49 73l49 77c13 20 21 44 21 70v92s-14 34 -16 43c-2 8 1 9 17 9h126c16 0 18 -1 16 -9c-2 -9 -15 -22 -15 -42v-93c0 -26 6 -50 19 -70zM345 7c3 3 7 8 7 14c0 5 -2 10 -4 14
+l-101 150c-16 26 -23 56 -23 87v112h-64v-112c0 -32 -9 -62 -25 -87l-99 -150c-2 -4 -4 -9 -4 -14c0 -6 3 -11 6 -14c4 -4 12 -7 25 -7h258c13 0 20 3 24 7zM325 37c1 -2 3 -6 3 -8c0 -7 -6 -15 -14 -15h-244c-7 0 -14 6 -14 14c0 3 1 6 3 8l81 124h103l82 -124v1zM238 106
+c2 -1 4 -2 6 -2s3 0 5 2c1 2 3 4 3 6s-1 4 -3 6c-1 2 -3 2 -5 2s-4 0 -6 -2c-1 -2 -2 -4 -2 -6s0 -4 2 -6zM285 47c4 2 4 7 2 11l-23 36c-1 2 -4 4 -7 4c-2 0 -3 0 -4 -1c-4 -2 -4 -7 -2 -11l23 -36c1 -2 5 -4 7 -4c1 0 3 0 4 1z" />
+    <glyph glyph-name="ion-eye-disabled" unicode="&#xf306;" 
+d="M344 290c41 -27 76 -66 104 -100c-51 -54 -124 -135 -224 -135c-36 0 -65 8 -92 22l-77 -77l-23 23l71 71c-36 25 -68 61 -103 98c78 85 142 137 224 137c34 0 64 -9 92 -23l77 78l23 -23zM134 192c0 -19 6 -36 16 -51l27 27c-4 7 -5 15 -5 24c0 29 23 53 52 53h8
+c-5 -6 -8 -13 -8 -21c0 -3 0 -5 1 -8l51 50c-15 11 -33 17 -52 17c-49 0 -90 -41 -90 -91zM224 101c49 0 90 41 90 91c0 19 -6 37 -16 52l-50 -51c3 -1 5 -1 8 -1c8 0 14 3 20 7v-7c0 -29 -23 -53 -52 -53c-9 0 -17 2 -24 6l-28 -27c15 -11 33 -17 52 -17z" />
+    <glyph glyph-name="ion-eye" unicode="&#xf133;" 
+d="M224 320c99 0 172 -70 224 -129c-51 -50 -124 -127 -224 -127s-157 60 -224 128c78 79 142 128 224 128zM224 101c49 0 90 41 90 91s-41 91 -90 91s-90 -41 -90 -91s41 -91 90 -91zM224 224c0 -18 14 -32 32 -32c8 0 14 3 20 7v-7c0 -29 -23 -53 -52 -53s-52 24 -52 53
+s23 53 52 53h8c-5 -6 -8 -13 -8 -21z" />
+    <glyph glyph-name="ion-female" unicode="&#xf278;" horiz-adv-x="256" 
+d="M160 164v-68h64v-64h-64v-64h-64v64h-64v64h64v68c-55 14 -96 64 -96 124c0 71 57 128 128 128s128 -57 128 -128c0 -60 -41 -110 -96 -124zM128 208c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80z" />
+    <glyph glyph-name="ion-filing" unicode="&#xf134;" horiz-adv-x="384" 
+d="M317 319c12 0 19 0 19 -20v-28h-288v28c0 20 8 20 20 20h249zM269 352c13 0 19 -1 19 -19h-192c0 18 7 19 20 19h153zM368 278c13 -8 17 -17 15 -41l-17 -184c-4 -21 -16 -21 -24 -21h-300c-8 0 -20 0 -24 21l-17 185c-3 26 1 31 15 40l15 10v-32h321v32z" />
+    <glyph glyph-name="ion-film-marker" unicode="&#xf135;" horiz-adv-x="416" 
+d="M400 240c9 0 16 -7 16 -15v-210c0 -8 -7 -15 -16 -15h-384c-9 0 -16 7 -16 15v210c0 8 6 14 13 15c-2 2 -3 4 -4 7l-9 45c-2 8 5 16 13 18l370 74c8 2 16 -4 18 -12l9 -46c2 -8 -4 -16 -12 -18l-342 -68h344zM257 46l-20 58l51 36h-62l-20 58l-19 -58h-63l51 -36l-19 -58
+l50 36z" />
+    <glyph glyph-name="ion-fireball" unicode="&#xf319;" horiz-adv-x="320" 
+d="M297 210c14 -24 23 -52 23 -82c0 -33 -10 -63 -26 -88v0v0c-29 -43 -78 -72 -134 -72c-17 0 -32 1 -46 7s-25 13 -33 25c-11 16 -17 28 -21 52c-6 -25 2 -48 9 -60c-43 26 -69 71 -69 125v4c5 78 65 109 90 151c8 14 13 30 10 48c11 -9 15 -25 15 -39
+c0 -16 -3 -29 -3 -29c4 8 7 18 9 31c6 35 2 85 -37 132l-1 1s7 0 18 -3c95 -16 169 -91 184 -186c2 -12 3 -23 3 -35c0 -16 -2 -32 -5 -47c10 23 13 43 14 55v10z" />
+    <glyph glyph-name="ion-flag" unicode="&#xf279;" horiz-adv-x="384" 
+d="M362 266c0 0 12 2 22 6c0 -16 -7 -32 -9 -36c-28 -50 -99 -123 -181 -84c-65 31 -92 30 -117 24c-1 0 -2 -1 -3 -1c-3 -1 -15 -5 -26 -1v197c0 16 14 31 33 35c39 7 106 5 148 -74c39 -74 97 -72 133 -66zM24 416c4 0 8 -4 8 -8v-432c0 -4 -4 -8 -8 -8h-16
+c-4 0 -8 4 -8 8v432c0 4 4 8 8 8h16z" />
+    <glyph glyph-name="ion-flame" unicode="&#xf31a;" horiz-adv-x="256" 
+d="M1 128c-11 109 72 224 159 288c-26 -145 97 -142 96 -288c-1 -120 -105 -160 -128 -160s-114 26 -127 160zM88 80c0 -44 40 -80 40 -80s41 36 41 80s-41 80 -41 80s-40 -36 -40 -80z" />
+    <glyph glyph-name="ion-flash-off" unicode="&#xf136;" 
+d="M115 -4c-69 38 -115 112 -115 196c0 124 100 224 224 224c24 0 47 -4 68 -11c2 -1 3 -1 5 -2c12 -4 24 -9 35 -15v0c69 -38 116 -112 116 -196c0 -124 -100 -224 -224 -224c-24 0 -47 4 -68 11c-2 1 -3 1 -5 2c-12 4 -24 8 -35 14zM86 291c-20 -28 -32 -62 -32 -99
+c0 -65 36 -121 90 -150c6 -3 13 -7 19 -9c2 -1 3 -1 5 -2c9 -3 19 -5 29 -7c9 -2 18 -2 27 -2c37 0 71 12 99 32l-52 53l36 40l55 -54c20 28 32 62 32 99c0 66 -37 123 -91 151c-6 3 -12 6 -18 8c-2 1 -3 1 -5 2c-9 3 -19 5 -29 7c-9 2 -18 2 -27 2c-37 0 -72 -12 -100 -32
+l53 -52l-36 -41zM178 58l38 113h-85l139 155l-38 -113h85z" />
+    <glyph glyph-name="ion-flash" unicode="&#xf137;" horiz-adv-x="320" 
+d="M0 160l224 256l-51 -192h147l-224 -256l51 192h-147z" />
+    <glyph glyph-name="ion-folder" unicode="&#xf139;" horiz-adv-x="384" 
+d="M366 256c18 0 19 -7 18 -18l-12 -186c-1 -11 -3 -20 -21 -20h-317c-18 0 -20 9 -21 20l-13 184c-1 11 0 20 18 20h348zM362 305l2 -33h-344c0 6 4 46 6 63c2 18 8 17 25 17h75c28 0 23 0 37 -15c16 -18 19 -17 41 -17h143c11 0 15 -3 15 -15z" />
+    <glyph glyph-name="ion-fork-repo" unicode="&#xf2c0;" horiz-adv-x="320" 
+d="M320 368v-64h-48v-48h-64v48h-48v64h48v48h64v-48h48zM208 208h64v-5v0c0 -43 -7 -70 -38 -95c-23 -19 -51 -20 -75 -22c-9 -1 -18 -2 -26 -3c-6 -1 -13 -5 -20 -10c9 -11 15 -25 15 -41c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v210c-19 11 -32 31 -32 55
+c0 35 29 64 64 64s64 -29 64 -64c0 -24 -13 -44 -32 -55v-160c8 4 18 7 27 9c11 2 21 2 31 3c17 1 33 3 40 9c10 8 14 11 14 50zM64 384c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM64 0c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32
+s14 -32 32 -32z" />
+    <glyph glyph-name="ion-fork" unicode="&#xf27a;" horiz-adv-x="128" 
+d="M78 299v0v0v0zM128 282c0 -26 -15 -48 -37 -58c-12 -6 -11 -11 -11 -11s16 -200 16 -213s-3 -18 -9 -24s-15 -8 -23 -8v0v0c-8 0 -16 2 -22 8s-10 13 -10 24s16 213 16 213s0 6 -11 11c-22 10 -37 32 -37 58c0 43 15 93 24 134h8v-117c0 -6 3 -11 9 -11s9 4 10 10v1
+l9 117h8l10 -117v-1c1 -6 3 -10 9 -10s9 5 9 11v117h8v0c9 -40 24 -91 24 -134z" />
+    <glyph glyph-name="ion-forward" unicode="&#xf13a;" horiz-adv-x="384" 
+d="M224 150c-102 0 -171 -9 -224 -102c0 0 37 208 224 208v80l160 -144l-160 -134v92z" />
+    <glyph glyph-name="ion-funnel" unicode="&#xf31b;" 
+d="M224 416c124 0 224 -36 224 -80c0 -8 -3 -15 -9 -22v0c-35 -43 -151 -179 -151 -218v-4v-83v0c0 -23 -29 -41 -64 -41s-64 18 -64 41v0v87c0 39 -117 177 -149 216v0c-7 8 -11 16 -11 24c0 44 100 80 224 80zM224 288c92 0 176 22 176 48s-83 48 -176 48
+s-176 -22 -176 -48s84 -48 176 -48z" />
+    <glyph glyph-name="ion-gear-a" unicode="&#xf13d;" horiz-adv-x="384" 
+d="M347 192c0 -24 15 -43 37 -56c-4 -13 -10 -26 -16 -38c-25 6 -45 -3 -62 -20s-22 -37 -16 -62c-12 -6 -25 -12 -38 -16c-13 22 -36 37 -60 37s-47 -15 -60 -37c-13 4 -27 10 -39 16c6 25 2 45 -15 62s-37 21 -62 15c-6 12 -12 26 -16 39c22 13 37 36 37 60s-15 43 -37 56
+c4 13 9 26 16 38c25 -6 45 3 62 20s21 37 15 62c12 6 26 12 39 16c13 -22 36 -37 60 -37s47 15 60 37c13 -4 27 -10 39 -16c-6 -25 -2 -45 15 -62s37 -26 62 -20c6 -12 12 -25 16 -38c-22 -13 -37 -32 -37 -56zM192 94c54 0 98 44 98 98s-44 98 -98 98s-98 -44 -98 -98
+s44 -98 98 -98z" />
+    <glyph glyph-name="ion-gear-b" unicode="&#xf13e;" horiz-adv-x="384" 
+d="M384 154h-44c-4 -14 -10 -27 -17 -39l32 -32l-54 -54l-33 32c-12 -7 -24 -11 -38 -15v-46h-76v46c-13 4 -26 8 -38 15l-33 -32l-54 54l32 32c-7 12 -13 25 -17 39h-44v76h43c4 14 9 29 16 41l-30 30l54 54l29 -29c13 8 27 13 42 17v41h76v-41c15 -4 29 -9 42 -17l29 29
+l54 -54l-30 -30c7 -12 13 -27 16 -41h43v-76zM192 138c30 0 54 24 54 54s-24 54 -54 54s-54 -24 -54 -54s24 -54 54 -54z" />
+    <glyph glyph-name="ion-grid" unicode="&#xf13f;" horiz-adv-x="320" 
+d="M64 295c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM192 295c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM320 295c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM64 167
+c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM192 167c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM320 167c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM64 39
+c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM192 39c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50zM320 39c0 -4 -3 -7 -7 -7h-50c-4 0 -7 3 -7 7v50c0 4 3 7 7 7h50c4 0 7 -3 7 -7v-50z" />
+    <glyph glyph-name="ion-hammer" unicode="&#xf27b;" horiz-adv-x="320" 
+d="M314 416c3 0 6 -3 6 -6v-84c0 -3 -3 -6 -6 -6h-52c-3 0 -6 3 -6 6v14c-6 5 -16 9 -22 7c-7 -2 -23 -13 -30 -25s-6 -28 -6 -66l8 -2c5 -1 7 -6 7 -9v-70c0 -95 11 -201 11 -201c0 -3 -3 -6 -6 -6h-84c-3 0 -6 3 -6 6c0 0 11 106 11 201v70c0 3 3 8 7 9l7 2
+c0 43 -5 58 -22 74c-18 16 -41 19 -63 17s-51 -35 -58 -45s-10 2 -10 11c1 16 22 60 72 81s91 22 102 22s27 -1 38 -3s16 -18 26 -18c7 0 14 5 18 9v6c0 3 3 6 6 6h52z" />
+    <glyph glyph-name="ion-happy-outline" unicode="&#xf3c6;" 
+d="M355 158c8 -4 11 -13 7 -21c-24 -46 -78 -73 -138 -73c-62 0 -118 29 -139 74c-4 8 0 17 8 21c2 1 5 1 7 1c6 0 11 -3 14 -9c16 -34 60 -55 110 -55c49 0 92 21 110 56c3 5 8 8 14 8c3 0 5 -1 7 -2zM381 217c5 -7 4 -17 -4 -22c-3 -2 -6 -3 -10 -3c-5 0 -11 2 -14 6
+s-7 10 -17 10s-14 -6 -17 -10s-9 -6 -14 -6c-4 0 -7 1 -10 3c-8 6 -9 15 -3 22c11 14 23 23 44 23s35 -9 45 -23zM157 217c5 -7 4 -17 -4 -22c-3 -2 -6 -3 -10 -3c-5 0 -11 2 -14 6s-7 10 -17 10s-14 -6 -17 -10s-9 -6 -14 -6c-4 0 -7 1 -10 3c-8 6 -9 15 -3 22
+c11 14 23 23 44 23s35 -9 45 -23zM224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c36 36 56 85 56 136s-20 100 -56 136s-85 56 -136 56s-100 -20 -136 -56s-56 -85 -56 -136s20 -100 56 -136s85 -56 136 -56
+s100 20 136 56z" />
+    <glyph glyph-name="ion-happy" unicode="&#xf31c;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM71 195c3 -2 6 -3 10 -3c5 0 11 2 14 6s7 10 17 10s14 -6 17 -10s9 -6 14 -6c4 0 7 1 10 3c8 5 9 15 4 22c-10 14 -24 23 -45 23s-33 -9 -44 -23c-6 -7 -5 -16 3 -22zM362 137
+c4 8 1 17 -7 21c-2 1 -4 2 -7 2c-6 0 -11 -3 -14 -8c-18 -35 -61 -56 -110 -56c-50 0 -94 21 -110 55c-3 6 -8 9 -14 9c-2 0 -5 0 -7 -1c-8 -4 -12 -13 -8 -21c21 -45 77 -74 139 -74c60 0 114 27 138 73zM377 195c8 5 9 15 4 22c-10 14 -24 23 -45 23s-33 -9 -44 -23
+c-6 -7 -5 -16 3 -22c3 -2 6 -3 10 -3c5 0 11 2 14 6s7 10 17 10s14 -6 17 -10s9 -6 14 -6c4 0 7 1 10 3z" />
+    <glyph glyph-name="ion-headphone" unicode="&#xf140;" horiz-adv-x="384" 
+d="M383 210c3 -51 -3 -130 -13 -162c-20 -67 -40 -80 -72 -80s-58 27 -58 59v106c0 33 23 59 53 59c18 0 34 -9 44 -24c0 0 11 7 13 22s4 34 -5 64s-21 19 -36 38c-2 3 -5 7 -8 10l-10 10c-2 2 -3 3 -5 4c-11 9 -21 17 -34 23c-19 9 -39 13 -60 13s-42 -4 -61 -13
+c-13 -6 -22 -14 -33 -23c-2 -1 -3 -2 -5 -4l-10 -10s-6 -7 -8 -10c-15 -19 -27 -8 -36 -38c-9 -31 -7 -49 -5 -64s13 -22 13 -22c10 15 26 24 44 24c30 0 53 -27 53 -59v-106c0 -32 -26 -59 -58 -59s-52 13 -72 80c-10 32 -16 111 -13 162c3 60 22 108 56 145v0
+c8 8 15 16 24 23s19 13 29 18c25 13 53 20 82 20s57 -7 82 -20c10 -5 19 -11 28 -18s17 -15 25 -23v0c34 -37 53 -85 56 -145z" />
+    <glyph glyph-name="ion-heart-broken" unicode="&#xf31d;" horiz-adv-x="416" 
+d="M181 160c0 -36 -2 -71 4 -107c2 -10 2 -20 2 -31l-153 159c-45 47 -45 124 0 171c40 41 103 43 144 3c-2 -15 -3 -31 -3 -46c-18 -14 -40 -21 -56 -39l11 7c17 11 15 8 35 14c3 1 8 3 11 5c0 -1 -1 -5 -1 -6c1 -20 11 -39 15 -60c0 -5 1 -10 -1 -15c-8 -17 -7 -37 -8 -55
+zM274 147c8 -18 23 -29 38 -39l-104 -108l-17 18c0 13 -4 26 -4 38c-2 48 10 94 21 142v0c1 -1 2 -1 3 -1c30 -6 52 -24 63 -50zM382 352c46 -47 46 -124 0 -171l-68 -70c-28 24 -42 54 -65 81c-12 13 -26 23 -41 32c-3 13 -8 26 -11 39c-3 12 14 21 16 31c3 12 3 26 3 39
+l19 19c40 42 107 42 147 0z" />
+    <glyph glyph-name="ion-heart" unicode="&#xf141;" horiz-adv-x="416" 
+d="M382 352c46 -47 46 -124 0 -171l-174 -181l-174 181c-46 47 -46 124 0 171c40 42 107 42 147 0l27 -28l28 28c40 42 106 42 146 0z" />
+    <glyph glyph-name="ion-help-buoy" unicode="&#xf27c;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM402 264c-10 24 -23 45 -42 64s-41 32 -65 42l-19 -61c14 -6 27 -15 38 -26s21 -24 27 -38zM224 96c53 0 96 43 96 96s-43 96 -96 96s-96 -43 -96 -96s43 -96 96 -96zM88 328
+c-19 -19 -32 -41 -42 -65l61 -19c6 14 15 27 26 38s24 21 38 27l-19 61c-24 -10 -45 -23 -64 -42zM46 120c10 -24 23 -45 42 -64s41 -32 65 -42l19 61c-14 6 -27 15 -38 26s-21 24 -27 38zM360 56c19 19 32 41 42 65l-61 19c-6 -14 -15 -27 -26 -38s-24 -21 -38 -27l19 -61
+c24 10 45 23 64 42z" />
+    <glyph glyph-name="ion-help-circled" unicode="&#xf142;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM244 89c1 18 -12 31 -29 31c-16 0 -30 -11 -30 -29s12 -30 28 -30c17 0 31 10 31 28zM293 217c7 10 12 22 12 36c0 23 -9 40 -25 52c-17 13 -37 18 -62 18
+c-19 0 -34 -4 -47 -13c-19 -13 -28 -34 -28 -68h49c0 9 -1 19 4 27s13 15 26 15s19 -3 25 -11c5 -7 8 -15 8 -23c0 -7 -4 -14 -8 -20c-2 -4 -6 -7 -10 -10c0 0 -26 -15 -35 -30c-7 -11 -9 -24 -10 -41c0 -1 0 -4 4 -4h39s5 3 5 4c0 6 1 15 2 19c2 7 6 12 12 17l14 9
+c12 9 21 17 25 23z" />
+    <glyph glyph-name="ion-help" unicode="&#xf143;" horiz-adv-x="256" 
+d="M217 371c25 -19 39 -46 39 -83c0 -22 -8 -42 -19 -57c-7 -9 -21 -21 -40 -36l-21 -14c-10 -8 -17 -18 -20 -28c-2 -6 -3 -19 -3 -29c0 -2 -1 -6 -7 -6h-62c-7 0 -7 3 -7 5c1 26 4 49 15 66c15 23 57 48 57 48c6 5 11 9 15 15c7 10 12 21 12 32c0 13 -3 26 -11 36
+c-10 12 -21 18 -41 18s-32 -11 -40 -24s-7 -29 -7 -43h-77c0 54 14 88 44 108c20 14 45 20 75 20c39 0 70 -7 98 -28zM114 78c27 -1 47 -20 46 -48s-22 -46 -49 -45c-26 1 -46 19 -45 47s22 47 48 46z" />
+    <glyph glyph-name="ion-home" unicode="&#xf144;" horiz-adv-x="384" 
+d="M384 160h-48v-160h-96v128h-96v-128h-96v160h-48l192 224z" />
+    <glyph glyph-name="ion-icecream" unicode="&#xf27d;" horiz-adv-x="320" 
+d="M32 192h256l-128 -224zM307 275c8 -5 13 -13 13 -23c0 -16 -14 -28 -30 -28h-4h-252h-4c-16 0 -30 13 -30 28c0 10 6 18 14 23c1 0 1 2 2 2c4 3 7 7 8 12v1c-2 6 -2 12 -2 18c0 42 34 76 76 76c8 0 16 -2 23 -4c-3 -12 -4 -31 -4 -31c2 15 11 29 11 29c18 23 46 38 77 38
+c53 0 96 -43 96 -96c0 -11 -2 -21 -5 -30v-1c0 -4 4 -9 8 -12c1 0 2 -2 3 -2z" />
+    <glyph glyph-name="ion-image" unicode="&#xf147;" 
+d="M336 224c-26 0 -48 22 -48 48s22 48 48 48s48 -22 48 -48s-22 -48 -48 -48zM420 384c16 0 28 -12 28 -28v-328c0 -16 -12 -28 -28 -28h-392c-16 0 -28 12 -28 28v328c0 16 12 28 28 28h392zM317 186l99 -106v260c0 7 -6 12 -13 12h-358c-7 0 -12 -5 -13 -12v-260l126 152
+c4 4 10 8 17 8s13 -2 17 -7l54 -59l4 -4c3 -2 7 -4 11 -4s8 2 12 5l18 16c4 3 8 5 13 5s10 -2 13 -6z" />
+    <glyph glyph-name="ion-images" unicode="&#xf148;" 
+d="M426 308c13 -1 23 -12 22 -24l-14 -263c-1 -13 -12 -22 -25 -21l-330 16c-13 1 -23 10 -22 23l2 46l-15 -1c-12 -1 -22 7 -23 18l-21 236c-1 11 7 21 19 22l296 24c12 1 22 -7 23 -18l5 -54zM71 302c1 12 11 22 24 22l219 -11l-2 31h-1v1c-1 5 -5 8 -10 8l-261 -22
+c-5 0 -10 -4 -10 -9v0v-1l16 -178l18 25zM405 66l10 198v1v0c0 6 -5 10 -11 10l-58 3l-29 2l-204 9c-6 0 -11 -4 -12 -9v0v-1l-3 -63l-7 -128v-7l6 7l102 109c4 4 8 6 14 6s11 -3 14 -7l43 -49l3 -3c2 -2 6 -4 10 -4s5 1 9 3l17 12c4 3 7 4 11 4s9 -2 11 -5l27 -33zM341 186
+c-20 0 -35 15 -35 35s16 35 35 35c20 0 35 -16 35 -35s-16 -35 -35 -35z" />
+    <glyph glyph-name="ion-information-circled" unicode="&#xf149;" 
+d="M448 195c2 -124 -97 -225 -221 -227s-225 97 -227 221s97 225 221 227s225 -97 227 -221zM224 336c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM268 53v11h-22v172h-66v-12h22v-160h-22v-11h88z" />
+    <glyph glyph-name="ion-information" unicode="&#xf14a;" horiz-adv-x="128" 
+d="M96 0h32v-16h-128v16h32v240h-32v16h96v-256zM64 304c-27 0 -48 21 -48 48s21 48 48 48s48 -21 48 -48s-21 -48 -48 -48z" />
+    <glyph glyph-name="ion-ionic" unicode="&#xf14b;" horiz-adv-x="416" 
+d="M376 315c25 -34 40 -77 40 -123c0 -115 -93 -208 -208 -208s-208 93 -208 208s93 208 208 208c46 0 89 -15 123 -40c5 3 11 5 18 5c18 0 32 -14 32 -32c0 -7 -2 -13 -5 -18zM344 56c18 18 31 38 41 61c10 24 15 49 15 75s-5 51 -15 75c-6 13 -13 26 -21 38
+c-4 -2 -10 -4 -15 -4c-18 0 -32 14 -32 32c0 5 2 11 4 15c-12 8 -25 15 -38 21c-24 10 -49 15 -75 15s-51 -5 -75 -15c-23 -10 -43 -23 -61 -41s-31 -38 -41 -61c-10 -24 -15 -49 -15 -75s5 -51 15 -75c10 -23 23 -43 41 -61s38 -31 61 -41c24 -10 49 -15 75 -15s51 5 75 15
+c23 10 43 23 61 41zM112 192c0 64 32 96 96 96s96 -32 96 -96s-32 -96 -96 -96s-96 32 -96 96z" />
+    <glyph glyph-name="ion-ios-alarm-outline" unicode="&#xf3c7;" horiz-adv-x="404" 
+d="M384 256l-54 52l-9 -9c35 -32 57 -79 57 -130c0 -44 -16 -83 -43 -114l36 -45l-12 -10l-35 43c-32 -30 -75 -49 -122 -49v0v0c-47 0 -90 19 -122 49l-35 -43l-12 10l36 45c-27 31 -43 71 -43 115c0 51 22 97 57 129l-9 9l-54 -52c-12 14 -20 32 -20 52c0 44 35 80 80 82
+h5c20 0 39 -7 54 -18l-54 -52l11 -11c26 19 56 32 90 35v0c0 8 8 16 16 16s15 -8 15 -16v0c34 -3 65 -16 91 -35l11 11l-54 52c15 11 34 18 54 18h5c45 -2 80 -38 80 -82c0 -20 -8 -38 -20 -52zM22 280l91 89c-9 5 -19 7 -32 6c-37 -2 -65 -32 -65 -67c0 -10 2 -19 6 -28z
+M362 172c0 88 -72 158 -160 158s-160 -70 -160 -158s72 -158 160 -158s160 70 160 158zM291 369l91 -89c4 9 6 18 6 28c0 35 -28 65 -65 67c-13 1 -23 -1 -32 -6zM202 288h16v-144h-112v16h96v128z" />
+    <glyph glyph-name="ion-ios-alarm" unicode="&#xf3c8;" horiz-adv-x="404" 
+d="M385 256l-55 52l-9 -9c35 -32 57 -79 57 -130c0 -44 -16 -83 -43 -114l37 -45l-13 -10l-35 43c-32 -30 -75 -49 -122 -49v0v0c-47 0 -90 19 -122 49l-35 -43l-12 10l36 45c-27 31 -43 70 -43 114c0 51 22 98 57 130l-9 9l-54 -52c-12 14 -20 32 -20 52c0 44 35 80 80 82
+h5c20 0 39 -7 54 -18l-54 -53l11 -10c26 19 56 32 90 35v0c0 8 8 16 16 16s15 -8 15 -16v0c34 -3 65 -16 91 -35l11 11l-54 52c15 11 34 18 54 18h5c45 -2 80 -38 80 -82c0 -20 -7 -38 -19 -52zM218 144v144h-16v-128h-96v-16h112z" />
+    <glyph glyph-name="ion-ios-albums-outline" unicode="&#xf3c9;" 
+d="M432 304h-416v-288h416v288zM448 320v0v-320h-448v320h448zM40 336v16h368v-16h-368zM72 368v16h304v-16h-304z" />
+    <glyph glyph-name="ion-ios-albums" unicode="&#xf3ca;" 
+d="M448 320v0v-320h-448v320h448zM40 336v16h368v-16h-368zM72 368v16h304v-16h-304z" />
+    <glyph glyph-name="ion-ios-americanfootball-outline" unicode="&#xf3cb;" horiz-adv-x="416" 
+d="M331 315c112 -112 81 -327 81 -327s-26 -4 -65 -4c-73 0 -189 12 -262 85c-112 112 -81 327 -81 327s26 4 65 4c73 0 189 -12 262 -85zM17 383c-2 -19 -5 -60 0 -107c1 -8 2 -16 3 -23l127 127c-25 3 -51 5 -78 5v0v0c-22 0 -41 -1 -52 -2zM96 80c30 -30 72 -53 124 -66
+c10 -3 20 -5 31 -7l142 142c-4 22 -10 44 -17 63c-14 37 -32 68 -56 92c-30 30 -72 53 -124 66c-10 3 -20 5 -31 7l-142 -142c4 -22 10 -44 17 -63c14 -37 32 -68 56 -92zM399 1c2 19 5 60 0 107c-1 8 -2 16 -3 23l-127 -127c25 -3 51 -5 78 -5c22 0 41 1 52 2zM259 130
+l-28 -29l-12 12l29 28l-23 23l-28 -29l-12 12l29 28l-23 23l-28 -29l-12 12l29 28l-23 23l-28 -29l-12 12l29 28l-22 23l-29 -29l-11 12l67 67l12 -11l-29 -29l23 -22l28 29l12 -12l-29 -28l23 -23l28 29l12 -12l-29 -28l23 -23l28 29l12 -12l-29 -28l22 -23l29 29l12 -12
+l-29 -28l22 -23l29 29l11 -12l-67 -67l-12 11l29 29z" />
+    <glyph glyph-name="ion-ios-americanfootball" unicode="&#xf3cc;" horiz-adv-x="416" 
+d="M331 315c112 -112 81 -327 81 -327s-26 -4 -65 -4c-73 0 -189 12 -262 85c-112 112 -81 327 -81 327s26 4 65 4c73 0 189 -12 262 -85zM20 253l3 -18l142 142l-18 3zM219 113l12 -12l28 29l23 -22l-29 -29l12 -11l67 67l-11 12l-29 -29l-22 23l29 28l-12 12l-28 -29
+l-23 23l29 28l-12 12l-28 -29l-23 23l29 28l-12 12l-28 -29l-23 23l29 28l-12 12l-28 -29l-23 22l29 29l-12 11l-67 -67l11 -12l29 29l22 -23l-29 -28l12 -12l28 29l23 -23l-29 -28l12 -12l28 29l23 -23l-29 -28l12 -12l28 29l23 -23zM269 4l127 127l-3 18l-142 -142z" />
+    <glyph glyph-name="ion-ios-analytics-outline" unicode="&#xf3cd;" 
+d="M224 400c-28 0 -55 -5 -81 -16c-25 -10 -47 -26 -66 -45s-35 -41 -45 -66c-11 -26 -16 -53 -16 -81s5 -55 16 -81c10 -25 26 -47 45 -66s41 -35 66 -45c26 -11 53 -16 81 -16s55 5 81 16c25 10 47 26 66 45s35 41 45 66c11 26 16 53 16 81s-5 55 -16 81
+c-10 25 -26 47 -45 66s-41 35 -66 45c-26 11 -53 16 -81 16zM224 416v0c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM76 128c-25 0 -41 18 -42 19c-3 3 -2 9 1 12s8 2 11 -1c1 -1 15 -17 36 -14c12 2 27 26 38 42c4 6 9 12 12 16
+c17 21 34 23 45 21c24 -3 45 -28 54 -50c7 -18 18 -28 32 -29c15 -1 31 11 43 30c1 2 3 4 4 7c9 17 24 43 52 43c31 0 52 -35 53 -36c2 -4 1 -9 -3 -11s-9 -1 -11 3c0 0 -5 8 -12 15c-6 6 -16 13 -27 13c-18 0 -29 -19 -38 -35c-1 -3 -3 -5 -4 -7c-15 -25 -36 -40 -58 -38
+c-20 1 -36 15 -46 39s-28 39 -41 41c-11 1 -21 -4 -31 -16c-3 -4 -6 -9 -10 -15c-14 -20 -31 -45 -50 -48c-3 0 -5 -1 -8 -1z" />
+    <glyph glyph-name="ion-ios-analytics" unicode="&#xf3ce;" 
+d="M224 416c124 0 224 -100 224 -224c0 -13 -1 -25 -3 -37c-1 -6 -2 -12 -3 -17c-24 -98 -113 -170 -218 -170c-122 0 -221 98 -224 219v5c0 9 1 17 2 26c13 111 107 198 222 198zM431 168c1 8 1 16 1 24c0 28 -5 55 -16 81c-10 25 -26 47 -45 66s-41 35 -66 45
+c-26 11 -53 16 -81 16s-55 -5 -81 -16c-25 -10 -47 -26 -66 -45s-35 -41 -45 -66c-11 -26 -16 -53 -16 -81v0c14 -21 29 -34 29 -34h1v-1c1 -1 15 -16 36 -13c12 2 27 26 38 42c4 6 9 12 12 16c17 21 34 23 45 21c24 -3 45 -27 54 -50c7 -18 18 -28 32 -29c15 -1 31 9 43 29
+c1 2 3 4 4 7c9 17 24 44 52 44c31 0 52 -35 53 -36c3 -4 9 -12 16 -20z" />
+    <glyph glyph-name="ion-ios-arrow-back" unicode="&#xf3cf;" horiz-adv-x="192" 
+d="M192 320l-127 -128l127 -128l-32 -32l-160 160v0v0l160 160z" />
+    <glyph glyph-name="ion-ios-arrow-down" unicode="&#xf3d0;" horiz-adv-x="320" 
+d="M301 288l19 -21l-160 -171l-160 171l19 21l141 -150z" />
+    <glyph glyph-name="ion-ios-arrow-forward" unicode="&#xf3d1;" horiz-adv-x="192" 
+d="M0 320l32 32l160 -160v0v0l-160 -160l-32 32l127 128z" />
+    <glyph glyph-name="ion-ios-arrow-left" unicode="&#xf3d2;" horiz-adv-x="192" 
+d="M192 333l-150 -141l150 -141l-21 -19l-171 160l171 160z" />
+    <glyph glyph-name="ion-ios-arrow-right" unicode="&#xf3d3;" horiz-adv-x="192" 
+d="M0 333l21 19l171 -160l-171 -160l-21 19l150 141z" />
+    <glyph glyph-name="ion-ios-arrow-thin-down" unicode="&#xf3d4;" horiz-adv-x="192" 
+d="M190 126c2 -2 2 -4 2 -6s0 -4 -2 -6c0 0 -87 -79 -88 -80s-3 -2 -6 -2s-5 1 -6 2s-88 80 -88 80c-3 3 -3 9 0 12s9 3 12 0l74 -67v285c0 4 4 8 8 8s8 -4 8 -8v-285l74 67c3 3 9 3 12 0z" />
+    <glyph glyph-name="ion-ios-arrow-thin-left" unicode="&#xf3d5;" horiz-adv-x="320" 
+d="M94 98c-2 -2 -4 -2 -6 -2s-4 0 -6 2c0 0 -79 87 -80 88s-2 3 -2 6s1 5 2 6s80 88 80 88c3 3 9 3 12 0s3 -9 0 -12l-67 -74h285c4 0 8 -4 8 -8s-4 -8 -8 -8h-285l67 -74c3 -3 3 -9 0 -12z" />
+    <glyph glyph-name="ion-ios-arrow-thin-right" unicode="&#xf3d6;" horiz-adv-x="320" 
+d="M226 98c-3 3 -3 9 0 12l67 74h-285c-4 0 -8 4 -8 8s4 8 8 8h285l-67 74c-3 3 -3 9 0 12s9 3 12 0c0 0 79 -87 80 -88s2 -3 2 -6s-1 -5 -2 -6s-80 -88 -80 -88c-2 -2 -4 -2 -6 -2s-4 0 -6 2z" />
+    <glyph glyph-name="ion-ios-arrow-thin-up" unicode="&#xf3d7;" horiz-adv-x="192" 
+d="M190 258c-3 -3 -9 -3 -12 0l-74 67v-285c0 -4 -4 -8 -8 -8s-8 4 -8 8v285l-74 -67c-3 -3 -9 -3 -12 0s-3 9 0 12c0 0 87 79 88 80s3 2 6 2s5 -1 6 -2s88 -80 88 -80c2 -2 2 -4 2 -6s0 -4 -2 -6z" />
+    <glyph glyph-name="ion-ios-arrow-up" unicode="&#xf3d8;" horiz-adv-x="320" 
+d="M301 96l-141 150l-141 -150l-19 21l160 171l160 -171z" />
+    <glyph glyph-name="ion-ios-at-outline" unicode="&#xf3d9;" horiz-adv-x="255" 
+d="M236 127v1h19l-3 -6c-3 -6 -13 -19 -22 -27s-18 -14 -28 -20s-21 -10 -32 -13s-23 -5 -34 -5c-16 0 -33 3 -49 8s-30 13 -43 24c-12 11 -26 29 -34 46c-7 16 -10 33 -10 58c0 18 4 38 11 55c7 16 17 30 29 42s27 21 43 28c15 6 33 9 53 9c16 0 32 -3 46 -8
+c15 -5 28 -12 39 -22s17 -21 24 -35c6 -13 8 -26 8 -44c0 -14 -2 -28 -7 -40s-9 -20 -17 -30c-8 -9 -13 -15 -23 -21c-11 -6 -20 -9 -29 -9c-8 0 -15 2 -20 7c-3 2 -5 6 -6 9c-6 -6 -11 -10 -17 -12c-10 -3 -18 -4 -26 -4s-15 1 -21 4s-12 7 -17 12s-8 11 -11 18
+s-5 14 -5 22c0 12 3 24 7 36v2c4 11 5 16 13 26c8 11 17 19 28 26s24 11 38 11c12 0 21 -3 31 -9c7 -4 12 -10 16 -16l6 17h18l-38 -102c-2 -5 -4 -10 -5 -14s-1 -7 -1 -10c0 -2 1 -4 3 -5s4 -2 8 -2c6 0 11 2 20 7c8 4 12 9 19 17c6 8 10 14 14 25s6 23 6 35
+c0 15 -2 25 -7 36c-6 13 -10 22 -19 30s-20 15 -33 20s-27 7 -42 7c-19 0 -35 -3 -48 -9c-15 -6 -27 -14 -37 -24c-11 -10 -19 -23 -25 -37c-6 -15 -10 -32 -10 -48c0 -22 2 -36 8 -49c6 -15 17 -31 28 -41s24 -18 38 -23s30 -7 46 -7c10 0 20 1 30 4s18 6 27 11
+s17 11 24 18s14 13 19 21zM147 154c4 5 8 12 11 20l21 57c-2 5 -4 10 -7 13c-3 4 -6 6 -10 8c-1 0 -1 1 -2 1c-3 2 -5 3 -9 4c-5 1 -9 2 -13 2c-10 0 -19 -3 -28 -9s-17 -13 -23 -22c-5 -8 -7 -11 -10 -20c0 -1 -1 -3 -1 -4c-4 -11 -5 -20 -5 -30c0 -6 1 -11 3 -16
+s5 -9 8 -13s7 -6 12 -8s9 -3 15 -3c4 0 9 1 14 2c4 1 8 2 12 5s8 7 12 13z" />
+    <glyph glyph-name="ion-ios-at" unicode="&#xf3da;" horiz-adv-x="256" 
+d="M228 128v0h28c-1 -1 -2 -4 -3 -6c-4 -6 -14 -19 -23 -27s-18 -14 -28 -20s-20 -10 -32 -13c-11 -3 -23 -5 -34 -5c-16 0 -33 3 -49 8s-30 13 -43 24c-12 10 -26 28 -34 46c-7 16 -10 33 -10 58c0 19 4 39 11 55s17 30 29 42s28 21 44 28c15 6 32 9 52 9c16 0 31 -3 46 -8
+s28 -12 39 -22s18 -22 25 -36c6 -14 8 -26 8 -44c0 -14 -2 -28 -7 -40c-4 -11 -9 -20 -17 -30c-7 -9 -14 -16 -24 -22c-12 -6 -21 -9 -30 -9s-16 2 -22 8c-2 1 -3 3 -4 5c-4 -4 -9 -6 -14 -8c-10 -3 -18 -5 -27 -5c-8 0 -16 2 -23 5s-12 7 -17 12s-9 12 -12 19s-4 14 -4 22
+c0 12 2 25 6 37l1 1c4 10 5 17 13 27c8 11 17 20 28 27c12 7 24 10 38 10c12 0 22 -3 33 -9c5 -3 8 -6 12 -10l5 12h25l-39 -104c-2 -5 -3 -9 -4 -13c-1 -3 -1 -7 -1 -9s0 -3 1 -3c0 0 1 -1 5 -1c5 0 11 2 19 7c7 4 10 8 16 16s9 13 13 23s6 20 6 32c0 14 -1 24 -6 34
+c-5 12 -10 21 -18 28c-9 8 -19 14 -31 18s-26 7 -40 7c-18 0 -32 -3 -44 -8c-14 -6 -25 -13 -35 -23s-18 -22 -24 -35c-6 -14 -9 -30 -9 -45c0 -21 3 -34 8 -46c6 -14 16 -30 26 -39s22 -16 35 -21c14 -5 28 -7 43 -7c10 0 20 2 29 4s18 6 26 11s28 20 38 33zM144 157
+c4 5 7 12 10 19l20 55c-1 4 -3 7 -5 9c-3 3 -6 6 -9 8h-1h-1v1c-3 2 -5 2 -8 3c-4 1 -8 1 -12 1c-9 0 -17 -2 -25 -7c-10 -6 -17 -14 -21 -21c-5 -8 -6 -11 -9 -19c0 -1 -1 -2 -1 -3c-3 -10 -6 -19 -6 -28c0 -5 1 -10 3 -14s4 -8 7 -11s7 -6 11 -8s8 -2 13 -2c4 0 8 0 12 1
+v0c4 1 7 2 11 5c3 2 7 5 11 11z" />
+    <glyph glyph-name="ion-ios-barcode-outline" unicode="&#xf3db;" horiz-adv-x="416" 
+d="M0 64v256h80v-16h-64v-224h64v-16h-80zM336 320h80v-256h-80v16h64v224h-64v16zM64 128v128h16v-128h-16zM336 128v128h16v-128h-16zM272 96v192h16v-192h-16zM128 96v192h16v-192h-16zM199 112v160h16v-160h-16z" />
+    <glyph glyph-name="ion-ios-barcode" unicode="&#xf3dc;" horiz-adv-x="416" 
+d="M0 320h416v-256h-416v256zM80 128v128h-16v-128h16zM144 96v192h-16v-192h16zM215 112v160h-16v-160h16zM288 96v192h-16v-192h16zM352 128v128h-16v-128h16z" />
+    <glyph glyph-name="ion-ios-baseball-outline" unicode="&#xf3dd;" horiz-adv-x="416" 
+d="M415 169v-1v0c-11 -97 -90 -174 -187 -183v0h-2c-2 0 -3 -1 -5 -1h-1h-3h-1h-8c-115 0 -208 93 -208 208v8v1v3v1c0 2 1 3 1 5v2v0c9 97 86 176 183 187v0v0c8 1 16 1 24 1c115 0 208 -93 208 -208c0 -7 0 -14 -1 -20v0v-3zM399 192c0 105 -86 191 -191 191
+c-3 0 -5 -1 -8 -1c0 -11 2 -21 4 -31l20 6l5 -15l-21 -7c2 -7 4 -14 7 -21c2 -5 5 -11 8 -16l17 12l9 -13l-19 -13c7 -12 16 -23 26 -33l14 15l12 -12l-15 -15c11 -10 22 -18 34 -25l12 18l14 -9l-12 -17c5 -2 10 -5 15 -7c7 -3 14 -5 22 -7l7 20l15 -5l-6 -19
+c10 -2 20 -4 30 -4c0 3 1 5 1 8zM17 192c0 -105 86 -191 191 -191h4c-1 9 -1 17 -3 26l-22 -7l-5 16l23 7c-2 8 -5 16 -8 24c-2 5 -4 9 -6 14l-20 -13l-9 13l21 14c-7 12 -16 24 -26 35l-17 -17l-11 11l17 17c-10 10 -22 18 -34 25l-14 -21l-14 9l14 20c-5 2 -10 5 -15 7
+c-7 3 -15 6 -23 8l-8 -24l-15 5l7 23c-9 2 -18 2 -27 3v-4zM228 2c88 9 158 78 169 166c-11 1 -23 3 -34 5l-9 -27l-15 5l8 25c-14 4 -28 10 -41 17l-15 -23l-13 9l14 21c-13 8 -26 17 -37 28l-19 -19l-11 11l19 19c-10 11 -19 23 -27 36l-21 -14l-9 13l22 15
+c-7 13 -12 27 -16 41l-25 -8l-5 16l26 8c-2 12 -4 23 -5 35c-88 -11 -157 -81 -166 -169c10 -1 21 -2 31 -4l8 23l15 -5l-7 -22c14 -4 28 -9 42 -16l13 19l14 -9l-13 -18c13 -8 25 -17 36 -28l17 17l11 -11l-17 -17c11 -12 20 -24 28 -37l19 13l9 -14l-20 -13
+c7 -14 12 -28 16 -42l23 7l5 -15l-24 -8c2 -10 3 -20 4 -30z" />
+    <glyph glyph-name="ion-ios-baseball" unicode="&#xf3de;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208c0 -8 0 -16 -1 -24v0v0c-12 -104 -100 -184 -207 -184c-115 0 -208 93 -208 208c0 107 80 195 184 207v0v0c8 1 16 1 24 1zM212 1c5 0 11 0 16 1c-1 10 -2 20 -4 30l24 8l-5 15l-23 -7c-4 14 -9 28 -16 42l20 13l-9 14l-19 -13
+c-8 13 -17 25 -28 37l17 17l-11 11l-17 -17c-11 11 -23 20 -36 28l13 18l-14 9l-13 -19c-14 7 -28 12 -42 16l7 22l-15 5l-8 -23c-10 2 -21 3 -31 4c-1 -5 -1 -11 -1 -16c9 -1 18 -1 27 -3l-7 -23l15 -5l8 24c8 -2 16 -5 23 -8c5 -2 10 -5 15 -7l-14 -20l14 -9l14 21
+c12 -7 24 -15 34 -25l-17 -17l11 -11l17 17c10 -11 19 -23 26 -35l-21 -14l9 -13l20 13c2 -5 4 -9 6 -14c3 -8 6 -16 8 -24l-23 -7l5 -16l22 7c2 -8 2 -17 3 -26zM363 173c11 -2 23 -4 34 -5c1 5 1 11 1 16c-10 1 -20 2 -30 4l6 19l-15 5l-7 -20c-8 2 -15 4 -22 7
+c-5 2 -10 5 -15 7l12 17l-14 9l-12 -18c-12 7 -23 15 -34 25l15 15l-12 12l-15 -15c-10 10 -18 21 -25 33l19 13l-9 13l-17 -12c-3 5 -6 11 -8 16c-3 7 -5 14 -7 21l21 7l-5 15l-20 -6c-2 10 -3 20 -4 31c-5 0 -11 0 -16 -1c1 -12 3 -23 5 -35l-26 -8l5 -16l25 8
+c4 -14 9 -28 16 -41l-22 -15l9 -13l21 14c8 -13 17 -25 27 -36l-19 -19l11 -11l19 19c11 -11 24 -20 37 -28l-14 -21l13 -9l15 23c13 -7 27 -13 41 -17l-8 -25l15 -5z" />
+    <glyph glyph-name="ion-ios-basketball-outline" unicode="&#xf3df;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM399 192c0 55 -24 105 -62 140c-14 -34 -31 -65 -52 -95c15 -12 31 -21 49 -29c21 -9 43 -14 65 -16v0zM325 343c-32 25 -73 40 -117 40v0c2 -22 6 -44 15 -65
+c10 -25 26 -47 45 -66c2 -1 2 -3 4 -4c20 29 38 60 52 93c0 1 1 1 1 2zM192 382c-51 -4 -96 -29 -128 -65c64 -28 121 -69 169 -119c11 12 21 24 30 37c-40 37 -67 89 -71 147zM233 174c-15 -16 -31 -30 -48 -44c28 -35 45 -79 47 -127c33 4 63 17 88 35
+c-22 50 -51 95 -87 136zM214 178l8 8l-10 10c-46 46 -99 82 -158 108c-18 -25 -31 -55 -35 -88c62 -3 116 -31 155 -74c14 11 27 23 40 36zM18 200c0 -3 -1 -5 -1 -8c0 -45 16 -87 43 -120c36 16 71 36 102 60l-7 7c-19 19 -41 35 -66 45c-22 9 -46 15 -71 16zM71 59
+c35 -36 83 -58 137 -58c3 0 5 1 8 1c-1 25 -6 48 -16 71c-7 17 -17 33 -28 47c-31 -24 -65 -45 -101 -61zM333 48c37 32 61 77 65 128c-46 3 -89 21 -123 48c-10 -13 -20 -26 -31 -38c36 -41 67 -87 89 -138z" />
+    <glyph glyph-name="ion-ios-basketball" unicode="&#xf3e0;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM333 48c-22 51 -53 97 -89 138c11 12 21 25 31 38c34 -27 77 -45 123 -48c0 5 1 11 1 16c-22 2 -44 7 -65 16c-18 8 -34 17 -49 29c21 30 38 61 52 95c-4 4 -8 8 -12 11
+c0 -1 -1 -1 -1 -2c-14 -33 -32 -64 -52 -93c-2 1 -2 2 -4 4c-19 19 -35 41 -45 66c-9 21 -13 43 -15 65c-5 0 -11 -1 -16 -1c4 -58 31 -110 71 -147c-9 -13 -19 -25 -30 -37c-48 50 -105 91 -169 119c-4 -4 -7 -9 -10 -13c59 -26 112 -62 158 -108l10 -10l-8 -8
+c-13 -13 -26 -25 -40 -36c-39 43 -93 71 -155 74c-1 -5 -1 -11 -1 -16c25 -1 49 -7 71 -16c25 -10 47 -26 66 -45l7 -7c-31 -24 -66 -44 -102 -60c4 -4 7 -9 11 -13c36 16 70 37 101 61c11 -14 21 -30 28 -47c10 -23 15 -46 16 -71c5 0 11 0 16 1c-2 48 -19 92 -47 127
+c17 14 33 28 48 44c36 -41 65 -86 87 -136c4 3 9 6 13 10z" />
+    <glyph glyph-name="ion-ios-bell-outline" unicode="&#xf3e1;" horiz-adv-x="384" 
+d="M318 222c0 -114 28 -126 66 -158h-384c38 32 66 44 66 158c0 98 53 130 102 138v2c0 12 11 22 24 22s24 -10 24 -22v-2c49 -7 102 -40 102 -138zM43 80h298c-25 25 -40 58 -40 142c0 46 -13 80 -37 101c-23 19 -52 23 -72 23s-49 -4 -72 -23c-25 -21 -37 -55 -37 -101
+c0 -51 -5 -85 -17 -110c-6 -13 -14 -23 -23 -32zM192 0c-27 0 -49 20 -52 43h104c-3 -23 -25 -43 -52 -43z" />
+    <glyph glyph-name="ion-ios-bell" unicode="&#xf3e2;" horiz-adv-x="384" 
+d="M318 222c0 -114 28 -126 66 -158h-384c38 32 66 44 66 158c0 98 53 130 102 138v2c0 12 11 22 24 22s24 -10 24 -22v-2c49 -7 102 -40 102 -138zM192 0c-27 0 -49 20 -52 43h104c-3 -23 -25 -43 -52 -43z" />
+    <glyph glyph-name="ion-ios-body-outline" unicode="&#xf3e3;" horiz-adv-x="384" 
+d="M192 400c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM192 416v0c27 0 48 -21 48 -48s-21 -48 -48 -48s-48 21 -48 48s21 48 48 48zM360 304c13 0 24 -11 24 -24s-11 -24 -24 -24h-100c-5 0 -14 -5 -18 -15c-5 -12 -2 -33 1 -51l4 -21v-1v0l32 -172
+c2 -13 -6 -26 -19 -28h-5c-11 0 -22 8 -24 20l-21 120v0s-5 31 -17 31h-2c-12 0 -19 -31 -19 -31v0l-21 -120c-2 -12 -11 -20 -22 -20h-5c-13 2 -21 15 -19 28l32 172v1l4 21c3 18 6 39 1 51c-4 10 -12 15 -18 15h-100c-13 0 -24 11 -24 24s11 24 24 24h336zM24 272
+c-4 0 -8 4 -8 8s4 8 8 8h336c4 0 8 -4 8 -8s-4 -8 -8 -8h-102c-16 0 -26 -15 -30 -24c-5 -13 -6 -32 -1 -61v0v0l3 -19l1 -3l32 -172c0 -3 0 -5 -1 -6s-2 -2 -5 -3h-2c-4 0 -7 2 -8 6l-21 120v0c0 2 -2 10 -5 19c-2 6 -5 11 -8 15c-7 9 -14 11 -20 11h-2
+c-5 0 -13 -2 -20 -11c-3 -4 -6 -9 -8 -15c-4 -9 -6 -17 -6 -18v-1l-21 -120c-1 -4 -3 -6 -7 -6h-2c-3 0 -4 2 -5 3s-2 3 -1 6l32 172v0v1l4 21v0v0c5 29 5 48 0 61c-4 9 -14 24 -32 24z" />
+    <glyph glyph-name="ion-ios-body" unicode="&#xf3e4;" horiz-adv-x="384" 
+d="M144 368c0 32 16 48 48 48s48 -16 48 -48s-16 -48 -48 -48s-48 16 -48 48zM360 304c7 0 12 -2 17 -7s7 -10 7 -17s-2 -12 -7 -17s-10 -7 -17 -7h-98c-8 -2 -15 -6 -18 -14c-4 -9 -3 -27 1 -52l4 -21v-1v0l30 -172c1 -7 0 -13 -4 -18s-8 -9 -15 -10s-13 0 -18 4
+s-9 9 -10 16l-21 120v-1l-2 9c-1 5 -3 11 -6 16s-6 8 -10 8h-2c-8 0 -14 -11 -18 -33v1l-21 -120c-1 -7 -5 -12 -10 -16s-11 -5 -18 -4s-11 5 -15 10s-5 11 -4 18l30 172v0v1l4 21c4 25 5 43 1 52c-3 8 -10 12 -18 14h-98c-7 0 -12 2 -17 7s-7 10 -7 17s2 12 7 17s10 7 17 7
+h336z" />
+    <glyph glyph-name="ion-ios-bolt-outline" unicode="&#xf3e5;" horiz-adv-x="226" 
+d="M131 316l-100 -140h65h19l-3 -19l-17 -89l100 140h-65h-19l3 19zM160 384v0l-30 -160h96l-160 -224l30 160h-96z" />
+    <glyph glyph-name="ion-ios-bolt" unicode="&#xf3e6;" horiz-adv-x="226" 
+d="M160 384v0l-30 -160h96l-160 -224l30 160h-96z" />
+    <glyph glyph-name="ion-ios-book-outline" unicode="&#xf3e7;" horiz-adv-x="384" 
+d="M284 384c55 0 100 -26 100 -79v-1v-4v-261v-17h-6h-11h-5c-17 30 -44 42 -78 42c-40 0 -74 -28 -82 -64h-20c-8 36 -42 64 -82 64c-34 0 -65 -16 -78 -42h-5h-11h-6v9v264v9v1c0 53 45 79 100 79c41 0 78 -14 92 -44c12 30 51 44 92 44zM184 37v254v13v2
+c-1 43 -39 62 -84 62c-44 0 -81 -19 -84 -61v-1v0v-262h1c19 26 48 36 83 36s66 -17 84 -43zM368 300v14v1c-3 42 -40 53 -84 53c-46 0 -84 -20 -84 -64v-1v-266c18 26 49 43 84 43s66 -10 84 -36v256z" />
+    <glyph glyph-name="ion-ios-book" unicode="&#xf3e8;" horiz-adv-x="384" 
+d="M100 384c35 0 67 -10 84 -31v-353h-2c-8 36 -42 64 -82 64c-34 0 -65 -16 -78 -42h-5h-11h-6v9v264v9v1c0 53 45 79 100 79zM284 384c55 0 100 -26 100 -79v-1v-4v-261v-17h-6h-11h-5c-17 30 -44 42 -78 42c-40 0 -74 -28 -82 -64h-2v353c17 21 50 31 84 31z" />
+    <glyph glyph-name="ion-ios-bookmarks-outline" unicode="&#xf3e9;" horiz-adv-x="418" 
+d="M385 384c19 0 33 -13 33 -32v-286c0 -19 -14 -34 -33 -34h-143s-25 -4 -25 -19v-13h-8h-8v13c0 15 -11 19 -25 19h-143c-19 0 -33 15 -33 34v286c0 19 14 32 33 32h150c10 0 20 -5 26 -12v0v0c6 7 16 12 26 12h150zM201 37v309c0 9 -12 22 -25 22h-143
+c-9 0 -16 -7 -16 -16v-286c0 -9 7 -18 16 -18h144c10 0 19 -3 24 -11zM273 368v-100l23 14l9 6l9 -6l23 -14v100h-64zM401 66v286c0 9 -7 16 -16 16h-32v-131l-48 32l-48 -32v131h-15c-13 0 -25 -13 -25 -22v-309c5 9 14 11 24 11h144c9 0 16 9 16 18z" />
+    <glyph glyph-name="ion-ios-bookmarks" unicode="&#xf3ea;" horiz-adv-x="418" 
+d="M296 283l-23 -15v116h64v-116l-23 15l-9 6zM385 384c19 0 33 -13 33 -32v-286c0 -19 -14 -34 -33 -34h-143s-25 -4 -25 -19v-13h-8h-8v13c0 15 -11 19 -25 19h-143c-19 0 -33 15 -33 34v286c0 19 14 32 33 32h150s18 -8 18 -15v-329l8 -6l8 6v329s10 15 18 15h22v-146
+l48 32l48 -32v146h32z" />
+    <glyph glyph-name="ion-ios-box-outline" unicode="&#xf3eb;" horiz-adv-x="320" 
+d="M192 208h-1h-63c-9 0 -16 -7 -16 -16s7 -16 16 -16h64c9 0 16 7 16 16s-7 16 -16 16zM192 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32h-64c-18 0 -32 14 -32 32s14 32 32 32h64zM320 336v-80h-16v-208h-288v208h-16v80h320zM288 64v192h-256v-192h256zM304 272v48h-288
+v-48h288z" />
+    <glyph glyph-name="ion-ios-box" unicode="&#xf3ec;" horiz-adv-x="320" 
+d="M16 48v192h288v-192h-288zM128 208c-9 0 -16 -7 -16 -16s7 -16 16 -16h64c9 0 16 7 16 16s-7 16 -16 16h-64zM0 336h320v-80h-16h-288h-16v80z" />
+    <glyph glyph-name="ion-ios-briefcase-outline" unicode="&#xf3ed;" horiz-adv-x="416" 
+d="M368 320h48v-320h-416v320h48v16h32v-16h48v30v2c0 18 10 32 29 32h99c19 0 32 -14 32 -32v-2v-30h48v16h32v-16zM144 320v0h128v0v30c0 10 -7 18 -17 18h-97c-11 0 -14 -8 -14 -18v-30zM400 16v224h-384v-224h384zM400 256v48h-32v-16h-32v16h-256v-16h-32v16h-32v-48
+h384z" />
+    <glyph glyph-name="ion-ios-briefcase" unicode="&#xf3ee;" horiz-adv-x="416" 
+d="M48 320v16h32v-16h-32zM0 0v240h416v-240h-416zM336 320v16h32v-16h-32zM368 320h48v-64h-416v64h48v-32h32v32h48v30v2c0 18 10 32 29 32h99c19 0 32 -14 32 -32v-2v-30h48v-32h32v32zM272 320v30c0 10 -7 18 -17 18h-97c-11 0 -14 -8 -14 -18v-30v0h128v0z" />
+    <glyph glyph-name="ion-ios-browsers-outline" unicode="&#xf3ef;" horiz-adv-x="384" 
+d="M0 304h304v-304h-304v304zM288 16v272h-272v-272h272zM384 384v-304h-64v16h48v272h-272v-48h-16v64h304z" />
+    <glyph glyph-name="ion-ios-browsers" unicode="&#xf3f0;" horiz-adv-x="384" 
+d="M0 304h304v-304h-304v304zM80 384h304v-304h-64v240h-240v64z" />
+    <glyph glyph-name="ion-ios-calculator-outline" unicode="&#xf3f1;" horiz-adv-x="288" 
+d="M32 288v64h224v-64h-224zM48 336v-32h192v32h-192zM256 384c18 0 32 -14 32 -32v-320c0 -18 -14 -32 -32 -32h-224c-18 0 -32 14 -32 32v320c0 18 14 32 32 32h224zM272 32v320c0 9 -7 16 -16 16h-224c-9 0 -16 -7 -16 -16v-320c0 -9 7 -16 16 -16h224c9 0 16 7 16 16z
+M48 208h32h16v-16h-64v64h16v-16v-32zM48 128h32h16v-16h-64v64h16v-16v-32zM48 48h32h16v-16h-64v64h16v-16v-32zM128 208h32h16v-16h-64v64h16v-16v-32zM208 208h32h16v-16h-64v64h16v-16v-32zM128 128h32h16v-16h-64v64h16v-16v-32zM128 48h32h16v-16h-64v64h16v-16v-32z
+M208 48h32h16v-16h-64v144h16v-96v-32z" />
+    <glyph glyph-name="ion-ios-calculator" unicode="&#xf3f2;" horiz-adv-x="288" 
+d="M256 384c18 0 32 -14 32 -32v-320c0 -18 -14 -32 -32 -32h-224c-18 0 -32 14 -32 32v320c0 18 14 32 32 32h224zM248 168h-48v-128h48v128zM248 248h-48v-48h48v48zM168 88h-48v-48h48v48zM168 168h-48v-48h48v48zM168 248h-48v-48h48v48zM88 88h-48v-48h48v48zM88 168
+h-48v-48h48v48zM88 248h-48v-48h48v48zM40 296h208v48h-208v-48z" />
+    <glyph glyph-name="ion-ios-calendar-outline" unicode="&#xf3f3;" horiz-adv-x="384" 
+d="M16 336v-64h352v64zM288 352h96v-352h-384v352h96v32h16v-32h160v32h16v-32zM368 16v240h-352v-240h352zM368 272v64h-80v-32h-16v32h-160v-32h-16v32h-80v-64h352z" />
+    <glyph glyph-name="ion-ios-calendar" unicode="&#xf3f4;" horiz-adv-x="384" 
+d="M0 0v256h384v-256h-384zM384 352v-80h-384v80h96v-48h16v48h160v-48h16v48h96zM96 352v32h16v-32h-16zM272 352v32h16v-32h-16z" />
+    <glyph glyph-name="ion-ios-camera-outline" unicode="&#xf3f5;" horiz-adv-x="384" 
+d="M354 288c18 0 30 -13 30 -31v-176c0 -18 -12 -33 -30 -33h-320c-18 0 -34 15 -34 33v176c0 18 16 31 34 31h13v16h34v-16h13c32 36 43 48 55 48h88c12 0 23 -12 55 -48h62zM368 81v176c0 9 -5 15 -14 15h-62h-7l-5 3c-3 4 -7 8 -10 11c-12 13 -20 24 -26 30
+c-5 5 -7 4 -7 4h-88s-2 0 -7 -4c-6 -5 -14 -14 -25 -27c-3 -4 -7 -10 -11 -14l-5 -3h-7h-60c-9 0 -18 -7 -18 -15v-176c0 -9 9 -17 18 -17h320c8 0 14 8 14 17zM192 258c47 0 86 -38 86 -85s-39 -85 -86 -85s-86 38 -86 85s39 85 86 85zM192 104c38 0 70 31 70 69
+s-32 69 -70 69s-70 -31 -70 -69s32 -69 70 -69zM288 239v17h17v-17h-17zM160 173c0 21 11 32 32 32s32 -11 32 -32s-11 -32 -32 -32s-32 11 -32 32z" />
+    <glyph glyph-name="ion-ios-camera" unicode="&#xf3f6;" horiz-adv-x="384" 
+d="M354 288c18 0 30 -13 30 -31v-176c0 -18 -12 -33 -30 -33h-320c-18 0 -34 15 -34 33v176c0 18 16 31 34 31h13v16h34v-16h13c32 36 43 48 55 48h88c12 0 23 -12 55 -48h62zM192 88c47 0 86 38 86 85s-39 85 -86 85s-86 -38 -86 -85s39 -85 86 -85zM305 239v17h-17v-17h17
+zM192 242c38 0 70 -31 70 -69s-32 -69 -70 -69s-70 31 -70 69s32 69 70 69zM192 141c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" />
+    <glyph glyph-name="ion-ios-cart-outline" unicode="&#xf3f7;" horiz-adv-x="384" 
+d="M96 48c13 0 24 -11 24 -24s-11 -24 -24 -24s-24 11 -24 24s11 24 24 24zM96 16c4 0 8 4 8 8s-4 8 -8 8s-8 -4 -8 -8s4 -8 8 -8zM320 48c13 0 24 -11 24 -24s-11 -24 -24 -24s-24 11 -24 24s11 24 24 24zM320 16c4 0 8 4 8 8s-4 8 -8 8s-8 -4 -8 -8s4 -8 8 -8zM384 320
+l-16 -128l-271 -48l5 -30c7 -34 21 -34 26 -34h240v-16h-240c-11 0 -21 5 -28 14c-6 8 -11 19 -13 33l-43 234v0c-2 8 -3 12 -7 16c-6 5 -18 7 -37 7v16c23 0 38 -4 47 -11c7 -6 10 -14 12 -21zM355 206l11 99l-304 31l32 -176z" />
+    <glyph glyph-name="ion-ios-cart" unicode="&#xf3f8;" horiz-adv-x="384" 
+d="M96 48c13 0 24 -11 24 -24s-11 -24 -24 -24s-24 11 -24 24s11 24 24 24zM320 48c13 0 24 -11 24 -24s-11 -24 -24 -24s-24 11 -24 24s11 24 24 24zM384 320l-16 -128l-271 -48l5 -30c7 -34 21 -34 26 -34h240v-16h-240c-11 0 -21 5 -28 14c-6 8 -11 19 -13 33l-43 234v0
+c-2 8 -3 12 -7 16c-6 5 -18 7 -37 7v16c23 0 38 -4 47 -11c7 -6 10 -14 12 -21z" />
+    <glyph glyph-name="ion-ios-chatboxes-outline" unicode="&#xf3f9;" horiz-adv-x="416" 
+d="M16 384v-192h96v-16h-112v224h288v-112h-16v96h-256zM128 272h288v-224h-48v-64h-13l-64 64h-163v224zM400 64v192h-256v-192h153l55 -55v55h48z" />
+    <glyph glyph-name="ion-ios-chatboxes" unicode="&#xf3fa;" horiz-adv-x="416" 
+d="M288 400v-112h-176v-112h-112v224h288zM128 272h288v-224h-48v-64h-13l-64 64h-163v224z" />
+    <glyph glyph-name="ion-ios-chatbubble-outline" unicode="&#xf3fb;" horiz-adv-x="384" 
+d="M192 336c-97 0 -176 -62 -176 -138c0 -26 10 -51 27 -73c0 -1 0 -2 1 -3s2 -1 2 -2c4 -6 6 -13 6 -20c0 -3 1 -3 -13 -47l39 17v0c2 1 10 4 11 4h1v0c5 2 10 3 16 3c5 0 9 -1 14 -2l1 -1h2c19 -6 41 -10 70 -10c48 0 92 15 125 40c32 25 50 58 50 94
+c0 76 -79 138 -176 138zM192 352v0c106 0 192 -69 192 -154s-85 -150 -191 -150c-27 0 -52 3 -75 11h-2v0c-3 1 -6 2 -10 2s-9 -1 -12 -2h1h-1c-1 0 -9 -4 -10 -4l-50 -22l-2 -1h-3h-3c-6 1 -8 6 -7 10v0s17 57 17 58c0 4 -1 8 -3 11v0v0v0l1 -1l-4 4c-19 24 -30 53 -30 84
+c0 85 86 154 192 154z" />
+    <glyph glyph-name="ion-ios-chatbubble" unicode="&#xf3fc;" horiz-adv-x="384" 
+d="M192 352v0c106 0 192 -69 192 -154s-85 -150 -191 -150c-27 0 -52 3 -75 11h-2v0c-3 1 -6 2 -10 2s-9 -1 -12 -2h1h-1c-1 0 -9 -4 -10 -4l-50 -22l-2 -1h-3h-3c-6 1 -8 6 -7 10v0s17 57 17 58c0 4 -1 8 -3 11v0v0v0l1 -1l-4 4c-19 24 -30 53 -30 84c0 85 86 154 192 154z
+" />
+    <glyph glyph-name="ion-ios-checkmark-empty" unicode="&#xf3fd;" horiz-adv-x="207" 
+d="M74 118c-2 -2 -6 -4 -9 -4s-7 2 -9 4l-56 56l18 18l47 -47l125 126l17 -18z" />
+    <glyph glyph-name="ion-ios-checkmark-outline" unicode="&#xf3fe;" horiz-adv-x="416" 
+d="M292 271l18 -18l-134 -135c-2 -2 -6 -4 -9 -4s-7 2 -9 4l-56 56l18 18l47 -47zM208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191z" />
+    <glyph glyph-name="ion-ios-checkmark" unicode="&#xf3ff;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM176 118l134 135l-18 18l-125 -126l-47 47l-18 -18l56 -56c2 -2 6 -4 9 -4s7 2 9 4z" />
+    <glyph glyph-name="ion-ios-circle-filled" unicode="&#xf400;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191zM208 352c88 0 160 -72 160 -160s-72 -160 -160 -160s-160 72 -160 160s72 160 160 160z" />
+    <glyph glyph-name="ion-ios-circle-outline" unicode="&#xf401;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191z" />
+    <glyph glyph-name="ion-ios-clock-outline" unicode="&#xf402;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191zM208 192v128h17v-145h-113v17h96z" />
+    <glyph glyph-name="ion-ios-clock" unicode="&#xf403;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM225 175v145h-17v-128h-96v-17h113z" />
+    <glyph glyph-name="ion-ios-close-empty" unicode="&#xf404;" horiz-adv-x="192" 
+d="M180 288l12 -12l-84 -84l84 -84l-12 -12l-84 84l-84 -84l-12 12l84 84l-84 84l12 12l84 -84z" />
+    <glyph glyph-name="ion-ios-close-outline" unicode="&#xf405;" horiz-adv-x="416" 
+d="M355 339c81 -81 81 -213 0 -294s-213 -81 -294 0s-81 213 0 294s213 81 294 0zM343 57c74 74 74 196 0 270s-196 74 -270 0s-74 -196 0 -270s196 -74 270 0zM292 288l12 -12l-84 -84l84 -84l-12 -12l-84 84l-84 -84l-12 12l84 84l-84 84l12 12l84 -84z" />
+    <glyph glyph-name="ion-ios-close" unicode="&#xf406;" horiz-adv-x="416" 
+d="M355 339c81 -81 81 -213 0 -294s-213 -81 -294 0s-81 213 0 294s213 81 294 0zM304 108l-84 84l84 84l-12 12l-84 -84l-84 84l-12 -12l84 -84l-84 -84l12 -12l84 84l84 -84z" />
+    <glyph glyph-name="ion-ios-cloud-download-outline" unicode="&#xf407;" 
+d="M161 67l55 -54v242h16v-242l55 54l12 -12l-75 -73l-74 73zM367 284c45 0 81 -37 81 -82s-37 -82 -82 -82v0h-101v16h97h4c37 0 66 30 66 66s-29 67 -66 67h-15v20c0 55 -46 97 -101 97c-38 0 -73 -22 -90 -56l-6 -14l-14 7c-6 3 -13 5 -20 5c-22 0 -40 -18 -44 -39l-1 -9
+l-9 -3c-30 -10 -50 -36 -50 -67c0 -40 33 -74 74 -74h91v-16h-91c-50 0 -90 40 -90 89c0 39 26 71 61 83c5 28 29 51 59 51c10 0 18 -2 26 -6c19 39 59 65 105 65c64 0 117 -51 117 -115c0 -1 -1 -2 -1 -3z" />
+    <glyph glyph-name="ion-ios-cloud-download" unicode="&#xf408;" 
+d="M216 13v107h16v-107l55 54l12 -12l-75 -73l-74 73l11 12zM367 284c45 0 81 -37 81 -82s-37 -82 -82 -82h-134v135h-16v-135h-35h-21h-70c-50 0 -90 40 -90 89c0 39 26 71 61 83c5 28 29 51 59 51c10 0 18 -2 26 -6c19 39 59 65 105 65c64 0 117 -51 117 -115
+c0 -1 -1 -2 -1 -3z" />
+    <glyph glyph-name="ion-ios-cloud-outline" unicode="&#xf409;" 
+d="M367 215c45 0 81 -37 81 -83c0 -45 -37 -84 -82 -84h-276c-50 0 -90 42 -90 92c0 40 26 71 61 83c5 28 29 52 59 52c10 0 18 -2 26 -6c19 39 59 67 105 67c64 0 117 -53 117 -117c0 -1 -1 -3 -1 -4zM366 64c37 0 66 32 66 69s-29 67 -66 67h-15v21c0 56 -46 99 -101 99
+c-38 0 -73 -23 -90 -58l-6 -14l-14 7c-6 3 -13 5 -20 5c-22 0 -40 -17 -44 -39l-1 -9l-9 -3c-30 -10 -50 -37 -50 -69c0 -41 33 -76 74 -76h272h4z" />
+    <glyph glyph-name="ion-ios-cloud-upload-outline" unicode="&#xf40a;" 
+d="M161 188l-11 11l74 75l75 -75l-12 -11l-55 54v-242h-16v242zM367 264c45 0 81 -39 81 -85s-37 -83 -82 -83v0h-101v16h97h4c37 0 66 30 66 67s-29 70 -66 70l-15 1v20c0 56 -46 99 -101 99c-38 0 -73 -23 -90 -58l-6 -13l-14 6c-6 3 -13 5 -20 5c-22 0 -40 -17 -44 -39
+l-1 -9l-9 -3c-30 -10 -50 -39 -50 -71c0 -41 33 -75 74 -75h91v-16h-91c-50 0 -90 40 -90 90c0 40 26 74 61 86c5 28 29 52 59 52c10 0 18 -2 26 -6c19 39 59 66 105 66c64 0 117 -52 117 -116c0 -1 -1 -3 -1 -4z" />
+    <glyph glyph-name="ion-ios-cloud-upload" unicode="&#xf40b;" 
+d="M216 0v96h16v-96h-16zM367 264c45 0 81 -39 81 -85s-37 -83 -82 -83h-134v146l55 -54l12 11l-75 75l-74 -75l11 -11l55 54v-146h-35h-31h-60c-50 0 -90 40 -90 90c0 40 26 74 61 86c5 28 29 52 59 52c10 0 18 -2 26 -6c19 39 59 66 105 66c64 0 117 -52 117 -116
+c0 -1 -1 -3 -1 -4z" />
+    <glyph glyph-name="ion-ios-cloud" unicode="&#xf40c;" 
+d="M367 215c45 0 81 -37 81 -83c0 -45 -37 -84 -82 -84h-276c-50 0 -90 42 -90 92c0 40 26 71 61 83c5 28 29 52 59 52c10 0 18 -2 26 -6c19 39 59 67 105 67c64 0 117 -53 117 -117c0 -1 -1 -3 -1 -4z" />
+    <glyph glyph-name="ion-ios-cloudy-night-outline" unicode="&#xf40d;" horiz-adv-x="384" 
+d="M125 224c-34 0 -63 -28 -63 -62v-12s1 -10 1 -10c-5 0 -12 -1 -14 -1c-19 -3 -33 -18 -33 -37c0 -10 3 -19 10 -26s16 -11 26 -11h157c27 0 49 22 49 49s-22 50 -49 50c-2 0 -4 -1 -6 -1l-14 -2l-3 14c-3 14 -11 26 -22 35s-25 14 -39 14zM125 240v0c37 0 68 -26 76 -61
+h8c36 0 65 -29 65 -65s-29 -66 -65 -66h-157c-28 0 -52 24 -52 53c0 27 21 51 47 53v8c0 43 35 78 78 78zM361 142c8 0 15 2 23 4c-4 -7 -9 -14 -14 -20c-21 -24 -50 -41 -84 -45c4 6 6 12 8 19c19 4 36 13 50 25c-18 1 -35 6 -50 13c-23 11 -42 29 -56 51
+c-14 21 -22 48 -22 75c0 15 2 30 7 44c-24 -12 -43 -33 -53 -59c-5 2 -12 4 -18 5c14 36 45 65 82 77c8 2 16 4 24 5c-5 -6 -9 -13 -12 -20c-8 -16 -12 -34 -12 -52c0 -32 12 -63 35 -86s54 -36 86 -36h6z" />
+    <glyph glyph-name="ion-ios-cloudy-night" unicode="&#xf40e;" horiz-adv-x="384" 
+d="M361 142c8 0 15 2 23 4c-4 -7 -9 -15 -14 -21c-21 -24 -50 -40 -84 -44h-3c4 10 7 21 7 32c0 22 -9 43 -24 58c-14 15 -33 23 -53 24c-6 16 -16 29 -29 40c-10 8 -20 13 -32 17v2c14 36 45 65 82 77c8 2 16 4 24 5c-5 -6 -9 -13 -12 -20c-8 -16 -12 -34 -12 -52
+c0 -32 12 -63 35 -86s54 -36 86 -36h6zM125 239v0c37 0 68 -26 76 -61h8c36 0 65 -29 65 -65s-29 -66 -65 -66h-157c-28 0 -52 24 -52 53c0 27 21 51 47 53v7c0 43 35 79 78 79z" />
+    <glyph glyph-name="ion-ios-cloudy-outline" unicode="&#xf40f;" horiz-adv-x="274" 
+d="M125 272c-34 0 -63 -28 -63 -62v-12s1 -10 1 -10c-6 0 -12 -1 -14 -1c-19 -3 -33 -18 -33 -37c0 -10 3 -19 10 -26s16 -11 26 -11h157c27 0 49 22 49 49s-22 50 -49 50c-2 0 -4 -1 -6 -1l-14 -2l-3 14c-3 14 -11 26 -22 35s-25 14 -39 14zM125 288v0c37 0 68 -26 76 -61
+h8c36 0 65 -29 65 -65s-29 -66 -65 -66h-157c-28 0 -52 24 -52 53c0 27 21 51 47 53v8c0 43 35 78 78 78z" />
+    <glyph glyph-name="ion-ios-cloudy" unicode="&#xf410;" horiz-adv-x="274" 
+d="M125 288v0c37 0 68 -26 76 -61h8c36 0 65 -29 65 -65s-29 -66 -65 -66h-157c-28 0 -52 24 -52 53c0 27 21 51 47 53v8c0 43 35 78 78 78z" />
+    <glyph glyph-name="ion-ios-cog-outline" unicode="&#xf411;" horiz-adv-x="384" 
+d="M384 175l-33 -8l-3 -14l27 -20l-12 -30l-34 5l-8 -11l17 -29l-23 -23l-29 17l-10 -7l5 -34l-29 -12l-21 27l-14 -3l-8 -33h-32l-9 33l-13 3l-21 -28l-29 12l4 34l-11 8l-30 -19l-23 23l18 31l-7 11l-35 -5l-12 29l28 22l-2 12l-35 9v32l35 9l2 12l-29 22l12 30l36 -5
+l7 10l-19 32l22 22l32 -19l11 8l-4 35l29 13l22 -29l12 2l9 35h32l9 -35l12 -2l22 28l29 -12l-5 -35l11 -8l30 18l22 -23l-17 -30l7 -10l35 5l12 -30l-28 -21l3 -13l33 -9v-32zM356 127l-26 20l6 33l32 8v7l-32 8l-6 33l26 19l-3 7l-32 -5l-19 27l17 28l-5 6l-28 -17l-28 18
+l5 34l-6 2l-20 -26l-32 6l-8 33h-7l-9 -33l-32 -6l-20 27l-7 -3l5 -34l-28 -18l-9 6l-21 12l-5 -5l18 -30l-18 -27l-33 5l-3 -7l27 -20l-6 -32l-33 -8v-7l33 -9l6 -32l-27 -20l3 -6l33 4l18 -27l-17 -29l5 -6l29 18l28 -18l-5 -33l7 -3l19 27l33 -7l8 -31h8l7 31l33 7
+l20 -26l7 3l-5 32l26 18l28 -16l5 5l-16 27l19 28l32 -4zM192 320c71 0 128 -57 128 -128s-57 -128 -128 -128s-128 57 -128 128s57 128 128 128zM80 192c0 -7 1 -15 2 -22l104 28l28 104c-7 1 -15 2 -22 2c-30 0 -58 -12 -79 -33s-33 -49 -33 -79zM192 80c27 0 53 10 73 27
+l-75 75l-104 -28c6 -15 15 -29 27 -41c21 -21 49 -33 79 -33zM276 118c18 20 28 47 28 74c0 30 -12 58 -33 79c-12 12 -26 22 -42 27l-28 -105z" />
+    <glyph glyph-name="ion-ios-cog" unicode="&#xf412;" horiz-adv-x="384" 
+d="M229 298c16 -5 30 -15 42 -27c21 -21 33 -49 33 -79c0 -27 -10 -54 -28 -74l-75 75zM214 302l-28 -104l-104 -28c-1 7 -2 15 -2 22c0 30 12 58 33 79s49 33 79 33c7 0 15 -1 22 -2zM86 154l104 28l75 -75c-20 -17 -46 -27 -73 -27c-30 0 -58 12 -79 33
+c-12 12 -21 26 -27 41zM384 175l-33 -8l-3 -14l27 -20l-12 -30l-34 5l-8 -11l17 -29l-23 -23l-29 17l-10 -7l5 -34l-29 -12l-21 27l-14 -3l-8 -33h-32l-9 33l-13 3l-21 -28l-29 12l4 34l-11 8l-30 -19l-23 23l18 31l-7 11l-35 -5l-12 29l28 22l-2 12l-35 9v32l35 9l2 12
+l-29 22l12 30l36 -5l7 10l-19 32l22 22l32 -19l11 8l-4 35l29 13l22 -29l12 2l9 35h32l9 -35l12 -2l22 28l29 -12l-5 -35l11 -8l30 18l22 -23l-17 -30l7 -10l35 5l12 -30l-28 -21l3 -13l33 -9v-32zM192 64c71 0 128 57 128 128s-57 128 -128 128s-128 -57 -128 -128
+s57 -128 128 -128z" />
+    <glyph glyph-name="ion-ios-color-filter-outline" unicode="&#xf413;" horiz-adv-x="384" 
+d="M302 236c47 -13 82 -57 82 -108c0 -62 -50 -112 -112 -112c-31 0 -60 13 -80 34c-20 -21 -49 -34 -80 -34c-62 0 -112 50 -112 112c0 51 35 95 82 108c-1 7 -2 13 -2 20c0 62 50 112 112 112s112 -50 112 -112c0 -7 -1 -13 -2 -20zM96 256c0 -6 0 -12 1 -17
+c5 1 10 1 15 1c31 0 60 -13 80 -34c20 21 49 34 80 34c5 0 10 0 15 -1c1 5 1 11 1 17c0 53 -43 96 -96 96s-96 -43 -96 -96zM208 128c0 6 0 12 -1 17c-5 -1 -10 -1 -15 -1s-10 0 -15 1c-1 -5 -1 -11 -1 -17c0 -20 6 -38 16 -53c10 15 16 33 16 53zM192 160c3 0 7 1 10 1
+c-3 7 -6 14 -10 20c-4 -6 -7 -13 -10 -20c3 0 7 -1 10 -1zM166 164c4 11 9 21 16 30c-18 18 -43 30 -70 30c-3 0 -7 -1 -10 -1c10 -29 34 -51 64 -59zM202 194c7 -9 12 -19 16 -30c30 8 54 30 64 59c-3 0 -7 1 -10 1c-27 0 -52 -12 -70 -30zM112 32c27 0 52 12 70 30
+c-14 19 -22 41 -22 66c0 7 1 13 2 20c-36 10 -64 37 -76 72c-40 -11 -70 -48 -70 -92c0 -53 43 -96 96 -96zM272 32c53 0 96 43 96 96c0 44 -30 81 -70 92c-12 -35 -40 -62 -76 -72c1 -7 2 -13 2 -20c0 -25 -8 -47 -22 -66c18 -18 43 -30 70 -30z" />
+    <glyph glyph-name="ion-ios-color-filter" unicode="&#xf414;" horiz-adv-x="384" 
+d="M302 236c47 -13 82 -57 82 -108c0 -62 -50 -112 -112 -112c-31 0 -60 13 -80 34c-20 -21 -49 -34 -80 -34c-62 0 -112 50 -112 112c0 51 35 95 82 108c-1 7 -2 13 -2 20c0 62 50 112 112 112s112 -50 112 -112c0 -7 -1 -13 -2 -20zM192 53l1 -2c3 3 6 7 9 11
+c14 19 22 41 22 66c0 7 -1 13 -2 20c36 10 64 37 76 72c2 5 3 10 4 15c-1 0 -2 1 -3 1v1c-4 1 -8 1 -12 2c-5 1 -10 1 -15 1c-31 0 -60 -13 -80 -34c-20 21 -49 34 -80 34c-5 0 -10 0 -15 -1c-4 -1 -8 -1 -12 -2v-1c-1 0 -2 -1 -3 -1c1 -5 2 -10 4 -15c12 -35 40 -62 76 -72
+c-1 -7 -2 -13 -2 -20c0 -25 8 -47 22 -66c3 -4 6 -8 9 -11zM207 145c1 -5 1 -11 1 -17c0 -20 -6 -38 -16 -53c-10 15 -16 33 -16 53c0 6 0 12 1 17c5 -1 10 -1 15 -1s10 0 15 1zM282 223c-10 -29 -34 -51 -64 -59c-4 11 -9 21 -16 30c18 18 43 30 70 30c3 0 7 -1 10 -1z
+M202 161c-3 0 -7 -1 -10 -1s-7 1 -10 1c3 7 6 14 10 20c4 -6 7 -13 10 -20zM112 224c27 0 52 -12 70 -30c-7 -9 -12 -19 -16 -30c-30 8 -54 30 -64 59c3 0 7 1 10 1z" />
+    <glyph glyph-name="ion-ios-color-wand-outline" unicode="&#xf415;" horiz-adv-x="384" 
+d="M128 298l256 -256l-34 -34l-256 256zM149 232l201 -201l11 11l-201 202zM120 344v40h16v-40h-16zM120 140v40h16v-40h-16zM216 256v16h40v-16h-40zM0 256v16h40v-16h-40zM47 354l29 -29l-12 -11l-28 28zM76 198l-29 -28l-11 11l28 28zM220 342l-28 -28l-12 11l29 29z" />
+    <glyph glyph-name="ion-ios-color-wand" unicode="&#xf416;" horiz-adv-x="396" 
+d="M140 289l256 -257l-34 -34l-256 257zM124 322v64h32v-64h-32zM124 118v64h32v-64h-32zM216 238v32h64v-32h-64zM246 336l-45 -45l-23 22l45 46zM34 336l23 23l45 -46l-23 -22zM34 169l45 45l23 -22l-45 -46zM0 238v32h64v-32h-64z" />
+    <glyph glyph-name="ion-ios-compose-outline" unicode="&#xf417;" horiz-adv-x="384" 
+d="M304 32v208l16 16v-240h-320v304h256l-16 -16h-224v-272h288zM174 164l171 171l11 -11l-180 -180h-32v32l180 180l11 -11l-171 -171zM380 368c2 -3 4 -6 4 -10s-2 -7 -4 -10l-12 -12l-21 21l-11 11v0l12 12c3 2 6 4 10 4s7 -2 10 -4z" />
+    <glyph glyph-name="ion-ios-compose" unicode="&#xf418;" horiz-adv-x="384" 
+d="M192 128l128 128v-240h-320v304h256l-128 -128v-64h64zM324 356l32 -32l-180 -180h-32v32zM380 368c2 -3 4 -6 4 -10s-2 -7 -4 -10l-12 -12l-21 21l-11 11v0l12 12c3 2 6 4 10 4s7 -2 10 -4z" />
+    <glyph glyph-name="ion-ios-contact-outline" unicode="&#xf419;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 383c-105 0 -191 -86 -191 -191c0 -47 17 -89 45 -122c18 8 62 24 90 32c2 1 3 0 3 10c0 11 -1 18 -4 24c-4 8 -7 20 -9 31c-4 5 -10 15 -14 33c-3 16 -1 22 1 28v2
+c1 4 0 23 -3 38c-2 10 1 34 15 52c9 12 27 26 58 28h18c32 -2 49 -16 58 -28c14 -18 17 -42 15 -52c-3 -15 -4 -34 -3 -38c0 0 1 -1 1 -2c2 -6 3 -12 0 -28c-4 -18 -10 -27 -14 -32c-2 -11 -5 -24 -9 -32c-3 -7 -6 -15 -6 -23c0 -10 0 -10 2 -11c27 -8 73 -24 93 -32
+c28 33 45 76 45 122c0 105 -86 191 -191 191z" />
+    <glyph glyph-name="ion-ios-contact" unicode="&#xf41a;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c59 0 111 27 146 69c-20 8 -66 24 -93 32c-2 1 -3 1 -3 11c0 8 4 16 7 23c4 8 7 21 9 32c4 5 10 14 14 32c3 16 2 22 0 28c0 0 -1 1 -1 2c-1 4 0 23 3 38c2 10 -1 34 -15 52
+c-9 12 -26 26 -58 28h-18c-31 -2 -49 -16 -58 -28c-14 -18 -17 -42 -15 -52c3 -15 4 -34 3 -38v-2c-2 -6 -4 -12 -1 -28c4 -18 10 -28 14 -33c2 -11 5 -23 9 -31c3 -6 4 -13 4 -24c0 -10 -1 -9 -3 -10c-28 -8 -72 -24 -90 -32c35 -42 87 -69 146 -69z" />
+    <glyph glyph-name="ion-ios-copy-outline" unicode="&#xf41b;" horiz-adv-x="288" 
+d="M192 352v-64h64v-16h-80v80h16zM213 384l75 -75v-261h-48v-48h-240v336h48v48h165zM224 16v32h-176v272h-32v-304h208zM272 64v238l-65 66h-143v-304h208z" />
+    <glyph glyph-name="ion-ios-copy" unicode="&#xf41c;" horiz-adv-x="288" 
+d="M32 32h16h192v-32h-240v336h32v-288v-16zM213 384l75 -75v-261h-48h-192v288v48h165zM256 272v16h-64v64h-16v-80h80z" />
+    <glyph glyph-name="ion-ios-crop-strong" unicode="&#xf41d;" horiz-adv-x="384" 
+d="M64 336v48h32v-48h-32zM96 96h176v-32h-208v208h32v-176zM336 64v32h48v-32h-48zM0 320h320v-320h-32v288h-288v32z" />
+    <glyph glyph-name="ion-ios-crop" unicode="&#xf41e;" horiz-adv-x="384" 
+d="M64 336v48h16v-48h-16zM80 80h208v-16h-224v224h16v-208zM336 64v16h48v-16h-48zM0 320h320v-320h-16v304h-304v16z" />
+    <glyph glyph-name="ion-ios-download-outline" unicode="&#xf41f;" horiz-adv-x="320" 
+d="M192 304h128v-304h-320v304h128v-16h-112v-272h288v272h-112v16zM97 196l55 -55v243h16v-243l55 55l11 -12l-74 -74l-74 74z" />
+    <glyph glyph-name="ion-ios-download" unicode="&#xf420;" horiz-adv-x="320" 
+d="M168 304h152v-304h-320v304h152v-163l-55 55l-11 -12l74 -74l74 74l-11 12l-55 -55v163zM152 304v80h16v-80h-16z" />
+    <glyph glyph-name="ion-ios-drag" unicode="&#xf421;" horiz-adv-x="352" 
+d="M0 128v16h352v-16h-352zM0 184v16h352v-16h-352zM0 240v16h352v-16h-352z" />
+    <glyph glyph-name="ion-ios-email-outline" unicode="&#xf422;" horiz-adv-x="384" 
+d="M0 320h384v-256h-384v256zM192 180l163 124h-326zM16 80h352v214l-115 -88l68 -77l-2 -2l-79 70l-48 -37l-48 37l-79 -70l-2 2l68 77l-115 88v-214z" />
+    <glyph glyph-name="ion-ios-email" unicode="&#xf423;" horiz-adv-x="384" 
+d="M384 64h-384v242l131 -100l-68 -77l2 -2l79 70l48 -37l48 37l79 -70l2 2l-68 77l131 100v-242zM376 320l-184 -140l-184 140h368z" />
+    <glyph glyph-name="ion-ios-eye-outline" unicode="&#xf424;" horiz-adv-x="384" 
+d="M383 192l1 -1l-6 -6c-21 -21 -47 -48 -78 -69c-36 -24 -72 -36 -108 -36c-83 0 -130 49 -185 105l-7 7l1 1c39 40 67 64 94 81c32 20 63 30 97 30c83 0 146 -60 191 -112zM192 288c-62 0 -111 -36 -170 -96c24 -24 48 -50 76 -68c30 -20 60 -28 94 -28
+c75 0 133 56 171 95c-26 29 -50 50 -74 66c-32 21 -64 31 -97 31zM192 112c-44 0 -80 36 -80 80s36 80 80 80s80 -36 80 -80s-36 -80 -80 -80zM192 256c-35 0 -64 -29 -64 -64s29 -64 64 -64s64 29 64 64s-29 64 -64 64zM224 192h16v0c0 -26 -22 -48 -48 -48s-48 21 -48 48
+s22 48 48 48v-16c-16 0 -32 -13 -32 -31s15 -33 32 -33s32 14 32 32v0z" />
+    <glyph glyph-name="ion-ios-eye" unicode="&#xf425;" horiz-adv-x="384" 
+d="M383 192l1 -1l-6 -6c-21 -21 -47 -48 -78 -69c-36 -24 -72 -36 -108 -36c-83 0 -130 49 -185 105l-7 7l1 1c39 40 67 64 94 81c32 20 63 30 97 30c83 0 146 -60 191 -112zM192 112c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80zM186 221
+c0 -19 16 -35 35 -35c7 0 14 2 19 6v0c0 -27 -22 -48 -48 -48s-48 21 -48 48s22 48 48 48c-4 -5 -6 -12 -6 -19z" />
+    <glyph glyph-name="ion-ios-fastforward-outline" unicode="&#xf426;" 
+d="M16 293v-202l184 101zM240 292v0v-78v-27v-95l176 100zM224 320v0l224 -128l-224 -128v123l-224 -123v256l224 -123v123z" />
+    <glyph glyph-name="ion-ios-fastforward" unicode="&#xf427;" 
+d="M224 320v0l224 -128l-224 -128v123l-224 -123v256l224 -123v123z" />
+    <glyph glyph-name="ion-ios-filing-outline" unicode="&#xf428;" horiz-adv-x="352" 
+d="M288 320l64 -96v-160h-176h-176v160l64 96h224zM333 224l-45 68v-68h45zM80 304v-80h48c0 -26 22 -48 48 -48s48 22 48 48h48v80h-192zM64 292l-45 -68h45v68zM336 80v128h-98c-7 -28 -32 -48 -62 -48s-55 20 -62 48h-98v-128h160h160z" />
+    <glyph glyph-name="ion-ios-filing" unicode="&#xf429;" horiz-adv-x="352" 
+d="M176 160c30 0 55 20 62 48h114v-144h-176h-176v144h114c7 -28 32 -48 62 -48zM64 224h-7h-57l64 96v0v-80h16v80h192v-80h16v80v0l64 -96h-56h-8h-16h-8h-40c0 -26 -22 -48 -48 -48s-48 22 -48 48h-39h-9h-16z" />
+    <glyph glyph-name="ion-ios-film-outline" unicode="&#xf42a;" horiz-adv-x="400" 
+d="M0 360h400v-336h-400v336zM72 40v48h-56v-48h56zM72 104v48h-56v-48h56zM72 168v48h-56v-48h56zM72 232v48h-56v-48h56zM72 296v48h-56v-48h56zM312 40v144h-224v-144h224zM312 200v144h-224v-144h224zM384 40v48h-56v-48h56zM384 104v48h-56v-48h56zM384 168v48h-56v-48
+h56zM384 232v48h-56v-48h56zM384 296v48h-56v-48h56z" />
+    <glyph glyph-name="ion-ios-film" unicode="&#xf42b;" horiz-adv-x="400" 
+d="M0 360h400v-336h-400v336zM72 40v48h-56v-48h56zM72 104v48h-56v-48h56zM72 168v48h-56v-48h56zM72 232v48h-56v-48h56zM72 296v48h-56v-48h56zM312 184v16h-224v-16h224zM384 40v48h-56v-48h56zM384 104v48h-56v-48h56zM384 168v48h-56v-48h56zM384 232v48h-56v-48h56z
+M384 296v48h-56v-48h56z" />
+    <glyph glyph-name="ion-ios-flag-outline" unicode="&#xf42c;" horiz-adv-x="256" 
+d="M240 336c6 1 11 1 16 2v-16v-157c-5 -1 -10 -1 -16 -2c-11 -1 -24 -3 -39 -3c-25 0 -47 4 -69 9s-42 13 -64 13c-30 0 -46 -5 -52 -7v-143h-16v142v162v2l3 3c2 1 18 11 65 11c24 0 45 -4 67 -9c21 -4 42 -11 65 -11c15 0 29 3 40 4zM240 179v0v141c-11 -1 -25 -4 -40 -4
+c-25 0 -46 6 -68 11s-42 9 -64 9c-30 0 -46 -5 -52 -7v-137c10 3 26 6 52 6c24 0 45 -8 67 -13c21 -4 43 -9 66 -9c15 0 28 2 39 3z" />
+    <glyph glyph-name="ion-ios-flag" unicode="&#xf42d;" horiz-adv-x="256" 
+d="M240 336c6 1 11 1 16 2v-16v-157c-5 -1 -10 -1 -16 -2c-11 -1 -24 -3 -39 -3c-25 0 -47 4 -69 9s-42 13 -64 13c-30 0 -46 -5 -52 -7v-143h-16v142v162v2l3 3c2 1 18 11 65 11c24 0 45 -4 67 -9c21 -4 42 -11 65 -11c15 0 29 3 40 4z" />
+    <glyph glyph-name="ion-ios-flame-outline" unicode="&#xf42e;" horiz-adv-x="256" 
+d="M96 416c87 -64 170 -179 159 -288c-13 -134 -104 -160 -127 -160s-127 40 -128 160c-1 146 122 143 96 288zM128 -24c0 0 40 36 40 80s-40 80 -40 80s-41 -36 -41 -80s41 -80 41 -80zM239 130c5 47 -10 99 -41 151c-22 36 -50 70 -83 99c0 -57 -24 -91 -49 -123
+c-26 -34 -50 -65 -50 -129c0 -25 5 -48 15 -68c8 -17 20 -32 35 -45c8 -7 16 -12 23 -16c-9 16 -18 35 -18 57c0 51 44 90 46 92l11 9l11 -9c2 -2 45 -41 45 -92c0 -23 -9 -44 -19 -60c7 4 13 8 20 14c14 12 25 27 34 44c11 21 17 47 20 76z" />
+    <glyph glyph-name="ion-ios-flame" unicode="&#xf42f;" horiz-adv-x="256" 
+d="M96 416c87 -64 170 -179 159 -288c-13 -134 -104 -160 -127 -160s-127 40 -128 160c-1 146 122 143 96 288zM128 -24c0 0 40 36 40 80s-40 80 -40 80s-41 -36 -41 -80s41 -80 41 -80z" />
+    <glyph glyph-name="ion-ios-flask-outline" unicode="&#xf430;" horiz-adv-x="384" 
+d="M373 78c8 -16 11 -32 11 -46c-1 -36 -27 -64 -63 -64h-256c-36 0 -64 27 -65 64c0 14 4 30 12 46l116 195v127h-16v16h16h16v-16v-16h48v-16h-48v-32h32v-16h-32v-32h48v-16h-48v-3l-2 -4l-15 -25h49v-16h-58l-92 -154c-13 -25 -14 -43 -2 -63c9 -14 23 -23 41 -23h256
+c17 0 33 8 41 22c5 8 6 17 6 26c0 12 -2 25 -9 38l-116 195l-3 4v131v16h16h16v-16h-16v-127zM44 73l72 119h153l72 -119c7 -11 10 -24 10 -33c-1 -24 -16 -40 -46 -40h-226c-30 0 -46 12 -46 40c0 9 4 22 11 33zM260 176h-135l-67 -111v0v0c-5 -8 -9 -19 -9 -25
+c0 -13 5 -17 6 -18c4 -4 13 -6 24 -6h226c10 0 18 3 23 7c4 4 7 10 7 18c0 6 -3 16 -8 24v0v0z" />
+    <glyph glyph-name="ion-ios-flask" unicode="&#xf431;" horiz-adv-x="384" 
+d="M327 65v0c5 -8 8 -18 8 -24c0 -8 -3 -14 -7 -18c-5 -4 -13 -7 -23 -7h-226c-11 0 -20 2 -24 6c-1 1 -6 5 -6 18c0 6 4 17 9 25v0v0l67 111h135l67 -111v0zM373 78c8 -16 11 -32 11 -46c-1 -36 -27 -64 -63 -64h-256c-36 0 -64 27 -65 64c0 14 4 30 12 46l116 195v127h-16
+v16h160v-16h-16v-127zM144 384v-16h48v16h-48zM144 336v-16h32v16h-32zM144 288v-16h48v16h-48zM127 240l-9 -16h58v16h-49zM351 40c0 9 -3 22 -10 33l-72 119h-154l-71 -119c-7 -11 -11 -24 -11 -33c0 -28 16 -40 46 -40h226c30 0 45 16 46 40z" />
+    <glyph glyph-name="ion-ios-flower-outline" unicode="&#xf432;" 
+d="M363 164c-29 0 -65 7 -93 14c-1 -3 -2 -6 -4 -9c25 -15 56 -36 76 -56c40 -40 53 -68 41 -80c-3 -3 -7 -4 -12 -4c-15 0 -38 15 -68 45c-20 20 -41 51 -56 76c-3 -2 -7 -3 -10 -4c7 -28 15 -64 15 -93c0 -56 -12 -85 -28 -85s-28 29 -28 85c0 29 8 65 15 93
+c-3 1 -7 2 -10 4c-15 -25 -36 -56 -56 -76c-30 -30 -53 -45 -68 -45c-5 0 -9 1 -12 4c-12 12 1 40 41 80c20 20 51 41 76 56c-2 3 -3 6 -4 9c-28 -7 -64 -14 -93 -14c-56 0 -85 12 -85 28s29 28 85 28c29 0 65 -8 93 -15c1 3 2 7 4 10c-25 15 -56 35 -76 55
+c-40 40 -53 68 -41 80c3 3 7 4 12 4c15 0 38 -14 68 -44c20 -20 41 -51 56 -76c3 2 7 3 10 4c-7 28 -15 64 -15 93c0 56 12 85 28 85s28 -29 28 -85c0 -29 -8 -65 -15 -93c3 -1 7 -2 10 -4c15 25 36 56 56 76c30 30 53 44 68 44c5 0 9 -1 12 -4c12 -12 -1 -40 -41 -80
+c-20 -20 -51 -40 -76 -55c2 -3 3 -7 4 -10c28 7 64 15 93 15c56 0 85 -12 85 -28s-29 -28 -85 -28zM288 193v-3c30 -7 56 -10 75 -10c21 0 39 2 52 5c10 3 14 6 16 7c-2 1 -6 4 -16 7c-13 3 -31 5 -52 5c-19 0 -45 -4 -75 -11zM314 299c-14 -14 -30 -35 -46 -61l2 -2
+c26 16 47 32 61 46c15 15 26 28 33 40c5 9 7 14 7 16c-4 0 -22 -4 -57 -39zM178 236l2 2c-16 26 -32 47 -46 61c-35 35 -53 39 -57 39c0 -2 2 -7 7 -16c7 -12 18 -25 33 -40c14 -14 35 -30 61 -46zM85 180c19 0 45 3 75 10v3c-30 7 -56 11 -75 11c-21 0 -39 -2 -52 -5
+c-10 -3 -14 -6 -16 -7c2 -1 5 -4 15 -7c13 -3 32 -5 53 -5zM134 85c14 14 30 35 46 61l-2 2c-26 -16 -47 -32 -61 -46c-15 -15 -26 -29 -33 -41c-5 -9 -7 -14 -7 -16c4 0 22 5 57 40zM270 148l-2 -2c16 -26 32 -47 46 -61c35 -35 53 -40 57 -40c0 2 -2 7 -7 16
+c-7 12 -18 26 -33 41c-14 14 -35 30 -61 46zM217 383c-3 -13 -5 -31 -5 -52c0 -19 4 -45 11 -75h2c7 30 11 56 11 75c0 21 -2 39 -5 52c-3 10 -6 14 -7 16c-1 -2 -4 -6 -7 -16zM231 0c3 13 5 32 5 53c0 19 -4 45 -11 75h-2c-7 -30 -11 -56 -11 -75c0 -21 2 -40 5 -53
+c3 -10 6 -13 7 -15c1 2 4 5 7 15zM224 160c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM313 42c10 -34 7 -53 -5 -58c-2 -1 -3 -1 -5 -1c-11 0 -25 13 -37 35c5 35 -2 76 -2 76s24 -34 49 -52zM302 -1c1 4 2 14 -3 34c-5 4 -10 9 -15 14
+c0 -9 0 -17 -1 -25c10 -16 16 -22 19 -23zM182 365c-6 -35 1 -75 1 -75s-27 35 -48 51c-10 35 -7 54 5 59c2 1 3 1 5 1c11 0 24 -12 37 -36zM164 337c0 9 0 17 1 25c-10 16 -16 21 -19 22c-1 -4 -2 -14 3 -34c5 -4 10 -8 15 -13zM50 149c35 -4 76 2 76 2s-34 -24 -51 -48
+c-12 -4 -26 -6 -35 -6c-13 0 -21 4 -24 11c-5 11 7 25 34 41zM66 117c4 5 8 10 13 15c-9 0 -17 0 -25 1c-16 -10 -21 -16 -22 -19c1 0 4 -1 8 -1c7 0 16 1 26 4zM432 276c5 -11 -7 -26 -34 -42c-35 5 -76 -2 -76 -2s33 25 51 49c13 4 26 5 35 5c13 0 21 -3 24 -10zM394 250
+c16 10 21 16 22 19c-1 0 -4 1 -8 1c-7 0 -16 -1 -26 -4c-4 -5 -8 -9 -13 -14c9 0 17 -1 25 -2zM131 39c31 24 53 55 53 55s-7 -39 -3 -71c-15 -26 -28 -39 -39 -39c-2 0 -4 0 -6 1c-11 5 -13 24 -5 54zM143 1c4 2 12 8 22 26c0 6 -1 13 -1 20c-6 -6 -13 -12 -19 -17
+c-4 -18 -3 -26 -2 -29zM312 398c11 -5 13 -22 5 -54c-29 -21 -53 -55 -53 -55s8 48 3 71c13 25 28 39 39 39c2 0 4 0 6 -1zM303 353c5 18 3 27 2 30c-4 -2 -12 -8 -22 -26c0 -6 1 -14 1 -21c6 6 13 12 19 17zM71 285c18 -24 55 -53 55 -53s-40 7 -70 3c-28 15 -43 32 -38 44
+c3 7 10 11 22 11c8 0 21 -1 31 -5zM33 273c2 -4 8 -12 26 -22c6 0 13 1 20 1c-6 6 -12 12 -17 18c-8 2 -16 4 -22 4c-4 0 -6 -1 -7 -1zM392 149c30 -17 43 -33 38 -45c-3 -7 -10 -10 -22 -10c-8 0 -19 1 -31 5c-20 27 -55 52 -55 52s45 -8 70 -2zM408 110c4 0 6 1 7 1
+c-2 4 -8 12 -26 22c-6 0 -13 -1 -20 -1c6 -6 12 -13 17 -19c8 -2 16 -3 22 -3z" />
+    <glyph glyph-name="ion-ios-flower" unicode="&#xf433;" 
+d="M363 220c56 0 85 -12 85 -28s-29 -28 -85 -28c-29 0 -65 7 -93 14c-1 -3 -2 -6 -4 -9c25 -15 56 -36 76 -56c40 -40 53 -68 41 -80s-40 1 -80 41c-20 20 -41 51 -56 76c-3 -2 -7 -3 -10 -4c7 -28 15 -64 15 -93c0 -56 -12 -85 -28 -85s-28 29 -28 85c0 29 8 65 15 93
+c-3 1 -7 2 -10 4c-15 -25 -36 -56 -56 -76c-40 -40 -68 -53 -80 -41s1 40 41 80c20 20 51 41 76 56c-2 3 -3 6 -4 9c-28 -7 -64 -14 -93 -14c-56 0 -85 12 -85 28s29 28 85 28c29 0 65 -8 93 -15c1 3 2 7 4 10c-25 15 -56 35 -76 55c-40 40 -53 68 -41 80s40 0 80 -40
+c20 -20 41 -51 56 -76c3 2 6 3 9 4c-7 28 -14 64 -14 93c0 56 12 85 28 85s28 -29 28 -85c0 -29 -7 -65 -14 -93c3 -1 6 -2 9 -4c15 25 36 56 56 76c40 40 68 52 80 40s-1 -40 -41 -80c-20 -20 -51 -40 -76 -55c2 -3 3 -7 4 -10c28 7 64 15 93 15zM264 94c0 0 24 -34 49 -52
+c10 -34 7 -53 -5 -58c-2 -1 -3 -1 -5 -1c-11 0 -25 13 -37 35c5 35 -2 76 -2 76zM183 290c0 0 -27 35 -48 51c-10 35 -7 54 5 59c2 1 3 1 5 1c11 0 24 -12 37 -36c-6 -35 1 -75 1 -75zM126 151c0 0 -34 -24 -51 -48c-12 -4 -26 -6 -35 -6c-13 0 -21 4 -24 11
+c-5 11 7 25 34 41c35 -4 76 2 76 2zM322 232c0 0 33 25 51 49c13 4 26 5 35 5c13 0 21 -3 24 -10c5 -11 -7 -26 -34 -42c-35 5 -76 -2 -76 -2zM131 39c31 24 53 55 53 55s-7 -39 -3 -71c-15 -26 -28 -39 -39 -39c-2 0 -4 0 -6 1c-11 5 -13 24 -5 54zM317 344
+c-29 -21 -53 -55 -53 -55s8 48 3 71c13 25 28 39 39 39c2 0 4 0 6 -1c11 -5 13 -22 5 -54zM56 235c-28 15 -43 32 -38 44c3 7 10 11 22 11c8 0 21 -1 31 -5c18 -24 55 -53 55 -53s-40 7 -70 3zM392 149c30 -17 43 -33 38 -45c-3 -7 -10 -10 -22 -10c-8 0 -19 1 -31 5
+c-20 27 -55 52 -55 52s45 -8 70 -2z" />
+    <glyph glyph-name="ion-ios-folder-outline" unicode="&#xf434;" 
+d="M425 352c13 0 23 -10 23 -23v-304c0 -14 -10 -25 -23 -25h-400c-13 0 -25 12 -25 25v336c0 13 11 23 25 23h112c8 0 12 -2 17 -7v0l23 -23c2 -2 3 -2 6 -2h242zM25 368c-4 0 -9 -3 -9 -7v-74c3 1 5 1 8 1h400c3 0 5 0 8 -1v42c0 4 -3 7 -7 7h-242c-7 0 -12 2 -17 7
+l-23 23c-2 2 -3 2 -6 2h-112zM432 25v239c0 4 -4 8 -8 8h-400c-4 0 -8 -4 -8 -8v-239c0 -4 5 -9 9 -9h400c4 0 7 5 7 9z" />
+    <glyph glyph-name="ion-ios-folder" unicode="&#xf435;" 
+d="M440 272c4 0 8 -4 8 -8v-239c0 -14 -10 -25 -23 -25h-400c-13 0 -25 12 -25 25v239c0 4 4 8 8 8h432zM425 352c13 0 23 -10 23 -23v-42c-3 1 -5 1 -8 1h-432c-3 0 -5 0 -8 -1v74c0 13 11 23 25 23h112c8 0 12 -2 17 -7v0l23 -23c2 -2 3 -2 6 -2h242z" />
+    <glyph glyph-name="ion-ios-football-outline" unicode="&#xf436;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM249 6c3 1 5 1 8 2l24 64l-20 39v1h-106l-20 -39l25 -65c2 -1 5 -1 7 -2c12 -3 25 -5 38 -5c14 0 30 2 44 5zM41 284c-15 -27 -23 -57 -24 -89l43 37v0zM142 371
+c-36 -14 -68 -38 -90 -69l22 -64l5 -2l49 -23l71 60v58zM277 201l-70 58l-69 -58v-1l18 -72h104l18 72zM399 195c-1 32 -9 63 -24 90l-19 -53v0zM364 302c-22 31 -54 56 -90 69l-58 -40v-58l71 -60l54 24zM18 175c3 -34 15 -66 33 -92l70 -1l21 39l-20 77l-1 1l-49 22z
+M295 82l70 1c18 26 30 58 33 92l-54 46l-50 -23l-20 -77zM207 345l47 32c-15 4 -30 6 -46 6s-32 -2 -47 -6zM118 66l-54 1c20 -23 46 -42 75 -53l-20 50zM277 14c29 11 55 30 75 53l-56 -1l-2 -3z" />
+    <glyph glyph-name="ion-ios-football" unicode="&#xf437;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM249 6c3 1 5 1 8 2l24 64l-20 39v1h-106l-20 -39l25 -65c2 -1 5 -1 7 -2c12 -3 25 -5 38 -5c14 0 30 2 44 5zM142 371c-36 -14 -68 -38 -90 -69l22 -64l5 -2l49 -23l71 60v58z
+M364 302c-22 31 -54 56 -90 69l-58 -40v-58l71 -60l54 24zM18 175c3 -34 15 -66 33 -92l70 -1l21 39l-20 77l-1 1l-49 22zM295 82l70 1c18 26 30 58 33 92l-54 46l-50 -23l-20 -77z" />
+    <glyph glyph-name="ion-ios-game-controller-a-outline" unicode="&#xf438;" 
+d="M163 208c3 0 5 -2 5 -5v-22c0 -3 -2 -5 -5 -5h-35v-35c0 -3 -3 -5 -6 -5h-21c-3 0 -5 2 -5 5v35h-35c-3 0 -5 3 -5 6v21c0 3 2 5 5 5h35v35c0 3 2 5 5 5h22c3 0 5 -2 5 -5v-35h35zM330 169c11 0 20 -8 20 -19s-9 -19 -20 -19s-19 8 -19 19s8 19 19 19zM288 211
+c11 0 19 -8 19 -19s-8 -19 -19 -19s-20 8 -20 19s9 19 20 19zM373 211c11 0 19 -8 19 -19s-8 -19 -19 -19s-20 8 -20 19s9 19 20 19zM330 253c11 0 20 -8 20 -19s-9 -20 -20 -20s-19 9 -19 20s8 19 19 19zM337 286h-226c-26 0 -49 -9 -67 -26s-28 -41 -28 -67s10 -51 28 -68
+s41 -27 67 -27h226c26 0 49 10 67 27s28 42 28 68s-10 50 -28 67s-41 26 -67 26zM337 302v0c61 0 111 -45 111 -109s-50 -111 -111 -111h-226c-61 0 -111 47 -111 111s50 109 111 109h226z" />
+    <glyph glyph-name="ion-ios-game-controller-a" unicode="&#xf439;" 
+d="M337 302c61 0 111 -45 111 -109s-50 -111 -111 -111h-226c-61 0 -111 47 -111 111s50 109 111 109h226zM168 181v0v22c0 3 -2 5 -5 5h-35v35c0 3 -2 5 -5 5h-22c-3 0 -5 -2 -5 -5v-35h-35c-3 0 -5 -2 -5 -5v-21c0 -3 2 -6 5 -6h35v-35c0 -3 2 -5 5 -5h21c3 0 6 2 6 5v35
+h35c3 0 5 2 5 5zM288 173c11 0 19 8 19 19s-8 19 -19 19s-20 -8 -20 -19s9 -19 20 -19zM330 131c11 0 20 8 20 19s-9 19 -20 19s-19 -8 -19 -19s8 -19 19 -19zM330 214c11 0 20 9 20 20s-9 19 -20 19s-19 -8 -19 -19s8 -20 19 -20zM373 173c11 0 19 8 19 19s-8 19 -19 19
+s-20 -8 -20 -19s9 -19 20 -19z" />
+    <glyph glyph-name="ion-ios-game-controller-b-outline" unicode="&#xf43a;" 
+d="M276 244c11 0 20 -9 20 -20s-9 -20 -20 -20s-20 9 -20 20s9 20 20 20zM320 200c11 0 20 -9 20 -20s-9 -20 -20 -20s-20 9 -20 20s9 20 20 20zM103 264c22 0 39 -18 39 -40s-17 -40 -39 -40s-39 18 -39 40s17 40 39 40zM103 205c11 0 19 8 19 19s-8 19 -19 19
+s-19 -8 -19 -19s8 -19 19 -19zM320 288c11 0 20 -9 20 -20s-9 -20 -20 -20s-20 9 -20 20s9 20 20 20zM364 244c11 0 20 -9 20 -20s-9 -20 -20 -20s-20 9 -20 20s9 20 20 20zM434 199c21 -88 18 -152 -7 -164c-4 -2 -9 -3 -13 -3c-22 0 -45 24 -68 52c-26 32 -32 33 -110 33
+h-24c-78 0 -84 -1 -110 -33c-23 -28 -46 -52 -68 -52c-4 0 -9 1 -13 3c-25 12 -28 76 -7 164s43 136 88 149c10 3 18 4 26 4c28 0 47 -15 96 -15s68 15 96 15c8 0 16 -1 26 -4c45 -13 67 -61 88 -149zM420 49c10 5 23 48 -1 146c-21 90 -43 128 -78 138c-8 2 -14 3 -21 3
+c-10 0 -19 -2 -30 -5c-16 -4 -36 -10 -66 -10s-50 6 -66 10c-11 3 -20 5 -30 5c-7 0 -13 -1 -21 -3c-35 -10 -57 -48 -78 -138c-24 -98 -11 -141 -1 -146c2 -1 4 -1 6 -1c6 0 14 4 23 12s19 18 32 34s24 28 44 34c17 5 38 5 79 5h24c41 0 62 0 79 -5c20 -6 31 -18 44 -34
+s23 -26 32 -34s17 -12 23 -12c2 0 4 0 6 1z" />
+    <glyph glyph-name="ion-ios-game-controller-b" unicode="&#xf43b;" 
+d="M103 243c11 0 19 -8 19 -19s-8 -19 -19 -19s-19 8 -19 19s8 19 19 19zM434 199c21 -88 18 -152 -7 -164c-4 -2 -9 -3 -13 -3c-22 0 -45 24 -68 52c-26 32 -32 33 -110 33h-24c-78 0 -84 -1 -110 -33c-23 -28 -46 -52 -68 -52c-4 0 -9 1 -13 3c-25 12 -28 76 -7 164
+s43 136 88 149c10 3 18 4 26 4c28 0 47 -15 96 -15s68 15 96 15c8 0 16 -1 26 -4c45 -13 67 -61 88 -149zM103 184c22 0 39 18 39 40s-17 40 -39 40s-39 -18 -39 -40s17 -40 39 -40zM276 204c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20zM320 160
+c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20zM320 248c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20zM364 204c11 0 20 9 20 20s-9 20 -20 20s-20 -9 -20 -20s9 -20 20 -20z" />
+    <glyph glyph-name="ion-ios-gear-outline" unicode="&#xf43c;" horiz-adv-x="384" 
+d="M193 288c26 0 50 -10 68 -28s28 -42 28 -68s-10 -50 -28 -68s-42 -28 -68 -28s-50 10 -68 28s-28 42 -28 68s10 50 28 68s42 28 68 28zM193 112c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80zM138 365c-10 -3 -20 -7 -30 -12c2 -8 1 -16 0 -24
+c-2 -13 -8 -25 -18 -35c-12 -12 -29 -19 -46 -19c-4 0 -9 0 -13 1c-5 -10 -9 -20 -12 -30c7 -4 12 -10 17 -17c8 -11 12 -24 12 -37s-4 -26 -12 -37c-5 -7 -10 -13 -17 -17c3 -10 7 -20 12 -30c4 1 9 1 13 1c17 0 34 -7 46 -19c10 -10 16 -22 18 -35c1 -8 2 -16 0 -24
+c10 -5 20 -9 30 -12c4 7 10 12 17 17c11 8 24 12 37 12s26 -4 37 -12c7 -5 13 -10 17 -17c10 3 20 7 30 12c-2 8 -1 16 0 24c2 13 8 25 18 35c12 12 29 19 46 19c4 0 9 0 13 -1c5 10 9 20 12 30c-7 4 -12 10 -17 17c-8 11 -12 24 -12 37s4 26 12 37c5 7 10 13 17 17
+c-3 10 -7 20 -12 30c-4 -1 -9 -1 -13 -1c-17 0 -34 7 -46 19c-10 10 -16 22 -18 35c-1 8 -2 16 0 24c-10 5 -20 9 -30 12c-4 -7 -10 -12 -17 -17c-11 -8 -24 -12 -37 -12s-26 4 -37 12c-7 5 -13 10 -17 17zM238 384v0c20 -5 40 -13 57 -24c-8 -18 -5 -40 10 -55
+c10 -10 22 -14 35 -14c7 0 14 1 20 4c11 -17 19 -37 24 -57c-19 -7 -32 -25 -32 -46s14 -39 32 -46c-5 -20 -13 -40 -24 -57c-6 3 -13 4 -20 4c-13 0 -25 -4 -35 -14c-15 -15 -18 -37 -10 -55c-17 -11 -37 -19 -57 -24c-7 18 -25 32 -46 32s-39 -14 -46 -32
+c-20 5 -40 13 -57 24c8 18 5 40 -10 55c-10 10 -22 14 -35 14c-7 0 -14 -1 -20 -4c-11 17 -19 37 -24 57c18 7 32 25 32 46s-13 39 -32 46c5 20 13 40 24 57c6 -3 13 -4 20 -4c13 0 25 4 35 14c15 15 18 37 10 55c17 11 37 19 57 24c7 -19 25 -32 46 -32s39 13 46 32z" />
+    <glyph glyph-name="ion-ios-gear" unicode="&#xf43d;" horiz-adv-x="384" 
+d="M352 192c0 -21 14 -39 32 -46c-5 -20 -13 -40 -24 -57c-6 3 -13 4 -20 4c-13 0 -25 -4 -35 -14c-15 -15 -18 -37 -10 -55c-17 -11 -37 -19 -57 -24c-7 18 -25 32 -46 32s-39 -14 -46 -32c-20 5 -40 13 -57 24c8 18 5 40 -10 55c-10 10 -22 14 -35 14c-7 0 -14 -1 -20 -4
+c-11 17 -19 37 -24 57c18 7 32 25 32 46s-13 39 -32 46c5 20 13 40 24 57c6 -3 13 -4 20 -4c13 0 25 4 35 14c15 15 18 37 10 55c17 11 37 19 57 24c7 -19 25 -32 46 -32s39 13 46 32c20 -5 40 -13 57 -24c-8 -18 -5 -40 10 -55c10 -10 22 -14 35 -14c7 0 14 1 20 4
+c11 -17 19 -37 24 -57c-19 -7 -32 -25 -32 -46zM193 112c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80z" />
+    <glyph glyph-name="ion-ios-glasses-outline" unicode="&#xf43e;" 
+d="M433 201v0h15v-18h-15c-2 -22 -13 -43 -29 -58c-17 -16 -39 -25 -62 -25c-51 0 -92 41 -92 92v0v0c0 10 -12 22 -26 22s-26 -12 -26 -22v0v0c0 -51 -41 -92 -92 -92c-23 0 -45 9 -62 25c-16 15 -27 36 -29 58h-15v18h15c2 22 13 43 29 59c17 16 39 24 62 24
+c42 0 78 -27 89 -67c7 7 18 12 29 12s22 -5 29 -12c11 40 47 67 89 67c23 0 45 -9 62 -25c16 -15 27 -36 29 -58zM342 115c42 0 77 35 77 77s-35 77 -77 77s-77 -35 -77 -77s35 -77 77 -77zM106 115c42 0 77 35 77 77s-35 77 -77 77s-77 -35 -77 -77s35 -77 77 -77z" />
+    <glyph glyph-name="ion-ios-glasses" unicode="&#xf43f;" 
+d="M433 201v0h15v-18h-15c-2 -22 -13 -43 -29 -58c-17 -16 -39 -25 -62 -25c-51 0 -92 41 -92 92v0v0c0 10 -12 22 -26 22s-26 -12 -26 -22v0v0c0 -51 -41 -92 -92 -92c-23 0 -45 9 -62 25c-16 15 -27 36 -29 58h-15v18h15c2 22 13 43 29 59c17 16 39 24 62 24
+c42 0 78 -27 89 -67c7 7 18 12 29 12s22 -5 29 -12c11 40 47 67 89 67c23 0 45 -9 62 -25c16 -15 27 -36 29 -58z" />
+    <glyph glyph-name="ion-ios-grid-view-outline" unicode="&#xf440;" horiz-adv-x="384" 
+d="M384 256h-112v-128h112v-16h-112v-112h-16v112h-128v-112h-16v112h-112v16h112v128h-112v16h112v112h16v-112h128v112h16v-112h112v-16zM256 128v128h-128v-128h128z" />
+    <glyph glyph-name="ion-ios-grid-view" unicode="&#xf441;" horiz-adv-x="384" 
+d="M128 128v128h128v-128h-128zM0 384h384v-384h-384v384zM352 256v16h-80v80h-16v-80h-128v80h-16v-80h-80v-16h80v-128h-80v-16h80v-80h16v80h128v-80h16v80h80v16h-80v128h80z" />
+    <glyph glyph-name="ion-ios-heart-outline" unicode="&#xf442;" 
+d="M327 368c69 0 121 -43 121 -116c0 -31 -13 -71 -41 -105s-45 -52 -100 -88s-83 -43 -83 -43s-28 7 -83 43s-72 54 -100 88s-41 74 -41 105c0 73 52 116 121 116c39 0 82 -18 103 -53c21 35 64 53 103 53zM395 157c12 14 22 31 28 49c6 16 9 31 9 46c0 30 -10 56 -29 74
+c-9 8 -20 15 -33 19c-13 5 -28 7 -43 7c-38 0 -73 -18 -89 -45l-14 -23l-14 23c-16 27 -51 45 -89 45c-15 0 -30 -2 -43 -7c-13 -4 -24 -11 -33 -19c-19 -18 -29 -44 -29 -74c0 -15 3 -30 9 -46c6 -18 16 -35 28 -49c27 -32 42 -49 97 -85c40 -27 65 -36 74 -39
+c9 3 34 12 74 39c55 36 70 53 97 85z" />
+    <glyph glyph-name="ion-ios-heart" unicode="&#xf443;" 
+d="M327 368c69 0 121 -43 121 -116c0 -31 -13 -71 -41 -105s-45 -52 -100 -88s-83 -43 -83 -43s-28 7 -83 43s-72 54 -100 88s-41 74 -41 105c0 73 52 116 121 116c39 0 82 -18 103 -53c21 35 64 53 103 53z" />
+    <glyph glyph-name="ion-ios-help-empty" unicode="&#xf444;" horiz-adv-x="128" 
+d="M68 82c-9 0 -17 8 -17 17s8 17 17 17s17 -8 17 -17s-8 -17 -17 -17zM102 197c-23 -22 -22 -27 -23 -53h-19c1 28 7 43 30 64c11 10 19 24 19 39c0 24 -19 39 -42 39c-32 0 -49 -16 -48 -46h-19c0 42 25 62 68 62c33 0 60 -20 60 -54c0 -22 -11 -37 -26 -51z" />
+    <glyph glyph-name="ion-ios-help-outline" unicode="&#xf445;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191zM212 302c33 0 60 -21 60 -55c0 -22 -11 -36 -26 -50c-23 -23 -22 -27 -23 -53h-19
+c1 28 7 43 30 64c11 10 19 23 19 38c0 24 -19 40 -42 40c-32 0 -49 -16 -48 -46h-19c0 42 25 62 68 62zM212 116c9 0 17 -8 17 -17s-8 -17 -17 -17s-17 8 -17 17s8 17 17 17z" />
+    <glyph glyph-name="ion-ios-help" unicode="&#xf446;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM212 82c9 0 17 8 17 17s-8 17 -17 17s-17 -8 -17 -17s8 -17 17 -17zM246 197c15 14 26 29 26 51c0 34 -27 54 -60 54c-43 0 -68 -20 -68 -62h19c-1 30 16 46 48 46
+c23 0 42 -15 42 -39c0 -15 -8 -29 -19 -39c-23 -21 -29 -36 -30 -64h19c1 26 0 31 23 53z" />
+    <glyph glyph-name="ion-ios-home-outline" unicode="&#xf447;" horiz-adv-x="384" 
+d="M192 336l160 -128v-208h-112v128h-96v-128h-112v208zM336 16v184l-144 116l-144 -116v-184h80v128h128v-128h80zM192 384l192 -153l-12 -12l-180 145l-180 -145l-12 12l32 25v96h64v-45zM80 294v42h-32v-67z" />
+    <glyph glyph-name="ion-ios-home" unicode="&#xf448;" horiz-adv-x="384" 
+d="M192 336l160 -128v-208h-112v128h-96v-128h-112v208zM192 384l192 -153l-12 -12l-180 145l-180 -145l-12 12l32 25v96h64v-45z" />
+    <glyph glyph-name="ion-ios-infinite-outline" unicode="&#xf449;" 
+d="M419 260c19 -19 29 -43 29 -68s-10 -49 -29 -68c-19 -18 -44 -28 -70 -28s-50 10 -69 28l-126 123c-15 15 -35 22 -56 22s-40 -7 -55 -22c-31 -30 -31 -80 0 -110c15 -15 34 -22 55 -22s41 7 56 22l43 42l13 -14l-42 -41c-19 -18 -44 -28 -70 -28s-50 10 -69 28
+c-19 19 -29 43 -29 68s10 49 29 68c19 18 43 28 69 28s51 -10 70 -28l126 -123c15 -15 34 -22 55 -22s41 7 56 22c31 30 31 80 0 110c-15 15 -35 22 -56 22s-40 -7 -55 -22l-43 -42l-13 14l42 41c19 18 44 28 70 28s50 -10 69 -28z" />
+    <glyph glyph-name="ion-ios-infinite" unicode="&#xf44a;" horiz-adv-x="464" 
+d="M433 266c20 -20 31 -46 31 -74s-11 -54 -31 -74s-48 -30 -76 -30s-55 10 -75 30l-125 123c-13 13 -32 20 -51 20s-37 -7 -50 -20s-21 -31 -21 -49c0 -19 8 -36 21 -49s31 -20 50 -20s38 7 51 20l39 38l25 -25l-39 -38c-20 -20 -48 -30 -76 -30s-55 10 -75 30
+s-31 46 -31 74s11 54 31 74s47 30 75 30s56 -10 76 -30l125 -123c13 -13 31 -20 50 -20s38 7 51 20s20 31 20 49c0 19 -7 36 -20 49s-32 20 -51 20s-37 -7 -50 -20l-39 -38l-25 25l39 38c20 20 48 30 76 30s55 -10 75 -30z" />
+    <glyph glyph-name="ion-ios-information-empty" unicode="&#xf44b;" horiz-adv-x="64" 
+d="M8 276c0 13 7 20 20 20s20 -7 20 -20s-7 -20 -20 -20s-20 7 -20 20zM48 104h16v-8h-64v8h16v120h-16v8h48v-128z" />
+    <glyph glyph-name="ion-ios-information-outline" unicode="&#xf44c;" horiz-adv-x="416" 
+d="M184 276c0 13 7 20 20 20s20 -7 20 -20s-7 -20 -20 -20s-20 7 -20 20zM224 104h16v-8h-64v8h16v120h-16v8h48v-128zM208 400c57 0 106 -20 147 -61s61 -90 61 -147s-20 -106 -61 -147s-90 -61 -147 -61s-106 20 -147 61s-61 90 -61 147s20 106 61 147s90 61 147 61z
+M208 1c53 0 98 19 135 56s56 82 56 135s-19 98 -56 135s-82 56 -135 56s-98 -19 -135 -56s-56 -82 -56 -135s19 -98 56 -135s82 -56 135 -56z" />
+    <glyph glyph-name="ion-ios-information" unicode="&#xf44d;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM204 296c-11 0 -20 -9 -20 -20s9 -20 20 -20s20 9 20 20s-9 20 -20 20zM240 96v8h-16v128h-48v-8h16v-120h-16v-8h64z" />
+    <glyph glyph-name="ion-ios-ionic-outline" unicode="&#xf44e;" horiz-adv-x="416" 
+d="M378 313c24 -34 38 -76 38 -121c0 -115 -92 -208 -207 -208s-209 93 -209 208s94 208 209 208c45 0 86 -14 120 -38c6 5 13 8 21 8c19 0 35 -16 35 -35c0 -8 -2 -16 -7 -22zM350 357c-12 0 -22 -10 -22 -22s10 -22 22 -22s22 10 22 22s-10 22 -22 22zM344 56
+c18 18 31 39 41 62c10 24 15 48 15 74s-5 51 -15 75c-5 13 -12 25 -20 36c-5 -2 -10 -3 -15 -3c-19 0 -35 16 -35 35c0 5 2 11 4 15c-11 8 -23 15 -36 20c-24 10 -49 14 -75 14s-51 -4 -75 -14c-23 -10 -43 -24 -61 -42s-31 -38 -41 -61c-10 -24 -15 -49 -15 -75
+s5 -50 15 -74c10 -23 23 -44 41 -62s38 -31 61 -41c24 -10 49 -15 75 -15s51 5 75 15c23 10 43 23 61 41zM208 288c53 0 96 -43 96 -96s-43 -96 -96 -96s-96 43 -96 96s43 96 96 96zM208 112c44 0 80 36 80 80s-36 80 -80 80s-79 -36 -79 -80s35 -80 79 -80z" />
+    <glyph glyph-name="ion-ios-keypad-outline" unicode="&#xf44f;" horiz-adv-x="384" 
+d="M331 107c30 0 53 -24 53 -54s-23 -53 -53 -53s-54 23 -54 53s24 54 54 54zM331 16c21 0 37 16 37 37s-16 38 -37 38s-38 -17 -38 -38s17 -37 38 -37zM192 107c30 0 53 -24 53 -54s-23 -53 -53 -53s-53 23 -53 53s23 54 53 54zM192 16c21 0 37 16 37 37s-16 38 -37 38
+s-37 -17 -37 -38s16 -37 37 -37zM53 107c30 0 54 -24 54 -54s-24 -53 -54 -53s-53 23 -53 53s23 54 53 54zM53 16c21 0 38 16 38 37s-17 38 -38 38s-37 -17 -37 -38s16 -37 37 -37zM331 245c30 0 53 -23 53 -53s-23 -53 -53 -53s-54 23 -54 53s24 53 54 53zM331 155
+c21 0 37 16 37 37s-16 37 -37 37s-38 -16 -38 -37s17 -37 38 -37zM192 245c30 0 53 -23 53 -53s-23 -53 -53 -53s-53 23 -53 53s23 53 53 53zM192 155c21 0 37 16 37 37s-16 37 -37 37s-37 -16 -37 -37s16 -37 37 -37zM53 245c30 0 54 -23 54 -53s-24 -53 -54 -53
+s-53 23 -53 53s23 53 53 53zM53 155c21 0 38 16 38 37s-17 37 -38 37s-37 -16 -37 -37s16 -37 37 -37zM331 277c-30 0 -54 24 -54 54s24 53 54 53s53 -23 53 -53s-23 -54 -53 -54zM331 368c-21 0 -38 -16 -38 -37s17 -38 38 -38s37 17 37 38s-16 37 -37 37zM192 384
+c30 0 53 -23 53 -53s-23 -54 -53 -54s-53 24 -53 54s23 53 53 53zM192 293c21 0 37 17 37 38s-16 37 -37 37s-37 -16 -37 -37s16 -38 37 -38zM53 384c30 0 54 -23 54 -53s-24 -54 -54 -54s-53 24 -53 54s23 53 53 53zM53 293c21 0 38 17 38 38s-17 37 -38 37
+s-37 -16 -37 -37s16 -38 37 -38z" />
+    <glyph glyph-name="ion-ios-keypad" unicode="&#xf450;" horiz-adv-x="384" 
+d="M331 107c30 0 53 -24 53 -54s-23 -53 -53 -53s-54 23 -54 53s24 54 54 54zM192 107c30 0 53 -24 53 -54s-23 -53 -53 -53s-53 23 -53 53s23 54 53 54zM53 107c30 0 54 -24 54 -54s-24 -53 -54 -53s-53 23 -53 53s23 54 53 54zM331 245c30 0 53 -23 53 -53
+s-23 -53 -53 -53s-54 23 -54 53s24 53 54 53zM192 245c30 0 53 -23 53 -53s-23 -53 -53 -53s-53 23 -53 53s23 53 53 53zM53 245c30 0 54 -23 54 -53s-24 -53 -54 -53s-53 23 -53 53s23 53 53 53zM331 277c-30 0 -54 24 -54 54s24 53 54 53s53 -23 53 -53s-23 -54 -53 -54z
+M192 384c30 0 53 -23 53 -53s-23 -54 -53 -54s-53 24 -53 54s23 53 53 53zM53 384c30 0 54 -23 54 -53s-24 -54 -54 -54s-53 24 -53 54s23 53 53 53z" />
+    <glyph glyph-name="ion-ios-lightbulb-outline" unicode="&#xf451;" horiz-adv-x="288" 
+d="M288 275c0 -31 -13 -59 -30 -83v0c-11 -15 -22 -28 -32 -45c-22 -38 -18 -73 -18 -82v-1h-128v1c0 7 3 44 -19 82c-10 17 -20 30 -31 45v0c-17 24 -30 52 -30 83c0 78 66 141 144 141s144 -63 144 -141zM239 194l6 8c16 22 27 47 27 73c0 33 -16 65 -40 89s-55 36 -88 36
+s-64 -12 -88 -36s-40 -56 -40 -89c0 -26 11 -51 27 -73l19 -26v0c5 -6 9 -13 13 -21c17 -29 21 -58 21 -75h16v112l-32 64h17l31 -64v-112h32v112l31 64h17l-32 -64v-112h16c0 17 4 45 21 75c8 14 16 25 24 36c1 1 1 2 2 3zM112 -32v16h64v-16h-64zM96 0v16h96v-16h-96z
+M96 32v16h96v-16h-96z" />
+    <glyph glyph-name="ion-ios-lightbulb" unicode="&#xf452;" horiz-adv-x="288" 
+d="M288 275c0 -31 -13 -59 -30 -83v0c-11 -15 -22 -28 -32 -45c-22 -38 -18 -73 -18 -82v-1h-32v128l32 64h-16l-32 -64v-128h-32v128l-31 64h-17l32 -64v-128h-32v1c0 7 3 44 -19 82c-10 17 -20 30 -31 45v0c-17 24 -30 52 -30 83c0 78 66 141 144 141s144 -63 144 -141z
+M112 -32v16h64v-16h-64zM96 0v16h96v-16h-96zM96 32v16h96v-16h-96z" />
+    <glyph glyph-name="ion-ios-list-outline" unicode="&#xf453;" horiz-adv-x="384" 
+d="M368 368h-352v-352h352v352zM384 384v0v-384h-384v384h384zM128 280v16h192v-16h-192zM128 184v16h192v-16h-192zM128 88v16h192v-16h-192zM64 288c0 11 5 16 16 16s16 -5 16 -16s-5 -16 -16 -16s-16 5 -16 16zM64 192c0 11 5 16 16 16s16 -5 16 -16s-5 -16 -16 -16
+s-16 5 -16 16zM64 96c0 11 5 16 16 16s16 -5 16 -16s-5 -16 -16 -16s-16 5 -16 16z" />
+    <glyph glyph-name="ion-ios-list" unicode="&#xf454;" horiz-adv-x="384" 
+d="M0 384h384v-384h-384v384zM80 80c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM80 176c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM80 272c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM320 88v16h-192v-16h192zM320 184v16
+h-192v-16h192zM320 280v16h-192v-16h192z" />
+    <glyph glyph-name="ion-ios-location-outline" unicode="&#xf455;" horiz-adv-x="288" 
+d="M144 400c-34 0 -67 -13 -91 -37s-37 -57 -37 -91c0 -43 24 -107 70 -186c22 -38 44 -72 58 -91c14 19 36 53 58 91c46 79 70 143 70 186c0 34 -13 67 -37 91s-57 37 -91 37zM144 416v0c80 0 144 -64 144 -144c0 -112 -144 -304 -144 -304s-144 192 -144 304
+c0 80 64 144 144 144zM144 336c35 0 64 -29 64 -64s-29 -64 -64 -64s-64 29 -64 64s29 64 64 64zM144 225c26 0 47 21 47 47s-21 47 -47 47s-47 -21 -47 -47s21 -47 47 -47z" />
+    <glyph glyph-name="ion-ios-location" unicode="&#xf456;" horiz-adv-x="288" 
+d="M144 416c80 0 144 -64 144 -144c0 -112 -144 -304 -144 -304s-144 192 -144 304c0 80 64 144 144 144zM144 225c26 0 47 21 47 47s-21 47 -47 47s-47 -21 -47 -47s21 -47 47 -47z" />
+    <glyph glyph-name="ion-ios-locked-outline" unicode="&#xf457;" horiz-adv-x="320" 
+d="M264 224h56v-240h-320v240h56v72c0 57 47 104 104 104s104 -47 104 -104v-72zM72 296v-72h176v72c0 49 -39 88 -88 88s-88 -39 -88 -88zM304 0v208h-288v-208h288zM160 160c18 0 32 -14 32 -32c0 -15 -10 -27 -24 -31v-33h-16v33c-14 4 -24 16 -24 31c0 18 14 32 32 32z
+M160 112c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16z" />
+    <glyph glyph-name="ion-ios-locked" unicode="&#xf458;" horiz-adv-x="320" 
+d="M264 224h56v-240h-320v240h56v72c0 57 47 104 104 104s104 -47 104 -104v-72zM168 97c14 4 24 16 24 31c0 18 -14 32 -32 32s-32 -14 -32 -32c0 -15 10 -27 24 -31v-33h16v33zM248 224v72c0 49 -39 88 -88 88s-88 -39 -88 -88v-72h176zM160 144c9 0 16 -7 16 -16
+s-7 -16 -16 -16s-16 7 -16 16s7 16 16 16z" />
+    <glyph glyph-name="ion-ios-loop-strong" unicode="&#xf459;" horiz-adv-x="512" 
+d="M256 400c115 0 208 -93 208 -208c0 -14 -1 -28 -4 -42l-1 -4l-24 5l1 4c2 12 4 24 4 37c0 101 -83 184 -184 184c-66 0 -127 -36 -160 -94l-2 -3l-21 11l2 4c37 65 106 106 181 106zM416 102l2 3l21 -11l-2 -4c-37 -65 -106 -106 -181 -106c-115 0 -208 93 -208 208
+c0 14 1 28 4 42l1 4l24 -5l-1 -4c-2 -12 -4 -24 -4 -37c0 -101 83 -184 184 -184c66 0 127 36 160 94zM384 192h128l-64 -64zM0 192l64 64l64 -64h-128z" />
+    <glyph glyph-name="ion-ios-loop" unicode="&#xf45a;" horiz-adv-x="489" 
+d="M478 192l11 -11l-52 -53l-53 53l10 11l43 -41zM449 192v0v0c0 -7 0 -14 -1 -21l-16 1c1 7 1 14 1 21c-1 103 -85 187 -188 187c-68 0 -131 -37 -164 -96l-14 8c36 64 104 104 178 104c112 0 203 -91 204 -202v0v-2zM409 100l14 -8c-36 -64 -104 -104 -178 -104
+c-111 0 -202 90 -204 200v0v3v1v0c0 7 0 14 1 21l16 -1c-1 -7 -1 -14 -1 -21c0 -103 85 -187 188 -187c68 0 131 37 164 96zM53 256l52 -53l-11 -11l-41 41l-42 -41l-11 11z" />
+    <glyph glyph-name="ion-ios-medical-outline" unicode="&#xf45b;" horiz-adv-x="364" 
+d="M364 260l-118 -68l118 -68l-32 -56l-118 69v-137h-64v137l-118 -69l-32 56l118 68l-118 68l32 56l118 -69v137h64v-137l118 69zM342 118l-128 74l128 74l-16 28l-128 -74v148h-32v-148l-128 74l-16 -28l128 -74l-128 -74l16 -28l128 74v-148h32v148l128 -74z" />
+    <glyph glyph-name="ion-ios-medical" unicode="&#xf45c;" horiz-adv-x="364" 
+d="M364 260l-118 -68l118 -68l-32 -56l-118 69v-137h-64v137l-118 -69l-32 56l118 68l-118 68l32 56l118 -69v137h64v-137l118 69z" />
+    <glyph glyph-name="ion-ios-medkit-outline" unicode="&#xf45d;" horiz-adv-x="416" 
+d="M224 240h-32v-48v-16h-16h-48v-32h48h16v-16v-48h32v48v16h16h48v32h-48h-16v16v48zM240 256v0v-64h64v-64h-64v-64h-64v64h-64v64h64v64h64zM288 320h128v-320h-416v320h128v32c0 18 10 32 29 32h99c19 0 32 -14 32 -32v-32zM144 350v-30h128v30c0 10 -7 18 -17 18h-97
+c-11 0 -14 -8 -14 -18zM400 16v288h-384v-288h384z" />
+    <glyph glyph-name="ion-ios-medkit" unicode="&#xf45e;" horiz-adv-x="416" 
+d="M224 176h16h48v-32h-48h-16v-16v-48h-32v48v16h-16h-48v32h48h16v16v48h32v-48v-16zM288 320h128v-320h-416v320h128v32c0 18 10 32 29 32h99c19 0 32 -14 32 -32v-32zM144 350v-30h128v30c0 10 -7 18 -17 18h-97c-11 0 -14 -8 -14 -18zM304 128v64h-64v64h-64v-64h-64
+v-64h64v-64h64v64h64z" />
+    <glyph glyph-name="ion-ios-mic-off" unicode="&#xf45f;" horiz-adv-x="280" 
+d="M266 -32l-258 440l14 8l258 -440zM128 95c-44 0 -79 37 -79 83v118l113 -193c-10 -5 -22 -8 -34 -8zM207 178c0 -10 -2 -19 -5 -28l-136 234c14 20 37 32 62 32c44 0 79 -38 79 -84v-154zM256 176c0 -28 -9 -54 -24 -75l-10 17c11 17 17 36 17 58v80h17v-80zM139 49v0
+v-63h69v-18h-161v18h73v63c-67 5 -120 60 -120 127v80h19v-80c0 -60 50 -109 110 -109c17 0 34 4 48 11l9 -16c-14 -7 -30 -12 -47 -13z" />
+    <glyph glyph-name="ion-ios-mic-outline" unicode="&#xf460;" horiz-adv-x="256" 
+d="M128 416c44 0 79 -38 79 -84v-154c0 -46 -35 -84 -79 -84s-79 38 -79 84v154c0 46 35 84 79 84zM191 178v154c0 37 -28 68 -63 68s-63 -31 -63 -68v-154c0 -37 28 -68 63 -68s63 31 63 68zM239 256h17v-80c0 -67 -51 -122 -117 -127v-63h69v-18h-161v18h73v63
+c-67 5 -120 60 -120 127v80h19v-80c0 -60 50 -109 110 -109s110 49 110 109v80z" />
+    <glyph glyph-name="ion-ios-mic" unicode="&#xf461;" horiz-adv-x="256" 
+d="M128 94c-44 0 -79 38 -79 84v154c0 46 35 84 79 84s79 -38 79 -84v-154c0 -46 -35 -84 -79 -84zM239 256h17v-80c0 -67 -51 -122 -117 -127v-63h69v-18h-161v18h73v63c-67 5 -120 60 -120 127v80h19v-80c0 -60 50 -109 110 -109s110 49 110 109v80z" />
+    <glyph glyph-name="ion-ios-minus-empty" unicode="&#xf462;" horiz-adv-x="256" 
+d="M256 183h-256v17h256v-17z" />
+    <glyph glyph-name="ion-ios-minus-outline" unicode="&#xf463;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191zM80 183v17h256v-17h-256z" />
+    <glyph glyph-name="ion-ios-minus" unicode="&#xf464;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM336 183v17h-256v-17h256z" />
+    <glyph glyph-name="ion-ios-monitor-outline" unicode="&#xf465;" horiz-adv-x="480" 
+d="M480 64h-176v-16h64v-16h-257v16h64v16h-175v288h480v-288zM16 336v-256h448v256h-448z" />
+    <glyph glyph-name="ion-ios-monitor" unicode="&#xf466;" horiz-adv-x="480" 
+d="M480 64h-176v-16h64v-16h-257v16h64v16h-175v288h480v-288zM16 336v-256h448v256h-448zM32 96v224h416v-224h-416z" />
+    <glyph glyph-name="ion-ios-moon-outline" unicode="&#xf467;" horiz-adv-x="216" 
+d="M195 133c7 0 14 1 21 3c-4 -7 -7 -12 -12 -18c-21 -25 -53 -41 -88 -41c-64 0 -116 51 -116 115c0 52 34 96 81 111c7 2 14 3 22 4c-4 -6 -8 -12 -11 -18c-7 -14 -11 -30 -11 -47c0 -29 11 -56 32 -77s48 -32 77 -32h5zM116 93c25 0 48 9 65 24c-65 5 -116 59 -116 125
+c0 14 2 28 6 40c-33 -16 -55 -51 -55 -90c0 -55 45 -99 100 -99z" />
+    <glyph glyph-name="ion-ios-moon" unicode="&#xf468;" horiz-adv-x="216" 
+d="M195 133c7 0 14 1 21 3c-4 -7 -7 -12 -12 -18c-21 -25 -53 -41 -88 -41c-64 0 -116 51 -116 115c0 52 34 96 81 111c7 2 14 3 22 4c-4 -6 -8 -12 -11 -18c-7 -14 -11 -30 -11 -47c0 -29 11 -56 32 -77s48 -32 77 -32h5z" />
+    <glyph glyph-name="ion-ios-more-outline" unicode="&#xf469;" horiz-adv-x="320" 
+d="M160 210c-10 0 -18 -8 -18 -18s8 -18 18 -18s18 8 18 18s-8 18 -18 18zM160 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM32 210c-10 0 -18 -8 -18 -18s8 -18 18 -18s18 8 18 18s-8 18 -18 18zM32 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32
+s-32 14 -32 32s14 32 32 32zM288 210c-10 0 -18 -8 -18 -18s8 -18 18 -18s18 8 18 18s-8 18 -18 18zM288 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32z" />
+    <glyph glyph-name="ion-ios-more" unicode="&#xf46a;" horiz-adv-x="320" 
+d="M160 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM32 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM288 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32z" />
+    <glyph glyph-name="ion-ios-musical-note" unicode="&#xf46b;" horiz-adv-x="192" 
+d="M192 346v-1v-65c0 -3 -3 -6 -6 -5v0l-73 13v-192c0 -33 1 -80 -51 -82c-48 -2 -62 16 -62 41c0 19 9 39 51 41c22 1 37 1 45 1v273l90 -19l2 -1c2 0 3 -1 4 -3v0v-1v0z" />
+    <glyph glyph-name="ion-ios-musical-notes" unicode="&#xf46c;" horiz-adv-x="320" 
+d="M320 128c0 -34 4 -80 -49 -82c-49 -2 -62 16 -62 41c0 20 9 39 52 41c23 1 34 2 43 2v160l-191 -32v-161c0 -34 3 -81 -50 -83c-49 -2 -63 17 -63 42c0 20 9 39 52 41c23 1 35 1 44 1v237l224 35v-242z" />
+    <glyph glyph-name="ion-ios-navigate-outline" unicode="&#xf46d;" horiz-adv-x="416" 
+d="M208 384c-51 0 -99 -21 -135 -57s-57 -84 -57 -135s21 -99 57 -135s84 -57 135 -57s99 21 135 57s57 84 57 135s-21 99 -57 135s-84 57 -135 57zM208 400v0c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM304 288l-96 -224v128h-128z" />
+    <glyph glyph-name="ion-ios-navigate" unicode="&#xf46e;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 64l96 224l-224 -96h128v-128z" />
+    <glyph glyph-name="ion-ios-nutrition-outline" unicode="&#xf46f;" horiz-adv-x="384" 
+d="M294 214v0c6 -6 10 -14 10 -23c0 -11 -5 -20 -13 -26v0s-51 -37 -106 -77l-38 31c-2 2 -4 3 -6 3c-1 0 -2 0 -3 -1v0c-2 -2 -2 -6 1 -10l29 -35l-115 -84c-6 -4 -13 -8 -21 -8c-18 0 -32 14 -32 32c0 7 1 13 4 18v0c2 2 17 25 37 57l21 -17c2 -2 4 -2 6 -2c1 0 3 0 4 1v0
+c2 2 1 6 -2 10l-19 23c27 43 60 96 84 134l36 -30c2 -2 4 -3 6 -3c1 0 2 1 3 2v0c2 2 2 5 -1 9l-33 40c11 18 19 29 19 29v0c6 10 15 16 27 16c9 0 18 -4 24 -10v0l78 -79v0v0zM282 178c4 3 6 8 6 13c0 4 -2 9 -5 12l-5 4v1l-69 69v0l-5 5c-3 3 -8 5 -12 5
+c-6 0 -10 -3 -13 -8l-5 -8c-2 -3 -5 -7 -8 -12l25 -30v0l1 -1c8 -10 8 -22 0 -30l-1 -1l-1 -1c-4 -3 -8 -5 -13 -5s-11 2 -16 6v1h-1l-21 18l-24 -39l-44 -70l12 -14v0v0c8 -10 8 -23 0 -31v0c-4 -4 -9 -6 -15 -6c-5 0 -11 2 -16 6v0v0l-7 5c-3 -5 -5 -9 -8 -13
+c-12 -19 -16 -26 -18 -29c-1 -3 -2 -6 -2 -9c0 -9 7 -16 16 -16c3 0 6 2 11 5l101 74l-18 22h-1v0c-8 10 -8 23 0 31v0v0v0c4 4 10 6 15 6s11 -2 16 -6v0h1l28 -24c49 36 93 68 96 70zM376 333l8 -14l-5 -3l-103 -60l-17 17l71 123l2 4l14 -8l-3 -4l-63 -111l91 53z" />
+    <glyph glyph-name="ion-ios-nutrition" unicode="&#xf470;" horiz-adv-x="384" 
+d="M295 214v0c6 -6 9 -13 9 -22c0 -11 -5 -20 -13 -26v0s-51 -38 -106 -78l-38 32c-4 3 -8 3 -10 1v0c-2 -2 -2 -6 1 -10l29 -35l-114 -84c-6 -4 -13 -8 -21 -8c-18 0 -32 14 -32 32c0 7 2 13 5 18v0c1 2 16 25 36 57l20 -17c4 -3 8 -3 10 -1v0c2 2 2 6 -1 10l-20 23
+c27 43 60 96 84 134l36 -30c4 -3 8 -3 10 -1v0c2 2 2 6 -1 10l-33 40c11 18 18 29 18 29v0c6 10 16 16 28 16c9 0 18 -4 24 -10v0l78 -79l1 -1v0zM384 309l-103 -59l-28 29l70 121l28 -16l-50 -85l67 38z" />
+    <glyph glyph-name="ion-ios-paper-outline" unicode="&#xf471;" horiz-adv-x="384" 
+d="M48 384h336v-353c0 -17 -14 -31 -31 -31h-322c-17 0 -31 14 -31 31v305h32v-16h-16v-289c0 -8 7 -15 15 -15h322c8 0 15 7 15 15v337h-304v-320h-16v320v16zM96 320v16h128v-16h-128zM96 240v16h240v-16h-240zM96 160v16h192v-16h-192zM96 80v16h240v-16h-240z" />
+    <glyph glyph-name="ion-ios-paper" unicode="&#xf472;" horiz-adv-x="384" 
+d="M48 384h336v-353c0 -17 -14 -31 -31 -31h-322c-17 0 -31 14 -31 31v305h32v-288h16v288v32v16zM96 336v-16h128v16h-128zM96 176v-16h192v16h-192zM336 80v16h-240v-16h240zM336 240v16h-240v-16h240z" />
+    <glyph glyph-name="ion-ios-paperplane-outline" unicode="&#xf473;" horiz-adv-x="320" 
+d="M0 198l320 154l-146 -320l-57 115zM132 152l41 -83l115 249zM286 320l-248 -121l83 -36z" />
+    <glyph glyph-name="ion-ios-paperplane" unicode="&#xf474;" horiz-adv-x="320" 
+d="M0 198l320 154l-214 -200zM320 352l-146 -320l-52 104z" />
+    <glyph glyph-name="ion-ios-partlysunny-outline" unicode="&#xf475;" horiz-adv-x="384" 
+d="M144 298v54h16v-54h-16zM0 192v16h55v-16h-55zM44 299l10 11l32 -32l-11 -11zM223 268l-11 11l32 32l11 -11zM56 96l-10 11l31 31l11 -11zM129 153c-4 -3 -8 -7 -12 -12c-23 12 -39 36 -39 63c0 39 32 71 71 71c21 0 40 -10 53 -25c-4 -2 -9 -4 -14 -8
+c-10 11 -23 17 -39 17c-30 0 -55 -25 -55 -55c0 -23 15 -43 35 -51zM235 208c-34 0 -63 -28 -63 -62v-12s1 -10 1 -10c-5 0 -12 -1 -14 -1c-19 -3 -33 -18 -33 -37c0 -10 3 -19 10 -26s16 -11 26 -11h157c27 0 49 22 49 49s-22 50 -49 50c-2 0 -4 -1 -6 -1l-14 -2l-3 14
+c-3 14 -11 26 -22 35s-25 14 -39 14zM235 224v0c37 0 68 -26 76 -61h8c36 0 65 -29 65 -65s-29 -66 -65 -66h-157c-28 0 -52 24 -52 53c0 27 21 51 47 53v8c0 43 35 78 78 78z" />
+    <glyph glyph-name="ion-ios-partlysunny" unicode="&#xf476;" horiz-adv-x="384" 
+d="M144 298v54h16v-54h-16zM0 192v16h55v-16h-55zM44 299l10 11l32 -32l-11 -11zM223 268l-11 11l32 32l11 -11zM56 96l-10 11l31 31l11 -11zM235 224v0c37 0 68 -26 76 -61h8c36 0 65 -29 65 -65s-29 -66 -65 -66h-157c-28 0 -52 24 -52 53c0 27 21 51 47 53v8
+c0 43 35 78 78 78zM201 252l1 -2v0c-31 -5 -62 -43 -62 -75c0 -2 1 -5 1 -7l-1 -1h-1c-11 -6 -18 -14 -22 -26v1v-1c-23 12 -39 36 -39 63c0 39 32 71 71 71c21 0 39 -9 52 -23z" />
+    <glyph glyph-name="ion-ios-pause-outline" unicode="&#xf477;" horiz-adv-x="256" 
+d="M63 336h-47v-288h47v288zM79 352v0v-320h-79v320h79zM240 336h-47v-288h47v288zM256 352v0v-320h-79v320h79z" />
+    <glyph glyph-name="ion-ios-pause" unicode="&#xf478;" horiz-adv-x="256" 
+d="M0 32v320h79v-320h-79zM177 32v320h79v-320h-79z" />
+    <glyph glyph-name="ion-ios-paw-outline" unicode="&#xf479;" horiz-adv-x="384" 
+d="M380 252c6 -17 5 -38 -3 -57c-10 -25 -31 -43 -51 -43c-5 0 -10 1 -15 3c-22 10 -30 45 -17 79c10 28 31 46 51 46c5 0 10 -1 14 -3c10 -4 17 -13 21 -25zM362 202c6 15 7 31 2 44c-2 5 -5 12 -12 15c-2 1 -4 2 -7 2c-13 0 -28 -15 -36 -36c-9 -25 -6 -50 8 -56
+c2 -1 5 -1 8 -1c14 0 29 13 37 32zM90 234c13 -34 5 -69 -17 -79c-5 -2 -10 -3 -15 -3c-20 0 -41 18 -51 43c-8 19 -9 40 -3 57c4 12 11 21 21 25c4 2 9 3 14 3c20 0 41 -18 51 -46zM67 171c14 6 17 31 8 56c-8 21 -23 36 -36 36c-3 0 -5 -1 -7 -2c-7 -3 -10 -10 -12 -15
+c-5 -13 -4 -29 2 -44c8 -19 23 -32 37 -32c3 0 6 0 8 1zM134 237c-28 1 -52 32 -56 69c-2 23 4 45 16 60c8 10 19 17 31 18h6c27 -1 46 -29 50 -67c3 -24 -1 -48 -13 -63c-8 -9 -17 -15 -28 -16c-2 0 -4 -1 -6 -1zM107 356c-10 -12 -14 -29 -12 -48c3 -29 21 -53 40 -54h3
+c6 1 12 4 17 10c10 12 12 31 10 51c-3 29 -17 52 -35 53h-3c-9 -1 -16 -7 -20 -12zM192 208c64 0 128 -76 128 -149c0 -22 -11 -40 -22 -47c-13 -9 -23 -12 -42 -12c-23 0 -29 8 -40 15c-8 5 -14 10 -24 10s-16 -5 -24 -10c-11 -7 -17 -15 -40 -15c-19 0 -29 3 -42 12
+c-11 7 -22 25 -22 47c0 73 64 149 128 149zM290 27c6 4 14 16 14 32c0 30 -14 64 -36 91c-11 13 -23 24 -36 31c-13 8 -27 11 -40 11s-27 -3 -40 -11c-13 -7 -25 -18 -36 -31c-22 -27 -36 -61 -36 -91c0 -16 8 -28 14 -32c11 -7 18 -10 34 -10c14 0 19 4 26 9c2 1 4 3 6 4
+c9 6 18 12 32 12s23 -6 32 -12c2 -1 4 -3 6 -4c7 -5 12 -9 26 -9c16 0 23 3 34 10zM244 238c-11 1 -20 7 -28 16c-12 15 -16 39 -13 63c4 38 23 66 50 67h7c12 -1 22 -8 30 -18c12 -15 18 -37 16 -60c-4 -37 -28 -67 -56 -68h-6zM219 315c-2 -20 0 -39 10 -51
+c5 -6 11 -9 17 -10h3c19 1 38 25 41 54c2 19 -3 36 -13 48c-4 5 -10 11 -19 12h-4c-18 -1 -32 -24 -35 -53z" />
+    <glyph glyph-name="ion-ios-paw" unicode="&#xf47a;" horiz-adv-x="384" 
+d="M380 252c6 -17 5 -38 -3 -57c-10 -25 -31 -43 -51 -43c-5 0 -10 1 -15 3c-22 10 -30 45 -17 79c10 28 31 46 51 46c5 0 10 -1 14 -3c10 -4 17 -13 21 -25zM90 234c13 -34 5 -69 -17 -79c-5 -2 -10 -3 -15 -3c-20 0 -41 18 -51 43c-8 19 -9 40 -3 57c4 12 11 21 21 25
+c4 2 9 3 14 3c20 0 41 -18 51 -46zM134 237c-28 1 -52 32 -56 69c-2 23 4 45 16 60c8 10 19 17 31 18h6c27 -1 46 -29 50 -67c3 -24 -1 -48 -13 -63c-8 -9 -17 -15 -28 -16c-2 0 -4 -1 -6 -1zM192 208c64 0 128 -76 128 -149c0 -22 -11 -40 -22 -47c-13 -9 -23 -12 -42 -12
+c-23 0 -29 8 -40 15c-8 5 -14 10 -24 10s-16 -5 -24 -10c-11 -7 -17 -15 -40 -15c-19 0 -29 3 -42 12c-11 7 -22 25 -22 47c0 73 64 149 128 149zM244 238c-11 1 -20 7 -28 16c-12 15 -16 39 -13 63c4 38 23 66 50 67h7c12 -1 22 -8 30 -18c12 -15 18 -37 16 -60
+c-4 -37 -28 -67 -56 -68h-6z" />
+    <glyph glyph-name="ion-ios-people-outline" unicode="&#xf47b;" 
+d="M224 336v0v0zM317 113c11 -4 -11 4 0 0c28 -10 46 -35 46 -65h-28h-250c0 22 9 42 27 55c15 11 31 12 49 16c7 1 24 5 26 13s1 15 1 23c0 3 0 3 -2 5c-4 4 -6 9 -8 14c-2 8 -3 16 -4 24c-9 -2 -10 16 -12 21c-1 4 -7 24 3 21c-3 5 -4 13 -5 19c-2 13 -2 26 3 39
+c10 26 37 39 64 38c26 -1 51 -16 59 -42c4 -12 3 -26 1 -39c-1 -5 -2 -11 -4 -15c10 3 4 -20 3 -23c-2 -5 -3 -21 -12 -19c-1 -10 -2 -22 -7 -31c-1 -2 -7 -8 -7 -10v-11c0 -5 0 -10 2 -15s10 -7 14 -8c14 -5 27 -5 41 -10zM115 84c-6 -6 9 10 0 0c-6 -6 -10 -12 -12 -20h4
+h238c-4 15 -17 27 -30 33s-28 4 -41 9s-25 9 -28 25c-2 11 -2 22 -2 33c0 2 7 7 8 9c3 5 4 11 5 17c1 5 0 12 4 15c5 4 7 7 9 13c2 8 3 12 -1 19c-3 5 0 8 1 13c3 11 4 24 2 36c-8 37 -62 45 -86 19c-12 -13 -12 -31 -9 -47c1 -6 6 -14 3 -19c-1 -3 -5 -6 -4 -10
+c2 -5 2 -11 4 -16c2 -4 4 -6 7 -8s3 -6 3 -9c1 -7 2 -17 6 -23c3 -4 8 -6 8 -11v-21c-1 -8 -2 -18 -8 -24c-7 -6 -18 -10 -27 -12c-11 -3 -23 -3 -33 -7c-8 -3 -15 -8 -21 -14zM112 126c-15 -7 9 4 0 0c-9 -5 -18 -11 -25 -19c-1 -2 -6 -11 -7 -11h-25h-55c0 20 13 34 31 40
+c6 2 27 4 30 11c2 5 0 11 0 16c-10 -1 -24 1 -32 7c-2 2 3 9 4 12l3 12c1 9 1 19 1 28c0 16 -1 34 8 48c8 13 23 18 38 18c24 0 43 -13 47 -37c3 -16 1 -32 2 -48c0 -8 2 -16 5 -24c1 -2 5 -7 3 -9l-6 -3c-5 -2 -11 -3 -17 -4c-1 0 -8 0 -9 -1s0 -9 0 -11c0 -4 1 -6 5 -7
+c6 -2 19 -3 23 -8c2 -3 1 -5 -2 -5c-8 -1 -15 -1 -22 -5zM71 112c6 10 16 18 26 24c-9 9 -5 26 -4 37c0 2 0 5 2 5h8c6 0 11 1 17 2c-7 23 0 47 -5 70c-3 16 -15 23 -31 23c-17 0 -27 -9 -30 -25c-4 -22 3 -46 -4 -68c9 -1 17 -2 26 -2c1 0 1 -28 1 -29
+c-1 -12 -8 -18 -19 -22c-12 -4 -29 -3 -36 -15h49zM368 96c-2 8 -10 14 -16 19c-8 6 -18 13 -28 15c-3 1 -16 -1 -13 5c2 4 9 5 13 6s15 2 16 7c0 1 1 14 0 14c-6 0 -12 1 -18 2c-4 1 -7 2 -11 4c-6 3 -2 6 0 11c14 32 -10 88 32 105c15 6 34 5 48 -3c15 -9 20 -27 20 -44
+c0 -20 -4 -44 7 -62c2 -3 4 -4 0 -6c-2 -1 -4 -1 -6 -2l-12 -3s-9 -1 -13 -1c0 -4 -2 -13 1 -17c6 -7 21 -7 29 -10c18 -6 31 -20 31 -40h-80zM367 123c4 -4 -5 5 0 0s8 -11 15 -11h16h28c-7 12 -26 11 -38 16c-11 4 -16 12 -17 24c0 2 -1 27 1 27c9 0 18 0 26 1
+c-7 23 1 47 -4 70c-3 15 -15 23 -30 23c-17 0 -28 -8 -31 -25c-4 -23 2 -46 -5 -68c6 -2 12 -2 18 -2s8 1 9 -5c1 -11 5 -28 -4 -37c6 -4 11 -8 16 -13z" />
+    <glyph glyph-name="ion-ios-people" unicode="&#xf47c;" 
+d="M317 113c11 -4 -11 4 0 0v0zM317 113c28 -10 46 -35 46 -65h-28h-250c0 22 9 42 27 55c15 11 31 12 49 16c7 1 24 5 26 13s1 15 1 23c0 3 0 3 -2 5c-4 4 -6 9 -8 14c-2 8 -3 16 -4 24c-9 -2 -10 16 -12 21c-1 4 -7 24 3 21c-3 5 -4 13 -5 19c-2 13 -2 26 3 39
+c10 26 37 39 64 38c26 -1 51 -16 59 -42c4 -12 3 -26 1 -39c-1 -5 -2 -11 -4 -15c10 3 4 -20 3 -23c-2 -5 -3 -21 -12 -19c-1 -10 -2 -22 -7 -31c-1 -2 -7 -8 -7 -10v-11c0 -5 0 -10 2 -15s10 -7 14 -8c14 -5 27 -5 41 -10zM111 126h2h-1h-1zM111 126c-9 -5 -17 -11 -24 -19
+c-1 -2 -6 -11 -7 -11h-25h-55c0 20 12 34 30 40c6 2 27 4 30 11c2 5 1 11 1 16c-10 -1 -24 1 -32 7c-2 2 3 9 4 12c1 4 2 7 3 11c1 9 1 19 1 28c0 16 -1 35 8 49c8 13 23 18 38 18c24 0 43 -13 47 -37c3 -16 1 -32 2 -48c0 -8 2 -16 5 -24c1 -2 5 -7 3 -9l-6 -3
+c-5 -2 -11 -3 -17 -4c-1 0 -8 0 -9 -1s0 -9 0 -11c0 -4 1 -6 5 -7c6 -2 19 -3 23 -8c2 -3 1 -5 -2 -5c-7 -1 -14 -2 -21 -5c2 1 2 2 -1 0c-8 -4 -4 -2 -1 0zM417 136c18 -6 31 -20 31 -40h-80c-2 8 -10 14 -16 19c-8 6 -18 13 -28 15c-3 1 -16 -1 -13 5c2 4 9 5 13 6
+s15 2 16 7c0 1 1 14 0 14c-6 0 -12 1 -18 2c-4 1 -7 2 -11 4c-6 3 -2 6 0 11c14 32 -10 88 32 105c15 6 34 5 48 -3c15 -9 20 -27 20 -44c0 -20 -4 -44 7 -62c2 -3 4 -4 0 -6c-2 -1 -4 -1 -6 -2l-12 -3s-9 -1 -13 -1c0 -4 -2 -13 1 -17c6 -7 21 -7 29 -10z" />
+    <glyph glyph-name="ion-ios-person-outline" unicode="&#xf47d;" horiz-adv-x="320" 
+d="M106 246v0v0zM267 84c13 -5 53 -20 53 -52h-160h-160c0 32 40 47 53 52s31 6 43 9c7 2 17 5 20 9s1 41 1 41s-6 10 -9 18s-7 32 -7 32s-7 0 -9 12c-2 13 -6 17 -6 27c0 9 5 10 5 10v0s-4 13 -5 42c-1 34 25 68 74 68s75 -34 74 -68c-1 -29 -5 -42 -5 -42v0s5 -1 5 -10
+c0 -10 -3 -15 -6 -28c-2 -12 -9 -12 -9 -12s-4 -23 -7 -31s-9 -18 -9 -18s-2 -37 1 -41s13 -7 20 -9c12 -3 30 -4 43 -9zM160 48v0h137c-2 3 -4 6 -8 8c-7 5 -16 9 -27 13c-7 2 -17 4 -26 5c-6 1 -10 2 -15 3c-3 1 -21 5 -29 15c-4 5 -6 12 -6 32c0 10 1 20 1 20v4l2 4
+c1 2 6 9 8 15c2 5 5 19 6 28c0 0 0 -1 1 4s8 4 9 8s3 7 5 18s-5 12 -5 17c0 4 1 5 1 5v0c0 1 4 14 4 38c0 13 -5 26 -14 35c-11 11 -25 16 -44 16c-18 0 -34 -5 -45 -16c-9 -9 -13 -22 -13 -35c1 -24 4 -37 4 -38v0s1 -3 0 -6c-1 -5 -6 -5 -4 -16s4 -14 5 -18s8 -3 9 -8
+s1 -4 1 -4c1 -9 4 -23 6 -28c2 -6 6 -13 8 -15l2 -4v-4s1 -10 1 -20c0 -20 -2 -27 -6 -32c-8 -10 -26 -14 -29 -15c-5 -1 -10 -2 -16 -3c-9 -1 -18 -3 -25 -5c-11 -4 -20 -8 -27 -13c-4 -2 -6 -5 -8 -8h137z" />
+    <glyph glyph-name="ion-ios-person" unicode="&#xf47e;" horiz-adv-x="320" 
+d="M267 84c13 -5 53 -20 53 -52h-160h-160c0 32 40 47 53 52s31 6 43 9c7 2 17 5 20 9s1 41 1 41s-6 10 -9 18s-7 32 -7 32s-7 0 -9 12c-2 13 -6 17 -6 27c0 9 5 10 5 10v0s-4 13 -5 42c-1 34 25 68 74 68s75 -34 74 -68c-1 -29 -5 -42 -5 -42v0s5 -1 5 -10
+c0 -10 -3 -15 -6 -28c-2 -12 -9 -12 -9 -12s-4 -23 -7 -31s-9 -18 -9 -18s-2 -37 1 -41s13 -7 20 -9c12 -3 30 -4 43 -9z" />
+    <glyph glyph-name="ion-ios-personadd-outline" unicode="&#xf47f;" horiz-adv-x="320" 
+d="M320 295v-14h-25v-25h-14v25h-25v14h25v25h14v-25h25zM106 246v0v0zM267 84c13 -5 53 -20 53 -52h-160h-160c0 32 40 47 53 52s31 6 43 9c7 2 17 5 20 9s1 41 1 41s-6 10 -9 18s-7 32 -7 32s-7 0 -9 12c-2 13 -6 17 -6 27c0 9 5 10 5 10v0s-4 13 -5 42c-1 34 25 68 74 68
+s75 -34 74 -68c-1 -29 -5 -42 -5 -42v0s5 -1 5 -10c0 -10 -3 -15 -6 -28c-2 -12 -9 -12 -9 -12s-4 -23 -7 -31s-9 -18 -9 -18s-2 -37 1 -41s13 -7 20 -9c12 -3 30 -4 43 -9zM160 48v0h137c-2 3 -4 6 -8 8c-7 5 -16 9 -27 13c-7 2 -17 4 -26 5c-6 1 -10 2 -15 3
+c-3 1 -21 5 -29 15c-4 5 -6 12 -6 32c0 10 1 20 1 20v4l2 4c1 2 6 9 8 15c2 5 5 19 6 28c0 0 0 -1 1 4s8 4 9 8s3 7 5 18s-5 12 -5 17c0 4 1 5 1 5v0c0 1 4 14 4 38c0 13 -5 26 -14 35c-11 11 -25 16 -44 16c-18 0 -34 -5 -45 -16c-9 -9 -13 -22 -13 -35c1 -24 4 -37 4 -38
+v0s1 -3 0 -6c-1 -5 -6 -5 -4 -16s4 -14 5 -18s8 -3 9 -8s1 -4 1 -4c1 -9 4 -23 6 -28c2 -6 6 -13 8 -15l2 -4v-4s1 -10 1 -20c0 -20 -2 -27 -6 -32c-8 -10 -26 -14 -29 -15c-5 -1 -10 -2 -16 -3c-9 -1 -18 -3 -25 -5c-11 -4 -20 -8 -27 -13c-4 -2 -6 -5 -8 -8h137z" />
+    <glyph glyph-name="ion-ios-personadd" unicode="&#xf480;" horiz-adv-x="320" 
+d="M320 295v-14h-25v-25h-14v25h-25v14h25v25h14v-25h25zM267 84c13 -5 53 -20 53 -52h-160h-160c0 32 40 47 53 52s31 6 43 9c7 2 17 5 20 9s1 41 1 41s-6 10 -9 18s-7 32 -7 32s-7 0 -9 12c-2 13 -6 17 -6 27c0 9 5 10 5 10v0s-4 13 -5 42c-1 34 25 68 74 68
+s75 -34 74 -68c-1 -29 -5 -42 -5 -42v0s5 -1 5 -10c0 -10 -3 -15 -6 -28c-2 -12 -9 -12 -9 -12s-4 -23 -7 -31s-9 -18 -9 -18s-2 -37 1 -41s13 -7 20 -9c12 -3 30 -4 43 -9z" />
+    <glyph glyph-name="ion-ios-photos-outline" unicode="&#xf481;" 
+d="M64 320h384v-320h-384v320zM432 16v288h-352v-288h352zM0 384h384v-48h-16v32h-352v-288h32v-16h-48v320z" />
+    <glyph glyph-name="ion-ios-photos" unicode="&#xf482;" 
+d="M64 320h384v-320h-384v320zM384 384v-48h-336v-272h-48v320h384z" />
+    <glyph glyph-name="ion-ios-pie-outline" unicode="&#xf483;" 
+d="M256 367v0v-207v-12l-12 -4l-180 -45c6 -13 13 -25 21 -36c12 -16 25 -30 41 -42c33 -24 73 -37 114 -37c26 0 51 5 75 15c23 10 43 23 61 41s31 38 41 61c10 24 15 49 15 75c0 51 -20 100 -56 136c-32 32 -75 51 -120 55zM240 384v0c115 0 208 -93 208 -208
+s-93 -208 -208 -208c-92 0 -171 60 -198 143l198 49v224zM208 400c-31 -1 -60 -7 -85 -18c-24 -11 -44 -26 -61 -46c-29 -34 -46 -80 -46 -127v0v0c0 -13 3 -46 12 -70l180 46v215zM224 416v0v-244l-205 -52c-19 32 -19 89 -19 89c0 91 58 207 218 207h6z" />
+    <glyph glyph-name="ion-ios-pie" unicode="&#xf484;" 
+d="M240 384v0c115 0 208 -93 208 -208s-93 -208 -208 -208c-92 0 -171 60 -198 143l198 49v224zM224 416v0v-244l-205 -52c-19 32 -19 89 -19 89c0 91 58 207 218 207h6z" />
+    <glyph glyph-name="ion-ios-pint-outline" unicode="&#xf485;" horiz-adv-x="224" 
+d="M224 278c0 -98 -32 -101 -32 -181c0 -40 16 -71 16 -99c0 -27 -9 -30 -32 -30h-128c-23 0 -32 2 -32 29c0 28 16 60 16 100c0 80 -32 83 -32 181c0 21 1 89 19 125c4 9 13 13 32 13h122c19 0 28 -4 32 -13c18 -36 19 -104 19 -125zM34 396c-8 -16 -14 -43 -17 -76h190
+c-3 33 -9 60 -17 76c-1 2 -1 1 -2 2c-2 1 -6 2 -15 2h-122c-9 0 -13 -1 -15 -2c-1 -1 -1 0 -2 -2zM191 -15c0 1 1 5 1 13c0 11 -4 23 -7 37c-4 18 -9 39 -9 62c0 41 8 64 16 86c8 23 16 46 16 95c0 9 -1 18 -1 26h-190c0 -8 -1 -17 -1 -26c0 -49 8 -72 16 -95
+c8 -22 16 -45 16 -86c0 -23 -5 -44 -9 -62c-3 -14 -7 -26 -7 -37c0 -8 1 -12 1 -13c2 -1 7 -1 15 -1h128c8 0 13 0 15 1z" />
+    <glyph glyph-name="ion-ios-pint" unicode="&#xf486;" horiz-adv-x="224" 
+d="M224 278c0 -98 -32 -101 -32 -181c0 -40 16 -71 16 -99c0 -27 -9 -30 -32 -30h-128c-23 0 -32 2 -32 29c0 28 16 60 16 100c0 80 -32 83 -32 181c0 21 1 89 19 125c4 9 13 13 32 13h122c19 0 28 -4 32 -13c18 -36 19 -104 19 -125zM34 396c-8 -16 -14 -43 -17 -76h190
+c-3 33 -9 60 -17 76c-1 2 -1 1 -2 2c-2 1 -6 2 -15 2h-122c-9 0 -13 -1 -15 -2c-1 -1 -1 0 -2 -2z" />
+    <glyph glyph-name="ion-ios-play-outline" unicode="&#xf487;" horiz-adv-x="256" 
+d="M16 323v-262l210 131zM0 352v0l256 -160l-256 -160v320z" />
+    <glyph glyph-name="ion-ios-play" unicode="&#xf488;" horiz-adv-x="256" 
+d="M0 352v0l256 -160l-256 -160v320z" />
+    <glyph glyph-name="ion-ios-plus-empty" unicode="&#xf489;" horiz-adv-x="256" 
+d="M256 183h-120v-119h-17v119h-119v17h119v120h17v-120h120v-17z" />
+    <glyph glyph-name="ion-ios-plus-outline" unicode="&#xf48a;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191zM216 320v-120h120v-17h-120v-119h-17v119h-119v17h119v120h17z" />
+    <glyph glyph-name="ion-ios-plus" unicode="&#xf48b;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM336 183v17h-120v120h-17v-120h-119v-17h119v-119h17v119h120z" />
+    <glyph glyph-name="ion-ios-pricetag-outline" unicode="&#xf48c;" horiz-adv-x="416" 
+d="M416 416v-160l-256 -288l-160 160l256 288h160zM400 264v136h-136l-240 -272l136 -136zM320 288c-18 0 -32 14 -32 32s14 32 32 32s32 -14 32 -32s-14 -32 -32 -32zM320 336c-9 0 -16 -7 -16 -16s7 -16 16 -16s16 7 16 16s-7 16 -16 16z" />
+    <glyph glyph-name="ion-ios-pricetag" unicode="&#xf48d;" horiz-adv-x="416" 
+d="M304 320c0 11 5 16 16 16s16 -5 16 -16s-5 -16 -16 -16s-16 5 -16 16zM256 416h160v-160l-256 -288l-160 160zM320 288c9 0 16 4 22 10s10 13 10 22s-4 16 -10 22s-13 10 -22 10s-16 -4 -22 -10s-10 -13 -10 -22s4 -16 10 -22s13 -10 22 -10z" />
+    <glyph glyph-name="ion-ios-pricetags-outline" unicode="&#xf48e;" 
+d="M416 384h32v-144l-240 -272l-25 24l-23 -24l-160 160l256 288h160v-32zM160 -9l12 12l11 12l217 248v105v16v16h-137l-241 -272zM432 247v121h-16v-112l-221 -253l13 -12zM320 288c-18 0 -32 14 -32 32s14 32 32 32s32 -14 32 -32s-14 -32 -32 -32zM320 336
+c-9 0 -16 -7 -16 -16s7 -16 16 -16s16 7 16 16s-7 16 -16 16z" />
+    <glyph glyph-name="ion-ios-pricetags" unicode="&#xf48f;" 
+d="M432 384h16v-144l-240 -272l-13 13l237 266v137zM256 416h160v-32v-16v-112l-221 -253l-12 -11l-23 -24l-160 160zM320 288c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM304 320c0 11 5 16 16 16s16 -5 16 -16s-5 -16 -16 -16s-16 5 -16 16z" />
+    <glyph glyph-name="ion-ios-printer-outline" unicode="&#xf490;" horiz-adv-x="416" 
+d="M384 336c18 0 32 -13 32 -31v-159c0 -18 -14 -32 -32 -32h-48v-114h-256v114h-48c-18 0 -32 14 -32 32v159c0 18 14 31 32 31h32v48h288v-48h32zM80 368v-32h256v32h-256zM320 16v192h-224v-192h224zM400 146v159c0 9 -7 15 -16 15v0h-352c-9 0 -16 -6 -16 -15v-159
+c0 -9 7 -16 16 -16h48v94h256v-94h48c9 0 16 7 16 16z" />
+    <glyph glyph-name="ion-ios-printer" unicode="&#xf491;" horiz-adv-x="416" 
+d="M80 0v224h256v-224h-256zM80 -0v224h256v-224h-256zM64 352v32h288v-32h-288zM385 336c18 0 31 -14 31 -31v-158c0 -17 -13 -34 -31 -34h-33v126h-288v-126h-31c-18 0 -33 17 -33 34v158c0 17 15 31 33 31h352z" />
+    <glyph glyph-name="ion-ios-pulse-strong" unicode="&#xf492;" horiz-adv-x="480" 
+d="M432 175c27 0 48 -20 48 -47s-21 -49 -48 -49c-21 0 -38 13 -45 31h-51c-7 0 -13 4 -15 11l-16 47l-50 -173c-2 -7 -8 -11 -15 -11h-1c-7 0 -14 5 -15 12l-51 308l-45 -182c-2 -7 -9 -12 -16 -12h-112v32h99l61 245c2 7 8 13 16 13s15 -7 16 -14l52 -314l45 155
+c2 7 8 11 15 11v0c7 0 13 -4 15 -11l29 -85h38c6 19 25 33 46 33z" />
+    <glyph glyph-name="ion-ios-pulse" unicode="&#xf493;" 
+d="M416 160c18 0 32 -14 32 -32s-14 -32 -32 -32c-15 0 -27 10 -31 23h-65c-3 0 -7 2 -8 5l-23 72l-57 -198c-1 -3 -4 -6 -8 -6v0c-4 0 -7 3 -8 7l-58 346l-54 -220c-1 -4 -4 -6 -8 -6h-96v16h90l62 251c1 4 4 6 8 6s7 -3 8 -7l58 -349l54 190c1 3 4 5 8 5s7 -2 8 -5l30 -91
+h59c3 14 16 25 31 25z" />
+    <glyph glyph-name="ion-ios-rainy-outline" unicode="&#xf494;" horiz-adv-x="288" 
+d="M220 269c38 0 68 -33 68 -71c0 -29 -19 -56 -45 -66l-55 -80c-2 -2 -5 -4 -8 -4c-5 0 -8 3 -8 8c0 2 1 4 2 6l46 66v0h-35l-31 -44c-2 -2 -4 -4 -7 -4c-5 0 -9 3 -9 8c0 2 1 3 2 5l25 35h-37l-53 -76c-2 -2 -4 -4 -7 -4c-5 0 -9 3 -9 8c0 2 2 4 3 6l46 66h-36l-32 -44
+c-2 -2 -4 -4 -7 -4c-5 0 -8 3 -8 8c0 2 1 4 2 6l25 34c-29 2 -52 27 -52 56c0 28 22 58 50 60c0 3 -1 5 -1 8c0 46 31 84 82 84c45 0 73 -31 81 -68c3 0 5 1 8 1zM220 146c28 0 52 24 52 52s-24 54 -52 54h-6l-15 -2l-3 15c-3 14 -11 31 -23 40c-12 10 -26 14 -41 14
+c-36 0 -66 -31 -66 -67v-12v-10c-6 0 -12 -2 -14 -2c-20 -3 -35 -23 -35 -43c0 -10 4 -20 11 -27s16 -12 26 -12h124v0v0h42z" />
+    <glyph glyph-name="ion-ios-rainy" unicode="&#xf495;" horiz-adv-x="288" 
+d="M220 269c38 0 68 -33 68 -71c0 -29 -19 -56 -45 -66l-55 -80c-2 -2 -5 -4 -8 -4c-5 0 -8 3 -8 8c0 2 1 4 2 6l46 66v0h-35l-31 -44c-2 -2 -4 -4 -7 -4c-5 0 -9 3 -9 8c0 2 1 3 2 5l25 35h-37l-53 -76c-2 -2 -4 -4 -7 -4c-5 0 -9 3 -9 8c0 2 2 4 3 6l46 66h-36l-32 -44
+c-2 -2 -4 -4 -7 -4c-5 0 -8 3 -8 8c0 2 1 4 2 6l25 34c-29 2 -52 27 -52 56c0 28 22 58 50 60c0 3 -1 5 -1 8c0 46 31 84 82 84c45 0 73 -31 81 -68c3 0 5 1 8 1z" />
+    <glyph glyph-name="ion-ios-recording-outline" unicode="&#xf496;" horiz-adv-x="480" 
+d="M370 304c61 0 110 -50 110 -112s-49 -112 -110 -112h-260c-61 0 -110 50 -110 112s49 112 110 112s110 -50 110 -112c0 -40 -21 -75 -53 -95h146c-32 20 -53 55 -53 95c0 62 49 112 110 112zM16 192c0 -53 42 -95 94 -95s93 42 93 95s-41 95 -93 95s-94 -42 -94 -95z
+M370 97c52 0 94 42 94 95s-42 95 -94 95s-93 -42 -93 -95s41 -95 93 -95zM368 240c-26 0 -48 -22 -48 -48s22 -48 48 -48s48 22 48 48s-22 48 -48 48zM368 256v0c35 0 64 -29 64 -64s-29 -64 -64 -64s-64 29 -64 64s29 64 64 64zM112 240c-26 0 -48 -22 -48 -48
+s22 -48 48 -48s48 22 48 48s-22 48 -48 48zM112 256v0c35 0 64 -29 64 -64s-29 -64 -64 -64s-64 29 -64 64s29 64 64 64z" />
+    <glyph glyph-name="ion-ios-recording" unicode="&#xf497;" horiz-adv-x="480" 
+d="M370 304c61 0 110 -50 110 -112s-49 -112 -110 -112h-260c-61 0 -110 50 -110 112s49 112 110 112s110 -50 110 -112c0 -40 -21 -76 -53 -95h146c-32 19 -53 55 -53 95c0 62 49 112 110 112zM112 128c35 0 64 29 64 64s-29 64 -64 64s-64 -29 -64 -64s29 -64 64 -64z
+M368 128c35 0 64 29 64 64s-29 64 -64 64s-64 -29 -64 -64s29 -64 64 -64zM368 240c26 0 48 -22 48 -48s-22 -48 -48 -48s-48 22 -48 48s22 48 48 48zM112 240c26 0 48 -22 48 -48s-22 -48 -48 -48s-48 22 -48 48s22 48 48 48z" />
+    <glyph glyph-name="ion-ios-redo-outline" unicode="&#xf498;" horiz-adv-x="384" 
+d="M0 48v32c0 17 -3 83 49 136c35 36 80 53 143 56v80l192 -128l-192 -128v80c-40 -1 -63 -9 -87 -20c-31 -14 -55 -44 -75 -77l-20 -31h-10zM208 256c-201 0 -192 -169 -192 -169c48 81 101 105 192 105v-65l148 97l-148 97v-65z" />
+    <glyph glyph-name="ion-ios-redo" unicode="&#xf499;" horiz-adv-x="384" 
+d="M0 48v32c0 17 -3 83 49 136c35 36 80 53 143 56v80l192 -128l-192 -128v80c-40 -1 -63 -9 -87 -20c-31 -14 -55 -44 -75 -77l-20 -31h-10z" />
+    <glyph glyph-name="ion-ios-refresh-empty" unicode="&#xf49a;" horiz-adv-x="256" 
+d="M128 64c-71 0 -128 57 -128 128s57 128 128 128v44l96 -64l-96 -56v56c-60 0 -108 -48 -108 -108s48 -108 108 -108s108 48 108 108h20c0 -71 -57 -128 -128 -128z" />
+    <glyph glyph-name="ion-ios-refresh-outline" unicode="&#xf49b;" horiz-adv-x="416" 
+d="M316 192v0h20c0 -71 -57 -128 -128 -128s-128 57 -128 128s57 128 128 128v44l96 -64l-96 -56v56c-60 0 -108 -48 -108 -108s48 -108 108 -108s108 48 108 108zM208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 1
+c105 0 191 86 191 191s-86 191 -191 191s-191 -86 -191 -191s86 -191 191 -191z" />
+    <glyph glyph-name="ion-ios-refresh" unicode="&#xf49c;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM208 64c71 0 128 57 128 128h-20c0 -60 -48 -108 -108 -108s-108 48 -108 108s48 108 108 108v-56l96 56l-96 64v-44c-71 0 -128 -57 -128 -128s57 -128 128 -128z" />
+    <glyph glyph-name="ion-ios-reload" unicode="&#xf49d;" 
+d="M192 384c106 0 192 -86 192 -192l55 53l9 -9l-70 -68l-67 68l9 9l51 -52c0 98 -80 178 -179 178s-179 -80 -179 -179s80 -179 179 -179c79 0 146 50 170 121l12 -3c-26 -76 -97 -131 -182 -131c-106 0 -192 86 -192 192s86 192 192 192z" />
+    <glyph glyph-name="ion-ios-reverse-camera-outline" unicode="&#xf49e;" horiz-adv-x="384" 
+d="M238 129l2 2l11 -12l-2 -2c-16 -14 -36 -21 -57 -21c-45 0 -82 36 -87 78h-30l38 50l39 -50h-31c5 -33 35 -62 71 -62c17 0 33 6 46 17zM252 249c16 -14 25 -37 27 -57h30l-38 -51l-39 51h31c-5 35 -35 64 -71 64c-17 0 -33 -6 -46 -17l-2 -2l-11 12l2 2
+c16 14 36 21 57 21c22 0 44 -8 60 -23zM354 288c18 0 30 -14 30 -31v-176c0 -17 -12 -33 -30 -33h-320c-18 0 -34 16 -34 33v176c0 17 16 31 34 31h13v16h34v-16h13c32 36 43 48 55 48h88c12 0 23 -12 55 -48h62zM368 81v176c0 9 -5 15 -14 15h-62h-6s-4 1 -6 3s-6 8 -9 11
+c-12 13 -21 24 -27 30c-5 5 -7 4 -7 4h-88s-1 0 -6 -4c-6 -5 -15 -14 -26 -27c-3 -4 -8 -11 -11 -14s-4 -3 -6 -3h-6h-60c-9 0 -18 -7 -18 -15v-176c0 -9 9 -17 18 -17h320c8 0 14 8 14 17z" />
+    <glyph glyph-name="ion-ios-reverse-camera" unicode="&#xf49f;" horiz-adv-x="384" 
+d="M354 288c18 0 30 -14 30 -31v-176c0 -17 -12 -33 -30 -33h-320c-18 0 -34 16 -34 33v176c0 17 16 31 34 31h13v16h34v-16h13c32 36 43 48 55 48h88c12 0 23 -12 55 -48h62zM249 117l2 2l-11 12l-2 -2c-13 -11 -29 -17 -46 -17c-36 0 -66 29 -71 62h31l-39 50l-38 -50h30
+c5 -42 42 -78 87 -78c21 0 41 7 57 21zM271 141l38 51h-30c-2 20 -11 43 -27 57c-16 15 -38 23 -60 23c-21 0 -41 -7 -57 -21l-2 -2l11 -12l2 2c13 11 29 17 46 17c36 0 66 -29 71 -64h-31z" />
+    <glyph glyph-name="ion-ios-rewind-outline" unicode="&#xf4a0;" 
+d="M432 293l-184 -101l184 -101v202zM208 292v0l-176 -100l176 -100v95v27v78zM224 320v0v-123l224 123v-256l-224 123v-123l-224 128z" />
+    <glyph glyph-name="ion-ios-rewind" unicode="&#xf4a1;" 
+d="M224 320v0v-123l224 123v-256l-224 123v-123l-224 128z" />
+    <glyph glyph-name="ion-ios-rose-outline" unicode="&#xf4a2;" horiz-adv-x="320" 
+d="M284 295c-4 -1 -9 -3 -13 -4c-37 -11 -71 -24 -103 -39c-17 -8 -24 -12 -44 -24l-7 -4c-31 -18 -50 -33 -63 -51c-15 -21 -22 -45 -22 -77c0 -16 3 -30 9 -44c6 -13 14 -26 25 -36c23 -21 55 -32 94 -32s71 11 94 32c11 10 19 23 25 36c6 14 9 28 9 44c0 20 -5 40 -11 60
+c-11 40 -23 83 7 139zM320 320v0c-77 -96 -16 -151 -16 -224s-56 -128 -144 -128s-144 55 -144 128s35 109 93 142c25 14 33 19 52 28c30 14 65 28 105 40c17 5 35 10 54 14zM38 325c14 -28 18 -57 19 -83c9 7 20 13 30 20c7 4 14 9 21 13c5 3 10 6 16 9c-5 4 -11 7 -17 11
+c-22 13 -48 23 -69 30zM0 352v0s66 -15 115 -43c15 -8 28 -18 37 -29c-12 -6 -24 -12 -36 -19c-7 -4 -14 -8 -20 -12c-25 -16 -44 -31 -57 -42c5 41 2 98 -39 145zM249 367c-8 -1 -20 -2 -35 -7c-25 -8 -47 -20 -64 -36c8 -6 15 -12 21 -18c29 12 65 26 95 34
+c-5 10 -12 20 -17 27zM256 384v0s26 -32 32 -55c-33 -8 -84 -25 -121 -42l-3 3c-9 11 -22 22 -39 32c52 60 131 62 131 62zM85 394c-6 -10 -10 -20 -14 -28c12 -4 22 -10 36 -17c4 5 9 10 14 14c-13 15 -27 25 -36 31zM80 416v0s35 -16 64 -56c-12 -9 -23 -20 -33 -31
+c-26 13 -40 21 -61 27c5 15 15 38 30 60z" />
+    <glyph glyph-name="ion-ios-rose" unicode="&#xf4a3;" horiz-adv-x="320" 
+d="M320 320v0c-77 -96 -16 -151 -16 -224s-56 -128 -144 -128s-144 55 -144 128s35 109 93 142c25 14 33 19 52 28c30 14 65 28 105 40c17 5 35 10 54 14zM0 352v0s66 -15 115 -43c15 -8 28 -18 37 -29c-12 -6 -24 -12 -36 -19c-7 -4 -14 -8 -20 -12
+c-25 -16 -44 -31 -57 -42c5 41 2 98 -39 145zM256 384v0s26 -32 32 -55c-33 -8 -84 -25 -121 -42l-3 3c-9 11 -22 22 -39 32c52 60 131 62 131 62zM80 416v0s35 -16 64 -56c-12 -9 -23 -20 -33 -31c-26 13 -40 21 -61 27c5 15 15 38 30 60z" />
+    <glyph glyph-name="ion-ios-search-strong" unicode="&#xf4a4;" horiz-adv-x="384" 
+d="M280 150l-4 -7l108 -109l-34 -34l-108 109l-7 -5c-24 -15 -53 -25 -83 -25c-84 0 -152 69 -152 153s68 152 152 152s152 -68 152 -152c0 -30 -9 -58 -24 -82zM237 317c-23 23 -53 35 -85 35s-62 -12 -85 -35s-35 -53 -35 -85s12 -62 35 -85s53 -35 85 -35s62 12 85 35
+s36 53 36 85s-13 62 -36 85z" />
+    <glyph glyph-name="ion-ios-search" unicode="&#xf4a5;" horiz-adv-x="384" 
+d="M384 23l-23 -23l-113 113c-26 -21 -60 -33 -96 -33c-84 0 -152 68 -152 152s68 152 152 152s152 -68 152 -152c0 -36 -12 -69 -33 -95zM56 135c26 -26 60 -39 96 -39s70 14 96 40s40 60 40 96s-14 70 -40 96s-60 40 -96 40s-70 -14 -96 -40s-40 -60 -40 -96
+s14 -71 40 -97z" />
+    <glyph glyph-name="ion-ios-settings-strong" unicode="&#xf4a6;" 
+d="M0 72h283c6 14 21 24 37 24s31 -10 37 -24h91v-32h-91c-6 -14 -21 -24 -37 -24s-31 10 -37 24h-283zM0 208h91c6 14 21 24 37 24s31 -10 37 -24h283v-32h-283c-6 -14 -21 -24 -37 -24s-31 10 -37 24h-91zM0 344h283c6 14 21 24 37 24s31 -10 37 -24h91v-32h-91
+c-6 -14 -21 -24 -37 -24s-31 10 -37 24h-283z" />
+    <glyph glyph-name="ion-ios-settings" unicode="&#xf4a7;" 
+d="M320 344c-9 0 -16 -7 -16 -16s7 -16 16 -16s16 7 16 16s-7 16 -16 16zM320 360v0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM320 72c-9 0 -16 -7 -16 -16s7 -16 16 -16s16 7 16 16s-7 16 -16 16zM320 88v0c18 0 32 -14 32 -32s-14 -32 -32 -32
+s-32 14 -32 32s14 32 32 32zM128 208c-9 0 -16 -7 -16 -16s7 -16 16 -16s16 7 16 16s-7 16 -16 16zM128 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM175 200h273v-16h-273c0 3 1 5 1 8s-1 5 -1 8zM80 192c0 -3 1 -5 1 -8h-81v16h81
+c0 -3 -1 -5 -1 -8zM367 64h81v-16h-81c0 3 1 5 1 8s-1 5 -1 8zM272 56c0 -3 1 -5 1 -8h-273v16h273c0 -3 -1 -5 -1 -8zM367 336h81v-16h-81c0 3 1 5 1 8s-1 5 -1 8zM273 336c0 -3 -1 -5 -1 -8s1 -5 1 -8h-273v16h273z" />
+    <glyph glyph-name="ion-ios-shuffle-strong" unicode="&#xf4a8;" horiz-adv-x="384" 
+d="M301 296c-85 0 -119 -64 -152 -126c-1 -3 -3 -5 -4 -8l-1 -1c-2 -3 -2 -5 -4 -8c-21 -38 -43 -68 -68 -83c-15 -9 -34 -18 -72 -18v32c45 0 76 18 112 84c2 3 2 6 4 9h1c1 2 3 4 4 7c34 64 76 144 180 144h15l-52 43l21 25l99 -84l-99 -82l-21 24l51 42h-14zM285 154
+l99 -82l-99 -84l-21 25l52 43h-15c-78 0 -122 45 -153 95l18 33c29 -51 64 -96 135 -96h14l-51 42zM112 216c-36 66 -67 84 -112 84v32c38 0 57 -9 72 -18c25 -15 47 -44 67 -81c-7 -11 -13 -22 -19 -33c-1 2 -2 5 -3 7h-1c-2 3 -2 6 -4 9z" />
+    <glyph glyph-name="ion-ios-shuffle" unicode="&#xf4a9;" horiz-adv-x="384" 
+d="M298 241l-10 12l62 51h-46c-93 0 -129 -75 -164 -139c-2 -3 -3 -6 -5 -9c-20 -37 -41 -61 -65 -75c-14 -8 -33 -17 -70 -17v16c48 0 83 14 121 84c2 3 3 6 5 9c35 65 75 147 178 147h46l-62 52l10 12l86 -72zM135 228c0 -1 1 -2 1 -3c-3 -5 -6 -11 -9 -16c0 1 -1 1 -1 2
+c-2 3 -3 6 -5 9c-38 70 -73 84 -121 84v16c37 0 56 -9 70 -17c24 -14 45 -38 65 -75zM298 143l86 -71l-86 -72l-10 12l62 52h-46c-76 0 -118 45 -149 95c1 2 2 5 3 7c2 3 4 7 6 10c30 -50 67 -96 140 -96h46l-62 51z" />
+    <glyph glyph-name="ion-ios-skipbackward-outline" unicode="&#xf4aa;" horiz-adv-x="320" 
+d="M0 352h79v-142l241 142v-320l-241 142v-142h-79v320zM80 192l7 -4l217 -128v264v0l-217 -128zM16 336v-288h47v126v8v28v126h-47z" />
+    <glyph glyph-name="ion-ios-skipbackward" unicode="&#xf4ab;" horiz-adv-x="320" 
+d="M0 352h79v-142l241 142v-320l-241 142v-142h-79v320z" />
+    <glyph glyph-name="ion-ios-skipforward-outline" unicode="&#xf4ac;" horiz-adv-x="320" 
+d="M241 352h79v-320h-79v142l-241 -142v320l241 -142v142zM233 188l7 4l-7 4l-217 128v0v-264zM304 48v288h-47v-126v-28v-8v-126h47z" />
+    <glyph glyph-name="ion-ios-skipforward" unicode="&#xf4ad;" horiz-adv-x="320" 
+d="M241 352h79v-320h-79v142l-241 -142v320l241 -142v142z" />
+    <glyph glyph-name="ion-ios-snowy" unicode="&#xf4ae;" horiz-adv-x="256" 
+d="M252 131c4 -2 5 -7 3 -11s-7 -5 -11 -3l-29 17c-2 -8 -2 -16 0 -24c1 -4 -3 -9 -7 -10s-8 2 -9 6c-2 12 -3 24 1 36l-64 36v-73c11 -3 22 -8 31 -16c3 -3 4 -8 1 -11s-8 -4 -11 -1c-6 5 -13 10 -21 12v-33c0 -4 -4 -8 -8 -8s-8 4 -8 8v33c-8 -2 -15 -7 -21 -12
+c-3 -3 -8 -2 -11 1s-3 8 0 11c9 8 20 13 32 16v73l-65 -36c4 -12 4 -23 2 -35c-1 -4 -5 -8 -9 -7s-8 6 -7 10c2 8 2 16 0 24l-29 -17c-4 -2 -9 -1 -11 3s-1 9 3 11l29 16c-6 6 -13 10 -21 13c-4 1 -6 6 -5 10c2 4 6 6 10 5c12 -4 22 -11 30 -19l65 36l-65 37
+c-8 -9 -18 -15 -30 -19c-4 -1 -9 0 -10 4s1 10 5 11c8 3 15 6 21 12l-29 16c-4 2 -5 7 -3 11s7 5 11 3l29 -16c2 8 2 15 0 23c-1 4 3 9 7 10s8 -2 9 -6c2 -12 1 -25 -2 -36l65 -36v73c-12 3 -23 8 -32 16c-3 3 -3 8 0 11s8 4 11 1c6 -5 13 -10 21 -12v33c0 4 4 8 8 8
+s8 -4 8 -8v-33c8 2 15 7 21 12c3 3 8 2 11 -1s2 -8 -1 -11c-9 -8 -20 -13 -31 -16v-73l64 36c-3 11 -4 24 -2 36c1 4 6 7 10 6s7 -6 6 -10c-2 -8 -1 -15 1 -23l29 16c4 2 9 1 11 -3s1 -9 -3 -11l-29 -16c6 -6 13 -10 21 -13c4 -1 6 -6 5 -10s-6 -6 -10 -5
+c-12 4 -23 10 -31 19l-64 -36l64 -36c8 8 19 15 31 19c4 1 9 -1 10 -5s-1 -9 -5 -10c-8 -3 -15 -7 -21 -13z" />
+    <glyph glyph-name="ion-ios-speedometer-outline" unicode="&#xf4af;" 
+d="M224 384c124 0 224 -100 224 -224c0 -57 -21 -108 -56 -148c-4 -4 -7 -8 -11 -12l-10 10l-1 2c-19 18 -41 33 -65 43c-26 11 -53 16 -81 16s-55 -5 -81 -16c-24 -10 -46 -25 -65 -43l-1 -2l-10 -10c-4 4 -7 8 -11 12c-35 40 -56 91 -56 148c0 124 100 224 224 224z
+M416 79c10 23 15 48 16 73h-32v16h32c-1 25 -6 50 -16 73c-9 22 -23 42 -39 60l-27 -27l-6 6l-5 5v0h-1l27 27c-18 17 -38 31 -60 40c-23 10 -48 15 -74 16v-38h-16v38c-25 -1 -49 -6 -72 -16c-22 -10 -43 -23 -61 -40l27 -27v0v0l-6 -6l-5 -5l-27 27
+c-16 -18 -30 -38 -39 -60c-10 -23 -15 -49 -16 -74h32v-16h-32c1 -25 6 -49 16 -72c9 -20 20 -39 35 -56c40 40 96 64 157 64s117 -24 157 -64c15 17 26 36 35 56zM336 273l2 -1l-75 -84c6 -8 9 -18 9 -28c0 -26 -22 -48 -48 -48c-10 0 -19 4 -27 9l-13 -12l-11 11l12 12
+c-6 8 -9 18 -9 28c0 26 22 48 48 48c10 0 19 -3 27 -8zM224 128c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" />
+    <glyph glyph-name="ion-ios-speedometer" unicode="&#xf4b0;" 
+d="M385 169v-15h30c-1 -22 -6 -44 -15 -65c-8 -18 -19 -35 -32 -50c-39 37 -90 58 -144 58s-105 -21 -144 -58c-13 15 -24 32 -32 50c-9 21 -14 43 -15 65h28h1v16h-29c1 23 6 45 15 66c9 20 20 38 35 54l25 -24l10 10l1 1v0v0l-25 25c16 15 36 26 56 35c21 9 43 14 66 15
+v-34h14h1v34c23 -1 46 -6 67 -15s39 -20 55 -35l-24 -25l11 -11l25 25c15 -16 26 -35 35 -55c9 -21 14 -43 15 -66h-30v-1zM272 160c0 10 -3 20 -9 28l63 76l-2 1l-73 -65c-8 5 -17 8 -27 8c-26 0 -48 -22 -48 -48c0 -10 3 -20 9 -28l-12 -12l11 -11l13 12c8 -5 17 -9 27 -9
+c26 0 48 22 48 48zM224 384c124 0 224 -100 224 -224c0 -57 -21 -108 -56 -148c-4 -4 -7 -8 -11 -12h-23c-32 39 -80 64 -134 64s-102 -25 -134 -64h-23c-4 4 -7 8 -11 12c-35 40 -56 91 -56 148c0 124 100 224 224 224zM379 27c34 37 52 86 52 136c0 55 -22 106 -61 145
+s-91 60 -146 60s-107 -21 -146 -60s-61 -90 -61 -145c0 -50 18 -99 52 -136l10 -10l1 -1v1l9 9l1 1v0c17 17 38 30 60 39c24 10 48 15 74 15s50 -5 74 -15c22 -9 43 -22 60 -39v0l1 -1l9 -9v-1l1 1zM192 160c0 21 11 32 32 32s32 -11 32 -32s-11 -32 -32 -32s-32 11 -32 32z
+" />
+    <glyph glyph-name="ion-ios-star-half" unicode="&#xf4b1;" 
+d="M140 143l-140 98h171l53 159l53 -159h171l-140 -98l54 -159l-138 99l-138 -99zM224 347v-244l107 -76l-43 122l108 75h-131z" />
+    <glyph glyph-name="ion-ios-star-outline" unicode="&#xf4b2;" 
+d="M448 241l-140 -98l54 -159l-138 99l-138 -99l54 159l-140 98h171l53 159l53 -159h171zM331 27l-43 122l108 75h-131l-41 123l-41 -123h-131l108 -75l-43 -122l107 76z" />
+    <glyph glyph-name="ion-ios-star" unicode="&#xf4b3;" 
+d="M448 241l-140 -98l54 -159l-138 99l-138 -99l54 159l-140 98h171l53 159l53 -159h171z" />
+    <glyph glyph-name="ion-ios-stopwatch-outline" unicode="&#xf4b4;" horiz-adv-x="384" 
+d="M334 301c32 -35 50 -80 50 -128c0 -104 -86 -189 -192 -189s-192 85 -192 189c0 48 18 94 51 129l1 1h-18l-8 -8l-23 23l41 40l23 -22l-9 -9v-18c31 30 72 50 116 53h2v38h32v-38c43 -4 82 -21 113 -49l5 -5v19l-9 9l23 22l41 -40l-22 -23l-9 8h-18zM192 2
+c96 0 173 77 173 171s-77 171 -173 171c-95 0 -173 -77 -173 -171s77 -171 173 -171zM200 191c14 -4 24 -17 24 -31c0 -15 -10 -26 -24 -30l-8 -18v0l-8 18c-14 4 -24 15 -24 30c0 14 12 27 24 31v129h16v-129z" />
+    <glyph glyph-name="ion-ios-stopwatch" unicode="&#xf4b5;" horiz-adv-x="384" 
+d="M334 301c32 -35 50 -80 50 -128c0 -104 -86 -189 -192 -189s-192 85 -192 189c0 48 18 94 51 129l1 1h-18l-8 -8l-23 23l41 40l23 -22l-9 -9v-18c31 30 72 50 116 53h2v38h32v-38c43 -4 82 -21 113 -49l5 -5v19l-9 9l23 22l41 -40l-22 -23l-9 8h-18zM200 130
+c14 4 24 15 24 30c0 14 -10 27 -24 31v129h-16v-129c-12 -4 -24 -17 -24 -31c0 -15 10 -26 24 -30l8 -18z" />
+    <glyph glyph-name="ion-ios-sunny-outline" unicode="&#xf4b6;" horiz-adv-x="320" 
+d="M151 296v56h18v-56h-18zM151 32v60h18v-60h-18zM264 183v18h56v-18h-56zM0 183v18h60v-18h-60zM240 130l34 -34l-12 -12l-33 34zM64 306l34 -33l-12 -12l-34 34zM229 272l33 34l12 -12l-34 -33zM52 96l34 34l11 -12l-33 -34zM160 116c-42 0 -76 34 -76 76s34 76 76 76
+s76 -34 76 -76s-34 -76 -76 -76zM160 251c-32 0 -59 -27 -59 -59s27 -59 59 -59s59 27 59 59s-27 59 -59 59z" />
+    <glyph glyph-name="ion-ios-sunny" unicode="&#xf4b7;" horiz-adv-x="320" 
+d="M151 296v56h18v-56h-18zM151 32v60h18v-60h-18zM264 183v18h56v-18h-56zM0 183v18h60v-18h-60zM240 130l34 -34l-12 -12l-33 34zM64 306l34 -33l-12 -12l-34 34zM229 272l33 34l12 -12l-34 -33zM52 96l34 34l11 -12l-33 -34zM160 116c-42 0 -76 34 -76 76s34 76 76 76
+s76 -34 76 -76s-34 -76 -76 -76z" />
+    <glyph glyph-name="ion-ios-telephone-outline" unicode="&#xf4b8;" horiz-adv-x="352" 
+d="M336 112c16 -16 26 -35 0 -66c-25 -30 -42 -30 -64 -30c-24 0 -58 14 -93 40c-32 23 -46 34 -78 67c-34 35 -55 64 -79 107c-27 50 -24 74 -18 92c4 12 14 24 28 33l1 1c6 4 18 12 32 12c13 0 24 -6 34 -18l1 -1c11 -14 24 -31 32 -47c10 -21 10 -38 -1 -53
+c-9 -12 -12 -19 -12 -23s5 -9 13 -18l1 -1c16 -18 20 -23 26 -29c1 -1 3 -2 4 -3l2 -2c7 -7 11 -12 29 -28l1 -1c7 -6 9 -8 12 -8c5 0 16 7 29 15c4 3 11 5 17 5c27 0 68 -29 83 -44zM324 57c19 22 13 31 1 43c-13 14 -50 39 -72 39c-3 0 -6 -1 -8 -2
+c-19 -12 -28 -18 -37 -18s-15 6 -23 13h-1c-19 16 -23 21 -30 29l-2 2c-1 1 -3 2 -4 3c-6 6 -11 12 -27 30v1c-10 11 -17 18 -18 28s5 20 16 34c15 20 -5 48 -31 79l-1 1c-7 8 -14 12 -22 12c-10 0 -18 -6 -23 -9c-1 0 -2 -1 -2 -1c-11 -7 -18 -16 -21 -24
+c-5 -16 -7 -35 17 -79c23 -42 43 -70 76 -104c31 -32 45 -42 76 -64c32 -23 64 -38 84 -38c21 0 32 1 52 25z" />
+    <glyph glyph-name="ion-ios-telephone" unicode="&#xf4b9;" horiz-adv-x="352" 
+d="M336 112c16 -16 26 -35 0 -66c-25 -30 -42 -30 -64 -30c-24 0 -58 14 -93 40c-32 23 -46 34 -78 67c-34 35 -55 64 -79 107c-27 50 -24 74 -18 92c4 12 14 24 28 33l1 1c6 4 18 12 32 12c13 0 24 -6 34 -18l1 -1c11 -14 24 -31 32 -47c10 -21 10 -38 -1 -53
+c-9 -12 -12 -19 -12 -23s5 -9 13 -18l1 -1c16 -18 20 -23 26 -29c1 -1 3 -2 4 -3l2 -2c7 -7 11 -12 29 -28l1 -1c7 -6 9 -8 12 -8c5 0 16 7 29 15c4 3 11 5 17 5c27 0 68 -29 83 -44z" />
+    <glyph glyph-name="ion-ios-tennisball-outline" unicode="&#xf4ba;" horiz-adv-x="416" 
+d="M416 192v-8v0c0 -5 0 -11 -1 -16v0c-11 -97 -90 -174 -187 -183v0h-4h-2s-1 -1 -2 -1h-3h-1h-8c-115 0 -208 93 -208 208s93 208 208 208s208 -93 208 -208zM399 192c0 105 -86 191 -191 191c-3 0 -5 -1 -8 -1c1 -24 6 -46 15 -68c10 -26 26 -49 46 -69s43 -36 69 -46
+c22 -9 44 -14 68 -15c0 3 1 5 1 8zM17 192c0 -105 86 -191 191 -191h4c-1 22 -7 45 -15 66c-10 26 -26 48 -46 68s-42 36 -68 46c-21 8 -44 14 -66 15v-4zM228 2c88 9 158 78 169 166c-54 3 -106 25 -147 66s-63 93 -66 147c-88 -11 -157 -81 -166 -169
+c53 -3 105 -25 145 -65s62 -92 65 -145z" />
+    <glyph glyph-name="ion-ios-tennisball" unicode="&#xf4bb;" horiz-adv-x="416" 
+d="M0 196v0v0v0zM212 -16h1h-1v0zM208 400c115 0 208 -93 208 -208c0 -8 0 -16 -1 -24v0v0c-11 -97 -90 -174 -187 -183v0v0c-6 -1 -13 -1 -20 -1c-115 0 -208 93 -208 208v4v0v0c0 6 0 11 1 16v0v0c9 97 86 176 183 187v0v0c6 1 11 1 16 1v0v0h8zM83 181
+c26 -10 48 -26 68 -46s36 -42 46 -68c8 -21 14 -44 15 -66c5 0 11 0 16 1c-3 53 -25 105 -65 145s-92 62 -145 65c-1 -5 -1 -11 -1 -16c22 -1 45 -7 66 -15zM250 234c41 -41 93 -63 147 -66c1 5 1 11 1 16c-24 1 -46 6 -68 15c-26 10 -49 26 -69 46s-36 43 -46 69
+c-9 22 -14 44 -15 68c-5 0 -11 0 -16 -1c3 -54 25 -106 66 -147z" />
+    <glyph glyph-name="ion-ios-thunderstorm-outline" unicode="&#xf4bc;" horiz-adv-x="274" 
+d="M193 176l-88 -128l29 96h-52l15 80h72l-16 -48h40zM209 275c36 0 65 -29 65 -65s-29 -66 -65 -66h-8v17h8c27 0 49 22 49 49s-22 50 -49 50h-6l-14 -2l-3 14c-3 14 -11 26 -22 35s-25 13 -39 13c-34 0 -63 -27 -63 -62v-12s1 -9 1 -9c-5 0 -12 -2 -14 -2
+c-19 -3 -33 -18 -33 -37c0 -10 3 -19 10 -26s16 -11 26 -11h11v-17h-11c-28 0 -52 24 -52 53c0 27 21 51 47 53v8c0 43 35 78 78 78c37 0 68 -26 76 -61h8z" />
+    <glyph glyph-name="ion-ios-thunderstorm" unicode="&#xf4bd;" horiz-adv-x="274" 
+d="M153 176h40l-22 -32l-66 -96l29 96h-52l15 80h72zM84 240h107l-16 -48h18h30l-33 -48h19c36 0 65 30 65 66s-29 65 -65 65h-8c-8 35 -39 61 -76 61c-43 0 -78 -35 -78 -78v-8c-26 -2 -47 -26 -47 -53c0 -29 24 -53 52 -53h14z" />
+    <glyph glyph-name="ion-ios-time-outline" unicode="&#xf4be;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM371 45c19 19 35 41 45 66c11 26 16 53 16 81s-5 55 -16 81c-10 25 -26 47 -45 66s-41 35 -66 45c-26 11 -53 16 -81 16s-55 -5 -81 -16c-25 -10 -47 -26 -66 -45
+s-35 -41 -45 -66c-11 -26 -16 -53 -16 -81s5 -55 16 -81c10 -25 26 -47 45 -66s41 -35 66 -45c26 -11 53 -16 81 -16s55 5 81 16c25 10 47 26 66 45zM216 368c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM216 16c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM392 192
+c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM40 192c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM128 344c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM304 40c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM368 280c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8
+zM64 104c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM64 280c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM368 104c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM304 344c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM128 40c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8
+s-8 3 -8 8zM238 200c4 -8 2 -18 -6 -22v-122c0 -4 -4 -8 -8 -8s-8 4 -8 8v122c-2 1 -4 4 -6 6c-3 5 -3 11 0 16l-37 63c-2 4 -1 9 3 11s8 1 10 -3l38 -63c5 0 11 -3 14 -8z" />
+    <glyph glyph-name="ion-ios-time" unicode="&#xf4bf;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM224 376c-4 0 -8 -4 -8 -8s4 -8 8 -8s8 4 8 8s-4 8 -8 8zM48 184c4 0 8 4 8 8s-4 8 -8 8s-8 -4 -8 -8s4 -8 8 -8zM76 97c4 2 4 7 2 11s-6 5 -10 3s-5 -7 -3 -11s7 -5 11 -3z
+M78 276c2 4 2 9 -2 11s-9 1 -11 -3s-1 -9 3 -11s8 -1 10 3zM132 351c-4 -2 -5 -7 -3 -11s7 -4 11 -2s5 6 3 10s-7 5 -11 3zM143 36c2 4 1 8 -3 10s-9 2 -11 -2s-1 -9 3 -11s9 -1 11 3zM224 8c4 0 8 4 8 8s-4 8 -8 8s-8 -4 -8 -8s4 -8 8 -8zM232 178c8 4 10 14 6 22
+c-3 5 -9 8 -14 8l-38 64c-2 4 -7 4 -11 2s-4 -7 -2 -11l37 -63c-3 -5 -3 -11 0 -16c2 -2 4 -5 6 -6v-122c0 -4 4 -8 8 -8s8 4 8 8v122zM316 33c4 2 5 7 3 11s-7 4 -11 2s-5 -6 -3 -10s7 -5 11 -3zM319 340c2 4 1 9 -3 11s-9 1 -11 -3s-1 -8 3 -10s9 -2 11 2zM383 100
+c2 4 1 9 -3 11s-8 1 -10 -3s-2 -9 2 -11s9 -1 11 3zM380 273c4 2 5 7 3 11s-7 5 -11 3s-4 -7 -2 -11s6 -5 10 -3zM400 184c4 0 8 4 8 8s-4 8 -8 8s-8 -4 -8 -8s4 -8 8 -8z" />
+    <glyph glyph-name="ion-ios-timer-outline" unicode="&#xf4c0;" horiz-adv-x="416" 
+d="M189 176l-1 2s-89 118 -86 120s121 -85 121 -85c1 -1 1 -2 2 -3c5 -5 8 -11 8 -18c0 -14 -11 -25 -25 -25c-8 0 -14 3 -19 9zM208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208c0 57 23 109 61 147l12 -12c-35 -35 -56 -82 -56 -135
+c0 -106 85 -191 191 -191s191 85 191 191c0 100 -77 183 -175 191v-95h-16v112v0v0z" />
+    <glyph glyph-name="ion-ios-timer" unicode="&#xf4c1;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208s-208 93 -208 208s93 208 208 208zM102 298c-2 -2 86 -120 86 -120l1 -1c5 -6 11 -10 19 -10c14 0 25 11 25 25c0 7 -3 13 -8 18l-3 3c0 0 -117 87 -120 85zM208 1c106 0 192 85 192 191s-86 192 -192 192v-96h16v78
+c88 -9 158 -84 158 -174c0 -96 -78 -174 -174 -174s-175 78 -175 174c0 48 19 92 51 124l-11 12c-35 -35 -56 -83 -56 -136c0 -106 85 -191 191 -191z" />
+    <glyph glyph-name="ion-ios-toggle-outline" unicode="&#xf4c2;" 
+d="M96 128c-26 0 -48 -22 -48 -48s22 -48 48 -48s48 22 48 48s-22 48 -48 48zM96 144v0c35 0 64 -29 64 -64s-29 -64 -64 -64s-64 29 -64 64s29 64 64 64zM351 160v0h-255c-44 0 -80 -36 -80 -80s36 -80 80 -80h256c44 0 80 36 80 80s-37 80 -81 80zM352 176v0
+c53 0 96 -43 96 -96s-43 -96 -96 -96h-256c-53 0 -96 43 -96 96s43 96 96 96h256zM352 352c-26 0 -48 -22 -48 -48s22 -48 48 -48s48 22 48 48s-22 48 -48 48zM352 368v0c35 0 64 -29 64 -64s-29 -64 -64 -64s-64 29 -64 64s29 64 64 64zM97 384v0c-44 0 -81 -36 -81 -80
+s36 -80 80 -80h256c44 0 80 36 80 80s-36 80 -80 80h-255zM96 400v0h256c53 0 96 -43 96 -96s-43 -96 -96 -96h-256c-53 0 -96 43 -96 96s43 96 96 96z" />
+    <glyph glyph-name="ion-ios-toggle" unicode="&#xf4c3;" 
+d="M96 128c26 0 48 -22 48 -48s-22 -48 -48 -48s-48 22 -48 48s22 48 48 48zM352 176c53 0 96 -43 96 -96s-43 -96 -96 -96h-256c-53 0 -96 43 -96 96s43 96 96 96h256zM96 16c35 0 64 29 64 64s-29 64 -64 64s-64 -29 -64 -64s29 -64 64 -64zM352 256c-26 0 -48 22 -48 48
+s22 48 48 48s48 -22 48 -48s-22 -48 -48 -48zM96 208c-53 0 -96 43 -96 96s43 96 96 96h256c53 0 96 -43 96 -96s-43 -96 -96 -96h-256zM352 368c-35 0 -64 -29 -64 -64s29 -64 64 -64s64 29 64 64s-29 64 -64 64z" />
+    <glyph glyph-name="ion-ios-trash-outline" unicode="&#xf4c4;" horiz-adv-x="288" 
+d="M288 335v-15h-20l-24 -291c0 -16 -13 -29 -29 -29h-141c-16 0 -29 13 -29 29l-24 291h-21v15h80v20c0 16 13 29 29 29h70c16 0 29 -13 29 -29v-20h80zM95 355v-20h98v20c0 8 -6 14 -14 14h-70c-8 0 -14 -6 -14 -14zM230 30l23 290h-217l23 -290v0v-1c0 -8 7 -14 15 -14
+h141c8 0 15 6 15 14v1v0zM137 47v241h14v-241h-14zM208 288l-11 -241h-14l10 241h15zM94 288l11 -241h-14l-11 241h14z" />
+    <glyph glyph-name="ion-ios-trash" unicode="&#xf4c5;" horiz-adv-x="288" 
+d="M208 335h80v-15h-20l-24 -291c0 -16 -13 -29 -29 -29h-141c-16 0 -29 13 -29 29l-24 291h-21v15h80v20c0 16 13 29 29 29h70c16 0 29 -13 29 -29v-20zM95 355v0v-20h98v20c0 8 -6 14 -14 14h-70c-8 0 -14 -6 -14 -14zM91 47h14l-11 241h-14zM151 47v241h-14v-241h14z
+M197 47l11 241h-14l-11 -241h14z" />
+    <glyph glyph-name="ion-ios-undo-outline" unicode="&#xf4c6;" horiz-adv-x="384" 
+d="M384 80v-32h-10l-20 31c-20 33 -44 63 -75 77c-24 11 -47 19 -87 20v-80l-192 128l192 128v-80c63 -3 108 -21 143 -56c52 -53 49 -119 49 -136zM368 87c0 0 9 169 -192 169v65l-148 -97l148 -97v65c91 0 144 -24 192 -105z" />
+    <glyph glyph-name="ion-ios-undo" unicode="&#xf4c7;" horiz-adv-x="384" 
+d="M384 80v-32h-10l-20 31c-20 33 -44 63 -75 77c-24 11 -47 19 -87 20v-80l-192 128l192 128v-80c63 -3 108 -21 143 -56c52 -53 49 -119 49 -136z" />
+    <glyph glyph-name="ion-ios-unlocked-outline" unicode="&#xf4c8;" horiz-adv-x="320" 
+d="M160 160c18 0 32 -14 32 -32c0 -15 -10 -27 -24 -31v-33h-16v33c-14 4 -24 16 -24 31c0 18 14 32 32 32zM160 112c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM72 224h248v-240h-320v240h56v72c0 57 47 104 104 104s104 -47 104 -104v-8h-16v8
+c0 49 -39 88 -88 88s-88 -39 -88 -88v-72zM304 0v208h-288v-208h288z" />
+    <glyph glyph-name="ion-ios-unlocked" unicode="&#xf4c9;" horiz-adv-x="320" 
+d="M160 144c9 0 16 -7 16 -16s-7 -16 -16 -16s-16 7 -16 16s7 16 16 16zM72 224h248v-240h-320v240h56v72c0 57 47 104 104 104s104 -47 104 -104v-8h-16v8c0 49 -39 88 -88 88s-88 -39 -88 -88v-72zM168 97c14 4 24 16 24 31c0 18 -14 32 -32 32s-32 -14 -32 -32
+c0 -15 10 -27 24 -31v-33h16v33z" />
+    <glyph glyph-name="ion-ios-upload-outline" unicode="&#xf4ca;" horiz-adv-x="320" 
+d="M192 304h128v-304h-320v304h128v-16h-112v-272h288v272h-112v16zM97 330l-11 12l74 74l74 -74l-11 -12l-55 55v-243h-16v243z" />
+    <glyph glyph-name="ion-ios-upload" unicode="&#xf4cb;" horiz-adv-x="320" 
+d="M168 304h152v-304h-320v304h152v-162h16v162zM168 385v-81h-16v81l-55 -55l-11 12l74 74l74 -74l-11 -12z" />
+    <glyph glyph-name="ion-ios-videocam-outline" unicode="&#xf4cc;" horiz-adv-x="418" 
+d="M257 320c19 0 33 -14 33 -33v-188c0 -19 -14 -35 -33 -35h-221c-19 0 -36 16 -36 35v188c0 19 17 33 36 33h221zM273 99v188c0 9 -8 16 -17 16h-221c-9 0 -18 -7 -18 -16v-188c0 -9 10 -18 19 -18h221c9 0 16 9 16 18zM320 235l98 53v-192l-98 53v86zM401 258v0l-64 -33
+v-66l64 -33v132z" />
+    <glyph glyph-name="ion-ios-videocam" unicode="&#xf4cd;" horiz-adv-x="418" 
+d="M257 320c19 0 33 -14 33 -33v-188c0 -19 -14 -35 -33 -35h-221c-19 0 -36 16 -36 35v188c0 19 17 33 36 33h221zM320 235l98 53v-192l-98 53v86z" />
+    <glyph glyph-name="ion-ios-volume-high" unicode="&#xf4ce;" horiz-adv-x="320" 
+d="M278 320c26 -36 42 -80 42 -128s-16 -92 -42 -128l-14 10c24 33 39 74 39 118s-15 85 -39 118zM224 96l-14 10c18 24 29 54 29 86s-11 62 -29 86l14 10c20 -27 32 -60 32 -96s-12 -69 -32 -96zM177 128l-13 10c12 15 18 34 18 54s-6 39 -18 54l13 10
+c14 -18 22 -40 22 -64s-8 -46 -22 -64zM58 232l70 56v-192l-70 56h-58v80h58z" />
+    <glyph glyph-name="ion-ios-volume-low" unicode="&#xf4cf;" horiz-adv-x="128" 
+d="M58 232l70 56v-192l-70 56h-58v80h58z" />
+    <glyph glyph-name="ion-ios-wineglass-outline" unicode="&#xf4d0;" horiz-adv-x="192" 
+d="M104 139v-155h72v-16h-80h-80v16h72v155c0 22 -20 39 -40 55c-8 6 -16 13 -22 19c-27 28 -26 52 -26 71v4c0 44 31 125 32 128h64h64c1 -3 32 -84 32 -128v-4c0 -19 1 -43 -26 -71c-6 -6 -14 -13 -22 -19c-20 -16 -40 -33 -40 -55zM43 400c-5 -16 -20 -63 -25 -96h156
+c-5 33 -20 80 -25 96h-53h-53zM96 175c3 0 5 0 7 2v0c9 11 20 20 31 29c8 6 15 12 20 18c22 23 22 41 22 60v4h-160v-4c0 -19 0 -37 22 -60c5 -6 12 -12 20 -18c11 -9 22 -18 31 -29v0c2 -2 4 -2 7 -2z" />
+    <glyph glyph-name="ion-ios-wineglass" unicode="&#xf4d1;" horiz-adv-x="192" 
+d="M104 139v-155h72v-16h-80h-80v16h72v155c0 22 -20 39 -40 55c-8 6 -16 13 -22 19c-27 28 -26 52 -26 71v4c0 44 31 125 32 128h64h64c1 -3 32 -84 32 -128v-4c0 -19 1 -43 -26 -71c-6 -6 -14 -13 -22 -19c-20 -16 -40 -33 -40 -55zM43 400c-5 -16 -20 -63 -25 -96h156
+c-5 33 -20 80 -25 96h-53h-53z" />
+    <glyph glyph-name="ion-ios-world-outline" unicode="&#xf4d2;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208v0v0v0c-115 0 -208 93 -208 208s93 208 208 208v0v0v0zM216 276v-76h75c-1 31 -5 60 -11 84c-21 -5 -42 -7 -64 -8zM216 292c20 1 41 3 60 8c-14 46 -38 76 -60 82v-90zM200 382c-23 -6 -45 -36 -60 -82
+c19 -5 39 -7 60 -8v90zM200 276c-22 1 -44 3 -65 8c-6 -24 -10 -53 -11 -84h76v76zM108 200c1 32 4 62 11 88c-21 6 -41 15 -59 25c-26 -31 -41 -70 -43 -113h91zM108 184h-91c2 -43 17 -82 43 -113c19 10 38 19 59 25c-7 26 -10 56 -11 88zM124 184c1 -31 5 -60 11 -84
+c21 5 43 8 65 9v75h-76zM200 92c-21 -1 -41 -3 -60 -8c15 -46 37 -76 60 -82v90zM216 2c22 6 46 36 60 82c-19 5 -40 7 -60 8v-90zM216 109c22 -1 43 -4 64 -9c6 24 10 53 11 84h-75v-75zM308 184c-1 -32 -5 -62 -12 -88c21 -6 41 -15 60 -25c26 31 41 70 43 113h-91z
+M308 200v0h91c-2 43 -17 82 -43 113c-19 -10 -38 -19 -59 -25c7 -26 10 -56 11 -88zM344 326c-25 25 -56 44 -91 52c16 -17 29 -43 39 -74c18 6 35 13 52 22zM163 378c-35 -8 -67 -27 -91 -52c16 -9 34 -15 52 -21c10 31 23 56 39 73zM72 58c25 -25 56 -44 91 -52
+c-16 17 -30 43 -40 74c-18 -6 -35 -13 -51 -22zM253 6c35 8 66 27 91 52c-17 9 -34 16 -52 22c-10 -31 -23 -57 -39 -74z" />
+    <glyph glyph-name="ion-ios-world" unicode="&#xf4d3;" horiz-adv-x="416" 
+d="M208 400c115 0 208 -93 208 -208s-93 -208 -208 -208v0v0v0c-115 0 -208 93 -208 208s93 208 208 208v0v0v0zM208 1c106 0 191 85 191 191s-85 191 -191 191v0v0v0c-106 0 -191 -85 -191 -191s86 -191 191 -191v0v0v0zM274 276c6 -22 9 -48 10 -76h-68v68c20 1 39 4 58 8
+zM216 366c20 -6 41 -34 54 -75c-17 -4 -36 -6 -54 -7v82zM145 291c13 42 35 69 55 75v-82c-19 1 -37 3 -55 7zM333 315c-15 -8 -31 -15 -48 -20c-9 29 -21 52 -36 67c32 -8 61 -24 84 -47zM299 200c-1 29 -4 56 -10 80c19 6 37 14 54 23c23 -28 38 -64 40 -103h-84zM132 200
+c1 28 3 54 9 76c19 -5 39 -7 59 -8v-68h-68zM284 184c-1 -28 -4 -54 -10 -76c-19 5 -38 7 -58 8v68h68zM141 108c-6 22 -8 48 -9 76h68v-68c-20 -1 -40 -3 -59 -8zM200 18c-20 6 -42 33 -55 75c18 4 36 6 55 7v-82zM249 22c15 15 27 38 36 67c17 -5 33 -11 48 -19
+c-23 -23 -52 -40 -84 -48zM167 362c-15 -15 -27 -39 -36 -67c-16 5 -33 11 -48 19c22 23 52 40 84 48zM289 104c6 24 9 51 10 80h84c-2 -39 -17 -75 -40 -103c-17 9 -35 17 -54 23zM216 100c18 -1 37 -3 54 -7c-13 -42 -34 -69 -54 -75v82zM127 280c-6 -24 -11 -51 -11 -80
+h-83c2 39 17 75 40 103c17 -9 35 -17 54 -23zM116 184c1 -29 4 -56 10 -80c-19 -6 -36 -14 -53 -23c-23 28 -38 64 -40 103h83zM83 70c15 8 32 14 48 19c9 -28 21 -52 36 -67c-32 8 -62 25 -84 48z" />
+    <glyph glyph-name="ion-ipad" unicode="&#xf1f9;" horiz-adv-x="288" 
+d="M0 375c0 5 4 9 9 9h270c5 0 9 -4 9 -9v-366c0 -5 -4 -9 -9 -9h-270c-5 0 -9 4 -9 9v366zM144 10c8 0 14 6 14 14s-7 14 -14 14c-8 0 -14 -6 -14 -14s6 -14 14 -14zM32 329v-275c0 -4 3 -6 6 -6h211c3 0 7 2 7 6v275c0 4 -4 7 -7 7h-211c-3 0 -6 -3 -6 -7z" />
+    <glyph glyph-name="ion-iphone" unicode="&#xf1fa;" horiz-adv-x="192" 
+d="M168 384c13 0 24 -11 24 -24v-336c0 -13 -11 -24 -24 -24h-144c-13 0 -24 11 -24 24v336c0 13 11 24 24 24h144zM80 348v0c0 -2 2 -4 4 -4h24c2 0 4 2 4 4v0c0 2 -2 4 -4 4h-24c-2 0 -4 -2 -4 -4zM68 352c-2 0 -4 -2 -4 -4s2 -4 4 -4s4 2 4 4s-2 4 -4 4zM96 16
+c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM176 64v256h-160v-256h160z" />
+    <glyph glyph-name="ion-ipod" unicode="&#xf1fb;" horiz-adv-x="224" 
+d="M112 137c18 0 32 -14 32 -32s-14 -32 -32 -32s-32 14 -32 32s14 32 32 32zM196 384c15 0 28 -12 28 -28v-328c0 -16 -13 -28 -28 -28h-168c-15 0 -28 12 -28 28v328c0 16 13 28 28 28h168zM112 32c40 0 72 32 72 72s-32 72 -72 72s-72 -32 -72 -72s32 -72 72 -72z
+M192 221v118c-1 7 -6 12 -12 13h-136c-7 -1 -12 -7 -12 -15v-114c0 -8 6 -15 14 -15h131c8 0 14 5 15 13z" />
+    <glyph glyph-name="ion-jet" unicode="&#xf295;" horiz-adv-x="326" 
+d="M222 80l-2 -13l53 -58l-18 -27l-74 9l-18 -55l-19 55l-73 -9l-18 27l53 58l-2 13l-104 -35l3 53l114 103s26 173 28 192c5 40 18 55 18 55s13 -15 18 -55c2 -19 28 -192 28 -192l114 -103l3 -53z" />
+    <glyph glyph-name="ion-key" unicode="&#xf296;" horiz-adv-x="192" 
+d="M144 147c28 -17 48 -48 48 -83c0 -53 -43 -96 -96 -96s-96 43 -96 96c0 36 19 67 48 84c0 0 7 16 12 41c0 4 11 6 11 12v20c0 5 -7 9 -7 11v8v8c0 2 0 4 1 6c0 1 1 1 1 2l2 1l4 4v1c2 2 3 4 3 6c0 1 1 8 1 9c0 3 -2 6 -4 8l-1 1l-4 4v0l-1 1v0c-2 2 -3 5 -3 8v7
+c0 3 2 7 4 9v0l5 5v0c2 2 4 3 4 6v24c0 3 -2 6 -4 8v1l-4 4l-1 1c-2 2 -3 5 -3 8v18c0 11 0 19 9 23c3 1 14 3 23 3c20 0 30 -8 32 -36c0 0 7 -81 9 -143s7 -90 7 -90zM96 0c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" />
+    <glyph glyph-name="ion-knife" unicode="&#xf297;" horiz-adv-x="64" 
+d="M62 416c2 0 2 -1 2 -6v-412c0 -15 -10 -30 -24 -30v0v0c-14 0 -24 15 -24 30c1 19 14 83 16 130v0c1 30 -32 31 -32 70c0 134 35 191 54 214c2 2 5 4 8 4z" />
+    <glyph glyph-name="ion-laptop" unicode="&#xf1fc;" horiz-adv-x="512" 
+d="M480 342v-262h-448v262c0 6 4 10 10 10h428c6 0 10 -4 10 -10zM448 112v208h-384v-208h384zM0 59v5h512v-5c-70 -20 -116 -27 -256 -27s-186 7 -256 27z" />
+    <glyph glyph-name="ion-leaf" unicode="&#xf1fd;" horiz-adv-x="422" 
+d="M412 69c18 -3 10 -41 -5 -39c0 0 -21 -1 -63 12c0 0 -16 -19 -39 -30c-26 -12 -118 -33 -197 38c-108 97 -120 354 -100 333c86 -90 197 -47 270 -106c55 -44 88 -127 77 -192c0 0 5 -8 57 -16zM316 65c5 5 10 16 10 24c-161 52 -252 160 -252 160s104 -143 242 -184z
+" />
+    <glyph glyph-name="ion-levels" unicode="&#xf298;" horiz-adv-x="350" 
+d="M46 349c11 -5 18 -16 18 -29s-7 -24 -18 -29v-275c0 -9 -7 -16 -16 -16s-16 7 -16 16v278c-8 6 -14 15 -14 26s6 20 14 26v22c0 9 7 16 16 16s16 -7 16 -16v-19zM142 155c9 -6 15 -16 15 -27s-6 -21 -15 -27v-85c0 -9 -7 -16 -16 -16s-16 7 -16 16v84
+c-10 5 -17 16 -17 28s7 23 17 28v212c0 9 7 16 16 16s16 -7 16 -16v-213zM238 285c10 -6 16 -16 16 -28s-6 -22 -16 -28v-213c0 -9 -7 -16 -16 -16s-16 7 -16 16v213c-10 6 -16 16 -16 28s6 22 16 28v83c0 9 7 16 16 16s16 -7 16 -16v-83zM350 65c0 -12 -6 -22 -16 -28v-21
+c0 -9 -7 -16 -16 -16s-16 7 -16 16v21c-10 6 -16 16 -16 28s6 22 16 28v275c0 9 7 16 16 16s16 -7 16 -16v-275c10 -6 16 -16 16 -28z" />
+    <glyph glyph-name="ion-lightbulb" unicode="&#xf299;" horiz-adv-x="256" 
+d="M128 416c71 0 128 -56 128 -124c0 -5 0 -9 -1 -14s-2 -11 -3 -16v-2c-17 -63 -45 -71 -59 -167v-1c-2 -9 -10 -12 -20 -12h-90c-10 0 -18 3 -20 12v1c-14 96 -42 104 -59 167v2c-1 5 -2 11 -3 16s-1 9 -1 14c0 68 57 124 128 124zM190 52v-1c-2 -3 -3 -4 -3 -7s1 -5 3 -8
+v-1c1 -2 2 -3 2 -5s-1 -4 -2 -6v-1c-2 -3 -3 -4 -3 -7s1 -5 3 -8v-1c1 -2 2 -4 2 -6c0 -5 -4 -9 -10 -11h-1c-6 -1 -13 -2 -19 -3h-2c-6 -1 -11 -5 -14 -9v0c-4 -5 -10 -10 -18 -10s-15 6 -19 11v0c-3 4 -7 7 -13 8h-2c-6 1 -13 2 -19 3h-1c-6 2 -10 6 -10 11c0 2 1 4 2 6v1
+c2 2 3 4 3 7s-1 5 -3 8v1c-1 2 -2 4 -2 6s1 3 2 5v1c2 3 3 5 3 8s-1 4 -3 7v1v0c-1 2 -2 4 -2 6c0 4 -1 6 7 6h114c8 0 7 -2 7 -6c0 -2 -1 -4 -2 -6v0z" />
+    <glyph glyph-name="ion-link" unicode="&#xf1fe;" horiz-adv-x="384" 
+d="M192 240v0v0v0zM304 288c44 0 80 -36 80 -80v-32c0 -44 -36 -80 -80 -80h-112c-33 0 -60 20 -73 48c-4 10 -7 20 -7 32v32h48v-32c0 -18 14 -32 32 -32h112c18 0 32 14 32 32v32c0 18 -14 32 -32 32v0h-16c-6 31 -32 48 -32 48h48zM266 240c4 -10 6 -21 6 -32v-32v0h-48
+v0v32c0 18 -14 32 -32 32v0h-112c-18 0 -32 -14 -32 -32v-32c0 -18 14 -32 32 -32h16c6 -31 32 -48 32 -48h-48c-44 0 -80 36 -80 80v32c0 44 36 80 80 80h112c33 0 62 -20 74 -48z" />
+    <glyph glyph-name="ion-load-a" unicode="&#xf29a;" horiz-adv-x="384" 
+d="M144 352c0 43 21 64 64 64s64 -21 64 -64s-21 -64 -64 -64s-64 21 -64 64zM0 192c0 32 16 48 48 48s48 -16 48 -48s-16 -48 -48 -48s-48 16 -48 48zM312 304c0 5 3 8 8 8s8 -3 8 -8s-3 -8 -8 -8s-8 3 -8 8zM132 340c10 -10 15 -22 15 -36s-5 -26 -15 -36s-22 -15 -36 -15
+s-26 5 -36 15s-15 22 -15 36s5 26 15 36s22 15 36 15s26 -5 36 -15zM352 192c0 11 5 16 16 16s16 -5 16 -16s-5 -16 -16 -16s-16 5 -16 16zM297 79c0 16 8 24 24 24s24 -8 24 -24s-8 -24 -24 -24s-24 8 -24 24zM176 32c0 21 11 32 32 32s32 -11 32 -32s-11 -32 -32 -32
+s-32 11 -32 32zM56 80c0 27 13 40 40 40s40 -13 40 -40s-13 -40 -40 -40s-40 13 -40 40z" />
+    <glyph glyph-name="ion-load-b" unicode="&#xf29b;" 
+d="M256 288c0 -18 -14 -32 -32 -32v0c-18 0 -32 14 -32 32v96c0 18 14 32 32 32v0c18 0 32 -14 32 -32v-96zM224 128v0c18 0 32 -14 32 -32v-96c0 -18 -14 -32 -32 -32s-32 14 -32 32v96c0 18 14 32 32 32zM416 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32h-96
+c-18 0 -32 14 -32 32s14 32 32 32h96zM128 224v0c18 0 32 -14 32 -32s-14 -32 -32 -32h-96c-18 0 -32 14 -32 32s14 32 32 32h96zM314 237c-12 -12 -33 -12 -45 0v0c-12 12 -12 34 0 46l68 67c12 12 33 12 45 0v0c12 -12 12 -33 0 -45zM179 147v0c12 -12 12 -33 0 -46
+l-68 -67c-12 -12 -33 -12 -45 0s-12 33 0 45l67 68c12 12 34 12 46 0zM382 79v0c12 -12 12 -33 0 -45s-33 -12 -45 0l-68 68c-12 12 -12 33 0 45s33 12 45 0zM179 282v0c12 -12 12 -33 0 -45s-34 -12 -46 0l-67 68c-12 12 -12 33 0 45s33 12 45 0z" />
+    <glyph glyph-name="ion-load-c" unicode="&#xf29c;" 
+d="M448 222c0 -3 0 -6 -1 -9c-4 -8 -15 -12 -23 -7c-4 2 -6 7 -7 11c-1 5 -1 9 -2 14c-4 20 -12 40 -22 58c-12 21 -28 41 -47 56c-18 15 -40 26 -62 33c-21 6 -42 9 -64 9h-4c-3 0 -6 -1 -9 -1c-6 0 -14 -1 -20 -2c-13 -2 -25 -6 -37 -11c-21 -8 -40 -20 -57 -35
+s-31 -33 -42 -52c-12 -22 -20 -45 -24 -70c-2 -11 -2 -23 -2 -34c0 -6 0 -11 1 -16c1 -6 2 -13 3 -19c5 -24 14 -47 28 -67c13 -20 29 -38 48 -52c20 -15 42 -26 65 -33c25 -7 50 -9 76 -7c25 2 50 9 73 20c11 5 22 12 32 19s19 15 27 24c4 4 8 9 12 14s7 10 10 15
+c6 10 12 20 17 31c4 8 8 16 11 25c2 4 3 9 4 13s1 7 2 11c1 -9 1 -18 -1 -26c-1 -5 -2 -11 -4 -16c-1 -5 -3 -10 -5 -15c-4 -10 -8 -19 -13 -28c-6 -11 -12 -21 -20 -30s-16 -18 -25 -26c-18 -15 -40 -27 -62 -36c-23 -9 -48 -14 -73 -15s-51 3 -75 11c-23 7 -45 19 -65 33
+c-19 14 -36 31 -50 50c-7 10 -13 20 -18 31s-9 21 -13 33c-6 18 -9 37 -10 56c-1 20 1 39 5 58c5 24 15 47 28 68c12 19 26 35 42 50s35 27 55 36c23 11 48 19 74 21c10 1 19 1 29 1c13 0 26 -2 38 -4c24 -5 47 -14 68 -26s41 -29 57 -48c15 -18 27 -37 36 -58
+c4 -10 7 -21 10 -32c2 -8 5 -17 6 -26z" />
+    <glyph glyph-name="ion-load-d" unicode="&#xf29d;" horiz-adv-x="384" 
+d="M368 208c9 0 16 -7 16 -16s-7 -16 -16 -16h-80c-9 0 -16 7 -16 16s7 16 16 16h80zM112 192c0 -9 -7 -16 -16 -16h-80c-9 0 -16 7 -16 16s7 16 16 16h80c9 0 16 -7 16 -16zM192 112c9 0 16 -7 16 -16v-80c0 -9 -7 -16 -16 -16s-16 7 -16 16v80c0 9 7 16 16 16zM192 384
+c9 0 16 -7 16 -16v-80c0 -9 -7 -16 -16 -16s-16 7 -16 16v80c0 9 7 16 16 16zM261 232c-4 8 -2 18 6 22l69 40c8 4 18 2 22 -6s2 -18 -6 -22l-69 -40c-8 -4 -18 -2 -22 6zM123 152c4 -8 2 -18 -6 -22l-69 -40c-8 -4 -18 -2 -22 6s-2 18 6 22l69 40c8 4 18 2 22 -6zM254 117
+l40 -69c4 -8 2 -18 -6 -22s-18 -2 -22 6l-40 69c-4 8 -2 18 6 22s18 2 22 -6zM118 352l40 -69c4 -8 2 -18 -6 -22s-18 -2 -22 6l-40 69c-4 8 -2 18 6 22s18 2 22 -6zM232 261c-8 4 -10 14 -6 22l40 69c4 8 14 10 22 6s10 -14 6 -22l-40 -69c-4 -8 -14 -10 -22 -6zM152 123
+c8 -4 10 -14 6 -22l-40 -69c-4 -8 -14 -10 -22 -6s-10 14 -6 22l40 69c4 8 14 10 22 6zM352 118c8 -4 10 -14 6 -22s-14 -10 -22 -6l-69 40c-8 4 -10 14 -6 22s14 10 22 6zM32 266c-8 4 -10 14 -6 22s14 10 22 6l69 -40c8 -4 10 -14 6 -22s-14 -10 -22 -6z" />
+    <glyph glyph-name="ion-location" unicode="&#xf1ff;" horiz-adv-x="239" 
+d="M119 384c66 0 120 -54 120 -120c0 -115 -120 -264 -120 -264s-119 149 -119 264c0 66 53 120 119 120zM119 206c31 0 57 25 57 56s-26 57 -57 57s-56 -26 -56 -57s25 -56 56 -56z" />
+    <glyph glyph-name="ion-lock-combination" unicode="&#xf4d4;" horiz-adv-x="384" 
+d="M320 271c39 -35 64 -86 64 -143c0 -106 -86 -192 -192 -192s-192 86 -192 192c0 57 25 108 64 143v49c0 71 57 128 128 128s128 -57 128 -128v-49zM96 320v-26c28 16 61 26 96 26s68 -10 96 -26v26c0 53 -43 96 -96 96s-96 -43 -96 -96zM192 -32c88 0 160 72 160 160
+s-72 160 -160 160s-160 -72 -160 -160s72 -160 160 -160zM192 272c80 0 144 -64 144 -144s-64 -144 -144 -144s-144 64 -144 144s64 144 144 144zM315 95c2 9 4 18 4 29h-7v7h8c0 11 -2 20 -5 30l-25 -7l-4 12l25 8c-4 10 -8 18 -14 26l-11 -8l-4 6l11 8c-6 8 -13 16 -21 22
+l-15 -21l-11 8l15 20c-8 6 -17 11 -27 14l-4 -13l-6 2l5 13c-9 3 -20 5 -29 5v-13v-6h-16v6v13c-11 -1 -19 -2 -29 -5l4 -12l-6 -2l-4 12c-10 -3 -19 -8 -27 -14l15 -20l-10 -8l-15 21c-8 -6 -16 -14 -22 -22l11 -8l-4 -5l-10 8c-6 -8 -10 -17 -14 -27l24 -8l-5 -12l-25 7
+c-3 -10 -3 -19 -3 -30h6v-7h-5c0 -11 2 -20 4 -29l24 7l4 -12l-24 -8c4 -10 8 -19 14 -27l9 7l4 -5l-9 -7c6 -8 13 -16 21 -22l15 21l10 -8l-15 -20c8 -5 17 -11 27 -14l3 11l7 -2l-4 -11c10 -3 18 -4 29 -5v13v6h16v-6v-13c9 1 19 2 29 5l-5 12l6 2l4 -12c10 3 19 8 27 14
+l-15 20l11 8l15 -21c8 6 15 14 21 22l-11 7l4 6l10 -8c6 8 11 17 15 27l-25 8l4 12zM111 128c0 54 27 81 81 81s81 -27 81 -81s-27 -81 -81 -81s-81 27 -81 81z" />
+    <glyph glyph-name="ion-locked" unicode="&#xf200;" horiz-adv-x="384" 
+d="M22 -32c-12 0 -22 10 -22 22v212c0 12 10 22 22 22h3h19v31c0 42 17 87 43 115s64 46 105 46v0v0c41 0 79 -18 105 -46s43 -73 43 -115v-31h22c12 0 22 -10 22 -22v-212c0 -12 -10 -22 -22 -22h-340zM97 255v-31h17h155h18v31c0 27 -10 61 -28 80v0v1
+c-18 19 -42 29 -67 29v0v0c-25 0 -49 -10 -67 -29v-1v0c-18 -19 -28 -53 -28 -80z" />
+    <glyph glyph-name="ion-log-in" unicode="&#xf29e;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224c-96 0 -177 60 -209 144h34c9 -20 23 -40 39 -56c36 -36 85 -56 136 -56s100 20 136 56s56 85 56 136s-20 100 -56 136s-85 56 -136 56s-100 -20 -136 -56c-16 -16 -30 -36 -39 -56h-34c32 84 113 144 209 144z
+M175 124l52 52h-227v32h227l-52 52l22 23l91 -91l-91 -91z" />
+    <glyph glyph-name="ion-log-out" unicode="&#xf29f;" 
+d="M335 124l52 52h-227v32h227l-52 52l22 23l91 -91l-91 -91zM359 56c3 3 6 5 8 8h41c-40 -58 -108 -96 -184 -96c-124 0 -224 100 -224 224s100 224 224 224c76 0 144 -38 184 -96h-41c-2 3 -5 5 -8 8c-36 36 -84 56 -135 56s-100 -20 -136 -56s-56 -85 -56 -136
+s20 -100 56 -136s85 -56 136 -56s99 20 135 56z" />
+    <glyph glyph-name="ion-loop" unicode="&#xf201;" horiz-adv-x="334" 
+d="M184 148v-58c49 8 86 50 86 102c0 16 -4 30 -10 44c-3 6 -5 12 -9 17l47 43c1 -1 2 -3 3 -4c21 -28 33 -62 33 -100v-4c-2 -72 -47 -131 -111 -154c-12 -4 -26 -8 -39 -9v-57l-76 67l-26 23l44 39zM0 196c2 72 48 133 113 155c12 4 24 7 37 8v57l76 -67l26 -23l-44 -39
+l-59 -51l1 58c-49 -8 -86 -51 -86 -102c0 -16 4 -31 10 -45c3 -6 5 -11 9 -16l-47 -44c-1 2 -2 3 -3 5c-20 28 -33 63 -33 100v4z" />
+    <glyph glyph-name="ion-magnet" unicode="&#xf2a0;" horiz-adv-x="384" 
+d="M192 416c115 0 192 -78 192 -200c0 -49 -3 -77 -15 -128c-16 -66 -39 -113 -39 -113v-1c-2 -3 -6 -6 -10 -6c-1 0 -3 1 -4 1l-2 1l-50 20l-2 1c-3 2 -5 5 -5 9c0 1 0 3 1 4v1c7 16 27 59 37 101s13 63 13 108c0 71 -52 122 -116 122s-116 -51 -116 -122
+c0 -45 3 -66 13 -108s30 -85 37 -101v-1c1 -1 1 -3 1 -4c0 -4 -2 -7 -5 -9l-2 -1l-50 -20l-2 -1c-1 0 -3 -1 -4 -1c-4 0 -8 3 -10 6v1s-24 47 -40 113c-12 51 -14 79 -14 128c0 122 77 200 192 200zM109 4c-9 19 -27 59 -36 98l-42 -12c13 -53 30 -92 35 -104l43 17v1z
+M317 -14c5 12 23 51 36 104l-43 12c-9 -39 -26 -79 -35 -98v-1z" />
+    <glyph glyph-name="ion-male" unicode="&#xf2a1;" 
+d="M448 256l-63 63l-69 -69c22 -30 36 -66 36 -106c0 -97 -79 -176 -176 -176s-176 79 -176 176s79 176 176 176c40 0 76 -14 106 -36l69 69l-63 63h160v-160zM266 54c24 24 38 56 38 90s-14 66 -38 90s-56 38 -90 38s-66 -14 -90 -38s-38 -56 -38 -90s14 -66 38 -90
+s56 -38 90 -38s66 14 90 38z" />
+    <glyph glyph-name="ion-man" unicode="&#xf202;" horiz-adv-x="168" 
+d="M84 341c-21 0 -37 17 -37 38s16 37 37 37s37 -16 37 -37s-16 -38 -37 -38zM121 333c28 0 47 -24 47 -48v-114c0 -22 -32 -22 -32 0v105h-5v-286c0 -28 -41 -31 -43 0v165h-1h-7v-165c-1 -29 -43 -30 -43 0v286h-6v-105c0 -22 -31 -22 -31 0v114c0 24 19 48 47 48h37h37z
+" />
+    <glyph glyph-name="ion-map" unicode="&#xf203;" 
+d="M441 311c4 -3 7 -8 7 -14v-281c0 -6 -2 -11 -7 -14c-2 -1 -5 -2 -7 -2c-3 0 -6 0 -8 2l-97 66l-97 -66c-5 -3 -10 -3 -15 0l-97 66l-97 -66c-5 -3 -10 -3 -15 0s-8 8 -8 14v281c0 6 3 11 7 14l105 71c5 3 10 3 15 0l97 -66l98 66c5 3 10 3 15 0zM103 95v242l-71 -50v-242
+zM135 95l73 -49v129l-4 -11c-7 2 -13 6 -20 10l8 13c5 -3 11 -6 16 -8v109l-73 49v-101c4 -2 9 -4 13 -7l-10 -13c-1 1 -2 1 -3 2v-123zM240 46l73 49v109c0 -1 -1 -1 -1 -2l-6 -6l-12 11l6 6c3 3 5 7 8 10l5 -5v119l-73 -49v-112h7l3 -15c-3 0 -6 -1 -9 -1h-1v-114zM416 46
+v242l-71 49v-88c3 1 5 1 8 2l4 -16c-4 -1 -8 -1 -12 -3v-137zM97 227c-3 -1 -11 -5 -14 -7l-11 12c4 3 8 6 12 8c3 2 6 3 9 4l5 -15c-2 -1 1 -1 -1 -2zM265 182c5 3 10 5 15 10l11 -12c-6 -6 -12 -10 -19 -13zM67 192v-1l-15 5v1c2 7 4 13 9 20l13 -9c-4 -5 -5 -10 -7 -16z
+M166 210c3 -4 7 -8 11 -11l-11 -12c-4 4 -8 9 -12 13l-3 3l12 11c1 -1 2 -3 3 -4zM376 218l-11 12l10 10l-10 10l11 12l10 -11l11 11l11 -12l-10 -10l10 -10l-11 -12l-11 11z" />
+    <glyph glyph-name="ion-medkit" unicode="&#xf2a2;" 
+d="M440 304c4 0 8 -4 8 -8v-288c0 -4 -4 -8 -8 -8h-432c-4 0 -8 4 -8 8v288c0 4 4 8 8 8h120v31c1 28 22 49 51 49h45h45c30 0 50 -21 51 -49v-31h120zM160 331v-27h128v27v1v1c0 10 -9 19 -19 19h-45h-45c-10 0 -19 -9 -19 -19v-1v-1zM320 128v64h-64v64h-64v-64h-64v-64
+h64v-64h64v64h64z" />
+    <glyph glyph-name="ion-merge" unicode="&#xf33f;" horiz-adv-x="384" 
+d="M320 224c35 0 64 -29 64 -64s-29 -64 -64 -64c-24 0 -44 13 -55 32h-10c-61 0 -115 25 -159 74v-115c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v210c-19 11 -32 31 -32 55c0 35 29 64 64 64s64 -29 64 -64c0 -19 -8 -37 -22 -49
+c4 -9 17 -35 37 -58c32 -35 70 -53 112 -53h10c11 19 31 32 55 32zM64 384c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM64 0c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM320 128c18 0 32 14 32 32s-14 32 -32 32
+s-32 -14 -32 -32s14 -32 32 -32z" />
+    <glyph glyph-name="ion-mic-a" unicode="&#xf204;" horiz-adv-x="288" 
+d="M0 210c0 10 9 19 20 19s19 -9 19 -19v-14c0 -28 12 -53 31 -72s45 -31 74 -31s55 12 74 31s31 44 31 72v14c0 10 8 19 19 19s20 -9 20 -19v-14c0 -66 -46 -120 -108 -136c-1 0 -3 -1 -4 -1c-6 -2 -10 -7 -12 -13v-58c0 -11 -9 -20 -20 -20v0c-11 0 -20 9 -20 20v58
+c-2 6 -6 11 -12 13c-1 0 -3 1 -4 1c-62 16 -108 70 -108 136v14zM67 340c0 42 34 76 77 76s78 -34 78 -76v-144c0 -42 -35 -75 -78 -75s-77 33 -77 75v144z" />
+    <glyph glyph-name="ion-mic-b" unicode="&#xf205;" horiz-adv-x="160" 
+d="M80 416c35 0 65 -23 76 -59c6 -18 4 -45 2 -55s-8 -20 -14 -28c-3 -4 -7 -7 -11 -9c-1 0 -1 -1 -2 -1c-3 -1 -6 -2 -10 -3c-12 -3 -25 -5 -39 -5v0h-1h-1v0c-14 0 -29 2 -41 5c-4 1 -7 2 -10 3c-1 0 -1 1 -2 1c-4 2 -8 5 -11 9c-6 8 -12 18 -14 28s-4 37 2 55
+c11 36 41 59 76 59zM119 247c6 0 12 -5 12 -12v-2c-5 -67 -18 -241 -19 -252c0 0 -3 -13 -32 -13v0c-29 0 -32 13 -32 13c-1 11 -13 185 -18 252v2c0 7 5 12 11 12h1c1 0 1 -1 2 -1c2 0 4 -1 6 -1c9 -2 21 -2 31 -2s20 0 29 2c2 0 4 1 6 1c1 0 1 1 2 1h1zM90 166v33
+c0 6 -4 11 -10 11s-10 -5 -10 -11v-33c0 -6 4 -11 10 -11s10 5 10 11z" />
+    <glyph glyph-name="ion-mic-c" unicode="&#xf206;" horiz-adv-x="256" 
+d="M201 416c30 0 55 -23 55 -52v-28h-59v-37h59v-43h-59v-37h59v-43h-59v-37h59v-42c0 -29 -25 -52 -55 -52h-30v-77h-86v77h-30c-30 0 -55 23 -55 52v42h152v37h-152v43h152v37h-152v43h152v37h-152v28c0 29 25 52 55 52h146z" />
+    <glyph glyph-name="ion-minus-circled" unicode="&#xf207;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM352 176v32h-256v-32h256z" />
+    <glyph glyph-name="ion-minus-round" unicode="&#xf208;" horiz-adv-x="384" 
+d="M353 224c17 0 31 -14 31 -32s-14 -32 -31 -32h-322c-17 0 -31 14 -31 32s14 32 31 32h322z" />
+    <glyph glyph-name="ion-minus" unicode="&#xf209;" horiz-adv-x="384" 
+d="M0 160v64h384v-64h-384z" />
+    <glyph glyph-name="ion-model-s" unicode="&#xf2c1;" horiz-adv-x="512" 
+d="M509 57v-8v0v-1v-3v0c0 -3 -1 -5 -1 -7c-1 -12 -2 -18 -6 -20c-3 -2 -6 -2 -10 -2h-43s-10 1 -11 16v8c20 1 39 1 52 0c10 0 13 0 16 6c2 3 2 7 3 11zM3 57c1 -4 1 -8 3 -11c3 -6 6 -6 16 -6c13 1 32 1 52 0v-8c-1 -15 -8 -16 -11 -16h-43s-7 0 -10 2c-4 2 -6 8 -7 20v7
+v0v3v1v0v8zM512 151c0 -31 -2 -58 -2 -68c0 -4 0 -11 -1 -18c-1 -4 -1 -8 -3 -11c-3 -6 -6 -6 -16 -6c-13 1 -32 1 -52 0c-13 0 -27 -2 -39 -2c-30 -1 -21 4 -34 4s-63 -2 -109 -2s-97 2 -110 2s-4 -5 -34 -4c-12 0 -25 2 -38 2c-20 1 -39 1 -52 0c-10 0 -13 0 -16 6
+c-2 3 -2 7 -3 11c-1 7 -1 14 -1 18c0 10 -2 37 -2 68s4 61 6 64c1 2 8 9 26 21s17 10 20 18c-3 1 -5 3 -7 3c-4 0 -4 -3 -12 -3s-24 1 -28 5c-4 3 -5 5 -5 8s2 9 5 13s19 6 27 7s10 0 12 -1c4 -2 3 -22 3 -22l9 -1c5 13 12 41 24 62c13 23 26 30 32 32s10 2 48 6s69 5 96 5
+s58 -1 96 -5s42 -4 48 -6s19 -9 32 -32c12 -21 19 -49 24 -62l9 1s-1 20 3 22c2 1 4 2 12 1s24 -3 27 -7s5 -10 5 -13s-1 -4 -5 -8s-20 -5 -28 -5s-8 3 -12 3c-2 0 -4 -2 -7 -3c3 -8 2 -6 20 -18s25 -19 26 -21c2 -3 6 -33 6 -64zM86 303c-5 -11 -11 -33 -10 -36
+s-1 -5 15 -4s117 3 165 3s149 -2 165 -3s14 1 15 4s-5 25 -10 36s-17 31 -26 37c-2 1 -17 7 -54 9c-34 2 -72 3 -90 3s-56 -1 -90 -3c-37 -2 -52 -8 -54 -9c-7 -4 -21 -26 -26 -37zM123 178c7 2 11 2 11 2s-17 16 -48 25s-49 11 -66 10c0 0 -3 -16 0 -27s8 -10 16 -12
+s13 -5 16 -4s7 4 12 4s29 -4 38 -4s14 4 21 6zM358 99c15 2 34 19 21 33c-18 19 -15 19 -55 24c-35 4 -61 4 -68 4s-33 0 -68 -4c-40 -5 -37 -5 -55 -24c-13 -14 6 -31 21 -33c14 -2 74 -3 102 -3s88 1 102 3zM492 188c3 11 0 27 0 27c-17 1 -35 -1 -66 -10s-48 -26 -48 -26
+s4 1 11 -1s12 -6 21 -6s33 4 38 4s9 -3 12 -4s8 2 16 4s13 1 16 12z" />
+    <glyph glyph-name="ion-monitor" unicode="&#xf20a;" 
+d="M437 384c6 0 11 -5 11 -11v-266c0 -6 -5 -11 -11 -11h-426c-6 0 -11 5 -11 11v266c0 6 5 11 11 11h426zM416 128v224h-384v-224h384zM270 0h-92c-28 0 -42 3 -30 12s30 16 30 23c0 4 1 45 1 45h45h45s1 -41 1 -45c0 -7 18 -14 30 -23s-2 -12 -30 -12z" />
+    <glyph glyph-name="ion-more" unicode="&#xf20b;" horiz-adv-x="384" 
+d="M50 144c-28 0 -50 21 -50 48c0 26 22 48 50 48s50 -22 50 -48c0 -27 -22 -48 -50 -48zM192 144c-28 0 -50 21 -50 48c0 26 22 48 50 48s50 -22 50 -48c0 -27 -22 -48 -50 -48zM334 144c-28 0 -50 21 -50 48c0 26 22 48 50 48s50 -22 50 -48c0 -27 -22 -48 -50 -48z" />
+    <glyph glyph-name="ion-mouse" unicode="&#xf340;" horiz-adv-x="256" 
+d="M128 416h-1h5h-4zM251 255c2 1 2 1 4 1h1v-176c0 -37 -21 -71 -53 -91c-5 -3 -9 -5 -14 -7v-1v0c-18 -9 -39 -13 -61 -13c-71 0 -128 50 -128 112v176h1c2 0 3 0 5 -1v0c34 -13 76 -23 122 -23s88 10 122 23h1zM189 -18c5 2 10 4 14 7c-5 -3 -9 -5 -14 -7v0v-1v1v0z
+M203 -11c-4 -3 -9 -5 -14 -7c5 2 9 4 14 7zM132 416c69 -2 124 -51 124 -112v-23c-2 -2 -4 -4 -6 -5c-1 -1 -3 0 -4 -1c-23 -10 -50 -16 -82 -19h-1h-2c-11 0 -17 0 -17 10v86c0 9 -7 16 -16 16s-16 -7 -16 -16v-85c0 -11 -6 -11 -17 -11h-2c-32 3 -61 9 -84 19v0
+c-1 0 -1 1 -2 1c-3 1 -5 3 -7 5v23c0 61 57 111 127 112h5z" />
+    <glyph glyph-name="ion-music-note" unicode="&#xf20c;" horiz-adv-x="384" 
+d="M362 416c12 0 22 -9 22 -21v-303s-3 -43 -12 -55v0c-9 -15 -25 -21 -43 -21h-37c-28 0 -52 20 -52 48s24 48 52 48h60v192l-208 -38v-232c0 -8 -3 -27 -13 -41c-1 -2 -2 -3 -3 -5c0 -1 -1 -1 -2 -2v0c-9 -11 -23 -18 -38 -18h-37c-28 0 -51 20 -51 48s23 48 51 48v0h61
+v286c1 14 13 28 27 32l218 33s3 1 5 1z" />
+    <glyph glyph-name="ion-navicon-round" unicode="&#xf20d;" horiz-adv-x="384" 
+d="M353 224c17 0 31 -14 31 -32s-14 -32 -31 -32h-322c-17 0 -31 14 -31 32s14 32 31 32h322zM353 352c17 0 31 -14 31 -32s-14 -32 -31 -32h-322c-17 0 -31 14 -31 32s14 32 31 32h322zM353 96c17 0 31 -14 31 -32s-14 -32 -31 -32h-322c-17 0 -31 14 -31 32s14 32 31 32
+h322z" />
+    <glyph glyph-name="ion-navicon" unicode="&#xf20e;" horiz-adv-x="320" 
+d="M0 175v32h320v-32h-320zM0 271v32h320v-32h-320zM0 79v32h320v-32h-320z" />
+    <glyph glyph-name="ion-navigate" unicode="&#xf2a3;" 
+d="M448 416l-192 -448v256h-256z" />
+    <glyph glyph-name="ion-network" unicode="&#xf341;" horiz-adv-x="384" 
+d="M384 352c0 -24 -13 -44 -32 -55v-93l-128 -64v-53c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v53l-128 64v93c-19 11 -32 31 -32 55c0 35 29 64 64 64s64 -29 64 -64c0 -24 -13 -44 -32 -55v-53l96 -48l96 48v53c-19 11 -32 31 -32 55
+c0 35 29 64 64 64s64 -29 64 -64zM64 384c-18 0 -32 -14 -32 -32s14 -32 32 -32s32 14 32 32s-14 32 -32 32zM192 0c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM320 320c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" />
+    <glyph glyph-name="ion-no-smoking" unicode="&#xf2c2;" 
+d="M328 144v48h16v-48h-16zM80 144v48h90l48 -48h-138zM332 388c69 -38 116 -112 116 -196c0 -124 -100 -224 -224 -224c-24 0 -47 4 -68 11c-2 1 -3 1 -5 2c-12 4 -24 9 -35 15h-1c-69 38 -115 112 -115 196c0 124 100 224 224 224c24 0 47 -4 68 -11c2 -1 3 -1 5 -2
+c12 -4 24 -9 35 -15v0zM224 22c37 0 72 12 100 32l-238 238c-20 -28 -32 -63 -32 -100c0 -65 36 -121 90 -150c6 -3 13 -7 19 -9c2 -1 3 -1 5 -2c9 -3 19 -5 29 -7c9 -2 18 -2 27 -2zM362 93c20 28 32 62 32 99c0 66 -37 123 -91 151c-6 3 -12 6 -18 8c-2 1 -3 1 -5 2
+c-9 3 -19 5 -29 7c-9 2 -18 2 -27 2c-37 0 -71 -12 -99 -32zM320 150l-42 42h42v-42zM352 144v48h16v-48h-16zM328 235c16 -7 16 -27 16 -34v-1h-16v1c0 8 -1 17 -7 20c-4 2 -13 4 -39 4h-3c-13 0 -24 0 -33 13c-5 8 -5 19 -2 29c-4 1 -8 1 -12 3c-17 7 -26 20 -26 38
+c0 33 27 44 39 44v-16c-1 0 -23 -2 -23 -28c0 -11 5 -19 16 -23c9 -4 18 -3 18 -3c3 0 6 -2 7 -5s2 -6 0 -8c-5 -7 -7 -18 -4 -22c4 -6 7 -6 20 -6h3c24 0 37 -2 46 -6zM368 200v0h-16c0 28 -4 41 -7 46c-6 10 -14 14 -25 14h-30c-3 0 -5 2 -6 4s-1 6 0 8c0 0 8 18 6 32
+c-1 8 -6 17 -27 17v16c24 0 40 -11 43 -30c2 -11 0 -23 -3 -31h17c16 0 30 -8 39 -22c6 -10 9 -28 9 -54z" />
+    <glyph glyph-name="ion-nuclear" unicode="&#xf2a4;" 
+d="M176 176c0 32 16 48 48 48s48 -16 48 -48s-16 -48 -48 -48s-48 16 -48 48zM176 176c0 32 16 48 48 48s48 -16 48 -48s-16 -48 -48 -48s-48 16 -48 48zM448 176c0 -27 -5 -53 -15 -78s-23 -47 -40 -66s-36 -35 -59 -48l-79 136c22 12 33 31 33 56h160zM224 240
+c-12 0 -23 -3 -33 -9l-80 138c35 20 73 31 113 31s78 -10 113 -30l-81 -139c-10 6 -21 9 -32 9zM160 176c0 -25 11 -44 33 -56l-79 -136c-35 20 -62 46 -83 80s-31 71 -31 112h160z" />
+    <glyph glyph-name="ion-outlet" unicode="&#xf342;" 
+d="M338 416c61 0 110 -51 110 -113v-222c0 -62 -49 -113 -110 -113h-228c-61 0 -110 51 -110 113v222c0 62 49 113 110 113h228zM143 197v102c0 11 -9 21 -20 21h-23c-11 0 -19 -9 -20 -20v-2v-101v-1c0 -11 9 -20 20 -20h23c11 0 20 9 20 20v1zM265 52v29
+c0 23 -18 42 -41 42s-41 -19 -41 -42v-29v0c0 -11 9 -20 20 -20h21h21c11 0 20 7 20 18v2zM368 197v102c0 11 -9 21 -20 21h-24c-11 0 -19 -9 -20 -20v-2v-101v-1c0 -11 9 -20 20 -20h24c11 0 20 9 20 20v1z" />
+    <glyph glyph-name="ion-paintbrush" unicode="&#xf4d5;" 
+d="M118 165c52 0 102 -41 90 -102c-11 -52 -54 -71 -90 -77c-30 -5 -100 0 -118 35c24 9 34 26 34 49c0 49 32 95 84 95zM436 388c13 -13 17 -30 5 -45l-154 -175c2 -9 1 -17 -3 -23l-50 -58v0v0c-2 -2 -4 -2 -6 0c-1 1 -1 2 -1 3v1c2 53 -41 87 -89 90v0h-2s-2 0 -2 1
+c-2 2 -2 4 0 6l59 49c6 4 14 4 23 2l175 154c15 12 32 8 45 -5zM134 188v0v0v0z" />
+    <glyph glyph-name="ion-paintbucket" unicode="&#xf4d6;" horiz-adv-x="480" 
+d="M112 384l32 32l275 -276l-58 -12l-163 -160l-198 192l152 152zM309 160l-110 110l-110 -110h220zM419 140c0 0 61 -66 61 -99s-27 -60 -61 -60s-60 27 -60 60s60 99 60 99z" />
+    <glyph glyph-name="ion-paper-airplane" unicode="&#xf2c3;" 
+d="M0 176l448 240l-112 -448l-112 112l-80 -112l-16 160zM319 31l80 323l-322 -173l83 -31l192 154l-128 -176z" />
+    <glyph glyph-name="ion-paperclip" unicode="&#xf20f;" horiz-adv-x="160" 
+d="M149 293c6 0 11 -5 11 -12v-195c0 -28 -10 -49 -24 -63c-15 -15 -36 -23 -56 -23c-40 0 -80 31 -80 88v234c0 24 11 44 29 54s39 11 57 0s29 -30 29 -54l-1 -225c0 -13 -3 -24 -9 -32s-16 -12 -25 -12c-17 0 -34 15 -34 44v173c0 6 6 12 12 12s11 -6 11 -12v-173
+c0 -14 5 -21 11 -21c2 0 5 2 7 4c3 4 5 10 5 17v225c0 15 -6 28 -17 34s-24 6 -35 0s-17 -19 -17 -34v-234c0 -44 29 -64 57 -64s57 19 57 63v195c0 6 6 11 12 11z" />
+    <glyph glyph-name="ion-pause" unicode="&#xf210;" horiz-adv-x="256" 
+d="M96 12c0 -7 -5 -12 -12 -12h-72c-7 0 -12 5 -12 12v360c0 7 5 12 12 12h72c7 0 12 -5 12 -12v-360zM244 384c7 0 12 -5 12 -12v-360c0 -7 -5 -12 -12 -12h-72c-7 0 -12 5 -12 12v360c0 7 5 12 12 12h72z" />
+    <glyph glyph-name="ion-person-add" unicode="&#xf211;" 
+d="M397 120h-42v51h-51v42h51v51h42v-51h51v-42h-51v-51zM384 0h-192h-192s0 26 2 40c2 11 17 25 81 49c63 23 60 12 60 55c0 28 -14 11 -23 64c-4 21 -6 7 -14 40c-4 17 3 19 2 27s-2 16 -4 33c-2 21 18 76 88 76s90 -55 88 -76c-2 -17 -3 -25 -4 -33s6 -10 2 -27
+c-8 -33 -10 -19 -14 -40c-9 -53 -23 -36 -23 -64c0 -43 -3 -32 60 -55c64 -24 79 -38 81 -49c2 -14 2 -40 2 -40z" />
+    <glyph glyph-name="ion-person-stalker" unicode="&#xf212;" 
+d="M393 123c42 -16 52 -26 53 -33c2 -9 2 -90 2 -90h-98c0 18 0 71 -1 77c-1 10 -1 29 -55 50c-8 3 -14 5 -19 7c18 8 15 15 15 28c0 19 -9 11 -15 47c-2 14 -4 5 -9 28c-3 12 1 12 1 18s-1 10 -2 22c-1 14 11 52 57 52s59 -38 58 -52c-1 -12 -2 -16 -2 -22
+c-1 -6 4 -6 1 -18c-5 -23 -7 -14 -9 -28c-6 -36 -16 -28 -16 -47c0 -29 -2 -23 39 -39zM325 0h-163h-162s0 65 2 77c2 10 15 22 69 43c54 20 50 17 50 55c0 24 -12 8 -20 54c-3 18 -5 7 -11 36c-3 15 2 16 1 23s-2 14 -3 29c-2 19 15 67 74 67s77 -49 75 -67
+c-1 -15 -2 -22 -3 -29s5 -8 2 -23c-6 -29 -9 -18 -12 -36c-8 -46 -20 -30 -20 -54c0 -32 -2 -36 31 -48c6 -2 11 -4 19 -7c54 -21 67 -33 69 -43c1 -6 2 -28 2 -47v-30z" />
+    <glyph glyph-name="ion-person" unicode="&#xf213;" horiz-adv-x="384" 
+d="M384 0h-192h-192s0 26 2 40c2 11 17 25 81 49c63 23 60 12 60 55c0 28 -14 11 -23 64c-4 21 -6 7 -14 40c-4 17 3 19 2 27s-2 16 -4 33c-2 21 18 76 88 76s90 -55 88 -76c-2 -17 -3 -25 -4 -33s6 -10 2 -27c-8 -33 -10 -19 -14 -40c-9 -53 -23 -36 -23 -64
+c0 -43 -3 -32 60 -55c64 -24 79 -38 81 -49c2 -14 2 -40 2 -40z" />
+    <glyph glyph-name="ion-pie-graph" unicode="&#xf2a5;" 
+d="M1 192c0 5 -1 11 -1 16c0 115 93 208 208 208c5 0 11 -1 16 -1v-32v-191h-191h-32zM78 46c-26 32 -42 71 -45 114h223v223c43 -3 82 -19 114 -45c47 -38 78 -96 78 -162c0 -115 -93 -208 -208 -208c-66 0 -124 31 -162 78z" />
+    <glyph glyph-name="ion-pin" unicode="&#xf2a6;" horiz-adv-x="224" 
+d="M188 220c20 -10 36 -31 36 -55c0 -17 -3 -21 -15 -21h-81l-12 -176h-8l-12 176h-81c-12 0 -15 5 -15 21c0 24 16 45 36 55v0c1 0 3 1 4 2c7 4 12 11 14 19l18 118v5c0 7 -4 10 -10 13v0c-1 0 -1 1 -2 1c-7 3 -12 9 -12 17c0 20 6 21 18 21h92c12 0 18 -1 18 -21
+c0 -8 -5 -14 -12 -17c-1 0 -1 -1 -2 -1v0c-6 -3 -10 -6 -10 -13v-5l18 -118c2 -8 7 -15 14 -19c1 -1 3 -2 4 -2v0z" />
+    <glyph glyph-name="ion-pinpoint" unicode="&#xf2a7;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c32 32 51 75 55 120l-63 8v16l63 8c-4 45 -23 88 -55 120s-75 51 -120 55l-8 -63h-16l-8 63c-45 -4 -88 -23 -120 -55s-51 -75 -55 -120l63 -8v-16l-63 -8
+c4 -45 23 -88 55 -120s75 -51 120 -55l8 63h16l8 -63c45 4 88 23 120 55z" />
+    <glyph glyph-name="ion-pizza" unicode="&#xf2a8;" horiz-adv-x="352" 
+d="M315 318c10 -4 12 -13 9 -20l-148 -330s-143 320 -148 331s2 16 9 19c39 18 90 28 139 28s96 -9 139 -28zM112 256c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM176 109c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM240 224
+c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM342 382c6 -3 10 -6 10 -13c0 -1 0 -3 -1 -5l-8 -19c-3 -5 -8 -9 -14 -9c-1 0 -3 1 -6 2c-41 18 -95 30 -147 30s-102 -11 -147 -30c-3 -1 -4 -2 -6 -2c-6 0 -11 4 -14 9l-8 19s-1 2 -1 5c0 8 6 12 10 14
+c49 21 107 33 166 33s118 -13 166 -34z" />
+    <glyph glyph-name="ion-plane" unicode="&#xf214;" 
+d="M250 136c0 -7 1 -69 -6 -102c-1 -4 3 -4 5 -7l51 -33c2 -2 3 -8 3 -8l1 -18l-68 16l-12 -32l-12 32l-68 -16l1 18s0 6 2 8l52 33c2 3 6 3 5 7c-7 33 -6 95 -6 102s-8 5 -8 5l-62 -13l-128 -49c0 23 2 26 9 31l183 131s5 63 5 113c0 24 12 78 27 78s27 -54 27 -78
+c0 -53 5 -113 5 -113l183 -131c6 -4 9 -7 9 -31l-128 49l-62 13s-8 2 -8 -5z" />
+    <glyph glyph-name="ion-planet" unicode="&#xf343;" horiz-adv-x="512" 
+d="M96 182c39 -24 85 -48 134 -69c44 -19 87 -35 126 -46c-27 -22 -62 -35 -100 -35c-85 0 -155 66 -160 150zM107 251c1 4 3 8 5 11c10 21 26 40 44 55c27 22 62 35 100 35c85 0 155 -66 160 -150v-10c0 -21 -4 -41 -11 -59c-1 -4 -3 -8 -5 -11c-6 1 -13 3 -19 5
+c-39 11 -82 26 -126 45c-56 24 -108 52 -148 79zM430 163c57 -35 87 -62 81 -82c-4 -12 -19 -17 -44 -17c-50 0 -136 23 -231 64c-141 61 -246 140 -235 175c4 12 20 20 44 17c22 -3 47 -9 73 -18c-8 -9 -8 -12 -14 -22c-23 5 -44 8 -59 8h-6c2 -2 5 -6 8 -9
+c11 -11 27 -24 46 -37c41 -29 97 -59 156 -85c44 -19 89 -35 128 -46c36 -10 68 -15 90 -15h6c-2 2 -5 6 -8 9c-10 10 -24 22 -41 34c4 11 5 12 6 24z" />
+    <glyph glyph-name="ion-play" unicode="&#xf215;" horiz-adv-x="320" 
+d="M309 215c7 -6 11 -14 11 -23s-4 -17 -11 -23l-278 -166c-4 -2 -7 -3 -11 -3c-11 0 -20 9 -20 20v0v344v0c0 11 9 20 20 20c4 0 8 -1 11 -3z" />
+    <glyph glyph-name="ion-playstation" unicode="&#xf30a;" horiz-adv-x="512" 
+d="M400 245c0 -11 0 -22 -2 -33c-2 -10 -5 -20 -10 -28c-4 -7 -10 -13 -18 -17c-7 -4 -16 -6 -24 -6c-13 0 -31 4 -42 9v131v2c0 9 -7 17 -15 17h-1c-9 0 -16 -8 -16 -17v-3v-300l-80 26v358s28 -4 75 -18s67 -21 84 -31c8 -5 15 -11 21 -17c7 -7 13 -14 17 -23
+c8 -16 10 -33 11 -50zM87 90c-4 -2 -8 -3 -11 -6c-1 -1 -3 -3 -2 -5s4 -4 6 -5c6 -2 13 -3 19 -3c7 0 15 0 22 2c5 1 9 3 14 5c30 10 41 12 41 12v-42c-14 -2 -36 -4 -50 -4c-30 -1 -60 4 -88 13c-9 3 -19 6 -27 12c-4 3 -8 8 -10 13c-2 4 -1 9 1 13s5 8 9 11
+c9 6 18 10 28 14c8 4 17 7 26 10c35 12 111 37 111 37v-47s-62 -20 -89 -30zM512 102c0 -5 -2 -9 -5 -13c-6 -7 -14 -11 -22 -15s-17 -8 -26 -11c-54 -19 -171 -59 -171 -59v48s92 30 133 44c6 2 11 4 16 8c2 2 4 3 3 6c-1 2 -4 4 -6 5c-6 2 -13 3 -19 3
+c-10 0 -20 -2 -30 -5c-29 -10 -97 -32 -97 -32v49s45 14 67 16c8 1 23 1 31 1c26 0 54 -3 79 -11c5 -2 8 -3 14 -5c9 -3 18 -8 25 -14c4 -4 8 -9 8 -15z" />
+    <glyph glyph-name="ion-plus-circled" unicode="&#xf216;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM352 176v32h-112v112h-32v-112h-112v-32h112v-112h32v112h112z" />
+    <glyph glyph-name="ion-plus-round" unicode="&#xf217;" horiz-adv-x="384" 
+d="M353 224c17 0 31 -14 31 -32s-14 -32 -31 -32h-129v-129c0 -17 -14 -31 -32 -31s-32 14 -32 31v129h-129c-17 0 -31 14 -31 32s14 32 31 32h129v129c0 17 14 31 32 31s32 -14 32 -31v-129h129z" />
+    <glyph glyph-name="ion-plus" unicode="&#xf218;" horiz-adv-x="384" 
+d="M384 224v-64h-160v-160h-64v160h-160v64h160v160h64v-160h160z" />
+    <glyph glyph-name="ion-podium" unicode="&#xf344;" 
+d="M0 0v192h128v-192h-128zM160 0v288h128v-288h-128zM320 0v128h128v-128h-128z" />
+    <glyph glyph-name="ion-pound" unicode="&#xf219;" 
+d="M93 96h-93v54h101l13 84h-99v54h107l22 128h64l-22 -128h106l22 128h63l-22 -128h93v-54h-102l-12 -84h99v-54h-107l-22 -128h-63l22 128h-107l-22 -128h-63zM177 234l-12 -84h106l12 84h-106v0z" />
+    <glyph glyph-name="ion-power" unicode="&#xf2a9;" 
+d="M224 192c-18 0 -32 14 -32 32v160c0 18 14 32 32 32s32 -14 32 -32v-160c0 -18 -14 -32 -32 -32zM347 379c61 -40 101 -109 101 -187c0 -124 -100 -224 -224 -224s-224 100 -224 224c0 78 40 147 101 187v0c5 3 11 5 17 5c18 0 32 -14 32 -32c0 -6 -2 -12 -5 -17
+c-2 -3 -4 -6 -7 -8c-1 -1 -3 -2 -4 -3c-8 -6 -16 -12 -23 -19c-30 -30 -47 -70 -47 -113s17 -83 47 -113s70 -47 113 -47s83 17 113 47s47 70 47 113s-17 83 -47 113c-7 7 -15 13 -23 19c-1 1 -3 2 -4 3c-3 2 -5 5 -7 8c-3 5 -5 11 -5 17c0 18 14 32 32 32c6 0 12 -2 17 -5
+v0z" />
+    <glyph glyph-name="ion-pricetag" unicode="&#xf2aa;" 
+d="M439 187c12 -12 12 -31 0 -43l-165 -167c-11 -11 -30 -11 -42 -1l-3 3l-206 209l-6 5c-6 7 -9 15 -10 24v0v2v0l-7 98v4v0c0 12 4 24 13 33l49 49c8 9 20 13 31 13h4l100 -4v0c12 0 22 -4 30 -12v0l2 -2v0l210 -211v0v0zM112 256c26 0 48 22 48 48s-22 48 -48 48
+s-48 -22 -48 -48s22 -48 48 -48z" />
+    <glyph glyph-name="ion-pricetags" unicode="&#xf2ab;" 
+d="M440 209c10 -11 11 -28 0 -39l-29 -29c11 11 10 28 0 39v0v0l-190 191v0l-1 1h-1c-8 7 -16 12 -27 12v0l-90 3h-4c-9 0 -19 -3 -26 -10l28 27c8 8 17 12 27 12h4l90 -4v0c11 0 19 -4 27 -11h1l1 -1v0l190 -191v0v0zM396 166v0c11 -11 11 -29 0 -40l-108 -109v1l-26 -27
+l-2 -2l-13 -13c-10 -10 -26 -10 -37 -1l-3 3l-186 188l-5 5c-5 6 -9 14 -10 22v0v2v0l-6 88v3v1c0 11 4 21 12 29l44 45l1 1l1 1c7 6 17 9 26 9h4l90 -3v0c11 0 19 -4 27 -11v0l2 -1v0l189 -191v0zM79 308c-12 -8 -21 -21 -21 -37c0 -24 19 -43 43 -43c16 0 29 9 37 21
+c4 7 7 14 7 22c0 24 -20 44 -44 44c-8 0 -15 -3 -22 -7z" />
+    <glyph glyph-name="ion-printer" unicode="&#xf21a;" 
+d="M392 320c28 0 56 -19 56 -55v-131c0 -31 -28 -54 -56 -54h-40v-112h-8h-8h-224h-11h-5v112h-40c-28 0 -56 24 -56 62v123c0 38 28 55 56 55h40v64h256v-64h40zM336 -16v176h-224v-176h224zM336 320v48h-224v-48h224zM384 256v16h-17v-16h17zM128 112v16h192v-16h-192z
+M128 64v16h192v-16h-192zM128 16v16h192v-16h-192z" />
+    <glyph glyph-name="ion-pull-request" unicode="&#xf345;" horiz-adv-x="384" 
+d="M64 384c35 0 64 -29 64 -64c0 -24 -13 -44 -32 -55v-178c19 -11 32 -31 32 -55c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 24 13 44 32 55v178c-19 11 -32 31 -32 55c0 35 29 64 64 64zM64 0c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM64 288
+c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32zM351 88c20 -11 33 -32 33 -56c0 -35 -29 -64 -64 -64s-64 29 -64 64c0 23 12 44 31 55v156c0 16 -4 26 -11 33c-10 9 -26 12 -52 12v-64l-96 96l96 96v-64c42 1 74 -8 96 -29c21 -19 31 -46 31 -80v-155z
+M320 0c18 0 32 14 32 32s-14 32 -32 32s-32 -14 -32 -32s14 -32 32 -32z" />
+    <glyph glyph-name="ion-qr-scanner" unicode="&#xf346;" horiz-adv-x="416" 
+d="M48 324v-68h-48v68c0 33 28 60 61 60h67v-48h-68c-7 0 -12 -5 -12 -12zM356 384c33 0 60 -27 60 -60v-68h-48v68c0 7 -6 12 -13 12h-67v48h68zM368 61v67h48v-67c0 -33 -27 -61 -60 -61h-68v49h68c7 0 12 5 12 12zM60 49h68v-49h-67c-33 0 -61 28 -61 61v67h48v-67
+c0 -7 5 -12 12 -12z" />
+    <glyph glyph-name="ion-quote" unicode="&#xf347;" horiz-adv-x="384" 
+d="M128 384c-41 0 -73 -11 -95 -33s-33 -54 -33 -95v-256h160v256h-96c0 23 5 39 15 49s26 15 49 15zM352 384c-41 0 -73 -11 -95 -33s-33 -54 -33 -95v-256h160v256h-96c0 23 5 39 15 49s26 15 49 15z" />
+    <glyph glyph-name="ion-radio-waves" unicode="&#xf2ac;" 
+d="M160 192c0 43 21 64 64 64s64 -21 64 -64s-21 -64 -64 -64s-64 21 -64 64zM112 192c0 -18 5 -35 13 -50s19 -28 33 -37l-23 -25c-6 5 -13 10 -18 16c-25 26 -37 59 -37 96s12 70 37 96c5 6 12 11 18 16l23 -25c-14 -9 -25 -22 -33 -37s-13 -32 -13 -50zM336 192
+c0 18 -5 35 -13 50s-19 28 -33 37l23 25c6 -5 13 -10 18 -16c25 -26 37 -59 37 -96s-12 -70 -37 -96c-5 -6 -12 -11 -18 -16l-23 25c14 9 25 22 33 37s13 32 13 50zM32 192c0 -27 6 -53 17 -77s27 -43 47 -59l-23 -24c-6 5 -12 10 -17 16c-18 19 -31 41 -41 65
+c-10 25 -15 51 -15 79s5 54 15 79c10 24 23 46 41 65c5 6 11 11 17 16l23 -24c-10 -8 -18 -17 -26 -27s-14 -21 -20 -32s-10 -24 -13 -37s-5 -26 -5 -40zM416 192c0 27 -6 53 -17 77s-27 43 -47 59l23 24c6 -5 12 -10 17 -16c18 -19 31 -41 41 -65c10 -25 15 -51 15 -79
+s-5 -54 -15 -79c-10 -24 -23 -46 -41 -65c-4 -5 -10 -10 -17 -16l-23 24c20 16 36 35 47 59s17 50 17 77z" />
+    <glyph glyph-name="ion-record" unicode="&#xf21b;" horiz-adv-x="416" 
+d="M208 -16c-115 0 -208 93 -208 208s93 208 208 208s208 -93 208 -208s-93 -208 -208 -208z" />
+    <glyph glyph-name="ion-refresh" unicode="&#xf21c;" 
+d="M352 96l-104 112h74c-7 65 -64 112 -130 112c-71 0 -128 -57 -128 -128s57 -128 128 -128c28 0 53 8 75 24l6 5l43 -46l-7 -6c-34 -26 -74 -41 -117 -41c-91 0 -167 64 -187 149v0c0 1 -1 2 -1 3v1v2s-1 2 -1 3v1c0 1 -1 3 -1 4v0c-1 6 -2 13 -2 19v1v4v5v5v4v1
+c0 6 1 13 2 19v0c0 1 1 3 1 4v1c0 1 1 1 1 2v3v1c0 1 1 2 1 3v0c20 85 96 149 187 149v0v0c11 0 21 -1 31 -3h2h2c57 -10 106 -47 133 -96c13 -23 21 -49 23 -77h65z" />
+    <glyph glyph-name="ion-reply-all" unicode="&#xf21d;" horiz-adv-x="416" 
+d="M257 256c153 0 159 -208 159 -208c-51 93 -91 102 -159 102v-92l-152 134l152 144v-80zM0 192l144 136v-57l-82 -79l82 -68v-58z" />
+    <glyph glyph-name="ion-reply" unicode="&#xf21e;" horiz-adv-x="384" 
+d="M384 48c-53 93 -122 102 -224 102v-92l-160 134l160 144v-80c187 0 224 -208 224 -208z" />
+    <glyph glyph-name="ion-ribbon-a" unicode="&#xf348;" horiz-adv-x="352" 
+d="M272 416l80 -96l-64 -134c-24 30 -59 49 -99 53zM80 416l83 -177c-40 -4 -75 -23 -99 -53l-64 134zM189 416h67l-53 -112h-27h-27l-53 112h80h13zM176 224c71 0 128 -57 128 -128s-57 -128 -128 -128s-128 57 -128 128s57 128 128 128zM176 0c53 0 96 43 96 96
+s-43 96 -96 96s-96 -43 -96 -96s43 -96 96 -96zM176 184c49 0 88 -39 88 -88s-39 -88 -88 -88s-88 39 -88 88s39 88 88 88z" />
+    <glyph glyph-name="ion-ribbon-b" unicode="&#xf349;" horiz-adv-x="384" 
+d="M192 376c49 0 88 -39 88 -88s-39 -88 -88 -88s-88 39 -88 88s39 88 88 88zM192 416c71 0 128 -57 128 -128s-57 -128 -128 -128s-128 57 -128 128s57 128 128 128zM192 192c53 0 96 43 96 96s-43 96 -96 96s-96 -43 -96 -96s43 -96 96 -96zM83 194c26 -30 65 -50 109 -50
+c12 0 23 1 34 4l-34 -74l-48 -106l-48 80h-96zM301 194l83 -146h-96l-48 -80l-40 88l45 98c22 9 41 23 56 40z" />
+    <glyph glyph-name="ion-sad-outline" unicode="&#xf4d7;" 
+d="M367 164c3 -9 -2 -17 -11 -19c-3 -1 -7 0 -10 1c-5 2 -9 5 -11 10s-4 12 -13 15s-14 0 -19 -3c-4 -3 -10 -3 -15 -1c-3 1 -7 3 -9 6c-6 8 -3 17 5 22c15 9 29 13 49 6s29 -21 34 -37zM165 195c8 -5 10 -14 4 -22c-2 -3 -6 -5 -9 -6c-5 -2 -11 -2 -15 1c-5 3 -10 6 -19 3
+s-11 -10 -13 -15s-6 -8 -11 -10c-3 -1 -7 -2 -10 -1c-9 2 -14 10 -11 19c5 16 14 30 34 37s35 3 50 -6zM224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c36 36 56 85 56 136s-20 100 -56 136s-85 56 -136 56
+s-100 -20 -136 -56s-56 -85 -56 -136s20 -100 56 -136s85 -56 136 -56s100 20 136 56zM317 89c5 -7 3 -17 -4 -22c-3 -2 -6 -3 -9 -3c-5 0 -10 3 -13 7c0 0 -19 25 -67 25s-67 -25 -67 -25c-3 -4 -8 -7 -13 -7c-3 0 -6 1 -9 3c-7 5 -9 15 -4 22c1 2 28 39 93 39
+s92 -37 93 -39z" />
+    <glyph glyph-name="ion-sad" unicode="&#xf34a;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM113 156c2 5 4 12 13 15s14 0 19 -3c4 -3 10 -3 15 -1c3 1 7 3 9 6c6 8 4 17 -4 22c-15 9 -30 13 -50 6s-29 -21 -34 -37c-3 -9 2 -17 11 -19c3 -1 7 0 10 1c5 2 9 5 11 10z
+M313 67c7 5 9 15 4 22c-1 2 -28 39 -93 39s-92 -37 -93 -39c-5 -7 -3 -17 4 -22c3 -2 6 -3 9 -3c5 0 10 3 13 7c0 0 19 25 67 25s67 -25 67 -25c3 -4 8 -7 13 -7c3 0 6 1 9 3zM356 145c9 2 14 10 11 19c-5 16 -14 30 -34 37s-34 3 -49 -6c-8 -5 -11 -14 -5 -22
+c2 -3 6 -5 9 -6c5 -2 11 -2 15 1c5 3 10 6 19 3s11 -10 13 -15s6 -8 11 -10c3 -1 7 -2 10 -1z" />
+    <glyph glyph-name="ion-scissors" unicode="&#xf34b;" horiz-adv-x="384" 
+d="M341 332c-13 -33 -117 -172 -117 -172l-32 -32s-31 -13 -50 -43s-33 -71 -33 -71v0c-7 -26 -28 -46 -53 -46c-31 0 -56 29 -56 64s25 64 56 64c13 0 25 -5 34 -13c2 -1 3 -3 4 -4v0l2 -2c4 -4 7 -2 14 11c8 15 17 35 27 54s38 59 38 59l17 23l144 192
+c23 -20 18 -51 5 -84zM56 0c15 0 28 14 28 32s-13 32 -28 32s-28 -14 -28 -32s13 -32 28 -32zM192 160c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM143 183c-30 41 -90 125 -100 149c-13 33 -18 64 5 84l134 -178l-3 -4v0v0l-17 -23v-1v0
+c-1 -1 -10 -13 -19 -27zM328 96c31 0 56 -29 56 -64s-25 -64 -56 -64c-25 0 -47 20 -54 46v0s-13 41 -32 71c-11 17 -26 28 -36 35l29 29l1 1h1c1 1 1 2 2 4c3 -4 5 -9 7 -12c10 -19 20 -39 28 -54c7 -13 10 -15 14 -11c1 1 0 1 1 2h1c1 1 2 3 4 4c9 8 21 13 34 13zM328 0
+c15 0 28 14 28 32s-13 32 -28 32s-28 -14 -28 -32s13 -32 28 -32z" />
+    <glyph glyph-name="ion-search" unicode="&#xf21f;" horiz-adv-x="384" 
+d="M381 61c4 -4 4 -10 0 -14l-43 -44c-2 -2 -5 -3 -8 -3s-5 1 -7 3l-84 86c-25 -15 -52 -23 -80 -23c-87 0 -159 71 -159 159s72 159 159 159s158 -71 158 -159c0 -27 -7 -54 -21 -78zM159 322c-53 0 -97 -43 -97 -97s44 -97 97 -97s96 43 96 97s-43 97 -96 97z" />
+    <glyph glyph-name="ion-settings" unicode="&#xf2ad;" horiz-adv-x="416" 
+d="M402 310c10 -6 15 -25 14 -36c-1 -17 -7 -36 -25 -54c-1 -1 -2 -1 -3 -2c-26 -25 -62 -30 -94 -20c-1 1 -2 2 -4 2c-5 1 -10 0 -13 -4l-36 -39c52 -50 107 -96 107 -96c2 -2 2 -5 0 -7l-50 -51c-2 -2 -5 -2 -7 0c0 0 -44 55 -93 107l-92 -98c-14 -16 -40 -15 -55 0
+c-15 16 -15 42 1 56l97 93l-12 12c-2 2 -3 7 -1 10l2 5c-25 26 -36 33 -56 32s-36 -13 -48 -28s-10 -52 -8 -62s-7 -6 -12 0c-9 10 -23 50 -6 93s42 69 48 75s16 15 24 21s21 -1 27 5c4 4 5 11 5 16l-4 4c-2 2 -2 5 0 7l31 31c2 2 5 2 7 0l50 -50c2 -2 2 -6 0 -8l-31 -31
+c-2 -2 -5 -2 -7 0l-8 9c-7 0 -15 -5 -17 -10c-3 -6 -6 -21 -3 -33c3 -11 13 -20 36 -43l5 3c4 2 8 1 10 -1c0 0 1 -2 13 -14l38 37c4 3 5 7 4 13c0 2 0 4 -1 5c-10 33 -6 69 19 96l2 2c18 18 36 25 53 26c10 1 30 -5 35 -15l-48 -48l-2 -3l-1 -1c-1 -1 -1 -2 -1 -4
+s0 -3 1 -5l2 -2l2 -2l41 -42l3 -3l1 -1c1 -1 2 -1 4 -1s3 0 4 1l2 1l2 3z" />
+    <glyph glyph-name="ion-share" unicode="&#xf220;" horiz-adv-x="384" 
+d="M288 70v59l38 31v-109c0 -11 -8 -19 -19 -19h-288c-11 0 -19 9 -19 19v218c0 11 8 19 19 19h120c-29 -18 -43 -38 -43 -38h-58v-180h250zM256 224c-84 0 -116 -24 -160 -96c0 0 5 164 160 164v60l128 -96l-128 -96v64z" />
+    <glyph glyph-name="ion-shuffle" unicode="&#xf221;" 
+d="M338 267c-52 0 -83 -43 -120 -92c-41 -55 -88 -120 -171 -120h-47v63h47c52 0 84 47 121 96c41 55 87 116 170 116h29v54l81 -81l-81 -84v48h-29zM121 230c-21 21 -42 35 -74 36c-34 1 -47 0 -47 0v63h47c48 0 83 -20 113 -48c-10 -12 -19 -24 -28 -36
+c-4 -5 -7 -10 -11 -15zM367 118v47l81 -84l-81 -81v54h-29c-50 0 -87 23 -117 53c12 14 22 28 32 41c2 3 5 6 7 9c22 -24 46 -39 78 -39h29z" />
+    <glyph glyph-name="ion-skip-backward" unicode="&#xf222;" horiz-adv-x="384" 
+d="M12 352h8c7 0 12 -5 12 -12v-113l187 122c2 2 5 3 8 3c8 0 16 -7 16 -17v-63l118 78c2 2 5 2 8 2c8 0 15 -7 15 -17v-286c0 -10 -7 -17 -15 -17c-3 0 -5 1 -8 3l-118 78v-64c0 -10 -8 -17 -16 -17c-3 0 -5 1 -8 3l-187 122v-113c0 -7 -5 -12 -12 -12h-8
+c-7 0 -12 5 -12 12v296c0 7 5 12 12 12z" />
+    <glyph glyph-name="ion-skip-forward" unicode="&#xf223;" horiz-adv-x="384" 
+d="M372 352c7 0 12 -5 12 -12v-296c0 -7 -5 -12 -12 -12h-8c-7 0 -12 5 -12 12v113l-187 -122c-3 -2 -5 -3 -8 -3c-8 0 -15 7 -15 17v64l-119 -78c-3 -2 -5 -3 -8 -3c-8 0 -15 7 -15 17v286c0 10 7 17 15 17c3 0 6 0 8 -2l119 -78v63c0 10 7 17 15 17c3 0 6 -1 8 -3
+l187 -122v113c0 7 5 12 12 12h8z" />
+    <glyph glyph-name="ion-social-android-outline" unicode="&#xf224;" horiz-adv-x="352" 
+d="M272 240h-192v-60v-89h24h16v-15v-52c0 -4 4 -8 8 -8s8 4 8 8v52v15h17h49h15v-15v-52c0 -2 1 -4 3 -6h1v0c1 -1 2 -2 4 -2h1v0v0c4 0 7 4 7 8v52v15h17h22v89v60zM288 256v0v-76v-90c0 -7 -3 -15 -10 -15h-29v-51c0 -13 -10 -24 -23 -24v0h-1c-6 0 -11 2 -15 5
+c-5 4 -9 11 -9 19v51h-49v-51c0 -13 -11 -24 -24 -24s-24 11 -24 24v51h-28c-7 0 -12 8 -12 15v90v76h224zM328 256c-4 0 -8 -4 -8 -8v-96c0 -4 4 -8 8 -8s8 4 8 8v96c0 4 -4 8 -8 8zM328 272v0c13 0 24 -11 24 -24v-96c0 -13 -11 -24 -24 -24s-24 11 -24 24v96
+c0 13 11 24 24 24zM24 256c-4 0 -8 -4 -8 -8v-96c0 -4 4 -8 8 -8s8 4 8 8v96c0 4 -4 8 -8 8zM24 272v0c13 0 24 -11 24 -24v-96c0 -13 -11 -24 -24 -24s-24 11 -24 24v96c0 13 11 24 24 24zM175 354c-14 0 -27 -3 -38 -6l-10 -4c-28 -12 -40 -37 -44 -56h186
+c-4 18 -15 43 -44 56l-10 4c-12 4 -25 6 -39 6v0v0h-1zM105 384v0h1l19 -23c13 5 30 9 50 9h1c20 0 36 -4 50 -9l20 23v0s1 -1 2 -1c1 -1 2 -3 2 -3l-19 -22c48 -21 56 -71 57 -86h-224c1 15 9 66 57 87l-19 22c0 1 1 1 2 2zM127 309c-7 0 -14 6 -14 13s6 14 14 14
+c7 0 13 -7 13 -14s-5 -13 -13 -13zM225 309c-7 0 -13 6 -13 13s5 14 13 14c7 0 13 -7 13 -14s-6 -13 -13 -13z" />
+    <glyph glyph-name="ion-social-android" unicode="&#xf225;" horiz-adv-x="352" 
+d="M64 180v76h224v-76v-90c0 -7 -4 -14 -11 -14h-28v-52c0 -13 -11 -24 -24 -24v0h-1c-6 0 -10 2 -14 5c-5 4 -9 11 -9 19v52h-49v-52c0 -13 -11 -24 -24 -24s-24 11 -24 24v52h-29c-7 0 -11 7 -11 14v90zM328 272c13 0 24 -11 24 -24v-96c0 -13 -11 -24 -24 -24
+s-24 11 -24 24v96c0 13 11 24 24 24zM24 272c13 0 24 -11 24 -24v-96c0 -13 -11 -24 -24 -24s-24 11 -24 24v96c0 13 11 24 24 24zM231 359c48 -21 56 -72 57 -87h-224c1 15 8 66 56 87l-18 22c0 1 0 1 1 2s3 1 3 1l19 -23c14 5 31 9 51 9s36 -4 50 -9l20 23c0 1 1 0 2 -1
+l2 -2zM127 309c8 0 13 6 13 13s-6 14 -13 14c-8 0 -14 -7 -14 -14s7 -13 14 -13zM225 309c7 0 14 6 14 13s-7 14 -14 14c-8 0 -13 -7 -13 -14s6 -13 13 -13z" />
+    <glyph glyph-name="ion-social-angular-outline" unicode="&#xf4d8;" 
+d="M224 384l-188 -69l39 -230l149 -80l149 80l39 230zM224 416v0l224 -80l-46 -272l-178 -96l-178 96l-46 272zM312 96l-27 56h-122l-27 -56h-40l128 280l128 -280h-40zM182 192h84l-42 89z" />
+    <glyph glyph-name="ion-social-angular" unicode="&#xf4d9;" 
+d="M182 192l42 89l42 -89h-84zM224 416l224 -80l-46 -272l-178 -96l-178 96l-46 272zM312 96h40l-128 280l-128 -280h40l27 56h122z" />
+    <glyph glyph-name="ion-social-apple-outline" unicode="&#xf226;" horiz-adv-x="320" 
+d="M238 278c-15 0 -26 -4 -37 -8c-10 -4 -21 -8 -35 -8s-25 4 -37 8c-11 4 -22 8 -34 8c-11 0 -23 -3 -34 -10c-12 -7 -23 -18 -31 -31c-12 -18 -16 -47 -13 -77c3 -34 16 -69 35 -99c13 -21 30 -45 50 -45h1c8 0 13 3 20 6c10 5 23 10 44 10v0c21 0 34 -5 44 -10
+c7 -3 12 -6 19 -6v0c22 0 44 35 52 48c8 12 12 20 17 31c-12 7 -22 16 -30 28c-10 15 -17 33 -18 52c-1 18 2 37 10 53c6 12 14 22 24 30c-14 13 -31 20 -47 20zM238 294v0c25 0 52 -14 71 -39c-63 -36 -53 -128 11 -153c-9 -20 -13 -28 -24 -46c-16 -25 -37 -56 -65 -56h-1
+c-24 0 -31 16 -63 16v0c-33 0 -40 -16 -64 -16h-1c-28 0 -48 28 -64 53c-44 69 -48 150 -21 193c19 30 50 48 78 48c29 0 47 -16 71 -16c23 0 38 16 72 16zM214 364c-11 -5 -21 -13 -28 -22c-4 -5 -9 -13 -13 -23c-1 -3 -2 -6 -2 -9c11 4 21 11 28 21c4 5 12 18 15 33z
+M230 384v0c3 -23 -6 -46 -18 -62c-13 -17 -35 -30 -56 -30h-1c-4 22 6 44 18 60c14 17 37 31 57 32z" />
+    <glyph glyph-name="ion-social-apple" unicode="&#xf227;" horiz-adv-x="320" 
+d="M238 294v0c25 0 52 -14 71 -39c-63 -36 -53 -128 11 -153c-9 -20 -13 -28 -24 -46c-16 -25 -37 -56 -65 -56h-1c-24 0 -31 16 -63 16v0c-33 0 -40 -16 -64 -16h-1c-28 0 -48 28 -64 53c-44 69 -48 150 -21 193c19 30 50 48 78 48c29 0 47 -16 71 -16c23 0 38 16 72 16z
+M230 384v0c3 -23 -6 -46 -18 -62c-13 -17 -35 -30 -56 -30h-1c-4 22 6 44 18 60c14 17 37 31 57 32z" />
+    <glyph glyph-name="ion-social-bitcoin-outline" unicode="&#xf2ae;" horiz-adv-x="320" 
+d="M184 400h-8v-48v-16h-16h-32h-16v16v48h-9v-48v-16h-16h-72v-16h13c11 0 19 0 25 -3s10 -7 13 -13s3 -8 3 -20v-178c0 -11 0 -18 -3 -24v-1c-1 -3 -4 -10 -12 -14h-1c-5 -3 -8 -3 -17 -3h-13l-3 -16h67h16v-16v-48h9v48v16h16h32h16v-16v-48h8v49v16h15c23 1 41 5 55 10
+c16 6 28 15 37 26c8 11 12 29 13 42c1 14 -1 29 -4 36s-8 16 -21 23c-7 4 -14 6 -21 8l-46 11l43 19c4 2 7 4 12 9c6 5 9 12 11 16c2 5 4 13 3 22c-1 17 -4 29 -10 37c-7 9 -17 16 -31 21c-12 5 -24 7 -41 8l-15 1v15v47zM200 416v0v-63c20 -1 32 -4 45 -9
+c16 -6 29 -15 38 -27s12 -28 13 -45c1 -10 0 -20 -3 -28s-8 -16 -16 -23c-6 -6 -11 -9 -16 -11c9 -2 17 -6 25 -10c15 -8 24 -18 29 -30c4 -10 6 -30 5 -44c-1 -16 -6 -37 -16 -51c-11 -14 -26 -24 -45 -31c-15 -6 -33 -10 -59 -11v-65h-40v64h-32v-64h-41v64h-87l8 48h28
+c9 0 8 1 11 2s4 3 5 6s1 9 1 18v178c0 9 0 10 -1 12s-3 4 -6 6s-9 2 -18 2h-28v48h87v64h41v-64h32v64h40zM160 298v-74h-32v74h32zM160 176v0v-90h-32v90h32zM200 294v0c6 -2 10 -7 14 -12c4 -6 6 -13 6 -21s-2 -15 -7 -21c-4 -5 -7 -9 -13 -12v66zM200 174v0
+c5 -1 8 -1 12 -3c8 -3 14 -7 19 -13s8 -15 8 -24c0 -11 -2 -19 -10 -26s-13 -11 -23 -15c-2 -1 -4 0 -6 -1v82z" />
+    <glyph glyph-name="ion-social-bitcoin" unicode="&#xf2af;" horiz-adv-x="320" 
+d="M314 169c4 -10 7 -30 6 -44c-1 -16 -5 -37 -16 -51s-26 -24 -45 -31c-15 -6 -33 -10 -59 -11v-64h-40v64h-32v-64h-41v64h-87l9 48h26c9 0 9 0 12 1s4 4 5 7s2 8 2 17v173c0 9 -1 16 -2 18s-3 4 -6 6s-9 2 -18 2h-28v48h87v64h41v-64h32v64h40v-64c20 -1 33 -4 46 -9
+c16 -6 28 -15 37 -27s12 -28 13 -45c1 -10 0 -20 -3 -28c-2 -8 -8 -16 -16 -23c-6 -6 -11 -9 -16 -11c9 -2 17 -6 25 -10c15 -8 23 -18 28 -30zM128 298v-74h32v74h-32zM128 86h32v90h-32v-90zM200 294v-66c6 3 9 7 13 12c5 6 7 12 7 20s-2 15 -6 21c-4 5 -8 11 -14 13z
+M229 107c8 7 10 15 10 26c0 9 -3 19 -8 25s-12 10 -20 13c-4 2 -6 2 -11 3v-82c2 0 5 1 7 2c10 4 14 6 22 13z" />
+    <glyph glyph-name="ion-social-buffer-outline" unicode="&#xf228;" horiz-adv-x="384" 
+d="M7 284c-9 4 -9 11 0 15l169 82c4 2 10 3 16 3s12 -1 16 -3l169 -82c9 -4 9 -11 0 -15l-169 -82c-4 -2 -10 -3 -16 -3s-12 1 -16 3zM183 366l-156 -75l156 -75c2 -1 5 -1 9 -1s7 0 9 1l156 75l-156 75c-2 1 -5 2 -9 2s-7 -1 -9 -2zM377 200c9 -4 9 -12 0 -16l-169 -81
+c-4 -2 -10 -4 -16 -4s-12 2 -16 4l-169 81c-9 4 -9 12 0 16c0 0 27 13 33 16c5 3 7 3 13 0s123 -60 123 -60c4 -2 10 -3 16 -3s12 1 16 3c0 0 121 59 125 61s5 2 9 0s35 -17 35 -17zM201 117l156 75l-19 9l-123 -59c-6 -3 -15 -5 -23 -5s-17 2 -23 5l-123 59l-19 -9l156 -75
+c2 -1 5 -2 9 -2s7 1 9 2zM377 100c9 -4 9 -11 0 -15l-169 -82c-4 -2 -10 -3 -16 -3s-12 1 -16 3l-169 82c-9 4 -9 11 0 15c0 0 27 14 33 17c5 3 7 2 13 -1s123 -59 123 -59c4 -2 10 -3 16 -3s12 1 16 3c0 0 121 58 125 60s5 2 9 0s35 -17 35 -17zM201 18l156 75l-19 9
+l-123 -60c-6 -3 -15 -4 -23 -4s-17 1 -23 4l-123 60l-19 -9l156 -75c2 -1 5 -2 9 -2s7 1 9 2z" />
+    <glyph glyph-name="ion-social-buffer" unicode="&#xf229;" horiz-adv-x="384" 
+d="M7 284c-9 4 -9 11 0 15l169 82c4 2 10 3 16 3s12 -1 16 -3l169 -82c9 -4 9 -11 0 -15l-169 -82c-4 -2 -10 -3 -16 -3s-12 1 -16 3zM377 200c9 -4 9 -12 0 -16l-169 -81c-4 -2 -10 -4 -16 -4s-12 2 -16 4l-169 81c-9 4 -9 12 0 16c0 0 27 13 33 16c5 3 7 3 13 0
+s123 -60 123 -60c4 -2 10 -3 16 -3s12 1 16 3c0 0 121 59 125 61s5 2 9 0s35 -17 35 -17zM377 100c9 -4 9 -11 0 -15l-169 -82c-4 -2 -10 -3 -16 -3s-12 1 -16 3l-169 82c-9 4 -9 11 0 15c0 0 27 14 33 17c5 3 7 2 13 -1s123 -59 123 -59c4 -2 10 -3 16 -3s12 1 16 3
+c0 0 121 58 125 60s5 2 9 0s35 -17 35 -17z" />
+    <glyph glyph-name="ion-social-chrome-outline" unicode="&#xf4da;" 
+d="M224 416c123 0 224 -101 224 -224s-101 -224 -224 -224s-224 101 -224 224s101 224 224 224zM224 371c-57 0 -109 -27 -141 -68l54 -93c8 40 43 72 87 72h155c-30 54 -89 89 -155 89zM291 192c0 37 -30 67 -67 67s-67 -30 -67 -67s30 -67 67 -67s67 30 67 67zM45 192
+c0 -91 67 -166 154 -177l54 93c-9 -3 -19 -6 -29 -6c-34 0 -61 18 -77 45v0l-78 135c-16 -27 -24 -58 -24 -90zM224 13c99 0 179 80 179 179c0 24 -4 46 -13 67h-108c19 -17 32 -40 32 -67c0 -17 -5 -32 -13 -45v0z" />
+    <glyph glyph-name="ion-social-chrome" unicode="&#xf4db;" 
+d="M157 192c0 37 30 67 67 67s67 -30 67 -67s-30 -67 -67 -67s-67 30 -67 67zM445 230c2 -12 3 -25 3 -38c0 -106 -74 -195 -174 -218c-10 -2 -20 -4 -30 -5c-7 -1 -13 -1 -20 -1c-8 0 -17 0 -25 1v0v0v0v1l102 177c8 13 13 28 13 45c0 27 -13 50 -32 67h156
+c3 -9 5 -19 7 -29v0c-2 10 -4 20 -7 29v0c3 -9 5 -19 7 -29v0zM224 103c10 0 20 2 29 5l-78 -135v0c-42 9 -79 30 -108 59c-42 41 -67 97 -67 160c0 31 6 61 18 88c7 16 16 31 26 45v0l103 -178c16 -27 43 -44 77 -44zM59 343v0v1c24 26 55 47 90 59c23 8 49 13 75 13
+c73 0 138 -36 179 -90h1c10 -14 18 -29 25 -44v0c-7 15 -15 30 -25 44h-1c10 -14 19 -29 26 -44h-205c-44 0 -79 -32 -87 -72z" />
+    <glyph glyph-name="ion-social-codepen-outline" unicode="&#xf4dc;" 
+d="M356 244c5 -3 7 -6 7 -12v-81c0 -6 -3 -10 -8 -13c-41 -27 -82 -55 -123 -82c-6 -4 -11 -4 -17 0c-41 27 -81 55 -122 82c-5 3 -8 7 -8 13v80c0 6 3 11 8 14c41 27 81 54 122 81c6 4 11 4 17 0c41 -27 83 -55 124 -82zM236 296v-54c0 -1 1 -2 2 -3c16 -11 31 -21 47 -32
+c1 -1 3 -1 4 0l40 26zM212 295c0 0 -62 -41 -93 -62c14 -9 27 -17 40 -26c1 -1 3 -1 4 0c15 10 31 21 46 31c1 1 3 4 3 6v51zM109 211v-40l30 20zM212 87v53c0 1 -2 3 -3 4c-15 10 -31 21 -46 31c-2 1 -3 1 -5 0l-39 -26c31 -21 93 -62 93 -62zM227 165l39 26s-34 23 -40 27
+c-1 1 -4 0 -5 -1c-5 -3 -9 -6 -14 -9c-8 -6 -25 -17 -25 -17l39 -26c2 -1 4 -1 6 0zM236 87l93 62l-38 26c-2 2 -5 2 -7 0c-15 -10 -30 -21 -45 -31c-2 -2 -3 -3 -3 -6v-51zM338 171v40l-30 -20zM224 384c-51 0 -100 -20 -136 -56s-56 -85 -56 -136s20 -100 56 -136
+s85 -56 136 -56s100 20 136 56s56 85 56 136s-20 100 -56 136s-85 56 -136 56zM224 416v0c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224z" />
+    <glyph glyph-name="ion-social-codepen" unicode="&#xf4dd;" 
+d="M209 144c1 -1 3 -3 3 -4v-53s-62 41 -93 62l39 26c2 1 3 1 5 0c15 -10 31 -21 46 -31zM163 207c-1 -1 -3 -1 -4 0c-13 9 -26 17 -40 26c31 21 93 62 93 62v-51c0 -2 -2 -5 -3 -6c-15 -10 -31 -21 -46 -31zM238 239c-1 1 -2 2 -2 3v54l93 -63l-40 -26c-1 -1 -3 -1 -4 0
+c-16 11 -31 21 -47 32zM226 218c6 -4 40 -27 40 -27l-39 -26c-2 -1 -4 -1 -6 0l-39 26s17 11 25 17c5 3 9 6 14 9c1 1 4 2 5 1zM109 211l30 -20l-30 -20v40zM224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM363 151v81
+c0 6 -2 9 -7 12c-41 27 -83 55 -124 82c-6 4 -11 4 -17 0c-41 -27 -81 -54 -122 -81c-5 -3 -8 -8 -8 -14v-80c0 -6 3 -10 8 -13c41 -27 81 -55 122 -82c6 -4 11 -4 17 0c41 27 82 55 123 82c5 3 8 7 8 13zM284 175c2 2 5 2 7 0l38 -26l-93 -62v51c0 3 1 4 3 6
+c15 10 30 21 45 31zM338 171l-30 20l30 20v-40z" />
+    <glyph glyph-name="ion-social-css3-outline" unicode="&#xf4de;" horiz-adv-x="384" 
+d="M291 81l-99 -28l-98 28l-7 78h48l4 -40l53 -15v0v0l54 15l5 64h-112l-4 50h121l4 51h-184l-4 49h241zM0 416h384l-35 -403l-157 -45l-157 45zM319 37l30 347h-314l30 -347l127 -36z" />
+    <glyph glyph-name="ion-social-css3" unicode="&#xf4df;" horiz-adv-x="384" 
+d="M192 109v0zM0 416h384l-35 -403l-157 -45l-157 45zM291 81l22 252h-241l4 -49h184l-4 -51h-121l4 -50h112l-5 -64l-54 -15v0v0l-53 15l-4 40h-48l7 -78l98 -28z" />
+    <glyph glyph-name="ion-social-designernews-outline" unicode="&#xf22a;" 
+d="M259 302v-53l-65 103zM0 188zM297 352l151 -119v-201h-248l-200 156h63c46 0 77 33 77 82c0 20 -5 37 -15 51l-3 3l37 -29v-107h41l-2 98l63 -98h36v84v80zM432 48v178l-119 92v1v-47v-83v-17h-15h-37h-9l-4 8l-33 50l1 -42v-16h-16h-41h-16v16v29c-3 -6 -7 -12 -12 -17
+c-8 -9 -18 -16 -30 -21s-24 -7 -38 -7h-16l159 -124h226zM59 298h-1h-3v-57h4c8 0 13 2 17 6c5 6 6 15 6 22c0 26 -12 29 -23 29zM59 314v0c25 0 39 -16 39 -45c0 -28 -14 -44 -40 -44h-19v89h20z" />
+    <glyph glyph-name="ion-social-designernews" unicode="&#xf22b;" 
+d="M258 303l1 -53l-64 102zM297 352l151 -118v-202h-248l-200 157v0h63c46 0 77 33 77 82c0 20 -5 37 -15 51l-3 3l37 -29v-107h40l-2 99l64 -99h36v83v80zM98 270c0 -28 -14 -44 -40 -44h-19v89h19c26 0 40 -16 40 -45z" />
+    <glyph glyph-name="ion-social-dribbble-outline" unicode="&#xf22c;" horiz-adv-x="384" 
+d="M192 384c106 0 192 -86 192 -192s-86 -192 -192 -192s-192 86 -192 192s86 192 192 192zM314 296c-17 -25 -47 -47 -85 -64c5 -10 9 -20 13 -31c33 3 75 4 110 2c-2 35 -16 68 -38 93zM192 352c-14 0 -26 -2 -39 -5c23 -23 43 -53 62 -87c34 14 62 33 79 55
+c-28 23 -63 37 -102 37zM120 334c-41 -21 -71 -58 -83 -103h25c44 0 85 6 121 17c-19 34 -40 63 -63 86zM32 200v-8c0 -40 15 -78 40 -106c24 45 67 83 122 106c4 2 8 3 14 4c-3 8 -6 16 -10 24c-40 -13 -88 -20 -138 -21c-9 0 -19 1 -28 1zM192 32c20 0 39 3 57 10
+c-3 25 -8 53 -15 79c-4 17 -10 33 -16 49c-7 -2 -13 -4 -17 -6c-48 -22 -86 -56 -107 -98c27 -21 61 -34 98 -34zM278 58c40 26 68 67 73 116c-30 2 -68 3 -99 0c4 -12 9 -25 12 -38c7 -27 11 -52 14 -78z" />
+    <glyph glyph-name="ion-social-dribbble" unicode="&#xf22d;" horiz-adv-x="384" 
+d="M192 384c106 0 192 -86 192 -192s-86 -192 -192 -192s-192 86 -192 192s86 192 192 192zM192 32c88 0 160 72 160 160s-72 160 -160 160s-160 -72 -160 -160s72 -160 160 -160zM242 201c-4 11 -8 21 -13 31c25 11 47 24 63 39c15 -19 26 -42 28 -67c-26 0 -55 -1 -78 -3z
+M271 292c-15 -12 -34 -23 -56 -32c-12 22 -24 41 -38 59c5 1 10 1 15 1c30 0 57 -11 79 -28zM142 310c15 -18 28 -39 41 -62c-34 -10 -72 -16 -113 -17c11 36 38 65 72 79zM319 176c-4 -33 -21 -63 -46 -83c-3 14 -5 28 -9 43c-3 13 -8 26 -12 38c21 2 45 3 67 2zM194 192
+c-43 -18 -79 -46 -104 -78c-16 22 -26 49 -26 78v7c49 1 95 8 134 21c4 -8 7 -16 10 -24c-6 -1 -10 -2 -14 -4zM219 170c6 -16 11 -32 15 -49c4 -15 7 -31 10 -46c-16 -7 -34 -11 -52 -11c-31 0 -59 11 -81 29c22 30 53 54 90 71c4 2 11 4 18 6z" />
+    <glyph glyph-name="ion-social-dropbox-outline" unicode="&#xf22e;" horiz-adv-x="384" 
+d="M113 371l79 -66l-114 -71l-78 63zM27 295l52 -42l86 53l-53 46zM306 235l78 -63l-78 -51v-39l-114 -69l-114 68v39l-78 52l78 63l114 -71l-79 -66l-19 12v-20l98 -59l98 59v20l-19 -12l-79 66zM79 217l-52 -44l85 -55l53 44zM219 162l53 -44l85 56l-52 43zM384 297
+l-78 -63l-114 71l79 66zM219 305l86 -52l52 42l-85 56z" />
+    <glyph glyph-name="ion-social-dropbox" unicode="&#xf22f;" horiz-adv-x="384" 
+d="M113 371l79 -66l-114 -71l-78 63zM0 172l78 62l114 -70l-79 -66zM192 164l114 70l78 -62l-113 -74zM384 297l-78 -63l-114 71l79 66zM192 150l80 -66l34 22v-25l-114 -68l-114 68v25l34 -22z" />
+    <glyph glyph-name="ion-social-euro-outline" unicode="&#xf4e0;" horiz-adv-x="320" 
+d="M214 384c-53 0 -91 -9 -115 -27c-22 -16 -33 -40 -33 -74v-11v-17h-16h-34v-16h34h16v-15v-48v-17h-16h-34v-16h34h16v-15v-27c0 -34 11 -58 33 -74c24 -18 62 -27 115 -27c31 0 59 2 88 8l-5 35c-30 -4 -55 -7 -80 -7c-36 0 -59 6 -74 19c-19 16 -21 40 -21 60v13v15h16
+h103l3 16h-106h-16v17v48v15h16h118l2 16h-120h-16v17v2c0 16 2 39 21 55c16 13 39 19 74 19c24 0 51 -3 80 -7l5 35c-29 6 -57 8 -88 8zM214 400v0c35 0 68 -3 106 -12l-9 -65c-37 6 -68 9 -94 9c-64 0 -79 -22 -79 -58v-3h139l-8 -48h-131v-48h124l-7 -48h-117v-12
+c0 -44 15 -63 79 -63c26 0 57 3 94 9l9 -65c-38 -9 -71 -12 -106 -12c-115 0 -164 41 -164 117v26h-50v48h50v48h-50v48h50v12c0 76 49 117 164 117z" />
+    <glyph glyph-name="ion-social-euro" unicode="&#xf4e1;" horiz-adv-x="320" 
+d="M138 176h124l-7 -48h-117v-13c0 -44 15 -63 79 -63c26 0 56 3 93 9l10 -65c-38 -9 -71 -12 -106 -12c-115 0 -164 41 -164 117v27h-50v48h50v48h-50v48h50v11c0 76 49 117 164 117c35 0 68 -3 106 -12l-10 -65c-37 6 -67 9 -93 9c-64 0 -79 -22 -79 -58v-2h138l-7 -48
+h-131v-48z" />
+    <glyph glyph-name="ion-social-facebook-outline" unicode="&#xf230;" horiz-adv-x="192" 
+d="M128 256h64l-8 -64h-56v-192h-83v192h-45v64h45v43c0 54 23 85 91 85h56v-64h-34c-27 0 -30 -9 -30 -26v-38zM170 208l4 32h-45h-17v17v37c0 10 1 21 9 30c10 11 25 12 37 12h18v32h-40c-28 0 -49 -6 -60 -18c-10 -11 -15 -27 -15 -51v-43v-16h-15h-30v-32h30h15v-16
+v-176h51v176v16h17h41z" />
+    <glyph glyph-name="ion-social-facebook" unicode="&#xf231;" horiz-adv-x="192" 
+d="M128 256h64l-8 -64h-56v-192h-83v192h-45v64h45v43c0 54 23 85 91 85h56v-64h-34c-27 0 -30 -9 -30 -26v-38z" />
+    <glyph glyph-name="ion-social-foursquare-outline" unicode="&#xf34c;" horiz-adv-x="320" 
+d="M302 284c-12 -60 -25 -131 -27 -138zM281 416c35 0 45 -20 37 -57c-3 -16 -10 -44 -16 -75l-27 -137c-3 -13 -8 -35 -39 -35h-72c-3 0 -3 0 -6 -3c-2 -2 -115 -133 -115 -133c-9 -10 -23 -8 -28 -6s-15 8 -15 26v380s10 40 43 40h238zM280 352c6 31 6 32 -24 32h-195
+c-29 0 -29 -3 -29 -28v-297c0 -38 1 -38 3 -38s10 8 29 31c0 0 78 89 79 90c2 2 3 2 6 2h62c26 0 28 6 33 31c4 21 36 177 36 177zM302 284c6 31 13 59 16 75zM233 352c5 0 9 -5 8 -11l-8 -44c-1 -4 -6 -9 -11 -9h-75c-8 0 -8 -5 -8 -13v-6c0 -8 0 -13 8 -13h64
+s11 -6 10 -12s-11 -51 -12 -54s-4 -9 -11 -9h-62c-9 0 -11 -1 -17 -8l-54 -63c-1 -1 -1 -1 -1 0v231c0 5 5 11 11 11h158z" />
+    <glyph glyph-name="ion-social-foursquare" unicode="&#xf34d;" horiz-adv-x="320" 
+d="M281 416c35 0 45 -20 37 -57c-10 -49 -40 -202 -43 -213c-3 -13 -8 -34 -39 -34h-72c-3 0 -3 0 -6 -3c-2 -2 -115 -133 -115 -133c-9 -10 -23 -8 -28 -6s-15 8 -15 26v380s10 40 43 40h238zM275 146c3 11 33 164 43 213zM267 351c2 9 -5 16 -12 16h-191
+c-9 0 -15 -8 -15 -15v-296c0 -1 1 -1 2 0c0 0 70 84 78 94s11 11 23 11h64c9 0 14 8 15 12s8 43 10 51s-6 16 -13 16h-82c-10 0 -18 8 -18 18v13c0 10 8 17 18 17h96s14 6 15 12z" />
+    <glyph glyph-name="ion-social-freebsd-devil" unicode="&#xf2c4;" horiz-adv-x="512" 
+d="M503 333c19 -37 8 -81 -20 -108s-60 -33 -60 -33c2 -32 16 -59 -41 -102c-43 -32 2 -90 2 -90c10 -14 23 -19 32 -32h-272s15 14 -7 32c0 0 -20 17 -18 29s6 13 9 15s0 7 0 7l-19 19s-13 -13 -44 -13c-38 0 -65 39 -65 39h46s-6 -8 -7 -13c-1 -4 1 -5 1 -5s11 -6 22 -6
+c17 0 33 12 33 12l-24 22l-15 -4l-16 37l39 -10l-1 -15l28 -18s9 9 7 27s-9 26 -9 26s-4 0 -9 -4s-6 -6 -6 -6l-10 44s43 -19 50 -63c3 -20 -6 -35 -6 -35l17 -10s6 5 17 7s23 2 29 -8s5 -12 4 -19s0 -9 6 -11s6 -6 11 -8s15 -6 21 -2s8 11 8 18v16s-9 8 -32 20
+s-54 22 -66 40s-12 44 0 57c9 10 23 25 26 35c4 14 4 42 4 42s-10 16 -8 40c2 30 22 84 96 114c0 0 -40 -55 -20 -80c0 0 37 11 77 9c31 -2 56 -12 73 -28s25 -23 47 -17s28 17 28 33c0 19 -16 51 -16 51s36 -7 58 -51zM195 245c14 4 21 -11 21 -11c14 25 30 60 22 64
+s-64 -25 -66 -88c0 0 6 31 23 35zM232 230c5 7 34 8 37 -17c4 -35 -24 -57 -24 -57s7 -2 23 2c17 4 43 29 43 70s-21 66 -41 62s-38 -60 -38 -60z" />
+    <glyph glyph-name="ion-social-github-outline" unicode="&#xf232;" 
+d="M224 416c124 0 224 -103 224 -230c0 -101 -64 -188 -153 -218h-4c-8 0 -12 7 -12 12c0 8 1 31 1 62c0 21 -8 36 -16 43c50 6 103 25 103 113c0 25 -9 46 -23 62c2 6 10 29 -2 61h-5c-8 0 -27 -3 -57 -24c-18 5 -37 8 -56 8s-38 -3 -56 -8c-30 21 -49 24 -57 24h-5
+c-12 -32 -4 -55 -2 -61c-14 -16 -23 -37 -23 -62c0 -88 52 -107 102 -113c-6 -6 -12 -16 -14 -31c-6 -3 -16 -6 -26 -6c-13 0 -28 5 -39 25c0 0 -13 22 -35 24v0c-2 0 -21 0 -1 -14c0 0 15 -8 25 -34c0 0 10 -33 53 -33c7 0 14 0 22 2v-39c0 -5 -3 -11 -11 -11h-4
+c-89 30 -153 116 -153 218c0 127 100 230 224 230zM146 -0c-15 0 -28 4 -38 9c14 -10 28 -17 44 -23v6v8h-6zM157 73c-16 4 -35 10 -52 24c6 -6 11 -11 13 -16c7 -12 14 -17 25 -17c4 0 9 1 12 2c1 2 1 5 2 7zM347 14c17 13 32 28 45 46c26 37 40 80 40 126
+c0 29 -5 58 -16 84c-10 25 -26 48 -45 68s-41 34 -66 45c-26 11 -53 17 -81 17s-55 -6 -81 -17c-25 -11 -47 -25 -66 -45s-35 -42 -45 -68c-11 -26 -16 -55 -16 -84c0 -46 14 -89 40 -126c10 -14 22 -27 35 -38c-7 8 -11 16 -13 22c-7 18 -15 24 -17 25h-2v1
+c-5 3 -20 13 -15 28c3 9 12 15 25 15h1v0v0c13 -1 24 -6 32 -13c-21 19 -37 48 -37 98c0 24 7 47 21 66c-3 13 -6 34 5 62l3 8l7 2c2 0 5 1 10 1c12 0 31 -3 60 -22c17 4 35 6 53 6v0v0c18 0 36 -2 53 -6c29 19 48 22 60 22c5 0 8 -1 10 -1l7 -2l3 -7c11 -27 8 -50 5 -63
+c14 -19 21 -41 21 -66c0 -92 -55 -117 -92 -125c3 -8 5 -18 5 -30v-51v-6c18 7 35 16 51 28z" />
+    <glyph glyph-name="ion-social-github" unicode="&#xf233;" 
+d="M224 416c124 0 224 -103 224 -230c0 -101 -64 -188 -153 -218h-4c-8 0 -12 7 -12 12c0 8 1 31 1 62c0 21 -8 36 -16 43c50 6 103 25 103 113c0 25 -9 46 -23 62c2 6 10 29 -2 61h-5c-8 0 -27 -3 -57 -24c-18 5 -37 8 -56 8s-38 -3 -56 -8c-30 21 -49 24 -57 24h-5
+c-12 -32 -4 -55 -2 -61c-14 -16 -23 -37 -23 -62c0 -88 52 -107 102 -113c-6 -6 -12 -16 -14 -31c-6 -3 -16 -6 -26 -6c-13 0 -28 5 -39 25c0 0 -13 22 -35 24v0c-2 0 -21 0 -1 -14c0 0 15 -8 25 -34c0 0 10 -33 53 -33c7 0 14 0 22 2v-39c0 -5 -3 -11 -11 -11h-4
+c-89 30 -153 116 -153 218c0 127 100 230 224 230z" />
+    <glyph glyph-name="ion-social-google-outline" unicode="&#xf34e;" horiz-adv-x="256" 
+d="M191 366c12 -10 37 -30 37 -68c0 -37 -21 -55 -43 -72c-7 -7 -15 -13 -15 -24s8 -17 14 -22l18 -14c23 -19 43 -36 43 -71c0 -47 -47 -95 -135 -95c-74 0 -110 35 -110 72c0 18 10 44 40 62c32 19 75 21 98 23c-7 9 -16 18 -16 34c0 9 2 14 5 20c-6 0 -11 -1 -16 -1
+c-54 0 -85 40 -85 79c0 23 11 48 33 67c29 24 63 28 91 28h106l-33 -18h-32zM155 142c-4 1 -7 1 -12 1s-32 -1 -54 -8c-11 -4 -44 -16 -44 -52s36 -62 91 -62c49 0 75 24 75 55c0 26 -17 39 -56 66zM170 238c12 12 13 28 13 37c0 36 -22 92 -65 92c-13 0 -28 -6 -36 -16
+c-9 -11 -11 -25 -11 -38c0 -34 20 -89 64 -89c13 0 27 6 35 14z" />
+    <glyph glyph-name="ion-social-google" unicode="&#xf34f;" horiz-adv-x="288" 
+d="M210 172c22 -18 45 -36 45 -73c0 -49 -48 -99 -140 -99c-80 0 -115 39 -115 77c0 10 3 42 42 65c27 16 61 20 85 22c-4 7 -8 16 -8 27c0 4 0 7 1 10h-4c-19 0 -46 4 -67 26c-15 15 -24 36 -24 57c0 26 13 53 35 71v0c32 25 70 29 95 29h133l-60 -33h-13
+c11 -13 23 -31 23 -58c0 -40 -25 -59 -45 -74v-1c-6 -6 -11 -10 -11 -17c0 -6 4 -10 10 -15v0zM85 308c0 -13 4 -33 14 -51c7 -12 20 -27 41 -27c10 0 21 4 28 11c10 10 10 25 10 30c0 18 -6 38 -15 54c-7 13 -20 27 -40 27c-11 0 -22 -5 -29 -13c-6 -7 -9 -18 -9 -31z
+M206 80c0 20 -13 31 -50 56c-3 0 -4 1 -8 1c-6 0 -32 -2 -51 -8c-16 -6 -37 -16 -37 -42c0 -31 32 -51 80 -51c41 0 66 17 66 44z" />
+    <glyph glyph-name="ion-social-googleplus-outline" unicode="&#xf234;" 
+d="M192 366c12 -10 36 -30 36 -68c0 -37 -21 -55 -43 -72c-7 -7 -15 -13 -15 -24s8 -18 14 -22l18 -14c23 -19 43 -36 43 -71c0 -47 -47 -95 -135 -95c-74 0 -110 35 -110 72c0 18 10 44 40 62c32 19 75 21 98 23c-7 9 -16 18 -16 34c0 9 3 14 5 20c-6 0 -11 -1 -16 -1
+c-54 0 -85 40 -85 79c0 23 10 48 32 67c29 24 64 28 92 28h106l-33 -18h-31zM155 142c-4 0 -7 1 -12 1s-32 -1 -54 -8c-11 -4 -44 -16 -44 -52s36 -62 91 -62c49 0 75 24 75 55c0 26 -17 39 -56 66zM170 238c12 12 13 28 13 37c0 36 -22 92 -65 92c-13 0 -28 -6 -36 -16
+c-9 -11 -11 -24 -11 -37c0 -34 20 -90 64 -90c13 0 27 6 35 14zM448 306v-18h-78v-81h-18v81h-80v18h80v78h18v-78h78z" />
+    <glyph glyph-name="ion-social-googleplus" unicode="&#xf235;" 
+d="M210 172c22 -18 45 -36 45 -73c0 -49 -47 -99 -139 -99c-80 0 -116 39 -116 77c0 10 3 42 42 65c27 16 61 21 85 23c-4 7 -8 15 -8 26c0 4 0 7 1 10h-4c-19 0 -46 4 -67 26c-15 15 -24 36 -24 57c0 26 13 53 35 71v0c32 25 69 29 94 29h134l-60 -33h-13
+c11 -13 23 -31 23 -58c0 -40 -25 -59 -45 -74v-1c-6 -6 -11 -10 -11 -17c0 -6 4 -10 10 -15v0zM85 308c0 -13 4 -33 14 -51c7 -12 21 -27 41 -27c10 0 21 4 28 11c10 10 10 25 10 30c0 18 -6 37 -15 53c-8 13 -20 28 -40 28c-11 0 -23 -5 -29 -13c-6 -7 -9 -18 -9 -31z
+M206 80c0 20 -13 31 -50 56c-3 0 -4 1 -8 1c-6 0 -31 -2 -50 -8c-16 -6 -38 -16 -38 -42c0 -31 32 -51 80 -51c41 0 66 17 66 44zM370 306h78v-34h-78v-81h-34v81h-80v34h80v78h34v-78z" />
+    <glyph glyph-name="ion-social-hackernews-outline" unicode="&#xf236;" horiz-adv-x="384" 
+d="M352 352h-320v-320h320v320zM384 384v0v-384h-384v384h384zM233 289h45l-64 -120v-72h-40v72l-66 120h47l40 -84z" />
+    <glyph glyph-name="ion-social-hackernews" unicode="&#xf237;" horiz-adv-x="384" 
+d="M0 384h384v-384h-384v384zM214 169l64 120h-45l-38 -84l-40 84h-47l66 -120v-72h40v72z" />
+    <glyph glyph-name="ion-social-html5-outline" unicode="&#xf4e2;" horiz-adv-x="384" 
+d="M0 416h384l-35 -403l-157 -45l-157 45zM319 37l30 347h-314l30 -347l127 -36zM84 184l-13 150h241l-4 -50h-184l4 -51h176l-14 -151l-98 -28l-99 28l-6 77h48l3 -39l54 -15l53 15l6 64h-167z" />
+    <glyph glyph-name="ion-social-html5" unicode="&#xf4e3;" horiz-adv-x="384" 
+d="M0 416h384l-35 -403l-157 -45l-157 45zM308 284l4 50h-241l13 -150h167l-6 -64l-53 -15l-54 15l-3 39h-48l6 -78l99 -27l98 28l14 151h-176l-4 51h184z" />
+    <glyph glyph-name="ion-social-instagram-outline" unicode="&#xf350;" horiz-adv-x="384" 
+d="M384 336v-289c0 -26 -22 -47 -48 -47h-288c-26 0 -48 21 -48 47v289c0 26 22 48 48 48h288c26 0 48 -22 48 -48zM192 272c-44 0 -80 -36 -80 -80s36 -80 80 -80s80 36 80 80s-36 80 -80 80zM352 288v48c0 9 -7 16 -16 16h-48c-9 0 -16 -7 -16 -16v-48c0 -9 7 -16 16 -16
+h48c9 0 16 7 16 16zM337 32c9 0 15 7 15 16v176h-52c3 -10 4 -21 4 -32c0 -30 -11 -58 -32 -79s-50 -33 -80 -33s-58 12 -79 33s-33 49 -33 79c0 11 2 22 5 32h-53v-176c0 -9 8 -16 17 -16h288z" />
+    <glyph glyph-name="ion-social-instagram" unicode="&#xf351;" horiz-adv-x="384" 
+d="M112 192c0 53 27 80 80 80s80 -27 80 -80s-27 -80 -80 -80s-80 27 -80 80zM113 271c-14 -14 -23 -29 -28 -47h-85v112c0 13 4 25 14 34s22 14 35 14h288c13 0 24 -5 33 -14s14 -21 14 -34v-112h-84c-5 18 -14 33 -28 47c-22 22 -49 33 -80 33s-57 -11 -79 -33zM352 300
+v39c0 4 -2 7 -4 9s-5 4 -9 4h-38c-4 0 -7 -2 -9 -4s-4 -5 -4 -9v-39c0 -4 2 -7 4 -9s5 -3 9 -3h38c4 0 7 1 9 3s4 5 4 9zM272 113c22 22 32 48 32 79h80v-144c0 -13 -5 -24 -14 -34s-20 -14 -33 -14h-288c-13 0 -24 4 -34 14s-15 21 -15 34v144h81c0 -31 10 -57 32 -79
+s48 -33 79 -33s58 11 80 33z" />
+    <glyph glyph-name="ion-social-javascript-outline" unicode="&#xf4e4;" 
+d="M160 344h-48v-196c0 -30 -6 -50 -17 -64c-11 -13 -26 -20 -48 -20c-9 0 -18 1 -25 2l-4 -30c11 -2 25 -4 37 -4c34 0 59 8 76 25c19 18 29 48 29 90v197zM176 360v0v-213c0 -97 -49 -131 -121 -131c-18 0 -40 3 -55 8l8 62c10 -4 24 -6 39 -6c31 0 49 15 49 68v212h80z
+M350 352c-34 0 -62 -9 -82 -26c-19 -15 -28 -36 -28 -60c0 -20 7 -36 21 -51c14 -14 34 -26 61 -36c23 -8 38 -15 48 -24c12 -11 18 -23 18 -38c0 -16 -7 -31 -20 -40c-12 -9 -28 -14 -48 -14c-28 0 -52 8 -70 15l-7 -32c18 -8 44 -14 72 -14c38 0 70 9 90 27
+c18 16 27 38 27 63c0 21 -5 36 -17 50s-31 27 -58 37v0v0c-38 15 -72 28 -72 63c0 14 7 27 19 36c11 9 26 13 45 13c24 0 43 -5 57 -11l10 32c-19 6 -42 10 -66 10zM350 368v0c38 0 65 -7 85 -16l-19 -64c-13 7 -35 17 -67 17s-48 -16 -48 -33c0 -22 19 -31 62 -48
+c58 -22 85 -53 85 -102c0 -57 -42 -106 -133 -106c-38 0 -72 10 -91 21l15 63v0c20 -11 49 -21 81 -21c34 0 52 15 52 38c0 21 -15 33 -55 47c-55 20 -93 52 -93 102c0 58 49 102 126 102z" />
+    <glyph glyph-name="ion-social-javascript" unicode="&#xf4e5;" 
+d="M176 360v0v-213c0 -97 -49 -131 -121 -131c-18 0 -40 3 -55 8l8 62c10 -4 24 -6 39 -6c31 0 49 15 49 68v212h80zM350 368v0c38 0 65 -7 85 -16l-19 -64c-13 7 -35 17 -67 17s-48 -16 -48 -33c0 -22 19 -31 62 -48c58 -22 85 -53 85 -102c0 -57 -42 -106 -133 -106
+c-38 0 -72 10 -91 21l15 63v0c20 -11 49 -21 81 -21c34 0 52 15 52 38c0 21 -15 33 -55 47c-55 20 -93 52 -93 102c0 58 49 102 126 102z" />
+    <glyph glyph-name="ion-social-linkedin-outline" unicode="&#xf238;" horiz-adv-x="384" 
+d="M119 64v0h-55v171h55v-171zM93 261v0v0c-18 0 -29 13 -29 29c0 17 12 30 30 30s29 -13 29 -30c0 -16 -12 -29 -30 -29zM257 239c36 0 63 -24 63 -75v-100h-55v94c0 22 -8 37 -28 37c-15 0 -24 -10 -28 -20c-2 -4 -2 -9 -2 -14v-97h-55v171h55v-24c8 11 21 28 50 28z
+M353 384c18 0 31 -13 31 -30v-321c0 -17 -13 -33 -31 -33h-320c-18 0 -33 16 -33 33v321c0 17 15 30 33 30h320zM350 32c1 0 2 1 2 2v316c0 1 -1 2 -2 2h-316s-2 -1 -2 -2v-315s1 -3 3 -3h315z" />
+    <glyph glyph-name="ion-social-linkedin" unicode="&#xf239;" horiz-adv-x="384" 
+d="M353 384c18 0 31 -13 31 -30v-321c0 -17 -13 -33 -31 -33h-320c-18 0 -33 16 -33 33v321c0 17 15 30 33 30h320zM119 64v171h-55v-171h55zM93 261c18 0 30 13 30 29c0 17 -11 30 -29 30s-30 -13 -30 -30c0 -16 11 -29 29 -29v0zM320 64v100c0 51 -27 75 -63 75
+c-29 0 -42 -17 -50 -28v24h-55v-171h55v97c0 5 0 10 2 14c4 10 13 20 28 20c20 0 28 -15 28 -37v-94h55z" />
+    <glyph glyph-name="ion-social-markdown" unicode="&#xf4e6;" 
+d="M416 352c18 0 32 -14 32 -32v-256c0 -18 -14 -32 -32 -32h-384c-18 0 -32 14 -32 32v256c0 18 14 32 32 32h384zM252 96v0v192h-56l-42 -68l-42 68h-56v-192h56v96l42 -54l42 54v-96h56zM336 96v0l70 96h-42v96h-56v-96h-42z" />
+    <glyph glyph-name="ion-social-nodejs" unicode="&#xf4e7;" horiz-adv-x="384" 
+d="M192 -32c-6 0 -12 2 -17 5l-53 32c-8 5 -4 6 -1 7c11 4 14 5 25 12c1 1 3 1 4 0l39 -23c1 -1 4 -1 5 0l156 92c1 1 2 2 2 4v187c0 2 0 4 -2 5l-156 94c-1 1 -3 1 -4 0l-155 -94c-2 -1 -3 -3 -3 -5v-187c0 -2 0 -3 2 -4l40 -24c24 -12 38 1 38 15v183c0 3 2 5 5 5h22
+c3 0 5 -2 5 -5v-183c0 -33 -19 -52 -49 -52c-9 0 -17 1 -37 11l-41 24c-10 6 -17 18 -17 30v190c0 12 7 24 17 30l158 95c10 6 24 6 34 0l158 -95c10 -6 17 -18 17 -30v-190c0 -12 -7 -24 -17 -30l-158 -94c-5 -3 -11 -5 -17 -5v0zM241 96c-65 0 -84 31 -84 59c0 3 1 5 4 5
+h21c2 0 5 -2 5 -4c3 -22 16 -31 54 -31c33 0 47 11 47 29c0 11 -3 18 -55 23c-43 4 -71 15 -71 51c0 33 28 52 73 52c46 0 76 -14 79 -51c0 -1 -1 -2 -2 -3s-2 -2 -3 -2h-20c-2 0 -5 2 -5 4c-4 17 -16 23 -49 23c-36 0 -41 -12 -41 -22c0 -12 5 -16 54 -23s72 -16 72 -51
+c0 -36 -29 -59 -79 -59v0v0z" />
+    <glyph glyph-name="ion-social-octocat" unicode="&#xf4e8;" 
+d="M146 161c9 0 16 -4 22 -13s10 -20 10 -32s-4 -22 -10 -31s-14 -13 -22 -13c-9 0 -17 4 -23 13s-9 19 -9 31s3 24 9 32c6 9 14 13 23 13zM303 161c9 0 16 -4 22 -13s9 -20 9 -32s-3 -22 -9 -31s-13 -13 -22 -13s-18 4 -24 13s-9 19 -9 31s3 24 9 32c6 9 15 13 24 13z
+M414 276c24 -27 34 -66 34 -96c0 -24 -1 -46 -6 -65c-6 -19 -13 -35 -21 -47c-9 -12 -19 -23 -32 -32s-24 -17 -34 -21s-22 -8 -36 -10c-13 -2 -24 -4 -31 -4c0 0 -28 -1 -64 -1s-64 1 -64 1c-7 0 -18 2 -31 4c-14 2 -26 6 -36 10s-22 12 -34 21c-13 9 -23 20 -32 32
+c-8 12 -15 28 -21 47c-5 19 -6 41 -6 65c0 31 10 70 34 96c0 0 -2 14 0 39s7 48 16 69c30 -3 67 -20 112 -51c15 4 36 6 62 6c28 0 48 -2 62 -6c20 14 39 24 58 33c19 8 33 13 41 15s13 3 13 3c9 -21 14 -44 16 -69s0 -39 0 -39v0zM348 42c28 13 42 40 42 81
+c0 24 -8 43 -26 59c-9 9 -20 13 -32 15s-31 1 -56 -1s-40 -4 -52 -4s-25 2 -42 3s-30 3 -39 3c-10 0 -20 1 -31 -2s-21 -7 -28 -14c-17 -15 -25 -35 -25 -59c0 -41 13 -68 41 -81c27 -13 69 -18 123 -18h2c54 0 95 5 123 18z" />
+    <glyph glyph-name="ion-social-pinterest-outline" unicode="&#xf2b0;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224s-224 100 -224 224s100 224 224 224zM360 56c36 36 56 85 56 136s-20 100 -56 136s-85 56 -136 56s-100 -20 -136 -56s-56 -85 -56 -136s20 -100 56 -136c14 -14 31 -25 48 -34c1 6 2 10 3 16c4 18 29 122 29 122
+s-8 15 -8 36c0 33 20 58 44 58c20 0 30 -16 30 -34c0 -20 -13 -51 -20 -79c-6 -24 12 -43 35 -43c42 0 71 54 71 119c0 49 -33 85 -93 85c-68 0 -110 -50 -110 -107c0 -20 6 -33 15 -44c4 -5 5 -6 3 -12c-1 -4 -4 -14 -5 -18c-2 -6 -6 -8 -11 -6c-31 13 -46 48 -46 86
+c0 64 54 140 160 140c86 0 142 -63 142 -129c0 -88 -49 -153 -121 -153c-24 0 -47 13 -55 28c0 0 -12 -52 -15 -62c-2 -6 -4 -13 -7 -19c15 -4 31 -6 47 -6c51 0 100 20 136 56z" />
+    <glyph glyph-name="ion-social-pinterest" unicode="&#xf2b1;" 
+d="M224 416c124 0 224 -100 224 -224s-100 -224 -224 -224c-22 0 -44 3 -64 9c8 14 18 31 23 48c3 10 16 62 16 62c8 -15 30 -28 54 -28c72 0 121 65 121 153c0 66 -56 129 -142 129c-106 0 -160 -76 -160 -140c0 -39 15 -73 46 -86c5 -2 10 0 12 6c1 4 3 14 4 18
+c2 6 1 7 -3 12c-9 11 -15 24 -15 44c0 57 42 107 110 107c60 0 94 -36 94 -85c0 -65 -29 -119 -71 -119c-24 0 -42 19 -36 43c7 28 20 59 20 79c0 18 -10 34 -30 34c-24 0 -43 -25 -43 -58c0 -21 7 -36 7 -36s-25 -104 -29 -122c-4 -17 -5 -35 -4 -51
+c-79 35 -134 113 -134 205c0 124 100 224 224 224z" />
+    <glyph glyph-name="ion-social-python" unicode="&#xf4e9;" horiz-adv-x="384" 
+d="M129 199c-29 -5 -49 -30 -49 -57v-43v-3h-15c-29 0 -54 29 -62 69c-2 9 -3 17 -3 27v1c0 53 29 95 65 95h127v16h-96v29c0 26 7 40 46 47c13 2 29 4 45 4s39 -1 55 -4c25 -4 46 -22 46 -47v-57v-31c0 -21 -14 -38 -33 -43c-4 -1 -8 -2 -13 -2h-104h3c-4 0 -8 0 -12 -1z
+M140 321c10 0 17 7 17 17s-7 18 -17 18s-18 -8 -18 -18s8 -17 18 -17zM380 225c3 -10 4 -21 4 -33c0 -16 -3 -30 -7 -43c-11 -31 -33 -53 -58 -53h-127v-16h96v-26c0 -26 -23 -40 -46 -47c-35 -10 -68 -9 -97 0c-25 7 -49 22 -49 47v54v33c0 21 14 36 33 41c4 1 8 2 13 2
+h104c3 0 6 1 9 1c27 4 49 28 49 62v38v3h15c28 0 52 -26 61 -63zM244 65c-10 0 -18 -7 -18 -17s8 -18 18 -18s17 8 17 18s-7 17 -17 17z" />
+    <glyph glyph-name="ion-social-reddit-outline" unicode="&#xf23a;" horiz-adv-x="449" 
+d="M259 160c0 21 11 31 32 31s32 -10 32 -31s-11 -32 -32 -32s-32 11 -32 32zM127 160c0 21 11 31 32 31s32 -10 32 -31s-11 -32 -32 -32s-32 11 -32 32zM449 197c0 -20 -9 -36 -27 -45c1 -5 1 -9 1 -14c0 -38 -19 -71 -58 -98s-85 -40 -140 -40s-102 13 -141 40
+s-58 59 -58 97c0 5 0 10 1 15c-18 9 -27 24 -27 45c0 14 5 25 15 35s21 15 35 15c13 0 24 -4 33 -13c36 25 79 39 129 41h7l29 98l86 -17c8 19 21 28 41 28c12 0 22 -4 31 -13s13 -20 13 -32s-4 -23 -13 -32s-19 -13 -31 -13s-23 4 -32 13s-13 19 -13 31l-69 14l-24 -77
+c50 -2 94 -16 129 -41c10 9 21 13 34 13c9 0 16 -3 24 -7s14 -10 18 -18s7 -16 7 -25zM375 366c-4 0 -8 -1 -11 -2s-6 -4 -8 -6s-5 -6 -6 -9s-2 -6 -2 -10c0 -8 3 -14 8 -19s12 -8 19 -8c5 0 9 1 13 3s8 6 10 10s4 9 4 14c0 8 -3 14 -8 19s-12 8 -19 8zM18 197
+c0 -11 5 -20 14 -27c7 19 19 37 37 53c-6 4 -12 6 -19 6c-3 0 -7 0 -10 -1s-6 -3 -9 -5s-5 -4 -7 -7s-4 -6 -5 -9s-1 -6 -1 -10zM355 55c34 23 50 51 50 83v9c-1 6 -3 12 -5 18c-6 16 -15 30 -30 43c-5 4 -10 9 -15 12v0c-36 25 -79 37 -130 37s-95 -12 -131 -37v0
+c-5 -3 -10 -8 -15 -12c-15 -13 -24 -27 -30 -43c-2 -6 -4 -12 -5 -18v-9c0 -32 16 -60 50 -83c36 -25 80 -37 131 -37s94 12 130 37zM417 170c9 6 14 16 14 27c0 9 -3 17 -9 23s-13 9 -22 9c-7 0 -14 -2 -20 -6c18 -16 30 -34 37 -53zM289 90l13 -12
+c-20 -20 -45 -30 -77 -30s-58 10 -78 30l13 12c16 -16 38 -24 65 -24s48 8 64 24z" />
+    <glyph glyph-name="ion-social-reddit" unicode="&#xf23b;" horiz-adv-x="449" 
+d="M449 197c0 -20 -11 -37 -27 -45c1 -5 1 -9 1 -14c0 -76 -89 -138 -199 -138s-198 61 -198 137c0 5 0 10 1 15c-16 8 -27 25 -27 45c0 28 23 50 50 50c13 0 24 -5 33 -13c33 23 79 39 129 41h2l31 103l90 -18c8 14 22 24 39 24v0h1c25 0 44 -20 44 -45s-19 -45 -44 -45h-1
+v0c-23 0 -42 17 -44 40l-67 14l-22 -74c49 -3 93 -17 125 -40c9 8 21 13 34 13c27 0 49 -22 49 -50zM34 177c5 15 15 29 29 41c-4 3 -9 5 -15 5c-14 0 -25 -11 -25 -25c0 -9 4 -17 11 -21zM358 339c0 -9 7 -17 16 -17s17 8 17 17s-8 17 -17 17s-16 -8 -16 -17zM127 160
+c0 -18 14 -32 32 -32s32 14 32 32s-14 31 -32 31s-32 -13 -32 -31zM224 48c48 0 77 29 78 30l-13 12s-25 -24 -65 -24c-41 0 -64 24 -64 24l-13 -12c1 -1 29 -30 77 -30zM291 128c18 0 32 14 32 32s-14 31 -32 31s-32 -13 -32 -31s14 -32 32 -32zM415 176c7 5 11 13 11 22
+c0 14 -11 25 -25 25c-6 0 -11 -2 -15 -5c14 -12 24 -27 29 -42z" />
+    <glyph glyph-name="ion-social-rss-outline" unicode="&#xf23c;" horiz-adv-x="384" 
+d="M56 112c31 0 56 -25 56 -56s-25 -56 -56 -56s-56 25 -56 56s25 56 56 56zM56 16c22 0 40 18 40 40s-18 40 -40 40s-40 -18 -40 -40s18 -40 40 -40zM0 256c140 0 256 -116 256 -256h-80c0 48 -14 94 -48 128s-80 48 -128 48v80zM240 16c-2 26 -8 52 -19 77
+c-12 28 -30 54 -52 76s-48 40 -76 52c-25 10 -51 16 -77 18v-47c50 -3 92 -22 123 -53s50 -73 53 -123h48zM0 384c212 0 384 -172 384 -384h-80c0 171 -133 304 -304 304v80zM227 228c56 -56 89 -131 93 -212h48c-8 190 -162 344 -352 352v-48c81 -4 155 -36 211 -92z" />
+    <glyph glyph-name="ion-social-rss" unicode="&#xf23d;" horiz-adv-x="384" 
+d="M56 112c31 0 56 -25 56 -56s-25 -56 -56 -56s-56 25 -56 56s25 56 56 56zM0 256c140 0 256 -116 256 -256h-80c0 48 -14 94 -48 128s-80 48 -128 48v80zM0 384c212 0 384 -172 384 -384h-80c0 171 -133 304 -304 304v80z" />
+    <glyph glyph-name="ion-social-sass" unicode="&#xf4ea;" horiz-adv-x="512" 
+d="M512 119v-8c-1 -9 -7 -17 -15 -22s-12 -4 -13 -3s1 3 4 5c13 8 17 20 10 33c-5 10 -15 16 -26 20c-24 8 -48 7 -72 0c4 -12 7 -23 -2 -34c-10 -12 -23 -19 -39 -22c-7 -2 -14 2 -15 9c-3 19 17 36 30 47c-7 11 -11 24 -14 37c-15 -17 -31 -40 -26 -61
+c3 -14 -1 -27 -14 -36s-30 -14 -46 -11c-4 1 -6 5 -5 8c2 14 25 32 35 43c2 2 3 4 1 7c-6 12 -10 23 -14 36c-13 -29 -30 -80 -57 -98c-9 -6 -17 -4 -21 5c-3 8 -2 20 -1 29c-6 -13 -11 -27 -20 -38c-7 -8 -24 -7 -30 1c-16 21 -13 50 -5 73l-29 -15c7 -16 8 -32 4 -49
+c-5 -19 -17 -35 -35 -46c-19 -12 -64 -24 -77 4c-7 16 -4 30 6 44c17 24 48 37 74 50c-32 23 -80 42 -96 80c-15 35 17 68 43 89c59 48 166 95 244 59c15 -7 36 -24 31 -52c-4 -24 -13 -39 -28 -54c-32 -32 -152 -77 -176 -15c-1 1 -1 4 1 4c2 -1 20 -15 43 -16
+c17 -1 36 3 52 8c33 11 71 33 80 67c4 13 -2 28 -15 34c-49 24 -116 -4 -159 -26c-33 -17 -84 -45 -82 -87c1 -37 56 -60 81 -82c15 7 42 15 52 27c11 13 26 25 44 26c8 0 14 -3 16 -10c2 -6 1 -11 0 -19c5 4 11 4 15 -1c12 -14 -22 -50 -10 -66c14 14 21 42 30 59
+c4 8 17 51 26 53c7 2 18 4 25 0c2 -1 3 -3 2 -5c-7 -19 -7 -33 3 -52c14 20 29 43 34 67c1 2 3 3 5 4c7 2 18 3 25 0c3 -1 3 -2 2 -5c-7 -22 -6 -38 6 -58c31 11 69 15 97 -5c-3 2 -7 5 0 0c5 -4 3 -2 0 0c12 -8 19 -18 21 -32zM113 94v0c1 7 -1 13 -3 20
+c-24 -8 -66 -35 -64 -62c1 -10 8 -13 17 -12s19 7 27 13c14 11 22 24 23 41zM216 166c1 3 -2 5 -5 4c-29 -8 -43 -57 -33 -81c1 -3 4 -3 6 -1c17 16 28 56 32 78zM286 84c8 -3 27 17 26 27c-8 -9 -18 -18 -26 -27zM367 102c11 6 16 19 12 30c-8 -6 -21 -19 -20 -31
+c0 -2 6 0 8 1z" />
+    <glyph glyph-name="ion-social-skype-outline" unicode="&#xf23e;" horiz-adv-x="384" 
+d="M106 352c-41 0 -74 -33 -74 -73c0 -13 4 -25 10 -36l6 -11l-2 -12c-2 -10 -3 -20 -3 -30c0 -40 16 -77 44 -105s67 -44 107 -44c9 0 19 1 28 3l11 2l9 -5c11 -6 24 -9 36 -9c41 0 74 33 74 73c0 11 -3 22 -8 32l-5 10l3 11c2 10 3 21 3 32c0 40 -16 77 -44 105
+s-67 43 -107 43c-9 0 -18 0 -26 -2l-12 -2l-10 7c-12 7 -26 11 -40 11zM106 384v0c21 0 40 -6 56 -16c10 2 21 2 32 2c101 0 183 -80 183 -180c0 -13 -1 -27 -4 -39c7 -14 11 -29 11 -46c0 -58 -47 -105 -106 -105c-18 0 -35 4 -50 12c-11 -2 -22 -3 -34 -3
+c-101 0 -183 81 -183 181c0 12 2 24 4 36c-9 16 -15 34 -15 53c0 58 47 105 106 105zM288 104c-8 -12 -21 -21 -37 -28s-36 -10 -58 -10c-26 0 -48 5 -65 14c-12 7 -22 15 -30 26s-12 22 -12 33c0 7 3 12 8 17s11 7 19 7c6 0 12 -2 16 -6s7 -8 10 -15s7 -13 11 -18
+s8 -9 15 -12s16 -5 27 -5c15 0 28 4 37 10s13 13 13 22c0 7 -2 13 -7 17c-5 5 -11 9 -19 11c-8 3 -20 5 -34 8c-19 4 -35 9 -48 14c-13 6 -24 13 -32 23s-11 22 -11 36s4 25 12 36c8 10 20 19 36 25c15 6 34 8 54 8c16 0 30 -1 42 -5s23 -9 31 -15s14 -13 18 -20
+s5 -14 5 -21c0 -6 -2 -12 -7 -17s-11 -8 -19 -8c-7 0 -12 2 -16 5c-3 3 -7 7 -11 14c-5 8 -10 15 -16 20s-17 8 -31 8c-13 0 -23 -3 -31 -8s-12 -11 -12 -18c0 -4 2 -7 4 -10c3 -3 6 -6 11 -8s10 -5 15 -6s13 -3 25 -6c15 -3 28 -6 40 -10s23 -8 32 -14s15 -13 20 -22
+s8 -20 8 -32c0 -15 -5 -28 -13 -40z" />
+    <glyph glyph-name="ion-social-skype" unicode="&#xf23f;" horiz-adv-x="384" 
+d="M373 151c7 -14 11 -29 11 -46c0 -58 -47 -105 -106 -105c-18 0 -35 4 -50 12c-11 -2 -22 -3 -34 -3c-101 0 -183 81 -183 181c0 12 2 24 4 36c-9 16 -15 34 -15 53c0 58 47 105 106 105c21 0 41 -6 57 -16c10 2 20 2 31 2c101 0 183 -80 183 -180c0 -13 -1 -27 -4 -39z
+M288 104c9 12 12 25 12 40c0 12 -2 23 -7 32s-12 16 -21 22s-19 10 -31 14s-26 7 -41 10c-12 3 -20 5 -25 6s-10 4 -15 6s-7 5 -10 8c-2 3 -4 6 -4 10c0 7 3 13 11 18s19 7 32 7c14 0 25 -2 31 -7s11 -12 16 -20c4 -7 8 -11 11 -14c4 -3 9 -5 16 -5c8 0 13 3 18 8s8 11 8 17
+c0 7 -2 14 -6 21s-10 14 -18 20s-18 11 -30 15s-27 5 -43 5c-20 0 -38 -2 -53 -8c-16 -6 -28 -15 -36 -25c-8 -11 -12 -22 -12 -36s3 -26 11 -36s19 -17 32 -23c13 -5 29 -10 48 -14c14 -3 26 -5 34 -8c8 -2 14 -6 19 -11c5 -4 7 -10 7 -17c0 -9 -4 -17 -13 -23
+s-22 -9 -37 -9c-11 0 -20 2 -27 5s-11 6 -15 11s-8 12 -11 19s-6 11 -10 15s-10 6 -16 6c-8 0 -14 -2 -19 -7s-8 -10 -8 -17c0 -11 4 -22 12 -33s18 -19 30 -26c17 -9 39 -14 65 -14c22 0 42 3 58 10s29 16 37 28z" />
+    <glyph glyph-name="ion-social-snapchat-outline" unicode="&#xf4eb;" horiz-adv-x="480" 
+d="M240 400v0v0c-71 0 -128 -54 -118 -128c2 -15 3 -32 4 -45c0 0 -2 -5 -12 -5c-6 0 -15 2 -28 7c-2 1 -4 1 -6 1c-8 0 -13 -6 -14 -12c0 -5 4 -11 8 -13c14 -7 47 -10 47 -33s-23 -47 -41 -64s-64 -21 -64 -21s0 -21 32 -29s32 -5 33 -13c2 -15 1 -22 11 -22c2 0 4 1 6 1
+c8 1 20 3 32 3c11 0 23 -2 34 -9c23 -15 41 -34 76 -34s53 19 76 34c11 7 24 9 35 9c12 0 23 -2 31 -3c2 0 4 -1 6 -1c10 0 9 7 11 22c1 8 1 5 33 13s32 29 32 29s-46 4 -64 21s-41 41 -41 64s33 26 47 33c4 2 9 8 9 13c-1 6 -6 12 -14 12c-2 0 -5 0 -7 -1
+c-13 -5 -21 -6 -27 -6c-10 0 -13 4 -13 4c1 13 2 30 4 45c10 74 -47 128 -118 128zM240 416v0c41 0 80 -16 105 -45c24 -28 34 -63 29 -101c-1 -11 -2 -22 -3 -31c4 1 10 2 18 5c4 1 8 2 12 2c16 0 29 -12 30 -27c1 -13 -9 -25 -18 -29c-4 -2 -9 -3 -14 -5
+c-7 -2 -14 -5 -19 -8c-4 -3 -5 -4 -5 -5c0 -16 20 -37 36 -52c11 -10 39 -16 54 -17l15 -1v-14c0 -2 0 -11 -6 -21c-5 -8 -16 -19 -38 -24c-6 -1 -11 -3 -15 -4c-2 -1 -5 -1 -7 -1v-1c-1 -7 -1 -13 -4 -18c-2 -5 -9 -12 -22 -12c-2 0 -6 0 -9 1c-2 0 -3 1 -5 1
+c-7 1 -15 2 -23 2c-10 0 -19 -2 -26 -6c-4 -3 -9 -7 -14 -10c-18 -13 -38 -27 -71 -27s-53 14 -71 27c-5 3 -9 7 -14 10c-7 4 -15 6 -25 6c-8 0 -17 -1 -24 -2c-2 0 -3 -1 -5 -1c-3 -1 -7 -1 -9 -1c-13 0 -20 7 -22 12c-3 5 -3 11 -4 18v1c-2 0 -4 0 -6 1c-4 1 -10 3 -16 4
+c-22 5 -33 16 -38 24c-6 10 -6 18 -6 20v15l15 1c16 1 44 7 54 17c29 27 36 43 36 52c0 1 0 2 -4 5c-5 3 -13 6 -20 8c-5 2 -10 3 -14 5c-9 4 -18 16 -17 29c1 15 14 27 30 27c4 0 8 0 12 -2c8 -3 13 -4 17 -5c-1 9 -2 19 -3 30c-5 38 5 74 29 102c25 29 64 45 105 45v0z
+M240 219c-21 0 -41 8 -56 23c-3 3 -3 9 0 12s9 3 12 0c12 -12 27 -19 44 -19c16 0 32 7 44 19c3 3 9 3 12 0s3 -9 0 -12c-15 -15 -35 -23 -56 -23zM176 296c0 16 5 24 16 24s16 -8 16 -24s-5 -24 -16 -24s-16 8 -16 24zM272 296c0 16 5 24 16 24s16 -8 16 -24
+s-5 -24 -16 -24s-16 8 -16 24z" />
+    <glyph glyph-name="ion-social-snapchat" unicode="&#xf4ec;" horiz-adv-x="480" 
+d="M480 88c0 -2 0 -11 -6 -21c-5 -8 -16 -19 -38 -24c-6 -1 -11 -3 -15 -4c-2 -1 -5 -1 -7 -1v-1c-1 -7 -1 -13 -4 -18c-2 -5 -9 -12 -22 -12c-2 0 -6 0 -9 1c-2 0 -3 1 -5 1c-7 1 -15 2 -23 2c-10 0 -19 -2 -26 -6c-4 -3 -9 -7 -14 -10c-18 -13 -38 -27 -71 -27
+s-53 14 -71 27c-5 3 -9 7 -14 10c-7 4 -15 6 -25 6c-8 0 -17 -1 -24 -2c-2 0 -3 -1 -5 -1c-3 -1 -7 -1 -9 -1c-13 0 -20 7 -22 12c-3 5 -3 11 -4 18v1c-2 0 -4 0 -6 1c-4 1 -10 3 -16 4c-22 5 -33 16 -38 24c-6 10 -6 18 -6 20v15l15 1c16 1 44 7 54 17c29 27 36 43 36 52
+c0 1 0 2 -4 5c-5 3 -13 6 -20 8c-5 2 -10 3 -14 5c-9 4 -18 16 -17 29c1 15 14 27 30 27c4 0 8 0 12 -2c8 -3 13 -4 17 -5c-1 9 -2 19 -3 30c-5 38 5 74 29 102c25 29 64 45 105 45v0c41 0 80 -16 105 -45c24 -28 34 -63 29 -101c-1 -11 -2 -22 -3 -31c4 1 10 2 18 5
+c4 1 8 2 12 2c16 0 29 -12 30 -27c1 -13 -9 -25 -18 -29c-4 -2 -9 -3 -14 -5c-7 -2 -14 -5 -19 -8c-4 -3 -5 -4 -5 -5c0 -16 20 -37 36 -52c11 -10 39 -16 54 -17l15 -1v-14zM192 320c-9 0 -16 -11 -16 -24s7 -24 16 -24s16 11 16 24s-7 24 -16 24zM296 242c3 3 3 9 0 12
+s-9 3 -12 0c-12 -12 -28 -19 -44 -19c-17 0 -32 7 -44 19c-3 3 -9 3 -12 0s-3 -9 0 -12c15 -15 35 -23 56 -23s41 8 56 23zM288 272c9 0 16 11 16 24s-7 24 -16 24s-16 -11 -16 -24s7 -24 16 -24z" />
+    <glyph glyph-name="ion-social-tumblr-outline" unicode="&#xf240;" horiz-adv-x="256" 
+d="M193 52c21 0 42 6 63 20v-65c-18 -8 -34 -15 -48 -18s-28 -5 -45 -5c-19 0 -35 2 -50 7c-14 5 -28 12 -38 21s-17 18 -21 28s-6 25 -6 44v140h-48v58c16 5 30 14 42 24s19 21 26 35s11 37 14 59h62v-112h96v-64h-96v-101c0 -24 1 -40 4 -47c2 -7 7 -12 14 -16
+c9 -6 19 -8 31 -8zM240 17v29c-15 -6 -31 -10 -47 -10c-15 0 -28 3 -40 10c-10 6 -17 15 -21 25c-2 6 -4 17 -4 52v117h96v32h-96v112h-32c-2 -16 -7 -36 -14 -50c-8 -16 -17 -29 -30 -40c-11 -9 -23 -17 -36 -23v-31h48v-156c0 -21 2 -32 4 -38c3 -8 10 -15 18 -22
+c9 -8 19 -14 31 -18c13 -4 29 -6 46 -6c16 0 28 2 41 5c11 2 23 6 36 12z" />
+    <glyph glyph-name="ion-social-tumblr" unicode="&#xf241;" horiz-adv-x="256" 
+d="M193 52c21 0 42 6 63 20v-65c-18 -8 -34 -15 -48 -18s-28 -5 -45 -5c-19 0 -35 2 -50 7c-14 5 -28 12 -38 21s-17 18 -21 28s-6 25 -6 44v140h-48v58c16 5 30 14 42 24s19 21 26 35s11 37 14 59h62v-112h96v-64h-96v-101c0 -24 1 -40 4 -47c2 -7 7 -12 14 -16
+c9 -6 19 -8 31 -8z" />
+    <glyph glyph-name="ion-social-tux" unicode="&#xf2c5;" horiz-adv-x="383" 
+d="M189 347c2 2 -1 -1 0 0c2 2 4 4 6 5c-3 -2 -5 -4 -7 -8c0 1 0 2 1 3zM361 52c7 -4 23 -11 21 -22c-2 -10 -17 -15 -24 -19c-15 -8 -28 -14 -41 -25c-9 -8 -17 -15 -29 -17c-11 -2 -25 -1 -33 8c-5 5 -7 11 -15 12c-25 5 -54 4 -79 0c-13 -2 -21 -11 -32 -17
+c-10 -5 -20 -5 -30 -1c-13 5 -27 10 -41 13s-29 5 -43 9c-31 8 -5 30 -11 50c-3 12 -10 29 8 30c9 1 27 -1 31 11c2 7 -2 15 2 22s-1 17 1 25c4 18 19 32 25 49c5 14 8 25 18 37c9 11 22 22 29 34c10 18 9 35 8 55c-1 17 -1 33 -2 50c0 33 20 60 58 60h14
+c38 0 63 -32 64 -69c0 -19 -5 -38 5 -67c15 -27 36 -48 52 -73c10 -16 16 -31 20 -49c3 -14 9 -31 7 -45c-1 -6 -2 -9 -4 -11c3 -1 7 -2 9 -5c3 -4 2 -11 0 -26c-1 -8 5 -15 12 -19zM137 -3c2 20 -15 39 -25 56c-10 16 -21 43 -39 52c-8 4 -19 5 -23 -5c-2 -7 0 -19 -2 -22
+c-4 -9 -14 -10 -23 -11c-6 0 -17 0 -17 -8c1 -10 10 -20 7 -30c-2 -7 -8 -12 -8 -19c0 -14 38 -15 47 -17c19 -4 37 -14 57 -16c12 -1 25 7 26 20zM253 62c-2 10 2 -10 0 0s-5 28 1 35c4 5 10 6 17 5c0 4 1 9 3 12c8 13 29 8 39 0l-1 2c-3 4 -8 9 -13 10c0 0 4 12 2 34
+c-4 40 -33 62 -33 62c27 -30 27 -58 27 -72c0 -6 -1 -18 -4 -24c-4 -1 -7 -2 -11 -4c-10 -5 -8 2 -8 10c0 18 -2 36 -7 54c-3 9 -7 17 -13 24c-4 5 -4 9 -5 15c-3 12 -9 22 -16 32c-7 9 -7 17 -5 28c1 7 2 14 -6 17c-6 2 -26 5 -27 14c-1 6 -1 16 5 20c16 14 30 -11 17 -24
+c-3 -3 7 -4 8 -4c4 1 4 7 5 10c1 4 1 9 1 13c0 17 -18 32 -34 21c-6 -4 -9 -11 -10 -17c0 -2 -1 -20 0 -20c-4 0 -7 5 -11 5c-3 0 -7 0 -10 -1c0 0 2 14 -2 22c-4 9 -18 16 -24 4s-3 -25 0 -31s4 -6 4 -6c2 1 5 4 5 4s-6 3 -7 11c-1 9 3 14 7 15s10 -2 12 -8s0 -13 0 -13
+c-7 -6 -30 -18 -22 -28c14 -18 33 -15 52 -9c8 3 18 5 24 12c3 3 11 2 8 -4c-2 -5 -18 -7 -22 -9c-9 -4 -18 -8 -28 -10c-6 -1 -13 -5 -28 9c7 -6 8 -16 17 -20c13 -6 33 9 44 15c1 1 16 5 14 0c-1 -4 -11 -7 -15 -9c-11 -6 -23 -21 -36 -22c-8 -1 -21 16 -25 22
+c-1 1 -5 9 -6 4c-1 -8 2 -14 -3 -21c-6 -9 -11 -18 -13 -29c-1 -6 0 -11 -3 -16c-11 -15 -17 -33 -19 -51c0 -4 3 -43 -5 -41c-18 5 -17 33 -14 47c-3 -12 -8 -30 2 -44c12 -15 99 -55 53 -80c7 -14 14 -25 12 -41c8 7 2 20 -1 28c0 0 17 -12 38 -10c17 2 32 7 46 16
+c6 4 11 9 16 14c1 2 4 6 6 7l1 -11c2 -17 -12 -27 -10 -34c4 8 11 14 13 24c3 12 0 24 -2 36zM155 323v0v-3c2 0 2 5 1 8c-1 4 -3 6 -4 6h-2c3 -2 5 -6 5 -11zM210 335c3 -2 0 0 0 0c3 -2 5 -5 5 -10v-3c2 0 3 4 2 7s-3 6 -5 6h-2zM347 15c24 11 -24 -10 0 0
+c24 11 35 17 20 26c-17 10 -26 13 -26 29c0 5 4 16 2 22c-1 4 -6 5 -9 5c-10 -10 -17 -25 -34 -25c-14 0 -25 11 -28 24c-4 2 -10 1 -13 -4c-6 -12 1 -29 3 -41c2 -18 -4 -35 -2 -53c2 -21 26 -22 40 -13c16 10 29 22 47 30z" />
+    <glyph glyph-name="ion-social-twitch-outline" unicode="&#xf4ed;" horiz-adv-x="416" 
+d="M32 416h384v-272l-112 -112h-80l-64 -64h-64v64h-96v304zM368 160v208h-304v-272h80v-64l64 64h96zM272 176v129h48v-129h-48zM160 176v129h48v-129h-48z" />
+    <glyph glyph-name="ion-social-twitch" unicode="&#xf4ee;" horiz-adv-x="416" 
+d="M32 416h384v-272l-112 -112h-80l-64 -64h-64v64h-96v304zM208 176v129h-48v-129h48zM320 176v129h-48v-129h48z" />
+    <glyph glyph-name="ion-social-twitter-outline" unicode="&#xf242;" horiz-adv-x="472" 
+d="M472 338c-13 -20 -29 -36 -48 -50v-12c0 -128 -98 -276 -276 -276c-55 0 -105 16 -148 44c8 -1 15 -2 23 -2c45 0 87 16 120 42c-42 1 -78 29 -90 67c6 -1 12 -2 18 -2c9 0 18 2 26 4c-44 9 -78 48 -78 95v1c13 -7 28 -12 44 -12c-26 17 -43 47 -43 81c0 18 5 34 13 48
+c48 -59 119 -97 199 -101c-2 7 -2 14 -2 22c0 54 43 97 97 97c28 0 52 -12 70 -31c22 4 43 13 62 24c-7 -23 -23 -42 -43 -54c20 2 39 7 56 15zM414 301c3 2 8 6 11 8c-2 0 -11 -2 -19 -1s-21 5 -21 5s14 13 18 17l11 11c-4 -1 -10 -2 -14 -3l-8 -2l-6 6
+c-15 16 -37 26 -59 26c-45 0 -81 -37 -81 -81c0 -6 1 -12 2 -18l5 -21l-22 1c-42 2 -81 13 -118 32c-28 14 -53 34 -75 56c-1 -6 -2 -13 -2 -19c0 -27 14 -53 36 -68c0 0 33 -23 46 -29c-24 -2 -56 0 -56 0c-8 0 -16 1 -24 3c8 -28 32 -50 62 -56l61 -10l-61 -21
+c-7 -2 -14 -3 -21 -3c15 -20 38 -34 64 -34l45 -1l-35 -28c-18 -14 -38 -25 -60 -33c-10 -3 -19 -6 -29 -8c27 -9 55 -14 84 -14c40 0 78 8 112 24c31 14 58 34 81 60c22 24 38 53 50 84c11 30 17 62 17 92v12l-1 8z" />
+    <glyph glyph-name="ion-social-twitter" unicode="&#xf243;" horiz-adv-x="472" 
+d="M472 338c-13 -20 -29 -36 -48 -50v-12c0 -128 -98 -276 -276 -276c-55 0 -105 16 -148 44c8 -1 15 -2 23 -2c45 0 87 16 120 42c-42 1 -78 29 -90 67c6 -1 12 -2 18 -2c9 0 18 2 26 4c-44 9 -78 48 -78 95v1c13 -7 28 -12 44 -12c-26 17 -43 47 -43 81c0 18 5 34 13 48
+c48 -59 119 -97 199 -101c-2 7 -2 14 -2 22c0 54 43 97 97 97c28 0 52 -12 70 -31c22 4 43 13 62 24c-7 -23 -23 -42 -43 -54c20 2 39 7 56 15z" />
+    <glyph glyph-name="ion-social-usd-outline" unicode="&#xf352;" horiz-adv-x="320" 
+d="M125 345c11 2 19 3 19 3v-131l-22 6c-15 5 -27 11 -36 19c-12 10 -19 25 -19 43c0 13 4 24 11 33c6 8 13 14 22 19c7 4 17 6 25 8zM128 238v92c-7 -2 -15 -4 -21 -7c-7 -4 -12 -9 -17 -15s-7 -14 -7 -23c0 -13 4 -24 13 -31c8 -7 20 -12 32 -16zM252 151
+c10 -10 15 -24 15 -42c0 -9 -1 -18 -5 -27s-11 -17 -20 -24c-8 -6 -18 -11 -31 -15c-6 -2 -11 -3 -17 -4s-18 -1 -18 -1v145l20 -5c10 -3 19 -6 28 -9c10 -4 20 -10 28 -18zM247 89c3 7 4 13 4 20c0 14 -3 24 -10 31s-15 11 -23 14s-16 5 -26 8v-107c6 1 10 2 14 3
+c11 3 20 8 27 13s11 11 14 18zM315 145c3 -10 5 -19 5 -29c0 -21 -5 -38 -14 -53s-20 -26 -35 -35s-31 -17 -50 -21c-10 -2 -19 -3 -29 -4v-35h-64v35c-9 1 -19 4 -28 6c-20 5 -36 12 -51 23s-26 24 -35 41c-8 16 -13 34 -14 55h69c0 -12 2 -24 7 -33c5 -10 12 -17 21 -23
+s20 -11 31 -14v120c-8 2 -18 4 -27 6c-17 4 -30 9 -41 16s-20 15 -27 23s-11 17 -14 26s-4 18 -4 28c0 18 4 34 12 48s19 25 33 34s29 16 46 20c7 2 15 3 22 4v33h64v-33c9 -1 16 -4 24 -6c18 -5 34 -12 48 -22s25 -22 33 -37c7 -13 11 -28 12 -46h-69c-3 21 -12 37 -26 46
+c-7 4 -13 8 -22 10v-106c9 -2 16 -4 25 -6c12 -3 22 -6 27 -7c13 -4 23 -9 33 -15c10 -7 18 -14 24 -22s11 -17 14 -27zM293 72c7 12 11 27 11 44c0 8 -1 16 -4 24s-7 15 -12 22s-12 13 -20 19c-8 5 -18 10 -29 13c-5 1 -13 3 -24 6h-1l-4 1c-7 2 -13 4 -21 6l-13 3v137
+s9 -1 19 -4s19 -6 28 -12c15 -9 25 -24 30 -43h38c-2 8 -4 15 -8 22c-7 13 -16 24 -28 32c-12 9 -27 16 -43 20c-8 2 -16 4 -23 5l-13 2v31h-32v-31l-14 -2c-7 -1 -14 -2 -20 -4c-15 -4 -29 -10 -41 -18s-21 -16 -28 -28c-7 -11 -10 -24 -10 -40c0 -8 1 -15 3 -23
+c2 -7 6 -14 11 -21s14 -13 23 -19c10 -6 22 -10 37 -14v0v0c4 -1 8 -2 11 -3c5 -1 11 -3 16 -4l12 -3v-151s-8 1 -20 4s-26 8 -36 15c-11 8 -20 18 -26 30c-4 7 -6 16 -8 24h-36c2 -11 5 -23 10 -32c8 -14 17 -26 30 -35c13 -10 28 -16 46 -21c8 -2 17 -4 26 -5l14 -2v-33
+h32v33l15 1c9 1 17 3 26 5c17 4 32 10 45 18s23 19 31 31z" />
+    <glyph glyph-name="ion-social-usd" unicode="&#xf353;" horiz-adv-x="320" 
+d="M315 145c3 -10 5 -19 5 -29c0 -21 -5 -38 -14 -53s-20 -26 -35 -35s-31 -17 -50 -21c-10 -2 -19 -3 -29 -4v-35h-64v35c-9 1 -19 4 -28 6c-20 5 -36 12 -51 23s-26 24 -35 41c-8 16 -13 34 -14 55h69c0 -12 2 -24 7 -33c5 -10 12 -17 21 -23s20 -11 31 -14v120
+c-8 2 -18 4 -27 6c-17 4 -30 9 -41 16s-20 15 -27 23s-11 17 -14 26s-4 18 -4 28c0 18 4 34 12 48s19 25 33 34s29 16 46 20c7 2 15 3 22 4v33h64v-33c9 -1 16 -4 24 -6c18 -5 34 -12 48 -22s25 -22 33 -37c7 -13 11 -28 12 -46h-69c-3 21 -12 37 -26 46c-7 4 -13 8 -22 10
+v-106c9 -2 16 -4 25 -6c12 -3 22 -6 27 -7c13 -4 23 -9 33 -15c10 -7 18 -14 24 -22s11 -17 14 -27zM128 238v92c-7 -2 -15 -4 -21 -7c-7 -4 -12 -9 -17 -15s-7 -14 -7 -23c0 -13 4 -24 13 -31c8 -7 20 -12 32 -16zM247 89c3 7 4 13 4 20c0 14 -3 24 -10 31s-15 11 -23 14
+s-16 5 -26 8v-107c6 1 10 2 14 3c11 3 20 8 27 13s11 11 14 18z" />
+    <glyph glyph-name="ion-social-vimeo-outline" unicode="&#xf244;" 
+d="M445 334c7 -33 1 -66 -13 -97s-31 -59 -51 -87c-26 -36 -52 -71 -85 -101c-19 -18 -41 -35 -66 -44c-10 -4 -19 -5 -27 -5c-17 0 -31 9 -44 27c-14 19 -22 40 -28 63c-12 45 -25 90 -38 134c-4 12 -9 22 -15 33c-3 5 -8 10 -12 14c-2 2 -5 3 -8 3s-6 -1 -9 -3
+c-10 -6 -28 -18 -28 -18l-21 27c26 24 82 71 82 71c11 9 33 25 48 27h8c18 0 32 -7 42 -22c11 -17 15 -37 18 -57c7 -41 12 -82 24 -122c3 -10 7 -20 12 -29c4 -7 9 -10 14 -10c4 0 7 2 11 5s7 6 10 10c20 24 37 52 48 81c3 9 3 17 3 27c0 13 -10 25 -25 26h-7
+c-11 0 -20 -2 -32 -7c6 24 24 62 54 84c20 14 45 20 67 20c10 0 20 -2 27 -4c23 -8 36 -23 41 -46zM418 244c13 30 17 59 11 87c-4 19 -13 28 -30 34c-6 2 -14 3 -22 3c-21 0 -42 -6 -57 -17c-16 -12 -29 -30 -38 -48h6h8c23 -1 39 -19 40 -41c0 -10 0 -22 -4 -34
+c-11 -29 -29 -58 -51 -85c-4 -4 -7 -9 -12 -13c-7 -6 -15 -8 -22 -8c-8 0 -18 3 -27 18c-7 11 -11 22 -14 32c-10 31 -14 64 -19 95c-2 10 -3 19 -5 29c-3 17 -6 36 -16 51c-7 10 -16 15 -28 15h-6c-8 -1 -25 -11 -40 -23c-2 -2 -43 -37 -70 -61l2 -3c5 4 12 7 16 10
+c6 3 12 5 18 5c7 0 13 -3 18 -7c8 -7 13 -12 16 -18c6 -11 12 -24 16 -37c13 -44 26 -88 38 -133c5 -19 13 -41 26 -59s23 -20 31 -20c6 0 13 1 21 4c23 8 43 25 61 41c32 29 57 63 83 99v0c21 28 37 55 50 84z" />
+    <glyph glyph-name="ion-social-vimeo" unicode="&#xf245;" 
+d="M445 334c7 -33 1 -66 -13 -97s-31 -59 -51 -87c-26 -36 -52 -71 -85 -101c-19 -18 -41 -35 -66 -44c-31 -11 -52 -5 -71 22c-14 19 -22 40 -28 63c-12 45 -25 90 -38 134c-4 12 -9 22 -15 33c-3 5 -8 10 -12 14c-5 4 -11 3 -17 0c-10 -6 -28 -18 -28 -18l-21 27
+c26 24 82 71 82 71c11 9 33 25 48 27c21 3 38 -4 50 -22c11 -17 15 -37 18 -57c7 -41 11 -82 23 -122c3 -10 8 -20 13 -29c7 -11 15 -13 25 -5c4 3 7 6 10 10c20 24 37 52 48 81c3 9 3 17 3 27c0 13 -10 25 -25 26s-24 -1 -39 -7c6 24 24 62 54 84c29 21 71 24 94 16
+s36 -23 41 -46z" />
+    <glyph glyph-name="ion-social-whatsapp-outline" unicode="&#xf4ef;" 
+d="M178 294c4 -11 15 -39 16 -42s2 -6 0 -10s-3 -6 -6 -9s-6 -7 -9 -9c-3 -3 -6 -6 -3 -12s14 -24 30 -39c21 -20 38 -27 44 -30s9 -3 12 1s15 16 19 21s8 5 13 3s31 -17 37 -20s10 -5 11 -7s0 -13 -5 -26s-28 -24 -38 -25s-11 -8 -67 16s-90 84 -93 88s-22 31 -21 58
+s17 41 22 46s11 7 15 7h10s9 0 13 -11zM228 384c-50 0 -97 -20 -133 -55c-35 -35 -55 -81 -55 -131c0 -34 9 -67 27 -96l8 -13l-5 -14l-19 -57l61 19l13 4l12 -6c28 -15 59 -23 91 -23c50 0 97 19 133 54c35 35 55 82 55 132s-20 96 -55 131c-36 35 -83 55 -133 55zM228 416
+v0c121 0 220 -97 220 -218s-99 -218 -220 -218c-39 0 -74 10 -106 27l-122 -39l40 117c-20 33 -32 72 -32 113c0 121 99 218 220 218z" />
+    <glyph glyph-name="ion-social-whatsapp" unicode="&#xf4f0;" 
+d="M228 416c121 0 220 -97 220 -218s-99 -218 -220 -218c-39 0 -74 10 -106 27l-122 -39l40 117c-20 33 -32 72 -32 113c0 121 99 218 220 218zM337 115c5 13 6 24 5 26s-5 4 -11 7s-32 18 -37 20s-9 2 -13 -3s-16 -17 -19 -21s-6 -4 -12 -1s-23 10 -44 30
+c-16 15 -27 33 -30 39s0 9 3 12c3 2 6 6 9 9s4 5 6 9s1 7 0 10s-12 31 -16 42s-10 11 -13 11h-10s-10 -2 -15 -7s-21 -19 -22 -46s18 -54 21 -58s37 -64 93 -88s57 -17 67 -16s33 12 38 25z" />
+    <glyph glyph-name="ion-social-windows-outline" unicode="&#xf246;" 
+d="M432 167h-216v-149l216 -32v181zM448 183v0v-215l-248 36v179h248zM168 167h-152v-120l152 -22v142zM184 183v0v-177l-184 27v150h184zM432 398v0l-216 -31v-152h216v183zM448 416v0v-217h-248v182zM168 360v0l-152 -22v-123h152v145zM184 378v0v-179h-184v153z" />
+    <glyph glyph-name="ion-social-windows" unicode="&#xf247;" 
+d="M448 183v0v-215l-248 36v179h248zM184 183v0v-177l-184 27v150h184zM448 416v0v-217h-248v182zM184 378v0v-179h-184v153z" />
+    <glyph glyph-name="ion-social-wordpress-outline" unicode="&#xf248;" horiz-adv-x="384" 
+d="M192 384c106 0 192 -86 192 -192c0 -9 -1 -18 -2 -26c-12 -85 -79 -153 -165 -164c-8 -1 -17 -2 -25 -2c-106 0 -192 86 -192 192s86 192 192 192zM19 192c0 -68 40 -127 98 -155l-83 225c-10 -21 -15 -45 -15 -70zM214 21c12 2 24 4 35 8c0 1 -1 2 -1 3l-53 145l-33 -96
+v0l-19 -55c15 -5 32 -7 49 -7c8 0 15 1 22 2zM216 273l62 -186l17 58c9 22 13 41 13 56c0 21 -7 35 -14 47c-9 14 -17 27 -17 41c0 16 12 30 29 30h2c-31 28 -71 45 -116 45c-60 0 -113 -30 -144 -77c4 0 8 -1 11 -1c18 0 46 3 46 3c9 1 10 -14 1 -15c0 0 -10 -1 -20 -1
+l63 -187l38 113l-27 74c-9 0 -18 1 -18 1c-9 0 -8 16 1 15c0 0 28 -3 45 -3c18 0 46 3 46 3c9 1 11 -14 2 -15c0 0 -10 -1 -20 -1zM279 43c45 26 77 71 84 125c1 8 2 16 2 24c0 30 -8 58 -22 83c1 -6 1 -12 1 -18c0 -18 -3 -37 -13 -62l-39 -113z" />
+    <glyph glyph-name="ion-social-wordpress" unicode="&#xf249;" horiz-adv-x="384" 
+d="M195 177l53 -146c0 -1 6 -13 9 -19c-3 -1 -5 -2 -8 -3v0c-10 -3 -21 -6 -32 -7c-8 -1 -17 -2 -25 -2c-17 0 -34 2 -50 6v0c-2 0 -3 2 -5 2l25 73v0zM17 268c6 0 7 -1 15 -1l93 -255c-3 1 -5 2 -8 3c-63 27 -109 87 -116 158c-1 6 -1 13 -1 19c0 25 7 53 17 76zM366 273
+c11 -24 18 -52 18 -81c0 -9 -1 -18 -2 -26c-9 -65 -50 -120 -107 -147c-2 -1 -3 -1 -5 -2l22 65l39 113c10 25 13 45 13 62v19v0c-1 18 -10 44 -36 43h-2c-17 0 -29 -14 -29 -30c0 -14 8 -27 17 -41c7 -12 14 -26 14 -47c0 -15 -4 -34 -13 -56l-17 -58l-62 186
+c10 0 20 1 20 1c9 1 7 16 -2 15c0 0 -28 -3 -46 -3c-17 0 -45 3 -45 3c-9 1 -10 -15 -1 -15c0 0 9 -1 18 -1l27 -74l-38 -113l-63 187c10 0 20 2 20 2c9 1 8 15 -1 14c0 0 -28 -2 -46 -2h-34c5 9 11 17 17 25c35 44 90 72 150 72c24 0 48 -5 69 -13c34 -13 63 -36 85 -65
+c2 -2 3 -5 5 -7c6 -8 11 -17 15 -26z" />
+    <glyph glyph-name="ion-social-yahoo-outline" unicode="&#xf24a;" horiz-adv-x="320" 
+d="M289 380c11 0 21 1 31 4l-128 -213v-171c-10 4 -21 4 -32 4s-22 0 -32 -4v171l-128 213c10 -4 21 -4 32 -4s22 0 32 4l96 -160l96 160c10 -4 22 -4 33 -4zM178 180l111 184h-1c-7 0 -15 0 -24 2l-90 -150l-14 -23l-14 23l-89 150c-9 -2 -17 -2 -25 -2h-1l111 -184l2 -4
+v-5v-151c6 1 11 0 16 0s11 1 16 0v151v5z" />
+    <glyph glyph-name="ion-social-yahoo" unicode="&#xf24b;" horiz-adv-x="320" 
+d="M289 380c11 0 21 1 31 4l-128 -213v-171c-10 4 -21 4 -32 4s-22 0 -32 -4v171l-128 213c10 -4 21 -4 32 -4s22 0 32 4l96 -160l96 160c10 -4 22 -4 33 -4z" />
+    <glyph glyph-name="ion-social-yen-outline" unicode="&#xf4f1;" horiz-adv-x="384" 
+d="M384 416l-112 -208h48v-48h-73l-15 -31v-17h88v-48h-88v-96h-80v96h-88v48h88v17l-14 31h-74v48h48l-112 208h80l112 -221l112 221h80zM304 192h-59l13 24l99 184v0h-43l-122 -240l-122 240h-43l99 -184l13 -24h-59v-16h68l20 -44v-36h-88v-16h88v-96h48v96h88v16h-88v37
+l21 43h67v16z" />
+    <glyph glyph-name="ion-social-yen" unicode="&#xf4f2;" horiz-adv-x="384" 
+d="M384 416l-112 -208h48v-48h-73l-15 -31v-17h88v-48h-88v-96h-80v96h-88v48h88v17l-14 31h-74v48h48l-112 208h80l112 -221l112 221h80z" />
+    <glyph glyph-name="ion-social-youtube-outline" unicode="&#xf24c;" horiz-adv-x="512" 
+d="M265 352v0h-9h-9c-65 0 -118 -2 -168 -4h-1h-1c-23 0 -42 -22 -42 -49v-1v-1c-2 -34 -3 -70 -3 -105v0v0c0 -35 1 -70 3 -104v-2v-1c0 -14 5 -26 14 -36c8 -9 17 -13 28 -13h1h1c52 -2 108 -4 166 -4h11v0v0h11c58 0 113 2 166 4h1h1c11 0 20 4 28 13c9 10 14 22 14 36v1
+v2c2 34 3 68 3 104v0v0c0 36 -1 71 -3 105v1v2c0 27 -19 49 -42 49h-1h-1c-49 2 -103 3 -168 3zM265 384v0c58 0 115 0 170 -3c41 0 74 -36 74 -81c2 -36 3 -72 3 -108s-1 -71 -3 -107c0 -45 -33 -81 -74 -81c-55 -3 -111 -4 -168 -4h-11h-11c-57 0 -113 1 -168 4
+c-41 0 -74 36 -74 81c-2 36 -3 71 -3 107s2 71 4 107c0 45 32 82 73 82c55 2 112 3 170 3h9h9zM207 94v197l145 -99z" />
+    <glyph glyph-name="ion-social-youtube" unicode="&#xf24d;" horiz-adv-x="512" 
+d="M509 299c2 -36 3 -71 3 -107s-1 -71 -3 -107c0 -45 -33 -81 -74 -81c-58 -3 -118 -4 -179 -4s-121 1 -179 4c-41 0 -74 36 -74 81c-2 36 -3 71 -3 107s2 71 4 107c0 45 32 81 73 81c55 3 112 4 170 4h9h9c58 0 115 -1 170 -4c41 0 74 -36 74 -81zM207 94l145 98l-145 99
+v-197z" />
+    <glyph glyph-name="ion-soup-can-outline" unicode="&#xf4f3;" horiz-adv-x="320" 
+d="M160 304c-88 0 -160 29 -160 64s72 64 160 64s160 -29 160 -64s-72 -64 -160 -64zM160 415c-70 0 -126 -19 -126 -43s56 -43 126 -43s126 19 126 43s-56 43 -126 43zM161 288c88 0 158 29 159 64c0 -5 0 -33 -8 -40v-240c0 -35 -64 -64 -152 -64s-152 29 -152 64v240
+c-8 6 -8 40 -8 40c0 -35 73 -64 161 -64zM280 72v80c-18 -10 -43 -17 -72 -21h-2c-6 -20 -24 -35 -46 -35s-40 15 -46 35h-2c-29 4 -54 11 -72 21v-80c1 -2 9 -10 30 -18c24 -9 55 -14 90 -14s67 5 91 14c21 8 29 16 29 18zM280 184v91c-33 -12 -75 -19 -119 -19
+c-45 0 -87 7 -121 19v-91c18 -10 43 -17 73 -21h3c7 17 24 29 44 29s37 -12 44 -29h3c30 4 55 11 73 21zM178 -16zM160 -16h1h-1v0zM312 32l8 -16c0 -7 -3 -14 -8 -20c-21 -26 -81 -44 -152 -44s-131 18 -152 44c-5 6 -8 13 -8 20l8 16v16c0 -35 63 -64 152 -64
+s152 28 152 64v-16z" />
+    <glyph glyph-name="ion-soup-can" unicode="&#xf4f4;" horiz-adv-x="320" 
+d="M0 368c0 43 53 64 160 64s160 -21 160 -64s-53 -64 -160 -64s-160 21 -160 64zM160 8c-44 0 -80 6 -109 18s-43 28 -43 46v128c0 -9 4 -19 13 -27s21 -15 37 -21s33 -10 54 -13c1 -12 7 -23 16 -31s20 -12 32 -12s23 4 32 12s15 19 16 31c31 4 56 12 75 23s29 24 29 38
+v-128c0 -18 -14 -34 -43 -46s-65 -18 -109 -18zM160 288c44 0 82 6 113 18s47 28 47 46v-8c0 -5 -1 -11 -2 -18s-3 -11 -6 -14v-96c0 -14 -10 -27 -29 -38s-44 -19 -76 -23c-2 11 -8 19 -17 26s-19 11 -30 11s-21 -4 -30 -11s-15 -15 -17 -26c-32 4 -57 12 -76 23
+s-29 24 -29 38v96c-5 5 -8 18 -8 40c0 -18 16 -34 47 -46s69 -18 113 -18zM312 56v-24l8 -16c0 -7 -3 -14 -8 -20c-11 -13 -30 -24 -58 -32s-59 -12 -94 -12s-66 4 -94 12s-47 19 -58 32c-5 6 -8 13 -8 20l8 16v24c0 -18 14 -34 43 -46s65 -18 109 -18s80 6 109 18
+s43 28 43 46z" />
+    <glyph glyph-name="ion-speakerphone" unicode="&#xf2b2;" 
+d="M39 266c0 -37 20 -69 50 -86c-1 0 -2 1 -3 1s-4 1 -5 1v0c-35 3 -62 33 -69 69c-6 0 -12 7 -12 16c0 8 5 15 11 16c6 42 40 75 81 75h8c-36 -15 -61 -51 -61 -92zM433 357c10 -25 15 -56 15 -88s-5 -63 -15 -88l-3 -9c-6 -14 -15 -26 -24 -34c-10 -10 -22 -19 -34 -20h-3
+c-7 0 -15 2 -22 5c-3 2 -10 5 -10 5c-22 10 -84 28 -115 29c-4 -8 -10 -20 -12 -30c-2 -9 -6 -27 -7 -61c-1 -32 1 -59 3 -82c0 -2 1 -5 1 -7c0 -6 -2 -9 -9 -9h-77c-6 0 -9 3 -9 6v7c2 72 25 140 26 145c2 9 5 17 7 30c2 12 -27 13 -40 24c-29 17 -47 49 -47 86
+c0 41 25 77 59 92h42h19c58 3 114 21 163 50c1 1 3 1 4 2v0c8 4 16 6 24 6c13 0 26 -6 37 -16c9 -9 18 -21 24 -35c1 -3 2 -5 3 -8zM410 180c9 22 15 54 15 89s-6 66 -15 88c-8 18 -19 29 -30 29s-21 -11 -29 -29c-9 -22 -15 -53 -15 -88s6 -67 15 -89c8 -19 18 -33 29 -33
+s22 15 30 33z" />
+    <glyph glyph-name="ion-speedometer" unicode="&#xf2b3;" 
+d="M312 192l8 -8l-64 -84v-4c0 -18 -14 -32 -32 -32s-32 14 -32 32s14 32 32 32h4zM224 352c124 0 224 -100 224 -224c0 -34 -8 -67 -22 -96h-36c15 27 25 57 26 88h-32v16h32c-1 29 -9 56 -22 81l-27 -15l-8 13l27 16c-8 12 -16 23 -26 33s-21 18 -33 26l-16 -27l-14 8
+l16 27c-25 13 -52 21 -81 22v-32h-16v32c-29 -1 -56 -9 -81 -22l16 -27l-14 -8l-16 27c-12 -8 -23 -16 -33 -26s-19 -21 -26 -33l28 -16l-8 -13l-28 15c-13 -25 -21 -52 -22 -81h32v-16h-32c1 -31 11 -61 26 -88h-36c-14 29 -22 62 -22 96c0 124 100 224 224 224z" />
+    <glyph glyph-name="ion-spoon" unicode="&#xf2b4;" horiz-adv-x="128" 
+d="M128 288c0 64 -26 128 -64 128s-64 -64 -64 -128v0c1 -25 16 -54 37 -64l1 -1v0c3 -2 10 -6 10 -10c0 0 -16 -199 -16 -210s4 -20 10 -26s14 -9 22 -9v0v0c8 0 16 3 22 9s10 13 10 26s-16 210 -16 210c0 4 7 8 10 10l1 1c22 10 37 38 37 64z" />
+    <glyph glyph-name="ion-star" unicode="&#xf24e;" 
+d="M448 248l-139 -104l55 -176l-140 112l-140 -112l55 176l-139 104h172l52 168l53 -168h171z" />
+    <glyph glyph-name="ion-stats-bars" unicode="&#xf2b5;" horiz-adv-x="352" 
+d="M96 32v320h64v-320h-64zM0 32v96h64v-96h-64zM192 32v160h64v-160h-64zM288 32v224h64v-224h-64z" />
+    <glyph glyph-name="ion-steam" unicode="&#xf30b;" horiz-adv-x="512" 
+d="M480 240c0 -20 -16 -37 -37 -37c-20 0 -37 16 -37 37c0 20 16 37 37 37c20 0 37 -17 37 -37zM443 309c38 0 69 -31 69 -69s-31 -70 -69 -70l-67 -48c-2 -26 -24 -47 -51 -47c-25 0 -46 18 -51 41l-196 78c-8 -5 -16 -7 -26 -7c-28 0 -52 24 -52 52s24 52 52 52
+c25 0 45 -18 50 -41l196 -79c8 5 17 8 27 8c2 0 3 -1 5 -1l43 62c0 38 32 69 70 69zM443 286c-26 0 -47 -20 -47 -46s21 -47 47 -47s46 21 46 47s-20 46 -46 46zM52 277c-21 0 -38 -17 -38 -38s17 -38 38 -38c3 0 5 0 8 1l-16 6v0c-15 7 -22 24 -16 39s24 23 39 17v0l19 -7
+c-6 12 -19 20 -34 20zM325 165c-3 0 -6 -1 -9 -1l16 -6c16 -6 23 -24 17 -40s-23 -23 -39 -17c-6 3 -13 6 -19 8c6 -12 19 -20 34 -20c21 0 38 17 38 38s-17 38 -38 38z" />
+    <glyph glyph-name="ion-stop" unicode="&#xf24f;" horiz-adv-x="384" 
+d="M373 384c6 0 11 -5 11 -11v-362c0 -6 -5 -11 -11 -11h-362c-6 0 -11 5 -11 11v362c0 6 5 11 11 11h362z" />
+    <glyph glyph-name="ion-thermometer" unicode="&#xf2b6;" horiz-adv-x="160" 
+d="M127 112c20 -14 33 -38 33 -64c0 -44 -36 -80 -80 -80s-80 36 -80 80c0 27 13 51 33 65v257c0 26 21 46 47 46s47 -20 47 -46v-258zM65 370v-50h30v50c0 8 -7 14 -15 14s-15 -6 -15 -14zM96 160v16h-16v-16h16zM96 192v64h-16v-64h16z" />
+    <glyph glyph-name="ion-thumbsdown" unicode="&#xf250;" horiz-adv-x="384" 
+d="M24 195c-10 5 -18 17 -18 29c0 14 8 25 20 30c-4 5 -6 12 -6 19c0 14 8 25 20 30c-3 5 -5 11 -5 17c0 18 11 24 35 30s74 12 126 9c23 -1 55 -7 76 -7v32h112v-240h-112v16c-15 -1 -31 -4 -40 -14c-22 -23 -40 -65 -40 -108c0 -19 1 -29 -4 -34c-13 -13 -44 9 -52 37
+c-9 34 -1 62 1 87h-103c-19 0 -34 15 -34 34c0 15 10 29 24 33zM336 352c-9 0 -16 -7 -16 -16s7 -16 16 -16s16 7 16 16s-7 16 -16 16z" />
+    <glyph glyph-name="ion-thumbsup" unicode="&#xf251;" horiz-adv-x="384" 
+d="M360 189c10 -5 18 -17 18 -29c0 -14 -8 -25 -20 -30c4 -5 6 -12 6 -19c0 -14 -8 -25 -20 -30c3 -5 5 -11 5 -17c0 -18 -11 -24 -35 -30s-74 -12 -126 -9c-23 1 -55 7 -76 7v-32h-112v240h112v-16c15 1 31 4 40 14c22 23 40 65 40 108c0 19 -1 29 4 34c13 13 44 -9 52 -37
+c9 -34 1 -62 -1 -87h103c19 0 34 -15 34 -34c0 -15 -10 -29 -24 -33zM48 32c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16z" />
+    <glyph glyph-name="ion-toggle-filled" unicode="&#xf354;" 
+d="M320 240c26 0 48 -22 48 -48s-22 -48 -48 -48s-48 22 -48 48s22 48 48 48zM320 320c71 0 128 -57 128 -128s-57 -128 -128 -128h-192c-71 0 -128 57 -128 128s57 128 128 128h192zM320 112c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80z" />
+    <glyph glyph-name="ion-toggle" unicode="&#xf355;" 
+d="M320 288h-192c-53 0 -96 -43 -96 -96s43 -96 96 -96h192c53 0 96 43 96 96s-43 96 -96 96zM320 320v0c71 0 128 -57 128 -128s-57 -128 -128 -128h-192c-71 0 -128 57 -128 128s57 128 128 128h192zM128 240c-26 0 -48 -22 -48 -48s22 -48 48 -48s48 22 48 48
+s-22 48 -48 48zM128 272v0c44 0 80 -36 80 -80s-36 -80 -80 -80s-80 36 -80 80s36 80 80 80z" />
+    <glyph glyph-name="ion-transgender" unicode="&#xf4f5;" horiz-adv-x="512" 
+d="M368 448h144v-144h-40v76l-101 -100c8 -17 13 -36 13 -56c0 -63 -46 -115 -104 -126v-52h72v-46h-72v-64h-48v64h-72v46h72v52c-59 11 -104 63 -104 126c0 20 5 39 13 56l-22 22l-36 -36l-33 33l36 36l-46 45v-76h-40v144h144v-40h-70l43 -42l36 36l33 -33l-36 -36
+l17 -17c23 22 54 36 89 36c27 0 53 -8 74 -23c0 0 6 -5 15 -13l93 92h-70v40zM256 144c44 0 80 36 80 80s-36 80 -80 80s-80 -36 -80 -80s36 -80 80 -80z" />
+    <glyph glyph-name="ion-trash-a" unicode="&#xf252;" horiz-adv-x="352" 
+d="M261 320v0h91v-32h-9s-5 -1 -8 -4s-4 -9 -4 -9l-19 -241c-2 -29 -2 -34 -36 -34h-200c-34 0 -34 5 -36 34l-19 242s-1 6 -4 9s-8 3 -8 3h-9v32h91v29c0 19 14 35 34 35h101c20 0 35 -16 35 -35v-29zM112 349v-29h128v29c0 10 -9 15 -19 15h-91c-10 0 -18 -5 -18 -15z
+M104 64h20l-10 192h-21zM187 64v192h-22v-192h22zM249 64l10 192h-20l-11 -192h21z" />
+    <glyph glyph-name="ion-trash-b" unicode="&#xf253;" horiz-adv-x="320" 
+d="M318 315c3 -12 4 -11 -7 -11h-302c-11 0 -10 -1 -7 11c2 9 4 13 4 13c3 9 9 9 19 11l53 7c7 1 7 1 10 7c9 20 10 31 20 31h103c10 0 12 -11 21 -31c3 -6 3 -6 10 -7l53 -6c10 -2 16 -2 19 -11c0 0 2 -5 4 -14zM283 272c17 0 18 -2 17 -15l-19 -242c-2 -12 -2 -15 -17 -15
+h-208c-15 0 -15 3 -17 15l-19 242c-1 12 0 15 17 15h246z" />
+    <glyph glyph-name="ion-trophy" unicode="&#xf356;" 
+d="M448 345c0 -25 2 -73 -22 -122c-15 -30 -36 -55 -63 -75c-23 -16 -49 -28 -77 -35c-16 -17 -32 -27 -46 -31v-33s0 -49 99 -49h13v-32h-256v32h13c85 0 97 35 99 46v36c-14 4 -30 14 -46 31c-28 7 -55 19 -77 35c-27 20 -48 45 -63 75c-17 36 -21 71 -22 97v0v11v0v21v0
+h80c-2 35 0 64 0 64h143h1h1h142s2 -29 0 -64h81v-7zM51 237c17 -34 43 -61 77 -78c-22 40 -33 84 -42 135c-1 8 -2 17 -3 26h-51c1 -23 5 -53 19 -83zM397 237c14 30 18 60 19 83h-51c-1 -9 -3 -18 -4 -26c-9 -51 -20 -95 -42 -135c34 17 61 43 78 78z" />
+    <glyph glyph-name="ion-tshirt-outline" unicode="&#xf4f6;" 
+d="M146 362l-104 -31l11 -32l39 4l38 5l-2 -38l-14 -255h220l-14 255l-2 38l38 -5l39 -4l11 32l-104 31c-6 -8 -13 -14 -21 -19c-15 -10 -34 -15 -57 -15v0v0c-34 1 -59 11 -78 34zM288 400v0l160 -48l-32 -88l-64 8l16 -289h-288l16 289l-64 -8l-32 88l160 48
+c14 -27 31 -39 64 -40c33 0 50 13 64 40z" />
+    <glyph glyph-name="ion-tshirt" unicode="&#xf4f7;" 
+d="M448 352l-32 -88l-64 8l16 -288h-288l16 288l-64 -8l-32 88l160 48c14 -27 31 -39 64 -40c33 0 50 13 64 40z" />
+    <glyph glyph-name="ion-umbrella" unicode="&#xf2b7;" 
+d="M344 160v0v0v0zM104 160v0v0v0zM240 399c116 -8 208 -109 208 -227v-12c-4 25 -26 52 -52 52c-29 0 -52 -23 -52 -52v0c0 29 -23 52 -52 52s-49 -12 -52 -45v-135c0 -17 -6 -33 -18 -45s-29 -19 -46 -19c-35 0 -63 29 -63 64c0 9 7 16 16 16s16 -7 16 -16
+c0 -18 14 -32 31 -32c18 0 32 14 32 32v134c-1 24 -26 46 -52 46c-29 0 -52 -23 -52 -52v0c0 29 -23 52 -52 52c-27 0 -49 -26 -52 -52v18c0 118 92 213 208 221v1c0 9 7 16 16 16s16 -7 16 -16v-1z" />
+    <glyph glyph-name="ion-university" unicode="&#xf357;" 
+d="M224 384l224 -111l-92 -60l-132 -85l-160 102v-198l-32 16v203l-32 21zM358 192l10 -82c-16 -12 -112 -78 -144 -110c-32 32 -128 98 -144 110l9 82l135 -88z" />
+    <glyph glyph-name="ion-unlocked" unicode="&#xf254;" horiz-adv-x="384" 
+d="M22 -32c-12 0 -22 10 -22 22v212c0 12 10 22 22 22h3h19v31c0 42 17 87 43 115s64 46 105 46v0v0c41 0 79 -18 105 -46c20 -21 33 -51 39 -82h-53c-5 18 -13 35 -24 47v0v1c-18 19 -42 29 -67 29v0v0c-25 0 -49 -10 -67 -29v-1v0c-18 -19 -28 -53 -28 -80v-31h265
+c12 0 22 -10 22 -22v-212c0 -12 -10 -22 -22 -22h-340z" />
+    <glyph glyph-name="ion-upload" unicode="&#xf255;" 
+d="M366 215c45 0 82 -37 82 -83s-37 -84 -82 -84h-110v80h48l-80 84l-80 -84h48v-80h-102c-49 0 -90 41 -90 91c0 40 26 74 61 86c5 29 29 51 59 51c10 0 18 -3 26 -7c19 40 59 67 105 67c64 0 115 -53 115 -118v-3z" />
+    <glyph glyph-name="ion-usb" unicode="&#xf2b8;" horiz-adv-x="256" 
+d="M16 228v0v0zM256 320c0 -11 -6 -21 -14 -27v0c-2 -1 -3 -5 -3 -7c-1 -20 -3 -36 -9 -50c-7 -19 -20 -33 -39 -46c-17 -12 -29 -21 -36 -34c-7 -12 -11 -28 -11 -53v-24c0 -7 2 -13 10 -18c4 -2 7 -6 10 -9c8 -9 14 -21 14 -34c0 -28 -22 -50 -50 -50s-50 22 -50 50v1v0
+c0 18 10 33 24 42c5 4 9 5 9 18v0c0 14 -3 17 -10 27s-18 17 -32 26c-19 13 -33 27 -40 46c-6 15 -8 31 -9 39s-2 9 -4 11c-10 6 -16 16 -16 28c0 18 14 32 32 32s32 -14 32 -32c0 -10 -4 -20 -12 -26c-3 -2 -4 -11 -4 -14v0v0c0 -9 3 -18 7 -28c10 -21 45 -44 52 -44
+s8 5 8 12v196s-1 2 -3 4h-1v1v0c-9 6 -15 16 -15 27c0 18 14 32 32 32s32 -14 32 -32c0 -11 -5 -21 -14 -27v0c-2 -2 -2 -3 -2 -5v-140c0 -10 2 -12 8 -11c13 3 48 30 52 43c3 10 6 23 7 41v1c0 2 -2 4 -3 6c-10 6 -16 16 -16 28c0 18 14 32 32 32s32 -14 32 -32zM32 240
+c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM128 368c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16zM224 304c9 0 16 7 16 16s-7 16 -16 16s-16 -7 -16 -16s7 -16 16 -16z" />
+    <glyph glyph-name="ion-videocamera" unicode="&#xf256;" 
+d="M335 263v-66l113 35v-89v-88l-113 35v-65c0 -5 -4 -9 -9 -9h-317c-5 0 -9 4 -9 9v12v55v171c0 5 4 9 9 9h208v38c0 4 -6 10 -10 10h-176v48h178c36 0 65 -29 65 -64v-32h52c5 0 9 -4 9 -9zM226 107c20 0 36 16 36 36s-16 35 -36 35s-36 -15 -36 -35c0 -10 4 -19 11 -26
+h-68c7 7 11 16 11 26c0 20 -16 36 -36 36s-36 -16 -36 -36s16 -36 36 -36h12h95h11z" />
+    <glyph glyph-name="ion-volume-high" unicode="&#xf257;" 
+d="M199 40l-95 88h-104v128h104l95 88v-304zM255 92l-20 16c17 24 27 52 27 84s-10 60 -27 84l20 16c20 -28 33 -63 33 -100s-13 -72 -33 -100zM322 46l-21 16c27 36 43 81 43 130s-16 94 -43 130l21 16c30 -41 48 -91 48 -146s-18 -105 -48 -146zM365 369l20 15
+c39 -54 63 -120 63 -192s-24 -138 -63 -192l-20 15c36 49 58 111 58 177s-22 128 -58 177z" />
+    <glyph glyph-name="ion-volume-low" unicode="&#xf258;" horiz-adv-x="288" 
+d="M199 40l-95 88h-104v128h104l95 88v-304zM255 92l-20 16c17 24 28 52 28 84s-11 60 -28 84l20 16c20 -28 33 -63 33 -100s-13 -72 -33 -100z" />
+    <glyph glyph-name="ion-volume-medium" unicode="&#xf259;" horiz-adv-x="370" 
+d="M199 40l-95 88h-104v128h104l95 88v-304zM255 92l-20 16c17 24 28 52 28 84s-11 60 -28 84l20 16c20 -28 33 -63 33 -100s-13 -72 -33 -100zM322 46l-21 16c27 36 43 81 43 130s-16 94 -43 130l21 16c30 -41 48 -91 48 -146s-18 -105 -48 -146z" />
+    <glyph glyph-name="ion-volume-mute" unicode="&#xf25a;" 
+d="M224 231l47 51v-180l-47 51h-65v78h65zM332 388c69 -38 116 -112 116 -196c0 -124 -100 -224 -224 -224c-39 0 -76 10 -108 27l-1 1c-69 38 -115 112 -115 196c0 124 100 224 224 224c39 0 75 -10 107 -28h1zM362 93c20 28 33 62 33 99c0 66 -38 123 -92 151
+c-6 3 -11 6 -17 8c-19 7 -40 11 -62 11c-37 0 -71 -12 -99 -32l73 -74h-76l-36 35c-20 -28 -32 -62 -32 -99c0 -65 36 -121 90 -150c6 -3 13 -7 19 -9c19 -7 39 -11 61 -11c37 0 72 12 100 32l-20 20v77z" />
+    <glyph glyph-name="ion-wand" unicode="&#xf358;" 
+d="M192 208l48 48l48 -48l-48 -48zM0 16l176 176l48 -48l-176 -176zM224 352v64h32v-64h-32zM398 344l-45 -45l-23 22l46 45zM127 299l-45 45l22 22l45 -45zM376 50l-46 45l23 23l45 -46zM384 192v32h64v-32h-64z" />
+    <glyph glyph-name="ion-waterdrop" unicode="&#xf25b;" horiz-adv-x="320" 
+d="M175 409c40 -41 145 -160 145 -288c0 -85 -72 -153 -160 -153c-56 0 -106 27 -134 69c-6 9 -11 19 -15 29c-7 17 -11 35 -11 55v4c1 67 31 131 64 183c20 31 42 57 59 77c9 10 16 18 22 24l1 1v0c4 3 8 6 14 6c5 0 10 -3 14 -6v0zM160 24c55 0 100 45 100 100
+c0 14 -3 28 -8 40c-17 -65 -70 -116 -136 -130c13 -6 28 -10 44 -10z" />
+    <glyph glyph-name="ion-wifi" unicode="&#xf25c;" 
+d="M224 352c80 0 156 -30 214 -84l10 -10l-10 -9l-32 -32l-10 -10l-9 9c-44 41 -103 64 -163 64s-119 -23 -163 -64l-9 -9l-10 10l-32 32l-10 9l10 10c58 54 134 84 214 84v0zM365 192l11 -10l-10 -10l-33 -32l-9 -9l-10 8c-25 22 -57 35 -90 35s-65 -13 -90 -35l-10 -8
+l-9 9l-33 32l-10 10l11 10c37 33 83 52 132 54v0h9v0v0c52 0 102 -19 141 -54zM224 32l-10 10l-52 52l-11 10l12 10c17 11 32 20 61 20s47 -9 62 -20l11 -10l-10 -10l-53 -52z" />
+    <glyph glyph-name="ion-wineglass" unicode="&#xf2b9;" horiz-adv-x="256" 
+d="M167 153c-11 -4 -24 -8 -24 -32v-94c0 -11 4 -19 12 -25c3 -2 7 -4 15 -6c32 -9 48 -16 50 -18c2 -1 4 -3 4 -7c0 0 -14 -3 -96 -3s-96 3 -96 3c0 4 2 6 4 7c2 2 18 9 50 18c8 2 11 4 14 6c8 6 11 14 11 25v94c0 24 -11 28 -22 32s-18 6 -26 11c-12 7 -23 16 -32 26
+c-20 23 -31 52 -31 87c0 50 4 100 8 114s14 25 31 25h178c17 0 27 -11 31 -25s8 -65 8 -115c0 -35 -11 -63 -31 -86c-9 -10 -20 -19 -32 -26c-8 -5 -15 -7 -26 -11zM128 178c26 0 50 11 67 28l6 6c16 18 22 35 23 65s-2 83 -8 107h-177c-7 -35 -8 -80 -7 -108s7 -46 23 -64
+c2 -3 4 -6 7 -8c17 -16 41 -26 66 -26zM208 277c0 -10 -1 -20 -4 -29s-8 -18 -15 -25l-5 -5c-14 -14 -34 -23 -56 -23c-21 0 -41 8 -55 22l-6 6c-7 7 -12 16 -15 25s-3 15 -4 29c-1 9 0 34 1 53c1 10 2 19 3 22h153c1 -6 2 -14 2 -22c1 -21 1 -45 1 -53zM192 269v0v26
+c0 4 -4 8 -8 8s-8 -4 -8 -8v-26c0 -3 1 -6 3 -7c1 -1 3 -1 5 -1c4 0 8 3 8 8zM191 316c1 2 1 4 1 6s-2 4 -4 5s-4 1 -6 1s-4 -1 -5 -3s-1 -4 -1 -6s2 -4 4 -5s4 -1 6 -1s4 1 5 3z" />
+    <glyph glyph-name="ion-woman" unicode="&#xf25d;" horiz-adv-x="192" 
+d="M30 299c3 12 17 33 42 34h48c24 -1 38 -22 42 -34l29 -104c6 -23 -21 -32 -27 -10l-26 96h-9l46 -169h-43v-127c0 -23 -31 -23 -31 0v127h-10v-127c0 -23 -32 -23 -32 0v127h-42l45 169h-7l-27 -96c-7 -21 -33 -13 -27 10zM133 379c0 -21 -17 -37 -37 -37s-37 16 -37 37
+s17 37 37 37s37 -16 37 -37z" />
+    <glyph glyph-name="ion-wrench" unicode="&#xf2ba;" 
+d="M430 333c14 -14 19 -31 18 -44s-6 -39 -32 -65s-77 -42 -113 -24c-5 3 -13 5 -21 -3c-10 -9 -202 -215 -202 -215c-17 -19 -48 -18 -66 0s-19 49 0 66c0 0 207 194 215 202s5 16 3 22c-20 47 2 89 24 112c22 24 51 31 65 32c13 1 31 -5 44 -18l-57 -56l10 -56l55 -10z
+M59 5c6 6 6 17 0 23s-16 6 -22 0s-6 -17 0 -23s16 -6 22 0z" />
+    <glyph glyph-name="ion-xbox" unicode="&#xf30c;" 
+d="M95 200c-49 -72 -50 -139 -50 -143c-28 38 -45 84 -45 135c0 67 30 128 77 169l3 -1c51 -18 93 -68 93 -68s-38 -33 -78 -92zM448 192c0 -51 -17 -97 -45 -135c0 4 -1 71 -50 143c-40 59 -78 92 -78 92s42 50 93 68l3 1c47 -41 77 -102 77 -169zM169 367
+c-37 17 -65 12 -72 10c36 25 80 39 127 39s91 -14 127 -39c-7 2 -35 6 -72 -10c-29 -13 -55 -35 -55 -35s-26 22 -55 35zM327 155c40 -49 54 -85 62 -108l2 -5c-41 -46 -101 -74 -167 -74s-126 28 -167 74l1 5c8 23 23 59 63 108c46 57 103 94 103 94s57 -37 103 -94z" />
+  </font>
+</defs></svg>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.ttf b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.ttf
new file mode 100644
index 0000000..c4e4632
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.ttf
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.woff b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.woff
new file mode 100644
index 0000000..5f3a14e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/Ionicons/fonts/ionicons.woff
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/PACE/pace.min.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/PACE/pace.min.js
new file mode 100644
index 0000000..234f9b3
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/PACE/pace.min.js
@@ -0,0 +1,2 @@
+/*! pace 1.0.2 */
+(function(){var 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,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X=[].slice,Y={}.hasOwnProperty,Z=function(a,b){function c(){this.constructor=a}for(var d in b)Y.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},$=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};for(u={catchupTime:100,initialRate:.03,minTime:250,ghostTime:100,maxProgressPerFrame:20,easeFactor:1.25,startOnPageLoad:!0,restartOnPushState:!0,restartOnRequestAfter:500,target:"body",elements:{checkInterval:100,selectors:["body"]},eventLag:{minSamples:10,sampleCount:3,lagThreshold:3},ajax:{trackMethods:["GET"],trackWebSockets:!0,ignoreURLs:[]}},C=function(){var a;return null!=(a="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance.now():void 0)?a:+new Date},E=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame,t=window.cancelAnimationFrame||window.mozCancelAnimationFrame,null==E&&(E=function(a){return setTimeout(a,50)},t=function(a){return clearTimeout(a)}),G=function(a){var b,c;return b=C(),(c=function(){var d;return d=C()-b,d>=33?(b=C(),a(d,function(){return E(c)})):setTimeout(c,33-d)})()},F=function(){var a,b,c;return c=arguments[0],b=arguments[1],a=3<=arguments.length?X.call(arguments,2):[],"function"==typeof c[b]?c[b].apply(c,a):c[b]},v=function(){var a,b,c,d,e,f,g;for(b=arguments[0],d=2<=arguments.length?X.call(arguments,1):[],f=0,g=d.length;g>f;f++)if(c=d[f])for(a in c)Y.call(c,a)&&(e=c[a],null!=b[a]&&"object"==typeof b[a]&&null!=e&&"object"==typeof e?v(b[a],e):b[a]=e);return b},q=function(a){var b,c,d,e,f;for(c=b=0,e=0,f=a.length;f>e;e++)d=a[e],c+=Math.abs(d),b++;return c/b},x=function(a,b){var c,d,e;if(null==a&&(a="options"),null==b&&(b=!0),e=document.querySelector("[data-pace-"+a+"]")){if(c=e.getAttribute("data-pace-"+a),!b)return c;try{return JSON.parse(c)}catch(f){return d=f,"undefined"!=typeof console&&null!==console?console.error("Error parsing inline pace options",d):void 0}}},g=function(){function a(){}return a.prototype.on=function(a,b,c,d){var e;return null==d&&(d=!1),null==this.bindings&&(this.bindings={}),null==(e=this.bindings)[a]&&(e[a]=[]),this.bindings[a].push({handler:b,ctx:c,once:d})},a.prototype.once=function(a,b,c){return this.on(a,b,c,!0)},a.prototype.off=function(a,b){var c,d,e;if(null!=(null!=(d=this.bindings)?d[a]:void 0)){if(null==b)return delete this.bindings[a];for(c=0,e=[];c<this.bindings[a].length;)e.push(this.bindings[a][c].handler===b?this.bindings[a].splice(c,1):c++);return e}},a.prototype.trigger=function(){var a,b,c,d,e,f,g,h,i;if(c=arguments[0],a=2<=arguments.length?X.call(arguments,1):[],null!=(g=this.bindings)?g[c]:void 0){for(e=0,i=[];e<this.bindings[c].length;)h=this.bindings[c][e],d=h.handler,b=h.ctx,f=h.once,d.apply(null!=b?b:this,a),i.push(f?this.bindings[c].splice(e,1):e++);return i}},a}(),j=window.Pace||{},window.Pace=j,v(j,g.prototype),D=j.options=v({},u,window.paceOptions,x()),U=["ajax","document","eventLag","elements"],Q=0,S=U.length;S>Q;Q++)K=U[Q],D[K]===!0&&(D[K]=u[K]);i=function(a){function b(){return V=b.__super__.constructor.apply(this,arguments)}return Z(b,a),b}(Error),b=function(){function a(){this.progress=0}return a.prototype.getElement=function(){var a;if(null==this.el){if(a=document.querySelector(D.target),!a)throw new i;this.el=document.createElement("div"),this.el.className="pace pace-active",document.body.className=document.body.className.replace(/pace-done/g,""),document.body.className+=" pace-running",this.el.innerHTML='<div class="pace-progress">\n  <div class="pace-progress-inner"></div>\n</div>\n<div class="pace-activity"></div>',null!=a.firstChild?a.insertBefore(this.el,a.firstChild):a.appendChild(this.el)}return this.el},a.prototype.finish=function(){var a;return a=this.getElement(),a.className=a.className.replace("pace-active",""),a.className+=" pace-inactive",document.body.className=document.body.className.replace("pace-running",""),document.body.className+=" pace-done"},a.prototype.update=function(a){return this.progress=a,this.render()},a.prototype.destroy=function(){try{this.getElement().parentNode.removeChild(this.getElement())}catch(a){i=a}return this.el=void 0},a.prototype.render=function(){var a,b,c,d,e,f,g;if(null==document.querySelector(D.target))return!1;for(a=this.getElement(),d="translate3d("+this.progress+"%, 0, 0)",g=["webkitTransform","msTransform","transform"],e=0,f=g.length;f>e;e++)b=g[e],a.children[0].style[b]=d;return(!this.lastRenderedProgress||this.lastRenderedProgress|0!==this.progress|0)&&(a.children[0].setAttribute("data-progress-text",""+(0|this.progress)+"%"),this.progress>=100?c="99":(c=this.progress<10?"0":"",c+=0|this.progress),a.children[0].setAttribute("data-progress",""+c)),this.lastRenderedProgress=this.progress},a.prototype.done=function(){return this.progress>=100},a}(),h=function(){function a(){this.bindings={}}return a.prototype.trigger=function(a,b){var c,d,e,f,g;if(null!=this.bindings[a]){for(f=this.bindings[a],g=[],d=0,e=f.length;e>d;d++)c=f[d],g.push(c.call(this,b));return g}},a.prototype.on=function(a,b){var c;return null==(c=this.bindings)[a]&&(c[a]=[]),this.bindings[a].push(b)},a}(),P=window.XMLHttpRequest,O=window.XDomainRequest,N=window.WebSocket,w=function(a,b){var c,d,e;e=[];for(d in b.prototype)try{e.push(null==a[d]&&"function"!=typeof b[d]?"function"==typeof Object.defineProperty?Object.defineProperty(a,d,{get:function(){return b.prototype[d]},configurable:!0,enumerable:!0}):a[d]=b.prototype[d]:void 0)}catch(f){c=f}return e},A=[],j.ignore=function(){var a,b,c;return b=arguments[0],a=2<=arguments.length?X.call(arguments,1):[],A.unshift("ignore"),c=b.apply(null,a),A.shift(),c},j.track=function(){var a,b,c;return b=arguments[0],a=2<=arguments.length?X.call(arguments,1):[],A.unshift("track"),c=b.apply(null,a),A.shift(),c},J=function(a){var b;if(null==a&&(a="GET"),"track"===A[0])return"force";if(!A.length&&D.ajax){if("socket"===a&&D.ajax.trackWebSockets)return!0;if(b=a.toUpperCase(),$.call(D.ajax.trackMethods,b)>=0)return!0}return!1},k=function(a){function b(){var a,c=this;b.__super__.constructor.apply(this,arguments),a=function(a){var b;return b=a.open,a.open=function(d,e){return J(d)&&c.trigger("request",{type:d,url:e,request:a}),b.apply(a,arguments)}},window.XMLHttpRequest=function(b){var c;return c=new P(b),a(c),c};try{w(window.XMLHttpRequest,P)}catch(d){}if(null!=O){window.XDomainRequest=function(){var b;return b=new O,a(b),b};try{w(window.XDomainRequest,O)}catch(d){}}if(null!=N&&D.ajax.trackWebSockets){window.WebSocket=function(a,b){var d;return d=null!=b?new N(a,b):new N(a),J("socket")&&c.trigger("request",{type:"socket",url:a,protocols:b,request:d}),d};try{w(window.WebSocket,N)}catch(d){}}}return Z(b,a),b}(h),R=null,y=function(){return null==R&&(R=new k),R},I=function(a){var b,c,d,e;for(e=D.ajax.ignoreURLs,c=0,d=e.length;d>c;c++)if(b=e[c],"string"==typeof b){if(-1!==a.indexOf(b))return!0}else if(b.test(a))return!0;return!1},y().on("request",function(b){var c,d,e,f,g;return f=b.type,e=b.request,g=b.url,I(g)?void 0:j.running||D.restartOnRequestAfter===!1&&"force"!==J(f)?void 0:(d=arguments,c=D.restartOnRequestAfter||0,"boolean"==typeof c&&(c=0),setTimeout(function(){var b,c,g,h,i,k;if(b="socket"===f?e.readyState<2:0<(h=e.readyState)&&4>h){for(j.restart(),i=j.sources,k=[],c=0,g=i.length;g>c;c++){if(K=i[c],K instanceof a){K.watch.apply(K,d);break}k.push(void 0)}return k}},c))}),a=function(){function a(){var a=this;this.elements=[],y().on("request",function(){return a.watch.apply(a,arguments)})}return a.prototype.watch=function(a){var b,c,d,e;return d=a.type,b=a.request,e=a.url,I(e)?void 0:(c="socket"===d?new n(b):new o(b),this.elements.push(c))},a}(),o=function(){function a(a){var b,c,d,e,f,g,h=this;if(this.progress=0,null!=window.ProgressEvent)for(c=null,a.addEventListener("progress",function(a){return h.progress=a.lengthComputable?100*a.loaded/a.total:h.progress+(100-h.progress)/2},!1),g=["load","abort","timeout","error"],d=0,e=g.length;e>d;d++)b=g[d],a.addEventListener(b,function(){return h.progress=100},!1);else f=a.onreadystatechange,a.onreadystatechange=function(){var b;return 0===(b=a.readyState)||4===b?h.progress=100:3===a.readyState&&(h.progress=50),"function"==typeof f?f.apply(null,arguments):void 0}}return a}(),n=function(){function a(a){var b,c,d,e,f=this;for(this.progress=0,e=["error","open"],c=0,d=e.length;d>c;c++)b=e[c],a.addEventListener(b,function(){return f.progress=100},!1)}return a}(),d=function(){function a(a){var b,c,d,f;for(null==a&&(a={}),this.elements=[],null==a.selectors&&(a.selectors=[]),f=a.selectors,c=0,d=f.length;d>c;c++)b=f[c],this.elements.push(new e(b))}return a}(),e=function(){function a(a){this.selector=a,this.progress=0,this.check()}return a.prototype.check=function(){var a=this;return document.querySelector(this.selector)?this.done():setTimeout(function(){return a.check()},D.elements.checkInterval)},a.prototype.done=function(){return this.progress=100},a}(),c=function(){function a(){var a,b,c=this;this.progress=null!=(b=this.states[document.readyState])?b:100,a=document.onreadystatechange,document.onreadystatechange=function(){return null!=c.states[document.readyState]&&(c.progress=c.states[document.readyState]),"function"==typeof a?a.apply(null,arguments):void 0}}return a.prototype.states={loading:0,interactive:50,complete:100},a}(),f=function(){function a(){var a,b,c,d,e,f=this;this.progress=0,a=0,e=[],d=0,c=C(),b=setInterval(function(){var g;return g=C()-c-50,c=C(),e.push(g),e.length>D.eventLag.sampleCount&&e.shift(),a=q(e),++d>=D.eventLag.minSamples&&a<D.eventLag.lagThreshold?(f.progress=100,clearInterval(b)):f.progress=100*(3/(a+3))},50)}return a}(),m=function(){function a(a){this.source=a,this.last=this.sinceLastUpdate=0,this.rate=D.initialRate,this.catchup=0,this.progress=this.lastProgress=0,null!=this.source&&(this.progress=F(this.source,"progress"))}return a.prototype.tick=function(a,b){var c;return null==b&&(b=F(this.source,"progress")),b>=100&&(this.done=!0),b===this.last?this.sinceLastUpdate+=a:(this.sinceLastUpdate&&(this.rate=(b-this.last)/this.sinceLastUpdate),this.catchup=(b-this.progress)/D.catchupTime,this.sinceLastUpdate=0,this.last=b),b>this.progress&&(this.progress+=this.catchup*a),c=1-Math.pow(this.progress/100,D.easeFactor),this.progress+=c*this.rate*a,this.progress=Math.min(this.lastProgress+D.maxProgressPerFrame,this.progress),this.progress=Math.max(0,this.progress),this.progress=Math.min(100,this.progress),this.lastProgress=this.progress,this.progress},a}(),L=null,H=null,r=null,M=null,p=null,s=null,j.running=!1,z=function(){return D.restartOnPushState?j.restart():void 0},null!=window.history.pushState&&(T=window.history.pushState,window.history.pushState=function(){return z(),T.apply(window.history,arguments)}),null!=window.history.replaceState&&(W=window.history.replaceState,window.history.replaceState=function(){return z(),W.apply(window.history,arguments)}),l={ajax:a,elements:d,document:c,eventLag:f},(B=function(){var a,c,d,e,f,g,h,i;for(j.sources=L=[],g=["ajax","elements","document","eventLag"],c=0,e=g.length;e>c;c++)a=g[c],D[a]!==!1&&L.push(new l[a](D[a]));for(i=null!=(h=D.extraSources)?h:[],d=0,f=i.length;f>d;d++)K=i[d],L.push(new K(D));return j.bar=r=new b,H=[],M=new m})(),j.stop=function(){return j.trigger("stop"),j.running=!1,r.destroy(),s=!0,null!=p&&("function"==typeof t&&t(p),p=null),B()},j.restart=function(){return j.trigger("restart"),j.stop(),j.start()},j.go=function(){var a;return j.running=!0,r.render(),a=C(),s=!1,p=G(function(b,c){var d,e,f,g,h,i,k,l,n,o,p,q,t,u,v,w;for(l=100-r.progress,e=p=0,f=!0,i=q=0,u=L.length;u>q;i=++q)for(K=L[i],o=null!=H[i]?H[i]:H[i]=[],h=null!=(w=K.elements)?w:[K],k=t=0,v=h.length;v>t;k=++t)g=h[k],n=null!=o[k]?o[k]:o[k]=new m(g),f&=n.done,n.done||(e++,p+=n.tick(b));return d=p/e,r.update(M.tick(b,d)),r.done()||f||s?(r.update(100),j.trigger("done"),setTimeout(function(){return r.finish(),j.running=!1,j.trigger("hide")},Math.max(D.ghostTime,Math.max(D.minTime-(C()-a),0)))):c()})},j.start=function(a){v(D,a),j.running=!0;try{r.render()}catch(b){i=b}return document.querySelector(".pace")?(j.trigger("start"),j.go()):setTimeout(j.start,50)},"function"==typeof define&&define.amd?define(["pace"],function(){return j}):"object"==typeof exports?module.exports=j:D.startOnPageLoad&&j.start()}).call(this);
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/PACE/themes/blue/pace-theme-flash.css b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/PACE/themes/blue/pace-theme-flash.css
new file mode 100644
index 0000000..d9bca46
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/PACE/themes/blue/pace-theme-flash.css
@@ -0,0 +1,77 @@
+/* This is a compiled file, you should be editing the file in the templates directory */
+.pace {
+  -webkit-pointer-events: none;
+  pointer-events: none;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  user-select: none;
+}
+
+.pace-inactive {
+  display: none;
+}
+
+.pace .pace-progress {
+  background: #2299dd;
+  position: fixed;
+  z-index: 2000;
+  top: 0;
+  right: 100%;
+  width: 100%;
+  height: 2px;
+}
+
+.pace .pace-progress-inner {
+  display: block;
+  position: absolute;
+  right: 0px;
+  width: 100px;
+  height: 100%;
+  box-shadow: 0 0 10px #2299dd, 0 0 5px #2299dd;
+  opacity: 1.0;
+  -webkit-transform: rotate(3deg) translate(0px, -4px);
+  -moz-transform: rotate(3deg) translate(0px, -4px);
+  -ms-transform: rotate(3deg) translate(0px, -4px);
+  -o-transform: rotate(3deg) translate(0px, -4px);
+  transform: rotate(3deg) translate(0px, -4px);
+}
+
+.pace .pace-activity {
+  display: block;
+  position: fixed;
+  z-index: 2000;
+  top: 15px;
+  right: 15px;
+  width: 14px;
+  height: 14px;
+  border: solid 2px transparent;
+  border-top-color: #2299dd;
+  border-left-color: #2299dd;
+  border-radius: 10px;
+  -webkit-animation: pace-spinner 400ms linear infinite;
+  -moz-animation: pace-spinner 400ms linear infinite;
+  -ms-animation: pace-spinner 400ms linear infinite;
+  -o-animation: pace-spinner 400ms linear infinite;
+  animation: pace-spinner 400ms linear infinite;
+}
+
+@-webkit-keyframes pace-spinner {
+  0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
+  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); }
+}
+@-moz-keyframes pace-spinner {
+  0% { -moz-transform: rotate(0deg); transform: rotate(0deg); }
+  100% { -moz-transform: rotate(360deg); transform: rotate(360deg); }
+}
+@-o-keyframes pace-spinner {
+  0% { -o-transform: rotate(0deg); transform: rotate(0deg); }
+  100% { -o-transform: rotate(360deg); transform: rotate(360deg); }
+}
+@-ms-keyframes pace-spinner {
+  0% { -ms-transform: rotate(0deg); transform: rotate(0deg); }
+  100% { -ms-transform: rotate(360deg); transform: rotate(360deg); }
+}
+@keyframes pace-spinner {
+  0% { transform: rotate(0deg); transform: rotate(0deg); }
+  100% { transform: rotate(360deg); transform: rotate(360deg); }
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.css b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.css
new file mode 100644
index 0000000..86f4b77
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.css
@@ -0,0 +1,269 @@
+.daterangepicker {
+  position: absolute;
+  color: inherit;
+  background-color: #fff;
+  border-radius: 4px;
+  width: 278px;
+  padding: 4px;
+  margin-top: 1px;
+  top: 100px;
+  left: 20px;
+  /* Calendars */ }
+  .daterangepicker:before, .daterangepicker:after {
+    position: absolute;
+    display: inline-block;
+    border-bottom-color: rgba(0, 0, 0, 0.2);
+    content: ''; }
+  .daterangepicker:before {
+    top: -7px;
+    border-right: 7px solid transparent;
+    border-left: 7px solid transparent;
+    border-bottom: 7px solid #ccc; }
+  .daterangepicker:after {
+    top: -6px;
+    border-right: 6px solid transparent;
+    border-bottom: 6px solid #fff;
+    border-left: 6px solid transparent; }
+  .daterangepicker.opensleft:before {
+    right: 9px; }
+  .daterangepicker.opensleft:after {
+    right: 10px; }
+  .daterangepicker.openscenter:before {
+    left: 0;
+    right: 0;
+    width: 0;
+    margin-left: auto;
+    margin-right: auto; }
+  .daterangepicker.openscenter:after {
+    left: 0;
+    right: 0;
+    width: 0;
+    margin-left: auto;
+    margin-right: auto; }
+  .daterangepicker.opensright:before {
+    left: 9px; }
+  .daterangepicker.opensright:after {
+    left: 10px; }
+  .daterangepicker.dropup {
+    margin-top: -5px; }
+    .daterangepicker.dropup:before {
+      top: initial;
+      bottom: -7px;
+      border-bottom: initial;
+      border-top: 7px solid #ccc; }
+    .daterangepicker.dropup:after {
+      top: initial;
+      bottom: -6px;
+      border-bottom: initial;
+      border-top: 6px solid #fff; }
+  .daterangepicker.dropdown-menu {
+    max-width: none;
+    z-index: 3001; }
+  .daterangepicker.single .ranges, .daterangepicker.single .calendar {
+    float: none; }
+  .daterangepicker.show-calendar .calendar {
+    display: block; }
+  .daterangepicker .calendar {
+    display: none;
+    max-width: 270px;
+    margin: 4px; }
+    .daterangepicker .calendar.single .calendar-table {
+      border: none; }
+    .daterangepicker .calendar th, .daterangepicker .calendar td {
+      white-space: nowrap;
+      text-align: center;
+      min-width: 32px; }
+  .daterangepicker .calendar-table {
+    border: 1px solid #fff;
+    padding: 4px;
+    border-radius: 4px;
+    background-color: #fff; }
+  .daterangepicker table {
+    width: 100%;
+    margin: 0; }
+  .daterangepicker td, .daterangepicker th {
+    text-align: center;
+    width: 20px;
+    height: 20px;
+    border-radius: 4px;
+    border: 1px solid transparent;
+    white-space: nowrap;
+    cursor: pointer; }
+    .daterangepicker td.available:hover, .daterangepicker th.available:hover {
+      background-color: #eee;
+      border-color: transparent;
+      color: inherit; }
+    .daterangepicker td.week, .daterangepicker th.week {
+      font-size: 80%;
+      color: #ccc; }
+  .daterangepicker td.off, .daterangepicker td.off.in-range, .daterangepicker td.off.start-date, .daterangepicker td.off.end-date {
+    background-color: #fff;
+    border-color: transparent;
+    color: #999; }
+  .daterangepicker td.in-range {
+    background-color: #ebf4f8;
+    border-color: transparent;
+    color: #000;
+    border-radius: 0; }
+  .daterangepicker td.start-date {
+    border-radius: 4px 0 0 4px; }
+  .daterangepicker td.end-date {
+    border-radius: 0 4px 4px 0; }
+  .daterangepicker td.start-date.end-date {
+    border-radius: 4px; }
+  .daterangepicker td.active, .daterangepicker td.active:hover {
+    background-color: #357ebd;
+    border-color: transparent;
+    color: #fff; }
+  .daterangepicker th.month {
+    width: auto; }
+  .daterangepicker td.disabled, .daterangepicker option.disabled {
+    color: #999;
+    cursor: not-allowed;
+    text-decoration: line-through; }
+  .daterangepicker select.monthselect, .daterangepicker select.yearselect {
+    font-size: 12px;
+    padding: 1px;
+    height: auto;
+    margin: 0;
+    cursor: default; }
+  .daterangepicker select.monthselect {
+    margin-right: 2%;
+    width: 56%; }
+  .daterangepicker select.yearselect {
+    width: 40%; }
+  .daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect {
+    width: 50px;
+    margin-bottom: 0; }
+  .daterangepicker .input-mini {
+    border: 1px solid #ccc;
+    border-radius: 4px;
+    color: #555;
+    height: 30px;
+    line-height: 30px;
+    display: block;
+    vertical-align: middle;
+    margin: 0 0 5px 0;
+    padding: 0 6px 0 28px;
+    width: 100%; }
+    .daterangepicker .input-mini.active {
+      border: 1px solid #08c;
+      border-radius: 4px; }
+  .daterangepicker .daterangepicker_input {
+    position: relative; }
+    .daterangepicker .daterangepicker_input i {
+      position: absolute;
+      left: 8px;
+      top: 8px; }
+  .daterangepicker.rtl .input-mini {
+    padding-right: 28px;
+    padding-left: 6px; }
+  .daterangepicker.rtl .daterangepicker_input i {
+    left: auto;
+    right: 8px; }
+  .daterangepicker .calendar-time {
+    text-align: center;
+    margin: 5px auto;
+    line-height: 30px;
+    position: relative;
+    padding-left: 28px; }
+    .daterangepicker .calendar-time select.disabled {
+      color: #ccc;
+      cursor: not-allowed; }
+
+.ranges {
+  font-size: 11px;
+  float: none;
+  margin: 4px;
+  text-align: left; }
+  .ranges ul {
+    list-style: none;
+    margin: 0 auto;
+    padding: 0;
+    width: 100%; }
+  .ranges li {
+    font-size: 13px;
+    background-color: #f5f5f5;
+    border: 1px solid #f5f5f5;
+    border-radius: 4px;
+    color: #08c;
+    padding: 3px 12px;
+    margin-bottom: 8px;
+    cursor: pointer; }
+    .ranges li:hover {
+      background-color: #08c;
+      border: 1px solid #08c;
+      color: #fff; }
+    .ranges li.active {
+      background-color: #08c;
+      border: 1px solid #08c;
+      color: #fff; }
+
+/*  Larger Screen Styling */
+@media (min-width: 564px) {
+  .daterangepicker {
+    width: auto; }
+    .daterangepicker .ranges ul {
+      width: 160px; }
+    .daterangepicker.single .ranges ul {
+      width: 100%; }
+    .daterangepicker.single .calendar.left {
+      clear: none; }
+    .daterangepicker.single.ltr .ranges, .daterangepicker.single.ltr .calendar {
+      float: left; }
+    .daterangepicker.single.rtl .ranges, .daterangepicker.single.rtl .calendar {
+      float: right; }
+    .daterangepicker.ltr {
+      direction: ltr;
+      text-align: left; }
+      .daterangepicker.ltr .calendar.left {
+        clear: left;
+        margin-right: 0; }
+        .daterangepicker.ltr .calendar.left .calendar-table {
+          border-right: none;
+          border-top-right-radius: 0;
+          border-bottom-right-radius: 0; }
+      .daterangepicker.ltr .calendar.right {
+        margin-left: 0; }
+        .daterangepicker.ltr .calendar.right .calendar-table {
+          border-left: none;
+          border-top-left-radius: 0;
+          border-bottom-left-radius: 0; }
+      .daterangepicker.ltr .left .daterangepicker_input {
+        padding-right: 12px; }
+      .daterangepicker.ltr .calendar.left .calendar-table {
+        padding-right: 12px; }
+      .daterangepicker.ltr .ranges, .daterangepicker.ltr .calendar {
+        float: left; }
+    .daterangepicker.rtl {
+      direction: rtl;
+      text-align: right; }
+      .daterangepicker.rtl .calendar.left {
+        clear: right;
+        margin-left: 0; }
+        .daterangepicker.rtl .calendar.left .calendar-table {
+          border-left: none;
+          border-top-left-radius: 0;
+          border-bottom-left-radius: 0; }
+      .daterangepicker.rtl .calendar.right {
+        margin-right: 0; }
+        .daterangepicker.rtl .calendar.right .calendar-table {
+          border-right: none;
+          border-top-right-radius: 0;
+          border-bottom-right-radius: 0; }
+      .daterangepicker.rtl .left .daterangepicker_input {
+        padding-left: 12px; }
+      .daterangepicker.rtl .calendar.left .calendar-table {
+        padding-left: 12px; }
+      .daterangepicker.rtl .ranges, .daterangepicker.rtl .calendar {
+        text-align: right;
+        float: right; } }
+@media (min-width: 730px) {
+  .daterangepicker .ranges {
+    width: auto; }
+  .daterangepicker.ltr .ranges {
+    float: left; }
+  .daterangepicker.rtl .ranges {
+    float: right; }
+  .daterangepicker .calendar.left {
+    clear: none !important; } }
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.js
new file mode 100644
index 0000000..079cde6
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.js
@@ -0,0 +1,1653 @@
+/**
+* @version: 2.1.27
+* @author: Dan Grossman http://www.dangrossman.info/
+* @copyright: Copyright (c) 2012-2017 Dan Grossman. All rights reserved.
+* @license: Licensed under the MIT license. See http://www.opensource.org/licenses/mit-license.php
+* @website: http://www.daterangepicker.com/
+*/
+// Follow the UMD template https://github.com/umdjs/umd/blob/master/templates/returnExportsGlobal.js
+(function (root, factory) {
+    if (typeof define === 'function' && define.amd) {
+        // AMD. Make globaly available as well
+        define(['moment', 'jquery'], function (moment, jquery) {
+            if (!jquery.fn) jquery.fn = {}; // webpack server rendering
+            return factory(moment, jquery);
+        });
+    } else if (typeof module === 'object' && module.exports) {
+        // Node / Browserify
+        //isomorphic issue
+        var jQuery = (typeof window != 'undefined') ? window.jQuery : undefined;
+        if (!jQuery) {
+            jQuery = require('jquery');
+            if (!jQuery.fn) jQuery.fn = {};
+        }
+        var moment = (typeof window != 'undefined' && typeof window.moment != 'undefined') ? window.moment : require('moment');
+        module.exports = factory(moment, jQuery);
+    } else {
+        // Browser globals
+        root.daterangepicker = factory(root.moment, root.jQuery);
+    }
+}(this, function(moment, $) {
+    var DateRangePicker = function(element, options, cb) {
+
+        //default settings for options
+        this.parentEl = 'body';
+        this.element = $(element);
+        this.startDate = moment().startOf('day');
+        this.endDate = moment().endOf('day');
+        this.minDate = false;
+        this.maxDate = false;
+        this.dateLimit = false;
+        this.autoApply = false;
+        this.singleDatePicker = false;
+        this.showDropdowns = false;
+        this.showWeekNumbers = false;
+        this.showISOWeekNumbers = false;
+        this.showCustomRangeLabel = true;
+        this.timePicker = false;
+        this.timePicker24Hour = false;
+        this.timePickerIncrement = 1;
+        this.timePickerSeconds = false;
+        this.linkedCalendars = true;
+        this.autoUpdateInput = true;
+        this.alwaysShowCalendars = false;
+        this.ranges = {};
+
+        this.opens = 'right';
+        if (this.element.hasClass('pull-right'))
+            this.opens = 'left';
+
+        this.drops = 'down';
+        if (this.element.hasClass('dropup'))
+            this.drops = 'up';
+
+        this.buttonClasses = 'btn btn-sm';
+        this.applyClass = 'btn-success';
+        this.cancelClass = 'btn-default';
+
+        this.locale = {
+            direction: 'ltr',
+            format: moment.localeData().longDateFormat('L'),
+            separator: ' - ',
+            applyLabel: 'Apply',
+            cancelLabel: 'Cancel',
+            weekLabel: 'W',
+            customRangeLabel: 'Custom Range',
+            daysOfWeek: moment.weekdaysMin(),
+            monthNames: moment.monthsShort(),
+            firstDay: moment.localeData().firstDayOfWeek()
+        };
+
+        this.callback = function() { };
+
+        //some state information
+        this.isShowing = false;
+        this.leftCalendar = {};
+        this.rightCalendar = {};
+
+        //custom options from user
+        if (typeof options !== 'object' || options === null)
+            options = {};
+
+        //allow setting options with data attributes
+        //data-api options will be overwritten with custom javascript options
+        options = $.extend(this.element.data(), options);
+
+        //html template for the picker UI
+        if (typeof options.template !== 'string' && !(options.template instanceof $))
+            options.template = '<div class="daterangepicker dropdown-menu">' +
+                '<div class="calendar left">' +
+                    '<div class="daterangepicker_input">' +
+                      '<input class="input-mini form-control" type="text" name="daterangepicker_start" value="" />' +
+                      '<i class="fa fa-calendar glyphicon glyphicon-calendar"></i>' +
+                      '<div class="calendar-time">' +
+                        '<div></div>' +
+                        '<i class="fa fa-clock-o glyphicon glyphicon-time"></i>' +
+                      '</div>' +
+                    '</div>' +
+                    '<div class="calendar-table"></div>' +
+                '</div>' +
+                '<div class="calendar right">' +
+                    '<div class="daterangepicker_input">' +
+                      '<input class="input-mini form-control" type="text" name="daterangepicker_end" value="" />' +
+                      '<i class="fa fa-calendar glyphicon glyphicon-calendar"></i>' +
+                      '<div class="calendar-time">' +
+                        '<div></div>' +
+                        '<i class="fa fa-clock-o glyphicon glyphicon-time"></i>' +
+                      '</div>' +
+                    '</div>' +
+                    '<div class="calendar-table"></div>' +
+                '</div>' +
+                '<div class="ranges">' +
+                    '<div class="range_inputs">' +
+                        '<button class="applyBtn" disabled="disabled" type="button"></button> ' +
+                        '<button class="cancelBtn" type="button"></button>' +
+                    '</div>' +
+                '</div>' +
+            '</div>';
+
+        this.parentEl = (options.parentEl && $(options.parentEl).length) ? $(options.parentEl) : $(this.parentEl);
+        this.container = $(options.template).appendTo(this.parentEl);
+
+        //
+        // handle all the possible options overriding defaults
+        //
+
+        if (typeof options.locale === 'object') {
+
+            if (typeof options.locale.direction === 'string')
+                this.locale.direction = options.locale.direction;
+
+            if (typeof options.locale.format === 'string')
+                this.locale.format = options.locale.format;
+
+            if (typeof options.locale.separator === 'string')
+                this.locale.separator = options.locale.separator;
+
+            if (typeof options.locale.daysOfWeek === 'object')
+                this.locale.daysOfWeek = options.locale.daysOfWeek.slice();
+
+            if (typeof options.locale.monthNames === 'object')
+              this.locale.monthNames = options.locale.monthNames.slice();
+
+            if (typeof options.locale.firstDay === 'number')
+              this.locale.firstDay = options.locale.firstDay;
+
+            if (typeof options.locale.applyLabel === 'string')
+              this.locale.applyLabel = options.locale.applyLabel;
+
+            if (typeof options.locale.cancelLabel === 'string')
+              this.locale.cancelLabel = options.locale.cancelLabel;
+
+            if (typeof options.locale.weekLabel === 'string')
+              this.locale.weekLabel = options.locale.weekLabel;
+
+            if (typeof options.locale.customRangeLabel === 'string'){
+                //Support unicode chars in the custom range name.
+                var elem = document.createElement('textarea');
+                elem.innerHTML = options.locale.customRangeLabel;
+                var rangeHtml = elem.value;
+                this.locale.customRangeLabel = rangeHtml;
+            }
+        }
+        this.container.addClass(this.locale.direction);
+
+        if (typeof options.startDate === 'string')
+            this.startDate = moment(options.startDate, this.locale.format);
+
+        if (typeof options.endDate === 'string')
+            this.endDate = moment(options.endDate, this.locale.format);
+
+        if (typeof options.minDate === 'string')
+            this.minDate = moment(options.minDate, this.locale.format);
+
+        if (typeof options.maxDate === 'string')
+            this.maxDate = moment(options.maxDate, this.locale.format);
+
+        if (typeof options.startDate === 'object')
+            this.startDate = moment(options.startDate);
+
+        if (typeof options.endDate === 'object')
+            this.endDate = moment(options.endDate);
+
+        if (typeof options.minDate === 'object')
+            this.minDate = moment(options.minDate);
+
+        if (typeof options.maxDate === 'object')
+            this.maxDate = moment(options.maxDate);
+
+        // sanity check for bad options
+        if (this.minDate && this.startDate.isBefore(this.minDate))
+            this.startDate = this.minDate.clone();
+
+        // sanity check for bad options
+        if (this.maxDate && this.endDate.isAfter(this.maxDate))
+            this.endDate = this.maxDate.clone();
+
+        if (typeof options.applyClass === 'string')
+            this.applyClass = options.applyClass;
+
+        if (typeof options.cancelClass === 'string')
+            this.cancelClass = options.cancelClass;
+
+        if (typeof options.dateLimit === 'object')
+            this.dateLimit = options.dateLimit;
+
+        if (typeof options.opens === 'string')
+            this.opens = options.opens;
+
+        if (typeof options.drops === 'string')
+            this.drops = options.drops;
+
+        if (typeof options.showWeekNumbers === 'boolean')
+            this.showWeekNumbers = options.showWeekNumbers;
+
+        if (typeof options.showISOWeekNumbers === 'boolean')
+            this.showISOWeekNumbers = options.showISOWeekNumbers;
+
+        if (typeof options.buttonClasses === 'string')
+            this.buttonClasses = options.buttonClasses;
+
+        if (typeof options.buttonClasses === 'object')
+            this.buttonClasses = options.buttonClasses.join(' ');
+
+        if (typeof options.showDropdowns === 'boolean')
+            this.showDropdowns = options.showDropdowns;
+
+        if (typeof options.showCustomRangeLabel === 'boolean')
+            this.showCustomRangeLabel = options.showCustomRangeLabel;
+
+        if (typeof options.singleDatePicker === 'boolean') {
+            this.singleDatePicker = options.singleDatePicker;
+            if (this.singleDatePicker)
+                this.endDate = this.startDate.clone();
+        }
+
+        if (typeof options.timePicker === 'boolean')
+            this.timePicker = options.timePicker;
+
+        if (typeof options.timePickerSeconds === 'boolean')
+            this.timePickerSeconds = options.timePickerSeconds;
+
+        if (typeof options.timePickerIncrement === 'number')
+            this.timePickerIncrement = options.timePickerIncrement;
+
+        if (typeof options.timePicker24Hour === 'boolean')
+            this.timePicker24Hour = options.timePicker24Hour;
+
+        if (typeof options.autoApply === 'boolean')
+            this.autoApply = options.autoApply;
+
+        if (typeof options.autoUpdateInput === 'boolean')
+            this.autoUpdateInput = options.autoUpdateInput;
+
+        if (typeof options.linkedCalendars === 'boolean')
+            this.linkedCalendars = options.linkedCalendars;
+
+        if (typeof options.isInvalidDate === 'function')
+            this.isInvalidDate = options.isInvalidDate;
+
+        if (typeof options.isCustomDate === 'function')
+            this.isCustomDate = options.isCustomDate;
+
+        if (typeof options.alwaysShowCalendars === 'boolean')
+            this.alwaysShowCalendars = options.alwaysShowCalendars;
+
+        // update day names order to firstDay
+        if (this.locale.firstDay != 0) {
+            var iterator = this.locale.firstDay;
+            while (iterator > 0) {
+                this.locale.daysOfWeek.push(this.locale.daysOfWeek.shift());
+                iterator--;
+            }
+        }
+
+        var start, end, range;
+
+        //if no start/end dates set, check if an input element contains initial values
+        if (typeof options.startDate === 'undefined' && typeof options.endDate === 'undefined') {
+            if ($(this.element).is('input[type=text]')) {
+                var val = $(this.element).val(),
+                    split = val.split(this.locale.separator);
+
+                start = end = null;
+
+                if (split.length == 2) {
+                    start = moment(split[0], this.locale.format);
+                    end = moment(split[1], this.locale.format);
+                } else if (this.singleDatePicker && val !== "") {
+                    start = moment(val, this.locale.format);
+                    end = moment(val, this.locale.format);
+                }
+                if (start !== null && end !== null) {
+                    this.setStartDate(start);
+                    this.setEndDate(end);
+                }
+            }
+        }
+
+        if (typeof options.ranges === 'object') {
+            for (range in options.ranges) {
+
+                if (typeof options.ranges[range][0] === 'string')
+                    start = moment(options.ranges[range][0], this.locale.format);
+                else
+                    start = moment(options.ranges[range][0]);
+
+                if (typeof options.ranges[range][1] === 'string')
+                    end = moment(options.ranges[range][1], this.locale.format);
+                else
+                    end = moment(options.ranges[range][1]);
+
+                // If the start or end date exceed those allowed by the minDate or dateLimit
+                // options, shorten the range to the allowable period.
+                if (this.minDate && start.isBefore(this.minDate))
+                    start = this.minDate.clone();
+
+                var maxDate = this.maxDate;
+                if (this.dateLimit && maxDate && start.clone().add(this.dateLimit).isAfter(maxDate))
+                    maxDate = start.clone().add(this.dateLimit);
+                if (maxDate && end.isAfter(maxDate))
+                    end = maxDate.clone();
+
+                // If the end of the range is before the minimum or the start of the range is
+                // after the maximum, don't display this range option at all.
+                if ((this.minDate && end.isBefore(this.minDate, this.timepicker ? 'minute' : 'day')) 
+                  || (maxDate && start.isAfter(maxDate, this.timepicker ? 'minute' : 'day')))
+                    continue;
+
+                //Support unicode chars in the range names.
+                var elem = document.createElement('textarea');
+                elem.innerHTML = range;
+                var rangeHtml = elem.value;
+
+                this.ranges[rangeHtml] = [start, end];
+            }
+
+            var list = '<ul>';
+            for (range in this.ranges) {
+                list += '<li data-range-key="' + range + '">' + range + '</li>';
+            }
+            if (this.showCustomRangeLabel) {
+                list += '<li data-range-key="' + this.locale.customRangeLabel + '">' + this.locale.customRangeLabel + '</li>';
+            }
+            list += '</ul>';
+            this.container.find('.ranges').prepend(list);
+        }
+
+        if (typeof cb === 'function') {
+            this.callback = cb;
+        }
+
+        if (!this.timePicker) {
+            this.startDate = this.startDate.startOf('day');
+            this.endDate = this.endDate.endOf('day');
+            this.container.find('.calendar-time').hide();
+        }
+
+        //can't be used together for now
+        if (this.timePicker && this.autoApply)
+            this.autoApply = false;
+
+        if (this.autoApply && typeof options.ranges !== 'object') {
+            this.container.find('.ranges').hide();
+        } else if (this.autoApply) {
+            this.container.find('.applyBtn, .cancelBtn').addClass('hide');
+        }
+
+        if (this.singleDatePicker) {
+            this.container.addClass('single');
+            this.container.find('.calendar.left').addClass('single');
+            this.container.find('.calendar.left').show();
+            this.container.find('.calendar.right').hide();
+            this.container.find('.daterangepicker_input input, .daterangepicker_input > i').hide();
+            if (this.timePicker) {
+                this.container.find('.ranges ul').hide();
+            } else {
+                this.container.find('.ranges').hide();
+            }
+        }
+
+        if ((typeof options.ranges === 'undefined' && !this.singleDatePicker) || this.alwaysShowCalendars) {
+            this.container.addClass('show-calendar');
+        }
+
+        this.container.addClass('opens' + this.opens);
+
+        //swap the position of the predefined ranges if opens right
+        if (typeof options.ranges !== 'undefined' && this.opens == 'right') {
+            this.container.find('.ranges').prependTo( this.container.find('.calendar.left').parent() );
+        }
+
+        //apply CSS classes and labels to buttons
+        this.container.find('.applyBtn, .cancelBtn').addClass(this.buttonClasses);
+        if (this.applyClass.length)
+            this.container.find('.applyBtn').addClass(this.applyClass);
+        if (this.cancelClass.length)
+            this.container.find('.cancelBtn').addClass(this.cancelClass);
+        this.container.find('.applyBtn').html(this.locale.applyLabel);
+        this.container.find('.cancelBtn').html(this.locale.cancelLabel);
+
+        //
+        // event listeners
+        //
+
+        this.container.find('.calendar')
+            .on('click.daterangepicker', '.prev', $.proxy(this.clickPrev, this))
+            .on('click.daterangepicker', '.next', $.proxy(this.clickNext, this))
+            .on('mousedown.daterangepicker', 'td.available', $.proxy(this.clickDate, this))
+            .on('mouseenter.daterangepicker', 'td.available', $.proxy(this.hoverDate, this))
+            .on('mouseleave.daterangepicker', 'td.available', $.proxy(this.updateFormInputs, this))
+            .on('change.daterangepicker', 'select.yearselect', $.proxy(this.monthOrYearChanged, this))
+            .on('change.daterangepicker', 'select.monthselect', $.proxy(this.monthOrYearChanged, this))
+            .on('change.daterangepicker', 'select.hourselect,select.minuteselect,select.secondselect,select.ampmselect', $.proxy(this.timeChanged, this))
+            .on('click.daterangepicker', '.daterangepicker_input input', $.proxy(this.showCalendars, this))
+            .on('focus.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsFocused, this))
+            .on('blur.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsBlurred, this))
+            .on('change.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsChanged, this))
+            .on('keydown.daterangepicker', '.daterangepicker_input input', $.proxy(this.formInputsKeydown, this));
+
+        this.container.find('.ranges')
+            .on('click.daterangepicker', 'button.applyBtn', $.proxy(this.clickApply, this))
+            .on('click.daterangepicker', 'button.cancelBtn', $.proxy(this.clickCancel, this))
+            .on('click.daterangepicker', 'li', $.proxy(this.clickRange, this))
+            .on('mouseenter.daterangepicker', 'li', $.proxy(this.hoverRange, this))
+            .on('mouseleave.daterangepicker', 'li', $.proxy(this.updateFormInputs, this));
+
+        if (this.element.is('input') || this.element.is('button')) {
+            this.element.on({
+                'click.daterangepicker': $.proxy(this.show, this),
+                'focus.daterangepicker': $.proxy(this.show, this),
+                'keyup.daterangepicker': $.proxy(this.elementChanged, this),
+                'keydown.daterangepicker': $.proxy(this.keydown, this) //IE 11 compatibility
+            });
+        } else {
+            this.element.on('click.daterangepicker', $.proxy(this.toggle, this));
+            this.element.on('keydown.daterangepicker', $.proxy(this.toggle, this));
+        }
+
+        //
+        // if attached to a text input, set the initial value
+        //
+
+        if (this.element.is('input') && !this.singleDatePicker && this.autoUpdateInput) {
+            this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));
+            this.element.trigger('change');
+        } else if (this.element.is('input') && this.autoUpdateInput) {
+            this.element.val(this.startDate.format(this.locale.format));
+            this.element.trigger('change');
+        }
+
+    };
+
+    DateRangePicker.prototype = {
+
+        constructor: DateRangePicker,
+
+        setStartDate: function(startDate) {
+            if (typeof startDate === 'string')
+                this.startDate = moment(startDate, this.locale.format);
+
+            if (typeof startDate === 'object')
+                this.startDate = moment(startDate);
+
+            if (!this.timePicker)
+                this.startDate = this.startDate.startOf('day');
+
+            if (this.timePicker && this.timePickerIncrement)
+                this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);
+
+            if (this.minDate && this.startDate.isBefore(this.minDate)) {
+                this.startDate = this.minDate.clone();
+                if (this.timePicker && this.timePickerIncrement)
+                    this.startDate.minute(Math.round(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);
+            }
+
+            if (this.maxDate && this.startDate.isAfter(this.maxDate)) {
+                this.startDate = this.maxDate.clone();
+                if (this.timePicker && this.timePickerIncrement)
+                    this.startDate.minute(Math.floor(this.startDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);
+            }
+
+            if (!this.isShowing)
+                this.updateElement();
+
+            this.updateMonthsInView();
+        },
+
+        setEndDate: function(endDate) {
+            if (typeof endDate === 'string')
+                this.endDate = moment(endDate, this.locale.format);
+
+            if (typeof endDate === 'object')
+                this.endDate = moment(endDate);
+
+            if (!this.timePicker)
+                this.endDate = this.endDate.add(1,'d').startOf('day').subtract(1,'second');
+
+            if (this.timePicker && this.timePickerIncrement)
+                this.endDate.minute(Math.round(this.endDate.minute() / this.timePickerIncrement) * this.timePickerIncrement);
+
+            if (this.endDate.isBefore(this.startDate))
+                this.endDate = this.startDate.clone();
+
+            if (this.maxDate && this.endDate.isAfter(this.maxDate))
+                this.endDate = this.maxDate.clone();
+
+            if (this.dateLimit && this.startDate.clone().add(this.dateLimit).isBefore(this.endDate))
+                this.endDate = this.startDate.clone().add(this.dateLimit);
+
+            this.previousRightTime = this.endDate.clone();
+
+            if (!this.isShowing)
+                this.updateElement();
+
+            this.updateMonthsInView();
+        },
+
+        isInvalidDate: function() {
+            return false;
+        },
+
+        isCustomDate: function() {
+            return false;
+        },
+
+        updateView: function() {
+            if (this.timePicker) {
+                this.renderTimePicker('left');
+                this.renderTimePicker('right');
+                if (!this.endDate) {
+                    this.container.find('.right .calendar-time select').attr('disabled', 'disabled').addClass('disabled');
+                } else {
+                    this.container.find('.right .calendar-time select').removeAttr('disabled').removeClass('disabled');
+                }
+            }
+            if (this.endDate) {
+                this.container.find('input[name="daterangepicker_end"]').removeClass('active');
+                this.container.find('input[name="daterangepicker_start"]').addClass('active');
+            } else {
+                this.container.find('input[name="daterangepicker_end"]').addClass('active');
+                this.container.find('input[name="daterangepicker_start"]').removeClass('active');
+            }
+            this.updateMonthsInView();
+            this.updateCalendars();
+            this.updateFormInputs();
+        },
+
+        updateMonthsInView: function() {
+            if (this.endDate) {
+
+                //if both dates are visible already, do nothing
+                if (!this.singleDatePicker && this.leftCalendar.month && this.rightCalendar.month &&
+                    (this.startDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.startDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))
+                    &&
+                    (this.endDate.format('YYYY-MM') == this.leftCalendar.month.format('YYYY-MM') || this.endDate.format('YYYY-MM') == this.rightCalendar.month.format('YYYY-MM'))
+                    ) {
+                    return;
+                }
+
+                this.leftCalendar.month = this.startDate.clone().date(2);
+                if (!this.linkedCalendars && (this.endDate.month() != this.startDate.month() || this.endDate.year() != this.startDate.year())) {
+                    this.rightCalendar.month = this.endDate.clone().date(2);
+                } else {
+                    this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');
+                }
+
+            } else {
+                if (this.leftCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM') && this.rightCalendar.month.format('YYYY-MM') != this.startDate.format('YYYY-MM')) {
+                    this.leftCalendar.month = this.startDate.clone().date(2);
+                    this.rightCalendar.month = this.startDate.clone().date(2).add(1, 'month');
+                }
+            }
+            if (this.maxDate && this.linkedCalendars && !this.singleDatePicker && this.rightCalendar.month > this.maxDate) {
+              this.rightCalendar.month = this.maxDate.clone().date(2);
+              this.leftCalendar.month = this.maxDate.clone().date(2).subtract(1, 'month');
+            }
+        },
+
+        updateCalendars: function() {
+
+            if (this.timePicker) {
+                var hour, minute, second;
+                if (this.endDate) {
+                    hour = parseInt(this.container.find('.left .hourselect').val(), 10);
+                    minute = parseInt(this.container.find('.left .minuteselect').val(), 10);
+                    second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;
+                    if (!this.timePicker24Hour) {
+                        var ampm = this.container.find('.left .ampmselect').val();
+                        if (ampm === 'PM' && hour < 12)
+                            hour += 12;
+                        if (ampm === 'AM' && hour === 12)
+                            hour = 0;
+                    }
+                } else {
+                    hour = parseInt(this.container.find('.right .hourselect').val(), 10);
+                    minute = parseInt(this.container.find('.right .minuteselect').val(), 10);
+                    second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;
+                    if (!this.timePicker24Hour) {
+                        var ampm = this.container.find('.right .ampmselect').val();
+                        if (ampm === 'PM' && hour < 12)
+                            hour += 12;
+                        if (ampm === 'AM' && hour === 12)
+                            hour = 0;
+                    }
+                }
+                this.leftCalendar.month.hour(hour).minute(minute).second(second);
+                this.rightCalendar.month.hour(hour).minute(minute).second(second);
+            }
+
+            this.renderCalendar('left');
+            this.renderCalendar('right');
+
+            //highlight any predefined range matching the current start and end dates
+            this.container.find('.ranges li').removeClass('active');
+            if (this.endDate == null) return;
+
+            this.calculateChosenLabel();
+        },
+
+        renderCalendar: function(side) {
+
+            //
+            // Build the matrix of dates that will populate the calendar
+            //
+
+            var calendar = side == 'left' ? this.leftCalendar : this.rightCalendar;
+            var month = calendar.month.month();
+            var year = calendar.month.year();
+            var hour = calendar.month.hour();
+            var minute = calendar.month.minute();
+            var second = calendar.month.second();
+            var daysInMonth = moment([year, month]).daysInMonth();
+            var firstDay = moment([year, month, 1]);
+            var lastDay = moment([year, month, daysInMonth]);
+            var lastMonth = moment(firstDay).subtract(1, 'month').month();
+            var lastYear = moment(firstDay).subtract(1, 'month').year();
+            var daysInLastMonth = moment([lastYear, lastMonth]).daysInMonth();
+            var dayOfWeek = firstDay.day();
+
+            //initialize a 6 rows x 7 columns array for the calendar
+            var calendar = [];
+            calendar.firstDay = firstDay;
+            calendar.lastDay = lastDay;
+
+            for (var i = 0; i < 6; i++) {
+                calendar[i] = [];
+            }
+
+            //populate the calendar with date objects
+            var startDay = daysInLastMonth - dayOfWeek + this.locale.firstDay + 1;
+            if (startDay > daysInLastMonth)
+                startDay -= 7;
+
+            if (dayOfWeek == this.locale.firstDay)
+                startDay = daysInLastMonth - 6;
+
+            var curDate = moment([lastYear, lastMonth, startDay, 12, minute, second]);
+
+            var col, row;
+            for (var i = 0, col = 0, row = 0; i < 42; i++, col++, curDate = moment(curDate).add(24, 'hour')) {
+                if (i > 0 && col % 7 === 0) {
+                    col = 0;
+                    row++;
+                }
+                calendar[row][col] = curDate.clone().hour(hour).minute(minute).second(second);
+                curDate.hour(12);
+
+                if (this.minDate && calendar[row][col].format('YYYY-MM-DD') == this.minDate.format('YYYY-MM-DD') && calendar[row][col].isBefore(this.minDate) && side == 'left') {
+                    calendar[row][col] = this.minDate.clone();
+                }
+
+                if (this.maxDate && calendar[row][col].format('YYYY-MM-DD') == this.maxDate.format('YYYY-MM-DD') && calendar[row][col].isAfter(this.maxDate) && side == 'right') {
+                    calendar[row][col] = this.maxDate.clone();
+                }
+
+            }
+
+            //make the calendar object available to hoverDate/clickDate
+            if (side == 'left') {
+                this.leftCalendar.calendar = calendar;
+            } else {
+                this.rightCalendar.calendar = calendar;
+            }
+
+            //
+            // Display the calendar
+            //
+
+            var minDate = side == 'left' ? this.minDate : this.startDate;
+            var maxDate = this.maxDate;
+            var selected = side == 'left' ? this.startDate : this.endDate;
+            var arrow = this.locale.direction == 'ltr' ? {left: 'chevron-left', right: 'chevron-right'} : {left: 'chevron-right', right: 'chevron-left'};
+
+            var html = '<table class="table-condensed">';
+            html += '<thead>';
+            html += '<tr>';
+
+            // add empty cell for week number
+            if (this.showWeekNumbers || this.showISOWeekNumbers)
+                html += '<th></th>';
+
+            if ((!minDate || minDate.isBefore(calendar.firstDay)) && (!this.linkedCalendars || side == 'left')) {
+                html += '<th class="prev available"><i class="fa fa-' + arrow.left + ' glyphicon glyphicon-' + arrow.left + '"></i></th>';
+            } else {
+                html += '<th></th>';
+            }
+
+            var dateHtml = this.locale.monthNames[calendar[1][1].month()] + calendar[1][1].format(" YYYY");
+
+            if (this.showDropdowns) {
+                var currentMonth = calendar[1][1].month();
+                var currentYear = calendar[1][1].year();
+                var maxYear = (maxDate && maxDate.year()) || (currentYear + 5);
+                var minYear = (minDate && minDate.year()) || (currentYear - 50);
+                var inMinYear = currentYear == minYear;
+                var inMaxYear = currentYear == maxYear;
+
+                var monthHtml = '<select class="monthselect">';
+                for (var m = 0; m < 12; m++) {
+                    if ((!inMinYear || m >= minDate.month()) && (!inMaxYear || m <= maxDate.month())) {
+                        monthHtml += "<option value='" + m + "'" +
+                            (m === currentMonth ? " selected='selected'" : "") +
+                            ">" + this.locale.monthNames[m] + "</option>";
+                    } else {
+                        monthHtml += "<option value='" + m + "'" +
+                            (m === currentMonth ? " selected='selected'" : "") +
+                            " disabled='disabled'>" + this.locale.monthNames[m] + "</option>";
+                    }
+                }
+                monthHtml += "</select>";
+
+                var yearHtml = '<select class="yearselect">';
+                for (var y = minYear; y <= maxYear; y++) {
+                    yearHtml += '<option value="' + y + '"' +
+                        (y === currentYear ? ' selected="selected"' : '') +
+                        '>' + y + '</option>';
+                }
+                yearHtml += '</select>';
+
+                dateHtml = monthHtml + yearHtml;
+            }
+
+            html += '<th colspan="5" class="month">' + dateHtml + '</th>';
+            if ((!maxDate || maxDate.isAfter(calendar.lastDay)) && (!this.linkedCalendars || side == 'right' || this.singleDatePicker)) {
+                html += '<th class="next available"><i class="fa fa-' + arrow.right + ' glyphicon glyphicon-' + arrow.right + '"></i></th>';
+            } else {
+                html += '<th></th>';
+            }
+
+            html += '</tr>';
+            html += '<tr>';
+
+            // add week number label
+            if (this.showWeekNumbers || this.showISOWeekNumbers)
+                html += '<th class="week">' + this.locale.weekLabel + '</th>';
+
+            $.each(this.locale.daysOfWeek, function(index, dayOfWeek) {
+                html += '<th>' + dayOfWeek + '</th>';
+            });
+
+            html += '</tr>';
+            html += '</thead>';
+            html += '<tbody>';
+
+            //adjust maxDate to reflect the dateLimit setting in order to
+            //grey out end dates beyond the dateLimit
+            if (this.endDate == null && this.dateLimit) {
+                var maxLimit = this.startDate.clone().add(this.dateLimit).endOf('day');
+                if (!maxDate || maxLimit.isBefore(maxDate)) {
+                    maxDate = maxLimit;
+                }
+            }
+
+            for (var row = 0; row < 6; row++) {
+                html += '<tr>';
+
+                // add week number
+                if (this.showWeekNumbers)
+                    html += '<td class="week">' + calendar[row][0].week() + '</td>';
+                else if (this.showISOWeekNumbers)
+                    html += '<td class="week">' + calendar[row][0].isoWeek() + '</td>';
+
+                for (var col = 0; col < 7; col++) {
+
+                    var classes = [];
+
+                    //highlight today's date
+                    if (calendar[row][col].isSame(new Date(), "day"))
+                        classes.push('today');
+
+                    //highlight weekends
+                    if (calendar[row][col].isoWeekday() > 5)
+                        classes.push('weekend');
+
+                    //grey out the dates in other months displayed at beginning and end of this calendar
+                    if (calendar[row][col].month() != calendar[1][1].month())
+                        classes.push('off');
+
+                    //don't allow selection of dates before the minimum date
+                    if (this.minDate && calendar[row][col].isBefore(this.minDate, 'day'))
+                        classes.push('off', 'disabled');
+
+                    //don't allow selection of dates after the maximum date
+                    if (maxDate && calendar[row][col].isAfter(maxDate, 'day'))
+                        classes.push('off', 'disabled');
+
+                    //don't allow selection of date if a custom function decides it's invalid
+                    if (this.isInvalidDate(calendar[row][col]))
+                        classes.push('off', 'disabled');
+
+                    //highlight the currently selected start date
+                    if (calendar[row][col].format('YYYY-MM-DD') == this.startDate.format('YYYY-MM-DD'))
+                        classes.push('active', 'start-date');
+
+                    //highlight the currently selected end date
+                    if (this.endDate != null && calendar[row][col].format('YYYY-MM-DD') == this.endDate.format('YYYY-MM-DD'))
+                        classes.push('active', 'end-date');
+
+                    //highlight dates in-between the selected dates
+                    if (this.endDate != null && calendar[row][col] > this.startDate && calendar[row][col] < this.endDate)
+                        classes.push('in-range');
+
+                    //apply custom classes for this date
+                    var isCustom = this.isCustomDate(calendar[row][col]);
+                    if (isCustom !== false) {
+                        if (typeof isCustom === 'string')
+                            classes.push(isCustom);
+                        else
+                            Array.prototype.push.apply(classes, isCustom);
+                    }
+
+                    var cname = '', disabled = false;
+                    for (var i = 0; i < classes.length; i++) {
+                        cname += classes[i] + ' ';
+                        if (classes[i] == 'disabled')
+                            disabled = true;
+                    }
+                    if (!disabled)
+                        cname += 'available';
+
+                    html += '<td class="' + cname.replace(/^\s+|\s+$/g, '') + '" data-title="' + 'r' + row + 'c' + col + '">' + calendar[row][col].date() + '</td>';
+
+                }
+                html += '</tr>';
+            }
+
+            html += '</tbody>';
+            html += '</table>';
+
+            this.container.find('.calendar.' + side + ' .calendar-table').html(html);
+
+        },
+
+        renderTimePicker: function(side) {
+
+            // Don't bother updating the time picker if it's currently disabled
+            // because an end date hasn't been clicked yet
+            if (side == 'right' && !this.endDate) return;
+
+            var html, selected, minDate, maxDate = this.maxDate;
+
+            if (this.dateLimit && (!this.maxDate || this.startDate.clone().add(this.dateLimit).isAfter(this.maxDate)))
+                maxDate = this.startDate.clone().add(this.dateLimit);
+
+            if (side == 'left') {
+                selected = this.startDate.clone();
+                minDate = this.minDate;
+            } else if (side == 'right') {
+                selected = this.endDate.clone();
+                minDate = this.startDate;
+
+                //Preserve the time already selected
+                var timeSelector = this.container.find('.calendar.right .calendar-time div');
+                if (timeSelector.html() != '') {
+
+                    selected.hour(timeSelector.find('.hourselect option:selected').val() || selected.hour());
+                    selected.minute(timeSelector.find('.minuteselect option:selected').val() || selected.minute());
+                    selected.second(timeSelector.find('.secondselect option:selected').val() || selected.second());
+
+                    if (!this.timePicker24Hour) {
+                        var ampm = timeSelector.find('.ampmselect option:selected').val();
+                        if (ampm === 'PM' && selected.hour() < 12)
+                            selected.hour(selected.hour() + 12);
+                        if (ampm === 'AM' && selected.hour() === 12)
+                            selected.hour(0);
+                    }
+
+                }
+
+                if (selected.isBefore(this.startDate))
+                    selected = this.startDate.clone();
+
+                if (maxDate && selected.isAfter(maxDate))
+                    selected = maxDate.clone();
+
+            }
+
+            //
+            // hours
+            //
+
+            html = '<select class="hourselect">';
+
+            var start = this.timePicker24Hour ? 0 : 1;
+            var end = this.timePicker24Hour ? 23 : 12;
+
+            for (var i = start; i <= end; i++) {
+                var i_in_24 = i;
+                if (!this.timePicker24Hour)
+                    i_in_24 = selected.hour() >= 12 ? (i == 12 ? 12 : i + 12) : (i == 12 ? 0 : i);
+
+                var time = selected.clone().hour(i_in_24);
+                var disabled = false;
+                if (minDate && time.minute(59).isBefore(minDate))
+                    disabled = true;
+                if (maxDate && time.minute(0).isAfter(maxDate))
+                    disabled = true;
+
+                if (i_in_24 == selected.hour() && !disabled) {
+                    html += '<option value="' + i + '" selected="selected">' + i + '</option>';
+                } else if (disabled) {
+                    html += '<option value="' + i + '" disabled="disabled" class="disabled">' + i + '</option>';
+                } else {
+                    html += '<option value="' + i + '">' + i + '</option>';
+                }
+            }
+
+            html += '</select> ';
+
+            //
+            // minutes
+            //
+
+            html += ': <select class="minuteselect">';
+
+            for (var i = 0; i < 60; i += this.timePickerIncrement) {
+                var padded = i < 10 ? '0' + i : i;
+                var time = selected.clone().minute(i);
+
+                var disabled = false;
+                if (minDate && time.second(59).isBefore(minDate))
+                    disabled = true;
+                if (maxDate && time.second(0).isAfter(maxDate))
+                    disabled = true;
+
+                if (selected.minute() == i && !disabled) {
+                    html += '<option value="' + i + '" selected="selected">' + padded + '</option>';
+                } else if (disabled) {
+                    html += '<option value="' + i + '" disabled="disabled" class="disabled">' + padded + '</option>';
+                } else {
+                    html += '<option value="' + i + '">' + padded + '</option>';
+                }
+            }
+
+            html += '</select> ';
+
+            //
+            // seconds
+            //
+
+            if (this.timePickerSeconds) {
+                html += ': <select class="secondselect">';
+
+                for (var i = 0; i < 60; i++) {
+                    var padded = i < 10 ? '0' + i : i;
+                    var time = selected.clone().second(i);
+
+                    var disabled = false;
+                    if (minDate && time.isBefore(minDate))
+                        disabled = true;
+                    if (maxDate && time.isAfter(maxDate))
+                        disabled = true;
+
+                    if (selected.second() == i && !disabled) {
+                        html += '<option value="' + i + '" selected="selected">' + padded + '</option>';
+                    } else if (disabled) {
+                        html += '<option value="' + i + '" disabled="disabled" class="disabled">' + padded + '</option>';
+                    } else {
+                        html += '<option value="' + i + '">' + padded + '</option>';
+                    }
+                }
+
+                html += '</select> ';
+            }
+
+            //
+            // AM/PM
+            //
+
+            if (!this.timePicker24Hour) {
+                html += '<select class="ampmselect">';
+
+                var am_html = '';
+                var pm_html = '';
+
+                if (minDate && selected.clone().hour(12).minute(0).second(0).isBefore(minDate))
+                    am_html = ' disabled="disabled" class="disabled"';
+
+                if (maxDate && selected.clone().hour(0).minute(0).second(0).isAfter(maxDate))
+                    pm_html = ' disabled="disabled" class="disabled"';
+
+                if (selected.hour() >= 12) {
+                    html += '<option value="AM"' + am_html + '>AM</option><option value="PM" selected="selected"' + pm_html + '>PM</option>';
+                } else {
+                    html += '<option value="AM" selected="selected"' + am_html + '>AM</option><option value="PM"' + pm_html + '>PM</option>';
+                }
+
+                html += '</select>';
+            }
+
+            this.container.find('.calendar.' + side + ' .calendar-time div').html(html);
+
+        },
+
+        updateFormInputs: function() {
+
+            //ignore mouse movements while an above-calendar text input has focus
+            if (this.container.find('input[name=daterangepicker_start]').is(":focus") || this.container.find('input[name=daterangepicker_end]').is(":focus"))
+                return;
+
+            this.container.find('input[name=daterangepicker_start]').val(this.startDate.format(this.locale.format));
+            if (this.endDate)
+                this.container.find('input[name=daterangepicker_end]').val(this.endDate.format(this.locale.format));
+
+            if (this.singleDatePicker || (this.endDate && (this.startDate.isBefore(this.endDate) || this.startDate.isSame(this.endDate)))) {
+                this.container.find('button.applyBtn').removeAttr('disabled');
+            } else {
+                this.container.find('button.applyBtn').attr('disabled', 'disabled');
+            }
+
+        },
+
+        move: function() {
+            var parentOffset = { top: 0, left: 0 },
+                containerTop;
+            var parentRightEdge = $(window).width();
+            if (!this.parentEl.is('body')) {
+                parentOffset = {
+                    top: this.parentEl.offset().top - this.parentEl.scrollTop(),
+                    left: this.parentEl.offset().left - this.parentEl.scrollLeft()
+                };
+                parentRightEdge = this.parentEl[0].clientWidth + this.parentEl.offset().left;
+            }
+
+            if (this.drops == 'up')
+                containerTop = this.element.offset().top - this.container.outerHeight() - parentOffset.top;
+            else
+                containerTop = this.element.offset().top + this.element.outerHeight() - parentOffset.top;
+            this.container[this.drops == 'up' ? 'addClass' : 'removeClass']('dropup');
+
+            if (this.opens == 'left') {
+                this.container.css({
+                    top: containerTop,
+                    right: parentRightEdge - this.element.offset().left - this.element.outerWidth(),
+                    left: 'auto'
+                });
+                if (this.container.offset().left < 0) {
+                    this.container.css({
+                        right: 'auto',
+                        left: 9
+                    });
+                }
+            } else if (this.opens == 'center') {
+                this.container.css({
+                    top: containerTop,
+                    left: this.element.offset().left - parentOffset.left + this.element.outerWidth() / 2
+                            - this.container.outerWidth() / 2,
+                    right: 'auto'
+                });
+                if (this.container.offset().left < 0) {
+                    this.container.css({
+                        right: 'auto',
+                        left: 9
+                    });
+                }
+            } else {
+                this.container.css({
+                    top: containerTop,
+                    left: this.element.offset().left - parentOffset.left,
+                    right: 'auto'
+                });
+                if (this.container.offset().left + this.container.outerWidth() > $(window).width()) {
+                    this.container.css({
+                        left: 'auto',
+                        right: 0
+                    });
+                }
+            }
+        },
+
+        show: function(e) {
+            if (this.isShowing) return;
+
+            // Create a click proxy that is private to this instance of datepicker, for unbinding
+            this._outsideClickProxy = $.proxy(function(e) { this.outsideClick(e); }, this);
+
+            // Bind global datepicker mousedown for hiding and
+            $(document)
+              .on('mousedown.daterangepicker', this._outsideClickProxy)
+              // also support mobile devices
+              .on('touchend.daterangepicker', this._outsideClickProxy)
+              // also explicitly play nice with Bootstrap dropdowns, which stopPropagation when clicking them
+              .on('click.daterangepicker', '[data-toggle=dropdown]', this._outsideClickProxy)
+              // and also close when focus changes to outside the picker (eg. tabbing between controls)
+              .on('focusin.daterangepicker', this._outsideClickProxy);
+
+            // Reposition the picker if the window is resized while it's open
+            $(window).on('resize.daterangepicker', $.proxy(function(e) { this.move(e); }, this));
+
+            this.oldStartDate = this.startDate.clone();
+            this.oldEndDate = this.endDate.clone();
+            this.previousRightTime = this.endDate.clone();
+
+            this.updateView();
+            this.container.show();
+            this.move();
+            this.element.trigger('show.daterangepicker', this);
+            this.isShowing = true;
+        },
+
+        hide: function(e) {
+            if (!this.isShowing) return;
+
+            //incomplete date selection, revert to last values
+            if (!this.endDate) {
+                this.startDate = this.oldStartDate.clone();
+                this.endDate = this.oldEndDate.clone();
+            }
+
+            //if a new date range was selected, invoke the user callback function
+            if (!this.startDate.isSame(this.oldStartDate) || !this.endDate.isSame(this.oldEndDate))
+                this.callback(this.startDate, this.endDate, this.chosenLabel);
+
+            //if picker is attached to a text input, update it
+            this.updateElement();
+
+            $(document).off('.daterangepicker');
+            $(window).off('.daterangepicker');
+            this.container.hide();
+            this.element.trigger('hide.daterangepicker', this);
+            this.isShowing = false;
+        },
+
+        toggle: function(e) {
+            if (this.isShowing) {
+                this.hide();
+            } else {
+                this.show();
+            }
+        },
+
+        outsideClick: function(e) {
+            var target = $(e.target);
+            // if the page is clicked anywhere except within the daterangerpicker/button
+            // itself then call this.hide()
+            if (
+                // ie modal dialog fix
+                e.type == "focusin" ||
+                target.closest(this.element).length ||
+                target.closest(this.container).length ||
+                target.closest('.calendar-table').length
+                ) return;
+            this.hide();
+            this.element.trigger('outsideClick.daterangepicker', this);
+        },
+
+        showCalendars: function() {
+            this.container.addClass('show-calendar');
+            this.move();
+            this.element.trigger('showCalendar.daterangepicker', this);
+        },
+
+        hideCalendars: function() {
+            this.container.removeClass('show-calendar');
+            this.element.trigger('hideCalendar.daterangepicker', this);
+        },
+
+        hoverRange: function(e) {
+
+            //ignore mouse movements while an above-calendar text input has focus
+            if (this.container.find('input[name=daterangepicker_start]').is(":focus") || this.container.find('input[name=daterangepicker_end]').is(":focus"))
+                return;
+
+            var label = e.target.getAttribute('data-range-key');
+
+            if (label == this.locale.customRangeLabel) {
+                this.updateView();
+            } else {
+                var dates = this.ranges[label];
+                this.container.find('input[name=daterangepicker_start]').val(dates[0].format(this.locale.format));
+                this.container.find('input[name=daterangepicker_end]').val(dates[1].format(this.locale.format));
+            }
+
+        },
+
+        clickRange: function(e) {
+            var label = e.target.getAttribute('data-range-key');
+            this.chosenLabel = label;
+            if (label == this.locale.customRangeLabel) {
+                this.showCalendars();
+            } else {
+                var dates = this.ranges[label];
+                this.startDate = dates[0];
+                this.endDate = dates[1];
+
+                if (!this.timePicker) {
+                    this.startDate.startOf('day');
+                    this.endDate.endOf('day');
+                }
+
+                if (!this.alwaysShowCalendars)
+                    this.hideCalendars();
+                this.clickApply();
+            }
+        },
+
+        clickPrev: function(e) {
+            var cal = $(e.target).parents('.calendar');
+            if (cal.hasClass('left')) {
+                this.leftCalendar.month.subtract(1, 'month');
+                if (this.linkedCalendars)
+                    this.rightCalendar.month.subtract(1, 'month');
+            } else {
+                this.rightCalendar.month.subtract(1, 'month');
+            }
+            this.updateCalendars();
+        },
+
+        clickNext: function(e) {
+            var cal = $(e.target).parents('.calendar');
+            if (cal.hasClass('left')) {
+                this.leftCalendar.month.add(1, 'month');
+            } else {
+                this.rightCalendar.month.add(1, 'month');
+                if (this.linkedCalendars)
+                    this.leftCalendar.month.add(1, 'month');
+            }
+            this.updateCalendars();
+        },
+
+        hoverDate: function(e) {
+
+            //ignore mouse movements while an above-calendar text input has focus
+            //if (this.container.find('input[name=daterangepicker_start]').is(":focus") || this.container.find('input[name=daterangepicker_end]').is(":focus"))
+            //    return;
+
+            //ignore dates that can't be selected
+            if (!$(e.target).hasClass('available')) return;
+
+            //have the text inputs above calendars reflect the date being hovered over
+            var title = $(e.target).attr('data-title');
+            var row = title.substr(1, 1);
+            var col = title.substr(3, 1);
+            var cal = $(e.target).parents('.calendar');
+            var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];
+
+            if (this.endDate && !this.container.find('input[name=daterangepicker_start]').is(":focus")) {
+                this.container.find('input[name=daterangepicker_start]').val(date.format(this.locale.format));
+            } else if (!this.endDate && !this.container.find('input[name=daterangepicker_end]').is(":focus")) {
+                this.container.find('input[name=daterangepicker_end]').val(date.format(this.locale.format));
+            }
+
+            //highlight the dates between the start date and the date being hovered as a potential end date
+            var leftCalendar = this.leftCalendar;
+            var rightCalendar = this.rightCalendar;
+            var startDate = this.startDate;
+            if (!this.endDate) {
+                this.container.find('.calendar tbody td').each(function(index, el) {
+
+                    //skip week numbers, only look at dates
+                    if ($(el).hasClass('week')) return;
+
+                    var title = $(el).attr('data-title');
+                    var row = title.substr(1, 1);
+                    var col = title.substr(3, 1);
+                    var cal = $(el).parents('.calendar');
+                    var dt = cal.hasClass('left') ? leftCalendar.calendar[row][col] : rightCalendar.calendar[row][col];
+
+                    if ((dt.isAfter(startDate) && dt.isBefore(date)) || dt.isSame(date, 'day')) {
+                        $(el).addClass('in-range');
+                    } else {
+                        $(el).removeClass('in-range');
+                    }
+
+                });
+            }
+
+        },
+
+        clickDate: function(e) {
+
+            if (!$(e.target).hasClass('available')) return;
+
+            var title = $(e.target).attr('data-title');
+            var row = title.substr(1, 1);
+            var col = title.substr(3, 1);
+            var cal = $(e.target).parents('.calendar');
+            var date = cal.hasClass('left') ? this.leftCalendar.calendar[row][col] : this.rightCalendar.calendar[row][col];
+
+            //
+            // this function needs to do a few things:
+            // * alternate between selecting a start and end date for the range,
+            // * if the time picker is enabled, apply the hour/minute/second from the select boxes to the clicked date
+            // * if autoapply is enabled, and an end date was chosen, apply the selection
+            // * if single date picker mode, and time picker isn't enabled, apply the selection immediately
+            // * if one of the inputs above the calendars was focused, cancel that manual input
+            //
+
+            if (this.endDate || date.isBefore(this.startDate, 'day')) { //picking start
+                if (this.timePicker) {
+                    var hour = parseInt(this.container.find('.left .hourselect').val(), 10);
+                    if (!this.timePicker24Hour) {
+                        var ampm = this.container.find('.left .ampmselect').val();
+                        if (ampm === 'PM' && hour < 12)
+                            hour += 12;
+                        if (ampm === 'AM' && hour === 12)
+                            hour = 0;
+                    }
+                    var minute = parseInt(this.container.find('.left .minuteselect').val(), 10);
+                    var second = this.timePickerSeconds ? parseInt(this.container.find('.left .secondselect').val(), 10) : 0;
+                    date = date.clone().hour(hour).minute(minute).second(second);
+                }
+                this.endDate = null;
+                this.setStartDate(date.clone());
+            } else if (!this.endDate && date.isBefore(this.startDate)) {
+                //special case: clicking the same date for start/end,
+                //but the time of the end date is before the start date
+                this.setEndDate(this.startDate.clone());
+            } else { // picking end
+                if (this.timePicker) {
+                    var hour = parseInt(this.container.find('.right .hourselect').val(), 10);
+                    if (!this.timePicker24Hour) {
+                        var ampm = this.container.find('.right .ampmselect').val();
+                        if (ampm === 'PM' && hour < 12)
+                            hour += 12;
+                        if (ampm === 'AM' && hour === 12)
+                            hour = 0;
+                    }
+                    var minute = parseInt(this.container.find('.right .minuteselect').val(), 10);
+                    var second = this.timePickerSeconds ? parseInt(this.container.find('.right .secondselect').val(), 10) : 0;
+                    date = date.clone().hour(hour).minute(minute).second(second);
+                }
+                this.setEndDate(date.clone());
+                if (this.autoApply) {
+                  this.calculateChosenLabel();
+                  this.clickApply();
+                }
+            }
+
+            if (this.singleDatePicker) {
+                this.setEndDate(this.startDate);
+                if (!this.timePicker)
+                    this.clickApply();
+            }
+
+            this.updateView();
+
+            //This is to cancel the blur event handler if the mouse was in one of the inputs
+            e.stopPropagation();
+
+        },
+
+        calculateChosenLabel: function () {
+            var customRange = true;
+            var i = 0;
+            for (var range in this.ranges) {
+              if (this.timePicker) {
+                    var format = this.timePickerSeconds ? "YYYY-MM-DD hh:mm:ss" : "YYYY-MM-DD hh:mm";
+                    //ignore times when comparing dates if time picker seconds is not enabled
+                    if (this.startDate.format(format) == this.ranges[range][0].format(format) && this.endDate.format(format) == this.ranges[range][1].format(format)) {
+                        customRange = false;
+                        this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').html();
+                        break;
+                    }
+                } else {
+                    //ignore times when comparing dates if time picker is not enabled
+                    if (this.startDate.format('YYYY-MM-DD') == this.ranges[range][0].format('YYYY-MM-DD') && this.endDate.format('YYYY-MM-DD') == this.ranges[range][1].format('YYYY-MM-DD')) {
+                        customRange = false;
+                        this.chosenLabel = this.container.find('.ranges li:eq(' + i + ')').addClass('active').html();
+                        break;
+                    }
+                }
+                i++;
+            }
+            if (customRange) {
+                if (this.showCustomRangeLabel) {
+                    this.chosenLabel = this.container.find('.ranges li:last').addClass('active').html();
+                } else {
+                    this.chosenLabel = null;
+                }
+                this.showCalendars();
+            }
+        },
+
+        clickApply: function(e) {
+            this.hide();
+            this.element.trigger('apply.daterangepicker', this);
+        },
+
+        clickCancel: function(e) {
+            this.startDate = this.oldStartDate;
+            this.endDate = this.oldEndDate;
+            this.hide();
+            this.element.trigger('cancel.daterangepicker', this);
+        },
+
+        monthOrYearChanged: function(e) {
+            var isLeft = $(e.target).closest('.calendar').hasClass('left'),
+                leftOrRight = isLeft ? 'left' : 'right',
+                cal = this.container.find('.calendar.'+leftOrRight);
+
+            // Month must be Number for new moment versions
+            var month = parseInt(cal.find('.monthselect').val(), 10);
+            var year = cal.find('.yearselect').val();
+
+            if (!isLeft) {
+                if (year < this.startDate.year() || (year == this.startDate.year() && month < this.startDate.month())) {
+                    month = this.startDate.month();
+                    year = this.startDate.year();
+                }
+            }
+
+            if (this.minDate) {
+                if (year < this.minDate.year() || (year == this.minDate.year() && month < this.minDate.month())) {
+                    month = this.minDate.month();
+                    year = this.minDate.year();
+                }
+            }
+
+            if (this.maxDate) {
+                if (year > this.maxDate.year() || (year == this.maxDate.year() && month > this.maxDate.month())) {
+                    month = this.maxDate.month();
+                    year = this.maxDate.year();
+                }
+            }
+
+            if (isLeft) {
+                this.leftCalendar.month.month(month).year(year);
+                if (this.linkedCalendars)
+                    this.rightCalendar.month = this.leftCalendar.month.clone().add(1, 'month');
+            } else {
+                this.rightCalendar.month.month(month).year(year);
+                if (this.linkedCalendars)
+                    this.leftCalendar.month = this.rightCalendar.month.clone().subtract(1, 'month');
+            }
+            this.updateCalendars();
+        },
+
+        timeChanged: function(e) {
+
+            var cal = $(e.target).closest('.calendar'),
+                isLeft = cal.hasClass('left');
+
+            var hour = parseInt(cal.find('.hourselect').val(), 10);
+            var minute = parseInt(cal.find('.minuteselect').val(), 10);
+            var second = this.timePickerSeconds ? parseInt(cal.find('.secondselect').val(), 10) : 0;
+
+            if (!this.timePicker24Hour) {
+                var ampm = cal.find('.ampmselect').val();
+                if (ampm === 'PM' && hour < 12)
+                    hour += 12;
+                if (ampm === 'AM' && hour === 12)
+                    hour = 0;
+            }
+
+            if (isLeft) {
+                var start = this.startDate.clone();
+                start.hour(hour);
+                start.minute(minute);
+                start.second(second);
+                this.setStartDate(start);
+                if (this.singleDatePicker) {
+                    this.endDate = this.startDate.clone();
+                } else if (this.endDate && this.endDate.format('YYYY-MM-DD') == start.format('YYYY-MM-DD') && this.endDate.isBefore(start)) {
+                    this.setEndDate(start.clone());
+                }
+            } else if (this.endDate) {
+                var end = this.endDate.clone();
+                end.hour(hour);
+                end.minute(minute);
+                end.second(second);
+                this.setEndDate(end);
+            }
+
+            //update the calendars so all clickable dates reflect the new time component
+            this.updateCalendars();
+
+            //update the form inputs above the calendars with the new time
+            this.updateFormInputs();
+
+            //re-render the time pickers because changing one selection can affect what's enabled in another
+            this.renderTimePicker('left');
+            this.renderTimePicker('right');
+
+        },
+
+        formInputsChanged: function(e) {
+            var isRight = $(e.target).closest('.calendar').hasClass('right');
+            var start = moment(this.container.find('input[name="daterangepicker_start"]').val(), this.locale.format);
+            var end = moment(this.container.find('input[name="daterangepicker_end"]').val(), this.locale.format);
+
+            if (start.isValid() && end.isValid()) {
+
+                if (isRight && end.isBefore(start))
+                    start = end.clone();
+
+                this.setStartDate(start);
+                this.setEndDate(end);
+
+                if (isRight) {
+                    this.container.find('input[name="daterangepicker_start"]').val(this.startDate.format(this.locale.format));
+                } else {
+                    this.container.find('input[name="daterangepicker_end"]').val(this.endDate.format(this.locale.format));
+                }
+
+            }
+
+            this.updateView();
+        },
+
+        formInputsFocused: function(e) {
+
+            // Highlight the focused input
+            this.container.find('input[name="daterangepicker_start"], input[name="daterangepicker_end"]').removeClass('active');
+            $(e.target).addClass('active');
+
+            // Set the state such that if the user goes back to using a mouse, 
+            // the calendars are aware we're selecting the end of the range, not
+            // the start. This allows someone to edit the end of a date range without
+            // re-selecting the beginning, by clicking on the end date input then
+            // using the calendar.
+            var isRight = $(e.target).closest('.calendar').hasClass('right');
+            if (isRight) {
+                this.endDate = null;
+                this.setStartDate(this.startDate.clone());
+                this.updateView();
+            }
+
+        },
+
+        formInputsBlurred: function(e) {
+
+            // this function has one purpose right now: if you tab from the first
+            // text input to the second in the UI, the endDate is nulled so that
+            // you can click another, but if you tab out without clicking anything
+            // or changing the input value, the old endDate should be retained
+
+            if (!this.endDate) {
+                var val = this.container.find('input[name="daterangepicker_end"]').val();
+                var end = moment(val, this.locale.format);
+                if (end.isValid()) {
+                    this.setEndDate(end);
+                    this.updateView();
+                }
+            }
+
+        },
+
+        formInputsKeydown: function(e) {
+            // This function ensures that if the 'enter' key was pressed in the input, then the calendars
+            // are updated with the startDate and endDate.
+            // This behaviour is automatic in Chrome/Firefox/Edge but not in IE 11 hence why this exists.
+            // Other browsers and versions of IE are untested and the behaviour is unknown.
+            if (e.keyCode === 13) {
+                // Prevent the calendar from being updated twice on Chrome/Firefox/Edge
+                e.preventDefault(); 
+                this.formInputsChanged(e);
+            }
+        },
+
+
+        elementChanged: function() {
+            if (!this.element.is('input')) return;
+            if (!this.element.val().length) return;
+
+            var dateString = this.element.val().split(this.locale.separator),
+                start = null,
+                end = null;
+
+            if (dateString.length === 2) {
+                start = moment(dateString[0], this.locale.format);
+                end = moment(dateString[1], this.locale.format);
+            }
+
+            if (this.singleDatePicker || start === null || end === null) {
+                start = moment(this.element.val(), this.locale.format);
+                end = start;
+            }
+
+            if (!start.isValid() || !end.isValid()) return;
+
+            this.setStartDate(start);
+            this.setEndDate(end);
+            this.updateView();
+        },
+
+        keydown: function(e) {
+            //hide on tab or enter
+            if ((e.keyCode === 9) || (e.keyCode === 13)) {
+                this.hide();
+            }
+
+            //hide on esc and prevent propagation
+            if (e.keyCode === 27) {
+                e.preventDefault();
+                e.stopPropagation();
+
+                this.hide();
+            }
+        },
+
+        updateElement: function() {
+            if (this.element.is('input') && !this.singleDatePicker && this.autoUpdateInput) {
+                this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));
+                this.element.trigger('change');
+            } else if (this.element.is('input') && this.autoUpdateInput) {
+                this.element.val(this.startDate.format(this.locale.format));
+                this.element.trigger('change');
+            }
+        },
+
+        remove: function() {
+            this.container.remove();
+            this.element.off('.daterangepicker');
+            this.element.removeData();
+        }
+
+    };
+
+    $.fn.daterangepicker = function(options, callback) {
+        var implementOptions = $.extend(true, {}, $.fn.daterangepicker.defaultOptions, options);
+        this.each(function() {
+            var el = $(this);
+            if (el.data('daterangepicker'))
+                el.data('daterangepicker').remove();
+            el.data('daterangepicker', new DateRangePicker(el, implementOptions, callback));
+        });
+        return this;
+    };
+
+    return DateRangePicker;
+
+}));
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/css/bootstrap.css.map b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/css/bootstrap.css.map
new file mode 100644
index 0000000..f010c82
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/css/bootstrap.css.map
@@ -0,0 +1 @@
+{"version":3,"sources":["bootstrap.css","less/normalize.less","less/print.less","less/glyphicons.less","less/scaffolding.less","less/mixins/vendor-prefixes.less","less/mixins/tab-focus.less","less/mixins/image.less","less/type.less","less/mixins/text-emphasis.less","less/mixins/background-variant.less","less/mixins/text-overflow.less","less/code.less","less/grid.less","less/mixins/grid.less","less/mixins/grid-framework.less","less/tables.less","less/mixins/table-row.less","less/forms.less","less/mixins/forms.less","less/buttons.less","less/mixins/buttons.less","less/mixins/opacity.less","less/component-animations.less","less/dropdowns.less","less/mixins/nav-divider.less","less/mixins/reset-filter.less","less/button-groups.less","less/mixins/border-radius.less","less/input-groups.less","less/navs.less","less/navbar.less","less/mixins/nav-vertical-align.less","less/utilities.less","less/breadcrumbs.less","less/pagination.less","less/mixins/pagination.less","less/pager.less","less/labels.less","less/mixins/labels.less","less/badges.less","less/jumbotron.less","less/thumbnails.less","less/alerts.less","less/mixins/alerts.less","less/progress-bars.less","less/mixins/gradients.less","less/mixins/progress-bar.less","less/media.less","less/list-group.less","less/mixins/list-group.less","less/panels.less","less/mixins/panels.less","less/responsive-embed.less","less/wells.less","less/close.less","less/modals.less","less/tooltip.less","less/mixins/reset-text.less","less/popovers.less","less/carousel.less","less/mixins/clearfix.less","less/mixins/center-block.less","less/mixins/hide-text.less","less/responsive-utilities.less","less/mixins/responsive-visibility.less"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,4EAA4E;ACG5E;EACE,wBAAA;EACA,2BAAA;EACA,+BAAA;CDDD;ACQD;EACE,UAAA;CDND;ACmBD;;;;;;;;;;;;;EAaE,eAAA;CDjBD;ACyBD;;;;EAIE,sBAAA;EACA,yBAAA;CDvBD;AC+BD;EACE,cAAA;EACA,UAAA;CD7BD;ACqCD;;EAEE,cAAA;CDnCD;AC6CD;EACE,8BAAA;CD3CD;ACmDD;;EAEE,WAAA;CDjDD;AC2DD;EACE,0BAAA;CDzDD;ACgED;;EAEE,kBAAA;CD9DD;ACqED;EACE,mBAAA;CDnED;AC2ED;EACE,eAAA;EACA,iBAAA;CDzED;ACgFD;EACE,iBAAA;EACA,YAAA;CD9ED;ACqFD;EACE,eAAA;CDnFD;AC0FD;;EAEE,eAAA;EACA,eAAA;EACA,mBAAA;EACA,yBAAA;CDxFD;AC2FD;EACE,YAAA;CDzFD;AC4FD;EACE,gBAAA;CD1FD;ACoGD;EACE,UAAA;CDlGD;ACyGD;EACE,iBAAA;CDvGD;ACiHD;EACE,iBAAA;CD/GD;ACsHD;EACE,gCAAA;KAAA,6BAAA;UAAA,wBAAA;EACA,UAAA;CDpHD;AC2HD;EACE,eAAA;CDzHD;ACgID;;;;EAIE,kCAAA;EACA,eAAA;CD9HD;ACgJD;;;;;EAKE,eAAA;EACA,cAAA;EACA,UAAA;CD9ID;ACqJD;EACE,kBAAA;CDnJD;AC6JD;;EAEE,qBAAA;CD3JD;ACsKD;;;;EAIE,2BAAA;EACA,gBAAA;CDpKD;AC2KD;;EAEE,gBAAA;CDzKD;ACgLD;;EAEE,UAAA;EACA,WAAA;CD9KD;ACsLD;EACE,oBAAA;CDpLD;AC+LD;;EAEE,+BAAA;KAAA,4BAAA;UAAA,uBAAA;EACA,WAAA;CD7LD;ACsMD;;EAEE,aAAA;CDpMD;AC4MD;EACE,8BAAA;EACA,gCAAA;KAAA,6BAAA;UAAA,wBAAA;CD1MD;ACmND;;EAEE,yBAAA;CDjND;ACwND;EACE,0BAAA;EACA,cAAA;EACA,+BAAA;CDtND;AC8ND;EACE,UAAA;EACA,WAAA;CD5ND;ACmOD;EACE,eAAA;CDjOD;ACyOD;EACE,kBAAA;CDvOD;ACiPD;EACE,0BAAA;EACA,kBAAA;CD/OD;ACkPD;;EAEE,WAAA;CDhPD;AACD,qFAAqF;AElFrF;EA7FI;;;IAGI,mCAAA;IACA,uBAAA;IACA,oCAAA;YAAA,4BAAA;IACA,6BAAA;GFkLL;EE/KC;;IAEI,2BAAA;GFiLL;EE9KC;IACI,6BAAA;GFgLL;EE7KC;IACI,8BAAA;GF+KL;EE1KC;;IAEI,YAAA;GF4KL;EEzKC;;IAEI,uBAAA;IACA,yBAAA;GF2KL;EExKC;IACI,4BAAA;GF0KL;EEvKC;;IAEI,yBAAA;GFyKL;EEtKC;IACI,2BAAA;GFwKL;EErKC;;;IAGI,WAAA;IACA,UAAA;GFuKL;EEpKC;;IAEI,wBAAA;GFsKL;EEhKC;IACI,cAAA;GFkKL;EEhKC;;IAGQ,kCAAA;GFiKT;EE9JC;IACI,uBAAA;GFgKL;EE7JC;IACI,qCAAA;GF+JL;EEhKC;;IAKQ,kCAAA;GF+JT;EE5JC;;IAGQ,kCAAA;GF6JT;CACF;AGnPD;EACE,oCAAA;EACA,sDAAA;EACA,gYAAA;CHqPD;AG7OD;EACE,mBAAA;EACA,SAAA;EACA,sBAAA;EACA,oCAAA;EACA,mBAAA;EACA,oBAAA;EACA,eAAA;EACA,oCAAA;EACA,mCAAA;CH+OD;AG3OmC;EAAW,iBAAA;CH8O9C;AG7OmC;EAAW,iBAAA;CHgP9C;AG9OmC;;EAAW,iBAAA;CHkP9C;AGjPmC;EAAW,iBAAA;CHoP9C;AGnPmC;EAAW,iBAAA;CHsP9C;AGrPmC;EAAW,iBAAA;CHwP9C;AGvPmC;EAAW,iBAAA;CH0P9C;AGzPmC;EAAW,iBAAA;CH4P9C;AG3PmC;EAAW,iBAAA;CH8P9C;AG7PmC;EAAW,iBAAA;CHgQ9C;AG/PmC;EAAW,iBAAA;CHkQ9C;AGjQmC;EAAW,iBAAA;CHoQ9C;AGnQmC;EAAW,iBAAA;CHsQ9C;AGrQmC;EAAW,iBAAA;CHwQ9C;AGvQmC;EAAW,iBAAA;CH0Q9C;AGzQmC;EAAW,iBAAA;CH4Q9C;AG3QmC;EAAW,iBAAA;CH8Q9C;AG7QmC;EAAW,iBAAA;CHgR9C;AG/QmC;EAAW,iBAAA;CHkR9C;AGjRmC;EAAW,iBAAA;CHoR9C;AGnRmC;EAAW,iBAAA;CHsR9C;AGrRmC;EAAW,iBAAA;CHwR9C;AGvRmC;EAAW,iBAAA;CH0R9C;AGzRmC;EAAW,iBAAA;CH4R9C;AG3RmC;EAAW,iBAAA;CH8R9C;AG7RmC;EAAW,iBAAA;CHgS9C;AG/RmC;EAAW,iBAAA;CHkS9C;AGjSmC;EAAW,iBAAA;CHoS9C;AGnSmC;EAAW,iBAAA;CHsS9C;AGrSmC;EAAW,iBAAA;CHwS9C;AGvSmC;EAAW,iBAAA;CH0S9C;AGzSmC;EAAW,iBAAA;CH4S9C;AG3SmC;EAAW,iBAAA;CH8S9C;AG7SmC;EAAW,iBAAA;CHgT9C;AG/SmC;EAAW,iBAAA;CHkT9C;AGjTmC;EAAW,iBAAA;CHoT9C;AGnTmC;EAAW,iBAAA;CHsT9C;AGrTmC;EAAW,iBAAA;CHwT9C;AGvTmC;EAAW,iBAAA;CH0T9C;AGzTmC;EAAW,iBAAA;CH4T9C;AG3TmC;EAAW,iBAAA;CH8T9C;AG7TmC;EAAW,iBAAA;CHgU9C;AG/TmC;EAAW,iBAAA;CHkU9C;AGjUmC;EAAW,iBAAA;CHoU9C;AGnUmC;EAAW,iBAAA;CHsU9C;AGrUmC;EAAW,iBAAA;CHwU9C;AGvUmC;EAAW,iBAAA;CH0U9C;AGzUmC;EAAW,iBAAA;CH4U9C;AG3UmC;EAAW,iBAAA;CH8U9C;AG7UmC;EAAW,iBAAA;CHgV9C;AG/UmC;EAAW,iBAAA;CHkV9C;AGjVmC;EAAW,iBAAA;CHoV9C;AGnVmC;EAAW,iBAAA;CHsV9C;AGrVmC;EAAW,iBAAA;CHwV9C;AGvVmC;EAAW,iBAAA;CH0V9C;AGzVmC;EAAW,iBAAA;CH4V9C;AG3VmC;EAAW,iBAAA;CH8V9C;AG7VmC;EAAW,iBAAA;CHgW9C;AG/VmC;EAAW,iBAAA;CHkW9C;AGjWmC;EAAW,iBAAA;CHoW9C;AGnWmC;EAAW,iBAAA;CHsW9C;AGrWmC;EAAW,iBAAA;CHwW9C;AGvWmC;EAAW,iBAAA;CH0W9C;AGzWmC;EAAW,iBAAA;CH4W9C;AG3WmC;EAAW,iBAAA;CH8W9C;AG7WmC;EAAW,iBAAA;CHgX9C;AG/WmC;EAAW,iBAAA;CHkX9C;AGjXmC;EAAW,iBAAA;CHoX9C;AGnXmC;EAAW,iBAAA;CHsX9C;AGrXmC;EAAW,iBAAA;CHwX9C;AGvXmC;EAAW,iBAAA;CH0X9C;AGzXmC;EAAW,iBAAA;CH4X9C;AG3XmC;EAAW,iBAAA;CH8X9C;AG7XmC;EAAW,iBAAA;CHgY9C;AG/XmC;EAAW,iBAAA;CHkY9C;AGjYmC;EAAW,iBAAA;CHoY9C;AGnYmC;EAAW,iBAAA;CHsY9C;AGrYmC;EAAW,iBAAA;CHwY9C;AGvYmC;EAAW,iBAAA;CH0Y9C;AGzYmC;EAAW,iBAAA;CH4Y9C;AG3YmC;EAAW,iBAAA;CH8Y9C;AG7YmC;EAAW,iBAAA;CHgZ9C;AG/YmC;EAAW,iBAAA;CHkZ9C;AGjZmC;EAAW,iBAAA;CHoZ9C;AGnZmC;EAAW,iBAAA;CHsZ9C;AGrZmC;EAAW,iBAAA;CHwZ9C;AGvZmC;EAAW,iBAAA;CH0Z9C;AGzZmC;EAAW,iBAAA;CH4Z9C;AG3ZmC;EAAW,iBAAA;CH8Z9C;AG7ZmC;EAAW,iBAAA;CHga9C;AG/ZmC;EAAW,iBAAA;CHka9C;AGjamC;EAAW,iBAAA;CHoa9C;AGnamC;EAAW,iBAAA;CHsa9C;AGramC;EAAW,iBAAA;CHwa9C;AGvamC;EAAW,iBAAA;CH0a9C;AGzamC;EAAW,iBAAA;CH4a9C;AG3amC;EAAW,iBAAA;CH8a9C;AG7amC;EAAW,iBAAA;CHgb9C;AG/amC;EAAW,iBAAA;CHkb9C;AGjbmC;EAAW,iBAAA;CHob9C;AGnbmC;EAAW,iBAAA;CHsb9C;AGrbmC;EAAW,iBAAA;CHwb9C;AGvbmC;EAAW,iBAAA;CH0b9C;AGzbmC;EAAW,iBAAA;CH4b9C;AG3bmC;EAAW,iBAAA;CH8b9C;AG7bmC;EAAW,iBAAA;CHgc9C;AG/bmC;EAAW,iBAAA;CHkc9C;AGjcmC;EAAW,iBAAA;CHoc9C;AGncmC;EAAW,iBAAA;CHsc9C;AGrcmC;EAAW,iBAAA;CHwc9C;AGvcmC;EAAW,iBAAA;CH0c9C;AGzcmC;EAAW,iBAAA;CH4c9C;AG3cmC;EAAW,iBAAA;CH8c9C;AG7cmC;EAAW,iBAAA;CHgd9C;AG/cmC;EAAW,iBAAA;CHkd9C;AGjdmC;EAAW,iBAAA;CHod9C;AGndmC;EAAW,iBAAA;CHsd9C;AGrdmC;EAAW,iBAAA;CHwd9C;AGvdmC;EAAW,iBAAA;CH0d9C;AGzdmC;EAAW,iBAAA;CH4d9C;AG3dmC;EAAW,iBAAA;CH8d9C;AG7dmC;EAAW,iBAAA;CHge9C;AG/dmC;EAAW,iBAAA;CHke9C;AGjemC;EAAW,iBAAA;CHoe9C;AGnemC;EAAW,iBAAA;CHse9C;AGremC;EAAW,iBAAA;CHwe9C;AGvemC;EAAW,iBAAA;CH0e9C;AGzemC;EAAW,iBAAA;CH4e9C;AG3emC;EAAW,iBAAA;CH8e9C;AG7emC;EAAW,iBAAA;CHgf9C;AG/emC;EAAW,iBAAA;CHkf9C;AGjfmC;EAAW,iBAAA;CHof9C;AGnfmC;EAAW,iBAAA;CHsf9C;AGrfmC;EAAW,iBAAA;CHwf9C;AGvfmC;EAAW,iBAAA;CH0f9C;AGzfmC;EAAW,iBAAA;CH4f9C;AG3fmC;EAAW,iBAAA;CH8f9C;AG7fmC;EAAW,iBAAA;CHggB9C;AG/fmC;EAAW,iBAAA;CHkgB9C;AGjgBmC;EAAW,iBAAA;CHogB9C;AGngBmC;EAAW,iBAAA;CHsgB9C;AGrgBmC;EAAW,iBAAA;CHwgB9C;AGvgBmC;EAAW,iBAAA;CH0gB9C;AGzgBmC;EAAW,iBAAA;CH4gB9C;AG3gBmC;EAAW,iBAAA;CH8gB9C;AG7gBmC;EAAW,iBAAA;CHghB9C;AG/gBmC;EAAW,iBAAA;CHkhB9C;AGjhBmC;EAAW,iBAAA;CHohB9C;AGnhBmC;EAAW,iBAAA;CHshB9C;AGrhBmC;EAAW,iBAAA;CHwhB9C;AGvhBmC;EAAW,iBAAA;CH0hB9C;AGzhBmC;EAAW,iBAAA;CH4hB9C;AG3hBmC;EAAW,iBAAA;CH8hB9C;AG7hBmC;EAAW,iBAAA;CHgiB9C;AG/hBmC;EAAW,iBAAA;CHkiB9C;AGjiBmC;EAAW,iBAAA;CHoiB9C;AGniBmC;EAAW,iBAAA;CHsiB9C;AGriBmC;EAAW,iBAAA;CHwiB9C;AGviBmC;EAAW,iBAAA;CH0iB9C;AGziBmC;EAAW,iBAAA;CH4iB9C;AG3iBmC;EAAW,iBAAA;CH8iB9C;AG7iBmC;EAAW,iBAAA;CHgjB9C;AG/iBmC;EAAW,iBAAA;CHkjB9C;AGjjBmC;EAAW,iBAAA;CHojB9C;AGnjBmC;EAAW,iBAAA;CHsjB9C;AGrjBmC;EAAW,iBAAA;CHwjB9C;AGvjBmC;EAAW,iBAAA;CH0jB9C;AGzjBmC;EAAW,iBAAA;CH4jB9C;AG3jBmC;EAAW,iBAAA;CH8jB9C;AG7jBmC;EAAW,iBAAA;CHgkB9C;AG/jBmC;EAAW,iBAAA;CHkkB9C;AGjkBmC;EAAW,iBAAA;CHokB9C;AGnkBmC;EAAW,iBAAA;CHskB9C;AGrkBmC;EAAW,iBAAA;CHwkB9C;AGvkBmC;EAAW,iBAAA;CH0kB9C;AGzkBmC;EAAW,iBAAA;CH4kB9C;AG3kBmC;EAAW,iBAAA;CH8kB9C;AG7kBmC;EAAW,iBAAA;CHglB9C;AG/kBmC;EAAW,iBAAA;CHklB9C;AGjlBmC;EAAW,iBAAA;CHolB9C;AGnlBmC;EAAW,iBAAA;CHslB9C;AGrlBmC;EAAW,iBAAA;CHwlB9C;AGvlBmC;EAAW,iBAAA;CH0lB9C;AGzlBmC;EAAW,iBAAA;CH4lB9C;AG3lBmC;EAAW,iBAAA;CH8lB9C;AG7lBmC;EAAW,iBAAA;CHgmB9C;AG/lBmC;EAAW,iBAAA;CHkmB9C;AGjmBmC;EAAW,iBAAA;CHomB9C;AGnmBmC;EAAW,iBAAA;CHsmB9C;AGrmBmC;EAAW,iBAAA;CHwmB9C;AGvmBmC;EAAW,iBAAA;CH0mB9C;AGzmBmC;EAAW,iBAAA;CH4mB9C;AG3mBmC;EAAW,iBAAA;CH8mB9C;AG7mBmC;EAAW,iBAAA;CHgnB9C;AG/mBmC;EAAW,iBAAA;CHknB9C;AGjnBmC;EAAW,iBAAA;CHonB9C;AGnnBmC;EAAW,iBAAA;CHsnB9C;AGrnBmC;EAAW,iBAAA;CHwnB9C;AGvnBmC;EAAW,iBAAA;CH0nB9C;AGznBmC;EAAW,iBAAA;CH4nB9C;AG3nBmC;EAAW,iBAAA;CH8nB9C;AG7nBmC;EAAW,iBAAA;CHgoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AG/nBmC;EAAW,iBAAA;CHkoB9C;AGjoBmC;EAAW,iBAAA;CHooB9C;AGnoBmC;EAAW,iBAAA;CHsoB9C;AGroBmC;EAAW,iBAAA;CHwoB9C;AGvoBmC;EAAW,iBAAA;CH0oB9C;AGzoBmC;EAAW,iBAAA;CH4oB9C;AG3oBmC;EAAW,iBAAA;CH8oB9C;AG7oBmC;EAAW,iBAAA;CHgpB9C;AG/oBmC;EAAW,iBAAA;CHkpB9C;AGjpBmC;EAAW,iBAAA;CHopB9C;AGnpBmC;EAAW,iBAAA;CHspB9C;AGrpBmC;EAAW,iBAAA;CHwpB9C;AGvpBmC;EAAW,iBAAA;CH0pB9C;AGzpBmC;EAAW,iBAAA;CH4pB9C;AG3pBmC;EAAW,iBAAA;CH8pB9C;AG7pBmC;EAAW,iBAAA;CHgqB9C;AG/pBmC;EAAW,iBAAA;CHkqB9C;AGjqBmC;EAAW,iBAAA;CHoqB9C;AGnqBmC;EAAW,iBAAA;CHsqB9C;AGrqBmC;EAAW,iBAAA;CHwqB9C;AGvqBmC;EAAW,iBAAA;CH0qB9C;AGzqBmC;EAAW,iBAAA;CH4qB9C;AG3qBmC;EAAW,iBAAA;CH8qB9C;AG7qBmC;EAAW,iBAAA;CHgrB9C;AG/qBmC;EAAW,iBAAA;CHkrB9C;AGjrBmC;EAAW,iBAAA;CHorB9C;AGnrBmC;EAAW,iBAAA;CHsrB9C;AGrrBmC;EAAW,iBAAA;CHwrB9C;AGvrBmC;EAAW,iBAAA;CH0rB9C;AGzrBmC;EAAW,iBAAA;CH4rB9C;AG3rBmC;EAAW,iBAAA;CH8rB9C;AG7rBmC;EAAW,iBAAA;CHgsB9C;AG/rBmC;EAAW,iBAAA;CHksB9C;AGjsBmC;EAAW,iBAAA;CHosB9C;AGnsBmC;EAAW,iBAAA;CHssB9C;AGrsBmC;EAAW,iBAAA;CHwsB9C;AGvsBmC;EAAW,iBAAA;CH0sB9C;AGzsBmC;EAAW,iBAAA;CH4sB9C;AG3sBmC;EAAW,iBAAA;CH8sB9C;AG7sBmC;EAAW,iBAAA;CHgtB9C;AG/sBmC;EAAW,iBAAA;CHktB9C;AGjtBmC;EAAW,iBAAA;CHotB9C;AGntBmC;EAAW,iBAAA;CHstB9C;AGrtBmC;EAAW,iBAAA;CHwtB9C;AGvtBmC;EAAW,iBAAA;CH0tB9C;AGztBmC;EAAW,iBAAA;CH4tB9C;AG3tBmC;EAAW,iBAAA;CH8tB9C;AG7tBmC;EAAW,iBAAA;CHguB9C;AG/tBmC;EAAW,iBAAA;CHkuB9C;AGjuBmC;EAAW,iBAAA;CHouB9C;AGnuBmC;EAAW,iBAAA;CHsuB9C;AGruBmC;EAAW,iBAAA;CHwuB9C;AGvuBmC;EAAW,iBAAA;CH0uB9C;AGzuBmC;EAAW,iBAAA;CH4uB9C;AG3uBmC;EAAW,iBAAA;CH8uB9C;AG7uBmC;EAAW,iBAAA;CHgvB9C;AIthCD;ECgEE,+BAAA;EACG,4BAAA;EACK,uBAAA;CLy9BT;AIxhCD;;EC6DE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL+9BT;AIthCD;EACE,gBAAA;EACA,8CAAA;CJwhCD;AIrhCD;EACE,4DAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,uBAAA;CJuhCD;AInhCD;;;;EAIE,qBAAA;EACA,mBAAA;EACA,qBAAA;CJqhCD;AI/gCD;EACE,eAAA;EACA,sBAAA;CJihCD;AI/gCC;;EAEE,eAAA;EACA,2BAAA;CJihCH;AI9gCC;EEnDA,2CAAA;EACA,qBAAA;CNokCD;AIvgCD;EACE,UAAA;CJygCD;AIngCD;EACE,uBAAA;CJqgCD;AIjgCD;;;;;EGvEE,eAAA;EACA,gBAAA;EACA,aAAA;CP+kCD;AIrgCD;EACE,mBAAA;CJugCD;AIjgCD;EACE,aAAA;EACA,wBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;EC6FA,yCAAA;EACK,oCAAA;EACG,iCAAA;EEvLR,sBAAA;EACA,gBAAA;EACA,aAAA;CP+lCD;AIjgCD;EACE,mBAAA;CJmgCD;AI7/BD;EACE,iBAAA;EACA,oBAAA;EACA,UAAA;EACA,8BAAA;CJ+/BD;AIv/BD;EACE,mBAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,WAAA;EACA,iBAAA;EACA,uBAAA;EACA,UAAA;CJy/BD;AIj/BC;;EAEE,iBAAA;EACA,YAAA;EACA,aAAA;EACA,UAAA;EACA,kBAAA;EACA,WAAA;CJm/BH;AIx+BD;EACE,gBAAA;CJ0+BD;AQjoCD;;;;;;;;;;;;EAEE,qBAAA;EACA,iBAAA;EACA,iBAAA;EACA,eAAA;CR6oCD;AQlpCD;;;;;;;;;;;;;;;;;;;;;;;;EASI,oBAAA;EACA,eAAA;EACA,eAAA;CRmqCH;AQ/pCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRoqCD;AQxqCD;;;;;;;;;;;;EAQI,eAAA;CR8qCH;AQ3qCD;;;;;;EAGE,iBAAA;EACA,oBAAA;CRgrCD;AQprCD;;;;;;;;;;;;EAQI,eAAA;CR0rCH;AQtrCD;;EAAU,gBAAA;CR0rCT;AQzrCD;;EAAU,gBAAA;CR6rCT;AQ5rCD;;EAAU,gBAAA;CRgsCT;AQ/rCD;;EAAU,gBAAA;CRmsCT;AQlsCD;;EAAU,gBAAA;CRssCT;AQrsCD;;EAAU,gBAAA;CRysCT;AQnsCD;EACE,iBAAA;CRqsCD;AQlsCD;EACE,oBAAA;EACA,gBAAA;EACA,iBAAA;EACA,iBAAA;CRosCD;AQ/rCD;EAwOA;IA1OI,gBAAA;GRqsCD;CACF;AQ7rCD;;EAEE,eAAA;CR+rCD;AQ5rCD;;EAEE,0BAAA;EACA,cAAA;CR8rCD;AQ1rCD;EAAuB,iBAAA;CR6rCtB;AQ5rCD;EAAuB,kBAAA;CR+rCtB;AQ9rCD;EAAuB,mBAAA;CRisCtB;AQhsCD;EAAuB,oBAAA;CRmsCtB;AQlsCD;EAAuB,oBAAA;CRqsCtB;AQlsCD;EAAuB,0BAAA;CRqsCtB;AQpsCD;EAAuB,0BAAA;CRusCtB;AQtsCD;EAAuB,2BAAA;CRysCtB;AQtsCD;EACE,eAAA;CRwsCD;AQtsCD;ECrGE,eAAA;CT8yCD;AS7yCC;;EAEE,eAAA;CT+yCH;AQ1sCD;ECxGE,eAAA;CTqzCD;ASpzCC;;EAEE,eAAA;CTszCH;AQ9sCD;EC3GE,eAAA;CT4zCD;AS3zCC;;EAEE,eAAA;CT6zCH;AQltCD;EC9GE,eAAA;CTm0CD;ASl0CC;;EAEE,eAAA;CTo0CH;AQttCD;ECjHE,eAAA;CT00CD;ASz0CC;;EAEE,eAAA;CT20CH;AQttCD;EAGE,YAAA;EE3HA,0BAAA;CVk1CD;AUj1CC;;EAEE,0BAAA;CVm1CH;AQxtCD;EE9HE,0BAAA;CVy1CD;AUx1CC;;EAEE,0BAAA;CV01CH;AQ5tCD;EEjIE,0BAAA;CVg2CD;AU/1CC;;EAEE,0BAAA;CVi2CH;AQhuCD;EEpIE,0BAAA;CVu2CD;AUt2CC;;EAEE,0BAAA;CVw2CH;AQpuCD;EEvIE,0BAAA;CV82CD;AU72CC;;EAEE,0BAAA;CV+2CH;AQnuCD;EACE,oBAAA;EACA,oBAAA;EACA,iCAAA;CRquCD;AQ7tCD;;EAEE,cAAA;EACA,oBAAA;CR+tCD;AQluCD;;;;EAMI,iBAAA;CRkuCH;AQ3tCD;EACE,gBAAA;EACA,iBAAA;CR6tCD;AQztCD;EALE,gBAAA;EACA,iBAAA;EAMA,kBAAA;CR4tCD;AQ9tCD;EAKI,sBAAA;EACA,kBAAA;EACA,mBAAA;CR4tCH;AQvtCD;EACE,cAAA;EACA,oBAAA;CRytCD;AQvtCD;;EAEE,wBAAA;CRytCD;AQvtCD;EACE,kBAAA;CRytCD;AQvtCD;EACE,eAAA;CRytCD;AQhsCD;EA6EA;IAvFM,YAAA;IACA,aAAA;IACA,YAAA;IACA,kBAAA;IGtNJ,iBAAA;IACA,wBAAA;IACA,oBAAA;GXq6CC;EQ7nCH;IAhFM,mBAAA;GRgtCH;CACF;AQvsCD;;EAGE,aAAA;EACA,kCAAA;CRwsCD;AQtsCD;EACE,eAAA;EA9IqB,0BAAA;CRu1CtB;AQpsCD;EACE,mBAAA;EACA,iBAAA;EACA,kBAAA;EACA,+BAAA;CRssCD;AQjsCG;;;EACE,iBAAA;CRqsCL;AQ/sCD;;;EAmBI,eAAA;EACA,eAAA;EACA,wBAAA;EACA,eAAA;CRisCH;AQ/rCG;;;EACE,uBAAA;CRmsCL;AQ3rCD;;EAEE,oBAAA;EACA,gBAAA;EACA,gCAAA;EACA,eAAA;EACA,kBAAA;CR6rCD;AQvrCG;;;;;;EAAW,YAAA;CR+rCd;AQ9rCG;;;;;;EACE,uBAAA;CRqsCL;AQ/rCD;EACE,oBAAA;EACA,mBAAA;EACA,wBAAA;CRisCD;AYv+CD;;;;EAIE,+DAAA;CZy+CD;AYr+CD;EACE,iBAAA;EACA,eAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;CZu+CD;AYn+CD;EACE,iBAAA;EACA,eAAA;EACA,YAAA;EACA,uBAAA;EACA,mBAAA;EACA,uDAAA;UAAA,+CAAA;CZq+CD;AY3+CD;EASI,WAAA;EACA,gBAAA;EACA,kBAAA;EACA,yBAAA;UAAA,iBAAA;CZq+CH;AYh+CD;EACE,eAAA;EACA,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,sBAAA;EACA,sBAAA;EACA,eAAA;EACA,0BAAA;EACA,uBAAA;EACA,mBAAA;CZk+CD;AY7+CD;EAeI,WAAA;EACA,mBAAA;EACA,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,iBAAA;CZi+CH;AY59CD;EACE,kBAAA;EACA,mBAAA;CZ89CD;AaxhDD;ECHE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;Cd8hDD;AaxhDC;EAqEF;IAvEI,aAAA;Gb8hDD;CACF;Aa1hDC;EAkEF;IApEI,aAAA;GbgiDD;CACF;Aa5hDD;EA+DA;IAjEI,cAAA;GbkiDD;CACF;AazhDD;ECvBE,mBAAA;EACA,kBAAA;EACA,mBAAA;EACA,oBAAA;CdmjDD;AathDD;ECvBE,mBAAA;EACA,oBAAA;CdgjDD;AehjDG;EACE,mBAAA;EAEA,gBAAA;EAEA,mBAAA;EACA,oBAAA;CfgjDL;AehiDG;EACE,YAAA;CfkiDL;Ae3hDC;EACE,YAAA;Cf6hDH;Ae9hDC;EACE,oBAAA;CfgiDH;AejiDC;EACE,oBAAA;CfmiDH;AepiDC;EACE,WAAA;CfsiDH;AeviDC;EACE,oBAAA;CfyiDH;Ae1iDC;EACE,oBAAA;Cf4iDH;Ae7iDC;EACE,WAAA;Cf+iDH;AehjDC;EACE,oBAAA;CfkjDH;AenjDC;EACE,oBAAA;CfqjDH;AetjDC;EACE,WAAA;CfwjDH;AezjDC;EACE,oBAAA;Cf2jDH;Ae5jDC;EACE,mBAAA;Cf8jDH;AehjDC;EACE,YAAA;CfkjDH;AenjDC;EACE,oBAAA;CfqjDH;AetjDC;EACE,oBAAA;CfwjDH;AezjDC;EACE,WAAA;Cf2jDH;Ae5jDC;EACE,oBAAA;Cf8jDH;Ae/jDC;EACE,oBAAA;CfikDH;AelkDC;EACE,WAAA;CfokDH;AerkDC;EACE,oBAAA;CfukDH;AexkDC;EACE,oBAAA;Cf0kDH;Ae3kDC;EACE,WAAA;Cf6kDH;Ae9kDC;EACE,oBAAA;CfglDH;AejlDC;EACE,mBAAA;CfmlDH;Ae/kDC;EACE,YAAA;CfilDH;AejmDC;EACE,WAAA;CfmmDH;AepmDC;EACE,mBAAA;CfsmDH;AevmDC;EACE,mBAAA;CfymDH;Ae1mDC;EACE,UAAA;Cf4mDH;Ae7mDC;EACE,mBAAA;Cf+mDH;AehnDC;EACE,mBAAA;CfknDH;AennDC;EACE,UAAA;CfqnDH;AetnDC;EACE,mBAAA;CfwnDH;AeznDC;EACE,mBAAA;Cf2nDH;Ae5nDC;EACE,UAAA;Cf8nDH;Ae/nDC;EACE,mBAAA;CfioDH;AeloDC;EACE,kBAAA;CfooDH;AehoDC;EACE,WAAA;CfkoDH;AepnDC;EACE,kBAAA;CfsnDH;AevnDC;EACE,0BAAA;CfynDH;Ae1nDC;EACE,0BAAA;Cf4nDH;Ae7nDC;EACE,iBAAA;Cf+nDH;AehoDC;EACE,0BAAA;CfkoDH;AenoDC;EACE,0BAAA;CfqoDH;AetoDC;EACE,iBAAA;CfwoDH;AezoDC;EACE,0BAAA;Cf2oDH;Ae5oDC;EACE,0BAAA;Cf8oDH;Ae/oDC;EACE,iBAAA;CfipDH;AelpDC;EACE,0BAAA;CfopDH;AerpDC;EACE,yBAAA;CfupDH;AexpDC;EACE,gBAAA;Cf0pDH;Aa1pDD;EElCI;IACE,YAAA;Gf+rDH;EexrDD;IACE,YAAA;Gf0rDD;Ee3rDD;IACE,oBAAA;Gf6rDD;Ee9rDD;IACE,oBAAA;GfgsDD;EejsDD;IACE,WAAA;GfmsDD;EepsDD;IACE,oBAAA;GfssDD;EevsDD;IACE,oBAAA;GfysDD;Ee1sDD;IACE,WAAA;Gf4sDD;Ee7sDD;IACE,oBAAA;Gf+sDD;EehtDD;IACE,oBAAA;GfktDD;EentDD;IACE,WAAA;GfqtDD;EettDD;IACE,oBAAA;GfwtDD;EeztDD;IACE,mBAAA;Gf2tDD;Ee7sDD;IACE,YAAA;Gf+sDD;EehtDD;IACE,oBAAA;GfktDD;EentDD;IACE,oBAAA;GfqtDD;EettDD;IACE,WAAA;GfwtDD;EeztDD;IACE,oBAAA;Gf2tDD;Ee5tDD;IACE,oBAAA;Gf8tDD;Ee/tDD;IACE,WAAA;GfiuDD;EeluDD;IACE,oBAAA;GfouDD;EeruDD;IACE,oBAAA;GfuuDD;EexuDD;IACE,WAAA;Gf0uDD;Ee3uDD;IACE,oBAAA;Gf6uDD;Ee9uDD;IACE,mBAAA;GfgvDD;Ee5uDD;IACE,YAAA;Gf8uDD;Ee9vDD;IACE,WAAA;GfgwDD;EejwDD;IACE,mBAAA;GfmwDD;EepwDD;IACE,mBAAA;GfswDD;EevwDD;IACE,UAAA;GfywDD;Ee1wDD;IACE,mBAAA;Gf4wDD;Ee7wDD;IACE,mBAAA;Gf+wDD;EehxDD;IACE,UAAA;GfkxDD;EenxDD;IACE,mBAAA;GfqxDD;EetxDD;IACE,mBAAA;GfwxDD;EezxDD;IACE,UAAA;Gf2xDD;Ee5xDD;IACE,mBAAA;Gf8xDD;Ee/xDD;IACE,kBAAA;GfiyDD;Ee7xDD;IACE,WAAA;Gf+xDD;EejxDD;IACE,kBAAA;GfmxDD;EepxDD;IACE,0BAAA;GfsxDD;EevxDD;IACE,0BAAA;GfyxDD;Ee1xDD;IACE,iBAAA;Gf4xDD;Ee7xDD;IACE,0BAAA;Gf+xDD;EehyDD;IACE,0BAAA;GfkyDD;EenyDD;IACE,iBAAA;GfqyDD;EetyDD;IACE,0BAAA;GfwyDD;EezyDD;IACE,0BAAA;Gf2yDD;Ee5yDD;IACE,iBAAA;Gf8yDD;Ee/yDD;IACE,0BAAA;GfizDD;EelzDD;IACE,yBAAA;GfozDD;EerzDD;IACE,gBAAA;GfuzDD;CACF;Aa/yDD;EE3CI;IACE,YAAA;Gf61DH;Eet1DD;IACE,YAAA;Gfw1DD;Eez1DD;IACE,oBAAA;Gf21DD;Ee51DD;IACE,oBAAA;Gf81DD;Ee/1DD;IACE,WAAA;Gfi2DD;Eel2DD;IACE,oBAAA;Gfo2DD;Eer2DD;IACE,oBAAA;Gfu2DD;Eex2DD;IACE,WAAA;Gf02DD;Ee32DD;IACE,oBAAA;Gf62DD;Ee92DD;IACE,oBAAA;Gfg3DD;Eej3DD;IACE,WAAA;Gfm3DD;Eep3DD;IACE,oBAAA;Gfs3DD;Eev3DD;IACE,mBAAA;Gfy3DD;Ee32DD;IACE,YAAA;Gf62DD;Ee92DD;IACE,oBAAA;Gfg3DD;Eej3DD;IACE,oBAAA;Gfm3DD;Eep3DD;IACE,WAAA;Gfs3DD;Eev3DD;IACE,oBAAA;Gfy3DD;Ee13DD;IACE,oBAAA;Gf43DD;Ee73DD;IACE,WAAA;Gf+3DD;Eeh4DD;IACE,oBAAA;Gfk4DD;Een4DD;IACE,oBAAA;Gfq4DD;Eet4DD;IACE,WAAA;Gfw4DD;Eez4DD;IACE,oBAAA;Gf24DD;Ee54DD;IACE,mBAAA;Gf84DD;Ee14DD;IACE,YAAA;Gf44DD;Ee55DD;IACE,WAAA;Gf85DD;Ee/5DD;IACE,mBAAA;Gfi6DD;Eel6DD;IACE,mBAAA;Gfo6DD;Eer6DD;IACE,UAAA;Gfu6DD;Eex6DD;IACE,mBAAA;Gf06DD;Ee36DD;IACE,mBAAA;Gf66DD;Ee96DD;IACE,UAAA;Gfg7DD;Eej7DD;IACE,mBAAA;Gfm7DD;Eep7DD;IACE,mBAAA;Gfs7DD;Eev7DD;IACE,UAAA;Gfy7DD;Ee17DD;IACE,mBAAA;Gf47DD;Ee77DD;IACE,kBAAA;Gf+7DD;Ee37DD;IACE,WAAA;Gf67DD;Ee/6DD;IACE,kBAAA;Gfi7DD;Eel7DD;IACE,0BAAA;Gfo7DD;Eer7DD;IACE,0BAAA;Gfu7DD;Eex7DD;IACE,iBAAA;Gf07DD;Ee37DD;IACE,0BAAA;Gf67DD;Ee97DD;IACE,0BAAA;Gfg8DD;Eej8DD;IACE,iBAAA;Gfm8DD;Eep8DD;IACE,0BAAA;Gfs8DD;Eev8DD;IACE,0BAAA;Gfy8DD;Ee18DD;IACE,iBAAA;Gf48DD;Ee78DD;IACE,0BAAA;Gf+8DD;Eeh9DD;IACE,yBAAA;Gfk9DD;Een9DD;IACE,gBAAA;Gfq9DD;CACF;Aa18DD;EE9CI;IACE,YAAA;Gf2/DH;Eep/DD;IACE,YAAA;Gfs/DD;Eev/DD;IACE,oBAAA;Gfy/DD;Ee1/DD;IACE,oBAAA;Gf4/DD;Ee7/DD;IACE,WAAA;Gf+/DD;EehgED;IACE,oBAAA;GfkgED;EengED;IACE,oBAAA;GfqgED;EetgED;IACE,WAAA;GfwgED;EezgED;IACE,oBAAA;Gf2gED;Ee5gED;IACE,oBAAA;Gf8gED;Ee/gED;IACE,WAAA;GfihED;EelhED;IACE,oBAAA;GfohED;EerhED;IACE,mBAAA;GfuhED;EezgED;IACE,YAAA;Gf2gED;Ee5gED;IACE,oBAAA;Gf8gED;Ee/gED;IACE,oBAAA;GfihED;EelhED;IACE,WAAA;GfohED;EerhED;IACE,oBAAA;GfuhED;EexhED;IACE,oBAAA;Gf0hED;Ee3hED;IACE,WAAA;Gf6hED;Ee9hED;IACE,oBAAA;GfgiED;EejiED;IACE,oBAAA;GfmiED;EepiED;IACE,WAAA;GfsiED;EeviED;IACE,oBAAA;GfyiED;Ee1iED;IACE,mBAAA;Gf4iED;EexiED;IACE,YAAA;Gf0iED;Ee1jED;IACE,WAAA;Gf4jED;Ee7jED;IACE,mBAAA;Gf+jED;EehkED;IACE,mBAAA;GfkkED;EenkED;IACE,UAAA;GfqkED;EetkED;IACE,mBAAA;GfwkED;EezkED;IACE,mBAAA;Gf2kED;Ee5kED;IACE,UAAA;Gf8kED;Ee/kED;IACE,mBAAA;GfilED;EellED;IACE,mBAAA;GfolED;EerlED;IACE,UAAA;GfulED;EexlED;IACE,mBAAA;Gf0lED;Ee3lED;IACE,kBAAA;Gf6lED;EezlED;IACE,WAAA;Gf2lED;Ee7kED;IACE,kBAAA;Gf+kED;EehlED;IACE,0BAAA;GfklED;EenlED;IACE,0BAAA;GfqlED;EetlED;IACE,iBAAA;GfwlED;EezlED;IACE,0BAAA;Gf2lED;Ee5lED;IACE,0BAAA;Gf8lED;Ee/lED;IACE,iBAAA;GfimED;EelmED;IACE,0BAAA;GfomED;EermED;IACE,0BAAA;GfumED;EexmED;IACE,iBAAA;Gf0mED;Ee3mED;IACE,0BAAA;Gf6mED;Ee9mED;IACE,yBAAA;GfgnED;EejnED;IACE,gBAAA;GfmnED;CACF;AgBvrED;EACE,8BAAA;ChByrED;AgBvrED;EACE,iBAAA;EACA,oBAAA;EACA,eAAA;EACA,iBAAA;ChByrED;AgBvrED;EACE,iBAAA;ChByrED;AgBnrED;EACE,YAAA;EACA,gBAAA;EACA,oBAAA;ChBqrED;AgBxrED;;;;;;EAWQ,aAAA;EACA,wBAAA;EACA,oBAAA;EACA,2BAAA;ChBqrEP;AgBnsED;EAoBI,uBAAA;EACA,8BAAA;ChBkrEH;AgBvsED;;;;;;EA8BQ,cAAA;ChBirEP;AgB/sED;EAoCI,2BAAA;ChB8qEH;AgBltED;EAyCI,uBAAA;ChB4qEH;AgBrqED;;;;;;EAOQ,aAAA;ChBsqEP;AgB3pED;EACE,uBAAA;ChB6pED;AgB9pED;;;;;;EAQQ,uBAAA;ChB8pEP;AgBtqED;;EAeM,yBAAA;ChB2pEL;AgBjpED;EAEI,0BAAA;ChBkpEH;AgBzoED;EAEI,0BAAA;ChB0oEH;AgBjoED;EACE,iBAAA;EACA,YAAA;EACA,sBAAA;ChBmoED;AgB9nEG;;EACE,iBAAA;EACA,YAAA;EACA,oBAAA;ChBioEL;AiB7wEC;;;;;;;;;;;;EAOI,0BAAA;CjBoxEL;AiB9wEC;;;;;EAMI,0BAAA;CjB+wEL;AiBlyEC;;;;;;;;;;;;EAOI,0BAAA;CjByyEL;AiBnyEC;;;;;EAMI,0BAAA;CjBoyEL;AiBvzEC;;;;;;;;;;;;EAOI,0BAAA;CjB8zEL;AiBxzEC;;;;;EAMI,0BAAA;CjByzEL;AiB50EC;;;;;;;;;;;;EAOI,0BAAA;CjBm1EL;AiB70EC;;;;;EAMI,0BAAA;CjB80EL;AiBj2EC;;;;;;;;;;;;EAOI,0BAAA;CjBw2EL;AiBl2EC;;;;;EAMI,0BAAA;CjBm2EL;AgBjtED;EACE,iBAAA;EACA,kBAAA;ChBmtED;AgBtpED;EACA;IA3DI,YAAA;IACA,oBAAA;IACA,mBAAA;IACA,6CAAA;IACA,uBAAA;GhBotED;EgB7pEH;IAnDM,iBAAA;GhBmtEH;EgBhqEH;;;;;;IA1CY,oBAAA;GhBktET;EgBxqEH;IAlCM,UAAA;GhB6sEH;EgB3qEH;;;;;;IAzBY,eAAA;GhB4sET;EgBnrEH;;;;;;IArBY,gBAAA;GhBgtET;EgB3rEH;;;;IARY,iBAAA;GhBysET;CACF;AkBn6ED;EACE,WAAA;EACA,UAAA;EACA,UAAA;EAIA,aAAA;ClBk6ED;AkB/5ED;EACE,eAAA;EACA,YAAA;EACA,WAAA;EACA,oBAAA;EACA,gBAAA;EACA,qBAAA;EACA,eAAA;EACA,UAAA;EACA,iCAAA;ClBi6ED;AkB95ED;EACE,sBAAA;EACA,gBAAA;EACA,mBAAA;EACA,kBAAA;ClBg6ED;AkBr5ED;Eb4BE,+BAAA;EACG,4BAAA;EACK,uBAAA;CL43ET;AkBr5ED;;EAEE,gBAAA;EACA,mBAAA;EACA,oBAAA;ClBu5ED;AkBp5ED;EACE,eAAA;ClBs5ED;AkBl5ED;EACE,eAAA;EACA,YAAA;ClBo5ED;AkBh5ED;;EAEE,aAAA;ClBk5ED;AkB94ED;;;EZrEE,2CAAA;EACA,qBAAA;CNw9ED;AkB74ED;EACE,eAAA;EACA,iBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;ClB+4ED;AkBr3ED;EACE,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;EbxDA,yDAAA;EACQ,iDAAA;EAyHR,uFAAA;EACK,0EAAA;EACG,uEAAA;CLwzET;AmBh8EC;EACE,sBAAA;EACA,WAAA;EdUF,uFAAA;EACQ,+EAAA;CLy7ET;AKx5EC;EACE,YAAA;EACA,WAAA;CL05EH;AKx5EC;EAA0B,YAAA;CL25E3B;AK15EC;EAAgC,YAAA;CL65EjC;AkBj4EC;EACE,UAAA;EACA,8BAAA;ClBm4EH;AkB33EC;;;EAGE,0BAAA;EACA,WAAA;ClB63EH;AkB13EC;;EAEE,oBAAA;ClB43EH;AkBx3EC;EACE,aAAA;ClB03EH;AkB92ED;EACE,yBAAA;ClBg3ED;AkBx0ED;EAtBI;;;;IACE,kBAAA;GlBo2EH;EkBj2EC;;;;;;;;IAEE,kBAAA;GlBy2EH;EkBt2EC;;;;;;;;IAEE,kBAAA;GlB82EH;CACF;AkBp2ED;EACE,oBAAA;ClBs2ED;AkB91ED;;EAEE,mBAAA;EACA,eAAA;EACA,iBAAA;EACA,oBAAA;ClBg2ED;AkBr2ED;;EAQI,iBAAA;EACA,mBAAA;EACA,iBAAA;EACA,oBAAA;EACA,gBAAA;ClBi2EH;AkB91ED;;;;EAIE,mBAAA;EACA,mBAAA;EACA,mBAAA;ClBg2ED;AkB71ED;;EAEE,iBAAA;ClB+1ED;AkB31ED;;EAEE,mBAAA;EACA,sBAAA;EACA,mBAAA;EACA,iBAAA;EACA,uBAAA;EACA,oBAAA;EACA,gBAAA;ClB61ED;AkB31ED;;EAEE,cAAA;EACA,kBAAA;ClB61ED;AkBp1EC;;;;;;EAGE,oBAAA;ClBy1EH;AkBn1EC;;;;EAEE,oBAAA;ClBu1EH;AkBj1EC;;;;EAGI,oBAAA;ClBo1EL;AkBz0ED;EAEE,iBAAA;EACA,oBAAA;EAEA,iBAAA;EACA,iBAAA;ClBy0ED;AkBv0EC;;EAEE,gBAAA;EACA,iBAAA;ClBy0EH;AkB5zED;ECnQE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnBkkFD;AmBhkFC;EACE,aAAA;EACA,kBAAA;CnBkkFH;AmB/jFC;;EAEE,aAAA;CnBikFH;AkBx0ED;EAEI,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;ClBy0EH;AkB/0ED;EASI,aAAA;EACA,kBAAA;ClBy0EH;AkBn1ED;;EAcI,aAAA;ClBy0EH;AkBv1ED;EAiBI,aAAA;EACA,iBAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;ClBy0EH;AkBr0ED;EC/RE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnBumFD;AmBrmFC;EACE,aAAA;EACA,kBAAA;CnBumFH;AmBpmFC;;EAEE,aAAA;CnBsmFH;AkBj1ED;EAEI,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;ClBk1EH;AkBx1ED;EASI,aAAA;EACA,kBAAA;ClBk1EH;AkB51ED;;EAcI,aAAA;ClBk1EH;AkBh2ED;EAiBI,aAAA;EACA,iBAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;ClBk1EH;AkBz0ED;EAEE,mBAAA;ClB00ED;AkB50ED;EAMI,sBAAA;ClBy0EH;AkBr0ED;EACE,mBAAA;EACA,OAAA;EACA,SAAA;EACA,WAAA;EACA,eAAA;EACA,YAAA;EACA,aAAA;EACA,kBAAA;EACA,mBAAA;EACA,qBAAA;ClBu0ED;AkBr0ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClBu0ED;AkBr0ED;;;EAGE,YAAA;EACA,aAAA;EACA,kBAAA;ClBu0ED;AkBn0ED;;;;;;;;;;EC1ZI,eAAA;CnByuFH;AkB/0ED;ECtZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CL0rFT;AmBxuFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL+rFT;AkBz1ED;EC5YI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBwuFH;AkB91ED;ECtYI,eAAA;CnBuuFH;AkB91ED;;;;;;;;;;EC7ZI,eAAA;CnBuwFH;AkB12ED;ECzZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CLwtFT;AmBtwFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL6tFT;AkBp3ED;EC/YI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBswFH;AkBz3ED;ECzYI,eAAA;CnBqwFH;AkBz3ED;;;;;;;;;;EChaI,eAAA;CnBqyFH;AkBr4ED;EC5ZI,sBAAA;Ed+CF,yDAAA;EACQ,iDAAA;CLsvFT;AmBpyFG;EACE,sBAAA;Ed4CJ,0EAAA;EACQ,kEAAA;CL2vFT;AkB/4ED;EClZI,eAAA;EACA,sBAAA;EACA,0BAAA;CnBoyFH;AkBp5ED;EC5YI,eAAA;CnBmyFH;AkBh5EC;EACE,UAAA;ClBk5EH;AkBh5EC;EACE,OAAA;ClBk5EH;AkBx4ED;EACE,eAAA;EACA,gBAAA;EACA,oBAAA;EACA,eAAA;ClB04ED;AkBvzED;EAwEA;IAtIM,sBAAA;IACA,iBAAA;IACA,uBAAA;GlBy3EH;EkBrvEH;IA/HM,sBAAA;IACA,YAAA;IACA,uBAAA;GlBu3EH;EkB1vEH;IAxHM,sBAAA;GlBq3EH;EkB7vEH;IApHM,sBAAA;IACA,uBAAA;GlBo3EH;EkBjwEH;;;IA9GQ,YAAA;GlBo3EL;EkBtwEH;IAxGM,YAAA;GlBi3EH;EkBzwEH;IApGM,iBAAA;IACA,uBAAA;GlBg3EH;EkB7wEH;;IA5FM,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlB62EH;EkBpxEH;;IAtFQ,gBAAA;GlB82EL;EkBxxEH;;IAjFM,mBAAA;IACA,eAAA;GlB62EH;EkB7xEH;IA3EM,OAAA;GlB22EH;CACF;AkBj2ED;;;;EASI,cAAA;EACA,iBAAA;EACA,iBAAA;ClB81EH;AkBz2ED;;EAiBI,iBAAA;ClB41EH;AkB72ED;EJthBE,mBAAA;EACA,oBAAA;Cds4FD;AkB10EC;EAyBF;IAnCM,kBAAA;IACA,iBAAA;IACA,iBAAA;GlBw1EH;CACF;AkBx3ED;EAwCI,YAAA;ClBm1EH;AkBr0EC;EAUF;IAdQ,kBAAA;IACA,gBAAA;GlB60EL;CACF;AkBn0EC;EAEF;IANQ,iBAAA;IACA,gBAAA;GlB20EL;CACF;AoBp6FD;EACE,sBAAA;EACA,iBAAA;EACA,oBAAA;EACA,mBAAA;EACA,uBAAA;EACA,+BAAA;MAAA,2BAAA;EACA,gBAAA;EACA,uBAAA;EACA,8BAAA;EACA,oBAAA;EC0CA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,mBAAA;EhB+JA,0BAAA;EACG,uBAAA;EACC,sBAAA;EACI,kBAAA;CL+tFT;AoBv6FG;;;;;;EdnBF,2CAAA;EACA,qBAAA;CNk8FD;AoB16FC;;;EAGE,YAAA;EACA,sBAAA;CpB46FH;AoBz6FC;;EAEE,WAAA;EACA,uBAAA;Ef2BF,yDAAA;EACQ,iDAAA;CLi5FT;AoBz6FC;;;EAGE,oBAAA;EE7CF,cAAA;EAGA,0BAAA;EjB8DA,yBAAA;EACQ,iBAAA;CL05FT;AoBz6FG;;EAEE,qBAAA;CpB26FL;AoBl6FD;EC3DE,YAAA;EACA,uBAAA;EACA,mBAAA;CrBg+FD;AqB99FC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBg+FP;AqB99FC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBg+FP;AqB99FC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBg+FP;AqB99FG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBs+FT;AqBn+FC;;;EAGE,uBAAA;CrBq+FH;AqBh+FG;;;;;;;;;EAGE,uBAAA;EACI,mBAAA;CrBw+FT;AoBv9FD;ECZI,YAAA;EACA,uBAAA;CrBs+FH;AoBx9FD;EC9DE,YAAA;EACA,0BAAA;EACA,sBAAA;CrByhGD;AqBvhGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrByhGP;AqBvhGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrByhGP;AqBvhGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrByhGP;AqBvhGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB+hGT;AqB5hGC;;;EAGE,uBAAA;CrB8hGH;AqBzhGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrBiiGT;AoB7gGD;ECfI,eAAA;EACA,uBAAA;CrB+hGH;AoB7gGD;EClEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBklGD;AqBhlGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBklGP;AqBhlGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBklGP;AqBhlGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBklGP;AqBhlGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBwlGT;AqBrlGC;;;EAGE,uBAAA;CrBulGH;AqBllGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrB0lGT;AoBlkGD;ECnBI,eAAA;EACA,uBAAA;CrBwlGH;AoBlkGD;ECtEE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB2oGD;AqBzoGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB2oGP;AqBzoGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB2oGP;AqBzoGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB2oGP;AqBzoGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBipGT;AqB9oGC;;;EAGE,uBAAA;CrBgpGH;AqB3oGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrBmpGT;AoBvnGD;ECvBI,eAAA;EACA,uBAAA;CrBipGH;AoBvnGD;EC1EE,YAAA;EACA,0BAAA;EACA,sBAAA;CrBosGD;AqBlsGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBosGP;AqBlsGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBosGP;AqBlsGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBosGP;AqBlsGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB0sGT;AqBvsGC;;;EAGE,uBAAA;CrBysGH;AqBpsGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrB4sGT;AoB5qGD;EC3BI,eAAA;EACA,uBAAA;CrB0sGH;AoB5qGD;EC9EE,YAAA;EACA,0BAAA;EACA,sBAAA;CrB6vGD;AqB3vGC;;EAEE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB6vGP;AqB3vGC;EACE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB6vGP;AqB3vGC;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrB6vGP;AqB3vGG;;;;;;;;;EAGE,YAAA;EACA,0BAAA;EACI,sBAAA;CrBmwGT;AqBhwGC;;;EAGE,uBAAA;CrBkwGH;AqB7vGG;;;;;;;;;EAGE,0BAAA;EACI,sBAAA;CrBqwGT;AoBjuGD;EC/BI,eAAA;EACA,uBAAA;CrBmwGH;AoB5tGD;EACE,eAAA;EACA,oBAAA;EACA,iBAAA;CpB8tGD;AoB5tGC;;;;;EAKE,8BAAA;EfnCF,yBAAA;EACQ,iBAAA;CLkwGT;AoB7tGC;;;;EAIE,0BAAA;CpB+tGH;AoB7tGC;;EAEE,eAAA;EACA,2BAAA;EACA,8BAAA;CpB+tGH;AoB3tGG;;;;EAEE,eAAA;EACA,sBAAA;CpB+tGL;AoBttGD;;ECxEE,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CrBkyGD;AoBztGD;;EC5EE,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrByyGD;AoB5tGD;;EChFE,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CrBgzGD;AoB3tGD;EACE,eAAA;EACA,YAAA;CpB6tGD;AoBztGD;EACE,gBAAA;CpB2tGD;AoBptGC;;;EACE,YAAA;CpBwtGH;AuBl3GD;EACE,WAAA;ElBoLA,yCAAA;EACK,oCAAA;EACG,iCAAA;CLisGT;AuBr3GC;EACE,WAAA;CvBu3GH;AuBn3GD;EACE,cAAA;CvBq3GD;AuBn3GC;EAAY,eAAA;CvBs3Gb;AuBr3GC;EAAY,mBAAA;CvBw3Gb;AuBv3GC;EAAY,yBAAA;CvB03Gb;AuBv3GD;EACE,mBAAA;EACA,UAAA;EACA,iBAAA;ElBuKA,gDAAA;EACQ,2CAAA;KAAA,wCAAA;EAOR,mCAAA;EACQ,8BAAA;KAAA,2BAAA;EAGR,yCAAA;EACQ,oCAAA;KAAA,iCAAA;CL2sGT;AwBr5GD;EACE,sBAAA;EACA,SAAA;EACA,UAAA;EACA,iBAAA;EACA,uBAAA;EACA,uBAAA;EACA,yBAAA;EACA,oCAAA;EACA,mCAAA;CxBu5GD;AwBn5GD;;EAEE,mBAAA;CxBq5GD;AwBj5GD;EACE,WAAA;CxBm5GD;AwB/4GD;EACE,mBAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,iBAAA;EACA,uBAAA;EACA,uBAAA;EACA,sCAAA;EACA,mBAAA;EnBsBA,oDAAA;EACQ,4CAAA;EmBrBR,qCAAA;UAAA,6BAAA;CxBk5GD;AwB74GC;EACE,SAAA;EACA,WAAA;CxB+4GH;AwBx6GD;ECzBE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzBo8GD;AwB96GD;EAmCI,eAAA;EACA,kBAAA;EACA,YAAA;EACA,oBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxB84GH;AwBx4GC;;EAEE,sBAAA;EACA,eAAA;EACA,0BAAA;CxB04GH;AwBp4GC;;;EAGE,YAAA;EACA,sBAAA;EACA,WAAA;EACA,0BAAA;CxBs4GH;AwB73GC;;;EAGE,eAAA;CxB+3GH;AwB33GC;;EAEE,sBAAA;EACA,8BAAA;EACA,uBAAA;EE3GF,oEAAA;EF6GE,oBAAA;CxB63GH;AwBx3GD;EAGI,eAAA;CxBw3GH;AwB33GD;EAQI,WAAA;CxBs3GH;AwB92GD;EACE,WAAA;EACA,SAAA;CxBg3GD;AwBx2GD;EACE,QAAA;EACA,YAAA;CxB02GD;AwBt2GD;EACE,eAAA;EACA,kBAAA;EACA,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,oBAAA;CxBw2GD;AwBp2GD;EACE,gBAAA;EACA,QAAA;EACA,SAAA;EACA,UAAA;EACA,OAAA;EACA,aAAA;CxBs2GD;AwBl2GD;EACE,SAAA;EACA,WAAA;CxBo2GD;AwB51GD;;EAII,cAAA;EACA,0BAAA;EACA,4BAAA;EACA,YAAA;CxB41GH;AwBn2GD;;EAWI,UAAA;EACA,aAAA;EACA,mBAAA;CxB41GH;AwBv0GD;EAXE;IApEA,WAAA;IACA,SAAA;GxB05GC;EwBv1GD;IA1DA,QAAA;IACA,YAAA;GxBo5GC;CACF;A2BpiHD;;EAEE,mBAAA;EACA,sBAAA;EACA,uBAAA;C3BsiHD;A2B1iHD;;EAMI,mBAAA;EACA,YAAA;C3BwiHH;A2BtiHG;;;;;;;;EAIE,WAAA;C3B4iHL;A2BtiHD;;;;EAKI,kBAAA;C3BuiHH;A2BliHD;EACE,kBAAA;C3BoiHD;A2BriHD;;;EAOI,YAAA;C3BmiHH;A2B1iHD;;;EAYI,iBAAA;C3BmiHH;A2B/hHD;EACE,iBAAA;C3BiiHD;A2B7hHD;EACE,eAAA;C3B+hHD;A2B9hHC;EClDA,8BAAA;EACG,2BAAA;C5BmlHJ;A2B7hHD;;EC/CE,6BAAA;EACG,0BAAA;C5BglHJ;A2B5hHD;EACE,YAAA;C3B8hHD;A2B5hHD;EACE,iBAAA;C3B8hHD;A2B5hHD;;ECnEE,8BAAA;EACG,2BAAA;C5BmmHJ;A2B3hHD;ECjEE,6BAAA;EACG,0BAAA;C5B+lHJ;A2B1hHD;;EAEE,WAAA;C3B4hHD;A2B3gHD;EACE,kBAAA;EACA,mBAAA;C3B6gHD;A2B3gHD;EACE,mBAAA;EACA,oBAAA;C3B6gHD;A2BxgHD;EtB/CE,yDAAA;EACQ,iDAAA;CL0jHT;A2BxgHC;EtBnDA,yBAAA;EACQ,iBAAA;CL8jHT;A2BrgHD;EACE,eAAA;C3BugHD;A2BpgHD;EACE,wBAAA;EACA,uBAAA;C3BsgHD;A2BngHD;EACE,wBAAA;C3BqgHD;A2B9/GD;;;EAII,eAAA;EACA,YAAA;EACA,YAAA;EACA,gBAAA;C3B+/GH;A2BtgHD;EAcM,YAAA;C3B2/GL;A2BzgHD;;;;EAsBI,iBAAA;EACA,eAAA;C3By/GH;A2Bp/GC;EACE,iBAAA;C3Bs/GH;A2Bp/GC;EC3KA,6BAAA;EACC,4BAAA;EAOD,8BAAA;EACC,6BAAA;C5B4pHF;A2Bt/GC;EC/KA,2BAAA;EACC,0BAAA;EAOD,gCAAA;EACC,+BAAA;C5BkqHF;A2Bv/GD;EACE,iBAAA;C3By/GD;A2Bv/GD;;EC/KE,8BAAA;EACC,6BAAA;C5B0qHF;A2Bt/GD;EC7LE,2BAAA;EACC,0BAAA;C5BsrHF;A2Bl/GD;EACE,eAAA;EACA,YAAA;EACA,oBAAA;EACA,0BAAA;C3Bo/GD;A2Bx/GD;;EAOI,YAAA;EACA,oBAAA;EACA,UAAA;C3Bq/GH;A2B9/GD;EAYI,YAAA;C3Bq/GH;A2BjgHD;EAgBI,WAAA;C3Bo/GH;A2Bn+GD;;;;EAKM,mBAAA;EACA,uBAAA;EACA,qBAAA;C3Bo+GL;A6B9sHD;EACE,mBAAA;EACA,eAAA;EACA,0BAAA;C7BgtHD;A6B7sHC;EACE,YAAA;EACA,gBAAA;EACA,iBAAA;C7B+sHH;A6BxtHD;EAeI,mBAAA;EACA,WAAA;EAKA,YAAA;EAEA,YAAA;EACA,iBAAA;C7BusHH;A6BrsHG;EACE,WAAA;C7BusHL;A6B7rHD;;;EV0BE,aAAA;EACA,mBAAA;EACA,gBAAA;EACA,uBAAA;EACA,mBAAA;CnBwqHD;AmBtqHC;;;EACE,aAAA;EACA,kBAAA;CnB0qHH;AmBvqHC;;;;;;EAEE,aAAA;CnB6qHH;A6B/sHD;;;EVqBE,aAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;CnB+rHD;AmB7rHC;;;EACE,aAAA;EACA,kBAAA;CnBisHH;AmB9rHC;;;;;;EAEE,aAAA;CnBosHH;A6B7tHD;;;EAGE,oBAAA;C7B+tHD;A6B7tHC;;;EACE,iBAAA;C7BiuHH;A6B7tHD;;EAEE,UAAA;EACA,oBAAA;EACA,uBAAA;C7B+tHD;A6B1tHD;EACE,kBAAA;EACA,gBAAA;EACA,oBAAA;EACA,eAAA;EACA,eAAA;EACA,mBAAA;EACA,0BAAA;EACA,uBAAA;EACA,mBAAA;C7B4tHD;A6BztHC;EACE,kBAAA;EACA,gBAAA;EACA,mBAAA;C7B2tHH;A6BztHC;EACE,mBAAA;EACA,gBAAA;EACA,mBAAA;C7B2tHH;A6B/uHD;;EA0BI,cAAA;C7BytHH;A6BptHD;;;;;;;EDpGE,8BAAA;EACG,2BAAA;C5Bi0HJ;A6BrtHD;EACE,gBAAA;C7ButHD;A6BrtHD;;;;;;;EDxGE,6BAAA;EACG,0BAAA;C5Bs0HJ;A6BttHD;EACE,eAAA;C7BwtHD;A6BntHD;EACE,mBAAA;EAGA,aAAA;EACA,oBAAA;C7BmtHD;A6BxtHD;EAUI,mBAAA;C7BitHH;A6B3tHD;EAYM,kBAAA;C7BktHL;A6B/sHG;;;EAGE,WAAA;C7BitHL;A6B5sHC;;EAGI,mBAAA;C7B6sHL;A6B1sHC;;EAGI,WAAA;EACA,kBAAA;C7B2sHL;A8B12HD;EACE,iBAAA;EACA,gBAAA;EACA,iBAAA;C9B42HD;A8B/2HD;EAOI,mBAAA;EACA,eAAA;C9B22HH;A8Bn3HD;EAWM,mBAAA;EACA,eAAA;EACA,mBAAA;C9B22HL;A8B12HK;;EAEE,sBAAA;EACA,0BAAA;C9B42HP;A8Bv2HG;EACE,eAAA;C9By2HL;A8Bv2HK;;EAEE,eAAA;EACA,sBAAA;EACA,8BAAA;EACA,oBAAA;C9By2HP;A8Bl2HG;;;EAGE,0BAAA;EACA,sBAAA;C9Bo2HL;A8B74HD;ELHE,YAAA;EACA,cAAA;EACA,iBAAA;EACA,0BAAA;CzBm5HD;A8Bn5HD;EA0DI,gBAAA;C9B41HH;A8Bn1HD;EACE,8BAAA;C9Bq1HD;A8Bt1HD;EAGI,YAAA;EAEA,oBAAA;C9Bq1HH;A8B11HD;EASM,kBAAA;EACA,wBAAA;EACA,8BAAA;EACA,2BAAA;C9Bo1HL;A8Bn1HK;EACE,mCAAA;C9Bq1HP;A8B/0HK;;;EAGE,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,iCAAA;EACA,gBAAA;C9Bi1HP;A8B50HC;EAqDA,YAAA;EA8BA,iBAAA;C9B6vHD;A8Bh1HC;EAwDE,YAAA;C9B2xHH;A8Bn1HC;EA0DI,mBAAA;EACA,mBAAA;C9B4xHL;A8Bv1HC;EAgEE,UAAA;EACA,WAAA;C9B0xHH;A8B9wHD;EA0DA;IAjEM,oBAAA;IACA,UAAA;G9ByxHH;E8BztHH;IA9DQ,iBAAA;G9B0xHL;CACF;A8Bp2HC;EAuFE,gBAAA;EACA,mBAAA;C9BgxHH;A8Bx2HC;;;EA8FE,uBAAA;C9B+wHH;A8BjwHD;EA2BA;IApCM,8BAAA;IACA,2BAAA;G9B8wHH;E8B3uHH;;;IA9BM,0BAAA;G9B8wHH;CACF;A8B/2HD;EAEI,YAAA;C9Bg3HH;A8Bl3HD;EAMM,mBAAA;C9B+2HL;A8Br3HD;EASM,iBAAA;C9B+2HL;A8B12HK;;;EAGE,YAAA;EACA,0BAAA;C9B42HP;A8Bp2HD;EAEI,YAAA;C9Bq2HH;A8Bv2HD;EAIM,gBAAA;EACA,eAAA;C9Bs2HL;A8B11HD;EACE,YAAA;C9B41HD;A8B71HD;EAII,YAAA;C9B41HH;A8Bh2HD;EAMM,mBAAA;EACA,mBAAA;C9B61HL;A8Bp2HD;EAYI,UAAA;EACA,WAAA;C9B21HH;A8B/0HD;EA0DA;IAjEM,oBAAA;IACA,UAAA;G9B01HH;E8B1xHH;IA9DQ,iBAAA;G9B21HL;CACF;A8Bn1HD;EACE,iBAAA;C9Bq1HD;A8Bt1HD;EAKI,gBAAA;EACA,mBAAA;C9Bo1HH;A8B11HD;;;EAYI,uBAAA;C9Bm1HH;A8Br0HD;EA2BA;IApCM,8BAAA;IACA,2BAAA;G9Bk1HH;E8B/yHH;;;IA9BM,0BAAA;G9Bk1HH;CACF;A8Bz0HD;EAEI,cAAA;C9B00HH;A8B50HD;EAKI,eAAA;C9B00HH;A8Bj0HD;EAEE,iBAAA;EF3OA,2BAAA;EACC,0BAAA;C5B8iIF;A+BxiID;EACE,mBAAA;EACA,iBAAA;EACA,oBAAA;EACA,8BAAA;C/B0iID;A+BliID;EA8nBA;IAhoBI,mBAAA;G/BwiID;CACF;A+BzhID;EAgnBA;IAlnBI,YAAA;G/B+hID;CACF;A+BjhID;EACE,oBAAA;EACA,oBAAA;EACA,mBAAA;EACA,kCAAA;EACA,2DAAA;UAAA,mDAAA;EAEA,kCAAA;C/BkhID;A+BhhIC;EACE,iBAAA;C/BkhIH;A+Bt/HD;EA6jBA;IArlBI,YAAA;IACA,cAAA;IACA,yBAAA;YAAA,iBAAA;G/BkhID;E+BhhIC;IACE,0BAAA;IACA,wBAAA;IACA,kBAAA;IACA,6BAAA;G/BkhIH;E+B/gIC;IACE,oBAAA;G/BihIH;E+B5gIC;;;IAGE,gBAAA;IACA,iBAAA;G/B8gIH;CACF;A+B1gID;;EAGI,kBAAA;C/B2gIH;A+BtgIC;EAmjBF;;IArjBM,kBAAA;G/B6gIH;CACF;A+BpgID;;;;EAII,oBAAA;EACA,mBAAA;C/BsgIH;A+BhgIC;EAgiBF;;;;IAniBM,gBAAA;IACA,eAAA;G/B0gIH;CACF;A+B9/HD;EACE,cAAA;EACA,sBAAA;C/BggID;A+B3/HD;EA8gBA;IAhhBI,iBAAA;G/BigID;CACF;A+B7/HD;;EAEE,gBAAA;EACA,SAAA;EACA,QAAA;EACA,cAAA;C/B+/HD;A+Bz/HD;EAggBA;;IAlgBI,iBAAA;G/BggID;CACF;A+B9/HD;EACE,OAAA;EACA,sBAAA;C/BggID;A+B9/HD;EACE,UAAA;EACA,iBAAA;EACA,sBAAA;C/BggID;A+B1/HD;EACE,YAAA;EACA,mBAAA;EACA,gBAAA;EACA,kBAAA;EACA,aAAA;C/B4/HD;A+B1/HC;;EAEE,sBAAA;C/B4/HH;A+BrgID;EAaI,eAAA;C/B2/HH;A+Bl/HD;EALI;;IAEE,mBAAA;G/B0/HH;CACF;A+Bh/HD;EACE,mBAAA;EACA,aAAA;EACA,mBAAA;EACA,kBAAA;EC9LA,gBAAA;EACA,mBAAA;ED+LA,8BAAA;EACA,uBAAA;EACA,8BAAA;EACA,mBAAA;C/Bm/HD;A+B/+HC;EACE,WAAA;C/Bi/HH;A+B//HD;EAmBI,eAAA;EACA,YAAA;EACA,YAAA;EACA,mBAAA;C/B++HH;A+BrgID;EAyBI,gBAAA;C/B++HH;A+Bz+HD;EAqbA;IAvbI,cAAA;G/B++HD;CACF;A+Bt+HD;EACE,oBAAA;C/Bw+HD;A+Bz+HD;EAII,kBAAA;EACA,qBAAA;EACA,kBAAA;C/Bw+HH;A+B58HC;EA2YF;IAjaM,iBAAA;IACA,YAAA;IACA,YAAA;IACA,cAAA;IACA,8BAAA;IACA,UAAA;IACA,yBAAA;YAAA,iBAAA;G/Bs+HH;E+B3kHH;;IAxZQ,2BAAA;G/Bu+HL;E+B/kHH;IArZQ,kBAAA;G/Bu+HL;E+Bt+HK;;IAEE,uBAAA;G/Bw+HP;CACF;A+Bt9HD;EA+XA;IA1YI,YAAA;IACA,UAAA;G/Bq+HD;E+B5lHH;IAtYM,YAAA;G/Bq+HH;E+B/lHH;IApYQ,kBAAA;IACA,qBAAA;G/Bs+HL;CACF;A+B39HD;EACE,mBAAA;EACA,oBAAA;EACA,mBAAA;EACA,kCAAA;EACA,qCAAA;E1B9NA,6FAAA;EACQ,qFAAA;E2B/DR,gBAAA;EACA,mBAAA;ChC4vID;AkBtuHD;EAwEA;IAtIM,sBAAA;IACA,iBAAA;IACA,uBAAA;GlBwyHH;EkBpqHH;IA/HM,sBAAA;IACA,YAAA;IACA,uBAAA;GlBsyHH;EkBzqHH;IAxHM,sBAAA;GlBoyHH;EkB5qHH;IApHM,sBAAA;IACA,uBAAA;GlBmyHH;EkBhrHH;;;IA9GQ,YAAA;GlBmyHL;EkBrrHH;IAxGM,YAAA;GlBgyHH;EkBxrHH;IApGM,iBAAA;IACA,uBAAA;GlB+xHH;EkB5rHH;;IA5FM,sBAAA;IACA,cAAA;IACA,iBAAA;IACA,uBAAA;GlB4xHH;EkBnsHH;;IAtFQ,gBAAA;GlB6xHL;EkBvsHH;;IAjFM,mBAAA;IACA,eAAA;GlB4xHH;EkB5sHH;IA3EM,OAAA;GlB0xHH;CACF;A+BpgIC;EAmWF;IAzWM,mBAAA;G/B8gIH;E+B5gIG;IACE,iBAAA;G/B8gIL;CACF;A+B7/HD;EAoVA;IA5VI,YAAA;IACA,UAAA;IACA,eAAA;IACA,gBAAA;IACA,eAAA;IACA,kBAAA;I1BzPF,yBAAA;IACQ,iBAAA;GLmwIP;CACF;A+BngID;EACE,cAAA;EHpUA,2BAAA;EACC,0BAAA;C5B00IF;A+BngID;EACE,iBAAA;EHzUA,6BAAA;EACC,4BAAA;EAOD,8BAAA;EACC,6BAAA;C5By0IF;A+B//HD;EChVE,gBAAA;EACA,mBAAA;ChCk1ID;A+BhgIC;ECnVA,iBAAA;EACA,oBAAA;ChCs1ID;A+BjgIC;ECtVA,iBAAA;EACA,oBAAA;ChC01ID;A+B3/HD;EChWE,iBAAA;EACA,oBAAA;ChC81ID;A+Bv/HD;EAsSA;IA1SI,YAAA;IACA,kBAAA;IACA,mBAAA;G/B+/HD;CACF;A+Bl+HD;EAhBE;IExWA,uBAAA;GjC81IC;E+Br/HD;IE5WA,wBAAA;IF8WE,oBAAA;G/Bu/HD;E+Bz/HD;IAKI,gBAAA;G/Bu/HH;CACF;A+B9+HD;EACE,0BAAA;EACA,sBAAA;C/Bg/HD;A+Bl/HD;EAKI,YAAA;C/Bg/HH;A+B/+HG;;EAEE,eAAA;EACA,8BAAA;C/Bi/HL;A+B1/HD;EAcI,YAAA;C/B++HH;A+B7/HD;EAmBM,YAAA;C/B6+HL;A+B3+HK;;EAEE,YAAA;EACA,8BAAA;C/B6+HP;A+Bz+HK;;;EAGE,YAAA;EACA,0BAAA;C/B2+HP;A+Bv+HK;;;EAGE,YAAA;EACA,8BAAA;C/By+HP;A+BjhID;EA8CI,mBAAA;C/Bs+HH;A+Br+HG;;EAEE,uBAAA;C/Bu+HL;A+BxhID;EAoDM,uBAAA;C/Bu+HL;A+B3hID;;EA0DI,sBAAA;C/Bq+HH;A+B99HK;;;EAGE,0BAAA;EACA,YAAA;C/Bg+HP;A+B/7HC;EAoKF;IA7LU,YAAA;G/B49HP;E+B39HO;;IAEE,YAAA;IACA,8BAAA;G/B69HT;E+Bz9HO;;;IAGE,YAAA;IACA,0BAAA;G/B29HT;E+Bv9HO;;;IAGE,YAAA;IACA,8BAAA;G/By9HT;CACF;A+B3jID;EA8GI,YAAA;C/Bg9HH;A+B/8HG;EACE,YAAA;C/Bi9HL;A+BjkID;EAqHI,YAAA;C/B+8HH;A+B98HG;;EAEE,YAAA;C/Bg9HL;A+B58HK;;;;EAEE,YAAA;C/Bg9HP;A+Bx8HD;EACE,uBAAA;EACA,sBAAA;C/B08HD;A+B58HD;EAKI,eAAA;C/B08HH;A+Bz8HG;;EAEE,YAAA;EACA,8BAAA;C/B28HL;A+Bp9HD;EAcI,eAAA;C/By8HH;A+Bv9HD;EAmBM,eAAA;C/Bu8HL;A+Br8HK;;EAEE,YAAA;EACA,8BAAA;C/Bu8HP;A+Bn8HK;;;EAGE,YAAA;EACA,0BAAA;C/Bq8HP;A+Bj8HK;;;EAGE,YAAA;EACA,8BAAA;C/Bm8HP;A+B3+HD;EA+CI,mBAAA;C/B+7HH;A+B97HG;;EAEE,uBAAA;C/Bg8HL;A+Bl/HD;EAqDM,uBAAA;C/Bg8HL;A+Br/HD;;EA2DI,sBAAA;C/B87HH;A+Bx7HK;;;EAGE,0BAAA;EACA,YAAA;C/B07HP;A+Bn5HC;EAwBF;IAvDU,sBAAA;G/Bs7HP;E+B/3HH;IApDU,0BAAA;G/Bs7HP;E+Bl4HH;IAjDU,eAAA;G/Bs7HP;E+Br7HO;;IAEE,YAAA;IACA,8BAAA;G/Bu7HT;E+Bn7HO;;;IAGE,YAAA;IACA,0BAAA;G/Bq7HT;E+Bj7HO;;;IAGE,YAAA;IACA,8BAAA;G/Bm7HT;CACF;A+B3hID;EA+GI,eAAA;C/B+6HH;A+B96HG;EACE,YAAA;C/Bg7HL;A+BjiID;EAsHI,eAAA;C/B86HH;A+B76HG;;EAEE,YAAA;C/B+6HL;A+B36HK;;;;EAEE,YAAA;C/B+6HP;AkCzjJD;EACE,kBAAA;EACA,oBAAA;EACA,iBAAA;EACA,0BAAA;EACA,mBAAA;ClC2jJD;AkChkJD;EAQI,sBAAA;ClC2jJH;AkCnkJD;EAWM,kBAAA;EACA,eAAA;EACA,YAAA;ClC2jJL;AkCxkJD;EAkBI,eAAA;ClCyjJH;AmC7kJD;EACE,sBAAA;EACA,gBAAA;EACA,eAAA;EACA,mBAAA;CnC+kJD;AmCnlJD;EAOI,gBAAA;CnC+kJH;AmCtlJD;;EAUM,mBAAA;EACA,YAAA;EACA,kBAAA;EACA,wBAAA;EACA,sBAAA;EACA,eAAA;EACA,uBAAA;EACA,uBAAA;EACA,kBAAA;CnCglJL;AmC9kJG;;EAGI,eAAA;EPXN,+BAAA;EACG,4BAAA;C5B2lJJ;AmC7kJG;;EPvBF,gCAAA;EACG,6BAAA;C5BwmJJ;AmCxkJG;;;;EAEE,WAAA;EACA,eAAA;EACA,0BAAA;EACA,mBAAA;CnC4kJL;AmCtkJG;;;;;;EAGE,WAAA;EACA,YAAA;EACA,0BAAA;EACA,sBAAA;EACA,gBAAA;CnC2kJL;AmCloJD;;;;;;EAkEM,eAAA;EACA,uBAAA;EACA,mBAAA;EACA,oBAAA;CnCwkJL;AmC/jJD;;EC3EM,mBAAA;EACA,gBAAA;EACA,uBAAA;CpC8oJL;AoC5oJG;;ERKF,+BAAA;EACG,4BAAA;C5B2oJJ;AoC3oJG;;ERTF,gCAAA;EACG,6BAAA;C5BwpJJ;AmC1kJD;;EChFM,kBAAA;EACA,gBAAA;EACA,iBAAA;CpC8pJL;AoC5pJG;;ERKF,+BAAA;EACG,4BAAA;C5B2pJJ;AoC3pJG;;ERTF,gCAAA;EACG,6BAAA;C5BwqJJ;AqC3qJD;EACE,gBAAA;EACA,eAAA;EACA,iBAAA;EACA,mBAAA;CrC6qJD;AqCjrJD;EAOI,gBAAA;CrC6qJH;AqCprJD;;EAUM,sBAAA;EACA,kBAAA;EACA,uBAAA;EACA,uBAAA;EACA,oBAAA;CrC8qJL;AqC5rJD;;EAmBM,sBAAA;EACA,0BAAA;CrC6qJL;AqCjsJD;;EA2BM,aAAA;CrC0qJL;AqCrsJD;;EAkCM,YAAA;CrCuqJL;AqCzsJD;;;;EA2CM,eAAA;EACA,uBAAA;EACA,oBAAA;CrCoqJL;AsCltJD;EACE,gBAAA;EACA,wBAAA;EACA,eAAA;EACA,kBAAA;EACA,eAAA;EACA,YAAA;EACA,mBAAA;EACA,oBAAA;EACA,yBAAA;EACA,qBAAA;CtCotJD;AsChtJG;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;CtCktJL;AsC7sJC;EACE,cAAA;CtC+sJH;AsC3sJC;EACE,mBAAA;EACA,UAAA;CtC6sJH;AsCtsJD;ECtCE,0BAAA;CvC+uJD;AuC5uJG;;EAEE,0BAAA;CvC8uJL;AsCzsJD;EC1CE,0BAAA;CvCsvJD;AuCnvJG;;EAEE,0BAAA;CvCqvJL;AsC5sJD;EC9CE,0BAAA;CvC6vJD;AuC1vJG;;EAEE,0BAAA;CvC4vJL;AsC/sJD;EClDE,0BAAA;CvCowJD;AuCjwJG;;EAEE,0BAAA;CvCmwJL;AsCltJD;ECtDE,0BAAA;CvC2wJD;AuCxwJG;;EAEE,0BAAA;CvC0wJL;AsCrtJD;EC1DE,0BAAA;CvCkxJD;AuC/wJG;;EAEE,0BAAA;CvCixJL;AwCnxJD;EACE,sBAAA;EACA,gBAAA;EACA,iBAAA;EACA,gBAAA;EACA,kBAAA;EACA,YAAA;EACA,eAAA;EACA,uBAAA;EACA,oBAAA;EACA,mBAAA;EACA,0BAAA;EACA,oBAAA;CxCqxJD;AwClxJC;EACE,cAAA;CxCoxJH;AwChxJC;EACE,mBAAA;EACA,UAAA;CxCkxJH;AwC/wJC;;EAEE,OAAA;EACA,iBAAA;CxCixJH;AwC5wJG;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;CxC8wJL;AwCzwJC;;EAEE,eAAA;EACA,uBAAA;CxC2wJH;AwCxwJC;EACE,aAAA;CxC0wJH;AwCvwJC;EACE,kBAAA;CxCywJH;AwCtwJC;EACE,iBAAA;CxCwwJH;AyCl0JD;EACE,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,eAAA;EACA,0BAAA;CzCo0JD;AyCz0JD;;EASI,eAAA;CzCo0JH;AyC70JD;EAaI,oBAAA;EACA,gBAAA;EACA,iBAAA;CzCm0JH;AyCl1JD;EAmBI,0BAAA;CzCk0JH;AyC/zJC;;EAEE,mBAAA;EACA,mBAAA;EACA,oBAAA;CzCi0JH;AyC31JD;EA8BI,gBAAA;CzCg0JH;AyC9yJD;EACA;IAfI,kBAAA;IACA,qBAAA;GzCg0JD;EyC9zJC;;IAEE,mBAAA;IACA,oBAAA;GzCg0JH;EyCvzJH;;IAJM,gBAAA;GzC+zJH;CACF;A0C52JD;EACE,eAAA;EACA,aAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;EACA,uBAAA;EACA,mBAAA;ErCiLA,4CAAA;EACK,uCAAA;EACG,oCAAA;CL8rJT;A0Cx3JD;;EAaI,kBAAA;EACA,mBAAA;C1C+2JH;A0C32JC;;;EAGE,sBAAA;C1C62JH;A0Cl4JD;EA0BI,aAAA;EACA,eAAA;C1C22JH;A2Cp4JD;EACE,cAAA;EACA,oBAAA;EACA,8BAAA;EACA,mBAAA;C3Cs4JD;A2C14JD;EAQI,cAAA;EAEA,eAAA;C3Co4JH;A2C94JD;EAeI,kBAAA;C3Ck4JH;A2Cj5JD;;EAqBI,iBAAA;C3Cg4JH;A2Cr5JD;EAyBI,gBAAA;C3C+3JH;A2Cv3JD;;EAEE,oBAAA;C3Cy3JD;A2C33JD;;EAMI,mBAAA;EACA,UAAA;EACA,aAAA;EACA,eAAA;C3Cy3JH;A2Cj3JD;ECvDE,0BAAA;EACA,sBAAA;EACA,eAAA;C5C26JD;A2Ct3JD;EClDI,0BAAA;C5C26JH;A2Cz3JD;EC/CI,eAAA;C5C26JH;A2Cx3JD;EC3DE,0BAAA;EACA,sBAAA;EACA,eAAA;C5Cs7JD;A2C73JD;ECtDI,0BAAA;C5Cs7JH;A2Ch4JD;ECnDI,eAAA;C5Cs7JH;A2C/3JD;EC/DE,0BAAA;EACA,sBAAA;EACA,eAAA;C5Ci8JD;A2Cp4JD;EC1DI,0BAAA;C5Ci8JH;A2Cv4JD;ECvDI,eAAA;C5Ci8JH;A2Ct4JD;ECnEE,0BAAA;EACA,sBAAA;EACA,eAAA;C5C48JD;A2C34JD;EC9DI,0BAAA;C5C48JH;A2C94JD;EC3DI,eAAA;C5C48JH;A6C98JD;EACE;IAAQ,4BAAA;G7Ci9JP;E6Ch9JD;IAAQ,yBAAA;G7Cm9JP;CACF;A6Ch9JD;EACE;IAAQ,4BAAA;G7Cm9JP;E6Cl9JD;IAAQ,yBAAA;G7Cq9JP;CACF;A6Cx9JD;EACE;IAAQ,4BAAA;G7Cm9JP;E6Cl9JD;IAAQ,yBAAA;G7Cq9JP;CACF;A6C98JD;EACE,iBAAA;EACA,aAAA;EACA,oBAAA;EACA,0BAAA;EACA,mBAAA;ExCsCA,uDAAA;EACQ,+CAAA;CL26JT;A6C78JD;EACE,YAAA;EACA,UAAA;EACA,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,YAAA;EACA,mBAAA;EACA,0BAAA;ExCyBA,uDAAA;EACQ,+CAAA;EAyHR,oCAAA;EACK,+BAAA;EACG,4BAAA;CL+zJT;A6C18JD;;ECCI,8MAAA;EACA,yMAAA;EACA,sMAAA;EDAF,mCAAA;UAAA,2BAAA;C7C88JD;A6Cv8JD;;ExC5CE,2DAAA;EACK,sDAAA;EACG,mDAAA;CLu/JT;A6Cp8JD;EErEE,0BAAA;C/C4gKD;A+CzgKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C49JH;A6Cx8JD;EEzEE,0BAAA;C/CohKD;A+CjhKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9Co+JH;A6C58JD;EE7EE,0BAAA;C/C4hKD;A+CzhKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9C4+JH;A6Ch9JD;EEjFE,0BAAA;C/CoiKD;A+CjiKC;EDgDE,8MAAA;EACA,yMAAA;EACA,sMAAA;C9Co/JH;AgD5iKD;EAEE,iBAAA;ChD6iKD;AgD3iKC;EACE,cAAA;ChD6iKH;AgDziKD;;EAEE,QAAA;EACA,iBAAA;ChD2iKD;AgDxiKD;EACE,eAAA;ChD0iKD;AgDviKD;EACE,eAAA;ChDyiKD;AgDtiKC;EACE,gBAAA;ChDwiKH;AgDpiKD;;EAEE,mBAAA;ChDsiKD;AgDniKD;;EAEE,oBAAA;ChDqiKD;AgDliKD;;;EAGE,oBAAA;EACA,oBAAA;ChDoiKD;AgDjiKD;EACE,uBAAA;ChDmiKD;AgDhiKD;EACE,uBAAA;ChDkiKD;AgD9hKD;EACE,cAAA;EACA,mBAAA;ChDgiKD;AgD1hKD;EACE,gBAAA;EACA,iBAAA;ChD4hKD;AiDnlKD;EAEE,oBAAA;EACA,gBAAA;CjDolKD;AiD5kKD;EACE,mBAAA;EACA,eAAA;EACA,mBAAA;EAEA,oBAAA;EACA,uBAAA;EACA,uBAAA;CjD6kKD;AiD1kKC;ErB3BA,6BAAA;EACC,4BAAA;C5BwmKF;AiD3kKC;EACE,iBAAA;ErBvBF,gCAAA;EACC,+BAAA;C5BqmKF;AiDpkKD;;EAEE,YAAA;CjDskKD;AiDxkKD;;EAKI,YAAA;CjDukKH;AiDnkKC;;;;EAEE,sBAAA;EACA,YAAA;EACA,0BAAA;CjDukKH;AiDnkKD;EACE,YAAA;EACA,iBAAA;CjDqkKD;AiDhkKC;;;EAGE,0BAAA;EACA,eAAA;EACA,oBAAA;CjDkkKH;AiDvkKC;;;EASI,eAAA;CjDmkKL;AiD5kKC;;;EAYI,eAAA;CjDqkKL;AiDhkKC;;;EAGE,WAAA;EACA,YAAA;EACA,0BAAA;EACA,sBAAA;CjDkkKH;AiDxkKC;;;;;;;;;EAYI,eAAA;CjDukKL;AiDnlKC;;;EAeI,eAAA;CjDykKL;AkD3qKC;EACE,eAAA;EACA,0BAAA;ClD6qKH;AkD3qKG;;EAEE,eAAA;ClD6qKL;AkD/qKG;;EAKI,eAAA;ClD8qKP;AkD3qKK;;;;EAEE,eAAA;EACA,0BAAA;ClD+qKP;AkD7qKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDkrKP;AkDxsKC;EACE,eAAA;EACA,0BAAA;ClD0sKH;AkDxsKG;;EAEE,eAAA;ClD0sKL;AkD5sKG;;EAKI,eAAA;ClD2sKP;AkDxsKK;;;;EAEE,eAAA;EACA,0BAAA;ClD4sKP;AkD1sKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD+sKP;AkDruKC;EACE,eAAA;EACA,0BAAA;ClDuuKH;AkDruKG;;EAEE,eAAA;ClDuuKL;AkDzuKG;;EAKI,eAAA;ClDwuKP;AkDruKK;;;;EAEE,eAAA;EACA,0BAAA;ClDyuKP;AkDvuKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClD4uKP;AkDlwKC;EACE,eAAA;EACA,0BAAA;ClDowKH;AkDlwKG;;EAEE,eAAA;ClDowKL;AkDtwKG;;EAKI,eAAA;ClDqwKP;AkDlwKK;;;;EAEE,eAAA;EACA,0BAAA;ClDswKP;AkDpwKK;;;;;;EAGE,YAAA;EACA,0BAAA;EACA,sBAAA;ClDywKP;AiDxqKD;EACE,cAAA;EACA,mBAAA;CjD0qKD;AiDxqKD;EACE,iBAAA;EACA,iBAAA;CjD0qKD;AmDpyKD;EACE,oBAAA;EACA,uBAAA;EACA,8BAAA;EACA,mBAAA;E9C0DA,kDAAA;EACQ,0CAAA;CL6uKT;AmDnyKD;EACE,cAAA;CnDqyKD;AmDhyKD;EACE,mBAAA;EACA,qCAAA;EvBpBA,6BAAA;EACC,4BAAA;C5BuzKF;AmDtyKD;EAMI,eAAA;CnDmyKH;AmD9xKD;EACE,cAAA;EACA,iBAAA;EACA,gBAAA;EACA,eAAA;CnDgyKD;AmDpyKD;;;;;EAWI,eAAA;CnDgyKH;AmD3xKD;EACE,mBAAA;EACA,0BAAA;EACA,2BAAA;EvBxCA,gCAAA;EACC,+BAAA;C5Bs0KF;AmDrxKD;;EAGI,iBAAA;CnDsxKH;AmDzxKD;;EAMM,oBAAA;EACA,iBAAA;CnDuxKL;AmDnxKG;;EAEI,cAAA;EvBvEN,6BAAA;EACC,4BAAA;C5B61KF;AmDjxKG;;EAEI,iBAAA;EvBvEN,gCAAA;EACC,+BAAA;C5B21KF;AmD1yKD;EvB1DE,2BAAA;EACC,0BAAA;C5Bu2KF;AmD7wKD;EAEI,oBAAA;CnD8wKH;AmD3wKD;EACE,oBAAA;CnD6wKD;AmDrwKD;;;EAII,iBAAA;CnDswKH;AmD1wKD;;;EAOM,mBAAA;EACA,oBAAA;CnDwwKL;AmDhxKD;;EvBzGE,6BAAA;EACC,4BAAA;C5B63KF;AmDrxKD;;;;EAmBQ,4BAAA;EACA,6BAAA;CnDwwKP;AmD5xKD;;;;;;;;EAwBU,4BAAA;CnD8wKT;AmDtyKD;;;;;;;;EA4BU,6BAAA;CnDoxKT;AmDhzKD;;EvBjGE,gCAAA;EACC,+BAAA;C5Bq5KF;AmDrzKD;;;;EAyCQ,+BAAA;EACA,gCAAA;CnDkxKP;AmD5zKD;;;;;;;;EA8CU,+BAAA;CnDwxKT;AmDt0KD;;;;;;;;EAkDU,gCAAA;CnD8xKT;AmDh1KD;;;;EA2DI,2BAAA;CnD2xKH;AmDt1KD;;EA+DI,cAAA;CnD2xKH;AmD11KD;;EAmEI,UAAA;CnD2xKH;AmD91KD;;;;;;;;;;;;EA0EU,eAAA;CnDkyKT;AmD52KD;;;;;;;;;;;;EA8EU,gBAAA;CnD4yKT;AmD13KD;;;;;;;;EAuFU,iBAAA;CnD6yKT;AmDp4KD;;;;;;;;EAgGU,iBAAA;CnD8yKT;AmD94KD;EAsGI,UAAA;EACA,iBAAA;CnD2yKH;AmDjyKD;EACE,oBAAA;CnDmyKD;AmDpyKD;EAKI,iBAAA;EACA,mBAAA;CnDkyKH;AmDxyKD;EASM,gBAAA;CnDkyKL;AmD3yKD;EAcI,iBAAA;CnDgyKH;AmD9yKD;;EAkBM,2BAAA;CnDgyKL;AmDlzKD;EAuBI,cAAA;CnD8xKH;AmDrzKD;EAyBM,8BAAA;CnD+xKL;AmDxxKD;EC1PE,mBAAA;CpDqhLD;AoDnhLC;EACE,eAAA;EACA,0BAAA;EACA,mBAAA;CpDqhLH;AoDxhLC;EAMI,uBAAA;CpDqhLL;AoD3hLC;EASI,eAAA;EACA,0BAAA;CpDqhLL;AoDlhLC;EAEI,0BAAA;CpDmhLL;AmDvyKD;EC7PE,sBAAA;CpDuiLD;AoDriLC;EACE,YAAA;EACA,0BAAA;EACA,sBAAA;CpDuiLH;AoD1iLC;EAMI,0BAAA;CpDuiLL;AoD7iLC;EASI,eAAA;EACA,uBAAA;CpDuiLL;AoDpiLC;EAEI,6BAAA;CpDqiLL;AmDtzKD;EChQE,sBAAA;CpDyjLD;AoDvjLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpDyjLH;AoD5jLC;EAMI,0BAAA;CpDyjLL;AoD/jLC;EASI,eAAA;EACA,0BAAA;CpDyjLL;AoDtjLC;EAEI,6BAAA;CpDujLL;AmDr0KD;ECnQE,sBAAA;CpD2kLD;AoDzkLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD2kLH;AoD9kLC;EAMI,0BAAA;CpD2kLL;AoDjlLC;EASI,eAAA;EACA,0BAAA;CpD2kLL;AoDxkLC;EAEI,6BAAA;CpDykLL;AmDp1KD;ECtQE,sBAAA;CpD6lLD;AoD3lLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD6lLH;AoDhmLC;EAMI,0BAAA;CpD6lLL;AoDnmLC;EASI,eAAA;EACA,0BAAA;CpD6lLL;AoD1lLC;EAEI,6BAAA;CpD2lLL;AmDn2KD;ECzQE,sBAAA;CpD+mLD;AoD7mLC;EACE,eAAA;EACA,0BAAA;EACA,sBAAA;CpD+mLH;AoDlnLC;EAMI,0BAAA;CpD+mLL;AoDrnLC;EASI,eAAA;EACA,0BAAA;CpD+mLL;AoD5mLC;EAEI,6BAAA;CpD6mLL;AqD7nLD;EACE,mBAAA;EACA,eAAA;EACA,UAAA;EACA,WAAA;EACA,iBAAA;CrD+nLD;AqDpoLD;;;;;EAYI,mBAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,aAAA;EACA,YAAA;EACA,UAAA;CrD+nLH;AqD1nLD;EACE,uBAAA;CrD4nLD;AqDxnLD;EACE,oBAAA;CrD0nLD;AsDrpLD;EACE,iBAAA;EACA,cAAA;EACA,oBAAA;EACA,0BAAA;EACA,0BAAA;EACA,mBAAA;EjDwDA,wDAAA;EACQ,gDAAA;CLgmLT;AsD/pLD;EASI,mBAAA;EACA,kCAAA;CtDypLH;AsDppLD;EACE,cAAA;EACA,mBAAA;CtDspLD;AsDppLD;EACE,aAAA;EACA,mBAAA;CtDspLD;AuD5qLD;EACE,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,eAAA;EACA,YAAA;EACA,0BAAA;EjCRA,aAAA;EAGA,0BAAA;CtBqrLD;AuD7qLC;;EAEE,YAAA;EACA,sBAAA;EACA,gBAAA;EjCfF,aAAA;EAGA,0BAAA;CtB6rLD;AuDzqLC;EACE,WAAA;EACA,gBAAA;EACA,wBAAA;EACA,UAAA;EACA,yBAAA;CvD2qLH;AwDhsLD;EACE,iBAAA;CxDksLD;AwD9rLD;EACE,cAAA;EACA,iBAAA;EACA,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,kCAAA;EAIA,WAAA;CxD6rLD;AwD1rLC;EnD+GA,sCAAA;EACI,kCAAA;EACC,iCAAA;EACG,8BAAA;EAkER,oDAAA;EAEK,0CAAA;EACG,oCAAA;CL6gLT;AwDhsLC;EnD2GA,mCAAA;EACI,+BAAA;EACC,8BAAA;EACG,2BAAA;CLwlLT;AwDpsLD;EACE,mBAAA;EACA,iBAAA;CxDssLD;AwDlsLD;EACE,mBAAA;EACA,YAAA;EACA,aAAA;CxDosLD;AwDhsLD;EACE,mBAAA;EACA,uBAAA;EACA,uBAAA;EACA,qCAAA;EACA,mBAAA;EnDaA,iDAAA;EACQ,yCAAA;EmDZR,qCAAA;UAAA,6BAAA;EAEA,WAAA;CxDksLD;AwD9rLD;EACE,gBAAA;EACA,OAAA;EACA,SAAA;EACA,UAAA;EACA,QAAA;EACA,cAAA;EACA,uBAAA;CxDgsLD;AwD9rLC;ElCrEA,WAAA;EAGA,yBAAA;CtBowLD;AwDjsLC;ElCtEA,aAAA;EAGA,0BAAA;CtBwwLD;AwDhsLD;EACE,cAAA;EACA,iCAAA;CxDksLD;AwD9rLD;EACE,iBAAA;CxDgsLD;AwD5rLD;EACE,UAAA;EACA,wBAAA;CxD8rLD;AwDzrLD;EACE,mBAAA;EACA,cAAA;CxD2rLD;AwDvrLD;EACE,cAAA;EACA,kBAAA;EACA,8BAAA;CxDyrLD;AwD5rLD;EAQI,iBAAA;EACA,iBAAA;CxDurLH;AwDhsLD;EAaI,kBAAA;CxDsrLH;AwDnsLD;EAiBI,eAAA;CxDqrLH;AwDhrLD;EACE,mBAAA;EACA,aAAA;EACA,YAAA;EACA,aAAA;EACA,iBAAA;CxDkrLD;AwDhqLD;EAZE;IACE,aAAA;IACA,kBAAA;GxD+qLD;EwD7qLD;InDvEA,kDAAA;IACQ,0CAAA;GLuvLP;EwD5qLD;IAAY,aAAA;GxD+qLX;CACF;AwD1qLD;EAFE;IAAY,aAAA;GxDgrLX;CACF;AyD/zLD;EACE,mBAAA;EACA,cAAA;EACA,eAAA;ECRA,4DAAA;EAEA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;EDHA,gBAAA;EnCVA,WAAA;EAGA,yBAAA;CtBs1LD;AyD30LC;EnCdA,aAAA;EAGA,0BAAA;CtB01LD;AyD90LC;EAAW,iBAAA;EAAmB,eAAA;CzDk1L/B;AyDj1LC;EAAW,iBAAA;EAAmB,eAAA;CzDq1L/B;AyDp1LC;EAAW,gBAAA;EAAmB,eAAA;CzDw1L/B;AyDv1LC;EAAW,kBAAA;EAAmB,eAAA;CzD21L/B;AyDv1LD;EACE,iBAAA;EACA,iBAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,mBAAA;CzDy1LD;AyDr1LD;EACE,mBAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;CzDu1LD;AyDn1LC;EACE,UAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,uBAAA;CzDq1LH;AyDn1LC;EACE,UAAA;EACA,WAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;CzDq1LH;AyDn1LC;EACE,UAAA;EACA,UAAA;EACA,oBAAA;EACA,wBAAA;EACA,uBAAA;CzDq1LH;AyDn1LC;EACE,SAAA;EACA,QAAA;EACA,iBAAA;EACA,4BAAA;EACA,yBAAA;CzDq1LH;AyDn1LC;EACE,SAAA;EACA,SAAA;EACA,iBAAA;EACA,4BAAA;EACA,wBAAA;CzDq1LH;AyDn1LC;EACE,OAAA;EACA,UAAA;EACA,kBAAA;EACA,wBAAA;EACA,0BAAA;CzDq1LH;AyDn1LC;EACE,OAAA;EACA,WAAA;EACA,iBAAA;EACA,wBAAA;EACA,0BAAA;CzDq1LH;AyDn1LC;EACE,OAAA;EACA,UAAA;EACA,iBAAA;EACA,wBAAA;EACA,0BAAA;CzDq1LH;A2Dl7LD;EACE,mBAAA;EACA,OAAA;EACA,QAAA;EACA,cAAA;EACA,cAAA;EACA,iBAAA;EACA,aAAA;EDXA,4DAAA;EAEA,mBAAA;EACA,oBAAA;EACA,uBAAA;EACA,iBAAA;EACA,wBAAA;EACA,iBAAA;EACA,kBAAA;EACA,sBAAA;EACA,kBAAA;EACA,qBAAA;EACA,oBAAA;EACA,mBAAA;EACA,qBAAA;EACA,kBAAA;ECAA,gBAAA;EAEA,uBAAA;EACA,qCAAA;UAAA,6BAAA;EACA,uBAAA;EACA,qCAAA;EACA,mBAAA;EtD8CA,kDAAA;EACQ,0CAAA;CLk5LT;A2D77LC;EAAY,kBAAA;C3Dg8Lb;A2D/7LC;EAAY,kBAAA;C3Dk8Lb;A2Dj8LC;EAAY,iBAAA;C3Do8Lb;A2Dn8LC;EAAY,mBAAA;C3Ds8Lb;A2Dn8LD;EACE,UAAA;EACA,kBAAA;EACA,gBAAA;EACA,0BAAA;EACA,iCAAA;EACA,2BAAA;C3Dq8LD;A2Dl8LD;EACE,kBAAA;C3Do8LD;A2D57LC;;EAEE,mBAAA;EACA,eAAA;EACA,SAAA;EACA,UAAA;EACA,0BAAA;EACA,oBAAA;C3D87LH;A2D37LD;EACE,mBAAA;C3D67LD;A2D37LD;EACE,mBAAA;EACA,YAAA;C3D67LD;A2Dz7LC;EACE,UAAA;EACA,mBAAA;EACA,uBAAA;EACA,0BAAA;EACA,sCAAA;EACA,cAAA;C3D27LH;A2D17LG;EACE,aAAA;EACA,YAAA;EACA,mBAAA;EACA,uBAAA;EACA,uBAAA;C3D47LL;A2Dz7LC;EACE,SAAA;EACA,YAAA;EACA,kBAAA;EACA,qBAAA;EACA,4BAAA;EACA,wCAAA;C3D27LH;A2D17LG;EACE,aAAA;EACA,UAAA;EACA,cAAA;EACA,qBAAA;EACA,yBAAA;C3D47LL;A2Dz7LC;EACE,UAAA;EACA,mBAAA;EACA,oBAAA;EACA,6BAAA;EACA,yCAAA;EACA,WAAA;C3D27LH;A2D17LG;EACE,aAAA;EACA,SAAA;EACA,mBAAA;EACA,oBAAA;EACA,0BAAA;C3D47LL;A2Dx7LC;EACE,SAAA;EACA,aAAA;EACA,kBAAA;EACA,sBAAA;EACA,2BAAA;EACA,uCAAA;C3D07LH;A2Dz7LG;EACE,aAAA;EACA,WAAA;EACA,sBAAA;EACA,wBAAA;EACA,cAAA;C3D27LL;A4DpjMD;EACE,mBAAA;C5DsjMD;A4DnjMD;EACE,mBAAA;EACA,iBAAA;EACA,YAAA;C5DqjMD;A4DxjMD;EAMI,cAAA;EACA,mBAAA;EvD6KF,0CAAA;EACK,qCAAA;EACG,kCAAA;CLy4LT;A4D/jMD;;EAcM,eAAA;C5DqjML;A4D3hMC;EA4NF;IvD3DE,uDAAA;IAEK,6CAAA;IACG,uCAAA;IA7JR,oCAAA;IAEQ,4BAAA;IA+GR,4BAAA;IAEQ,oBAAA;GL86LP;E4DzjMG;;IvDmHJ,2CAAA;IACQ,mCAAA;IuDjHF,QAAA;G5D4jML;E4D1jMG;;IvD8GJ,4CAAA;IACQ,oCAAA;IuD5GF,QAAA;G5D6jML;E4D3jMG;;;IvDyGJ,wCAAA;IACQ,gCAAA;IuDtGF,QAAA;G5D8jML;CACF;A4DpmMD;;;EA6CI,eAAA;C5D4jMH;A4DzmMD;EAiDI,QAAA;C5D2jMH;A4D5mMD;;EAsDI,mBAAA;EACA,OAAA;EACA,YAAA;C5D0jMH;A4DlnMD;EA4DI,WAAA;C5DyjMH;A4DrnMD;EA+DI,YAAA;C5DyjMH;A4DxnMD;;EAmEI,QAAA;C5DyjMH;A4D5nMD;EAuEI,YAAA;C5DwjMH;A4D/nMD;EA0EI,WAAA;C5DwjMH;A4DhjMD;EACE,mBAAA;EACA,OAAA;EACA,QAAA;EACA,UAAA;EACA,WAAA;EtC9FA,aAAA;EAGA,0BAAA;EsC6FA,gBAAA;EACA,YAAA;EACA,mBAAA;EACA,0CAAA;EACA,mCAAA;C5DmjMD;A4D9iMC;EdnGE,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,4BAAA;EACA,uHAAA;C9CopMH;A4DljMC;EACE,WAAA;EACA,SAAA;EdxGA,mGAAA;EACA,8FAAA;EACA,qHAAA;EAAA,+FAAA;EACA,4BAAA;EACA,uHAAA;C9C6pMH;A4DpjMC;;EAEE,WAAA;EACA,YAAA;EACA,sBAAA;EtCvHF,aAAA;EAGA,0BAAA;CtB4qMD;A4DtlMD;;;;EAuCI,mBAAA;EACA,SAAA;EACA,kBAAA;EACA,WAAA;EACA,sBAAA;C5DqjMH;A4DhmMD;;EA+CI,UAAA;EACA,mBAAA;C5DqjMH;A4DrmMD;;EAoDI,WAAA;EACA,oBAAA;C5DqjMH;A4D1mMD;;EAyDI,YAAA;EACA,aAAA;EACA,eAAA;EACA,mBAAA;C5DqjMH;A4DhjMG;EACE,iBAAA;C5DkjML;A4D9iMG;EACE,iBAAA;C5DgjML;A4DtiMD;EACE,mBAAA;EACA,aAAA;EACA,UAAA;EACA,YAAA;EACA,WAAA;EACA,kBAAA;EACA,gBAAA;EACA,iBAAA;EACA,mBAAA;C5DwiMD;A4DjjMD;EAYI,sBAAA;EACA,YAAA;EACA,aAAA;EACA,YAAA;EACA,oBAAA;EACA,uBAAA;EACA,oBAAA;EACA,gBAAA;EAWA,0BAAA;EACA,mCAAA;C5D8hMH;A4D7jMD;EAkCI,UAAA;EACA,YAAA;EACA,aAAA;EACA,uBAAA;C5D8hMH;A4DvhMD;EACE,mBAAA;EACA,UAAA;EACA,WAAA;EACA,aAAA;EACA,YAAA;EACA,kBAAA;EACA,qBAAA;EACA,YAAA;EACA,mBAAA;EACA,0CAAA;C5DyhMD;A4DxhMC;EACE,kBAAA;C5D0hMH;A4Dj/LD;EAhCE;;;;IAKI,YAAA;IACA,aAAA;IACA,kBAAA;IACA,gBAAA;G5DmhMH;E4D3hMD;;IAYI,mBAAA;G5DmhMH;E4D/hMD;;IAgBI,oBAAA;G5DmhMH;E4D9gMD;IACE,UAAA;IACA,WAAA;IACA,qBAAA;G5DghMD;E4D5gMD;IACE,aAAA;G5D8gMD;CACF;A6D7wMC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEE,aAAA;EACA,eAAA;C7D6yMH;A6D3yMC;;;;;;;;;;;;;;;;EACE,YAAA;C7D4zMH;AiCp0MD;E6BRE,eAAA;EACA,kBAAA;EACA,mBAAA;C9D+0MD;AiCt0MD;EACE,wBAAA;CjCw0MD;AiCt0MD;EACE,uBAAA;CjCw0MD;AiCh0MD;EACE,yBAAA;CjCk0MD;AiCh0MD;EACE,0BAAA;CjCk0MD;AiCh0MD;EACE,mBAAA;CjCk0MD;AiCh0MD;E8BzBE,YAAA;EACA,mBAAA;EACA,kBAAA;EACA,8BAAA;EACA,UAAA;C/D41MD;AiC9zMD;EACE,yBAAA;CjCg0MD;AiCzzMD;EACE,gBAAA;CjC2zMD;AgE51MD;EACE,oBAAA;ChE81MD;AgEx1MD;;;;ECdE,yBAAA;CjE42MD;AgEv1MD;;;;;;;;;;;;EAYE,yBAAA;ChEy1MD;AgEl1MD;EA6IA;IC7LE,0BAAA;GjEs4MC;EiEr4MD;IAAU,0BAAA;GjEw4MT;EiEv4MD;IAAU,8BAAA;GjE04MT;EiEz4MD;;IACU,+BAAA;GjE44MT;CACF;AgE51MD;EAwIA;IA1II,0BAAA;GhEk2MD;CACF;AgE51MD;EAmIA;IArII,2BAAA;GhEk2MD;CACF;AgE51MD;EA8HA;IAhII,iCAAA;GhEk2MD;CACF;AgE31MD;EAwHA;IC7LE,0BAAA;GjEo6MC;EiEn6MD;IAAU,0BAAA;GjEs6MT;EiEr6MD;IAAU,8BAAA;GjEw6MT;EiEv6MD;;IACU,+BAAA;GjE06MT;CACF;AgEr2MD;EAmHA;IArHI,0BAAA;GhE22MD;CACF;AgEr2MD;EA8GA;IAhHI,2BAAA;GhE22MD;CACF;AgEr2MD;EAyGA;IA3GI,iCAAA;GhE22MD;CACF;AgEp2MD;EAmGA;IC7LE,0BAAA;GjEk8MC;EiEj8MD;IAAU,0BAAA;GjEo8MT;EiEn8MD;IAAU,8BAAA;GjEs8MT;EiEr8MD;;IACU,+BAAA;GjEw8MT;CACF;AgE92MD;EA8FA;IAhGI,0BAAA;GhEo3MD;CACF;AgE92MD;EAyFA;IA3FI,2BAAA;GhEo3MD;CACF;AgE92MD;EAoFA;IAtFI,iCAAA;GhEo3MD;CACF;AgE72MD;EA8EA;IC7LE,0BAAA;GjEg+MC;EiE/9MD;IAAU,0BAAA;GjEk+MT;EiEj+MD;IAAU,8BAAA;GjEo+MT;EiEn+MD;;IACU,+BAAA;GjEs+MT;CACF;AgEv3MD;EAyEA;IA3EI,0BAAA;GhE63MD;CACF;AgEv3MD;EAoEA;IAtEI,2BAAA;GhE63MD;CACF;AgEv3MD;EA+DA;IAjEI,iCAAA;GhE63MD;CACF;AgEt3MD;EAyDA;ICrLE,yBAAA;GjEs/MC;CACF;AgEt3MD;EAoDA;ICrLE,yBAAA;GjE2/MC;CACF;AgEt3MD;EA+CA;ICrLE,yBAAA;GjEggNC;CACF;AgEt3MD;EA0CA;ICrLE,yBAAA;GjEqgNC;CACF;AgEn3MD;ECnJE,yBAAA;CjEygND;AgEh3MD;EA4BA;IC7LE,0BAAA;GjEqhNC;EiEphND;IAAU,0BAAA;GjEuhNT;EiEthND;IAAU,8BAAA;GjEyhNT;EiExhND;;IACU,+BAAA;GjE2hNT;CACF;AgE93MD;EACE,yBAAA;ChEg4MD;AgE33MD;EAqBA;IAvBI,0BAAA;GhEi4MD;CACF;AgE/3MD;EACE,yBAAA;ChEi4MD;AgE53MD;EAcA;IAhBI,2BAAA;GhEk4MD;CACF;AgEh4MD;EACE,yBAAA;ChEk4MD;AgE73MD;EAOA;IATI,iCAAA;GhEm4MD;CACF;AgE53MD;EACA;ICrLE,yBAAA;GjEojNC;CACF","file":"bootstrap.css","sourcesContent":["/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  font-family: sans-serif;\n  -ms-text-size-adjust: 100%;\n  -webkit-text-size-adjust: 100%;\n}\nbody {\n  margin: 0;\n}\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block;\n}\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block;\n  vertical-align: baseline;\n}\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n[hidden],\ntemplate {\n  display: none;\n}\na {\n  background-color: transparent;\n}\na:active,\na:hover {\n  outline: 0;\n}\nabbr[title] {\n  border-bottom: 1px dotted;\n}\nb,\nstrong {\n  font-weight: bold;\n}\ndfn {\n  font-style: italic;\n}\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\nmark {\n  background: #ff0;\n  color: #000;\n}\nsmall {\n  font-size: 80%;\n}\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\nsup {\n  top: -0.5em;\n}\nsub {\n  bottom: -0.25em;\n}\nimg {\n  border: 0;\n}\nsvg:not(:root) {\n  overflow: hidden;\n}\nfigure {\n  margin: 1em 40px;\n}\nhr {\n  box-sizing: content-box;\n  height: 0;\n}\npre {\n  overflow: auto;\n}\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit;\n  font: inherit;\n  margin: 0;\n}\nbutton {\n  overflow: visible;\n}\nbutton,\nselect {\n  text-transform: none;\n}\nbutton,\nhtml input[type=\"button\"],\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button;\n  cursor: pointer;\n}\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\ninput {\n  line-height: normal;\n}\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\ninput[type=\"search\"] {\n  -webkit-appearance: textfield;\n  box-sizing: content-box;\n}\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\nlegend {\n  border: 0;\n  padding: 0;\n}\ntextarea {\n  overflow: auto;\n}\noptgroup {\n  font-weight: bold;\n}\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\ntd,\nth {\n  padding: 0;\n}\n/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n@media print {\n  *,\n  *:before,\n  *:after {\n    background: transparent !important;\n    color: #000 !important;\n    box-shadow: none !important;\n    text-shadow: none !important;\n  }\n  a,\n  a:visited {\n    text-decoration: underline;\n  }\n  a[href]:after {\n    content: \" (\" attr(href) \")\";\n  }\n  abbr[title]:after {\n    content: \" (\" attr(title) \")\";\n  }\n  a[href^=\"#\"]:after,\n  a[href^=\"javascript:\"]:after {\n    content: \"\";\n  }\n  pre,\n  blockquote {\n    border: 1px solid #999;\n    page-break-inside: avoid;\n  }\n  thead {\n    display: table-header-group;\n  }\n  tr,\n  img {\n    page-break-inside: avoid;\n  }\n  img {\n    max-width: 100% !important;\n  }\n  p,\n  h2,\n  h3 {\n    orphans: 3;\n    widows: 3;\n  }\n  h2,\n  h3 {\n    page-break-after: avoid;\n  }\n  .navbar {\n    display: none;\n  }\n  .btn > .caret,\n  .dropup > .btn > .caret {\n    border-top-color: #000 !important;\n  }\n  .label {\n    border: 1px solid #000;\n  }\n  .table {\n    border-collapse: collapse !important;\n  }\n  .table td,\n  .table th {\n    background-color: #fff !important;\n  }\n  .table-bordered th,\n  .table-bordered td {\n    border: 1px solid #ddd !important;\n  }\n}\n@font-face {\n  font-family: 'Glyphicons Halflings';\n  src: url('../fonts/glyphicons-halflings-regular.eot');\n  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');\n}\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'Glyphicons Halflings';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n.glyphicon-asterisk:before {\n  content: \"\\002a\";\n}\n.glyphicon-plus:before {\n  content: \"\\002b\";\n}\n.glyphicon-euro:before,\n.glyphicon-eur:before {\n  content: \"\\20ac\";\n}\n.glyphicon-minus:before {\n  content: \"\\2212\";\n}\n.glyphicon-cloud:before {\n  content: \"\\2601\";\n}\n.glyphicon-envelope:before {\n  content: \"\\2709\";\n}\n.glyphicon-pencil:before {\n  content: \"\\270f\";\n}\n.glyphicon-glass:before {\n  content: \"\\e001\";\n}\n.glyphicon-music:before {\n  content: \"\\e002\";\n}\n.glyphicon-search:before {\n  content: \"\\e003\";\n}\n.glyphicon-heart:before {\n  content: \"\\e005\";\n}\n.glyphicon-star:before {\n  content: \"\\e006\";\n}\n.glyphicon-star-empty:before {\n  content: \"\\e007\";\n}\n.glyphicon-user:before {\n  content: \"\\e008\";\n}\n.glyphicon-film:before {\n  content: \"\\e009\";\n}\n.glyphicon-th-large:before {\n  content: \"\\e010\";\n}\n.glyphicon-th:before {\n  content: \"\\e011\";\n}\n.glyphicon-th-list:before {\n  content: \"\\e012\";\n}\n.glyphicon-ok:before {\n  content: \"\\e013\";\n}\n.glyphicon-remove:before {\n  content: \"\\e014\";\n}\n.glyphicon-zoom-in:before {\n  content: \"\\e015\";\n}\n.glyphicon-zoom-out:before {\n  content: \"\\e016\";\n}\n.glyphicon-off:before {\n  content: \"\\e017\";\n}\n.glyphicon-signal:before {\n  content: \"\\e018\";\n}\n.glyphicon-cog:before {\n  content: \"\\e019\";\n}\n.glyphicon-trash:before {\n  content: \"\\e020\";\n}\n.glyphicon-home:before {\n  content: \"\\e021\";\n}\n.glyphicon-file:before {\n  content: \"\\e022\";\n}\n.glyphicon-time:before {\n  content: \"\\e023\";\n}\n.glyphicon-road:before {\n  content: \"\\e024\";\n}\n.glyphicon-download-alt:before {\n  content: \"\\e025\";\n}\n.glyphicon-download:before {\n  content: \"\\e026\";\n}\n.glyphicon-upload:before {\n  content: \"\\e027\";\n}\n.glyphicon-inbox:before {\n  content: \"\\e028\";\n}\n.glyphicon-play-circle:before {\n  content: \"\\e029\";\n}\n.glyphicon-repeat:before {\n  content: \"\\e030\";\n}\n.glyphicon-refresh:before {\n  content: \"\\e031\";\n}\n.glyphicon-list-alt:before {\n  content: \"\\e032\";\n}\n.glyphicon-lock:before {\n  content: \"\\e033\";\n}\n.glyphicon-flag:before {\n  content: \"\\e034\";\n}\n.glyphicon-headphones:before {\n  content: \"\\e035\";\n}\n.glyphicon-volume-off:before {\n  content: \"\\e036\";\n}\n.glyphicon-volume-down:before {\n  content: \"\\e037\";\n}\n.glyphicon-volume-up:before {\n  content: \"\\e038\";\n}\n.glyphicon-qrcode:before {\n  content: \"\\e039\";\n}\n.glyphicon-barcode:before {\n  content: \"\\e040\";\n}\n.glyphicon-tag:before {\n  content: \"\\e041\";\n}\n.glyphicon-tags:before {\n  content: \"\\e042\";\n}\n.glyphicon-book:before {\n  content: \"\\e043\";\n}\n.glyphicon-bookmark:before {\n  content: \"\\e044\";\n}\n.glyphicon-print:before {\n  content: \"\\e045\";\n}\n.glyphicon-camera:before {\n  content: \"\\e046\";\n}\n.glyphicon-font:before {\n  content: \"\\e047\";\n}\n.glyphicon-bold:before {\n  content: \"\\e048\";\n}\n.glyphicon-italic:before {\n  content: \"\\e049\";\n}\n.glyphicon-text-height:before {\n  content: \"\\e050\";\n}\n.glyphicon-text-width:before {\n  content: \"\\e051\";\n}\n.glyphicon-align-left:before {\n  content: \"\\e052\";\n}\n.glyphicon-align-center:before {\n  content: \"\\e053\";\n}\n.glyphicon-align-right:before {\n  content: \"\\e054\";\n}\n.glyphicon-align-justify:before {\n  content: \"\\e055\";\n}\n.glyphicon-list:before {\n  content: \"\\e056\";\n}\n.glyphicon-indent-left:before {\n  content: \"\\e057\";\n}\n.glyphicon-indent-right:before {\n  content: \"\\e058\";\n}\n.glyphicon-facetime-video:before {\n  content: \"\\e059\";\n}\n.glyphicon-picture:before {\n  content: \"\\e060\";\n}\n.glyphicon-map-marker:before {\n  content: \"\\e062\";\n}\n.glyphicon-adjust:before {\n  content: \"\\e063\";\n}\n.glyphicon-tint:before {\n  content: \"\\e064\";\n}\n.glyphicon-edit:before {\n  content: \"\\e065\";\n}\n.glyphicon-share:before {\n  content: \"\\e066\";\n}\n.glyphicon-check:before {\n  content: \"\\e067\";\n}\n.glyphicon-move:before {\n  content: \"\\e068\";\n}\n.glyphicon-step-backward:before {\n  content: \"\\e069\";\n}\n.glyphicon-fast-backward:before {\n  content: \"\\e070\";\n}\n.glyphicon-backward:before {\n  content: \"\\e071\";\n}\n.glyphicon-play:before {\n  content: \"\\e072\";\n}\n.glyphicon-pause:before {\n  content: \"\\e073\";\n}\n.glyphicon-stop:before {\n  content: \"\\e074\";\n}\n.glyphicon-forward:before {\n  content: \"\\e075\";\n}\n.glyphicon-fast-forward:before {\n  content: \"\\e076\";\n}\n.glyphicon-step-forward:before {\n  content: \"\\e077\";\n}\n.glyphicon-eject:before {\n  content: \"\\e078\";\n}\n.glyphicon-chevron-left:before {\n  content: \"\\e079\";\n}\n.glyphicon-chevron-right:before {\n  content: \"\\e080\";\n}\n.glyphicon-plus-sign:before {\n  content: \"\\e081\";\n}\n.glyphicon-minus-sign:before {\n  content: \"\\e082\";\n}\n.glyphicon-remove-sign:before {\n  content: \"\\e083\";\n}\n.glyphicon-ok-sign:before {\n  content: \"\\e084\";\n}\n.glyphicon-question-sign:before {\n  content: \"\\e085\";\n}\n.glyphicon-info-sign:before {\n  content: \"\\e086\";\n}\n.glyphicon-screenshot:before {\n  content: \"\\e087\";\n}\n.glyphicon-remove-circle:before {\n  content: \"\\e088\";\n}\n.glyphicon-ok-circle:before {\n  content: \"\\e089\";\n}\n.glyphicon-ban-circle:before {\n  content: \"\\e090\";\n}\n.glyphicon-arrow-left:before {\n  content: \"\\e091\";\n}\n.glyphicon-arrow-right:before {\n  content: \"\\e092\";\n}\n.glyphicon-arrow-up:before {\n  content: \"\\e093\";\n}\n.glyphicon-arrow-down:before {\n  content: \"\\e094\";\n}\n.glyphicon-share-alt:before {\n  content: \"\\e095\";\n}\n.glyphicon-resize-full:before {\n  content: \"\\e096\";\n}\n.glyphicon-resize-small:before {\n  content: \"\\e097\";\n}\n.glyphicon-exclamation-sign:before {\n  content: \"\\e101\";\n}\n.glyphicon-gift:before {\n  content: \"\\e102\";\n}\n.glyphicon-leaf:before {\n  content: \"\\e103\";\n}\n.glyphicon-fire:before {\n  content: \"\\e104\";\n}\n.glyphicon-eye-open:before {\n  content: \"\\e105\";\n}\n.glyphicon-eye-close:before {\n  content: \"\\e106\";\n}\n.glyphicon-warning-sign:before {\n  content: \"\\e107\";\n}\n.glyphicon-plane:before {\n  content: \"\\e108\";\n}\n.glyphicon-calendar:before {\n  content: \"\\e109\";\n}\n.glyphicon-random:before {\n  content: \"\\e110\";\n}\n.glyphicon-comment:before {\n  content: \"\\e111\";\n}\n.glyphicon-magnet:before {\n  content: \"\\e112\";\n}\n.glyphicon-chevron-up:before {\n  content: \"\\e113\";\n}\n.glyphicon-chevron-down:before {\n  content: \"\\e114\";\n}\n.glyphicon-retweet:before {\n  content: \"\\e115\";\n}\n.glyphicon-shopping-cart:before {\n  content: \"\\e116\";\n}\n.glyphicon-folder-close:before {\n  content: \"\\e117\";\n}\n.glyphicon-folder-open:before {\n  content: \"\\e118\";\n}\n.glyphicon-resize-vertical:before {\n  content: \"\\e119\";\n}\n.glyphicon-resize-horizontal:before {\n  content: \"\\e120\";\n}\n.glyphicon-hdd:before {\n  content: \"\\e121\";\n}\n.glyphicon-bullhorn:before {\n  content: \"\\e122\";\n}\n.glyphicon-bell:before {\n  content: \"\\e123\";\n}\n.glyphicon-certificate:before {\n  content: \"\\e124\";\n}\n.glyphicon-thumbs-up:before {\n  content: \"\\e125\";\n}\n.glyphicon-thumbs-down:before {\n  content: \"\\e126\";\n}\n.glyphicon-hand-right:before {\n  content: \"\\e127\";\n}\n.glyphicon-hand-left:before {\n  content: \"\\e128\";\n}\n.glyphicon-hand-up:before {\n  content: \"\\e129\";\n}\n.glyphicon-hand-down:before {\n  content: \"\\e130\";\n}\n.glyphicon-circle-arrow-right:before {\n  content: \"\\e131\";\n}\n.glyphicon-circle-arrow-left:before {\n  content: \"\\e132\";\n}\n.glyphicon-circle-arrow-up:before {\n  content: \"\\e133\";\n}\n.glyphicon-circle-arrow-down:before {\n  content: \"\\e134\";\n}\n.glyphicon-globe:before {\n  content: \"\\e135\";\n}\n.glyphicon-wrench:before {\n  content: \"\\e136\";\n}\n.glyphicon-tasks:before {\n  content: \"\\e137\";\n}\n.glyphicon-filter:before {\n  content: \"\\e138\";\n}\n.glyphicon-briefcase:before {\n  content: \"\\e139\";\n}\n.glyphicon-fullscreen:before {\n  content: \"\\e140\";\n}\n.glyphicon-dashboard:before {\n  content: \"\\e141\";\n}\n.glyphicon-paperclip:before {\n  content: \"\\e142\";\n}\n.glyphicon-heart-empty:before {\n  content: \"\\e143\";\n}\n.glyphicon-link:before {\n  content: \"\\e144\";\n}\n.glyphicon-phone:before {\n  content: \"\\e145\";\n}\n.glyphicon-pushpin:before {\n  content: \"\\e146\";\n}\n.glyphicon-usd:before {\n  content: \"\\e148\";\n}\n.glyphicon-gbp:before {\n  content: \"\\e149\";\n}\n.glyphicon-sort:before {\n  content: \"\\e150\";\n}\n.glyphicon-sort-by-alphabet:before {\n  content: \"\\e151\";\n}\n.glyphicon-sort-by-alphabet-alt:before {\n  content: \"\\e152\";\n}\n.glyphicon-sort-by-order:before {\n  content: \"\\e153\";\n}\n.glyphicon-sort-by-order-alt:before {\n  content: \"\\e154\";\n}\n.glyphicon-sort-by-attributes:before {\n  content: \"\\e155\";\n}\n.glyphicon-sort-by-attributes-alt:before {\n  content: \"\\e156\";\n}\n.glyphicon-unchecked:before {\n  content: \"\\e157\";\n}\n.glyphicon-expand:before {\n  content: \"\\e158\";\n}\n.glyphicon-collapse-down:before {\n  content: \"\\e159\";\n}\n.glyphicon-collapse-up:before {\n  content: \"\\e160\";\n}\n.glyphicon-log-in:before {\n  content: \"\\e161\";\n}\n.glyphicon-flash:before {\n  content: \"\\e162\";\n}\n.glyphicon-log-out:before {\n  content: \"\\e163\";\n}\n.glyphicon-new-window:before {\n  content: \"\\e164\";\n}\n.glyphicon-record:before {\n  content: \"\\e165\";\n}\n.glyphicon-save:before {\n  content: \"\\e166\";\n}\n.glyphicon-open:before {\n  content: \"\\e167\";\n}\n.glyphicon-saved:before {\n  content: \"\\e168\";\n}\n.glyphicon-import:before {\n  content: \"\\e169\";\n}\n.glyphicon-export:before {\n  content: \"\\e170\";\n}\n.glyphicon-send:before {\n  content: \"\\e171\";\n}\n.glyphicon-floppy-disk:before {\n  content: \"\\e172\";\n}\n.glyphicon-floppy-saved:before {\n  content: \"\\e173\";\n}\n.glyphicon-floppy-remove:before {\n  content: \"\\e174\";\n}\n.glyphicon-floppy-save:before {\n  content: \"\\e175\";\n}\n.glyphicon-floppy-open:before {\n  content: \"\\e176\";\n}\n.glyphicon-credit-card:before {\n  content: \"\\e177\";\n}\n.glyphicon-transfer:before {\n  content: \"\\e178\";\n}\n.glyphicon-cutlery:before {\n  content: \"\\e179\";\n}\n.glyphicon-header:before {\n  content: \"\\e180\";\n}\n.glyphicon-compressed:before {\n  content: \"\\e181\";\n}\n.glyphicon-earphone:before {\n  content: \"\\e182\";\n}\n.glyphicon-phone-alt:before {\n  content: \"\\e183\";\n}\n.glyphicon-tower:before {\n  content: \"\\e184\";\n}\n.glyphicon-stats:before {\n  content: \"\\e185\";\n}\n.glyphicon-sd-video:before {\n  content: \"\\e186\";\n}\n.glyphicon-hd-video:before {\n  content: \"\\e187\";\n}\n.glyphicon-subtitles:before {\n  content: \"\\e188\";\n}\n.glyphicon-sound-stereo:before {\n  content: \"\\e189\";\n}\n.glyphicon-sound-dolby:before {\n  content: \"\\e190\";\n}\n.glyphicon-sound-5-1:before {\n  content: \"\\e191\";\n}\n.glyphicon-sound-6-1:before {\n  content: \"\\e192\";\n}\n.glyphicon-sound-7-1:before {\n  content: \"\\e193\";\n}\n.glyphicon-copyright-mark:before {\n  content: \"\\e194\";\n}\n.glyphicon-registration-mark:before {\n  content: \"\\e195\";\n}\n.glyphicon-cloud-download:before {\n  content: \"\\e197\";\n}\n.glyphicon-cloud-upload:before {\n  content: \"\\e198\";\n}\n.glyphicon-tree-conifer:before {\n  content: \"\\e199\";\n}\n.glyphicon-tree-deciduous:before {\n  content: \"\\e200\";\n}\n.glyphicon-cd:before {\n  content: \"\\e201\";\n}\n.glyphicon-save-file:before {\n  content: \"\\e202\";\n}\n.glyphicon-open-file:before {\n  content: \"\\e203\";\n}\n.glyphicon-level-up:before {\n  content: \"\\e204\";\n}\n.glyphicon-copy:before {\n  content: \"\\e205\";\n}\n.glyphicon-paste:before {\n  content: \"\\e206\";\n}\n.glyphicon-alert:before {\n  content: \"\\e209\";\n}\n.glyphicon-equalizer:before {\n  content: \"\\e210\";\n}\n.glyphicon-king:before {\n  content: \"\\e211\";\n}\n.glyphicon-queen:before {\n  content: \"\\e212\";\n}\n.glyphicon-pawn:before {\n  content: \"\\e213\";\n}\n.glyphicon-bishop:before {\n  content: \"\\e214\";\n}\n.glyphicon-knight:before {\n  content: \"\\e215\";\n}\n.glyphicon-baby-formula:before {\n  content: \"\\e216\";\n}\n.glyphicon-tent:before {\n  content: \"\\26fa\";\n}\n.glyphicon-blackboard:before {\n  content: \"\\e218\";\n}\n.glyphicon-bed:before {\n  content: \"\\e219\";\n}\n.glyphicon-apple:before {\n  content: \"\\f8ff\";\n}\n.glyphicon-erase:before {\n  content: \"\\e221\";\n}\n.glyphicon-hourglass:before {\n  content: \"\\231b\";\n}\n.glyphicon-lamp:before {\n  content: \"\\e223\";\n}\n.glyphicon-duplicate:before {\n  content: \"\\e224\";\n}\n.glyphicon-piggy-bank:before {\n  content: \"\\e225\";\n}\n.glyphicon-scissors:before {\n  content: \"\\e226\";\n}\n.glyphicon-bitcoin:before {\n  content: \"\\e227\";\n}\n.glyphicon-btc:before {\n  content: \"\\e227\";\n}\n.glyphicon-xbt:before {\n  content: \"\\e227\";\n}\n.glyphicon-yen:before {\n  content: \"\\00a5\";\n}\n.glyphicon-jpy:before {\n  content: \"\\00a5\";\n}\n.glyphicon-ruble:before {\n  content: \"\\20bd\";\n}\n.glyphicon-rub:before {\n  content: \"\\20bd\";\n}\n.glyphicon-scale:before {\n  content: \"\\e230\";\n}\n.glyphicon-ice-lolly:before {\n  content: \"\\e231\";\n}\n.glyphicon-ice-lolly-tasted:before {\n  content: \"\\e232\";\n}\n.glyphicon-education:before {\n  content: \"\\e233\";\n}\n.glyphicon-option-horizontal:before {\n  content: \"\\e234\";\n}\n.glyphicon-option-vertical:before {\n  content: \"\\e235\";\n}\n.glyphicon-menu-hamburger:before {\n  content: \"\\e236\";\n}\n.glyphicon-modal-window:before {\n  content: \"\\e237\";\n}\n.glyphicon-oil:before {\n  content: \"\\e238\";\n}\n.glyphicon-grain:before {\n  content: \"\\e239\";\n}\n.glyphicon-sunglasses:before {\n  content: \"\\e240\";\n}\n.glyphicon-text-size:before {\n  content: \"\\e241\";\n}\n.glyphicon-text-color:before {\n  content: \"\\e242\";\n}\n.glyphicon-text-background:before {\n  content: \"\\e243\";\n}\n.glyphicon-object-align-top:before {\n  content: \"\\e244\";\n}\n.glyphicon-object-align-bottom:before {\n  content: \"\\e245\";\n}\n.glyphicon-object-align-horizontal:before {\n  content: \"\\e246\";\n}\n.glyphicon-object-align-left:before {\n  content: \"\\e247\";\n}\n.glyphicon-object-align-vertical:before {\n  content: \"\\e248\";\n}\n.glyphicon-object-align-right:before {\n  content: \"\\e249\";\n}\n.glyphicon-triangle-right:before {\n  content: \"\\e250\";\n}\n.glyphicon-triangle-left:before {\n  content: \"\\e251\";\n}\n.glyphicon-triangle-bottom:before {\n  content: \"\\e252\";\n}\n.glyphicon-triangle-top:before {\n  content: \"\\e253\";\n}\n.glyphicon-console:before {\n  content: \"\\e254\";\n}\n.glyphicon-superscript:before {\n  content: \"\\e255\";\n}\n.glyphicon-subscript:before {\n  content: \"\\e256\";\n}\n.glyphicon-menu-left:before {\n  content: \"\\e257\";\n}\n.glyphicon-menu-right:before {\n  content: \"\\e258\";\n}\n.glyphicon-menu-down:before {\n  content: \"\\e259\";\n}\n.glyphicon-menu-up:before {\n  content: \"\\e260\";\n}\n* {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\n*:before,\n*:after {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\nhtml {\n  font-size: 10px;\n  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\nbody {\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-size: 14px;\n  line-height: 1.42857143;\n  color: #333333;\n  background-color: #fff;\n}\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\na {\n  color: #337ab7;\n  text-decoration: none;\n}\na:hover,\na:focus {\n  color: #23527c;\n  text-decoration: underline;\n}\na:focus {\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\nfigure {\n  margin: 0;\n}\nimg {\n  vertical-align: middle;\n}\n.img-responsive,\n.thumbnail > img,\n.thumbnail a > img,\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n  display: block;\n  max-width: 100%;\n  height: auto;\n}\n.img-rounded {\n  border-radius: 6px;\n}\n.img-thumbnail {\n  padding: 4px;\n  line-height: 1.42857143;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 4px;\n  -webkit-transition: all 0.2s ease-in-out;\n  -o-transition: all 0.2s ease-in-out;\n  transition: all 0.2s ease-in-out;\n  display: inline-block;\n  max-width: 100%;\n  height: auto;\n}\n.img-circle {\n  border-radius: 50%;\n}\nhr {\n  margin-top: 20px;\n  margin-bottom: 20px;\n  border: 0;\n  border-top: 1px solid #eeeeee;\n}\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  margin: -1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0, 0, 0, 0);\n  border: 0;\n}\n.sr-only-focusable:active,\n.sr-only-focusable:focus {\n  position: static;\n  width: auto;\n  height: auto;\n  margin: 0;\n  overflow: visible;\n  clip: auto;\n}\n[role=\"button\"] {\n  cursor: pointer;\n}\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.h6 {\n  font-family: inherit;\n  font-weight: 500;\n  line-height: 1.1;\n  color: inherit;\n}\nh1 small,\nh2 small,\nh3 small,\nh4 small,\nh5 small,\nh6 small,\n.h1 small,\n.h2 small,\n.h3 small,\n.h4 small,\n.h5 small,\n.h6 small,\nh1 .small,\nh2 .small,\nh3 .small,\nh4 .small,\nh5 .small,\nh6 .small,\n.h1 .small,\n.h2 .small,\n.h3 .small,\n.h4 .small,\n.h5 .small,\n.h6 .small {\n  font-weight: normal;\n  line-height: 1;\n  color: #777777;\n}\nh1,\n.h1,\nh2,\n.h2,\nh3,\n.h3 {\n  margin-top: 20px;\n  margin-bottom: 10px;\n}\nh1 small,\n.h1 small,\nh2 small,\n.h2 small,\nh3 small,\n.h3 small,\nh1 .small,\n.h1 .small,\nh2 .small,\n.h2 .small,\nh3 .small,\n.h3 .small {\n  font-size: 65%;\n}\nh4,\n.h4,\nh5,\n.h5,\nh6,\n.h6 {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\nh4 small,\n.h4 small,\nh5 small,\n.h5 small,\nh6 small,\n.h6 small,\nh4 .small,\n.h4 .small,\nh5 .small,\n.h5 .small,\nh6 .small,\n.h6 .small {\n  font-size: 75%;\n}\nh1,\n.h1 {\n  font-size: 36px;\n}\nh2,\n.h2 {\n  font-size: 30px;\n}\nh3,\n.h3 {\n  font-size: 24px;\n}\nh4,\n.h4 {\n  font-size: 18px;\n}\nh5,\n.h5 {\n  font-size: 14px;\n}\nh6,\n.h6 {\n  font-size: 12px;\n}\np {\n  margin: 0 0 10px;\n}\n.lead {\n  margin-bottom: 20px;\n  font-size: 16px;\n  font-weight: 300;\n  line-height: 1.4;\n}\n@media (min-width: 768px) {\n  .lead {\n    font-size: 21px;\n  }\n}\nsmall,\n.small {\n  font-size: 85%;\n}\nmark,\n.mark {\n  background-color: #fcf8e3;\n  padding: .2em;\n}\n.text-left {\n  text-align: left;\n}\n.text-right {\n  text-align: right;\n}\n.text-center {\n  text-align: center;\n}\n.text-justify {\n  text-align: justify;\n}\n.text-nowrap {\n  white-space: nowrap;\n}\n.text-lowercase {\n  text-transform: lowercase;\n}\n.text-uppercase {\n  text-transform: uppercase;\n}\n.text-capitalize {\n  text-transform: capitalize;\n}\n.text-muted {\n  color: #777777;\n}\n.text-primary {\n  color: #337ab7;\n}\na.text-primary:hover,\na.text-primary:focus {\n  color: #286090;\n}\n.text-success {\n  color: #3c763d;\n}\na.text-success:hover,\na.text-success:focus {\n  color: #2b542c;\n}\n.text-info {\n  color: #31708f;\n}\na.text-info:hover,\na.text-info:focus {\n  color: #245269;\n}\n.text-warning {\n  color: #8a6d3b;\n}\na.text-warning:hover,\na.text-warning:focus {\n  color: #66512c;\n}\n.text-danger {\n  color: #a94442;\n}\na.text-danger:hover,\na.text-danger:focus {\n  color: #843534;\n}\n.bg-primary {\n  color: #fff;\n  background-color: #337ab7;\n}\na.bg-primary:hover,\na.bg-primary:focus {\n  background-color: #286090;\n}\n.bg-success {\n  background-color: #dff0d8;\n}\na.bg-success:hover,\na.bg-success:focus {\n  background-color: #c1e2b3;\n}\n.bg-info {\n  background-color: #d9edf7;\n}\na.bg-info:hover,\na.bg-info:focus {\n  background-color: #afd9ee;\n}\n.bg-warning {\n  background-color: #fcf8e3;\n}\na.bg-warning:hover,\na.bg-warning:focus {\n  background-color: #f7ecb5;\n}\n.bg-danger {\n  background-color: #f2dede;\n}\na.bg-danger:hover,\na.bg-danger:focus {\n  background-color: #e4b9b9;\n}\n.page-header {\n  padding-bottom: 9px;\n  margin: 40px 0 20px;\n  border-bottom: 1px solid #eeeeee;\n}\nul,\nol {\n  margin-top: 0;\n  margin-bottom: 10px;\n}\nul ul,\nol ul,\nul ol,\nol ol {\n  margin-bottom: 0;\n}\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n.list-inline {\n  padding-left: 0;\n  list-style: none;\n  margin-left: -5px;\n}\n.list-inline > li {\n  display: inline-block;\n  padding-left: 5px;\n  padding-right: 5px;\n}\ndl {\n  margin-top: 0;\n  margin-bottom: 20px;\n}\ndt,\ndd {\n  line-height: 1.42857143;\n}\ndt {\n  font-weight: bold;\n}\ndd {\n  margin-left: 0;\n}\n@media (min-width: 768px) {\n  .dl-horizontal dt {\n    float: left;\n    width: 160px;\n    clear: left;\n    text-align: right;\n    overflow: hidden;\n    text-overflow: ellipsis;\n    white-space: nowrap;\n  }\n  .dl-horizontal dd {\n    margin-left: 180px;\n  }\n}\nabbr[title],\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted #777777;\n}\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\nblockquote {\n  padding: 10px 20px;\n  margin: 0 0 20px;\n  font-size: 17.5px;\n  border-left: 5px solid #eeeeee;\n}\nblockquote p:last-child,\nblockquote ul:last-child,\nblockquote ol:last-child {\n  margin-bottom: 0;\n}\nblockquote footer,\nblockquote small,\nblockquote .small {\n  display: block;\n  font-size: 80%;\n  line-height: 1.42857143;\n  color: #777777;\n}\nblockquote footer:before,\nblockquote small:before,\nblockquote .small:before {\n  content: '\\2014 \\00A0';\n}\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  border-right: 5px solid #eeeeee;\n  border-left: 0;\n  text-align: right;\n}\n.blockquote-reverse footer:before,\nblockquote.pull-right footer:before,\n.blockquote-reverse small:before,\nblockquote.pull-right small:before,\n.blockquote-reverse .small:before,\nblockquote.pull-right .small:before {\n  content: '';\n}\n.blockquote-reverse footer:after,\nblockquote.pull-right footer:after,\n.blockquote-reverse small:after,\nblockquote.pull-right small:after,\n.blockquote-reverse .small:after,\nblockquote.pull-right .small:after {\n  content: '\\00A0 \\2014';\n}\naddress {\n  margin-bottom: 20px;\n  font-style: normal;\n  line-height: 1.42857143;\n}\ncode,\nkbd,\npre,\nsamp {\n  font-family: Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #c7254e;\n  background-color: #f9f2f4;\n  border-radius: 4px;\n}\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: #fff;\n  background-color: #333;\n  border-radius: 3px;\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);\n}\nkbd kbd {\n  padding: 0;\n  font-size: 100%;\n  font-weight: bold;\n  box-shadow: none;\n}\npre {\n  display: block;\n  padding: 9.5px;\n  margin: 0 0 10px;\n  font-size: 13px;\n  line-height: 1.42857143;\n  word-break: break-all;\n  word-wrap: break-word;\n  color: #333333;\n  background-color: #f5f5f5;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n}\npre code {\n  padding: 0;\n  font-size: inherit;\n  color: inherit;\n  white-space: pre-wrap;\n  background-color: transparent;\n  border-radius: 0;\n}\n.pre-scrollable {\n  max-height: 340px;\n  overflow-y: scroll;\n}\n.container {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left: 15px;\n  padding-right: 15px;\n}\n@media (min-width: 768px) {\n  .container {\n    width: 750px;\n  }\n}\n@media (min-width: 992px) {\n  .container {\n    width: 970px;\n  }\n}\n@media (min-width: 1200px) {\n  .container {\n    width: 1170px;\n  }\n}\n.container-fluid {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left: 15px;\n  padding-right: 15px;\n}\n.row {\n  margin-left: -15px;\n  margin-right: -15px;\n}\n.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {\n  position: relative;\n  min-height: 1px;\n  padding-left: 15px;\n  padding-right: 15px;\n}\n.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {\n  float: left;\n}\n.col-xs-12 {\n  width: 100%;\n}\n.col-xs-11 {\n  width: 91.66666667%;\n}\n.col-xs-10 {\n  width: 83.33333333%;\n}\n.col-xs-9 {\n  width: 75%;\n}\n.col-xs-8 {\n  width: 66.66666667%;\n}\n.col-xs-7 {\n  width: 58.33333333%;\n}\n.col-xs-6 {\n  width: 50%;\n}\n.col-xs-5 {\n  width: 41.66666667%;\n}\n.col-xs-4 {\n  width: 33.33333333%;\n}\n.col-xs-3 {\n  width: 25%;\n}\n.col-xs-2 {\n  width: 16.66666667%;\n}\n.col-xs-1 {\n  width: 8.33333333%;\n}\n.col-xs-pull-12 {\n  right: 100%;\n}\n.col-xs-pull-11 {\n  right: 91.66666667%;\n}\n.col-xs-pull-10 {\n  right: 83.33333333%;\n}\n.col-xs-pull-9 {\n  right: 75%;\n}\n.col-xs-pull-8 {\n  right: 66.66666667%;\n}\n.col-xs-pull-7 {\n  right: 58.33333333%;\n}\n.col-xs-pull-6 {\n  right: 50%;\n}\n.col-xs-pull-5 {\n  right: 41.66666667%;\n}\n.col-xs-pull-4 {\n  right: 33.33333333%;\n}\n.col-xs-pull-3 {\n  right: 25%;\n}\n.col-xs-pull-2 {\n  right: 16.66666667%;\n}\n.col-xs-pull-1 {\n  right: 8.33333333%;\n}\n.col-xs-pull-0 {\n  right: auto;\n}\n.col-xs-push-12 {\n  left: 100%;\n}\n.col-xs-push-11 {\n  left: 91.66666667%;\n}\n.col-xs-push-10 {\n  left: 83.33333333%;\n}\n.col-xs-push-9 {\n  left: 75%;\n}\n.col-xs-push-8 {\n  left: 66.66666667%;\n}\n.col-xs-push-7 {\n  left: 58.33333333%;\n}\n.col-xs-push-6 {\n  left: 50%;\n}\n.col-xs-push-5 {\n  left: 41.66666667%;\n}\n.col-xs-push-4 {\n  left: 33.33333333%;\n}\n.col-xs-push-3 {\n  left: 25%;\n}\n.col-xs-push-2 {\n  left: 16.66666667%;\n}\n.col-xs-push-1 {\n  left: 8.33333333%;\n}\n.col-xs-push-0 {\n  left: auto;\n}\n.col-xs-offset-12 {\n  margin-left: 100%;\n}\n.col-xs-offset-11 {\n  margin-left: 91.66666667%;\n}\n.col-xs-offset-10 {\n  margin-left: 83.33333333%;\n}\n.col-xs-offset-9 {\n  margin-left: 75%;\n}\n.col-xs-offset-8 {\n  margin-left: 66.66666667%;\n}\n.col-xs-offset-7 {\n  margin-left: 58.33333333%;\n}\n.col-xs-offset-6 {\n  margin-left: 50%;\n}\n.col-xs-offset-5 {\n  margin-left: 41.66666667%;\n}\n.col-xs-offset-4 {\n  margin-left: 33.33333333%;\n}\n.col-xs-offset-3 {\n  margin-left: 25%;\n}\n.col-xs-offset-2 {\n  margin-left: 16.66666667%;\n}\n.col-xs-offset-1 {\n  margin-left: 8.33333333%;\n}\n.col-xs-offset-0 {\n  margin-left: 0%;\n}\n@media (min-width: 768px) {\n  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {\n    float: left;\n  }\n  .col-sm-12 {\n    width: 100%;\n  }\n  .col-sm-11 {\n    width: 91.66666667%;\n  }\n  .col-sm-10 {\n    width: 83.33333333%;\n  }\n  .col-sm-9 {\n    width: 75%;\n  }\n  .col-sm-8 {\n    width: 66.66666667%;\n  }\n  .col-sm-7 {\n    width: 58.33333333%;\n  }\n  .col-sm-6 {\n    width: 50%;\n  }\n  .col-sm-5 {\n    width: 41.66666667%;\n  }\n  .col-sm-4 {\n    width: 33.33333333%;\n  }\n  .col-sm-3 {\n    width: 25%;\n  }\n  .col-sm-2 {\n    width: 16.66666667%;\n  }\n  .col-sm-1 {\n    width: 8.33333333%;\n  }\n  .col-sm-pull-12 {\n    right: 100%;\n  }\n  .col-sm-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-sm-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-sm-pull-9 {\n    right: 75%;\n  }\n  .col-sm-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-sm-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-sm-pull-6 {\n    right: 50%;\n  }\n  .col-sm-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-sm-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-sm-pull-3 {\n    right: 25%;\n  }\n  .col-sm-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-sm-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-sm-pull-0 {\n    right: auto;\n  }\n  .col-sm-push-12 {\n    left: 100%;\n  }\n  .col-sm-push-11 {\n    left: 91.66666667%;\n  }\n  .col-sm-push-10 {\n    left: 83.33333333%;\n  }\n  .col-sm-push-9 {\n    left: 75%;\n  }\n  .col-sm-push-8 {\n    left: 66.66666667%;\n  }\n  .col-sm-push-7 {\n    left: 58.33333333%;\n  }\n  .col-sm-push-6 {\n    left: 50%;\n  }\n  .col-sm-push-5 {\n    left: 41.66666667%;\n  }\n  .col-sm-push-4 {\n    left: 33.33333333%;\n  }\n  .col-sm-push-3 {\n    left: 25%;\n  }\n  .col-sm-push-2 {\n    left: 16.66666667%;\n  }\n  .col-sm-push-1 {\n    left: 8.33333333%;\n  }\n  .col-sm-push-0 {\n    left: auto;\n  }\n  .col-sm-offset-12 {\n    margin-left: 100%;\n  }\n  .col-sm-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-sm-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-sm-offset-9 {\n    margin-left: 75%;\n  }\n  .col-sm-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-sm-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-sm-offset-6 {\n    margin-left: 50%;\n  }\n  .col-sm-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-sm-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-sm-offset-3 {\n    margin-left: 25%;\n  }\n  .col-sm-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-sm-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-sm-offset-0 {\n    margin-left: 0%;\n  }\n}\n@media (min-width: 992px) {\n  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {\n    float: left;\n  }\n  .col-md-12 {\n    width: 100%;\n  }\n  .col-md-11 {\n    width: 91.66666667%;\n  }\n  .col-md-10 {\n    width: 83.33333333%;\n  }\n  .col-md-9 {\n    width: 75%;\n  }\n  .col-md-8 {\n    width: 66.66666667%;\n  }\n  .col-md-7 {\n    width: 58.33333333%;\n  }\n  .col-md-6 {\n    width: 50%;\n  }\n  .col-md-5 {\n    width: 41.66666667%;\n  }\n  .col-md-4 {\n    width: 33.33333333%;\n  }\n  .col-md-3 {\n    width: 25%;\n  }\n  .col-md-2 {\n    width: 16.66666667%;\n  }\n  .col-md-1 {\n    width: 8.33333333%;\n  }\n  .col-md-pull-12 {\n    right: 100%;\n  }\n  .col-md-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-md-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-md-pull-9 {\n    right: 75%;\n  }\n  .col-md-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-md-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-md-pull-6 {\n    right: 50%;\n  }\n  .col-md-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-md-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-md-pull-3 {\n    right: 25%;\n  }\n  .col-md-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-md-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-md-pull-0 {\n    right: auto;\n  }\n  .col-md-push-12 {\n    left: 100%;\n  }\n  .col-md-push-11 {\n    left: 91.66666667%;\n  }\n  .col-md-push-10 {\n    left: 83.33333333%;\n  }\n  .col-md-push-9 {\n    left: 75%;\n  }\n  .col-md-push-8 {\n    left: 66.66666667%;\n  }\n  .col-md-push-7 {\n    left: 58.33333333%;\n  }\n  .col-md-push-6 {\n    left: 50%;\n  }\n  .col-md-push-5 {\n    left: 41.66666667%;\n  }\n  .col-md-push-4 {\n    left: 33.33333333%;\n  }\n  .col-md-push-3 {\n    left: 25%;\n  }\n  .col-md-push-2 {\n    left: 16.66666667%;\n  }\n  .col-md-push-1 {\n    left: 8.33333333%;\n  }\n  .col-md-push-0 {\n    left: auto;\n  }\n  .col-md-offset-12 {\n    margin-left: 100%;\n  }\n  .col-md-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-md-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-md-offset-9 {\n    margin-left: 75%;\n  }\n  .col-md-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-md-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-md-offset-6 {\n    margin-left: 50%;\n  }\n  .col-md-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-md-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-md-offset-3 {\n    margin-left: 25%;\n  }\n  .col-md-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-md-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-md-offset-0 {\n    margin-left: 0%;\n  }\n}\n@media (min-width: 1200px) {\n  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {\n    float: left;\n  }\n  .col-lg-12 {\n    width: 100%;\n  }\n  .col-lg-11 {\n    width: 91.66666667%;\n  }\n  .col-lg-10 {\n    width: 83.33333333%;\n  }\n  .col-lg-9 {\n    width: 75%;\n  }\n  .col-lg-8 {\n    width: 66.66666667%;\n  }\n  .col-lg-7 {\n    width: 58.33333333%;\n  }\n  .col-lg-6 {\n    width: 50%;\n  }\n  .col-lg-5 {\n    width: 41.66666667%;\n  }\n  .col-lg-4 {\n    width: 33.33333333%;\n  }\n  .col-lg-3 {\n    width: 25%;\n  }\n  .col-lg-2 {\n    width: 16.66666667%;\n  }\n  .col-lg-1 {\n    width: 8.33333333%;\n  }\n  .col-lg-pull-12 {\n    right: 100%;\n  }\n  .col-lg-pull-11 {\n    right: 91.66666667%;\n  }\n  .col-lg-pull-10 {\n    right: 83.33333333%;\n  }\n  .col-lg-pull-9 {\n    right: 75%;\n  }\n  .col-lg-pull-8 {\n    right: 66.66666667%;\n  }\n  .col-lg-pull-7 {\n    right: 58.33333333%;\n  }\n  .col-lg-pull-6 {\n    right: 50%;\n  }\n  .col-lg-pull-5 {\n    right: 41.66666667%;\n  }\n  .col-lg-pull-4 {\n    right: 33.33333333%;\n  }\n  .col-lg-pull-3 {\n    right: 25%;\n  }\n  .col-lg-pull-2 {\n    right: 16.66666667%;\n  }\n  .col-lg-pull-1 {\n    right: 8.33333333%;\n  }\n  .col-lg-pull-0 {\n    right: auto;\n  }\n  .col-lg-push-12 {\n    left: 100%;\n  }\n  .col-lg-push-11 {\n    left: 91.66666667%;\n  }\n  .col-lg-push-10 {\n    left: 83.33333333%;\n  }\n  .col-lg-push-9 {\n    left: 75%;\n  }\n  .col-lg-push-8 {\n    left: 66.66666667%;\n  }\n  .col-lg-push-7 {\n    left: 58.33333333%;\n  }\n  .col-lg-push-6 {\n    left: 50%;\n  }\n  .col-lg-push-5 {\n    left: 41.66666667%;\n  }\n  .col-lg-push-4 {\n    left: 33.33333333%;\n  }\n  .col-lg-push-3 {\n    left: 25%;\n  }\n  .col-lg-push-2 {\n    left: 16.66666667%;\n  }\n  .col-lg-push-1 {\n    left: 8.33333333%;\n  }\n  .col-lg-push-0 {\n    left: auto;\n  }\n  .col-lg-offset-12 {\n    margin-left: 100%;\n  }\n  .col-lg-offset-11 {\n    margin-left: 91.66666667%;\n  }\n  .col-lg-offset-10 {\n    margin-left: 83.33333333%;\n  }\n  .col-lg-offset-9 {\n    margin-left: 75%;\n  }\n  .col-lg-offset-8 {\n    margin-left: 66.66666667%;\n  }\n  .col-lg-offset-7 {\n    margin-left: 58.33333333%;\n  }\n  .col-lg-offset-6 {\n    margin-left: 50%;\n  }\n  .col-lg-offset-5 {\n    margin-left: 41.66666667%;\n  }\n  .col-lg-offset-4 {\n    margin-left: 33.33333333%;\n  }\n  .col-lg-offset-3 {\n    margin-left: 25%;\n  }\n  .col-lg-offset-2 {\n    margin-left: 16.66666667%;\n  }\n  .col-lg-offset-1 {\n    margin-left: 8.33333333%;\n  }\n  .col-lg-offset-0 {\n    margin-left: 0%;\n  }\n}\ntable {\n  background-color: transparent;\n}\ncaption {\n  padding-top: 8px;\n  padding-bottom: 8px;\n  color: #777777;\n  text-align: left;\n}\nth {\n  text-align: left;\n}\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: 20px;\n}\n.table > thead > tr > th,\n.table > tbody > tr > th,\n.table > tfoot > tr > th,\n.table > thead > tr > td,\n.table > tbody > tr > td,\n.table > tfoot > tr > td {\n  padding: 8px;\n  line-height: 1.42857143;\n  vertical-align: top;\n  border-top: 1px solid #ddd;\n}\n.table > thead > tr > th {\n  vertical-align: bottom;\n  border-bottom: 2px solid #ddd;\n}\n.table > caption + thead > tr:first-child > th,\n.table > colgroup + thead > tr:first-child > th,\n.table > thead:first-child > tr:first-child > th,\n.table > caption + thead > tr:first-child > td,\n.table > colgroup + thead > tr:first-child > td,\n.table > thead:first-child > tr:first-child > td {\n  border-top: 0;\n}\n.table > tbody + tbody {\n  border-top: 2px solid #ddd;\n}\n.table .table {\n  background-color: #fff;\n}\n.table-condensed > thead > tr > th,\n.table-condensed > tbody > tr > th,\n.table-condensed > tfoot > tr > th,\n.table-condensed > thead > tr > td,\n.table-condensed > tbody > tr > td,\n.table-condensed > tfoot > tr > td {\n  padding: 5px;\n}\n.table-bordered {\n  border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > tbody > tr > th,\n.table-bordered > tfoot > tr > th,\n.table-bordered > thead > tr > td,\n.table-bordered > tbody > tr > td,\n.table-bordered > tfoot > tr > td {\n  border: 1px solid #ddd;\n}\n.table-bordered > thead > tr > th,\n.table-bordered > thead > tr > td {\n  border-bottom-width: 2px;\n}\n.table-striped > tbody > tr:nth-of-type(odd) {\n  background-color: #f9f9f9;\n}\n.table-hover > tbody > tr:hover {\n  background-color: #f5f5f5;\n}\ntable col[class*=\"col-\"] {\n  position: static;\n  float: none;\n  display: table-column;\n}\ntable td[class*=\"col-\"],\ntable th[class*=\"col-\"] {\n  position: static;\n  float: none;\n  display: table-cell;\n}\n.table > thead > tr > td.active,\n.table > tbody > tr > td.active,\n.table > tfoot > tr > td.active,\n.table > thead > tr > th.active,\n.table > tbody > tr > th.active,\n.table > tfoot > tr > th.active,\n.table > thead > tr.active > td,\n.table > tbody > tr.active > td,\n.table > tfoot > tr.active > td,\n.table > thead > tr.active > th,\n.table > tbody > tr.active > th,\n.table > tfoot > tr.active > th {\n  background-color: #f5f5f5;\n}\n.table-hover > tbody > tr > td.active:hover,\n.table-hover > tbody > tr > th.active:hover,\n.table-hover > tbody > tr.active:hover > td,\n.table-hover > tbody > tr:hover > .active,\n.table-hover > tbody > tr.active:hover > th {\n  background-color: #e8e8e8;\n}\n.table > thead > tr > td.success,\n.table > tbody > tr > td.success,\n.table > tfoot > tr > td.success,\n.table > thead > tr > th.success,\n.table > tbody > tr > th.success,\n.table > tfoot > tr > th.success,\n.table > thead > tr.success > td,\n.table > tbody > tr.success > td,\n.table > tfoot > tr.success > td,\n.table > thead > tr.success > th,\n.table > tbody > tr.success > th,\n.table > tfoot > tr.success > th {\n  background-color: #dff0d8;\n}\n.table-hover > tbody > tr > td.success:hover,\n.table-hover > tbody > tr > th.success:hover,\n.table-hover > tbody > tr.success:hover > td,\n.table-hover > tbody > tr:hover > .success,\n.table-hover > tbody > tr.success:hover > th {\n  background-color: #d0e9c6;\n}\n.table > thead > tr > td.info,\n.table > tbody > tr > td.info,\n.table > tfoot > tr > td.info,\n.table > thead > tr > th.info,\n.table > tbody > tr > th.info,\n.table > tfoot > tr > th.info,\n.table > thead > tr.info > td,\n.table > tbody > tr.info > td,\n.table > tfoot > tr.info > td,\n.table > thead > tr.info > th,\n.table > tbody > tr.info > th,\n.table > tfoot > tr.info > th {\n  background-color: #d9edf7;\n}\n.table-hover > tbody > tr > td.info:hover,\n.table-hover > tbody > tr > th.info:hover,\n.table-hover > tbody > tr.info:hover > td,\n.table-hover > tbody > tr:hover > .info,\n.table-hover > tbody > tr.info:hover > th {\n  background-color: #c4e3f3;\n}\n.table > thead > tr > td.warning,\n.table > tbody > tr > td.warning,\n.table > tfoot > tr > td.warning,\n.table > thead > tr > th.warning,\n.table > tbody > tr > th.warning,\n.table > tfoot > tr > th.warning,\n.table > thead > tr.warning > td,\n.table > tbody > tr.warning > td,\n.table > tfoot > tr.warning > td,\n.table > thead > tr.warning > th,\n.table > tbody > tr.warning > th,\n.table > tfoot > tr.warning > th {\n  background-color: #fcf8e3;\n}\n.table-hover > tbody > tr > td.warning:hover,\n.table-hover > tbody > tr > th.warning:hover,\n.table-hover > tbody > tr.warning:hover > td,\n.table-hover > tbody > tr:hover > .warning,\n.table-hover > tbody > tr.warning:hover > th {\n  background-color: #faf2cc;\n}\n.table > thead > tr > td.danger,\n.table > tbody > tr > td.danger,\n.table > tfoot > tr > td.danger,\n.table > thead > tr > th.danger,\n.table > tbody > tr > th.danger,\n.table > tfoot > tr > th.danger,\n.table > thead > tr.danger > td,\n.table > tbody > tr.danger > td,\n.table > tfoot > tr.danger > td,\n.table > thead > tr.danger > th,\n.table > tbody > tr.danger > th,\n.table > tfoot > tr.danger > th {\n  background-color: #f2dede;\n}\n.table-hover > tbody > tr > td.danger:hover,\n.table-hover > tbody > tr > th.danger:hover,\n.table-hover > tbody > tr.danger:hover > td,\n.table-hover > tbody > tr:hover > .danger,\n.table-hover > tbody > tr.danger:hover > th {\n  background-color: #ebcccc;\n}\n.table-responsive {\n  overflow-x: auto;\n  min-height: 0.01%;\n}\n@media screen and (max-width: 767px) {\n  .table-responsive {\n    width: 100%;\n    margin-bottom: 15px;\n    overflow-y: hidden;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    border: 1px solid #ddd;\n  }\n  .table-responsive > .table {\n    margin-bottom: 0;\n  }\n  .table-responsive > .table > thead > tr > th,\n  .table-responsive > .table > tbody > tr > th,\n  .table-responsive > .table > tfoot > tr > th,\n  .table-responsive > .table > thead > tr > td,\n  .table-responsive > .table > tbody > tr > td,\n  .table-responsive > .table > tfoot > tr > td {\n    white-space: nowrap;\n  }\n  .table-responsive > .table-bordered {\n    border: 0;\n  }\n  .table-responsive > .table-bordered > thead > tr > th:first-child,\n  .table-responsive > .table-bordered > tbody > tr > th:first-child,\n  .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n  .table-responsive > .table-bordered > thead > tr > td:first-child,\n  .table-responsive > .table-bordered > tbody > tr > td:first-child,\n  .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n    border-left: 0;\n  }\n  .table-responsive > .table-bordered > thead > tr > th:last-child,\n  .table-responsive > .table-bordered > tbody > tr > th:last-child,\n  .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n  .table-responsive > .table-bordered > thead > tr > td:last-child,\n  .table-responsive > .table-bordered > tbody > tr > td:last-child,\n  .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n    border-right: 0;\n  }\n  .table-responsive > .table-bordered > tbody > tr:last-child > th,\n  .table-responsive > .table-bordered > tfoot > tr:last-child > th,\n  .table-responsive > .table-bordered > tbody > tr:last-child > td,\n  .table-responsive > .table-bordered > tfoot > tr:last-child > td {\n    border-bottom: 0;\n  }\n}\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n  min-width: 0;\n}\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: 20px;\n  font-size: 21px;\n  line-height: inherit;\n  color: #333333;\n  border: 0;\n  border-bottom: 1px solid #e5e5e5;\n}\nlabel {\n  display: inline-block;\n  max-width: 100%;\n  margin-bottom: 5px;\n  font-weight: bold;\n}\ninput[type=\"search\"] {\n  -webkit-box-sizing: border-box;\n  -moz-box-sizing: border-box;\n  box-sizing: border-box;\n}\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9;\n  line-height: normal;\n}\ninput[type=\"file\"] {\n  display: block;\n}\ninput[type=\"range\"] {\n  display: block;\n  width: 100%;\n}\nselect[multiple],\nselect[size] {\n  height: auto;\n}\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\noutput {\n  display: block;\n  padding-top: 7px;\n  font-size: 14px;\n  line-height: 1.42857143;\n  color: #555555;\n}\n.form-control {\n  display: block;\n  width: 100%;\n  height: 34px;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.42857143;\n  color: #555555;\n  background-color: #fff;\n  background-image: none;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;\n}\n.form-control:focus {\n  border-color: #66afe9;\n  outline: 0;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);\n}\n.form-control::-moz-placeholder {\n  color: #999;\n  opacity: 1;\n}\n.form-control:-ms-input-placeholder {\n  color: #999;\n}\n.form-control::-webkit-input-placeholder {\n  color: #999;\n}\n.form-control::-ms-expand {\n  border: 0;\n  background-color: transparent;\n}\n.form-control[disabled],\n.form-control[readonly],\nfieldset[disabled] .form-control {\n  background-color: #eeeeee;\n  opacity: 1;\n}\n.form-control[disabled],\nfieldset[disabled] .form-control {\n  cursor: not-allowed;\n}\ntextarea.form-control {\n  height: auto;\n}\ninput[type=\"search\"] {\n  -webkit-appearance: none;\n}\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  input[type=\"date\"].form-control,\n  input[type=\"time\"].form-control,\n  input[type=\"datetime-local\"].form-control,\n  input[type=\"month\"].form-control {\n    line-height: 34px;\n  }\n  input[type=\"date\"].input-sm,\n  input[type=\"time\"].input-sm,\n  input[type=\"datetime-local\"].input-sm,\n  input[type=\"month\"].input-sm,\n  .input-group-sm input[type=\"date\"],\n  .input-group-sm input[type=\"time\"],\n  .input-group-sm input[type=\"datetime-local\"],\n  .input-group-sm input[type=\"month\"] {\n    line-height: 30px;\n  }\n  input[type=\"date\"].input-lg,\n  input[type=\"time\"].input-lg,\n  input[type=\"datetime-local\"].input-lg,\n  input[type=\"month\"].input-lg,\n  .input-group-lg input[type=\"date\"],\n  .input-group-lg input[type=\"time\"],\n  .input-group-lg input[type=\"datetime-local\"],\n  .input-group-lg input[type=\"month\"] {\n    line-height: 46px;\n  }\n}\n.form-group {\n  margin-bottom: 15px;\n}\n.radio,\n.checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.radio label,\n.checkbox label {\n  min-height: 20px;\n  padding-left: 20px;\n  margin-bottom: 0;\n  font-weight: normal;\n  cursor: pointer;\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  position: absolute;\n  margin-left: -20px;\n  margin-top: 4px \\9;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px;\n}\n.radio-inline,\n.checkbox-inline {\n  position: relative;\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  vertical-align: middle;\n  font-weight: normal;\n  cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px;\n}\ninput[type=\"radio\"][disabled],\ninput[type=\"checkbox\"][disabled],\ninput[type=\"radio\"].disabled,\ninput[type=\"checkbox\"].disabled,\nfieldset[disabled] input[type=\"radio\"],\nfieldset[disabled] input[type=\"checkbox\"] {\n  cursor: not-allowed;\n}\n.radio-inline.disabled,\n.checkbox-inline.disabled,\nfieldset[disabled] .radio-inline,\nfieldset[disabled] .checkbox-inline {\n  cursor: not-allowed;\n}\n.radio.disabled label,\n.checkbox.disabled label,\nfieldset[disabled] .radio label,\nfieldset[disabled] .checkbox label {\n  cursor: not-allowed;\n}\n.form-control-static {\n  padding-top: 7px;\n  padding-bottom: 7px;\n  margin-bottom: 0;\n  min-height: 34px;\n}\n.form-control-static.input-lg,\n.form-control-static.input-sm {\n  padding-left: 0;\n  padding-right: 0;\n}\n.input-sm {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\nselect.input-sm {\n  height: 30px;\n  line-height: 30px;\n}\ntextarea.input-sm,\nselect[multiple].input-sm {\n  height: auto;\n}\n.form-group-sm .form-control {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n.form-group-sm select.form-control {\n  height: 30px;\n  line-height: 30px;\n}\n.form-group-sm textarea.form-control,\n.form-group-sm select[multiple].form-control {\n  height: auto;\n}\n.form-group-sm .form-control-static {\n  height: 30px;\n  min-height: 32px;\n  padding: 6px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.input-lg {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\nselect.input-lg {\n  height: 46px;\n  line-height: 46px;\n}\ntextarea.input-lg,\nselect[multiple].input-lg {\n  height: auto;\n}\n.form-group-lg .form-control {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\n.form-group-lg select.form-control {\n  height: 46px;\n  line-height: 46px;\n}\n.form-group-lg textarea.form-control,\n.form-group-lg select[multiple].form-control {\n  height: auto;\n}\n.form-group-lg .form-control-static {\n  height: 46px;\n  min-height: 38px;\n  padding: 11px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n}\n.has-feedback {\n  position: relative;\n}\n.has-feedback .form-control {\n  padding-right: 42.5px;\n}\n.form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2;\n  display: block;\n  width: 34px;\n  height: 34px;\n  line-height: 34px;\n  text-align: center;\n  pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n  width: 46px;\n  height: 46px;\n  line-height: 46px;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n  width: 30px;\n  height: 30px;\n  line-height: 30px;\n}\n.has-success .help-block,\n.has-success .control-label,\n.has-success .radio,\n.has-success .checkbox,\n.has-success .radio-inline,\n.has-success .checkbox-inline,\n.has-success.radio label,\n.has-success.checkbox label,\n.has-success.radio-inline label,\n.has-success.checkbox-inline label {\n  color: #3c763d;\n}\n.has-success .form-control {\n  border-color: #3c763d;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-success .form-control:focus {\n  border-color: #2b542c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;\n}\n.has-success .input-group-addon {\n  color: #3c763d;\n  border-color: #3c763d;\n  background-color: #dff0d8;\n}\n.has-success .form-control-feedback {\n  color: #3c763d;\n}\n.has-warning .help-block,\n.has-warning .control-label,\n.has-warning .radio,\n.has-warning .checkbox,\n.has-warning .radio-inline,\n.has-warning .checkbox-inline,\n.has-warning.radio label,\n.has-warning.checkbox label,\n.has-warning.radio-inline label,\n.has-warning.checkbox-inline label {\n  color: #8a6d3b;\n}\n.has-warning .form-control {\n  border-color: #8a6d3b;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-warning .form-control:focus {\n  border-color: #66512c;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;\n}\n.has-warning .input-group-addon {\n  color: #8a6d3b;\n  border-color: #8a6d3b;\n  background-color: #fcf8e3;\n}\n.has-warning .form-control-feedback {\n  color: #8a6d3b;\n}\n.has-error .help-block,\n.has-error .control-label,\n.has-error .radio,\n.has-error .checkbox,\n.has-error .radio-inline,\n.has-error .checkbox-inline,\n.has-error.radio label,\n.has-error.checkbox label,\n.has-error.radio-inline label,\n.has-error.checkbox-inline label {\n  color: #a94442;\n}\n.has-error .form-control {\n  border-color: #a94442;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);\n}\n.has-error .form-control:focus {\n  border-color: #843534;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;\n}\n.has-error .input-group-addon {\n  color: #a94442;\n  border-color: #a94442;\n  background-color: #f2dede;\n}\n.has-error .form-control-feedback {\n  color: #a94442;\n}\n.has-feedback label ~ .form-control-feedback {\n  top: 25px;\n}\n.has-feedback label.sr-only ~ .form-control-feedback {\n  top: 0;\n}\n.help-block {\n  display: block;\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: #737373;\n}\n@media (min-width: 768px) {\n  .form-inline .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .form-inline .form-control-static {\n    display: inline-block;\n  }\n  .form-inline .input-group {\n    display: inline-table;\n    vertical-align: middle;\n  }\n  .form-inline .input-group .input-group-addon,\n  .form-inline .input-group .input-group-btn,\n  .form-inline .input-group .form-control {\n    width: auto;\n  }\n  .form-inline .input-group > .form-control {\n    width: 100%;\n  }\n  .form-inline .control-label {\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .radio,\n  .form-inline .checkbox {\n    display: inline-block;\n    margin-top: 0;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .form-inline .radio label,\n  .form-inline .checkbox label {\n    padding-left: 0;\n  }\n  .form-inline .radio input[type=\"radio\"],\n  .form-inline .checkbox input[type=\"checkbox\"] {\n    position: relative;\n    margin-left: 0;\n  }\n  .form-inline .has-feedback .form-control-feedback {\n    top: 0;\n  }\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox,\n.form-horizontal .radio-inline,\n.form-horizontal .checkbox-inline {\n  margin-top: 0;\n  margin-bottom: 0;\n  padding-top: 7px;\n}\n.form-horizontal .radio,\n.form-horizontal .checkbox {\n  min-height: 27px;\n}\n.form-horizontal .form-group {\n  margin-left: -15px;\n  margin-right: -15px;\n}\n@media (min-width: 768px) {\n  .form-horizontal .control-label {\n    text-align: right;\n    margin-bottom: 0;\n    padding-top: 7px;\n  }\n}\n.form-horizontal .has-feedback .form-control-feedback {\n  right: 15px;\n}\n@media (min-width: 768px) {\n  .form-horizontal .form-group-lg .control-label {\n    padding-top: 11px;\n    font-size: 18px;\n  }\n}\n@media (min-width: 768px) {\n  .form-horizontal .form-group-sm .control-label {\n    padding-top: 6px;\n    font-size: 12px;\n  }\n}\n.btn {\n  display: inline-block;\n  margin-bottom: 0;\n  font-weight: normal;\n  text-align: center;\n  vertical-align: middle;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none;\n  border: 1px solid transparent;\n  white-space: nowrap;\n  padding: 6px 12px;\n  font-size: 14px;\n  line-height: 1.42857143;\n  border-radius: 4px;\n  -webkit-user-select: none;\n  -moz-user-select: none;\n  -ms-user-select: none;\n  user-select: none;\n}\n.btn:focus,\n.btn:active:focus,\n.btn.active:focus,\n.btn.focus,\n.btn:active.focus,\n.btn.active.focus {\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n.btn:hover,\n.btn:focus,\n.btn.focus {\n  color: #333;\n  text-decoration: none;\n}\n.btn:active,\n.btn.active {\n  outline: 0;\n  background-image: none;\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn.disabled,\n.btn[disabled],\nfieldset[disabled] .btn {\n  cursor: not-allowed;\n  opacity: 0.65;\n  filter: alpha(opacity=65);\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\na.btn.disabled,\nfieldset[disabled] a.btn {\n  pointer-events: none;\n}\n.btn-default {\n  color: #333;\n  background-color: #fff;\n  border-color: #ccc;\n}\n.btn-default:focus,\n.btn-default.focus {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #8c8c8c;\n}\n.btn-default:hover {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n  color: #333;\n  background-color: #e6e6e6;\n  border-color: #adadad;\n}\n.btn-default:active:hover,\n.btn-default.active:hover,\n.open > .dropdown-toggle.btn-default:hover,\n.btn-default:active:focus,\n.btn-default.active:focus,\n.open > .dropdown-toggle.btn-default:focus,\n.btn-default:active.focus,\n.btn-default.active.focus,\n.open > .dropdown-toggle.btn-default.focus {\n  color: #333;\n  background-color: #d4d4d4;\n  border-color: #8c8c8c;\n}\n.btn-default:active,\n.btn-default.active,\n.open > .dropdown-toggle.btn-default {\n  background-image: none;\n}\n.btn-default.disabled:hover,\n.btn-default[disabled]:hover,\nfieldset[disabled] .btn-default:hover,\n.btn-default.disabled:focus,\n.btn-default[disabled]:focus,\nfieldset[disabled] .btn-default:focus,\n.btn-default.disabled.focus,\n.btn-default[disabled].focus,\nfieldset[disabled] .btn-default.focus {\n  background-color: #fff;\n  border-color: #ccc;\n}\n.btn-default .badge {\n  color: #fff;\n  background-color: #333;\n}\n.btn-primary {\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #2e6da4;\n}\n.btn-primary:focus,\n.btn-primary.focus {\n  color: #fff;\n  background-color: #286090;\n  border-color: #122b40;\n}\n.btn-primary:hover {\n  color: #fff;\n  background-color: #286090;\n  border-color: #204d74;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n  color: #fff;\n  background-color: #286090;\n  border-color: #204d74;\n}\n.btn-primary:active:hover,\n.btn-primary.active:hover,\n.open > .dropdown-toggle.btn-primary:hover,\n.btn-primary:active:focus,\n.btn-primary.active:focus,\n.open > .dropdown-toggle.btn-primary:focus,\n.btn-primary:active.focus,\n.btn-primary.active.focus,\n.open > .dropdown-toggle.btn-primary.focus {\n  color: #fff;\n  background-color: #204d74;\n  border-color: #122b40;\n}\n.btn-primary:active,\n.btn-primary.active,\n.open > .dropdown-toggle.btn-primary {\n  background-image: none;\n}\n.btn-primary.disabled:hover,\n.btn-primary[disabled]:hover,\nfieldset[disabled] .btn-primary:hover,\n.btn-primary.disabled:focus,\n.btn-primary[disabled]:focus,\nfieldset[disabled] .btn-primary:focus,\n.btn-primary.disabled.focus,\n.btn-primary[disabled].focus,\nfieldset[disabled] .btn-primary.focus {\n  background-color: #337ab7;\n  border-color: #2e6da4;\n}\n.btn-primary .badge {\n  color: #337ab7;\n  background-color: #fff;\n}\n.btn-success {\n  color: #fff;\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.btn-success:focus,\n.btn-success.focus {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #255625;\n}\n.btn-success:hover {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #398439;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n  color: #fff;\n  background-color: #449d44;\n  border-color: #398439;\n}\n.btn-success:active:hover,\n.btn-success.active:hover,\n.open > .dropdown-toggle.btn-success:hover,\n.btn-success:active:focus,\n.btn-success.active:focus,\n.open > .dropdown-toggle.btn-success:focus,\n.btn-success:active.focus,\n.btn-success.active.focus,\n.open > .dropdown-toggle.btn-success.focus {\n  color: #fff;\n  background-color: #398439;\n  border-color: #255625;\n}\n.btn-success:active,\n.btn-success.active,\n.open > .dropdown-toggle.btn-success {\n  background-image: none;\n}\n.btn-success.disabled:hover,\n.btn-success[disabled]:hover,\nfieldset[disabled] .btn-success:hover,\n.btn-success.disabled:focus,\n.btn-success[disabled]:focus,\nfieldset[disabled] .btn-success:focus,\n.btn-success.disabled.focus,\n.btn-success[disabled].focus,\nfieldset[disabled] .btn-success.focus {\n  background-color: #5cb85c;\n  border-color: #4cae4c;\n}\n.btn-success .badge {\n  color: #5cb85c;\n  background-color: #fff;\n}\n.btn-info {\n  color: #fff;\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.btn-info:focus,\n.btn-info.focus {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #1b6d85;\n}\n.btn-info:hover {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #269abc;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n  color: #fff;\n  background-color: #31b0d5;\n  border-color: #269abc;\n}\n.btn-info:active:hover,\n.btn-info.active:hover,\n.open > .dropdown-toggle.btn-info:hover,\n.btn-info:active:focus,\n.btn-info.active:focus,\n.open > .dropdown-toggle.btn-info:focus,\n.btn-info:active.focus,\n.btn-info.active.focus,\n.open > .dropdown-toggle.btn-info.focus {\n  color: #fff;\n  background-color: #269abc;\n  border-color: #1b6d85;\n}\n.btn-info:active,\n.btn-info.active,\n.open > .dropdown-toggle.btn-info {\n  background-image: none;\n}\n.btn-info.disabled:hover,\n.btn-info[disabled]:hover,\nfieldset[disabled] .btn-info:hover,\n.btn-info.disabled:focus,\n.btn-info[disabled]:focus,\nfieldset[disabled] .btn-info:focus,\n.btn-info.disabled.focus,\n.btn-info[disabled].focus,\nfieldset[disabled] .btn-info.focus {\n  background-color: #5bc0de;\n  border-color: #46b8da;\n}\n.btn-info .badge {\n  color: #5bc0de;\n  background-color: #fff;\n}\n.btn-warning {\n  color: #fff;\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.btn-warning:focus,\n.btn-warning.focus {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #985f0d;\n}\n.btn-warning:hover {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #d58512;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n  color: #fff;\n  background-color: #ec971f;\n  border-color: #d58512;\n}\n.btn-warning:active:hover,\n.btn-warning.active:hover,\n.open > .dropdown-toggle.btn-warning:hover,\n.btn-warning:active:focus,\n.btn-warning.active:focus,\n.open > .dropdown-toggle.btn-warning:focus,\n.btn-warning:active.focus,\n.btn-warning.active.focus,\n.open > .dropdown-toggle.btn-warning.focus {\n  color: #fff;\n  background-color: #d58512;\n  border-color: #985f0d;\n}\n.btn-warning:active,\n.btn-warning.active,\n.open > .dropdown-toggle.btn-warning {\n  background-image: none;\n}\n.btn-warning.disabled:hover,\n.btn-warning[disabled]:hover,\nfieldset[disabled] .btn-warning:hover,\n.btn-warning.disabled:focus,\n.btn-warning[disabled]:focus,\nfieldset[disabled] .btn-warning:focus,\n.btn-warning.disabled.focus,\n.btn-warning[disabled].focus,\nfieldset[disabled] .btn-warning.focus {\n  background-color: #f0ad4e;\n  border-color: #eea236;\n}\n.btn-warning .badge {\n  color: #f0ad4e;\n  background-color: #fff;\n}\n.btn-danger {\n  color: #fff;\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.btn-danger:focus,\n.btn-danger.focus {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #761c19;\n}\n.btn-danger:hover {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #ac2925;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n  color: #fff;\n  background-color: #c9302c;\n  border-color: #ac2925;\n}\n.btn-danger:active:hover,\n.btn-danger.active:hover,\n.open > .dropdown-toggle.btn-danger:hover,\n.btn-danger:active:focus,\n.btn-danger.active:focus,\n.open > .dropdown-toggle.btn-danger:focus,\n.btn-danger:active.focus,\n.btn-danger.active.focus,\n.open > .dropdown-toggle.btn-danger.focus {\n  color: #fff;\n  background-color: #ac2925;\n  border-color: #761c19;\n}\n.btn-danger:active,\n.btn-danger.active,\n.open > .dropdown-toggle.btn-danger {\n  background-image: none;\n}\n.btn-danger.disabled:hover,\n.btn-danger[disabled]:hover,\nfieldset[disabled] .btn-danger:hover,\n.btn-danger.disabled:focus,\n.btn-danger[disabled]:focus,\nfieldset[disabled] .btn-danger:focus,\n.btn-danger.disabled.focus,\n.btn-danger[disabled].focus,\nfieldset[disabled] .btn-danger.focus {\n  background-color: #d9534f;\n  border-color: #d43f3a;\n}\n.btn-danger .badge {\n  color: #d9534f;\n  background-color: #fff;\n}\n.btn-link {\n  color: #337ab7;\n  font-weight: normal;\n  border-radius: 0;\n}\n.btn-link,\n.btn-link:active,\n.btn-link.active,\n.btn-link[disabled],\nfieldset[disabled] .btn-link {\n  background-color: transparent;\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n.btn-link,\n.btn-link:hover,\n.btn-link:focus,\n.btn-link:active {\n  border-color: transparent;\n}\n.btn-link:hover,\n.btn-link:focus {\n  color: #23527c;\n  text-decoration: underline;\n  background-color: transparent;\n}\n.btn-link[disabled]:hover,\nfieldset[disabled] .btn-link:hover,\n.btn-link[disabled]:focus,\nfieldset[disabled] .btn-link:focus {\n  color: #777777;\n  text-decoration: none;\n}\n.btn-lg,\n.btn-group-lg > .btn {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\n.btn-sm,\n.btn-group-sm > .btn {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n.btn-xs,\n.btn-group-xs > .btn {\n  padding: 1px 5px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\n.btn-block {\n  display: block;\n  width: 100%;\n}\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n  width: 100%;\n}\n.fade {\n  opacity: 0;\n  -webkit-transition: opacity 0.15s linear;\n  -o-transition: opacity 0.15s linear;\n  transition: opacity 0.15s linear;\n}\n.fade.in {\n  opacity: 1;\n}\n.collapse {\n  display: none;\n}\n.collapse.in {\n  display: block;\n}\ntr.collapse.in {\n  display: table-row;\n}\ntbody.collapse.in {\n  display: table-row-group;\n}\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  -webkit-transition-property: height, visibility;\n  transition-property: height, visibility;\n  -webkit-transition-duration: 0.35s;\n  transition-duration: 0.35s;\n  -webkit-transition-timing-function: ease;\n  transition-timing-function: ease;\n}\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top: 4px dashed;\n  border-top: 4px solid \\9;\n  border-right: 4px solid transparent;\n  border-left: 4px solid transparent;\n}\n.dropup,\n.dropdown {\n  position: relative;\n}\n.dropdown-toggle:focus {\n  outline: 0;\n}\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: 1000;\n  display: none;\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0;\n  list-style: none;\n  font-size: 14px;\n  text-align: left;\n  background-color: #fff;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.15);\n  border-radius: 4px;\n  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);\n  background-clip: padding-box;\n}\n.dropdown-menu.pull-right {\n  right: 0;\n  left: auto;\n}\n.dropdown-menu .divider {\n  height: 1px;\n  margin: 9px 0;\n  overflow: hidden;\n  background-color: #e5e5e5;\n}\n.dropdown-menu > li > a {\n  display: block;\n  padding: 3px 20px;\n  clear: both;\n  font-weight: normal;\n  line-height: 1.42857143;\n  color: #333333;\n  white-space: nowrap;\n}\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n  text-decoration: none;\n  color: #262626;\n  background-color: #f5f5f5;\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n  color: #fff;\n  text-decoration: none;\n  outline: 0;\n  background-color: #337ab7;\n}\n.dropdown-menu > .disabled > a,\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  color: #777777;\n}\n.dropdown-menu > .disabled > a:hover,\n.dropdown-menu > .disabled > a:focus {\n  text-decoration: none;\n  background-color: transparent;\n  background-image: none;\n  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);\n  cursor: not-allowed;\n}\n.open > .dropdown-menu {\n  display: block;\n}\n.open > a {\n  outline: 0;\n}\n.dropdown-menu-right {\n  left: auto;\n  right: 0;\n}\n.dropdown-menu-left {\n  left: 0;\n  right: auto;\n}\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: 12px;\n  line-height: 1.42857143;\n  color: #777777;\n  white-space: nowrap;\n}\n.dropdown-backdrop {\n  position: fixed;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  z-index: 990;\n}\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n.dropup .caret,\n.navbar-fixed-bottom .dropdown .caret {\n  border-top: 0;\n  border-bottom: 4px dashed;\n  border-bottom: 4px solid \\9;\n  content: \"\";\n}\n.dropup .dropdown-menu,\n.navbar-fixed-bottom .dropdown .dropdown-menu {\n  top: auto;\n  bottom: 100%;\n  margin-bottom: 2px;\n}\n@media (min-width: 768px) {\n  .navbar-right .dropdown-menu {\n    left: auto;\n    right: 0;\n  }\n  .navbar-right .dropdown-menu-left {\n    left: 0;\n    right: auto;\n  }\n}\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle;\n}\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n  position: relative;\n  float: left;\n}\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover,\n.btn-group > .btn:focus,\n.btn-group-vertical > .btn:focus,\n.btn-group > .btn:active,\n.btn-group-vertical > .btn:active,\n.btn-group > .btn.active,\n.btn-group-vertical > .btn.active {\n  z-index: 2;\n}\n.btn-group .btn + .btn,\n.btn-group .btn + .btn-group,\n.btn-group .btn-group + .btn,\n.btn-group .btn-group + .btn-group {\n  margin-left: -1px;\n}\n.btn-toolbar {\n  margin-left: -5px;\n}\n.btn-toolbar .btn,\n.btn-toolbar .btn-group,\n.btn-toolbar .input-group {\n  float: left;\n}\n.btn-toolbar > .btn,\n.btn-toolbar > .btn-group,\n.btn-toolbar > .input-group {\n  margin-left: 5px;\n}\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n.btn-group > .btn:first-child {\n  margin-left: 0;\n}\n.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n.btn-group > .btn-group {\n  float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n.btn-group > .btn + .dropdown-toggle {\n  padding-left: 8px;\n  padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-left: 12px;\n  padding-right: 12px;\n}\n.btn-group.open .dropdown-toggle {\n  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);\n}\n.btn-group.open .dropdown-toggle.btn-link {\n  -webkit-box-shadow: none;\n  box-shadow: none;\n}\n.btn .caret {\n  margin-left: 0;\n}\n.btn-lg .caret {\n  border-width: 5px 5px 0;\n  border-bottom-width: 0;\n}\n.dropup .btn-lg .caret {\n  border-width: 0 5px 5px;\n}\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group,\n.btn-group-vertical > .btn-group > .btn {\n  display: block;\n  float: none;\n  width: 100%;\n  max-width: 100%;\n}\n.btn-group-vertical > .btn-group > .btn {\n  float: none;\n}\n.btn-group-vertical > .btn + .btn,\n.btn-group-vertical > .btn + .btn-group,\n.btn-group-vertical > .btn-group + .btn,\n.btn-group-vertical > .btn-group + .btn-group {\n  margin-top: -1px;\n  margin-left: 0;\n}\n.btn-group-vertical > .btn:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn:first-child:not(:last-child) {\n  border-top-right-radius: 4px;\n  border-top-left-radius: 4px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn:last-child:not(:first-child) {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,\n.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n}\n.btn-group-justified > .btn,\n.btn-group-justified > .btn-group {\n  float: none;\n  display: table-cell;\n  width: 1%;\n}\n.btn-group-justified > .btn-group .btn {\n  width: 100%;\n}\n.btn-group-justified > .btn-group .dropdown-menu {\n  left: auto;\n}\n[data-toggle=\"buttons\"] > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn input[type=\"checkbox\"],\n[data-toggle=\"buttons\"] > .btn-group > .btn input[type=\"checkbox\"] {\n  position: absolute;\n  clip: rect(0, 0, 0, 0);\n  pointer-events: none;\n}\n.input-group {\n  position: relative;\n  display: table;\n  border-collapse: separate;\n}\n.input-group[class*=\"col-\"] {\n  float: none;\n  padding-left: 0;\n  padding-right: 0;\n}\n.input-group .form-control {\n  position: relative;\n  z-index: 2;\n  float: left;\n  width: 100%;\n  margin-bottom: 0;\n}\n.input-group .form-control:focus {\n  z-index: 3;\n}\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  height: 46px;\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n  border-radius: 6px;\n}\nselect.input-group-lg > .form-control,\nselect.input-group-lg > .input-group-addon,\nselect.input-group-lg > .input-group-btn > .btn {\n  height: 46px;\n  line-height: 46px;\n}\ntextarea.input-group-lg > .form-control,\ntextarea.input-group-lg > .input-group-addon,\ntextarea.input-group-lg > .input-group-btn > .btn,\nselect[multiple].input-group-lg > .form-control,\nselect[multiple].input-group-lg > .input-group-addon,\nselect[multiple].input-group-lg > .input-group-btn > .btn {\n  height: auto;\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n  border-radius: 3px;\n}\nselect.input-group-sm > .form-control,\nselect.input-group-sm > .input-group-addon,\nselect.input-group-sm > .input-group-btn > .btn {\n  height: 30px;\n  line-height: 30px;\n}\ntextarea.input-group-sm > .form-control,\ntextarea.input-group-sm > .input-group-addon,\ntextarea.input-group-sm > .input-group-btn > .btn,\nselect[multiple].input-group-sm > .form-control,\nselect[multiple].input-group-sm > .input-group-addon,\nselect[multiple].input-group-sm > .input-group-btn > .btn {\n  height: auto;\n}\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n}\n.input-group-addon:not(:first-child):not(:last-child),\n.input-group-btn:not(:first-child):not(:last-child),\n.input-group .form-control:not(:first-child):not(:last-child) {\n  border-radius: 0;\n}\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle;\n}\n.input-group-addon {\n  padding: 6px 12px;\n  font-size: 14px;\n  font-weight: normal;\n  line-height: 1;\n  color: #555555;\n  text-align: center;\n  background-color: #eeeeee;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n}\n.input-group-addon.input-sm {\n  padding: 5px 10px;\n  font-size: 12px;\n  border-radius: 3px;\n}\n.input-group-addon.input-lg {\n  padding: 10px 16px;\n  font-size: 18px;\n  border-radius: 6px;\n}\n.input-group-addon input[type=\"radio\"],\n.input-group-addon input[type=\"checkbox\"] {\n  margin-top: 0;\n}\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  border-bottom-right-radius: 0;\n  border-top-right-radius: 0;\n}\n.input-group-addon:first-child {\n  border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  border-bottom-left-radius: 0;\n  border-top-left-radius: 0;\n}\n.input-group-addon:last-child {\n  border-left: 0;\n}\n.input-group-btn {\n  position: relative;\n  font-size: 0;\n  white-space: nowrap;\n}\n.input-group-btn > .btn {\n  position: relative;\n}\n.input-group-btn > .btn + .btn {\n  margin-left: -1px;\n}\n.input-group-btn > .btn:hover,\n.input-group-btn > .btn:focus,\n.input-group-btn > .btn:active {\n  z-index: 2;\n}\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group {\n  margin-right: -1px;\n}\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group {\n  z-index: 2;\n  margin-left: -1px;\n}\n.nav {\n  margin-bottom: 0;\n  padding-left: 0;\n  list-style: none;\n}\n.nav > li {\n  position: relative;\n  display: block;\n}\n.nav > li > a {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n}\n.nav > li > a:hover,\n.nav > li > a:focus {\n  text-decoration: none;\n  background-color: #eeeeee;\n}\n.nav > li.disabled > a {\n  color: #777777;\n}\n.nav > li.disabled > a:hover,\n.nav > li.disabled > a:focus {\n  color: #777777;\n  text-decoration: none;\n  background-color: transparent;\n  cursor: not-allowed;\n}\n.nav .open > a,\n.nav .open > a:hover,\n.nav .open > a:focus {\n  background-color: #eeeeee;\n  border-color: #337ab7;\n}\n.nav .nav-divider {\n  height: 1px;\n  margin: 9px 0;\n  overflow: hidden;\n  background-color: #e5e5e5;\n}\n.nav > li > a > img {\n  max-width: none;\n}\n.nav-tabs {\n  border-bottom: 1px solid #ddd;\n}\n.nav-tabs > li {\n  float: left;\n  margin-bottom: -1px;\n}\n.nav-tabs > li > a {\n  margin-right: 2px;\n  line-height: 1.42857143;\n  border: 1px solid transparent;\n  border-radius: 4px 4px 0 0;\n}\n.nav-tabs > li > a:hover {\n  border-color: #eeeeee #eeeeee #ddd;\n}\n.nav-tabs > li.active > a,\n.nav-tabs > li.active > a:hover,\n.nav-tabs > li.active > a:focus {\n  color: #555555;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-bottom-color: transparent;\n  cursor: default;\n}\n.nav-tabs.nav-justified {\n  width: 100%;\n  border-bottom: 0;\n}\n.nav-tabs.nav-justified > li {\n  float: none;\n}\n.nav-tabs.nav-justified > li > a {\n  text-align: center;\n  margin-bottom: 5px;\n}\n.nav-tabs.nav-justified > .dropdown .dropdown-menu {\n  top: auto;\n  left: auto;\n}\n@media (min-width: 768px) {\n  .nav-tabs.nav-justified > li {\n    display: table-cell;\n    width: 1%;\n  }\n  .nav-tabs.nav-justified > li > a {\n    margin-bottom: 0;\n  }\n}\n.nav-tabs.nav-justified > li > a {\n  margin-right: 0;\n  border-radius: 4px;\n}\n.nav-tabs.nav-justified > .active > a,\n.nav-tabs.nav-justified > .active > a:hover,\n.nav-tabs.nav-justified > .active > a:focus {\n  border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n  .nav-tabs.nav-justified > li > a {\n    border-bottom: 1px solid #ddd;\n    border-radius: 4px 4px 0 0;\n  }\n  .nav-tabs.nav-justified > .active > a,\n  .nav-tabs.nav-justified > .active > a:hover,\n  .nav-tabs.nav-justified > .active > a:focus {\n    border-bottom-color: #fff;\n  }\n}\n.nav-pills > li {\n  float: left;\n}\n.nav-pills > li > a {\n  border-radius: 4px;\n}\n.nav-pills > li + li {\n  margin-left: 2px;\n}\n.nav-pills > li.active > a,\n.nav-pills > li.active > a:hover,\n.nav-pills > li.active > a:focus {\n  color: #fff;\n  background-color: #337ab7;\n}\n.nav-stacked > li {\n  float: none;\n}\n.nav-stacked > li + li {\n  margin-top: 2px;\n  margin-left: 0;\n}\n.nav-justified {\n  width: 100%;\n}\n.nav-justified > li {\n  float: none;\n}\n.nav-justified > li > a {\n  text-align: center;\n  margin-bottom: 5px;\n}\n.nav-justified > .dropdown .dropdown-menu {\n  top: auto;\n  left: auto;\n}\n@media (min-width: 768px) {\n  .nav-justified > li {\n    display: table-cell;\n    width: 1%;\n  }\n  .nav-justified > li > a {\n    margin-bottom: 0;\n  }\n}\n.nav-tabs-justified {\n  border-bottom: 0;\n}\n.nav-tabs-justified > li > a {\n  margin-right: 0;\n  border-radius: 4px;\n}\n.nav-tabs-justified > .active > a,\n.nav-tabs-justified > .active > a:hover,\n.nav-tabs-justified > .active > a:focus {\n  border: 1px solid #ddd;\n}\n@media (min-width: 768px) {\n  .nav-tabs-justified > li > a {\n    border-bottom: 1px solid #ddd;\n    border-radius: 4px 4px 0 0;\n  }\n  .nav-tabs-justified > .active > a,\n  .nav-tabs-justified > .active > a:hover,\n  .nav-tabs-justified > .active > a:focus {\n    border-bottom-color: #fff;\n  }\n}\n.tab-content > .tab-pane {\n  display: none;\n}\n.tab-content > .active {\n  display: block;\n}\n.nav-tabs .dropdown-menu {\n  margin-top: -1px;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.navbar {\n  position: relative;\n  min-height: 50px;\n  margin-bottom: 20px;\n  border: 1px solid transparent;\n}\n@media (min-width: 768px) {\n  .navbar {\n    border-radius: 4px;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-header {\n    float: left;\n  }\n}\n.navbar-collapse {\n  overflow-x: visible;\n  padding-right: 15px;\n  padding-left: 15px;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);\n  -webkit-overflow-scrolling: touch;\n}\n.navbar-collapse.in {\n  overflow-y: auto;\n}\n@media (min-width: 768px) {\n  .navbar-collapse {\n    width: auto;\n    border-top: 0;\n    box-shadow: none;\n  }\n  .navbar-collapse.collapse {\n    display: block !important;\n    height: auto !important;\n    padding-bottom: 0;\n    overflow: visible !important;\n  }\n  .navbar-collapse.in {\n    overflow-y: visible;\n  }\n  .navbar-fixed-top .navbar-collapse,\n  .navbar-static-top .navbar-collapse,\n  .navbar-fixed-bottom .navbar-collapse {\n    padding-left: 0;\n    padding-right: 0;\n  }\n}\n.navbar-fixed-top .navbar-collapse,\n.navbar-fixed-bottom .navbar-collapse {\n  max-height: 340px;\n}\n@media (max-device-width: 480px) and (orientation: landscape) {\n  .navbar-fixed-top .navbar-collapse,\n  .navbar-fixed-bottom .navbar-collapse {\n    max-height: 200px;\n  }\n}\n.container > .navbar-header,\n.container-fluid > .navbar-header,\n.container > .navbar-collapse,\n.container-fluid > .navbar-collapse {\n  margin-right: -15px;\n  margin-left: -15px;\n}\n@media (min-width: 768px) {\n  .container > .navbar-header,\n  .container-fluid > .navbar-header,\n  .container > .navbar-collapse,\n  .container-fluid > .navbar-collapse {\n    margin-right: 0;\n    margin-left: 0;\n  }\n}\n.navbar-static-top {\n  z-index: 1000;\n  border-width: 0 0 1px;\n}\n@media (min-width: 768px) {\n  .navbar-static-top {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: 1030;\n}\n@media (min-width: 768px) {\n  .navbar-fixed-top,\n  .navbar-fixed-bottom {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0;\n  border-width: 1px 0 0;\n}\n.navbar-brand {\n  float: left;\n  padding: 15px 15px;\n  font-size: 18px;\n  line-height: 20px;\n  height: 50px;\n}\n.navbar-brand:hover,\n.navbar-brand:focus {\n  text-decoration: none;\n}\n.navbar-brand > img {\n  display: block;\n}\n@media (min-width: 768px) {\n  .navbar > .container .navbar-brand,\n  .navbar > .container-fluid .navbar-brand {\n    margin-left: -15px;\n  }\n}\n.navbar-toggle {\n  position: relative;\n  float: right;\n  margin-right: 15px;\n  padding: 9px 10px;\n  margin-top: 8px;\n  margin-bottom: 8px;\n  background-color: transparent;\n  background-image: none;\n  border: 1px solid transparent;\n  border-radius: 4px;\n}\n.navbar-toggle:focus {\n  outline: 0;\n}\n.navbar-toggle .icon-bar {\n  display: block;\n  width: 22px;\n  height: 2px;\n  border-radius: 1px;\n}\n.navbar-toggle .icon-bar + .icon-bar {\n  margin-top: 4px;\n}\n@media (min-width: 768px) {\n  .navbar-toggle {\n    display: none;\n  }\n}\n.navbar-nav {\n  margin: 7.5px -15px;\n}\n.navbar-nav > li > a {\n  padding-top: 10px;\n  padding-bottom: 10px;\n  line-height: 20px;\n}\n@media (max-width: 767px) {\n  .navbar-nav .open .dropdown-menu {\n    position: static;\n    float: none;\n    width: auto;\n    margin-top: 0;\n    background-color: transparent;\n    border: 0;\n    box-shadow: none;\n  }\n  .navbar-nav .open .dropdown-menu > li > a,\n  .navbar-nav .open .dropdown-menu .dropdown-header {\n    padding: 5px 15px 5px 25px;\n  }\n  .navbar-nav .open .dropdown-menu > li > a {\n    line-height: 20px;\n  }\n  .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-nav .open .dropdown-menu > li > a:focus {\n    background-image: none;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-nav {\n    float: left;\n    margin: 0;\n  }\n  .navbar-nav > li {\n    float: left;\n  }\n  .navbar-nav > li > a {\n    padding-top: 15px;\n    padding-bottom: 15px;\n  }\n}\n.navbar-form {\n  margin-left: -15px;\n  margin-right: -15px;\n  padding: 10px 15px;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);\n  margin-top: 8px;\n  margin-bottom: 8px;\n}\n@media (min-width: 768px) {\n  .navbar-form .form-group {\n    display: inline-block;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .form-control {\n    display: inline-block;\n    width: auto;\n    vertical-align: middle;\n  }\n  .navbar-form .form-control-static {\n    display: inline-block;\n  }\n  .navbar-form .input-group {\n    display: inline-table;\n    vertical-align: middle;\n  }\n  .navbar-form .input-group .input-group-addon,\n  .navbar-form .input-group .input-group-btn,\n  .navbar-form .input-group .form-control {\n    width: auto;\n  }\n  .navbar-form .input-group > .form-control {\n    width: 100%;\n  }\n  .navbar-form .control-label {\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .radio,\n  .navbar-form .checkbox {\n    display: inline-block;\n    margin-top: 0;\n    margin-bottom: 0;\n    vertical-align: middle;\n  }\n  .navbar-form .radio label,\n  .navbar-form .checkbox label {\n    padding-left: 0;\n  }\n  .navbar-form .radio input[type=\"radio\"],\n  .navbar-form .checkbox input[type=\"checkbox\"] {\n    position: relative;\n    margin-left: 0;\n  }\n  .navbar-form .has-feedback .form-control-feedback {\n    top: 0;\n  }\n}\n@media (max-width: 767px) {\n  .navbar-form .form-group {\n    margin-bottom: 5px;\n  }\n  .navbar-form .form-group:last-child {\n    margin-bottom: 0;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-form {\n    width: auto;\n    border: 0;\n    margin-left: 0;\n    margin-right: 0;\n    padding-top: 0;\n    padding-bottom: 0;\n    -webkit-box-shadow: none;\n    box-shadow: none;\n  }\n}\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  margin-bottom: 0;\n  border-top-right-radius: 4px;\n  border-top-left-radius: 4px;\n  border-bottom-right-radius: 0;\n  border-bottom-left-radius: 0;\n}\n.navbar-btn {\n  margin-top: 8px;\n  margin-bottom: 8px;\n}\n.navbar-btn.btn-sm {\n  margin-top: 10px;\n  margin-bottom: 10px;\n}\n.navbar-btn.btn-xs {\n  margin-top: 14px;\n  margin-bottom: 14px;\n}\n.navbar-text {\n  margin-top: 15px;\n  margin-bottom: 15px;\n}\n@media (min-width: 768px) {\n  .navbar-text {\n    float: left;\n    margin-left: 15px;\n    margin-right: 15px;\n  }\n}\n@media (min-width: 768px) {\n  .navbar-left {\n    float: left !important;\n  }\n  .navbar-right {\n    float: right !important;\n    margin-right: -15px;\n  }\n  .navbar-right ~ .navbar-right {\n    margin-right: 0;\n  }\n}\n.navbar-default {\n  background-color: #f8f8f8;\n  border-color: #e7e7e7;\n}\n.navbar-default .navbar-brand {\n  color: #777;\n}\n.navbar-default .navbar-brand:hover,\n.navbar-default .navbar-brand:focus {\n  color: #5e5e5e;\n  background-color: transparent;\n}\n.navbar-default .navbar-text {\n  color: #777;\n}\n.navbar-default .navbar-nav > li > a {\n  color: #777;\n}\n.navbar-default .navbar-nav > li > a:hover,\n.navbar-default .navbar-nav > li > a:focus {\n  color: #333;\n  background-color: transparent;\n}\n.navbar-default .navbar-nav > .active > a,\n.navbar-default .navbar-nav > .active > a:hover,\n.navbar-default .navbar-nav > .active > a:focus {\n  color: #555;\n  background-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .disabled > a,\n.navbar-default .navbar-nav > .disabled > a:hover,\n.navbar-default .navbar-nav > .disabled > a:focus {\n  color: #ccc;\n  background-color: transparent;\n}\n.navbar-default .navbar-toggle {\n  border-color: #ddd;\n}\n.navbar-default .navbar-toggle:hover,\n.navbar-default .navbar-toggle:focus {\n  background-color: #ddd;\n}\n.navbar-default .navbar-toggle .icon-bar {\n  background-color: #888;\n}\n.navbar-default .navbar-collapse,\n.navbar-default .navbar-form {\n  border-color: #e7e7e7;\n}\n.navbar-default .navbar-nav > .open > a,\n.navbar-default .navbar-nav > .open > a:hover,\n.navbar-default .navbar-nav > .open > a:focus {\n  background-color: #e7e7e7;\n  color: #555;\n}\n@media (max-width: 767px) {\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a {\n    color: #777;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {\n    color: #333;\n    background-color: transparent;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #555;\n    background-color: #e7e7e7;\n  }\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n    color: #ccc;\n    background-color: transparent;\n  }\n}\n.navbar-default .navbar-link {\n  color: #777;\n}\n.navbar-default .navbar-link:hover {\n  color: #333;\n}\n.navbar-default .btn-link {\n  color: #777;\n}\n.navbar-default .btn-link:hover,\n.navbar-default .btn-link:focus {\n  color: #333;\n}\n.navbar-default .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-default .btn-link:hover,\n.navbar-default .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-default .btn-link:focus {\n  color: #ccc;\n}\n.navbar-inverse {\n  background-color: #222;\n  border-color: #080808;\n}\n.navbar-inverse .navbar-brand {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-brand:hover,\n.navbar-inverse .navbar-brand:focus {\n  color: #fff;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-text {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-nav > li > a:hover,\n.navbar-inverse .navbar-nav > li > a:focus {\n  color: #fff;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-nav > .active > a,\n.navbar-inverse .navbar-nav > .active > a:hover,\n.navbar-inverse .navbar-nav > .active > a:focus {\n  color: #fff;\n  background-color: #080808;\n}\n.navbar-inverse .navbar-nav > .disabled > a,\n.navbar-inverse .navbar-nav > .disabled > a:hover,\n.navbar-inverse .navbar-nav > .disabled > a:focus {\n  color: #444;\n  background-color: transparent;\n}\n.navbar-inverse .navbar-toggle {\n  border-color: #333;\n}\n.navbar-inverse .navbar-toggle:hover,\n.navbar-inverse .navbar-toggle:focus {\n  background-color: #333;\n}\n.navbar-inverse .navbar-toggle .icon-bar {\n  background-color: #fff;\n}\n.navbar-inverse .navbar-collapse,\n.navbar-inverse .navbar-form {\n  border-color: #101010;\n}\n.navbar-inverse .navbar-nav > .open > a,\n.navbar-inverse .navbar-nav > .open > a:hover,\n.navbar-inverse .navbar-nav > .open > a:focus {\n  background-color: #080808;\n  color: #fff;\n}\n@media (max-width: 767px) {\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {\n    border-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {\n    background-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {\n    color: #9d9d9d;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {\n    color: #fff;\n    background-color: transparent;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {\n    color: #fff;\n    background-color: #080808;\n  }\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,\n  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {\n    color: #444;\n    background-color: transparent;\n  }\n}\n.navbar-inverse .navbar-link {\n  color: #9d9d9d;\n}\n.navbar-inverse .navbar-link:hover {\n  color: #fff;\n}\n.navbar-inverse .btn-link {\n  color: #9d9d9d;\n}\n.navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link:focus {\n  color: #fff;\n}\n.navbar-inverse .btn-link[disabled]:hover,\nfieldset[disabled] .navbar-inverse .btn-link:hover,\n.navbar-inverse .btn-link[disabled]:focus,\nfieldset[disabled] .navbar-inverse .btn-link:focus {\n  color: #444;\n}\n.breadcrumb {\n  padding: 8px 15px;\n  margin-bottom: 20px;\n  list-style: none;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n}\n.breadcrumb > li {\n  display: inline-block;\n}\n.breadcrumb > li + li:before {\n  content: \"/\\00a0\";\n  padding: 0 5px;\n  color: #ccc;\n}\n.breadcrumb > .active {\n  color: #777777;\n}\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: 20px 0;\n  border-radius: 4px;\n}\n.pagination > li {\n  display: inline;\n}\n.pagination > li > a,\n.pagination > li > span {\n  position: relative;\n  float: left;\n  padding: 6px 12px;\n  line-height: 1.42857143;\n  text-decoration: none;\n  color: #337ab7;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  margin-left: -1px;\n}\n.pagination > li:first-child > a,\n.pagination > li:first-child > span {\n  margin-left: 0;\n  border-bottom-left-radius: 4px;\n  border-top-left-radius: 4px;\n}\n.pagination > li:last-child > a,\n.pagination > li:last-child > span {\n  border-bottom-right-radius: 4px;\n  border-top-right-radius: 4px;\n}\n.pagination > li > a:hover,\n.pagination > li > span:hover,\n.pagination > li > a:focus,\n.pagination > li > span:focus {\n  z-index: 2;\n  color: #23527c;\n  background-color: #eeeeee;\n  border-color: #ddd;\n}\n.pagination > .active > a,\n.pagination > .active > span,\n.pagination > .active > a:hover,\n.pagination > .active > span:hover,\n.pagination > .active > a:focus,\n.pagination > .active > span:focus {\n  z-index: 3;\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n  cursor: default;\n}\n.pagination > .disabled > span,\n.pagination > .disabled > span:hover,\n.pagination > .disabled > span:focus,\n.pagination > .disabled > a,\n.pagination > .disabled > a:hover,\n.pagination > .disabled > a:focus {\n  color: #777777;\n  background-color: #fff;\n  border-color: #ddd;\n  cursor: not-allowed;\n}\n.pagination-lg > li > a,\n.pagination-lg > li > span {\n  padding: 10px 16px;\n  font-size: 18px;\n  line-height: 1.3333333;\n}\n.pagination-lg > li:first-child > a,\n.pagination-lg > li:first-child > span {\n  border-bottom-left-radius: 6px;\n  border-top-left-radius: 6px;\n}\n.pagination-lg > li:last-child > a,\n.pagination-lg > li:last-child > span {\n  border-bottom-right-radius: 6px;\n  border-top-right-radius: 6px;\n}\n.pagination-sm > li > a,\n.pagination-sm > li > span {\n  padding: 5px 10px;\n  font-size: 12px;\n  line-height: 1.5;\n}\n.pagination-sm > li:first-child > a,\n.pagination-sm > li:first-child > span {\n  border-bottom-left-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.pagination-sm > li:last-child > a,\n.pagination-sm > li:last-child > span {\n  border-bottom-right-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.pager {\n  padding-left: 0;\n  margin: 20px 0;\n  list-style: none;\n  text-align: center;\n}\n.pager li {\n  display: inline;\n}\n.pager li > a,\n.pager li > span {\n  display: inline-block;\n  padding: 5px 14px;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 15px;\n}\n.pager li > a:hover,\n.pager li > a:focus {\n  text-decoration: none;\n  background-color: #eeeeee;\n}\n.pager .next > a,\n.pager .next > span {\n  float: right;\n}\n.pager .previous > a,\n.pager .previous > span {\n  float: left;\n}\n.pager .disabled > a,\n.pager .disabled > a:hover,\n.pager .disabled > a:focus,\n.pager .disabled > span {\n  color: #777777;\n  background-color: #fff;\n  cursor: not-allowed;\n}\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: #fff;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n}\na.label:hover,\na.label:focus {\n  color: #fff;\n  text-decoration: none;\n  cursor: pointer;\n}\n.label:empty {\n  display: none;\n}\n.btn .label {\n  position: relative;\n  top: -1px;\n}\n.label-default {\n  background-color: #777777;\n}\n.label-default[href]:hover,\n.label-default[href]:focus {\n  background-color: #5e5e5e;\n}\n.label-primary {\n  background-color: #337ab7;\n}\n.label-primary[href]:hover,\n.label-primary[href]:focus {\n  background-color: #286090;\n}\n.label-success {\n  background-color: #5cb85c;\n}\n.label-success[href]:hover,\n.label-success[href]:focus {\n  background-color: #449d44;\n}\n.label-info {\n  background-color: #5bc0de;\n}\n.label-info[href]:hover,\n.label-info[href]:focus {\n  background-color: #31b0d5;\n}\n.label-warning {\n  background-color: #f0ad4e;\n}\n.label-warning[href]:hover,\n.label-warning[href]:focus {\n  background-color: #ec971f;\n}\n.label-danger {\n  background-color: #d9534f;\n}\n.label-danger[href]:hover,\n.label-danger[href]:focus {\n  background-color: #c9302c;\n}\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: 12px;\n  font-weight: bold;\n  color: #fff;\n  line-height: 1;\n  vertical-align: middle;\n  white-space: nowrap;\n  text-align: center;\n  background-color: #777777;\n  border-radius: 10px;\n}\n.badge:empty {\n  display: none;\n}\n.btn .badge {\n  position: relative;\n  top: -1px;\n}\n.btn-xs .badge,\n.btn-group-xs > .btn .badge {\n  top: 0;\n  padding: 1px 5px;\n}\na.badge:hover,\na.badge:focus {\n  color: #fff;\n  text-decoration: none;\n  cursor: pointer;\n}\n.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n  color: #337ab7;\n  background-color: #fff;\n}\n.list-group-item > .badge {\n  float: right;\n}\n.list-group-item > .badge + .badge {\n  margin-right: 5px;\n}\n.nav-pills > li > a > .badge {\n  margin-left: 3px;\n}\n.jumbotron {\n  padding-top: 30px;\n  padding-bottom: 30px;\n  margin-bottom: 30px;\n  color: inherit;\n  background-color: #eeeeee;\n}\n.jumbotron h1,\n.jumbotron .h1 {\n  color: inherit;\n}\n.jumbotron p {\n  margin-bottom: 15px;\n  font-size: 21px;\n  font-weight: 200;\n}\n.jumbotron > hr {\n  border-top-color: #d5d5d5;\n}\n.container .jumbotron,\n.container-fluid .jumbotron {\n  border-radius: 6px;\n  padding-left: 15px;\n  padding-right: 15px;\n}\n.jumbotron .container {\n  max-width: 100%;\n}\n@media screen and (min-width: 768px) {\n  .jumbotron {\n    padding-top: 48px;\n    padding-bottom: 48px;\n  }\n  .container .jumbotron,\n  .container-fluid .jumbotron {\n    padding-left: 60px;\n    padding-right: 60px;\n  }\n  .jumbotron h1,\n  .jumbotron .h1 {\n    font-size: 63px;\n  }\n}\n.thumbnail {\n  display: block;\n  padding: 4px;\n  margin-bottom: 20px;\n  line-height: 1.42857143;\n  background-color: #fff;\n  border: 1px solid #ddd;\n  border-radius: 4px;\n  -webkit-transition: border 0.2s ease-in-out;\n  -o-transition: border 0.2s ease-in-out;\n  transition: border 0.2s ease-in-out;\n}\n.thumbnail > img,\n.thumbnail a > img {\n  margin-left: auto;\n  margin-right: auto;\n}\na.thumbnail:hover,\na.thumbnail:focus,\na.thumbnail.active {\n  border-color: #337ab7;\n}\n.thumbnail .caption {\n  padding: 9px;\n  color: #333333;\n}\n.alert {\n  padding: 15px;\n  margin-bottom: 20px;\n  border: 1px solid transparent;\n  border-radius: 4px;\n}\n.alert h4 {\n  margin-top: 0;\n  color: inherit;\n}\n.alert .alert-link {\n  font-weight: bold;\n}\n.alert > p,\n.alert > ul {\n  margin-bottom: 0;\n}\n.alert > p + p {\n  margin-top: 5px;\n}\n.alert-dismissable,\n.alert-dismissible {\n  padding-right: 35px;\n}\n.alert-dismissable .close,\n.alert-dismissible .close {\n  position: relative;\n  top: -2px;\n  right: -21px;\n  color: inherit;\n}\n.alert-success {\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n  color: #3c763d;\n}\n.alert-success hr {\n  border-top-color: #c9e2b3;\n}\n.alert-success .alert-link {\n  color: #2b542c;\n}\n.alert-info {\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n  color: #31708f;\n}\n.alert-info hr {\n  border-top-color: #a6e1ec;\n}\n.alert-info .alert-link {\n  color: #245269;\n}\n.alert-warning {\n  background-color: #fcf8e3;\n  border-color: #faebcc;\n  color: #8a6d3b;\n}\n.alert-warning hr {\n  border-top-color: #f7e1b5;\n}\n.alert-warning .alert-link {\n  color: #66512c;\n}\n.alert-danger {\n  background-color: #f2dede;\n  border-color: #ebccd1;\n  color: #a94442;\n}\n.alert-danger hr {\n  border-top-color: #e4b9c0;\n}\n.alert-danger .alert-link {\n  color: #843534;\n}\n@-webkit-keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n@keyframes progress-bar-stripes {\n  from {\n    background-position: 40px 0;\n  }\n  to {\n    background-position: 0 0;\n  }\n}\n.progress {\n  overflow: hidden;\n  height: 20px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n.progress-bar {\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: 12px;\n  line-height: 20px;\n  color: #fff;\n  text-align: center;\n  background-color: #337ab7;\n  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);\n  -webkit-transition: width 0.6s ease;\n  -o-transition: width 0.6s ease;\n  transition: width 0.6s ease;\n}\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-size: 40px 40px;\n}\n.progress.active .progress-bar,\n.progress-bar.active {\n  -webkit-animation: progress-bar-stripes 2s linear infinite;\n  -o-animation: progress-bar-stripes 2s linear infinite;\n  animation: progress-bar-stripes 2s linear infinite;\n}\n.progress-bar-success {\n  background-color: #5cb85c;\n}\n.progress-striped .progress-bar-success {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-info {\n  background-color: #5bc0de;\n}\n.progress-striped .progress-bar-info {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-warning {\n  background-color: #f0ad4e;\n}\n.progress-striped .progress-bar-warning {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.progress-bar-danger {\n  background-color: #d9534f;\n}\n.progress-striped .progress-bar-danger {\n  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n}\n.media {\n  margin-top: 15px;\n}\n.media:first-child {\n  margin-top: 0;\n}\n.media,\n.media-body {\n  zoom: 1;\n  overflow: hidden;\n}\n.media-body {\n  width: 10000px;\n}\n.media-object {\n  display: block;\n}\n.media-object.img-thumbnail {\n  max-width: none;\n}\n.media-right,\n.media > .pull-right {\n  padding-left: 10px;\n}\n.media-left,\n.media > .pull-left {\n  padding-right: 10px;\n}\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top;\n}\n.media-middle {\n  vertical-align: middle;\n}\n.media-bottom {\n  vertical-align: bottom;\n}\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n.list-group {\n  margin-bottom: 20px;\n  padding-left: 0;\n}\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  margin-bottom: -1px;\n  background-color: #fff;\n  border: 1px solid #ddd;\n}\n.list-group-item:first-child {\n  border-top-right-radius: 4px;\n  border-top-left-radius: 4px;\n}\n.list-group-item:last-child {\n  margin-bottom: 0;\n  border-bottom-right-radius: 4px;\n  border-bottom-left-radius: 4px;\n}\na.list-group-item,\nbutton.list-group-item {\n  color: #555;\n}\na.list-group-item .list-group-item-heading,\nbutton.list-group-item .list-group-item-heading {\n  color: #333;\n}\na.list-group-item:hover,\nbutton.list-group-item:hover,\na.list-group-item:focus,\nbutton.list-group-item:focus {\n  text-decoration: none;\n  color: #555;\n  background-color: #f5f5f5;\n}\nbutton.list-group-item {\n  width: 100%;\n  text-align: left;\n}\n.list-group-item.disabled,\n.list-group-item.disabled:hover,\n.list-group-item.disabled:focus {\n  background-color: #eeeeee;\n  color: #777777;\n  cursor: not-allowed;\n}\n.list-group-item.disabled .list-group-item-heading,\n.list-group-item.disabled:hover .list-group-item-heading,\n.list-group-item.disabled:focus .list-group-item-heading {\n  color: inherit;\n}\n.list-group-item.disabled .list-group-item-text,\n.list-group-item.disabled:hover .list-group-item-text,\n.list-group-item.disabled:focus .list-group-item-text {\n  color: #777777;\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n  z-index: 2;\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n}\n.list-group-item.active .list-group-item-heading,\n.list-group-item.active:hover .list-group-item-heading,\n.list-group-item.active:focus .list-group-item-heading,\n.list-group-item.active .list-group-item-heading > small,\n.list-group-item.active:hover .list-group-item-heading > small,\n.list-group-item.active:focus .list-group-item-heading > small,\n.list-group-item.active .list-group-item-heading > .small,\n.list-group-item.active:hover .list-group-item-heading > .small,\n.list-group-item.active:focus .list-group-item-heading > .small {\n  color: inherit;\n}\n.list-group-item.active .list-group-item-text,\n.list-group-item.active:hover .list-group-item-text,\n.list-group-item.active:focus .list-group-item-text {\n  color: #c7ddef;\n}\n.list-group-item-success {\n  color: #3c763d;\n  background-color: #dff0d8;\n}\na.list-group-item-success,\nbutton.list-group-item-success {\n  color: #3c763d;\n}\na.list-group-item-success .list-group-item-heading,\nbutton.list-group-item-success .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-success:hover,\nbutton.list-group-item-success:hover,\na.list-group-item-success:focus,\nbutton.list-group-item-success:focus {\n  color: #3c763d;\n  background-color: #d0e9c6;\n}\na.list-group-item-success.active,\nbutton.list-group-item-success.active,\na.list-group-item-success.active:hover,\nbutton.list-group-item-success.active:hover,\na.list-group-item-success.active:focus,\nbutton.list-group-item-success.active:focus {\n  color: #fff;\n  background-color: #3c763d;\n  border-color: #3c763d;\n}\n.list-group-item-info {\n  color: #31708f;\n  background-color: #d9edf7;\n}\na.list-group-item-info,\nbutton.list-group-item-info {\n  color: #31708f;\n}\na.list-group-item-info .list-group-item-heading,\nbutton.list-group-item-info .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-info:hover,\nbutton.list-group-item-info:hover,\na.list-group-item-info:focus,\nbutton.list-group-item-info:focus {\n  color: #31708f;\n  background-color: #c4e3f3;\n}\na.list-group-item-info.active,\nbutton.list-group-item-info.active,\na.list-group-item-info.active:hover,\nbutton.list-group-item-info.active:hover,\na.list-group-item-info.active:focus,\nbutton.list-group-item-info.active:focus {\n  color: #fff;\n  background-color: #31708f;\n  border-color: #31708f;\n}\n.list-group-item-warning {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n}\na.list-group-item-warning,\nbutton.list-group-item-warning {\n  color: #8a6d3b;\n}\na.list-group-item-warning .list-group-item-heading,\nbutton.list-group-item-warning .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-warning:hover,\nbutton.list-group-item-warning:hover,\na.list-group-item-warning:focus,\nbutton.list-group-item-warning:focus {\n  color: #8a6d3b;\n  background-color: #faf2cc;\n}\na.list-group-item-warning.active,\nbutton.list-group-item-warning.active,\na.list-group-item-warning.active:hover,\nbutton.list-group-item-warning.active:hover,\na.list-group-item-warning.active:focus,\nbutton.list-group-item-warning.active:focus {\n  color: #fff;\n  background-color: #8a6d3b;\n  border-color: #8a6d3b;\n}\n.list-group-item-danger {\n  color: #a94442;\n  background-color: #f2dede;\n}\na.list-group-item-danger,\nbutton.list-group-item-danger {\n  color: #a94442;\n}\na.list-group-item-danger .list-group-item-heading,\nbutton.list-group-item-danger .list-group-item-heading {\n  color: inherit;\n}\na.list-group-item-danger:hover,\nbutton.list-group-item-danger:hover,\na.list-group-item-danger:focus,\nbutton.list-group-item-danger:focus {\n  color: #a94442;\n  background-color: #ebcccc;\n}\na.list-group-item-danger.active,\nbutton.list-group-item-danger.active,\na.list-group-item-danger.active:hover,\nbutton.list-group-item-danger.active:hover,\na.list-group-item-danger.active:focus,\nbutton.list-group-item-danger.active:focus {\n  color: #fff;\n  background-color: #a94442;\n  border-color: #a94442;\n}\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3;\n}\n.panel {\n  margin-bottom: 20px;\n  background-color: #fff;\n  border: 1px solid transparent;\n  border-radius: 4px;\n  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.panel-body {\n  padding: 15px;\n}\n.panel-heading {\n  padding: 10px 15px;\n  border-bottom: 1px solid transparent;\n  border-top-right-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.panel-heading > .dropdown .dropdown-toggle {\n  color: inherit;\n}\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: 16px;\n  color: inherit;\n}\n.panel-title > a,\n.panel-title > small,\n.panel-title > .small,\n.panel-title > small > a,\n.panel-title > .small > a {\n  color: inherit;\n}\n.panel-footer {\n  padding: 10px 15px;\n  background-color: #f5f5f5;\n  border-top: 1px solid #ddd;\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .list-group,\n.panel > .panel-collapse > .list-group {\n  margin-bottom: 0;\n}\n.panel > .list-group .list-group-item,\n.panel > .panel-collapse > .list-group .list-group-item {\n  border-width: 1px 0;\n  border-radius: 0;\n}\n.panel > .list-group:first-child .list-group-item:first-child,\n.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {\n  border-top: 0;\n  border-top-right-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.panel > .list-group:last-child .list-group-item:last-child,\n.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {\n  border-bottom: 0;\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {\n  border-top-right-radius: 0;\n  border-top-left-radius: 0;\n}\n.panel-heading + .list-group .list-group-item:first-child {\n  border-top-width: 0;\n}\n.list-group + .panel-footer {\n  border-top-width: 0;\n}\n.panel > .table,\n.panel > .table-responsive > .table,\n.panel > .panel-collapse > .table {\n  margin-bottom: 0;\n}\n.panel > .table caption,\n.panel > .table-responsive > .table caption,\n.panel > .panel-collapse > .table caption {\n  padding-left: 15px;\n  padding-right: 15px;\n}\n.panel > .table:first-child,\n.panel > .table-responsive:first-child > .table:first-child {\n  border-top-right-radius: 3px;\n  border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {\n  border-top-left-radius: 3px;\n  border-top-right-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {\n  border-top-left-radius: 3px;\n}\n.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,\n.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,\n.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,\n.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {\n  border-top-right-radius: 3px;\n}\n.panel > .table:last-child,\n.panel > .table-responsive:last-child > .table:last-child {\n  border-bottom-right-radius: 3px;\n  border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {\n  border-bottom-left-radius: 3px;\n  border-bottom-right-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {\n  border-bottom-left-radius: 3px;\n}\n.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,\n.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,\n.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,\n.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {\n  border-bottom-right-radius: 3px;\n}\n.panel > .panel-body + .table,\n.panel > .panel-body + .table-responsive,\n.panel > .table + .panel-body,\n.panel > .table-responsive + .panel-body {\n  border-top: 1px solid #ddd;\n}\n.panel > .table > tbody:first-child > tr:first-child th,\n.panel > .table > tbody:first-child > tr:first-child td {\n  border-top: 0;\n}\n.panel > .table-bordered,\n.panel > .table-responsive > .table-bordered {\n  border: 0;\n}\n.panel > .table-bordered > thead > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,\n.panel > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,\n.panel > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,\n.panel > .table-bordered > thead > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,\n.panel > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,\n.panel > .table-bordered > tfoot > tr > td:first-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {\n  border-left: 0;\n}\n.panel > .table-bordered > thead > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,\n.panel > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,\n.panel > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,\n.panel > .table-bordered > thead > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,\n.panel > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,\n.panel > .table-bordered > tfoot > tr > td:last-child,\n.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {\n  border-right: 0;\n}\n.panel > .table-bordered > thead > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,\n.panel > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,\n.panel > .table-bordered > thead > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,\n.panel > .table-bordered > tbody > tr:first-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {\n  border-bottom: 0;\n}\n.panel > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,\n.panel > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,\n.panel > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,\n.panel > .table-bordered > tfoot > tr:last-child > th,\n.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {\n  border-bottom: 0;\n}\n.panel > .table-responsive {\n  border: 0;\n  margin-bottom: 0;\n}\n.panel-group {\n  margin-bottom: 20px;\n}\n.panel-group .panel {\n  margin-bottom: 0;\n  border-radius: 4px;\n}\n.panel-group .panel + .panel {\n  margin-top: 5px;\n}\n.panel-group .panel-heading {\n  border-bottom: 0;\n}\n.panel-group .panel-heading + .panel-collapse > .panel-body,\n.panel-group .panel-heading + .panel-collapse > .list-group {\n  border-top: 1px solid #ddd;\n}\n.panel-group .panel-footer {\n  border-top: 0;\n}\n.panel-group .panel-footer + .panel-collapse .panel-body {\n  border-bottom: 1px solid #ddd;\n}\n.panel-default {\n  border-color: #ddd;\n}\n.panel-default > .panel-heading {\n  color: #333333;\n  background-color: #f5f5f5;\n  border-color: #ddd;\n}\n.panel-default > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #ddd;\n}\n.panel-default > .panel-heading .badge {\n  color: #f5f5f5;\n  background-color: #333333;\n}\n.panel-default > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #ddd;\n}\n.panel-primary {\n  border-color: #337ab7;\n}\n.panel-primary > .panel-heading {\n  color: #fff;\n  background-color: #337ab7;\n  border-color: #337ab7;\n}\n.panel-primary > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #337ab7;\n}\n.panel-primary > .panel-heading .badge {\n  color: #337ab7;\n  background-color: #fff;\n}\n.panel-primary > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #337ab7;\n}\n.panel-success {\n  border-color: #d6e9c6;\n}\n.panel-success > .panel-heading {\n  color: #3c763d;\n  background-color: #dff0d8;\n  border-color: #d6e9c6;\n}\n.panel-success > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #d6e9c6;\n}\n.panel-success > .panel-heading .badge {\n  color: #dff0d8;\n  background-color: #3c763d;\n}\n.panel-success > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #d6e9c6;\n}\n.panel-info {\n  border-color: #bce8f1;\n}\n.panel-info > .panel-heading {\n  color: #31708f;\n  background-color: #d9edf7;\n  border-color: #bce8f1;\n}\n.panel-info > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #bce8f1;\n}\n.panel-info > .panel-heading .badge {\n  color: #d9edf7;\n  background-color: #31708f;\n}\n.panel-info > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #bce8f1;\n}\n.panel-warning {\n  border-color: #faebcc;\n}\n.panel-warning > .panel-heading {\n  color: #8a6d3b;\n  background-color: #fcf8e3;\n  border-color: #faebcc;\n}\n.panel-warning > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #faebcc;\n}\n.panel-warning > .panel-heading .badge {\n  color: #fcf8e3;\n  background-color: #8a6d3b;\n}\n.panel-warning > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #faebcc;\n}\n.panel-danger {\n  border-color: #ebccd1;\n}\n.panel-danger > .panel-heading {\n  color: #a94442;\n  background-color: #f2dede;\n  border-color: #ebccd1;\n}\n.panel-danger > .panel-heading + .panel-collapse > .panel-body {\n  border-top-color: #ebccd1;\n}\n.panel-danger > .panel-heading .badge {\n  color: #f2dede;\n  background-color: #a94442;\n}\n.panel-danger > .panel-footer + .panel-collapse > .panel-body {\n  border-bottom-color: #ebccd1;\n}\n.embed-responsive {\n  position: relative;\n  display: block;\n  height: 0;\n  padding: 0;\n  overflow: hidden;\n}\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  height: 100%;\n  width: 100%;\n  border: 0;\n}\n.embed-responsive-16by9 {\n  padding-bottom: 56.25%;\n}\n.embed-responsive-4by3 {\n  padding-bottom: 75%;\n}\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: #f5f5f5;\n  border: 1px solid #e3e3e3;\n  border-radius: 4px;\n  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);\n}\n.well blockquote {\n  border-color: #ddd;\n  border-color: rgba(0, 0, 0, 0.15);\n}\n.well-lg {\n  padding: 24px;\n  border-radius: 6px;\n}\n.well-sm {\n  padding: 9px;\n  border-radius: 3px;\n}\n.close {\n  float: right;\n  font-size: 21px;\n  font-weight: bold;\n  line-height: 1;\n  color: #000;\n  text-shadow: 0 1px 0 #fff;\n  opacity: 0.2;\n  filter: alpha(opacity=20);\n}\n.close:hover,\n.close:focus {\n  color: #000;\n  text-decoration: none;\n  cursor: pointer;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\nbutton.close {\n  padding: 0;\n  cursor: pointer;\n  background: transparent;\n  border: 0;\n  -webkit-appearance: none;\n}\n.modal-open {\n  overflow: hidden;\n}\n.modal {\n  display: none;\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1050;\n  -webkit-overflow-scrolling: touch;\n  outline: 0;\n}\n.modal.fade .modal-dialog {\n  -webkit-transform: translate(0, -25%);\n  -ms-transform: translate(0, -25%);\n  -o-transform: translate(0, -25%);\n  transform: translate(0, -25%);\n  -webkit-transition: -webkit-transform 0.3s ease-out;\n  -moz-transition: -moz-transform 0.3s ease-out;\n  -o-transition: -o-transform 0.3s ease-out;\n  transition: transform 0.3s ease-out;\n}\n.modal.in .modal-dialog {\n  -webkit-transform: translate(0, 0);\n  -ms-transform: translate(0, 0);\n  -o-transform: translate(0, 0);\n  transform: translate(0, 0);\n}\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px;\n}\n.modal-content {\n  position: relative;\n  background-color: #fff;\n  border: 1px solid #999;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 6px;\n  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);\n  background-clip: padding-box;\n  outline: 0;\n}\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 1040;\n  background-color: #000;\n}\n.modal-backdrop.fade {\n  opacity: 0;\n  filter: alpha(opacity=0);\n}\n.modal-backdrop.in {\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n}\n.modal-header {\n  padding: 15px;\n  border-bottom: 1px solid #e5e5e5;\n}\n.modal-header .close {\n  margin-top: -2px;\n}\n.modal-title {\n  margin: 0;\n  line-height: 1.42857143;\n}\n.modal-body {\n  position: relative;\n  padding: 15px;\n}\n.modal-footer {\n  padding: 15px;\n  text-align: right;\n  border-top: 1px solid #e5e5e5;\n}\n.modal-footer .btn + .btn {\n  margin-left: 5px;\n  margin-bottom: 0;\n}\n.modal-footer .btn-group .btn + .btn {\n  margin-left: -1px;\n}\n.modal-footer .btn-block + .btn-block {\n  margin-left: 0;\n}\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n@media (min-width: 768px) {\n  .modal-dialog {\n    width: 600px;\n    margin: 30px auto;\n  }\n  .modal-content {\n    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);\n  }\n  .modal-sm {\n    width: 300px;\n  }\n}\n@media (min-width: 992px) {\n  .modal-lg {\n    width: 900px;\n  }\n}\n.tooltip {\n  position: absolute;\n  z-index: 1070;\n  display: block;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  letter-spacing: normal;\n  line-break: auto;\n  line-height: 1.42857143;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  white-space: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  font-size: 12px;\n  opacity: 0;\n  filter: alpha(opacity=0);\n}\n.tooltip.in {\n  opacity: 0.9;\n  filter: alpha(opacity=90);\n}\n.tooltip.top {\n  margin-top: -3px;\n  padding: 5px 0;\n}\n.tooltip.right {\n  margin-left: 3px;\n  padding: 0 5px;\n}\n.tooltip.bottom {\n  margin-top: 3px;\n  padding: 5px 0;\n}\n.tooltip.left {\n  margin-left: -3px;\n  padding: 0 5px;\n}\n.tooltip-inner {\n  max-width: 200px;\n  padding: 3px 8px;\n  color: #fff;\n  text-align: center;\n  background-color: #000;\n  border-radius: 4px;\n}\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.tooltip.top .tooltip-arrow {\n  bottom: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000;\n}\n.tooltip.top-left .tooltip-arrow {\n  bottom: 0;\n  right: 5px;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000;\n}\n.tooltip.top-right .tooltip-arrow {\n  bottom: 0;\n  left: 5px;\n  margin-bottom: -5px;\n  border-width: 5px 5px 0;\n  border-top-color: #000;\n}\n.tooltip.right .tooltip-arrow {\n  top: 50%;\n  left: 0;\n  margin-top: -5px;\n  border-width: 5px 5px 5px 0;\n  border-right-color: #000;\n}\n.tooltip.left .tooltip-arrow {\n  top: 50%;\n  right: 0;\n  margin-top: -5px;\n  border-width: 5px 0 5px 5px;\n  border-left-color: #000;\n}\n.tooltip.bottom .tooltip-arrow {\n  top: 0;\n  left: 50%;\n  margin-left: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000;\n}\n.tooltip.bottom-left .tooltip-arrow {\n  top: 0;\n  right: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000;\n}\n.tooltip.bottom-right .tooltip-arrow {\n  top: 0;\n  left: 5px;\n  margin-top: -5px;\n  border-width: 0 5px 5px;\n  border-bottom-color: #000;\n}\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1060;\n  display: none;\n  max-width: 276px;\n  padding: 1px;\n  font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n  font-style: normal;\n  font-weight: normal;\n  letter-spacing: normal;\n  line-break: auto;\n  line-height: 1.42857143;\n  text-align: left;\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  white-space: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n  font-size: 14px;\n  background-color: #fff;\n  background-clip: padding-box;\n  border: 1px solid #ccc;\n  border: 1px solid rgba(0, 0, 0, 0.2);\n  border-radius: 6px;\n  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);\n}\n.popover.top {\n  margin-top: -10px;\n}\n.popover.right {\n  margin-left: 10px;\n}\n.popover.bottom {\n  margin-top: 10px;\n}\n.popover.left {\n  margin-left: -10px;\n}\n.popover-title {\n  margin: 0;\n  padding: 8px 14px;\n  font-size: 14px;\n  background-color: #f7f7f7;\n  border-bottom: 1px solid #ebebeb;\n  border-radius: 5px 5px 0 0;\n}\n.popover-content {\n  padding: 9px 14px;\n}\n.popover > .arrow,\n.popover > .arrow:after {\n  position: absolute;\n  display: block;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n.popover > .arrow {\n  border-width: 11px;\n}\n.popover > .arrow:after {\n  border-width: 10px;\n  content: \"\";\n}\n.popover.top > .arrow {\n  left: 50%;\n  margin-left: -11px;\n  border-bottom-width: 0;\n  border-top-color: #999999;\n  border-top-color: rgba(0, 0, 0, 0.25);\n  bottom: -11px;\n}\n.popover.top > .arrow:after {\n  content: \" \";\n  bottom: 1px;\n  margin-left: -10px;\n  border-bottom-width: 0;\n  border-top-color: #fff;\n}\n.popover.right > .arrow {\n  top: 50%;\n  left: -11px;\n  margin-top: -11px;\n  border-left-width: 0;\n  border-right-color: #999999;\n  border-right-color: rgba(0, 0, 0, 0.25);\n}\n.popover.right > .arrow:after {\n  content: \" \";\n  left: 1px;\n  bottom: -10px;\n  border-left-width: 0;\n  border-right-color: #fff;\n}\n.popover.bottom > .arrow {\n  left: 50%;\n  margin-left: -11px;\n  border-top-width: 0;\n  border-bottom-color: #999999;\n  border-bottom-color: rgba(0, 0, 0, 0.25);\n  top: -11px;\n}\n.popover.bottom > .arrow:after {\n  content: \" \";\n  top: 1px;\n  margin-left: -10px;\n  border-top-width: 0;\n  border-bottom-color: #fff;\n}\n.popover.left > .arrow {\n  top: 50%;\n  right: -11px;\n  margin-top: -11px;\n  border-right-width: 0;\n  border-left-color: #999999;\n  border-left-color: rgba(0, 0, 0, 0.25);\n}\n.popover.left > .arrow:after {\n  content: \" \";\n  right: 1px;\n  border-right-width: 0;\n  border-left-color: #fff;\n  bottom: -10px;\n}\n.carousel {\n  position: relative;\n}\n.carousel-inner {\n  position: relative;\n  overflow: hidden;\n  width: 100%;\n}\n.carousel-inner > .item {\n  display: none;\n  position: relative;\n  -webkit-transition: 0.6s ease-in-out left;\n  -o-transition: 0.6s ease-in-out left;\n  transition: 0.6s ease-in-out left;\n}\n.carousel-inner > .item > img,\n.carousel-inner > .item > a > img {\n  line-height: 1;\n}\n@media all and (transform-3d), (-webkit-transform-3d) {\n  .carousel-inner > .item {\n    -webkit-transition: -webkit-transform 0.6s ease-in-out;\n    -moz-transition: -moz-transform 0.6s ease-in-out;\n    -o-transition: -o-transform 0.6s ease-in-out;\n    transition: transform 0.6s ease-in-out;\n    -webkit-backface-visibility: hidden;\n    -moz-backface-visibility: hidden;\n    backface-visibility: hidden;\n    -webkit-perspective: 1000px;\n    -moz-perspective: 1000px;\n    perspective: 1000px;\n  }\n  .carousel-inner > .item.next,\n  .carousel-inner > .item.active.right {\n    -webkit-transform: translate3d(100%, 0, 0);\n    transform: translate3d(100%, 0, 0);\n    left: 0;\n  }\n  .carousel-inner > .item.prev,\n  .carousel-inner > .item.active.left {\n    -webkit-transform: translate3d(-100%, 0, 0);\n    transform: translate3d(-100%, 0, 0);\n    left: 0;\n  }\n  .carousel-inner > .item.next.left,\n  .carousel-inner > .item.prev.right,\n  .carousel-inner > .item.active {\n    -webkit-transform: translate3d(0, 0, 0);\n    transform: translate3d(0, 0, 0);\n    left: 0;\n  }\n}\n.carousel-inner > .active,\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  display: block;\n}\n.carousel-inner > .active {\n  left: 0;\n}\n.carousel-inner > .next,\n.carousel-inner > .prev {\n  position: absolute;\n  top: 0;\n  width: 100%;\n}\n.carousel-inner > .next {\n  left: 100%;\n}\n.carousel-inner > .prev {\n  left: -100%;\n}\n.carousel-inner > .next.left,\n.carousel-inner > .prev.right {\n  left: 0;\n}\n.carousel-inner > .active.left {\n  left: -100%;\n}\n.carousel-inner > .active.right {\n  left: 100%;\n}\n.carousel-control {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  width: 15%;\n  opacity: 0.5;\n  filter: alpha(opacity=50);\n  font-size: 20px;\n  color: #fff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n  background-color: rgba(0, 0, 0, 0);\n}\n.carousel-control.left {\n  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);\n}\n.carousel-control.right {\n  left: auto;\n  right: 0;\n  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);\n  background-repeat: repeat-x;\n  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);\n}\n.carousel-control:hover,\n.carousel-control:focus {\n  outline: 0;\n  color: #fff;\n  text-decoration: none;\n  opacity: 0.9;\n  filter: alpha(opacity=90);\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-left,\n.carousel-control .glyphicon-chevron-right {\n  position: absolute;\n  top: 50%;\n  margin-top: -10px;\n  z-index: 5;\n  display: inline-block;\n}\n.carousel-control .icon-prev,\n.carousel-control .glyphicon-chevron-left {\n  left: 50%;\n  margin-left: -10px;\n}\n.carousel-control .icon-next,\n.carousel-control .glyphicon-chevron-right {\n  right: 50%;\n  margin-right: -10px;\n}\n.carousel-control .icon-prev,\n.carousel-control .icon-next {\n  width: 20px;\n  height: 20px;\n  line-height: 1;\n  font-family: serif;\n}\n.carousel-control .icon-prev:before {\n  content: '\\2039';\n}\n.carousel-control .icon-next:before {\n  content: '\\203a';\n}\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  margin-left: -30%;\n  padding-left: 0;\n  list-style: none;\n  text-align: center;\n}\n.carousel-indicators li {\n  display: inline-block;\n  width: 10px;\n  height: 10px;\n  margin: 1px;\n  text-indent: -999px;\n  border: 1px solid #fff;\n  border-radius: 10px;\n  cursor: pointer;\n  background-color: #000 \\9;\n  background-color: rgba(0, 0, 0, 0);\n}\n.carousel-indicators .active {\n  margin: 0;\n  width: 12px;\n  height: 12px;\n  background-color: #fff;\n}\n.carousel-caption {\n  position: absolute;\n  left: 15%;\n  right: 15%;\n  bottom: 20px;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: #fff;\n  text-align: center;\n  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);\n}\n.carousel-caption .btn {\n  text-shadow: none;\n}\n@media screen and (min-width: 768px) {\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-prev,\n  .carousel-control .icon-next {\n    width: 30px;\n    height: 30px;\n    margin-top: -10px;\n    font-size: 30px;\n  }\n  .carousel-control .glyphicon-chevron-left,\n  .carousel-control .icon-prev {\n    margin-left: -10px;\n  }\n  .carousel-control .glyphicon-chevron-right,\n  .carousel-control .icon-next {\n    margin-right: -10px;\n  }\n  .carousel-caption {\n    left: 20%;\n    right: 20%;\n    padding-bottom: 30px;\n  }\n  .carousel-indicators {\n    bottom: 20px;\n  }\n}\n.clearfix:before,\n.clearfix:after,\n.dl-horizontal dd:before,\n.dl-horizontal dd:after,\n.container:before,\n.container:after,\n.container-fluid:before,\n.container-fluid:after,\n.row:before,\n.row:after,\n.form-horizontal .form-group:before,\n.form-horizontal .form-group:after,\n.btn-toolbar:before,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:before,\n.btn-group-vertical > .btn-group:after,\n.nav:before,\n.nav:after,\n.navbar:before,\n.navbar:after,\n.navbar-header:before,\n.navbar-header:after,\n.navbar-collapse:before,\n.navbar-collapse:after,\n.pager:before,\n.pager:after,\n.panel-body:before,\n.panel-body:after,\n.modal-header:before,\n.modal-header:after,\n.modal-footer:before,\n.modal-footer:after {\n  content: \" \";\n  display: table;\n}\n.clearfix:after,\n.dl-horizontal dd:after,\n.container:after,\n.container-fluid:after,\n.row:after,\n.form-horizontal .form-group:after,\n.btn-toolbar:after,\n.btn-group-vertical > .btn-group:after,\n.nav:after,\n.navbar:after,\n.navbar-header:after,\n.navbar-collapse:after,\n.pager:after,\n.panel-body:after,\n.modal-header:after,\n.modal-footer:after {\n  clear: both;\n}\n.center-block {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n.pull-right {\n  float: right !important;\n}\n.pull-left {\n  float: left !important;\n}\n.hide {\n  display: none !important;\n}\n.show {\n  display: block !important;\n}\n.invisible {\n  visibility: hidden;\n}\n.text-hide {\n  font: 0/0 a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n.hidden {\n  display: none !important;\n}\n.affix {\n  position: fixed;\n}\n@-ms-viewport {\n  width: device-width;\n}\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n  display: none !important;\n}\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n  display: none !important;\n}\n@media (max-width: 767px) {\n  .visible-xs {\n    display: block !important;\n  }\n  table.visible-xs {\n    display: table !important;\n  }\n  tr.visible-xs {\n    display: table-row !important;\n  }\n  th.visible-xs,\n  td.visible-xs {\n    display: table-cell !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-block {\n    display: block !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-inline {\n    display: inline !important;\n  }\n}\n@media (max-width: 767px) {\n  .visible-xs-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm {\n    display: block !important;\n  }\n  table.visible-sm {\n    display: table !important;\n  }\n  tr.visible-sm {\n    display: table-row !important;\n  }\n  th.visible-sm,\n  td.visible-sm {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-block {\n    display: block !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .visible-sm-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md {\n    display: block !important;\n  }\n  table.visible-md {\n    display: table !important;\n  }\n  tr.visible-md {\n    display: table-row !important;\n  }\n  th.visible-md,\n  td.visible-md {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-block {\n    display: block !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .visible-md-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg {\n    display: block !important;\n  }\n  table.visible-lg {\n    display: table !important;\n  }\n  tr.visible-lg {\n    display: table-row !important;\n  }\n  th.visible-lg,\n  td.visible-lg {\n    display: table-cell !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-block {\n    display: block !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-inline {\n    display: inline !important;\n  }\n}\n@media (min-width: 1200px) {\n  .visible-lg-inline-block {\n    display: inline-block !important;\n  }\n}\n@media (max-width: 767px) {\n  .hidden-xs {\n    display: none !important;\n  }\n}\n@media (min-width: 768px) and (max-width: 991px) {\n  .hidden-sm {\n    display: none !important;\n  }\n}\n@media (min-width: 992px) and (max-width: 1199px) {\n  .hidden-md {\n    display: none !important;\n  }\n}\n@media (min-width: 1200px) {\n  .hidden-lg {\n    display: none !important;\n  }\n}\n.visible-print {\n  display: none !important;\n}\n@media print {\n  .visible-print {\n    display: block !important;\n  }\n  table.visible-print {\n    display: table !important;\n  }\n  tr.visible-print {\n    display: table-row !important;\n  }\n  th.visible-print,\n  td.visible-print {\n    display: table-cell !important;\n  }\n}\n.visible-print-block {\n  display: none !important;\n}\n@media print {\n  .visible-print-block {\n    display: block !important;\n  }\n}\n.visible-print-inline {\n  display: none !important;\n}\n@media print {\n  .visible-print-inline {\n    display: inline !important;\n  }\n}\n.visible-print-inline-block {\n  display: none !important;\n}\n@media print {\n  .visible-print-inline-block {\n    display: inline-block !important;\n  }\n}\n@media print {\n  .hidden-print {\n    display: none !important;\n  }\n}\n/*# sourceMappingURL=bootstrap.css.map */","/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\n\n//\n// 1. Set default font family to sans-serif.\n// 2. Prevent iOS and IE text size adjust after device orientation change,\n//    without disabling user zoom.\n//\n\nhtml {\n  font-family: sans-serif; // 1\n  -ms-text-size-adjust: 100%; // 2\n  -webkit-text-size-adjust: 100%; // 2\n}\n\n//\n// Remove default margin.\n//\n\nbody {\n  margin: 0;\n}\n\n// HTML5 display definitions\n// ==========================================================================\n\n//\n// Correct `block` display not defined for any HTML5 element in IE 8/9.\n// Correct `block` display not defined for `details` or `summary` in IE 10/11\n// and Firefox.\n// Correct `block` display not defined for `main` in IE 11.\n//\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nmenu,\nnav,\nsection,\nsummary {\n  display: block;\n}\n\n//\n// 1. Correct `inline-block` display not defined in IE 8/9.\n// 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n//\n\naudio,\ncanvas,\nprogress,\nvideo {\n  display: inline-block; // 1\n  vertical-align: baseline; // 2\n}\n\n//\n// Prevent modern browsers from displaying `audio` without controls.\n// Remove excess height in iOS 5 devices.\n//\n\naudio:not([controls]) {\n  display: none;\n  height: 0;\n}\n\n//\n// Address `[hidden]` styling not present in IE 8/9/10.\n// Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\n//\n\n[hidden],\ntemplate {\n  display: none;\n}\n\n// Links\n// ==========================================================================\n\n//\n// Remove the gray background color from active links in IE 10.\n//\n\na {\n  background-color: transparent;\n}\n\n//\n// Improve readability of focused elements when they are also in an\n// active/hover state.\n//\n\na:active,\na:hover {\n  outline: 0;\n}\n\n// Text-level semantics\n// ==========================================================================\n\n//\n// Address styling not present in IE 8/9/10/11, Safari, and Chrome.\n//\n\nabbr[title] {\n  border-bottom: 1px dotted;\n}\n\n//\n// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\n//\n\nb,\nstrong {\n  font-weight: bold;\n}\n\n//\n// Address styling not present in Safari and Chrome.\n//\n\ndfn {\n  font-style: italic;\n}\n\n//\n// Address variable `h1` font-size and margin within `section` and `article`\n// contexts in Firefox 4+, Safari, and Chrome.\n//\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\n//\n// Address styling not present in IE 8/9.\n//\n\nmark {\n  background: #ff0;\n  color: #000;\n}\n\n//\n// Address inconsistent and variable font size in all browsers.\n//\n\nsmall {\n  font-size: 80%;\n}\n\n//\n// Prevent `sub` and `sup` affecting `line-height` in all browsers.\n//\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsup {\n  top: -0.5em;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\n// Embedded content\n// ==========================================================================\n\n//\n// Remove border when inside `a` element in IE 8/9/10.\n//\n\nimg {\n  border: 0;\n}\n\n//\n// Correct overflow not hidden in IE 9/10/11.\n//\n\nsvg:not(:root) {\n  overflow: hidden;\n}\n\n// Grouping content\n// ==========================================================================\n\n//\n// Address margin not present in IE 8/9 and Safari.\n//\n\nfigure {\n  margin: 1em 40px;\n}\n\n//\n// Address differences between Firefox and other browsers.\n//\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n}\n\n//\n// Contain overflow in all browsers.\n//\n\npre {\n  overflow: auto;\n}\n\n//\n// Address odd `em`-unit font size rendering in all browsers.\n//\n\ncode,\nkbd,\npre,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\n// Forms\n// ==========================================================================\n\n//\n// Known limitation: by default, Chrome and Safari on OS X allow very limited\n// styling of `select`, unless a `border` property is set.\n//\n\n//\n// 1. Correct color not being inherited.\n//    Known issue: affects color of disabled elements.\n// 2. Correct font properties not being inherited.\n// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\n//\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  color: inherit; // 1\n  font: inherit; // 2\n  margin: 0; // 3\n}\n\n//\n// Address `overflow` set to `hidden` in IE 8/9/10/11.\n//\n\nbutton {\n  overflow: visible;\n}\n\n//\n// Address inconsistent `text-transform` inheritance for `button` and `select`.\n// All other form control elements do not inherit `text-transform` values.\n// Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\n// Correct `select` style inheritance in Firefox.\n//\n\nbutton,\nselect {\n  text-transform: none;\n}\n\n//\n// 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n//    and `video` controls.\n// 2. Correct inability to style clickable `input` types in iOS.\n// 3. Improve usability and consistency of cursor style between image-type\n//    `input` and others.\n//\n\nbutton,\nhtml input[type=\"button\"], // 1\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n  -webkit-appearance: button; // 2\n  cursor: pointer; // 3\n}\n\n//\n// Re-set default cursor for disabled elements.\n//\n\nbutton[disabled],\nhtml input[disabled] {\n  cursor: default;\n}\n\n//\n// Remove inner padding and border in Firefox 4+.\n//\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n  border: 0;\n  padding: 0;\n}\n\n//\n// Address Firefox 4+ setting `line-height` on `input` using `!important` in\n// the UA stylesheet.\n//\n\ninput {\n  line-height: normal;\n}\n\n//\n// It's recommended that you don't attempt to style these elements.\n// Firefox's implementation doesn't respect box-sizing, padding, or width.\n//\n// 1. Address box sizing set to `content-box` in IE 8/9/10.\n// 2. Remove excess padding in IE 8/9/10.\n//\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n  box-sizing: border-box; // 1\n  padding: 0; // 2\n}\n\n//\n// Fix the cursor style for Chrome's increment/decrement buttons. For certain\n// `font-size` values of the `input`, it causes the cursor style of the\n// decrement button to change from `default` to `text`.\n//\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n  height: auto;\n}\n\n//\n// 1. Address `appearance` set to `searchfield` in Safari and Chrome.\n// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\n//\n\ninput[type=\"search\"] {\n  -webkit-appearance: textfield; // 1\n  box-sizing: content-box; //2\n}\n\n//\n// Remove inner padding and search cancel button in Safari and Chrome on OS X.\n// Safari (but not Chrome) clips the cancel button when the search input has\n// padding (and `textfield` appearance).\n//\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n  -webkit-appearance: none;\n}\n\n//\n// Define consistent border, margin, and padding.\n//\n\nfieldset {\n  border: 1px solid #c0c0c0;\n  margin: 0 2px;\n  padding: 0.35em 0.625em 0.75em;\n}\n\n//\n// 1. Correct `color` not being inherited in IE 8/9/10/11.\n// 2. Remove padding so people aren't caught out if they zero out fieldsets.\n//\n\nlegend {\n  border: 0; // 1\n  padding: 0; // 2\n}\n\n//\n// Remove default vertical scrollbar in IE 8/9/10/11.\n//\n\ntextarea {\n  overflow: auto;\n}\n\n//\n// Don't inherit the `font-weight` (applied by a rule above).\n// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n//\n\noptgroup {\n  font-weight: bold;\n}\n\n// Tables\n// ==========================================================================\n\n//\n// Remove most spacing between table cells.\n//\n\ntable {\n  border-collapse: collapse;\n  border-spacing: 0;\n}\n\ntd,\nth {\n  padding: 0;\n}\n","/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */\n\n// ==========================================================================\n// Print styles.\n// Inlined to avoid the additional HTTP request: h5bp.com/r\n// ==========================================================================\n\n@media print {\n    *,\n    *:before,\n    *:after {\n        background: transparent !important;\n        color: #000 !important; // Black prints faster: h5bp.com/s\n        box-shadow: none !important;\n        text-shadow: none !important;\n    }\n\n    a,\n    a:visited {\n        text-decoration: underline;\n    }\n\n    a[href]:after {\n        content: \" (\" attr(href) \")\";\n    }\n\n    abbr[title]:after {\n        content: \" (\" attr(title) \")\";\n    }\n\n    // Don't show links that are fragment identifiers,\n    // or use the `javascript:` pseudo protocol\n    a[href^=\"#\"]:after,\n    a[href^=\"javascript:\"]:after {\n        content: \"\";\n    }\n\n    pre,\n    blockquote {\n        border: 1px solid #999;\n        page-break-inside: avoid;\n    }\n\n    thead {\n        display: table-header-group; // h5bp.com/t\n    }\n\n    tr,\n    img {\n        page-break-inside: avoid;\n    }\n\n    img {\n        max-width: 100% !important;\n    }\n\n    p,\n    h2,\n    h3 {\n        orphans: 3;\n        widows: 3;\n    }\n\n    h2,\n    h3 {\n        page-break-after: avoid;\n    }\n\n    // Bootstrap specific changes start\n\n    // Bootstrap components\n    .navbar {\n        display: none;\n    }\n    .btn,\n    .dropup > .btn {\n        > .caret {\n            border-top-color: #000 !important;\n        }\n    }\n    .label {\n        border: 1px solid #000;\n    }\n\n    .table {\n        border-collapse: collapse !important;\n\n        td,\n        th {\n            background-color: #fff !important;\n        }\n    }\n    .table-bordered {\n        th,\n        td {\n            border: 1px solid #ddd !important;\n        }\n    }\n\n    // Bootstrap specific changes end\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n// <a href=\"#\"><span class=\"glyphicon glyphicon-star\"></span> Star</a>\n\n// Import the fonts\n@font-face {\n  font-family: 'Glyphicons Halflings';\n  src: url('@{icon-font-path}@{icon-font-name}.eot');\n  src: url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype'),\n       url('@{icon-font-path}@{icon-font-name}.woff2') format('woff2'),\n       url('@{icon-font-path}@{icon-font-name}.woff') format('woff'),\n       url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype'),\n       url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg');\n}\n\n// Catchall baseclass\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'Glyphicons Halflings';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk               { &:before { content: \"\\002a\"; } }\n.glyphicon-plus                   { &:before { content: \"\\002b\"; } }\n.glyphicon-euro,\n.glyphicon-eur                    { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus                  { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud                  { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope               { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil                 { &:before { content: \"\\270f\"; } }\n.glyphicon-glass                  { &:before { content: \"\\e001\"; } }\n.glyphicon-music                  { &:before { content: \"\\e002\"; } }\n.glyphicon-search                 { &:before { content: \"\\e003\"; } }\n.glyphicon-heart                  { &:before { content: \"\\e005\"; } }\n.glyphicon-star                   { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty             { &:before { content: \"\\e007\"; } }\n.glyphicon-user                   { &:before { content: \"\\e008\"; } }\n.glyphicon-film                   { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large               { &:before { content: \"\\e010\"; } }\n.glyphicon-th                     { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list                { &:before { content: \"\\e012\"; } }\n.glyphicon-ok                     { &:before { content: \"\\e013\"; } }\n.glyphicon-remove                 { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in                { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out               { &:before { content: \"\\e016\"; } }\n.glyphicon-off                    { &:before { content: \"\\e017\"; } }\n.glyphicon-signal                 { &:before { content: \"\\e018\"; } }\n.glyphicon-cog                    { &:before { content: \"\\e019\"; } }\n.glyphicon-trash                  { &:before { content: \"\\e020\"; } }\n.glyphicon-home                   { &:before { content: \"\\e021\"; } }\n.glyphicon-file                   { &:before { content: \"\\e022\"; } }\n.glyphicon-time                   { &:before { content: \"\\e023\"; } }\n.glyphicon-road                   { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt           { &:before { content: \"\\e025\"; } }\n.glyphicon-download               { &:before { content: \"\\e026\"; } }\n.glyphicon-upload                 { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox                  { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle            { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat                 { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh                { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt               { &:before { content: \"\\e032\"; } }\n.glyphicon-lock                   { &:before { content: \"\\e033\"; } }\n.glyphicon-flag                   { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones             { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off             { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down            { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up              { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode                 { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode                { &:before { content: \"\\e040\"; } }\n.glyphicon-tag                    { &:before { content: \"\\e041\"; } }\n.glyphicon-tags                   { &:before { content: \"\\e042\"; } }\n.glyphicon-book                   { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark               { &:before { content: \"\\e044\"; } }\n.glyphicon-print                  { &:before { content: \"\\e045\"; } }\n.glyphicon-camera                 { &:before { content: \"\\e046\"; } }\n.glyphicon-font                   { &:before { content: \"\\e047\"; } }\n.glyphicon-bold                   { &:before { content: \"\\e048\"; } }\n.glyphicon-italic                 { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height            { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width             { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left             { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center           { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right            { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify          { &:before { content: \"\\e055\"; } }\n.glyphicon-list                   { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left            { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right           { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video         { &:before { content: \"\\e059\"; } }\n.glyphicon-picture                { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker             { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust                 { &:before { content: \"\\e063\"; } }\n.glyphicon-tint                   { &:before { content: \"\\e064\"; } }\n.glyphicon-edit                   { &:before { content: \"\\e065\"; } }\n.glyphicon-share                  { &:before { content: \"\\e066\"; } }\n.glyphicon-check                  { &:before { content: \"\\e067\"; } }\n.glyphicon-move                   { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward          { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward          { &:before { content: \"\\e070\"; } }\n.glyphicon-backward               { &:before { content: \"\\e071\"; } }\n.glyphicon-play                   { &:before { content: \"\\e072\"; } }\n.glyphicon-pause                  { &:before { content: \"\\e073\"; } }\n.glyphicon-stop                   { &:before { content: \"\\e074\"; } }\n.glyphicon-forward                { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward           { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward           { &:before { content: \"\\e077\"; } }\n.glyphicon-eject                  { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left           { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right          { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign              { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign             { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign            { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign                { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign          { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign              { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot             { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle          { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle              { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle             { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left             { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right            { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up               { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down             { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt              { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full            { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small           { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign       { &:before { content: \"\\e101\"; } }\n.glyphicon-gift                   { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf                   { &:before { content: \"\\e103\"; } }\n.glyphicon-fire                   { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open               { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close              { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign           { &:before { content: \"\\e107\"; } }\n.glyphicon-plane                  { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar               { &:before { content: \"\\e109\"; } }\n.glyphicon-random                 { &:before { content: \"\\e110\"; } }\n.glyphicon-comment                { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet                 { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up             { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down           { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet                { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart          { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close           { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open            { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical        { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal      { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd                    { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn               { &:before { content: \"\\e122\"; } }\n.glyphicon-bell                   { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate            { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up              { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down            { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right             { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left              { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up                { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down              { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right     { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left      { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up        { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down      { &:before { content: \"\\e134\"; } }\n.glyphicon-globe                  { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench                 { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks                  { &:before { content: \"\\e137\"; } }\n.glyphicon-filter                 { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase              { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen             { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard              { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip              { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty            { &:before { content: \"\\e143\"; } }\n.glyphicon-link                   { &:before { content: \"\\e144\"; } }\n.glyphicon-phone                  { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin                { &:before { content: \"\\e146\"; } }\n.glyphicon-usd                    { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp                    { &:before { content: \"\\e149\"; } }\n.glyphicon-sort                   { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet       { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt   { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order          { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt      { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes     { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked              { &:before { content: \"\\e157\"; } }\n.glyphicon-expand                 { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down          { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up            { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in                 { &:before { content: \"\\e161\"; } }\n.glyphicon-flash                  { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out                { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window             { &:before { content: \"\\e164\"; } }\n.glyphicon-record                 { &:before { content: \"\\e165\"; } }\n.glyphicon-save                   { &:before { content: \"\\e166\"; } }\n.glyphicon-open                   { &:before { content: \"\\e167\"; } }\n.glyphicon-saved                  { &:before { content: \"\\e168\"; } }\n.glyphicon-import                 { &:before { content: \"\\e169\"; } }\n.glyphicon-export                 { &:before { content: \"\\e170\"; } }\n.glyphicon-send                   { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk            { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved           { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove          { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save            { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open            { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card            { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer               { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery                { &:before { content: \"\\e179\"; } }\n.glyphicon-header                 { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed             { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone               { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt              { &:before { content: \"\\e183\"; } }\n.glyphicon-tower                  { &:before { content: \"\\e184\"; } }\n.glyphicon-stats                  { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video               { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video               { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles              { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo           { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby            { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1              { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1              { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1              { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark         { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark      { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download         { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload           { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer           { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous         { &:before { content: \"\\e200\"; } }\n.glyphicon-cd                     { &:before { content: \"\\e201\"; } }\n.glyphicon-save-file              { &:before { content: \"\\e202\"; } }\n.glyphicon-open-file              { &:before { content: \"\\e203\"; } }\n.glyphicon-level-up               { &:before { content: \"\\e204\"; } }\n.glyphicon-copy                   { &:before { content: \"\\e205\"; } }\n.glyphicon-paste                  { &:before { content: \"\\e206\"; } }\n// The following 2 Glyphicons are omitted for the time being because\n// they currently use Unicode codepoints that are outside the\n// Basic Multilingual Plane (BMP). Older buggy versions of WebKit can't handle\n// non-BMP codepoints in CSS string escapes, and thus can't display these two icons.\n// Notably, the bug affects some older versions of the Android Browser.\n// More info: https://github.com/twbs/bootstrap/issues/10106\n// .glyphicon-door                   { &:before { content: \"\\1f6aa\"; } }\n// .glyphicon-key                    { &:before { content: \"\\1f511\"; } }\n.glyphicon-alert                  { &:before { content: \"\\e209\"; } }\n.glyphicon-equalizer              { &:before { content: \"\\e210\"; } }\n.glyphicon-king                   { &:before { content: \"\\e211\"; } }\n.glyphicon-queen                  { &:before { content: \"\\e212\"; } }\n.glyphicon-pawn                   { &:before { content: \"\\e213\"; } }\n.glyphicon-bishop                 { &:before { content: \"\\e214\"; } }\n.glyphicon-knight                 { &:before { content: \"\\e215\"; } }\n.glyphicon-baby-formula           { &:before { content: \"\\e216\"; } }\n.glyphicon-tent                   { &:before { content: \"\\26fa\"; } }\n.glyphicon-blackboard             { &:before { content: \"\\e218\"; } }\n.glyphicon-bed                    { &:before { content: \"\\e219\"; } }\n.glyphicon-apple                  { &:before { content: \"\\f8ff\"; } }\n.glyphicon-erase                  { &:before { content: \"\\e221\"; } }\n.glyphicon-hourglass              { &:before { content: \"\\231b\"; } }\n.glyphicon-lamp                   { &:before { content: \"\\e223\"; } }\n.glyphicon-duplicate              { &:before { content: \"\\e224\"; } }\n.glyphicon-piggy-bank             { &:before { content: \"\\e225\"; } }\n.glyphicon-scissors               { &:before { content: \"\\e226\"; } }\n.glyphicon-bitcoin                { &:before { content: \"\\e227\"; } }\n.glyphicon-btc                    { &:before { content: \"\\e227\"; } }\n.glyphicon-xbt                    { &:before { content: \"\\e227\"; } }\n.glyphicon-yen                    { &:before { content: \"\\00a5\"; } }\n.glyphicon-jpy                    { &:before { content: \"\\00a5\"; } }\n.glyphicon-ruble                  { &:before { content: \"\\20bd\"; } }\n.glyphicon-rub                    { &:before { content: \"\\20bd\"; } }\n.glyphicon-scale                  { &:before { content: \"\\e230\"; } }\n.glyphicon-ice-lolly              { &:before { content: \"\\e231\"; } }\n.glyphicon-ice-lolly-tasted       { &:before { content: \"\\e232\"; } }\n.glyphicon-education              { &:before { content: \"\\e233\"; } }\n.glyphicon-option-horizontal      { &:before { content: \"\\e234\"; } }\n.glyphicon-option-vertical        { &:before { content: \"\\e235\"; } }\n.glyphicon-menu-hamburger         { &:before { content: \"\\e236\"; } }\n.glyphicon-modal-window           { &:before { content: \"\\e237\"; } }\n.glyphicon-oil                    { &:before { content: \"\\e238\"; } }\n.glyphicon-grain                  { &:before { content: \"\\e239\"; } }\n.glyphicon-sunglasses             { &:before { content: \"\\e240\"; } }\n.glyphicon-text-size              { &:before { content: \"\\e241\"; } }\n.glyphicon-text-color             { &:before { content: \"\\e242\"; } }\n.glyphicon-text-background        { &:before { content: \"\\e243\"; } }\n.glyphicon-object-align-top       { &:before { content: \"\\e244\"; } }\n.glyphicon-object-align-bottom    { &:before { content: \"\\e245\"; } }\n.glyphicon-object-align-horizontal{ &:before { content: \"\\e246\"; } }\n.glyphicon-object-align-left      { &:before { content: \"\\e247\"; } }\n.glyphicon-object-align-vertical  { &:before { content: \"\\e248\"; } }\n.glyphicon-object-align-right     { &:before { content: \"\\e249\"; } }\n.glyphicon-triangle-right         { &:before { content: \"\\e250\"; } }\n.glyphicon-triangle-left          { &:before { content: \"\\e251\"; } }\n.glyphicon-triangle-bottom        { &:before { content: \"\\e252\"; } }\n.glyphicon-triangle-top           { &:before { content: \"\\e253\"; } }\n.glyphicon-console                { &:before { content: \"\\e254\"; } }\n.glyphicon-superscript            { &:before { content: \"\\e255\"; } }\n.glyphicon-subscript              { &:before { content: \"\\e256\"; } }\n.glyphicon-menu-left              { &:before { content: \"\\e257\"; } }\n.glyphicon-menu-right             { &:before { content: \"\\e258\"; } }\n.glyphicon-menu-down              { &:before { content: \"\\e259\"; } }\n.glyphicon-menu-up                { &:before { content: \"\\e260\"; } }\n","//\n// Scaffolding\n// --------------------------------------------------\n\n\n// Reset the box-sizing\n//\n// Heads up! This reset may cause conflicts with some third-party widgets.\n// For recommendations on resolving such conflicts, see\n// http://getbootstrap.com/getting-started/#third-box-sizing\n* {\n  .box-sizing(border-box);\n}\n*:before,\n*:after {\n  .box-sizing(border-box);\n}\n\n\n// Body reset\n\nhtml {\n  font-size: 10px;\n  -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n\nbody {\n  font-family: @font-family-base;\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @text-color;\n  background-color: @body-bg;\n}\n\n// Reset fonts for relevant elements\ninput,\nbutton,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: inherit;\n  line-height: inherit;\n}\n\n\n// Links\n\na {\n  color: @link-color;\n  text-decoration: none;\n\n  &:hover,\n  &:focus {\n    color: @link-hover-color;\n    text-decoration: @link-hover-decoration;\n  }\n\n  &:focus {\n    .tab-focus();\n  }\n}\n\n\n// Figures\n//\n// We reset this here because previously Normalize had no `figure` margins. This\n// ensures we don't break anyone's use of the element.\n\nfigure {\n  margin: 0;\n}\n\n\n// Images\n\nimg {\n  vertical-align: middle;\n}\n\n// Responsive images (ensure images don't scale beyond their parents)\n.img-responsive {\n  .img-responsive();\n}\n\n// Rounded corners\n.img-rounded {\n  border-radius: @border-radius-large;\n}\n\n// Image thumbnails\n//\n// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.\n.img-thumbnail {\n  padding: @thumbnail-padding;\n  line-height: @line-height-base;\n  background-color: @thumbnail-bg;\n  border: 1px solid @thumbnail-border;\n  border-radius: @thumbnail-border-radius;\n  .transition(all .2s ease-in-out);\n\n  // Keep them at most 100% wide\n  .img-responsive(inline-block);\n}\n\n// Perfect circle\n.img-circle {\n  border-radius: 50%; // set radius in percents\n}\n\n\n// Horizontal rules\n\nhr {\n  margin-top:    @line-height-computed;\n  margin-bottom: @line-height-computed;\n  border: 0;\n  border-top: 1px solid @hr-border;\n}\n\n\n// Only display content to screen readers\n//\n// See: http://a11yproject.com/posts/how-to-hide-content\n\n.sr-only {\n  position: absolute;\n  width: 1px;\n  height: 1px;\n  margin: -1px;\n  padding: 0;\n  overflow: hidden;\n  clip: rect(0,0,0,0);\n  border: 0;\n}\n\n// Use in conjunction with .sr-only to only display content when it's focused.\n// Useful for \"Skip to main content\" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1\n// Credit: HTML5 Boilerplate\n\n.sr-only-focusable {\n  &:active,\n  &:focus {\n    position: static;\n    width: auto;\n    height: auto;\n    margin: 0;\n    overflow: visible;\n    clip: auto;\n  }\n}\n\n\n// iOS \"clickable elements\" fix for role=\"button\"\n//\n// Fixes \"clickability\" issue (and more generally, the firing of events such as focus as well)\n// for traditionally non-focusable elements with role=\"button\"\n// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n\n[role=\"button\"] {\n  cursor: pointer;\n}\n","// Vendor Prefixes\n//\n// All vendor mixins are deprecated as of v3.2.0 due to the introduction of\n// Autoprefixer in our Gruntfile. They have been removed in v4.\n\n// - Animations\n// - Backface visibility\n// - Box shadow\n// - Box sizing\n// - Content columns\n// - Hyphens\n// - Placeholder text\n// - Transformations\n// - Transitions\n// - User Select\n\n\n// Animations\n.animation(@animation) {\n  -webkit-animation: @animation;\n       -o-animation: @animation;\n          animation: @animation;\n}\n.animation-name(@name) {\n  -webkit-animation-name: @name;\n          animation-name: @name;\n}\n.animation-duration(@duration) {\n  -webkit-animation-duration: @duration;\n          animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n  -webkit-animation-timing-function: @timing-function;\n          animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n  -webkit-animation-delay: @delay;\n          animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n  -webkit-animation-iteration-count: @iteration-count;\n          animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n  -webkit-animation-direction: @direction;\n          animation-direction: @direction;\n}\n.animation-fill-mode(@fill-mode) {\n  -webkit-animation-fill-mode: @fill-mode;\n          animation-fill-mode: @fill-mode;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n\n.backface-visibility(@visibility) {\n  -webkit-backface-visibility: @visibility;\n     -moz-backface-visibility: @visibility;\n          backface-visibility: @visibility;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support it.\n\n.box-shadow(@shadow) {\n  -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n          box-shadow: @shadow;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n  -webkit-box-sizing: @boxmodel;\n     -moz-box-sizing: @boxmodel;\n          box-sizing: @boxmodel;\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n  -webkit-column-count: @column-count;\n     -moz-column-count: @column-count;\n          column-count: @column-count;\n  -webkit-column-gap: @column-gap;\n     -moz-column-gap: @column-gap;\n          column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n  word-wrap: break-word;\n  -webkit-hyphens: @mode;\n     -moz-hyphens: @mode;\n      -ms-hyphens: @mode; // IE10+\n       -o-hyphens: @mode;\n          hyphens: @mode;\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n  // Firefox\n  &::-moz-placeholder {\n    color: @color;\n    opacity: 1; // Override Firefox's unusual default opacity; see https://github.com/twbs/bootstrap/pull/11526\n  }\n  &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n  &::-webkit-input-placeholder  { color: @color; } // Safari and Chrome\n}\n\n// Transformations\n.scale(@ratio) {\n  -webkit-transform: scale(@ratio);\n      -ms-transform: scale(@ratio); // IE9 only\n       -o-transform: scale(@ratio);\n          transform: scale(@ratio);\n}\n.scale(@ratioX; @ratioY) {\n  -webkit-transform: scale(@ratioX, @ratioY);\n      -ms-transform: scale(@ratioX, @ratioY); // IE9 only\n       -o-transform: scale(@ratioX, @ratioY);\n          transform: scale(@ratioX, @ratioY);\n}\n.scaleX(@ratio) {\n  -webkit-transform: scaleX(@ratio);\n      -ms-transform: scaleX(@ratio); // IE9 only\n       -o-transform: scaleX(@ratio);\n          transform: scaleX(@ratio);\n}\n.scaleY(@ratio) {\n  -webkit-transform: scaleY(@ratio);\n      -ms-transform: scaleY(@ratio); // IE9 only\n       -o-transform: scaleY(@ratio);\n          transform: scaleY(@ratio);\n}\n.skew(@x; @y) {\n  -webkit-transform: skewX(@x) skewY(@y);\n      -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n       -o-transform: skewX(@x) skewY(@y);\n          transform: skewX(@x) skewY(@y);\n}\n.translate(@x; @y) {\n  -webkit-transform: translate(@x, @y);\n      -ms-transform: translate(@x, @y); // IE9 only\n       -o-transform: translate(@x, @y);\n          transform: translate(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n  -webkit-transform: translate3d(@x, @y, @z);\n          transform: translate3d(@x, @y, @z);\n}\n.rotate(@degrees) {\n  -webkit-transform: rotate(@degrees);\n      -ms-transform: rotate(@degrees); // IE9 only\n       -o-transform: rotate(@degrees);\n          transform: rotate(@degrees);\n}\n.rotateX(@degrees) {\n  -webkit-transform: rotateX(@degrees);\n      -ms-transform: rotateX(@degrees); // IE9 only\n       -o-transform: rotateX(@degrees);\n          transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n  -webkit-transform: rotateY(@degrees);\n      -ms-transform: rotateY(@degrees); // IE9 only\n       -o-transform: rotateY(@degrees);\n          transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n  -webkit-perspective: @perspective;\n     -moz-perspective: @perspective;\n          perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n  -webkit-perspective-origin: @perspective;\n     -moz-perspective-origin: @perspective;\n          perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n  -webkit-transform-origin: @origin;\n     -moz-transform-origin: @origin;\n      -ms-transform-origin: @origin; // IE9 only\n          transform-origin: @origin;\n}\n\n\n// Transitions\n\n.transition(@transition) {\n  -webkit-transition: @transition;\n       -o-transition: @transition;\n          transition: @transition;\n}\n.transition-property(@transition-property) {\n  -webkit-transition-property: @transition-property;\n          transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n  -webkit-transition-delay: @transition-delay;\n          transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n  -webkit-transition-duration: @transition-duration;\n          transition-duration: @transition-duration;\n}\n.transition-timing-function(@timing-function) {\n  -webkit-transition-timing-function: @timing-function;\n          transition-timing-function: @timing-function;\n}\n.transition-transform(@transition) {\n  -webkit-transition: -webkit-transform @transition;\n     -moz-transition: -moz-transform @transition;\n       -o-transition: -o-transform @transition;\n          transition: transform @transition;\n}\n\n\n// User select\n// For selecting text on the page\n\n.user-select(@select) {\n  -webkit-user-select: @select;\n     -moz-user-select: @select;\n      -ms-user-select: @select; // IE10+\n          user-select: @select;\n}\n","// WebKit-style focus\n\n.tab-focus() {\n  // WebKit-specific. Other browsers will keep their default outline style.\n  // (Initially tried to also force default via `outline: initial`,\n  // but that seems to erroneously remove the outline in Firefox altogether.)\n  outline: 5px auto -webkit-focus-ring-color;\n  outline-offset: -2px;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n.img-responsive(@display: block) {\n  display: @display;\n  max-width: 100%; // Part 1: Set a maximum relative to the parent\n  height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size. Note that the\n// spelling of `min--moz-device-pixel-ratio` is intentional.\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n  background-image: url(\"@{file-1x}\");\n\n  @media\n  only screen and (-webkit-min-device-pixel-ratio: 2),\n  only screen and (   min--moz-device-pixel-ratio: 2),\n  only screen and (     -o-min-device-pixel-ratio: 2/1),\n  only screen and (        min-device-pixel-ratio: 2),\n  only screen and (                min-resolution: 192dpi),\n  only screen and (                min-resolution: 2dppx) {\n    background-image: url(\"@{file-2x}\");\n    background-size: @width-1x @height-1x;\n  }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  font-family: @headings-font-family;\n  font-weight: @headings-font-weight;\n  line-height: @headings-line-height;\n  color: @headings-color;\n\n  small,\n  .small {\n    font-weight: normal;\n    line-height: 1;\n    color: @headings-small-color;\n  }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n  margin-top: @line-height-computed;\n  margin-bottom: (@line-height-computed / 2);\n\n  small,\n  .small {\n    font-size: 65%;\n  }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  margin-top: (@line-height-computed / 2);\n  margin-bottom: (@line-height-computed / 2);\n\n  small,\n  .small {\n    font-size: 75%;\n  }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n  margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n  margin-bottom: @line-height-computed;\n  font-size: floor((@font-size-base * 1.15));\n  font-weight: 300;\n  line-height: 1.4;\n\n  @media (min-width: @screen-sm-min) {\n    font-size: (@font-size-base * 1.5);\n  }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: (12px small font / 14px base font) * 100% = about 85%\nsmall,\n.small {\n  font-size: floor((100% * @font-size-small / @font-size-base));\n}\n\nmark,\n.mark {\n  background-color: @state-warning-bg;\n  padding: .2em;\n}\n\n// Alignment\n.text-left           { text-align: left; }\n.text-right          { text-align: right; }\n.text-center         { text-align: center; }\n.text-justify        { text-align: justify; }\n.text-nowrap         { white-space: nowrap; }\n\n// Transformation\n.text-lowercase      { text-transform: lowercase; }\n.text-uppercase      { text-transform: uppercase; }\n.text-capitalize     { text-transform: capitalize; }\n\n// Contextual colors\n.text-muted {\n  color: @text-muted;\n}\n.text-primary {\n  .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n  .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n  .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n  .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n  .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n  // Given the contrast here, this is the only class to have its color inverted\n  // automatically.\n  color: #fff;\n  .bg-variant(@brand-primary);\n}\n.bg-success {\n  .bg-variant(@state-success-bg);\n}\n.bg-info {\n  .bg-variant(@state-info-bg);\n}\n.bg-warning {\n  .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n  .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n  padding-bottom: ((@line-height-computed / 2) - 1);\n  margin: (@line-height-computed * 2) 0 @line-height-computed;\n  border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// -------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n  margin-top: 0;\n  margin-bottom: (@line-height-computed / 2);\n  ul,\n  ol {\n    margin-bottom: 0;\n  }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n  .list-unstyled();\n  margin-left: -5px;\n\n  > li {\n    display: inline-block;\n    padding-left: 5px;\n    padding-right: 5px;\n  }\n}\n\n// Description Lists\ndl {\n  margin-top: 0; // Remove browser default\n  margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n  line-height: @line-height-base;\n}\ndt {\n  font-weight: bold;\n}\ndd {\n  margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n.dl-horizontal {\n  dd {\n    &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n  }\n\n  @media (min-width: @dl-horizontal-breakpoint) {\n    dt {\n      float: left;\n      width: (@dl-horizontal-offset - 20);\n      clear: left;\n      text-align: right;\n      .text-overflow();\n    }\n    dd {\n      margin-left: @dl-horizontal-offset;\n    }\n  }\n}\n\n\n// Misc\n// -------------------------\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n  font-size: 90%;\n  .text-uppercase();\n}\n\n// Blockquotes\nblockquote {\n  padding: (@line-height-computed / 2) @line-height-computed;\n  margin: 0 0 @line-height-computed;\n  font-size: @blockquote-font-size;\n  border-left: 5px solid @blockquote-border-color;\n\n  p,\n  ul,\n  ol {\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Note: Deprecated small and .small as of v3.1.0\n  // Context: https://github.com/twbs/bootstrap/issues/11660\n  footer,\n  small,\n  .small {\n    display: block;\n    font-size: 80%; // back to default font-size\n    line-height: @line-height-base;\n    color: @blockquote-small-color;\n\n    &:before {\n      content: '\\2014 \\00A0'; // em dash, nbsp\n    }\n  }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  border-right: 5px solid @blockquote-border-color;\n  border-left: 0;\n  text-align: right;\n\n  // Account for citation\n  footer,\n  small,\n  .small {\n    &:before { content: ''; }\n    &:after {\n      content: '\\00A0 \\2014'; // nbsp, em dash\n    }\n  }\n}\n\n// Addresses\naddress {\n  margin-bottom: @line-height-computed;\n  font-style: normal;\n  line-height: @line-height-base;\n}\n","// Typography\n\n.text-emphasis-variant(@color) {\n  color: @color;\n  a&:hover,\n  a&:focus {\n    color: darken(@color, 10%);\n  }\n}\n","// Contextual backgrounds\n\n.bg-variant(@color) {\n  background-color: @color;\n  a&:hover,\n  a&:focus {\n    background-color: darken(@color, 10%);\n  }\n}\n","// Text overflow\n// Requires inline-block or block for proper styling\n\n.text-overflow() {\n  overflow: hidden;\n  text-overflow: ellipsis;\n  white-space: nowrap;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n  font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: @code-color;\n  background-color: @code-bg;\n  border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: @kbd-color;\n  background-color: @kbd-bg;\n  border-radius: @border-radius-small;\n  box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n\n  kbd {\n    padding: 0;\n    font-size: 100%;\n    font-weight: bold;\n    box-shadow: none;\n  }\n}\n\n// Blocks of code\npre {\n  display: block;\n  padding: ((@line-height-computed - 1) / 2);\n  margin: 0 0 (@line-height-computed / 2);\n  font-size: (@font-size-base - 1); // 14px to 13px\n  line-height: @line-height-base;\n  word-break: break-all;\n  word-wrap: break-word;\n  color: @pre-color;\n  background-color: @pre-bg;\n  border: 1px solid @pre-border-color;\n  border-radius: @border-radius-base;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    padding: 0;\n    font-size: inherit;\n    color: inherit;\n    white-space: pre-wrap;\n    background-color: transparent;\n    border-radius: 0;\n  }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n  max-height: @pre-scrollable-max-height;\n  overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n  .container-fixed();\n\n  @media (min-width: @screen-sm-min) {\n    width: @container-sm;\n  }\n  @media (min-width: @screen-md-min) {\n    width: @container-md;\n  }\n  @media (min-width: @screen-lg-min) {\n    width: @container-lg;\n  }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n  .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n  .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n  .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n  .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n  .make-grid(lg);\n}\n","// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n// Centered container element\n.container-fixed(@gutter: @grid-gutter-width) {\n  margin-right: auto;\n  margin-left: auto;\n  padding-left:  floor((@gutter / 2));\n  padding-right: ceil((@gutter / 2));\n  &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n  margin-left:  ceil((@gutter / -2));\n  margin-right: floor((@gutter / -2));\n  &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  float: left;\n  width: percentage((@columns / @grid-columns));\n  min-height: 1px;\n  padding-left:  (@gutter / 2);\n  padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n  margin-left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-push(@columns) {\n  left: percentage((@columns / @grid-columns));\n}\n.make-xs-column-pull(@columns) {\n  right: percentage((@columns / @grid-columns));\n}\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-left:  (@gutter / 2);\n  padding-right: (@gutter / 2);\n\n  @media (min-width: @screen-sm-min) {\n    float: left;\n    width: percentage((@columns / @grid-columns));\n  }\n}\n.make-sm-column-offset(@columns) {\n  @media (min-width: @screen-sm-min) {\n    margin-left: percentage((@columns / @grid-columns));\n  }\n}\n.make-sm-column-push(@columns) {\n  @media (min-width: @screen-sm-min) {\n    left: percentage((@columns / @grid-columns));\n  }\n}\n.make-sm-column-pull(@columns) {\n  @media (min-width: @screen-sm-min) {\n    right: percentage((@columns / @grid-columns));\n  }\n}\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-left:  (@gutter / 2);\n  padding-right: (@gutter / 2);\n\n  @media (min-width: @screen-md-min) {\n    float: left;\n    width: percentage((@columns / @grid-columns));\n  }\n}\n.make-md-column-offset(@columns) {\n  @media (min-width: @screen-md-min) {\n    margin-left: percentage((@columns / @grid-columns));\n  }\n}\n.make-md-column-push(@columns) {\n  @media (min-width: @screen-md-min) {\n    left: percentage((@columns / @grid-columns));\n  }\n}\n.make-md-column-pull(@columns) {\n  @media (min-width: @screen-md-min) {\n    right: percentage((@columns / @grid-columns));\n  }\n}\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n  position: relative;\n  min-height: 1px;\n  padding-left:  (@gutter / 2);\n  padding-right: (@gutter / 2);\n\n  @media (min-width: @screen-lg-min) {\n    float: left;\n    width: percentage((@columns / @grid-columns));\n  }\n}\n.make-lg-column-offset(@columns) {\n  @media (min-width: @screen-lg-min) {\n    margin-left: percentage((@columns / @grid-columns));\n  }\n}\n.make-lg-column-push(@columns) {\n  @media (min-width: @screen-lg-min) {\n    left: percentage((@columns / @grid-columns));\n  }\n}\n.make-lg-column-pull(@columns) {\n  @media (min-width: @screen-lg-min) {\n    right: percentage((@columns / @grid-columns));\n  }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n  // Common styles for all sizes of grid columns, widths 1-12\n  .col(@index) { // initial\n    @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n    .col((@index + 1), @item);\n  }\n  .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n    @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n    .col((@index + 1), ~\"@{list}, @{item}\");\n  }\n  .col(@index, @list) when (@index > @grid-columns) { // terminal\n    @{list} {\n      position: relative;\n      // Prevent columns from collapsing when empty\n      min-height: 1px;\n      // Inner gutter via padding\n      padding-left:  ceil((@grid-gutter-width / 2));\n      padding-right: floor((@grid-gutter-width / 2));\n    }\n  }\n  .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n  .col(@index) { // initial\n    @item: ~\".col-@{class}-@{index}\";\n    .col((@index + 1), @item);\n  }\n  .col(@index, @list) when (@index =< @grid-columns) { // general\n    @item: ~\".col-@{class}-@{index}\";\n    .col((@index + 1), ~\"@{list}, @{item}\");\n  }\n  .col(@index, @list) when (@index > @grid-columns) { // terminal\n    @{list} {\n      float: left;\n    }\n  }\n  .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n  .col-@{class}-@{index} {\n    width: percentage((@index / @grid-columns));\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index > 0) {\n  .col-@{class}-push-@{index} {\n    left: percentage((@index / @grid-columns));\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) and (@index = 0) {\n  .col-@{class}-push-0 {\n    left: auto;\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index > 0) {\n  .col-@{class}-pull-@{index} {\n    right: percentage((@index / @grid-columns));\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) and (@index = 0) {\n  .col-@{class}-pull-0 {\n    right: auto;\n  }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n  .col-@{class}-offset-@{index} {\n    margin-left: percentage((@index / @grid-columns));\n  }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n  .calc-grid-column(@index, @class, @type);\n  // next iteration\n  .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n  .float-grid-columns(@class);\n  .loop-grid-columns(@grid-columns, @class, width);\n  .loop-grid-columns(@grid-columns, @class, pull);\n  .loop-grid-columns(@grid-columns, @class, push);\n  .loop-grid-columns(@grid-columns, @class, offset);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n  background-color: @table-bg;\n}\ncaption {\n  padding-top: @table-cell-padding;\n  padding-bottom: @table-cell-padding;\n  color: @text-muted;\n  text-align: left;\n}\nth {\n  text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n  width: 100%;\n  max-width: 100%;\n  margin-bottom: @line-height-computed;\n  // Cells\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: @table-cell-padding;\n        line-height: @line-height-base;\n        vertical-align: top;\n        border-top: 1px solid @table-border-color;\n      }\n    }\n  }\n  // Bottom align for column headings\n  > thead > tr > th {\n    vertical-align: bottom;\n    border-bottom: 2px solid @table-border-color;\n  }\n  // Remove top border from thead by default\n  > caption + thead,\n  > colgroup + thead,\n  > thead:first-child {\n    > tr:first-child {\n      > th,\n      > td {\n        border-top: 0;\n      }\n    }\n  }\n  // Account for multiple tbody instances\n  > tbody + tbody {\n    border-top: 2px solid @table-border-color;\n  }\n\n  // Nesting\n  .table {\n    background-color: @body-bg;\n  }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: @table-condensed-cell-padding;\n      }\n    }\n  }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n  border: 1px solid @table-border-color;\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        border: 1px solid @table-border-color;\n      }\n    }\n  }\n  > thead > tr {\n    > th,\n    > td {\n      border-bottom-width: 2px;\n    }\n  }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n  > tbody > tr:nth-of-type(odd) {\n    background-color: @table-bg-accent;\n  }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  > tbody > tr:hover {\n    background-color: @table-bg-hover;\n  }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n  position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n  float: none;\n  display: table-column;\n}\ntable {\n  td,\n  th {\n    &[class*=\"col-\"] {\n      position: static; // Prevent border hiding in Firefox and IE9-11 (see https://github.com/twbs/bootstrap/issues/11623)\n      float: none;\n      display: table-cell;\n    }\n  }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n.table-responsive {\n  overflow-x: auto;\n  min-height: 0.01%; // Workaround for IE9 bug (see https://github.com/twbs/bootstrap/issues/14837)\n\n  @media screen and (max-width: @screen-xs-max) {\n    width: 100%;\n    margin-bottom: (@line-height-computed * 0.75);\n    overflow-y: hidden;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    border: 1px solid @table-border-color;\n\n    // Tighten up spacing\n    > .table {\n      margin-bottom: 0;\n\n      // Ensure the content doesn't wrap\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th,\n          > td {\n            white-space: nowrap;\n          }\n        }\n      }\n    }\n\n    // Special overrides for the bordered tables\n    > .table-bordered {\n      border: 0;\n\n      // Nuke the appropriate borders so that the parent can handle them\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th:first-child,\n          > td:first-child {\n            border-left: 0;\n          }\n          > th:last-child,\n          > td:last-child {\n            border-right: 0;\n          }\n        }\n      }\n\n      // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n      // chances are there will be only one `tr` in a `thead` and that would\n      // remove the border altogether.\n      > tbody,\n      > tfoot {\n        > tr:last-child {\n          > th,\n          > td {\n            border-bottom: 0;\n          }\n        }\n      }\n\n    }\n  }\n}\n","// Tables\n\n.table-row-variant(@state; @background) {\n  // Exact selectors below required to override `.table-striped` and prevent\n  // inheritance to nested tables.\n  .table > thead > tr,\n  .table > tbody > tr,\n  .table > tfoot > tr {\n    > td.@{state},\n    > th.@{state},\n    &.@{state} > td,\n    &.@{state} > th {\n      background-color: @background;\n    }\n  }\n\n  // Hover states for `.table-hover`\n  // Note: this is not available for cells or rows within `thead` or `tfoot`.\n  .table-hover > tbody > tr {\n    > td.@{state}:hover,\n    > th.@{state}:hover,\n    &.@{state}:hover > td,\n    &:hover > .@{state},\n    &.@{state}:hover > th {\n      background-color: darken(@background, 5%);\n    }\n  }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n  // Chrome and Firefox set a `min-width: min-content;` on fieldsets,\n  // so we reset that to ensure it behaves more like a standard block element.\n  // See https://github.com/twbs/bootstrap/issues/12359.\n  min-width: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: @line-height-computed;\n  font-size: (@font-size-base * 1.5);\n  line-height: inherit;\n  color: @legend-color;\n  border: 0;\n  border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n  display: inline-block;\n  max-width: 100%; // Force IE8 to wrap long content (see https://github.com/twbs/bootstrap/issues/13141)\n  margin-bottom: 5px;\n  font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n  .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9; // IE8-9\n  line-height: normal;\n}\n\ninput[type=\"file\"] {\n  display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n  display: block;\n  width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n  height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  .tab-focus();\n}\n\n// Adjust output element\noutput {\n  display: block;\n  padding-top: (@padding-base-vertical + 1);\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n  padding: @padding-base-vertical @padding-base-horizontal;\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @input-color;\n  background-color: @input-bg;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid @input-border;\n  border-radius: @input-border-radius; // Note: This has no effect on <select>s in some browsers, due to the limited stylability of <select>s in CSS.\n  .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n  .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  .form-control-focus();\n\n  // Placeholder\n  .placeholder();\n\n  // Unstyle the caret on `<select>`s in IE10+.\n  &::-ms-expand {\n    border: 0;\n    background-color: transparent;\n  }\n\n  // Disabled and read-only inputs\n  //\n  // HTML5 says that controls under a fieldset > legend:first-child won't be\n  // disabled if the fieldset is disabled. Due to implementation difficulty, we\n  // don't honor that edge case; we style them as disabled anyway.\n  &[disabled],\n  &[readonly],\n  fieldset[disabled] & {\n    background-color: @input-bg-disabled;\n    opacity: 1; // iOS fix for unreadable disabled content; see https://github.com/twbs/bootstrap/issues/11655\n  }\n\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n  }\n\n  // Reset height for `textarea`s\n  textarea& {\n    height: auto;\n  }\n}\n\n\n// Search inputs in iOS\n//\n// This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\ninput[type=\"search\"] {\n  -webkit-appearance: none;\n}\n\n\n// Special styles for iOS temporal inputs\n//\n// In Mobile Safari, setting `display: block` on temporal inputs causes the\n// text within the input to become vertically misaligned. As a workaround, we\n// set a pixel line-height that matches the given height of the input, but only\n// for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848\n//\n// Note that as of 9.3, iOS doesn't support `week`.\n\n@media screen and (-webkit-min-device-pixel-ratio: 0) {\n  input[type=\"date\"],\n  input[type=\"time\"],\n  input[type=\"datetime-local\"],\n  input[type=\"month\"] {\n    &.form-control {\n      line-height: @input-height-base;\n    }\n\n    &.input-sm,\n    .input-group-sm & {\n      line-height: @input-height-small;\n    }\n\n    &.input-lg,\n    .input-group-lg & {\n      line-height: @input-height-large;\n    }\n  }\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n  margin-bottom: @form-group-margin-bottom;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n  position: relative;\n  display: block;\n  margin-top: 10px;\n  margin-bottom: 10px;\n\n  label {\n    min-height: @line-height-computed; // Ensure the input doesn't jump when there is no text\n    padding-left: 20px;\n    margin-bottom: 0;\n    font-weight: normal;\n    cursor: pointer;\n  }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  position: absolute;\n  margin-left: -20px;\n  margin-top: 4px \\9;\n}\n\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n  position: relative;\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  vertical-align: middle;\n  font-weight: normal;\n  cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px; // space out consecutive inline controls\n}\n\n// Apply same disabled cursor tweak as for inputs\n// Some special care is needed because <label>s don't inherit their parent's `cursor`.\n//\n// Note: Neither radios nor checkboxes can be readonly.\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  &[disabled],\n  &.disabled,\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n  }\n}\n// These classes are used directly on <label>s\n.radio-inline,\n.checkbox-inline {\n  &.disabled,\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n  }\n}\n// These classes are used on elements with <label> descendants\n.radio,\n.checkbox {\n  &.disabled,\n  fieldset[disabled] & {\n    label {\n      cursor: @cursor-disabled;\n    }\n  }\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n  // Size it appropriately next to real form controls\n  padding-top: (@padding-base-vertical + 1);\n  padding-bottom: (@padding-base-vertical + 1);\n  // Remove default margin from `p`\n  margin-bottom: 0;\n  min-height: (@line-height-computed + @font-size-base);\n\n  &.input-lg,\n  &.input-sm {\n    padding-left: 0;\n    padding-right: 0;\n  }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n//\n// The `.form-group-* form-control` variations are sadly duplicated to avoid the\n// issue documented in https://github.com/twbs/bootstrap/issues/15074.\n\n.input-sm {\n  .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @input-border-radius-small);\n}\n.form-group-sm {\n  .form-control {\n    height: @input-height-small;\n    padding: @padding-small-vertical @padding-small-horizontal;\n    font-size: @font-size-small;\n    line-height: @line-height-small;\n    border-radius: @input-border-radius-small;\n  }\n  select.form-control {\n    height: @input-height-small;\n    line-height: @input-height-small;\n  }\n  textarea.form-control,\n  select[multiple].form-control {\n    height: auto;\n  }\n  .form-control-static {\n    height: @input-height-small;\n    min-height: (@line-height-computed + @font-size-small);\n    padding: (@padding-small-vertical + 1) @padding-small-horizontal;\n    font-size: @font-size-small;\n    line-height: @line-height-small;\n  }\n}\n\n.input-lg {\n  .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @input-border-radius-large);\n}\n.form-group-lg {\n  .form-control {\n    height: @input-height-large;\n    padding: @padding-large-vertical @padding-large-horizontal;\n    font-size: @font-size-large;\n    line-height: @line-height-large;\n    border-radius: @input-border-radius-large;\n  }\n  select.form-control {\n    height: @input-height-large;\n    line-height: @input-height-large;\n  }\n  textarea.form-control,\n  select[multiple].form-control {\n    height: auto;\n  }\n  .form-control-static {\n    height: @input-height-large;\n    min-height: (@line-height-computed + @font-size-large);\n    padding: (@padding-large-vertical + 1) @padding-large-horizontal;\n    font-size: @font-size-large;\n    line-height: @line-height-large;\n  }\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n  // Enable absolute positioning\n  position: relative;\n\n  // Ensure icons don't overlap text\n  .form-control {\n    padding-right: (@input-height-base * 1.25);\n  }\n}\n// Feedback icon (requires .glyphicon classes)\n.form-control-feedback {\n  position: absolute;\n  top: 0;\n  right: 0;\n  z-index: 2; // Ensure icon is above input groups\n  display: block;\n  width: @input-height-base;\n  height: @input-height-base;\n  line-height: @input-height-base;\n  text-align: center;\n  pointer-events: none;\n}\n.input-lg + .form-control-feedback,\n.input-group-lg + .form-control-feedback,\n.form-group-lg .form-control + .form-control-feedback {\n  width: @input-height-large;\n  height: @input-height-large;\n  line-height: @input-height-large;\n}\n.input-sm + .form-control-feedback,\n.input-group-sm + .form-control-feedback,\n.form-group-sm .form-control + .form-control-feedback {\n  width: @input-height-small;\n  height: @input-height-small;\n  line-height: @input-height-small;\n}\n\n// Feedback states\n.has-success {\n  .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);\n}\n.has-warning {\n  .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);\n}\n.has-error {\n  .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);\n}\n\n// Reposition feedback icon if input has visible label above\n.has-feedback label {\n\n  & ~ .form-control-feedback {\n    top: (@line-height-computed + 5); // Height of the `label` and its margin\n  }\n  &.sr-only ~ .form-control-feedback {\n    top: 0;\n  }\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n  display: block; // account for any element using help-block\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: lighten(@text-color, 25%); // lighten the text some for contrast\n}\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n.form-inline {\n\n  // Kick in the inline\n  @media (min-width: @screen-sm-min) {\n    // Inline-block all the things for \"inline\"\n    .form-group {\n      display: inline-block;\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // In navbar-form, allow folks to *not* use `.form-group`\n    .form-control {\n      display: inline-block;\n      width: auto; // Prevent labels from stacking above inputs in `.form-group`\n      vertical-align: middle;\n    }\n\n    // Make static controls behave like regular ones\n    .form-control-static {\n      display: inline-block;\n    }\n\n    .input-group {\n      display: inline-table;\n      vertical-align: middle;\n\n      .input-group-addon,\n      .input-group-btn,\n      .form-control {\n        width: auto;\n      }\n    }\n\n    // Input groups need that 100% width though\n    .input-group > .form-control {\n      width: 100%;\n    }\n\n    .control-label {\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // Remove default margin on radios/checkboxes that were used for stacking, and\n    // then undo the floating of radios and checkboxes to match.\n    .radio,\n    .checkbox {\n      display: inline-block;\n      margin-top: 0;\n      margin-bottom: 0;\n      vertical-align: middle;\n\n      label {\n        padding-left: 0;\n      }\n    }\n    .radio input[type=\"radio\"],\n    .checkbox input[type=\"checkbox\"] {\n      position: relative;\n      margin-left: 0;\n    }\n\n    // Re-override the feedback icon.\n    .has-feedback .form-control-feedback {\n      top: 0;\n    }\n  }\n}\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n  // Consistent vertical alignment of radios and checkboxes\n  //\n  // Labels also get some reset styles, but that is scoped to a media query below.\n  .radio,\n  .checkbox,\n  .radio-inline,\n  .checkbox-inline {\n    margin-top: 0;\n    margin-bottom: 0;\n    padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n  }\n  // Account for padding we're adding to ensure the alignment and of help text\n  // and other content below items\n  .radio,\n  .checkbox {\n    min-height: (@line-height-computed + (@padding-base-vertical + 1));\n  }\n\n  // Make form groups behave like rows\n  .form-group {\n    .make-row();\n  }\n\n  // Reset spacing and right align labels, but scope to media queries so that\n  // labels on narrow viewports stack the same as a default form example.\n  @media (min-width: @screen-sm-min) {\n    .control-label {\n      text-align: right;\n      margin-bottom: 0;\n      padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n    }\n  }\n\n  // Validation states\n  //\n  // Reposition the icon because it's now within a grid column and columns have\n  // `position: relative;` on them. Also accounts for the grid gutter padding.\n  .has-feedback .form-control-feedback {\n    right: floor((@grid-gutter-width / 2));\n  }\n\n  // Form group sizes\n  //\n  // Quick utility class for applying `.input-lg` and `.input-sm` styles to the\n  // inputs and labels within a `.form-group`.\n  .form-group-lg {\n    @media (min-width: @screen-sm-min) {\n      .control-label {\n        padding-top: (@padding-large-vertical + 1);\n        font-size: @font-size-large;\n      }\n    }\n  }\n  .form-group-sm {\n    @media (min-width: @screen-sm-min) {\n      .control-label {\n        padding-top: (@padding-small-vertical + 1);\n        font-size: @font-size-small;\n      }\n    }\n  }\n}\n","// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n  // Color the label and help text\n  .help-block,\n  .control-label,\n  .radio,\n  .checkbox,\n  .radio-inline,\n  .checkbox-inline,\n  &.radio label,\n  &.checkbox label,\n  &.radio-inline label,\n  &.checkbox-inline label  {\n    color: @text-color;\n  }\n  // Set the border and box shadow on specific inputs to match\n  .form-control {\n    border-color: @border-color;\n    .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work\n    &:focus {\n      border-color: darken(@border-color, 10%);\n      @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);\n      .box-shadow(@shadow);\n    }\n  }\n  // Set validation states also for addons\n  .input-group-addon {\n    color: @text-color;\n    border-color: @border-color;\n    background-color: @background-color;\n  }\n  // Optional feedback icon\n  .form-control-feedback {\n    color: @text-color;\n  }\n}\n\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-border-focus` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n.form-control-focus(@color: @input-border-focus) {\n  @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n  &:focus {\n    border-color: @color;\n    outline: 0;\n    .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n  }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. `<select>`\n// element gets special love because it's special, and that's a fact!\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n  height: @input-height;\n  padding: @padding-vertical @padding-horizontal;\n  font-size: @font-size;\n  line-height: @line-height;\n  border-radius: @border-radius;\n\n  select& {\n    height: @input-height;\n    line-height: @input-height;\n  }\n\n  textarea&,\n  select[multiple]& {\n    height: auto;\n  }\n}\n","//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n  display: inline-block;\n  margin-bottom: 0; // For input.btn\n  font-weight: @btn-font-weight;\n  text-align: center;\n  vertical-align: middle;\n  touch-action: manipulation;\n  cursor: pointer;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  white-space: nowrap;\n  .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @btn-border-radius-base);\n  .user-select(none);\n\n  &,\n  &:active,\n  &.active {\n    &:focus,\n    &.focus {\n      .tab-focus();\n    }\n  }\n\n  &:hover,\n  &:focus,\n  &.focus {\n    color: @btn-default-color;\n    text-decoration: none;\n  }\n\n  &:active,\n  &.active {\n    outline: 0;\n    background-image: none;\n    .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: @cursor-disabled;\n    .opacity(.65);\n    .box-shadow(none);\n  }\n\n  a& {\n    &.disabled,\n    fieldset[disabled] & {\n      pointer-events: none; // Future-proof disabling of clicks on `<a>` elements\n    }\n  }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n  .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n  .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n  .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n  .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n  .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n  .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n  color: @link-color;\n  font-weight: normal;\n  border-radius: 0;\n\n  &,\n  &:active,\n  &.active,\n  &[disabled],\n  fieldset[disabled] & {\n    background-color: transparent;\n    .box-shadow(none);\n  }\n  &,\n  &:hover,\n  &:focus,\n  &:active {\n    border-color: transparent;\n  }\n  &:hover,\n  &:focus {\n    color: @link-hover-color;\n    text-decoration: @link-hover-decoration;\n    background-color: transparent;\n  }\n  &[disabled],\n  fieldset[disabled] & {\n    &:hover,\n    &:focus {\n      color: @btn-link-disabled-color;\n      text-decoration: none;\n    }\n  }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n  // line-height: ensure even-numbered height of button next to large input\n  .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @btn-border-radius-large);\n}\n.btn-sm {\n  // line-height: ensure proper height of button next to small input\n  .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n.btn-xs {\n  .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @btn-border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n  display: block;\n  width: 100%;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n  &.btn-block {\n    width: 100%;\n  }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n.button-variant(@color; @background; @border) {\n  color: @color;\n  background-color: @background;\n  border-color: @border;\n\n  &:focus,\n  &.focus {\n    color: @color;\n    background-color: darken(@background, 10%);\n        border-color: darken(@border, 25%);\n  }\n  &:hover {\n    color: @color;\n    background-color: darken(@background, 10%);\n        border-color: darken(@border, 12%);\n  }\n  &:active,\n  &.active,\n  .open > .dropdown-toggle& {\n    color: @color;\n    background-color: darken(@background, 10%);\n        border-color: darken(@border, 12%);\n\n    &:hover,\n    &:focus,\n    &.focus {\n      color: @color;\n      background-color: darken(@background, 17%);\n          border-color: darken(@border, 25%);\n    }\n  }\n  &:active,\n  &.active,\n  .open > .dropdown-toggle& {\n    background-image: none;\n  }\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    &:hover,\n    &:focus,\n    &.focus {\n      background-color: @background;\n          border-color: @border;\n    }\n  }\n\n  .badge {\n    color: @background;\n    background-color: @color;\n  }\n}\n\n// Button sizes\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n  padding: @padding-vertical @padding-horizontal;\n  font-size: @font-size;\n  line-height: @line-height;\n  border-radius: @border-radius;\n}\n","// Opacity\n\n.opacity(@opacity) {\n  opacity: @opacity;\n  // IE8 filter\n  @opacity-ie: (@opacity * 100);\n  filter: ~\"alpha(opacity=@{opacity-ie})\";\n}\n","//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twbs/bootstrap/pull/3552.\n\n.fade {\n  opacity: 0;\n  .transition(opacity .15s linear);\n  &.in {\n    opacity: 1;\n  }\n}\n\n.collapse {\n  display: none;\n\n  &.in      { display: block; }\n  tr&.in    { display: table-row; }\n  tbody&.in { display: table-row-group; }\n}\n\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  .transition-property(~\"height, visibility\");\n  .transition-duration(.35s);\n  .transition-timing-function(ease);\n}\n","//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top:   @caret-width-base dashed;\n  border-top:   @caret-width-base solid ~\"\\9\"; // IE8\n  border-right: @caret-width-base solid transparent;\n  border-left:  @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropup,\n.dropdown {\n  position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n  outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: @zindex-dropdown;\n  display: none; // none by default, but block on \"open\" of the menu\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0; // override default ul\n  list-style: none;\n  font-size: @font-size-base;\n  text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n  background-color: @dropdown-bg;\n  border: 1px solid @dropdown-fallback-border; // IE8 fallback\n  border: 1px solid @dropdown-border;\n  border-radius: @border-radius-base;\n  .box-shadow(0 6px 12px rgba(0,0,0,.175));\n  background-clip: padding-box;\n\n  // Aligns the dropdown menu to right\n  //\n  // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n  &.pull-right {\n    right: 0;\n    left: auto;\n  }\n\n  // Dividers (basically an hr) within the dropdown\n  .divider {\n    .nav-divider(@dropdown-divider-bg);\n  }\n\n  // Links within the dropdown menu\n  > li > a {\n    display: block;\n    padding: 3px 20px;\n    clear: both;\n    font-weight: normal;\n    line-height: @line-height-base;\n    color: @dropdown-link-color;\n    white-space: nowrap; // prevent links from randomly breaking onto new lines\n  }\n}\n\n// Hover/Focus state\n.dropdown-menu > li > a {\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    color: @dropdown-link-hover-color;\n    background-color: @dropdown-link-hover-bg;\n  }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n  &,\n  &:hover,\n  &:focus {\n    color: @dropdown-link-active-color;\n    text-decoration: none;\n    outline: 0;\n    background-color: @dropdown-link-active-bg;\n  }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n  &,\n  &:hover,\n  &:focus {\n    color: @dropdown-link-disabled-color;\n  }\n\n  // Nuke hover/focus effects\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    background-color: transparent;\n    background-image: none; // Remove CSS gradient\n    .reset-filter();\n    cursor: @cursor-disabled;\n  }\n}\n\n// Open state for the dropdown\n.open {\n  // Show the menu\n  > .dropdown-menu {\n    display: block;\n  }\n\n  // Remove the outline when :focus is triggered\n  > a {\n    outline: 0;\n  }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n  left: auto; // Reset the default from `.dropdown-menu`\n  right: 0;\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n  left: 0;\n  right: auto;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: @font-size-small;\n  line-height: @line-height-base;\n  color: @dropdown-header-color;\n  white-space: nowrap; // as with > li > a\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n  position: fixed;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n  // Reverse the caret\n  .caret {\n    border-top: 0;\n    border-bottom: @caret-width-base dashed;\n    border-bottom: @caret-width-base solid ~\"\\9\"; // IE8\n    content: \"\";\n  }\n  // Different positioning for bottom up menu\n  .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 2px;\n  }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n  .navbar-right {\n    .dropdown-menu {\n      .dropdown-menu-right();\n    }\n    // Necessary for overrides of the default right aligned menu.\n    // Will remove come v4 in all likelihood.\n    .dropdown-menu-left {\n      .dropdown-menu-left();\n    }\n  }\n}\n","// Horizontal dividers\n//\n// Dividers (basically an hr) within dropdowns and nav lists\n\n.nav-divider(@color: #e5e5e5) {\n  height: 1px;\n  margin: ((@line-height-computed / 2) - 1) 0;\n  overflow: hidden;\n  background-color: @color;\n}\n","// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n\n.reset-filter() {\n  filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n","//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n  > .btn {\n    position: relative;\n    float: left;\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active,\n    &.active {\n      z-index: 2;\n    }\n  }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n  .btn + .btn,\n  .btn + .btn-group,\n  .btn-group + .btn,\n  .btn-group + .btn-group {\n    margin-left: -1px;\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  margin-left: -5px; // Offset the first child's margin\n  &:extend(.clearfix all);\n\n  .btn,\n  .btn-group,\n  .input-group {\n    float: left;\n  }\n  > .btn,\n  > .btn-group,\n  > .input-group {\n    margin-left: 5px;\n  }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n  margin-left: 0;\n  &:not(:last-child):not(.dropdown-toggle) {\n    .border-right-radius(0);\n  }\n}\n// Need .dropdown-toggle since :last-child doesn't apply, given that a .dropdown-menu is used immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n  float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    .border-right-radius(0);\n  }\n}\n.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n  padding-left: 8px;\n  padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-left: 12px;\n  padding-right: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n  .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    .box-shadow(none);\n  }\n}\n\n\n// Reposition the caret\n.btn .caret {\n  margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n  border-width: @caret-width-large @caret-width-large 0;\n  border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n  border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n  > .btn,\n  > .btn-group,\n  > .btn-group > .btn {\n    display: block;\n    float: none;\n    width: 100%;\n    max-width: 100%;\n  }\n\n  // Clear floats so dropdown menus can be properly placed\n  > .btn-group {\n    &:extend(.clearfix all);\n    > .btn {\n      float: none;\n    }\n  }\n\n  > .btn + .btn,\n  > .btn + .btn-group,\n  > .btn-group + .btn,\n  > .btn-group + .btn-group {\n    margin-top: -1px;\n    margin-left: 0;\n  }\n}\n\n.btn-group-vertical > .btn {\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n  &:first-child:not(:last-child) {\n    .border-top-radius(@btn-border-radius-base);\n    .border-bottom-radius(0);\n  }\n  &:last-child:not(:first-child) {\n    .border-top-radius(0);\n    .border-bottom-radius(@btn-border-radius-base);\n  }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    .border-bottom-radius(0);\n  }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  .border-top-radius(0);\n}\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n  > .btn,\n  > .btn-group {\n    float: none;\n    display: table-cell;\n    width: 1%;\n  }\n  > .btn-group .btn {\n    width: 100%;\n  }\n\n  > .btn-group .dropdown-menu {\n    left: auto;\n  }\n}\n\n\n// Checkbox and radio options\n//\n// In order to support the browser's form validation feedback, powered by the\n// `required` attribute, we have to \"hide\" the inputs via `clip`. We cannot use\n// `display: none;` or `visibility: hidden;` as that also hides the popover.\n// Simply visually hiding the inputs via `opacity` would leave them clickable in\n// certain cases which is prevented by using `clip` and `pointer-events`.\n// This way, we ensure a DOM element is visible to position the popover from.\n//\n// See https://github.com/twbs/bootstrap/pull/12794 and\n// https://github.com/twbs/bootstrap/pull/14559 for more information.\n\n[data-toggle=\"buttons\"] {\n  > .btn,\n  > .btn-group > .btn {\n    input[type=\"radio\"],\n    input[type=\"checkbox\"] {\n      position: absolute;\n      clip: rect(0,0,0,0);\n      pointer-events: none;\n    }\n  }\n}\n","// Single side border-radius\n\n.border-top-radius(@radius) {\n  border-top-right-radius: @radius;\n   border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n  border-bottom-right-radius: @radius;\n     border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n  border-bottom-right-radius: @radius;\n   border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n  border-bottom-left-radius: @radius;\n     border-top-left-radius: @radius;\n}\n","//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n  position: relative; // For dropdowns\n  display: table;\n  border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n  // Undo padding and float of grid classes\n  &[class*=\"col-\"] {\n    float: none;\n    padding-left: 0;\n    padding-right: 0;\n  }\n\n  .form-control {\n    // Ensure that the input is always above the *appended* addon button for\n    // proper border colors.\n    position: relative;\n    z-index: 2;\n\n    // IE9 fubars the placeholder attribute in text inputs and the arrows on\n    // select elements in input groups. To fix it, we float the input. Details:\n    // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n    float: left;\n\n    width: 100%;\n    margin-bottom: 0;\n\n    &:focus {\n      z-index: 3;\n    }\n  }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn {\n  .input-lg();\n}\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn {\n  .input-sm();\n}\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n  padding: @padding-base-vertical @padding-base-horizontal;\n  font-size: @font-size-base;\n  font-weight: normal;\n  line-height: 1;\n  color: @input-color;\n  text-align: center;\n  background-color: @input-group-addon-bg;\n  border: 1px solid @input-group-addon-border-color;\n  border-radius: @input-border-radius;\n\n  // Sizing\n  &.input-sm {\n    padding: @padding-small-vertical @padding-small-horizontal;\n    font-size: @font-size-small;\n    border-radius: @input-border-radius-small;\n  }\n  &.input-lg {\n    padding: @padding-large-vertical @padding-large-horizontal;\n    font-size: @font-size-large;\n    border-radius: @input-border-radius-large;\n  }\n\n  // Nuke default margins from checkboxes and radios to vertically center within.\n  input[type=\"radio\"],\n  input[type=\"checkbox\"] {\n    margin-top: 0;\n  }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  .border-right-radius(0);\n}\n.input-group-addon:first-child {\n  border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  .border-left-radius(0);\n}\n.input-group-addon:last-child {\n  border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n  position: relative;\n  // Jankily prevent input button groups from wrapping with `white-space` and\n  // `font-size` in combination with `inline-block` on buttons.\n  font-size: 0;\n  white-space: nowrap;\n\n  // Negative margin for spacing, position for bringing hovered/focused/actived\n  // element above the siblings.\n  > .btn {\n    position: relative;\n    + .btn {\n      margin-left: -1px;\n    }\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active {\n      z-index: 2;\n    }\n  }\n\n  // Negative margin to only have a 1px border between the two\n  &:first-child {\n    > .btn,\n    > .btn-group {\n      margin-right: -1px;\n    }\n  }\n  &:last-child {\n    > .btn,\n    > .btn-group {\n      z-index: 2;\n      margin-left: -1px;\n    }\n  }\n}\n","//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n  margin-bottom: 0;\n  padding-left: 0; // Override default ul/ol\n  list-style: none;\n  &:extend(.clearfix all);\n\n  > li {\n    position: relative;\n    display: block;\n\n    > a {\n      position: relative;\n      display: block;\n      padding: @nav-link-padding;\n      &:hover,\n      &:focus {\n        text-decoration: none;\n        background-color: @nav-link-hover-bg;\n      }\n    }\n\n    // Disabled state sets text to gray and nukes hover/tab effects\n    &.disabled > a {\n      color: @nav-disabled-link-color;\n\n      &:hover,\n      &:focus {\n        color: @nav-disabled-link-hover-color;\n        text-decoration: none;\n        background-color: transparent;\n        cursor: @cursor-disabled;\n      }\n    }\n  }\n\n  // Open dropdowns\n  .open > a {\n    &,\n    &:hover,\n    &:focus {\n      background-color: @nav-link-hover-bg;\n      border-color: @link-color;\n    }\n  }\n\n  // Nav dividers (deprecated with v3.0.1)\n  //\n  // This should have been removed in v3 with the dropping of `.nav-list`, but\n  // we missed it. We don't currently support this anywhere, but in the interest\n  // of maintaining backward compatibility in case you use it, it's deprecated.\n  .nav-divider {\n    .nav-divider();\n  }\n\n  // Prevent IE8 from misplacing imgs\n  //\n  // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n  > li > a > img {\n    max-width: none;\n  }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n  border-bottom: 1px solid @nav-tabs-border-color;\n  > li {\n    float: left;\n    // Make the list-items overlay the bottom border\n    margin-bottom: -1px;\n\n    // Actual tabs (as links)\n    > a {\n      margin-right: 2px;\n      line-height: @line-height-base;\n      border: 1px solid transparent;\n      border-radius: @border-radius-base @border-radius-base 0 0;\n      &:hover {\n        border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n      }\n    }\n\n    // Active state, and its :hover to override normal :hover\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @nav-tabs-active-link-hover-color;\n        background-color: @nav-tabs-active-link-hover-bg;\n        border: 1px solid @nav-tabs-active-link-hover-border-color;\n        border-bottom-color: transparent;\n        cursor: default;\n      }\n    }\n  }\n  // pulling this in mainly for less shorthand\n  &.nav-justified {\n    .nav-justified();\n    .nav-tabs-justified();\n  }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n  > li {\n    float: left;\n\n    // Links rendered as pills\n    > a {\n      border-radius: @nav-pills-border-radius;\n    }\n    + li {\n      margin-left: 2px;\n    }\n\n    // Active state\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @nav-pills-active-link-hover-color;\n        background-color: @nav-pills-active-link-hover-bg;\n      }\n    }\n  }\n}\n\n\n// Stacked pills\n.nav-stacked {\n  > li {\n    float: none;\n    + li {\n      margin-top: 2px;\n      margin-left: 0; // no need for this gap between nav items\n    }\n  }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n  width: 100%;\n\n  > li {\n    float: none;\n    > a {\n      text-align: center;\n      margin-bottom: 5px;\n    }\n  }\n\n  > .dropdown .dropdown-menu {\n    top: auto;\n    left: auto;\n  }\n\n  @media (min-width: @screen-sm-min) {\n    > li {\n      display: table-cell;\n      width: 1%;\n      > a {\n        margin-bottom: 0;\n      }\n    }\n  }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n  border-bottom: 0;\n\n  > li > a {\n    // Override margin from .nav-tabs\n    margin-right: 0;\n    border-radius: @border-radius-base;\n  }\n\n  > .active > a,\n  > .active > a:hover,\n  > .active > a:focus {\n    border: 1px solid @nav-tabs-justified-link-border-color;\n  }\n\n  @media (min-width: @screen-sm-min) {\n    > li > a {\n      border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n      border-radius: @border-radius-base @border-radius-base 0 0;\n    }\n    > .active > a,\n    > .active > a:hover,\n    > .active > a:focus {\n      border-bottom-color: @nav-tabs-justified-active-link-border-color;\n    }\n  }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n  > .tab-pane {\n    display: none;\n  }\n  > .active {\n    display: block;\n  }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n  // make dropdown border overlap tab border\n  margin-top: -1px;\n  // Remove the top rounded corners here since there is a hard edge above the menu\n  .border-top-radius(0);\n}\n","//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  position: relative;\n  min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n  margin-bottom: @navbar-margin-bottom;\n  border: 1px solid transparent;\n\n  // Prevent floats from breaking the navbar\n  &:extend(.clearfix all);\n\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: @navbar-border-radius;\n  }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n  &:extend(.clearfix all);\n\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n  }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n  overflow-x: visible;\n  padding-right: @navbar-padding-horizontal;\n  padding-left:  @navbar-padding-horizontal;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);\n  &:extend(.clearfix all);\n  -webkit-overflow-scrolling: touch;\n\n  &.in {\n    overflow-y: auto;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    width: auto;\n    border-top: 0;\n    box-shadow: none;\n\n    &.collapse {\n      display: block !important;\n      height: auto !important;\n      padding-bottom: 0; // Override default setting\n      overflow: visible !important;\n    }\n\n    &.in {\n      overflow-y: visible;\n    }\n\n    // Undo the collapse side padding for navbars with containers to ensure\n    // alignment of right-aligned contents.\n    .navbar-fixed-top &,\n    .navbar-static-top &,\n    .navbar-fixed-bottom & {\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n}\n\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  .navbar-collapse {\n    max-height: @navbar-collapse-max-height;\n\n    @media (max-device-width: @screen-xs-min) and (orientation: landscape) {\n      max-height: 200px;\n    }\n  }\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n  > .navbar-header,\n  > .navbar-collapse {\n    margin-right: -@navbar-padding-horizontal;\n    margin-left:  -@navbar-padding-horizontal;\n\n    @media (min-width: @grid-float-breakpoint) {\n      margin-right: 0;\n      margin-left:  0;\n    }\n  }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n  z-index: @zindex-navbar;\n  border-width: 0 0 1px;\n\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n\n// Fix the top/bottom navbars when screen real estate supports it\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: @zindex-navbar-fixed;\n\n  // Undo the rounded corners\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0; // override .navbar defaults\n  border-width: 1px 0 0;\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n  float: left;\n  padding: @navbar-padding-vertical @navbar-padding-horizontal;\n  font-size: @font-size-large;\n  line-height: @line-height-computed;\n  height: @navbar-height;\n\n  &:hover,\n  &:focus {\n    text-decoration: none;\n  }\n\n  > img {\n    display: block;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    .navbar > .container &,\n    .navbar > .container-fluid & {\n      margin-left: -@navbar-padding-horizontal;\n    }\n  }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n  position: relative;\n  float: right;\n  margin-right: @navbar-padding-horizontal;\n  padding: 9px 10px;\n  .navbar-vertical-align(34px);\n  background-color: transparent;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  border-radius: @border-radius-base;\n\n  // We remove the `outline` here, but later compensate by attaching `:hover`\n  // styles to `:focus`.\n  &:focus {\n    outline: 0;\n  }\n\n  // Bars\n  .icon-bar {\n    display: block;\n    width: 22px;\n    height: 2px;\n    border-radius: 1px;\n  }\n  .icon-bar + .icon-bar {\n    margin-top: 4px;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    display: none;\n  }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n  margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n  > li > a {\n    padding-top:    10px;\n    padding-bottom: 10px;\n    line-height: @line-height-computed;\n  }\n\n  @media (max-width: @grid-float-breakpoint-max) {\n    // Dropdowns get custom display when collapsed\n    .open .dropdown-menu {\n      position: static;\n      float: none;\n      width: auto;\n      margin-top: 0;\n      background-color: transparent;\n      border: 0;\n      box-shadow: none;\n      > li > a,\n      .dropdown-header {\n        padding: 5px 15px 5px 25px;\n      }\n      > li > a {\n        line-height: @line-height-computed;\n        &:hover,\n        &:focus {\n          background-image: none;\n        }\n      }\n    }\n  }\n\n  // Uncollapse the nav\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n    margin: 0;\n\n    > li {\n      float: left;\n      > a {\n        padding-top:    @navbar-padding-vertical;\n        padding-bottom: @navbar-padding-vertical;\n      }\n    }\n  }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n  margin-left: -@navbar-padding-horizontal;\n  margin-right: -@navbar-padding-horizontal;\n  padding: 10px @navbar-padding-horizontal;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);\n  .box-shadow(@shadow);\n\n  // Mixin behavior for optimum display\n  .form-inline();\n\n  .form-group {\n    @media (max-width: @grid-float-breakpoint-max) {\n      margin-bottom: 5px;\n\n      &:last-child {\n        margin-bottom: 0;\n      }\n    }\n  }\n\n  // Vertically center in expanded, horizontal navbar\n  .navbar-vertical-align(@input-height-base);\n\n  // Undo 100% width for pull classes\n  @media (min-width: @grid-float-breakpoint) {\n    width: auto;\n    border: 0;\n    margin-left: 0;\n    margin-right: 0;\n    padding-top: 0;\n    padding-bottom: 0;\n    .box-shadow(none);\n  }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  margin-bottom: 0;\n  .border-top-radius(@navbar-border-radius);\n  .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n  .navbar-vertical-align(@input-height-base);\n\n  &.btn-sm {\n    .navbar-vertical-align(@input-height-small);\n  }\n  &.btn-xs {\n    .navbar-vertical-align(22);\n  }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n  .navbar-vertical-align(@line-height-computed);\n\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n    margin-left: @navbar-padding-horizontal;\n    margin-right: @navbar-padding-horizontal;\n  }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n//\n// Declared after the navbar components to ensure more specificity on the margins.\n\n@media (min-width: @grid-float-breakpoint) {\n  .navbar-left  { .pull-left(); }\n  .navbar-right {\n    .pull-right();\n    margin-right: -@navbar-padding-horizontal;\n\n    ~ .navbar-right {\n      margin-right: 0;\n    }\n  }\n}\n\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n  background-color: @navbar-default-bg;\n  border-color: @navbar-default-border;\n\n  .navbar-brand {\n    color: @navbar-default-brand-color;\n    &:hover,\n    &:focus {\n      color: @navbar-default-brand-hover-color;\n      background-color: @navbar-default-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: @navbar-default-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: @navbar-default-link-color;\n\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-hover-color;\n        background-color: @navbar-default-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-active-color;\n        background-color: @navbar-default-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-disabled-color;\n        background-color: @navbar-default-link-disabled-bg;\n      }\n    }\n  }\n\n  .navbar-toggle {\n    border-color: @navbar-default-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: @navbar-default-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: @navbar-default-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: @navbar-default-border;\n  }\n\n  // Dropdown menu items\n  .navbar-nav {\n    // Remove background color from open dropdown\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        background-color: @navbar-default-link-active-bg;\n        color: @navbar-default-link-active-color;\n      }\n    }\n\n    @media (max-width: @grid-float-breakpoint-max) {\n      // Dropdowns get custom display when collapsed\n      .open .dropdown-menu {\n        > li > a {\n          color: @navbar-default-link-color;\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-hover-color;\n            background-color: @navbar-default-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-active-color;\n            background-color: @navbar-default-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-disabled-color;\n            background-color: @navbar-default-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n\n  // Links in navbars\n  //\n  // Add a class to ensure links outside the navbar nav are colored correctly.\n\n  .navbar-link {\n    color: @navbar-default-link-color;\n    &:hover {\n      color: @navbar-default-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: @navbar-default-link-color;\n    &:hover,\n    &:focus {\n      color: @navbar-default-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-disabled-color;\n      }\n    }\n  }\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n  background-color: @navbar-inverse-bg;\n  border-color: @navbar-inverse-border;\n\n  .navbar-brand {\n    color: @navbar-inverse-brand-color;\n    &:hover,\n    &:focus {\n      color: @navbar-inverse-brand-hover-color;\n      background-color: @navbar-inverse-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: @navbar-inverse-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: @navbar-inverse-link-color;\n\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-hover-color;\n        background-color: @navbar-inverse-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-active-color;\n        background-color: @navbar-inverse-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-disabled-color;\n        background-color: @navbar-inverse-link-disabled-bg;\n      }\n    }\n  }\n\n  // Darken the responsive nav toggle\n  .navbar-toggle {\n    border-color: @navbar-inverse-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: @navbar-inverse-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: @navbar-inverse-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: darken(@navbar-inverse-bg, 7%);\n  }\n\n  // Dropdowns\n  .navbar-nav {\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        background-color: @navbar-inverse-link-active-bg;\n        color: @navbar-inverse-link-active-color;\n      }\n    }\n\n    @media (max-width: @grid-float-breakpoint-max) {\n      // Dropdowns get custom display\n      .open .dropdown-menu {\n        > .dropdown-header {\n          border-color: @navbar-inverse-border;\n        }\n        .divider {\n          background-color: @navbar-inverse-border;\n        }\n        > li > a {\n          color: @navbar-inverse-link-color;\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-hover-color;\n            background-color: @navbar-inverse-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-active-color;\n            background-color: @navbar-inverse-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-disabled-color;\n            background-color: @navbar-inverse-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n  .navbar-link {\n    color: @navbar-inverse-link-color;\n    &:hover {\n      color: @navbar-inverse-link-hover-color;\n    }\n  }\n\n  .btn-link {\n    color: @navbar-inverse-link-color;\n    &:hover,\n    &:focus {\n      color: @navbar-inverse-link-hover-color;\n    }\n    &[disabled],\n    fieldset[disabled] & {\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-disabled-color;\n      }\n    }\n  }\n}\n","// Navbar vertical align\n//\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n\n.navbar-vertical-align(@element-height) {\n  margin-top: ((@navbar-height - @element-height) / 2);\n  margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n","//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n  .clearfix();\n}\n.center-block {\n  .center-block();\n}\n.pull-right {\n  float: right !important;\n}\n.pull-left {\n  float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n  display: none !important;\n}\n.show {\n  display: block !important;\n}\n.invisible {\n  visibility: hidden;\n}\n.text-hide {\n  .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n  display: none !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n  position: fixed;\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n  padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n  margin-bottom: @line-height-computed;\n  list-style: none;\n  background-color: @breadcrumb-bg;\n  border-radius: @border-radius-base;\n\n  > li {\n    display: inline-block;\n\n    + li:before {\n      content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n      padding: 0 5px;\n      color: @breadcrumb-color;\n    }\n  }\n\n  > .active {\n    color: @breadcrumb-active-color;\n  }\n}\n","//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: @line-height-computed 0;\n  border-radius: @border-radius-base;\n\n  > li {\n    display: inline; // Remove list-style and block-level defaults\n    > a,\n    > span {\n      position: relative;\n      float: left; // Collapse white-space\n      padding: @padding-base-vertical @padding-base-horizontal;\n      line-height: @line-height-base;\n      text-decoration: none;\n      color: @pagination-color;\n      background-color: @pagination-bg;\n      border: 1px solid @pagination-border;\n      margin-left: -1px;\n    }\n    &:first-child {\n      > a,\n      > span {\n        margin-left: 0;\n        .border-left-radius(@border-radius-base);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        .border-right-radius(@border-radius-base);\n      }\n    }\n  }\n\n  > li > a,\n  > li > span {\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: @pagination-hover-color;\n      background-color: @pagination-hover-bg;\n      border-color: @pagination-hover-border;\n    }\n  }\n\n  > .active > a,\n  > .active > span {\n    &,\n    &:hover,\n    &:focus {\n      z-index: 3;\n      color: @pagination-active-color;\n      background-color: @pagination-active-bg;\n      border-color: @pagination-active-border;\n      cursor: default;\n    }\n  }\n\n  > .disabled {\n    > span,\n    > span:hover,\n    > span:focus,\n    > a,\n    > a:hover,\n    > a:focus {\n      color: @pagination-disabled-color;\n      background-color: @pagination-disabled-bg;\n      border-color: @pagination-disabled-border;\n      cursor: @cursor-disabled;\n    }\n  }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n  .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n  .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n","// Pagination\n\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n  > li {\n    > a,\n    > span {\n      padding: @padding-vertical @padding-horizontal;\n      font-size: @font-size;\n      line-height: @line-height;\n    }\n    &:first-child {\n      > a,\n      > span {\n        .border-left-radius(@border-radius);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        .border-right-radius(@border-radius);\n      }\n    }\n  }\n}\n","//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n  padding-left: 0;\n  margin: @line-height-computed 0;\n  list-style: none;\n  text-align: center;\n  &:extend(.clearfix all);\n  li {\n    display: inline;\n    > a,\n    > span {\n      display: inline-block;\n      padding: 5px 14px;\n      background-color: @pager-bg;\n      border: 1px solid @pager-border;\n      border-radius: @pager-border-radius;\n    }\n\n    > a:hover,\n    > a:focus {\n      text-decoration: none;\n      background-color: @pager-hover-bg;\n    }\n  }\n\n  .next {\n    > a,\n    > span {\n      float: right;\n    }\n  }\n\n  .previous {\n    > a,\n    > span {\n      float: left;\n    }\n  }\n\n  .disabled {\n    > a,\n    > a:hover,\n    > a:focus,\n    > span {\n      color: @pager-disabled-color;\n      background-color: @pager-bg;\n      cursor: @cursor-disabled;\n    }\n  }\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: @label-color;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n\n  // Add hover effects, but only for links\n  a& {\n    &:hover,\n    &:focus {\n      color: @label-link-hover-color;\n      text-decoration: none;\n      cursor: pointer;\n    }\n  }\n\n  // Empty labels collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for labels in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n  .label-variant(@label-default-bg);\n}\n\n.label-primary {\n  .label-variant(@label-primary-bg);\n}\n\n.label-success {\n  .label-variant(@label-success-bg);\n}\n\n.label-info {\n  .label-variant(@label-info-bg);\n}\n\n.label-warning {\n  .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n  .label-variant(@label-danger-bg);\n}\n","// Labels\n\n.label-variant(@color) {\n  background-color: @color;\n\n  &[href] {\n    &:hover,\n    &:focus {\n      background-color: darken(@color, 10%);\n    }\n  }\n}\n","//\n// Badges\n// --------------------------------------------------\n\n\n// Base class\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: @font-size-small;\n  font-weight: @badge-font-weight;\n  color: @badge-color;\n  line-height: @badge-line-height;\n  vertical-align: middle;\n  white-space: nowrap;\n  text-align: center;\n  background-color: @badge-bg;\n  border-radius: @badge-border-radius;\n\n  // Empty badges collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for badges in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n\n  .btn-xs &,\n  .btn-group-xs > .btn & {\n    top: 0;\n    padding: 1px 5px;\n  }\n\n  // Hover state, but only for links\n  a& {\n    &:hover,\n    &:focus {\n      color: @badge-link-hover-color;\n      text-decoration: none;\n      cursor: pointer;\n    }\n  }\n\n  // Account for badges in navs\n  .list-group-item.active > &,\n  .nav-pills > .active > a > & {\n    color: @badge-active-color;\n    background-color: @badge-active-bg;\n  }\n\n  .list-group-item > & {\n    float: right;\n  }\n\n  .list-group-item > & + & {\n    margin-right: 5px;\n  }\n\n  .nav-pills > li > a > & {\n    margin-left: 3px;\n  }\n}\n","//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n  padding-top:    @jumbotron-padding;\n  padding-bottom: @jumbotron-padding;\n  margin-bottom: @jumbotron-padding;\n  color: @jumbotron-color;\n  background-color: @jumbotron-bg;\n\n  h1,\n  .h1 {\n    color: @jumbotron-heading-color;\n  }\n\n  p {\n    margin-bottom: (@jumbotron-padding / 2);\n    font-size: @jumbotron-font-size;\n    font-weight: 200;\n  }\n\n  > hr {\n    border-top-color: darken(@jumbotron-bg, 10%);\n  }\n\n  .container &,\n  .container-fluid & {\n    border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n    padding-left:  (@grid-gutter-width / 2);\n    padding-right: (@grid-gutter-width / 2);\n  }\n\n  .container {\n    max-width: 100%;\n  }\n\n  @media screen and (min-width: @screen-sm-min) {\n    padding-top:    (@jumbotron-padding * 1.6);\n    padding-bottom: (@jumbotron-padding * 1.6);\n\n    .container &,\n    .container-fluid & {\n      padding-left:  (@jumbotron-padding * 2);\n      padding-right: (@jumbotron-padding * 2);\n    }\n\n    h1,\n    .h1 {\n      font-size: @jumbotron-heading-font-size;\n    }\n  }\n}\n","//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n  display: block;\n  padding: @thumbnail-padding;\n  margin-bottom: @line-height-computed;\n  line-height: @line-height-base;\n  background-color: @thumbnail-bg;\n  border: 1px solid @thumbnail-border;\n  border-radius: @thumbnail-border-radius;\n  .transition(border .2s ease-in-out);\n\n  > img,\n  a > img {\n    &:extend(.img-responsive);\n    margin-left: auto;\n    margin-right: auto;\n  }\n\n  // Add a hover state for linked versions only\n  a&:hover,\n  a&:focus,\n  a&.active {\n    border-color: @link-color;\n  }\n\n  // Image captions\n  .caption {\n    padding: @thumbnail-caption-padding;\n    color: @thumbnail-caption-color;\n  }\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n  padding: @alert-padding;\n  margin-bottom: @line-height-computed;\n  border: 1px solid transparent;\n  border-radius: @alert-border-radius;\n\n  // Headings for larger alerts\n  h4 {\n    margin-top: 0;\n    // Specified for the h4 to prevent conflicts of changing @headings-color\n    color: inherit;\n  }\n\n  // Provide class for links that match alerts\n  .alert-link {\n    font-weight: @alert-link-font-weight;\n  }\n\n  // Improve alignment and spacing of inner content\n  > p,\n  > ul {\n    margin-bottom: 0;\n  }\n\n  > p + p {\n    margin-top: 5px;\n  }\n}\n\n// Dismissible alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissable, // The misspelled .alert-dismissable was deprecated in 3.2.0.\n.alert-dismissible {\n  padding-right: (@alert-padding + 20);\n\n  // Adjust close link position\n  .close {\n    position: relative;\n    top: -2px;\n    right: -21px;\n    color: inherit;\n  }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n  .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n\n.alert-info {\n  .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n\n.alert-warning {\n  .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n\n.alert-danger {\n  .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n","// Alerts\n\n.alert-variant(@background; @border; @text-color) {\n  background-color: @background;\n  border-color: @border;\n  color: @text-color;\n\n  hr {\n    border-top-color: darken(@border, 5%);\n  }\n  .alert-link {\n    color: darken(@text-color, 10%);\n  }\n}\n","//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n  overflow: hidden;\n  height: @line-height-computed;\n  margin-bottom: @line-height-computed;\n  background-color: @progress-bg;\n  border-radius: @progress-border-radius;\n  .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n}\n\n// Bar of progress\n.progress-bar {\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: @font-size-small;\n  line-height: @line-height-computed;\n  color: @progress-bar-color;\n  text-align: center;\n  background-color: @progress-bar-bg;\n  .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n  .transition(width .6s ease);\n}\n\n// Striped bars\n//\n// `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar-striped` class, which you just add to an existing\n// `.progress-bar`.\n.progress-striped .progress-bar,\n.progress-bar-striped {\n  #gradient > .striped();\n  background-size: 40px 40px;\n}\n\n// Call animation for the active one\n//\n// `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the\n// `.progress-bar.active` approach.\n.progress.active .progress-bar,\n.progress-bar.active {\n  .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n  .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n  .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n  .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n  .progress-bar-variant(@progress-bar-danger-bg);\n}\n","// Gradients\n\n#gradient {\n\n  // Horizontal gradient, from left to right\n  //\n  // Creates two color stops, start and end, by specifying a color and position for each color stop.\n  // Color stops are not available in IE9 and below.\n  .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n    background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n    background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12\n    background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n    background-repeat: repeat-x;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n  }\n\n  // Vertical gradient, from top to bottom\n  //\n  // Creates two color stops, start and end, by specifying a color and position for each color stop.\n  // Color stops are not available in IE9 and below.\n  .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n    background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent);  // Safari 5.1-6, Chrome 10+\n    background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent);  // Opera 12\n    background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n    background-repeat: repeat-x;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n  }\n\n  .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n    background-repeat: repeat-x;\n    background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n    background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12\n    background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n  }\n  .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n    background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n    background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n    background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n    background-repeat: no-repeat;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n  }\n  .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n    background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n    background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n    background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n    background-repeat: no-repeat;\n    filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n  }\n  .radial(@inner-color: #555; @outer-color: #333) {\n    background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n    background-image: radial-gradient(circle, @inner-color, @outer-color);\n    background-repeat: no-repeat;\n  }\n  .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n    background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n    background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n    background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n  }\n}\n","// Progress bars\n\n.progress-bar-variant(@color) {\n  background-color: @color;\n\n  // Deprecated parent class requirement as of v3.2.0\n  .progress-striped & {\n    #gradient > .striped();\n  }\n}\n",".media {\n  // Proper spacing between instances of .media\n  margin-top: 15px;\n\n  &:first-child {\n    margin-top: 0;\n  }\n}\n\n.media,\n.media-body {\n  zoom: 1;\n  overflow: hidden;\n}\n\n.media-body {\n  width: 10000px;\n}\n\n.media-object {\n  display: block;\n\n  // Fix collapse in webkit from max-width: 100% and display: table-cell.\n  &.img-thumbnail {\n    max-width: none;\n  }\n}\n\n.media-right,\n.media > .pull-right {\n  padding-left: 10px;\n}\n\n.media-left,\n.media > .pull-left {\n  padding-right: 10px;\n}\n\n.media-left,\n.media-right,\n.media-body {\n  display: table-cell;\n  vertical-align: top;\n}\n\n.media-middle {\n  vertical-align: middle;\n}\n\n.media-bottom {\n  vertical-align: bottom;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n\n// Media list variation\n//\n// Undo default ul/ol styles\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n","//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on <ul>, <ol>, or <div>.\n\n.list-group {\n  // No need to set list-style: none; since .list-group-item is block level\n  margin-bottom: 20px;\n  padding-left: 0; // reset padding because ul and ol\n}\n\n\n// Individual list items\n//\n// Use on `li`s or `div`s within the `.list-group` parent.\n\n.list-group-item {\n  position: relative;\n  display: block;\n  padding: 10px 15px;\n  // Place the border on the list items and negative margin up for better styling\n  margin-bottom: -1px;\n  background-color: @list-group-bg;\n  border: 1px solid @list-group-border;\n\n  // Round the first and last items\n  &:first-child {\n    .border-top-radius(@list-group-border-radius);\n  }\n  &:last-child {\n    margin-bottom: 0;\n    .border-bottom-radius(@list-group-border-radius);\n  }\n}\n\n\n// Interactive list items\n//\n// Use anchor or button elements instead of `li`s or `div`s to create interactive items.\n// Includes an extra `.active` modifier class for showing selected items.\n\na.list-group-item,\nbutton.list-group-item {\n  color: @list-group-link-color;\n\n  .list-group-item-heading {\n    color: @list-group-link-heading-color;\n  }\n\n  // Hover state\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    color: @list-group-link-hover-color;\n    background-color: @list-group-hover-bg;\n  }\n}\n\nbutton.list-group-item {\n  width: 100%;\n  text-align: left;\n}\n\n.list-group-item {\n  // Disabled state\n  &.disabled,\n  &.disabled:hover,\n  &.disabled:focus {\n    background-color: @list-group-disabled-bg;\n    color: @list-group-disabled-color;\n    cursor: @cursor-disabled;\n\n    // Force color to inherit for custom content\n    .list-group-item-heading {\n      color: inherit;\n    }\n    .list-group-item-text {\n      color: @list-group-disabled-text-color;\n    }\n  }\n\n  // Active class on item itself, not parent\n  &.active,\n  &.active:hover,\n  &.active:focus {\n    z-index: 2; // Place active items above their siblings for proper border styling\n    color: @list-group-active-color;\n    background-color: @list-group-active-bg;\n    border-color: @list-group-active-border;\n\n    // Force color to inherit for custom content\n    .list-group-item-heading,\n    .list-group-item-heading > small,\n    .list-group-item-heading > .small {\n      color: inherit;\n    }\n    .list-group-item-text {\n      color: @list-group-active-text-color;\n    }\n  }\n}\n\n\n// Contextual variants\n//\n// Add modifier classes to change text and background color on individual items.\n// Organizationally, this must come after the `:hover` states.\n\n.list-group-item-variant(success; @state-success-bg; @state-success-text);\n.list-group-item-variant(info; @state-info-bg; @state-info-text);\n.list-group-item-variant(warning; @state-warning-bg; @state-warning-text);\n.list-group-item-variant(danger; @state-danger-bg; @state-danger-text);\n\n\n// Custom content options\n//\n// Extra classes for creating well-formatted content within `.list-group-item`s.\n\n.list-group-item-heading {\n  margin-top: 0;\n  margin-bottom: 5px;\n}\n.list-group-item-text {\n  margin-bottom: 0;\n  line-height: 1.3;\n}\n","// List Groups\n\n.list-group-item-variant(@state; @background; @color) {\n  .list-group-item-@{state} {\n    color: @color;\n    background-color: @background;\n\n    a&,\n    button& {\n      color: @color;\n\n      .list-group-item-heading {\n        color: inherit;\n      }\n\n      &:hover,\n      &:focus {\n        color: @color;\n        background-color: darken(@background, 5%);\n      }\n      &.active,\n      &.active:hover,\n      &.active:focus {\n        color: #fff;\n        background-color: @color;\n        border-color: @color;\n      }\n    }\n  }\n}\n","//\n// Panels\n// --------------------------------------------------\n\n\n// Base class\n.panel {\n  margin-bottom: @line-height-computed;\n  background-color: @panel-bg;\n  border: 1px solid transparent;\n  border-radius: @panel-border-radius;\n  .box-shadow(0 1px 1px rgba(0,0,0,.05));\n}\n\n// Panel contents\n.panel-body {\n  padding: @panel-body-padding;\n  &:extend(.clearfix all);\n}\n\n// Optional heading\n.panel-heading {\n  padding: @panel-heading-padding;\n  border-bottom: 1px solid transparent;\n  .border-top-radius((@panel-border-radius - 1));\n\n  > .dropdown .dropdown-toggle {\n    color: inherit;\n  }\n}\n\n// Within heading, strip any `h*` tag of its default margins for spacing.\n.panel-title {\n  margin-top: 0;\n  margin-bottom: 0;\n  font-size: ceil((@font-size-base * 1.125));\n  color: inherit;\n\n  > a,\n  > small,\n  > .small,\n  > small > a,\n  > .small > a {\n    color: inherit;\n  }\n}\n\n// Optional footer (stays gray in every modifier class)\n.panel-footer {\n  padding: @panel-footer-padding;\n  background-color: @panel-footer-bg;\n  border-top: 1px solid @panel-inner-border;\n  .border-bottom-radius((@panel-border-radius - 1));\n}\n\n\n// List groups in panels\n//\n// By default, space out list group content from panel headings to account for\n// any kind of custom content between the two.\n\n.panel {\n  > .list-group,\n  > .panel-collapse > .list-group {\n    margin-bottom: 0;\n\n    .list-group-item {\n      border-width: 1px 0;\n      border-radius: 0;\n    }\n\n    // Add border top radius for first one\n    &:first-child {\n      .list-group-item:first-child {\n        border-top: 0;\n        .border-top-radius((@panel-border-radius - 1));\n      }\n    }\n\n    // Add border bottom radius for last one\n    &:last-child {\n      .list-group-item:last-child {\n        border-bottom: 0;\n        .border-bottom-radius((@panel-border-radius - 1));\n      }\n    }\n  }\n  > .panel-heading + .panel-collapse > .list-group {\n    .list-group-item:first-child {\n      .border-top-radius(0);\n    }\n  }\n}\n// Collapse space between when there's no additional content.\n.panel-heading + .list-group {\n  .list-group-item:first-child {\n    border-top-width: 0;\n  }\n}\n.list-group + .panel-footer {\n  border-top-width: 0;\n}\n\n// Tables in panels\n//\n// Place a non-bordered `.table` within a panel (not within a `.panel-body`) and\n// watch it go full width.\n\n.panel {\n  > .table,\n  > .table-responsive > .table,\n  > .panel-collapse > .table {\n    margin-bottom: 0;\n\n    caption {\n      padding-left: @panel-body-padding;\n      padding-right: @panel-body-padding;\n    }\n  }\n  // Add border top radius for first one\n  > .table:first-child,\n  > .table-responsive:first-child > .table:first-child {\n    .border-top-radius((@panel-border-radius - 1));\n\n    > thead:first-child,\n    > tbody:first-child {\n      > tr:first-child {\n        border-top-left-radius: (@panel-border-radius - 1);\n        border-top-right-radius: (@panel-border-radius - 1);\n\n        td:first-child,\n        th:first-child {\n          border-top-left-radius: (@panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-top-right-radius: (@panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  // Add border bottom radius for last one\n  > .table:last-child,\n  > .table-responsive:last-child > .table:last-child {\n    .border-bottom-radius((@panel-border-radius - 1));\n\n    > tbody:last-child,\n    > tfoot:last-child {\n      > tr:last-child {\n        border-bottom-left-radius: (@panel-border-radius - 1);\n        border-bottom-right-radius: (@panel-border-radius - 1);\n\n        td:first-child,\n        th:first-child {\n          border-bottom-left-radius: (@panel-border-radius - 1);\n        }\n        td:last-child,\n        th:last-child {\n          border-bottom-right-radius: (@panel-border-radius - 1);\n        }\n      }\n    }\n  }\n  > .panel-body + .table,\n  > .panel-body + .table-responsive,\n  > .table + .panel-body,\n  > .table-responsive + .panel-body {\n    border-top: 1px solid @table-border-color;\n  }\n  > .table > tbody:first-child > tr:first-child th,\n  > .table > tbody:first-child > tr:first-child td {\n    border-top: 0;\n  }\n  > .table-bordered,\n  > .table-responsive > .table-bordered {\n    border: 0;\n    > thead,\n    > tbody,\n    > tfoot {\n      > tr {\n        > th:first-child,\n        > td:first-child {\n          border-left: 0;\n        }\n        > th:last-child,\n        > td:last-child {\n          border-right: 0;\n        }\n      }\n    }\n    > thead,\n    > tbody {\n      > tr:first-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n    > tbody,\n    > tfoot {\n      > tr:last-child {\n        > td,\n        > th {\n          border-bottom: 0;\n        }\n      }\n    }\n  }\n  > .table-responsive {\n    border: 0;\n    margin-bottom: 0;\n  }\n}\n\n\n// Collapsible panels (aka, accordion)\n//\n// Wrap a series of panels in `.panel-group` to turn them into an accordion with\n// the help of our collapse JavaScript plugin.\n\n.panel-group {\n  margin-bottom: @line-height-computed;\n\n  // Tighten up margin so it's only between panels\n  .panel {\n    margin-bottom: 0;\n    border-radius: @panel-border-radius;\n\n    + .panel {\n      margin-top: 5px;\n    }\n  }\n\n  .panel-heading {\n    border-bottom: 0;\n\n    + .panel-collapse > .panel-body,\n    + .panel-collapse > .list-group {\n      border-top: 1px solid @panel-inner-border;\n    }\n  }\n\n  .panel-footer {\n    border-top: 0;\n    + .panel-collapse .panel-body {\n      border-bottom: 1px solid @panel-inner-border;\n    }\n  }\n}\n\n\n// Contextual variations\n.panel-default {\n  .panel-variant(@panel-default-border; @panel-default-text; @panel-default-heading-bg; @panel-default-border);\n}\n.panel-primary {\n  .panel-variant(@panel-primary-border; @panel-primary-text; @panel-primary-heading-bg; @panel-primary-border);\n}\n.panel-success {\n  .panel-variant(@panel-success-border; @panel-success-text; @panel-success-heading-bg; @panel-success-border);\n}\n.panel-info {\n  .panel-variant(@panel-info-border; @panel-info-text; @panel-info-heading-bg; @panel-info-border);\n}\n.panel-warning {\n  .panel-variant(@panel-warning-border; @panel-warning-text; @panel-warning-heading-bg; @panel-warning-border);\n}\n.panel-danger {\n  .panel-variant(@panel-danger-border; @panel-danger-text; @panel-danger-heading-bg; @panel-danger-border);\n}\n","// Panels\n\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n  border-color: @border;\n\n  & > .panel-heading {\n    color: @heading-text-color;\n    background-color: @heading-bg-color;\n    border-color: @heading-border;\n\n    + .panel-collapse > .panel-body {\n      border-top-color: @border;\n    }\n    .badge {\n      color: @heading-bg-color;\n      background-color: @heading-text-color;\n    }\n  }\n  & > .panel-footer {\n    + .panel-collapse > .panel-body {\n      border-bottom-color: @border;\n    }\n  }\n}\n","// Embeds responsive\n//\n// Credit: Nicolas Gallagher and SUIT CSS.\n\n.embed-responsive {\n  position: relative;\n  display: block;\n  height: 0;\n  padding: 0;\n  overflow: hidden;\n\n  .embed-responsive-item,\n  iframe,\n  embed,\n  object,\n  video {\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    height: 100%;\n    width: 100%;\n    border: 0;\n  }\n}\n\n// Modifier class for 16:9 aspect ratio\n.embed-responsive-16by9 {\n  padding-bottom: 56.25%;\n}\n\n// Modifier class for 4:3 aspect ratio\n.embed-responsive-4by3 {\n  padding-bottom: 75%;\n}\n","//\n// Wells\n// --------------------------------------------------\n\n\n// Base class\n.well {\n  min-height: 20px;\n  padding: 19px;\n  margin-bottom: 20px;\n  background-color: @well-bg;\n  border: 1px solid @well-border;\n  border-radius: @border-radius-base;\n  .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));\n  blockquote {\n    border-color: #ddd;\n    border-color: rgba(0,0,0,.15);\n  }\n}\n\n// Sizes\n.well-lg {\n  padding: 24px;\n  border-radius: @border-radius-large;\n}\n.well-sm {\n  padding: 9px;\n  border-radius: @border-radius-small;\n}\n","//\n// Close icons\n// --------------------------------------------------\n\n\n.close {\n  float: right;\n  font-size: (@font-size-base * 1.5);\n  font-weight: @close-font-weight;\n  line-height: 1;\n  color: @close-color;\n  text-shadow: @close-text-shadow;\n  .opacity(.2);\n\n  &:hover,\n  &:focus {\n    color: @close-color;\n    text-decoration: none;\n    cursor: pointer;\n    .opacity(.5);\n  }\n\n  // Additional properties for button version\n  // iOS requires the button element instead of an anchor tag.\n  // If you want the anchor version, it requires `href=\"#\"`.\n  // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile\n  button& {\n    padding: 0;\n    cursor: pointer;\n    background: transparent;\n    border: 0;\n    -webkit-appearance: none;\n  }\n}\n","//\n// Modals\n// --------------------------------------------------\n\n// .modal-open      - body class for killing the scroll\n// .modal           - container to scroll within\n// .modal-dialog    - positioning shell for the actual modal\n// .modal-content   - actual modal w/ bg and corners and shit\n\n// Kill the scroll on the body\n.modal-open {\n  overflow: hidden;\n}\n\n// Container that the modal scrolls within\n.modal {\n  display: none;\n  overflow: hidden;\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: @zindex-modal;\n  -webkit-overflow-scrolling: touch;\n\n  // Prevent Chrome on Windows from adding a focus outline. For details, see\n  // https://github.com/twbs/bootstrap/pull/10951.\n  outline: 0;\n\n  // When fading in the modal, animate it to slide down\n  &.fade .modal-dialog {\n    .translate(0, -25%);\n    .transition-transform(~\"0.3s ease-out\");\n  }\n  &.in .modal-dialog { .translate(0, 0) }\n}\n.modal-open .modal {\n  overflow-x: hidden;\n  overflow-y: auto;\n}\n\n// Shell div to position the modal with bottom padding\n.modal-dialog {\n  position: relative;\n  width: auto;\n  margin: 10px;\n}\n\n// Actual modal\n.modal-content {\n  position: relative;\n  background-color: @modal-content-bg;\n  border: 1px solid @modal-content-fallback-border-color; //old browsers fallback (ie8 etc)\n  border: 1px solid @modal-content-border-color;\n  border-radius: @border-radius-large;\n  .box-shadow(0 3px 9px rgba(0,0,0,.5));\n  background-clip: padding-box;\n  // Remove focus outline from opened modal\n  outline: 0;\n}\n\n// Modal background\n.modal-backdrop {\n  position: fixed;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: @zindex-modal-background;\n  background-color: @modal-backdrop-bg;\n  // Fade for backdrop\n  &.fade { .opacity(0); }\n  &.in { .opacity(@modal-backdrop-opacity); }\n}\n\n// Modal header\n// Top section of the modal w/ title and dismiss\n.modal-header {\n  padding: @modal-title-padding;\n  border-bottom: 1px solid @modal-header-border-color;\n  &:extend(.clearfix all);\n}\n// Close icon\n.modal-header .close {\n  margin-top: -2px;\n}\n\n// Title text within header\n.modal-title {\n  margin: 0;\n  line-height: @modal-title-line-height;\n}\n\n// Modal body\n// Where all modal content resides (sibling of .modal-header and .modal-footer)\n.modal-body {\n  position: relative;\n  padding: @modal-inner-padding;\n}\n\n// Footer (for actions)\n.modal-footer {\n  padding: @modal-inner-padding;\n  text-align: right; // right align buttons\n  border-top: 1px solid @modal-footer-border-color;\n  &:extend(.clearfix all); // clear it in case folks use .pull-* classes on buttons\n\n  // Properly space out buttons\n  .btn + .btn {\n    margin-left: 5px;\n    margin-bottom: 0; // account for input[type=\"submit\"] which gets the bottom margin like all other inputs\n  }\n  // but override that for button groups\n  .btn-group .btn + .btn {\n    margin-left: -1px;\n  }\n  // and override it for block buttons as well\n  .btn-block + .btn-block {\n    margin-left: 0;\n  }\n}\n\n// Measure scrollbar width for padding body during modal show/hide\n.modal-scrollbar-measure {\n  position: absolute;\n  top: -9999px;\n  width: 50px;\n  height: 50px;\n  overflow: scroll;\n}\n\n// Scale up the modal\n@media (min-width: @screen-sm-min) {\n  // Automatically set modal's width for larger viewports\n  .modal-dialog {\n    width: @modal-md;\n    margin: 30px auto;\n  }\n  .modal-content {\n    .box-shadow(0 5px 15px rgba(0,0,0,.5));\n  }\n\n  // Modal sizes\n  .modal-sm { width: @modal-sm; }\n}\n\n@media (min-width: @screen-md-min) {\n  .modal-lg { width: @modal-lg; }\n}\n","//\n// Tooltips\n// --------------------------------------------------\n\n\n// Base class\n.tooltip {\n  position: absolute;\n  z-index: @zindex-tooltip;\n  display: block;\n  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  .reset-text();\n  font-size: @font-size-small;\n\n  .opacity(0);\n\n  &.in     { .opacity(@tooltip-opacity); }\n  &.top    { margin-top:  -3px; padding: @tooltip-arrow-width 0; }\n  &.right  { margin-left:  3px; padding: 0 @tooltip-arrow-width; }\n  &.bottom { margin-top:   3px; padding: @tooltip-arrow-width 0; }\n  &.left   { margin-left: -3px; padding: 0 @tooltip-arrow-width; }\n}\n\n// Wrapper for the tooltip content\n.tooltip-inner {\n  max-width: @tooltip-max-width;\n  padding: 3px 8px;\n  color: @tooltip-color;\n  text-align: center;\n  background-color: @tooltip-bg;\n  border-radius: @border-radius-base;\n}\n\n// Arrows\n.tooltip-arrow {\n  position: absolute;\n  width: 0;\n  height: 0;\n  border-color: transparent;\n  border-style: solid;\n}\n// Note: Deprecated .top-left, .top-right, .bottom-left, and .bottom-right as of v3.3.1\n.tooltip {\n  &.top .tooltip-arrow {\n    bottom: 0;\n    left: 50%;\n    margin-left: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.top-left .tooltip-arrow {\n    bottom: 0;\n    right: @tooltip-arrow-width;\n    margin-bottom: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.top-right .tooltip-arrow {\n    bottom: 0;\n    left: @tooltip-arrow-width;\n    margin-bottom: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-top-color: @tooltip-arrow-color;\n  }\n  &.right .tooltip-arrow {\n    top: 50%;\n    left: 0;\n    margin-top: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width @tooltip-arrow-width @tooltip-arrow-width 0;\n    border-right-color: @tooltip-arrow-color;\n  }\n  &.left .tooltip-arrow {\n    top: 50%;\n    right: 0;\n    margin-top: -@tooltip-arrow-width;\n    border-width: @tooltip-arrow-width 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-left-color: @tooltip-arrow-color;\n  }\n  &.bottom .tooltip-arrow {\n    top: 0;\n    left: 50%;\n    margin-left: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n  &.bottom-left .tooltip-arrow {\n    top: 0;\n    right: @tooltip-arrow-width;\n    margin-top: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n  &.bottom-right .tooltip-arrow {\n    top: 0;\n    left: @tooltip-arrow-width;\n    margin-top: -@tooltip-arrow-width;\n    border-width: 0 @tooltip-arrow-width @tooltip-arrow-width;\n    border-bottom-color: @tooltip-arrow-color;\n  }\n}\n",".reset-text() {\n  font-family: @font-family-base;\n  // We deliberately do NOT reset font-size.\n  font-style: normal;\n  font-weight: normal;\n  letter-spacing: normal;\n  line-break: auto;\n  line-height: @line-height-base;\n  text-align: left; // Fallback for where `start` is not supported\n  text-align: start;\n  text-decoration: none;\n  text-shadow: none;\n  text-transform: none;\n  white-space: normal;\n  word-break: normal;\n  word-spacing: normal;\n  word-wrap: normal;\n}\n","//\n// Popovers\n// --------------------------------------------------\n\n\n.popover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: @zindex-popover;\n  display: none;\n  max-width: @popover-max-width;\n  padding: 1px;\n  // Our parent element can be arbitrary since popovers are by default inserted as a sibling of their target element.\n  // So reset our font and text properties to avoid inheriting weird values.\n  .reset-text();\n  font-size: @font-size-base;\n\n  background-color: @popover-bg;\n  background-clip: padding-box;\n  border: 1px solid @popover-fallback-border-color;\n  border: 1px solid @popover-border-color;\n  border-radius: @border-radius-large;\n  .box-shadow(0 5px 10px rgba(0,0,0,.2));\n\n  // Offset the popover to account for the popover arrow\n  &.top     { margin-top: -@popover-arrow-width; }\n  &.right   { margin-left: @popover-arrow-width; }\n  &.bottom  { margin-top: @popover-arrow-width; }\n  &.left    { margin-left: -@popover-arrow-width; }\n}\n\n.popover-title {\n  margin: 0; // reset heading margin\n  padding: 8px 14px;\n  font-size: @font-size-base;\n  background-color: @popover-title-bg;\n  border-bottom: 1px solid darken(@popover-title-bg, 5%);\n  border-radius: (@border-radius-large - 1) (@border-radius-large - 1) 0 0;\n}\n\n.popover-content {\n  padding: 9px 14px;\n}\n\n// Arrows\n//\n// .arrow is outer, .arrow:after is inner\n\n.popover > .arrow {\n  &,\n  &:after {\n    position: absolute;\n    display: block;\n    width: 0;\n    height: 0;\n    border-color: transparent;\n    border-style: solid;\n  }\n}\n.popover > .arrow {\n  border-width: @popover-arrow-outer-width;\n}\n.popover > .arrow:after {\n  border-width: @popover-arrow-width;\n  content: \"\";\n}\n\n.popover {\n  &.top > .arrow {\n    left: 50%;\n    margin-left: -@popover-arrow-outer-width;\n    border-bottom-width: 0;\n    border-top-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-top-color: @popover-arrow-outer-color;\n    bottom: -@popover-arrow-outer-width;\n    &:after {\n      content: \" \";\n      bottom: 1px;\n      margin-left: -@popover-arrow-width;\n      border-bottom-width: 0;\n      border-top-color: @popover-arrow-color;\n    }\n  }\n  &.right > .arrow {\n    top: 50%;\n    left: -@popover-arrow-outer-width;\n    margin-top: -@popover-arrow-outer-width;\n    border-left-width: 0;\n    border-right-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-right-color: @popover-arrow-outer-color;\n    &:after {\n      content: \" \";\n      left: 1px;\n      bottom: -@popover-arrow-width;\n      border-left-width: 0;\n      border-right-color: @popover-arrow-color;\n    }\n  }\n  &.bottom > .arrow {\n    left: 50%;\n    margin-left: -@popover-arrow-outer-width;\n    border-top-width: 0;\n    border-bottom-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-bottom-color: @popover-arrow-outer-color;\n    top: -@popover-arrow-outer-width;\n    &:after {\n      content: \" \";\n      top: 1px;\n      margin-left: -@popover-arrow-width;\n      border-top-width: 0;\n      border-bottom-color: @popover-arrow-color;\n    }\n  }\n\n  &.left > .arrow {\n    top: 50%;\n    right: -@popover-arrow-outer-width;\n    margin-top: -@popover-arrow-outer-width;\n    border-right-width: 0;\n    border-left-color: @popover-arrow-outer-fallback-color; // IE8 fallback\n    border-left-color: @popover-arrow-outer-color;\n    &:after {\n      content: \" \";\n      right: 1px;\n      border-right-width: 0;\n      border-left-color: @popover-arrow-color;\n      bottom: -@popover-arrow-width;\n    }\n  }\n}\n","//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n  position: relative;\n}\n\n.carousel-inner {\n  position: relative;\n  overflow: hidden;\n  width: 100%;\n\n  > .item {\n    display: none;\n    position: relative;\n    .transition(.6s ease-in-out left);\n\n    // Account for jankitude on images\n    > img,\n    > a > img {\n      &:extend(.img-responsive);\n      line-height: 1;\n    }\n\n    // WebKit CSS3 transforms for supported devices\n    @media all and (transform-3d), (-webkit-transform-3d) {\n      .transition-transform(~'0.6s ease-in-out');\n      .backface-visibility(~'hidden');\n      .perspective(1000px);\n\n      &.next,\n      &.active.right {\n        .translate3d(100%, 0, 0);\n        left: 0;\n      }\n      &.prev,\n      &.active.left {\n        .translate3d(-100%, 0, 0);\n        left: 0;\n      }\n      &.next.left,\n      &.prev.right,\n      &.active {\n        .translate3d(0, 0, 0);\n        left: 0;\n      }\n    }\n  }\n\n  > .active,\n  > .next,\n  > .prev {\n    display: block;\n  }\n\n  > .active {\n    left: 0;\n  }\n\n  > .next,\n  > .prev {\n    position: absolute;\n    top: 0;\n    width: 100%;\n  }\n\n  > .next {\n    left: 100%;\n  }\n  > .prev {\n    left: -100%;\n  }\n  > .next.left,\n  > .prev.right {\n    left: 0;\n  }\n\n  > .active.left {\n    left: -100%;\n  }\n  > .active.right {\n    left: 100%;\n  }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  width: @carousel-control-width;\n  .opacity(@carousel-control-opacity);\n  font-size: @carousel-control-font-size;\n  color: @carousel-control-color;\n  text-align: center;\n  text-shadow: @carousel-text-shadow;\n  background-color: rgba(0, 0, 0, 0); // Fix IE9 click-thru bug\n  // We can't have this transition here because WebKit cancels the carousel\n  // animation if you trip this while in the middle of another animation.\n\n  // Set gradients for backgrounds\n  &.left {\n    #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));\n  }\n  &.right {\n    left: auto;\n    right: 0;\n    #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));\n  }\n\n  // Hover/focus state\n  &:hover,\n  &:focus {\n    outline: 0;\n    color: @carousel-control-color;\n    text-decoration: none;\n    .opacity(.9);\n  }\n\n  // Toggles\n  .icon-prev,\n  .icon-next,\n  .glyphicon-chevron-left,\n  .glyphicon-chevron-right {\n    position: absolute;\n    top: 50%;\n    margin-top: -10px;\n    z-index: 5;\n    display: inline-block;\n  }\n  .icon-prev,\n  .glyphicon-chevron-left {\n    left: 50%;\n    margin-left: -10px;\n  }\n  .icon-next,\n  .glyphicon-chevron-right {\n    right: 50%;\n    margin-right: -10px;\n  }\n  .icon-prev,\n  .icon-next {\n    width:  20px;\n    height: 20px;\n    line-height: 1;\n    font-family: serif;\n  }\n\n\n  .icon-prev {\n    &:before {\n      content: '\\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n    }\n  }\n  .icon-next {\n    &:before {\n      content: '\\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n    }\n  }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  margin-left: -30%;\n  padding-left: 0;\n  list-style: none;\n  text-align: center;\n\n  li {\n    display: inline-block;\n    width:  10px;\n    height: 10px;\n    margin: 1px;\n    text-indent: -999px;\n    border: 1px solid @carousel-indicator-border-color;\n    border-radius: 10px;\n    cursor: pointer;\n\n    // IE8-9 hack for event handling\n    //\n    // Internet Explorer 8-9 does not support clicks on elements without a set\n    // `background-color`. We cannot use `filter` since that's not viewed as a\n    // background color by the browser. Thus, a hack is needed.\n    // See https://developer.mozilla.org/en-US/docs/Web/Events/click#Internet_Explorer\n    //\n    // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n    // set alpha transparency for the best results possible.\n    background-color: #000 \\9; // IE8\n    background-color: rgba(0,0,0,0); // IE9\n  }\n  .active {\n    margin: 0;\n    width:  12px;\n    height: 12px;\n    background-color: @carousel-indicator-active-bg;\n  }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n  position: absolute;\n  left: 15%;\n  right: 15%;\n  bottom: 20px;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: @carousel-caption-color;\n  text-align: center;\n  text-shadow: @carousel-text-shadow;\n  & .btn {\n    text-shadow: none; // No shadow for button elements in carousel-caption\n  }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n  // Scale up the controls a smidge\n  .carousel-control {\n    .glyphicon-chevron-left,\n    .glyphicon-chevron-right,\n    .icon-prev,\n    .icon-next {\n      width: (@carousel-control-font-size * 1.5);\n      height: (@carousel-control-font-size * 1.5);\n      margin-top: (@carousel-control-font-size / -2);\n      font-size: (@carousel-control-font-size * 1.5);\n    }\n    .glyphicon-chevron-left,\n    .icon-prev {\n      margin-left: (@carousel-control-font-size / -2);\n    }\n    .glyphicon-chevron-right,\n    .icon-next {\n      margin-right: (@carousel-control-font-size / -2);\n    }\n  }\n\n  // Show and left align the captions\n  .carousel-caption {\n    left: 20%;\n    right: 20%;\n    padding-bottom: 30px;\n  }\n\n  // Move up the indicators\n  .carousel-indicators {\n    bottom: 20px;\n  }\n}\n","// Clearfix\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n//    contenteditable attribute is included anywhere else in the document.\n//    Otherwise it causes space to appear at the top and bottom of elements\n//    that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n//    `:before` to contain the top-margins of child elements.\n//\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n\n.clearfix() {\n  &:before,\n  &:after {\n    content: \" \"; // 1\n    display: table; // 2\n  }\n  &:after {\n    clear: both;\n  }\n}\n","// Center-align a block level element\n\n.center-block() {\n  display: block;\n  margin-left: auto;\n  margin-right: auto;\n}\n","// CSS image replacement\n//\n// Heads up! v3 launched with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (has been removed in v4)\n.hide-text() {\n  font: ~\"0/0\" a;\n  color: transparent;\n  text-shadow: none;\n  background-color: transparent;\n  border: 0;\n}\n\n// New mixin to use as of v3.0.1\n.text-hide() {\n  .hide-text();\n}\n","//\n// Responsive: Utility classes\n// --------------------------------------------------\n\n\n// IE10 in Windows (Phone) 8\n//\n// Support for responsive views via media queries is kind of borked in IE10, for\n// Surface/desktop in split view and for Windows Phone 8. This particular fix\n// must be accompanied by a snippet of JavaScript to sniff the user agent and\n// apply some conditional CSS to *only* the Surface/desktop Windows 8. Look at\n// our Getting Started page for more information on this bug.\n//\n// For more information, see the following:\n//\n// Issue: https://github.com/twbs/bootstrap/issues/10497\n// Docs: http://getbootstrap.com/getting-started/#support-ie10-width\n// Source: http://timkadlec.com/2013/01/windows-phone-8-and-device-width/\n// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/\n\n@-ms-viewport {\n  width: device-width;\n}\n\n\n// Visibility utilities\n// Note: Deprecated .visible-xs, .visible-sm, .visible-md, and .visible-lg as of v3.2.0\n.visible-xs,\n.visible-sm,\n.visible-md,\n.visible-lg {\n  .responsive-invisibility();\n}\n\n.visible-xs-block,\n.visible-xs-inline,\n.visible-xs-inline-block,\n.visible-sm-block,\n.visible-sm-inline,\n.visible-sm-inline-block,\n.visible-md-block,\n.visible-md-inline,\n.visible-md-inline-block,\n.visible-lg-block,\n.visible-lg-inline,\n.visible-lg-inline-block {\n  display: none !important;\n}\n\n.visible-xs {\n  @media (max-width: @screen-xs-max) {\n    .responsive-visibility();\n  }\n}\n.visible-xs-block {\n  @media (max-width: @screen-xs-max) {\n    display: block !important;\n  }\n}\n.visible-xs-inline {\n  @media (max-width: @screen-xs-max) {\n    display: inline !important;\n  }\n}\n.visible-xs-inline-block {\n  @media (max-width: @screen-xs-max) {\n    display: inline-block !important;\n  }\n}\n\n.visible-sm {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    .responsive-visibility();\n  }\n}\n.visible-sm-block {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    display: block !important;\n  }\n}\n.visible-sm-inline {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    display: inline !important;\n  }\n}\n.visible-sm-inline-block {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    display: inline-block !important;\n  }\n}\n\n.visible-md {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    .responsive-visibility();\n  }\n}\n.visible-md-block {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    display: block !important;\n  }\n}\n.visible-md-inline {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    display: inline !important;\n  }\n}\n.visible-md-inline-block {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    display: inline-block !important;\n  }\n}\n\n.visible-lg {\n  @media (min-width: @screen-lg-min) {\n    .responsive-visibility();\n  }\n}\n.visible-lg-block {\n  @media (min-width: @screen-lg-min) {\n    display: block !important;\n  }\n}\n.visible-lg-inline {\n  @media (min-width: @screen-lg-min) {\n    display: inline !important;\n  }\n}\n.visible-lg-inline-block {\n  @media (min-width: @screen-lg-min) {\n    display: inline-block !important;\n  }\n}\n\n.hidden-xs {\n  @media (max-width: @screen-xs-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-sm {\n  @media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-md {\n  @media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n    .responsive-invisibility();\n  }\n}\n.hidden-lg {\n  @media (min-width: @screen-lg-min) {\n    .responsive-invisibility();\n  }\n}\n\n\n// Print utilities\n//\n// Media queries are placed on the inside to be mixin-friendly.\n\n// Note: Deprecated .visible-print as of v3.2.0\n.visible-print {\n  .responsive-invisibility();\n\n  @media print {\n    .responsive-visibility();\n  }\n}\n.visible-print-block {\n  display: none !important;\n\n  @media print {\n    display: block !important;\n  }\n}\n.visible-print-inline {\n  display: none !important;\n\n  @media print {\n    display: inline !important;\n  }\n}\n.visible-print-inline-block {\n  display: none !important;\n\n  @media print {\n    display: inline-block !important;\n  }\n}\n\n.hidden-print {\n  @media print {\n    .responsive-invisibility();\n  }\n}\n","// Responsive utilities\n\n//\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n  display: block !important;\n  table&  { display: table !important; }\n  tr&     { display: table-row !important; }\n  th&,\n  td&     { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n  display: none !important;\n}\n"]}
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/css/bootstrap.min.css b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/css/bootstrap.min.css
new file mode 100644
index 0000000..ed3905e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/css/bootstrap.min.css
@@ -0,0 +1,6 @@
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
+/*# sourceMappingURL=bootstrap.min.css.map */
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot
new file mode 100644
index 0000000..b93a495
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg
new file mode 100644
index 0000000..94fb549
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,288 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg xmlns="http://www.w3.org/2000/svg">
+<metadata></metadata>
+<defs>
+<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
+<font-face units-per-em="1200" ascent="960" descent="-240" />
+<missing-glyph horiz-adv-x="500" />
+<glyph horiz-adv-x="0" />
+<glyph horiz-adv-x="400" />
+<glyph unicode=" " />
+<glyph unicode="*" d="M600 1100q15 0 34 -1.5t30 -3.5l11 -1q10 -2 17.5 -10.5t7.5 -18.5v-224l158 158q7 7 18 8t19 -6l106 -106q7 -8 6 -19t-8 -18l-158 -158h224q10 0 18.5 -7.5t10.5 -17.5q6 -41 6 -75q0 -15 -1.5 -34t-3.5 -30l-1 -11q-2 -10 -10.5 -17.5t-18.5 -7.5h-224l158 -158 q7 -7 8 -18t-6 -19l-106 -106q-8 -7 -19 -6t-18 8l-158 158v-224q0 -10 -7.5 -18.5t-17.5 -10.5q-41 -6 -75 -6q-15 0 -34 1.5t-30 3.5l-11 1q-10 2 -17.5 10.5t-7.5 18.5v224l-158 -158q-7 -7 -18 -8t-19 6l-106 106q-7 8 -6 19t8 18l158 158h-224q-10 0 -18.5 7.5 t-10.5 17.5q-6 41 -6 75q0 15 1.5 34t3.5 30l1 11q2 10 10.5 17.5t18.5 7.5h224l-158 158q-7 7 -8 18t6 19l106 106q8 7 19 6t18 -8l158 -158v224q0 10 7.5 18.5t17.5 10.5q41 6 75 6z" />
+<glyph unicode="+" d="M450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-350h350q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-350v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v350h-350q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5 h350v350q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xa0;" />
+<glyph unicode="&#xa5;" d="M825 1100h250q10 0 12.5 -5t-5.5 -13l-364 -364q-6 -6 -11 -18h268q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-100h275q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-125v-174q0 -11 -7.5 -18.5t-18.5 -7.5h-148q-11 0 -18.5 7.5t-7.5 18.5v174 h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h125v100h-275q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h118q-5 12 -11 18l-364 364q-8 8 -5.5 13t12.5 5h250q25 0 43 -18l164 -164q8 -8 18 -8t18 8l164 164q18 18 43 18z" />
+<glyph unicode="&#x2000;" horiz-adv-x="650" />
+<glyph unicode="&#x2001;" horiz-adv-x="1300" />
+<glyph unicode="&#x2002;" horiz-adv-x="650" />
+<glyph unicode="&#x2003;" horiz-adv-x="1300" />
+<glyph unicode="&#x2004;" horiz-adv-x="433" />
+<glyph unicode="&#x2005;" horiz-adv-x="325" />
+<glyph unicode="&#x2006;" horiz-adv-x="216" />
+<glyph unicode="&#x2007;" horiz-adv-x="216" />
+<glyph unicode="&#x2008;" horiz-adv-x="162" />
+<glyph unicode="&#x2009;" horiz-adv-x="260" />
+<glyph unicode="&#x200a;" horiz-adv-x="72" />
+<glyph unicode="&#x202f;" horiz-adv-x="260" />
+<glyph unicode="&#x205f;" horiz-adv-x="325" />
+<glyph unicode="&#x20ac;" d="M744 1198q242 0 354 -189q60 -104 66 -209h-181q0 45 -17.5 82.5t-43.5 61.5t-58 40.5t-60.5 24t-51.5 7.5q-19 0 -40.5 -5.5t-49.5 -20.5t-53 -38t-49 -62.5t-39 -89.5h379l-100 -100h-300q-6 -50 -6 -100h406l-100 -100h-300q9 -74 33 -132t52.5 -91t61.5 -54.5t59 -29 t47 -7.5q22 0 50.5 7.5t60.5 24.5t58 41t43.5 61t17.5 80h174q-30 -171 -128 -278q-107 -117 -274 -117q-206 0 -324 158q-36 48 -69 133t-45 204h-217l100 100h112q1 47 6 100h-218l100 100h134q20 87 51 153.5t62 103.5q117 141 297 141z" />
+<glyph unicode="&#x20bd;" d="M428 1200h350q67 0 120 -13t86 -31t57 -49.5t35 -56.5t17 -64.5t6.5 -60.5t0.5 -57v-16.5v-16.5q0 -36 -0.5 -57t-6.5 -61t-17 -65t-35 -57t-57 -50.5t-86 -31.5t-120 -13h-178l-2 -100h288q10 0 13 -6t-3 -14l-120 -160q-6 -8 -18 -14t-22 -6h-138v-175q0 -11 -5.5 -18 t-15.5 -7h-149q-10 0 -17.5 7.5t-7.5 17.5v175h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v100h-267q-10 0 -13 6t3 14l120 160q6 8 18 14t22 6h117v475q0 10 7.5 17.5t17.5 7.5zM600 1000v-300h203q64 0 86.5 33t22.5 119q0 84 -22.5 116t-86.5 32h-203z" />
+<glyph unicode="&#x2212;" d="M250 700h800q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#x231b;" d="M1000 1200v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-50v-100q0 -91 -49.5 -165.5t-130.5 -109.5q81 -35 130.5 -109.5t49.5 -165.5v-150h50q21 0 35.5 -14.5t14.5 -35.5v-150h-800v150q0 21 14.5 35.5t35.5 14.5h50v150q0 91 49.5 165.5t130.5 109.5q-81 35 -130.5 109.5 t-49.5 165.5v100h-50q-21 0 -35.5 14.5t-14.5 35.5v150h800zM400 1000v-100q0 -60 32.5 -109.5t87.5 -73.5q28 -12 44 -37t16 -55t-16 -55t-44 -37q-55 -24 -87.5 -73.5t-32.5 -109.5v-150h400v150q0 60 -32.5 109.5t-87.5 73.5q-28 12 -44 37t-16 55t16 55t44 37 q55 24 87.5 73.5t32.5 109.5v100h-400z" />
+<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" />
+<glyph unicode="&#x2601;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -206.5q0 -121 -85 -207.5t-205 -86.5h-750q-79 0 -135.5 57t-56.5 137q0 69 42.5 122.5t108.5 67.5q-2 12 -2 37q0 153 108 260.5t260 107.5z" />
+<glyph unicode="&#x26fa;" d="M774 1193.5q16 -9.5 20.5 -27t-5.5 -33.5l-136 -187l467 -746h30q20 0 35 -18.5t15 -39.5v-42h-1200v42q0 21 15 39.5t35 18.5h30l468 746l-135 183q-10 16 -5.5 34t20.5 28t34 5.5t28 -20.5l111 -148l112 150q9 16 27 20.5t34 -5zM600 200h377l-182 112l-195 534v-646z " />
+<glyph unicode="&#x2709;" d="M25 1100h1150q10 0 12.5 -5t-5.5 -13l-564 -567q-8 -8 -18 -8t-18 8l-564 567q-8 8 -5.5 13t12.5 5zM18 882l264 -264q8 -8 8 -18t-8 -18l-264 -264q-8 -8 -13 -5.5t-5 12.5v550q0 10 5 12.5t13 -5.5zM918 618l264 264q8 8 13 5.5t5 -12.5v-550q0 -10 -5 -12.5t-13 5.5 l-264 264q-8 8 -8 18t8 18zM818 482l364 -364q8 -8 5.5 -13t-12.5 -5h-1150q-10 0 -12.5 5t5.5 13l364 364q8 8 18 8t18 -8l164 -164q8 -8 18 -8t18 8l164 164q8 8 18 8t18 -8z" />
+<glyph unicode="&#x270f;" d="M1011 1210q19 0 33 -13l153 -153q13 -14 13 -33t-13 -33l-99 -92l-214 214l95 96q13 14 32 14zM1013 800l-615 -614l-214 214l614 614zM317 96l-333 -112l110 335z" />
+<glyph unicode="&#xe001;" d="M700 650v-550h250q21 0 35.5 -14.5t14.5 -35.5v-50h-800v50q0 21 14.5 35.5t35.5 14.5h250v550l-500 550h1200z" />
+<glyph unicode="&#xe002;" d="M368 1017l645 163q39 15 63 0t24 -49v-831q0 -55 -41.5 -95.5t-111.5 -63.5q-79 -25 -147 -4.5t-86 75t25.5 111.5t122.5 82q72 24 138 8v521l-600 -155v-606q0 -42 -44 -90t-109 -69q-79 -26 -147 -5.5t-86 75.5t25.5 111.5t122.5 82.5q72 24 138 7v639q0 38 14.5 59 t53.5 34z" />
+<glyph unicode="&#xe003;" d="M500 1191q100 0 191 -39t156.5 -104.5t104.5 -156.5t39 -191l-1 -2l1 -5q0 -141 -78 -262l275 -274q23 -26 22.5 -44.5t-22.5 -42.5l-59 -58q-26 -20 -46.5 -20t-39.5 20l-275 274q-119 -77 -261 -77l-5 1l-2 -1q-100 0 -191 39t-156.5 104.5t-104.5 156.5t-39 191 t39 191t104.5 156.5t156.5 104.5t191 39zM500 1022q-88 0 -162 -43t-117 -117t-43 -162t43 -162t117 -117t162 -43t162 43t117 117t43 162t-43 162t-117 117t-162 43z" />
+<glyph unicode="&#xe005;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104z" />
+<glyph unicode="&#xe006;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429z" />
+<glyph unicode="&#xe007;" d="M407 800l131 353q7 19 17.5 19t17.5 -19l129 -353h421q21 0 24 -8.5t-14 -20.5l-342 -249l130 -401q7 -20 -0.5 -25.5t-24.5 6.5l-343 246l-342 -247q-17 -12 -24.5 -6.5t-0.5 25.5l130 400l-347 251q-17 12 -14 20.5t23 8.5h429zM477 700h-240l197 -142l-74 -226 l193 139l195 -140l-74 229l192 140h-234l-78 211z" />
+<glyph unicode="&#xe008;" d="M600 1200q124 0 212 -88t88 -212v-250q0 -46 -31 -98t-69 -52v-75q0 -10 6 -21.5t15 -17.5l358 -230q9 -5 15 -16.5t6 -21.5v-93q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v93q0 10 6 21.5t15 16.5l358 230q9 6 15 17.5t6 21.5v75q-38 0 -69 52 t-31 98v250q0 124 88 212t212 88z" />
+<glyph unicode="&#xe009;" d="M25 1100h1150q10 0 17.5 -7.5t7.5 -17.5v-1050q0 -10 -7.5 -17.5t-17.5 -7.5h-1150q-10 0 -17.5 7.5t-7.5 17.5v1050q0 10 7.5 17.5t17.5 7.5zM100 1000v-100h100v100h-100zM875 1000h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5t17.5 -7.5h550 q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM1000 1000v-100h100v100h-100zM100 800v-100h100v100h-100zM1000 800v-100h100v100h-100zM100 600v-100h100v100h-100zM1000 600v-100h100v100h-100zM875 500h-550q-10 0 -17.5 -7.5t-7.5 -17.5v-350q0 -10 7.5 -17.5 t17.5 -7.5h550q10 0 17.5 7.5t7.5 17.5v350q0 10 -7.5 17.5t-17.5 7.5zM100 400v-100h100v100h-100zM1000 400v-100h100v100h-100zM100 200v-100h100v100h-100zM1000 200v-100h100v100h-100z" />
+<glyph unicode="&#xe010;" d="M50 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM50 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM650 500h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe011;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM850 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 700h200q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM850 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5 t35.5 14.5z" />
+<glyph unicode="&#xe012;" d="M50 1100h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 1100h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200 q0 21 14.5 35.5t35.5 14.5zM50 700h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 700h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700 q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM50 300h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5zM450 300h700q21 0 35.5 -14.5t14.5 -35.5v-200 q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe013;" d="M465 477l571 571q8 8 18 8t17 -8l177 -177q8 -7 8 -17t-8 -18l-783 -784q-7 -8 -17.5 -8t-17.5 8l-384 384q-8 8 -8 18t8 17l177 177q7 8 17 8t18 -8l171 -171q7 -7 18 -7t18 7z" />
+<glyph unicode="&#xe014;" d="M904 1083l178 -179q8 -8 8 -18.5t-8 -17.5l-267 -268l267 -268q8 -7 8 -17.5t-8 -18.5l-178 -178q-8 -8 -18.5 -8t-17.5 8l-268 267l-268 -267q-7 -8 -17.5 -8t-18.5 8l-178 178q-8 8 -8 18.5t8 17.5l267 268l-267 268q-8 7 -8 17.5t8 18.5l178 178q8 8 18.5 8t17.5 -8 l268 -267l268 268q7 7 17.5 7t18.5 -7z" />
+<glyph unicode="&#xe015;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM425 900h150q10 0 17.5 -7.5t7.5 -17.5v-75h75q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5 t-17.5 -7.5h-75v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-75q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v75q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe016;" d="M507 1177q98 0 187.5 -38.5t154.5 -103.5t103.5 -154.5t38.5 -187.5q0 -141 -78 -262l300 -299q8 -8 8 -18.5t-8 -18.5l-109 -108q-7 -8 -17.5 -8t-18.5 8l-300 299q-119 -77 -261 -77q-98 0 -188 38.5t-154.5 103t-103 154.5t-38.5 188t38.5 187.5t103 154.5 t154.5 103.5t188 38.5zM506.5 1023q-89.5 0 -165.5 -44t-120 -120.5t-44 -166t44 -165.5t120 -120t165.5 -44t166 44t120.5 120t44 165.5t-44 166t-120.5 120.5t-166 44zM325 800h350q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-350q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe017;" d="M550 1200h100q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM800 975v166q167 -62 272 -209.5t105 -331.5q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5 t-184.5 123t-123 184.5t-45.5 224q0 184 105 331.5t272 209.5v-166q-103 -55 -165 -155t-62 -220q0 -116 57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5q0 120 -62 220t-165 155z" />
+<glyph unicode="&#xe018;" d="M1025 1200h150q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM725 800h150q10 0 17.5 -7.5t7.5 -17.5v-750q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v750 q0 10 7.5 17.5t17.5 7.5zM425 500h150q10 0 17.5 -7.5t7.5 -17.5v-450q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v450q0 10 7.5 17.5t17.5 7.5zM125 300h150q10 0 17.5 -7.5t7.5 -17.5v-250q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5 v250q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe019;" d="M600 1174q33 0 74 -5l38 -152l5 -1q49 -14 94 -39l5 -2l134 80q61 -48 104 -105l-80 -134l3 -5q25 -44 39 -93l1 -6l152 -38q5 -43 5 -73q0 -34 -5 -74l-152 -38l-1 -6q-15 -49 -39 -93l-3 -5l80 -134q-48 -61 -104 -105l-134 81l-5 -3q-44 -25 -94 -39l-5 -2l-38 -151 q-43 -5 -74 -5q-33 0 -74 5l-38 151l-5 2q-49 14 -94 39l-5 3l-134 -81q-60 48 -104 105l80 134l-3 5q-25 45 -38 93l-2 6l-151 38q-6 42 -6 74q0 33 6 73l151 38l2 6q13 48 38 93l3 5l-80 134q47 61 105 105l133 -80l5 2q45 25 94 39l5 1l38 152q43 5 74 5zM600 815 q-89 0 -152 -63t-63 -151.5t63 -151.5t152 -63t152 63t63 151.5t-63 151.5t-152 63z" />
+<glyph unicode="&#xe020;" d="M500 1300h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-75h-1100v75q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5zM500 1200v-100h300v100h-300zM1100 900v-800q0 -41 -29.5 -70.5t-70.5 -29.5h-700q-41 0 -70.5 29.5t-29.5 70.5 v800h900zM300 800v-700h100v700h-100zM500 800v-700h100v700h-100zM700 800v-700h100v700h-100zM900 800v-700h100v700h-100z" />
+<glyph unicode="&#xe021;" d="M18 618l620 608q8 7 18.5 7t17.5 -7l608 -608q8 -8 5.5 -13t-12.5 -5h-175v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v375h-300v-375q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v575h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="&#xe022;" d="M600 1200v-400q0 -41 29.5 -70.5t70.5 -29.5h300v-650q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5h450zM1000 800h-250q-21 0 -35.5 14.5t-14.5 35.5v250z" />
+<glyph unicode="&#xe023;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h50q10 0 17.5 -7.5t7.5 -17.5v-275h175q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe024;" d="M1300 0h-538l-41 400h-242l-41 -400h-538l431 1200h209l-21 -300h162l-20 300h208zM515 800l-27 -300h224l-27 300h-170z" />
+<glyph unicode="&#xe025;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-450h191q20 0 25.5 -11.5t-7.5 -27.5l-327 -400q-13 -16 -32 -16t-32 16l-327 400q-13 16 -7.5 27.5t25.5 11.5h191v450q0 21 14.5 35.5t35.5 14.5zM1125 400h50q10 0 17.5 -7.5t7.5 -17.5v-350q0 -10 -7.5 -17.5t-17.5 -7.5 h-1050q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h50q10 0 17.5 -7.5t7.5 -17.5v-175h900v175q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe026;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM525 900h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -275q-13 -16 -32 -16t-32 16l-223 275q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z " />
+<glyph unicode="&#xe027;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM632 914l223 -275q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5l223 275q13 16 32 16 t32 -16z" />
+<glyph unicode="&#xe028;" d="M225 1200h750q10 0 19.5 -7t12.5 -17l186 -652q7 -24 7 -49v-425q0 -12 -4 -27t-9 -17q-12 -6 -37 -6h-1100q-12 0 -27 4t-17 8q-6 13 -6 38l1 425q0 25 7 49l185 652q3 10 12.5 17t19.5 7zM878 1000h-556q-10 0 -19 -7t-11 -18l-87 -450q-2 -11 4 -18t16 -7h150 q10 0 19.5 -7t11.5 -17l38 -152q2 -10 11.5 -17t19.5 -7h250q10 0 19.5 7t11.5 17l38 152q2 10 11.5 17t19.5 7h150q10 0 16 7t4 18l-87 450q-2 11 -11 18t-19 7z" />
+<glyph unicode="&#xe029;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM540 820l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="&#xe030;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-362q0 -10 -7.5 -17.5t-17.5 -7.5h-362q-11 0 -13 5.5t5 12.5l133 133q-109 76 -238 76q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5h150q0 -117 -45.5 -224 t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117z" />
+<glyph unicode="&#xe031;" d="M947 1060l135 135q7 7 12.5 5t5.5 -13v-361q0 -11 -7.5 -18.5t-18.5 -7.5h-361q-11 0 -13 5.5t5 12.5l134 134q-110 75 -239 75q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5h-150q0 117 45.5 224t123 184.5t184.5 123t224 45.5q192 0 347 -117zM1027 600h150 q0 -117 -45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5q-192 0 -348 118l-134 -134q-7 -8 -12.5 -5.5t-5.5 12.5v360q0 11 7.5 18.5t18.5 7.5h360q10 0 12.5 -5.5t-5.5 -12.5l-133 -133q110 -76 240 -76q116 0 214.5 57t155.5 155.5t57 214.5z" />
+<glyph unicode="&#xe032;" d="M125 1200h1050q10 0 17.5 -7.5t7.5 -17.5v-1150q0 -10 -7.5 -17.5t-17.5 -7.5h-1050q-10 0 -17.5 7.5t-7.5 17.5v1150q0 10 7.5 17.5t17.5 7.5zM1075 1000h-850q-10 0 -17.5 -7.5t-7.5 -17.5v-850q0 -10 7.5 -17.5t17.5 -7.5h850q10 0 17.5 7.5t7.5 17.5v850 q0 10 -7.5 17.5t-17.5 7.5zM325 900h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 900h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 700h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 700h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 500h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 500h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5zM325 300h50q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM525 300h450q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-450q-10 0 -17.5 7.5t-7.5 17.5v50 q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe033;" d="M900 800v200q0 83 -58.5 141.5t-141.5 58.5h-300q-82 0 -141 -59t-59 -141v-200h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h900q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-100zM400 800v150q0 21 15 35.5t35 14.5h200 q20 0 35 -14.5t15 -35.5v-150h-300z" />
+<glyph unicode="&#xe034;" d="M125 1100h50q10 0 17.5 -7.5t7.5 -17.5v-1075h-100v1075q0 10 7.5 17.5t17.5 7.5zM1075 1052q4 0 9 -2q16 -6 16 -23v-421q0 -6 -3 -12q-33 -59 -66.5 -99t-65.5 -58t-56.5 -24.5t-52.5 -6.5q-26 0 -57.5 6.5t-52.5 13.5t-60 21q-41 15 -63 22.5t-57.5 15t-65.5 7.5 q-85 0 -160 -57q-7 -5 -15 -5q-6 0 -11 3q-14 7 -14 22v438q22 55 82 98.5t119 46.5q23 2 43 0.5t43 -7t32.5 -8.5t38 -13t32.5 -11q41 -14 63.5 -21t57 -14t63.5 -7q103 0 183 87q7 8 18 8z" />
+<glyph unicode="&#xe035;" d="M600 1175q116 0 227 -49.5t192.5 -131t131 -192.5t49.5 -227v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v300q0 127 -70.5 231.5t-184.5 161.5t-245 57t-245 -57t-184.5 -161.5t-70.5 -231.5v-300q0 -10 -7.5 -17.5t-17.5 -7.5h-50 q-10 0 -17.5 7.5t-7.5 17.5v300q0 116 49.5 227t131 192.5t192.5 131t227 49.5zM220 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460q0 8 6 14t14 6zM820 500h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14v460 q0 8 6 14t14 6z" />
+<glyph unicode="&#xe036;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM900 668l120 120q7 7 17 7t17 -7l34 -34q7 -7 7 -17t-7 -17l-120 -120l120 -120q7 -7 7 -17 t-7 -17l-34 -34q-7 -7 -17 -7t-17 7l-120 119l-120 -119q-7 -7 -17 -7t-17 7l-34 34q-7 7 -7 17t7 17l119 120l-119 120q-7 7 -7 17t7 17l34 34q7 8 17 8t17 -8z" />
+<glyph unicode="&#xe037;" d="M321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6 l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238q-6 8 -4.5 18t9.5 17l29 22q7 5 15 5z" />
+<glyph unicode="&#xe038;" d="M967 1004h3q11 -1 17 -10q135 -179 135 -396q0 -105 -34 -206.5t-98 -185.5q-7 -9 -17 -10h-3q-9 0 -16 6l-42 34q-8 6 -9 16t5 18q111 150 111 328q0 90 -29.5 176t-84.5 157q-6 9 -5 19t10 16l42 33q7 5 15 5zM321 814l258 172q9 6 15 2.5t6 -13.5v-750q0 -10 -6 -13.5 t-15 2.5l-258 172q-21 14 -46 14h-250q-10 0 -17.5 7.5t-7.5 17.5v350q0 10 7.5 17.5t17.5 7.5h250q25 0 46 14zM766 900h4q10 -1 16 -10q96 -129 96 -290q0 -154 -90 -281q-6 -9 -17 -10l-3 -1q-9 0 -16 6l-29 23q-7 7 -8.5 16.5t4.5 17.5q72 103 72 229q0 132 -78 238 q-6 8 -4.5 18.5t9.5 16.5l29 22q7 5 15 5z" />
+<glyph unicode="&#xe039;" d="M500 900h100v-100h-100v-100h-400v-100h-100v600h500v-300zM1200 700h-200v-100h200v-200h-300v300h-200v300h-100v200h600v-500zM100 1100v-300h300v300h-300zM800 1100v-300h300v300h-300zM300 900h-100v100h100v-100zM1000 900h-100v100h100v-100zM300 500h200v-500 h-500v500h200v100h100v-100zM800 300h200v-100h-100v-100h-200v100h-100v100h100v200h-200v100h300v-300zM100 400v-300h300v300h-300zM300 200h-100v100h100v-100zM1200 200h-100v100h100v-100zM700 0h-100v100h100v-100zM1200 0h-300v100h300v-100z" />
+<glyph unicode="&#xe040;" d="M100 200h-100v1000h100v-1000zM300 200h-100v1000h100v-1000zM700 200h-200v1000h200v-1000zM900 200h-100v1000h100v-1000zM1200 200h-200v1000h200v-1000zM400 0h-300v100h300v-100zM600 0h-100v91h100v-91zM800 0h-100v91h100v-91zM1100 0h-200v91h200v-91z" />
+<glyph unicode="&#xe041;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="&#xe042;" d="M500 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-682 682l1 475q0 10 7.5 17.5t17.5 7.5h474zM800 1200l682 -682q8 -8 8 -18t-8 -18l-464 -464q-8 -8 -18 -8t-18 8l-56 56l424 426l-700 700h150zM319.5 1024.5q-29.5 29.5 -71 29.5t-71 -29.5 t-29.5 -71.5t29.5 -71.5t71 -29.5t71 29.5t29.5 71.5t-29.5 71.5z" />
+<glyph unicode="&#xe043;" d="M300 1200h825q75 0 75 -75v-900q0 -25 -18 -43l-64 -64q-8 -8 -13 -5.5t-5 12.5v950q0 10 -7.5 17.5t-17.5 7.5h-700q-25 0 -43 -18l-64 -64q-8 -8 -5.5 -13t12.5 -5h700q10 0 17.5 -7.5t7.5 -17.5v-950q0 -10 -7.5 -17.5t-17.5 -7.5h-850q-10 0 -17.5 7.5t-7.5 17.5v975 q0 25 18 43l139 139q18 18 43 18z" />
+<glyph unicode="&#xe044;" d="M250 1200h800q21 0 35.5 -14.5t14.5 -35.5v-1150l-450 444l-450 -445v1151q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe045;" d="M822 1200h-444q-11 0 -19 -7.5t-9 -17.5l-78 -301q-7 -24 7 -45l57 -108q6 -9 17.5 -15t21.5 -6h450q10 0 21.5 6t17.5 15l62 108q14 21 7 45l-83 301q-1 10 -9 17.5t-19 7.5zM1175 800h-150q-10 0 -21 -6.5t-15 -15.5l-78 -156q-4 -9 -15 -15.5t-21 -6.5h-550 q-10 0 -21 6.5t-15 15.5l-78 156q-4 9 -15 15.5t-21 6.5h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-650q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h750q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5 t7.5 17.5v650q0 10 -7.5 17.5t-17.5 7.5zM850 200h-500q-10 0 -19.5 -7t-11.5 -17l-38 -152q-2 -10 3.5 -17t15.5 -7h600q10 0 15.5 7t3.5 17l-38 152q-2 10 -11.5 17t-19.5 7z" />
+<glyph unicode="&#xe046;" d="M500 1100h200q56 0 102.5 -20.5t72.5 -50t44 -59t25 -50.5l6 -20h150q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h150q2 8 6.5 21.5t24 48t45 61t72 48t102.5 21.5zM900 800v-100 h100v100h-100zM600 730q-95 0 -162.5 -67.5t-67.5 -162.5t67.5 -162.5t162.5 -67.5t162.5 67.5t67.5 162.5t-67.5 162.5t-162.5 67.5zM600 603q43 0 73 -30t30 -73t-30 -73t-73 -30t-73 30t-30 73t30 73t73 30z" />
+<glyph unicode="&#xe047;" d="M681 1199l385 -998q20 -50 60 -92q18 -19 36.5 -29.5t27.5 -11.5l10 -2v-66h-417v66q53 0 75 43.5t5 88.5l-82 222h-391q-58 -145 -92 -234q-11 -34 -6.5 -57t25.5 -37t46 -20t55 -6v-66h-365v66q56 24 84 52q12 12 25 30.5t20 31.5l7 13l399 1006h93zM416 521h340 l-162 457z" />
+<glyph unicode="&#xe048;" d="M753 641q5 -1 14.5 -4.5t36 -15.5t50.5 -26.5t53.5 -40t50.5 -54.5t35.5 -70t14.5 -87q0 -67 -27.5 -125.5t-71.5 -97.5t-98.5 -66.5t-108.5 -40.5t-102 -13h-500v89q41 7 70.5 32.5t29.5 65.5v827q0 24 -0.5 34t-3.5 24t-8.5 19.5t-17 13.5t-28 12.5t-42.5 11.5v71 l471 -1q57 0 115.5 -20.5t108 -57t80.5 -94t31 -124.5q0 -51 -15.5 -96.5t-38 -74.5t-45 -50.5t-38.5 -30.5zM400 700h139q78 0 130.5 48.5t52.5 122.5q0 41 -8.5 70.5t-29.5 55.5t-62.5 39.5t-103.5 13.5h-118v-350zM400 200h216q80 0 121 50.5t41 130.5q0 90 -62.5 154.5 t-156.5 64.5h-159v-400z" />
+<glyph unicode="&#xe049;" d="M877 1200l2 -57q-83 -19 -116 -45.5t-40 -66.5l-132 -839q-9 -49 13 -69t96 -26v-97h-500v97q186 16 200 98l173 832q3 17 3 30t-1.5 22.5t-9 17.5t-13.5 12.5t-21.5 10t-26 8.5t-33.5 10q-13 3 -19 5v57h425z" />
+<glyph unicode="&#xe050;" d="M1300 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM175 1000h-75v-800h75l-125 -167l-125 167h75v800h-75l125 167z" />
+<glyph unicode="&#xe051;" d="M1100 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-650q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v650h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM1167 50l-167 -125v75h-800v-75l-167 125l167 125v-75h800v75z" />
+<glyph unicode="&#xe052;" d="M50 1100h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe053;" d="M250 1100h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM250 500h700q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe054;" d="M500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000 q-21 0 -35.5 14.5t-14.5 35.5zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5zM0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5z" />
+<glyph unicode="&#xe055;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 800h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 500h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe056;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 1100h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 800h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 500h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 500h800q21 0 35.5 -14.5t14.5 -35.5v-100 q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM350 200h800 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe057;" d="M400 0h-100v1100h100v-1100zM550 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM267 550l-167 -125v75h-200v100h200v75zM550 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM550 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe058;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM900 0h-100v1100h100v-1100zM50 800h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM1100 600h200v-100h-200v-75l-167 125l167 125v-75zM50 500h300q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5zM50 200h600 q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-600q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe059;" d="M75 1000h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53v650q0 31 22 53t53 22zM1200 300l-300 300l300 300v-600z" />
+<glyph unicode="&#xe060;" d="M44 1100h1112q18 0 31 -13t13 -31v-1012q0 -18 -13 -31t-31 -13h-1112q-18 0 -31 13t-13 31v1012q0 18 13 31t31 13zM100 1000v-737l247 182l298 -131l-74 156l293 318l236 -288v500h-1000zM342 884q56 0 95 -39t39 -94.5t-39 -95t-95 -39.5t-95 39.5t-39 95t39 94.5 t95 39z" />
+<glyph unicode="&#xe062;" d="M648 1169q117 0 216 -60t156.5 -161t57.5 -218q0 -115 -70 -258q-69 -109 -158 -225.5t-143 -179.5l-54 -62q-9 8 -25.5 24.5t-63.5 67.5t-91 103t-98.5 128t-95.5 148q-60 132 -60 249q0 88 34 169.5t91.5 142t137 96.5t166.5 36zM652.5 974q-91.5 0 -156.5 -65 t-65 -157t65 -156.5t156.5 -64.5t156.5 64.5t65 156.5t-65 157t-156.5 65z" />
+<glyph unicode="&#xe063;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 173v854q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57z" />
+<glyph unicode="&#xe064;" d="M554 1295q21 -72 57.5 -143.5t76 -130t83 -118t82.5 -117t70 -116t49.5 -126t18.5 -136.5q0 -71 -25.5 -135t-68.5 -111t-99 -82t-118.5 -54t-125.5 -23q-84 5 -161.5 34t-139.5 78.5t-99 125t-37 164.5q0 69 18 136.5t49.5 126.5t69.5 116.5t81.5 117.5t83.5 119 t76.5 131t58.5 143zM344 710q-23 -33 -43.5 -70.5t-40.5 -102.5t-17 -123q1 -37 14.5 -69.5t30 -52t41 -37t38.5 -24.5t33 -15q21 -7 32 -1t13 22l6 34q2 10 -2.5 22t-13.5 19q-5 4 -14 12t-29.5 40.5t-32.5 73.5q-26 89 6 271q2 11 -6 11q-8 1 -15 -10z" />
+<glyph unicode="&#xe065;" d="M1000 1013l108 115q2 1 5 2t13 2t20.5 -1t25 -9.5t28.5 -21.5q22 -22 27 -43t0 -32l-6 -10l-108 -115zM350 1100h400q50 0 105 -13l-187 -187h-368q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v182l200 200v-332 q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM1009 803l-362 -362l-161 -50l55 170l355 355z" />
+<glyph unicode="&#xe066;" d="M350 1100h361q-164 -146 -216 -200h-195q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-103q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M824 1073l339 -301q8 -7 8 -17.5t-8 -17.5l-340 -306q-7 -6 -12.5 -4t-6.5 11v203q-26 1 -54.5 0t-78.5 -7.5t-92 -17.5t-86 -35t-70 -57q10 59 33 108t51.5 81.5t65 58.5t68.5 40.5t67 24.5t56 13.5t40 4.5v210q1 10 6.5 12.5t13.5 -4.5z" />
+<glyph unicode="&#xe067;" d="M350 1100h350q60 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-219q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5z M643 639l395 395q7 7 17.5 7t17.5 -7l101 -101q7 -7 7 -17.5t-7 -17.5l-531 -532q-7 -7 -17.5 -7t-17.5 7l-248 248q-7 7 -7 17.5t7 17.5l101 101q7 7 17.5 7t17.5 -7l111 -111q8 -7 18 -7t18 7z" />
+<glyph unicode="&#xe068;" d="M318 918l264 264q8 8 18 8t18 -8l260 -264q7 -8 4.5 -13t-12.5 -5h-170v-200h200v173q0 10 5 12t13 -5l264 -260q8 -7 8 -17.5t-8 -17.5l-264 -265q-8 -7 -13 -5t-5 12v173h-200v-200h170q10 0 12.5 -5t-4.5 -13l-260 -264q-8 -8 -18 -8t-18 8l-264 264q-8 8 -5.5 13 t12.5 5h175v200h-200v-173q0 -10 -5 -12t-13 5l-264 265q-8 7 -8 17.5t8 17.5l264 260q8 7 13 5t5 -12v-173h200v200h-175q-10 0 -12.5 5t5.5 13z" />
+<glyph unicode="&#xe069;" d="M250 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe070;" d="M50 1100h100q21 0 35.5 -14.5t14.5 -35.5v-438l464 453q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5 t-14.5 35.5v1000q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe071;" d="M1200 1050v-1000q0 -21 -10.5 -25t-25.5 10l-464 453v-438q0 -21 -10.5 -25t-25.5 10l-492 480q-15 14 -15 35t15 35l492 480q15 14 25.5 10t10.5 -25v-438l464 453q15 14 25.5 10t10.5 -25z" />
+<glyph unicode="&#xe072;" d="M243 1074l814 -498q18 -11 18 -26t-18 -26l-814 -498q-18 -11 -30.5 -4t-12.5 28v1000q0 21 12.5 28t30.5 -4z" />
+<glyph unicode="&#xe073;" d="M250 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM650 1000h200q21 0 35.5 -14.5t14.5 -35.5v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v800 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe074;" d="M1100 950v-800q0 -21 -14.5 -35.5t-35.5 -14.5h-800q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="&#xe075;" d="M500 612v438q0 21 10.5 25t25.5 -10l492 -480q15 -14 15 -35t-15 -35l-492 -480q-15 -14 -25.5 -10t-10.5 25v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10z" />
+<glyph unicode="&#xe076;" d="M1048 1102l100 1q20 0 35 -14.5t15 -35.5l5 -1000q0 -21 -14.5 -35.5t-35.5 -14.5l-100 -1q-21 0 -35.5 14.5t-14.5 35.5l-2 437l-463 -454q-14 -15 -24.5 -10.5t-10.5 25.5l-2 437l-462 -455q-15 -14 -25.5 -9.5t-10.5 24.5l-5 1000q0 21 10.5 25.5t25.5 -10.5l466 -450 l-2 438q0 20 10.5 24.5t25.5 -9.5l466 -451l-2 438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe077;" d="M850 1100h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-464 -453q-15 -14 -25.5 -10t-10.5 25v1000q0 21 10.5 25t25.5 -10l464 -453v438q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe078;" d="M686 1081l501 -540q15 -15 10.5 -26t-26.5 -11h-1042q-22 0 -26.5 11t10.5 26l501 540q15 15 36 15t36 -15zM150 400h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe079;" d="M885 900l-352 -353l352 -353l-197 -198l-552 552l552 550z" />
+<glyph unicode="&#xe080;" d="M1064 547l-551 -551l-198 198l353 353l-353 353l198 198z" />
+<glyph unicode="&#xe081;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM650 900h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-150 q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5h150v-150q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v150h150q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-150v150q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="&#xe082;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM850 700h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5 t35.5 -14.5h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5z" />
+<glyph unicode="&#xe083;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM741.5 913q-12.5 0 -21.5 -9l-120 -120l-120 120q-9 9 -21.5 9 t-21.5 -9l-141 -141q-9 -9 -9 -21.5t9 -21.5l120 -120l-120 -120q-9 -9 -9 -21.5t9 -21.5l141 -141q9 -9 21.5 -9t21.5 9l120 120l120 -120q9 -9 21.5 -9t21.5 9l141 141q9 9 9 21.5t-9 21.5l-120 120l120 120q9 9 9 21.5t-9 21.5l-141 141q-9 9 -21.5 9z" />
+<glyph unicode="&#xe084;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM546 623l-84 85q-7 7 -17.5 7t-18.5 -7l-139 -139q-7 -8 -7 -18t7 -18 l242 -241q7 -8 17.5 -8t17.5 8l375 375q7 7 7 17.5t-7 18.5l-139 139q-7 7 -17.5 7t-17.5 -7z" />
+<glyph unicode="&#xe085;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM588 941q-29 0 -59 -5.5t-63 -20.5t-58 -38.5t-41.5 -63t-16.5 -89.5 q0 -25 20 -25h131q30 -5 35 11q6 20 20.5 28t45.5 8q20 0 31.5 -10.5t11.5 -28.5q0 -23 -7 -34t-26 -18q-1 0 -13.5 -4t-19.5 -7.5t-20 -10.5t-22 -17t-18.5 -24t-15.5 -35t-8 -46q-1 -8 5.5 -16.5t20.5 -8.5h173q7 0 22 8t35 28t37.5 48t29.5 74t12 100q0 47 -17 83 t-42.5 57t-59.5 34.5t-64 18t-59 4.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe086;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM675 1000h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5 t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5zM675 700h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h75v-200h-75q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h350q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5 t-17.5 7.5h-75v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe087;" d="M525 1200h150q10 0 17.5 -7.5t7.5 -17.5v-194q103 -27 178.5 -102.5t102.5 -178.5h194q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-194q-27 -103 -102.5 -178.5t-178.5 -102.5v-194q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v194 q-103 27 -178.5 102.5t-102.5 178.5h-194q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h194q27 103 102.5 178.5t178.5 102.5v194q0 10 7.5 17.5t17.5 7.5zM700 893v-168q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v168q-68 -23 -119 -74 t-74 -119h168q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-168q23 -68 74 -119t119 -74v168q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-168q68 23 119 74t74 119h-168q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h168 q-23 68 -74 119t-119 74z" />
+<glyph unicode="&#xe088;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM759 823l64 -64q7 -7 7 -17.5t-7 -17.5l-124 -124l124 -124q7 -7 7 -17.5t-7 -17.5l-64 -64q-7 -7 -17.5 -7t-17.5 7l-124 124l-124 -124q-7 -7 -17.5 -7t-17.5 7l-64 64 q-7 7 -7 17.5t7 17.5l124 124l-124 124q-7 7 -7 17.5t7 17.5l64 64q7 7 17.5 7t17.5 -7l124 -124l124 124q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe089;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5t57 -214.5 t155.5 -155.5t214.5 -57t214.5 57t155.5 155.5t57 214.5t-57 214.5t-155.5 155.5t-214.5 57zM782 788l106 -106q7 -7 7 -17.5t-7 -17.5l-320 -321q-8 -7 -18 -7t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l197 197q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe090;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM600 1027q-116 0 -214.5 -57t-155.5 -155.5t-57 -214.5q0 -120 65 -225 l587 587q-105 65 -225 65zM965 819l-584 -584q104 -62 219 -62q116 0 214.5 57t155.5 155.5t57 214.5q0 115 -62 219z" />
+<glyph unicode="&#xe091;" d="M39 582l522 427q16 13 27.5 8t11.5 -26v-291h550q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-550v-291q0 -21 -11.5 -26t-27.5 8l-522 427q-16 13 -16 32t16 32z" />
+<glyph unicode="&#xe092;" d="M639 1009l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291h-550q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h550v291q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="&#xe093;" d="M682 1161l427 -522q13 -16 8 -27.5t-26 -11.5h-291v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v550h-291q-21 0 -26 11.5t8 27.5l427 522q13 16 32 16t32 -16z" />
+<glyph unicode="&#xe094;" d="M550 1200h200q21 0 35.5 -14.5t14.5 -35.5v-550h291q21 0 26 -11.5t-8 -27.5l-427 -522q-13 -16 -32 -16t-32 16l-427 522q-13 16 -8 27.5t26 11.5h291v550q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe095;" d="M639 1109l522 -427q16 -13 16 -32t-16 -32l-522 -427q-16 -13 -27.5 -8t-11.5 26v291q-94 -2 -182 -20t-170.5 -52t-147 -92.5t-100.5 -135.5q5 105 27 193.5t67.5 167t113 135t167 91.5t225.5 42v262q0 21 11.5 26t27.5 -8z" />
+<glyph unicode="&#xe096;" d="M850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5zM350 0h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249 q8 7 18 7t18 -7l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5z" />
+<glyph unicode="&#xe097;" d="M1014 1120l106 -106q7 -8 7 -18t-7 -18l-249 -249l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l249 249q8 7 18 7t18 -7zM250 600h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-249 -249q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l249 249l-94 94q-14 14 -10 24.5t25 10.5z" />
+<glyph unicode="&#xe101;" d="M600 1177q117 0 224 -45.5t184.5 -123t123 -184.5t45.5 -224t-45.5 -224t-123 -184.5t-184.5 -123t-224 -45.5t-224 45.5t-184.5 123t-123 184.5t-45.5 224t45.5 224t123 184.5t184.5 123t224 45.5zM704 900h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5 t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM675 400h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe102;" d="M260 1200q9 0 19 -2t15 -4l5 -2q22 -10 44 -23l196 -118q21 -13 36 -24q29 -21 37 -12q11 13 49 35l196 118q22 13 45 23q17 7 38 7q23 0 47 -16.5t37 -33.5l13 -16q14 -21 18 -45l25 -123l8 -44q1 -9 8.5 -14.5t17.5 -5.5h61q10 0 17.5 -7.5t7.5 -17.5v-50 q0 -10 -7.5 -17.5t-17.5 -7.5h-50q-10 0 -17.5 -7.5t-7.5 -17.5v-175h-400v300h-200v-300h-400v175q0 10 -7.5 17.5t-17.5 7.5h-50q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5h61q11 0 18 3t7 8q0 4 9 52l25 128q5 25 19 45q2 3 5 7t13.5 15t21.5 19.5t26.5 15.5 t29.5 7zM915 1079l-166 -162q-7 -7 -5 -12t12 -5h219q10 0 15 7t2 17l-51 149q-3 10 -11 12t-15 -6zM463 917l-177 157q-8 7 -16 5t-11 -12l-51 -143q-3 -10 2 -17t15 -7h231q11 0 12.5 5t-5.5 12zM500 0h-375q-10 0 -17.5 7.5t-7.5 17.5v375h400v-400zM1100 400v-375 q0 -10 -7.5 -17.5t-17.5 -7.5h-375v400h400z" />
+<glyph unicode="&#xe103;" d="M1165 1190q8 3 21 -6.5t13 -17.5q-2 -178 -24.5 -323.5t-55.5 -245.5t-87 -174.5t-102.5 -118.5t-118 -68.5t-118.5 -33t-120 -4.5t-105 9.5t-90 16.5q-61 12 -78 11q-4 1 -12.5 0t-34 -14.5t-52.5 -40.5l-153 -153q-26 -24 -37 -14.5t-11 43.5q0 64 42 102q8 8 50.5 45 t66.5 58q19 17 35 47t13 61q-9 55 -10 102.5t7 111t37 130t78 129.5q39 51 80 88t89.5 63.5t94.5 45t113.5 36t129 31t157.5 37t182 47.5zM1116 1098q-8 9 -22.5 -3t-45.5 -50q-38 -47 -119 -103.5t-142 -89.5l-62 -33q-56 -30 -102 -57t-104 -68t-102.5 -80.5t-85.5 -91 t-64 -104.5q-24 -56 -31 -86t2 -32t31.5 17.5t55.5 59.5q25 30 94 75.5t125.5 77.5t147.5 81q70 37 118.5 69t102 79.5t99 111t86.5 148.5q22 50 24 60t-6 19z" />
+<glyph unicode="&#xe104;" d="M653 1231q-39 -67 -54.5 -131t-10.5 -114.5t24.5 -96.5t47.5 -80t63.5 -62.5t68.5 -46.5t65 -30q-4 7 -17.5 35t-18.5 39.5t-17 39.5t-17 43t-13 42t-9.5 44.5t-2 42t4 43t13.5 39t23 38.5q96 -42 165 -107.5t105 -138t52 -156t13 -159t-19 -149.5q-13 -55 -44 -106.5 t-68 -87t-78.5 -64.5t-72.5 -45t-53 -22q-72 -22 -127 -11q-31 6 -13 19q6 3 17 7q13 5 32.5 21t41 44t38.5 63.5t21.5 81.5t-6.5 94.5t-50 107t-104 115.5q10 -104 -0.5 -189t-37 -140.5t-65 -93t-84 -52t-93.5 -11t-95 24.5q-80 36 -131.5 114t-53.5 171q-2 23 0 49.5 t4.5 52.5t13.5 56t27.5 60t46 64.5t69.5 68.5q-8 -53 -5 -102.5t17.5 -90t34 -68.5t44.5 -39t49 -2q31 13 38.5 36t-4.5 55t-29 64.5t-36 75t-26 75.5q-15 85 2 161.5t53.5 128.5t85.5 92.5t93.5 61t81.5 25.5z" />
+<glyph unicode="&#xe105;" d="M600 1094q82 0 160.5 -22.5t140 -59t116.5 -82.5t94.5 -95t68 -95t42.5 -82.5t14 -57.5t-14 -57.5t-43 -82.5t-68.5 -95t-94.5 -95t-116.5 -82.5t-140 -59t-159.5 -22.5t-159.5 22.5t-140 59t-116.5 82.5t-94.5 95t-68.5 95t-43 82.5t-14 57.5t14 57.5t42.5 82.5t68 95 t94.5 95t116.5 82.5t140 59t160.5 22.5zM888 829q-15 15 -18 12t5 -22q25 -57 25 -119q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 59 23 114q8 19 4.5 22t-17.5 -12q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q22 -36 47 -71t70 -82t92.5 -81t113 -58.5t133.5 -24.5 t133.5 24t113 58.5t92.5 81.5t70 81.5t47 70.5q11 18 9 42.5t-14 41.5q-90 117 -163 189zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l35 34q14 15 12.5 33.5t-16.5 33.5q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="&#xe106;" d="M592 0h-148l31 120q-91 20 -175.5 68.5t-143.5 106.5t-103.5 119t-66.5 110t-22 76q0 21 14 57.5t42.5 82.5t68 95t94.5 95t116.5 82.5t140 59t160.5 22.5q61 0 126 -15l32 121h148zM944 770l47 181q108 -85 176.5 -192t68.5 -159q0 -26 -19.5 -71t-59.5 -102t-93 -112 t-129 -104.5t-158 -75.5l46 173q77 49 136 117t97 131q11 18 9 42.5t-14 41.5q-54 70 -107 130zM310 824q-70 -69 -160 -184q-13 -16 -15 -40.5t9 -42.5q18 -30 39 -60t57 -70.5t74 -73t90 -61t105 -41.5l41 154q-107 18 -178.5 101.5t-71.5 193.5q0 59 23 114q8 19 4.5 22 t-17.5 -12zM448 727l-35 -36q-15 -15 -19.5 -38.5t4.5 -41.5q37 -68 93 -116q16 -13 38.5 -11t36.5 17l12 11l22 86l-3 4q-44 44 -89 117q-11 18 -28 20t-32 -12z" />
+<glyph unicode="&#xe107;" d="M-90 100l642 1066q20 31 48 28.5t48 -35.5l642 -1056q21 -32 7.5 -67.5t-50.5 -35.5h-1294q-37 0 -50.5 34t7.5 66zM155 200h345v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h345l-445 723zM496 700h208q20 0 32 -14.5t8 -34.5l-58 -252 q-4 -20 -21.5 -34.5t-37.5 -14.5h-54q-20 0 -37.5 14.5t-21.5 34.5l-58 252q-4 20 8 34.5t32 14.5z" />
+<glyph unicode="&#xe108;" d="M650 1200q62 0 106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -93 100 -113v-64q0 -21 -13 -29t-32 1l-205 128l-205 -128q-19 -9 -32 -1t-13 29v64q0 20 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5v41 q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44z" />
+<glyph unicode="&#xe109;" d="M850 1200h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-150h-1100v150q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-50h500v50q0 21 14.5 35.5t35.5 14.5zM1100 800v-750q0 -21 -14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v750h1100zM100 600v-100h100v100h-100zM300 600v-100h100v100h-100zM500 600v-100h100v100h-100zM700 600v-100h100v100h-100zM900 600v-100h100v100h-100zM100 400v-100h100v100h-100zM300 400v-100h100v100h-100zM500 400 v-100h100v100h-100zM700 400v-100h100v100h-100zM900 400v-100h100v100h-100zM100 200v-100h100v100h-100zM300 200v-100h100v100h-100zM500 200v-100h100v100h-100zM700 200v-100h100v100h-100zM900 200v-100h100v100h-100z" />
+<glyph unicode="&#xe110;" d="M1135 1165l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-159l-600 -600h-291q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h209l600 600h241v150q0 21 10.5 25t24.5 -10zM522 819l-141 -141l-122 122h-209q-21 0 -35.5 14.5 t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h291zM1135 565l249 -230q15 -14 15 -35t-15 -35l-249 -230q-14 -14 -24.5 -10t-10.5 25v150h-241l-181 181l141 141l122 -122h159v150q0 21 10.5 25t24.5 -10z" />
+<glyph unicode="&#xe111;" d="M100 1100h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5z" />
+<glyph unicode="&#xe112;" d="M150 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM850 1200h200q21 0 35.5 -14.5t14.5 -35.5v-250h-300v250q0 21 14.5 35.5t35.5 14.5zM1100 800v-300q0 -41 -3 -77.5t-15 -89.5t-32 -96t-58 -89t-89 -77t-129 -51t-174 -20t-174 20 t-129 51t-89 77t-58 89t-32 96t-15 89.5t-3 77.5v300h300v-250v-27v-42.5t1.5 -41t5 -38t10 -35t16.5 -30t25.5 -24.5t35 -19t46.5 -12t60 -4t60 4.5t46.5 12.5t35 19.5t25 25.5t17 30.5t10 35t5 38t2 40.5t-0.5 42v25v250h300z" />
+<glyph unicode="&#xe113;" d="M1100 411l-198 -199l-353 353l-353 -353l-197 199l551 551z" />
+<glyph unicode="&#xe114;" d="M1101 789l-550 -551l-551 551l198 199l353 -353l353 353z" />
+<glyph unicode="&#xe115;" d="M404 1000h746q21 0 35.5 -14.5t14.5 -35.5v-551h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v401h-381zM135 984l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-400h385l215 -200h-750q-21 0 -35.5 14.5 t-14.5 35.5v550h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe116;" d="M56 1200h94q17 0 31 -11t18 -27l38 -162h896q24 0 39 -18.5t10 -42.5l-100 -475q-5 -21 -27 -42.5t-55 -21.5h-633l48 -200h535q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-50q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-300v-50 q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v50h-31q-18 0 -32.5 10t-20.5 19l-5 10l-201 961h-54q-20 0 -35 14.5t-15 35.5t15 35.5t35 14.5z" />
+<glyph unicode="&#xe117;" d="M1200 1000v-100h-1200v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500zM0 800h1200v-800h-1200v800z" />
+<glyph unicode="&#xe118;" d="M200 800l-200 -400v600h200q0 41 29.5 70.5t70.5 29.5h300q42 0 71 -29.5t29 -70.5h500v-200h-1000zM1500 700l-300 -700h-1200l300 700h1200z" />
+<glyph unicode="&#xe119;" d="M635 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-601h150q21 0 25 -10.5t-10 -24.5l-230 -249q-14 -15 -35 -15t-35 15l-230 249q-14 14 -10 24.5t25 10.5h150v601h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe120;" d="M936 864l249 -229q14 -15 14 -35.5t-14 -35.5l-249 -229q-15 -15 -25.5 -10.5t-10.5 24.5v151h-600v-151q0 -20 -10.5 -24.5t-25.5 10.5l-249 229q-14 15 -14 35.5t14 35.5l249 229q15 15 25.5 10.5t10.5 -25.5v-149h600v149q0 21 10.5 25.5t25.5 -10.5z" />
+<glyph unicode="&#xe121;" d="M1169 400l-172 732q-5 23 -23 45.5t-38 22.5h-672q-20 0 -38 -20t-23 -41l-172 -739h1138zM1100 300h-1000q-41 0 -70.5 -29.5t-29.5 -70.5v-100q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v100q0 41 -29.5 70.5t-70.5 29.5zM800 100v100h100v-100h-100 zM1000 100v100h100v-100h-100z" />
+<glyph unicode="&#xe122;" d="M1150 1100q21 0 35.5 -14.5t14.5 -35.5v-850q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v850q0 21 14.5 35.5t35.5 14.5zM1000 200l-675 200h-38l47 -276q3 -16 -5.5 -20t-29.5 -4h-7h-84q-20 0 -34.5 14t-18.5 35q-55 337 -55 351v250v6q0 16 1 23.5t6.5 14 t17.5 6.5h200l675 250v-850zM0 750v-250q-4 0 -11 0.5t-24 6t-30 15t-24 30t-11 48.5v50q0 26 10.5 46t25 30t29 16t25.5 7z" />
+<glyph unicode="&#xe123;" d="M553 1200h94q20 0 29 -10.5t3 -29.5l-18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q19 0 33 -14.5t14 -35t-13 -40.5t-31 -27q-8 -4 -23 -9.5t-65 -19.5t-103 -25t-132.5 -20t-158.5 -9q-57 0 -115 5t-104 12t-88.5 15.5t-73.5 17.5t-54.5 16t-35.5 12l-11 4 q-18 8 -31 28t-13 40.5t14 35t33 14.5h17l118 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3.5 32t28.5 13zM498 110q50 -6 102 -6q53 0 102 6q-12 -49 -39.5 -79.5t-62.5 -30.5t-63 30.5t-39 79.5z" />
+<glyph unicode="&#xe124;" d="M800 946l224 78l-78 -224l234 -45l-180 -155l180 -155l-234 -45l78 -224l-224 78l-45 -234l-155 180l-155 -180l-45 234l-224 -78l78 224l-234 45l180 155l-180 155l234 45l-78 224l224 -78l45 234l155 -180l155 180z" />
+<glyph unicode="&#xe125;" d="M650 1200h50q40 0 70 -40.5t30 -84.5v-150l-28 -125h328q40 0 70 -40.5t30 -84.5v-100q0 -45 -29 -74l-238 -344q-16 -24 -38 -40.5t-45 -16.5h-250q-7 0 -42 25t-66 50l-31 25h-61q-45 0 -72.5 18t-27.5 57v400q0 36 20 63l145 196l96 198q13 28 37.5 48t51.5 20z M650 1100l-100 -212l-150 -213v-375h100l136 -100h214l250 375v125h-450l50 225v175h-50zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe126;" d="M600 1100h250q23 0 45 -16.5t38 -40.5l238 -344q29 -29 29 -74v-100q0 -44 -30 -84.5t-70 -40.5h-328q28 -118 28 -125v-150q0 -44 -30 -84.5t-70 -40.5h-50q-27 0 -51.5 20t-37.5 48l-96 198l-145 196q-20 27 -20 63v400q0 39 27.5 57t72.5 18h61q124 100 139 100z M50 1000h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM636 1000l-136 -100h-100v-375l150 -213l100 -212h50v175l-50 225h450v125l-250 375h-214z" />
+<glyph unicode="&#xe127;" d="M356 873l363 230q31 16 53 -6l110 -112q13 -13 13.5 -32t-11.5 -34l-84 -121h302q84 0 138 -38t54 -110t-55 -111t-139 -39h-106l-131 -339q-6 -21 -19.5 -41t-28.5 -20h-342q-7 0 -90 81t-83 94v525q0 17 14 35.5t28 28.5zM400 792v-503l100 -89h293l131 339 q6 21 19.5 41t28.5 20h203q21 0 30.5 25t0.5 50t-31 25h-456h-7h-6h-5.5t-6 0.5t-5 1.5t-5 2t-4 2.5t-4 4t-2.5 4.5q-12 25 5 47l146 183l-86 83zM50 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v500 q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe128;" d="M475 1103l366 -230q2 -1 6 -3.5t14 -10.5t18 -16.5t14.5 -20t6.5 -22.5v-525q0 -13 -86 -94t-93 -81h-342q-15 0 -28.5 20t-19.5 41l-131 339h-106q-85 0 -139.5 39t-54.5 111t54 110t138 38h302l-85 121q-11 15 -10.5 34t13.5 32l110 112q22 22 53 6zM370 945l146 -183 q17 -22 5 -47q-2 -2 -3.5 -4.5t-4 -4t-4 -2.5t-5 -2t-5 -1.5t-6 -0.5h-6h-6.5h-6h-475v-100h221q15 0 29 -20t20 -41l130 -339h294l106 89v503l-342 236zM1050 800h100q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5 v500q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe129;" d="M550 1294q72 0 111 -55t39 -139v-106l339 -131q21 -6 41 -19.5t20 -28.5v-342q0 -7 -81 -90t-94 -83h-525q-17 0 -35.5 14t-28.5 28l-9 14l-230 363q-16 31 6 53l112 110q13 13 32 13.5t34 -11.5l121 -84v302q0 84 38 138t110 54zM600 972v203q0 21 -25 30.5t-50 0.5 t-25 -31v-456v-7v-6v-5.5t-0.5 -6t-1.5 -5t-2 -5t-2.5 -4t-4 -4t-4.5 -2.5q-25 -12 -47 5l-183 146l-83 -86l236 -339h503l89 100v293l-339 131q-21 6 -41 19.5t-20 28.5zM450 200h500q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-500 q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe130;" d="M350 1100h500q21 0 35.5 14.5t14.5 35.5v100q0 21 -14.5 35.5t-35.5 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100q0 -21 14.5 -35.5t35.5 -14.5zM600 306v-106q0 -84 -39 -139t-111 -55t-110 54t-38 138v302l-121 -84q-15 -12 -34 -11.5t-32 13.5l-112 110 q-22 22 -6 53l230 363q1 2 3.5 6t10.5 13.5t16.5 17t20 13.5t22.5 6h525q13 0 94 -83t81 -90v-342q0 -15 -20 -28.5t-41 -19.5zM308 900l-236 -339l83 -86l183 146q22 17 47 5q2 -1 4.5 -2.5t4 -4t2.5 -4t2 -5t1.5 -5t0.5 -6v-5.5v-6v-7v-456q0 -22 25 -31t50 0.5t25 30.5 v203q0 15 20 28.5t41 19.5l339 131v293l-89 100h-503z" />
+<glyph unicode="&#xe131;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM914 632l-275 223q-16 13 -27.5 8t-11.5 -26v-137h-275 q-10 0 -17.5 -7.5t-7.5 -17.5v-150q0 -10 7.5 -17.5t17.5 -7.5h275v-137q0 -21 11.5 -26t27.5 8l275 223q16 13 16 32t-16 32z" />
+<glyph unicode="&#xe132;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM561 855l-275 -223q-16 -13 -16 -32t16 -32l275 -223q16 -13 27.5 -8 t11.5 26v137h275q10 0 17.5 7.5t7.5 17.5v150q0 10 -7.5 17.5t-17.5 7.5h-275v137q0 21 -11.5 26t-27.5 -8z" />
+<glyph unicode="&#xe133;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM855 639l-223 275q-13 16 -32 16t-32 -16l-223 -275q-13 -16 -8 -27.5 t26 -11.5h137v-275q0 -10 7.5 -17.5t17.5 -7.5h150q10 0 17.5 7.5t7.5 17.5v275h137q21 0 26 11.5t-8 27.5z" />
+<glyph unicode="&#xe134;" d="M600 1178q118 0 225 -45.5t184.5 -123t123 -184.5t45.5 -225t-45.5 -225t-123 -184.5t-184.5 -123t-225 -45.5t-225 45.5t-184.5 123t-123 184.5t-45.5 225t45.5 225t123 184.5t184.5 123t225 45.5zM675 900h-150q-10 0 -17.5 -7.5t-7.5 -17.5v-275h-137q-21 0 -26 -11.5 t8 -27.5l223 -275q13 -16 32 -16t32 16l223 275q13 16 8 27.5t-26 11.5h-137v275q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe135;" d="M600 1176q116 0 222.5 -46t184 -123.5t123.5 -184t46 -222.5t-46 -222.5t-123.5 -184t-184 -123.5t-222.5 -46t-222.5 46t-184 123.5t-123.5 184t-46 222.5t46 222.5t123.5 184t184 123.5t222.5 46zM627 1101q-15 -12 -36.5 -20.5t-35.5 -12t-43 -8t-39 -6.5 q-15 -3 -45.5 0t-45.5 -2q-20 -7 -51.5 -26.5t-34.5 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -91t-29.5 -79q-9 -34 5 -93t8 -87q0 -9 17 -44.5t16 -59.5q12 0 23 -5t23.5 -15t19.5 -14q16 -8 33 -15t40.5 -15t34.5 -12q21 -9 52.5 -32t60 -38t57.5 -11 q7 -15 -3 -34t-22.5 -40t-9.5 -38q13 -21 23 -34.5t27.5 -27.5t36.5 -18q0 -7 -3.5 -16t-3.5 -14t5 -17q104 -2 221 112q30 29 46.5 47t34.5 49t21 63q-13 8 -37 8.5t-36 7.5q-15 7 -49.5 15t-51.5 19q-18 0 -41 -0.5t-43 -1.5t-42 -6.5t-38 -16.5q-51 -35 -66 -12 q-4 1 -3.5 25.5t0.5 25.5q-6 13 -26.5 17.5t-24.5 6.5q1 15 -0.5 30.5t-7 28t-18.5 11.5t-31 -21q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q7 -12 18 -24t21.5 -20.5t20 -15t15.5 -10.5l5 -3q2 12 7.5 30.5t8 34.5t-0.5 32q-3 18 3.5 29 t18 22.5t15.5 24.5q6 14 10.5 35t8 31t15.5 22.5t34 22.5q-6 18 10 36q8 0 24 -1.5t24.5 -1.5t20 4.5t20.5 15.5q-10 23 -31 42.5t-37.5 29.5t-49 27t-43.5 23q0 1 2 8t3 11.5t1.5 10.5t-1 9.5t-4.5 4.5q31 -13 58.5 -14.5t38.5 2.5l12 5q5 28 -9.5 46t-36.5 24t-50 15 t-41 20q-18 -4 -37 0zM613 994q0 -17 8 -42t17 -45t9 -23q-8 1 -39.5 5.5t-52.5 10t-37 16.5q3 11 16 29.5t16 25.5q10 -10 19 -10t14 6t13.5 14.5t16.5 12.5z" />
+<glyph unicode="&#xe136;" d="M756 1157q164 92 306 -9l-259 -138l145 -232l251 126q6 -89 -34 -156.5t-117 -110.5q-60 -34 -127 -39.5t-126 16.5l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5t15 37.5l600 599q-34 101 5.5 201.5t135.5 154.5z" />
+<glyph unicode="&#xe137;" horiz-adv-x="1220" d="M100 1196h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 1096h-200v-100h200v100zM100 796h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 696h-500v-100h500v100zM100 396h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5v100q0 41 29.5 70.5t70.5 29.5zM1100 296h-300v-100h300v100z " />
+<glyph unicode="&#xe138;" d="M150 1200h900q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM700 500v-300l-200 -200v500l-350 500h900z" />
+<glyph unicode="&#xe139;" d="M500 1200h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5zM500 1100v-100h200v100h-200zM1200 400v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5v200h1200z" />
+<glyph unicode="&#xe140;" d="M50 1200h300q21 0 25 -10.5t-10 -24.5l-94 -94l199 -199q7 -8 7 -18t-7 -18l-106 -106q-8 -7 -18 -7t-18 7l-199 199l-94 -94q-14 -14 -24.5 -10t-10.5 25v300q0 21 14.5 35.5t35.5 14.5zM850 1200h300q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -10.5 -25t-24.5 10l-94 94 l-199 -199q-8 -7 -18 -7t-18 7l-106 106q-7 8 -7 18t7 18l199 199l-94 94q-14 14 -10 24.5t25 10.5zM364 470l106 -106q7 -8 7 -18t-7 -18l-199 -199l94 -94q14 -14 10 -24.5t-25 -10.5h-300q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 10.5 25t24.5 -10l94 -94l199 199 q8 7 18 7t18 -7zM1071 271l94 94q14 14 24.5 10t10.5 -25v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -25 10.5t10 24.5l94 94l-199 199q-7 8 -7 18t7 18l106 106q8 7 18 7t18 -7z" />
+<glyph unicode="&#xe141;" d="M596 1192q121 0 231.5 -47.5t190 -127t127 -190t47.5 -231.5t-47.5 -231.5t-127 -190.5t-190 -127t-231.5 -47t-231.5 47t-190.5 127t-127 190.5t-47 231.5t47 231.5t127 190t190.5 127t231.5 47.5zM596 1010q-112 0 -207.5 -55.5t-151 -151t-55.5 -207.5t55.5 -207.5 t151 -151t207.5 -55.5t207.5 55.5t151 151t55.5 207.5t-55.5 207.5t-151 151t-207.5 55.5zM454.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38.5 -16.5t-38.5 16.5t-16 39t16 38.5t38.5 16zM754.5 905q22.5 0 38.5 -16t16 -38.5t-16 -39t-38 -16.5q-14 0 -29 10l-55 -145 q17 -23 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 23 16 39t38.5 16zM345.5 709q22.5 0 38.5 -16t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16zM854.5 709q22.5 0 38.5 -16 t16 -38.5t-16 -38.5t-38.5 -16t-38.5 16t-16 38.5t16 38.5t38.5 16z" />
+<glyph unicode="&#xe142;" d="M546 173l469 470q91 91 99 192q7 98 -52 175.5t-154 94.5q-22 4 -47 4q-34 0 -66.5 -10t-56.5 -23t-55.5 -38t-48 -41.5t-48.5 -47.5q-376 -375 -391 -390q-30 -27 -45 -41.5t-37.5 -41t-32 -46.5t-16 -47.5t-1.5 -56.5q9 -62 53.5 -95t99.5 -33q74 0 125 51l548 548 q36 36 20 75q-7 16 -21.5 26t-32.5 10q-26 0 -50 -23q-13 -12 -39 -38l-341 -338q-15 -15 -35.5 -15.5t-34.5 13.5t-14 34.5t14 34.5q327 333 361 367q35 35 67.5 51.5t78.5 16.5q14 0 29 -1q44 -8 74.5 -35.5t43.5 -68.5q14 -47 2 -96.5t-47 -84.5q-12 -11 -32 -32 t-79.5 -81t-114.5 -115t-124.5 -123.5t-123 -119.5t-96.5 -89t-57 -45q-56 -27 -120 -27q-70 0 -129 32t-93 89q-48 78 -35 173t81 163l511 511q71 72 111 96q91 55 198 55q80 0 152 -33q78 -36 129.5 -103t66.5 -154q17 -93 -11 -183.5t-94 -156.5l-482 -476 q-15 -15 -36 -16t-37 14t-17.5 34t14.5 35z" />
+<glyph unicode="&#xe143;" d="M649 949q48 68 109.5 104t121.5 38.5t118.5 -20t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-150 152.5t-126.5 127.5t-93.5 124.5t-33.5 117.5q0 64 28 123t73 100.5t104 64t119 20 t120.5 -38.5t104.5 -104zM896 972q-33 0 -64.5 -19t-56.5 -46t-47.5 -53.5t-43.5 -45.5t-37.5 -19t-36 19t-40 45.5t-43 53.5t-54 46t-65.5 19q-67 0 -122.5 -55.5t-55.5 -132.5q0 -23 13.5 -51t46 -65t57.5 -63t76 -75l22 -22q15 -14 44 -44t50.5 -51t46 -44t41 -35t23 -12 t23.5 12t42.5 36t46 44t52.5 52t44 43q4 4 12 13q43 41 63.5 62t52 55t46 55t26 46t11.5 44q0 79 -53 133.5t-120 54.5z" />
+<glyph unicode="&#xe144;" d="M776.5 1214q93.5 0 159.5 -66l141 -141q66 -66 66 -160q0 -42 -28 -95.5t-62 -87.5l-29 -29q-31 53 -77 99l-18 18l95 95l-247 248l-389 -389l212 -212l-105 -106l-19 18l-141 141q-66 66 -66 159t66 159l283 283q65 66 158.5 66zM600 706l105 105q10 -8 19 -17l141 -141 q66 -66 66 -159t-66 -159l-283 -283q-66 -66 -159 -66t-159 66l-141 141q-66 66 -66 159.5t66 159.5l55 55q29 -55 75 -102l18 -17l-95 -95l247 -248l389 389z" />
+<glyph unicode="&#xe145;" d="M603 1200q85 0 162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5v953q0 21 30 46.5t81 48t129 37.5t163 15zM300 1000v-700h600v700h-600zM600 254q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5t73.5 30.5 t30.5 73.5t-30.5 73.5t-73.5 30.5z" />
+<glyph unicode="&#xe146;" d="M902 1185l283 -282q15 -15 15 -36t-14.5 -35.5t-35.5 -14.5t-35 15l-36 35l-279 -267v-300l-212 210l-308 -307l-280 -203l203 280l307 308l-210 212h300l267 279l-35 36q-15 14 -15 35t14.5 35.5t35.5 14.5t35 -15z" />
+<glyph unicode="&#xe148;" d="M700 1248v-78q38 -5 72.5 -14.5t75.5 -31.5t71 -53.5t52 -84t24 -118.5h-159q-4 36 -10.5 59t-21 45t-40 35.5t-64.5 20.5v-307l64 -13q34 -7 64 -16.5t70 -32t67.5 -52.5t47.5 -80t20 -112q0 -139 -89 -224t-244 -97v-77h-100v79q-150 16 -237 103q-40 40 -52.5 93.5 t-15.5 139.5h139q5 -77 48.5 -126t117.5 -65v335l-27 8q-46 14 -79 26.5t-72 36t-63 52t-40 72.5t-16 98q0 70 25 126t67.5 92t94.5 57t110 27v77h100zM600 754v274q-29 -4 -50 -11t-42 -21.5t-31.5 -41.5t-10.5 -65q0 -29 7 -50.5t16.5 -34t28.5 -22.5t31.5 -14t37.5 -10 q9 -3 13 -4zM700 547v-310q22 2 42.5 6.5t45 15.5t41.5 27t29 42t12 59.5t-12.5 59.5t-38 44.5t-53 31t-66.5 24.5z" />
+<glyph unicode="&#xe149;" d="M561 1197q84 0 160.5 -40t123.5 -109.5t47 -147.5h-153q0 40 -19.5 71.5t-49.5 48.5t-59.5 26t-55.5 9q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -26 13.5 -63t26.5 -61t37 -66q6 -9 9 -14h241v-100h-197q8 -50 -2.5 -115t-31.5 -95q-45 -62 -99 -112 q34 10 83 17.5t71 7.5q32 1 102 -16t104 -17q83 0 136 30l50 -147q-31 -19 -58 -30.5t-55 -15.5t-42 -4.5t-46 -0.5q-23 0 -76 17t-111 32.5t-96 11.5q-39 -3 -82 -16t-67 -25l-23 -11l-55 145q4 3 16 11t15.5 10.5t13 9t15.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221v100h166q-23 47 -44 104q-7 20 -12 41.5t-6 55.5t6 66.5t29.5 70.5t58.5 71q97 88 263 88z" />
+<glyph unicode="&#xe150;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM935 1184l230 -249q14 -14 10 -24.5t-25 -10.5h-150v-900h-200v900h-150q-21 0 -25 10.5t10 24.5l230 249q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe151;" d="M1000 700h-100v100h-100v-100h-100v500h300v-500zM400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM801 1100v-200h100v200h-100zM1000 350l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150z " />
+<glyph unicode="&#xe152;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 1050l-200 -250h200v-100h-300v150l200 250h-200v100h300v-150zM1000 0h-100v100h-100v-100h-100v500h300v-500zM801 400v-200h100v200h-100z " />
+<glyph unicode="&#xe153;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1000 700h-100v400h-100v100h200v-500zM1100 0h-100v100h-200v400h300v-500zM901 400v-200h100v200h-100z" />
+<glyph unicode="&#xe154;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1100 700h-100v100h-200v400h300v-500zM901 1100v-200h100v200h-100zM1000 0h-100v400h-100v100h200v-500z" />
+<glyph unicode="&#xe155;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM900 1000h-200v200h200v-200zM1000 700h-300v200h300v-200zM1100 400h-400v200h400v-200zM1200 100h-500v200h500v-200z" />
+<glyph unicode="&#xe156;" d="M400 300h150q21 0 25 -11t-10 -25l-230 -250q-14 -15 -35 -15t-35 15l-230 250q-14 14 -10 25t25 11h150v900h200v-900zM1200 1000h-500v200h500v-200zM1100 700h-400v200h400v-200zM1000 400h-300v200h300v-200zM900 100h-200v200h200v-200z" />
+<glyph unicode="&#xe157;" d="M350 1100h400q162 0 256 -93.5t94 -256.5v-400q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5z" />
+<glyph unicode="&#xe158;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-163 0 -256.5 92.5t-93.5 257.5v400q0 163 94 256.5t256 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM440 770l253 -190q17 -12 17 -30t-17 -30l-253 -190q-16 -12 -28 -6.5t-12 26.5v400q0 21 12 26.5t28 -6.5z" />
+<glyph unicode="&#xe159;" d="M350 1100h400q163 0 256.5 -94t93.5 -256v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 163 92.5 256.5t257.5 93.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM350 700h400q21 0 26.5 -12t-6.5 -28l-190 -253q-12 -17 -30 -17t-30 17l-190 253q-12 16 -6.5 28t26.5 12z" />
+<glyph unicode="&#xe160;" d="M350 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -163 -92.5 -256.5t-257.5 -93.5h-400q-163 0 -256.5 94t-93.5 256v400q0 165 92.5 257.5t257.5 92.5zM800 900h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5 v500q0 41 -29.5 70.5t-70.5 29.5zM580 693l190 -253q12 -16 6.5 -28t-26.5 -12h-400q-21 0 -26.5 12t6.5 28l190 253q12 17 30 17t30 -17z" />
+<glyph unicode="&#xe161;" d="M550 1100h400q165 0 257.5 -92.5t92.5 -257.5v-400q0 -165 -92.5 -257.5t-257.5 -92.5h-400q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h450q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-450q-21 0 -35.5 14.5t-14.5 35.5v100 q0 21 14.5 35.5t35.5 14.5zM338 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="&#xe162;" d="M793 1182l9 -9q8 -10 5 -27q-3 -11 -79 -225.5t-78 -221.5l300 1q24 0 32.5 -17.5t-5.5 -35.5q-1 0 -133.5 -155t-267 -312.5t-138.5 -162.5q-12 -15 -26 -15h-9l-9 8q-9 11 -4 32q2 9 42 123.5t79 224.5l39 110h-302q-23 0 -31 19q-10 21 6 41q75 86 209.5 237.5 t228 257t98.5 111.5q9 16 25 16h9z" />
+<glyph unicode="&#xe163;" d="M350 1100h400q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-450q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h450q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400 q0 165 92.5 257.5t257.5 92.5zM938 867l324 -284q16 -14 16 -33t-16 -33l-324 -284q-16 -14 -27 -9t-11 26v150h-250q-21 0 -35.5 14.5t-14.5 35.5v200q0 21 14.5 35.5t35.5 14.5h250v150q0 21 11 26t27 -9z" />
+<glyph unicode="&#xe164;" d="M750 1200h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -10.5 -25t-24.5 10l-109 109l-312 -312q-15 -15 -35.5 -15t-35.5 15l-141 141q-15 15 -15 35.5t15 35.5l312 312l-109 109q-14 14 -10 24.5t25 10.5zM456 900h-156q-41 0 -70.5 -29.5t-29.5 -70.5v-500 q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v148l200 200v-298q0 -165 -93.5 -257.5t-256.5 -92.5h-400q-165 0 -257.5 92.5t-92.5 257.5v400q0 165 92.5 257.5t257.5 92.5h300z" />
+<glyph unicode="&#xe165;" d="M600 1186q119 0 227.5 -46.5t187 -125t125 -187t46.5 -227.5t-46.5 -227.5t-125 -187t-187 -125t-227.5 -46.5t-227.5 46.5t-187 125t-125 187t-46.5 227.5t46.5 227.5t125 187t187 125t227.5 46.5zM600 1022q-115 0 -212 -56.5t-153.5 -153.5t-56.5 -212t56.5 -212 t153.5 -153.5t212 -56.5t212 56.5t153.5 153.5t56.5 212t-56.5 212t-153.5 153.5t-212 56.5zM600 794q80 0 137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137t57 137t137 57z" />
+<glyph unicode="&#xe166;" d="M450 1200h200q21 0 35.5 -14.5t14.5 -35.5v-350h245q20 0 25 -11t-9 -26l-383 -426q-14 -15 -33.5 -15t-32.5 15l-379 426q-13 15 -8.5 26t25.5 11h250v350q0 21 14.5 35.5t35.5 14.5zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe167;" d="M583 1182l378 -435q14 -15 9 -31t-26 -16h-244v-250q0 -20 -17 -35t-39 -15h-200q-20 0 -32 14.5t-12 35.5v250h-250q-20 0 -25.5 16.5t8.5 31.5l383 431q14 16 33.5 17t33.5 -14zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5z M900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe168;" d="M396 723l369 369q7 7 17.5 7t17.5 -7l139 -139q7 -8 7 -18.5t-7 -17.5l-525 -525q-7 -8 -17.5 -8t-17.5 8l-292 291q-7 8 -7 18t7 18l139 139q8 7 18.5 7t17.5 -7zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50 h-100z" />
+<glyph unicode="&#xe169;" d="M135 1023l142 142q14 14 35 14t35 -14l77 -77l-212 -212l-77 76q-14 15 -14 36t14 35zM655 855l210 210q14 14 24.5 10t10.5 -25l-2 -599q-1 -20 -15.5 -35t-35.5 -15l-597 -1q-21 0 -25 10.5t10 24.5l208 208l-154 155l212 212zM50 300h1000q21 0 35.5 -14.5t14.5 -35.5 v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe170;" d="M350 1200l599 -2q20 -1 35 -15.5t15 -35.5l1 -597q0 -21 -10.5 -25t-24.5 10l-208 208l-155 -154l-212 212l155 154l-210 210q-14 14 -10 24.5t25 10.5zM524 512l-76 -77q-15 -14 -36 -14t-35 14l-142 142q-14 14 -14 35t14 35l77 77zM50 300h1000q21 0 35.5 -14.5 t14.5 -35.5v-250h-1100v250q0 21 14.5 35.5t35.5 14.5zM900 200v-50h100v50h-100z" />
+<glyph unicode="&#xe171;" d="M1200 103l-483 276l-314 -399v423h-399l1196 796v-1096zM483 424v-230l683 953z" />
+<glyph unicode="&#xe172;" d="M1100 1000v-850q0 -21 -14.5 -35.5t-35.5 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200z" />
+<glyph unicode="&#xe173;" d="M1100 1000l-2 -149l-299 -299l-95 95q-9 9 -21.5 9t-21.5 -9l-149 -147h-312v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1132 638l106 -106q7 -7 7 -17.5t-7 -17.5l-420 -421q-8 -7 -18 -7 t-18 7l-202 203q-8 7 -8 17.5t8 17.5l106 106q7 8 17.5 8t17.5 -8l79 -79l297 297q7 7 17.5 7t17.5 -7z" />
+<glyph unicode="&#xe174;" d="M1100 1000v-269l-103 -103l-134 134q-15 15 -33.5 16.5t-34.5 -12.5l-266 -266h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM1202 572l70 -70q15 -15 15 -35.5t-15 -35.5l-131 -131 l131 -131q15 -15 15 -35.5t-15 -35.5l-70 -70q-15 -15 -35.5 -15t-35.5 15l-131 131l-131 -131q-15 -15 -35.5 -15t-35.5 15l-70 70q-15 15 -15 35.5t15 35.5l131 131l-131 131q-15 15 -15 35.5t15 35.5l70 70q15 15 35.5 15t35.5 -15l131 -131l131 131q15 15 35.5 15 t35.5 -15z" />
+<glyph unicode="&#xe175;" d="M1100 1000v-300h-350q-21 0 -35.5 -14.5t-14.5 -35.5v-150h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM850 600h100q21 0 35.5 -14.5t14.5 -35.5v-250h150q21 0 25 -10.5t-10 -24.5 l-230 -230q-14 -14 -35 -14t-35 14l-230 230q-14 14 -10 24.5t25 10.5h150v250q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe176;" d="M1100 1000v-400l-165 165q-14 15 -35 15t-35 -15l-263 -265h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100zM700 1000h-100v200h100v-200zM935 565l230 -229q14 -15 10 -25.5t-25 -10.5h-150v-250q0 -20 -14.5 -35 t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35v250h-150q-21 0 -25 10.5t10 25.5l230 229q14 15 35 15t35 -15z" />
+<glyph unicode="&#xe177;" d="M50 1100h1100q21 0 35.5 -14.5t14.5 -35.5v-150h-1200v150q0 21 14.5 35.5t35.5 14.5zM1200 800v-550q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v550h1200zM100 500v-200h400v200h-400z" />
+<glyph unicode="&#xe178;" d="M935 1165l248 -230q14 -14 14 -35t-14 -35l-248 -230q-14 -14 -24.5 -10t-10.5 25v150h-400v200h400v150q0 21 10.5 25t24.5 -10zM200 800h-50q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v-200zM400 800h-100v200h100v-200zM18 435l247 230 q14 14 24.5 10t10.5 -25v-150h400v-200h-400v-150q0 -21 -10.5 -25t-24.5 10l-247 230q-15 14 -15 35t15 35zM900 300h-100v200h100v-200zM1000 500h51q20 0 34.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-34.5 -14.5h-51v200z" />
+<glyph unicode="&#xe179;" d="M862 1073l276 116q25 18 43.5 8t18.5 -41v-1106q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v397q-4 1 -11 5t-24 17.5t-30 29t-24 42t-11 56.5v359q0 31 18.5 65t43.5 52zM550 1200q22 0 34.5 -12.5t14.5 -24.5l1 -13v-450q0 -28 -10.5 -59.5 t-25 -56t-29 -45t-25.5 -31.5l-10 -11v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447q-4 4 -11 11.5t-24 30.5t-30 46t-24 55t-11 60v450q0 2 0.5 5.5t4 12t8.5 15t14.5 12t22.5 5.5q20 0 32.5 -12.5t14.5 -24.5l3 -13v-350h100v350v5.5t2.5 12 t7 15t15 12t25.5 5.5q23 0 35.5 -12.5t13.5 -24.5l1 -13v-350h100v350q0 2 0.5 5.5t3 12t7 15t15 12t24.5 5.5z" />
+<glyph unicode="&#xe180;" d="M1200 1100v-56q-4 0 -11 -0.5t-24 -3t-30 -7.5t-24 -15t-11 -24v-888q0 -22 25 -34.5t50 -13.5l25 -2v-56h-400v56q75 0 87.5 6.5t12.5 43.5v394h-500v-394q0 -37 12.5 -43.5t87.5 -6.5v-56h-400v56q4 0 11 0.5t24 3t30 7.5t24 15t11 24v888q0 22 -25 34.5t-50 13.5 l-25 2v56h400v-56q-75 0 -87.5 -6.5t-12.5 -43.5v-394h500v394q0 37 -12.5 43.5t-87.5 6.5v56h400z" />
+<glyph unicode="&#xe181;" d="M675 1000h375q21 0 35.5 -14.5t14.5 -35.5v-150h-105l-295 -98v98l-200 200h-400l100 100h375zM100 900h300q41 0 70.5 -29.5t29.5 -70.5v-500q0 -41 -29.5 -70.5t-70.5 -29.5h-300q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5zM100 800v-200h300v200 h-300zM1100 535l-400 -133v163l400 133v-163zM100 500v-200h300v200h-300zM1100 398v-248q0 -21 -14.5 -35.5t-35.5 -14.5h-375l-100 -100h-375l-100 100h400l200 200h105z" />
+<glyph unicode="&#xe182;" d="M17 1007l162 162q17 17 40 14t37 -22l139 -194q14 -20 11 -44.5t-20 -41.5l-119 -118q102 -142 228 -268t267 -227l119 118q17 17 42.5 19t44.5 -12l192 -136q19 -14 22.5 -37.5t-13.5 -40.5l-163 -162q-3 -1 -9.5 -1t-29.5 2t-47.5 6t-62.5 14.5t-77.5 26.5t-90 42.5 t-101.5 60t-111 83t-119 108.5q-74 74 -133.5 150.5t-94.5 138.5t-60 119.5t-34.5 100t-15 74.5t-4.5 48z" />
+<glyph unicode="&#xe183;" d="M600 1100q92 0 175 -10.5t141.5 -27t108.5 -36.5t81.5 -40t53.5 -37t31 -27l9 -10v-200q0 -21 -14.5 -33t-34.5 -9l-202 34q-20 3 -34.5 20t-14.5 38v146q-141 24 -300 24t-300 -24v-146q0 -21 -14.5 -38t-34.5 -20l-202 -34q-20 -3 -34.5 9t-14.5 33v200q3 4 9.5 10.5 t31 26t54 37.5t80.5 39.5t109 37.5t141 26.5t175 10.5zM600 795q56 0 97 -9.5t60 -23.5t30 -28t12 -24l1 -10v-50l365 -303q14 -15 24.5 -40t10.5 -45v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v212q0 20 10.5 45t24.5 40l365 303v50 q0 4 1 10.5t12 23t30 29t60 22.5t97 10z" />
+<glyph unicode="&#xe184;" d="M1100 700l-200 -200h-600l-200 200v500h200v-200h200v200h200v-200h200v200h200v-500zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5 t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe185;" d="M700 1100h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-1000h300v1000q0 41 -29.5 70.5t-70.5 29.5zM1100 800h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-700h300v700q0 41 -29.5 70.5t-70.5 29.5zM400 0h-300v400q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-400z " />
+<glyph unicode="&#xe186;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="&#xe187;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 300h-100v200h-100v-200h-100v500h100v-200h100v200h100v-500zM900 700v-300l-100 -100h-200v500h200z M700 700v-300h100v300h-100z" />
+<glyph unicode="&#xe188;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-300h200v-100h-300v500h300v-100zM900 700h-200v-300h200v-100h-300v500h300v-100z" />
+<glyph unicode="&#xe189;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 400l-300 150l300 150v-300zM900 550l-300 -150v300z" />
+<glyph unicode="&#xe190;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM900 300h-700v500h700v-500zM800 700h-130q-38 0 -66.5 -43t-28.5 -108t27 -107t68 -42h130v300zM300 700v-300 h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130z" />
+<glyph unicode="&#xe191;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 700h-200v-100h200v-300h-300v100h200v100h-200v300h300v-100zM900 300h-100v400h-100v100h200v-500z M700 300h-100v100h100v-100z" />
+<glyph unicode="&#xe192;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM300 700h200v-400h-300v500h100v-100zM900 300h-100v400h-100v100h200v-500zM300 600v-200h100v200h-100z M700 300h-100v100h100v-100z" />
+<glyph unicode="&#xe193;" d="M200 1100h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212v500q0 124 88 212t212 88zM100 900v-700h900v700h-900zM500 500l-199 -200h-100v50l199 200v150h-200v100h300v-300zM900 300h-100v400h-100v100h200v-500zM701 300h-100 v100h100v-100z" />
+<glyph unicode="&#xe194;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700h-300v-200h300v-100h-300l-100 100v200l100 100h300v-100z" />
+<glyph unicode="&#xe195;" d="M600 1191q120 0 229.5 -47t188.5 -126t126 -188.5t47 -229.5t-47 -229.5t-126 -188.5t-188.5 -126t-229.5 -47t-229.5 47t-188.5 126t-126 188.5t-47 229.5t47 229.5t126 188.5t188.5 126t229.5 47zM600 1021q-114 0 -211 -56.5t-153.5 -153.5t-56.5 -211t56.5 -211 t153.5 -153.5t211 -56.5t211 56.5t153.5 153.5t56.5 211t-56.5 211t-153.5 153.5t-211 56.5zM800 700v-100l-50 -50l100 -100v-50h-100l-100 100h-150v-100h-100v400h300zM500 700v-100h200v100h-200z" />
+<glyph unicode="&#xe197;" d="M503 1089q110 0 200.5 -59.5t134.5 -156.5q44 14 90 14q120 0 205 -86.5t85 -207t-85 -207t-205 -86.5h-128v250q0 21 -14.5 35.5t-35.5 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-250h-222q-80 0 -136 57.5t-56 136.5q0 69 43 122.5t108 67.5q-2 19 -2 37q0 100 49 185 t134 134t185 49zM525 500h150q10 0 17.5 -7.5t7.5 -17.5v-275h137q21 0 26 -11.5t-8 -27.5l-223 -244q-13 -16 -32 -16t-32 16l-223 244q-13 16 -8 27.5t26 11.5h137v275q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe198;" d="M502 1089q110 0 201 -59.5t135 -156.5q43 15 89 15q121 0 206 -86.5t86 -206.5q0 -99 -60 -181t-150 -110l-378 360q-13 16 -31.5 16t-31.5 -16l-381 -365h-9q-79 0 -135.5 57.5t-56.5 136.5q0 69 43 122.5t108 67.5q-2 19 -2 38q0 100 49 184.5t133.5 134t184.5 49.5z M632 467l223 -228q13 -16 8 -27.5t-26 -11.5h-137v-275q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v275h-137q-21 0 -26 11.5t8 27.5q199 204 223 228q19 19 31.5 19t32.5 -19z" />
+<glyph unicode="&#xe199;" d="M700 100v100h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170l-270 -300h400v-100h-50q-21 0 -35.5 -14.5t-14.5 -35.5v-50h400v50q0 21 -14.5 35.5t-35.5 14.5h-50z" />
+<glyph unicode="&#xe200;" d="M600 1179q94 0 167.5 -56.5t99.5 -145.5q89 -6 150.5 -71.5t61.5 -155.5q0 -61 -29.5 -112.5t-79.5 -82.5q9 -29 9 -55q0 -74 -52.5 -126.5t-126.5 -52.5q-55 0 -100 30v-251q21 0 35.5 -14.5t14.5 -35.5v-50h-300v50q0 21 14.5 35.5t35.5 14.5v251q-45 -30 -100 -30 q-74 0 -126.5 52.5t-52.5 126.5q0 18 4 38q-47 21 -75.5 65t-28.5 97q0 74 52.5 126.5t126.5 52.5q5 0 23 -2q0 2 -1 10t-1 13q0 116 81.5 197.5t197.5 81.5z" />
+<glyph unicode="&#xe201;" d="M1010 1010q111 -111 150.5 -260.5t0 -299t-150.5 -260.5q-83 -83 -191.5 -126.5t-218.5 -43.5t-218.5 43.5t-191.5 126.5q-111 111 -150.5 260.5t0 299t150.5 260.5q83 83 191.5 126.5t218.5 43.5t218.5 -43.5t191.5 -126.5zM476 1065q-4 0 -8 -1q-121 -34 -209.5 -122.5 t-122.5 -209.5q-4 -12 2.5 -23t18.5 -14l36 -9q3 -1 7 -1q23 0 29 22q27 96 98 166q70 71 166 98q11 3 17.5 13.5t3.5 22.5l-9 35q-3 13 -14 19q-7 4 -15 4zM512 920q-4 0 -9 -2q-80 -24 -138.5 -82.5t-82.5 -138.5q-4 -13 2 -24t19 -14l34 -9q4 -1 8 -1q22 0 28 21 q18 58 58.5 98.5t97.5 58.5q12 3 18 13.5t3 21.5l-9 35q-3 12 -14 19q-7 4 -15 4zM719.5 719.5q-49.5 49.5 -119.5 49.5t-119.5 -49.5t-49.5 -119.5t49.5 -119.5t119.5 -49.5t119.5 49.5t49.5 119.5t-49.5 119.5zM855 551q-22 0 -28 -21q-18 -58 -58.5 -98.5t-98.5 -57.5 q-11 -4 -17 -14.5t-3 -21.5l9 -35q3 -12 14 -19q7 -4 15 -4q4 0 9 2q80 24 138.5 82.5t82.5 138.5q4 13 -2.5 24t-18.5 14l-34 9q-4 1 -8 1zM1000 515q-23 0 -29 -22q-27 -96 -98 -166q-70 -71 -166 -98q-11 -3 -17.5 -13.5t-3.5 -22.5l9 -35q3 -13 14 -19q7 -4 15 -4 q4 0 8 1q121 34 209.5 122.5t122.5 209.5q4 12 -2.5 23t-18.5 14l-36 9q-3 1 -7 1z" />
+<glyph unicode="&#xe202;" d="M700 800h300v-380h-180v200h-340v-200h-380v755q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM700 300h162l-212 -212l-212 212h162v200h100v-200zM520 0h-395q-10 0 -17.5 7.5t-7.5 17.5v395zM1000 220v-195q0 -10 -7.5 -17.5t-17.5 -7.5h-195z" />
+<glyph unicode="&#xe203;" d="M700 800h300v-520l-350 350l-550 -550v1095q0 10 7.5 17.5t17.5 7.5h575v-400zM1000 900h-200v200zM862 200h-162v-200h-100v200h-162l212 212zM480 0h-355q-10 0 -17.5 7.5t-7.5 17.5v55h380v-80zM1000 80v-55q0 -10 -7.5 -17.5t-17.5 -7.5h-155v80h180z" />
+<glyph unicode="&#xe204;" d="M1162 800h-162v-200h100l100 -100h-300v300h-162l212 212zM200 800h200q27 0 40 -2t29.5 -10.5t23.5 -30t7 -57.5h300v-100h-600l-200 -350v450h100q0 36 7 57.5t23.5 30t29.5 10.5t40 2zM800 400h240l-240 -400h-800l300 500h500v-100z" />
+<glyph unicode="&#xe205;" d="M650 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM1000 850v150q41 0 70.5 -29.5t29.5 -70.5v-800 q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-1 0 -20 4l246 246l-326 326v324q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM412 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="&#xe206;" d="M450 1100h100q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-300q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h50v50q0 21 14.5 35.5t35.5 14.5zM800 850v150q41 0 70.5 -29.5t29.5 -70.5v-500 h-200v-300h200q0 -36 -7 -57.5t-23.5 -30t-29.5 -10.5t-40 -2h-600q-41 0 -70.5 29.5t-29.5 70.5v800q0 41 29.5 70.5t70.5 29.5v-150q0 -62 44 -106t106 -44h300q62 0 106 44t44 106zM1212 250l-212 -212v162h-200v100h200v162z" />
+<glyph unicode="&#xe209;" d="M658 1197l637 -1104q23 -38 7 -65.5t-60 -27.5h-1276q-44 0 -60 27.5t7 65.5l637 1104q22 39 54 39t54 -39zM704 800h-208q-20 0 -32 -14.5t-8 -34.5l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5zM500 300v-100h200 v100h-200z" />
+<glyph unicode="&#xe210;" d="M425 1100h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM825 800h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM25 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5zM425 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 500h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5 v150q0 10 7.5 17.5t17.5 7.5zM25 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM425 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5 t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM825 200h250q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-250q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe211;" d="M700 1200h100v-200h-100v-100h350q62 0 86.5 -39.5t-3.5 -94.5l-66 -132q-41 -83 -81 -134h-772q-40 51 -81 134l-66 132q-28 55 -3.5 94.5t86.5 39.5h350v100h-100v200h100v100h200v-100zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-12l137 -100 h-950l138 100h-13q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe212;" d="M600 1300q40 0 68.5 -29.5t28.5 -70.5h-194q0 41 28.5 70.5t68.5 29.5zM443 1100h314q18 -37 18 -75q0 -8 -3 -25h328q41 0 44.5 -16.5t-30.5 -38.5l-175 -145h-678l-178 145q-34 22 -29 38.5t46 16.5h328q-3 17 -3 25q0 38 18 75zM250 700h700q21 0 35.5 -14.5 t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-150v-200l275 -200h-950l275 200v200h-150q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe213;" d="M600 1181q75 0 128 -53t53 -128t-53 -128t-128 -53t-128 53t-53 128t53 128t128 53zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13 l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe214;" d="M600 1300q47 0 92.5 -53.5t71 -123t25.5 -123.5q0 -78 -55.5 -133.5t-133.5 -55.5t-133.5 55.5t-55.5 133.5q0 62 34 143l144 -143l111 111l-163 163q34 26 63 26zM602 798h46q34 0 55.5 -28.5t21.5 -86.5q0 -76 39 -183h-324q39 107 39 183q0 58 21.5 86.5t56.5 28.5h45 zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe215;" d="M600 1200l300 -161v-139h-300q0 -57 18.5 -108t50 -91.5t63 -72t70 -67.5t57.5 -61h-530q-60 83 -90.5 177.5t-30.5 178.5t33 164.5t87.5 139.5t126 96.5t145.5 41.5v-98zM250 400h700q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-13l138 -100h-950l137 100 h-12q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5zM50 100h1100q21 0 35.5 -14.5t14.5 -35.5v-50h-1200v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe216;" d="M600 1300q41 0 70.5 -29.5t29.5 -70.5v-78q46 -26 73 -72t27 -100v-50h-400v50q0 54 27 100t73 72v78q0 41 29.5 70.5t70.5 29.5zM400 800h400q54 0 100 -27t72 -73h-172v-100h200v-100h-200v-100h200v-100h-200v-100h200q0 -83 -58.5 -141.5t-141.5 -58.5h-400 q-83 0 -141.5 58.5t-58.5 141.5v400q0 83 58.5 141.5t141.5 58.5z" />
+<glyph unicode="&#xe218;" d="M150 1100h900q21 0 35.5 -14.5t14.5 -35.5v-500q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v500q0 21 14.5 35.5t35.5 14.5zM125 400h950q10 0 17.5 -7.5t7.5 -17.5v-50q0 -10 -7.5 -17.5t-17.5 -7.5h-283l224 -224q13 -13 13 -31.5t-13 -32 t-31.5 -13.5t-31.5 13l-88 88h-524l-87 -88q-13 -13 -32 -13t-32 13.5t-13 32t13 31.5l224 224h-289q-10 0 -17.5 7.5t-7.5 17.5v50q0 10 7.5 17.5t17.5 7.5zM541 300l-100 -100h324l-100 100h-124z" />
+<glyph unicode="&#xe219;" d="M200 1100h800q83 0 141.5 -58.5t58.5 -141.5v-200h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100q0 41 -29.5 70.5t-70.5 29.5h-250q-41 0 -70.5 -29.5t-29.5 -70.5h-100v200q0 83 58.5 141.5t141.5 58.5zM100 600h1000q41 0 70.5 -29.5 t29.5 -70.5v-300h-1200v300q0 41 29.5 70.5t70.5 29.5zM300 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200zM1100 100v-50q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v50h200z" />
+<glyph unicode="&#xe221;" d="M480 1165l682 -683q31 -31 31 -75.5t-31 -75.5l-131 -131h-481l-517 518q-32 31 -32 75.5t32 75.5l295 296q31 31 75.5 31t76.5 -31zM108 794l342 -342l303 304l-341 341zM250 100h800q21 0 35.5 -14.5t14.5 -35.5v-50h-900v50q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe223;" d="M1057 647l-189 506q-8 19 -27.5 33t-40.5 14h-400q-21 0 -40.5 -14t-27.5 -33l-189 -506q-8 -19 1.5 -33t30.5 -14h625v-150q0 -21 14.5 -35.5t35.5 -14.5t35.5 14.5t14.5 35.5v150h125q21 0 30.5 14t1.5 33zM897 0h-595v50q0 21 14.5 35.5t35.5 14.5h50v50 q0 21 14.5 35.5t35.5 14.5h48v300h200v-300h47q21 0 35.5 -14.5t14.5 -35.5v-50h50q21 0 35.5 -14.5t14.5 -35.5v-50z" />
+<glyph unicode="&#xe224;" d="M900 800h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-375v591l-300 300v84q0 10 7.5 17.5t17.5 7.5h375v-400zM1200 900h-200v200zM400 600h300v-575q0 -10 -7.5 -17.5t-17.5 -7.5h-650q-10 0 -17.5 7.5t-7.5 17.5v950q0 10 7.5 17.5t17.5 7.5h375v-400zM700 700h-200v200z " />
+<glyph unicode="&#xe225;" d="M484 1095h195q75 0 146 -32.5t124 -86t89.5 -122.5t48.5 -142q18 -14 35 -20q31 -10 64.5 6.5t43.5 48.5q10 34 -15 71q-19 27 -9 43q5 8 12.5 11t19 -1t23.5 -16q41 -44 39 -105q-3 -63 -46 -106.5t-104 -43.5h-62q-7 -55 -35 -117t-56 -100l-39 -234q-3 -20 -20 -34.5 t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l12 70q-49 -14 -91 -14h-195q-24 0 -65 8l-11 -64q-3 -20 -20 -34.5t-38 -14.5h-100q-21 0 -33 14.5t-9 34.5l26 157q-84 74 -128 175l-159 53q-19 7 -33 26t-14 40v50q0 21 14.5 35.5t35.5 14.5h124q11 87 56 166l-111 95 q-16 14 -12.5 23.5t24.5 9.5h203q116 101 250 101zM675 1000h-250q-10 0 -17.5 -7.5t-7.5 -17.5v-50q0 -10 7.5 -17.5t17.5 -7.5h250q10 0 17.5 7.5t7.5 17.5v50q0 10 -7.5 17.5t-17.5 7.5z" />
+<glyph unicode="&#xe226;" d="M641 900l423 247q19 8 42 2.5t37 -21.5l32 -38q14 -15 12.5 -36t-17.5 -34l-139 -120h-390zM50 1100h106q67 0 103 -17t66 -71l102 -212h823q21 0 35.5 -14.5t14.5 -35.5v-50q0 -21 -14 -40t-33 -26l-737 -132q-23 -4 -40 6t-26 25q-42 67 -100 67h-300q-62 0 -106 44 t-44 106v200q0 62 44 106t106 44zM173 928h-80q-19 0 -28 -14t-9 -35v-56q0 -51 42 -51h134q16 0 21.5 8t5.5 24q0 11 -16 45t-27 51q-18 28 -43 28zM550 727q-32 0 -54.5 -22.5t-22.5 -54.5t22.5 -54.5t54.5 -22.5t54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5zM130 389 l152 130q18 19 34 24t31 -3.5t24.5 -17.5t25.5 -28q28 -35 50.5 -51t48.5 -13l63 5l48 -179q13 -61 -3.5 -97.5t-67.5 -79.5l-80 -69q-47 -40 -109 -35.5t-103 51.5l-130 151q-40 47 -35.5 109.5t51.5 102.5zM380 377l-102 -88q-31 -27 2 -65l37 -43q13 -15 27.5 -19.5 t31.5 6.5l61 53q19 16 14 49q-2 20 -12 56t-17 45q-11 12 -19 14t-23 -8z" />
+<glyph unicode="&#xe227;" d="M625 1200h150q10 0 17.5 -7.5t7.5 -17.5v-109q79 -33 131 -87.5t53 -128.5q1 -46 -15 -84.5t-39 -61t-46 -38t-39 -21.5l-17 -6q6 0 15 -1.5t35 -9t50 -17.5t53 -30t50 -45t35.5 -64t14.5 -84q0 -59 -11.5 -105.5t-28.5 -76.5t-44 -51t-49.5 -31.5t-54.5 -16t-49.5 -6.5 t-43.5 -1v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-100v-75q0 -10 -7.5 -17.5t-17.5 -7.5h-150q-10 0 -17.5 7.5t-7.5 17.5v75h-175q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5h75v600h-75q-10 0 -17.5 7.5t-7.5 17.5v150 q0 10 7.5 17.5t17.5 7.5h175v75q0 10 7.5 17.5t17.5 7.5h150q10 0 17.5 -7.5t7.5 -17.5v-75h100v75q0 10 7.5 17.5t17.5 7.5zM400 900v-200h263q28 0 48.5 10.5t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-263zM400 500v-200h363q28 0 48.5 10.5 t30 25t15 29t5.5 25.5l1 10q0 4 -0.5 11t-6 24t-15 30t-30 24t-48.5 11h-363z" />
+<glyph unicode="&#xe230;" d="M212 1198h780q86 0 147 -61t61 -147v-416q0 -51 -18 -142.5t-36 -157.5l-18 -66q-29 -87 -93.5 -146.5t-146.5 -59.5h-572q-82 0 -147 59t-93 147q-8 28 -20 73t-32 143.5t-20 149.5v416q0 86 61 147t147 61zM600 1045q-70 0 -132.5 -11.5t-105.5 -30.5t-78.5 -41.5 t-57 -45t-36 -41t-20.5 -30.5l-6 -12l156 -243h560l156 243q-2 5 -6 12.5t-20 29.5t-36.5 42t-57 44.5t-79 42t-105 29.5t-132.5 12zM762 703h-157l195 261z" />
+<glyph unicode="&#xe231;" d="M475 1300h150q103 0 189 -86t86 -189v-500q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="&#xe232;" d="M475 1300h96q0 -150 89.5 -239.5t239.5 -89.5v-446q0 -41 -42 -83t-83 -42h-450q-41 0 -83 42t-42 83v500q0 103 86 189t189 86zM700 300v-225q0 -21 -27 -48t-48 -27h-150q-21 0 -48 27t-27 48v225h300z" />
+<glyph unicode="&#xe233;" d="M1294 767l-638 -283l-378 170l-78 -60v-224l100 -150v-199l-150 148l-150 -149v200l100 150v250q0 4 -0.5 10.5t0 9.5t1 8t3 8t6.5 6l47 40l-147 65l642 283zM1000 380l-350 -166l-350 166v147l350 -165l350 165v-147z" />
+<glyph unicode="&#xe234;" d="M250 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM650 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM1050 800q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="&#xe235;" d="M550 1100q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 700q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44zM550 300q62 0 106 -44t44 -106t-44 -106t-106 -44t-106 44t-44 106t44 106t106 44z" />
+<glyph unicode="&#xe236;" d="M125 1100h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5zM125 700h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5 t17.5 7.5zM125 300h950q10 0 17.5 -7.5t7.5 -17.5v-150q0 -10 -7.5 -17.5t-17.5 -7.5h-950q-10 0 -17.5 7.5t-7.5 17.5v150q0 10 7.5 17.5t17.5 7.5z" />
+<glyph unicode="&#xe237;" d="M350 1200h500q162 0 256 -93.5t94 -256.5v-500q0 -165 -93.5 -257.5t-256.5 -92.5h-500q-165 0 -257.5 92.5t-92.5 257.5v500q0 165 92.5 257.5t257.5 92.5zM900 1000h-600q-41 0 -70.5 -29.5t-29.5 -70.5v-600q0 -41 29.5 -70.5t70.5 -29.5h600q41 0 70.5 29.5 t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5zM350 900h500q21 0 35.5 -14.5t14.5 -35.5v-300q0 -21 -14.5 -35.5t-35.5 -14.5h-500q-21 0 -35.5 14.5t-14.5 35.5v300q0 21 14.5 35.5t35.5 14.5zM400 800v-200h400v200h-400z" />
+<glyph unicode="&#xe238;" d="M150 1100h1000q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5t-35.5 -14.5h-50v-200h50q21 0 35.5 -14.5t14.5 -35.5t-14.5 -35.5 t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5h50v200h-50q-21 0 -35.5 14.5t-14.5 35.5t14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe239;" d="M650 1187q87 -67 118.5 -156t0 -178t-118.5 -155q-87 66 -118.5 155t0 178t118.5 156zM300 800q124 0 212 -88t88 -212q-124 0 -212 88t-88 212zM1000 800q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM300 500q124 0 212 -88t88 -212q-124 0 -212 88t-88 212z M1000 500q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM700 199v-144q0 -21 -14.5 -35.5t-35.5 -14.5t-35.5 14.5t-14.5 35.5v142q40 -4 43 -4q17 0 57 6z" />
+<glyph unicode="&#xe240;" d="M745 878l69 19q25 6 45 -12l298 -295q11 -11 15 -26.5t-2 -30.5q-5 -14 -18 -23.5t-28 -9.5h-8q1 0 1 -13q0 -29 -2 -56t-8.5 -62t-20 -63t-33 -53t-51 -39t-72.5 -14h-146q-184 0 -184 288q0 24 10 47q-20 4 -62 4t-63 -4q11 -24 11 -47q0 -288 -184 -288h-142 q-48 0 -84.5 21t-56 51t-32 71.5t-16 75t-3.5 68.5q0 13 2 13h-7q-15 0 -27.5 9.5t-18.5 23.5q-6 15 -2 30.5t15 25.5l298 296q20 18 46 11l76 -19q20 -5 30.5 -22.5t5.5 -37.5t-22.5 -31t-37.5 -5l-51 12l-182 -193h891l-182 193l-44 -12q-20 -5 -37.5 6t-22.5 31t6 37.5 t31 22.5z" />
+<glyph unicode="&#xe241;" d="M1200 900h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-200v-850q0 -22 25 -34.5t50 -13.5l25 -2v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v850h-200q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h1000v-300zM500 450h-25q0 15 -4 24.5t-9 14.5t-17 7.5t-20 3t-25 0.5h-100v-425q0 -11 12.5 -17.5t25.5 -7.5h12v-50h-200v50q50 0 50 25v425h-100q-17 0 -25 -0.5t-20 -3t-17 -7.5t-9 -14.5t-4 -24.5h-25v150h500v-150z" />
+<glyph unicode="&#xe242;" d="M1000 300v50q-25 0 -55 32q-14 14 -25 31t-16 27l-4 11l-289 747h-69l-300 -754q-18 -35 -39 -56q-9 -9 -24.5 -18.5t-26.5 -14.5l-11 -5v-50h273v50q-49 0 -78.5 21.5t-11.5 67.5l69 176h293l61 -166q13 -34 -3.5 -66.5t-55.5 -32.5v-50h312zM412 691l134 342l121 -342 h-255zM1100 150v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5z" />
+<glyph unicode="&#xe243;" d="M50 1200h1100q21 0 35.5 -14.5t14.5 -35.5v-1100q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-21 0 -35.5 14.5t-14.5 35.5v1100q0 21 14.5 35.5t35.5 14.5zM611 1118h-70q-13 0 -18 -12l-299 -753q-17 -32 -35 -51q-18 -18 -56 -34q-12 -5 -12 -18v-50q0 -8 5.5 -14t14.5 -6 h273q8 0 14 6t6 14v50q0 8 -6 14t-14 6q-55 0 -71 23q-10 14 0 39l63 163h266l57 -153q11 -31 -6 -55q-12 -17 -36 -17q-8 0 -14 -6t-6 -14v-50q0 -8 6 -14t14 -6h313q8 0 14 6t6 14v50q0 7 -5.5 13t-13.5 7q-17 0 -42 25q-25 27 -40 63h-1l-288 748q-5 12 -19 12zM639 611 h-197l103 264z" />
+<glyph unicode="&#xe244;" d="M1200 1100h-1200v100h1200v-100zM50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 1000h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM700 900v-300h300v300h-300z" />
+<glyph unicode="&#xe245;" d="M50 1200h400q21 0 35.5 -14.5t14.5 -35.5v-900q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v900q0 21 14.5 35.5t35.5 14.5zM650 700h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400 q0 21 14.5 35.5t35.5 14.5zM700 600v-300h300v300h-300zM1200 0h-1200v100h1200v-100z" />
+<glyph unicode="&#xe246;" d="M50 1000h400q21 0 35.5 -14.5t14.5 -35.5v-350h100v150q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h100v-100h-100v-150q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-100v-350q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5v800q0 21 14.5 35.5t35.5 14.5zM700 700v-300h300v300h-300z" />
+<glyph unicode="&#xe247;" d="M100 0h-100v1200h100v-1200zM250 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM300 1000v-300h300v300h-300zM250 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe248;" d="M600 1100h150q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-100h450q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h350v100h-150q-21 0 -35.5 14.5 t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5h150v100h100v-100zM400 1000v-300h300v300h-300z" />
+<glyph unicode="&#xe249;" d="M1200 0h-100v1200h100v-1200zM550 1100h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM600 1000v-300h300v300h-300zM50 500h900q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-900q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5z" />
+<glyph unicode="&#xe250;" d="M865 565l-494 -494q-23 -23 -41 -23q-14 0 -22 13.5t-8 38.5v1000q0 25 8 38.5t22 13.5q18 0 41 -23l494 -494q14 -14 14 -35t-14 -35z" />
+<glyph unicode="&#xe251;" d="M335 635l494 494q29 29 50 20.5t21 -49.5v-1000q0 -41 -21 -49.5t-50 20.5l-494 494q-14 14 -14 35t14 35z" />
+<glyph unicode="&#xe252;" d="M100 900h1000q41 0 49.5 -21t-20.5 -50l-494 -494q-14 -14 -35 -14t-35 14l-494 494q-29 29 -20.5 50t49.5 21z" />
+<glyph unicode="&#xe253;" d="M635 865l494 -494q29 -29 20.5 -50t-49.5 -21h-1000q-41 0 -49.5 21t20.5 50l494 494q14 14 35 14t35 -14z" />
+<glyph unicode="&#xe254;" d="M700 741v-182l-692 -323v221l413 193l-413 193v221zM1200 0h-800v200h800v-200z" />
+<glyph unicode="&#xe255;" d="M1200 900h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300zM0 700h50q0 21 4 37t9.5 26.5t18 17.5t22 11t28.5 5.5t31 2t37 0.5h100v-550q0 -22 -25 -34.5t-50 -13.5l-25 -2v-100h400v100q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v550h100q25 0 37 -0.5t31 -2 t28.5 -5.5t22 -11t18 -17.5t9.5 -26.5t4 -37h50v300h-800v-300z" />
+<glyph unicode="&#xe256;" d="M800 700h-50q0 21 -4 37t-9.5 26.5t-18 17.5t-22 11t-28.5 5.5t-31 2t-37 0.5h-100v-550q0 -22 25 -34.5t50 -14.5l25 -1v-100h-400v100q4 0 11 0.5t24 3t30 7t24 15t11 24.5v550h-100q-25 0 -37 -0.5t-31 -2t-28.5 -5.5t-22 -11t-18 -17.5t-9.5 -26.5t-4 -37h-50v300 h800v-300zM1100 200h-200v-100h200v-100h-300v300h200v100h-200v100h300v-300z" />
+<glyph unicode="&#xe257;" d="M701 1098h160q16 0 21 -11t-7 -23l-464 -464l464 -464q12 -12 7 -23t-21 -11h-160q-13 0 -23 9l-471 471q-7 8 -7 18t7 18l471 471q10 9 23 9z" />
+<glyph unicode="&#xe258;" d="M339 1098h160q13 0 23 -9l471 -471q7 -8 7 -18t-7 -18l-471 -471q-10 -9 -23 -9h-160q-16 0 -21 11t7 23l464 464l-464 464q-12 12 -7 23t21 11z" />
+<glyph unicode="&#xe259;" d="M1087 882q11 -5 11 -21v-160q0 -13 -9 -23l-471 -471q-8 -7 -18 -7t-18 7l-471 471q-9 10 -9 23v160q0 16 11 21t23 -7l464 -464l464 464q12 12 23 7z" />
+<glyph unicode="&#xe260;" d="M618 993l471 -471q9 -10 9 -23v-160q0 -16 -11 -21t-23 7l-464 464l-464 -464q-12 -12 -23 -7t-11 21v160q0 13 9 23l471 471q8 7 18 7t18 -7z" />
+<glyph unicode="&#xf8ff;" d="M1000 1200q0 -124 -88 -212t-212 -88q0 124 88 212t212 88zM450 1000h100q21 0 40 -14t26 -33l79 -194q5 1 16 3q34 6 54 9.5t60 7t65.5 1t61 -10t56.5 -23t42.5 -42t29 -64t5 -92t-19.5 -121.5q-1 -7 -3 -19.5t-11 -50t-20.5 -73t-32.5 -81.5t-46.5 -83t-64 -70 t-82.5 -50q-13 -5 -42 -5t-65.5 2.5t-47.5 2.5q-14 0 -49.5 -3.5t-63 -3.5t-43.5 7q-57 25 -104.5 78.5t-75 111.5t-46.5 112t-26 90l-7 35q-15 63 -18 115t4.5 88.5t26 64t39.5 43.5t52 25.5t58.5 13t62.5 2t59.5 -4.5t55.5 -8l-147 192q-12 18 -5.5 30t27.5 12z" />
+<glyph unicode="&#x1f511;" d="M250 1200h600q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-150v-500l-255 -178q-19 -9 -32 -1t-13 29v650h-150q-21 0 -35.5 14.5t-14.5 35.5v400q0 21 14.5 35.5t35.5 14.5zM400 1100v-100h300v100h-300z" />
+<glyph unicode="&#x1f6aa;" d="M250 1200h750q39 0 69.5 -40.5t30.5 -84.5v-933l-700 -117v950l600 125h-700v-1000h-100v1025q0 23 15.5 49t34.5 26zM500 525v-100l100 20v100z" />
+</font>
+</defs></svg> 
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf
new file mode 100644
index 0000000..1413fc6
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff
new file mode 100644
index 0000000..9e61285
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2
new file mode 100644
index 0000000..64539b5
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/js/bootstrap.min.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/js/bootstrap.min.js
new file mode 100644
index 0000000..9bcd2fc
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/bootstrap/js/bootstrap.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under the MIT license
+ */
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){
+this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css
new file mode 100644
index 0000000..7400cf0
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css
@@ -0,0 +1 @@
+table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important;border-collapse:separate !important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;box-sizing:content-box}table.dataTable td.dataTables_empty,table.dataTable th.dataTables_empty{text-align:center}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:0.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}div.dataTables_wrapper div.dataTables_processing{position:absolute;top:50%;left:50%;width:200px;margin-left:-100px;margin-top:-26px;text-align:center;padding:1em 0}table.dataTable thead>tr>th.sorting_asc,table.dataTable thead>tr>th.sorting_desc,table.dataTable thead>tr>th.sorting,table.dataTable thead>tr>td.sorting_asc,table.dataTable thead>tr>td.sorting_desc,table.dataTable thead>tr>td.sorting{padding-right:30px}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{position:absolute;bottom:8px;right:8px;display:block;font-family:'Glyphicons Halflings';opacity:0.5}table.dataTable thead .sorting:after{opacity:0.2;content:"\e150"}table.dataTable thead .sorting_asc:after{content:"\e155"}table.dataTable thead .sorting_desc:after{content:"\e156"}table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{color:#eee}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody table thead .sorting:after,div.dataTables_scrollBody table thead .sorting_asc:after,div.dataTables_scrollBody table thead .sorting_desc:after{display:none}div.dataTables_scrollBody table tbody tr:first-child th,div.dataTables_scrollBody table tbody tr:first-child td{border-top:none}div.dataTables_scrollFoot table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-condensed>thead>tr>th{padding-right:20px}table.dataTable.table-condensed .sorting:after,table.dataTable.table-condensed .sorting_asc:after,table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:0}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0}div.table-responsive>div.dataTables_wrapper>div.row{margin:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:first-child{padding-left:0}div.table-responsive>div.dataTables_wrapper>div.row>div[class^="col-"]:last-child{padding-right:0}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js
new file mode 100644
index 0000000..98661c6
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js
@@ -0,0 +1,8 @@
+/*!
+ DataTables Bootstrap 3 integration
+ ©2011-2015 SpryMedia Ltd - datatables.net/license
+*/
+(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,d){a||(a=window);if(!d||!d.fn.dataTable)d=require("datatables.net")(a,d).$;return b(d,a,a.document)}:b(jQuery,window,document)})(function(b,a,d,m){var f=b.fn.dataTable;b.extend(!0,f.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});b.extend(f.ext.classes,
+{sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm",sProcessing:"dataTables_processing panel panel-default"});f.ext.renderer.pageButton.bootstrap=function(a,h,r,s,j,n){var o=new f.Api(a),t=a.oClasses,k=a.oLanguage.oPaginate,u=a.oLanguage.oAria.paginate||{},e,g,p=0,q=function(d,f){var l,h,i,c,m=function(a){a.preventDefault();!b(a.currentTarget).hasClass("disabled")&&o.page()!=a.data.action&&o.page(a.data.action).draw("page")};
+l=0;for(h=f.length;l<h;l++)if(c=f[l],b.isArray(c))q(d,c);else{g=e="";switch(c){case "ellipsis":e="&#x2026;";g="disabled";break;case "first":e=k.sFirst;g=c+(0<j?"":" disabled");break;case "previous":e=k.sPrevious;g=c+(0<j?"":" disabled");break;case "next":e=k.sNext;g=c+(j<n-1?"":" disabled");break;case "last":e=k.sLast;g=c+(j<n-1?"":" disabled");break;default:e=c+1,g=j===c?"active":""}e&&(i=b("<li>",{"class":t.sPageButton+" "+g,id:0===r&&"string"===typeof c?a.sTableId+"_"+c:null}).append(b("<a>",{href:"#",
+"aria-controls":a.sTableId,"aria-label":u[c],"data-dt-idx":p,tabindex:a.iTabIndex}).html(e)).appendTo(d),a.oApi._fnBindAction(i,{action:c},m),p++)}},i;try{i=b(h).find(d.activeElement).data("dt-idx")}catch(v){}q(b(h).empty().html('<ul class="pagination"/>').children("ul"),s);i!==m&&b(h).find("[data-dt-idx="+i+"]").focus()};return f});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/datatables.net/js/jquery.dataTables.min.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/datatables.net/js/jquery.dataTables.min.js
new file mode 100644
index 0000000..07af1c3
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/datatables.net/js/jquery.dataTables.min.js
@@ -0,0 +1,166 @@
+/*!
+ DataTables 1.10.19
+ ©2008-2018 SpryMedia Ltd - datatables.net/license
+*/
+(function(h){"function"===typeof define&&define.amd?define(["jquery"],function(E){return h(E,window,document)}):"object"===typeof exports?module.exports=function(E,H){E||(E=window);H||(H="undefined"!==typeof window?require("jquery"):require("jquery")(E));return h(H,E,E.document)}:h(jQuery,window,document)})(function(h,E,H,k){function Z(a){var b,c,d={};h.each(a,function(e){if((b=e.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(b[1]+" "))c=e.replace(b[0],b[2].toLowerCase()),
+d[c]=e,"o"===b[1]&&Z(a[e])});a._hungarianMap=d}function J(a,b,c){a._hungarianMap||Z(a);var d;h.each(b,function(e){d=a._hungarianMap[e];if(d!==k&&(c||b[d]===k))"o"===d.charAt(0)?(b[d]||(b[d]={}),h.extend(!0,b[d],b[e]),J(a[d],b[d],c)):b[d]=b[e]})}function Ca(a){var b=n.defaults.oLanguage,c=b.sDecimal;c&&Da(c);if(a){var d=a.sZeroRecords;!a.sEmptyTable&&(d&&"No data available in table"===b.sEmptyTable)&&F(a,a,"sZeroRecords","sEmptyTable");!a.sLoadingRecords&&(d&&"Loading..."===b.sLoadingRecords)&&F(a,
+a,"sZeroRecords","sLoadingRecords");a.sInfoThousands&&(a.sThousands=a.sInfoThousands);(a=a.sDecimal)&&c!==a&&Da(a)}}function fb(a){A(a,"ordering","bSort");A(a,"orderMulti","bSortMulti");A(a,"orderClasses","bSortClasses");A(a,"orderCellsTop","bSortCellsTop");A(a,"order","aaSorting");A(a,"orderFixed","aaSortingFixed");A(a,"paging","bPaginate");A(a,"pagingType","sPaginationType");A(a,"pageLength","iDisplayLength");A(a,"searching","bFilter");"boolean"===typeof a.sScrollX&&(a.sScrollX=a.sScrollX?"100%":
+"");"boolean"===typeof a.scrollX&&(a.scrollX=a.scrollX?"100%":"");if(a=a.aoSearchCols)for(var b=0,c=a.length;b<c;b++)a[b]&&J(n.models.oSearch,a[b])}function gb(a){A(a,"orderable","bSortable");A(a,"orderData","aDataSort");A(a,"orderSequence","asSorting");A(a,"orderDataType","sortDataType");var b=a.aDataSort;"number"===typeof b&&!h.isArray(b)&&(a.aDataSort=[b])}function hb(a){if(!n.__browser){var b={};n.__browser=b;var c=h("<div/>").css({position:"fixed",top:0,left:-1*h(E).scrollLeft(),height:1,width:1,
+overflow:"hidden"}).append(h("<div/>").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(h("<div/>").css({width:"100%",height:10}))).appendTo("body"),d=c.children(),e=d.children();b.barWidth=d[0].offsetWidth-d[0].clientWidth;b.bScrollOversize=100===e[0].offsetWidth&&100!==d[0].clientWidth;b.bScrollbarLeft=1!==Math.round(e.offset().left);b.bBounding=c[0].getBoundingClientRect().width?!0:!1;c.remove()}h.extend(a.oBrowser,n.__browser);a.oScroll.iBarWidth=n.__browser.barWidth}
+function ib(a,b,c,d,e,f){var g,j=!1;c!==k&&(g=c,j=!0);for(;d!==e;)a.hasOwnProperty(d)&&(g=j?b(g,a[d],d,a):a[d],j=!0,d+=f);return g}function Ea(a,b){var c=n.defaults.column,d=a.aoColumns.length,c=h.extend({},n.models.oColumn,c,{nTh:b?b:H.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mData:c.mData?c.mData:d,idx:d});a.aoColumns.push(c);c=a.aoPreSearchCols;c[d]=h.extend({},n.models.oSearch,c[d]);ka(a,d,h(b).data())}function ka(a,b,c){var b=a.aoColumns[b],
+d=a.oClasses,e=h(b.nTh);if(!b.sWidthOrig){b.sWidthOrig=e.attr("width")||null;var f=(e.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);f&&(b.sWidthOrig=f[1])}c!==k&&null!==c&&(gb(c),J(n.defaults.column,c),c.mDataProp!==k&&!c.mData&&(c.mData=c.mDataProp),c.sType&&(b._sManualType=c.sType),c.className&&!c.sClass&&(c.sClass=c.className),c.sClass&&e.addClass(c.sClass),h.extend(b,c),F(b,c,"sWidth","sWidthOrig"),c.iDataSort!==k&&(b.aDataSort=[c.iDataSort]),F(b,c,"aDataSort"));var g=b.mData,j=S(g),i=b.mRender?
+S(b.mRender):null,c=function(a){return"string"===typeof a&&-1!==a.indexOf("@")};b._bAttrSrc=h.isPlainObject(g)&&(c(g.sort)||c(g.type)||c(g.filter));b._setter=null;b.fnGetData=function(a,b,c){var d=j(a,b,k,c);return i&&b?i(d,b,a,c):d};b.fnSetData=function(a,b,c){return N(g)(a,b,c)};"number"!==typeof g&&(a._rowReadObject=!0);a.oFeatures.bSort||(b.bSortable=!1,e.addClass(d.sSortableNone));a=-1!==h.inArray("asc",b.asSorting);c=-1!==h.inArray("desc",b.asSorting);!b.bSortable||!a&&!c?(b.sSortingClass=d.sSortableNone,
+b.sSortingClassJUI=""):a&&!c?(b.sSortingClass=d.sSortableAsc,b.sSortingClassJUI=d.sSortJUIAscAllowed):!a&&c?(b.sSortingClass=d.sSortableDesc,b.sSortingClassJUI=d.sSortJUIDescAllowed):(b.sSortingClass=d.sSortable,b.sSortingClassJUI=d.sSortJUI)}function $(a){if(!1!==a.oFeatures.bAutoWidth){var b=a.aoColumns;Fa(a);for(var c=0,d=b.length;c<d;c++)b[c].nTh.style.width=b[c].sWidth}b=a.oScroll;(""!==b.sY||""!==b.sX)&&la(a);r(a,null,"column-sizing",[a])}function aa(a,b){var c=ma(a,"bVisible");return"number"===
+typeof c[b]?c[b]:null}function ba(a,b){var c=ma(a,"bVisible"),c=h.inArray(b,c);return-1!==c?c:null}function V(a){var b=0;h.each(a.aoColumns,function(a,d){d.bVisible&&"none"!==h(d.nTh).css("display")&&b++});return b}function ma(a,b){var c=[];h.map(a.aoColumns,function(a,e){a[b]&&c.push(e)});return c}function Ga(a){var b=a.aoColumns,c=a.aoData,d=n.ext.type.detect,e,f,g,j,i,h,l,q,t;e=0;for(f=b.length;e<f;e++)if(l=b[e],t=[],!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){g=0;for(j=d.length;g<
+j;g++){i=0;for(h=c.length;i<h;i++){t[i]===k&&(t[i]=B(a,i,e,"type"));q=d[g](t[i],a);if(!q&&g!==d.length-1)break;if("html"===q)break}if(q){l.sType=q;break}}l.sType||(l.sType="string")}}function jb(a,b,c,d){var e,f,g,j,i,m,l=a.aoColumns;if(b)for(e=b.length-1;0<=e;e--){m=b[e];var q=m.targets!==k?m.targets:m.aTargets;h.isArray(q)||(q=[q]);f=0;for(g=q.length;f<g;f++)if("number"===typeof q[f]&&0<=q[f]){for(;l.length<=q[f];)Ea(a);d(q[f],m)}else if("number"===typeof q[f]&&0>q[f])d(l.length+q[f],m);else if("string"===
+typeof q[f]){j=0;for(i=l.length;j<i;j++)("_all"==q[f]||h(l[j].nTh).hasClass(q[f]))&&d(j,m)}}if(c){e=0;for(a=c.length;e<a;e++)d(e,c[e])}}function O(a,b,c,d){var e=a.aoData.length,f=h.extend(!0,{},n.models.oRow,{src:c?"dom":"data",idx:e});f._aData=b;a.aoData.push(f);for(var g=a.aoColumns,j=0,i=g.length;j<i;j++)g[j].sType=null;a.aiDisplayMaster.push(e);b=a.rowIdFn(b);b!==k&&(a.aIds[b]=f);(c||!a.oFeatures.bDeferRender)&&Ha(a,e,c,d);return e}function na(a,b){var c;b instanceof h||(b=h(b));return b.map(function(b,
+e){c=Ia(a,e);return O(a,c.data,e,c.cells)})}function B(a,b,c,d){var e=a.iDraw,f=a.aoColumns[c],g=a.aoData[b]._aData,j=f.sDefaultContent,i=f.fnGetData(g,d,{settings:a,row:b,col:c});if(i===k)return a.iDrawError!=e&&null===j&&(K(a,0,"Requested unknown parameter "+("function"==typeof f.mData?"{function}":"'"+f.mData+"'")+" for row "+b+", column "+c,4),a.iDrawError=e),j;if((i===g||null===i)&&null!==j&&d!==k)i=j;else if("function"===typeof i)return i.call(g);return null===i&&"display"==d?"":i}function kb(a,
+b,c,d){a.aoColumns[c].fnSetData(a.aoData[b]._aData,d,{settings:a,row:b,col:c})}function Ja(a){return h.map(a.match(/(\\.|[^\.])+/g)||[""],function(a){return a.replace(/\\\./g,".")})}function S(a){if(h.isPlainObject(a)){var b={};h.each(a,function(a,c){c&&(b[a]=S(c))});return function(a,c,f,g){var j=b[c]||b._;return j!==k?j(a,c,f,g):a}}if(null===a)return function(a){return a};if("function"===typeof a)return function(b,c,f,g){return a(b,c,f,g)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||
+-1!==a.indexOf("("))){var c=function(a,b,f){var g,j;if(""!==f){j=Ja(f);for(var i=0,m=j.length;i<m;i++){f=j[i].match(ca);g=j[i].match(W);if(f){j[i]=j[i].replace(ca,"");""!==j[i]&&(a=a[j[i]]);g=[];j.splice(0,i+1);j=j.join(".");if(h.isArray(a)){i=0;for(m=a.length;i<m;i++)g.push(c(a[i],b,j))}a=f[0].substring(1,f[0].length-1);a=""===a?g:g.join(a);break}else if(g){j[i]=j[i].replace(W,"");a=a[j[i]]();continue}if(null===a||a[j[i]]===k)return k;a=a[j[i]]}}return a};return function(b,e){return c(b,e,a)}}return function(b){return b[a]}}
+function N(a){if(h.isPlainObject(a))return N(a._);if(null===a)return function(){};if("function"===typeof a)return function(b,d,e){a(b,"set",d,e)};if("string"===typeof a&&(-1!==a.indexOf(".")||-1!==a.indexOf("[")||-1!==a.indexOf("("))){var b=function(a,d,e){var e=Ja(e),f;f=e[e.length-1];for(var g,j,i=0,m=e.length-1;i<m;i++){g=e[i].match(ca);j=e[i].match(W);if(g){e[i]=e[i].replace(ca,"");a[e[i]]=[];f=e.slice();f.splice(0,i+1);g=f.join(".");if(h.isArray(d)){j=0;for(m=d.length;j<m;j++)f={},b(f,d[j],g),
+a[e[i]].push(f)}else a[e[i]]=d;return}j&&(e[i]=e[i].replace(W,""),a=a[e[i]](d));if(null===a[e[i]]||a[e[i]]===k)a[e[i]]={};a=a[e[i]]}if(f.match(W))a[f.replace(W,"")](d);else a[f.replace(ca,"")]=d};return function(c,d){return b(c,d,a)}}return function(b,d){b[a]=d}}function Ka(a){return D(a.aoData,"_aData")}function oa(a){a.aoData.length=0;a.aiDisplayMaster.length=0;a.aiDisplay.length=0;a.aIds={}}function pa(a,b,c){for(var d=-1,e=0,f=a.length;e<f;e++)a[e]==b?d=e:a[e]>b&&a[e]--; -1!=d&&c===k&&a.splice(d,
+1)}function da(a,b,c,d){var e=a.aoData[b],f,g=function(c,d){for(;c.childNodes.length;)c.removeChild(c.firstChild);c.innerHTML=B(a,b,d,"display")};if("dom"===c||(!c||"auto"===c)&&"dom"===e.src)e._aData=Ia(a,e,d,d===k?k:e._aData).data;else{var j=e.anCells;if(j)if(d!==k)g(j[d],d);else{c=0;for(f=j.length;c<f;c++)g(j[c],c)}}e._aSortData=null;e._aFilterData=null;g=a.aoColumns;if(d!==k)g[d].sType=null;else{c=0;for(f=g.length;c<f;c++)g[c].sType=null;La(a,e)}}function Ia(a,b,c,d){var e=[],f=b.firstChild,g,
+j,i=0,m,l=a.aoColumns,q=a._rowReadObject,d=d!==k?d:q?{}:[],t=function(a,b){if("string"===typeof a){var c=a.indexOf("@");-1!==c&&(c=a.substring(c+1),N(a)(d,b.getAttribute(c)))}},G=function(a){if(c===k||c===i)j=l[i],m=h.trim(a.innerHTML),j&&j._bAttrSrc?(N(j.mData._)(d,m),t(j.mData.sort,a),t(j.mData.type,a),t(j.mData.filter,a)):q?(j._setter||(j._setter=N(j.mData)),j._setter(d,m)):d[i]=m;i++};if(f)for(;f;){g=f.nodeName.toUpperCase();if("TD"==g||"TH"==g)G(f),e.push(f);f=f.nextSibling}else{e=b.anCells;
+f=0;for(g=e.length;f<g;f++)G(e[f])}if(b=b.firstChild?b:b.nTr)(b=b.getAttribute("id"))&&N(a.rowId)(d,b);return{data:d,cells:e}}function Ha(a,b,c,d){var e=a.aoData[b],f=e._aData,g=[],j,i,m,l,q;if(null===e.nTr){j=c||H.createElement("tr");e.nTr=j;e.anCells=g;j._DT_RowIndex=b;La(a,e);l=0;for(q=a.aoColumns.length;l<q;l++){m=a.aoColumns[l];i=c?d[l]:H.createElement(m.sCellType);i._DT_CellIndex={row:b,column:l};g.push(i);if((!c||m.mRender||m.mData!==l)&&(!h.isPlainObject(m.mData)||m.mData._!==l+".display"))i.innerHTML=
+B(a,b,l,"display");m.sClass&&(i.className+=" "+m.sClass);m.bVisible&&!c?j.appendChild(i):!m.bVisible&&c&&i.parentNode.removeChild(i);m.fnCreatedCell&&m.fnCreatedCell.call(a.oInstance,i,B(a,b,l),f,b,l)}r(a,"aoRowCreatedCallback",null,[j,f,b,g])}e.nTr.setAttribute("role","row")}function La(a,b){var c=b.nTr,d=b._aData;if(c){var e=a.rowIdFn(d);e&&(c.id=e);d.DT_RowClass&&(e=d.DT_RowClass.split(" "),b.__rowc=b.__rowc?qa(b.__rowc.concat(e)):e,h(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass));
+d.DT_RowAttr&&h(c).attr(d.DT_RowAttr);d.DT_RowData&&h(c).data(d.DT_RowData)}}function lb(a){var b,c,d,e,f,g=a.nTHead,j=a.nTFoot,i=0===h("th, td",g).length,m=a.oClasses,l=a.aoColumns;i&&(e=h("<tr/>").appendTo(g));b=0;for(c=l.length;b<c;b++)f=l[b],d=h(f.nTh).addClass(f.sClass),i&&d.appendTo(e),a.oFeatures.bSort&&(d.addClass(f.sSortingClass),!1!==f.bSortable&&(d.attr("tabindex",a.iTabIndex).attr("aria-controls",a.sTableId),Ma(a,f.nTh,b))),f.sTitle!=d[0].innerHTML&&d.html(f.sTitle),Na(a,"header")(a,d,
+f,m);i&&ea(a.aoHeader,g);h(g).find(">tr").attr("role","row");h(g).find(">tr>th, >tr>td").addClass(m.sHeaderTH);h(j).find(">tr>th, >tr>td").addClass(m.sFooterTH);if(null!==j){a=a.aoFooter[0];b=0;for(c=a.length;b<c;b++)f=l[b],f.nTf=a[b].cell,f.sClass&&h(f.nTf).addClass(f.sClass)}}function fa(a,b,c){var d,e,f,g=[],j=[],i=a.aoColumns.length,m;if(b){c===k&&(c=!1);d=0;for(e=b.length;d<e;d++){g[d]=b[d].slice();g[d].nTr=b[d].nTr;for(f=i-1;0<=f;f--)!a.aoColumns[f].bVisible&&!c&&g[d].splice(f,1);j.push([])}d=
+0;for(e=g.length;d<e;d++){if(a=g[d].nTr)for(;f=a.firstChild;)a.removeChild(f);f=0;for(b=g[d].length;f<b;f++)if(m=i=1,j[d][f]===k){a.appendChild(g[d][f].cell);for(j[d][f]=1;g[d+i]!==k&&g[d][f].cell==g[d+i][f].cell;)j[d+i][f]=1,i++;for(;g[d][f+m]!==k&&g[d][f].cell==g[d][f+m].cell;){for(c=0;c<i;c++)j[d+c][f+m]=1;m++}h(g[d][f].cell).attr("rowspan",i).attr("colspan",m)}}}}function P(a){var b=r(a,"aoPreDrawCallback","preDraw",[a]);if(-1!==h.inArray(!1,b))C(a,!1);else{var b=[],c=0,d=a.asStripeClasses,e=
+d.length,f=a.oLanguage,g=a.iInitDisplayStart,j="ssp"==y(a),i=a.aiDisplay;a.bDrawing=!0;g!==k&&-1!==g&&(a._iDisplayStart=j?g:g>=a.fnRecordsDisplay()?0:g,a.iInitDisplayStart=-1);var g=a._iDisplayStart,m=a.fnDisplayEnd();if(a.bDeferLoading)a.bDeferLoading=!1,a.iDraw++,C(a,!1);else if(j){if(!a.bDestroying&&!mb(a))return}else a.iDraw++;if(0!==i.length){f=j?a.aoData.length:m;for(j=j?0:g;j<f;j++){var l=i[j],q=a.aoData[l];null===q.nTr&&Ha(a,l);var t=q.nTr;if(0!==e){var G=d[c%e];q._sRowStripe!=G&&(h(t).removeClass(q._sRowStripe).addClass(G),
+q._sRowStripe=G)}r(a,"aoRowCallback",null,[t,q._aData,c,j,l]);b.push(t);c++}}else c=f.sZeroRecords,1==a.iDraw&&"ajax"==y(a)?c=f.sLoadingRecords:f.sEmptyTable&&0===a.fnRecordsTotal()&&(c=f.sEmptyTable),b[0]=h("<tr/>",{"class":e?d[0]:""}).append(h("<td />",{valign:"top",colSpan:V(a),"class":a.oClasses.sRowEmpty}).html(c))[0];r(a,"aoHeaderCallback","header",[h(a.nTHead).children("tr")[0],Ka(a),g,m,i]);r(a,"aoFooterCallback","footer",[h(a.nTFoot).children("tr")[0],Ka(a),g,m,i]);d=h(a.nTBody);d.children().detach();
+d.append(h(b));r(a,"aoDrawCallback","draw",[a]);a.bSorted=!1;a.bFiltered=!1;a.bDrawing=!1}}function T(a,b){var c=a.oFeatures,d=c.bFilter;c.bSort&&nb(a);d?ga(a,a.oPreviousSearch):a.aiDisplay=a.aiDisplayMaster.slice();!0!==b&&(a._iDisplayStart=0);a._drawHold=b;P(a);a._drawHold=!1}function ob(a){var b=a.oClasses,c=h(a.nTable),c=h("<div/>").insertBefore(c),d=a.oFeatures,e=h("<div/>",{id:a.sTableId+"_wrapper","class":b.sWrapper+(a.nTFoot?"":" "+b.sNoFooter)});a.nHolding=c[0];a.nTableWrapper=e[0];a.nTableReinsertBefore=
+a.nTable.nextSibling;for(var f=a.sDom.split(""),g,j,i,m,l,q,k=0;k<f.length;k++){g=null;j=f[k];if("<"==j){i=h("<div/>")[0];m=f[k+1];if("'"==m||'"'==m){l="";for(q=2;f[k+q]!=m;)l+=f[k+q],q++;"H"==l?l=b.sJUIHeader:"F"==l&&(l=b.sJUIFooter);-1!=l.indexOf(".")?(m=l.split("."),i.id=m[0].substr(1,m[0].length-1),i.className=m[1]):"#"==l.charAt(0)?i.id=l.substr(1,l.length-1):i.className=l;k+=q}e.append(i);e=h(i)}else if(">"==j)e=e.parent();else if("l"==j&&d.bPaginate&&d.bLengthChange)g=pb(a);else if("f"==j&&
+d.bFilter)g=qb(a);else if("r"==j&&d.bProcessing)g=rb(a);else if("t"==j)g=sb(a);else if("i"==j&&d.bInfo)g=tb(a);else if("p"==j&&d.bPaginate)g=ub(a);else if(0!==n.ext.feature.length){i=n.ext.feature;q=0;for(m=i.length;q<m;q++)if(j==i[q].cFeature){g=i[q].fnInit(a);break}}g&&(i=a.aanFeatures,i[j]||(i[j]=[]),i[j].push(g),e.append(g))}c.replaceWith(e);a.nHolding=null}function ea(a,b){var c=h(b).children("tr"),d,e,f,g,j,i,m,l,q,k;a.splice(0,a.length);f=0;for(i=c.length;f<i;f++)a.push([]);f=0;for(i=c.length;f<
+i;f++){d=c[f];for(e=d.firstChild;e;){if("TD"==e.nodeName.toUpperCase()||"TH"==e.nodeName.toUpperCase()){l=1*e.getAttribute("colspan");q=1*e.getAttribute("rowspan");l=!l||0===l||1===l?1:l;q=!q||0===q||1===q?1:q;g=0;for(j=a[f];j[g];)g++;m=g;k=1===l?!0:!1;for(j=0;j<l;j++)for(g=0;g<q;g++)a[f+g][m+j]={cell:e,unique:k},a[f+g].nTr=d}e=e.nextSibling}}}function ra(a,b,c){var d=[];c||(c=a.aoHeader,b&&(c=[],ea(c,b)));for(var b=0,e=c.length;b<e;b++)for(var f=0,g=c[b].length;f<g;f++)if(c[b][f].unique&&(!d[f]||
+!a.bSortCellsTop))d[f]=c[b][f].cell;return d}function sa(a,b,c){r(a,"aoServerParams","serverParams",[b]);if(b&&h.isArray(b)){var d={},e=/(.*?)\[\]$/;h.each(b,function(a,b){var c=b.name.match(e);c?(c=c[0],d[c]||(d[c]=[]),d[c].push(b.value)):d[b.name]=b.value});b=d}var f,g=a.ajax,j=a.oInstance,i=function(b){r(a,null,"xhr",[a,b,a.jqXHR]);c(b)};if(h.isPlainObject(g)&&g.data){f=g.data;var m="function"===typeof f?f(b,a):f,b="function"===typeof f&&m?m:h.extend(!0,b,m);delete g.data}m={data:b,success:function(b){var c=
+b.error||b.sError;c&&K(a,0,c);a.json=b;i(b)},dataType:"json",cache:!1,type:a.sServerMethod,error:function(b,c){var d=r(a,null,"xhr",[a,null,a.jqXHR]);-1===h.inArray(!0,d)&&("parsererror"==c?K(a,0,"Invalid JSON response",1):4===b.readyState&&K(a,0,"Ajax error",7));C(a,!1)}};a.oAjaxData=b;r(a,null,"preXhr",[a,b]);a.fnServerData?a.fnServerData.call(j,a.sAjaxSource,h.map(b,function(a,b){return{name:b,value:a}}),i,a):a.sAjaxSource||"string"===typeof g?a.jqXHR=h.ajax(h.extend(m,{url:g||a.sAjaxSource})):
+"function"===typeof g?a.jqXHR=g.call(j,b,i,a):(a.jqXHR=h.ajax(h.extend(m,g)),g.data=f)}function mb(a){return a.bAjaxDataGet?(a.iDraw++,C(a,!0),sa(a,vb(a),function(b){wb(a,b)}),!1):!0}function vb(a){var b=a.aoColumns,c=b.length,d=a.oFeatures,e=a.oPreviousSearch,f=a.aoPreSearchCols,g,j=[],i,m,l,k=X(a);g=a._iDisplayStart;i=!1!==d.bPaginate?a._iDisplayLength:-1;var t=function(a,b){j.push({name:a,value:b})};t("sEcho",a.iDraw);t("iColumns",c);t("sColumns",D(b,"sName").join(","));t("iDisplayStart",g);t("iDisplayLength",
+i);var G={draw:a.iDraw,columns:[],order:[],start:g,length:i,search:{value:e.sSearch,regex:e.bRegex}};for(g=0;g<c;g++)m=b[g],l=f[g],i="function"==typeof m.mData?"function":m.mData,G.columns.push({data:i,name:m.sName,searchable:m.bSearchable,orderable:m.bSortable,search:{value:l.sSearch,regex:l.bRegex}}),t("mDataProp_"+g,i),d.bFilter&&(t("sSearch_"+g,l.sSearch),t("bRegex_"+g,l.bRegex),t("bSearchable_"+g,m.bSearchable)),d.bSort&&t("bSortable_"+g,m.bSortable);d.bFilter&&(t("sSearch",e.sSearch),t("bRegex",
+e.bRegex));d.bSort&&(h.each(k,function(a,b){G.order.push({column:b.col,dir:b.dir});t("iSortCol_"+a,b.col);t("sSortDir_"+a,b.dir)}),t("iSortingCols",k.length));b=n.ext.legacy.ajax;return null===b?a.sAjaxSource?j:G:b?j:G}function wb(a,b){var c=ta(a,b),d=b.sEcho!==k?b.sEcho:b.draw,e=b.iTotalRecords!==k?b.iTotalRecords:b.recordsTotal,f=b.iTotalDisplayRecords!==k?b.iTotalDisplayRecords:b.recordsFiltered;if(d){if(1*d<a.iDraw)return;a.iDraw=1*d}oa(a);a._iRecordsTotal=parseInt(e,10);a._iRecordsDisplay=parseInt(f,
+10);d=0;for(e=c.length;d<e;d++)O(a,c[d]);a.aiDisplay=a.aiDisplayMaster.slice();a.bAjaxDataGet=!1;P(a);a._bInitComplete||ua(a,b);a.bAjaxDataGet=!0;C(a,!1)}function ta(a,b){var c=h.isPlainObject(a.ajax)&&a.ajax.dataSrc!==k?a.ajax.dataSrc:a.sAjaxDataProp;return"data"===c?b.aaData||b[c]:""!==c?S(c)(b):b}function qb(a){var b=a.oClasses,c=a.sTableId,d=a.oLanguage,e=a.oPreviousSearch,f=a.aanFeatures,g='<input type="search" class="'+b.sFilterInput+'"/>',j=d.sSearch,j=j.match(/_INPUT_/)?j.replace("_INPUT_",
+g):j+g,b=h("<div/>",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("<label/>").append(j)),f=function(){var b=!this.value?"":this.value;b!=e.sSearch&&(ga(a,{sSearch:b,bRegex:e.bRegex,bSmart:e.bSmart,bCaseInsensitive:e.bCaseInsensitive}),a._iDisplayStart=0,P(a))},g=null!==a.searchDelay?a.searchDelay:"ssp"===y(a)?400:0,i=h("input",b).val(e.sSearch).attr("placeholder",d.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT",g?Oa(f,g):f).on("keypress.DT",function(a){if(13==a.keyCode)return!1}).attr("aria-controls",
+c);h(a.nTable).on("search.dt.DT",function(b,c){if(a===c)try{i[0]!==H.activeElement&&i.val(e.sSearch)}catch(d){}});return b[0]}function ga(a,b,c){var d=a.oPreviousSearch,e=a.aoPreSearchCols,f=function(a){d.sSearch=a.sSearch;d.bRegex=a.bRegex;d.bSmart=a.bSmart;d.bCaseInsensitive=a.bCaseInsensitive};Ga(a);if("ssp"!=y(a)){xb(a,b.sSearch,c,b.bEscapeRegex!==k?!b.bEscapeRegex:b.bRegex,b.bSmart,b.bCaseInsensitive);f(b);for(b=0;b<e.length;b++)yb(a,e[b].sSearch,b,e[b].bEscapeRegex!==k?!e[b].bEscapeRegex:e[b].bRegex,
+e[b].bSmart,e[b].bCaseInsensitive);zb(a)}else f(b);a.bFiltered=!0;r(a,null,"search",[a])}function zb(a){for(var b=n.ext.search,c=a.aiDisplay,d,e,f=0,g=b.length;f<g;f++){for(var j=[],i=0,m=c.length;i<m;i++)e=c[i],d=a.aoData[e],b[f](a,d._aFilterData,e,d._aData,i)&&j.push(e);c.length=0;h.merge(c,j)}}function yb(a,b,c,d,e,f){if(""!==b){for(var g=[],j=a.aiDisplay,d=Pa(b,d,e,f),e=0;e<j.length;e++)b=a.aoData[j[e]]._aFilterData[c],d.test(b)&&g.push(j[e]);a.aiDisplay=g}}function xb(a,b,c,d,e,f){var d=Pa(b,
+d,e,f),f=a.oPreviousSearch.sSearch,g=a.aiDisplayMaster,j,e=[];0!==n.ext.search.length&&(c=!0);j=Ab(a);if(0>=b.length)a.aiDisplay=g.slice();else{if(j||c||f.length>b.length||0!==b.indexOf(f)||a.bSorted)a.aiDisplay=g.slice();b=a.aiDisplay;for(c=0;c<b.length;c++)d.test(a.aoData[b[c]]._sFilterRow)&&e.push(b[c]);a.aiDisplay=e}}function Pa(a,b,c,d){a=b?a:Qa(a);c&&(a="^(?=.*?"+h.map(a.match(/"[^"]+"|[^ ]+/g)||[""],function(a){if('"'===a.charAt(0))var b=a.match(/^"(.*)"$/),a=b?b[1]:a;return a.replace('"',
+"")}).join(")(?=.*?")+").*$");return RegExp(a,d?"i":"")}function Ab(a){var b=a.aoColumns,c,d,e,f,g,j,i,h,l=n.ext.type.search;c=!1;d=0;for(f=a.aoData.length;d<f;d++)if(h=a.aoData[d],!h._aFilterData){j=[];e=0;for(g=b.length;e<g;e++)c=b[e],c.bSearchable?(i=B(a,d,e,"filter"),l[c.sType]&&(i=l[c.sType](i)),null===i&&(i=""),"string"!==typeof i&&i.toString&&(i=i.toString())):i="",i.indexOf&&-1!==i.indexOf("&")&&(va.innerHTML=i,i=Wb?va.textContent:va.innerText),i.replace&&(i=i.replace(/[\r\n]/g,"")),j.push(i);
+h._aFilterData=j;h._sFilterRow=j.join("  ");c=!0}return c}function Bb(a){return{search:a.sSearch,smart:a.bSmart,regex:a.bRegex,caseInsensitive:a.bCaseInsensitive}}function Cb(a){return{sSearch:a.search,bSmart:a.smart,bRegex:a.regex,bCaseInsensitive:a.caseInsensitive}}function tb(a){var b=a.sTableId,c=a.aanFeatures.i,d=h("<div/>",{"class":a.oClasses.sInfo,id:!c?b+"_info":null});c||(a.aoDrawCallback.push({fn:Db,sName:"information"}),d.attr("role","status").attr("aria-live","polite"),h(a.nTable).attr("aria-describedby",
+b+"_info"));return d[0]}function Db(a){var b=a.aanFeatures.i;if(0!==b.length){var c=a.oLanguage,d=a._iDisplayStart+1,e=a.fnDisplayEnd(),f=a.fnRecordsTotal(),g=a.fnRecordsDisplay(),j=g?c.sInfo:c.sInfoEmpty;g!==f&&(j+=" "+c.sInfoFiltered);j+=c.sInfoPostFix;j=Eb(a,j);c=c.fnInfoCallback;null!==c&&(j=c.call(a.oInstance,a,d,e,f,g,j));h(b).html(j)}}function Eb(a,b){var c=a.fnFormatNumber,d=a._iDisplayStart+1,e=a._iDisplayLength,f=a.fnRecordsDisplay(),g=-1===e;return b.replace(/_START_/g,c.call(a,d)).replace(/_END_/g,
+c.call(a,a.fnDisplayEnd())).replace(/_MAX_/g,c.call(a,a.fnRecordsTotal())).replace(/_TOTAL_/g,c.call(a,f)).replace(/_PAGE_/g,c.call(a,g?1:Math.ceil(d/e))).replace(/_PAGES_/g,c.call(a,g?1:Math.ceil(f/e)))}function ha(a){var b,c,d=a.iInitDisplayStart,e=a.aoColumns,f;c=a.oFeatures;var g=a.bDeferLoading;if(a.bInitialised){ob(a);lb(a);fa(a,a.aoHeader);fa(a,a.aoFooter);C(a,!0);c.bAutoWidth&&Fa(a);b=0;for(c=e.length;b<c;b++)f=e[b],f.sWidth&&(f.nTh.style.width=v(f.sWidth));r(a,null,"preInit",[a]);T(a);e=
+y(a);if("ssp"!=e||g)"ajax"==e?sa(a,[],function(c){var f=ta(a,c);for(b=0;b<f.length;b++)O(a,f[b]);a.iInitDisplayStart=d;T(a);C(a,!1);ua(a,c)},a):(C(a,!1),ua(a))}else setTimeout(function(){ha(a)},200)}function ua(a,b){a._bInitComplete=!0;(b||a.oInit.aaData)&&$(a);r(a,null,"plugin-init",[a,b]);r(a,"aoInitComplete","init",[a,b])}function Ra(a,b){var c=parseInt(b,10);a._iDisplayLength=c;Sa(a);r(a,null,"length",[a,c])}function pb(a){for(var b=a.oClasses,c=a.sTableId,d=a.aLengthMenu,e=h.isArray(d[0]),f=
+e?d[0]:d,d=e?d[1]:d,e=h("<select/>",{name:c+"_length","aria-controls":c,"class":b.sLengthSelect}),g=0,j=f.length;g<j;g++)e[0][g]=new Option("number"===typeof d[g]?a.fnFormatNumber(d[g]):d[g],f[g]);var i=h("<div><label/></div>").addClass(b.sLength);a.aanFeatures.l||(i[0].id=c+"_length");i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_",e[0].outerHTML));h("select",i).val(a._iDisplayLength).on("change.DT",function(){Ra(a,h(this).val());P(a)});h(a.nTable).on("length.dt.DT",function(b,c,d){a===
+c&&h("select",i).val(d)});return i[0]}function ub(a){var b=a.sPaginationType,c=n.ext.pager[b],d="function"===typeof c,e=function(a){P(a)},b=h("<div/>").addClass(a.oClasses.sPaging+b)[0],f=a.aanFeatures;d||c.fnInit(a,b,e);f.p||(b.id=a.sTableId+"_paginate",a.aoDrawCallback.push({fn:function(a){if(d){var b=a._iDisplayStart,i=a._iDisplayLength,h=a.fnRecordsDisplay(),l=-1===i,b=l?0:Math.ceil(b/i),i=l?1:Math.ceil(h/i),h=c(b,i),k,l=0;for(k=f.p.length;l<k;l++)Na(a,"pageButton")(a,f.p[l],l,h,b,i)}else c.fnUpdate(a,
+e)},sName:"pagination"}));return b}function Ta(a,b,c){var d=a._iDisplayStart,e=a._iDisplayLength,f=a.fnRecordsDisplay();0===f||-1===e?d=0:"number"===typeof b?(d=b*e,d>f&&(d=0)):"first"==b?d=0:"previous"==b?(d=0<=e?d-e:0,0>d&&(d=0)):"next"==b?d+e<f&&(d+=e):"last"==b?d=Math.floor((f-1)/e)*e:K(a,0,"Unknown paging action: "+b,5);b=a._iDisplayStart!==d;a._iDisplayStart=d;b&&(r(a,null,"page",[a]),c&&P(a));return b}function rb(a){return h("<div/>",{id:!a.aanFeatures.r?a.sTableId+"_processing":null,"class":a.oClasses.sProcessing}).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]}
+function C(a,b){a.oFeatures.bProcessing&&h(a.aanFeatures.r).css("display",b?"block":"none");r(a,null,"processing",[a,b])}function sb(a){var b=h(a.nTable);b.attr("role","grid");var c=a.oScroll;if(""===c.sX&&""===c.sY)return a.nTable;var d=c.sX,e=c.sY,f=a.oClasses,g=b.children("caption"),j=g.length?g[0]._captionSide:null,i=h(b[0].cloneNode(!1)),m=h(b[0].cloneNode(!1)),l=b.children("tfoot");l.length||(l=null);i=h("<div/>",{"class":f.sScrollWrapper}).append(h("<div/>",{"class":f.sScrollHead}).css({overflow:"hidden",
+position:"relative",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",{"class":f.sScrollHeadInner}).css({"box-sizing":"content-box",width:c.sXInner||"100%"}).append(i.removeAttr("id").css("margin-left",0).append("top"===j?g:null).append(b.children("thead"))))).append(h("<div/>",{"class":f.sScrollBody}).css({position:"relative",overflow:"auto",width:!d?null:v(d)}).append(b));l&&i.append(h("<div/>",{"class":f.sScrollFoot}).css({overflow:"hidden",border:0,width:d?!d?null:v(d):"100%"}).append(h("<div/>",
+{"class":f.sScrollFootInner}).append(m.removeAttr("id").css("margin-left",0).append("bottom"===j?g:null).append(b.children("tfoot")))));var b=i.children(),k=b[0],f=b[1],t=l?b[2]:null;if(d)h(f).on("scroll.DT",function(){var a=this.scrollLeft;k.scrollLeft=a;l&&(t.scrollLeft=a)});h(f).css(e&&c.bCollapse?"max-height":"height",e);a.nScrollHead=k;a.nScrollBody=f;a.nScrollFoot=t;a.aoDrawCallback.push({fn:la,sName:"scrolling"});return i[0]}function la(a){var b=a.oScroll,c=b.sX,d=b.sXInner,e=b.sY,b=b.iBarWidth,
+f=h(a.nScrollHead),g=f[0].style,j=f.children("div"),i=j[0].style,m=j.children("table"),j=a.nScrollBody,l=h(j),q=j.style,t=h(a.nScrollFoot).children("div"),n=t.children("table"),o=h(a.nTHead),p=h(a.nTable),s=p[0],r=s.style,u=a.nTFoot?h(a.nTFoot):null,x=a.oBrowser,U=x.bScrollOversize,Xb=D(a.aoColumns,"nTh"),Q,L,R,w,Ua=[],y=[],z=[],A=[],B,C=function(a){a=a.style;a.paddingTop="0";a.paddingBottom="0";a.borderTopWidth="0";a.borderBottomWidth="0";a.height=0};L=j.scrollHeight>j.clientHeight;if(a.scrollBarVis!==
+L&&a.scrollBarVis!==k)a.scrollBarVis=L,$(a);else{a.scrollBarVis=L;p.children("thead, tfoot").remove();u&&(R=u.clone().prependTo(p),Q=u.find("tr"),R=R.find("tr"));w=o.clone().prependTo(p);o=o.find("tr");L=w.find("tr");w.find("th, td").removeAttr("tabindex");c||(q.width="100%",f[0].style.width="100%");h.each(ra(a,w),function(b,c){B=aa(a,b);c.style.width=a.aoColumns[B].sWidth});u&&I(function(a){a.style.width=""},R);f=p.outerWidth();if(""===c){r.width="100%";if(U&&(p.find("tbody").height()>j.offsetHeight||
+"scroll"==l.css("overflow-y")))r.width=v(p.outerWidth()-b);f=p.outerWidth()}else""!==d&&(r.width=v(d),f=p.outerWidth());I(C,L);I(function(a){z.push(a.innerHTML);Ua.push(v(h(a).css("width")))},L);I(function(a,b){if(h.inArray(a,Xb)!==-1)a.style.width=Ua[b]},o);h(L).height(0);u&&(I(C,R),I(function(a){A.push(a.innerHTML);y.push(v(h(a).css("width")))},R),I(function(a,b){a.style.width=y[b]},Q),h(R).height(0));I(function(a,b){a.innerHTML='<div class="dataTables_sizing">'+z[b]+"</div>";a.childNodes[0].style.height=
+"0";a.childNodes[0].style.overflow="hidden";a.style.width=Ua[b]},L);u&&I(function(a,b){a.innerHTML='<div class="dataTables_sizing">'+A[b]+"</div>";a.childNodes[0].style.height="0";a.childNodes[0].style.overflow="hidden";a.style.width=y[b]},R);if(p.outerWidth()<f){Q=j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")?f+b:f;if(U&&(j.scrollHeight>j.offsetHeight||"scroll"==l.css("overflow-y")))r.width=v(Q-b);(""===c||""!==d)&&K(a,1,"Possible column misalignment",6)}else Q="100%";q.width=v(Q);
+g.width=v(Q);u&&(a.nScrollFoot.style.width=v(Q));!e&&U&&(q.height=v(s.offsetHeight+b));c=p.outerWidth();m[0].style.width=v(c);i.width=v(c);d=p.height()>j.clientHeight||"scroll"==l.css("overflow-y");e="padding"+(x.bScrollbarLeft?"Left":"Right");i[e]=d?b+"px":"0px";u&&(n[0].style.width=v(c),t[0].style.width=v(c),t[0].style[e]=d?b+"px":"0px");p.children("colgroup").insertBefore(p.children("thead"));l.scroll();if((a.bSorted||a.bFiltered)&&!a._drawHold)j.scrollTop=0}}function I(a,b,c){for(var d=0,e=0,
+f=b.length,g,j;e<f;){g=b[e].firstChild;for(j=c?c[e].firstChild:null;g;)1===g.nodeType&&(c?a(g,j,d):a(g,d),d++),g=g.nextSibling,j=c?j.nextSibling:null;e++}}function Fa(a){var b=a.nTable,c=a.aoColumns,d=a.oScroll,e=d.sY,f=d.sX,g=d.sXInner,j=c.length,i=ma(a,"bVisible"),m=h("th",a.nTHead),l=b.getAttribute("width"),k=b.parentNode,t=!1,n,o,p=a.oBrowser,d=p.bScrollOversize;(n=b.style.width)&&-1!==n.indexOf("%")&&(l=n);for(n=0;n<i.length;n++)o=c[i[n]],null!==o.sWidth&&(o.sWidth=Fb(o.sWidthOrig,k),t=!0);if(d||
+!t&&!f&&!e&&j==V(a)&&j==m.length)for(n=0;n<j;n++)i=aa(a,n),null!==i&&(c[i].sWidth=v(m.eq(n).width()));else{j=h(b).clone().css("visibility","hidden").removeAttr("id");j.find("tbody tr").remove();var s=h("<tr/>").appendTo(j.find("tbody"));j.find("thead, tfoot").remove();j.append(h(a.nTHead).clone()).append(h(a.nTFoot).clone());j.find("tfoot th, tfoot td").css("width","");m=ra(a,j.find("thead")[0]);for(n=0;n<i.length;n++)o=c[i[n]],m[n].style.width=null!==o.sWidthOrig&&""!==o.sWidthOrig?v(o.sWidthOrig):
+"",o.sWidthOrig&&f&&h(m[n]).append(h("<div/>").css({width:o.sWidthOrig,margin:0,padding:0,border:0,height:1}));if(a.aoData.length)for(n=0;n<i.length;n++)t=i[n],o=c[t],h(Gb(a,t)).clone(!1).append(o.sContentPadding).appendTo(s);h("[name]",j).removeAttr("name");o=h("<div/>").css(f||e?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(j).appendTo(k);f&&g?j.width(g):f?(j.css("width","auto"),j.removeAttr("width"),j.width()<k.clientWidth&&l&&j.width(k.clientWidth)):e?j.width(k.clientWidth):
+l&&j.width(l);for(n=e=0;n<i.length;n++)k=h(m[n]),g=k.outerWidth()-k.width(),k=p.bBounding?Math.ceil(m[n].getBoundingClientRect().width):k.outerWidth(),e+=k,c[i[n]].sWidth=v(k-g);b.style.width=v(e);o.remove()}l&&(b.style.width=v(l));if((l||f)&&!a._reszEvt)b=function(){h(E).on("resize.DT-"+a.sInstance,Oa(function(){$(a)}))},d?setTimeout(b,1E3):b(),a._reszEvt=!0}function Fb(a,b){if(!a)return 0;var c=h("<div/>").css("width",v(a)).appendTo(b||H.body),d=c[0].offsetWidth;c.remove();return d}function Gb(a,
+b){var c=Hb(a,b);if(0>c)return null;var d=a.aoData[c];return!d.nTr?h("<td/>").html(B(a,c,b,"display"))[0]:d.anCells[b]}function Hb(a,b){for(var c,d=-1,e=-1,f=0,g=a.aoData.length;f<g;f++)c=B(a,f,b,"display")+"",c=c.replace(Yb,""),c=c.replace(/&nbsp;/g," "),c.length>d&&(d=c.length,e=f);return e}function v(a){return null===a?"0px":"number"==typeof a?0>a?"0px":a+"px":a.match(/\d$/)?a+"px":a}function X(a){var b,c,d=[],e=a.aoColumns,f,g,j,i;b=a.aaSortingFixed;c=h.isPlainObject(b);var m=[];f=function(a){a.length&&
+!h.isArray(a[0])?m.push(a):h.merge(m,a)};h.isArray(b)&&f(b);c&&b.pre&&f(b.pre);f(a.aaSorting);c&&b.post&&f(b.post);for(a=0;a<m.length;a++){i=m[a][0];f=e[i].aDataSort;b=0;for(c=f.length;b<c;b++)g=f[b],j=e[g].sType||"string",m[a]._idx===k&&(m[a]._idx=h.inArray(m[a][1],e[g].asSorting)),d.push({src:i,col:g,dir:m[a][1],index:m[a]._idx,type:j,formatter:n.ext.type.order[j+"-pre"]})}return d}function nb(a){var b,c,d=[],e=n.ext.type.order,f=a.aoData,g=0,j,i=a.aiDisplayMaster,h;Ga(a);h=X(a);b=0;for(c=h.length;b<
+c;b++)j=h[b],j.formatter&&g++,Ib(a,j.col);if("ssp"!=y(a)&&0!==h.length){b=0;for(c=i.length;b<c;b++)d[i[b]]=b;g===h.length?i.sort(function(a,b){var c,e,g,j,i=h.length,k=f[a]._aSortData,n=f[b]._aSortData;for(g=0;g<i;g++)if(j=h[g],c=k[j.col],e=n[j.col],c=c<e?-1:c>e?1:0,0!==c)return"asc"===j.dir?c:-c;c=d[a];e=d[b];return c<e?-1:c>e?1:0}):i.sort(function(a,b){var c,g,j,i,k=h.length,n=f[a]._aSortData,o=f[b]._aSortData;for(j=0;j<k;j++)if(i=h[j],c=n[i.col],g=o[i.col],i=e[i.type+"-"+i.dir]||e["string-"+i.dir],
+c=i(c,g),0!==c)return c;c=d[a];g=d[b];return c<g?-1:c>g?1:0})}a.bSorted=!0}function Jb(a){for(var b,c,d=a.aoColumns,e=X(a),a=a.oLanguage.oAria,f=0,g=d.length;f<g;f++){c=d[f];var j=c.asSorting;b=c.sTitle.replace(/<.*?>/g,"");var i=c.nTh;i.removeAttribute("aria-sort");c.bSortable&&(0<e.length&&e[0].col==f?(i.setAttribute("aria-sort","asc"==e[0].dir?"ascending":"descending"),c=j[e[0].index+1]||j[0]):c=j[0],b+="asc"===c?a.sSortAscending:a.sSortDescending);i.setAttribute("aria-label",b)}}function Va(a,
+b,c,d){var e=a.aaSorting,f=a.aoColumns[b].asSorting,g=function(a,b){var c=a._idx;c===k&&(c=h.inArray(a[1],f));return c+1<f.length?c+1:b?null:0};"number"===typeof e[0]&&(e=a.aaSorting=[e]);c&&a.oFeatures.bSortMulti?(c=h.inArray(b,D(e,"0")),-1!==c?(b=g(e[c],!0),null===b&&1===e.length&&(b=0),null===b?e.splice(c,1):(e[c][1]=f[b],e[c]._idx=b)):(e.push([b,f[0],0]),e[e.length-1]._idx=0)):e.length&&e[0][0]==b?(b=g(e[0]),e.length=1,e[0][1]=f[b],e[0]._idx=b):(e.length=0,e.push([b,f[0]]),e[0]._idx=0);T(a);"function"==
+typeof d&&d(a)}function Ma(a,b,c,d){var e=a.aoColumns[c];Wa(b,{},function(b){!1!==e.bSortable&&(a.oFeatures.bProcessing?(C(a,!0),setTimeout(function(){Va(a,c,b.shiftKey,d);"ssp"!==y(a)&&C(a,!1)},0)):Va(a,c,b.shiftKey,d))})}function wa(a){var b=a.aLastSort,c=a.oClasses.sSortColumn,d=X(a),e=a.oFeatures,f,g;if(e.bSort&&e.bSortClasses){e=0;for(f=b.length;e<f;e++)g=b[e].src,h(D(a.aoData,"anCells",g)).removeClass(c+(2>e?e+1:3));e=0;for(f=d.length;e<f;e++)g=d[e].src,h(D(a.aoData,"anCells",g)).addClass(c+
+(2>e?e+1:3))}a.aLastSort=d}function Ib(a,b){var c=a.aoColumns[b],d=n.ext.order[c.sSortDataType],e;d&&(e=d.call(a.oInstance,a,b,ba(a,b)));for(var f,g=n.ext.type.order[c.sType+"-pre"],j=0,i=a.aoData.length;j<i;j++)if(c=a.aoData[j],c._aSortData||(c._aSortData=[]),!c._aSortData[b]||d)f=d?e[j]:B(a,j,b,"sort"),c._aSortData[b]=g?g(f):f}function xa(a){if(a.oFeatures.bStateSave&&!a.bDestroying){var b={time:+new Date,start:a._iDisplayStart,length:a._iDisplayLength,order:h.extend(!0,[],a.aaSorting),search:Bb(a.oPreviousSearch),
+columns:h.map(a.aoColumns,function(b,d){return{visible:b.bVisible,search:Bb(a.aoPreSearchCols[d])}})};r(a,"aoStateSaveParams","stateSaveParams",[a,b]);a.oSavedState=b;a.fnStateSaveCallback.call(a.oInstance,a,b)}}function Kb(a,b,c){var d,e,f=a.aoColumns,b=function(b){if(b&&b.time){var g=r(a,"aoStateLoadParams","stateLoadParams",[a,b]);if(-1===h.inArray(!1,g)&&(g=a.iStateDuration,!(0<g&&b.time<+new Date-1E3*g)&&!(b.columns&&f.length!==b.columns.length))){a.oLoadedState=h.extend(!0,{},b);b.start!==k&&
+(a._iDisplayStart=b.start,a.iInitDisplayStart=b.start);b.length!==k&&(a._iDisplayLength=b.length);b.order!==k&&(a.aaSorting=[],h.each(b.order,function(b,c){a.aaSorting.push(c[0]>=f.length?[0,c[1]]:c)}));b.search!==k&&h.extend(a.oPreviousSearch,Cb(b.search));if(b.columns){d=0;for(e=b.columns.length;d<e;d++)g=b.columns[d],g.visible!==k&&(f[d].bVisible=g.visible),g.search!==k&&h.extend(a.aoPreSearchCols[d],Cb(g.search))}r(a,"aoStateLoaded","stateLoaded",[a,b])}}c()};if(a.oFeatures.bStateSave){var g=
+a.fnStateLoadCallback.call(a.oInstance,a,b);g!==k&&b(g)}else c()}function ya(a){var b=n.settings,a=h.inArray(a,D(b,"nTable"));return-1!==a?b[a]:null}function K(a,b,c,d){c="DataTables warning: "+(a?"table id="+a.sTableId+" - ":"")+c;d&&(c+=". For more information about this error, please see http://datatables.net/tn/"+d);if(b)E.console&&console.log&&console.log(c);else if(b=n.ext,b=b.sErrMode||b.errMode,a&&r(a,null,"error",[a,d,c]),"alert"==b)alert(c);else{if("throw"==b)throw Error(c);"function"==
+typeof b&&b(a,d,c)}}function F(a,b,c,d){h.isArray(c)?h.each(c,function(c,d){h.isArray(d)?F(a,b,d[0],d[1]):F(a,b,d)}):(d===k&&(d=c),b[c]!==k&&(a[d]=b[c]))}function Xa(a,b,c){var d,e;for(e in b)b.hasOwnProperty(e)&&(d=b[e],h.isPlainObject(d)?(h.isPlainObject(a[e])||(a[e]={}),h.extend(!0,a[e],d)):a[e]=c&&"data"!==e&&"aaData"!==e&&h.isArray(d)?d.slice():d);return a}function Wa(a,b,c){h(a).on("click.DT",b,function(b){h(a).blur();c(b)}).on("keypress.DT",b,function(a){13===a.which&&(a.preventDefault(),c(a))}).on("selectstart.DT",
+function(){return!1})}function z(a,b,c,d){c&&a[b].push({fn:c,sName:d})}function r(a,b,c,d){var e=[];b&&(e=h.map(a[b].slice().reverse(),function(b){return b.fn.apply(a.oInstance,d)}));null!==c&&(b=h.Event(c+".dt"),h(a.nTable).trigger(b,d),e.push(b.result));return e}function Sa(a){var b=a._iDisplayStart,c=a.fnDisplayEnd(),d=a._iDisplayLength;b>=c&&(b=c-d);b-=b%d;if(-1===d||0>b)b=0;a._iDisplayStart=b}function Na(a,b){var c=a.renderer,d=n.ext.renderer[b];return h.isPlainObject(c)&&c[b]?d[c[b]]||d._:"string"===
+typeof c?d[c]||d._:d._}function y(a){return a.oFeatures.bServerSide?"ssp":a.ajax||a.sAjaxSource?"ajax":"dom"}function ia(a,b){var c=[],c=Lb.numbers_length,d=Math.floor(c/2);b<=c?c=Y(0,b):a<=d?(c=Y(0,c-2),c.push("ellipsis"),c.push(b-1)):(a>=b-1-d?c=Y(b-(c-2),b):(c=Y(a-d+2,a+d-1),c.push("ellipsis"),c.push(b-1)),c.splice(0,0,"ellipsis"),c.splice(0,0,0));c.DT_el="span";return c}function Da(a){h.each({num:function(b){return za(b,a)},"num-fmt":function(b){return za(b,a,Ya)},"html-num":function(b){return za(b,
+a,Aa)},"html-num-fmt":function(b){return za(b,a,Aa,Ya)}},function(b,c){x.type.order[b+a+"-pre"]=c;b.match(/^html\-/)&&(x.type.search[b+a]=x.type.search.html)})}function Mb(a){return function(){var b=[ya(this[n.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return n.ext.internal[a].apply(this,b)}}var n=function(a){this.$=function(a,b){return this.api(!0).$(a,b)};this._=function(a,b){return this.api(!0).rows(a,b).data()};this.api=function(a){return a?new s(ya(this[x.iApiIndex])):new s(this)};
+this.fnAddData=function(a,b){var c=this.api(!0),d=h.isArray(a)&&(h.isArray(a[0])||h.isPlainObject(a[0]))?c.rows.add(a):c.row.add(a);(b===k||b)&&c.draw();return d.flatten().toArray()};this.fnAdjustColumnSizing=function(a){var b=this.api(!0).columns.adjust(),c=b.settings()[0],d=c.oScroll;a===k||a?b.draw(!1):(""!==d.sX||""!==d.sY)&&la(c)};this.fnClearTable=function(a){var b=this.api(!0).clear();(a===k||a)&&b.draw()};this.fnClose=function(a){this.api(!0).row(a).child.hide()};this.fnDeleteRow=function(a,
+b,c){var d=this.api(!0),a=d.rows(a),e=a.settings()[0],h=e.aoData[a[0][0]];a.remove();b&&b.call(this,e,h);(c===k||c)&&d.draw();return h};this.fnDestroy=function(a){this.api(!0).destroy(a)};this.fnDraw=function(a){this.api(!0).draw(a)};this.fnFilter=function(a,b,c,d,e,h){e=this.api(!0);null===b||b===k?e.search(a,c,d,h):e.column(b).search(a,c,d,h);e.draw()};this.fnGetData=function(a,b){var c=this.api(!0);if(a!==k){var d=a.nodeName?a.nodeName.toLowerCase():"";return b!==k||"td"==d||"th"==d?c.cell(a,b).data():
+c.row(a).data()||null}return c.data().toArray()};this.fnGetNodes=function(a){var b=this.api(!0);return a!==k?b.row(a).node():b.rows().nodes().flatten().toArray()};this.fnGetPosition=function(a){var b=this.api(!0),c=a.nodeName.toUpperCase();return"TR"==c?b.row(a).index():"TD"==c||"TH"==c?(a=b.cell(a).index(),[a.row,a.columnVisible,a.column]):null};this.fnIsOpen=function(a){return this.api(!0).row(a).child.isShown()};this.fnOpen=function(a,b,c){return this.api(!0).row(a).child(b,c).show().child()[0]};
+this.fnPageChange=function(a,b){var c=this.api(!0).page(a);(b===k||b)&&c.draw(!1)};this.fnSetColumnVis=function(a,b,c){a=this.api(!0).column(a).visible(b);(c===k||c)&&a.columns.adjust().draw()};this.fnSettings=function(){return ya(this[x.iApiIndex])};this.fnSort=function(a){this.api(!0).order(a).draw()};this.fnSortListener=function(a,b,c){this.api(!0).order.listener(a,b,c)};this.fnUpdate=function(a,b,c,d,e){var h=this.api(!0);c===k||null===c?h.row(b).data(a):h.cell(b,c).data(a);(e===k||e)&&h.columns.adjust();
+(d===k||d)&&h.draw();return 0};this.fnVersionCheck=x.fnVersionCheck;var b=this,c=a===k,d=this.length;c&&(a={});this.oApi=this.internal=x.internal;for(var e in n.ext.internal)e&&(this[e]=Mb(e));this.each(function(){var e={},g=1<d?Xa(e,a,!0):a,j=0,i,e=this.getAttribute("id"),m=!1,l=n.defaults,q=h(this);if("table"!=this.nodeName.toLowerCase())K(null,0,"Non-table node initialisation ("+this.nodeName+")",2);else{fb(l);gb(l.column);J(l,l,!0);J(l.column,l.column,!0);J(l,h.extend(g,q.data()));var t=n.settings,
+j=0;for(i=t.length;j<i;j++){var o=t[j];if(o.nTable==this||o.nTHead&&o.nTHead.parentNode==this||o.nTFoot&&o.nTFoot.parentNode==this){var s=g.bRetrieve!==k?g.bRetrieve:l.bRetrieve;if(c||s)return o.oInstance;if(g.bDestroy!==k?g.bDestroy:l.bDestroy){o.oInstance.fnDestroy();break}else{K(o,0,"Cannot reinitialise DataTable",3);return}}if(o.sTableId==this.id){t.splice(j,1);break}}if(null===e||""===e)this.id=e="DataTables_Table_"+n.ext._unique++;var p=h.extend(!0,{},n.models.oSettings,{sDestroyWidth:q[0].style.width,
+sInstance:e,sTableId:e});p.nTable=this;p.oApi=b.internal;p.oInit=g;t.push(p);p.oInstance=1===b.length?b:q.dataTable();fb(g);Ca(g.oLanguage);g.aLengthMenu&&!g.iDisplayLength&&(g.iDisplayLength=h.isArray(g.aLengthMenu[0])?g.aLengthMenu[0][0]:g.aLengthMenu[0]);g=Xa(h.extend(!0,{},l),g);F(p.oFeatures,g,"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" "));F(p,g,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod",
+"aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"]]);F(p.oScroll,g,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]);F(p.oLanguage,g,"fnInfoCallback");
+z(p,"aoDrawCallback",g.fnDrawCallback,"user");z(p,"aoServerParams",g.fnServerParams,"user");z(p,"aoStateSaveParams",g.fnStateSaveParams,"user");z(p,"aoStateLoadParams",g.fnStateLoadParams,"user");z(p,"aoStateLoaded",g.fnStateLoaded,"user");z(p,"aoRowCallback",g.fnRowCallback,"user");z(p,"aoRowCreatedCallback",g.fnCreatedRow,"user");z(p,"aoHeaderCallback",g.fnHeaderCallback,"user");z(p,"aoFooterCallback",g.fnFooterCallback,"user");z(p,"aoInitComplete",g.fnInitComplete,"user");z(p,"aoPreDrawCallback",
+g.fnPreDrawCallback,"user");p.rowIdFn=S(g.rowId);hb(p);var u=p.oClasses;h.extend(u,n.ext.classes,g.oClasses);q.addClass(u.sTable);p.iInitDisplayStart===k&&(p.iInitDisplayStart=g.iDisplayStart,p._iDisplayStart=g.iDisplayStart);null!==g.iDeferLoading&&(p.bDeferLoading=!0,e=h.isArray(g.iDeferLoading),p._iRecordsDisplay=e?g.iDeferLoading[0]:g.iDeferLoading,p._iRecordsTotal=e?g.iDeferLoading[1]:g.iDeferLoading);var v=p.oLanguage;h.extend(!0,v,g.oLanguage);v.sUrl&&(h.ajax({dataType:"json",url:v.sUrl,success:function(a){Ca(a);
+J(l.oLanguage,a);h.extend(true,v,a);ha(p)},error:function(){ha(p)}}),m=!0);null===g.asStripeClasses&&(p.asStripeClasses=[u.sStripeOdd,u.sStripeEven]);var e=p.asStripeClasses,x=q.children("tbody").find("tr").eq(0);-1!==h.inArray(!0,h.map(e,function(a){return x.hasClass(a)}))&&(h("tbody tr",this).removeClass(e.join(" ")),p.asDestroyStripes=e.slice());e=[];t=this.getElementsByTagName("thead");0!==t.length&&(ea(p.aoHeader,t[0]),e=ra(p));if(null===g.aoColumns){t=[];j=0;for(i=e.length;j<i;j++)t.push(null)}else t=
+g.aoColumns;j=0;for(i=t.length;j<i;j++)Ea(p,e?e[j]:null);jb(p,g.aoColumnDefs,t,function(a,b){ka(p,a,b)});if(x.length){var w=function(a,b){return a.getAttribute("data-"+b)!==null?b:null};h(x[0]).children("th, td").each(function(a,b){var c=p.aoColumns[a];if(c.mData===a){var d=w(b,"sort")||w(b,"order"),e=w(b,"filter")||w(b,"search");if(d!==null||e!==null){c.mData={_:a+".display",sort:d!==null?a+".@data-"+d:k,type:d!==null?a+".@data-"+d:k,filter:e!==null?a+".@data-"+e:k};ka(p,a)}}})}var U=p.oFeatures,
+e=function(){if(g.aaSorting===k){var a=p.aaSorting;j=0;for(i=a.length;j<i;j++)a[j][1]=p.aoColumns[j].asSorting[0]}wa(p);U.bSort&&z(p,"aoDrawCallback",function(){if(p.bSorted){var a=X(p),b={};h.each(a,function(a,c){b[c.src]=c.dir});r(p,null,"order",[p,a,b]);Jb(p)}});z(p,"aoDrawCallback",function(){(p.bSorted||y(p)==="ssp"||U.bDeferRender)&&wa(p)},"sc");var a=q.children("caption").each(function(){this._captionSide=h(this).css("caption-side")}),b=q.children("thead");b.length===0&&(b=h("<thead/>").appendTo(q));
+p.nTHead=b[0];b=q.children("tbody");b.length===0&&(b=h("<tbody/>").appendTo(q));p.nTBody=b[0];b=q.children("tfoot");if(b.length===0&&a.length>0&&(p.oScroll.sX!==""||p.oScroll.sY!==""))b=h("<tfoot/>").appendTo(q);if(b.length===0||b.children().length===0)q.addClass(u.sNoFooter);else if(b.length>0){p.nTFoot=b[0];ea(p.aoFooter,p.nTFoot)}if(g.aaData)for(j=0;j<g.aaData.length;j++)O(p,g.aaData[j]);else(p.bDeferLoading||y(p)=="dom")&&na(p,h(p.nTBody).children("tr"));p.aiDisplay=p.aiDisplayMaster.slice();
+p.bInitialised=true;m===false&&ha(p)};g.bStateSave?(U.bStateSave=!0,z(p,"aoDrawCallback",xa,"state_save"),Kb(p,g,e)):e()}});b=null;return this},x,s,o,u,Za={},Nb=/[\r\n]/g,Aa=/<.*?>/g,Zb=/^\d{2,4}[\.\/\-]\d{1,2}[\.\/\-]\d{1,2}([T ]{1}\d{1,2}[:\.]\d{2}([\.:]\d{2})?)?$/,$b=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"),Ya=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfkɃΞ]/gi,M=function(a){return!a||!0===a||"-"===a?!0:!1},Ob=function(a){var b=parseInt(a,10);return!isNaN(b)&&
+isFinite(a)?b:null},Pb=function(a,b){Za[b]||(Za[b]=RegExp(Qa(b),"g"));return"string"===typeof a&&"."!==b?a.replace(/\./g,"").replace(Za[b],"."):a},$a=function(a,b,c){var d="string"===typeof a;if(M(a))return!0;b&&d&&(a=Pb(a,b));c&&d&&(a=a.replace(Ya,""));return!isNaN(parseFloat(a))&&isFinite(a)},Qb=function(a,b,c){return M(a)?!0:!(M(a)||"string"===typeof a)?null:$a(a.replace(Aa,""),b,c)?!0:null},D=function(a,b,c){var d=[],e=0,f=a.length;if(c!==k)for(;e<f;e++)a[e]&&a[e][b]&&d.push(a[e][b][c]);else for(;e<
+f;e++)a[e]&&d.push(a[e][b]);return d},ja=function(a,b,c,d){var e=[],f=0,g=b.length;if(d!==k)for(;f<g;f++)a[b[f]][c]&&e.push(a[b[f]][c][d]);else for(;f<g;f++)e.push(a[b[f]][c]);return e},Y=function(a,b){var c=[],d;b===k?(b=0,d=a):(d=b,b=a);for(var e=b;e<d;e++)c.push(e);return c},Rb=function(a){for(var b=[],c=0,d=a.length;c<d;c++)a[c]&&b.push(a[c]);return b},qa=function(a){var b;a:{if(!(2>a.length)){b=a.slice().sort();for(var c=b[0],d=1,e=b.length;d<e;d++){if(b[d]===c){b=!1;break a}c=b[d]}}b=!0}if(b)return a.slice();
+b=[];var e=a.length,f,g=0,d=0;a:for(;d<e;d++){c=a[d];for(f=0;f<g;f++)if(b[f]===c)continue a;b.push(c);g++}return b};n.util={throttle:function(a,b){var c=b!==k?b:200,d,e;return function(){var b=this,g=+new Date,j=arguments;d&&g<d+c?(clearTimeout(e),e=setTimeout(function(){d=k;a.apply(b,j)},c)):(d=g,a.apply(b,j))}},escapeRegex:function(a){return a.replace($b,"\\$1")}};var A=function(a,b,c){a[b]!==k&&(a[c]=a[b])},ca=/\[.*?\]$/,W=/\(\)$/,Qa=n.util.escapeRegex,va=h("<div>")[0],Wb=va.textContent!==k,Yb=
+/<.*?>/g,Oa=n.util.throttle,Sb=[],w=Array.prototype,ac=function(a){var b,c,d=n.settings,e=h.map(d,function(a){return a.nTable});if(a){if(a.nTable&&a.oApi)return[a];if(a.nodeName&&"table"===a.nodeName.toLowerCase())return b=h.inArray(a,e),-1!==b?[d[b]]:null;if(a&&"function"===typeof a.settings)return a.settings().toArray();"string"===typeof a?c=h(a):a instanceof h&&(c=a)}else return[];if(c)return c.map(function(){b=h.inArray(this,e);return-1!==b?d[b]:null}).toArray()};s=function(a,b){if(!(this instanceof
+s))return new s(a,b);var c=[],d=function(a){(a=ac(a))&&(c=c.concat(a))};if(h.isArray(a))for(var e=0,f=a.length;e<f;e++)d(a[e]);else d(a);this.context=qa(c);b&&h.merge(this,b);this.selector={rows:null,cols:null,opts:null};s.extend(this,this,Sb)};n.Api=s;h.extend(s.prototype,{any:function(){return 0!==this.count()},concat:w.concat,context:[],count:function(){return this.flatten().length},each:function(a){for(var b=0,c=this.length;b<c;b++)a.call(this,this[b],b,this);return this},eq:function(a){var b=
+this.context;return b.length>a?new s(b[a],this[a]):null},filter:function(a){var b=[];if(w.filter)b=w.filter.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)a.call(this,this[c],c,this)&&b.push(this[c]);return new s(this.context,b)},flatten:function(){var a=[];return new s(this.context,a.concat.apply(a,this.toArray()))},join:w.join,indexOf:w.indexOf||function(a,b){for(var c=b||0,d=this.length;c<d;c++)if(this[c]===a)return c;return-1},iterator:function(a,b,c,d){var e=[],f,g,j,h,m,l=this.context,
+n,o,u=this.selector;"string"===typeof a&&(d=c,c=b,b=a,a=!1);g=0;for(j=l.length;g<j;g++){var r=new s(l[g]);if("table"===b)f=c.call(r,l[g],g),f!==k&&e.push(f);else if("columns"===b||"rows"===b)f=c.call(r,l[g],this[g],g),f!==k&&e.push(f);else if("column"===b||"column-rows"===b||"row"===b||"cell"===b){o=this[g];"column-rows"===b&&(n=Ba(l[g],u.opts));h=0;for(m=o.length;h<m;h++)f=o[h],f="cell"===b?c.call(r,l[g],f.row,f.column,g,h):c.call(r,l[g],f,g,h,n),f!==k&&e.push(f)}}return e.length||d?(a=new s(l,a?
+e.concat.apply([],e):e),b=a.selector,b.rows=u.rows,b.cols=u.cols,b.opts=u.opts,a):this},lastIndexOf:w.lastIndexOf||function(a,b){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(a){var b=[];if(w.map)b=w.map.call(this,a,this);else for(var c=0,d=this.length;c<d;c++)b.push(a.call(this,this[c],c));return new s(this.context,b)},pluck:function(a){return this.map(function(b){return b[a]})},pop:w.pop,push:w.push,reduce:w.reduce||function(a,b){return ib(this,a,b,0,this.length,
+1)},reduceRight:w.reduceRight||function(a,b){return ib(this,a,b,this.length-1,-1,-1)},reverse:w.reverse,selector:null,shift:w.shift,slice:function(){return new s(this.context,this)},sort:w.sort,splice:w.splice,toArray:function(){return w.slice.call(this)},to$:function(){return h(this)},toJQuery:function(){return h(this)},unique:function(){return new s(this.context,qa(this))},unshift:w.unshift});s.extend=function(a,b,c){if(c.length&&b&&(b instanceof s||b.__dt_wrapper)){var d,e,f,g=function(a,b,c){return function(){var d=
+b.apply(a,arguments);s.extend(d,d,c.methodExt);return d}};d=0;for(e=c.length;d<e;d++)f=c[d],b[f.name]="function"===typeof f.val?g(a,f.val,f):h.isPlainObject(f.val)?{}:f.val,b[f.name].__dt_wrapper=!0,s.extend(a,b[f.name],f.propExt)}};s.register=o=function(a,b){if(h.isArray(a))for(var c=0,d=a.length;c<d;c++)s.register(a[c],b);else for(var e=a.split("."),f=Sb,g,j,c=0,d=e.length;c<d;c++){g=(j=-1!==e[c].indexOf("()"))?e[c].replace("()",""):e[c];var i;a:{i=0;for(var m=f.length;i<m;i++)if(f[i].name===g){i=
+f[i];break a}i=null}i||(i={name:g,val:{},methodExt:[],propExt:[]},f.push(i));c===d-1?i.val=b:f=j?i.methodExt:i.propExt}};s.registerPlural=u=function(a,b,c){s.register(a,c);s.register(b,function(){var a=c.apply(this,arguments);return a===this?this:a instanceof s?a.length?h.isArray(a[0])?new s(a.context,a[0]):a[0]:k:a})};o("tables()",function(a){var b;if(a){b=s;var c=this.context;if("number"===typeof a)a=[c[a]];else var d=h.map(c,function(a){return a.nTable}),a=h(d).filter(a).map(function(){var a=h.inArray(this,
+d);return c[a]}).toArray();b=new b(a)}else b=this;return b});o("table()",function(a){var a=this.tables(a),b=a.context;return b.length?new s(b[0]):a});u("tables().nodes()","table().node()",function(){return this.iterator("table",function(a){return a.nTable},1)});u("tables().body()","table().body()",function(){return this.iterator("table",function(a){return a.nTBody},1)});u("tables().header()","table().header()",function(){return this.iterator("table",function(a){return a.nTHead},1)});u("tables().footer()",
+"table().footer()",function(){return this.iterator("table",function(a){return a.nTFoot},1)});u("tables().containers()","table().container()",function(){return this.iterator("table",function(a){return a.nTableWrapper},1)});o("draw()",function(a){return this.iterator("table",function(b){"page"===a?P(b):("string"===typeof a&&(a="full-hold"===a?!1:!0),T(b,!1===a))})});o("page()",function(a){return a===k?this.page.info().page:this.iterator("table",function(b){Ta(b,a)})});o("page.info()",function(){if(0===
+this.context.length)return k;var a=this.context[0],b=a._iDisplayStart,c=a.oFeatures.bPaginate?a._iDisplayLength:-1,d=a.fnRecordsDisplay(),e=-1===c;return{page:e?0:Math.floor(b/c),pages:e?1:Math.ceil(d/c),start:b,end:a.fnDisplayEnd(),length:c,recordsTotal:a.fnRecordsTotal(),recordsDisplay:d,serverSide:"ssp"===y(a)}});o("page.len()",function(a){return a===k?0!==this.context.length?this.context[0]._iDisplayLength:k:this.iterator("table",function(b){Ra(b,a)})});var Tb=function(a,b,c){if(c){var d=new s(a);
+d.one("draw",function(){c(d.ajax.json())})}if("ssp"==y(a))T(a,b);else{C(a,!0);var e=a.jqXHR;e&&4!==e.readyState&&e.abort();sa(a,[],function(c){oa(a);for(var c=ta(a,c),d=0,e=c.length;d<e;d++)O(a,c[d]);T(a,b);C(a,!1)})}};o("ajax.json()",function(){var a=this.context;if(0<a.length)return a[0].json});o("ajax.params()",function(){var a=this.context;if(0<a.length)return a[0].oAjaxData});o("ajax.reload()",function(a,b){return this.iterator("table",function(c){Tb(c,!1===b,a)})});o("ajax.url()",function(a){var b=
+this.context;if(a===k){if(0===b.length)return k;b=b[0];return b.ajax?h.isPlainObject(b.ajax)?b.ajax.url:b.ajax:b.sAjaxSource}return this.iterator("table",function(b){h.isPlainObject(b.ajax)?b.ajax.url=a:b.ajax=a})});o("ajax.url().load()",function(a,b){return this.iterator("table",function(c){Tb(c,!1===b,a)})});var ab=function(a,b,c,d,e){var f=[],g,j,i,m,l,n;i=typeof b;if(!b||"string"===i||"function"===i||b.length===k)b=[b];i=0;for(m=b.length;i<m;i++){j=b[i]&&b[i].split&&!b[i].match(/[\[\(:]/)?b[i].split(","):
+[b[i]];l=0;for(n=j.length;l<n;l++)(g=c("string"===typeof j[l]?h.trim(j[l]):j[l]))&&g.length&&(f=f.concat(g))}a=x.selector[a];if(a.length){i=0;for(m=a.length;i<m;i++)f=a[i](d,e,f)}return qa(f)},bb=function(a){a||(a={});a.filter&&a.search===k&&(a.search=a.filter);return h.extend({search:"none",order:"current",page:"all"},a)},cb=function(a){for(var b=0,c=a.length;b<c;b++)if(0<a[b].length)return a[0]=a[b],a[0].length=1,a.length=1,a.context=[a.context[b]],a;a.length=0;return a},Ba=function(a,b){var c,
+d,e,f=[],g=a.aiDisplay;e=a.aiDisplayMaster;var j=b.search;c=b.order;d=b.page;if("ssp"==y(a))return"removed"===j?[]:Y(0,e.length);if("current"==d){c=a._iDisplayStart;for(d=a.fnDisplayEnd();c<d;c++)f.push(g[c])}else if("current"==c||"applied"==c)if("none"==j)f=e.slice();else if("applied"==j)f=g.slice();else{if("removed"==j){var i={};c=0;for(d=g.length;c<d;c++)i[g[c]]=null;f=h.map(e,function(a){return!i.hasOwnProperty(a)?a:null})}}else if("index"==c||"original"==c){c=0;for(d=a.aoData.length;c<d;c++)"none"==
+j?f.push(c):(e=h.inArray(c,g),(-1===e&&"removed"==j||0<=e&&"applied"==j)&&f.push(c))}return f};o("rows()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=bb(b),c=this.iterator("table",function(c){var e=b,f;return ab("row",a,function(a){var b=Ob(a),i=c.aoData;if(b!==null&&!e)return[b];f||(f=Ba(c,e));if(b!==null&&h.inArray(b,f)!==-1)return[b];if(a===null||a===k||a==="")return f;if(typeof a==="function")return h.map(f,function(b){var c=i[b];return a(b,c._aData,c.nTr)?b:null});if(a.nodeName){var b=
+a._DT_RowIndex,m=a._DT_CellIndex;if(b!==k)return i[b]&&i[b].nTr===a?[b]:[];if(m)return i[m.row]&&i[m.row].nTr===a?[m.row]:[];b=h(a).closest("*[data-dt-row]");return b.length?[b.data("dt-row")]:[]}if(typeof a==="string"&&a.charAt(0)==="#"){b=c.aIds[a.replace(/^#/,"")];if(b!==k)return[b.idx]}b=Rb(ja(c.aoData,f,"nTr"));return h(b).filter(a).map(function(){return this._DT_RowIndex}).toArray()},c,e)},1);c.selector.rows=a;c.selector.opts=b;return c});o("rows().nodes()",function(){return this.iterator("row",
+function(a,b){return a.aoData[b].nTr||k},1)});o("rows().data()",function(){return this.iterator(!0,"rows",function(a,b){return ja(a.aoData,b,"_aData")},1)});u("rows().cache()","row().cache()",function(a){return this.iterator("row",function(b,c){var d=b.aoData[c];return"search"===a?d._aFilterData:d._aSortData},1)});u("rows().invalidate()","row().invalidate()",function(a){return this.iterator("row",function(b,c){da(b,c,a)})});u("rows().indexes()","row().index()",function(){return this.iterator("row",
+function(a,b){return b},1)});u("rows().ids()","row().id()",function(a){for(var b=[],c=this.context,d=0,e=c.length;d<e;d++)for(var f=0,g=this[d].length;f<g;f++){var h=c[d].rowIdFn(c[d].aoData[this[d][f]]._aData);b.push((!0===a?"#":"")+h)}return new s(c,b)});u("rows().remove()","row().remove()",function(){var a=this;this.iterator("row",function(b,c,d){var e=b.aoData,f=e[c],g,h,i,m,l;e.splice(c,1);g=0;for(h=e.length;g<h;g++)if(i=e[g],l=i.anCells,null!==i.nTr&&(i.nTr._DT_RowIndex=g),null!==l){i=0;for(m=
+l.length;i<m;i++)l[i]._DT_CellIndex.row=g}pa(b.aiDisplayMaster,c);pa(b.aiDisplay,c);pa(a[d],c,!1);0<b._iRecordsDisplay&&b._iRecordsDisplay--;Sa(b);c=b.rowIdFn(f._aData);c!==k&&delete b.aIds[c]});this.iterator("table",function(a){for(var c=0,d=a.aoData.length;c<d;c++)a.aoData[c].idx=c});return this});o("rows.add()",function(a){var b=this.iterator("table",function(b){var c,f,g,h=[];f=0;for(g=a.length;f<g;f++)c=a[f],c.nodeName&&"TR"===c.nodeName.toUpperCase()?h.push(na(b,c)[0]):h.push(O(b,c));return h},
+1),c=this.rows(-1);c.pop();h.merge(c,b);return c});o("row()",function(a,b){return cb(this.rows(a,b))});o("row().data()",function(a){var b=this.context;if(a===k)return b.length&&this.length?b[0].aoData[this[0]]._aData:k;var c=b[0].aoData[this[0]];c._aData=a;h.isArray(a)&&c.nTr.id&&N(b[0].rowId)(a,c.nTr.id);da(b[0],this[0],"data");return this});o("row().node()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]].nTr||null:null});o("row.add()",function(a){a instanceof h&&
+a.length&&(a=a[0]);var b=this.iterator("table",function(b){return a.nodeName&&"TR"===a.nodeName.toUpperCase()?na(b,a)[0]:O(b,a)});return this.row(b[0])});var db=function(a,b){var c=a.context;if(c.length&&(c=c[0].aoData[b!==k?b:a[0]])&&c._details)c._details.remove(),c._detailsShow=k,c._details=k},Ub=function(a,b){var c=a.context;if(c.length&&a.length){var d=c[0].aoData[a[0]];if(d._details){(d._detailsShow=b)?d._details.insertAfter(d.nTr):d._details.detach();var e=c[0],f=new s(e),g=e.aoData;f.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details");
+0<D(g,"_details").length&&(f.on("draw.dt.DT_details",function(a,b){e===b&&f.rows({page:"current"}).eq(0).each(function(a){a=g[a];a._detailsShow&&a._details.insertAfter(a.nTr)})}),f.on("column-visibility.dt.DT_details",function(a,b){if(e===b)for(var c,d=V(b),f=0,h=g.length;f<h;f++)c=g[f],c._details&&c._details.children("td[colspan]").attr("colspan",d)}),f.on("destroy.dt.DT_details",function(a,b){if(e===b)for(var c=0,d=g.length;c<d;c++)g[c]._details&&db(f,c)}))}}};o("row().child()",function(a,b){var c=
+this.context;if(a===k)return c.length&&this.length?c[0].aoData[this[0]]._details:k;if(!0===a)this.child.show();else if(!1===a)db(this);else if(c.length&&this.length){var d=c[0],c=c[0].aoData[this[0]],e=[],f=function(a,b){if(h.isArray(a)||a instanceof h)for(var c=0,k=a.length;c<k;c++)f(a[c],b);else a.nodeName&&"tr"===a.nodeName.toLowerCase()?e.push(a):(c=h("<tr><td/></tr>").addClass(b),h("td",c).addClass(b).html(a)[0].colSpan=V(d),e.push(c[0]))};f(a,b);c._details&&c._details.detach();c._details=h(e);
+c._detailsShow&&c._details.insertAfter(c.nTr)}return this});o(["row().child.show()","row().child().show()"],function(){Ub(this,!0);return this});o(["row().child.hide()","row().child().hide()"],function(){Ub(this,!1);return this});o(["row().child.remove()","row().child().remove()"],function(){db(this);return this});o("row().child.isShown()",function(){var a=this.context;return a.length&&this.length?a[0].aoData[this[0]]._detailsShow||!1:!1});var bc=/^([^:]+):(name|visIdx|visible)$/,Vb=function(a,b,
+c,d,e){for(var c=[],d=0,f=e.length;d<f;d++)c.push(B(a,e[d],b));return c};o("columns()",function(a,b){a===k?a="":h.isPlainObject(a)&&(b=a,a="");var b=bb(b),c=this.iterator("table",function(c){var e=a,f=b,g=c.aoColumns,j=D(g,"sName"),i=D(g,"nTh");return ab("column",e,function(a){var b=Ob(a);if(a==="")return Y(g.length);if(b!==null)return[b>=0?b:g.length+b];if(typeof a==="function"){var e=Ba(c,f);return h.map(g,function(b,f){return a(f,Vb(c,f,0,0,e),i[f])?f:null})}var k=typeof a==="string"?a.match(bc):
+"";if(k)switch(k[2]){case "visIdx":case "visible":b=parseInt(k[1],10);if(b<0){var n=h.map(g,function(a,b){return a.bVisible?b:null});return[n[n.length+b]]}return[aa(c,b)];case "name":return h.map(j,function(a,b){return a===k[1]?b:null});default:return[]}if(a.nodeName&&a._DT_CellIndex)return[a._DT_CellIndex.column];b=h(i).filter(a).map(function(){return h.inArray(this,i)}).toArray();if(b.length||!a.nodeName)return b;b=h(a).closest("*[data-dt-column]");return b.length?[b.data("dt-column")]:[]},c,f)},
+1);c.selector.cols=a;c.selector.opts=b;return c});u("columns().header()","column().header()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTh},1)});u("columns().footer()","column().footer()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].nTf},1)});u("columns().data()","column().data()",function(){return this.iterator("column-rows",Vb,1)});u("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(a,b){return a.aoColumns[b].mData},
+1)});u("columns().cache()","column().cache()",function(a){return this.iterator("column-rows",function(b,c,d,e,f){return ja(b.aoData,f,"search"===a?"_aFilterData":"_aSortData",c)},1)});u("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(a,b,c,d,e){return ja(a.aoData,e,"anCells",b)},1)});u("columns().visible()","column().visible()",function(a,b){var c=this.iterator("column",function(b,c){if(a===k)return b.aoColumns[c].bVisible;var f=b.aoColumns,g=f[c],j=b.aoData,
+i,m,l;if(a!==k&&g.bVisible!==a){if(a){var n=h.inArray(!0,D(f,"bVisible"),c+1);i=0;for(m=j.length;i<m;i++)l=j[i].nTr,f=j[i].anCells,l&&l.insertBefore(f[c],f[n]||null)}else h(D(b.aoData,"anCells",c)).detach();g.bVisible=a;fa(b,b.aoHeader);fa(b,b.aoFooter);b.aiDisplay.length||h(b.nTBody).find("td[colspan]").attr("colspan",V(b));xa(b)}});a!==k&&(this.iterator("column",function(c,e){r(c,null,"column-visibility",[c,e,a,b])}),(b===k||b)&&this.columns.adjust());return c});u("columns().indexes()","column().index()",
+function(a){return this.iterator("column",function(b,c){return"visible"===a?ba(b,c):c},1)});o("columns.adjust()",function(){return this.iterator("table",function(a){$(a)},1)});o("column.index()",function(a,b){if(0!==this.context.length){var c=this.context[0];if("fromVisible"===a||"toData"===a)return aa(c,b);if("fromData"===a||"toVisible"===a)return ba(c,b)}});o("column()",function(a,b){return cb(this.columns(a,b))});o("cells()",function(a,b,c){h.isPlainObject(a)&&(a.row===k?(c=a,a=null):(c=b,b=null));
+h.isPlainObject(b)&&(c=b,b=null);if(null===b||b===k)return this.iterator("table",function(b){var d=a,e=bb(c),f=b.aoData,g=Ba(b,e),j=Rb(ja(f,g,"anCells")),i=h([].concat.apply([],j)),l,m=b.aoColumns.length,n,o,u,s,r,v;return ab("cell",d,function(a){var c=typeof a==="function";if(a===null||a===k||c){n=[];o=0;for(u=g.length;o<u;o++){l=g[o];for(s=0;s<m;s++){r={row:l,column:s};if(c){v=f[l];a(r,B(b,l,s),v.anCells?v.anCells[s]:null)&&n.push(r)}else n.push(r)}}return n}if(h.isPlainObject(a))return a.column!==
+k&&a.row!==k&&h.inArray(a.row,g)!==-1?[a]:[];c=i.filter(a).map(function(a,b){return{row:b._DT_CellIndex.row,column:b._DT_CellIndex.column}}).toArray();if(c.length||!a.nodeName)return c;v=h(a).closest("*[data-dt-row]");return v.length?[{row:v.data("dt-row"),column:v.data("dt-column")}]:[]},b,e)});var d=this.columns(b),e=this.rows(a),f,g,j,i,m;this.iterator("table",function(a,b){f=[];g=0;for(j=e[b].length;g<j;g++){i=0;for(m=d[b].length;i<m;i++)f.push({row:e[b][g],column:d[b][i]})}},1);var l=this.cells(f,
+c);h.extend(l.selector,{cols:b,rows:a,opts:c});return l});u("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(a,b,c){return(a=a.aoData[b])&&a.anCells?a.anCells[c]:k},1)});o("cells().data()",function(){return this.iterator("cell",function(a,b,c){return B(a,b,c)},1)});u("cells().cache()","cell().cache()",function(a){a="search"===a?"_aFilterData":"_aSortData";return this.iterator("cell",function(b,c,d){return b.aoData[c][a][d]},1)});u("cells().render()","cell().render()",
+function(a){return this.iterator("cell",function(b,c,d){return B(b,c,d,a)},1)});u("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(a,b,c){return{row:b,column:c,columnVisible:ba(a,c)}},1)});u("cells().invalidate()","cell().invalidate()",function(a){return this.iterator("cell",function(b,c,d){da(b,c,a,d)})});o("cell()",function(a,b,c){return cb(this.cells(a,b,c))});o("cell().data()",function(a){var b=this.context,c=this[0];if(a===k)return b.length&&c.length?B(b[0],
+c[0].row,c[0].column):k;kb(b[0],c[0].row,c[0].column,a);da(b[0],c[0].row,"data",c[0].column);return this});o("order()",function(a,b){var c=this.context;if(a===k)return 0!==c.length?c[0].aaSorting:k;"number"===typeof a?a=[[a,b]]:a.length&&!h.isArray(a[0])&&(a=Array.prototype.slice.call(arguments));return this.iterator("table",function(b){b.aaSorting=a.slice()})});o("order.listener()",function(a,b,c){return this.iterator("table",function(d){Ma(d,a,b,c)})});o("order.fixed()",function(a){if(!a){var b=
+this.context,b=b.length?b[0].aaSortingFixed:k;return h.isArray(b)?{pre:b}:b}return this.iterator("table",function(b){b.aaSortingFixed=h.extend(!0,{},a)})});o(["columns().order()","column().order()"],function(a){var b=this;return this.iterator("table",function(c,d){var e=[];h.each(b[d],function(b,c){e.push([c,a])});c.aaSorting=e})});o("search()",function(a,b,c,d){var e=this.context;return a===k?0!==e.length?e[0].oPreviousSearch.sSearch:k:this.iterator("table",function(e){e.oFeatures.bFilter&&ga(e,
+h.extend({},e.oPreviousSearch,{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),1)})});u("columns().search()","column().search()",function(a,b,c,d){return this.iterator("column",function(e,f){var g=e.aoPreSearchCols;if(a===k)return g[f].sSearch;e.oFeatures.bFilter&&(h.extend(g[f],{sSearch:a+"",bRegex:null===b?!1:b,bSmart:null===c?!0:c,bCaseInsensitive:null===d?!0:d}),ga(e,e.oPreviousSearch,1))})});o("state()",function(){return this.context.length?this.context[0].oSavedState:
+null});o("state.clear()",function(){return this.iterator("table",function(a){a.fnStateSaveCallback.call(a.oInstance,a,{})})});o("state.loaded()",function(){return this.context.length?this.context[0].oLoadedState:null});o("state.save()",function(){return this.iterator("table",function(a){xa(a)})});n.versionCheck=n.fnVersionCheck=function(a){for(var b=n.version.split("."),a=a.split("."),c,d,e=0,f=a.length;e<f;e++)if(c=parseInt(b[e],10)||0,d=parseInt(a[e],10)||0,c!==d)return c>d;return!0};n.isDataTable=
+n.fnIsDataTable=function(a){var b=h(a).get(0),c=!1;if(a instanceof n.Api)return!0;h.each(n.settings,function(a,e){var f=e.nScrollHead?h("table",e.nScrollHead)[0]:null,g=e.nScrollFoot?h("table",e.nScrollFoot)[0]:null;if(e.nTable===b||f===b||g===b)c=!0});return c};n.tables=n.fnTables=function(a){var b=!1;h.isPlainObject(a)&&(b=a.api,a=a.visible);var c=h.map(n.settings,function(b){if(!a||a&&h(b.nTable).is(":visible"))return b.nTable});return b?new s(c):c};n.camelToHungarian=J;o("$()",function(a,b){var c=
+this.rows(b).nodes(),c=h(c);return h([].concat(c.filter(a).toArray(),c.find(a).toArray()))});h.each(["on","one","off"],function(a,b){o(b+"()",function(){var a=Array.prototype.slice.call(arguments);a[0]=h.map(a[0].split(/\s/),function(a){return!a.match(/\.dt\b/)?a+".dt":a}).join(" ");var d=h(this.tables().nodes());d[b].apply(d,a);return this})});o("clear()",function(){return this.iterator("table",function(a){oa(a)})});o("settings()",function(){return new s(this.context,this.context)});o("init()",function(){var a=
+this.context;return a.length?a[0].oInit:null});o("data()",function(){return this.iterator("table",function(a){return D(a.aoData,"_aData")}).flatten()});o("destroy()",function(a){a=a||!1;return this.iterator("table",function(b){var c=b.nTableWrapper.parentNode,d=b.oClasses,e=b.nTable,f=b.nTBody,g=b.nTHead,j=b.nTFoot,i=h(e),f=h(f),k=h(b.nTableWrapper),l=h.map(b.aoData,function(a){return a.nTr}),o;b.bDestroying=!0;r(b,"aoDestroyCallback","destroy",[b]);a||(new s(b)).columns().visible(!0);k.off(".DT").find(":not(tbody *)").off(".DT");
+h(E).off(".DT-"+b.sInstance);e!=g.parentNode&&(i.children("thead").detach(),i.append(g));j&&e!=j.parentNode&&(i.children("tfoot").detach(),i.append(j));b.aaSorting=[];b.aaSortingFixed=[];wa(b);h(l).removeClass(b.asStripeClasses.join(" "));h("th, td",g).removeClass(d.sSortable+" "+d.sSortableAsc+" "+d.sSortableDesc+" "+d.sSortableNone);f.children().detach();f.append(l);g=a?"remove":"detach";i[g]();k[g]();!a&&c&&(c.insertBefore(e,b.nTableReinsertBefore),i.css("width",b.sDestroyWidth).removeClass(d.sTable),
+(o=b.asDestroyStripes.length)&&f.children().each(function(a){h(this).addClass(b.asDestroyStripes[a%o])}));c=h.inArray(b,n.settings);-1!==c&&n.settings.splice(c,1)})});h.each(["column","row","cell"],function(a,b){o(b+"s().every()",function(a){var d=this.selector.opts,e=this;return this.iterator(b,function(f,g,h,i,m){a.call(e[b](g,"cell"===b?h:d,"cell"===b?d:k),g,h,i,m)})})});o("i18n()",function(a,b,c){var d=this.context[0],a=S(a)(d.oLanguage);a===k&&(a=b);c!==k&&h.isPlainObject(a)&&(a=a[c]!==k?a[c]:
+a._);return a.replace("%d",c)});n.version="1.10.19";n.settings=[];n.models={};n.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0};n.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1};n.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,
+sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null};n.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,
+bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(a){return a.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(a){try{return JSON.parse((-1===a.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+
+a.sInstance+"_"+location.pathname))}catch(b){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(a,b){try{(-1===a.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+a.sInstance+"_"+location.pathname,JSON.stringify(b))}catch(c){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},
+oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:h.extend({},
+n.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"};Z(n.defaults);n.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null};
+Z(n.defaults.column);n.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1,barWidth:0},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],
+aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",
+iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:k,oAjaxData:k,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==y(this)?1*this._iRecordsTotal:
+this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==y(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var a=this._iDisplayLength,b=this._iDisplayStart,c=b+a,d=this.aiDisplay.length,e=this.oFeatures,f=e.bPaginate;return e.bServerSide?!1===f||-1===a?b+d:Math.min(b+a,this._iRecordsDisplay):!f||c>d||-1===a?d:c},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null};n.ext=x={buttons:{},
+classes:{},builder:"-source-",errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:n.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:n.version};h.extend(x,{afnFiltering:x.search,aTypes:x.type.detect,ofnSearch:x.type.search,oSort:x.type.order,afnSortData:x.order,aoFeatures:x.feature,oApi:x.internal,oStdClasses:x.classes,oPagination:x.pager});
+h.extend(n.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",
+sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",
+sJUIHeader:"",sJUIFooter:""});var Lb=n.ext.pager;h.extend(Lb,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(a,b){return[ia(a,b)]},simple_numbers:function(a,b){return["previous",ia(a,b),"next"]},full_numbers:function(a,b){return["first","previous",ia(a,b),"next","last"]},first_last_numbers:function(a,b){return["first",ia(a,b),"last"]},_numbers:ia,numbers_length:7});h.extend(!0,n.ext.renderer,{pageButton:{_:function(a,b,c,d,e,
+f){var g=a.oClasses,j=a.oLanguage.oPaginate,i=a.oLanguage.oAria.paginate||{},m,l,n=0,o=function(b,d){var k,s,u,r,v=function(b){Ta(a,b.data.action,true)};k=0;for(s=d.length;k<s;k++){r=d[k];if(h.isArray(r)){u=h("<"+(r.DT_el||"div")+"/>").appendTo(b);o(u,r)}else{m=null;l="";switch(r){case "ellipsis":b.append('<span class="ellipsis">&#x2026;</span>');break;case "first":m=j.sFirst;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "previous":m=j.sPrevious;l=r+(e>0?"":" "+g.sPageButtonDisabled);break;case "next":m=
+j.sNext;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;case "last":m=j.sLast;l=r+(e<f-1?"":" "+g.sPageButtonDisabled);break;default:m=r+1;l=e===r?g.sPageButtonActive:""}if(m!==null){u=h("<a>",{"class":g.sPageButton+" "+l,"aria-controls":a.sTableId,"aria-label":i[r],"data-dt-idx":n,tabindex:a.iTabIndex,id:c===0&&typeof r==="string"?a.sTableId+"_"+r:null}).html(m).appendTo(b);Wa(u,{action:r},v);n++}}}},s;try{s=h(b).find(H.activeElement).data("dt-idx")}catch(u){}o(h(b).empty(),d);s!==k&&h(b).find("[data-dt-idx="+
+s+"]").focus()}}});h.extend(n.ext.type.detect,[function(a,b){var c=b.oLanguage.sDecimal;return $a(a,c)?"num"+c:null},function(a){if(a&&!(a instanceof Date)&&!Zb.test(a))return null;var b=Date.parse(a);return null!==b&&!isNaN(b)||M(a)?"date":null},function(a,b){var c=b.oLanguage.sDecimal;return $a(a,c,!0)?"num-fmt"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Qb(a,c)?"html-num"+c:null},function(a,b){var c=b.oLanguage.sDecimal;return Qb(a,c,!0)?"html-num-fmt"+c:null},function(a){return M(a)||
+"string"===typeof a&&-1!==a.indexOf("<")?"html":null}]);h.extend(n.ext.type.search,{html:function(a){return M(a)?a:"string"===typeof a?a.replace(Nb," ").replace(Aa,""):""},string:function(a){return M(a)?a:"string"===typeof a?a.replace(Nb," "):a}});var za=function(a,b,c,d){if(0!==a&&(!a||"-"===a))return-Infinity;b&&(a=Pb(a,b));a.replace&&(c&&(a=a.replace(c,"")),d&&(a=a.replace(d,"")));return 1*a};h.extend(x.type.order,{"date-pre":function(a){a=Date.parse(a);return isNaN(a)?-Infinity:a},"html-pre":function(a){return M(a)?
+"":a.replace?a.replace(/<.*?>/g,"").toLowerCase():a+""},"string-pre":function(a){return M(a)?"":"string"===typeof a?a.toLowerCase():!a.toString?"":a.toString()},"string-asc":function(a,b){return a<b?-1:a>b?1:0},"string-desc":function(a,b){return a<b?1:a>b?-1:0}});Da("");h.extend(!0,n.ext.renderer,{header:{_:function(a,b,c,d){h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(c.sSortingClass+" "+d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:
+c.sSortingClass)}})},jqueryui:function(a,b,c,d){h("<div/>").addClass(d.sSortJUIWrapper).append(b.contents()).append(h("<span/>").addClass(d.sSortIcon+" "+c.sSortingClassJUI)).appendTo(b);h(a.nTable).on("order.dt.DT",function(e,f,g,h){if(a===f){e=c.idx;b.removeClass(d.sSortAsc+" "+d.sSortDesc).addClass(h[e]=="asc"?d.sSortAsc:h[e]=="desc"?d.sSortDesc:c.sSortingClass);b.find("span."+d.sSortIcon).removeClass(d.sSortJUIAsc+" "+d.sSortJUIDesc+" "+d.sSortJUI+" "+d.sSortJUIAscAllowed+" "+d.sSortJUIDescAllowed).addClass(h[e]==
+"asc"?d.sSortJUIAsc:h[e]=="desc"?d.sSortJUIDesc:c.sSortingClassJUI)}})}}});var eb=function(a){return"string"===typeof a?a.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;"):a};n.render={number:function(a,b,c,d,e){return{display:function(f){if("number"!==typeof f&&"string"!==typeof f)return f;var g=0>f?"-":"",h=parseFloat(f);if(isNaN(h))return eb(f);h=h.toFixed(c);f=Math.abs(h);h=parseInt(f,10);f=c?b+(f-h).toFixed(c).substring(2):"";return g+(d||"")+h.toString().replace(/\B(?=(\d{3})+(?!\d))/g,
+a)+f+(e||"")}}},text:function(){return{display:eb,filter:eb}}};h.extend(n.ext.internal,{_fnExternApiFunc:Mb,_fnBuildAjax:sa,_fnAjaxUpdate:mb,_fnAjaxParameters:vb,_fnAjaxUpdateDraw:wb,_fnAjaxDataSrc:ta,_fnAddColumn:Ea,_fnColumnOptions:ka,_fnAdjustColumnSizing:$,_fnVisibleToColumnIndex:aa,_fnColumnIndexToVisible:ba,_fnVisbleColumns:V,_fnGetColumns:ma,_fnColumnTypes:Ga,_fnApplyColumnDefs:jb,_fnHungarianMap:Z,_fnCamelToHungarian:J,_fnLanguageCompat:Ca,_fnBrowserDetect:hb,_fnAddData:O,_fnAddTr:na,_fnNodeToDataIndex:function(a,
+b){return b._DT_RowIndex!==k?b._DT_RowIndex:null},_fnNodeToColumnIndex:function(a,b,c){return h.inArray(c,a.aoData[b].anCells)},_fnGetCellData:B,_fnSetCellData:kb,_fnSplitObjNotation:Ja,_fnGetObjectDataFn:S,_fnSetObjectDataFn:N,_fnGetDataMaster:Ka,_fnClearTable:oa,_fnDeleteIndex:pa,_fnInvalidate:da,_fnGetRowElements:Ia,_fnCreateTr:Ha,_fnBuildHead:lb,_fnDrawHead:fa,_fnDraw:P,_fnReDraw:T,_fnAddOptionsHtml:ob,_fnDetectHeader:ea,_fnGetUniqueThs:ra,_fnFeatureHtmlFilter:qb,_fnFilterComplete:ga,_fnFilterCustom:zb,
+_fnFilterColumn:yb,_fnFilter:xb,_fnFilterCreateSearch:Pa,_fnEscapeRegex:Qa,_fnFilterData:Ab,_fnFeatureHtmlInfo:tb,_fnUpdateInfo:Db,_fnInfoMacros:Eb,_fnInitialise:ha,_fnInitComplete:ua,_fnLengthChange:Ra,_fnFeatureHtmlLength:pb,_fnFeatureHtmlPaginate:ub,_fnPageChange:Ta,_fnFeatureHtmlProcessing:rb,_fnProcessingDisplay:C,_fnFeatureHtmlTable:sb,_fnScrollDraw:la,_fnApplyToChildren:I,_fnCalculateColumnWidths:Fa,_fnThrottle:Oa,_fnConvertToWidth:Fb,_fnGetWidestNode:Gb,_fnGetMaxLenString:Hb,_fnStringToCss:v,
+_fnSortFlatten:X,_fnSort:nb,_fnSortAria:Jb,_fnSortListener:Va,_fnSortAttachListener:Ma,_fnSortingClasses:wa,_fnSortData:Ib,_fnSaveState:xa,_fnLoadState:Kb,_fnSettingsFromNode:ya,_fnLog:K,_fnMap:F,_fnBindAction:Wa,_fnCallbackReg:z,_fnCallbackFire:r,_fnLengthOverflow:Sa,_fnRenderer:Na,_fnDataSource:y,_fnRowAttributes:La,_fnExtend:Xa,_fnCalculateEnd:function(){}});h.fn.dataTable=n;n.$=h;h.fn.dataTableSettings=n.settings;h.fn.dataTableExt=n.ext;h.fn.DataTable=function(a){return h(this).dataTable(a).api()};
+h.each(n,function(a,b){h.fn.DataTable[a]=b});return h.fn.dataTable});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/fastclick/fastclick.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/fastclick/fastclick.js
new file mode 100644
index 0000000..3af4f9d
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/fastclick/fastclick.js
@@ -0,0 +1,841 @@
+;(function () {
+	'use strict';
+
+	/**
+	 * @preserve FastClick: polyfill to remove click delays on browsers with touch UIs.
+	 *
+	 * @codingstandard ftlabs-jsv2
+	 * @copyright The Financial Times Limited [All Rights Reserved]
+	 * @license MIT License (see LICENSE.txt)
+	 */
+
+	/*jslint browser:true, node:true*/
+	/*global define, Event, Node*/
+
+
+	/**
+	 * Instantiate fast-clicking listeners on the specified layer.
+	 *
+	 * @constructor
+	 * @param {Element} layer The layer to listen on
+	 * @param {Object} [options={}] The options to override the defaults
+	 */
+	function FastClick(layer, options) {
+		var oldOnClick;
+
+		options = options || {};
+
+		/**
+		 * Whether a click is currently being tracked.
+		 *
+		 * @type boolean
+		 */
+		this.trackingClick = false;
+
+
+		/**
+		 * Timestamp for when click tracking started.
+		 *
+		 * @type number
+		 */
+		this.trackingClickStart = 0;
+
+
+		/**
+		 * The element being tracked for a click.
+		 *
+		 * @type EventTarget
+		 */
+		this.targetElement = null;
+
+
+		/**
+		 * X-coordinate of touch start event.
+		 *
+		 * @type number
+		 */
+		this.touchStartX = 0;
+
+
+		/**
+		 * Y-coordinate of touch start event.
+		 *
+		 * @type number
+		 */
+		this.touchStartY = 0;
+
+
+		/**
+		 * ID of the last touch, retrieved from Touch.identifier.
+		 *
+		 * @type number
+		 */
+		this.lastTouchIdentifier = 0;
+
+
+		/**
+		 * Touchmove boundary, beyond which a click will be cancelled.
+		 *
+		 * @type number
+		 */
+		this.touchBoundary = options.touchBoundary || 10;
+
+
+		/**
+		 * The FastClick layer.
+		 *
+		 * @type Element
+		 */
+		this.layer = layer;
+
+		/**
+		 * The minimum time between tap(touchstart and touchend) events
+		 *
+		 * @type number
+		 */
+		this.tapDelay = options.tapDelay || 200;
+
+		/**
+		 * The maximum time for a tap
+		 *
+		 * @type number
+		 */
+		this.tapTimeout = options.tapTimeout || 700;
+
+		if (FastClick.notNeeded(layer)) {
+			return;
+		}
+
+		// Some old versions of Android don't have Function.prototype.bind
+		function bind(method, context) {
+			return function() { return method.apply(context, arguments); };
+		}
+
+
+		var methods = ['onMouse', 'onClick', 'onTouchStart', 'onTouchMove', 'onTouchEnd', 'onTouchCancel'];
+		var context = this;
+		for (var i = 0, l = methods.length; i < l; i++) {
+			context[methods[i]] = bind(context[methods[i]], context);
+		}
+
+		// Set up event handlers as required
+		if (deviceIsAndroid) {
+			layer.addEventListener('mouseover', this.onMouse, true);
+			layer.addEventListener('mousedown', this.onMouse, true);
+			layer.addEventListener('mouseup', this.onMouse, true);
+		}
+
+		layer.addEventListener('click', this.onClick, true);
+		layer.addEventListener('touchstart', this.onTouchStart, false);
+		layer.addEventListener('touchmove', this.onTouchMove, false);
+		layer.addEventListener('touchend', this.onTouchEnd, false);
+		layer.addEventListener('touchcancel', this.onTouchCancel, false);
+
+		// Hack is required for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)
+		// which is how FastClick normally stops click events bubbling to callbacks registered on the FastClick
+		// layer when they are cancelled.
+		if (!Event.prototype.stopImmediatePropagation) {
+			layer.removeEventListener = function(type, callback, capture) {
+				var rmv = Node.prototype.removeEventListener;
+				if (type === 'click') {
+					rmv.call(layer, type, callback.hijacked || callback, capture);
+				} else {
+					rmv.call(layer, type, callback, capture);
+				}
+			};
+
+			layer.addEventListener = function(type, callback, capture) {
+				var adv = Node.prototype.addEventListener;
+				if (type === 'click') {
+					adv.call(layer, type, callback.hijacked || (callback.hijacked = function(event) {
+						if (!event.propagationStopped) {
+							callback(event);
+						}
+					}), capture);
+				} else {
+					adv.call(layer, type, callback, capture);
+				}
+			};
+		}
+
+		// If a handler is already declared in the element's onclick attribute, it will be fired before
+		// FastClick's onClick handler. Fix this by pulling out the user-defined handler function and
+		// adding it as listener.
+		if (typeof layer.onclick === 'function') {
+
+			// Android browser on at least 3.2 requires a new reference to the function in layer.onclick
+			// - the old one won't work if passed to addEventListener directly.
+			oldOnClick = layer.onclick;
+			layer.addEventListener('click', function(event) {
+				oldOnClick(event);
+			}, false);
+			layer.onclick = null;
+		}
+	}
+
+	/**
+	* Windows Phone 8.1 fakes user agent string to look like Android and iPhone.
+	*
+	* @type boolean
+	*/
+	var deviceIsWindowsPhone = navigator.userAgent.indexOf("Windows Phone") >= 0;
+
+	/**
+	 * Android requires exceptions.
+	 *
+	 * @type boolean
+	 */
+	var deviceIsAndroid = navigator.userAgent.indexOf('Android') > 0 && !deviceIsWindowsPhone;
+
+
+	/**
+	 * iOS requires exceptions.
+	 *
+	 * @type boolean
+	 */
+	var deviceIsIOS = /iP(ad|hone|od)/.test(navigator.userAgent) && !deviceIsWindowsPhone;
+
+
+	/**
+	 * iOS 4 requires an exception for select elements.
+	 *
+	 * @type boolean
+	 */
+	var deviceIsIOS4 = deviceIsIOS && (/OS 4_\d(_\d)?/).test(navigator.userAgent);
+
+
+	/**
+	 * iOS 6.0-7.* requires the target element to be manually derived
+	 *
+	 * @type boolean
+	 */
+	var deviceIsIOSWithBadTarget = deviceIsIOS && (/OS [6-7]_\d/).test(navigator.userAgent);
+
+	/**
+	 * BlackBerry requires exceptions.
+	 *
+	 * @type boolean
+	 */
+	var deviceIsBlackBerry10 = navigator.userAgent.indexOf('BB10') > 0;
+
+	/**
+	 * Determine whether a given element requires a native click.
+	 *
+	 * @param {EventTarget|Element} target Target DOM element
+	 * @returns {boolean} Returns true if the element needs a native click
+	 */
+	FastClick.prototype.needsClick = function(target) {
+		switch (target.nodeName.toLowerCase()) {
+
+		// Don't send a synthetic click to disabled inputs (issue #62)
+		case 'button':
+		case 'select':
+		case 'textarea':
+			if (target.disabled) {
+				return true;
+			}
+
+			break;
+		case 'input':
+
+			// File inputs need real clicks on iOS 6 due to a browser bug (issue #68)
+			if ((deviceIsIOS && target.type === 'file') || target.disabled) {
+				return true;
+			}
+
+			break;
+		case 'label':
+		case 'iframe': // iOS8 homescreen apps can prevent events bubbling into frames
+		case 'video':
+			return true;
+		}
+
+		return (/\bneedsclick\b/).test(target.className);
+	};
+
+
+	/**
+	 * Determine whether a given element requires a call to focus to simulate click into element.
+	 *
+	 * @param {EventTarget|Element} target Target DOM element
+	 * @returns {boolean} Returns true if the element requires a call to focus to simulate native click.
+	 */
+	FastClick.prototype.needsFocus = function(target) {
+		switch (target.nodeName.toLowerCase()) {
+		case 'textarea':
+			return true;
+		case 'select':
+			return !deviceIsAndroid;
+		case 'input':
+			switch (target.type) {
+			case 'button':
+			case 'checkbox':
+			case 'file':
+			case 'image':
+			case 'radio':
+			case 'submit':
+				return false;
+			}
+
+			// No point in attempting to focus disabled inputs
+			return !target.disabled && !target.readOnly;
+		default:
+			return (/\bneedsfocus\b/).test(target.className);
+		}
+	};
+
+
+	/**
+	 * Send a click event to the specified element.
+	 *
+	 * @param {EventTarget|Element} targetElement
+	 * @param {Event} event
+	 */
+	FastClick.prototype.sendClick = function(targetElement, event) {
+		var clickEvent, touch;
+
+		// On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect (#24)
+		if (document.activeElement && document.activeElement !== targetElement) {
+			document.activeElement.blur();
+		}
+
+		touch = event.changedTouches[0];
+
+		// Synthesise a click event, with an extra attribute so it can be tracked
+		clickEvent = document.createEvent('MouseEvents');
+		clickEvent.initMouseEvent(this.determineEventType(targetElement), true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);
+		clickEvent.forwardedTouchEvent = true;
+		targetElement.dispatchEvent(clickEvent);
+	};
+
+	FastClick.prototype.determineEventType = function(targetElement) {
+
+		//Issue #159: Android Chrome Select Box does not open with a synthetic click event
+		if (deviceIsAndroid && targetElement.tagName.toLowerCase() === 'select') {
+			return 'mousedown';
+		}
+
+		return 'click';
+	};
+
+
+	/**
+	 * @param {EventTarget|Element} targetElement
+	 */
+	FastClick.prototype.focus = function(targetElement) {
+		var length;
+
+		// Issue #160: on iOS 7, some input elements (e.g. date datetime month) throw a vague TypeError on setSelectionRange. These elements don't have an integer value for the selectionStart and selectionEnd properties, but unfortunately that can't be used for detection because accessing the properties also throws a TypeError. Just check the type instead. Filed as Apple bug #15122724.
+		if (deviceIsIOS && targetElement.setSelectionRange && targetElement.type.indexOf('date') !== 0 && targetElement.type !== 'time' && targetElement.type !== 'month') {
+			length = targetElement.value.length;
+			targetElement.setSelectionRange(length, length);
+		} else {
+			targetElement.focus();
+		}
+	};
+
+
+	/**
+	 * Check whether the given target element is a child of a scrollable layer and if so, set a flag on it.
+	 *
+	 * @param {EventTarget|Element} targetElement
+	 */
+	FastClick.prototype.updateScrollParent = function(targetElement) {
+		var scrollParent, parentElement;
+
+		scrollParent = targetElement.fastClickScrollParent;
+
+		// Attempt to discover whether the target element is contained within a scrollable layer. Re-check if the
+		// target element was moved to another parent.
+		if (!scrollParent || !scrollParent.contains(targetElement)) {
+			parentElement = targetElement;
+			do {
+				if (parentElement.scrollHeight > parentElement.offsetHeight) {
+					scrollParent = parentElement;
+					targetElement.fastClickScrollParent = parentElement;
+					break;
+				}
+
+				parentElement = parentElement.parentElement;
+			} while (parentElement);
+		}
+
+		// Always update the scroll top tracker if possible.
+		if (scrollParent) {
+			scrollParent.fastClickLastScrollTop = scrollParent.scrollTop;
+		}
+	};
+
+
+	/**
+	 * @param {EventTarget} targetElement
+	 * @returns {Element|EventTarget}
+	 */
+	FastClick.prototype.getTargetElementFromEventTarget = function(eventTarget) {
+
+		// On some older browsers (notably Safari on iOS 4.1 - see issue #56) the event target may be a text node.
+		if (eventTarget.nodeType === Node.TEXT_NODE) {
+			return eventTarget.parentNode;
+		}
+
+		return eventTarget;
+	};
+
+
+	/**
+	 * On touch start, record the position and scroll offset.
+	 *
+	 * @param {Event} event
+	 * @returns {boolean}
+	 */
+	FastClick.prototype.onTouchStart = function(event) {
+		var targetElement, touch, selection;
+
+		// Ignore multiple touches, otherwise pinch-to-zoom is prevented if both fingers are on the FastClick element (issue #111).
+		if (event.targetTouches.length > 1) {
+			return true;
+		}
+
+		targetElement = this.getTargetElementFromEventTarget(event.target);
+		touch = event.targetTouches[0];
+
+		if (deviceIsIOS) {
+
+			// Only trusted events will deselect text on iOS (issue #49)
+			selection = window.getSelection();
+			if (selection.rangeCount && !selection.isCollapsed) {
+				return true;
+			}
+
+			if (!deviceIsIOS4) {
+
+				// Weird things happen on iOS when an alert or confirm dialog is opened from a click event callback (issue #23):
+				// when the user next taps anywhere else on the page, new touchstart and touchend events are dispatched
+				// with the same identifier as the touch event that previously triggered the click that triggered the alert.
+				// Sadly, there is an issue on iOS 4 that causes some normal touch events to have the same identifier as an
+				// immediately preceeding touch event (issue #52), so this fix is unavailable on that platform.
+				// Issue 120: touch.identifier is 0 when Chrome dev tools 'Emulate touch events' is set with an iOS device UA string,
+				// which causes all touch events to be ignored. As this block only applies to iOS, and iOS identifiers are always long,
+				// random integers, it's safe to to continue if the identifier is 0 here.
+				if (touch.identifier && touch.identifier === this.lastTouchIdentifier) {
+					event.preventDefault();
+					return false;
+				}
+
+				this.lastTouchIdentifier = touch.identifier;
+
+				// If the target element is a child of a scrollable layer (using -webkit-overflow-scrolling: touch) and:
+				// 1) the user does a fling scroll on the scrollable layer
+				// 2) the user stops the fling scroll with another tap
+				// then the event.target of the last 'touchend' event will be the element that was under the user's finger
+				// when the fling scroll was started, causing FastClick to send a click event to that layer - unless a check
+				// is made to ensure that a parent layer was not scrolled before sending a synthetic click (issue #42).
+				this.updateScrollParent(targetElement);
+			}
+		}
+
+		this.trackingClick = true;
+		this.trackingClickStart = event.timeStamp;
+		this.targetElement = targetElement;
+
+		this.touchStartX = touch.pageX;
+		this.touchStartY = touch.pageY;
+
+		// Prevent phantom clicks on fast double-tap (issue #36)
+		if ((event.timeStamp - this.lastClickTime) < this.tapDelay) {
+			event.preventDefault();
+		}
+
+		return true;
+	};
+
+
+	/**
+	 * Based on a touchmove event object, check whether the touch has moved past a boundary since it started.
+	 *
+	 * @param {Event} event
+	 * @returns {boolean}
+	 */
+	FastClick.prototype.touchHasMoved = function(event) {
+		var touch = event.changedTouches[0], boundary = this.touchBoundary;
+
+		if (Math.abs(touch.pageX - this.touchStartX) > boundary || Math.abs(touch.pageY - this.touchStartY) > boundary) {
+			return true;
+		}
+
+		return false;
+	};
+
+
+	/**
+	 * Update the last position.
+	 *
+	 * @param {Event} event
+	 * @returns {boolean}
+	 */
+	FastClick.prototype.onTouchMove = function(event) {
+		if (!this.trackingClick) {
+			return true;
+		}
+
+		// If the touch has moved, cancel the click tracking
+		if (this.targetElement !== this.getTargetElementFromEventTarget(event.target) || this.touchHasMoved(event)) {
+			this.trackingClick = false;
+			this.targetElement = null;
+		}
+
+		return true;
+	};
+
+
+	/**
+	 * Attempt to find the labelled control for the given label element.
+	 *
+	 * @param {EventTarget|HTMLLabelElement} labelElement
+	 * @returns {Element|null}
+	 */
+	FastClick.prototype.findControl = function(labelElement) {
+
+		// Fast path for newer browsers supporting the HTML5 control attribute
+		if (labelElement.control !== undefined) {
+			return labelElement.control;
+		}
+
+		// All browsers under test that support touch events also support the HTML5 htmlFor attribute
+		if (labelElement.htmlFor) {
+			return document.getElementById(labelElement.htmlFor);
+		}
+
+		// If no for attribute exists, attempt to retrieve the first labellable descendant element
+		// the list of which is defined here: http://www.w3.org/TR/html5/forms.html#category-label
+		return labelElement.querySelector('button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea');
+	};
+
+
+	/**
+	 * On touch end, determine whether to send a click event at once.
+	 *
+	 * @param {Event} event
+	 * @returns {boolean}
+	 */
+	FastClick.prototype.onTouchEnd = function(event) {
+		var forElement, trackingClickStart, targetTagName, scrollParent, touch, targetElement = this.targetElement;
+
+		if (!this.trackingClick) {
+			return true;
+		}
+
+		// Prevent phantom clicks on fast double-tap (issue #36)
+		if ((event.timeStamp - this.lastClickTime) < this.tapDelay) {
+			this.cancelNextClick = true;
+			return true;
+		}
+
+		if ((event.timeStamp - this.trackingClickStart) > this.tapTimeout) {
+			return true;
+		}
+
+		// Reset to prevent wrong click cancel on input (issue #156).
+		this.cancelNextClick = false;
+
+		this.lastClickTime = event.timeStamp;
+
+		trackingClickStart = this.trackingClickStart;
+		this.trackingClick = false;
+		this.trackingClickStart = 0;
+
+		// On some iOS devices, the targetElement supplied with the event is invalid if the layer
+		// is performing a transition or scroll, and has to be re-detected manually. Note that
+		// for this to function correctly, it must be called *after* the event target is checked!
+		// See issue #57; also filed as rdar://13048589 .
+		if (deviceIsIOSWithBadTarget) {
+			touch = event.changedTouches[0];
+
+			// In certain cases arguments of elementFromPoint can be negative, so prevent setting targetElement to null
+			targetElement = document.elementFromPoint(touch.pageX - window.pageXOffset, touch.pageY - window.pageYOffset) || targetElement;
+			targetElement.fastClickScrollParent = this.targetElement.fastClickScrollParent;
+		}
+
+		targetTagName = targetElement.tagName.toLowerCase();
+		if (targetTagName === 'label') {
+			forElement = this.findControl(targetElement);
+			if (forElement) {
+				this.focus(targetElement);
+				if (deviceIsAndroid) {
+					return false;
+				}
+
+				targetElement = forElement;
+			}
+		} else if (this.needsFocus(targetElement)) {
+
+			// Case 1: If the touch started a while ago (best guess is 100ms based on tests for issue #36) then focus will be triggered anyway. Return early and unset the target element reference so that the subsequent click will be allowed through.
+			// Case 2: Without this exception for input elements tapped when the document is contained in an iframe, then any inputted text won't be visible even though the value attribute is updated as the user types (issue #37).
+			if ((event.timeStamp - trackingClickStart) > 100 || (deviceIsIOS && window.top !== window && targetTagName === 'input')) {
+				this.targetElement = null;
+				return false;
+			}
+
+			this.focus(targetElement);
+			this.sendClick(targetElement, event);
+
+			// Select elements need the event to go through on iOS 4, otherwise the selector menu won't open.
+			// Also this breaks opening selects when VoiceOver is active on iOS6, iOS7 (and possibly others)
+			if (!deviceIsIOS || targetTagName !== 'select') {
+				this.targetElement = null;
+				event.preventDefault();
+			}
+
+			return false;
+		}
+
+		if (deviceIsIOS && !deviceIsIOS4) {
+
+			// Don't send a synthetic click event if the target element is contained within a parent layer that was scrolled
+			// and this tap is being used to stop the scrolling (usually initiated by a fling - issue #42).
+			scrollParent = targetElement.fastClickScrollParent;
+			if (scrollParent && scrollParent.fastClickLastScrollTop !== scrollParent.scrollTop) {
+				return true;
+			}
+		}
+
+		// Prevent the actual click from going though - unless the target node is marked as requiring
+		// real clicks or if it is in the whitelist in which case only non-programmatic clicks are permitted.
+		if (!this.needsClick(targetElement)) {
+			event.preventDefault();
+			this.sendClick(targetElement, event);
+		}
+
+		return false;
+	};
+
+
+	/**
+	 * On touch cancel, stop tracking the click.
+	 *
+	 * @returns {void}
+	 */
+	FastClick.prototype.onTouchCancel = function() {
+		this.trackingClick = false;
+		this.targetElement = null;
+	};
+
+
+	/**
+	 * Determine mouse events which should be permitted.
+	 *
+	 * @param {Event} event
+	 * @returns {boolean}
+	 */
+	FastClick.prototype.onMouse = function(event) {
+
+		// If a target element was never set (because a touch event was never fired) allow the event
+		if (!this.targetElement) {
+			return true;
+		}
+
+		if (event.forwardedTouchEvent) {
+			return true;
+		}
+
+		// Programmatically generated events targeting a specific element should be permitted
+		if (!event.cancelable) {
+			return true;
+		}
+
+		// Derive and check the target element to see whether the mouse event needs to be permitted;
+		// unless explicitly enabled, prevent non-touch click events from triggering actions,
+		// to prevent ghost/doubleclicks.
+		if (!this.needsClick(this.targetElement) || this.cancelNextClick) {
+
+			// Prevent any user-added listeners declared on FastClick element from being fired.
+			if (event.stopImmediatePropagation) {
+				event.stopImmediatePropagation();
+			} else {
+
+				// Part of the hack for browsers that don't support Event#stopImmediatePropagation (e.g. Android 2)
+				event.propagationStopped = true;
+			}
+
+			// Cancel the event
+			event.stopPropagation();
+			event.preventDefault();
+
+			return false;
+		}
+
+		// If the mouse event is permitted, return true for the action to go through.
+		return true;
+	};
+
+
+	/**
+	 * On actual clicks, determine whether this is a touch-generated click, a click action occurring
+	 * naturally after a delay after a touch (which needs to be cancelled to avoid duplication), or
+	 * an actual click which should be permitted.
+	 *
+	 * @param {Event} event
+	 * @returns {boolean}
+	 */
+	FastClick.prototype.onClick = function(event) {
+		var permitted;
+
+		// It's possible for another FastClick-like library delivered with third-party code to fire a click event before FastClick does (issue #44). In that case, set the click-tracking flag back to false and return early. This will cause onTouchEnd to return early.
+		if (this.trackingClick) {
+			this.targetElement = null;
+			this.trackingClick = false;
+			return true;
+		}
+
+		// Very odd behaviour on iOS (issue #18): if a submit element is present inside a form and the user hits enter in the iOS simulator or clicks the Go button on the pop-up OS keyboard the a kind of 'fake' click event will be triggered with the submit-type input element as the target.
+		if (event.target.type === 'submit' && event.detail === 0) {
+			return true;
+		}
+
+		permitted = this.onMouse(event);
+
+		// Only unset targetElement if the click is not permitted. This will ensure that the check for !targetElement in onMouse fails and the browser's click doesn't go through.
+		if (!permitted) {
+			this.targetElement = null;
+		}
+
+		// If clicks are permitted, return true for the action to go through.
+		return permitted;
+	};
+
+
+	/**
+	 * Remove all FastClick's event listeners.
+	 *
+	 * @returns {void}
+	 */
+	FastClick.prototype.destroy = function() {
+		var layer = this.layer;
+
+		if (deviceIsAndroid) {
+			layer.removeEventListener('mouseover', this.onMouse, true);
+			layer.removeEventListener('mousedown', this.onMouse, true);
+			layer.removeEventListener('mouseup', this.onMouse, true);
+		}
+
+		layer.removeEventListener('click', this.onClick, true);
+		layer.removeEventListener('touchstart', this.onTouchStart, false);
+		layer.removeEventListener('touchmove', this.onTouchMove, false);
+		layer.removeEventListener('touchend', this.onTouchEnd, false);
+		layer.removeEventListener('touchcancel', this.onTouchCancel, false);
+	};
+
+
+	/**
+	 * Check whether FastClick is needed.
+	 *
+	 * @param {Element} layer The layer to listen on
+	 */
+	FastClick.notNeeded = function(layer) {
+		var metaViewport;
+		var chromeVersion;
+		var blackberryVersion;
+		var firefoxVersion;
+
+		// Devices that don't support touch don't need FastClick
+		if (typeof window.ontouchstart === 'undefined') {
+			return true;
+		}
+
+		// Chrome version - zero for other browsers
+		chromeVersion = +(/Chrome\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];
+
+		if (chromeVersion) {
+
+			if (deviceIsAndroid) {
+				metaViewport = document.querySelector('meta[name=viewport]');
+
+				if (metaViewport) {
+					// Chrome on Android with user-scalable="no" doesn't need FastClick (issue #89)
+					if (metaViewport.content.indexOf('user-scalable=no') !== -1) {
+						return true;
+					}
+					// Chrome 32 and above with width=device-width or less don't need FastClick
+					if (chromeVersion > 31 && document.documentElement.scrollWidth <= window.outerWidth) {
+						return true;
+					}
+				}
+
+			// Chrome desktop doesn't need FastClick (issue #15)
+			} else {
+				return true;
+			}
+		}
+
+		if (deviceIsBlackBerry10) {
+			blackberryVersion = navigator.userAgent.match(/Version\/([0-9]*)\.([0-9]*)/);
+
+			// BlackBerry 10.3+ does not require Fastclick library.
+			// https://github.com/ftlabs/fastclick/issues/251
+			if (blackberryVersion[1] >= 10 && blackberryVersion[2] >= 3) {
+				metaViewport = document.querySelector('meta[name=viewport]');
+
+				if (metaViewport) {
+					// user-scalable=no eliminates click delay.
+					if (metaViewport.content.indexOf('user-scalable=no') !== -1) {
+						return true;
+					}
+					// width=device-width (or less than device-width) eliminates click delay.
+					if (document.documentElement.scrollWidth <= window.outerWidth) {
+						return true;
+					}
+				}
+			}
+		}
+
+		// IE10 with -ms-touch-action: none or manipulation, which disables double-tap-to-zoom (issue #97)
+		if (layer.style.msTouchAction === 'none' || layer.style.touchAction === 'manipulation') {
+			return true;
+		}
+
+		// Firefox version - zero for other browsers
+		firefoxVersion = +(/Firefox\/([0-9]+)/.exec(navigator.userAgent) || [,0])[1];
+
+		if (firefoxVersion >= 27) {
+			// Firefox 27+ does not have tap delay if the content is not zoomable - https://bugzilla.mozilla.org/show_bug.cgi?id=922896
+
+			metaViewport = document.querySelector('meta[name=viewport]');
+			if (metaViewport && (metaViewport.content.indexOf('user-scalable=no') !== -1 || document.documentElement.scrollWidth <= window.outerWidth)) {
+				return true;
+			}
+		}
+
+		// IE11: prefixed -ms-touch-action is no longer supported and it's recomended to use non-prefixed version
+		// http://msdn.microsoft.com/en-us/library/windows/apps/Hh767313.aspx
+		if (layer.style.touchAction === 'none' || layer.style.touchAction === 'manipulation') {
+			return true;
+		}
+
+		return false;
+	};
+
+
+	/**
+	 * Factory method for creating a FastClick object
+	 *
+	 * @param {Element} layer The layer to listen on
+	 * @param {Object} [options={}] The options to override the defaults
+	 */
+	FastClick.attach = function(layer, options) {
+		return new FastClick(layer, options);
+	};
+
+
+	if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {
+
+		// AMD. Register as an anonymous module.
+		define(function() {
+			return FastClick;
+		});
+	} else if (typeof module !== 'undefined' && module.exports) {
+		module.exports = FastClick.attach;
+		module.exports.FastClick = FastClick;
+	} else {
+		window.FastClick = FastClick;
+	}
+}());
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/css/font-awesome.css.map b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/css/font-awesome.css.map
new file mode 100644
index 0000000..60763a8
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/css/font-awesome.css.map
@@ -0,0 +1,7 @@
+{
+"version": 3,
+"mappings": ";;;;;;;AAGA,UAUC;EATC,WAAW,EAAE,aAAa;EAC1B,GAAG,EAAE,+CAAgE;EACrE,GAAG,EAAE,ySAAmG;EAKxG,WAAW,EAAE,MAAM;EACnB,UAAU,EAAE,MAAM;ACTpB,GAAmB;EACjB,OAAO,EAAE,YAAY;EACrB,IAAI,EAAE,uCAAwD;EAC9D,SAAS,EAAE,OAAO;EAClB,cAAc,EAAE,IAAI;EACpB,sBAAsB,EAAE,WAAW;EACnC,uBAAuB,EAAE,SAAS;EAClC,SAAS,EAAE,eAAe;;;ACN5B,MAAsB;EACpB,SAAS,EAAE,SAAS;EACpB,WAAW,EAAE,MAAS;EACtB,cAAc,EAAE,IAAI;;AAEtB,MAAsB;EAAE,SAAS,EAAE,GAAG;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;AACtC,MAAsB;EAAE,SAAS,EAAE,GAAG;;ACVtC,MAAsB;EACpB,KAAK,EAAE,SAAW;EAClB,UAAU,EAAE,MAAM;;ACDpB,MAAsB;EACpB,YAAY,EAAE,CAAC;EACf,WAAW,ECKU,SAAS;EDJ9B,eAAe,EAAE,IAAI;EACrB,WAAK;IAAE,QAAQ,EAAE,QAAQ;;AAE3B,MAAsB;EACpB,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,UAAa;EACnB,KAAK,ECFgB,SAAS;EDG9B,GAAG,EAAE,SAAU;EACf,UAAU,EAAE,MAAM;EAClB,YAAuB;IACrB,IAAI,EAAE,UAA0B;;AEbpC,UAA0B;EACxB,OAAO,EAAE,gBAAgB;EACzB,MAAM,EAAE,iBAA4B;EACpC,aAAa,EAAE,IAAI;;AAGrB,WAAY;EAAE,KAAK,EAAE,KAAK;;AAC1B,UAAW;EAAE,KAAK,EAAE,IAAI;;AAGtB,aAAY;EAAE,YAAY,EAAE,IAAI;AAChC,cAAa;EAAE,WAAW,EAAE,IAAI;;ACXlC,QAAwB;EACtB,iBAAiB,EAAE,0BAA0B;EACrC,SAAS,EAAE,0BAA0B;;AAG/C,SAAyB;EACvB,iBAAiB,EAAE,4BAA4B;EACvC,SAAS,EAAE,4BAA4B;;AAGjD,0BASC;EARC,EAAG;IACD,iBAAiB,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;EAEjC,IAAK;IACH,iBAAiB,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;AAIrC,kBASC;EARC,EAAG;IACD,iBAAiB,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;EAEjC,IAAK;IACH,iBAAiB,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;AC5BrC,aAA8B;ECY5B,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,aAAgB;EAC/B,aAAa,EAAE,aAAgB;EAC3B,SAAS,EAAE,aAAgB;;ADdrC,cAA8B;ECW5B,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,cAAgB;EAC/B,aAAa,EAAE,cAAgB;EAC3B,SAAS,EAAE,cAAgB;;ADbrC,cAA8B;ECU5B,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,cAAgB;EAC/B,aAAa,EAAE,cAAgB;EAC3B,SAAS,EAAE,cAAgB;;ADXrC,mBAAmC;ECejC,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,YAAoB;EACnC,aAAa,EAAE,YAAoB;EAC/B,SAAS,EAAE,YAAoB;;ADjBzC,iBAAmC;ECcjC,MAAM,EAAE,wDAAmE;EAC3E,iBAAiB,EAAE,YAAoB;EACnC,aAAa,EAAE,YAAoB;EAC/B,SAAS,EAAE,YAAoB;;ADZzC;;;;uBAIuC;EACrC,MAAM,EAAE,IAAI;;AEfd,SAAyB;EACvB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,GAAG;EACX,WAAW,EAAE,GAAG;EAChB,cAAc,EAAE,MAAM;;AAExB,0BAAyD;EACvD,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,MAAM;;AAEpB,YAA4B;EAAE,WAAW,EAAE,OAAO;;AAClD,YAA4B;EAAE,SAAS,EAAE,GAAG;;AAC5C,WAA2B;EAAE,KAAK,ELVZ,IAAI;;;;AMN1B,gBAAgC;EAAE,OAAO,ENoQ1B,GAAO;;AMnQtB,gBAAgC;EAAE,OAAO,EN0W1B,GAAO;;AMzWtB,iBAAiC;EAAE,OAAO,ENmb1B,GAAO;;AMlbvB,qBAAqC;EAAE,OAAO,ENmL1B,GAAO;;AMlL3B,gBAAgC;EAAE,OAAO,ENkR1B,GAAO;;AMjRtB,eAA+B;EAAE,OAAO,ENke1B,GAAO;;AMjerB,iBAAiC;EAAE,OAAO,ENse1B,GAAO;;AMrevB,eAA+B;EAAE,OAAO,EN+iB1B,GAAO;;AM9iBrB,eAA+B;EAAE,OAAO,ENyN1B,GAAO;;AMxNrB,mBAAmC;EAAE,OAAO,ENggB1B,GAAO;;AM/fzB,aAA6B;EAAE,OAAO,EN8f1B,GAAO;;AM7fnB,kBAAkC;EAAE,OAAO,EN+f1B,GAAO;;AM9fxB,gBAAgC;EAAE,OAAO,ENoG1B,GAAO;;AMnGtB;;gBAEgC;EAAE,OAAO,ENkgB1B,GAAO;;AMjgBtB,sBAAsC;EAAE,OAAO,ENua1B,GAAO;;AMta5B,uBAAuC;EAAE,OAAO,ENqa1B,GAAO;;AMpa7B,oBAAoC;EAAE,OAAO,EN+X1B,GAAO;;AM9X1B,iBAAiC;EAAE,OAAO,ENsb1B,GAAO;;AMrbvB;cAC8B;EAAE,OAAO,ENwH1B,GAAO;;AMvHpB,kBAAkC;EAAE,OAAO,ENygB1B,GAAO;;AMxgBxB,eAA+B;EAAE,OAAO,ENmQ1B,GAAO;;AMlQrB,iBAAiC;EAAE,OAAO,EN6L1B,GAAO;;AM5LvB,kBAAkC;EAAE,OAAO,EN0G1B,GAAO;;AMzGxB,eAA+B;EAAE,OAAO,EN+Y1B,GAAO;;AM9YrB,mBAAmC;EAAE,OAAO,ENiJ1B,GAAO;;AMhJzB,8BAA8C;EAAE,OAAO,ENI1B,GAAO;;AMHpC,4BAA4C;EAAE,OAAO,ENM1B,GAAO;;AMLlC,gBAAgC;EAAE,OAAO,ENkQ1B,GAAO;;AMjQtB,wBAAwC;EAAE,OAAO,EN4W1B,GAAO;;AM3W9B;iBACiC;EAAE,OAAO,ENmY1B,GAAO;;AMlYvB,kBAAkC;EAAE,OAAO,EN8X1B,GAAO;;AM7XxB,mBAAmC;EAAE,OAAO,ENiS1B,GAAO;;AMhSzB,eAA+B;EAAE,OAAO,ENoS1B,GAAO;;AMnSrB,eAA+B;EAAE,OAAO,ENgM1B,GAAO;;AM/LrB,qBAAqC;EAAE,OAAO,EN+O1B,GAAO;;AM9O3B,qBAAqC;EAAE,OAAO,EN8hB1B,GAAO;;AM7hB3B,sBAAsC;EAAE,OAAO,EN4hB1B,GAAO;;AM3hB5B,oBAAoC;EAAE,OAAO,EN6hB1B,GAAO;;AM5hB1B,iBAAiC;EAAE,OAAO,EN2W1B,GAAO;;AM1WvB,kBAAkC;EAAE,OAAO,ENW1B,GAAO;;AMVxB,cAA8B;EAAE,OAAO,ENod1B,GAAO;;AMndpB,eAA+B;EAAE,OAAO,ENod1B,GAAO;;AMndrB,eAA+B;EAAE,OAAO,EN2B1B,GAAO;;AM1BrB,mBAAmC;EAAE,OAAO,EN2B1B,GAAO;;AM1BzB,gBAAgC;EAAE,OAAO,ENkW1B,GAAO;;AMjWtB,iBAAiC;EAAE,OAAO,ENwC1B,GAAO;;AMvCvB,eAA+B;EAAE,OAAO,EN8L1B,GAAO;;AM7LrB,eAA+B;EAAE,OAAO,ENmB1B,GAAO;;AMlBrB,iBAAiC;EAAE,OAAO,ENoP1B,GAAO;;AMnPvB,sBAAsC;EAAE,OAAO,ENid1B,GAAO;;AMhd5B,qBAAqC;EAAE,OAAO,ENid1B,GAAO;;AMhd3B,qBAAqC;EAAE,OAAO,EN1C1B,GAAO;;AM2C3B,uBAAuC;EAAE,OAAO,EN7C1B,GAAO;;AM8C7B,sBAAsC;EAAE,OAAO,EN3C1B,GAAO;;AM4C5B,wBAAwC;EAAE,OAAO,EN9C1B,GAAO;;AM+C9B,eAA+B;EAAE,OAAO,ENwQ1B,GAAO;;AMvQrB;kBACkC;EAAE,OAAO,ENmT1B,GAAO;;AMlTxB,iBAAiC;EAAE,OAAO,ENmO1B,GAAO;;AMlOvB,uBAAuC;EAAE,OAAO,ENigB1B,GAAO;;AMhgB7B;;oBAEoC;EAAE,OAAO,EN+T1B,GAAO;;AM9T1B,iBAAiC;EAAE,OAAO,ENwT1B,GAAO;;AMvTvB,qBAAqC;EAAE,OAAO,EN+Q1B,GAAO;;AM9Q3B,iBAAiC;EAAE,OAAO,EN5D1B,GAAO;;AM6DvB,eAA+B;EAAE,OAAO,EN8c1B,GAAO;;AM7crB;0BAC0C;EAAE,OAAO,ENqT1B,GAAO;;AMpThC,yBAAyC;EAAE,OAAO,ENuX1B,GAAO;;AMtX/B,yBAAyC;EAAE,OAAO,EN0C1B,GAAO;;AMzC/B,iBAAiC;EAAE,OAAO,ENjC1B,GAAO;;AMkCvB,wBAAwC;EAAE,OAAO,ENma1B,GAAO;;AMla9B,wBAAwC;EAAE,OAAO,EN4H1B,GAAO;;AM3H9B,mBAAmC;EAAE,OAAO,EN7B1B,GAAO;;AM8BzB,eAA+B;EAAE,OAAO,EN0T1B,GAAO;;AMzTrB,gBAAgC;EAAE,OAAO,ENwS1B,GAAO;;AMvStB,eAA+B;EAAE,OAAO,ENia1B,GAAO;;AMharB,kBAAkC;EAAE,OAAO,ENgK1B,GAAO;;AM/JxB,uBAAuC;EAAE,OAAO,ENuH1B,GAAO;;AMtH7B,uBAAuC;EAAE,OAAO,EN4Z1B,GAAO;;AM3Z7B,gBAAgC;EAAE,OAAO,EN4F1B,GAAO;;AM3FtB,uBAAuC;EAAE,OAAO,ENoC1B,GAAO;;AMnC7B,wBAAwC;EAAE,OAAO,ENoC1B,GAAO;;AMnC9B,sBAAsC;EAAE,OAAO,ENsT1B,GAAO;;AMrT5B,uBAAuC;EAAE,OAAO,ENyQ1B,GAAO;;AMxQ7B,uBAAuC;EAAE,OAAO,ENwb1B,GAAO;;AMvb7B,uBAAuC;EAAE,OAAO,ENsB1B,GAAO;;AMrB7B,0BAA0C;EAAE,OAAO,EN2T1B,GAAO;;AM1ThC,sBAAsC;EAAE,OAAO,ENsM1B,GAAO;;AMrM5B,qBAAqC;EAAE,OAAO,EN6D1B,GAAO;;AM5D3B,yBAAyC;EAAE,OAAO,ENob1B,GAAO;;AMnb/B,yBAAyC;EAAE,OAAO,ENkB1B,GAAO;;AMjB/B,cAA8B;EAAE,OAAO,EN/C1B,GAAO;;AMgDpB,qBAAqC;EAAE,OAAO,EN3D1B,GAAO;;AM4D3B,sBAAsC;EAAE,OAAO,EN3D1B,GAAO;;AM4D5B,mBAAmC;EAAE,OAAO,EN3D1B,GAAO;;AM4DzB,qBAAqC;EAAE,OAAO,EN/D1B,GAAO;;AMgE3B;gBACgC;EAAE,OAAO,ENqV1B,GAAO;;AMpVtB,iBAAiC;EAAE,OAAO,ENuF1B,GAAO;;AMtFvB,mBAAmC;EAAE,OAAO,EN4C1B,GAAO;;AM3CzB,eAA+B;EAAE,OAAO,ENmS1B,GAAO;;AMlSrB,gBAAgC;EAAE,OAAO,ENsP1B,GAAO;;AMrPtB,mBAAmC;EAAE,OAAO,EN9D1B,GAAO;;AM+DzB,6BAA6C;EAAE,OAAO,ENgF1B,GAAO;;AM/EnC,eAA+B;EAAE,OAAO,EN+I1B,GAAO;;AM9IrB,eAA+B;EAAE,OAAO,ENoM1B,GAAO;;AMnMrB,eAA+B;EAAE,OAAO,ENmH1B,GAAO;;AMlHrB,cAA8B;EAAE,OAAO,ENiF1B,GAAO;;AMhFpB,oBAAoC;EAAE,OAAO,ENiF1B,GAAO;;AMhF1B;+BAC+C;EAAE,OAAO,EN0E1B,GAAO;;AMzErC,gBAAgC;EAAE,OAAO,ENmR1B,GAAO;;AMlRtB,mBAAmC;EAAE,OAAO,EN/B1B,GAAO;;AMgCzB,iBAAiC;EAAE,OAAO,ENoS1B,GAAO;;AMnSvB,kBAAkC;EAAE,OAAO,ENwB1B,GAAO;;AMvBxB,iBAAiC;EAAE,OAAO,ENqN1B,GAAO;;AMpNvB,qBAAqC;EAAE,OAAO,ENE1B,GAAO;;AMD3B,uBAAuC;EAAE,OAAO,ENF1B,GAAO;;AMG7B,kBAAkC;EAAE,OAAO,EN2S1B,GAAO;;AM1SxB,wBAAwC;EAAE,OAAO,ENyU1B,GAAO;;AMxU9B,iBAAiC;EAAE,OAAO,EN8G1B,GAAO;;AM7GvB,sBAAsC;EAAE,OAAO,EN+G1B,GAAO;;AM9G5B,mBAAmC;EAAE,OAAO,ENnF1B,GAAO;;AMoFzB,mBAAmC;EAAE,OAAO,ENrF1B,GAAO;;AMsFzB;oBACoC;EAAE,OAAO,EN/E1B,GAAO;;AMgF1B,yBAAyC;EAAE,OAAO,ENua1B,GAAO;;AMta/B,0BAA0C;EAAE,OAAO,ENmE1B,GAAO;;AMlEhC,uBAAuC;EAAE,OAAO,EN5C1B,GAAO;;AM6C7B,cAA8B;EAAE,OAAO,ENqK1B,GAAO;;AMpKpB;eAC+B;EAAE,OAAO,ENK1B,GAAO;;AMJrB,mBAAmC;EAAE,OAAO,ENQ1B,GAAO;;AMPzB,sBAAsC;EAAE,OAAO,ENmY1B,GAAO;;AMlY5B,wBAAwC;EAAE,OAAO,ENiY1B,GAAO;;AMhY9B,oBAAoC;EAAE,OAAO,EN2V1B,GAAO;;AM1V1B,kBAAkC;EAAE,OAAO,ENyI1B,GAAO;;AMxIxB,mBAAmC;EAAE,OAAO,ENyT1B,GAAO;;AMxTzB,0BAA0C;EAAE,OAAO,ENiL1B,GAAO;;AMhLhC,qBAAqC;EAAE,OAAO,EN0X1B,GAAO;;AMzX3B,wBAAwC;EAAE,OAAO,EN8C1B,GAAO;;AM7C9B,kBAAkC;EAAE,OAAO,ENoT1B,GAAO;;AMnTxB,iBAAiC;EAAE,OAAO,EN8Y1B,GAAO;;AM7YvB,wBAAwC;EAAE,OAAO,EN6G1B,GAAO;;AM5G9B,iBAAiC;EAAE,OAAO,EN8Z1B,GAAO;;AM7ZvB,kBAAkC;EAAE,OAAO,EN+J1B,GAAO;;AM9JxB,gBAAgC;EAAE,OAAO,ENsO1B,GAAO;;AMrOtB,mBAAmC;EAAE,OAAO,EN2U1B,GAAO;;AM1UzB,qBAAqC;EAAE,OAAO,EN/E1B,GAAO;;AMgF3B,uBAAuC;EAAE,OAAO,ENoO1B,GAAO;;AMnO7B,kBAAkC;EAAE,OAAO,EN8Y1B,GAAO;;AM7YxB;mBACmC;EAAE,OAAO,ENuC1B,GAAO;;AMtCzB,iBAAiC;EAAE,OAAO,ENiG1B,GAAO;;AMhGvB,iBAAiC;EAAE,OAAO,ENiZ1B,GAAO;;AMhZvB,sBAAsC;EAAE,OAAO,ENR1B,GAAO;;AMS5B,cAA8B;EAAE,OAAO,EN4Q1B,GAAO;;AM3QpB,gBAAgC;EAAE,OAAO,ENgH1B,GAAO;;AM/GtB,mBAAmC;EAAE,OAAO,ENnF1B,GAAO;;AMoFzB,eAA+B;EAAE,OAAO,ENzG1B,GAAO;;AM0GrB,sBAAsC;EAAE,OAAO,ENzD1B,GAAO;;AM0D5B,uBAAuC;EAAE,OAAO,EN0G1B,GAAO;;AMzG7B,sBAAsC;EAAE,OAAO,ENwG1B,GAAO;;AMvG5B,oBAAoC;EAAE,OAAO,ENyG1B,GAAO;;AMxG1B,sBAAsC;EAAE,OAAO,ENqG1B,GAAO;;AMpG5B,4BAA4C;EAAE,OAAO,EN5I1B,GAAO;;AM6IlC,6BAA6C;EAAE,OAAO,ENxI1B,GAAO;;AMyInC,0BAA0C;EAAE,OAAO,ENxI1B,GAAO;;AMyIhC,4BAA4C;EAAE,OAAO,ENhJ1B,GAAO;;AMiJlC,gBAAgC;EAAE,OAAO,ENsF1B,GAAO;;AMrFtB,iBAAiC;EAAE,OAAO,ENia1B,GAAO;;AMhavB,gBAAgC;EAAE,OAAO,ENiV1B,GAAO;;AMhVtB,iBAAiC;EAAE,OAAO,ENgD1B,GAAO;;AM/CvB,oBAAoC;EAAE,OAAO,ENvG1B,GAAO;;AMwG1B,qBAAqC;EAAE,OAAO,ENzI1B,GAAO;;AM0I3B;gBACgC;EAAE,OAAO,ENqY1B,GAAO;;AMpYtB;eAC+B;EAAE,OAAO,ENuI1B,GAAO;;AMtIrB,gBAAgC;EAAE,OAAO,ENpD1B,GAAO;;AMqDtB,gBAAgC;EAAE,OAAO,EN+C1B,GAAO;;AM9CtB;mBACmC;EAAE,OAAO,ENwP1B,GAAO;;AMvPzB;kBACkC;EAAE,OAAO,ENkC1B,GAAO;;AMjCxB,oBAAoC;EAAE,OAAO,ENsL1B,GAAO;;AMrL1B;mBACmC;EAAE,OAAO,EN0C1B,GAAO;;AMzCzB,iBAAiC;EAAE,OAAO,ENiS1B,GAAO;;AMhSvB;;eAE+B;EAAE,OAAO,EN9I1B,GAAO;;AM+IrB,kBAAkC;EAAE,OAAO,ENgI1B,GAAO;;AM/HxB,kBAAkC;EAAE,OAAO,EN8H1B,GAAO;;AM7HxB,wBAAwC;EAAE,OAAO,EN4S1B,GAAO;;AM3S9B,oBAAoC;EAAE,OAAO,ENoW1B,GAAO;;AMnW1B,gBAAgC;EAAE,OAAO,ENmT1B,GAAO;;AMlTtB,gBAAgC;EAAE,OAAO,ENkI1B,GAAO;;AMjItB,gBAAgC;EAAE,OAAO,ENuV1B,GAAO;;AMtVtB,oBAAoC;EAAE,OAAO,ENwL1B,GAAO;;AMvL1B,2BAA2C;EAAE,OAAO,ENyL1B,GAAO;;AMxLjC,6BAA6C;EAAE,OAAO,ENyD1B,GAAO;;AMxDnC,sBAAsC;EAAE,OAAO,ENuD1B,GAAO;;AMtD5B,gBAAgC;EAAE,OAAO,ENsJ1B,GAAO;;AMrJtB,qBAAqC;EAAE,OAAO,ENtH1B,GAAO;;AMuH3B,mBAAmC;EAAE,OAAO,ENhH1B,GAAO;;AMiHzB,qBAAqC;EAAE,OAAO,ENvH1B,GAAO;;AMwH3B,sBAAsC;EAAE,OAAO,ENvH1B,GAAO;;AMwH5B,kBAAkC;EAAE,OAAO,ENvE1B,GAAO;;AMwExB;eAC+B;EAAE,OAAO,EN2P1B,GAAO;;AM1PrB;oBACoC;EAAE,OAAO,EN+P1B,GAAO;;AM9P1B;mBACmC;EAAE,OAAO,EN4P1B,GAAO;;AM3PzB,mBAAmC;EAAE,OAAO,ENxC1B,GAAO;;AMyCzB,mBAAmC;EAAE,OAAO,ENkG1B,GAAO;;AMjGzB;eAC+B;EAAE,OAAO,EN8U1B,GAAO;;AM7UrB;gBACgC;EAAE,OAAO,ENqB1B,GAAO;;AMpBtB;qBACqC;EAAE,OAAO,EN2R1B,GAAO;;AM1R3B,oBAAoC;EAAE,OAAO,ENpF1B,GAAO;;AMqF1B,qBAAqC;EAAE,OAAO,ENnF1B,GAAO;;AMoF3B;eAC+B;EAAE,OAAO,ENjK1B,GAAO;;AMkKrB,kBAAkC;EAAE,OAAO,ENkO1B,GAAO;;AMjOxB,mBAAmC;EAAE,OAAO,ENkU1B,GAAO;;AMjUzB;oBACoC;EAAE,OAAO,EN1G1B,GAAO;;AM2G1B,sBAAsC;EAAE,OAAO,ENgF1B,GAAO;;AM/E5B,mBAAmC;EAAE,OAAO,ENnD1B,GAAO;;AMoDzB,yBAAyC;EAAE,OAAO,ENzG1B,GAAO;;AM0G/B,uBAAuC;EAAE,OAAO,ENzG1B,GAAO;;AM0G7B,kBAAkC;EAAE,OAAO,ENsU1B,GAAO;;AMrUxB,sBAAsC;EAAE,OAAO,EN+P1B,GAAO;;AM9P5B,mBAAmC;EAAE,OAAO,ENsQ1B,GAAO;;AMrQzB,iBAAiC;EAAE,OAAO,ENvL1B,GAAO;;AMwLvB,iBAAiC;EAAE,OAAO,ENzG1B,GAAO;;AM0GvB,kBAAkC;EAAE,OAAO,ENtF1B,GAAO;;AMuFxB,sBAAsC;EAAE,OAAO,EN3B1B,GAAO;;AM4B5B,qBAAqC;EAAE,OAAO,ENxK1B,GAAO;;AMyK3B,qBAAqC;EAAE,OAAO,ENkC1B,GAAO;;AMjC3B,oBAAoC;EAAE,OAAO,EN3O1B,GAAO;;AM4O1B,iBAAiC;EAAE,OAAO,ENiG1B,GAAO;;AMhGvB,sBAAsC;EAAE,OAAO,EN/C1B,GAAO;;AMgD5B,eAA+B;EAAE,OAAO,ENpM1B,GAAO;;AMqMrB,mBAAmC;EAAE,OAAO,ENe1B,GAAO;;AMdzB,sBAAsC;EAAE,OAAO,ENgJ1B,GAAO;;AM/I5B,4BAA4C;EAAE,OAAO,EN5O1B,GAAO;;AM6OlC,6BAA6C;EAAE,OAAO,EN5O1B,GAAO;;AM6OnC,0BAA0C;EAAE,OAAO,EN5O1B,GAAO;;AM6OhC,4BAA4C;EAAE,OAAO,ENhP1B,GAAO;;AMiPlC,qBAAqC;EAAE,OAAO,EN5O1B,GAAO;;AM6O3B,sBAAsC;EAAE,OAAO,EN5O1B,GAAO;;AM6O5B,mBAAmC;EAAE,OAAO,EN5O1B,GAAO;;AM6OzB,qBAAqC;EAAE,OAAO,ENhP1B,GAAO;;AMiP3B,kBAAkC;EAAE,OAAO,ENlG1B,GAAO;;AMmGxB,iBAAiC;EAAE,OAAO,ENuC1B,GAAO;;AMtCvB,iBAAiC;EAAE,OAAO,ENoP1B,GAAO;;AMnPvB;iBACiC;EAAE,OAAO,ENyF1B,GAAO;;AMxFvB,mBAAmC;EAAE,OAAO,EN9I1B,GAAO;;AM+IzB,qBAAqC;EAAE,OAAO,EN0I1B,GAAO;;AMzI3B,sBAAsC;EAAE,OAAO,EN0I1B,GAAO;;AMzI5B,kBAAkC;EAAE,OAAO,ENgN1B,GAAO;;AM/MxB,iBAAiC;EAAE,OAAO,ENnJ1B,GAAO;;AMoJvB;gBACgC;EAAE,OAAO,ENkJ1B,GAAO;;AMjJtB,qBAAqC;EAAE,OAAO,ENnB1B,GAAO;;AMoB3B,mBAAmC;EAAE,OAAO,ENxC1B,GAAO;;AMyCzB,wBAAwC;EAAE,OAAO,ENvC1B,GAAO;;AMwC9B,kBAAkC;EAAE,OAAO,EN0L1B,GAAO;;AMzLxB,kBAAkC;EAAE,OAAO,ENpC1B,GAAO;;AMqCxB,gBAAgC;EAAE,OAAO,ENoE1B,GAAO;;AMnEtB,kBAAkC;EAAE,OAAO,ENpC1B,GAAO;;AMqCxB,qBAAqC;EAAE,OAAO,ENkB1B,GAAO;;AMjB3B,iBAAiC;EAAE,OAAO,ENrD1B,GAAO;;AMsDvB,yBAAyC;EAAE,OAAO,ENvD1B,GAAO;;AMwD/B,mBAAmC;EAAE,OAAO,ENuO1B,GAAO;;AMtOzB,eAA+B;EAAE,OAAO,ENtJ1B,GAAO;;AMuJrB;oBACoC;EAAE,OAAO,ENqI1B,GAAO;;AMpI1B;;sBAEsC;EAAE,OAAO,ENuM1B,GAAO;;AMtM5B,yBAAyC;EAAE,OAAO,ENkC1B,GAAO;;AMjC/B,eAA+B;EAAE,OAAO,EN5I1B,GAAO;;AM6IrB,oBAAoC;EAAE,OAAO,EN7J1B,GAAO;;AM8J1B;uBACuC;EAAE,OAAO,EN1L1B,GAAO;;AM2L7B,mBAAmC;EAAE,OAAO,EN4G1B,GAAO;;AM3GzB,eAA+B;EAAE,OAAO,ENT1B,GAAO;;AMUrB,sBAAsC;EAAE,OAAO,ENhH1B,GAAO;;AMiH5B,sBAAsC;EAAE,OAAO,EN8M1B,GAAO;;AM7M5B,oBAAoC;EAAE,OAAO,ENyM1B,GAAO;;AMxM1B,iBAAiC;EAAE,OAAO,ENvH1B,GAAO;;AMwHvB,uBAAuC;EAAE,OAAO,ENmG1B,GAAO;;AMlG7B,qBAAqC;EAAE,OAAO,EN8C1B,GAAO;;AM7C3B,2BAA2C;EAAE,OAAO,EN8C1B,GAAO;;AM7CjC,iBAAiC;EAAE,OAAO,ENgJ1B,GAAO;;AM/IvB,qBAAqC;EAAE,OAAO,EN5N1B,GAAO;;AM6N3B,4BAA4C;EAAE,OAAO,ENjF1B,GAAO;;AMkFlC,iBAAiC;EAAE,OAAO,ENoH1B,GAAO;;AMnHvB,iBAAiC;EAAE,OAAO,ENkC1B,GAAO;;AMjCvB,8BAA8C;EAAE,OAAO,ENlM1B,GAAO;;AMmMpC,+BAA+C;EAAE,OAAO,ENlM1B,GAAO;;AMmMrC,4BAA4C;EAAE,OAAO,ENlM1B,GAAO;;AMmMlC,8BAA8C;EAAE,OAAO,ENtM1B,GAAO;;AMuMpC,gBAAgC;EAAE,OAAO,EN/B1B,GAAO;;AMgCtB,eAA+B;EAAE,OAAO,ENjK1B,GAAO;;AMkKrB,iBAAiC;EAAE,OAAO,EN9S1B,GAAO;;AM+SvB,qBAAqC;EAAE,OAAO,ENmP1B,GAAO;;AMlP3B,mBAAmC;EAAE,OAAO,EN9O1B,GAAO;;AM+OzB,qBAAqC;EAAE,OAAO,EN/I1B,GAAO;;AMgJ3B,qBAAqC;EAAE,OAAO,EN/I1B,GAAO;;AMgJ3B,qBAAqC;EAAE,OAAO,EN4G1B,GAAO;;AM3G3B,sBAAsC;EAAE,OAAO,ENsE1B,GAAO;;AMrE5B,iBAAiC;EAAE,OAAO,EN2M1B,GAAO;;AM1MvB,uBAAuC;EAAE,OAAO,EN6B1B,GAAO;;AM5B7B,yBAAyC;EAAE,OAAO,EN6B1B,GAAO;;AM5B/B,mBAAmC;EAAE,OAAO,ENhB1B,GAAO;;AMiBzB,qBAAqC;EAAE,OAAO,ENlB1B,GAAO;;AMmB3B,uBAAuC;EAAE,OAAO,ENvN1B,GAAO;;AMwN7B,wBAAwC;EAAE,OAAO,ENiD1B,GAAO;;AMhD9B,+BAA+C;EAAE,OAAO,EN3I1B,GAAO;;AM4IrC,uBAAuC;EAAE,OAAO,ENkH1B,GAAO;;AMjH7B,kBAAkC;EAAE,OAAO,EN1L1B,GAAO;;AM2LxB;8BAC8C;EAAE,OAAO,ENjP1B,GAAO;;AMkPpC;4BAC4C;EAAE,OAAO,ENhP1B,GAAO;;AMiPlC;+BAC+C;EAAE,OAAO,ENnP1B,GAAO;;AMoPrC;cAC8B;EAAE,OAAO,EN7J1B,GAAO;;AM8JpB,cAA8B;EAAE,OAAO,EN/F1B,GAAO;;AMgGpB;cAC8B;EAAE,OAAO,EN4N1B,GAAO;;AM3NpB;cAC8B;EAAE,OAAO,ENvD1B,GAAO;;AMwDpB;;;cAG8B;EAAE,OAAO,ENrD1B,GAAO;;AMsDpB;;cAE8B;EAAE,OAAO,EN8E1B,GAAO;;AM7EpB;cAC8B;EAAE,OAAO,ENtD1B,GAAO;;AMuDpB;cAC8B;EAAE,OAAO,ENzR1B,GAAO;;AM0RpB,eAA+B;EAAE,OAAO,ENzJ1B,GAAO;;AM0JrB,oBAAoC;EAAE,OAAO,EN7I1B,GAAO;;AM8I1B,yBAAyC;EAAE,OAAO,EN2G1B,GAAO;;AM1G/B,0BAA0C;EAAE,OAAO,EN2G1B,GAAO;;AM1GhC,0BAA0C;EAAE,OAAO,EN2G1B,GAAO;;AM1GhC,2BAA2C;EAAE,OAAO,EN2G1B,GAAO;;AM1GjC,2BAA2C;EAAE,OAAO,EN8G1B,GAAO;;AM7GjC,4BAA4C;EAAE,OAAO,EN8G1B,GAAO;;AM7GlC,oBAAoC;EAAE,OAAO,ENgK1B,GAAO;;AM/J1B,sBAAsC;EAAE,OAAO,EN4J1B,GAAO;;AM3J5B,yBAAyC;EAAE,OAAO,ENwO1B,GAAO;;AMvO/B,kBAAkC;EAAE,OAAO,ENqO1B,GAAO;;AMpOxB,eAA+B;EAAE,OAAO,EN+N1B,GAAO;;AM9NrB,sBAAsC;EAAE,OAAO,EN+N1B,GAAO;;AM9N5B,uBAAuC;EAAE,OAAO,ENmO1B,GAAO;;AMlO7B,kBAAkC;EAAE,OAAO,ENxM1B,GAAO;;AMyMxB,yBAAyC;EAAE,OAAO,EN+G1B,GAAO;;AM9G/B,oBAAoC;EAAE,OAAO,ENnF1B,GAAO;;AMoF1B,iBAAiC;EAAE,OAAO,EN/I1B,GAAO;;AMgJvB,cAA8B;EAAE,OAAO,ENhX1B,GAAO;;AMiXpB,oBAAoC;EAAE,OAAO,ENxT1B,GAAO;;AMyT1B,2BAA2C;EAAE,OAAO,ENxT1B,GAAO;;AMyTjC,iBAAiC;EAAE,OAAO,ENyK1B,GAAO;;AMxKvB,wBAAwC;EAAE,OAAO,ENyK1B,GAAO;;AMxK9B,0BAA0C;EAAE,OAAO,ENtD1B,GAAO;;AMuDhC,wBAAwC;EAAE,OAAO,ENpD1B,GAAO;;AMqD9B,0BAA0C;EAAE,OAAO,ENvD1B,GAAO;;AMwDhC,2BAA2C;EAAE,OAAO,ENvD1B,GAAO;;AMwDjC,gBAAgC;EAAE,OAAO,ENxW1B,GAAO;;AMyWtB,kBAAkC;EAAE,OAAO,EN0M1B,GAAO;;AMzMxB,kBAAkC;EAAE,OAAO,ENpX1B,GAAO;;AMqXxB,gBAAgC;EAAE,OAAO,ENpE1B,GAAO;;AMqEtB,mBAAmC;EAAE,OAAO,EN1N1B,GAAO;;AM2NzB,gBAAgC;EAAE,OAAO,ENqE1B,GAAO;;AMpEtB,qBAAqC;EAAE,OAAO,ENtJ1B,GAAO;;AMuJ3B,iBAAiC;EAAE,OAAO,ENuJ1B,GAAO;;AMtJvB,iBAAiC;EAAE,OAAO,EN/L1B,GAAO;;AMgMvB,eAA+B;EAAE,OAAO,EN1D1B,GAAO;;AM2DrB;mBACmC;EAAE,OAAO,ENnI1B,GAAO;;AMoIzB,gBAAgC;EAAE,OAAO,EN2G1B,GAAO;;AM1GtB,iBAAiC;EAAE,OAAO,ENxC1B,GAAO;;AMyCvB,kBAAkC;EAAE,OAAO,ENrX1B,GAAO;;AMsXxB,cAA8B;EAAE,OAAO,ENpU1B,GAAO;;AMqUpB,aAA6B;EAAE,OAAO,ENgL1B,GAAO;;AM/KnB,gBAAgC;EAAE,OAAO,ENqL1B,GAAO;;AMpLtB,iBAAiC;EAAE,OAAO,ENa1B,GAAO;;AMZvB,oBAAoC;EAAE,OAAO,ENrC1B,GAAO;;AMsC1B,yBAAyC;EAAE,OAAO,EN8E1B,GAAO;;AM7E/B,+BAA+C;EAAE,OAAO,ENtX1B,GAAO;;AMuXrC,8BAA8C;EAAE,OAAO,ENxX1B,GAAO;;AMyXpC;8BAC8C;EAAE,OAAO,EN3T1B,GAAO;;AM4TpC,uBAAuC;EAAE,OAAO,ENjP1B,GAAO;;AMkP7B,qBAAqC;EAAE,OAAO,EN+K1B,GAAO;;AM9K3B,uBAAuC;EAAE,OAAO,ENmK1B,GAAO;;AMlK7B;cAC8B;EAAE,OAAO,ENoI1B,GAAO;;AMnIpB,wBAAwC;EAAE,OAAO,ENjB1B,GAAO;;AMkB9B,wBAAwC;EAAE,OAAO,EN6D1B,GAAO;;AM5D9B,gBAAgC;EAAE,OAAO,EN2C1B,GAAO;;AM1CtB,0BAA0C;EAAE,OAAO,EN7O1B,GAAO;;AM8OhC,oBAAoC;EAAE,OAAO,EN2K1B,GAAO;;AM1K1B,iBAAiC;EAAE,OAAO,ENvD1B,GAAO;;AMwDvB;;qBAEqC;EAAE,OAAO,ENsI1B,GAAO;;AMrI3B;yBACyC;EAAE,OAAO,ENjK1B,GAAO;;AMkK/B,gBAAgC;EAAE,OAAO,ENwK1B,GAAO;;AMvKtB,iBAAiC;EAAE,OAAO,ENvK1B,GAAO;;AMwKvB,iBAAiC;EAAE,OAAO,ENhB1B,GAAO;;AMiBvB,wBAAwC;EAAE,OAAO,ENhB1B,GAAO;;AMiB9B,6BAA6C;EAAE,OAAO,ENsE1B,GAAO;;AMrEnC,sBAAsC;EAAE,OAAO,ENoE1B,GAAO;;AMnE5B,oBAAoC;EAAE,OAAO,EN7Q1B,GAAO;;AM8Q1B,eAA+B;EAAE,OAAO,EN1Q1B,GAAO;;AM2QrB,qBAAqC;EAAE,OAAO,ENjD1B,GAAO;;AMkD3B,yBAAyC;EAAE,OAAO,ENjD1B,GAAO;;AMkD/B,iBAAiC;EAAE,OAAO,ENvQ1B,GAAO;;AMwQvB,iBAAiC;EAAE,OAAO,EN9I1B,GAAO;;AM+IvB,mBAAmC;EAAE,OAAO,ENzI1B,GAAO;;AM0IzB,cAA8B;EAAE,OAAO,EN9O1B,GAAO;;AM+OpB,mBAAmC;EAAE,OAAO,EN3W1B,GAAO;;AM4WzB,gBAAgC;EAAE,OAAO,EN9T1B,GAAO;;AM+TtB,cAA8B;EAAE,OAAO,ENnE1B,GAAO;;AMoEpB,gBAAgC;EAAE,OAAO,ENoC1B,GAAO;;AMnCtB,eAA+B;EAAE,OAAO,ENjS1B,GAAO;;AMkSrB,gBAAgC;EAAE,OAAO,ENjS1B,GAAO;;AMkStB,kBAAkC;EAAE,OAAO,ENtY1B,GAAO;;AMuYxB,yBAAyC;EAAE,OAAO,ENtY1B,GAAO;;AMuY/B,gBAAgC;EAAE,OAAO,EN2C1B,GAAO;;AM1CtB,uBAAuC;EAAE,OAAO,EN2C1B,GAAO;;AM1C7B,kBAAkC;EAAE,OAAO,ENvC1B,GAAO;;AMwCxB;cAC8B;EAAE,OAAO,EN3W1B,GAAO;;AM4WpB;eAC+B;EAAE,OAAO,EN2D1B,GAAO;;AM1DrB,eAA+B;EAAE,OAAO,ENuF1B,GAAO;;AMtFrB,kBAAkC;EAAE,OAAO,ENwB1B,GAAO;;AMvBxB,qBAAqC;EAAE,OAAO,ENpS1B,GAAO;;AMqS3B,qBAAqC;EAAE,OAAO,ENkB1B,GAAO;;AMjB3B,mBAAmC;EAAE,OAAO,EN1S1B,GAAO;;AM2SzB,qBAAqC;EAAE,OAAO,ENxP1B,GAAO;;AMyP3B,sBAAsC;EAAE,OAAO,ENjP1B,GAAO;;AMkP5B,uBAAuC;EAAE,OAAO,EN9P1B,GAAO;;AM+P7B,4BAA4C;EAAE,OAAO,ENxP1B,GAAO;;AMyPlC;;uBAEuC;EAAE,OAAO,ENjQ1B,GAAO;;AMkQ7B;yBACyC;EAAE,OAAO,ENvQ1B,GAAO;;AMwQ/B;uBACuC;EAAE,OAAO,ENxQ1B,GAAO;;AMyQ7B;uBACuC;EAAE,OAAO,EN7P1B,GAAO;;AM8P7B,sBAAsC;EAAE,OAAO,EN1Q1B,GAAO;;AM2Q5B,eAA+B;EAAE,OAAO,ENsG1B,GAAO;;AMrGrB,kBAAkC;EAAE,OAAO,ENlV1B,GAAO;;AMmVxB,mBAAmC;EAAE,OAAO,ENnL1B,GAAO;;AMoLzB;;;;oBAIoC;EAAE,OAAO,ENxK1B,GAAO;;AMyK1B,yBAAyC;EAAE,OAAO,ENpW1B,GAAO;;AMqW/B;gBACgC;EAAE,OAAO,EN1E1B,GAAO;;AM2EtB;iBACiC;EAAE,OAAO,ENpT1B,GAAO;;AMqTvB,qBAAqC;EAAE,OAAO,EN1O1B,GAAO;;AM2O3B,cAA8B;EAAE,OAAO,EN5O1B,GAAO;;AM6OpB,sBAAsC;EAAE,OAAO,EN7N1B,GAAO;;AM8N5B,wBAAwC;EAAE,OAAO,ENwB1B,GAAO;;AMvB9B,aAA6B;EAAE,OAAO,ENzF1B,GAAO;;AM0FnB;iBACiC;EAAE,OAAO,EN2F1B,GAAO;;AM1FvB;sBACsC;EAAE,OAAO,EN9H1B,GAAO;;AM+H5B;wBACwC;EAAE,OAAO,EN/H1B,GAAO;;AMgI9B,kBAAkC;EAAE,OAAO,EN3N1B,GAAO;;AM4NxB;sBACsC;EAAE,OAAO,ENrX1B,GAAO;;AMsX5B,iBAAiC;EAAE,OAAO,ENnO1B,GAAO;;AMoOvB,oBAAoC;EAAE,OAAO,ENlI1B,GAAO;;AMmI1B,kBAAkC;EAAE,OAAO,EN1C1B,GAAO;;AM2CxB,oBAAoC;EAAE,OAAO,EN7D1B,GAAO;;AM8D1B,2BAA2C;EAAE,OAAO,EN7D1B,GAAO;;AM8DjC,eAA+B;EAAE,OAAO,ENpb1B,GAAO;;AMqbrB;mBACmC;EAAE,OAAO,ENzQ1B,GAAO;;AM0QzB,cAA8B;EAAE,OAAO,ENsC1B,GAAO;;AMrCpB,qBAAqC;EAAE,OAAO,EN/b1B,GAAO;;AMgc3B,eAA+B;EAAE,OAAO,ENrH1B,GAAO;;AMsHrB,qBAAqC;EAAE,OAAO,ENlD1B,GAAO;;AMmD3B,iBAAiC;EAAE,OAAO,ENsC1B,GAAO;;AMrCvB,eAA+B;EAAE,OAAO,ENiF1B,GAAO;;AMhFrB,sBAAsC;EAAE,OAAO,ENvJ1B,GAAO;;AMwJ5B,eAA+B;EAAE,OAAO,ENuE1B,GAAO;;AMtErB,qBAAqC;EAAE,OAAO,ENjb1B,GAAO;;AMkb3B,iBAAiC;EAAE,OAAO,EN9I1B,GAAO;;AM+IvB,wBAAwC;EAAE,OAAO,ENhQ1B,GAAO;;AMiQ9B,kBAAkC;EAAE,OAAO,EN9Z1B,GAAO;;AM+ZxB,wBAAwC;EAAE,OAAO,ENla1B,GAAO;;AMma9B,sBAAsC;EAAE,OAAO,ENpa1B,GAAO;;AMqa5B,kBAAkC;EAAE,OAAO,ENta1B,GAAO;;AMuaxB,oBAAoC;EAAE,OAAO,ENpa1B,GAAO;;AMqa1B,oBAAoC;EAAE,OAAO,ENpa1B,GAAO;;AMqa1B,qBAAqC;EAAE,OAAO,ENld1B,GAAO;;AMmd3B,uBAAuC;EAAE,OAAO,ENld1B,GAAO;;AMmd7B,gBAAgC;EAAE,OAAO,ENY1B,GAAO;;AMXtB,oBAAoC;EAAE,OAAO,EN3X1B,GAAO;;AM4X1B,aAA6B;EAAE,OAAO,ENre1B,GAAO;;AMsenB,qBAAqC;EAAE,OAAO,ENjV1B,GAAO;;AMkV3B,sBAAsC;EAAE,OAAO,ENpK1B,GAAO;;AMqK5B,wBAAwC;EAAE,OAAO,ENrd1B,GAAO;;AMsd9B,qBAAqC;EAAE,OAAO,EN3f1B,GAAO;;AM4f3B,oBAAoC;EAAE,OAAO,ENvJ1B,GAAO;;AMwJ1B,qBAAqC;EAAE,OAAO,EN5N1B,GAAO;;AM6N3B,iBAAiC;EAAE,OAAO,EN1O1B,GAAO;;AM2OvB,wBAAwC;EAAE,OAAO,EN1O1B,GAAO;;AM2O9B,qBAAqC;EAAE,OAAO,ENN1B,GAAO;;AMO3B,oBAAoC;EAAE,OAAO,ENN1B,GAAO;;AMO1B,kBAAkC;EAAE,OAAO,EN/d1B,GAAO;;AMgexB,cAA8B;EAAE,OAAO,EN7c1B,GAAO;;AM8cpB,kBAAkC;EAAE,OAAO,EN1P1B,GAAO;;AM2PxB,oBAAoC;EAAE,OAAO,ENhhB1B,GAAO;;AMihB1B,aAA6B;EAAE,OAAO,EN7b1B,GAAO;;AM8bnB;;cAE8B;EAAE,OAAO,ENxQ1B,GAAO;;AMyQpB,mBAAmC;EAAE,OAAO,EN7M1B,GAAO;;AM8MzB,qBAAqC;EAAE,OAAO,ENpd1B,GAAO;;AMqd3B,yBAAyC;EAAE,OAAO,ENnZ1B,GAAO;;AMoZ/B,mBAAmC;EAAE,OAAO,ENxY1B,GAAO;;AMyYzB,mBAAmC;EAAE,OAAO,EN1T1B,GAAO;;AM2TzB,kBAAkC;EAAE,OAAO,ENxP1B,GAAO;;AMyPxB,iBAAiC;EAAE,OAAO,ENrH1B,GAAO;;AMsHvB,uBAAuC;EAAE,OAAO,ENzG1B,GAAO;;AM0G7B,sBAAsC;EAAE,OAAO,ENrG1B,GAAO;;AMsG5B,mBAAmC;EAAE,OAAO,ENpG1B,GAAO;;AMqGzB,oBAAoC;EAAE,OAAO,EN5c1B,GAAO;;AM6c1B,0BAA0C;EAAE,OAAO,EN9c1B,GAAO;;AM+chC,kBAAkC;EAAE,OAAO,EN3Y1B,GAAO;;AM4YxB,eAA+B;EAAE,OAAO,ENhH1B,GAAO;;AMiHrB,sBAAsC;EAAE,OAAO,ENI1B,GAAO;;AMH5B,qBAAqC;EAAE,OAAO,EN5M1B,GAAO;;AM6M3B,sBAAsC;EAAE,OAAO,ENpE1B,GAAO;;AMqE5B,oBAAoC;EAAE,OAAO,ENhS1B,GAAO;;AMiS1B,gBAAgC;EAAE,OAAO,ENG1B,GAAO;;AMFtB,eAA+B;EAAE,OAAO,ENtO1B,GAAO;;AMuOrB,kBAAkC;EAAE,OAAO,EN7N1B,GAAO;;AM8NxB,sBAAsC;EAAE,OAAO,ENhC1B,GAAO;;AMiC5B,0BAA0C;EAAE,OAAO,ENhC1B,GAAO;;AMiChC,uBAAuC;EAAE,OAAO,END1B,GAAO;;AME7B,sBAAsC;EAAE,OAAO,EN1O1B,GAAO;;AM2O5B,qBAAqC;EAAE,OAAO,ENF1B,GAAO;;AMG3B,sBAAsC;EAAE,OAAO,EN3O1B,GAAO;;AM4O5B,wBAAwC;EAAE,OAAO,EN1O1B,GAAO;;AM2O9B,wBAAwC;EAAE,OAAO,EN5O1B,GAAO;;AM6O9B,iBAAiC;EAAE,OAAO,ENvN1B,GAAO;;AMwNvB,4BAA4C;EAAE,OAAO,EN9X1B,GAAO;;AM+XlC,sBAAsC;EAAE,OAAO,ENhM1B,GAAO;;AMiM5B,mBAAmC;EAAE,OAAO,ENI1B,GAAO;;AMHzB,iBAAiC;EAAE,OAAO,EN7I1B,GAAO;;AM8IvB,oBAAoC;EAAE,OAAO,ENjB1B,GAAO;;AMkB1B,qBAAqC;EAAE,OAAO,ENhB1B,GAAO;;AMiB3B;cAC8B;EAAE,OAAO,ENphB1B,GAAO;;AMqhBpB,kBAAkC;EAAE,OAAO,ENd1B,GAAO;;AMexB,gBAAgC;EAAE,OAAO,ENnD1B,GAAO;;AMoDtB,iBAAiC;EAAE,OAAO,ENvF1B,GAAO;;AMwFvB,iBAAiC;EAAE,OAAO,ENrP1B,GAAO",
+"sources": ["../scss/_path.scss","../scss/_core.scss","../scss/_larger.scss","../scss/_fixed-width.scss","../scss/_list.scss","../scss/_variables.scss","../scss/_bordered-pulled.scss","../scss/_animated.scss","../scss/_rotated-flipped.scss","../scss/_mixins.scss","../scss/_stacked.scss","../scss/_icons.scss"],
+"names": [],
+"file": "font-awesome.css"
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/css/font-awesome.min.css b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/css/font-awesome.min.css
new file mode 100644
index 0000000..540440c
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/css/font-awesome.min.css
@@ -0,0 +1,4 @@
+/*!
+ *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/FontAwesome.otf b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/FontAwesome.otf
new file mode 100644
index 0000000..401ec0f
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/FontAwesome.otf
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.eot b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.eot
new file mode 100644
index 0000000..e9f60ca
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.eot
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.svg b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.svg
new file mode 100644
index 0000000..855c845
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.svg
@@ -0,0 +1,2671 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<svg>
+<metadata>
+Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016
+ By ,,,
+Copyright Dave Gandy 2016. All rights reserved.
+</metadata>
+<defs>
+<font id="FontAwesome" horiz-adv-x="1536" >
+  <font-face 
+    font-family="FontAwesome"
+    font-weight="400"
+    font-stretch="normal"
+    units-per-em="1792"
+    panose-1="0 0 0 0 0 0 0 0 0 0"
+    ascent="1536"
+    descent="-256"
+    bbox="-1.02083 -256.962 2304.6 1537.02"
+    underline-thickness="0"
+    underline-position="0"
+    unicode-range="U+0020-F500"
+  />
+<missing-glyph horiz-adv-x="896" 
+d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" />
+    <glyph glyph-name=".notdef" horiz-adv-x="896" 
+d="M224 112h448v1312h-448v-1312zM112 0v1536h672v-1536h-672z" />
+    <glyph glyph-name=".null" horiz-adv-x="0" 
+ />
+    <glyph glyph-name="nonmarkingreturn" horiz-adv-x="597" 
+ />
+    <glyph glyph-name="space" unicode=" " horiz-adv-x="448" 
+ />
+    <glyph glyph-name="dieresis" unicode="&#xa8;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="copyright" unicode="&#xa9;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="registered" unicode="&#xae;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="acute" unicode="&#xb4;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="AE" unicode="&#xc6;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="Oslash" unicode="&#xd8;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="trademark" unicode="&#x2122;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="infinity" unicode="&#x221e;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="notequal" unicode="&#x2260;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="glass" unicode="&#xf000;" horiz-adv-x="1792" 
+d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" />
+    <glyph glyph-name="music" unicode="&#xf001;" 
+d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89
+t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="search" unicode="&#xf002;" horiz-adv-x="1664" 
+d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5
+t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+    <glyph glyph-name="envelope" unicode="&#xf003;" horiz-adv-x="1792" 
+d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13
+t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z
+M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="heart" unicode="&#xf004;" horiz-adv-x="1792" 
+d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600
+q-18 -18 -44 -18z" />
+    <glyph glyph-name="star" unicode="&#xf005;" horiz-adv-x="1664" 
+d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455
+l502 -73q56 -9 56 -46z" />
+    <glyph glyph-name="star_empty" unicode="&#xf006;" horiz-adv-x="1664" 
+d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500
+l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" />
+    <glyph glyph-name="user" unicode="&#xf007;" horiz-adv-x="1280" 
+d="M1280 137q0 -109 -62.5 -187t-150.5 -78h-854q-88 0 -150.5 78t-62.5 187q0 85 8.5 160.5t31.5 152t58.5 131t94 89t134.5 34.5q131 -128 313 -128t313 128q76 0 134.5 -34.5t94 -89t58.5 -131t31.5 -152t8.5 -160.5zM1024 1024q0 -159 -112.5 -271.5t-271.5 -112.5
+t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="film" unicode="&#xf008;" horiz-adv-x="1920" 
+d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128
+q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45
+t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128
+q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19
+t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="th_large" unicode="&#xf009;" horiz-adv-x="1664" 
+d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38
+h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="th" unicode="&#xf00a;" horiz-adv-x="1792" 
+d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28
+h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192
+q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="th_list" unicode="&#xf00b;" horiz-adv-x="1792" 
+d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28
+h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="ok" unicode="&#xf00c;" horiz-adv-x="1792" 
+d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" />
+    <glyph glyph-name="remove" unicode="&#xf00d;" horiz-adv-x="1408" 
+d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68
+t-28 -68l-294 -294l294 -294q28 -28 28 -68z" />
+    <glyph glyph-name="zoom_in" unicode="&#xf00e;" horiz-adv-x="1664" 
+d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224
+q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5
+t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" />
+    <glyph glyph-name="zoom_out" unicode="&#xf010;" horiz-adv-x="1664" 
+d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z
+M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z
+" />
+    <glyph glyph-name="off" unicode="&#xf011;" 
+d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5
+t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" />
+    <glyph glyph-name="signal" unicode="&#xf012;" horiz-adv-x="1792" 
+d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23
+v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="cog" unicode="&#xf013;" 
+d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38
+q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13
+l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22
+q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" />
+    <glyph glyph-name="trash" unicode="&#xf014;" horiz-adv-x="1408" 
+d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576
+q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832
+q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="home" unicode="&#xf015;" horiz-adv-x="1664" 
+d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5
+l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" />
+    <glyph glyph-name="file_alt" unicode="&#xf016;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+" />
+    <glyph glyph-name="time" unicode="&#xf017;" 
+d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="road" unicode="&#xf018;" horiz-adv-x="1920" 
+d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256
+q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" />
+    <glyph glyph-name="download_alt" unicode="&#xf019;" horiz-adv-x="1664" 
+d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136
+q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" />
+    <glyph glyph-name="download" unicode="&#xf01a;" 
+d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273
+t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="upload" unicode="&#xf01b;" 
+d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198
+t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="inbox" unicode="&#xf01c;" 
+d="M1023 576h316q-1 3 -2.5 8.5t-2.5 7.5l-212 496h-708l-212 -496q-1 -3 -2.5 -8.5t-2.5 -7.5h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552
+q25 -61 25 -123z" />
+    <glyph glyph-name="play_circle" unicode="&#xf01d;" 
+d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="repeat" unicode="&#xf01e;" 
+d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q15 0 25 -9
+l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" />
+    <glyph glyph-name="refresh" unicode="&#xf021;" 
+d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117
+q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5
+q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" />
+    <glyph glyph-name="list_alt" unicode="&#xf022;" horiz-adv-x="1792" 
+d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z
+M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5
+t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47
+t47 -113z" />
+    <glyph glyph-name="lock" unicode="&#xf023;" horiz-adv-x="1152" 
+d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="flag" unicode="&#xf024;" horiz-adv-x="1792" 
+d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48
+t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="headphones" unicode="&#xf025;" horiz-adv-x="1664" 
+d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78
+t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5
+t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" />
+    <glyph glyph-name="volume_off" unicode="&#xf026;" horiz-adv-x="768" 
+d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" />
+    <glyph glyph-name="volume_down" unicode="&#xf027;" horiz-adv-x="1152" 
+d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36
+t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" />
+    <glyph glyph-name="volume_up" unicode="&#xf028;" horiz-adv-x="1664" 
+d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 36
+t12 56.5t-12 56.5t-29 36t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5
+t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289
+t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" />
+    <glyph glyph-name="qrcode" unicode="&#xf029;" horiz-adv-x="1408" 
+d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z
+M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" />
+    <glyph glyph-name="barcode" unicode="&#xf02a;" horiz-adv-x="1792" 
+d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z
+M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" />
+    <glyph glyph-name="tag" unicode="&#xf02b;" 
+d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5
+l715 -714q37 -39 37 -91z" />
+    <glyph glyph-name="tags" unicode="&#xf02c;" horiz-adv-x="1920" 
+d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5
+l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" />
+    <glyph glyph-name="book" unicode="&#xf02d;" horiz-adv-x="1664" 
+d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23
+q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906
+q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5
+t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
+    <glyph glyph-name="bookmark" unicode="&#xf02e;" horiz-adv-x="1280" 
+d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+    <glyph glyph-name="print" unicode="&#xf02f;" horiz-adv-x="1664" 
+d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68
+v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" />
+    <glyph glyph-name="camera" unicode="&#xf030;" horiz-adv-x="1920" 
+d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136
+q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="font" unicode="&#xf031;" horiz-adv-x="1664" 
+d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57
+q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -5 -0.5 -13.5t-0.5 -12.5q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5
+q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" />
+    <glyph glyph-name="bold" unicode="&#xf032;" horiz-adv-x="1408" 
+d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142
+q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5
+t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68 -0.5t68 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5
+t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" />
+    <glyph glyph-name="italic" unicode="&#xf033;" horiz-adv-x="1024" 
+d="M0 -126l17 85q22 7 61.5 16.5t72 19t59.5 23.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5
+q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
+    <glyph glyph-name="text_height" unicode="&#xf034;" horiz-adv-x="1792" 
+d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2
+t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5
+q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27
+q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" />
+    <glyph glyph-name="text_width" unicode="&#xf035;" 
+d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1
+t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27
+q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5
+t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49
+t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" />
+    <glyph glyph-name="align_left" unicode="&#xf036;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45
+t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="align_center" unicode="&#xf037;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19
+h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="align_right" unicode="&#xf038;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45
+t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="align_justify" unicode="&#xf039;" horiz-adv-x="1792" 
+d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45
+t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="list" unicode="&#xf03a;" horiz-adv-x="1792" 
+d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5
+t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344
+q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5
+t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192
+q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="indent_left" unicode="&#xf03b;" horiz-adv-x="1792" 
+d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5
+t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088
+q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="indent_right" unicode="&#xf03c;" horiz-adv-x="1792" 
+d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5
+t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088
+q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="facetime_video" unicode="&#xf03d;" horiz-adv-x="1792" 
+d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5
+q39 -17 39 -59z" />
+    <glyph glyph-name="picture" unicode="&#xf03e;" horiz-adv-x="1920" 
+d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216
+q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="pencil" unicode="&#xf040;" 
+d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38
+q53 0 91 -38l235 -234q37 -39 37 -91z" />
+    <glyph glyph-name="map_marker" unicode="&#xf041;" horiz-adv-x="1024" 
+d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" />
+    <glyph glyph-name="adjust" unicode="&#xf042;" 
+d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="tint" unicode="&#xf043;" horiz-adv-x="1024" 
+d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362
+q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" />
+    <glyph glyph-name="edit" unicode="&#xf044;" horiz-adv-x="1792" 
+d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832
+q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92
+l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" />
+    <glyph glyph-name="share" unicode="&#xf045;" horiz-adv-x="1664" 
+d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832
+q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5
+t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" />
+    <glyph glyph-name="check" unicode="&#xf046;" horiz-adv-x="1664" 
+d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832
+q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110
+q24 -24 24 -57t-24 -57z" />
+    <glyph glyph-name="move" unicode="&#xf047;" horiz-adv-x="1792" 
+d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45
+t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+    <glyph glyph-name="step_backward" unicode="&#xf048;" horiz-adv-x="1024" 
+d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19z" />
+    <glyph glyph-name="fast_backward" unicode="&#xf049;" horiz-adv-x="1792" 
+d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 10 13 19l710 710
+q19 19 32 13t13 -32v-710q4 10 13 19z" />
+    <glyph glyph-name="backward" unicode="&#xf04a;" horiz-adv-x="1664" 
+d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q4 10 13 19z" />
+    <glyph glyph-name="play" unicode="&#xf04b;" horiz-adv-x="1408" 
+d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" />
+    <glyph glyph-name="pause" unicode="&#xf04c;" 
+d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="stop" unicode="&#xf04d;" 
+d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="forward" unicode="&#xf04e;" horiz-adv-x="1664" 
+d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" />
+    <glyph glyph-name="fast_forward" unicode="&#xf050;" horiz-adv-x="1792" 
+d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v710q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19l-710 -710
+q-19 -19 -32 -13t-13 32v710q-4 -10 -13 -19z" />
+    <glyph glyph-name="step_forward" unicode="&#xf051;" horiz-adv-x="1024" 
+d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q9 -9 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-4 -10 -13 -19z" />
+    <glyph glyph-name="eject" unicode="&#xf052;" horiz-adv-x="1538" 
+d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" />
+    <glyph glyph-name="chevron_left" unicode="&#xf053;" horiz-adv-x="1280" 
+d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" />
+    <glyph glyph-name="chevron_right" unicode="&#xf054;" horiz-adv-x="1280" 
+d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" />
+    <glyph glyph-name="plus_sign" unicode="&#xf055;" 
+d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5
+t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="minus_sign" unicode="&#xf056;" 
+d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5
+t103 -385.5z" />
+    <glyph glyph-name="remove_sign" unicode="&#xf057;" 
+d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19
+q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ok_sign" unicode="&#xf058;" 
+d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="question_sign" unicode="&#xf059;" 
+d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59
+q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="info_sign" unicode="&#xf05a;" 
+d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23
+t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="screenshot" unicode="&#xf05b;" 
+d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109
+q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143
+q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="remove_circle" unicode="&#xf05c;" 
+d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23
+l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5
+t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ok_circle" unicode="&#xf05d;" 
+d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198
+t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ban_circle" unicode="&#xf05e;" 
+d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61
+t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" />
+    <glyph glyph-name="arrow_left" unicode="&#xf060;" 
+d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5
+t32.5 -90.5z" />
+    <glyph glyph-name="arrow_right" unicode="&#xf061;" 
+d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" />
+    <glyph glyph-name="arrow_up" unicode="&#xf062;" horiz-adv-x="1664" 
+d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651
+q37 -39 37 -91z" />
+    <glyph glyph-name="arrow_down" unicode="&#xf063;" horiz-adv-x="1664" 
+d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" />
+    <glyph glyph-name="share_alt" unicode="&#xf064;" horiz-adv-x="1792" 
+d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22
+t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" />
+    <glyph glyph-name="resize_full" unicode="&#xf065;" 
+d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332
+q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="resize_small" unicode="&#xf066;" 
+d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45
+t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" />
+    <glyph glyph-name="plus" unicode="&#xf067;" horiz-adv-x="1408" 
+d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="minus" unicode="&#xf068;" horiz-adv-x="1408" 
+d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="asterisk" unicode="&#xf069;" horiz-adv-x="1664" 
+d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154
+q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" />
+    <glyph glyph-name="exclamation_sign" unicode="&#xf06a;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192
+q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" />
+    <glyph glyph-name="gift" unicode="&#xf06b;" 
+d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320
+q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5
+t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="leaf" unicode="&#xf06c;" horiz-adv-x="1792" 
+d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268
+q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-43 0 -63.5 17.5t-45.5 59.5q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5
+t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" />
+    <glyph glyph-name="fire" unicode="&#xf06d;" horiz-adv-x="1408" 
+d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1
+q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" />
+    <glyph glyph-name="eye_open" unicode="&#xf06e;" horiz-adv-x="1792" 
+d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5
+t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" />
+    <glyph glyph-name="eye_close" unicode="&#xf070;" horiz-adv-x="1792" 
+d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9
+q-106 -189 -316 -567t-315 -566l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5
+q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z
+" />
+    <glyph glyph-name="warning_sign" unicode="&#xf071;" horiz-adv-x="1792" 
+d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185
+q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" />
+    <glyph glyph-name="plane" unicode="&#xf072;" horiz-adv-x="1408" 
+d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9
+q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" />
+    <glyph glyph-name="calendar" unicode="&#xf073;" horiz-adv-x="1664" 
+d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z
+M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64
+q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47
+h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="random" unicode="&#xf074;" horiz-adv-x="1792" 
+d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1
+t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5
+v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111
+t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+    <glyph glyph-name="comment" unicode="&#xf075;" horiz-adv-x="1792" 
+d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281
+q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" />
+    <glyph glyph-name="magnet" unicode="&#xf076;" 
+d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384
+q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="chevron_up" unicode="&#xf077;" horiz-adv-x="1792" 
+d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" />
+    <glyph glyph-name="chevron_down" unicode="&#xf078;" horiz-adv-x="1792" 
+d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" />
+    <glyph glyph-name="retweet" unicode="&#xf079;" horiz-adv-x="1920" 
+d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -10 7 -21
+zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z
+" />
+    <glyph glyph-name="shopping_cart" unicode="&#xf07a;" horiz-adv-x="1664" 
+d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45
+t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="folder_close" unicode="&#xf07b;" horiz-adv-x="1664" 
+d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="folder_open" unicode="&#xf07c;" horiz-adv-x="1920" 
+d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5
+t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="resize_vertical" unicode="&#xf07d;" horiz-adv-x="768" 
+d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" />
+    <glyph glyph-name="resize_horizontal" unicode="&#xf07e;" horiz-adv-x="1792" 
+d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" />
+    <glyph glyph-name="bar_chart" unicode="&#xf080;" horiz-adv-x="2048" 
+d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" />
+    <glyph glyph-name="twitter_sign" unicode="&#xf081;" 
+d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4
+q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5
+t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="facebook_sign" unicode="&#xf082;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960
+q0 119 84.5 203.5t203.5 84.5h960z" />
+    <glyph glyph-name="camera_retro" unicode="&#xf083;" horiz-adv-x="1792" 
+d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5
+t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280
+q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="key" unicode="&#xf084;" horiz-adv-x="1792" 
+d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26
+l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5
+t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" />
+    <glyph glyph-name="cogs" unicode="&#xf085;" horiz-adv-x="1920" 
+d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5
+t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -11 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5
+l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7
+l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -8 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31
+q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20
+t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68
+q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70
+q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" />
+    <glyph glyph-name="comments" unicode="&#xf086;" horiz-adv-x="1792" 
+d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224
+q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7
+q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" />
+    <glyph glyph-name="thumbs_up_alt" unicode="&#xf087;" 
+d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5
+t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769
+q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128
+q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" />
+    <glyph glyph-name="thumbs_down_alt" unicode="&#xf088;" 
+d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 31 18 69q0 37 -17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5
+t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z
+M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5
+h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -73 49 -163z" />
+    <glyph glyph-name="star_half" unicode="&#xf089;" horiz-adv-x="896" 
+d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" />
+    <glyph glyph-name="heart_empty" unicode="&#xf08a;" horiz-adv-x="1792" 
+d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559
+q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5
+q224 0 351 -124t127 -344z" />
+    <glyph glyph-name="signout" unicode="&#xf08b;" horiz-adv-x="1664" 
+d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704
+q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" />
+    <glyph glyph-name="linkedin_sign" unicode="&#xf08c;" 
+d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5
+q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="pushpin" unicode="&#xf08d;" horiz-adv-x="1152" 
+d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38
+t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" />
+    <glyph glyph-name="external_link" unicode="&#xf08e;" horiz-adv-x="1792" 
+d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320
+q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="signin" unicode="&#xf090;" 
+d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5
+q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="trophy" unicode="&#xf091;" horiz-adv-x="1664" 
+d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91
+t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96
+q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="github_sign" unicode="&#xf092;" 
+d="M519 336q4 6 -3 13q-9 7 -14 2q-4 -6 3 -13q9 -7 14 -2zM491 377q-5 7 -12 4q-6 -4 0 -12q7 -8 12 -5q6 4 0 13zM450 417q2 4 -5 8q-7 2 -8 -2q-3 -5 4 -8q8 -2 9 2zM471 394q2 1 1.5 4.5t-3.5 5.5q-6 7 -10 3t1 -11q6 -6 11 -2zM557 319q2 7 -9 11q-9 3 -13 -4
+q-2 -7 9 -11q9 -3 13 4zM599 316q0 8 -12 8q-10 0 -10 -8t11 -8t11 8zM638 323q-2 7 -13 5t-9 -9q2 -8 12 -6t10 10zM1280 640q0 212 -150 362t-362 150t-362 -150t-150 -362q0 -167 98 -300.5t252 -185.5q18 -3 26.5 5t8.5 20q0 52 -1 95q-6 -1 -15.5 -2.5t-35.5 -2t-48 4
+t-43.5 20t-29.5 41.5q-23 59 -57 74q-2 1 -4.5 3.5l-8 8t-7 9.5t4 7.5t19.5 3.5q6 0 15 -2t30 -15.5t33 -35.5q16 -28 37.5 -42t43.5 -14t38 3.5t30 9.5q7 47 33 69q-49 6 -86 18.5t-73 39t-55.5 76t-19.5 119.5q0 79 53 137q-24 62 5 136q19 6 54.5 -7.5t60.5 -29.5l26 -16
+q58 17 128 17t128 -17q11 7 28.5 18t55.5 26t57 9q29 -74 5 -136q53 -58 53 -137q0 -57 -14 -100.5t-35.5 -70t-53.5 -44.5t-62.5 -26t-68.5 -12q35 -31 35 -95q0 -40 -0.5 -89t-0.5 -51q0 -12 8.5 -20t26.5 -5q154 52 252 185.5t98 300.5zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="upload_alt" unicode="&#xf093;" horiz-adv-x="1664" 
+d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92
+t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" />
+    <glyph glyph-name="lemon" unicode="&#xf094;" 
+d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5
+q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44
+q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5
+q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -13 2 -25t3.5 -16.5t7.5 -20.5t8 -20q16 -40 25 -118.5t9 -136.5z" />
+    <glyph glyph-name="phone" unicode="&#xf095;" horiz-adv-x="1408" 
+d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -53 3.5t-57.5 12.5t-47 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-127 79 -264 216t-216 264q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47t-12.5 57.5t-3.5 53q0 92 51 186
+q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174q2 -1 19 -11.5t24 -14
+t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" />
+    <glyph glyph-name="check_empty" unicode="&#xf096;" horiz-adv-x="1408" 
+d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832
+q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="bookmark_empty" unicode="&#xf097;" horiz-adv-x="1280" 
+d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289
+q0 34 19.5 62t52.5 41q21 9 44 9h1048z" />
+    <glyph glyph-name="phone_sign" unicode="&#xf098;" 
+d="M1280 343q0 11 -2 16t-18 16.5t-40.5 25t-47.5 26.5t-45.5 25t-28.5 15q-5 3 -19 13t-25 15t-21 5q-15 0 -36.5 -20.5t-39.5 -45t-38.5 -45t-33.5 -20.5q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170 126.5t-127 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5
+t-3.5 16.5q0 13 20.5 33.5t45 38.5t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5
+t320.5 -216.5q6 -2 30 -11t33 -12.5t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z
+" />
+    <glyph glyph-name="twitter" unicode="&#xf099;" horiz-adv-x="1664" 
+d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41
+q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" />
+    <glyph glyph-name="facebook" unicode="&#xf09a;" horiz-adv-x="1024" 
+d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" />
+    <glyph glyph-name="github" unicode="&#xf09b;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -40 7t-13 30q0 3 0.5 76.5t0.5 134.5q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 119 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24
+q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-85 13.5q-45 -113 -8 -204q-79 -87 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-39 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5
+t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -88.5t0.5 -54.5q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103zM291 305q3 7 -7 12
+q-10 3 -13 -2q-3 -7 7 -12q9 -6 13 2zM322 271q7 5 -2 16q-10 9 -16 3q-7 -5 2 -16q10 -10 16 -3zM352 226q9 7 0 19q-8 13 -17 6q-9 -5 0 -18t17 -7zM394 184q8 8 -4 19q-12 12 -20 3q-9 -8 4 -19q12 -12 20 -3zM451 159q3 11 -13 16q-15 4 -19 -7t13 -15q15 -6 19 6z
+M514 154q0 13 -17 11q-16 0 -16 -11q0 -13 17 -11q16 0 16 11zM572 164q-2 11 -18 9q-16 -3 -14 -15t18 -8t14 14z" />
+    <glyph glyph-name="unlock" unicode="&#xf09c;" horiz-adv-x="1664" 
+d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5
+t316.5 -131.5t131.5 -316.5z" />
+    <glyph glyph-name="credit_card" unicode="&#xf09d;" horiz-adv-x="1920" 
+d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608
+q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
+    <glyph glyph-name="rss" unicode="&#xf09e;" horiz-adv-x="1408" 
+d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5
+t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294
+q187 -186 294 -425.5t120 -501.5z" />
+    <glyph glyph-name="hdd" unicode="&#xf0a0;" 
+d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5
+h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75
+l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" />
+    <glyph glyph-name="bullhorn" unicode="&#xf0a1;" horiz-adv-x="1792" 
+d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5
+t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" />
+    <glyph glyph-name="bell" unicode="&#xf0a2;" horiz-adv-x="1792" 
+d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z
+M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5
+t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
+    <glyph glyph-name="certificate" unicode="&#xf0a3;" 
+d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70
+l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70
+l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" />
+    <glyph glyph-name="hand_right" unicode="&#xf0a4;" horiz-adv-x="1792" 
+d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106
+q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43
+q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5
+t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" />
+    <glyph glyph-name="hand_left" unicode="&#xf0a5;" horiz-adv-x="1792" 
+d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-8 9 -12 14q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576q-50 0 -89 -38.5
+t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45z
+M1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128q0 122 81.5 189t206.5 67
+q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="hand_up" unicode="&#xf0a6;" 
+d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576
+q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5
+t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76
+q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" />
+    <glyph glyph-name="hand_down" unicode="&#xf0a7;" 
+d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33
+t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580
+q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100
+q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" />
+    <glyph glyph-name="circle_arrow_left" unicode="&#xf0a8;" 
+d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="circle_arrow_right" unicode="&#xf0a9;" 
+d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="circle_arrow_up" unicode="&#xf0aa;" 
+d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="circle_arrow_down" unicode="&#xf0ab;" 
+d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="globe" unicode="&#xf0ac;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11
+q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 11t-9.5 10q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5
+q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5
+q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5
+t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-4 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3
+q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25
+q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5
+t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5
+t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10.5t17 -19.5q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21
+q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5
+q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3
+q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5
+t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q8 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5
+q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7
+q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" />
+    <glyph glyph-name="wrench" unicode="&#xf0ad;" horiz-adv-x="1664" 
+d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5
+t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" />
+    <glyph glyph-name="tasks" unicode="&#xf0ae;" horiz-adv-x="1792" 
+d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19
+t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="filter" unicode="&#xf0b0;" horiz-adv-x="1408" 
+d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" />
+    <glyph glyph-name="briefcase" unicode="&#xf0b1;" horiz-adv-x="1792" 
+d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68
+t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="fullscreen" unicode="&#xf0b2;" 
+d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144
+l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z
+" />
+    <glyph glyph-name="group" unicode="&#xf0c0;" horiz-adv-x="1920" 
+d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5
+t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75
+t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5
+t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" />
+    <glyph glyph-name="link" unicode="&#xf0c1;" horiz-adv-x="1664" 
+d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26
+l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15
+t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207
+q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" />
+    <glyph glyph-name="cloud" unicode="&#xf0c2;" horiz-adv-x="1920" 
+d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z
+" />
+    <glyph glyph-name="beaker" unicode="&#xf0c3;" horiz-adv-x="1664" 
+d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" />
+    <glyph glyph-name="cut" unicode="&#xf0c4;" horiz-adv-x="1792" 
+d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84
+q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148
+q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108
+q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6
+q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
+    <glyph glyph-name="copy" unicode="&#xf0c5;" horiz-adv-x="1792" 
+d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299
+h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" />
+    <glyph glyph-name="paper_clip" unicode="&#xf0c6;" horiz-adv-x="1408" 
+d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181
+l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235
+z" />
+    <glyph glyph-name="save" unicode="&#xf0c7;" 
+d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5
+h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" />
+    <glyph glyph-name="sign_blank" unicode="&#xf0c8;" 
+d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="reorder" unicode="&#xf0c9;" 
+d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45
+t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="ul" unicode="&#xf0ca;" horiz-adv-x="1792" 
+d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5
+t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z
+M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="ol" unicode="&#xf0cb;" horiz-adv-x="1792" 
+d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362
+q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5
+t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 121.5t0.5 121.5v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216
+q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" />
+    <glyph glyph-name="strikethrough" unicode="&#xf0cc;" horiz-adv-x="1792" 
+d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 98 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6
+l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -56 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23
+l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" />
+    <glyph glyph-name="underline" unicode="&#xf0cd;" 
+d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47
+q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41
+q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472
+q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" />
+    <glyph glyph-name="table" unicode="&#xf0ce;" horiz-adv-x="1664" 
+d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23
+v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192
+q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192
+q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113
+z" />
+    <glyph glyph-name="magic" unicode="&#xf0d0;" horiz-adv-x="1664" 
+d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276
+l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" />
+    <glyph glyph-name="truck" unicode="&#xf0d1;" horiz-adv-x="1792" 
+d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5
+t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38
+t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="pinterest" unicode="&#xf0d2;" 
+d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134
+q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33
+q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="pinterest_sign" unicode="&#xf0d3;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5
+t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5
+t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" />
+    <glyph glyph-name="google_plus_sign" unicode="&#xf0d4;" 
+d="M917 631q0 26 -6 64h-362v-132h217q-3 -24 -16.5 -50t-37.5 -53t-66.5 -44.5t-96.5 -17.5q-99 0 -169 71t-70 171t70 171t169 71q92 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585
+h109v110h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="google_plus" unicode="&#xf0d5;" horiz-adv-x="2304" 
+d="M1437 623q0 -208 -87 -370.5t-248 -254t-369 -91.5q-149 0 -285 58t-234 156t-156 234t-58 285t58 285t156 234t234 156t285 58q286 0 491 -192l-199 -191q-117 113 -292 113q-123 0 -227.5 -62t-165.5 -168.5t-61 -232.5t61 -232.5t165.5 -168.5t227.5 -62
+q83 0 152.5 23t114.5 57.5t78.5 78.5t49 83t21.5 74h-416v252h692q12 -63 12 -122zM2304 745v-210h-209v-209h-210v209h-209v210h209v209h210v-209h209z" />
+    <glyph glyph-name="money" unicode="&#xf0d6;" horiz-adv-x="1920" 
+d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384
+v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="caret_down" unicode="&#xf0d7;" horiz-adv-x="1024" 
+d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="caret_up" unicode="&#xf0d8;" horiz-adv-x="1024" 
+d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="caret_left" unicode="&#xf0d9;" horiz-adv-x="640" 
+d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" />
+    <glyph glyph-name="caret_right" unicode="&#xf0da;" horiz-adv-x="640" 
+d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="columns" unicode="&#xf0db;" horiz-adv-x="1664" 
+d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="sort" unicode="&#xf0dc;" horiz-adv-x="1024" 
+d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="sort_down" unicode="&#xf0dd;" horiz-adv-x="1024" 
+d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="sort_up" unicode="&#xf0de;" horiz-adv-x="1024" 
+d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" />
+    <glyph glyph-name="envelope_alt" unicode="&#xf0e0;" horiz-adv-x="1792" 
+d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123
+q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" />
+    <glyph glyph-name="linkedin" unicode="&#xf0e1;" 
+d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329
+q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" />
+    <glyph glyph-name="undo" unicode="&#xf0e2;" 
+d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5
+t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" />
+    <glyph glyph-name="legal" unicode="&#xf0e3;" horiz-adv-x="1792" 
+d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5
+t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14
+q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28
+q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" />
+    <glyph glyph-name="dashboard" unicode="&#xf0e4;" horiz-adv-x="1792" 
+d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5
+t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5
+t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29
+q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="comment_alt" unicode="&#xf0e5;" horiz-adv-x="1792" 
+d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640
+q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5
+t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
+    <glyph glyph-name="comments_alt" unicode="&#xf0e6;" horiz-adv-x="1792" 
+d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257
+t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5
+t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129
+q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" />
+    <glyph glyph-name="bolt" unicode="&#xf0e7;" horiz-adv-x="896" 
+d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" />
+    <glyph glyph-name="sitemap" unicode="&#xf0e8;" horiz-adv-x="1792" 
+d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320
+q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68
+z" />
+    <glyph glyph-name="umbrella" unicode="&#xf0e9;" horiz-adv-x="1664" 
+d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97
+q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69
+q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" />
+    <glyph glyph-name="paste" unicode="&#xf0ea;" horiz-adv-x="1792" 
+d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28
+h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" />
+    <glyph glyph-name="light_bulb" unicode="&#xf0eb;" horiz-adv-x="1024" 
+d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134
+q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47
+q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5
+t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" />
+    <glyph glyph-name="exchange" unicode="&#xf0ec;" horiz-adv-x="1792" 
+d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9
+q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" />
+    <glyph glyph-name="cloud_download" unicode="&#xf0ed;" horiz-adv-x="1920" 
+d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088
+q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+    <glyph glyph-name="cloud_upload" unicode="&#xf0ee;" horiz-adv-x="1920" 
+d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088
+q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" />
+    <glyph glyph-name="user_md" unicode="&#xf0f0;" horiz-adv-x="1408" 
+d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56
+t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68
+t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5
+t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="stethoscope" unicode="&#xf0f1;" horiz-adv-x="1408" 
+d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48
+t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252
+t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" />
+    <glyph glyph-name="suitcase" unicode="&#xf0f2;" horiz-adv-x="1792" 
+d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66
+t66 -158z" />
+    <glyph glyph-name="bell_alt" unicode="&#xf0f3;" horiz-adv-x="1792" 
+d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5
+t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" />
+    <glyph glyph-name="coffee" unicode="&#xf0f4;" horiz-adv-x="1920" 
+d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45
+t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="food" unicode="&#xf0f5;" horiz-adv-x="1408" 
+d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45
+t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="file_text_alt" unicode="&#xf0f6;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704
+q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704z" />
+    <glyph glyph-name="building" unicode="&#xf0f7;" horiz-adv-x="1408" 
+d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="hospital" unicode="&#xf0f8;" horiz-adv-x="1408" 
+d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z
+M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5
+t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320
+v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="ambulance" unicode="&#xf0f9;" horiz-adv-x="1920" 
+d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5
+t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152
+q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="medkit" unicode="&#xf0fa;" horiz-adv-x="1792" 
+d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32
+q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="fighter_jet" unicode="&#xf0fb;" horiz-adv-x="1920" 
+d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96
+q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q128 -28 200 -52t80 -34z" />
+    <glyph glyph-name="beer" unicode="&#xf0fc;" horiz-adv-x="1664" 
+d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" />
+    <glyph glyph-name="h_sign" unicode="&#xf0fd;" 
+d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="f0fe" unicode="&#xf0fe;" 
+d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="double_angle_left" unicode="&#xf100;" horiz-adv-x="1024" 
+d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23
+t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" />
+    <glyph glyph-name="double_angle_right" unicode="&#xf101;" horiz-adv-x="1024" 
+d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23
+l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="double_angle_up" unicode="&#xf102;" horiz-adv-x="1152" 
+d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393
+q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="double_angle_down" unicode="&#xf103;" horiz-adv-x="1152" 
+d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23
+t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+    <glyph glyph-name="angle_left" unicode="&#xf104;" horiz-adv-x="640" 
+d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+    <glyph glyph-name="angle_right" unicode="&#xf105;" horiz-adv-x="640" 
+d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="angle_up" unicode="&#xf106;" horiz-adv-x="1152" 
+d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" />
+    <glyph glyph-name="angle_down" unicode="&#xf107;" horiz-adv-x="1152" 
+d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" />
+    <glyph glyph-name="desktop" unicode="&#xf108;" horiz-adv-x="1920" 
+d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19
+t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="laptop" unicode="&#xf109;" horiz-adv-x="1920" 
+d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z
+M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" />
+    <glyph glyph-name="tablet" unicode="&#xf10a;" horiz-adv-x="1152" 
+d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832
+q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="mobile_phone" unicode="&#xf10b;" horiz-adv-x="768" 
+d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136
+q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="circle_blank" unicode="&#xf10c;" 
+d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103
+t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="quote_left" unicode="&#xf10d;" horiz-adv-x="1664" 
+d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z
+M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" />
+    <glyph glyph-name="quote_right" unicode="&#xf10e;" horiz-adv-x="1664" 
+d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216
+v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" />
+    <glyph glyph-name="spinner" unicode="&#xf110;" horiz-adv-x="1792" 
+d="M526 142q0 -53 -37.5 -90.5t-90.5 -37.5q-52 0 -90 38t-38 90q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -53 -37.5 -90.5t-90.5 -37.5
+t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1522 142q0 -52 -38 -90t-90 -38q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM558 1138q0 -66 -47 -113t-113 -47t-113 47t-47 113t47 113t113 47t113 -47t47 -113z
+M1728 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1088 1344q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1618 1138q0 -93 -66 -158.5t-158 -65.5q-93 0 -158.5 65.5t-65.5 158.5
+q0 92 65.5 158t158.5 66q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="circle" unicode="&#xf111;" 
+d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="reply" unicode="&#xf112;" horiz-adv-x="1792" 
+d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19
+l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" />
+    <glyph glyph-name="github_alt" unicode="&#xf113;" horiz-adv-x="1664" 
+d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320
+q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86
+t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218
+q0 -87 -27 -168q136 -160 136 -398z" />
+    <glyph glyph-name="folder_close_alt" unicode="&#xf114;" horiz-adv-x="1664" 
+d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320
+q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" />
+    <glyph glyph-name="folder_open_alt" unicode="&#xf115;" horiz-adv-x="1920" 
+d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68
+v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z
+" />
+    <glyph glyph-name="expand_alt" unicode="&#xf116;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="collapse_alt" unicode="&#xf117;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="smile" unicode="&#xf118;" 
+d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5
+t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5
+t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="frown" unicode="&#xf119;" 
+d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5
+t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204
+t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="meh" unicode="&#xf11a;" 
+d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5
+t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="gamepad" unicode="&#xf11b;" horiz-adv-x="1920" 
+d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5
+t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150
+t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" />
+    <glyph glyph-name="keyboard" unicode="&#xf11c;" horiz-adv-x="1920" 
+d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16
+h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16
+h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96
+q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896
+h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="flag_alt" unicode="&#xf11d;" horiz-adv-x="1792" 
+d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9
+h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102
+q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
+    <glyph glyph-name="flag_checkered" unicode="&#xf11e;" horiz-adv-x="1792" 
+d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2
+q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266
+q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8
+q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" />
+    <glyph glyph-name="terminal" unicode="&#xf120;" horiz-adv-x="1664" 
+d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9
+t9 -23z" />
+    <glyph glyph-name="code" unicode="&#xf121;" horiz-adv-x="1920" 
+d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5
+l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" />
+    <glyph glyph-name="reply_all" unicode="&#xf122;" horiz-adv-x="1792" 
+d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1
+q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" />
+    <glyph glyph-name="star_half_empty" unicode="&#xf123;" horiz-adv-x="1664" 
+d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5
+l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" />
+    <glyph glyph-name="location_arrow" unicode="&#xf124;" horiz-adv-x="1408" 
+d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" />
+    <glyph glyph-name="crop" unicode="&#xf125;" horiz-adv-x="1664" 
+d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23
+v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="code_fork" unicode="&#xf126;" horiz-adv-x="1024" 
+d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5
+q-2 -287 -226 -414q-67 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497
+q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" />
+    <glyph glyph-name="unlink" unicode="&#xf127;" horiz-adv-x="1664" 
+d="M439 265l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320
+q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18
+l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9
+t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
+    <glyph glyph-name="question" unicode="&#xf128;" horiz-adv-x="1024" 
+d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5
+t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" />
+    <glyph glyph-name="_279" unicode="&#xf129;" horiz-adv-x="640" 
+d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192
+q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="exclamation" unicode="&#xf12a;" horiz-adv-x="640" 
+d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" />
+    <glyph glyph-name="superscript" unicode="&#xf12b;" 
+d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z
+M1534 846v-206h-514l-3 27q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5
+t-65.5 -51.5t-30.5 -63h232v80h126z" />
+    <glyph glyph-name="subscript" unicode="&#xf12c;" 
+d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3q-1 -3 -2.5 -6.5t-3.5 -8t-3 -6.5q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109z
+M1536 -50v-206h-514l-4 27q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73
+h232v80h126z" />
+    <glyph glyph-name="_283" unicode="&#xf12d;" horiz-adv-x="1920" 
+d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" />
+    <glyph glyph-name="puzzle_piece" unicode="&#xf12e;" horiz-adv-x="1664" 
+d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5
+t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89
+q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117
+q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" />
+    <glyph glyph-name="microphone" unicode="&#xf130;" horiz-adv-x="1152" 
+d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5
+t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" />
+    <glyph glyph-name="microphone_off" unicode="&#xf131;" horiz-adv-x="1408" 
+d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128
+q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23
+t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
+    <glyph glyph-name="shield" unicode="&#xf132;" horiz-adv-x="1280" 
+d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150
+t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="calendar_empty" unicode="&#xf133;" horiz-adv-x="1664" 
+d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280
+q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="fire_extinguisher" unicode="&#xf134;" horiz-adv-x="1408" 
+d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800
+q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113
+q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" />
+    <glyph glyph-name="rocket" unicode="&#xf135;" horiz-adv-x="1664" 
+d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1
+q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" />
+    <glyph glyph-name="maxcdn" unicode="&#xf136;" horiz-adv-x="1792" 
+d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" />
+    <glyph glyph-name="chevron_sign_left" unicode="&#xf137;" 
+d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="chevron_sign_right" unicode="&#xf138;" 
+d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="chevron_sign_up" unicode="&#xf139;" 
+d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="chevron_sign_down" unicode="&#xf13a;" 
+d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5
+t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="html5" unicode="&#xf13b;" horiz-adv-x="1408" 
+d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" />
+    <glyph glyph-name="css3" unicode="&#xf13c;" horiz-adv-x="1792" 
+d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" />
+    <glyph glyph-name="anchor" unicode="&#xf13d;" horiz-adv-x="1792" 
+d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352
+q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19
+t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="unlock_alt" unicode="&#xf13e;" horiz-adv-x="1152" 
+d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181
+v-320h736z" />
+    <glyph glyph-name="bullseye" unicode="&#xf140;" 
+d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150
+t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640
+q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="ellipsis_horizontal" unicode="&#xf141;" horiz-adv-x="1408" 
+d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="ellipsis_vertical" unicode="&#xf142;" horiz-adv-x="384" 
+d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192
+q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" />
+    <glyph glyph-name="_303" unicode="&#xf143;" 
+d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 233 -176.5 396.5t-396.5 176.5q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128
+q13 0 23 10t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="play_sign" unicode="&#xf144;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56
+q16 -8 32 -8q17 0 32 9z" />
+    <glyph glyph-name="ticket" unicode="&#xf145;" horiz-adv-x="1792" 
+d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136
+t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" />
+    <glyph glyph-name="minus_sign_alt" unicode="&#xf146;" 
+d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5
+t84.5 -203.5z" />
+    <glyph glyph-name="check_minus" unicode="&#xf147;" horiz-adv-x="1408" 
+d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5
+t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="level_up" unicode="&#xf148;" horiz-adv-x="1024" 
+d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" />
+    <glyph glyph-name="level_down" unicode="&#xf149;" horiz-adv-x="1024" 
+d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" />
+    <glyph glyph-name="check_sign" unicode="&#xf14a;" 
+d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5
+t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="edit_sign" unicode="&#xf14b;" 
+d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120
+v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_312" unicode="&#xf14c;" 
+d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960
+q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="share_sign" unicode="&#xf14d;" 
+d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q11 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5
+t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="compass" unicode="&#xf14e;" 
+d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="collapse" unicode="&#xf150;" 
+d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120
+v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="collapse_top" unicode="&#xf151;" 
+d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_317" unicode="&#xf152;" 
+d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5
+t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="eur" unicode="&#xf153;" horiz-adv-x="1024" 
+d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9
+t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26
+l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" />
+    <glyph glyph-name="gbp" unicode="&#xf154;" horiz-adv-x="1024" 
+d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7
+q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" />
+    <glyph glyph-name="usd" unicode="&#xf155;" horiz-adv-x="1024" 
+d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43
+t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5
+t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50
+t53 -63.5t31.5 -76.5t13 -94z" />
+    <glyph glyph-name="inr" unicode="&#xf156;" horiz-adv-x="898" 
+d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102
+q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="jpy" unicode="&#xf157;" horiz-adv-x="1027" 
+d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61
+l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" />
+    <glyph glyph-name="rub" unicode="&#xf158;" horiz-adv-x="1280" 
+d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128
+q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" />
+    <glyph glyph-name="krw" unicode="&#xf159;" horiz-adv-x="1792" 
+d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23
+t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28
+q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="btc" unicode="&#xf15a;" horiz-adv-x="1280" 
+d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164
+l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30
+t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" />
+    <glyph glyph-name="file" unicode="&#xf15b;" 
+d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" />
+    <glyph glyph-name="file_text" unicode="&#xf15c;" 
+d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704
+q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" />
+    <glyph glyph-name="sort_by_alphabet" unicode="&#xf15d;" horiz-adv-x="1664" 
+d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23
+v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162
+l230 -662h70z" />
+    <glyph glyph-name="_329" unicode="&#xf15e;" horiz-adv-x="1664" 
+d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150
+v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248
+v119h121z" />
+    <glyph glyph-name="sort_by_attributes" unicode="&#xf160;" horiz-adv-x="1792" 
+d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832
+q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256
+q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="sort_by_attributes_alt" unicode="&#xf161;" horiz-adv-x="1792" 
+d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192
+q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832
+q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="sort_by_order" unicode="&#xf162;" 
+d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23
+zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5
+t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" />
+    <glyph glyph-name="sort_by_order_alt" unicode="&#xf163;" 
+d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9
+t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13
+q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" />
+    <glyph glyph-name="_334" unicode="&#xf164;" horiz-adv-x="1664" 
+d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76
+q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5
+t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" />
+    <glyph glyph-name="_335" unicode="&#xf165;" horiz-adv-x="1664" 
+d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135
+t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121
+t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" />
+    <glyph glyph-name="youtube_sign" unicode="&#xf166;" 
+d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 17 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15
+q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38
+q21 -29 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5
+q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78q7 -23 23 -69l24 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38
+q-51 0 -78 -38q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5
+h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="youtube" unicode="&#xf167;" 
+d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73
+q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51
+q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99
+q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-38 -51 -106 -51q-67 0 -105 51
+q-28 38 -28 118v175q0 80 28 117q38 51 105 51q68 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" />
+    <glyph glyph-name="xing" unicode="&#xf168;" horiz-adv-x="1408" 
+d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942
+q25 45 64 45h241q22 0 31 -15z" />
+    <glyph glyph-name="xing_sign" unicode="&#xf169;" 
+d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1
+l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="youtube_play" unicode="&#xf16a;" horiz-adv-x="1792" 
+d="M711 408l484 250l-484 253v-503zM896 1270q168 0 324.5 -4.5t229.5 -9.5l73 -4q1 0 17 -1.5t23 -3t23.5 -4.5t28.5 -8t28 -13t31 -19.5t29 -26.5q6 -6 15.5 -18.5t29 -58.5t26.5 -101q8 -64 12.5 -136.5t5.5 -113.5v-40v-136q1 -145 -18 -290q-7 -55 -25 -99.5t-32 -61.5
+l-14 -17q-14 -15 -29 -26.5t-31 -19t-28 -12.5t-28.5 -8t-24 -4.5t-23 -3t-16.5 -1.5q-251 -19 -627 -19q-207 2 -359.5 6.5t-200.5 7.5l-49 4l-36 4q-36 5 -54.5 10t-51 21t-56.5 41q-6 6 -15.5 18.5t-29 58.5t-26.5 101q-8 64 -12.5 136.5t-5.5 113.5v40v136
+q-1 145 18 290q7 55 25 99.5t32 61.5l14 17q14 15 29 26.5t31 19.5t28 13t28.5 8t23.5 4.5t23 3t17 1.5q251 18 627 18z" />
+    <glyph glyph-name="dropbox" unicode="&#xf16b;" horiz-adv-x="1792" 
+d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" />
+    <glyph glyph-name="stackexchange" unicode="&#xf16c;" 
+d="M1289 -96h-1118v480h-160v-640h1438v640h-160v-480zM347 428l33 157l783 -165l-33 -156zM450 802l67 146l725 -339l-67 -145zM651 1158l102 123l614 -513l-102 -123zM1048 1536l477 -641l-128 -96l-477 641zM330 65v159h800v-159h-800z" />
+    <glyph glyph-name="instagram" unicode="&#xf16d;" 
+d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1162 640q0 -164 -115 -279t-279 -115t-279 115t-115 279t115 279t279 115t279 -115t115 -279zM1270 1050q0 -38 -27 -65t-65 -27t-65 27t-27 65t27 65t65 27t65 -27t27 -65zM768 1270
+q-7 0 -76.5 0.5t-105.5 0t-96.5 -3t-103 -10t-71.5 -18.5q-50 -20 -88 -58t-58 -88q-11 -29 -18.5 -71.5t-10 -103t-3 -96.5t0 -105.5t0.5 -76.5t-0.5 -76.5t0 -105.5t3 -96.5t10 -103t18.5 -71.5q20 -50 58 -88t88 -58q29 -11 71.5 -18.5t103 -10t96.5 -3t105.5 0t76.5 0.5
+t76.5 -0.5t105.5 0t96.5 3t103 10t71.5 18.5q50 20 88 58t58 88q11 29 18.5 71.5t10 103t3 96.5t0 105.5t-0.5 76.5t0.5 76.5t0 105.5t-3 96.5t-10 103t-18.5 71.5q-20 50 -58 88t-88 58q-29 11 -71.5 18.5t-103 10t-96.5 3t-105.5 0t-76.5 -0.5zM1536 640q0 -229 -5 -317
+q-10 -208 -124 -322t-322 -124q-88 -5 -317 -5t-317 5q-208 10 -322 124t-124 322q-5 88 -5 317t5 317q10 208 124 322t322 124q88 5 317 5t317 -5q208 -10 322 -124t124 -322q5 -88 5 -317z" />
+    <glyph glyph-name="flickr" unicode="&#xf16e;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150
+t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" />
+    <glyph glyph-name="adn" unicode="&#xf170;" 
+d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="f171" unicode="&#xf171;" horiz-adv-x="1408" 
+d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22
+t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18
+t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5
+t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" />
+    <glyph glyph-name="bitbucket_sign" unicode="&#xf172;" 
+d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5
+t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z
+M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120
+v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="tumblr" unicode="&#xf173;" horiz-adv-x="1024" 
+d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14
+q78 2 134 29z" />
+    <glyph glyph-name="tumblr_sign" unicode="&#xf174;" 
+d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z
+M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="long_arrow_down" unicode="&#xf175;" horiz-adv-x="768" 
+d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" />
+    <glyph glyph-name="long_arrow_up" unicode="&#xf176;" horiz-adv-x="768" 
+d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" />
+    <glyph glyph-name="long_arrow_left" unicode="&#xf177;" horiz-adv-x="1792" 
+d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="long_arrow_right" unicode="&#xf178;" horiz-adv-x="1792" 
+d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" />
+    <glyph glyph-name="apple" unicode="&#xf179;" horiz-adv-x="1408" 
+d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q113 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65
+q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" />
+    <glyph glyph-name="windows" unicode="&#xf17a;" horiz-adv-x="1664" 
+d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" />
+    <glyph glyph-name="android" unicode="&#xf17b;" horiz-adv-x="1408" 
+d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30
+t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5
+h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" />
+    <glyph glyph-name="linux" unicode="&#xf17c;" 
+d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-10 -11 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z
+M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7
+q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15
+q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5
+t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19
+q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63
+q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18q-2 -1 -4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92
+q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152
+q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-6 0 -8 -2t0 -4
+t5 -3q14 -4 18 -31q0 -3 8 2q2 2 2 3zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5
+t-30 -18.5t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43
+q-19 4 -51 9.5t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49
+t-14 -48q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54
+q110 143 124 195q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5
+t-40.5 -33.5t-61 -14q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5
+t15.5 47.5q1 -31 8 -56.5t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" />
+    <glyph glyph-name="dribble" unicode="&#xf17d;" 
+d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81
+t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19
+q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -5 6.5 -17t7.5 -17q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6
+t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="skype" unicode="&#xf17e;" 
+d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5
+t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5
+q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80
+q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" />
+    <glyph glyph-name="foursquare" unicode="&#xf180;" horiz-adv-x="1280" 
+d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z
+M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 55 38 102.5t120 47.5h888q95 0 127 -53t10 -159zM1227 1324
+l-158 -790q4 17 35 173.5t69.5 350t53.5 266.5z" />
+    <glyph glyph-name="trello" unicode="&#xf181;" 
+d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408
+q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="female" unicode="&#xf182;" horiz-adv-x="1280" 
+d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43
+q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="male" unicode="&#xf183;" horiz-adv-x="1024" 
+d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z
+M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="gittip" unicode="&#xf184;" 
+d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="sun" unicode="&#xf185;" horiz-adv-x="1792" 
+d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4
+l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94
+q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" />
+    <glyph glyph-name="_366" unicode="&#xf186;" 
+d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61
+t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" />
+    <glyph glyph-name="archive" unicode="&#xf187;" horiz-adv-x="1792" 
+d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536
+q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="bug" unicode="&#xf188;" horiz-adv-x="1664" 
+d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207
+q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19
+t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" />
+    <glyph glyph-name="vk" unicode="&#xf189;" horiz-adv-x="1920" 
+d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-40 -51 -55 -72t-30.5 -49.5t-12 -42t13 -34.5t32.5 -43t57 -53q4 -2 5 -4q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58
+t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6
+q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q16 19 38 30q53 26 239 24
+q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2
+q39 5 64 -2.5t31 -16.5z" />
+    <glyph glyph-name="weibo" unicode="&#xf18a;" horiz-adv-x="1792" 
+d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12
+q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422
+q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178
+q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z
+M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" />
+    <glyph glyph-name="renren" unicode="&#xf18b;" 
+d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495
+q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" />
+    <glyph glyph-name="_372" unicode="&#xf18c;" horiz-adv-x="1408" 
+d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5
+t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56
+t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -4 1 -50t-1 -72q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5
+t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" />
+    <glyph glyph-name="stack_exchange" unicode="&#xf18d;" horiz-adv-x="1280" 
+d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z
+" />
+    <glyph glyph-name="_374" unicode="&#xf18e;" 
+d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198
+t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="arrow_circle_alt_left" unicode="&#xf190;" 
+d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198
+t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_376" unicode="&#xf191;" 
+d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z
+M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="dot_circle_alt" unicode="&#xf192;" 
+d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5
+t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_378" unicode="&#xf193;" horiz-adv-x="1664" 
+d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128
+q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 17 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" />
+    <glyph glyph-name="vimeo_square" unicode="&#xf194;" 
+d="M1292 898q10 216 -161 222q-231 8 -312 -261q44 19 82 19q85 0 74 -96q-4 -57 -74 -167t-105 -110q-43 0 -82 169q-13 54 -45 255q-30 189 -160 177q-59 -7 -164 -100l-81 -72l-81 -72l52 -67q76 52 87 52q57 0 107 -179q15 -55 45 -164.5t45 -164.5q68 -179 164 -179
+q157 0 383 294q220 283 226 444zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_380" unicode="&#xf195;" horiz-adv-x="1152" 
+d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160
+q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="plus_square_o" unicode="&#xf196;" horiz-adv-x="1408" 
+d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832
+q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_382" unicode="&#xf197;" horiz-adv-x="2176" 
+d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40
+t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29
+q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" />
+    <glyph glyph-name="_383" unicode="&#xf198;" horiz-adv-x="1664" 
+d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9
+q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102
+t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" />
+    <glyph glyph-name="_384" unicode="&#xf199;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69
+q-47 32 -142 92.5t-142 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13
+t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" />
+    <glyph glyph-name="_385" unicode="&#xf19a;" horiz-adv-x="1792" 
+d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5
+t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21
+t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286
+t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273
+t273 -182.5t331.5 -68z" />
+    <glyph glyph-name="_386" unicode="&#xf19b;" horiz-adv-x="1792" 
+d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" />
+    <glyph glyph-name="_387" unicode="&#xf19c;" horiz-adv-x="2048" 
+d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64
+q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" />
+    <glyph glyph-name="_388" unicode="&#xf19d;" horiz-adv-x="2304" 
+d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433
+q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" />
+    <glyph glyph-name="_389" unicode="&#xf19e;" 
+d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q44 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0
+q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" />
+    <glyph glyph-name="uniF1A0" unicode="&#xf1a0;" 
+d="M768 750h725q12 -67 12 -128q0 -217 -91 -387.5t-259.5 -266.5t-386.5 -96q-157 0 -299 60.5t-245 163.5t-163.5 245t-60.5 299t60.5 299t163.5 245t245 163.5t299 60.5q300 0 515 -201l-209 -201q-123 119 -306 119q-129 0 -238.5 -65t-173.5 -176.5t-64 -243.5
+t64 -243.5t173.5 -176.5t238.5 -65q87 0 160 24t120 60t82 82t51.5 87t22.5 78h-436v264z" />
+    <glyph glyph-name="f1a1" unicode="&#xf1a1;" horiz-adv-x="1792" 
+d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26
+t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q-19 5 -25 -16l-69 -312q-180 -7 -309 -97q-35 37 -87 37
+q-50 0 -85 -35t-35 -84q0 -35 18.5 -64t49.5 -44q-6 -27 -6 -56q0 -142 140 -243t337 -101q198 0 338 101t140 243q0 32 -7 57q30 15 48 43.5t18 63.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191
+t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_392" unicode="&#xf1a2;" 
+d="M939 407q13 -13 0 -26q-53 -53 -171 -53t-171 53q-13 13 0 26q5 6 13 6t13 -6q42 -42 145 -42t145 42q5 6 13 6t13 -6zM676 563q0 -31 -23 -54t-54 -23t-54 23t-23 54q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1014 563q0 -31 -23 -54t-54 -23t-54 23t-23 54
+q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1229 666q0 42 -30 72t-73 30q-42 0 -73 -31q-113 78 -267 82l54 243l171 -39q1 -32 23.5 -54t53.5 -22q32 0 54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5q-48 0 -69 -43l-189 42q-17 5 -21 -13l-60 -268q-154 -6 -265 -83
+q-30 32 -74 32q-43 0 -73 -30t-30 -72q0 -30 16 -55t42 -38q-5 -25 -5 -48q0 -122 120 -208.5t289 -86.5q170 0 290 86.5t120 208.5q0 25 -6 49q25 13 40.5 37.5t15.5 54.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960
+q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_393" unicode="&#xf1a3;" 
+d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150
+v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103
+t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="f1a4" unicode="&#xf1a4;" horiz-adv-x="1920" 
+d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328
+v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" />
+    <glyph glyph-name="_395" unicode="&#xf1a5;" 
+d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5
+t84.5 -203.5z" />
+    <glyph glyph-name="_396" unicode="&#xf1a6;" horiz-adv-x="2048" 
+d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123
+v-369h123z" />
+    <glyph glyph-name="_397" unicode="&#xf1a7;" 
+d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101
+v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960
+q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_398" unicode="&#xf1a8;" horiz-adv-x="2038" 
+d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14
+q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24
+q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33
+q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5
+t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43
+q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5
+t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13
+t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" />
+    <glyph glyph-name="_399" unicode="&#xf1a9;" 
+d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10
+q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14
+q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14
+t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44
+q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" />
+    <glyph glyph-name="_400" unicode="&#xf1aa;" 
+d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z
+M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5
+t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5
+q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126
+t135.5 51q85 0 145 -60.5t60 -145.5z" />
+    <glyph glyph-name="f1ab" unicode="&#xf1ab;" 
+d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5
+q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28
+q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z
+M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11
+q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q107 36 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5
+q20 0 20 -21v-418z" />
+    <glyph glyph-name="_402" unicode="&#xf1ac;" horiz-adv-x="1792" 
+d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48
+l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23
+t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128
+q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128
+q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" />
+    <glyph glyph-name="_403" unicode="&#xf1ad;" 
+d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9
+t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 160v64
+q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64
+q14 0 23 9t9 23zM384 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 -96v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9
+t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM896 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 928v64
+q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 160v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64
+q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9
+t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23z" />
+    <glyph glyph-name="_404" unicode="&#xf1ae;" horiz-adv-x="1280" 
+d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68q29 28 68.5 28t67.5 -28l228 -228h368l228 228q28 28 68 28t68 -28q28 -29 28 -68.5t-28 -67.5zM864 1152
+q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="uniF1B1" unicode="&#xf1b0;" horiz-adv-x="1664" 
+d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5
+q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 86 56 191.5t139.5 192.5t187.5 146t193 59zM1071 819
+q-61 0 -105 39t-63 92.5t-19 113.5q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5zM1503 923q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5q-77 0 -119 59t-42 139q0 74 35 152.5
+t100.5 134t141.5 55.5z" />
+    <glyph glyph-name="_406" unicode="&#xf1b1;" horiz-adv-x="768" 
+d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" />
+    <glyph glyph-name="_407" unicode="&#xf1b2;" horiz-adv-x="1792" 
+d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z
+" />
+    <glyph glyph-name="_408" unicode="&#xf1b3;" horiz-adv-x="2304" 
+d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67
+t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-4 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70
+v-400l434 -186q36 -16 57 -48t21 -70z" />
+    <glyph glyph-name="_409" unicode="&#xf1b4;" horiz-adv-x="2048" 
+d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658
+q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204
+q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611v1260z" />
+    <glyph glyph-name="_410" unicode="&#xf1b5;" 
+d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5
+t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216q0 -135 79 -217
+t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20zM1126 722q113 0 124 -122h-254q4 56 39 89t91 33zM964 988h319v-77h-319v77z" />
+    <glyph glyph-name="_411" unicode="&#xf1b6;" horiz-adv-x="1792" 
+d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5
+q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -322t-321.5 -133l-437 -319q-12 -129 -109 -218t-229 -89
+q-121 0 -214 76t-118 192l-230 92v429l389 -157q79 48 173 48q13 0 35 -2l284 407q2 187 135.5 319t320.5 132q188 0 321.5 -133.5t133.5 -321.5z" />
+    <glyph glyph-name="_412" unicode="&#xf1b7;" 
+d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5
+q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 255.5t-255.5 105.5
+q-148 0 -253 -104.5t-107 -252.5l-225 -322q-9 1 -28 1q-75 0 -137 -37l-297 119v468q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5zM1289 887q0 -100 -71 -170.5t-171 -70.5t-170.5 70.5t-70.5 170.5t70.5 171t170.5 71q101 0 171.5 -70.5t70.5 -171.5z
+" />
+    <glyph glyph-name="_413" unicode="&#xf1b8;" horiz-adv-x="1792" 
+d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188
+l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5
+t36 -39.5t32 -35zM1550 1053l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436l313 195zM1407 1279l142 83l-220 -373l-419 20l151 86q-34 89 -75 166t-75.5 123.5t-64.5 80t-47 46.5l-17 13l405 -1
+q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190z" />
+    <glyph glyph-name="_414" unicode="&#xf1b9;" horiz-adv-x="2048" 
+d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384
+q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h768q98 0 179 -63.5t104 -157.5
+l105 -419h28q93 0 158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="_415" unicode="&#xf1ba;" horiz-adv-x="2048" 
+d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5
+t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z
+M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" />
+    <glyph glyph-name="_416" unicode="&#xf1bb;" 
+d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384
+q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" />
+    <glyph glyph-name="_417" unicode="&#xf1bc;" 
+d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64
+q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37
+q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_418" unicode="&#xf1bd;" horiz-adv-x="1024" 
+d="M1024 1233l-303 -582l24 -31h279v-415h-507l-44 -30l-142 -273l-30 -30h-301v303l303 583l-24 30h-279v415h507l44 30l142 273l30 30h301v-303z" />
+    <glyph glyph-name="_419" unicode="&#xf1be;" horiz-adv-x="2304" 
+d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11
+q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245
+q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785
+l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242
+q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236
+q0 -11 -8 -19t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786
+q-13 2 -22 11t-9 22v899q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" />
+    <glyph glyph-name="uniF1C0" unicode="&#xf1c0;" 
+d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127
+t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5
+t-103 128v128q0 69 103 128t280 93.5t385 34.5z" />
+    <glyph glyph-name="uniF1C1" unicode="&#xf1c1;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197
+q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8
+q-1 1 -1 2q-1 2 -1 3q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" />
+    <glyph glyph-name="_422" unicode="&#xf1c2;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4q0 3 -0.5 6.5t-1.5 8t-1 6.5q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5
+t-3.5 -21.5l-4 -21h-4l-2 21q-2 26 -7 46l-99 438h90v107h-300z" />
+    <glyph glyph-name="_423" unicode="&#xf1c3;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107
+h-290v-107h68l189 -272l-194 -283h-68z" />
+    <glyph glyph-name="_424" unicode="&#xf1c4;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" />
+    <glyph glyph-name="_425" unicode="&#xf1c5;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" />
+    <glyph glyph-name="_426" unicode="&#xf1c6;" 
+d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400
+v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79
+q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" />
+    <glyph glyph-name="_427" unicode="&#xf1c7;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5
+q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" />
+    <glyph glyph-name="_428" unicode="&#xf1c8;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" />
+    <glyph glyph-name="_429" unicode="&#xf1c9;" 
+d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z
+M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243
+l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" />
+    <glyph glyph-name="_430" unicode="&#xf1ca;" 
+d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406
+q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" />
+    <glyph glyph-name="_431" unicode="&#xf1cb;" horiz-adv-x="1792" 
+d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546
+q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" />
+    <glyph glyph-name="_432" unicode="&#xf1cc;" horiz-adv-x="2048" 
+d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94
+q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55
+t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97l93 -108q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5t-85 -189.5z" />
+    <glyph glyph-name="_433" unicode="&#xf1cd;" horiz-adv-x="1792" 
+d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194
+q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5
+t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
+    <glyph glyph-name="_434" unicode="&#xf1ce;" horiz-adv-x="1792" 
+d="M1760 640q0 -176 -68.5 -336t-184 -275.5t-275.5 -184t-336 -68.5t-336 68.5t-275.5 184t-184 275.5t-68.5 336q0 213 97 398.5t265 305.5t374 151v-228q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5
+t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v228q206 -31 374 -151t265 -305.5t97 -398.5z" />
+    <glyph glyph-name="uniF1D0" unicode="&#xf1d0;" horiz-adv-x="1792" 
+d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41
+t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170
+t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136
+q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
+    <glyph glyph-name="uniF1D1" unicode="&#xf1d1;" horiz-adv-x="1792" 
+d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251
+l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162
+q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33
+q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5
+t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71
+t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF1D2" unicode="&#xf1d2;" 
+d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85
+q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392
+q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072
+q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_438" unicode="&#xf1d3;" horiz-adv-x="1792" 
+d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58
+q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47
+q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171
+v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" />
+    <glyph glyph-name="_439" unicode="&#xf1d4;" 
+d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="uniF1D5" unicode="&#xf1d5;" horiz-adv-x="1280" 
+d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5
+t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153
+t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" />
+    <glyph glyph-name="uniF1D6" unicode="&#xf1d6;" horiz-adv-x="1792" 
+d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5
+q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20
+t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5
+t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" />
+    <glyph glyph-name="uniF1D7" unicode="&#xf1d7;" horiz-adv-x="2048" 
+d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25
+q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5
+q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109
+q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" />
+    <glyph glyph-name="_443" unicode="&#xf1d8;" horiz-adv-x="1792" 
+d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" />
+    <glyph glyph-name="_444" unicode="&#xf1d9;" horiz-adv-x="1792" 
+d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137
+l863 639l-478 -797z" />
+    <glyph glyph-name="_445" unicode="&#xf1da;" 
+d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5
+t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23
+t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_446" unicode="&#xf1db;" 
+d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103
+t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_447" unicode="&#xf1dc;" horiz-adv-x="1792" 
+d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15
+t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18q-15 10 -45 12t-53 2
+t-41 14t-18 45q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160
+q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5
+q0 -26 -12 -48t-36 -22z" />
+    <glyph glyph-name="_448" unicode="&#xf1dd;" horiz-adv-x="1280" 
+d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179
+q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" />
+    <glyph glyph-name="_449" unicode="&#xf1de;" 
+d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256
+q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1152v-128h-864v128h864z" />
+    <glyph glyph-name="uniF1E0" unicode="&#xf1e0;" 
+d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5
+t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" />
+    <glyph glyph-name="_451" unicode="&#xf1e1;" 
+d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5
+t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_452" unicode="&#xf1e2;" horiz-adv-x="1792" 
+d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5
+t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23t9 23q10 9 23 9t23 -9l90 -91
+q10 -9 10 -22.5t-10 -22.5zM1751 1129q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5t10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23zM1792 1312q0 -14 -9 -23t-23 -9h-96q-14 0 -23 9t-9 23t9 23t23 9h96q14 0 23 -9t9 -23zM1600 1504v-96q0 -14 -9 -23t-23 -9
+t-23 9t-9 23v96q0 14 9 23t23 9t23 -9t9 -23zM1751 1449l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5t10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" />
+    <glyph glyph-name="_453" unicode="&#xf1e3;" horiz-adv-x="1792" 
+d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323
+l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l139 298l326 40z" />
+    <glyph glyph-name="_454" unicode="&#xf1e4;" horiz-adv-x="1792" 
+d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23
+v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t-46 -19h-383zM1216 224v-192q0 -14 -9 -23t-23 -9h-192
+q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1600 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23
+zM1408 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1016v-13h-514v10q0 104 -382 102q-382 -1 -382 -102v-10h-514v13q0 17 8.5 43t34 64t65.5 75.5t110.5 76t160 67.5t224 47.5t293.5 18.5t293 -18.5t224 -47.5
+t160.5 -67.5t110.5 -76t65.5 -75.5t34 -64t8.5 -43zM1792 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 962v-129q0 -27 -19 -46t-46 -19h-384q-27 0 -46 19t-19 46v129h514z" />
+    <glyph glyph-name="_455" unicode="&#xf1e5;" horiz-adv-x="1792" 
+d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z
+M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_456" unicode="&#xf1e6;" horiz-adv-x="1792" 
+d="M1755 1083q37 -38 37 -90.5t-37 -90.5l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234
+l401 400q38 37 91 37t90 -37z" />
+    <glyph glyph-name="_457" unicode="&#xf1e7;" horiz-adv-x="1792" 
+d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5
+t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1t53 1t54.5 4.5t61 8.5t62 13.5t67 19.5t67.5 27t72 34.5z
+M1763 621q-121 -149 -372 -252q84 -285 -23 -465q-66 -113 -183 -148q-104 -32 -182 15q-86 51 -82 164l-1 326v1q-8 2 -24.5 6t-23.5 5l-1 -338q4 -114 -83 -164q-79 -47 -183 -15q-117 36 -182 150q-105 180 -22 463q-251 103 -372 252q-25 37 -4 63t60 -1q4 -2 11.5 -7
+t10.5 -8v694q0 72 47 123t114 51h1257q67 0 114 -51t47 -123v-694l21 15q39 27 60 1t-4 -63z" />
+    <glyph glyph-name="_458" unicode="&#xf1e8;" horiz-adv-x="1792" 
+d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" />
+    <glyph glyph-name="_459" unicode="&#xf1e9;" 
+d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36
+q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q71 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 -1 119 -40q203 -66 242 -79.5
+t47 -20.5q28 -22 22 -61zM778 803q5 -102 -54 -122q-58 -17 -114 71l-378 598q-8 35 19 62q41 43 207.5 89.5t224.5 31.5q40 -10 49 -45q3 -18 22 -305.5t24 -379.5zM1440 695q3 -39 -26 -59q-15 -10 -329 -86q-67 -15 -91 -23l1 2q-23 -6 -46 4t-37 32q-30 47 0 87
+q1 1 75 102q125 171 150 204t34 39q28 19 65 2q48 -23 123 -133.5t81 -167.5v-3z" />
+    <glyph glyph-name="_460" unicode="&#xf1ea;" horiz-adv-x="2048" 
+d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19
+t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" />
+    <glyph glyph-name="_461" unicode="&#xf1eb;" horiz-adv-x="2048" 
+d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121
+q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z
+M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" />
+    <glyph glyph-name="_462" unicode="&#xf1ec;" horiz-adv-x="1792" 
+d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5
+t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5
+t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5
+t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z
+M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38
+h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_463" unicode="&#xf1ed;" 
+d="M1519 890q18 -84 -4 -204q-87 -444 -565 -444h-44q-25 0 -44 -16.5t-24 -42.5l-4 -19l-55 -346l-2 -15q-5 -26 -24.5 -42.5t-44.5 -16.5h-251q-21 0 -33 15t-9 36q9 56 26.5 168t26.5 168t27 167.5t27 167.5q5 37 43 37h131q133 -2 236 21q175 39 287 144q102 95 155 246
+q24 70 35 133q1 6 2.5 7.5t3.5 1t6 -3.5q79 -59 98 -162zM1347 1172q0 -107 -46 -236q-80 -233 -302 -315q-113 -40 -252 -42q0 -1 -90 -1l-90 1q-100 0 -118 -96q-2 -8 -85 -530q-1 -10 -12 -10h-295q-22 0 -36.5 16.5t-11.5 38.5l232 1471q5 29 27.5 48t51.5 19h598
+q34 0 97.5 -13t111.5 -32q107 -41 163.5 -123t56.5 -196z" />
+    <glyph glyph-name="_464" unicode="&#xf1ee;" horiz-adv-x="1792" 
+d="M441 864q33 0 52 -26q266 -364 362 -774h-446q-127 441 -367 749q-12 16 -3 33.5t29 17.5h373zM1000 507q-49 -199 -125 -393q-79 310 -256 594q40 221 44 449q211 -340 337 -650zM1099 1216q235 -324 384.5 -698.5t184.5 -773.5h-451q-41 665 -553 1472h435zM1792 640
+q0 -424 -101 -812q-67 560 -359 1083q-25 301 -106 584q-4 16 5.5 28.5t25.5 12.5h359q21 0 38.5 -13t22.5 -33q115 -409 115 -850z" />
+    <glyph glyph-name="uniF1F0" unicode="&#xf1f0;" horiz-adv-x="2304" 
+d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27
+q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128
+q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_466" unicode="&#xf1f1;" horiz-adv-x="2304" 
+d="M1119 1195q-128 85 -281 85q-103 0 -197.5 -40.5t-162.5 -108.5t-108.5 -162t-40.5 -197q0 -104 40.5 -198t108.5 -162t162 -108.5t198 -40.5q153 0 281 85q-131 107 -178 265.5t0.5 316.5t177.5 265zM1152 1171q-126 -99 -172 -249.5t-0.5 -300.5t172.5 -249
+q127 99 172.5 249t-0.5 300.5t-172 249.5zM1185 1195q130 -107 177.5 -265.5t0.5 -317t-178 -264.5q128 -85 281 -85q104 0 198 40.5t162 108.5t108.5 162t40.5 198q0 103 -40.5 197t-108.5 162t-162.5 108.5t-197.5 40.5q-153 0 -281 -85zM1926 473h7v3h-17v-3h7v-17h3v17z
+M1955 456h4v20h-5l-6 -13l-6 13h-5v-20h3v15l6 -13h4l5 13v-15zM1947 16v-2h-2h-3v3h3h2v-1zM1947 7h3l-4 5h2l1 1q1 1 1 3t-1 3l-1 1h-3h-6v-13h3v5h1zM685 75q0 19 11 31t30 12q18 0 29 -12.5t11 -30.5q0 -19 -11 -31t-29 -12q-19 0 -30 12t-11 31zM1158 119q30 0 35 -32
+h-70q5 32 35 32zM1514 75q0 19 11 31t29 12t29.5 -12.5t11.5 -30.5q0 -19 -11 -31t-30 -12q-18 0 -29 12t-11 31zM1786 75q0 18 11.5 30.5t29.5 12.5t29.5 -12.5t11.5 -30.5q0 -19 -11.5 -31t-29.5 -12t-29.5 12.5t-11.5 30.5zM1944 3q-2 0 -4 1q-1 0 -3 2t-2 3q-1 2 -1 4
+q0 3 1 4q0 2 2 4l1 1q2 0 2 1q2 1 4 1q3 0 4 -1l4 -2l2 -4v-1q1 -2 1 -3l-1 -1v-3t-1 -1l-1 -2q-2 -2 -4 -2q-1 -1 -4 -1zM599 7h30v85q0 24 -14.5 38.5t-39.5 15.5q-32 0 -47 -24q-14 24 -45 24q-24 0 -39 -20v16h-30v-135h30v75q0 36 33 36q30 0 30 -36v-75h29v75
+q0 36 33 36q30 0 30 -36v-75zM765 7h29v68v67h-29v-16q-17 20 -43 20q-29 0 -48 -20t-19 -51t19 -51t48 -20q28 0 43 20v-17zM943 48q0 34 -47 40l-14 2q-23 4 -23 14q0 15 25 15q23 0 43 -11l12 24q-22 14 -55 14q-26 0 -41 -12t-15 -32q0 -33 47 -39l13 -2q24 -4 24 -14
+q0 -17 -31 -17q-25 0 -45 14l-13 -23q25 -17 58 -17q29 0 45.5 12t16.5 32zM1073 14l-8 25q-13 -7 -26 -7q-19 0 -19 22v61h48v27h-48v41h-30v-41h-28v-27h28v-61q0 -50 47 -50q21 0 36 10zM1159 146q-29 0 -48 -20t-19 -51q0 -32 19.5 -51.5t49.5 -19.5q33 0 55 19l-14 22
+q-18 -15 -39 -15q-34 0 -41 33h101v12q0 32 -18 51.5t-46 19.5zM1318 146q-23 0 -35 -20v16h-30v-135h30v76q0 35 29 35q10 0 18 -4l9 28q-9 4 -21 4zM1348 75q0 -31 19.5 -51t52.5 -20q29 0 48 16l-14 24q-18 -13 -35 -12q-18 0 -29.5 12t-11.5 31t11.5 31t29.5 12
+q19 0 35 -12l14 24q-20 16 -48 16q-33 0 -52.5 -20t-19.5 -51zM1593 7h30v68v67h-30v-16q-15 20 -42 20q-29 0 -48.5 -20t-19.5 -51t19.5 -51t48.5 -20q28 0 42 20v-17zM1726 146q-23 0 -35 -20v16h-29v-135h29v76q0 35 29 35q10 0 18 -4l9 28q-8 4 -21 4zM1866 7h29v68v122
+h-29v-71q-15 20 -43 20t-47.5 -20.5t-19.5 -50.5t19.5 -50.5t47.5 -20.5q29 0 43 20v-17zM1944 27l-2 -1h-3q-2 -1 -4 -3q-3 -1 -3 -4q-1 -2 -1 -6q0 -3 1 -5q0 -2 3 -4q2 -2 4 -3t5 -1q4 0 6 1q0 1 2 2l2 1q1 1 3 4q1 2 1 5q0 4 -1 6q-1 1 -3 4q0 1 -2 2l-2 1q-1 0 -3 0.5
+t-3 0.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_467" unicode="&#xf1f2;" horiz-adv-x="2304" 
+d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42
+q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604
+v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569
+q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73
+t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" />
+    <glyph glyph-name="f1f3" unicode="&#xf1f3;" horiz-adv-x="2304" 
+d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z
+M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260
+l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279
+v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040
+q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168
+q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5
+t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21
+h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5
+t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" />
+    <glyph glyph-name="_469" unicode="&#xf1f4;" horiz-adv-x="2304" 
+d="M745 630q0 -37 -25.5 -61.5t-62.5 -24.5q-29 0 -46.5 16t-17.5 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM1530 779q0 -42 -22 -57t-66 -15l-32 -1l17 107q2 11 13 11h18q22 0 35 -2t25 -12.5t12 -30.5zM1881 630q0 -36 -25.5 -61t-61.5 -25q-29 0 -47 16
+t-18 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM513 801q0 59 -38.5 85.5t-100.5 26.5h-160q-19 0 -21 -19l-65 -408q-1 -6 3 -11t10 -5h76q20 0 22 19l18 110q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM822 489l41 261q1 6 -3 11t-10 5h-76
+q-14 0 -17 -33q-27 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q28 0 58 12t48 32q-4 -12 -4 -21q0 -16 13 -16h69q19 0 22 19zM1269 752q0 5 -4 9.5t-9 4.5h-77q-11 0 -18 -10l-106 -156l-44 150q-5 16 -22 16h-75q-5 0 -9 -4.5t-4 -9.5q0 -2 19.5 -59
+t42 -123t23.5 -70q-82 -112 -82 -120q0 -13 13 -13h77q11 0 18 10l255 368q2 2 2 7zM1649 801q0 59 -38.5 85.5t-100.5 26.5h-159q-20 0 -22 -19l-65 -408q-1 -6 3 -11t10 -5h82q12 0 16 13l18 116q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM1958 489
+l41 261q1 6 -3 11t-10 5h-76q-14 0 -17 -33q-26 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q29 0 59 12t47 32q0 -1 -2 -9t-2 -12q0 -16 13 -16h69q19 0 22 19zM2176 898v1q0 14 -13 14h-74q-11 0 -13 -11l-65 -416l-1 -2q0 -5 4 -9.5t10 -4.5h66
+q19 0 21 19zM392 764q-5 -35 -26 -46t-60 -11l-33 -1l17 107q2 11 13 11h19q40 0 58 -11.5t12 -48.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_470" unicode="&#xf1f5;" horiz-adv-x="2304" 
+d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109
+q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118
+q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151
+q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31
+q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_471" unicode="&#xf1f6;" horiz-adv-x="2048" 
+d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5
+l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5
+l418 363q10 8 23.5 7t21.5 -11z" />
+    <glyph glyph-name="_472" unicode="&#xf1f7;" horiz-adv-x="2048" 
+d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128
+q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161
+q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" />
+    <glyph glyph-name="_473" unicode="&#xf1f8;" horiz-adv-x="1408" 
+d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704
+q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167
+q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_474" unicode="&#xf1f9;" 
+d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5
+t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5
+t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_475" unicode="&#xf1fa;" 
+d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53
+q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0 -39 12.5 -52t44.5 -13q28 1 57 5.5t73 24
+t77 50t57 89.5t24 137q0 292 -174 466t-466 174q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51q228 0 405 144q11 9 24 8t21 -12l41 -49q8 -12 7 -24q-2 -13 -12 -22q-102 -83 -227.5 -128t-258.5 -45q-156 0 -298 61
+t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q344 0 556 -212t212 -556z" />
+    <glyph glyph-name="_476" unicode="&#xf1fb;" horiz-adv-x="1792" 
+d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10
+t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" />
+    <glyph glyph-name="f1fc" unicode="&#xf1fc;" horiz-adv-x="1792" 
+d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5
+t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" />
+    <glyph glyph-name="_478" unicode="&#xf1fd;" horiz-adv-x="1792" 
+d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11q24 0 44 -7t31 -15t33 -27q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5
+t47 37.5q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-24 0 -44 7t-31 15t-33 27q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-31 -15t-44 -7q-35 0 -56.5 11t-51.5 38q-29 25 -47 38
+t-58 27t-86 14q-45 0 -85 -14.5t-58 -27t-48 -37.5q-21 -19 -32.5 -27t-31 -15t-43.5 -7q-35 0 -56.5 11t-51.5 38q-28 24 -47 37.5t-59 27.5t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-30 -27 -51.5 -38t-56.5 -11v192q0 80 56 136t136 56h64v448h256v-448h256v448h256v-448
+h256v448h256v-448h64q80 0 136 -56t56 -136zM512 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1024 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5
+q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1536 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150z" />
+    <glyph glyph-name="_479" unicode="&#xf1fe;" horiz-adv-x="2048" 
+d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" />
+    <glyph glyph-name="_480" unicode="&#xf200;" horiz-adv-x="1792" 
+d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_481" unicode="&#xf201;" horiz-adv-x="2048" 
+d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9
+t9 -23z" />
+    <glyph glyph-name="_482" unicode="&#xf202;" horiz-adv-x="1792" 
+d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20
+q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43.5 206t116 176.5t172 121.5t204.5 46q87 0 159 -19t123.5 -50
+t95 -80t72.5 -99t58.5 -117t50.5 -124.5t50 -130.5t55 -127q96 -200 233 -200q81 0 138.5 48.5t57.5 128.5q0 42 -19 72t-50.5 46t-72.5 31.5t-84.5 27t-87.5 34t-81 52t-65 82t-39 122.5q-3 16 -3 33q0 110 87.5 192t198.5 78q78 -3 120.5 -14.5t90.5 -53.5h-1
+q12 -11 23 -24.5t26 -36t19 -27.5l-129 -99q-26 49 -54 70v1q-23 21 -97 21q-49 0 -84 -33t-35 -83z" />
+    <glyph glyph-name="_483" unicode="&#xf203;" 
+d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73
+q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t133.5 -147.5t196 -56.5q186 0 279 110
+q20 27 31 51l-60 109q-42 -80 -99 -116t-146 -36q-115 0 -191 87t-76 204q0 105 82 189t186 84q112 0 170 -53.5t104 -172.5q8 -21 25.5 -68.5t28.5 -76.5t31.5 -74.5t38.5 -74t45.5 -62.5t55.5 -53.5t66 -33t80 -13.5q107 0 183 69.5t76 174.5zM1536 1120v-960
+q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_484" unicode="&#xf204;" horiz-adv-x="2048" 
+d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5
+t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5
+t-136.5 204t-51 248.5t51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5z" />
+    <glyph glyph-name="_485" unicode="&#xf205;" horiz-adv-x="2048" 
+d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5
+t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" />
+    <glyph glyph-name="_486" unicode="&#xf206;" horiz-adv-x="2304" 
+d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94
+q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 97 39.5 183.5t109.5 149.5l-65 98l-353 -469
+q-18 -26 -51 -26h-197q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q114 0 215 -55l137 183h-224q-26 0 -45 19t-19 45t19 45t45 19h384v-128h435l-85 128h-222q-26 0 -45 19t-19 45t19 45t45 19h256q33 0 53 -28l267 -400
+q91 44 192 44q185 0 316.5 -131.5t131.5 -316.5z" />
+    <glyph glyph-name="_487" unicode="&#xf207;" 
+d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5
+h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5
+t-37.5 90.5v128h-768v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5v128h-128v603q0 112 25 223l103 454q9 78 97.5 137t230 89t312.5 30t312.5 -30t230 -89t97.5 -137l105 -454q23 -102 23 -223z" />
+    <glyph glyph-name="_488" unicode="&#xf208;" horiz-adv-x="2048" 
+d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327
+q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5 -319.5t-175.5 -263t-262.5 -176t-319.5 -65.5
+q-246 0 -448.5 133t-301.5 350h-189q-36 0 -61 25t-25 61q0 35 25 60t61 25h132q-17 85 -17 170q0 167 65.5 319.5t175.5 263t262.5 176t320.5 65.5q245 0 447.5 -133t301.5 -350h188q36 0 61 -25t25 -61z" />
+    <glyph glyph-name="_489" unicode="&#xf209;" horiz-adv-x="1280" 
+d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q17 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119
+t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169 152 427q0 43 -1 67t-11.5 62t-30.5 56q-56 49 -211.5 75.5
+t-270.5 26.5q-37 0 -49 -11q-12 -5 -12 -35q0 -34 21.5 -60t55.5 -40t77.5 -23.5t87.5 -11.5t85 -4t70 0h23q24 0 40 -19q15 -19 19 -55q-28 -28 -96 -54q-61 -22 -93 -46q-64 -46 -108.5 -114t-44.5 -137q0 -31 18.5 -88.5t18.5 -87.5l-3 -12q-4 -12 -4 -14
+q-137 10 -146 216q-8 -2 -41 -2q2 -7 2 -21q0 -53 -40.5 -89.5t-94.5 -36.5q-82 0 -166.5 78t-84.5 159q0 34 33 67q52 -64 60 -76q77 -104 133 -104q12 0 26.5 8.5t14.5 20.5q0 34 -87.5 145t-116.5 111q-43 0 -70 -44.5t-27 -90.5zM11 264q0 101 42.5 163t136.5 88
+q-28 74 -28 104q0 62 61 123t122 61q29 0 70 -15q-163 462 -163 567q0 80 41 130.5t119 50.5q131 0 325 -581q6 -17 8 -23q6 16 29 79.5t43.5 118.5t54 127.5t64.5 123t70.5 86.5t76.5 36q71 0 112 -49t41 -122q0 -108 -159 -550q61 -15 100.5 -46t58.5 -78t26 -93.5
+t7 -110.5q0 -150 -47 -280t-132 -225t-211 -150t-278 -55q-111 0 -223 42q-149 57 -258 191.5t-109 286.5z" />
+    <glyph glyph-name="_490" unicode="&#xf20a;" horiz-adv-x="2048" 
+d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206
+q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307
+t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14
+t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" />
+    <glyph glyph-name="_491" unicode="&#xf20b;" 
+d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5
+t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="_492" unicode="&#xf20c;" 
+d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55
+q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410
+q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" />
+    <glyph glyph-name="_493" unicode="&#xf20d;" 
+d="M915 450h-294l147 551zM1001 128h311l-324 1024h-440l-324 -1024h311l383 314zM1536 1120v-960q0 -118 -85 -203t-203 -85h-960q-118 0 -203 85t-85 203v960q0 118 85 203t203 85h960q118 0 203 -85t85 -203z" />
+    <glyph glyph-name="_494" unicode="&#xf20e;" horiz-adv-x="2048" 
+d="M2048 641q0 -21 -13 -36.5t-33 -19.5l-205 -356q3 -9 3 -18q0 -20 -12.5 -35.5t-32.5 -19.5l-193 -337q3 -8 3 -16q0 -23 -16.5 -40t-40.5 -17q-25 0 -41 18h-400q-17 -20 -43 -20t-43 20h-399q-17 -20 -43 -20q-23 0 -40 16.5t-17 40.5q0 8 4 20l-193 335
+q-20 4 -32.5 19.5t-12.5 35.5q0 9 3 18l-206 356q-20 5 -32.5 20.5t-12.5 35.5q0 21 13.5 36.5t33.5 19.5l199 344q0 1 -0.5 3t-0.5 3q0 36 34 51l209 363q-4 10 -4 18q0 24 17 40.5t40 16.5q26 0 44 -21h396q16 21 43 21t43 -21h398q18 21 44 21q23 0 40 -16.5t17 -40.5
+q0 -6 -4 -18l207 -358q23 -1 39 -17.5t16 -38.5q0 -13 -7 -27l187 -324q19 -4 31.5 -19.5t12.5 -35.5zM1063 -158h389l-342 354h-143l-342 -354h360q18 16 39 16t39 -16zM112 654q1 -4 1 -13q0 -10 -2 -15l208 -360l15 -6l188 199v347l-187 194q-13 -8 -29 -10zM986 1438
+h-388l190 -200l554 200h-280q-16 -16 -38 -16t-38 16zM1689 226q1 6 5 11l-64 68l-17 -79h76zM1583 226l22 105l-252 266l-296 -307l63 -64h463zM1495 -142l16 28l65 310h-427l333 -343q8 4 13 5zM578 -158h5l342 354h-373v-335l4 -6q14 -5 22 -13zM552 226h402l64 66
+l-309 321l-157 -166v-221zM359 226h163v189l-168 -177q4 -8 5 -12zM358 1051q0 -1 0.5 -2t0.5 -2q0 -16 -8 -29l171 -177v269zM552 1121v-311l153 -157l297 314l-223 236zM556 1425l-4 -8v-264l205 74l-191 201q-6 -2 -10 -3zM1447 1438h-16l-621 -224l213 -225zM1023 946
+l-297 -315l311 -319l296 307zM688 634l-136 141v-284zM1038 270l-42 -44h85zM1374 618l238 -251l132 624l-3 5l-1 1zM1718 1018q-8 13 -8 29v2l-216 376q-5 1 -13 5l-437 -463l310 -327zM522 1142v223l-163 -282zM522 196h-163l163 -283v283zM1607 196l-48 -227l130 227h-82
+zM1729 266l207 361q-2 10 -2 14q0 1 3 16l-171 296l-129 -612l77 -82q5 3 15 7z" />
+    <glyph glyph-name="f210" unicode="&#xf210;" 
+d="M0 856q0 131 91.5 226.5t222.5 95.5h742l352 358v-1470q0 -132 -91.5 -227t-222.5 -95h-780q-131 0 -222.5 95t-91.5 227v790zM1232 102l-176 180v425q0 46 -32 79t-78 33h-484q-46 0 -78 -33t-32 -79v-492q0 -46 32.5 -79.5t77.5 -33.5h770z" />
+    <glyph glyph-name="_496" unicode="&#xf211;" 
+d="M934 1386q-317 -121 -556 -362.5t-358 -560.5q-20 89 -20 176q0 208 102.5 384.5t278.5 279t384 102.5q82 0 169 -19zM1203 1267q93 -65 164 -155q-389 -113 -674.5 -400.5t-396.5 -676.5q-93 72 -155 162q112 386 395 671t667 399zM470 -67q115 356 379.5 622t619.5 384
+q40 -92 54 -195q-292 -120 -516 -345t-343 -518q-103 14 -194 52zM1536 -125q-193 50 -367 115q-135 -84 -290 -107q109 205 274 370.5t369 275.5q-21 -152 -101 -284q65 -175 115 -370z" />
+    <glyph glyph-name="f212" unicode="&#xf212;" horiz-adv-x="2048" 
+d="M1893 1144l155 -1272q-131 0 -257 57q-200 91 -393 91q-226 0 -374 -148q-148 148 -374 148q-193 0 -393 -91q-128 -57 -252 -57h-5l155 1272q224 127 482 127q233 0 387 -106q154 106 387 106q258 0 482 -127zM1398 157q129 0 232 -28.5t260 -93.5l-124 1021
+q-171 78 -368 78q-224 0 -374 -141q-150 141 -374 141q-197 0 -368 -78l-124 -1021q105 43 165.5 65t148.5 39.5t178 17.5q202 0 374 -108q172 108 374 108zM1438 191l-55 907q-211 -4 -359 -155q-152 155 -374 155q-176 0 -336 -66l-114 -941q124 51 228.5 76t221.5 25
+q209 0 374 -102q172 107 374 102z" />
+    <glyph glyph-name="_498" unicode="&#xf213;" horiz-adv-x="2048" 
+d="M1500 165v733q0 21 -15 36t-35 15h-93q-20 0 -35 -15t-15 -36v-733q0 -20 15 -35t35 -15h93q20 0 35 15t15 35zM1216 165v531q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-531q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM924 165v429q0 20 -15 35t-35 15h-101
+q-20 0 -35 -15t-15 -35v-429q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM632 165v362q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-362q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM2048 311q0 -166 -118 -284t-284 -118h-1244q-166 0 -284 118t-118 284
+q0 116 63 214.5t168 148.5q-10 34 -10 73q0 113 80.5 193.5t193.5 80.5q102 0 180 -67q45 183 194 300t338 117q149 0 275 -73.5t199.5 -199.5t73.5 -275q0 -66 -14 -122q135 -33 221 -142.5t86 -247.5z" />
+    <glyph glyph-name="_499" unicode="&#xf214;" 
+d="M0 1536h1536v-1392l-776 -338l-760 338v1392zM1436 209v926h-1336v-926l661 -294zM1436 1235v201h-1336v-201h1336zM181 937v-115h-37v115h37zM181 789v-115h-37v115h37zM181 641v-115h-37v115h37zM181 493v-115h-37v115h37zM181 345v-115h-37v115h37zM207 202l15 34
+l105 -47l-15 -33zM343 142l15 34l105 -46l-15 -34zM478 82l15 34l105 -46l-15 -34zM614 23l15 33l104 -46l-15 -34zM797 10l105 46l15 -33l-105 -47zM932 70l105 46l15 -34l-105 -46zM1068 130l105 46l15 -34l-105 -46zM1203 189l105 47l15 -34l-105 -46zM259 1389v-36h-114
+v36h114zM421 1389v-36h-115v36h115zM583 1389v-36h-115v36h115zM744 1389v-36h-114v36h114zM906 1389v-36h-114v36h114zM1068 1389v-36h-115v36h115zM1230 1389v-36h-115v36h115zM1391 1389v-36h-114v36h114zM181 1049v-79h-37v115h115v-36h-78zM421 1085v-36h-115v36h115z
+M583 1085v-36h-115v36h115zM744 1085v-36h-114v36h114zM906 1085v-36h-114v36h114zM1068 1085v-36h-115v36h115zM1230 1085v-36h-115v36h115zM1355 970v79h-78v36h115v-115h-37zM1355 822v115h37v-115h-37zM1355 674v115h37v-115h-37zM1355 526v115h37v-115h-37zM1355 378
+v115h37v-115h-37zM1355 230v115h37v-115h-37zM760 265q-129 0 -221 91.5t-92 221.5q0 129 92 221t221 92q130 0 221.5 -92t91.5 -221q0 -130 -91.5 -221.5t-221.5 -91.5zM595 646q0 -36 19.5 -56.5t49.5 -25t64 -7t64 -2t49.5 -9t19.5 -30.5q0 -49 -112 -49q-97 0 -123 51
+h-3l-31 -63q67 -42 162 -42q29 0 56.5 5t55.5 16t45.5 33t17.5 53q0 46 -27.5 69.5t-67.5 27t-79.5 3t-67 5t-27.5 25.5q0 21 20.5 33t40.5 15t41 3q34 0 70.5 -11t51.5 -34h3l30 58q-3 1 -21 8.5t-22.5 9t-19.5 7t-22 7t-20 4.5t-24 4t-23 1q-29 0 -56.5 -5t-54 -16.5
+t-43 -34t-16.5 -53.5z" />
+    <glyph glyph-name="_500" unicode="&#xf215;" horiz-adv-x="2048" 
+d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832
+q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" />
+    <glyph glyph-name="_501" unicode="&#xf216;" horiz-adv-x="2048" 
+d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126t-103.5 132.5t-108.5 126.5t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5
+t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 -113t151.5 -153t139 -167.5t133.5 -153.5t149.5 -113
+t172.5 -43.5q102 0 168.5 61.5t66.5 162.5q0 95 -64.5 159t-159.5 64q-30 0 -81.5 -18.5t-68.5 -18.5q-20 0 -35.5 15t-15.5 35q0 18 8.5 57t8.5 59q0 159 -107.5 263t-266.5 104q-58 0 -111.5 -18.5t-84 -40.5t-55.5 -40.5t-33 -18.5q-15 0 -25.5 10.5t-10.5 25.5
+q0 19 25 46q59 67 147 103.5t182 36.5q191 0 318 -125.5t127 -315.5q0 -37 -4 -66q57 15 115 15z" />
+    <glyph glyph-name="_502" unicode="&#xf217;" horiz-adv-x="1664" 
+d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5
+t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920
+q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="_503" unicode="&#xf218;" horiz-adv-x="1664" 
+d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5
+t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920
+q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="_504" unicode="&#xf219;" horiz-adv-x="2048" 
+d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20
+l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" />
+    <glyph glyph-name="_505" unicode="&#xf21a;" horiz-adv-x="2048" 
+d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83
+q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83
+q19 19 45 19t45 -19l83 -83zM237 19q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -82l83 82q19 19 45 19t45 -19l83 -82l64 64v293l-210 314q-17 26 -7 56.5t40 40.5l177 58v299h128v128h256v128h256v-128h256v-128h128v-299l177 -58q30 -10 40 -40.5t-7 -56.5l-210 -314
+v-293l19 18q19 19 45 19t45 -19l83 -82l83 82q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83
+q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83zM640 1152v-128l384 128l384 -128v128h-128v128h-512v-128h-128z" />
+    <glyph glyph-name="_506" unicode="&#xf21b;" 
+d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14
+t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 20.5t7.5 20.5q2 7 7.5 10.5t7.5 6.5
+q2 9 4 27zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 61 4.5 118t19 125.5t37.5 123.5t63.5 103.5t93.5 74.5l-90 220h214q-22 64 -22 128q0 12 2 32q-194 40 -194 96q0 57 210 99q17 62 51.5 134t70.5 114q32 37 76 37q30 0 84 -31t84 -31t84 31
+t84 31q44 0 76 -37q36 -42 70.5 -114t51.5 -134q210 -42 210 -99q0 -56 -194 -96q7 -81 -20 -160h214l-82 -225q63 -33 107.5 -96.5t65.5 -143.5t29 -151.5t8 -148.5z" />
+    <glyph glyph-name="_507" unicode="&#xf21c;" horiz-adv-x="2304" 
+d="M2301 500q12 -103 -22 -198.5t-99 -163.5t-158.5 -106t-196.5 -31q-161 11 -279.5 125t-134.5 274q-12 111 27.5 210.5t118.5 170.5l-71 107q-96 -80 -151 -194t-55 -244q0 -27 -18.5 -46.5t-45.5 -19.5h-256h-69q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5
+t-131.5 316.5t131.5 316.5t316.5 131.5q76 0 152 -27l24 45q-123 110 -304 110h-64q-26 0 -45 19t-19 45t19 45t45 19h128q78 0 145 -13.5t116.5 -38.5t71.5 -39.5t51 -36.5h512h115l-85 128h-222q-30 0 -49 22.5t-14 52.5q4 23 23 38t43 15h253q33 0 53 -28l70 -105
+l114 114q19 19 46 19h101q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-179l115 -172q131 63 275 36q143 -26 244 -134.5t118 -253.5zM448 128q115 0 203 72.5t111 183.5h-314q-35 0 -55 31q-18 32 -1 63l147 277q-47 13 -91 13q-132 0 -226 -94t-94 -226t94 -226
+t226 -94zM1856 128q132 0 226 94t94 226t-94 226t-226 94q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94z" />
+    <glyph glyph-name="_508" unicode="&#xf21d;" 
+d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12
+q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 -44.5t91 -66.5t33 -88.5zM1024 896v-384
+q0 -26 -19 -45t-45 -19h-64v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384h-64q-26 0 -45 19t-19 45v384q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM928 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5
+t158.5 -65.5t65.5 -158.5z" />
+    <glyph glyph-name="_509" unicode="&#xf21e;" horiz-adv-x="1792" 
+d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221
+q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124
+t127 -344z" />
+    <glyph glyph-name="venus" unicode="&#xf221;" horiz-adv-x="1280" 
+d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292
+q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" />
+    <glyph glyph-name="_511" unicode="&#xf222;" 
+d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-382 -383q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5
+q203 0 359 -126l382 382h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_512" unicode="&#xf223;" horiz-adv-x="1280" 
+d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5
+t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -273zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5
+t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_513" unicode="&#xf224;" 
+d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64
+q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5
+t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_514" unicode="&#xf225;" horiz-adv-x="1792" 
+d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64
+q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l-111 112v-134q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9
+t-9 23v288q0 26 19 45t45 19h288q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-133l106 -107l86 94q9 10 22 10.5t23 -7.5l48 -44q10 -8 10.5 -21.5t-8.5 -23.5l-90 -99l57 -56q158 126 359 126t359 -126l255 254h-134q-14 0 -23 9t-9 23v64zM832 256q185 0 316.5 131.5
+t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_515" unicode="&#xf226;" horiz-adv-x="1792" 
+d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23
+t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM576 512q115 0 218 57q-154 165 -154 391
+q0 224 154 391q-103 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1152 128v260q-137 15 -256 94q-119 -79 -256 -94v-260h512zM1216 512q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5q-115 0 -218 -57q154 -167 154 -391
+q0 -226 -154 -391q103 -57 218 -57z" />
+    <glyph glyph-name="_516" unicode="&#xf227;" horiz-adv-x="1920" 
+d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230
+q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -74 93 -169q182 -9 328 -124l255 254h-134q-14 0 -23 9
+t-9 23v64zM1024 704q0 20 -4 58q-162 -25 -271 -150t-109 -292q0 -20 4 -58q162 25 271 150t109 292zM128 704q0 -168 111 -294t276 -149q-3 29 -3 59q0 210 135 369.5t338 196.5q-53 120 -163.5 193t-245.5 73q-185 0 -316.5 -131.5t-131.5 -316.5zM1088 -128
+q185 0 316.5 131.5t131.5 316.5q0 168 -111 294t-276 149q3 -28 3 -59q0 -210 -135 -369.5t-338 -196.5q53 -120 163.5 -193t245.5 -73z" />
+    <glyph glyph-name="_517" unicode="&#xf228;" horiz-adv-x="2048" 
+d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23
+t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q146 97 320 97q201 0 359 -126l255 254h-134q-14 0 -23 9
+t-9 23v64zM896 391q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM128 704q0 -185 131.5 -316.5t316.5 -131.5q117 0 218 57q-154 167 -154 391t154 391q-101 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5zM1216 256q185 0 316.5 131.5t131.5 316.5
+t-131.5 316.5t-316.5 131.5q-117 0 -218 -57q154 -167 154 -391t-154 -391q101 -57 218 -57z" />
+    <glyph glyph-name="_518" unicode="&#xf229;" 
+d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-213 -214l140 -140q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-140 141l-78 -79q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5
+t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5q203 0 359 -126l78 78l-172 172q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l172 -172l213 213h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5
+t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_519" unicode="&#xf22a;" horiz-adv-x="1280" 
+d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22
+t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5
+t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_520" unicode="&#xf22b;" horiz-adv-x="2048" 
+d="M1901 621q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-132q-24 -217 -187.5 -364.5t-384.5 -147.5q-167 0 -306 87t-212 236t-54 319q15 133 88 245.5
+t188 182t249 80.5q155 12 292 -52.5t224 -186t103 -271.5h132v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM576 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5
+t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_521" unicode="&#xf22c;" horiz-adv-x="1280" 
+d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5
+t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" />
+    <glyph glyph-name="_522" unicode="&#xf22d;" horiz-adv-x="1280" 
+d="M1024 576q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1152 576q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123
+t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5z" />
+    <glyph glyph-name="_523" unicode="&#xf22e;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="_524" unicode="&#xf22f;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="_525" unicode="&#xf230;" 
+d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" />
+    <glyph glyph-name="_526" unicode="&#xf231;" horiz-adv-x="1280" 
+d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5
+l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 95t38 110.5t20 111t6.5 99.5q0 173 -109.5 269.5t-285.5 96.5
+q-200 0 -334 -129.5t-134 -328.5q0 -44 12.5 -85t27 -65t27 -45.5t12.5 -30.5q0 -28 -15 -73t-37 -45q-2 0 -17 3q-51 15 -90.5 56t-61 94.5t-32.5 108t-11 106.5z" />
+    <glyph glyph-name="_527" unicode="&#xf232;" 
+d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5
+t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 -200.5t-50 -243.5q0 -203 120 -368l-79 -233
+l242 77q158 -104 345 -104zM782 1414q153 0 292.5 -60t240.5 -161t161 -240.5t60 -292.5t-60 -292.5t-161 -240.5t-240.5 -161t-292.5 -60q-195 0 -365 94l-417 -134l136 405q-108 178 -108 389q0 153 60 292.5t161 240.5t240.5 161t292.5 60z" />
+    <glyph glyph-name="_528" unicode="&#xf233;" horiz-adv-x="1792" 
+d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216
+q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" />
+    <glyph glyph-name="_529" unicode="&#xf234;" horiz-adv-x="2048" 
+d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5
+t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h-874q-121 0 -194 69t-73 190q0 53 3.5 103.5t14 109t26.5 108.5
+t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q79 -61 154.5 -91.5t164.5 -30.5t164.5 30.5t154.5 91.5q20 17 39 17q132 0 217 -96h-223q-52 0 -90 -38t-38 -90v-192z" />
+    <glyph glyph-name="_530" unicode="&#xf235;" horiz-adv-x="2048" 
+d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136
+q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91q0 -53 37 -90l83 -83q-21 -3 -44 -3h-874q-121 0 -194 69
+t-73 190q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q154 -122 319 -122t319 122q20 17 39 17q28 0 57 -6q-28 -27 -41 -50t-13 -56q0 -54 37 -91z" />
+    <glyph glyph-name="_531" unicode="&#xf236;" horiz-adv-x="2048" 
+d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704
+q-26 0 -45 -19t-19 -45v-384h1152z" />
+    <glyph glyph-name="_532" unicode="&#xf237;" 
+d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" />
+    <glyph glyph-name="_533" unicode="&#xf238;" 
+d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56
+t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" />
+    <glyph glyph-name="_534" unicode="&#xf239;" 
+d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47
+t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" />
+    <glyph glyph-name="_535" unicode="&#xf23a;" horiz-adv-x="1792" 
+d="M597 1115v-1173q0 -25 -12.5 -42.5t-36.5 -17.5q-17 0 -33 8l-465 233q-21 10 -35.5 33.5t-14.5 46.5v1140q0 20 10 34t29 14q14 0 44 -15l511 -256q3 -3 3 -5zM661 1014l534 -866l-534 266v600zM1792 996v-1054q0 -25 -14 -40.5t-38 -15.5t-47 13l-441 220zM1789 1116
+q0 -3 -256.5 -419.5t-300.5 -487.5l-390 634l324 527q17 28 52 28q14 0 26 -6l541 -270q4 -2 4 -6z" />
+    <glyph glyph-name="_536" unicode="&#xf23b;" 
+d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" />
+    <glyph glyph-name="_537" unicode="&#xf23c;" horiz-adv-x="2296" 
+d="M478 -139q-8 -16 -27 -34.5t-37 -25.5q-25 -9 -51.5 3.5t-28.5 31.5q-1 22 40 55t68 38q23 4 34 -21.5t2 -46.5zM1819 -139q7 -16 26 -34.5t38 -25.5q25 -9 51.5 3.5t27.5 31.5q2 22 -39.5 55t-68.5 38q-22 4 -33 -21.5t-2 -46.5zM1867 -30q13 -27 56.5 -59.5t77.5 -41.5
+q45 -13 82 4.5t37 50.5q0 46 -67.5 100.5t-115.5 59.5q-40 5 -63.5 -37.5t-6.5 -76.5zM428 -30q-13 -27 -56 -59.5t-77 -41.5q-45 -13 -82 4.5t-37 50.5q0 46 67.5 100.5t115.5 59.5q40 5 63 -37.5t6 -76.5zM1158 1094h1q-41 0 -76 -15q27 -8 44 -30.5t17 -49.5
+q0 -35 -27 -60t-65 -25q-52 0 -80 43q-5 -23 -5 -42q0 -74 56 -126.5t135 -52.5q80 0 136 52.5t56 126.5t-56 126.5t-136 52.5zM1462 1312q-99 109 -220.5 131.5t-245.5 -44.5q27 60 82.5 96.5t118 39.5t121.5 -17t99.5 -74.5t44.5 -131.5zM2212 73q8 -11 -11 -42
+q7 -23 7 -40q1 -56 -44.5 -112.5t-109.5 -91.5t-118 -37q-48 -2 -92 21.5t-66 65.5q-687 -25 -1259 0q-23 -41 -66.5 -65t-92.5 -22q-86 3 -179.5 80.5t-92.5 160.5q2 22 7 40q-19 31 -11 42q6 10 31 1q14 22 41 51q-7 29 2 38q11 10 39 -4q29 20 59 34q0 29 13 37
+q23 12 51 -16q35 5 61 -2q18 -4 38 -19v73q-11 0 -18 2q-53 10 -97 44.5t-55 87.5q-9 38 0 81q15 62 93 95q2 17 19 35.5t36 23.5t33 -7.5t19 -30.5h13q46 -5 60 -23q3 -3 5 -7q10 1 30.5 3.5t30.5 3.5q-15 11 -30 17q-23 40 -91 43q0 6 1 10q-62 2 -118.5 18.5t-84.5 47.5
+q-32 36 -42.5 92t-2.5 112q16 126 90 179q23 16 52 4.5t32 -40.5q0 -1 1.5 -14t2.5 -21t3 -20t5.5 -19t8.5 -10q27 -14 76 -12q48 46 98 74q-40 4 -162 -14l47 46q61 58 163 111q145 73 282 86q-20 8 -41 15.5t-47 14t-42.5 10.5t-47.5 11t-43 10q595 126 904 -139
+q98 -84 158 -222q85 -10 121 9h1q5 3 8.5 10t5.5 19t3 19.5t3 21.5l1 14q3 28 32 40t52 -5q73 -52 91 -178q7 -57 -3.5 -113t-42.5 -91q-28 -32 -83.5 -48.5t-115.5 -18.5v-10q-71 -2 -95 -43q-14 -5 -31 -17q11 -1 32 -3.5t30 -3.5q1 5 5 8q16 18 60 23h13q5 18 19 30t33 8
+t36 -23t19 -36q79 -32 93 -95q9 -40 1 -81q-12 -53 -56 -88t-97 -44q-10 -2 -17 -2q0 -49 -1 -73q20 15 38 19q26 7 61 2q28 28 51 16q14 -9 14 -37q33 -16 59 -34q27 13 38 4q10 -10 2 -38q28 -30 41 -51q23 8 31 -1zM1937 1025q0 -29 -9 -54q82 -32 112 -132
+q4 37 -9.5 98.5t-41.5 90.5q-20 19 -36 17t-16 -20zM1859 925q35 -42 47.5 -108.5t-0.5 -124.5q67 13 97 45q13 14 18 28q-3 64 -31 114.5t-79 66.5q-15 -15 -52 -21zM1822 921q-30 0 -44 1q42 -115 53 -239q21 0 43 3q16 68 1 135t-53 100zM258 839q30 100 112 132
+q-9 25 -9 54q0 18 -16.5 20t-35.5 -17q-28 -29 -41.5 -90.5t-9.5 -98.5zM294 737q29 -31 97 -45q-13 58 -0.5 124.5t47.5 108.5v0q-37 6 -52 21q-51 -16 -78.5 -66t-31.5 -115q9 -17 18 -28zM471 683q14 124 73 235q-19 -4 -55 -18l-45 -19v1q-46 -89 -20 -196q25 -3 47 -3z
+M1434 644q8 -38 16.5 -108.5t11.5 -89.5q3 -18 9.5 -21.5t23.5 4.5q40 20 62 85.5t23 125.5q-24 2 -146 4zM1152 1285q-116 0 -199 -82.5t-83 -198.5q0 -117 83 -199.5t199 -82.5t199 82.5t83 199.5q0 116 -83 198.5t-199 82.5zM1380 646q-105 2 -211 0v1q-1 -27 2.5 -86
+t13.5 -66q29 -14 93.5 -14.5t95.5 10.5q9 3 11 39t-0.5 69.5t-4.5 46.5zM1112 447q8 4 9.5 48t-0.5 88t-4 63v1q-212 -3 -214 -3q-4 -20 -7 -62t0 -83t14 -46q34 -15 101 -16t101 10zM718 636q-16 -59 4.5 -118.5t77.5 -84.5q15 -8 24 -5t12 21q3 16 8 90t10 103
+q-69 -2 -136 -6zM591 510q3 -23 -34 -36q132 -141 271.5 -240t305.5 -154q172 49 310.5 146t293.5 250q-33 13 -30 34q0 2 0.5 3.5t1.5 3t1 2.5v1v-1q-17 2 -50 5.5t-48 4.5q-26 -90 -82 -132q-51 -38 -82 1q-5 6 -9 14q-7 13 -17 62q-2 -5 -5 -9t-7.5 -7t-8 -5.5t-9.5 -4
+l-10 -2.5t-12 -2l-12 -1.5t-13.5 -1t-13.5 -0.5q-106 -9 -163 11q-4 -17 -10 -26.5t-21 -15t-23 -7t-36 -3.5q-6 -1 -9 -1q-179 -17 -203 40q-2 -63 -56 -54q-47 8 -91 54q-12 13 -20 26q-17 29 -26 65q-58 -6 -87 -10q1 -2 4 -10zM507 -118q3 14 3 30q-17 71 -51 130
+t-73 70q-41 12 -101.5 -14.5t-104.5 -80t-39 -107.5q35 -53 100 -93t119 -42q51 -2 94 28t53 79zM510 53q23 -63 27 -119q195 113 392 174q-98 52 -180.5 120t-179.5 165q-6 -4 -29 -13q0 -1 -1 -4t-1 -5q31 -18 22 -37q-12 -23 -56 -34q-10 -13 -29 -24h-1q-2 -83 1 -150
+q19 -34 35 -73zM579 -113q532 -21 1145 0q-254 147 -428 196q-76 -35 -156 -57q-8 -3 -16 0q-65 21 -129 49q-208 -60 -416 -188h-1v-1q1 0 1 1zM1763 -67q4 54 28 120q14 38 33 71l-1 -1q3 77 3 153q-15 8 -30 25q-42 9 -56 33q-9 20 22 38q-2 4 -2 9q-16 4 -28 12
+q-204 -190 -383 -284q198 -59 414 -176zM2155 -90q5 54 -39 107.5t-104 80t-102 14.5q-38 -11 -72.5 -70.5t-51.5 -129.5q0 -16 3 -30q10 -49 53 -79t94 -28q54 2 119 42t100 93z" />
+    <glyph glyph-name="_538" unicode="&#xf23d;" horiz-adv-x="2304" 
+d="M1524 -25q0 -68 -48 -116t-116 -48t-116.5 48t-48.5 116t48.5 116.5t116.5 48.5t116 -48.5t48 -116.5zM775 -25q0 -68 -48.5 -116t-116.5 -48t-116 48t-48 116t48 116.5t116 48.5t116.5 -48.5t48.5 -116.5zM0 1469q57 -60 110.5 -104.5t121 -82t136 -63t166 -45.5
+t200 -31.5t250 -18.5t304 -9.5t372.5 -2.5q139 0 244.5 -5t181 -16.5t124 -27.5t71 -39.5t24 -51.5t-19.5 -64t-56.5 -76.5t-89.5 -91t-116 -104.5t-139 -119q-185 -157 -286 -247q29 51 76.5 109t94 105.5t94.5 98.5t83 91.5t54 80.5t13 70t-45.5 55.5t-116.5 41t-204 23.5
+t-304 5q-168 -2 -314 6t-256 23t-204.5 41t-159.5 51.5t-122.5 62.5t-91.5 66.5t-68 71.5t-50.5 69.5t-40 68t-36.5 59.5z" />
+    <glyph glyph-name="_539" unicode="&#xf23e;" horiz-adv-x="1792" 
+d="M896 1472q-169 0 -323 -66t-265.5 -177.5t-177.5 -265.5t-66 -323t66 -323t177.5 -265.5t265.5 -177.5t323 -66t323 66t265.5 177.5t177.5 265.5t66 323t-66 323t-177.5 265.5t-265.5 177.5t-323 66zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348
+t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM496 704q16 0 16 -16v-480q0 -16 -16 -16h-32q-16 0 -16 16v480q0 16 16 16h32zM896 640q53 0 90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-114q0 -14 -9 -23
+t-23 -9h-64q-14 0 -23 9t-9 23v114q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5zM896 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM544 928v-96
+q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5v-96q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 146 -103 249t-249 103t-249 -103t-103 -249zM1408 192v512q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-512
+q0 -26 19 -45t45 -19h896q26 0 45 19t19 45z" />
+    <glyph glyph-name="_540" unicode="&#xf240;" horiz-adv-x="2304" 
+d="M1920 1024v-768h-1664v768h1664zM2048 448h128v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288zM2304 832v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113
+v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160q53 0 90.5 -37.5t37.5 -90.5z" />
+    <glyph glyph-name="_541" unicode="&#xf241;" horiz-adv-x="2304" 
+d="M256 256v768h1280v-768h-1280zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9
+h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_542" unicode="&#xf242;" horiz-adv-x="2304" 
+d="M256 256v768h896v-768h-896zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9
+h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_543" unicode="&#xf243;" horiz-adv-x="2304" 
+d="M256 256v768h512v-768h-512zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9
+h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_544" unicode="&#xf244;" horiz-adv-x="2304" 
+d="M2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23
+v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" />
+    <glyph glyph-name="_545" unicode="&#xf245;" horiz-adv-x="1280" 
+d="M1133 493q31 -30 14 -69q-17 -40 -59 -40h-382l201 -476q10 -25 0 -49t-34 -35l-177 -75q-25 -10 -49 0t-35 34l-191 452l-312 -312q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v1504q0 42 40 59q12 5 24 5q27 0 45 -19z" />
+    <glyph glyph-name="_546" unicode="&#xf246;" horiz-adv-x="1024" 
+d="M832 1408q-320 0 -320 -224v-416h128v-128h-128v-544q0 -224 320 -224h64v-128h-64q-272 0 -384 146q-112 -146 -384 -146h-64v128h64q320 0 320 224v544h-128v128h128v416q0 224 -320 224h-64v128h64q272 0 384 -146q112 146 384 146h64v-128h-64z" />
+    <glyph glyph-name="_547" unicode="&#xf247;" horiz-adv-x="2048" 
+d="M2048 1152h-128v-1024h128v-384h-384v128h-1280v-128h-384v384h128v1024h-128v384h384v-128h1280v128h384v-384zM1792 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 -128v128h-128v-128h128zM1664 0v128h128v1024h-128v128h-1280v-128h-128v-1024h128v-128
+h1280zM1920 -128v128h-128v-128h128zM1280 896h384v-768h-896v256h-384v768h896v-256zM512 512h640v512h-640v-512zM1536 256v512h-256v-384h-384v-128h640z" />
+    <glyph glyph-name="_548" unicode="&#xf248;" horiz-adv-x="2304" 
+d="M2304 768h-128v-640h128v-384h-384v128h-896v-128h-384v384h128v128h-384v-128h-384v384h128v640h-128v384h384v-128h896v128h384v-384h-128v-128h384v128h384v-384zM2048 1024v-128h128v128h-128zM1408 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 256
+v128h-128v-128h128zM1536 384h-128v-128h128v128zM384 384h896v128h128v640h-128v128h-896v-128h-128v-640h128v-128zM896 -128v128h-128v-128h128zM2176 -128v128h-128v-128h128zM2048 128v640h-128v128h-384v-384h128v-384h-384v128h-384v-128h128v-128h896v128h128z" />
+    <glyph glyph-name="_549" unicode="&#xf249;" 
+d="M1024 288v-416h-928q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68v-928h-416q-40 0 -68 -28t-28 -68zM1152 256h381q-15 -82 -65 -132l-184 -184q-50 -50 -132 -65v381z" />
+    <glyph glyph-name="_550" unicode="&#xf24a;" 
+d="M1400 256h-248v-248q29 10 41 22l185 185q12 12 22 41zM1120 384h288v896h-1280v-1280h896v288q0 40 28 68t68 28zM1536 1312v-1024q0 -40 -20 -88t-48 -76l-184 -184q-28 -28 -76 -48t-88 -20h-1024q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68
+z" />
+    <glyph glyph-name="_551" unicode="&#xf24b;" horiz-adv-x="2304" 
+d="M1951 538q0 -26 -15.5 -44.5t-38.5 -23.5q-8 -2 -18 -2h-153v140h153q10 0 18 -2q23 -5 38.5 -23.5t15.5 -44.5zM1933 751q0 -25 -15 -42t-38 -21q-3 -1 -15 -1h-139v129h139q3 0 8.5 -0.5t6.5 -0.5q23 -4 38 -21.5t15 -42.5zM728 587v308h-228v-308q0 -58 -38 -94.5
+t-105 -36.5q-108 0 -229 59v-112q53 -15 121 -23t109 -9l42 -1q328 0 328 217zM1442 403v113q-99 -52 -200 -59q-108 -8 -169 41t-61 142t61 142t169 41q101 -7 200 -58v112q-48 12 -100 19.5t-80 9.5l-28 2q-127 6 -218.5 -14t-140.5 -60t-71 -88t-22 -106t22 -106t71 -88
+t140.5 -60t218.5 -14q101 4 208 31zM2176 518q0 54 -43 88.5t-109 39.5v3q57 8 89 41.5t32 79.5q0 55 -41 88t-107 36q-3 0 -12 0.5t-14 0.5h-455v-510h491q74 0 121.5 36.5t47.5 96.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90
+t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_552" unicode="&#xf24c;" horiz-adv-x="2304" 
+d="M858 295v693q-106 -41 -172 -135.5t-66 -211.5t66 -211.5t172 -134.5zM1362 641q0 117 -66 211.5t-172 135.5v-694q106 41 172 135.5t66 211.5zM1577 641q0 -159 -78.5 -294t-213.5 -213.5t-294 -78.5q-119 0 -227.5 46.5t-187 125t-125 187t-46.5 227.5q0 159 78.5 294
+t213.5 213.5t294 78.5t294 -78.5t213.5 -213.5t78.5 -294zM1960 634q0 139 -55.5 261.5t-147.5 205.5t-213.5 131t-252.5 48h-301q-176 0 -323.5 -81t-235 -230t-87.5 -335q0 -171 87 -317.5t236 -231.5t323 -85h301q129 0 251.5 50.5t214.5 135t147.5 202.5t55.5 246z
+M2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_553" unicode="&#xf24d;" horiz-adv-x="1792" 
+d="M1664 -96v1088q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5zM1792 992v-1088q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113
+zM1408 1376v-160h-128v160q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h160v-128h-160q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="_554" unicode="&#xf24e;" horiz-adv-x="2304" 
+d="M1728 1088l-384 -704h768zM448 1088l-384 -704h768zM1269 1280q-14 -40 -45.5 -71.5t-71.5 -45.5v-1291h608q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1344q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h608v1291q-40 14 -71.5 45.5t-45.5 71.5h-491q-14 0 -23 9t-9 23v64
+q0 14 9 23t23 9h491q21 57 70 92.5t111 35.5t111 -35.5t70 -92.5h491q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-491zM1088 1264q33 0 56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5zM2176 384q0 -73 -46.5 -131t-117.5 -91
+t-144.5 -49.5t-139.5 -16.5t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81zM896 384q0 -73 -46.5 -131t-117.5 -91t-144.5 -49.5t-139.5 -16.5
+t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81z" />
+    <glyph glyph-name="_555" unicode="&#xf250;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-77 -29 -149 -92.5
+t-129.5 -152.5t-92.5 -210t-35 -253h1024q0 132 -35 253t-92.5 210t-129.5 152.5t-149 92.5q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" />
+    <glyph glyph-name="_556" unicode="&#xf251;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -66 9 -128h1006q9 61 9 128zM1280 -128q0 130 -34 249.5t-90.5 208t-126.5 152t-146 94.5h-230q-76 -31 -146 -94.5t-126.5 -152t-90.5 -208t-34 -249.5h1024z" />
+    <glyph glyph-name="_557" unicode="&#xf252;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -206 85 -384h854q85 178 85 384zM1223 192q-54 141 -145.5 241.5t-194.5 142.5h-230q-103 -42 -194.5 -142.5t-145.5 -241.5h910z" />
+    <glyph glyph-name="_558" unicode="&#xf253;" 
+d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9
+t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-137 -51 -244 -196
+h700q-107 145 -244 196q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" />
+    <glyph glyph-name="_559" unicode="&#xf254;" 
+d="M1504 -64q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472zM130 0q3 55 16 107t30 95t46 87t53.5 76t64.5 69.5t66 60t70.5 55t66.5 47.5t65 43q-43 28 -65 43t-66.5 47.5t-70.5 55t-66 60t-64.5 69.5t-53.5 76t-46 87
+t-30 95t-16 107h1276q-3 -55 -16 -107t-30 -95t-46 -87t-53.5 -76t-64.5 -69.5t-66 -60t-70.5 -55t-66.5 -47.5t-65 -43q43 -28 65 -43t66.5 -47.5t70.5 -55t66 -60t64.5 -69.5t53.5 -76t46 -87t30 -95t16 -107h-1276zM1504 1536q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9
+h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472z" />
+    <glyph glyph-name="_560" unicode="&#xf255;" 
+d="M768 1152q-53 0 -90.5 -37.5t-37.5 -90.5v-128h-32v93q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-429l-32 30v172q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-224q0 -47 35 -82l310 -296q39 -39 39 -102q0 -26 19 -45t45 -19h640q26 0 45 19t19 45v25
+q0 41 10 77l108 436q10 36 10 77v246q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-32h-32v125q0 40 -25 72.5t-64 40.5q-14 2 -23 2q-46 0 -79 -33t-33 -79v-128h-32v122q0 51 -32.5 89.5t-82.5 43.5q-5 1 -13 1zM768 1280q84 0 149 -50q57 34 123 34q59 0 111 -27
+t86 -76q27 7 59 7q100 0 170 -71.5t70 -171.5v-246q0 -51 -13 -108l-109 -436q-6 -24 -6 -71q0 -80 -56 -136t-136 -56h-640q-84 0 -138 58.5t-54 142.5l-308 296q-76 73 -76 175v224q0 99 70.5 169.5t169.5 70.5q11 0 16 -1q6 95 75.5 160t164.5 65q52 0 98 -21
+q72 69 174 69z" />
+    <glyph glyph-name="_561" unicode="&#xf256;" horiz-adv-x="1792" 
+d="M880 1408q-46 0 -79 -33t-33 -79v-656h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528v-256l-154 205q-38 51 -102 51q-53 0 -90.5 -37.5t-37.5 -90.5q0 -43 26 -77l384 -512q38 -51 102 -51h688q34 0 61 22t34 56l76 405q5 32 5 59v498q0 46 -33 79t-79 33t-79 -33
+t-33 -79v-272h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528h-32v656q0 46 -33 79t-79 33zM880 1536q68 0 125.5 -35.5t88.5 -96.5q19 4 42 4q99 0 169.5 -70.5t70.5 -169.5v-17q105 6 180.5 -64t75.5 -175v-498q0 -40 -8 -83l-76 -404q-14 -79 -76.5 -131t-143.5 -52
+h-688q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 106 75 181t181 75q78 0 128 -34v434q0 99 70.5 169.5t169.5 70.5q23 0 42 -4q31 61 88.5 96.5t125.5 35.5z" />
+    <glyph glyph-name="_562" unicode="&#xf257;" horiz-adv-x="1792" 
+d="M1073 -128h-177q-163 0 -226 141q-23 49 -23 102v5q-62 30 -98.5 88.5t-36.5 127.5q0 38 5 48h-261q-106 0 -181 75t-75 181t75 181t181 75h113l-44 17q-74 28 -119.5 93.5t-45.5 145.5q0 106 75 181t181 75q46 0 91 -17l628 -239h401q106 0 181 -75t75 -181v-668
+q0 -88 -54 -157.5t-140 -90.5l-339 -85q-92 -23 -186 -23zM1024 583l-155 -71l-163 -74q-30 -14 -48 -41.5t-18 -60.5q0 -46 33 -79t79 -33q26 0 46 10l338 154q-49 10 -80.5 50t-31.5 90v55zM1344 272q0 46 -33 79t-79 33q-26 0 -46 -10l-290 -132q-28 -13 -37 -17
+t-30.5 -17t-29.5 -23.5t-16 -29t-8 -40.5q0 -50 31.5 -82t81.5 -32q20 0 38 9l352 160q30 14 48 41.5t18 60.5zM1112 1024l-650 248q-24 8 -46 8q-53 0 -90.5 -37.5t-37.5 -90.5q0 -40 22.5 -73t59.5 -47l526 -200v-64h-640q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5
+t90.5 -37.5h535l233 106v198q0 63 46 106l111 102h-69zM1073 0q82 0 155 19l339 85q43 11 70 45.5t27 78.5v668q0 53 -37.5 90.5t-90.5 37.5h-308l-136 -126q-36 -33 -36 -82v-296q0 -46 33 -77t79 -31t79 35t33 81v208h32v-208q0 -70 -57 -114q52 -8 86.5 -48.5t34.5 -93.5
+q0 -42 -23 -78t-61 -53l-310 -141h91z" />
+    <glyph glyph-name="_563" unicode="&#xf258;" horiz-adv-x="2048" 
+d="M1151 1536q61 0 116 -28t91 -77l572 -781q118 -159 118 -359v-355q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v177l-286 143h-546q-80 0 -136 56t-56 136v32q0 119 84.5 203.5t203.5 84.5h420l42 128h-686q-100 0 -173.5 67.5t-81.5 166.5q-65 79 -65 182v32
+q0 80 56 136t136 56h959zM1920 -64v355q0 157 -93 284l-573 781q-39 52 -103 52h-959q-26 0 -45 -19t-19 -45q0 -32 1.5 -49.5t9.5 -40.5t25 -43q10 31 35.5 50t56.5 19h832v-32h-832q-26 0 -45 -19t-19 -45q0 -44 3 -58q8 -44 44 -73t81 -29h640h91q40 0 68 -28t28 -68
+q0 -15 -5 -30l-64 -192q-10 -29 -35 -47.5t-56 -18.5h-443q-66 0 -113 -47t-47 -113v-32q0 -26 19 -45t45 -19h561q16 0 29 -7l317 -158q24 -13 38.5 -36t14.5 -50v-197q0 -26 19 -45t45 -19h384q26 0 45 19t19 45z" />
+    <glyph glyph-name="_564" unicode="&#xf259;" horiz-adv-x="2048" 
+d="M459 -256q-77 0 -137.5 47.5t-79.5 122.5l-101 401q-13 57 -13 108q0 45 -5 67l-116 477q-7 27 -7 57q0 93 62 161t155 78q17 85 82.5 139t152.5 54q83 0 148 -51.5t85 -132.5l83 -348l103 428q20 81 85 132.5t148 51.5q89 0 155.5 -57.5t80.5 -144.5q92 -10 152 -79
+t60 -162q0 -24 -7 -59l-123 -512q10 7 37.5 28.5t38.5 29.5t35 23t41 20.5t41.5 11t49.5 5.5q105 0 180 -74t75 -179q0 -62 -28.5 -118t-78.5 -94l-507 -380q-68 -51 -153 -51h-694zM1104 1408q-38 0 -68.5 -24t-39.5 -62l-164 -682h-127l-145 602q-9 38 -39.5 62t-68.5 24
+q-48 0 -80 -33t-32 -80q0 -15 3 -28l132 -547h-26l-99 408q-9 37 -40 62.5t-69 25.5q-47 0 -80 -33t-33 -79q0 -14 3 -26l116 -478q7 -28 9 -86t10 -88l100 -401q8 -32 34 -52.5t59 -20.5h694q42 0 76 26l507 379q56 43 56 110q0 52 -37.5 88.5t-89.5 36.5q-43 0 -77 -26
+l-307 -230v227q0 4 32 138t68 282t39 161q4 18 4 29q0 47 -32 81t-79 34q-39 0 -69.5 -24t-39.5 -62l-116 -482h-26l150 624q3 14 3 28q0 48 -31.5 82t-79.5 34z" />
+    <glyph glyph-name="_565" unicode="&#xf25a;" horiz-adv-x="1792" 
+d="M640 1408q-53 0 -90.5 -37.5t-37.5 -90.5v-512v-384l-151 202q-41 54 -107 54q-52 0 -89 -38t-37 -90q0 -43 26 -77l384 -512q38 -51 102 -51h718q22 0 39.5 13.5t22.5 34.5l92 368q24 96 24 194v217q0 41 -28 71t-68 30t-68 -28t-28 -68h-32v61q0 48 -32 81.5t-80 33.5
+q-46 0 -79 -33t-33 -79v-64h-32v90q0 55 -37 94.5t-91 39.5q-53 0 -90.5 -37.5t-37.5 -90.5v-96h-32v570q0 55 -37 94.5t-91 39.5zM640 1536q107 0 181.5 -77.5t74.5 -184.5v-220q22 2 32 2q99 0 173 -69q47 21 99 21q113 0 184 -87q27 7 56 7q94 0 159 -67.5t65 -161.5
+v-217q0 -116 -28 -225l-92 -368q-16 -64 -68 -104.5t-118 -40.5h-718q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 105 74.5 180.5t179.5 75.5q71 0 130 -35v547q0 106 75 181t181 75zM768 128v384h-32v-384h32zM1024 128v384h-32v-384h32zM1280 128v384h-32
+v-384h32z" />
+    <glyph glyph-name="_566" unicode="&#xf25b;" 
+d="M1288 889q60 0 107 -23q141 -63 141 -226v-177q0 -94 -23 -186l-85 -339q-21 -86 -90.5 -140t-157.5 -54h-668q-106 0 -181 75t-75 181v401l-239 628q-17 45 -17 91q0 106 75 181t181 75q80 0 145.5 -45.5t93.5 -119.5l17 -44v113q0 106 75 181t181 75t181 -75t75 -181
+v-261q27 5 48 5q69 0 127.5 -36.5t88.5 -98.5zM1072 896q-33 0 -60.5 -18t-41.5 -48l-74 -163l-71 -155h55q50 0 90 -31.5t50 -80.5l154 338q10 20 10 46q0 46 -33 79t-79 33zM1293 761q-22 0 -40.5 -8t-29 -16t-23.5 -29.5t-17 -30.5t-17 -37l-132 -290q-10 -20 -10 -46
+q0 -46 33 -79t79 -33q33 0 60.5 18t41.5 48l160 352q9 18 9 38q0 50 -32 81.5t-82 31.5zM128 1120q0 -22 8 -46l248 -650v-69l102 111q43 46 106 46h198l106 233v535q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-640h-64l-200 526q-14 37 -47 59.5t-73 22.5
+q-53 0 -90.5 -37.5t-37.5 -90.5zM1180 -128q44 0 78.5 27t45.5 70l85 339q19 73 19 155v91l-141 -310q-17 -38 -53 -61t-78 -23q-53 0 -93.5 34.5t-48.5 86.5q-44 -57 -114 -57h-208v32h208q46 0 81 33t35 79t-31 79t-77 33h-296q-49 0 -82 -36l-126 -136v-308
+q0 -53 37.5 -90.5t90.5 -37.5h668z" />
+    <glyph glyph-name="_567" unicode="&#xf25c;" horiz-adv-x="1973" 
+d="M857 992v-117q0 -13 -9.5 -22t-22.5 -9h-298v-812q0 -13 -9 -22.5t-22 -9.5h-135q-13 0 -22.5 9t-9.5 23v812h-297q-13 0 -22.5 9t-9.5 22v117q0 14 9 23t23 9h793q13 0 22.5 -9.5t9.5 -22.5zM1895 995l77 -961q1 -13 -8 -24q-10 -10 -23 -10h-134q-12 0 -21 8.5
+t-10 20.5l-46 588l-189 -425q-8 -19 -29 -19h-120q-20 0 -29 19l-188 427l-45 -590q-1 -12 -10 -20.5t-21 -8.5h-135q-13 0 -23 10q-9 10 -9 24l78 961q1 12 10 20.5t21 8.5h142q20 0 29 -19l220 -520q10 -24 20 -51q3 7 9.5 24.5t10.5 26.5l221 520q9 19 29 19h141
+q13 0 22 -8.5t10 -20.5z" />
+    <glyph glyph-name="_568" unicode="&#xf25d;" horiz-adv-x="1792" 
+d="M1042 833q0 88 -60 121q-33 18 -117 18h-123v-281h162q66 0 102 37t36 105zM1094 548l205 -373q8 -17 -1 -31q-8 -16 -27 -16h-152q-20 0 -28 17l-194 365h-155v-350q0 -14 -9 -23t-23 -9h-134q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h294q128 0 190 -24q85 -31 134 -109
+t49 -180q0 -92 -42.5 -165.5t-115.5 -109.5q6 -10 9 -16zM896 1376q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM1792 640
+q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_569" unicode="&#xf25e;" horiz-adv-x="1792" 
+d="M605 303q153 0 257 104q14 18 3 36l-45 82q-6 13 -24 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78
+q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-148 0 -246 -96.5t-98 -240.5q0 -146 97 -241.5t247 -95.5zM1235 303q153 0 257 104q14 18 4 36l-45 82q-8 14 -25 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13.5t-23.5 -14.5t-28.5 -13t-33.5 -9.5
+t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-147 0 -245.5 -96.5t-98.5 -240.5q0 -146 97 -241.5t247 -95.5zM896 1376
+q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191
+t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71z" />
+    <glyph glyph-name="f260" unicode="&#xf260;" horiz-adv-x="2048" 
+d="M736 736l384 -384l-384 -384l-672 672l672 672l168 -168l-96 -96l-72 72l-480 -480l480 -480l193 193l-289 287zM1312 1312l672 -672l-672 -672l-168 168l96 96l72 -72l480 480l-480 480l-193 -193l289 -287l-96 -96l-384 384z" />
+    <glyph glyph-name="f261" unicode="&#xf261;" horiz-adv-x="1792" 
+d="M717 182l271 271l-279 279l-88 -88l192 -191l-96 -96l-279 279l279 279l40 -40l87 87l-127 128l-454 -454zM1075 190l454 454l-454 454l-271 -271l279 -279l88 88l-192 191l96 96l279 -279l-279 -279l-40 40l-87 -88zM1792 640q0 -182 -71 -348t-191 -286t-286 -191
+t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_572" unicode="&#xf262;" horiz-adv-x="2304" 
+d="M651 539q0 -39 -27.5 -66.5t-65.5 -27.5q-39 0 -66.5 27.5t-27.5 66.5q0 38 27.5 65.5t66.5 27.5q38 0 65.5 -27.5t27.5 -65.5zM1805 540q0 -39 -27.5 -66.5t-66.5 -27.5t-66.5 27.5t-27.5 66.5t27.5 66t66.5 27t66.5 -27t27.5 -66zM765 539q0 79 -56.5 136t-136.5 57
+t-136.5 -56.5t-56.5 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM1918 540q0 80 -56.5 136.5t-136.5 56.5q-79 0 -136 -56.5t-57 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM850 539q0 -116 -81.5 -197.5t-196.5 -81.5q-116 0 -197.5 82t-81.5 197
+t82 196.5t197 81.5t196.5 -81.5t81.5 -196.5zM2004 540q0 -115 -81.5 -196.5t-197.5 -81.5q-115 0 -196.5 81.5t-81.5 196.5t81.5 196.5t196.5 81.5q116 0 197.5 -81.5t81.5 -196.5zM1040 537q0 191 -135.5 326.5t-326.5 135.5q-125 0 -231 -62t-168 -168.5t-62 -231.5
+t62 -231.5t168 -168.5t231 -62q191 0 326.5 135.5t135.5 326.5zM1708 1110q-254 111 -556 111q-319 0 -573 -110q117 0 223 -45.5t182.5 -122.5t122 -183t45.5 -223q0 115 43.5 219.5t118 180.5t177.5 123t217 50zM2187 537q0 191 -135 326.5t-326 135.5t-326.5 -135.5
+t-135.5 -326.5t135.5 -326.5t326.5 -135.5t326 135.5t135 326.5zM1921 1103h383q-44 -51 -75 -114.5t-40 -114.5q110 -151 110 -337q0 -156 -77 -288t-209 -208.5t-287 -76.5q-133 0 -249 56t-196 155q-47 -56 -129 -179q-11 22 -53.5 82.5t-74.5 97.5
+q-80 -99 -196.5 -155.5t-249.5 -56.5q-155 0 -287 76.5t-209 208.5t-77 288q0 186 110 337q-9 51 -40 114.5t-75 114.5h365q149 100 355 156.5t432 56.5q224 0 421 -56t348 -157z" />
+    <glyph glyph-name="f263" unicode="&#xf263;" horiz-adv-x="1280" 
+d="M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5
+t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 30 -31 73t31 74l267 267l72 72q-203 21 -317 94
+q-39 25 -61.5 41.5t-42.5 37t-26.5 38.5t-4.5 40.5t15 49.5q10 20 28 35t42 22t56 -2t65 -35q5 -4 15 -11t43 -24.5t69 -30.5t92 -24t113 -11q91 0 174 25.5t120 50.5l38 25q33 26 65 35t56 2t42 -22t28 -35z" />
+    <glyph glyph-name="_574" unicode="&#xf264;" 
+d="M927 956q0 -66 -46.5 -112.5t-112.5 -46.5t-112.5 46.5t-46.5 112.5t46.5 112.5t112.5 46.5t112.5 -46.5t46.5 -112.5zM1141 593q-10 20 -28 32t-47.5 9.5t-60.5 -27.5q-10 -8 -29 -20t-81 -32t-127 -20t-124 18t-86 36l-27 18q-31 25 -60.5 27.5t-47.5 -9.5t-28 -32
+q-22 -45 -2 -74.5t87 -73.5q83 -53 226 -67l-51 -52q-142 -142 -191 -190q-22 -22 -22 -52.5t22 -52.5l9 -9q22 -22 52.5 -22t52.5 22l191 191q114 -115 191 -191q22 -22 52.5 -22t52.5 22l9 9q22 22 22 52.5t-22 52.5l-191 190l-52 52q141 14 225 67q67 44 87 73.5t-2 74.5
+zM1092 956q0 134 -95 229t-229 95t-229 -95t-95 -229t95 -229t229 -95t229 95t95 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="_575" unicode="&#xf265;" horiz-adv-x="1720" 
+d="M1565 1408q65 0 110 -45.5t45 -110.5v-519q0 -176 -68 -336t-182.5 -275t-274 -182.5t-334.5 -67.5q-176 0 -335.5 67.5t-274.5 182.5t-183 275t-68 336v519q0 64 46 110t110 46h1409zM861 344q47 0 82 33l404 388q37 35 37 85q0 49 -34.5 83.5t-83.5 34.5q-47 0 -82 -33
+l-323 -310l-323 310q-35 33 -81 33q-49 0 -83.5 -34.5t-34.5 -83.5q0 -51 36 -85l405 -388q33 -33 81 -33z" />
+    <glyph glyph-name="_576" unicode="&#xf266;" horiz-adv-x="2304" 
+d="M1494 -103l-295 695q-25 -49 -158.5 -305.5t-198.5 -389.5q-1 -1 -27.5 -0.5t-26.5 1.5q-82 193 -255.5 587t-259.5 596q-21 50 -66.5 107.5t-103.5 100.5t-102 43q0 5 -0.5 24t-0.5 27h583v-50q-39 -2 -79.5 -16t-66.5 -43t-10 -64q26 -59 216.5 -499t235.5 -540
+q31 61 140 266.5t131 247.5q-19 39 -126 281t-136 295q-38 69 -201 71v50l513 -1v-47q-60 -2 -93.5 -25t-12.5 -69q33 -70 87 -189.5t86 -187.5q110 214 173 363q24 55 -10 79.5t-129 26.5q1 7 1 25v24q64 0 170.5 0.5t180 1t92.5 0.5v-49q-62 -2 -119 -33t-90 -81
+l-213 -442q13 -33 127.5 -290t121.5 -274l441 1017q-14 38 -49.5 62.5t-65 31.5t-55.5 8v50l460 -4l1 -2l-1 -44q-139 -4 -201 -145q-526 -1216 -559 -1291h-49z" />
+    <glyph glyph-name="_577" unicode="&#xf267;" horiz-adv-x="1792" 
+d="M949 643q0 -26 -16.5 -45t-41.5 -19q-26 0 -45 16.5t-19 41.5q0 26 17 45t42 19t44 -16.5t19 -41.5zM964 585l350 581q-9 -8 -67.5 -62.5t-125.5 -116.5t-136.5 -127t-117 -110.5t-50.5 -51.5l-349 -580q7 7 67 62t126 116.5t136 127t117 111t50 50.5zM1611 640
+q0 -201 -104 -371q-3 2 -17 11t-26.5 16.5t-16.5 7.5q-13 0 -13 -13q0 -10 59 -44q-74 -112 -184.5 -190.5t-241.5 -110.5l-16 67q-1 10 -15 10q-5 0 -8 -5.5t-2 -9.5l16 -68q-72 -15 -146 -15q-199 0 -372 105q1 2 13 20.5t21.5 33.5t9.5 19q0 13 -13 13q-6 0 -17 -14.5
+t-22.5 -34.5t-13.5 -23q-113 75 -192 187.5t-110 244.5l69 15q10 3 10 15q0 5 -5.5 8t-10.5 2l-68 -15q-14 72 -14 139q0 206 109 379q2 -1 18.5 -12t30 -19t17.5 -8q13 0 13 12q0 6 -12.5 15.5t-32.5 21.5l-20 12q77 112 189 189t244 107l15 -67q2 -10 15 -10q5 0 8 5.5
+t2 10.5l-15 66q71 13 134 13q204 0 379 -109q-39 -56 -39 -65q0 -13 12 -13q11 0 48 64q111 -75 187.5 -186t107.5 -241l-56 -12q-10 -2 -10 -16q0 -5 5.5 -8t9.5 -2l57 13q14 -72 14 -140zM1696 640q0 163 -63.5 311t-170.5 255t-255 170.5t-311 63.5t-311 -63.5
+t-255 -170.5t-170.5 -255t-63.5 -311t63.5 -311t170.5 -255t255 -170.5t311 -63.5t311 63.5t255 170.5t170.5 255t63.5 311zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191
+t191 -286t71 -348z" />
+    <glyph glyph-name="_578" unicode="&#xf268;" horiz-adv-x="1792" 
+d="M893 1536q240 2 451 -120q232 -134 352 -372l-742 39q-160 9 -294 -74.5t-185 -229.5l-276 424q128 159 311 245.5t383 87.5zM146 1131l337 -663q72 -143 211 -217t293 -45l-230 -451q-212 33 -385 157.5t-272.5 316t-99.5 411.5q0 267 146 491zM1732 962
+q58 -150 59.5 -310.5t-48.5 -306t-153 -272t-246 -209.5q-230 -133 -498 -119l405 623q88 131 82.5 290.5t-106.5 277.5zM896 942q125 0 213.5 -88.5t88.5 -213.5t-88.5 -213.5t-213.5 -88.5t-213.5 88.5t-88.5 213.5t88.5 213.5t213.5 88.5z" />
+    <glyph glyph-name="_579" unicode="&#xf269;" horiz-adv-x="1792" 
+d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5
+q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31.5 -10.5t-46.5 -1q-60 -95 -144.5 -135.5t-209.5 -29.5
+q74 -61 162.5 -82.5t168.5 -6t154.5 52t128 87.5t80.5 104q43 91 39 192.5t-37.5 188.5t-78.5 125q87 -38 137 -79.5t77 -112.5q15 170 -57.5 343t-209.5 284q265 -77 412 -279.5t151 -517.5q2 -127 -40.5 -255t-123.5 -238t-189 -196t-247.5 -135.5t-288.5 -49.5z" />
+    <glyph glyph-name="_580" unicode="&#xf26a;" horiz-adv-x="1792" 
+d="M1493 1308q-165 110 -359 110q-155 0 -293 -73t-240 -200q-75 -93 -119.5 -218t-48.5 -266v-42q4 -141 48.5 -266t119.5 -218q102 -127 240 -200t293 -73q194 0 359 110q-121 -108 -274.5 -168t-322.5 -60q-29 0 -43 1q-175 8 -333 82t-272 193t-181 281t-67 339
+q0 182 71 348t191 286t286 191t348 71h3q168 -1 320.5 -60.5t273.5 -167.5zM1792 640q0 -192 -77 -362.5t-213 -296.5q-104 -63 -222 -63q-137 0 -255 84q154 56 253.5 233t99.5 405q0 227 -99 404t-253 234q119 83 254 83q119 0 226 -65q135 -125 210.5 -295t75.5 -361z
+" />
+    <glyph glyph-name="_581" unicode="&#xf26b;" horiz-adv-x="1792" 
+d="M1792 599q0 -56 -7 -104h-1151q0 -146 109.5 -244.5t257.5 -98.5q99 0 185.5 46.5t136.5 130.5h423q-56 -159 -170.5 -281t-267.5 -188.5t-321 -66.5q-187 0 -356 83q-228 -116 -394 -116q-237 0 -237 263q0 115 45 275q17 60 109 229q199 360 475 606
+q-184 -79 -427 -354q63 274 283.5 449.5t501.5 175.5q30 0 45 -1q255 117 433 117q64 0 116 -13t94.5 -40.5t66.5 -76.5t24 -115q0 -116 -75 -286q101 -182 101 -390zM1722 1239q0 83 -53 132t-137 49q-108 0 -254 -70q121 -47 222.5 -131.5t170.5 -195.5q51 135 51 216z
+M128 2q0 -86 48.5 -132.5t134.5 -46.5q115 0 266 83q-122 72 -213.5 183t-137.5 245q-98 -205 -98 -332zM632 715h728q-5 142 -113 237t-251 95q-144 0 -251.5 -95t-112.5 -237z" />
+    <glyph glyph-name="_582" unicode="&#xf26c;" horiz-adv-x="2048" 
+d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23
+v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="_583" unicode="&#xf26d;" horiz-adv-x="1792" 
+d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34
+h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12 83.5 6.5t67 -17t54 -35t43 -48t34.5 -56.5l468 100
+q-68 175 -180 287z" />
+    <glyph glyph-name="_584" unicode="&#xf26e;" 
+d="M1401 -11l-6 -6q-113 -113 -259 -175q-154 -64 -317 -64q-165 0 -317 64q-148 63 -259 175q-113 112 -175 258q-42 103 -54 189q-4 28 48 36q51 8 56 -20q1 -1 1 -4q18 -90 46 -159q50 -124 152 -226q98 -98 226 -152q132 -56 276 -56q143 0 276 56q128 55 225 152l6 6
+q10 10 25 6q12 -3 33 -22q36 -37 17 -58zM929 604l-66 -66l63 -63q21 -21 -7 -49q-17 -17 -32 -17q-10 0 -19 10l-62 61l-66 -66q-5 -5 -15 -5q-15 0 -31 16l-2 2q-18 15 -18 29q0 7 8 17l66 65l-66 66q-16 16 14 45q18 18 31 18q6 0 13 -5l65 -66l65 65q18 17 48 -13
+q27 -27 11 -44zM1400 547q0 -118 -46 -228q-45 -105 -126 -186q-80 -80 -187 -126t-228 -46t-228 46t-187 126q-82 82 -125 186q-15 33 -15 40h-1q-9 27 43 44q50 16 60 -12q37 -99 97 -167h1v339v2q3 136 102 232q105 103 253 103q147 0 251 -103t104 -249
+q0 -147 -104.5 -251t-250.5 -104q-58 0 -112 16q-28 11 -13 61q16 51 44 43l14 -3q14 -3 33 -6t30 -3q104 0 176 71.5t72 174.5q0 101 -72 171q-71 71 -175 71q-107 0 -178 -80q-64 -72 -64 -160v-413q110 -67 242 -67q96 0 185 36.5t156 103.5t103.5 155t36.5 183
+q0 198 -141 339q-140 140 -339 140q-200 0 -340 -140q-53 -53 -77 -87l-2 -2q-8 -11 -13 -15.5t-21.5 -9.5t-38.5 3q-21 5 -36.5 16.5t-15.5 26.5v680q0 15 10.5 26.5t27.5 11.5h877q30 0 30 -55t-30 -55h-811v-483h1q40 42 102 84t108 61q109 46 231 46q121 0 228 -46
+t187 -126q81 -81 126 -186q46 -112 46 -229zM1369 1128q9 -8 9 -18t-5.5 -18t-16.5 -21q-26 -26 -39 -26q-9 0 -16 7q-106 91 -207 133q-128 56 -276 56q-133 0 -262 -49q-27 -10 -45 37q-9 25 -8 38q3 16 16 20q130 57 299 57q164 0 316 -64q137 -58 235 -152z" />
+    <glyph glyph-name="_585" unicode="&#xf270;" horiz-adv-x="1792" 
+d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z
+M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 -0.5h-5.5h-4.5t-3 0.5t-2 1.5l-1.5 3q-6 16 47 40t103 30
+q46 7 108 1t76 -24zM1364 618q0 -31 13.5 -64t32 -58t37.5 -46t33 -32l13 -11l-227 -224q-40 37 -79 75.5t-58 58.5l-19 20q-11 11 -25 33q-38 -59 -97.5 -102.5t-127.5 -63.5t-140 -23t-137.5 21t-117.5 65.5t-83 113t-31 162.5q0 84 28 154t72 116.5t106.5 83t122.5 57
+t130 34.5t119.5 18.5t99.5 6.5v127q0 65 -21 97q-34 53 -121 53q-6 0 -16.5 -1t-40.5 -12t-56 -29.5t-56 -59.5t-48 -96l-294 27q0 60 22 119t67 113t108 95t151.5 65.5t190.5 24.5q100 0 181 -25t129.5 -61.5t81 -83t45 -86t12.5 -73.5v-589zM692 597q0 -86 70 -133
+q66 -44 139 -22q84 25 114 123q14 45 14 101v162q-59 -2 -111 -12t-106.5 -33.5t-87 -71t-32.5 -114.5z" />
+    <glyph glyph-name="_586" unicode="&#xf271;" horiz-adv-x="1792" 
+d="M1536 1280q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128zM1152 1376v-288q0 -14 9 -23t23 -9
+h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 1376v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM1536 -128v1024h-1408v-1024h1408zM896 448h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224
+v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224z" />
+    <glyph glyph-name="_587" unicode="&#xf272;" horiz-adv-x="1792" 
+d="M1152 416v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23
+t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47
+t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_588" unicode="&#xf273;" horiz-adv-x="1792" 
+d="M1111 151l-46 -46q-9 -9 -22 -9t-23 9l-188 189l-188 -189q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22t9 23l189 188l-189 188q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l188 -188l188 188q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23l-188 -188l188 -188q9 -10 9 -23t-9 -22z
+M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280
+q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_589" unicode="&#xf274;" horiz-adv-x="1792" 
+d="M1303 572l-512 -512q-10 -9 -23 -9t-23 9l-288 288q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l220 -220l444 444q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23
+t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47
+t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" />
+    <glyph glyph-name="_590" unicode="&#xf275;" horiz-adv-x="1792" 
+d="M448 1536q26 0 45 -19t19 -45v-891l536 429q17 14 40 14q26 0 45 -19t19 -45v-379l536 429q17 14 40 14q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h384z" />
+    <glyph glyph-name="_591" unicode="&#xf276;" horiz-adv-x="1024" 
+d="M512 448q66 0 128 15v-655q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v655q62 -15 128 -15zM512 1536q212 0 362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362t150 362t362 150zM512 1312q14 0 23 9t9 23t-9 23t-23 9q-146 0 -249 -103t-103 -249
+q0 -14 9 -23t23 -9t23 9t9 23q0 119 84.5 203.5t203.5 84.5z" />
+    <glyph glyph-name="_592" unicode="&#xf277;" horiz-adv-x="1792" 
+d="M1745 1239q10 -10 10 -23t-10 -23l-141 -141q-28 -28 -68 -28h-1344q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h576v64q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-64h512q40 0 68 -28zM768 320h256v-512q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v512zM1600 768
+q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1344q-40 0 -68 28l-141 141q-10 10 -10 23t10 23l141 141q28 28 68 28h512v192h256v-192h576z" />
+    <glyph glyph-name="_593" unicode="&#xf278;" horiz-adv-x="2048" 
+d="M2020 1525q28 -20 28 -53v-1408q0 -20 -11 -36t-29 -23l-640 -256q-24 -11 -48 0l-616 246l-616 -246q-10 -5 -24 -5q-19 0 -36 11q-28 20 -28 53v1408q0 20 11 36t29 23l640 256q24 11 48 0l616 -246l616 246q32 13 60 -6zM736 1390v-1270l576 -230v1270zM128 1173
+v-1270l544 217v1270zM1920 107v1270l-544 -217v-1270z" />
+    <glyph glyph-name="_594" unicode="&#xf279;" horiz-adv-x="1792" 
+d="M512 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472q0 20 17 28l480 256q7 4 15 4zM1760 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472
+q0 20 17 28l480 256q7 4 15 4zM640 1536q8 0 14 -3l512 -256q18 -10 18 -29v-1472q0 -13 -9.5 -22.5t-22.5 -9.5q-8 0 -14 3l-512 256q-18 10 -18 29v1472q0 13 9.5 22.5t22.5 9.5z" />
+    <glyph glyph-name="_595" unicode="&#xf27a;" horiz-adv-x="1792" 
+d="M640 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 640q0 53 -37.5 90.5t-90.5 37.5
+t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-110 0 -211 18q-173 -173 -435 -229q-52 -10 -86 -13q-12 -1 -22 6t-13 18q-4 15 20 37q5 5 23.5 21.5t25.5 23.5t23.5 25.5t24 31.5t20.5 37
+t20 48t14.5 57.5t12.5 72.5q-146 90 -229.5 216.5t-83.5 269.5q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" />
+    <glyph glyph-name="_596" unicode="&#xf27b;" horiz-adv-x="1792" 
+d="M640 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 -53 -37.5 -90.5t-90.5 -37.5
+t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5
+t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51
+t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 130 71 248.5t191 204.5t286 136.5t348 50.5t348 -50.5t286 -136.5t191 -204.5t71 -248.5z" />
+    <glyph glyph-name="_597" unicode="&#xf27c;" horiz-adv-x="1024" 
+d="M512 345l512 295v-591l-512 -296v592zM0 640v-591l512 296zM512 1527v-591l-512 -296v591zM512 936l512 295v-591z" />
+    <glyph glyph-name="_598" unicode="&#xf27d;" horiz-adv-x="1792" 
+d="M1709 1018q-10 -236 -332 -651q-333 -431 -562 -431q-142 0 -240 263q-44 160 -132 482q-72 262 -157 262q-18 0 -127 -76l-77 98q24 21 108 96.5t130 115.5q156 138 241 146q95 9 153 -55.5t81 -203.5q44 -287 66 -373q55 -249 120 -249q51 0 154 161q101 161 109 246
+q13 139 -109 139q-57 0 -121 -26q120 393 459 382q251 -8 236 -326z" />
+    <glyph glyph-name="f27e" unicode="&#xf27e;" 
+d="M0 1408h1536v-1536h-1536v1536zM1085 293l-221 631l221 297h-634l221 -297l-221 -631l317 -304z" />
+    <glyph glyph-name="uniF280" unicode="&#xf280;" 
+d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72
+h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 1 -9.5 2.5t-2.5 3t1 7.5t1 12v520h-275
+l-23 -101l83 -22q23 -7 23 -27v-370q0 -14 -6 -18.5t-20 -6.5l-70 -9v-86h352z" />
+    <glyph glyph-name="uniF281" unicode="&#xf281;" horiz-adv-x="1792" 
+d="M1792 690q0 -58 -29.5 -105.5t-79.5 -72.5q12 -46 12 -96q0 -155 -106.5 -287t-290.5 -208.5t-400 -76.5t-399.5 76.5t-290 208.5t-106.5 287q0 47 11 94q-51 25 -82 73.5t-31 106.5q0 82 58 140.5t141 58.5q85 0 145 -63q218 152 515 162l116 521q3 13 15 21t26 5
+l369 -81q18 37 54 59.5t79 22.5q62 0 106 -43.5t44 -105.5t-44 -106t-106 -44t-105.5 43.5t-43.5 105.5l-334 74l-104 -472q300 -9 519 -160q58 61 143 61q83 0 141 -58.5t58 -140.5zM418 491q0 -62 43.5 -106t105.5 -44t106 44t44 106t-44 105.5t-106 43.5q-61 0 -105 -44
+t-44 -105zM1228 136q11 11 11 26t-11 26q-10 10 -25 10t-26 -10q-41 -42 -121 -62t-160 -20t-160 20t-121 62q-11 10 -26 10t-25 -10q-11 -10 -11 -25.5t11 -26.5q43 -43 118.5 -68t122.5 -29.5t91 -4.5t91 4.5t122.5 29.5t118.5 68zM1225 341q62 0 105.5 44t43.5 106
+q0 61 -44 105t-105 44q-62 0 -106 -43.5t-44 -105.5t44 -106t106 -44z" />
+    <glyph glyph-name="_602" unicode="&#xf282;" horiz-adv-x="1792" 
+d="M69 741h1q16 126 58.5 241.5t115 217t167.5 176t223.5 117.5t276.5 43q231 0 414 -105.5t294 -303.5q104 -187 104 -442v-188h-1125q1 -111 53.5 -192.5t136.5 -122.5t189.5 -57t213 -3t208 46.5t173.5 84.5v-377q-92 -55 -229.5 -92t-312.5 -38t-316 53
+q-189 73 -311.5 249t-124.5 372q-3 242 111 412t325 268q-48 -60 -78 -125.5t-46 -159.5h635q8 77 -8 140t-47 101.5t-70.5 66.5t-80.5 41t-75 20.5t-56 8.5l-22 1q-135 -5 -259.5 -44.5t-223.5 -104.5t-176 -140.5t-138 -163.5z" />
+    <glyph glyph-name="_603" unicode="&#xf283;" horiz-adv-x="2304" 
+d="M0 32v608h2304v-608q0 -66 -47 -113t-113 -47h-1984q-66 0 -113 47t-47 113zM640 256v-128h384v128h-384zM256 256v-128h256v128h-256zM2144 1408q66 0 113 -47t47 -113v-224h-2304v224q0 66 47 113t113 47h1984z" />
+    <glyph glyph-name="_604" unicode="&#xf284;" horiz-adv-x="1792" 
+d="M1584 246l-218 111q-74 -120 -196.5 -189t-263.5 -69q-147 0 -271 72t-196 196t-72 270q0 110 42.5 209.5t115 172t172 115t209.5 42.5q131 0 247.5 -60.5t192.5 -168.5l215 125q-110 169 -286.5 265t-378.5 96q-161 0 -308 -63t-253 -169t-169 -253t-63 -308t63 -308
+t169 -253t253 -169t308 -63q213 0 397.5 107t290.5 292zM1030 643l693 -352q-116 -253 -334.5 -400t-492.5 -147q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71q260 0 470.5 -133.5t335.5 -366.5zM1543 640h-39v-160h-96v352h136q32 0 54.5 -20
+t28.5 -48t1 -56t-27.5 -48t-57.5 -20z" />
+    <glyph glyph-name="uniF285" unicode="&#xf285;" horiz-adv-x="1792" 
+d="M1427 827l-614 386l92 151h855zM405 562l-184 116v858l1183 -743zM1424 697l147 -95v-858l-532 335zM1387 718l-500 -802h-855l356 571z" />
+    <glyph glyph-name="uniF286" unicode="&#xf286;" horiz-adv-x="1792" 
+d="M640 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1152 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1664 496v-752h-640v320q0 80 -56 136t-136 56t-136 -56t-56 -136v-320h-640v752q0 16 16 16h96
+q16 0 16 -16v-112h128v624q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 6 2.5 9.5t8.5 5t9.5 2t11.5 0t9 -0.5v391q-32 15 -32 50q0 23 16.5 39t38.5 16t38.5 -16t16.5 -39q0 -35 -32 -50v-17q45 10 83 10q21 0 59.5 -7.5t54.5 -7.5
+q17 0 47 7.5t37 7.5q16 0 16 -16v-210q0 -15 -35 -21.5t-62 -6.5q-18 0 -54.5 7.5t-55.5 7.5q-40 0 -90 -12v-133q1 0 9 0.5t11.5 0t9.5 -2t8.5 -5t2.5 -9.5v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-624h128v112q0 16 16 16h96
+q16 0 16 -16z" />
+    <glyph glyph-name="_607" unicode="&#xf287;" horiz-adv-x="2304" 
+d="M2288 731q16 -8 16 -27t-16 -27l-320 -192q-8 -5 -16 -5q-9 0 -16 4q-16 10 -16 28v128h-858q37 -58 83 -165q16 -37 24.5 -55t24 -49t27 -47t27 -34t31.5 -26t33 -8h96v96q0 14 9 23t23 9h320q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v96h-96
+q-32 0 -61 10t-51 23.5t-45 40.5t-37 46t-33.5 57t-28.5 57.5t-28 60.5q-23 53 -37 81.5t-36 65t-44.5 53.5t-46.5 17h-360q-22 -84 -91 -138t-157 -54q-106 0 -181 75t-75 181t75 181t181 75q88 0 157 -54t91 -138h104q24 0 46.5 17t44.5 53.5t36 65t37 81.5q19 41 28 60.5
+t28.5 57.5t33.5 57t37 46t45 40.5t51 23.5t61 10h107q21 57 70 92.5t111 35.5q80 0 136 -56t56 -136t-56 -136t-136 -56q-62 0 -111 35.5t-70 92.5h-107q-17 0 -33 -8t-31.5 -26t-27 -34t-27 -47t-24 -49t-24.5 -55q-46 -107 -83 -165h1114v128q0 18 16 28t32 -1z" />
+    <glyph glyph-name="_608" unicode="&#xf288;" horiz-adv-x="1792" 
+d="M1150 774q0 -56 -39.5 -95t-95.5 -39h-253v269h253q56 0 95.5 -39.5t39.5 -95.5zM1329 774q0 130 -91.5 222t-222.5 92h-433v-896h180v269h253q130 0 222 91.5t92 221.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348
+t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_609" unicode="&#xf289;" horiz-adv-x="2304" 
+d="M1645 438q0 59 -34 106.5t-87 68.5q-7 -45 -23 -92q-7 -24 -27.5 -38t-44.5 -14q-12 0 -24 3q-31 10 -45 38.5t-4 58.5q23 71 23 143q0 123 -61 227.5t-166 165.5t-228 61q-134 0 -247 -73t-167 -194q108 -28 188 -106q22 -23 22 -55t-22 -54t-54 -22t-55 22
+q-75 75 -180 75q-106 0 -181 -74.5t-75 -180.5t75 -180.5t181 -74.5h1046q79 0 134.5 55.5t55.5 133.5zM1798 438q0 -142 -100.5 -242t-242.5 -100h-1046q-169 0 -289 119.5t-120 288.5q0 153 100 267t249 136q62 184 221 298t354 114q235 0 408.5 -158.5t196.5 -389.5
+q116 -25 192.5 -118.5t76.5 -214.5zM2048 438q0 -175 -97 -319q-23 -33 -64 -33q-24 0 -43 13q-26 17 -32 48.5t12 57.5q71 104 71 233t-71 233q-18 26 -12 57t32 49t57.5 11.5t49.5 -32.5q97 -142 97 -318zM2304 438q0 -244 -134 -443q-23 -34 -64 -34q-23 0 -42 13
+q-26 18 -32.5 49t11.5 57q108 164 108 358q0 195 -108 357q-18 26 -11.5 57.5t32.5 48.5q26 18 57 12t49 -33q134 -198 134 -442z" />
+    <glyph glyph-name="_610" unicode="&#xf28a;" 
+d="M1500 -13q0 -89 -63 -152.5t-153 -63.5t-153.5 63.5t-63.5 152.5q0 90 63.5 153.5t153.5 63.5t153 -63.5t63 -153.5zM1267 268q-115 -15 -192.5 -102.5t-77.5 -205.5q0 -74 33 -138q-146 -78 -379 -78q-109 0 -201 21t-153.5 54.5t-110.5 76.5t-76 85t-44.5 83
+t-23.5 66.5t-6 39.5q0 19 4.5 42.5t18.5 56t36.5 58t64 43.5t94.5 18t94 -17.5t63 -41t35.5 -53t17.5 -49t4 -33.5q0 -34 -23 -81q28 -27 82 -42t93 -17l40 -1q115 0 190 51t75 133q0 26 -9 48.5t-31.5 44.5t-49.5 41t-74 44t-93.5 47.5t-119.5 56.5q-28 13 -43 20
+q-116 55 -187 100t-122.5 102t-72 125.5t-20.5 162.5q0 78 20.5 150t66 137.5t112.5 114t166.5 77t221.5 28.5q120 0 220 -26t164.5 -67t109.5 -94t64 -105.5t19 -103.5q0 -46 -15 -82.5t-36.5 -58t-48.5 -36t-49 -19.5t-39 -5h-8h-32t-39 5t-44 14t-41 28t-37 46t-24 70.5
+t-10 97.5q-15 16 -59 25.5t-81 10.5l-37 1q-68 0 -117.5 -31t-70.5 -70t-21 -76q0 -24 5 -43t24 -46t53 -51t97 -53.5t150 -58.5q76 -25 138.5 -53.5t109 -55.5t83 -59t60.5 -59.5t41 -62.5t26.5 -62t14.5 -63.5t6 -62t1 -62.5z" />
+    <glyph glyph-name="_611" unicode="&#xf28b;" 
+d="M704 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1152 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103
+t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_612" unicode="&#xf28c;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273
+t73 -273t198 -198t273 -73zM864 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192z" />
+    <glyph glyph-name="_613" unicode="&#xf28d;" 
+d="M1088 352v576q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5
+t103 -385.5z" />
+    <glyph glyph-name="_614" unicode="&#xf28e;" 
+d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273
+t73 -273t198 -198t273 -73zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h576q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-576z" />
+    <glyph glyph-name="_615" unicode="&#xf290;" horiz-adv-x="1792" 
+d="M1757 128l35 -313q3 -28 -16 -50q-19 -21 -48 -21h-1664q-29 0 -48 21q-19 22 -16 50l35 313h1722zM1664 967l86 -775h-1708l86 775q3 24 21 40.5t43 16.5h256v-128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v128h384v-128q0 -53 37.5 -90.5t90.5 -37.5
+t90.5 37.5t37.5 90.5v128h256q25 0 43 -16.5t21 -40.5zM1280 1152v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="_616" unicode="&#xf291;" horiz-adv-x="2048" 
+d="M1920 768q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-15l-115 -662q-8 -46 -44 -76t-82 -30h-1280q-46 0 -82 30t-44 76l-115 662h-15q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5h1792zM485 -32q26 2 43.5 22.5t15.5 46.5l-32 416q-2 26 -22.5 43.5
+t-46.5 15.5t-43.5 -22.5t-15.5 -46.5l32 -416q2 -25 20.5 -42t43.5 -17h5zM896 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1280 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1632 27l32 416
+q2 26 -15.5 46.5t-43.5 22.5t-46.5 -15.5t-22.5 -43.5l-32 -416q-2 -26 15.5 -46.5t43.5 -22.5h5q25 0 43.5 17t20.5 42zM476 1244l-93 -412h-132l101 441q19 88 89 143.5t160 55.5h167q0 26 19 45t45 19h384q26 0 45 -19t19 -45h167q90 0 160 -55.5t89 -143.5l101 -441
+h-132l-93 412q-11 44 -45.5 72t-79.5 28h-167q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45h-167q-45 0 -79.5 -28t-45.5 -72z" />
+    <glyph glyph-name="_617" unicode="&#xf292;" horiz-adv-x="1792" 
+d="M991 512l64 256h-254l-64 -256h254zM1759 1016l-56 -224q-7 -24 -31 -24h-327l-64 -256h311q15 0 25 -12q10 -14 6 -28l-56 -224q-5 -24 -31 -24h-327l-81 -328q-7 -24 -31 -24h-224q-16 0 -26 12q-9 12 -6 28l78 312h-254l-81 -328q-7 -24 -31 -24h-225q-15 0 -25 12
+q-9 12 -6 28l78 312h-311q-15 0 -25 12q-9 12 -6 28l56 224q7 24 31 24h327l64 256h-311q-15 0 -25 12q-10 14 -6 28l56 224q5 24 31 24h327l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h254l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h311
+q15 0 25 -12q9 -12 6 -28z" />
+    <glyph glyph-name="_618" unicode="&#xf293;" 
+d="M841 483l148 -148l-149 -149zM840 1094l149 -149l-148 -148zM710 -130l464 464l-306 306l306 306l-464 464v-611l-255 255l-93 -93l320 -321l-320 -321l93 -93l255 255v-611zM1429 640q0 -209 -32 -365.5t-87.5 -257t-140.5 -162.5t-181.5 -86.5t-219.5 -24.5
+t-219.5 24.5t-181.5 86.5t-140.5 162.5t-87.5 257t-32 365.5t32 365.5t87.5 257t140.5 162.5t181.5 86.5t219.5 24.5t219.5 -24.5t181.5 -86.5t140.5 -162.5t87.5 -257t32 -365.5z" />
+    <glyph glyph-name="_619" unicode="&#xf294;" horiz-adv-x="1024" 
+d="M596 113l173 172l-173 172v-344zM596 823l173 172l-173 172v-344zM628 640l356 -356l-539 -540v711l-297 -296l-108 108l372 373l-372 373l108 108l297 -296v711l539 -540z" />
+    <glyph glyph-name="_620" unicode="&#xf295;" 
+d="M1280 256q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM512 1024q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5
+t112.5 -271.5zM1440 1344q0 -20 -13 -38l-1056 -1408q-19 -26 -51 -26h-160q-26 0 -45 19t-19 45q0 20 13 38l1056 1408q19 26 51 26h160q26 0 45 -19t19 -45zM768 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5
+t271.5 -112.5t112.5 -271.5z" />
+    <glyph glyph-name="_621" unicode="&#xf296;" horiz-adv-x="1792" 
+d="M104 830l792 -1015l-868 630q-18 13 -25 34.5t0 42.5l101 308v0zM566 830h660l-330 -1015v0zM368 1442l198 -612h-462l198 612q8 23 33 23t33 -23zM1688 830l101 -308q7 -21 0 -42.5t-25 -34.5l-868 -630l792 1015v0zM1688 830h-462l198 612q8 23 33 23t33 -23z" />
+    <glyph glyph-name="_622" unicode="&#xf297;" horiz-adv-x="1792" 
+d="M384 704h160v224h-160v-224zM1221 372v92q-104 -36 -243 -38q-135 -1 -259.5 46.5t-220.5 122.5l1 -96q88 -80 212 -128.5t272 -47.5q129 0 238 49zM640 704h640v224h-640v-224zM1792 736q0 -187 -99 -352q89 -102 89 -229q0 -157 -129.5 -268t-313.5 -111
+q-122 0 -225 52.5t-161 140.5q-19 -1 -57 -1t-57 1q-58 -88 -161 -140.5t-225 -52.5q-184 0 -313.5 111t-129.5 268q0 127 89 229q-99 165 -99 352q0 209 120 385.5t326.5 279.5t449.5 103t449.5 -103t326.5 -279.5t120 -385.5z" />
+    <glyph glyph-name="_623" unicode="&#xf298;" 
+d="M515 625v-128h-252v128h252zM515 880v-127h-252v127h252zM1273 369v-128h-341v128h341zM1273 625v-128h-672v128h672zM1273 880v-127h-672v127h672zM1408 20v1240q0 8 -6 14t-14 6h-32l-378 -256l-210 171l-210 -171l-378 256h-32q-8 0 -14 -6t-6 -14v-1240q0 -8 6 -14
+t14 -6h1240q8 0 14 6t6 14zM553 1130l185 150h-406zM983 1130l221 150h-406zM1536 1260v-1240q0 -62 -43 -105t-105 -43h-1240q-62 0 -105 43t-43 105v1240q0 62 43 105t105 43h1240q62 0 105 -43t43 -105z" />
+    <glyph glyph-name="_624" unicode="&#xf299;" horiz-adv-x="1792" 
+d="M896 720q-104 196 -160 278q-139 202 -347 318q-34 19 -70 36q-89 40 -94 32t34 -38l39 -31q62 -43 112.5 -93.5t94.5 -116.5t70.5 -113t70.5 -131q9 -17 13 -25q44 -84 84 -153t98 -154t115.5 -150t131 -123.5t148.5 -90.5q153 -66 154 -60q1 3 -49 37q-53 36 -81 57
+q-77 58 -179 211t-185 310zM549 177q-76 60 -132.5 125t-98 143.5t-71 154.5t-58.5 186t-52 209t-60.5 252t-76.5 289q273 0 497.5 -36t379 -92t271 -144.5t185.5 -172.5t110 -198.5t56 -199.5t12.5 -198.5t-9.5 -173t-20 -143.5t-13 -107l323 -327h-104l-281 285
+q-22 -2 -91.5 -14t-121.5 -19t-138 -6t-160.5 17t-167.5 59t-179 111z" />
+    <glyph glyph-name="_625" unicode="&#xf29a;" horiz-adv-x="1792" 
+d="M1374 879q-6 26 -28.5 39.5t-48.5 7.5q-261 -62 -401 -62t-401 62q-26 6 -48.5 -7.5t-28.5 -39.5t7.5 -48.5t39.5 -28.5q194 -46 303 -58q-2 -158 -15.5 -269t-26.5 -155.5t-41 -115.5l-9 -21q-10 -25 1 -49t36 -34q9 -4 23 -4q44 0 60 41l8 20q54 139 71 259h42
+q17 -120 71 -259l8 -20q16 -41 60 -41q14 0 23 4q25 10 36 34t1 49l-9 21q-28 71 -41 115.5t-26.5 155.5t-15.5 269q109 12 303 58q26 6 39.5 28.5t7.5 48.5zM1024 1024q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z
+M1600 640q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5zM896 1408q-156 0 -298 -61t-245 -164t-164 -245t-61 -298t61 -298
+t164 -245t245 -164t298 -61t298 61t245 164t164 245t61 298t-61 298t-164 245t-245 164t-298 61zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="_626" unicode="&#xf29b;" 
+d="M1438 723q34 -35 29 -82l-44 -551q-4 -42 -34.5 -70t-71.5 -28q-6 0 -9 1q-44 3 -72.5 36.5t-25.5 77.5l35 429l-143 -8q55 -113 55 -240q0 -216 -148 -372l-137 137q91 101 91 235q0 145 -102.5 248t-247.5 103q-134 0 -236 -92l-137 138q120 114 284 141l264 300
+l-149 87l-181 -161q-33 -30 -77 -27.5t-73 35.5t-26.5 77t34.5 73l239 213q26 23 60 26.5t64 -14.5l488 -283q36 -21 48 -68q17 -67 -26 -117l-205 -232l371 20q49 3 83 -32zM1240 1180q-74 0 -126 52t-52 126t52 126t126 52t126.5 -52t52.5 -126t-52.5 -126t-126.5 -52z
+M613 -62q106 0 196 61l139 -139q-146 -116 -335 -116q-148 0 -273.5 73t-198.5 198t-73 273q0 188 116 336l139 -139q-60 -88 -60 -197q0 -145 102.5 -247.5t247.5 -102.5z" />
+    <glyph glyph-name="_627" unicode="&#xf29c;" 
+d="M880 336v-160q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v160q0 14 9 23t23 9h160q14 0 23 -9t9 -23zM1136 832q0 -50 -15 -90t-45.5 -69t-52 -44t-59.5 -36q-32 -18 -46.5 -28t-26 -24t-11.5 -29v-32q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v68q0 35 10.5 64.5
+t24 47.5t39 35.5t41 25.5t44.5 21q53 25 75 43t22 49q0 42 -43.5 71.5t-95.5 29.5q-56 0 -95 -27q-29 -20 -80 -83q-9 -12 -25 -12q-11 0 -19 6l-108 82q-10 7 -12 20t5 23q122 192 349 192q129 0 238.5 -89.5t109.5 -214.5zM768 1280q-130 0 -248.5 -51t-204 -136.5
+t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5
+t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="_628" unicode="&#xf29d;" horiz-adv-x="1408" 
+d="M366 1225q-64 0 -110 45.5t-46 110.5q0 64 46 109.5t110 45.5t109.5 -45.5t45.5 -109.5q0 -65 -45.5 -110.5t-109.5 -45.5zM917 583q0 -50 -30 -67.5t-63.5 -6.5t-47.5 34l-367 438q-7 12 -14 15.5t-11 1.5l-3 -3q-7 -8 4 -21l122 -139l1 -354l-161 -457
+q-67 -192 -92 -234q-15 -26 -28 -32q-50 -26 -103 -1q-29 13 -41.5 43t-9.5 57q2 17 197 618l5 416l-85 -164l35 -222q4 -24 -1 -42t-14 -27.5t-19 -16t-17 -7.5l-7 -2q-19 -3 -34.5 3t-24 16t-14 22t-7.5 19.5t-2 9.5l-46 299l211 381q23 34 113 34q75 0 107 -40l424 -521
+q7 -5 14 -17l3 -3l-1 -1q7 -13 7 -29zM514 433q43 -113 88.5 -225t69.5 -168l24 -55q36 -93 42 -125q11 -70 -36 -97q-35 -22 -66 -16t-51 22t-29 35h-1q-6 16 -8 25l-124 351zM1338 -159q31 -49 31 -57q0 -5 -3 -7q-9 -5 -14.5 0.5t-15.5 26t-16 30.5q-114 172 -423 661
+q3 -1 7 1t7 4l3 2q11 9 11 17z" />
+    <glyph glyph-name="_629" unicode="&#xf29e;" horiz-adv-x="2304" 
+d="M504 542h171l-1 265zM1530 641q0 87 -50.5 140t-146.5 53h-54v-388h52q91 0 145 57t54 138zM956 1018l1 -756q0 -14 -9.5 -24t-23.5 -10h-216q-14 0 -23.5 10t-9.5 24v62h-291l-55 -81q-10 -15 -28 -15h-267q-21 0 -30.5 18t3.5 35l556 757q9 14 27 14h332q14 0 24 -10
+t10 -24zM1783 641q0 -193 -125.5 -303t-324.5 -110h-270q-14 0 -24 10t-10 24v756q0 14 10 24t24 10h268q200 0 326 -109t126 -302zM1939 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5
+t-7.5 60t-20 91.5t-41 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2123 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-45 -108t-74 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5
+h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2304 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66 104.5t41 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96
+t9.5 -70.5z" />
+    <glyph glyph-name="uniF2A0" unicode="&#xf2a0;" horiz-adv-x="1408" 
+d="M617 -153q0 11 -13 58t-31 107t-20 69q-1 4 -5 26.5t-8.5 36t-13.5 21.5q-15 14 -51 14q-23 0 -70 -5.5t-71 -5.5q-34 0 -47 11q-6 5 -11 15.5t-7.5 20t-6.5 24t-5 18.5q-37 128 -37 255t37 255q1 4 5 18.5t6.5 24t7.5 20t11 15.5q13 11 47 11q24 0 71 -5.5t70 -5.5
+q36 0 51 14q9 8 13.5 21.5t8.5 36t5 26.5q2 9 20 69t31 107t13 58q0 22 -43.5 52.5t-75.5 42.5q-20 8 -45 8q-34 0 -98 -18q-57 -17 -96.5 -40.5t-71 -66t-46 -70t-45.5 -94.5q-6 -12 -9 -19q-49 -107 -68 -216t-19 -244t19 -244t68 -216q56 -122 83 -161q63 -91 179 -127
+l6 -2q64 -18 98 -18q25 0 45 8q32 12 75.5 42.5t43.5 52.5zM776 760q-26 0 -45 19t-19 45.5t19 45.5q37 37 37 90q0 52 -37 91q-19 19 -19 45t19 45t45 19t45 -19q75 -75 75 -181t-75 -181q-21 -19 -45 -19zM957 579q-27 0 -45 19q-19 19 -19 45t19 45q112 114 112 272
+t-112 272q-19 19 -19 45t19 45t45 19t45 -19q150 -150 150 -362t-150 -362q-18 -19 -45 -19zM1138 398q-27 0 -45 19q-19 19 -19 45t19 45q90 91 138.5 208t48.5 245t-48.5 245t-138.5 208q-19 19 -19 45t19 45t45 19t45 -19q109 -109 167 -249t58 -294t-58 -294t-167 -249
+q-18 -19 -45 -19z" />
+    <glyph glyph-name="uniF2A1" unicode="&#xf2a1;" horiz-adv-x="2176" 
+d="M192 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 352
+q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 864
+q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 1376q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 192q0 -80 -56 -136
+t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 1216q0 -80 -56 -136t-136 -56
+t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 192q0 -80 -56 -136t-136 -56t-136 56
+t-56 136t56 136t136 56t136 -56t56 -136zM1664 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136
+t56 136t136 56t136 -56t56 -136zM2176 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z" />
+    <glyph glyph-name="uniF2A2" unicode="&#xf2a2;" horiz-adv-x="1792" 
+d="M128 -192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM320 0q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM365 365l256 -256l-90 -90l-256 256zM704 384q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45z
+M1411 704q0 -59 -11.5 -108.5t-37.5 -93.5t-44 -67.5t-53 -64.5q-31 -35 -45.5 -54t-33.5 -50t-26.5 -64t-7.5 -74q0 -159 -112.5 -271.5t-271.5 -112.5q-26 0 -45 19t-19 45t19 45t45 19q106 0 181 75t75 181q0 57 11.5 105.5t37 91t43.5 66.5t52 63q40 46 59.5 72
+t37.5 74.5t18 103.5q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM896 576q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45
+t45 19t45 -19t19 -45zM1184 704q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 93 -65.5 158.5t-158.5 65.5q-92 0 -158 -65.5t-66 -158.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 146 103 249t249 103t249 -103t103 -249zM1578 993q10 -25 -1 -49t-36 -34q-9 -4 -23 -4
+q-19 0 -35.5 11t-23.5 30q-68 178 -224 295q-21 16 -25 42t12 47q17 21 43 25t47 -12q183 -137 266 -351zM1788 1074q9 -25 -1.5 -49t-35.5 -34q-11 -4 -23 -4q-44 0 -60 41q-92 238 -297 393q-22 16 -25.5 42t12.5 47q16 22 42 25.5t47 -12.5q235 -175 341 -449z" />
+    <glyph glyph-name="uniF2A3" unicode="&#xf2a3;" horiz-adv-x="2304" 
+d="M1032 576q-59 2 -84 55q-17 34 -48 53.5t-68 19.5q-53 0 -90.5 -37.5t-37.5 -90.5q0 -56 36 -89l10 -8q34 -31 82 -31q37 0 68 19.5t48 53.5q25 53 84 55zM1600 704q0 56 -36 89l-10 8q-34 31 -82 31q-37 0 -68 -19.5t-48 -53.5q-25 -53 -84 -55q59 -2 84 -55
+q17 -34 48 -53.5t68 -19.5q53 0 90.5 37.5t37.5 90.5zM1174 925q-17 -35 -55 -48t-73 4q-62 31 -134 31q-51 0 -99 -17q3 0 9.5 0.5t9.5 0.5q92 0 170.5 -50t118.5 -133q17 -36 3.5 -73.5t-49.5 -54.5q-18 -9 -39 -9q21 0 39 -9q36 -17 49.5 -54.5t-3.5 -73.5
+q-40 -83 -118.5 -133t-170.5 -50h-6q-16 2 -44 4l-290 27l-239 -120q-14 -7 -29 -7q-40 0 -57 35l-160 320q-11 23 -4 47.5t29 37.5l209 119l148 267q17 155 91.5 291.5t195.5 236.5q31 25 70.5 21.5t64.5 -34.5t21.5 -70t-34.5 -65q-70 -59 -117 -128q123 84 267 101
+q40 5 71.5 -19t35.5 -64q5 -40 -19 -71.5t-64 -35.5q-84 -10 -159 -55q46 10 99 10q115 0 218 -50q36 -18 49 -55.5t-5 -73.5zM2137 1085l160 -320q11 -23 4 -47.5t-29 -37.5l-209 -119l-148 -267q-17 -155 -91.5 -291.5t-195.5 -236.5q-26 -22 -61 -22q-45 0 -74 35
+q-25 31 -21.5 70t34.5 65q70 59 117 128q-123 -84 -267 -101q-4 -1 -12 -1q-36 0 -63.5 24t-31.5 60q-5 40 19 71.5t64 35.5q84 10 159 55q-46 -10 -99 -10q-115 0 -218 50q-36 18 -49 55.5t5 73.5q17 35 55 48t73 -4q62 -31 134 -31q51 0 99 17q-3 0 -9.5 -0.5t-9.5 -0.5
+q-92 0 -170.5 50t-118.5 133q-17 36 -3.5 73.5t49.5 54.5q18 9 39 9q-21 0 -39 9q-36 17 -49.5 54.5t3.5 73.5q40 83 118.5 133t170.5 50h6h1q14 -2 42 -4l291 -27l239 120q14 7 29 7q40 0 57 -35z" />
+    <glyph glyph-name="uniF2A4" unicode="&#xf2a4;" horiz-adv-x="1792" 
+d="M1056 704q0 -26 19 -45t45 -19t45 19t19 45q0 146 -103 249t-249 103t-249 -103t-103 -249q0 -26 19 -45t45 -19t45 19t19 45q0 93 66 158.5t158 65.5t158 -65.5t66 -158.5zM835 1280q-117 0 -223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5q0 -26 19 -45t45 -19t45 19
+t19 45q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -55 -18 -103.5t-37.5 -74.5t-59.5 -72q-34 -39 -52 -63t-43.5 -66.5t-37 -91t-11.5 -105.5q0 -106 -75 -181t-181 -75q-26 0 -45 -19t-19 -45t19 -45t45 -19q159 0 271.5 112.5t112.5 271.5q0 41 7.5 74
+t26.5 64t33.5 50t45.5 54q35 41 53 64.5t44 67.5t37.5 93.5t11.5 108.5q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5zM591 561l226 -226l-579 -579q-12 -12 -29 -12t-29 12l-168 168q-12 12 -12 29t12 29zM1612 1524l168 -168q12 -12 12 -29t-12 -30l-233 -233
+l-26 -25l-71 -71q-66 153 -195 258l91 91l207 207q13 12 30 12t29 -12z" />
+    <glyph glyph-name="uniF2A5" unicode="&#xf2a5;" 
+d="M866 1021q0 -27 -13 -94q-11 -50 -31.5 -150t-30.5 -150q-2 -11 -4.5 -12.5t-13.5 -2.5q-20 -2 -31 -2q-58 0 -84 49.5t-26 113.5q0 88 35 174t103 124q28 14 51 14q28 0 36.5 -16.5t8.5 -47.5zM1352 597q0 14 -39 75.5t-52 66.5q-21 8 -34 8q-91 0 -226 -77l-2 2
+q3 22 27.5 135t24.5 178q0 233 -242 233q-24 0 -68 -6q-94 -17 -168.5 -89.5t-111.5 -166.5t-37 -189q0 -146 80.5 -225t227.5 -79q25 0 25 -3t-1 -5q-4 -34 -26 -117q-14 -52 -51.5 -101t-82.5 -49q-42 0 -42 47q0 24 10.5 47.5t25 39.5t29.5 28.5t26 20t11 8.5q0 3 -7 10
+q-24 22 -58.5 36.5t-65.5 14.5q-35 0 -63.5 -34t-41 -75t-12.5 -75q0 -88 51.5 -142t138.5 -54q82 0 155 53t117.5 126t65.5 153q6 22 15.5 66.5t14.5 66.5q3 12 14 18q118 60 227 60q48 0 127 -18q1 -1 4 -1q5 0 9.5 4.5t4.5 8.5zM1536 1120v-960q0 -119 -84.5 -203.5
+t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="uniF2A6" unicode="&#xf2a6;" horiz-adv-x="1535" 
+d="M744 1231q0 24 -2 38.5t-8.5 30t-21 23t-37.5 7.5q-39 0 -78 -23q-105 -58 -159 -190.5t-54 -269.5q0 -44 8.5 -85.5t26.5 -80.5t52.5 -62.5t81.5 -23.5q4 0 18 -0.5t20 0t16 3t15 8.5t7 16q16 77 48 231.5t48 231.5q19 91 19 146zM1498 575q0 -7 -7.5 -13.5t-15.5 -6.5
+l-6 1q-22 3 -62 11t-72 12.5t-63 4.5q-167 0 -351 -93q-15 -8 -21 -27q-10 -36 -24.5 -105.5t-22.5 -100.5q-23 -91 -70 -179.5t-112.5 -164.5t-154.5 -123t-185 -47q-135 0 -214.5 83.5t-79.5 219.5q0 53 19.5 117t63 116.5t97.5 52.5q38 0 120 -33.5t83 -61.5
+q0 -1 -16.5 -12.5t-39.5 -31t-46 -44.5t-39 -61t-16 -74q0 -33 16.5 -53t48.5 -20q45 0 85 31.5t66.5 78t48 105.5t32.5 107t16 90v9q0 2 -3.5 3.5t-8.5 1.5h-10t-10 -0.5t-6 -0.5q-227 0 -352 122.5t-125 348.5q0 108 34.5 221t96 210t156 167.5t204.5 89.5q52 9 106 9
+q374 0 374 -360q0 -98 -38 -273t-43 -211l3 -3q101 57 182.5 88t167.5 31q22 0 53 -13q19 -7 80 -102.5t61 -116.5z" />
+    <glyph glyph-name="uniF2A7" unicode="&#xf2a7;" horiz-adv-x="1664" 
+d="M831 863q32 0 59 -18l222 -148q61 -40 110 -97l146 -170q40 -46 29 -106l-72 -413q-6 -32 -29.5 -53.5t-55.5 -25.5l-527 -56l-352 -32h-9q-39 0 -67.5 28t-28.5 68q0 37 27 64t65 32l260 32h-448q-41 0 -69.5 30t-26.5 71q2 39 32 65t69 26l442 1l-521 64q-41 5 -66 37
+t-19 73q6 35 34.5 57.5t65.5 22.5h10l481 -60l-351 94q-38 10 -62 41.5t-18 68.5q6 36 33 58.5t62 22.5q6 0 20 -2l448 -96l217 -37q1 0 3 -0.5t3 -0.5q23 0 30.5 23t-12.5 36l-186 125q-35 23 -42 63.5t18 73.5q27 38 76 38zM761 661l186 -125l-218 37l-5 2l-36 38
+l-238 262q-1 1 -2.5 3.5t-2.5 3.5q-24 31 -18.5 70t37.5 64q31 23 68 17.5t64 -33.5l142 -147q-2 -1 -5 -3.5t-4 -4.5q-32 -45 -23 -99t55 -85zM1648 1115l15 -266q4 -73 -11 -147l-48 -219q-12 -59 -67 -87l-106 -54q2 62 -39 109l-146 170q-53 61 -117 103l-222 148
+q-34 23 -76 23q-51 0 -88 -37l-235 312q-25 33 -18 73.5t41 63.5q33 22 71.5 14t62.5 -40l266 -352l-262 455q-21 35 -10.5 75t47.5 59q35 18 72.5 6t57.5 -46l241 -420l-136 337q-15 35 -4.5 74t44.5 56q37 19 76 6t56 -51l193 -415l101 -196q8 -15 23 -17.5t27 7.5t11 26
+l-12 224q-2 41 26 71t69 31q39 0 67 -28.5t30 -67.5z" />
+    <glyph glyph-name="uniF2A8" unicode="&#xf2a8;" horiz-adv-x="1792" 
+d="M335 180q-2 0 -6 2q-86 57 -168.5 145t-139.5 180q-21 30 -21 69q0 9 2 19t4 18t7 18t8.5 16t10.5 17t10 15t12 15.5t11 14.5q184 251 452 365q-110 198 -110 211q0 19 17 29q116 64 128 64q18 0 28 -16l124 -229q92 19 192 19q266 0 497.5 -137.5t378.5 -369.5
+q20 -31 20 -69t-20 -69q-91 -142 -218.5 -253.5t-278.5 -175.5q110 -198 110 -211q0 -20 -17 -29q-116 -64 -127 -64q-19 0 -29 16l-124 229l-64 119l-444 820l7 7q-58 -24 -99 -47q3 -5 127 -234t243 -449t119 -223q0 -7 -9 -9q-13 -3 -72 -3q-57 0 -60 7l-456 841
+q-39 -28 -82 -68q24 -43 214 -393.5t190 -354.5q0 -10 -11 -10q-14 0 -82.5 22t-72.5 28l-106 197l-224 413q-44 -53 -78 -106q2 -3 18 -25t23 -34l176 -327q0 -10 -10 -10zM1165 282l49 -91q273 111 450 385q-180 277 -459 389q67 -64 103 -148.5t36 -176.5
+q0 -106 -47 -200.5t-132 -157.5zM848 896q0 -20 14 -34t34 -14q86 0 147 -61t61 -147q0 -20 14 -34t34 -14t34 14t14 34q0 126 -89 215t-215 89q-20 0 -34 -14t-14 -34zM1214 961l-9 4l7 -7z" />
+    <glyph glyph-name="uniF2A9" unicode="&#xf2a9;" horiz-adv-x="1280" 
+d="M1050 430q0 -215 -147 -374q-148 -161 -378 -161q-232 0 -378 161q-147 159 -147 374q0 147 68 270.5t189 196.5t268 73q96 0 182 -31q-32 -62 -39 -126q-66 28 -143 28q-167 0 -280.5 -123t-113.5 -291q0 -170 112.5 -288.5t281.5 -118.5t281 118.5t112 288.5
+q0 89 -32 166q66 13 123 49q41 -98 41 -212zM846 619q0 -192 -79.5 -345t-238.5 -253l-14 -1q-29 0 -62 5q83 32 146.5 102.5t99.5 154.5t58.5 189t30 192.5t7.5 178.5q0 69 -3 103q55 -160 55 -326zM791 947v-2q-73 214 -206 440q88 -59 142.5 -186.5t63.5 -251.5z
+M1035 744q-83 0 -160 75q218 120 290 247q19 37 21 56q-42 -94 -139.5 -166.5t-204.5 -97.5q-35 54 -35 113q0 37 17 79t43 68q46 44 157 74q59 16 106 58.5t74 100.5q74 -105 74 -253q0 -109 -24 -170q-32 -77 -88.5 -130.5t-130.5 -53.5z" />
+    <glyph glyph-name="uniF2AA" unicode="&#xf2aa;" 
+d="M1050 495q0 78 -28 147q-41 -25 -85 -34q22 -50 22 -114q0 -117 -77 -198.5t-193 -81.5t-193.5 81.5t-77.5 198.5q0 115 78 199.5t193 84.5q53 0 98 -19q4 43 27 87q-60 21 -125 21q-154 0 -257.5 -108.5t-103.5 -263.5t103.5 -261t257.5 -106t257.5 106.5t103.5 260.5z
+M872 850q2 -24 2 -71q0 -63 -5 -123t-20.5 -132.5t-40.5 -130t-68.5 -106t-100.5 -70.5q21 -3 42 -3h10q219 139 219 411q0 116 -38 225zM872 850q-4 80 -44 171.5t-98 130.5q92 -156 142 -302zM1207 955q0 102 -51 174q-41 -86 -124 -109q-69 -19 -109 -53.5t-40 -99.5
+q0 -40 24 -77q74 17 140.5 67t95.5 115q-4 -52 -74.5 -111.5t-138.5 -97.5q52 -52 110 -52q51 0 90 37t60 90q17 42 17 117zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5
+t84.5 -203.5z" />
+    <glyph glyph-name="uniF2AB" unicode="&#xf2ab;" 
+d="M1279 388q0 22 -22 27q-67 15 -118 59t-80 108q-7 19 -7 25q0 15 19.5 26t43 17t43 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-12 0 -32 -8t-31 -8q-4 0 -12 2q5 95 5 114q0 79 -17 114q-36 78 -103 121.5t-152 43.5q-199 0 -275 -165q-17 -35 -17 -114q0 -19 5 -114
+q-4 -2 -14 -2q-12 0 -32 7.5t-30 7.5q-21 0 -38.5 -12t-17.5 -32q0 -21 19.5 -35.5t43 -20.5t43 -17t19.5 -26q0 -6 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -46 137 -68q2 -5 6 -26t11.5 -30.5t23.5 -9.5q12 0 37.5 4.5t39.5 4.5q35 0 67 -15t54 -32.5t57.5 -32.5
+t76.5 -15q43 0 79 15t57.5 32.5t53.5 32.5t67 15q14 0 39.5 -4t38.5 -4q16 0 23 10t11 30t6 25q137 22 137 68zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5
+t103 -385.5z" />
+    <glyph glyph-name="uniF2AC" unicode="&#xf2ac;" horiz-adv-x="1664" 
+d="M848 1408q134 1 240.5 -68.5t163.5 -192.5q27 -58 27 -179q0 -47 -9 -191q14 -7 28 -7q18 0 51 13.5t51 13.5q29 0 56 -18t27 -46q0 -32 -31.5 -54t-69 -31.5t-69 -29t-31.5 -47.5q0 -15 12 -43q37 -82 102.5 -150t144.5 -101q28 -12 80 -23q28 -6 28 -35
+q0 -70 -219 -103q-7 -11 -11 -39t-14 -46.5t-33 -18.5q-20 0 -62 6.5t-64 6.5q-37 0 -62 -5q-32 -5 -63 -22.5t-58 -38t-58 -40.5t-76 -33.5t-99 -13.5q-52 0 -96.5 13.5t-75 33.5t-57.5 40.5t-58 38t-62 22.5q-26 5 -63 5q-24 0 -65.5 -7.5t-58.5 -7.5q-25 0 -35 18.5
+t-14 47.5t-11 40q-219 33 -219 103q0 29 28 35q52 11 80 23q78 32 144.5 101t102.5 150q12 28 12 43q0 28 -31.5 47.5t-69.5 29.5t-69.5 31.5t-31.5 52.5q0 27 26 45.5t55 18.5q15 0 48 -13t53 -13q18 0 32 7q-9 142 -9 190q0 122 27 180q64 137 172 198t264 63z" />
+    <glyph glyph-name="uniF2AD" unicode="&#xf2ad;" 
+d="M1280 388q0 22 -22 27q-67 14 -118 58t-80 109q-7 14 -7 25q0 15 19.5 26t42.5 17t42.5 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-11 0 -31 -8t-32 -8q-4 0 -12 2q5 63 5 115q0 78 -17 114q-36 78 -102.5 121.5t-152.5 43.5q-198 0 -275 -165q-18 -38 -18 -115
+q0 -38 6 -114q-10 -2 -15 -2q-11 0 -31.5 8t-30.5 8q-20 0 -37.5 -12.5t-17.5 -32.5q0 -21 19.5 -35.5t42.5 -20.5t42.5 -17t19.5 -26q0 -11 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -47 138 -69q2 -5 6 -26t11 -30.5t23 -9.5q13 0 38.5 5t38.5 5q35 0 67.5 -15
+t54.5 -32.5t57.5 -32.5t76.5 -15q43 0 79 15t57.5 32.5t54 32.5t67.5 15q13 0 39 -4.5t39 -4.5q15 0 22.5 9.5t11.5 31t5 24.5q138 22 138 69zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960
+q119 0 203.5 -84.5t84.5 -203.5z" />
+    <glyph glyph-name="uniF2AE" unicode="&#xf2ae;" horiz-adv-x="2304" 
+d="M2304 1536q-69 -46 -125 -92t-89 -81t-59.5 -71.5t-37.5 -57.5t-22 -44.5t-14 -29.5q-10 -18 -35.5 -136.5t-48.5 -164.5q-15 -29 -50 -60.5t-67.5 -50.5t-72.5 -41t-48 -28q-47 -31 -151 -231q-341 14 -630 -158q-92 -53 -303 -179q47 16 86 31t55 22l15 7
+q71 27 163 64.5t133.5 53.5t108 34.5t142.5 31.5q186 31 465 -7q1 0 10 -3q11 -6 14 -17t-3 -22l-194 -345q-15 -29 -47 -22q-128 24 -354 24q-146 0 -402 -44.5t-392 -46.5q-82 -1 -149 13t-107 37t-61 40t-33 34l-1 1v2q0 6 6 6q138 0 371 55q192 366 374.5 524t383.5 158
+q5 0 14.5 -0.5t38 -5t55 -12t61.5 -24.5t63 -39.5t54 -59t40 -82.5l102 177q2 4 21 42.5t44.5 86.5t61 109.5t84 133.5t100.5 137q66 82 128 141.5t121.5 96.5t92.5 53.5t88 39.5z" />
+    <glyph glyph-name="uniF2B0" unicode="&#xf2b0;" 
+d="M1322 640q0 -45 -5 -76l-236 14l224 -78q-19 -73 -58 -141l-214 103l177 -158q-44 -61 -107 -108l-157 178l103 -215q-61 -37 -140 -59l-79 228l14 -240q-38 -6 -76 -6t-76 6l14 238l-78 -226q-74 19 -140 59l103 215l-157 -178q-59 43 -108 108l178 158l-214 -104
+q-39 69 -58 141l224 79l-237 -14q-5 42 -5 76q0 35 5 77l238 -14l-225 79q19 73 58 140l214 -104l-177 159q46 61 107 108l158 -178l-103 215q67 39 140 58l77 -224l-13 236q36 6 75 6q38 0 76 -6l-14 -237l78 225q74 -19 140 -59l-103 -214l158 178q61 -47 107 -108
+l-177 -159l213 104q37 -62 58 -141l-224 -78l237 14q5 -31 5 -77zM1352 640q0 160 -78.5 295.5t-213 214t-292.5 78.5q-119 0 -227 -46.5t-186.5 -125t-124.5 -187.5t-46 -229q0 -119 46 -228t124.5 -187.5t186.5 -125t227 -46.5q158 0 292.5 78.5t213 214t78.5 294.5z
+M1425 1023v-766l-657 -383l-657 383v766l657 383zM768 -183l708 412v823l-708 411l-708 -411v-823zM1536 1088v-896l-768 -448l-768 448v896l768 448z" />
+    <glyph glyph-name="uniF2B1" unicode="&#xf2b1;" horiz-adv-x="1664" 
+d="M339 1318h691l-26 -72h-665q-110 0 -188.5 -79t-78.5 -189v-771q0 -95 60.5 -169.5t153.5 -93.5q23 -5 98 -5v-72h-45q-140 0 -239.5 100t-99.5 240v771q0 140 99.5 240t239.5 100zM1190 1536h247l-482 -1294q-23 -61 -40.5 -103.5t-45 -98t-54 -93.5t-64.5 -78.5
+t-79.5 -65t-95.5 -41t-116 -18.5v195q163 26 220 182q20 52 20 105q0 54 -20 106l-285 733h228l187 -585zM1664 978v-1111h-795q37 55 45 73h678v1038q0 85 -49.5 155t-129.5 99l25 67q101 -34 163.5 -123.5t62.5 -197.5z" />
+    <glyph glyph-name="uniF2B2" unicode="&#xf2b2;" horiz-adv-x="1792" 
+d="M852 1227q0 -29 -17 -52.5t-45 -23.5t-45 23.5t-17 52.5t17 52.5t45 23.5t45 -23.5t17 -52.5zM688 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50 -21.5t-20 -51.5v-114q0 -30 20.5 -52t49.5 -22q30 0 50.5 22t20.5 52zM860 -149v114q0 30 -20 51.5t-50 21.5t-50.5 -21.5
+t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22q29 0 49.5 22t20.5 52zM1034 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1208 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114
+q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1476 535q-84 -160 -232 -259.5t-323 -99.5q-123 0 -229.5 51.5t-178.5 137t-113 197.5t-41 232q0 88 21 174q-104 -175 -104 -390q0 -162 65 -312t185 -251q30 57 91 57q56 0 86 -50q32 50 87 50q56 0 86 -50q32 50 87 50t87 -50
+q30 50 86 50q28 0 52.5 -15.5t37.5 -40.5q112 94 177 231.5t73 287.5zM1326 564q0 75 -72 75q-17 0 -47 -6q-95 -19 -149 -19q-226 0 -226 243q0 86 30 204q-83 -127 -83 -275q0 -150 89 -260.5t235 -110.5q111 0 210 70q13 48 13 79zM884 1223q0 50 -32 89.5t-81 39.5
+t-81 -39.5t-32 -89.5q0 -51 31.5 -90.5t81.5 -39.5t81.5 39.5t31.5 90.5zM1513 884q0 96 -37.5 179t-113 137t-173.5 54q-77 0 -149 -35t-127 -94q-48 -159 -48 -268q0 -104 45.5 -157t147.5 -53q53 0 142 19q36 6 53 6q51 0 77.5 -28t26.5 -80q0 -26 -4 -46
+q75 68 117.5 165.5t42.5 200.5zM1792 667q0 -111 -33.5 -249.5t-93.5 -204.5q-58 -64 -195 -142.5t-228 -104.5l-4 -1v-114q0 -43 -29.5 -75t-72.5 -32q-56 0 -86 50q-32 -50 -87 -50t-87 50q-30 -50 -86 -50q-55 0 -87 50q-30 -50 -86 -50q-47 0 -75 33.5t-28 81.5
+q-90 -68 -198 -68q-118 0 -211 80q54 1 106 20q-113 31 -182 127q32 -7 71 -7q89 0 164 46q-192 192 -240 306q-24 56 -24 160q0 57 9 125.5t31.5 146.5t55 141t86.5 105t120 42q59 0 81 -52q19 29 42 54q2 3 12 13t13 16q10 15 23 38t25 42t28 39q87 111 211.5 177
+t260.5 66q35 0 62 -4q59 64 146 64q83 0 140 -57q5 -5 5 -12q0 -5 -6 -13.5t-12.5 -16t-16 -17l-10.5 -10.5q17 -6 36 -18t19 -24q0 -6 -16 -25q157 -138 197 -378q25 30 60 30q45 0 100 -49q90 -80 90 -279z" />
+    <glyph glyph-name="uniF2B3" unicode="&#xf2b3;" 
+d="M917 631q0 33 -6 64h-362v-132h217q-12 -76 -74.5 -120.5t-142.5 -44.5q-99 0 -169 71.5t-70 170.5t70 170.5t169 71.5q93 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585h109v110
+h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" />
+    <glyph glyph-name="uniF2B4" unicode="&#xf2b4;" 
+d="M1536 1024v-839q0 -48 -49 -62q-174 -52 -338 -52q-73 0 -215.5 29.5t-227.5 29.5q-164 0 -370 -48v-338h-160v1368q-63 25 -101 81t-38 124q0 91 64 155t155 64t155 -64t64 -155q0 -68 -38 -124t-101 -81v-68q190 44 343 44q99 0 198 -15q14 -2 111.5 -22.5t149.5 -20.5
+q77 0 165 18q11 2 80 21t89 19q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="uniF2B5" unicode="&#xf2b5;" horiz-adv-x="2304" 
+d="M192 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32zM1665 442q-10 13 -38.5 50t-41.5 54t-38 49t-42.5 53t-40.5 47t-45 49l-125 -140q-83 -94 -208.5 -92t-205.5 98q-57 69 -56.5 158t58.5 157l177 206q-22 11 -51 16.5t-47.5 6t-56.5 -0.5t-49 -1q-92 0 -158 -66
+l-158 -158h-155v-544q5 0 21 0.5t22 0t19.5 -2t20.5 -4.5t17.5 -8.5t18.5 -13.5l297 -292q115 -111 227 -111q78 0 125 47q57 -20 112.5 8t72.5 85q74 -6 127 44q20 18 36 45.5t14 50.5q10 -10 43 -10q43 0 77 21t49.5 53t12 71.5t-30.5 73.5zM1824 384h96v512h-93l-157 180
+q-66 76 -169 76h-167q-89 0 -146 -67l-209 -243q-28 -33 -28 -75t27 -75q43 -51 110 -52t111 49l193 218q25 23 53.5 21.5t47 -27t8.5 -56.5q16 -19 56 -63t60 -68q29 -36 82.5 -105.5t64.5 -84.5q52 -66 60 -140zM2112 384q40 0 56 32t0 64t-56 32t-56 -32t0 -64t56 -32z
+M2304 960v-640q0 -26 -19 -45t-45 -19h-434q-27 -65 -82 -106.5t-125 -51.5q-33 -48 -80.5 -81.5t-102.5 -45.5q-42 -53 -104.5 -81.5t-128.5 -24.5q-60 -34 -126 -39.5t-127.5 14t-117 53.5t-103.5 81l-287 282h-358q-26 0 -45 19t-19 45v672q0 26 19 45t45 19h421
+q14 14 47 48t47.5 48t44 40t50.5 37.5t51 25.5t62 19.5t68 5.5h117q99 0 181 -56q82 56 181 56h167q35 0 67 -6t56.5 -14.5t51.5 -26.5t44.5 -31t43 -39.5t39 -42t41 -48t41.5 -48.5h355q26 0 45 -19t19 -45z" />
+    <glyph glyph-name="uniF2B6" unicode="&#xf2b6;" horiz-adv-x="1792" 
+d="M1792 882v-978q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v978q0 15 11 24q8 7 39 34.5t41.5 36t45.5 37.5t70 55.5t96 73t143.5 107t192.5 140.5q5 4 52.5 40t71.5 52.5t64 35t69 18.5t69 -18.5t65 -35.5t71 -52t52 -40q110 -80 192.5 -140.5t143.5 -107
+t96 -73t70 -55.5t45.5 -37.5t41.5 -36t39 -34.5q11 -9 11 -24zM1228 297q263 191 345 252q11 8 12.5 20.5t-6.5 23.5l-38 52q-8 11 -21 12.5t-24 -6.5q-231 -169 -343 -250q-5 -3 -52 -39t-71.5 -52.5t-64.5 -35t-69 -18.5t-69 18.5t-64.5 35t-71.5 52.5t-52 39
+q-186 134 -343 250q-11 8 -24 6.5t-21 -12.5l-38 -52q-8 -11 -6.5 -23.5t12.5 -20.5q82 -61 345 -252q10 -8 50 -38t65 -47t64 -39.5t77.5 -33.5t75.5 -11t75.5 11t79 34.5t64.5 39.5t65 47.5t48 36.5z" />
+    <glyph glyph-name="uniF2B7" unicode="&#xf2b7;" horiz-adv-x="1792" 
+d="M1474 623l39 -51q8 -11 6.5 -23.5t-11.5 -20.5q-43 -34 -126.5 -98.5t-146.5 -113t-67 -51.5q-39 -32 -60 -48t-60.5 -41t-76.5 -36.5t-74 -11.5h-1h-1q-37 0 -74 11.5t-76 36.5t-61 41.5t-60 47.5q-5 4 -65 50.5t-143.5 111t-122.5 94.5q-11 8 -12.5 20.5t6.5 23.5
+l37 52q8 11 21.5 13t24.5 -7q94 -73 306 -236q5 -4 43.5 -35t60.5 -46.5t56.5 -32.5t58.5 -17h1h1q24 0 58.5 17t56.5 32.5t60.5 46.5t43.5 35q258 198 313 242q11 8 24 6.5t21 -12.5zM1664 -96v928q-90 83 -159 139q-91 74 -389 304q-3 2 -43 35t-61 48t-56 32.5t-59 17.5
+h-1h-1q-24 0 -59 -17.5t-56 -32.5t-61 -48t-43 -35q-215 -166 -315.5 -245.5t-129.5 -104t-82 -74.5q-14 -12 -21 -19v-928q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 832v-928q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v928q0 56 41 94
+q123 114 350 290.5t233 181.5q36 30 59 47.5t61.5 42t76 36.5t74.5 12h1h1q37 0 74.5 -12t76 -36.5t61.5 -42t59 -47.5q43 -36 156 -122t226 -177t201 -173q41 -38 41 -94z" />
+    <glyph glyph-name="uniF2B8" unicode="&#xf2b8;" 
+d="M330 1l202 -214l-34 236l-216 213zM556 -225l274 218l-11 245l-300 -215zM245 413l227 -213l-48 327l-245 204zM495 189l317 214l-14 324l-352 -200zM843 178l95 -80l-2 239l-103 79q0 -1 1 -8.5t0 -12t-5 -7.5l-78 -52l85 -70q7 -6 7 -88zM138 930l256 -200l-68 465
+l-279 173zM1173 267l15 234l-230 -164l2 -240zM417 722l373 194l-19 441l-423 -163zM1270 357l20 233l-226 142l-2 -105l144 -95q6 -4 4 -9l-7 -119zM1461 496l30 222l-179 -128l-20 -228zM1273 329l-71 49l-8 -117q0 -5 -4 -8l-234 -187q-7 -5 -14 0l-98 83l7 -161
+q0 -5 -4 -8l-293 -234q-4 -2 -6 -2q-8 2 -8 3l-228 242q-4 4 -59 277q-2 7 5 11l61 37q-94 86 -95 92l-72 351q-2 7 6 12l94 45q-133 100 -135 108l-96 466q-2 10 7 13l433 135q5 0 8 -1l317 -153q6 -4 6 -9l20 -463q0 -7 -6 -10l-118 -61l126 -85q5 -2 5 -8l5 -123l121 74
+q5 4 11 0l84 -56l3 110q0 6 5 9l206 126q6 3 11 0l245 -135q4 -4 5 -7t-6.5 -60t-17.5 -124.5t-10 -70.5q0 -5 -4 -7l-191 -153q-6 -5 -13 0z" />
+    <glyph glyph-name="uniF2B9" unicode="&#xf2b9;" horiz-adv-x="1664" 
+d="M1201 298q0 57 -5.5 107t-21 100.5t-39.5 86t-64 58t-91 22.5q-6 -4 -33.5 -20.5t-42.5 -24.5t-40.5 -20t-49 -17t-46.5 -5t-46.5 5t-49 17t-40.5 20t-42.5 24.5t-33.5 20.5q-51 0 -91 -22.5t-64 -58t-39.5 -86t-21 -100.5t-5.5 -107q0 -73 42 -121.5t103 -48.5h576
+q61 0 103 48.5t42 121.5zM1028 892q0 108 -76.5 184t-183.5 76t-183.5 -76t-76.5 -184q0 -107 76.5 -183t183.5 -76t183.5 76t76.5 183zM1664 352v-192q0 -14 -9 -23t-23 -9h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216
+q66 0 113 -47t47 -113v-224h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-96v-128h96q14 0 23 -9t9 -23z" />
+    <glyph glyph-name="uniF2BA" unicode="&#xf2ba;" horiz-adv-x="1664" 
+d="M1028 892q0 -107 -76.5 -183t-183.5 -76t-183.5 76t-76.5 183q0 108 76.5 184t183.5 76t183.5 -76t76.5 -184zM980 672q46 0 82.5 -17t60 -47.5t39.5 -67t24 -81t11.5 -82.5t3.5 -79q0 -67 -39.5 -118.5t-105.5 -51.5h-576q-66 0 -105.5 51.5t-39.5 118.5q0 48 4.5 93.5
+t18.5 98.5t36.5 91.5t63 64.5t93.5 26h5q7 -4 32 -19.5t35.5 -21t33 -17t37 -16t35 -9t39.5 -4.5t39.5 4.5t35 9t37 16t33 17t35.5 21t32 19.5zM1664 928q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-128h96
+q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-96v-224q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h1216q66 0 113 -47t47 -113v-224h96q13 0 22.5 -9.5t9.5 -22.5v-192zM1408 -96v1472q0 13 -9.5 22.5t-22.5 9.5h-1216
+q-13 0 -22.5 -9.5t-9.5 -22.5v-1472q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5z" />
+    <glyph glyph-name="uniF2BB" unicode="&#xf2bb;" horiz-adv-x="2048" 
+d="M1024 405q0 64 -9 117.5t-29.5 103t-60.5 78t-97 28.5q-6 -4 -30 -18t-37.5 -21.5t-35.5 -17.5t-43 -14.5t-42 -4.5t-42 4.5t-43 14.5t-35.5 17.5t-37.5 21.5t-30 18q-57 0 -97 -28.5t-60.5 -78t-29.5 -103t-9 -117.5t37 -106.5t91 -42.5h512q54 0 91 42.5t37 106.5z
+M867 925q0 94 -66.5 160.5t-160.5 66.5t-160.5 -66.5t-66.5 -160.5t66.5 -160.5t160.5 -66.5t160.5 66.5t66.5 160.5zM1792 416v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1792 676v56q0 15 -10.5 25.5t-25.5 10.5h-568
+q-15 0 -25.5 -10.5t-10.5 -25.5v-56q0 -15 10.5 -25.5t25.5 -10.5h568q15 0 25.5 10.5t10.5 25.5zM1792 928v64q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-352v96q0 14 -9 23t-23 9
+h-64q-14 0 -23 -9t-9 -23v-96h-768v96q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-96h-352q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2BC" unicode="&#xf2bc;" horiz-adv-x="2048" 
+d="M1024 405q0 -64 -37 -106.5t-91 -42.5h-512q-54 0 -91 42.5t-37 106.5t9 117.5t29.5 103t60.5 78t97 28.5q6 -4 30 -18t37.5 -21.5t35.5 -17.5t43 -14.5t42 -4.5t42 4.5t43 14.5t35.5 17.5t37.5 21.5t30 18q57 0 97 -28.5t60.5 -78t29.5 -103t9 -117.5zM867 925
+q0 -94 -66.5 -160.5t-160.5 -66.5t-160.5 66.5t-66.5 160.5t66.5 160.5t160.5 66.5t160.5 -66.5t66.5 -160.5zM1792 480v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1792 732v-56q0 -15 -10.5 -25.5t-25.5 -10.5h-568
+q-15 0 -25.5 10.5t-10.5 25.5v56q0 15 10.5 25.5t25.5 10.5h568q15 0 25.5 -10.5t10.5 -25.5zM1792 992v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM1920 32v1216q0 13 -9.5 22.5t-22.5 9.5h-1728q-13 0 -22.5 -9.5
+t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h352v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h768v96q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-96h352q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113
+t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2BD" unicode="&#xf2bd;" horiz-adv-x="1792" 
+d="M1523 197q-22 155 -87.5 257.5t-184.5 118.5q-67 -74 -159.5 -115.5t-195.5 -41.5t-195.5 41.5t-159.5 115.5q-119 -16 -184.5 -118.5t-87.5 -257.5q106 -150 271 -237.5t356 -87.5t356 87.5t271 237.5zM1280 896q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5
+t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1792 640q0 -182 -71 -347.5t-190.5 -286t-285.5 -191.5t-349 -71q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2BE" unicode="&#xf2be;" horiz-adv-x="1792" 
+d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348q0 -181 -70.5 -347t-190.5 -286t-286 -191.5t-349 -71.5t-349 71t-285.5 191.5t-190.5 286t-71 347.5t71 348t191 286t286 191t348 71zM1515 185q149 205 149 455q0 156 -61 298t-164 245t-245 164t-298 61t-298 -61
+t-245 -164t-164 -245t-61 -298q0 -250 149 -455q66 327 306 327q131 -128 313 -128t313 128q240 0 306 -327zM1280 832q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5z" />
+    <glyph glyph-name="uniF2C0" unicode="&#xf2c0;" 
+d="M1201 752q47 -14 89.5 -38t89 -73t79.5 -115.5t55 -172t22 -236.5q0 -154 -100 -263.5t-241 -109.5h-854q-141 0 -241 109.5t-100 263.5q0 131 22 236.5t55 172t79.5 115.5t89 73t89.5 38q-79 125 -79 272q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5
+t198.5 -40.5t163.5 -109.5t109.5 -163.5t40.5 -198.5q0 -147 -79 -272zM768 1408q-159 0 -271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5zM1195 -128q88 0 150.5 71.5t62.5 173.5q0 239 -78.5 377t-225.5 145
+q-145 -127 -336 -127t-336 127q-147 -7 -225.5 -145t-78.5 -377q0 -102 62.5 -173.5t150.5 -71.5h854z" />
+    <glyph glyph-name="uniF2C1" unicode="&#xf2c1;" horiz-adv-x="1280" 
+d="M1024 278q0 -64 -37 -107t-91 -43h-512q-54 0 -91 43t-37 107t9 118t29.5 104t61 78.5t96.5 28.5q80 -75 188 -75t188 75q56 0 96.5 -28.5t61 -78.5t29.5 -104t9 -118zM870 797q0 -94 -67.5 -160.5t-162.5 -66.5t-162.5 66.5t-67.5 160.5t67.5 160.5t162.5 66.5
+t162.5 -66.5t67.5 -160.5zM1152 -96v1376h-1024v-1376q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1280 1376v-1472q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v1472q0 66 47 113t113 47h352v-96q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v96h352
+q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2C2" unicode="&#xf2c2;" horiz-adv-x="2048" 
+d="M896 324q0 54 -7.5 100.5t-24.5 90t-51 68.5t-81 25q-64 -64 -156 -64t-156 64q-47 0 -81 -25t-51 -68.5t-24.5 -90t-7.5 -100.5q0 -55 31.5 -93.5t75.5 -38.5h426q44 0 75.5 38.5t31.5 93.5zM768 768q0 80 -56 136t-136 56t-136 -56t-56 -136t56 -136t136 -56t136 56
+t56 136zM1792 288v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1408 544v64q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1792 544v64q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23
+v-64q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1792 800v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM128 1152h1792v96q0 14 -9 23t-23 9h-1728q-14 0 -23 -9t-9 -23v-96zM2048 1248v-1216q0 -66 -47 -113t-113 -47h-1728
+q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2C3" unicode="&#xf2c3;" horiz-adv-x="2048" 
+d="M896 324q0 -55 -31.5 -93.5t-75.5 -38.5h-426q-44 0 -75.5 38.5t-31.5 93.5q0 54 7.5 100.5t24.5 90t51 68.5t81 25q64 -64 156 -64t156 64q47 0 81 -25t51 -68.5t24.5 -90t7.5 -100.5zM768 768q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z
+M1792 352v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1408 608v-64q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h320q14 0 23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v64
+q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 864v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23zM1920 32v1120h-1792v-1120q0 -13 9.5 -22.5t22.5 -9.5h1728q13 0 22.5 9.5t9.5 22.5zM2048 1248v-1216q0 -66 -47 -113t-113 -47
+h-1728q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1728q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2C4" unicode="&#xf2c4;" horiz-adv-x="1792" 
+d="M1255 749q0 318 -105 474.5t-330 156.5q-222 0 -326 -157t-104 -474q0 -316 104 -471.5t326 -155.5q74 0 131 17q-22 43 -39 73t-44 65t-53.5 56.5t-63 36t-77.5 14.5q-46 0 -79 -16l-49 97q105 91 276 91q132 0 215.5 -54t150.5 -155q67 149 67 402zM1645 117h117
+q3 -27 -2 -67t-26.5 -95t-58 -100.5t-107 -78t-162.5 -32.5q-71 0 -130.5 19t-105.5 56t-79 78t-66 96q-97 -27 -205 -27q-150 0 -292.5 58t-253 158.5t-178 249t-67.5 317.5q0 170 67.5 319.5t178.5 250.5t253.5 159t291.5 58q121 0 238.5 -36t217 -106t176 -164.5
+t119.5 -219t43 -261.5q0 -190 -80.5 -347.5t-218.5 -264.5q47 -70 93.5 -106.5t104.5 -36.5q61 0 94 37.5t38 85.5z" />
+    <glyph glyph-name="uniF2C5" unicode="&#xf2c5;" horiz-adv-x="2304" 
+d="M453 -101q0 -21 -16 -37.5t-37 -16.5q-1 0 -13 3q-63 15 -162 140q-225 284 -225 676q0 341 213 614q39 51 95 103.5t94 52.5q19 0 35 -13.5t16 -32.5q0 -27 -63 -90q-98 -102 -147 -184q-119 -199 -119 -449q0 -281 123 -491q50 -85 136 -173q2 -3 14.5 -16t19.5 -21
+t17 -20.5t14.5 -23.5t4.5 -21zM1796 33q0 -29 -17.5 -48.5t-46.5 -19.5h-1081q-26 0 -45 19t-19 45q0 29 17.5 48.5t46.5 19.5h1081q26 0 45 -19t19 -45zM1581 644q0 -134 -67 -233q-25 -38 -69.5 -78.5t-83.5 -60.5q-16 -10 -27 -10q-7 0 -15 6t-8 12q0 9 19 30t42 46
+t42 67.5t19 88.5q0 76 -35 130q-29 42 -46 42q-3 0 -3 -5q0 -12 7.5 -35.5t7.5 -36.5q0 -22 -21.5 -35t-44.5 -13q-66 0 -66 76q0 15 1.5 44t1.5 44q0 25 -10 46q-13 25 -42 53.5t-51 28.5q-5 0 -7 -0.5t-3.5 -2.5t-1.5 -6q0 -2 16 -26t16 -54q0 -37 -19 -68t-46 -54
+t-53.5 -46t-45.5 -54t-19 -68q0 -98 42 -160q29 -43 79 -63q16 -5 17 -10q1 -2 1 -5q0 -16 -18 -16q-6 0 -33 11q-119 43 -195 139.5t-76 218.5q0 55 24.5 115.5t60 115t70.5 108.5t59.5 113.5t24.5 111.5q0 53 -25 94q-29 48 -56 64q-19 9 -19 21q0 20 41 20q50 0 110 -29
+q41 -19 71 -44.5t49.5 -51t33.5 -62.5t22 -69t16 -80q0 -1 3 -17.5t4.5 -25t5.5 -25t9 -27t11 -21.5t14.5 -16.5t18.5 -5.5q23 0 37 14t14 37q0 25 -20 67t-20 52t10 10q27 0 93 -70q72 -76 102.5 -156t30.5 -186zM2304 615q0 -274 -138 -503q-19 -32 -48 -72t-68 -86.5
+t-81 -77t-74 -30.5q-16 0 -31 15.5t-15 31.5q0 15 29 50.5t68.5 77t48.5 52.5q183 230 183 531q0 131 -20.5 235t-72.5 211q-58 119 -163 228q-2 3 -13 13.5t-16.5 16.5t-15 17.5t-15 20t-9.5 18.5t-4 19q0 19 16 35.5t35 16.5q70 0 196 -169q98 -131 146 -273t60 -314
+q2 -42 2 -64z" />
+    <glyph glyph-name="uniF2C6" unicode="&#xf2c6;" horiz-adv-x="1792" 
+d="M1189 229l147 693q9 44 -10.5 63t-51.5 7l-864 -333q-29 -11 -39.5 -25t-2.5 -26.5t32 -19.5l221 -69l513 323q21 14 32 6q7 -5 -4 -15l-415 -375v0v0l-16 -228q23 0 45 22l108 104l224 -165q64 -36 81 38zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71
+t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2C7" unicode="&#xf2c7;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v907h128v-907q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2C8" unicode="&#xf2c8;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v651h128v-651q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2C9" unicode="&#xf2c9;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v395h128v-395q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2CA" unicode="&#xf2ca;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 60 35 110t93 71v139h128v-139q58 -21 93 -71t35 -110zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5
+t93.5 226.5zM896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192
+v128h192z" />
+    <glyph glyph-name="uniF2CB" unicode="&#xf2cb;" horiz-adv-x="1024" 
+d="M640 192q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 79 56 135.5t136 56.5t136 -56.5t56 -135.5zM768 192q0 77 -34 144t-94 112v768q0 80 -56 136t-136 56t-136 -56t-56 -136v-768q-60 -45 -94 -112t-34 -144q0 -133 93.5 -226.5t226.5 -93.5t226.5 93.5t93.5 226.5z
+M896 192q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 182 128 313v711q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5v-711q128 -131 128 -313zM1024 768v-128h-192v128h192zM1024 1024v-128h-192v128h192zM1024 1280v-128h-192v128h192z" />
+    <glyph glyph-name="uniF2CC" unicode="&#xf2cc;" horiz-adv-x="1920" 
+d="M1433 1287q10 -10 10 -23t-10 -23l-626 -626q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l44 44q-72 91 -81.5 207t46.5 215q-74 71 -176 71q-106 0 -181 -75t-75 -181v-1280h-256v1280q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5q106 0 201 -41
+t166 -115q94 39 197 24.5t185 -79.5l44 44q10 10 23 10t23 -10zM1344 1024q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1600 896q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1856 1024q26 0 45 -19t19 -45t-19 -45t-45 -19
+t-45 19t-19 45t19 45t45 19zM1216 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1408 832q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM1728 896q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 768
+q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 640q-26 0 -45 19t-19 45t19 45t45 19t45 -19t19 -45t-19 -45t-45 -19zM1600 768q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 512q-26 0 -45 19t-19 45t19 45t45 19t45 -19
+t19 -45t-19 -45t-45 -19zM1472 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1344 512q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1216 384
+q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1088 256q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19z" />
+    <glyph glyph-name="uniF2CD" unicode="&#xf2cd;" horiz-adv-x="1792" 
+d="M1664 448v-192q0 -169 -128 -286v-194q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v118q-63 -22 -128 -22h-768q-65 0 -128 22v-110q0 -17 -9.5 -28.5t-22.5 -11.5h-64q-13 0 -22.5 11.5t-9.5 28.5v186q-128 117 -128 286v192h1536zM704 864q0 -14 -9 -23t-23 -9t-23 9
+t-9 23t9 23t23 9t23 -9t9 -23zM768 928q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM704 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 992q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1056q0 -14 -9 -23t-23 -9t-23 9
+t-9 23t9 23t23 9t23 -9t9 -23zM704 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1792 608v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v640q0 106 75 181t181 75q108 0 184 -78q46 19 98 12t93 -39l22 22q11 11 22 0l42 -42
+q11 -11 0 -22l-314 -314q-11 -11 -22 0l-42 42q-11 11 0 22l22 22q-36 46 -40.5 104t23.5 108q-37 35 -88 35q-53 0 -90.5 -37.5t-37.5 -90.5v-640h1504q14 0 23 -9t9 -23zM896 1056q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1120q0 -14 -9 -23t-23 -9
+t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM768 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1120q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM896 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM832 1248q0 -14 -9 -23
+t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1024 1184q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM960 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23zM1088 1248q0 -14 -9 -23t-23 -9t-23 9t-9 23t9 23t23 9t23 -9t9 -23z" />
+    <glyph glyph-name="uniF2CE" unicode="&#xf2ce;" 
+d="M994 344q0 -86 -17 -197q-31 -215 -55 -313q-22 -90 -152 -90t-152 90q-24 98 -55 313q-17 110 -17 197q0 168 224 168t224 -168zM1536 768q0 -240 -134 -434t-350 -280q-8 -3 -15 3t-6 15q7 48 10 66q4 32 6 47q1 9 9 12q159 81 255.5 234t96.5 337q0 180 -91 330.5
+t-247 234.5t-337 74q-124 -7 -237 -61t-193.5 -140.5t-128 -202t-46.5 -240.5q1 -184 99 -336.5t257 -231.5q7 -3 9 -12q3 -21 6 -45q1 -9 5 -32.5t6 -35.5q1 -9 -6.5 -15t-15.5 -2q-148 58 -261 169.5t-173.5 264t-52.5 319.5q7 143 66 273.5t154.5 227t225 157.5t272.5 70
+q164 10 315.5 -46.5t261 -160.5t175 -250.5t65.5 -308.5zM994 800q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5zM1282 768q0 -122 -53.5 -228.5t-146.5 -177.5q-8 -6 -16 -2t-10 14q-6 52 -29 92q-7 10 3 20
+q58 54 91 127t33 155q0 111 -58.5 204t-157.5 141.5t-212 36.5q-133 -15 -229 -113t-109 -231q-10 -92 23.5 -176t98.5 -144q10 -10 3 -20q-24 -41 -29 -93q-2 -9 -10 -13t-16 2q-95 74 -148.5 183t-51.5 234q3 131 69 244t177 181.5t241 74.5q144 7 268 -60t196.5 -187.5
+t72.5 -263.5z" />
+    <glyph glyph-name="uniF2D0" unicode="&#xf2d0;" horiz-adv-x="1792" 
+d="M256 128h1280v768h-1280v-768zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D1" unicode="&#xf2d1;" horiz-adv-x="1792" 
+d="M1792 224v-192q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D2" unicode="&#xf2d2;" horiz-adv-x="2048" 
+d="M256 0h768v512h-768v-512zM1280 512h512v768h-768v-256h96q66 0 113 -47t47 -113v-352zM2048 1376v-960q0 -66 -47 -113t-113 -47h-608v-352q0 -66 -47 -113t-113 -47h-960q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h608v352q0 66 47 113t113 47h960q66 0 113 -47
+t47 -113z" />
+    <glyph glyph-name="uniF2D3" unicode="&#xf2d3;" horiz-adv-x="1792" 
+d="M1175 215l146 146q10 10 10 23t-10 23l-233 233l233 233q10 10 10 23t-10 23l-146 146q-10 10 -23 10t-23 -10l-233 -233l-233 233q-10 10 -23 10t-23 -10l-146 -146q-10 -10 -10 -23t10 -23l233 -233l-233 -233q-10 -10 -10 -23t10 -23l146 -146q10 -10 23 -10t23 10
+l233 233l233 -233q10 -10 23 -10t23 10zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D4" unicode="&#xf2d4;" horiz-adv-x="1792" 
+d="M1257 425l-146 -146q-10 -10 -23 -10t-23 10l-169 169l-169 -169q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l169 169l-169 169q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l169 -169l169 169q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23
+l-169 -169l169 -169q10 -10 10 -23t-10 -23zM256 128h1280v1024h-1280v-1024zM1792 1248v-1216q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D5" unicode="&#xf2d5;" horiz-adv-x="1792" 
+d="M1070 358l306 564h-654l-306 -564h654zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2D6" unicode="&#xf2d6;" horiz-adv-x="1794" 
+d="M1291 1060q-15 17 -35 8.5t-26 -28.5t5 -38q14 -17 40 -14.5t34 20.5t-18 52zM895 814q-8 -8 -19.5 -8t-18.5 8q-8 8 -8 19t8 18q7 8 18.5 8t19.5 -8q7 -7 7 -18t-7 -19zM1060 740l-35 -35q-12 -13 -29.5 -13t-30.5 13l-38 38q-12 13 -12 30t12 30l35 35q12 12 29.5 12
+t30.5 -12l38 -39q12 -12 12 -29.5t-12 -29.5zM951 870q-7 -8 -18.5 -8t-19.5 8q-7 8 -7 19t7 19q8 8 19 8t19 -8t8 -19t-8 -19zM1354 968q-34 -64 -107.5 -85.5t-127.5 16.5q-38 28 -61 66.5t-21 87.5t39 92t75.5 53t70.5 -5t70 -51q2 -2 13 -12.5t14.5 -13.5t13 -13.5
+t12.5 -15.5t10 -15.5t8.5 -18t4 -18.5t1 -21t-5 -22t-9.5 -24zM1555 486q3 20 -8.5 34.5t-27.5 21.5t-33 17t-23 20q-40 71 -84 98.5t-113 11.5q19 13 40 18.5t33 4.5l12 -1q2 45 -34 90q6 20 6.5 40.5t-2.5 30.5l-3 10q43 24 71 65t34 91q10 84 -43 150.5t-137 76.5
+q-60 7 -114 -18.5t-82 -74.5q-30 -51 -33.5 -101t14.5 -87t43.5 -64t56.5 -42q-45 4 -88 36t-57 88q-28 108 32 222q-16 21 -29 32q-50 0 -89 -19q19 24 42 37t36 14l13 1q0 50 -13 78q-10 21 -32.5 28.5t-47 -3.5t-37.5 -40q2 4 4 7q-7 -28 -6.5 -75.5t19 -117t48.5 -122.5
+q-25 -14 -47 -36q-35 -16 -85.5 -70.5t-84.5 -101.5l-33 -46q-90 -34 -181 -125.5t-75 -162.5q1 -16 11 -27q-15 -12 -30 -30q-21 -25 -21 -54t21.5 -40t63.5 6q41 19 77 49.5t55 60.5q-2 2 -6.5 5t-20.5 7.5t-33 3.5q23 5 51 12.5t40 10t27.5 6t26 4t23.5 0.5q14 -7 22 34
+q7 37 7 90q0 102 -40 150q106 -103 101 -219q-1 -29 -15 -50t-27 -27l-13 -6q-4 -7 -19 -32t-26 -45.5t-26.5 -52t-25 -61t-17 -63t-6.5 -66.5t10 -63q-35 54 -37 80q-22 -24 -34.5 -39t-33.5 -42t-30.5 -46t-16.5 -41t-0.5 -38t25.5 -27q45 -25 144 64t190.5 221.5
+t122.5 228.5q86 52 145 115.5t86 119.5q47 -93 154 -178q104 -83 167 -80q39 2 46 43zM1794 640q0 -182 -71 -348t-191 -286t-286.5 -191t-348.5 -71t-348.5 71t-286.5 191t-191 286t-71 348t71 348t191 286t286.5 191t348.5 71t348.5 -71t286.5 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2D7" unicode="&#xf2d7;" 
+d="M518 1353v-655q103 -1 191.5 1.5t125.5 5.5l37 3q68 2 90.5 24.5t39.5 94.5l33 142h103l-14 -322l7 -319h-103l-29 127q-15 68 -45 93t-84 26q-87 8 -352 8v-556q0 -78 43.5 -115.5t133.5 -37.5h357q35 0 59.5 2t55 7.5t54 18t48.5 32t46 50.5t39 73l93 216h89
+q-6 -37 -31.5 -252t-30.5 -276q-146 5 -263.5 8t-162.5 4h-44h-628l-376 -12v102l127 25q67 13 91.5 37t25.5 79l8 643q3 402 -8 645q-2 61 -25.5 84t-91.5 36l-127 24v102l376 -12h702q139 0 374 27q-6 -68 -14 -194.5t-12 -219.5l-5 -92h-93l-32 124q-31 121 -74 179.5
+t-113 58.5h-548q-28 0 -35.5 -8.5t-7.5 -30.5z" />
+    <glyph glyph-name="uniF2D8" unicode="&#xf2d8;" 
+d="M922 739v-182q0 -4 0.5 -15t0 -15l-1.5 -12t-3.5 -11.5t-6.5 -7.5t-11 -5.5t-16 -1.5v309q9 0 16 -1t11 -5t6.5 -5.5t3.5 -9.5t1 -10.5v-13.5v-14zM1238 643v-121q0 -1 0.5 -12.5t0 -15.5t-2.5 -11.5t-7.5 -10.5t-13.5 -3q-9 0 -14 9q-4 10 -4 165v7v8.5v9t1.5 8.5l3.5 7
+t5 5.5t8 1.5q6 0 10 -1.5t6.5 -4.5t4 -6t2 -8.5t0.5 -8v-9.5v-9zM180 407h122v472h-122v-472zM614 407h106v472h-159l-28 -221q-20 148 -32 221h-158v-472h107v312l45 -312h76l43 319v-319zM1039 712q0 67 -5 90q-3 16 -11 28.5t-17 20.5t-25 14t-26.5 8.5t-31 4t-29 1.5
+h-29.5h-12h-91v-472h56q169 -1 197 24.5t25 180.5q-1 62 -1 100zM1356 515v133q0 29 -2 45t-9.5 33.5t-24.5 25t-46 7.5q-46 0 -77 -34v154h-117v-472h110l7 30q30 -36 77 -36q50 0 66 30.5t16 83.5zM1536 1248v-1216q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113
+v1216q0 66 47 113t113 47h1216q66 0 113 -47t47 -113z" />
+    <glyph glyph-name="uniF2D9" unicode="&#xf2d9;" horiz-adv-x="2176" 
+d="M1143 -197q-6 1 -11 4q-13 8 -36 23t-86 65t-116.5 104.5t-112 140t-89.5 172.5q-17 3 -175 37q66 -213 235 -362t391 -184zM502 409l168 -28q-25 76 -41 167.5t-19 145.5l-4 53q-84 -82 -121 -224q5 -65 17 -114zM612 1018q-43 -64 -77 -148q44 46 74 68zM2049 584
+q0 161 -62 307t-167.5 252t-250.5 168.5t-304 62.5q-147 0 -281 -52.5t-240 -148.5q-30 -58 -45 -160q60 51 143 83.5t158.5 43t143 13.5t108.5 -1l40 -3q33 -1 53 -15.5t24.5 -33t6.5 -37t-1 -28.5q-126 11 -227.5 0.5t-183 -43.5t-142.5 -71.5t-131 -98.5
+q4 -36 11.5 -92.5t35.5 -178t62 -179.5q123 -6 247.5 14.5t214.5 53.5t162.5 67t109.5 59l37 24q22 16 39.5 20.5t30.5 -5t17 -34.5q14 -97 -39 -121q-208 -97 -467 -134q-135 -20 -317 -16q41 -96 110 -176.5t137 -127t130.5 -79t101.5 -43.5l39 -12q143 -23 263 15
+q195 99 314 289t119 418zM2123 621q-14 -135 -40 -212q-70 -208 -181.5 -346.5t-318.5 -253.5q-48 -33 -82 -44q-72 -26 -163 -16q-36 -3 -73 -3q-283 0 -504.5 173t-295.5 442q-1 0 -4 0.5t-5 0.5q-6 -50 2.5 -112.5t26 -115t36 -98t31.5 -71.5l14 -26q8 -12 54 -82
+q-71 38 -124.5 106.5t-78.5 140t-39.5 137t-17.5 107.5l-2 42q-5 2 -33.5 12.5t-48.5 18t-53 20.5t-57.5 25t-50 25.5t-42.5 27t-25 25.5q19 -10 50.5 -25.5t113 -45.5t145.5 -38l2 32q11 149 94 290q41 202 176 365q28 115 81 214q15 28 32 45t49 32q158 74 303.5 104
+t302 11t306.5 -97q220 -115 333 -336t87 -474z" />
+    <glyph glyph-name="uniF2DA" unicode="&#xf2da;" horiz-adv-x="1792" 
+d="M1341 752q29 44 -6.5 129.5t-121.5 142.5q-58 39 -125.5 53.5t-118 4.5t-68.5 -37q-12 -23 -4.5 -28t42.5 -10q23 -3 38.5 -5t44.5 -9.5t56 -17.5q36 -13 67.5 -31.5t53 -37t40 -38.5t30.5 -38t22 -34.5t16.5 -28.5t12 -18.5t10.5 -6t11 9.5zM1704 178
+q-52 -127 -148.5 -220t-214.5 -141.5t-253 -60.5t-266 13.5t-251 91t-210 161.5t-141.5 235.5t-46.5 303.5q1 41 8.5 84.5t12.5 64t24 80.5t23 73q-51 -208 1 -397t173 -318t291 -206t346 -83t349 74.5t289 244.5q20 27 18 14q0 -4 -4 -14zM1465 627q0 -104 -40.5 -199
+t-108.5 -164t-162 -109.5t-198 -40.5t-198 40.5t-162 109.5t-108.5 164t-40.5 199t40.5 199t108.5 164t162 109.5t198 40.5t198 -40.5t162 -109.5t108.5 -164t40.5 -199zM1752 915q-65 147 -180.5 251t-253 153.5t-292 53.5t-301 -36.5t-275.5 -129t-220 -211.5t-131 -297
+t-10 -373q-49 161 -51.5 311.5t35.5 272.5t109 227t165.5 180.5t207 126t232 71t242.5 9t236 -54t216 -124.5t178 -197q33 -50 62 -121t31 -112zM1690 573q12 244 -136.5 416t-396.5 240q-8 0 -10 5t24 8q125 -4 230 -50t173 -120t116 -168.5t58.5 -199t-1 -208
+t-61.5 -197.5t-122.5 -167t-185 -117.5t-248.5 -46.5q108 30 201.5 80t174 123t129.5 176.5t55 225.5z" />
+    <glyph glyph-name="uniF2DB" unicode="&#xf2db;" 
+d="M192 256v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 512v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 768v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16
+q0 16 16 16h112zM192 1024v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM192 1280v-128h-112q-16 0 -16 16v16h-48q-16 0 -16 16v32q0 16 16 16h48v16q0 16 16 16h112zM1280 1440v-1472q0 -40 -28 -68t-68 -28h-832q-40 0 -68 28
+t-28 68v1472q0 40 28 68t68 28h832q40 0 68 -28t28 -68zM1536 208v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 464v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 720v-32
+q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 976v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16h48q16 0 16 -16zM1536 1232v-32q0 -16 -16 -16h-48v-16q0 -16 -16 -16h-112v128h112q16 0 16 -16v-16
+h48q16 0 16 -16z" />
+    <glyph glyph-name="uniF2DC" unicode="&#xf2dc;" horiz-adv-x="1664" 
+d="M1566 419l-167 -33l186 -107q23 -13 29.5 -38.5t-6.5 -48.5q-14 -23 -39 -29.5t-48 6.5l-186 106l55 -160q13 -38 -12 -63.5t-60.5 -20.5t-48.5 42l-102 300l-271 156v-313l208 -238q16 -18 17 -39t-11 -36.5t-28.5 -25t-37 -5.5t-36.5 22l-112 128v-214q0 -26 -19 -45
+t-45 -19t-45 19t-19 45v214l-112 -128q-16 -18 -36.5 -22t-37 5.5t-28.5 25t-11 36.5t17 39l208 238v313l-271 -156l-102 -300q-13 -37 -48.5 -42t-60.5 20.5t-12 63.5l55 160l-186 -106q-23 -13 -48 -6.5t-39 29.5q-13 23 -6.5 48.5t29.5 38.5l186 107l-167 33
+q-29 6 -42 29t-8.5 46.5t25.5 40t50 10.5l310 -62l271 157l-271 157l-310 -62q-4 -1 -13 -1q-27 0 -44 18t-19 40t11 43t40 26l167 33l-186 107q-23 13 -29.5 38.5t6.5 48.5t39 30t48 -7l186 -106l-55 160q-13 38 12 63.5t60.5 20.5t48.5 -42l102 -300l271 -156v313
+l-208 238q-16 18 -17 39t11 36.5t28.5 25t37 5.5t36.5 -22l112 -128v214q0 26 19 45t45 19t45 -19t19 -45v-214l112 128q16 18 36.5 22t37 -5.5t28.5 -25t11 -36.5t-17 -39l-208 -238v-313l271 156l102 300q13 37 48.5 42t60.5 -20.5t12 -63.5l-55 -160l186 106
+q23 13 48 6.5t39 -29.5q13 -23 6.5 -48.5t-29.5 -38.5l-186 -107l167 -33q27 -5 40 -26t11 -43t-19 -40t-44 -18q-9 0 -13 1l-310 62l-271 -157l271 -157l310 62q29 6 50 -10.5t25.5 -40t-8.5 -46.5t-42 -29z" />
+    <glyph glyph-name="uniF2DD" unicode="&#xf2dd;" horiz-adv-x="1792" 
+d="M1473 607q7 118 -33 226.5t-113 189t-177 131t-221 57.5q-116 7 -225.5 -32t-192 -110.5t-135 -175t-59.5 -220.5q-7 -118 33 -226.5t113 -189t177.5 -131t221.5 -57.5q155 -9 293 59t224 195.5t94 283.5zM1792 1536l-349 -348q120 -117 180.5 -272t50.5 -321
+q-11 -183 -102 -339t-241 -255.5t-332 -124.5l-999 -132l347 347q-120 116 -180.5 271.5t-50.5 321.5q11 184 102 340t241.5 255.5t332.5 124.5q167 22 500 66t500 66z" />
+    <glyph glyph-name="uniF2DE" unicode="&#xf2de;" horiz-adv-x="1792" 
+d="M948 508l163 -329h-51l-175 350l-171 -350h-49l179 374l-78 33l21 49l240 -102l-21 -50zM563 1100l304 -130l-130 -304l-304 130zM907 915l240 -103l-103 -239l-239 102zM1188 765l191 -81l-82 -190l-190 81zM1680 640q0 159 -62 304t-167.5 250.5t-250.5 167.5t-304 62
+t-304 -62t-250.5 -167.5t-167.5 -250.5t-62 -304t62 -304t167.5 -250.5t250.5 -167.5t304 -62t304 62t250.5 167.5t167.5 250.5t62 304zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71
+t286 -191t191 -286t71 -348z" />
+    <glyph glyph-name="uniF2E0" unicode="&#xf2e0;" horiz-adv-x="1920" 
+d="M1334 302q-4 24 -27.5 34t-49.5 10.5t-48.5 12.5t-25.5 38q-5 47 33 139.5t75 181t32 127.5q-14 101 -117 103q-45 1 -75 -16l-3 -2l-5 -2.5t-4.5 -2t-5 -2t-5 -0.5t-6 1.5t-6 3.5t-6.5 5q-3 2 -9 8.5t-9 9t-8.5 7.5t-9.5 7.5t-9.5 5.5t-11 4.5t-11.5 2.5q-30 5 -48 -3
+t-45 -31q-1 -1 -9 -8.5t-12.5 -11t-15 -10t-16.5 -5.5t-17 3q-54 27 -84 40q-41 18 -94 -5t-76 -65q-16 -28 -41 -98.5t-43.5 -132.5t-40 -134t-21.5 -73q-22 -69 18.5 -119t110.5 -46q30 2 50.5 15t38.5 46q7 13 79 199.5t77 194.5q6 11 21.5 18t29.5 0q27 -15 21 -53
+q-2 -18 -51 -139.5t-50 -132.5q-6 -38 19.5 -56.5t60.5 -7t55 49.5q4 8 45.5 92t81.5 163.5t46 88.5q20 29 41 28q29 0 25 -38q-2 -16 -65.5 -147.5t-70.5 -159.5q-12 -53 13 -103t74 -74q17 -9 51 -15.5t71.5 -8t62.5 14t20 48.5zM383 86q3 -15 -5 -27.5t-23 -15.5
+q-14 -3 -26.5 5t-15.5 23q-3 14 5 27t22 16t27 -5t16 -23zM953 -177q12 -17 8.5 -37.5t-20.5 -32.5t-37.5 -8t-32.5 21q-11 17 -7.5 37.5t20.5 32.5t37.5 8t31.5 -21zM177 635q-18 -27 -49.5 -33t-57.5 13q-26 18 -32 50t12 58q18 27 49.5 33t57.5 -12q26 -19 32 -50.5
+t-12 -58.5zM1467 -42q19 -28 13 -61.5t-34 -52.5t-60.5 -13t-51.5 34t-13 61t33 53q28 19 60.5 13t52.5 -34zM1579 562q69 -113 42.5 -244.5t-134.5 -207.5q-90 -63 -199 -60q-20 -80 -84.5 -127t-143.5 -44.5t-140 57.5q-12 -9 -13 -10q-103 -71 -225 -48.5t-193 126.5
+q-50 73 -53 164q-83 14 -142.5 70.5t-80.5 128t-2 152t81 138.5q-36 60 -38 128t24.5 125t79.5 98.5t121 50.5q32 85 99 148t146.5 91.5t168 17t159.5 -66.5q72 21 140 17.5t128.5 -36t104.5 -80t67.5 -115t17.5 -140.5q52 -16 87 -57t45.5 -89t-5.5 -99.5t-58 -87.5z
+M455 1222q14 -20 9.5 -44.5t-24.5 -38.5q-19 -14 -43.5 -9.5t-37.5 24.5q-14 20 -9.5 44.5t24.5 38.5q19 14 43.5 9.5t37.5 -24.5zM614 1503q4 -16 -5 -30.5t-26 -18.5t-31 5.5t-18 26.5q-3 17 6.5 31t25.5 18q17 4 31 -5.5t17 -26.5zM1800 555q4 -20 -6.5 -37t-30.5 -21
+q-19 -4 -36 6.5t-21 30.5t6.5 37t30.5 22q20 4 36.5 -7.5t20.5 -30.5zM1136 1448q16 -27 8.5 -58.5t-35.5 -47.5q-27 -16 -57.5 -8.5t-46.5 34.5q-16 28 -8.5 59t34.5 48t58 9t47 -36zM1882 792q4 -15 -4 -27.5t-23 -16.5q-15 -3 -27.5 5.5t-15.5 22.5q-3 15 5 28t23 16
+q14 3 26.5 -5t15.5 -23zM1691 1033q15 -22 10.5 -49t-26.5 -43q-22 -15 -49 -10t-42 27t-10 49t27 43t48.5 11t41.5 -28z" />
+    <glyph glyph-name="uniF2E1" unicode="&#xf2e1;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E2" unicode="&#xf2e2;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E3" unicode="&#xf2e3;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E4" unicode="&#xf2e4;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E5" unicode="&#xf2e5;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E6" unicode="&#xf2e6;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E7" unicode="&#xf2e7;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="_698" unicode="&#xf2e8;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2E9" unicode="&#xf2e9;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EA" unicode="&#xf2ea;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EB" unicode="&#xf2eb;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EC" unicode="&#xf2ec;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2ED" unicode="&#xf2ed;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="uniF2EE" unicode="&#xf2ee;" horiz-adv-x="1792" 
+ />
+    <glyph glyph-name="lessequal" unicode="&#xf500;" horiz-adv-x="1792" 
+ />
+  </font>
+</defs></svg>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.ttf b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.ttf
new file mode 100644
index 0000000..35acda2
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.ttf
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff
new file mode 100644
index 0000000..400014a
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff2 b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff2
new file mode 100644
index 0000000..4d13fc6
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/font-awesome/fonts/fontawesome-webfont.woff2
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/jquery-slimscroll/jquery.slimscroll.min.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/jquery-slimscroll/jquery.slimscroll.min.js
new file mode 100644
index 0000000..7531ab3
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/jquery-slimscroll/jquery.slimscroll.min.js
@@ -0,0 +1,16 @@
+/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
+ * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
+ *
+ * Version: 1.3.8
+ *
+ */
+(function(e){e.fn.extend({slimScroll:function(f){var a=e.extend({width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:"#333",railOpacity:.2,railDraggable:!0,railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:"7px",railBorderRadius:"7px"},f);this.each(function(){function v(d){if(r){d=d||window.event;
+var c=0;d.wheelDelta&&(c=-d.wheelDelta/120);d.detail&&(c=d.detail/3);e(d.target||d.srcTarget||d.srcElement).closest("."+a.wrapperClass).is(b.parent())&&n(c,!0);d.preventDefault&&!k&&d.preventDefault();k||(d.returnValue=!1)}}function n(d,g,e){k=!1;var f=b.outerHeight()-c.outerHeight();g&&(g=parseInt(c.css("top"))+d*parseInt(a.wheelStep)/100*c.outerHeight(),g=Math.min(Math.max(g,0),f),g=0<d?Math.ceil(g):Math.floor(g),c.css({top:g+"px"}));l=parseInt(c.css("top"))/(b.outerHeight()-c.outerHeight());g=
+l*(b[0].scrollHeight-b.outerHeight());e&&(g=d,d=g/b[0].scrollHeight*b.outerHeight(),d=Math.min(Math.max(d,0),f),c.css({top:d+"px"}));b.scrollTop(g);b.trigger("slimscrolling",~~g);w();p()}function x(){u=Math.max(b.outerHeight()/b[0].scrollHeight*b.outerHeight(),30);c.css({height:u+"px"});var a=u==b.outerHeight()?"none":"block";c.css({display:a})}function w(){x();clearTimeout(B);l==~~l?(k=a.allowPageScroll,C!=l&&b.trigger("slimscroll",0==~~l?"top":"bottom")):k=!1;C=l;u>=b.outerHeight()?k=!0:(c.stop(!0,
+!0).fadeIn("fast"),a.railVisible&&m.stop(!0,!0).fadeIn("fast"))}function p(){a.alwaysVisible||(B=setTimeout(function(){a.disableFadeOut&&r||y||z||(c.fadeOut("slow"),m.fadeOut("slow"))},1E3))}var r,y,z,B,A,u,l,C,k=!1,b=e(this);if(b.parent().hasClass(a.wrapperClass)){var q=b.scrollTop(),c=b.siblings("."+a.barClass),m=b.siblings("."+a.railClass);x();if(e.isPlainObject(f)){if("height"in f&&"auto"==f.height){b.parent().css("height","auto");b.css("height","auto");var h=b.parent().parent().height();b.parent().css("height",
+h);b.css("height",h)}else"height"in f&&(h=f.height,b.parent().css("height",h),b.css("height",h));if("scrollTo"in f)q=parseInt(a.scrollTo);else if("scrollBy"in f)q+=parseInt(a.scrollBy);else if("destroy"in f){c.remove();m.remove();b.unwrap();return}n(q,!1,!0)}}else if(!(e.isPlainObject(f)&&"destroy"in f)){a.height="auto"==a.height?b.parent().height():a.height;q=e("<div></div>").addClass(a.wrapperClass).css({position:"relative",overflow:"hidden",width:a.width,height:a.height});b.css({overflow:"hidden",
+width:a.width,height:a.height});var m=e("<div></div>").addClass(a.railClass).css({width:a.size,height:"100%",position:"absolute",top:0,display:a.alwaysVisible&&a.railVisible?"block":"none","border-radius":a.railBorderRadius,background:a.railColor,opacity:a.railOpacity,zIndex:90}),c=e("<div></div>").addClass(a.barClass).css({background:a.color,width:a.size,position:"absolute",top:0,opacity:a.opacity,display:a.alwaysVisible?"block":"none","border-radius":a.borderRadius,BorderRadius:a.borderRadius,MozBorderRadius:a.borderRadius,
+WebkitBorderRadius:a.borderRadius,zIndex:99}),h="right"==a.position?{right:a.distance}:{left:a.distance};m.css(h);c.css(h);b.wrap(q);b.parent().append(c);b.parent().append(m);a.railDraggable&&c.bind("mousedown",function(a){var b=e(document);z=!0;t=parseFloat(c.css("top"));pageY=a.pageY;b.bind("mousemove.slimscroll",function(a){currTop=t+a.pageY-pageY;c.css("top",currTop);n(0,c.position().top,!1)});b.bind("mouseup.slimscroll",function(a){z=!1;p();b.unbind(".slimscroll")});return!1}).bind("selectstart.slimscroll",
+function(a){a.stopPropagation();a.preventDefault();return!1});m.hover(function(){w()},function(){p()});c.hover(function(){y=!0},function(){y=!1});b.hover(function(){r=!0;w();p()},function(){r=!1;p()});b.bind("touchstart",function(a,b){a.originalEvent.touches.length&&(A=a.originalEvent.touches[0].pageY)});b.bind("touchmove",function(b){k||b.originalEvent.preventDefault();b.originalEvent.touches.length&&(n((A-b.originalEvent.touches[0].pageY)/a.touchScrollStep,!0),A=b.originalEvent.touches[0].pageY)});
+x();"bottom"===a.start?(c.css({top:b.outerHeight()-c.outerHeight()}),n(0,!0)):"top"!==a.start&&(n(e(a.start).position().top,null,!0),a.alwaysVisible||c.hide());window.addEventListener?(this.addEventListener("DOMMouseScroll",v,!1),this.addEventListener("mousewheel",v,!1)):document.attachEvent("onmousewheel",v)}});return this}});e.fn.extend({slimscroll:e.fn.slimScroll})})(jQuery);
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/jquery/jquery.min.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/jquery/jquery.min.js
new file mode 100644
index 0000000..4d9b3a2
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/jquery/jquery.min.js
@@ -0,0 +1,2 @@
+/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */
+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/moment/moment.min.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/moment/moment.min.js
new file mode 100644
index 0000000..580a6a2
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/bower_components/moment/moment.min.js
@@ -0,0 +1 @@
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";var e,i;function c(){return e.apply(null,arguments)}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function u(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function l(e){return void 0===e}function d(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function h(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function f(e,t){var n,s=[];for(n=0;n<e.length;++n)s.push(t(e[n],n));return s}function m(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function _(e,t){for(var n in t)m(t,n)&&(e[n]=t[n]);return m(t,"toString")&&(e.toString=t.toString),m(t,"valueOf")&&(e.valueOf=t.valueOf),e}function y(e,t,n,s){return Ot(e,t,n,s,!0).utc()}function g(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function p(e){if(null==e._isValid){var t=g(e),n=i.call(t.parsedDateParts,function(e){return null!=e}),s=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(s=s&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return s;e._isValid=s}return e._isValid}function v(e){var t=y(NaN);return null!=e?_(g(t),e):g(t).userInvalidated=!0,t}i=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,s=0;s<n;s++)if(s in t&&e.call(this,t[s],s,t))return!0;return!1};var r=c.momentProperties=[];function w(e,t){var n,s,i;if(l(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),l(t._i)||(e._i=t._i),l(t._f)||(e._f=t._f),l(t._l)||(e._l=t._l),l(t._strict)||(e._strict=t._strict),l(t._tzm)||(e._tzm=t._tzm),l(t._isUTC)||(e._isUTC=t._isUTC),l(t._offset)||(e._offset=t._offset),l(t._pf)||(e._pf=g(t)),l(t._locale)||(e._locale=t._locale),0<r.length)for(n=0;n<r.length;n++)l(i=t[s=r[n]])||(e[s]=i);return e}var t=!1;function M(e){w(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===t&&(t=!0,c.updateOffset(this),t=!1)}function S(e){return e instanceof M||null!=e&&null!=e._isAMomentObject}function D(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function k(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=D(t)),n}function a(e,t,n){var s,i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),a=0;for(s=0;s<i;s++)(n&&e[s]!==t[s]||!n&&k(e[s])!==k(t[s]))&&a++;return a+r}function Y(e){!1===c.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function n(i,r){var a=!0;return _(function(){if(null!=c.deprecationHandler&&c.deprecationHandler(null,i),a){for(var e,t=[],n=0;n<arguments.length;n++){if(e="","object"==typeof arguments[n]){for(var s in e+="\n["+n+"] ",arguments[0])e+=s+": "+arguments[0][s]+", ";e=e.slice(0,-2)}else e=arguments[n];t.push(e)}Y(i+"\nArguments: "+Array.prototype.slice.call(t).join("")+"\n"+(new Error).stack),a=!1}return r.apply(this,arguments)},r)}var s,O={};function T(e,t){null!=c.deprecationHandler&&c.deprecationHandler(e,t),O[e]||(Y(t),O[e]=!0)}function x(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function b(e,t){var n,s=_({},e);for(n in t)m(t,n)&&(u(e[n])&&u(t[n])?(s[n]={},_(s[n],e[n]),_(s[n],t[n])):null!=t[n]?s[n]=t[n]:delete s[n]);for(n in e)m(e,n)&&!m(t,n)&&u(e[n])&&(s[n]=_({},s[n]));return s}function P(e){null!=e&&this.set(e)}c.suppressDeprecationWarnings=!1,c.deprecationHandler=null,s=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)m(e,t)&&n.push(t);return n};var W={};function H(e,t){var n=e.toLowerCase();W[n]=W[n+"s"]=W[t]=e}function R(e){return"string"==typeof e?W[e]||W[e.toLowerCase()]:void 0}function C(e){var t,n,s={};for(n in e)m(e,n)&&(t=R(n))&&(s[t]=e[n]);return s}var F={};function L(e,t){F[e]=t}function U(e,t,n){var s=""+Math.abs(e),i=t-s.length;return(0<=e?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}var N=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,G=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,V={},E={};function I(e,t,n,s){var i=s;"string"==typeof s&&(i=function(){return this[s]()}),e&&(E[e]=i),t&&(E[t[0]]=function(){return U(i.apply(this,arguments),t[1],t[2])}),n&&(E[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function A(e,t){return e.isValid()?(t=j(t,e.localeData()),V[t]=V[t]||function(s){var e,i,t,r=s.match(N);for(e=0,i=r.length;e<i;e++)E[r[e]]?r[e]=E[r[e]]:r[e]=(t=r[e]).match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"");return function(e){var t,n="";for(t=0;t<i;t++)n+=x(r[t])?r[t].call(e,s):r[t];return n}}(t),V[t](e)):e.localeData().invalidDate()}function j(e,t){var n=5;function s(e){return t.longDateFormat(e)||e}for(G.lastIndex=0;0<=n&&G.test(e);)e=e.replace(G,s),G.lastIndex=0,n-=1;return e}var Z=/\d/,z=/\d\d/,$=/\d{3}/,q=/\d{4}/,J=/[+-]?\d{6}/,B=/\d\d?/,Q=/\d\d\d\d?/,X=/\d\d\d\d\d\d?/,K=/\d{1,3}/,ee=/\d{1,4}/,te=/[+-]?\d{1,6}/,ne=/\d+/,se=/[+-]?\d+/,ie=/Z|[+-]\d\d:?\d\d/gi,re=/Z|[+-]\d\d(?::?\d\d)?/gi,ae=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,oe={};function ue(e,n,s){oe[e]=x(n)?n:function(e,t){return e&&s?s:n}}function le(e,t){return m(oe,e)?oe[e](t._strict,t._locale):new RegExp(de(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,s,i){return t||n||s||i})))}function de(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var he={};function ce(e,n){var t,s=n;for("string"==typeof e&&(e=[e]),d(n)&&(s=function(e,t){t[n]=k(e)}),t=0;t<e.length;t++)he[e[t]]=s}function fe(e,i){ce(e,function(e,t,n,s){n._w=n._w||{},i(e,n._w,n,s)})}var me=0,_e=1,ye=2,ge=3,pe=4,ve=5,we=6,Me=7,Se=8;function De(e){return ke(e)?366:365}function ke(e){return e%4==0&&e%100!=0||e%400==0}I("Y",0,0,function(){var e=this.year();return e<=9999?""+e:"+"+e}),I(0,["YY",2],0,function(){return this.year()%100}),I(0,["YYYY",4],0,"year"),I(0,["YYYYY",5],0,"year"),I(0,["YYYYYY",6,!0],0,"year"),H("year","y"),L("year",1),ue("Y",se),ue("YY",B,z),ue("YYYY",ee,q),ue("YYYYY",te,J),ue("YYYYYY",te,J),ce(["YYYYY","YYYYYY"],me),ce("YYYY",function(e,t){t[me]=2===e.length?c.parseTwoDigitYear(e):k(e)}),ce("YY",function(e,t){t[me]=c.parseTwoDigitYear(e)}),ce("Y",function(e,t){t[me]=parseInt(e,10)}),c.parseTwoDigitYear=function(e){return k(e)+(68<k(e)?1900:2e3)};var Ye,Oe=Te("FullYear",!0);function Te(t,n){return function(e){return null!=e?(be(this,t,e),c.updateOffset(this,n),this):xe(this,t)}}function xe(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function be(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&ke(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Pe(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function Pe(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,s=(t%(n=12)+n)%n;return e+=(t-s)/12,1===s?ke(e)?29:28:31-s%7%2}Ye=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},I("M",["MM",2],"Mo",function(){return this.month()+1}),I("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),I("MMMM",0,0,function(e){return this.localeData().months(this,e)}),H("month","M"),L("month",8),ue("M",B),ue("MM",B,z),ue("MMM",function(e,t){return t.monthsShortRegex(e)}),ue("MMMM",function(e,t){return t.monthsRegex(e)}),ce(["M","MM"],function(e,t){t[_e]=k(e)-1}),ce(["MMM","MMMM"],function(e,t,n,s){var i=n._locale.monthsParse(e,s,n._strict);null!=i?t[_e]=i:g(n).invalidMonth=e});var We=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,He="January_February_March_April_May_June_July_August_September_October_November_December".split("_");var Re="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Ce(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=k(t);else if(!d(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),Pe(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function Fe(e){return null!=e?(Ce(this,e),c.updateOffset(this,!0),this):xe(this,"Month")}var Le=ae;var Ue=ae;function Ne(){function e(e,t){return t.length-e.length}var t,n,s=[],i=[],r=[];for(t=0;t<12;t++)n=y([2e3,t]),s.push(this.monthsShort(n,"")),i.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(s.sort(e),i.sort(e),r.sort(e),t=0;t<12;t++)s[t]=de(s[t]),i[t]=de(i[t]);for(t=0;t<24;t++)r[t]=de(r[t]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Ge(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&0<=e&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function Ve(e,t,n){var s=7+t-n;return-((7+Ge(e,0,s).getUTCDay()-t)%7)+s-1}function Ee(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+Ve(e,s,i);return o<=0?a=De(r=e-1)+o:o>De(e)?(r=e+1,a=o-De(e)):(r=e,a=o),{year:r,dayOfYear:a}}function Ie(e,t,n){var s,i,r=Ve(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+Ae(i=e.year()-1,t,n):a>Ae(e.year(),t,n)?(s=a-Ae(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function Ae(e,t,n){var s=Ve(e,t,n),i=Ve(e+1,t,n);return(De(e)-s+i)/7}I("w",["ww",2],"wo","week"),I("W",["WW",2],"Wo","isoWeek"),H("week","w"),H("isoWeek","W"),L("week",5),L("isoWeek",5),ue("w",B),ue("ww",B,z),ue("W",B),ue("WW",B,z),fe(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=k(e)});I("d",0,"do","day"),I("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),I("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),I("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),I("e",0,0,"weekday"),I("E",0,0,"isoWeekday"),H("day","d"),H("weekday","e"),H("isoWeekday","E"),L("day",11),L("weekday",11),L("isoWeekday",11),ue("d",B),ue("e",B),ue("E",B),ue("dd",function(e,t){return t.weekdaysMinRegex(e)}),ue("ddd",function(e,t){return t.weekdaysShortRegex(e)}),ue("dddd",function(e,t){return t.weekdaysRegex(e)}),fe(["dd","ddd","dddd"],function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:g(n).invalidWeekday=e}),fe(["d","e","E"],function(e,t,n,s){t[s]=k(e)});var je="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var Ze="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var ze="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var $e=ae;var qe=ae;var Je=ae;function Be(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],l=[];for(t=0;t<7;t++)n=y([2e3,1]).day(t),s=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),r=this.weekdays(n,""),a.push(s),o.push(i),u.push(r),l.push(s),l.push(i),l.push(r);for(a.sort(e),o.sort(e),u.sort(e),l.sort(e),t=0;t<7;t++)o[t]=de(o[t]),u[t]=de(u[t]),l[t]=de(l[t]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Qe(){return this.hours()%12||12}function Xe(e,t){I(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Ke(e,t){return t._meridiemParse}I("H",["HH",2],0,"hour"),I("h",["hh",2],0,Qe),I("k",["kk",2],0,function(){return this.hours()||24}),I("hmm",0,0,function(){return""+Qe.apply(this)+U(this.minutes(),2)}),I("hmmss",0,0,function(){return""+Qe.apply(this)+U(this.minutes(),2)+U(this.seconds(),2)}),I("Hmm",0,0,function(){return""+this.hours()+U(this.minutes(),2)}),I("Hmmss",0,0,function(){return""+this.hours()+U(this.minutes(),2)+U(this.seconds(),2)}),Xe("a",!0),Xe("A",!1),H("hour","h"),L("hour",13),ue("a",Ke),ue("A",Ke),ue("H",B),ue("h",B),ue("k",B),ue("HH",B,z),ue("hh",B,z),ue("kk",B,z),ue("hmm",Q),ue("hmmss",X),ue("Hmm",Q),ue("Hmmss",X),ce(["H","HH"],ge),ce(["k","kk"],function(e,t,n){var s=k(e);t[ge]=24===s?0:s}),ce(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ce(["h","hh"],function(e,t,n){t[ge]=k(e),g(n).bigHour=!0}),ce("hmm",function(e,t,n){var s=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s)),g(n).bigHour=!0}),ce("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s,2)),t[ve]=k(e.substr(i)),g(n).bigHour=!0}),ce("Hmm",function(e,t,n){var s=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s))}),ce("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s,2)),t[ve]=k(e.substr(i))});var et,tt=Te("Hours",!0),nt={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:He,monthsShort:Re,week:{dow:0,doy:6},weekdays:je,weekdaysMin:ze,weekdaysShort:Ze,meridiemParse:/[ap]\.?m?\.?/i},st={},it={};function rt(e){return e?e.toLowerCase().replace("_","-"):e}function at(e){var t=null;if(!st[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=et._abbr,require("./locale/"+e),ot(t)}catch(e){}return st[e]}function ot(e,t){var n;return e&&((n=l(t)?lt(e):ut(e,t))?et=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),et._abbr}function ut(e,t){if(null!==t){var n,s=nt;if(t.abbr=e,null!=st[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=st[e]._config;else if(null!=t.parentLocale)if(null!=st[t.parentLocale])s=st[t.parentLocale]._config;else{if(null==(n=at(t.parentLocale)))return it[t.parentLocale]||(it[t.parentLocale]=[]),it[t.parentLocale].push({name:e,config:t}),null;s=n._config}return st[e]=new P(b(s,t)),it[e]&&it[e].forEach(function(e){ut(e.name,e.config)}),ot(e),st[e]}return delete st[e],null}function lt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return et;if(!o(e)){if(t=at(e))return t;e=[e]}return function(e){for(var t,n,s,i,r=0;r<e.length;){for(t=(i=rt(e[r]).split("-")).length,n=(n=rt(e[r+1]))?n.split("-"):null;0<t;){if(s=at(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&a(i,n,!0)>=t-1)break;t--}r++}return et}(e)}function dt(e){var t,n=e._a;return n&&-2===g(e).overflow&&(t=n[_e]<0||11<n[_e]?_e:n[ye]<1||n[ye]>Pe(n[me],n[_e])?ye:n[ge]<0||24<n[ge]||24===n[ge]&&(0!==n[pe]||0!==n[ve]||0!==n[we])?ge:n[pe]<0||59<n[pe]?pe:n[ve]<0||59<n[ve]?ve:n[we]<0||999<n[we]?we:-1,g(e)._overflowDayOfYear&&(t<me||ye<t)&&(t=ye),g(e)._overflowWeeks&&-1===t&&(t=Me),g(e)._overflowWeekday&&-1===t&&(t=Se),g(e).overflow=t),e}function ht(e,t,n){return null!=e?e:null!=t?t:n}function ct(e){var t,n,s,i,r,a=[];if(!e._d){var o,u;for(o=e,u=new Date(c.now()),s=o._useUTC?[u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate()]:[u.getFullYear(),u.getMonth(),u.getDate()],e._w&&null==e._a[ye]&&null==e._a[_e]&&function(e){var t,n,s,i,r,a,o,u;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)r=1,a=4,n=ht(t.GG,e._a[me],Ie(Tt(),1,4).year),s=ht(t.W,1),((i=ht(t.E,1))<1||7<i)&&(u=!0);else{r=e._locale._week.dow,a=e._locale._week.doy;var l=Ie(Tt(),r,a);n=ht(t.gg,e._a[me],l.year),s=ht(t.w,l.week),null!=t.d?((i=t.d)<0||6<i)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||6<t.e)&&(u=!0)):i=r}s<1||s>Ae(n,r,a)?g(e)._overflowWeeks=!0:null!=u?g(e)._overflowWeekday=!0:(o=Ee(n,s,i,r,a),e._a[me]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(r=ht(e._a[me],s[me]),(e._dayOfYear>De(r)||0===e._dayOfYear)&&(g(e)._overflowDayOfYear=!0),n=Ge(r,0,e._dayOfYear),e._a[_e]=n.getUTCMonth(),e._a[ye]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=a[t]=s[t];for(;t<7;t++)e._a[t]=a[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ge]&&0===e._a[pe]&&0===e._a[ve]&&0===e._a[we]&&(e._nextDay=!0,e._a[ge]=0),e._d=(e._useUTC?Ge:function(e,t,n,s,i,r,a){var o=new Date(e,t,n,s,i,r,a);return e<100&&0<=e&&isFinite(o.getFullYear())&&o.setFullYear(e),o}).apply(null,a),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ge]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(g(e).weekdayMismatch=!0)}}var ft=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,mt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_t=/Z|[+-]\d\d(?::?\d\d)?/,yt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],gt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pt=/^\/?Date\((\-?\d+)/i;function vt(e){var t,n,s,i,r,a,o=e._i,u=ft.exec(o)||mt.exec(o);if(u){for(g(e).iso=!0,t=0,n=yt.length;t<n;t++)if(yt[t][1].exec(u[1])){i=yt[t][0],s=!1!==yt[t][2];break}if(null==i)return void(e._isValid=!1);if(u[3]){for(t=0,n=gt.length;t<n;t++)if(gt[t][1].exec(u[3])){r=(u[2]||" ")+gt[t][0];break}if(null==r)return void(e._isValid=!1)}if(!s&&null!=r)return void(e._isValid=!1);if(u[4]){if(!_t.exec(u[4]))return void(e._isValid=!1);a="Z"}e._f=i+(r||"")+(a||""),kt(e)}else e._isValid=!1}var wt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function Mt(e,t,n,s,i,r){var a=[function(e){var t=parseInt(e,10);{if(t<=49)return 2e3+t;if(t<=999)return 1900+t}return t}(e),Re.indexOf(t),parseInt(n,10),parseInt(s,10),parseInt(i,10)];return r&&a.push(parseInt(r,10)),a}var St={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Dt(e){var t,n,s,i=wt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(i){var r=Mt(i[4],i[3],i[2],i[5],i[6],i[7]);if(t=i[1],n=r,s=e,t&&Ze.indexOf(t)!==new Date(n[0],n[1],n[2]).getDay()&&(g(s).weekdayMismatch=!0,!(s._isValid=!1)))return;e._a=r,e._tzm=function(e,t,n){if(e)return St[e];if(t)return 0;var s=parseInt(n,10),i=s%100;return(s-i)/100*60+i}(i[8],i[9],i[10]),e._d=Ge.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),g(e).rfc2822=!0}else e._isValid=!1}function kt(e){if(e._f!==c.ISO_8601)if(e._f!==c.RFC_2822){e._a=[],g(e).empty=!0;var t,n,s,i,r,a,o,u,l=""+e._i,d=l.length,h=0;for(s=j(e._f,e._locale).match(N)||[],t=0;t<s.length;t++)i=s[t],(n=(l.match(le(i,e))||[])[0])&&(0<(r=l.substr(0,l.indexOf(n))).length&&g(e).unusedInput.push(r),l=l.slice(l.indexOf(n)+n.length),h+=n.length),E[i]?(n?g(e).empty=!1:g(e).unusedTokens.push(i),a=i,u=e,null!=(o=n)&&m(he,a)&&he[a](o,u._a,u,a)):e._strict&&!n&&g(e).unusedTokens.push(i);g(e).charsLeftOver=d-h,0<l.length&&g(e).unusedInput.push(l),e._a[ge]<=12&&!0===g(e).bigHour&&0<e._a[ge]&&(g(e).bigHour=void 0),g(e).parsedDateParts=e._a.slice(0),g(e).meridiem=e._meridiem,e._a[ge]=function(e,t,n){var s;if(null==n)return t;return null!=e.meridiemHour?e.meridiemHour(t,n):(null!=e.isPM&&((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0)),t)}(e._locale,e._a[ge],e._meridiem),ct(e),dt(e)}else Dt(e);else vt(e)}function Yt(e){var t,n,s,i,r=e._i,a=e._f;return e._locale=e._locale||lt(e._l),null===r||void 0===a&&""===r?v({nullInput:!0}):("string"==typeof r&&(e._i=r=e._locale.preparse(r)),S(r)?new M(dt(r)):(h(r)?e._d=r:o(a)?function(e){var t,n,s,i,r;if(0===e._f.length)return g(e).invalidFormat=!0,e._d=new Date(NaN);for(i=0;i<e._f.length;i++)r=0,t=w({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],kt(t),p(t)&&(r+=g(t).charsLeftOver,r+=10*g(t).unusedTokens.length,g(t).score=r,(null==s||r<s)&&(s=r,n=t));_(e,n||t)}(e):a?kt(e):l(n=(t=e)._i)?t._d=new Date(c.now()):h(n)?t._d=new Date(n.valueOf()):"string"==typeof n?(s=t,null===(i=pt.exec(s._i))?(vt(s),!1===s._isValid&&(delete s._isValid,Dt(s),!1===s._isValid&&(delete s._isValid,c.createFromInputFallback(s)))):s._d=new Date(+i[1])):o(n)?(t._a=f(n.slice(0),function(e){return parseInt(e,10)}),ct(t)):u(n)?function(e){if(!e._d){var t=C(e._i);e._a=f([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),ct(e)}}(t):d(n)?t._d=new Date(n):c.createFromInputFallback(t),p(e)||(e._d=null),e))}function Ot(e,t,n,s,i){var r,a={};return!0!==n&&!1!==n||(s=n,n=void 0),(u(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||o(e)&&0===e.length)&&(e=void 0),a._isAMomentObject=!0,a._useUTC=a._isUTC=i,a._l=n,a._i=e,a._f=t,a._strict=s,(r=new M(dt(Yt(a))))._nextDay&&(r.add(1,"d"),r._nextDay=void 0),r}function Tt(e,t,n,s){return Ot(e,t,n,s,!1)}c.createFromInputFallback=n("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),c.ISO_8601=function(){},c.RFC_2822=function(){};var xt=n("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:v()}),bt=n("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:v()});function Pt(e,t){var n,s;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return Tt();for(n=t[0],s=1;s<t.length;++s)t[s].isValid()&&!t[s][e](n)||(n=t[s]);return n}var Wt=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Ht(e){var t=C(e),n=t.year||0,s=t.quarter||0,i=t.month||0,r=t.week||0,a=t.day||0,o=t.hour||0,u=t.minute||0,l=t.second||0,d=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===Ye.call(Wt,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,s=0;s<Wt.length;++s)if(e[Wt[s]]){if(n)return!1;parseFloat(e[Wt[s]])!==k(e[Wt[s]])&&(n=!0)}return!0}(t),this._milliseconds=+d+1e3*l+6e4*u+1e3*o*60*60,this._days=+a+7*r,this._months=+i+3*s+12*n,this._data={},this._locale=lt(),this._bubble()}function Rt(e){return e instanceof Ht}function Ct(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Ft(e,n){I(e,0,0,function(){var e=this.utcOffset(),t="+";return e<0&&(e=-e,t="-"),t+U(~~(e/60),2)+n+U(~~e%60,2)})}Ft("Z",":"),Ft("ZZ",""),ue("Z",re),ue("ZZ",re),ce(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=Ut(re,e)});var Lt=/([\+\-]|\d\d)/gi;function Ut(e,t){var n=(t||"").match(e);if(null===n)return null;var s=((n[n.length-1]||[])+"").match(Lt)||["-",0,0],i=60*s[1]+k(s[2]);return 0===i?0:"+"===s[0]?i:-i}function Nt(e,t){var n,s;return t._isUTC?(n=t.clone(),s=(S(e)||h(e)?e.valueOf():Tt(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+s),c.updateOffset(n,!1),n):Tt(e).local()}function Gt(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Vt(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}c.updateOffset=function(){};var Et=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,It=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function At(e,t){var n,s,i,r=e,a=null;return Rt(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:d(e)?(r={},t?r[t]=e:r.milliseconds=e):(a=Et.exec(e))?(n="-"===a[1]?-1:1,r={y:0,d:k(a[ye])*n,h:k(a[ge])*n,m:k(a[pe])*n,s:k(a[ve])*n,ms:k(Ct(1e3*a[we]))*n}):(a=It.exec(e))?(n="-"===a[1]?-1:(a[1],1),r={y:jt(a[2],n),M:jt(a[3],n),w:jt(a[4],n),d:jt(a[5],n),h:jt(a[6],n),m:jt(a[7],n),s:jt(a[8],n)}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(i=function(e,t){var n;if(!e.isValid()||!t.isValid())return{milliseconds:0,months:0};t=Nt(t,e),e.isBefore(t)?n=Zt(e,t):((n=Zt(t,e)).milliseconds=-n.milliseconds,n.months=-n.months);return n}(Tt(r.from),Tt(r.to)),(r={}).ms=i.milliseconds,r.M=i.months),s=new Ht(r),Rt(e)&&m(e,"_locale")&&(s._locale=e._locale),s}function jt(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Zt(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function zt(s,i){return function(e,t){var n;return null===t||isNaN(+t)||(T(i,"moment()."+i+"(period, number) is deprecated. Please use moment()."+i+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=e,e=t,t=n),$t(this,At(e="string"==typeof e?+e:e,t),s),this}}function $t(e,t,n,s){var i=t._milliseconds,r=Ct(t._days),a=Ct(t._months);e.isValid()&&(s=null==s||s,a&&Ce(e,xe(e,"Month")+a*n),r&&be(e,"Date",xe(e,"Date")+r*n),i&&e._d.setTime(e._d.valueOf()+i*n),s&&c.updateOffset(e,r||a))}At.fn=Ht.prototype,At.invalid=function(){return At(NaN)};var qt=zt(1,"add"),Jt=zt(-1,"subtract");function Bt(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),s=e.clone().add(n,"months");return-(n+(t-s<0?(t-s)/(s-e.clone().add(n-1,"months")):(t-s)/(e.clone().add(n+1,"months")-s)))||0}function Qt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=lt(e))&&(this._locale=t),this)}c.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",c.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Xt=n("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function Kt(){return this._locale}function en(e,t){I(0,[e,e.length],0,t)}function tn(e,t,n,s,i){var r;return null==e?Ie(this,s,i).year:((r=Ae(e,s,i))<t&&(t=r),function(e,t,n,s,i){var r=Ee(e,t,n,s,i),a=Ge(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,s,i))}I(0,["gg",2],0,function(){return this.weekYear()%100}),I(0,["GG",2],0,function(){return this.isoWeekYear()%100}),en("gggg","weekYear"),en("ggggg","weekYear"),en("GGGG","isoWeekYear"),en("GGGGG","isoWeekYear"),H("weekYear","gg"),H("isoWeekYear","GG"),L("weekYear",1),L("isoWeekYear",1),ue("G",se),ue("g",se),ue("GG",B,z),ue("gg",B,z),ue("GGGG",ee,q),ue("gggg",ee,q),ue("GGGGG",te,J),ue("ggggg",te,J),fe(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,s){t[s.substr(0,2)]=k(e)}),fe(["gg","GG"],function(e,t,n,s){t[s]=c.parseTwoDigitYear(e)}),I("Q",0,"Qo","quarter"),H("quarter","Q"),L("quarter",7),ue("Q",Z),ce("Q",function(e,t){t[_e]=3*(k(e)-1)}),I("D",["DD",2],"Do","date"),H("date","D"),L("date",9),ue("D",B),ue("DD",B,z),ue("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),ce(["D","DD"],ye),ce("Do",function(e,t){t[ye]=k(e.match(B)[0])});var nn=Te("Date",!0);I("DDD",["DDDD",3],"DDDo","dayOfYear"),H("dayOfYear","DDD"),L("dayOfYear",4),ue("DDD",K),ue("DDDD",$),ce(["DDD","DDDD"],function(e,t,n){n._dayOfYear=k(e)}),I("m",["mm",2],0,"minute"),H("minute","m"),L("minute",14),ue("m",B),ue("mm",B,z),ce(["m","mm"],pe);var sn=Te("Minutes",!1);I("s",["ss",2],0,"second"),H("second","s"),L("second",15),ue("s",B),ue("ss",B,z),ce(["s","ss"],ve);var rn,an=Te("Seconds",!1);for(I("S",0,0,function(){return~~(this.millisecond()/100)}),I(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),I(0,["SSS",3],0,"millisecond"),I(0,["SSSS",4],0,function(){return 10*this.millisecond()}),I(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),I(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),I(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),I(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),I(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),H("millisecond","ms"),L("millisecond",16),ue("S",K,Z),ue("SS",K,z),ue("SSS",K,$),rn="SSSS";rn.length<=9;rn+="S")ue(rn,ne);function on(e,t){t[we]=k(1e3*("0."+e))}for(rn="S";rn.length<=9;rn+="S")ce(rn,on);var un=Te("Milliseconds",!1);I("z",0,0,"zoneAbbr"),I("zz",0,0,"zoneName");var ln=M.prototype;function dn(e){return e}ln.add=qt,ln.calendar=function(e,t){var n=e||Tt(),s=Nt(n,this).startOf("day"),i=c.calendarFormat(this,s)||"sameElse",r=t&&(x(t[i])?t[i].call(this,n):t[i]);return this.format(r||this.localeData().calendar(i,this,Tt(n)))},ln.clone=function(){return new M(this)},ln.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Nt(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=R(t)){case"year":r=Bt(this,s)/12;break;case"month":r=Bt(this,s);break;case"quarter":r=Bt(this,s)/3;break;case"second":r=(this-s)/1e3;break;case"minute":r=(this-s)/6e4;break;case"hour":r=(this-s)/36e5;break;case"day":r=(this-s-i)/864e5;break;case"week":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:D(r)},ln.endOf=function(e){return void 0===(e=R(e))||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))},ln.format=function(e){e||(e=this.isUtc()?c.defaultFormatUtc:c.defaultFormat);var t=A(this,e);return this.localeData().postformat(t)},ln.from=function(e,t){return this.isValid()&&(S(e)&&e.isValid()||Tt(e).isValid())?At({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},ln.fromNow=function(e){return this.from(Tt(),e)},ln.to=function(e,t){return this.isValid()&&(S(e)&&e.isValid()||Tt(e).isValid())?At({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},ln.toNow=function(e){return this.to(Tt(),e)},ln.get=function(e){return x(this[e=R(e)])?this[e]():this},ln.invalidAt=function(){return g(this).overflow},ln.isAfter=function(e,t){var n=S(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=R(l(t)?"millisecond":t))?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},ln.isBefore=function(e,t){var n=S(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=R(l(t)?"millisecond":t))?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},ln.isBetween=function(e,t,n,s){return("("===(s=s||"()")[0]?this.isAfter(e,n):!this.isBefore(e,n))&&(")"===s[1]?this.isBefore(t,n):!this.isAfter(t,n))},ln.isSame=function(e,t){var n,s=S(e)?e:Tt(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(t=R(t||"millisecond"))?this.valueOf()===s.valueOf():(n=s.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},ln.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},ln.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},ln.isValid=function(){return p(this)},ln.lang=Xt,ln.locale=Qt,ln.localeData=Kt,ln.max=bt,ln.min=xt,ln.parsingFlags=function(){return _({},g(this))},ln.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:F[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}(e=C(e)),s=0;s<n.length;s++)this[n[s].unit](e[n[s].unit]);else if(x(this[e=R(e)]))return this[e](t);return this},ln.startOf=function(e){switch(e=R(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this},ln.subtract=Jt,ln.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},ln.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},ln.toDate=function(){return new Date(this.valueOf())},ln.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||9999<n.year()?A(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):x(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",A(n,"Z")):A(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},ln.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i=t+'[")]';return this.format(n+s+"-MM-DD[T]HH:mm:ss.SSS"+i)},ln.toJSON=function(){return this.isValid()?this.toISOString():null},ln.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},ln.unix=function(){return Math.floor(this.valueOf()/1e3)},ln.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},ln.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},ln.year=Oe,ln.isLeapYear=function(){return ke(this.year())},ln.weekYear=function(e){return tn.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},ln.isoWeekYear=function(e){return tn.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},ln.quarter=ln.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},ln.month=Fe,ln.daysInMonth=function(){return Pe(this.year(),this.month())},ln.week=ln.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},ln.isoWeek=ln.isoWeeks=function(e){var t=Ie(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},ln.weeksInYear=function(){var e=this.localeData()._week;return Ae(this.year(),e.dow,e.doy)},ln.isoWeeksInYear=function(){return Ae(this.year(),1,4)},ln.date=nn,ln.day=ln.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t,n,s=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(t=e,n=this.localeData(),e="string"!=typeof t?t:isNaN(t)?"number"==typeof(t=n.weekdaysParse(t))?t:null:parseInt(t,10),this.add(e-s,"d")):s},ln.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},ln.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=(n=e,s=this.localeData(),"string"==typeof n?s.weekdaysParse(n)%7||7:isNaN(n)?null:n);return this.day(this.day()%7?t:t-7)}return this.day()||7;var n,s},ln.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},ln.hour=ln.hours=tt,ln.minute=ln.minutes=sn,ln.second=ln.seconds=an,ln.millisecond=ln.milliseconds=un,ln.utcOffset=function(e,t,n){var s,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=Ut(re,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(s=Gt(this)),this._offset=e,this._isUTC=!0,null!=s&&this.add(s,"m"),i!==e&&(!t||this._changeInProgress?$t(this,At(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,c.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?i:Gt(this)},ln.utc=function(e){return this.utcOffset(0,e)},ln.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Gt(this),"m")),this},ln.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Ut(ie,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},ln.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Tt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},ln.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ln.isLocal=function(){return!!this.isValid()&&!this._isUTC},ln.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ln.isUtc=Vt,ln.isUTC=Vt,ln.zoneAbbr=function(){return this._isUTC?"UTC":""},ln.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ln.dates=n("dates accessor is deprecated. Use date instead.",nn),ln.months=n("months accessor is deprecated. Use month instead",Fe),ln.years=n("years accessor is deprecated. Use year instead",Oe),ln.zone=n("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),ln.isDSTShifted=n("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e={};if(w(e,this),(e=Yt(e))._a){var t=e._isUTC?y(e._a):Tt(e._a);this._isDSTShifted=this.isValid()&&0<a(e._a,t.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted});var hn=P.prototype;function cn(e,t,n,s){var i=lt(),r=y().set(s,t);return i[n](r,e)}function fn(e,t,n){if(d(e)&&(t=e,e=void 0),e=e||"",null!=t)return cn(e,t,n,"month");var s,i=[];for(s=0;s<12;s++)i[s]=cn(e,s,n,"month");return i}function mn(e,t,n,s){"boolean"==typeof e?d(t)&&(n=t,t=void 0):(t=e,e=!1,d(n=t)&&(n=t,t=void 0)),t=t||"";var i,r=lt(),a=e?r._week.dow:0;if(null!=n)return cn(t,(n+a)%7,s,"day");var o=[];for(i=0;i<7;i++)o[i]=cn(t,(i+a)%7,s,"day");return o}hn.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return x(s)?s.call(t,n):s},hn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},hn.invalidDate=function(){return this._invalidDate},hn.ordinal=function(e){return this._ordinal.replace("%d",e)},hn.preparse=dn,hn.postformat=dn,hn.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return x(i)?i(e,t,n,s):i.replace(/%d/i,e)},hn.pastFuture=function(e,t){var n=this._relativeTime[0<e?"future":"past"];return x(n)?n(t):n.replace(/%s/i,t)},hn.set=function(e){var t,n;for(n in e)x(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},hn.months=function(e,t){return e?o(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||We).test(t)?"format":"standalone"][e.month()]:o(this._months)?this._months:this._months.standalone},hn.monthsShort=function(e,t){return e?o(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[We.test(t)?"format":"standalone"][e.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},hn.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)r=y([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(i=Ye.call(this._shortMonthsParse,a))?i:null:-1!==(i=Ye.call(this._longMonthsParse,a))?i:null:"MMM"===t?-1!==(i=Ye.call(this._shortMonthsParse,a))?i:-1!==(i=Ye.call(this._longMonthsParse,a))?i:null:-1!==(i=Ye.call(this._longMonthsParse,a))?i:-1!==(i=Ye.call(this._shortMonthsParse,a))?i:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=y([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[s]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[s]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[s].test(e))return s;if(n&&"MMM"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},hn.monthsRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||Ne.call(this),e?this._monthsStrictRegex:this._monthsRegex):(m(this,"_monthsRegex")||(this._monthsRegex=Ue),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},hn.monthsShortRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||Ne.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(m(this,"_monthsShortRegex")||(this._monthsShortRegex=Le),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},hn.week=function(e){return Ie(e,this._week.dow,this._week.doy).week},hn.firstDayOfYear=function(){return this._week.doy},hn.firstDayOfWeek=function(){return this._week.dow},hn.weekdays=function(e,t){return e?o(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:o(this._weekdays)?this._weekdays:this._weekdays.standalone},hn.weekdaysMin=function(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin},hn.weekdaysShort=function(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort},hn.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=y([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=Ye.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=y([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},hn.weekdaysRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(m(this,"_weekdaysRegex")||(this._weekdaysRegex=$e),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},hn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(m(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=qe),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},hn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(m(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Je),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},hn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},hn.meridiem=function(e,t,n){return 11<e?n?"pm":"PM":n?"am":"AM"},ot("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===k(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),c.lang=n("moment.lang is deprecated. Use moment.locale instead.",ot),c.langData=n("moment.langData is deprecated. Use moment.localeData instead.",lt);var _n=Math.abs;function yn(e,t,n,s){var i=At(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function gn(e){return e<0?Math.floor(e):Math.ceil(e)}function pn(e){return 4800*e/146097}function vn(e){return 146097*e/4800}function wn(e){return function(){return this.as(e)}}var Mn=wn("ms"),Sn=wn("s"),Dn=wn("m"),kn=wn("h"),Yn=wn("d"),On=wn("w"),Tn=wn("M"),xn=wn("y");function bn(e){return function(){return this.isValid()?this._data[e]:NaN}}var Pn=bn("milliseconds"),Wn=bn("seconds"),Hn=bn("minutes"),Rn=bn("hours"),Cn=bn("days"),Fn=bn("months"),Ln=bn("years");var Un=Math.round,Nn={ss:44,s:45,m:45,h:22,d:26,M:11};var Gn=Math.abs;function Vn(e){return(0<e)-(e<0)||+e}function En(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Gn(this._milliseconds)/1e3,s=Gn(this._days),i=Gn(this._months);t=D((e=D(n/60))/60),n%=60,e%=60;var r=D(i/12),a=i%=12,o=s,u=t,l=e,d=n?n.toFixed(3).replace(/\.?0+$/,""):"",h=this.asSeconds();if(!h)return"P0D";var c=h<0?"-":"",f=Vn(this._months)!==Vn(h)?"-":"",m=Vn(this._days)!==Vn(h)?"-":"",_=Vn(this._milliseconds)!==Vn(h)?"-":"";return c+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(o?m+o+"D":"")+(u||l||d?"T":"")+(u?_+u+"H":"")+(l?_+l+"M":"")+(d?_+d+"S":"")}var In=Ht.prototype;return In.isValid=function(){return this._isValid},In.abs=function(){var e=this._data;return this._milliseconds=_n(this._milliseconds),this._days=_n(this._days),this._months=_n(this._months),e.milliseconds=_n(e.milliseconds),e.seconds=_n(e.seconds),e.minutes=_n(e.minutes),e.hours=_n(e.hours),e.months=_n(e.months),e.years=_n(e.years),this},In.add=function(e,t){return yn(this,e,t,1)},In.subtract=function(e,t){return yn(this,e,t,-1)},In.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=R(e))||"year"===e)return t=this._days+s/864e5,n=this._months+pn(t),"month"===e?n:n/12;switch(t=this._days+Math.round(vn(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}},In.asMilliseconds=Mn,In.asSeconds=Sn,In.asMinutes=Dn,In.asHours=kn,In.asDays=Yn,In.asWeeks=On,In.asMonths=Tn,In.asYears=xn,In.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12):NaN},In._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return 0<=r&&0<=a&&0<=o||r<=0&&a<=0&&o<=0||(r+=864e5*gn(vn(o)+a),o=a=0),u.milliseconds=r%1e3,e=D(r/1e3),u.seconds=e%60,t=D(e/60),u.minutes=t%60,n=D(t/60),u.hours=n%24,o+=i=D(pn(a+=D(n/24))),a-=gn(vn(i)),s=D(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},In.clone=function(){return At(this)},In.get=function(e){return e=R(e),this.isValid()?this[e+"s"]():NaN},In.milliseconds=Pn,In.seconds=Wn,In.minutes=Hn,In.hours=Rn,In.days=Cn,In.weeks=function(){return D(this.days()/7)},In.months=Fn,In.years=Ln,In.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t,n,s,i,r,a,o,u,l,d,h,c=this.localeData(),f=(n=!e,s=c,i=At(t=this).abs(),r=Un(i.as("s")),a=Un(i.as("m")),o=Un(i.as("h")),u=Un(i.as("d")),l=Un(i.as("M")),d=Un(i.as("y")),(h=r<=Nn.ss&&["s",r]||r<Nn.s&&["ss",r]||a<=1&&["m"]||a<Nn.m&&["mm",a]||o<=1&&["h"]||o<Nn.h&&["hh",o]||u<=1&&["d"]||u<Nn.d&&["dd",u]||l<=1&&["M"]||l<Nn.M&&["MM",l]||d<=1&&["y"]||["yy",d])[2]=n,h[3]=0<+t,h[4]=s,function(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}.apply(null,h));return e&&(f=c.pastFuture(+this,f)),c.postformat(f)},In.toISOString=En,In.toString=En,In.toJSON=En,In.locale=Qt,In.localeData=Kt,In.toIsoString=n("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",En),In.lang=Xt,I("X",0,0,"unix"),I("x",0,0,"valueOf"),ue("x",se),ue("X",/[+-]?\d+(\.\d{1,3})?/),ce("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),ce("x",function(e,t,n){n._d=new Date(k(e))}),c.version="2.22.2",e=Tt,c.fn=ln,c.min=function(){return Pt("isBefore",[].slice.call(arguments,0))},c.max=function(){return Pt("isAfter",[].slice.call(arguments,0))},c.now=function(){return Date.now?Date.now():+new Date},c.utc=y,c.unix=function(e){return Tt(1e3*e)},c.months=function(e,t){return fn(e,t,"months")},c.isDate=h,c.locale=ot,c.invalid=v,c.duration=At,c.isMoment=S,c.weekdays=function(e,t,n){return mn(e,t,n,"weekdays")},c.parseZone=function(){return Tt.apply(null,arguments).parseZone()},c.localeData=lt,c.isDuration=Rt,c.monthsShort=function(e,t){return fn(e,t,"monthsShort")},c.weekdaysMin=function(e,t,n){return mn(e,t,n,"weekdaysMin")},c.defineLocale=ut,c.updateLocale=function(e,t){if(null!=t){var n,s,i=nt;null!=(s=at(e))&&(i=s._config),(n=new P(t=b(i,t))).parentLocale=st[e],st[e]=n,ot(e)}else null!=st[e]&&(null!=st[e].parentLocale?st[e]=st[e].parentLocale:null!=st[e]&&delete st[e]);return st[e]},c.locales=function(){return s(st)},c.weekdaysShort=function(e,t,n){return mn(e,t,n,"weekdaysShort")},c.normalizeUnits=R,c.relativeTimeRounding=function(e){return void 0===e?Un:"function"==typeof e&&(Un=e,!0)},c.relativeTimeThreshold=function(e,t){return void 0!==Nn[e]&&(void 0===t?Nn[e]:(Nn[e]=t,"s"===e&&(Nn.ss=t-1),!0))},c.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},c.prototype=ln,c.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"YYYY-[W]WW",MONTH:"YYYY-MM"},c});
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/dist/css/AdminLTE.min.css b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/dist/css/AdminLTE.min.css
new file mode 100644
index 0000000..fd5158e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/dist/css/AdminLTE.min.css
@@ -0,0 +1,7 @@
+/*!
+ *   AdminLTE v2.4.5
+ *   Author: Almsaeed Studio
+ *	 Website: Almsaeed Studio <https://adminlte.io>
+ *   License: Open source - MIT
+ *           Please visit http://opensource.org/licenses/MIT for more information
+ */html,body{height:100%}.layout-boxed html,.layout-boxed body{height:100%}body{font-family:'Source Sans Pro','Helvetica Neue',Helvetica,Arial,sans-serif;font-weight:400;overflow-x:hidden;overflow-y:auto}.wrapper{height:100%;position:relative;overflow-x:hidden;overflow-y:auto}.wrapper:before,.wrapper:after{content:" ";display:table}.wrapper:after{clear:both}.layout-boxed .wrapper{max-width:1250px;margin:0 auto;min-height:100%;box-shadow:0 0 8px rgba(0,0,0,0.5);position:relative}.layout-boxed{background-color:#f9fafc}.content-wrapper,.main-footer{-webkit-transition:-webkit-transform .3s ease-in-out,margin .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out,margin .3s ease-in-out;-o-transition:-o-transform .3s ease-in-out,margin .3s ease-in-out;transition:transform .3s ease-in-out,margin .3s ease-in-out;margin-left:230px;z-index:820}.layout-top-nav .content-wrapper,.layout-top-nav .main-footer{margin-left:0}@media (max-width:767px){.content-wrapper,.main-footer{margin-left:0}}@media (min-width:768px){.sidebar-collapse .content-wrapper,.sidebar-collapse .main-footer{margin-left:0}}@media (max-width:767px){.sidebar-open .content-wrapper,.sidebar-open .main-footer{-webkit-transform:translate(230px, 0);-ms-transform:translate(230px, 0);-o-transform:translate(230px, 0);transform:translate(230px, 0)}}.content-wrapper{min-height:100%;background-color:#ecf0f5;z-index:800}.main-footer{background:#fff;padding:15px;color:#444;border-top:1px solid #d2d6de}.fixed .main-header,.fixed .main-sidebar,.fixed .left-side{position:fixed}.fixed .main-header{top:0;right:0;left:0}.fixed .content-wrapper,.fixed .right-side{padding-top:50px}@media (max-width:767px){.fixed .content-wrapper,.fixed .right-side{padding-top:100px}}.fixed.layout-boxed .wrapper{max-width:100%}.fixed .wrapper{overflow:hidden}.hold-transition .content-wrapper,.hold-transition .right-side,.hold-transition .main-footer,.hold-transition .main-sidebar,.hold-transition .left-side,.hold-transition .main-header .navbar,.hold-transition .main-header .logo,.hold-transition .menu-open .fa-angle-left{-webkit-transition:none;-o-transition:none;transition:none}.content{min-height:250px;padding:15px;margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:'Source Sans Pro',sans-serif}a{color:#3c8dbc}a:hover,a:active,a:focus{outline:none;text-decoration:none;color:#72afd2}.page-header{margin:10px 0 20px 0;font-size:22px}.page-header>small{color:#666;display:block;margin-top:5px}.main-header{position:relative;max-height:100px;z-index:1030}.main-header .navbar{-webkit-transition:margin-left .3s ease-in-out;-o-transition:margin-left .3s ease-in-out;transition:margin-left .3s ease-in-out;margin-bottom:0;margin-left:230px;border:none;min-height:50px;border-radius:0}.layout-top-nav .main-header .navbar{margin-left:0}.main-header #navbar-search-input.form-control{background:rgba(255,255,255,0.2);border-color:transparent}.main-header #navbar-search-input.form-control:focus,.main-header #navbar-search-input.form-control:active{border-color:rgba(0,0,0,0.1);background:rgba(255,255,255,0.9)}.main-header #navbar-search-input.form-control::-moz-placeholder{color:#ccc;opacity:1}.main-header #navbar-search-input.form-control:-ms-input-placeholder{color:#ccc}.main-header #navbar-search-input.form-control::-webkit-input-placeholder{color:#ccc}.main-header .navbar-custom-menu,.main-header .navbar-right{float:right}@media (max-width:991px){.main-header .navbar-custom-menu a,.main-header .navbar-right a{color:inherit;background:transparent}}@media (max-width:767px){.main-header .navbar-right{float:none}.navbar-collapse .main-header .navbar-right{margin:7.5px -15px}.main-header .navbar-right>li{color:inherit;border:0}}.main-header .sidebar-toggle{float:left;background-color:transparent;background-image:none;padding:15px 15px;font-family:fontAwesome}.main-header .sidebar-toggle:before{content:"\f0c9"}.main-header .sidebar-toggle:hover{color:#fff}.main-header .sidebar-toggle:focus,.main-header .sidebar-toggle:active{background:transparent}.main-header .sidebar-toggle .icon-bar{display:none}.main-header .navbar .nav>li.user>a>.fa,.main-header .navbar .nav>li.user>a>.glyphicon,.main-header .navbar .nav>li.user>a>.ion{margin-right:5px}.main-header .navbar .nav>li>a>.label{position:absolute;top:9px;right:7px;text-align:center;font-size:9px;padding:2px 3px;line-height:.9}.main-header .logo{-webkit-transition:width .3s ease-in-out;-o-transition:width .3s ease-in-out;transition:width .3s ease-in-out;display:block;float:left;height:50px;font-size:20px;line-height:50px;text-align:center;width:230px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;padding:0 15px;font-weight:300;overflow:hidden}.main-header .logo .logo-lg{display:block}.main-header .logo .logo-mini{display:none}.main-header .navbar-brand{color:#fff}.content-header{position:relative;padding:15px 15px 0 15px}.content-header>h1{margin:0;font-size:24px}.content-header>h1>small{font-size:15px;display:inline-block;padding-left:4px;font-weight:300}.content-header>.breadcrumb{float:right;background:transparent;margin-top:0;margin-bottom:0;font-size:12px;padding:7px 5px;position:absolute;top:15px;right:10px;border-radius:2px}.content-header>.breadcrumb>li>a{color:#444;text-decoration:none;display:inline-block}.content-header>.breadcrumb>li>a>.fa,.content-header>.breadcrumb>li>a>.glyphicon,.content-header>.breadcrumb>li>a>.ion{margin-right:5px}.content-header>.breadcrumb>li+li:before{content:'>\00a0'}@media (max-width:991px){.content-header>.breadcrumb{position:relative;margin-top:5px;top:0;right:0;float:none;background:#d2d6de;padding-left:10px}.content-header>.breadcrumb li:before{color:#97a0b3}}.navbar-toggle{color:#fff;border:0;margin:0;padding:15px 15px}@media (max-width:991px){.navbar-custom-menu .navbar-nav>li{float:left}.navbar-custom-menu .navbar-nav{margin:0;float:left}.navbar-custom-menu .navbar-nav>li>a{padding-top:15px;padding-bottom:15px;line-height:20px}}@media (max-width:767px){.main-header{position:relative}.main-header .logo,.main-header .navbar{width:100%;float:none}.main-header .navbar{margin:0}.main-header .navbar-custom-menu{float:right}}@media (max-width:991px){.navbar-collapse.pull-left{float:none !important}.navbar-collapse.pull-left+.navbar-custom-menu{display:block;position:absolute;top:0;right:40px}}.main-sidebar{position:absolute;top:0;left:0;padding-top:50px;min-height:100%;width:230px;z-index:810;-webkit-transition:-webkit-transform .3s ease-in-out,width .3s ease-in-out;-moz-transition:-moz-transform .3s ease-in-out,width .3s ease-in-out;-o-transition:-o-transform .3s ease-in-out,width .3s ease-in-out;transition:transform .3s ease-in-out,width .3s ease-in-out}@media (max-width:767px){.main-sidebar{padding-top:100px}}@media (max-width:767px){.main-sidebar{-webkit-transform:translate(-230px, 0);-ms-transform:translate(-230px, 0);-o-transform:translate(-230px, 0);transform:translate(-230px, 0)}}@media (min-width:768px){.sidebar-collapse .main-sidebar{-webkit-transform:translate(-230px, 0);-ms-transform:translate(-230px, 0);-o-transform:translate(-230px, 0);transform:translate(-230px, 0)}}@media (max-width:767px){.sidebar-open .main-sidebar{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}}.sidebar{padding-bottom:10px}.sidebar-form input:focus{border-color:transparent}.user-panel{position:relative;width:100%;padding:10px;overflow:hidden}.user-panel:before,.user-panel:after{content:" ";display:table}.user-panel:after{clear:both}.user-panel>.image>img{width:100%;max-width:45px;height:auto}.user-panel>.info{padding:5px 5px 5px 15px;line-height:1;position:absolute;left:55px}.user-panel>.info>p{font-weight:600;margin-bottom:9px}.user-panel>.info>a{text-decoration:none;padding-right:5px;margin-top:3px;font-size:11px}.user-panel>.info>a>.fa,.user-panel>.info>a>.ion,.user-panel>.info>a>.glyphicon{margin-right:3px}.sidebar-menu{list-style:none;margin:0;padding:0}.sidebar-menu>li{position:relative;margin:0;padding:0}.sidebar-menu>li>a{padding:12px 5px 12px 15px;display:block}.sidebar-menu>li>a>.fa,.sidebar-menu>li>a>.glyphicon,.sidebar-menu>li>a>.ion{width:20px}.sidebar-menu>li .label,.sidebar-menu>li .badge{margin-right:5px}.sidebar-menu>li .badge{margin-top:3px}.sidebar-menu li.header{padding:10px 25px 10px 15px;font-size:12px}.sidebar-menu li>a>.fa-angle-left,.sidebar-menu li>a>.pull-right-container>.fa-angle-left{width:auto;height:auto;padding:0;margin-right:10px;-webkit-transition:transform .5s ease;-o-transition:transform .5s ease;transition:transform .5s ease}.sidebar-menu li>a>.fa-angle-left{position:absolute;top:50%;right:10px;margin-top:-8px}.sidebar-menu .menu-open>a>.fa-angle-left,.sidebar-menu .menu-open>a>.pull-right-container>.fa-angle-left{-webkit-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.sidebar-menu .active>.treeview-menu{display:block}@media (min-width:768px){.sidebar-mini.sidebar-collapse .content-wrapper,.sidebar-mini.sidebar-collapse .right-side,.sidebar-mini.sidebar-collapse .main-footer{margin-left:50px !important;z-index:840}.sidebar-mini.sidebar-collapse .main-sidebar{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0);width:50px !important;z-index:850}.sidebar-mini.sidebar-collapse .sidebar-menu>li{position:relative}.sidebar-mini.sidebar-collapse .sidebar-menu>li>a{margin-right:0}.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>span{border-top-right-radius:4px}.sidebar-mini.sidebar-collapse .sidebar-menu>li:not(.treeview)>a>span{border-bottom-right-radius:4px}.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{padding-top:5px;padding-bottom:5px;border-bottom-right-radius:4px}.sidebar-mini.sidebar-collapse .main-sidebar .user-panel>.info,.sidebar-mini.sidebar-collapse .sidebar-form,.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>span,.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu,.sidebar-mini.sidebar-collapse .sidebar-menu>li>a>.pull-right,.sidebar-mini.sidebar-collapse .sidebar-menu li.header{display:none !important;-webkit-transform:translateZ(0)}.sidebar-mini.sidebar-collapse .main-header .logo{width:50px}.sidebar-mini.sidebar-collapse .main-header .logo>.logo-mini{display:block;margin-left:-15px;margin-right:-15px;font-size:18px}.sidebar-mini.sidebar-collapse .main-header .logo>.logo-lg{display:none}.sidebar-mini.sidebar-collapse .main-header .navbar{margin-left:50px}}.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>a>span:not(.pull-right),.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>.treeview-menu{display:block !important;position:absolute;width:180px;left:50px}.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>a>span{top:0;margin-left:-3px;padding:12px 5px 12px 20px;background-color:inherit}.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>a>.pull-right-container{position:relative !important;float:right;width:auto !important;left:180px !important;top:-22px !important;z-index:900}.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>a>.pull-right-container>.label:not(:first-of-type){display:none}.sidebar-mini:not(.sidebar-mini-expand-feature).sidebar-collapse .sidebar-menu>li:hover>.treeview-menu{top:44px;margin-left:0}.sidebar-expanded-on-hover .main-footer,.sidebar-expanded-on-hover .content-wrapper{margin-left:50px}.sidebar-expanded-on-hover .main-sidebar{box-shadow:3px 0 8px rgba(0,0,0,0.125)}.sidebar-menu,.main-sidebar .user-panel,.sidebar-menu>li.header{white-space:nowrap;overflow:hidden}.sidebar-menu:hover{overflow:visible}.sidebar-form,.sidebar-menu>li.header{overflow:hidden;text-overflow:clip}.sidebar-menu li>a{position:relative}.sidebar-menu li>a>.pull-right-container{position:absolute;right:10px;top:50%;margin-top:-7px}.control-sidebar-bg{position:fixed;z-index:1000;bottom:0}.control-sidebar-bg,.control-sidebar{top:0;right:-230px;width:230px;-webkit-transition:right .3s ease-in-out;-o-transition:right .3s ease-in-out;transition:right .3s ease-in-out}.control-sidebar{position:absolute;padding-top:50px;z-index:1010}@media (max-width:767px){.control-sidebar{padding-top:100px}}.control-sidebar>.tab-content{padding:10px 15px}.control-sidebar.control-sidebar-open,.control-sidebar.control-sidebar-open+.control-sidebar-bg{right:0}.control-sidebar-open .control-sidebar-bg,.control-sidebar-open .control-sidebar{right:0}@media (min-width:768px){.control-sidebar-open .content-wrapper,.control-sidebar-open .right-side,.control-sidebar-open .main-footer{margin-right:230px}}.fixed .control-sidebar{position:fixed;height:100%;overflow-y:auto;padding-bottom:50px}.nav-tabs.control-sidebar-tabs>li:first-of-type>a,.nav-tabs.control-sidebar-tabs>li:first-of-type>a:hover,.nav-tabs.control-sidebar-tabs>li:first-of-type>a:focus{border-left-width:0}.nav-tabs.control-sidebar-tabs>li>a{border-radius:0}.nav-tabs.control-sidebar-tabs>li>a,.nav-tabs.control-sidebar-tabs>li>a:hover{border-top:none;border-right:none;border-left:1px solid transparent;border-bottom:1px solid transparent}.nav-tabs.control-sidebar-tabs>li>a .icon{font-size:16px}.nav-tabs.control-sidebar-tabs>li.active>a,.nav-tabs.control-sidebar-tabs>li.active>a:hover,.nav-tabs.control-sidebar-tabs>li.active>a:focus,.nav-tabs.control-sidebar-tabs>li.active>a:active{border-top:none;border-right:none;border-bottom:none}@media (max-width:768px){.nav-tabs.control-sidebar-tabs{display:table}.nav-tabs.control-sidebar-tabs>li{display:table-cell}}.control-sidebar-heading{font-weight:400;font-size:16px;padding:10px 0;margin-bottom:10px}.control-sidebar-subheading{display:block;font-weight:400;font-size:14px}.control-sidebar-menu{list-style:none;padding:0;margin:0 -15px}.control-sidebar-menu>li>a{display:block;padding:10px 15px}.control-sidebar-menu>li>a:before,.control-sidebar-menu>li>a:after{content:" ";display:table}.control-sidebar-menu>li>a:after{clear:both}.control-sidebar-menu>li>a>.control-sidebar-subheading{margin-top:0}.control-sidebar-menu .menu-icon{float:left;width:35px;height:35px;border-radius:50%;text-align:center;line-height:35px}.control-sidebar-menu .menu-info{margin-left:45px;margin-top:3px}.control-sidebar-menu .menu-info>.control-sidebar-subheading{margin:0}.control-sidebar-menu .menu-info>p{margin:0;font-size:11px}.control-sidebar-menu .progress{margin:0}.control-sidebar-dark{color:#b8c7ce}.control-sidebar-dark,.control-sidebar-dark+.control-sidebar-bg{background:#222d32}.control-sidebar-dark .nav-tabs.control-sidebar-tabs{border-bottom:#1c2529}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a{background:#181f23;color:#b8c7ce}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:focus{border-left-color:#141a1d;border-bottom-color:#141a1d}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:active{background:#1c2529}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li>a:hover{color:#fff}.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:hover,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:focus,.control-sidebar-dark .nav-tabs.control-sidebar-tabs>li.active>a:active{background:#222d32;color:#fff}.control-sidebar-dark .control-sidebar-heading,.control-sidebar-dark .control-sidebar-subheading{color:#fff}.control-sidebar-dark .control-sidebar-menu>li>a:hover{background:#1e282c}.control-sidebar-dark .control-sidebar-menu>li>a .menu-info>p{color:#b8c7ce}.control-sidebar-light{color:#5e5e5e}.control-sidebar-light,.control-sidebar-light+.control-sidebar-bg{background:#f9fafc;border-left:1px solid #d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs{border-bottom:#d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a{background:#e8ecf4;color:#444}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:hover,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:focus{border-left-color:#d2d6de;border-bottom-color:#d2d6de}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:hover,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li>a:active{background:#eff1f7}.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:hover,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:focus,.control-sidebar-light .nav-tabs.control-sidebar-tabs>li.active>a:active{background:#f9fafc;color:#111}.control-sidebar-light .control-sidebar-heading,.control-sidebar-light .control-sidebar-subheading{color:#111}.control-sidebar-light .control-sidebar-menu{margin-left:-14px}.control-sidebar-light .control-sidebar-menu>li>a:hover{background:#f4f4f5}.control-sidebar-light .control-sidebar-menu>li>a .menu-info>p{color:#5e5e5e}.dropdown-menu{box-shadow:none;border-color:#eee}.dropdown-menu>li>a{color:#777}.dropdown-menu>li>a>.glyphicon,.dropdown-menu>li>a>.fa,.dropdown-menu>li>a>.ion{margin-right:10px}.dropdown-menu>li>a:hover{background-color:#e1e3e9;color:#333}.dropdown-menu>.divider{background-color:#eee}.navbar-nav>.notifications-menu>.dropdown-menu,.navbar-nav>.messages-menu>.dropdown-menu,.navbar-nav>.tasks-menu>.dropdown-menu{width:280px;padding:0 0 0 0;margin:0;top:100%}.navbar-nav>.notifications-menu>.dropdown-menu>li,.navbar-nav>.messages-menu>.dropdown-menu>li,.navbar-nav>.tasks-menu>.dropdown-menu>li{position:relative}.navbar-nav>.notifications-menu>.dropdown-menu>li.header,.navbar-nav>.messages-menu>.dropdown-menu>li.header,.navbar-nav>.tasks-menu>.dropdown-menu>li.header{border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0;background-color:#ffffff;padding:7px 10px;border-bottom:1px solid #f4f4f4;color:#444444;font-size:14px}.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a,.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;font-size:12px;background-color:#fff;padding:7px 10px;border-bottom:1px solid #eeeeee;color:#444 !important;text-align:center}@media (max-width:991px){.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a,.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a{background:#fff !important;color:#444 !important}}.navbar-nav>.notifications-menu>.dropdown-menu>li.footer>a:hover,.navbar-nav>.messages-menu>.dropdown-menu>li.footer>a:hover,.navbar-nav>.tasks-menu>.dropdown-menu>li.footer>a:hover{text-decoration:none;font-weight:normal}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu,.navbar-nav>.messages-menu>.dropdown-menu>li .menu,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu{max-height:200px;margin:0;padding:0;list-style:none;overflow-x:hidden}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a,.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a{display:block;white-space:nowrap;border-bottom:1px solid #f4f4f4}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a:hover,.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:hover,.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a:hover{background:#f4f4f4;text-decoration:none}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a{color:#444444;overflow:hidden;text-overflow:ellipsis;padding:10px}.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.glyphicon,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.fa,.navbar-nav>.notifications-menu>.dropdown-menu>li .menu>li>a>.ion{width:20px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a{margin:0;padding:10px 10px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>div>img{margin:auto 10px auto auto;width:40px;height:40px}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>h4{padding:0;margin:0 0 0 45px;color:#444444;font-size:15px;position:relative}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>h4>small{color:#999999;font-size:10px;position:absolute;top:0;right:0}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a>p{margin:0 0 0 45px;font-size:12px;color:#888888}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:before,.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:after{content:" ";display:table}.navbar-nav>.messages-menu>.dropdown-menu>li .menu>li>a:after{clear:both}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a{padding:10px}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a>h3{font-size:14px;padding:0;margin:0 0 10px 0;color:#666666}.navbar-nav>.tasks-menu>.dropdown-menu>li .menu>li>a>.progress{padding:0;margin:0}.navbar-nav>.user-menu>.dropdown-menu{border-top-right-radius:0;border-top-left-radius:0;padding:1px 0 0 0;border-top-width:0;width:280px}.navbar-nav>.user-menu>.dropdown-menu,.navbar-nav>.user-menu>.dropdown-menu>.user-body{border-bottom-right-radius:4px;border-bottom-left-radius:4px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header{height:175px;padding:10px;text-align:center}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>img{z-index:5;height:90px;width:90px;border:3px solid;border-color:transparent;border-color:rgba(255,255,255,0.2)}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p{z-index:5;color:#fff;color:rgba(255,255,255,0.8);font-size:17px;margin-top:10px}.navbar-nav>.user-menu>.dropdown-menu>li.user-header>p>small{display:block;font-size:12px}.navbar-nav>.user-menu>.dropdown-menu>.user-body{padding:15px;border-bottom:1px solid #f4f4f4;border-top:1px solid #dddddd}.navbar-nav>.user-menu>.dropdown-menu>.user-body:before,.navbar-nav>.user-menu>.dropdown-menu>.user-body:after{content:" ";display:table}.navbar-nav>.user-menu>.dropdown-menu>.user-body:after{clear:both}.navbar-nav>.user-menu>.dropdown-menu>.user-body a{color:#444 !important}@media (max-width:991px){.navbar-nav>.user-menu>.dropdown-menu>.user-body a{background:#fff !important;color:#444 !important}}.navbar-nav>.user-menu>.dropdown-menu>.user-footer{background-color:#f9f9f9;padding:10px}.navbar-nav>.user-menu>.dropdown-menu>.user-footer:before,.navbar-nav>.user-menu>.dropdown-menu>.user-footer:after{content:" ";display:table}.navbar-nav>.user-menu>.dropdown-menu>.user-footer:after{clear:both}.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default{color:#666666}@media (max-width:991px){.navbar-nav>.user-menu>.dropdown-menu>.user-footer .btn-default:hover{background-color:#f9f9f9}}.navbar-nav>.user-menu .user-image{float:left;width:25px;height:25px;border-radius:50%;margin-right:10px;margin-top:-2px}@media (max-width:767px){.navbar-nav>.user-menu .user-image{float:none;margin-right:0;margin-top:-8px;line-height:10px}}.open:not(.dropup)>.animated-dropdown-menu{backface-visibility:visible !important;-webkit-animation:flipInX .7s both;-o-animation:flipInX .7s both;animation:flipInX .7s both}@keyframes flipInX{0%{transform:perspective(400px) rotate3d(1, 0, 0, 90deg);transition-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotate3d(1, 0, 0, -20deg);transition-timing-function:ease-in}60%{transform:perspective(400px) rotate3d(1, 0, 0, 10deg);opacity:1}80%{transform:perspective(400px) rotate3d(1, 0, 0, -5deg)}100%{transform:perspective(400px)}}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 90deg);-webkit-transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -20deg);-webkit-transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, 10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1, 0, 0, -5deg)}100%{-webkit-transform:perspective(400px)}}.navbar-custom-menu>.navbar-nav>li{position:relative}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:0;left:auto}@media (max-width:991px){.navbar-custom-menu>.navbar-nav{float:right}.navbar-custom-menu>.navbar-nav>li{position:static}.navbar-custom-menu>.navbar-nav>li>.dropdown-menu{position:absolute;right:5%;left:auto;border:1px solid #ddd;background:#fff}}.form-control{border-radius:0;box-shadow:none;border-color:#d2d6de}.form-control:focus{border-color:#3c8dbc;box-shadow:none}.form-control::-moz-placeholder,.form-control:-ms-input-placeholder,.form-control::-webkit-input-placeholder{color:#bbb;opacity:1}.form-control:not(select){-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-group.has-success label{color:#00a65a}.form-group.has-success .form-control,.form-group.has-success .input-group-addon{border-color:#00a65a;box-shadow:none}.form-group.has-success .help-block{color:#00a65a}.form-group.has-warning label{color:#f39c12}.form-group.has-warning .form-control,.form-group.has-warning .input-group-addon{border-color:#f39c12;box-shadow:none}.form-group.has-warning .help-block{color:#f39c12}.form-group.has-error label{color:#dd4b39}.form-group.has-error .form-control,.form-group.has-error .input-group-addon{border-color:#dd4b39;box-shadow:none}.form-group.has-error .help-block{color:#dd4b39}.input-group .input-group-addon{border-radius:0;border-color:#d2d6de;background-color:#fff}.btn-group-vertical .btn.btn-flat:first-of-type,.btn-group-vertical .btn.btn-flat:last-of-type{border-radius:0}.icheck>label{padding-left:0}.form-control-feedback.fa{line-height:34px}.input-lg+.form-control-feedback.fa,.input-group-lg+.form-control-feedback.fa,.form-group-lg .form-control+.form-control-feedback.fa{line-height:46px}.input-sm+.form-control-feedback.fa,.input-group-sm+.form-control-feedback.fa,.form-group-sm .form-control+.form-control-feedback.fa{line-height:30px}.progress,.progress>.progress-bar{-webkit-box-shadow:none;box-shadow:none}.progress,.progress>.progress-bar,.progress .progress-bar,.progress>.progress-bar .progress-bar{border-radius:1px}.progress.sm,.progress-sm{height:10px}.progress.sm,.progress-sm,.progress.sm .progress-bar,.progress-sm .progress-bar{border-radius:1px}.progress.xs,.progress-xs{height:7px}.progress.xs,.progress-xs,.progress.xs .progress-bar,.progress-xs .progress-bar{border-radius:1px}.progress.xxs,.progress-xxs{height:3px}.progress.xxs,.progress-xxs,.progress.xxs .progress-bar,.progress-xxs .progress-bar{border-radius:1px}.progress.vertical{position:relative;width:30px;height:200px;display:inline-block;margin-right:10px}.progress.vertical>.progress-bar{width:100%;position:absolute;bottom:0}.progress.vertical.sm,.progress.vertical.progress-sm{width:20px}.progress.vertical.xs,.progress.vertical.progress-xs{width:10px}.progress.vertical.xxs,.progress.vertical.progress-xxs{width:3px}.progress-group .progress-text{font-weight:600}.progress-group .progress-number{float:right}.table tr>td .progress{margin:0}.progress-bar-light-blue,.progress-bar-primary{background-color:#3c8dbc}.progress-striped .progress-bar-light-blue,.progress-striped .progress-bar-primary{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-green,.progress-bar-success{background-color:#00a65a}.progress-striped .progress-bar-green,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-aqua,.progress-bar-info{background-color:#00c0ef}.progress-striped .progress-bar-aqua,.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-yellow,.progress-bar-warning{background-color:#f39c12}.progress-striped .progress-bar-yellow,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-red,.progress-bar-danger{background-color:#dd4b39}.progress-striped .progress-bar-red,.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.small-box{border-radius:2px;position:relative;display:block;margin-bottom:20px;box-shadow:0 1px 1px rgba(0,0,0,0.1)}.small-box>.inner{padding:10px}.small-box>.small-box-footer{position:relative;text-align:center;padding:3px 0;color:#fff;color:rgba(255,255,255,0.8);display:block;z-index:10;background:rgba(0,0,0,0.1);text-decoration:none}.small-box>.small-box-footer:hover{color:#fff;background:rgba(0,0,0,0.15)}.small-box h3{font-size:38px;font-weight:bold;margin:0 0 10px 0;white-space:nowrap;padding:0}.small-box p{font-size:15px}.small-box p>small{display:block;color:#f9f9f9;font-size:13px;margin-top:5px}.small-box h3,.small-box p{z-index:5}.small-box .icon{-webkit-transition:all .3s linear;-o-transition:all .3s linear;transition:all .3s linear;position:absolute;top:-10px;right:10px;z-index:0;font-size:90px;color:rgba(0,0,0,0.15)}.small-box:hover{text-decoration:none;color:#f9f9f9}.small-box:hover .icon{font-size:95px}@media (max-width:767px){.small-box{text-align:center}.small-box .icon{display:none}.small-box p{font-size:12px}}.box{position:relative;border-radius:3px;background:#ffffff;border-top:3px solid #d2d6de;margin-bottom:20px;width:100%;box-shadow:0 1px 1px rgba(0,0,0,0.1)}.box.box-primary{border-top-color:#3c8dbc}.box.box-info{border-top-color:#00c0ef}.box.box-danger{border-top-color:#dd4b39}.box.box-warning{border-top-color:#f39c12}.box.box-success{border-top-color:#00a65a}.box.box-default{border-top-color:#d2d6de}.box.collapsed-box .box-body,.box.collapsed-box .box-footer{display:none}.box .nav-stacked>li{border-bottom:1px solid #f4f4f4;margin:0}.box .nav-stacked>li:last-of-type{border-bottom:none}.box.height-control .box-body{max-height:300px;overflow:auto}.box .border-right{border-right:1px solid #f4f4f4}.box .border-left{border-left:1px solid #f4f4f4}.box.box-solid{border-top:0}.box.box-solid>.box-header .btn.btn-default{background:transparent}.box.box-solid>.box-header .btn:hover,.box.box-solid>.box-header a:hover{background:rgba(0,0,0,0.1)}.box.box-solid.box-default{border:1px solid #d2d6de}.box.box-solid.box-default>.box-header{color:#444;background:#d2d6de;background-color:#d2d6de}.box.box-solid.box-default>.box-header a,.box.box-solid.box-default>.box-header .btn{color:#444}.box.box-solid.box-primary{border:1px solid #3c8dbc}.box.box-solid.box-primary>.box-header{color:#fff;background:#3c8dbc;background-color:#3c8dbc}.box.box-solid.box-primary>.box-header a,.box.box-solid.box-primary>.box-header .btn{color:#fff}.box.box-solid.box-info{border:1px solid #00c0ef}.box.box-solid.box-info>.box-header{color:#fff;background:#00c0ef;background-color:#00c0ef}.box.box-solid.box-info>.box-header a,.box.box-solid.box-info>.box-header .btn{color:#fff}.box.box-solid.box-danger{border:1px solid #dd4b39}.box.box-solid.box-danger>.box-header{color:#fff;background:#dd4b39;background-color:#dd4b39}.box.box-solid.box-danger>.box-header a,.box.box-solid.box-danger>.box-header .btn{color:#fff}.box.box-solid.box-warning{border:1px solid #f39c12}.box.box-solid.box-warning>.box-header{color:#fff;background:#f39c12;background-color:#f39c12}.box.box-solid.box-warning>.box-header a,.box.box-solid.box-warning>.box-header .btn{color:#fff}.box.box-solid.box-success{border:1px solid #00a65a}.box.box-solid.box-success>.box-header{color:#fff;background:#00a65a;background-color:#00a65a}.box.box-solid.box-success>.box-header a,.box.box-solid.box-success>.box-header .btn{color:#fff}.box.box-solid>.box-header>.box-tools .btn{border:0;box-shadow:none}.box.box-solid[class*='bg']>.box-header{color:#fff}.box .box-group>.box{margin-bottom:5px}.box .knob-label{text-align:center;color:#333;font-weight:100;font-size:12px;margin-bottom:0.3em}.box>.overlay,.overlay-wrapper>.overlay,.box>.loading-img,.overlay-wrapper>.loading-img{position:absolute;top:0;left:0;width:100%;height:100%}.box .overlay,.overlay-wrapper .overlay{z-index:50;background:rgba(255,255,255,0.7);border-radius:3px}.box .overlay>.fa,.overlay-wrapper .overlay>.fa{position:absolute;top:50%;left:50%;margin-left:-15px;margin-top:-15px;color:#000;font-size:30px}.box .overlay.dark,.overlay-wrapper .overlay.dark{background:rgba(0,0,0,0.5)}.box-header:before,.box-body:before,.box-footer:before,.box-header:after,.box-body:after,.box-footer:after{content:" ";display:table}.box-header:after,.box-body:after,.box-footer:after{clear:both}.box-header{color:#444;display:block;padding:10px;position:relative}.box-header.with-border{border-bottom:1px solid #f4f4f4}.collapsed-box .box-header.with-border{border-bottom:none}.box-header>.fa,.box-header>.glyphicon,.box-header>.ion,.box-header .box-title{display:inline-block;font-size:18px;margin:0;line-height:1}.box-header>.fa,.box-header>.glyphicon,.box-header>.ion{margin-right:5px}.box-header>.box-tools{position:absolute;right:10px;top:5px}.box-header>.box-tools [data-toggle="tooltip"]{position:relative}.box-header>.box-tools.pull-right .dropdown-menu{right:0;left:auto}.box-header>.box-tools .dropdown-menu>li>a{color:#444!important}.btn-box-tool{padding:5px;font-size:12px;background:transparent;color:#97a0b3}.open .btn-box-tool,.btn-box-tool:hover{color:#606c84}.btn-box-tool.btn:active{box-shadow:none}.box-body{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;padding:10px}.no-header .box-body{border-top-right-radius:3px;border-top-left-radius:3px}.box-body>.table{margin-bottom:0}.box-body .fc{margin-top:5px}.box-body .full-width-chart{margin:-19px}.box-body.no-padding .full-width-chart{margin:-9px}.box-body .box-pane{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:3px}.box-body .box-pane-right{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:0}.box-footer{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border-top:1px solid #f4f4f4;padding:10px;background-color:#fff}.chart-legend{margin:10px 0}@media (max-width:991px){.chart-legend>li{float:left;margin-right:10px}}.box-comments{background:#f7f7f7}.box-comments .box-comment{padding:8px 0;border-bottom:1px solid #eee}.box-comments .box-comment:before,.box-comments .box-comment:after{content:" ";display:table}.box-comments .box-comment:after{clear:both}.box-comments .box-comment:last-of-type{border-bottom:0}.box-comments .box-comment:first-of-type{padding-top:0}.box-comments .box-comment img{float:left}.box-comments .comment-text{margin-left:40px;color:#555}.box-comments .username{color:#444;display:block;font-weight:600}.box-comments .text-muted{font-weight:400;font-size:12px}.todo-list{margin:0;padding:0;list-style:none;overflow:auto}.todo-list>li{border-radius:2px;padding:10px;background:#f4f4f4;margin-bottom:2px;border-left:2px solid #e6e7e8;color:#444}.todo-list>li:last-of-type{margin-bottom:0}.todo-list>li>input[type='checkbox']{margin:0 10px 0 5px}.todo-list>li .text{display:inline-block;margin-left:5px;font-weight:600}.todo-list>li .label{margin-left:10px;font-size:9px}.todo-list>li .tools{display:none;float:right;color:#dd4b39}.todo-list>li .tools>.fa,.todo-list>li .tools>.glyphicon,.todo-list>li .tools>.ion{margin-right:5px;cursor:pointer}.todo-list>li:hover .tools{display:inline-block}.todo-list>li.done{color:#999}.todo-list>li.done .text{text-decoration:line-through;font-weight:500}.todo-list>li.done .label{background:#d2d6de !important}.todo-list .danger{border-left-color:#dd4b39}.todo-list .warning{border-left-color:#f39c12}.todo-list .info{border-left-color:#00c0ef}.todo-list .success{border-left-color:#00a65a}.todo-list .primary{border-left-color:#3c8dbc}.todo-list .handle{display:inline-block;cursor:move;margin:0 5px}.chat{padding:5px 20px 5px 10px}.chat .item{margin-bottom:10px}.chat .item:before,.chat .item:after{content:" ";display:table}.chat .item:after{clear:both}.chat .item>img{width:40px;height:40px;border:2px solid transparent;border-radius:50%}.chat .item>.online{border:2px solid #00a65a}.chat .item>.offline{border:2px solid #dd4b39}.chat .item>.message{margin-left:55px;margin-top:-40px}.chat .item>.message>.name{display:block;font-weight:600}.chat .item>.attachment{border-radius:3px;background:#f4f4f4;margin-left:65px;margin-right:15px;padding:10px}.chat .item>.attachment>h4{margin:0 0 5px 0;font-weight:600;font-size:14px}.chat .item>.attachment>p,.chat .item>.attachment>.filename{font-weight:600;font-size:13px;font-style:italic;margin:0}.chat .item>.attachment:before,.chat .item>.attachment:after{content:" ";display:table}.chat .item>.attachment:after{clear:both}.box-input{max-width:200px}.modal .panel-body{color:#444}.info-box{display:block;min-height:90px;background:#fff;width:100%;box-shadow:0 1px 1px rgba(0,0,0,0.1);border-radius:2px;margin-bottom:15px}.info-box small{font-size:14px}.info-box .progress{background:rgba(0,0,0,0.2);margin:5px -10px 5px -10px;height:2px}.info-box .progress,.info-box .progress .progress-bar{border-radius:0}.info-box .progress .progress-bar{background:#fff}.info-box-icon{border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px;display:block;float:left;height:90px;width:90px;text-align:center;font-size:45px;line-height:90px;background:rgba(0,0,0,0.2)}.info-box-icon>img{max-width:100%}.info-box-content{padding:5px 10px;margin-left:90px}.info-box-number{display:block;font-weight:bold;font-size:18px}.progress-description,.info-box-text{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-box-text{text-transform:uppercase}.info-box-more{display:block}.progress-description{margin:0}.timeline{position:relative;margin:0 0 30px 0;padding:0;list-style:none}.timeline:before{content:'';position:absolute;top:0;bottom:0;width:4px;background:#ddd;left:31px;margin:0;border-radius:2px}.timeline>li{position:relative;margin-right:10px;margin-bottom:15px}.timeline>li:before,.timeline>li:after{content:" ";display:table}.timeline>li:after{clear:both}.timeline>li>.timeline-item{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1);border-radius:3px;margin-top:0;background:#fff;color:#444;margin-left:60px;margin-right:15px;padding:0;position:relative}.timeline>li>.timeline-item>.time{color:#999;float:right;padding:10px;font-size:12px}.timeline>li>.timeline-item>.timeline-header{margin:0;color:#555;border-bottom:1px solid #f4f4f4;padding:10px;font-size:16px;line-height:1.1}.timeline>li>.timeline-item>.timeline-header>a{font-weight:600}.timeline>li>.timeline-item>.timeline-body,.timeline>li>.timeline-item>.timeline-footer{padding:10px}.timeline>li>.fa,.timeline>li>.glyphicon,.timeline>li>.ion{width:30px;height:30px;font-size:15px;line-height:30px;position:absolute;color:#666;background:#d2d6de;border-radius:50%;text-align:center;left:18px;top:0}.timeline>.time-label>span{font-weight:600;padding:5px;display:inline-block;background-color:#fff;border-radius:4px}.timeline-inverse>li>.timeline-item{background:#f0f0f0;border:1px solid #ddd;-webkit-box-shadow:none;box-shadow:none}.timeline-inverse>li>.timeline-item>.timeline-header{border-bottom-color:#ddd}.btn{border-radius:3px;-webkit-box-shadow:none;box-shadow:none;border:1px solid transparent}.btn.uppercase{text-transform:uppercase}.btn.btn-flat{border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;border-width:1px}.btn:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn:focus{outline:none}.btn.btn-file{position:relative;overflow:hidden}.btn.btn-file>input[type='file']{position:absolute;top:0;right:0;min-width:100%;min-height:100%;font-size:100px;text-align:right;opacity:0;filter:alpha(opacity=0);outline:none;background:white;cursor:inherit;display:block}.btn-default{background-color:#f4f4f4;color:#444;border-color:#ddd}.btn-default:hover,.btn-default:active,.btn-default.hover{background-color:#e7e7e7}.btn-primary{background-color:#3c8dbc;border-color:#367fa9}.btn-primary:hover,.btn-primary:active,.btn-primary.hover{background-color:#367fa9}.btn-success{background-color:#00a65a;border-color:#008d4c}.btn-success:hover,.btn-success:active,.btn-success.hover{background-color:#008d4c}.btn-info{background-color:#00c0ef;border-color:#00acd6}.btn-info:hover,.btn-info:active,.btn-info.hover{background-color:#00acd6}.btn-danger{background-color:#dd4b39;border-color:#d73925}.btn-danger:hover,.btn-danger:active,.btn-danger.hover{background-color:#d73925}.btn-warning{background-color:#f39c12;border-color:#e08e0b}.btn-warning:hover,.btn-warning:active,.btn-warning.hover{background-color:#e08e0b}.btn-outline{border:1px solid #fff;background:transparent;color:#fff}.btn-outline:hover,.btn-outline:focus,.btn-outline:active{color:rgba(255,255,255,0.7);border-color:rgba(255,255,255,0.7)}.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn[class*='bg-']:hover{-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,0.2);box-shadow:inset 0 0 100px rgba(0,0,0,0.2)}.btn-app{border-radius:3px;position:relative;padding:15px 5px;margin:0 0 10px 10px;min-width:80px;height:60px;text-align:center;color:#666;border:1px solid #ddd;background-color:#f4f4f4;font-size:12px}.btn-app>.fa,.btn-app>.glyphicon,.btn-app>.ion{font-size:20px;display:block}.btn-app:hover{background:#f4f4f4;color:#444;border-color:#aaa}.btn-app:active,.btn-app:focus{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-app>.badge{position:absolute;top:-3px;right:-10px;font-size:10px;font-weight:400}.callout{border-radius:3px;margin:0 0 20px 0;padding:15px 30px 15px 15px;border-left:5px solid #eee}.callout a{color:#fff;text-decoration:underline}.callout a:hover{color:#eee}.callout h4{margin-top:0;font-weight:600}.callout p:last-child{margin-bottom:0}.callout code,.callout .highlight{background-color:#fff}.callout.callout-danger{border-color:#c23321}.callout.callout-warning{border-color:#c87f0a}.callout.callout-info{border-color:#0097bc}.callout.callout-success{border-color:#00733e}.alert{border-radius:3px}.alert h4{font-weight:600}.alert .icon{margin-right:10px}.alert .close{color:#000;opacity:.2;filter:alpha(opacity=20)}.alert .close:hover{opacity:.5;filter:alpha(opacity=50)}.alert a{color:#fff;text-decoration:underline}.alert-success{border-color:#008d4c}.alert-danger,.alert-error{border-color:#d73925}.alert-warning{border-color:#e08e0b}.alert-info{border-color:#00acd6}.nav>li>a:hover,.nav>li>a:active,.nav>li>a:focus{color:#444;background:#f7f7f7}.nav-pills>li>a{border-radius:0;border-top:3px solid transparent;color:#444}.nav-pills>li>a>.fa,.nav-pills>li>a>.glyphicon,.nav-pills>li>a>.ion{margin-right:5px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{border-top-color:#3c8dbc}.nav-pills>li.active>a{font-weight:600}.nav-stacked>li>a{border-radius:0;border-top:0;border-left:3px solid transparent;color:#444}.nav-stacked>li.active>a,.nav-stacked>li.active>a:hover{background:transparent;color:#444;border-top:0;border-left-color:#3c8dbc}.nav-stacked>li.header{border-bottom:1px solid #ddd;color:#777;margin-bottom:10px;padding:5px 10px;text-transform:uppercase}.nav-tabs-custom{margin-bottom:20px;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,0.1);border-radius:3px}.nav-tabs-custom>.nav-tabs{margin:0;border-bottom-color:#f4f4f4;border-top-right-radius:3px;border-top-left-radius:3px}.nav-tabs-custom>.nav-tabs>li{border-top:3px solid transparent;margin-bottom:-2px;margin-right:5px}.nav-tabs-custom>.nav-tabs>li.disabled>a{color:#777}.nav-tabs-custom>.nav-tabs>li>a{color:#444;border-radius:0}.nav-tabs-custom>.nav-tabs>li>a.text-muted{color:#999}.nav-tabs-custom>.nav-tabs>li>a,.nav-tabs-custom>.nav-tabs>li>a:hover{background:transparent;margin:0}.nav-tabs-custom>.nav-tabs>li>a:hover{color:#999}.nav-tabs-custom>.nav-tabs>li:not(.active)>a:hover,.nav-tabs-custom>.nav-tabs>li:not(.active)>a:focus,.nav-tabs-custom>.nav-tabs>li:not(.active)>a:active{border-color:transparent}.nav-tabs-custom>.nav-tabs>li.active{border-top-color:#3c8dbc}.nav-tabs-custom>.nav-tabs>li.active>a,.nav-tabs-custom>.nav-tabs>li.active:hover>a{background-color:#fff;color:#444}.nav-tabs-custom>.nav-tabs>li.active>a{border-top-color:transparent;border-left-color:#f4f4f4;border-right-color:#f4f4f4}.nav-tabs-custom>.nav-tabs>li:first-of-type{margin-left:0}.nav-tabs-custom>.nav-tabs>li:first-of-type.active>a{border-left-color:transparent}.nav-tabs-custom>.nav-tabs.pull-right{float:none !important}.nav-tabs-custom>.nav-tabs.pull-right>li{float:right}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type{margin-right:0}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type>a{border-left-width:1px}.nav-tabs-custom>.nav-tabs.pull-right>li:first-of-type.active>a{border-left-color:#f4f4f4;border-right-color:transparent}.nav-tabs-custom>.nav-tabs>li.header{line-height:35px;padding:0 10px;font-size:20px;color:#444}.nav-tabs-custom>.nav-tabs>li.header>.fa,.nav-tabs-custom>.nav-tabs>li.header>.glyphicon,.nav-tabs-custom>.nav-tabs>li.header>.ion{margin-right:5px}.nav-tabs-custom>.tab-content{background:#fff;padding:10px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.nav-tabs-custom .dropdown.open>a:active,.nav-tabs-custom .dropdown.open>a:focus{background:transparent;color:#999}.nav-tabs-custom.tab-primary>.nav-tabs>li.active{border-top-color:#3c8dbc}.nav-tabs-custom.tab-info>.nav-tabs>li.active{border-top-color:#00c0ef}.nav-tabs-custom.tab-danger>.nav-tabs>li.active{border-top-color:#dd4b39}.nav-tabs-custom.tab-warning>.nav-tabs>li.active{border-top-color:#f39c12}.nav-tabs-custom.tab-success>.nav-tabs>li.active{border-top-color:#00a65a}.nav-tabs-custom.tab-default>.nav-tabs>li.active{border-top-color:#d2d6de}.pagination>li>a{background:#fafafa;color:#666}.pagination.pagination-flat>li>a{border-radius:0 !important}.products-list{list-style:none;margin:0;padding:0}.products-list>.item{border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.1);box-shadow:0 1px 1px rgba(0,0,0,0.1);padding:10px 0;background:#fff}.products-list>.item:before,.products-list>.item:after{content:" ";display:table}.products-list>.item:after{clear:both}.products-list .product-img{float:left}.products-list .product-img img{width:50px;height:50px}.products-list .product-info{margin-left:60px}.products-list .product-title{font-weight:600}.products-list .product-description{display:block;color:#999;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.product-list-in-box>.item{-webkit-box-shadow:none;box-shadow:none;border-radius:0;border-bottom:1px solid #f4f4f4}.product-list-in-box>.item:last-of-type{border-bottom-width:0}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{border-top:1px solid #f4f4f4}.table>thead>tr>th{border-bottom:2px solid #f4f4f4}.table tr td .progress{margin-top:5px}.table-bordered{border:1px solid #f4f4f4}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #f4f4f4}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table.no-border,.table.no-border td,.table.no-border th{border:0}table.text-center,table.text-center td,table.text-center th{text-align:center}.table.align th{text-align:left}.table.align td{text-align:right}.label-default{background-color:#d2d6de;color:#444}.direct-chat .box-body{border-bottom-right-radius:0;border-bottom-left-radius:0;position:relative;overflow-x:hidden;padding:0}.direct-chat.chat-pane-open .direct-chat-contacts{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.direct-chat-messages{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0);padding:10px;height:250px;overflow:auto}.direct-chat-msg,.direct-chat-text{display:block}.direct-chat-msg{margin-bottom:10px}.direct-chat-msg:before,.direct-chat-msg:after{content:" ";display:table}.direct-chat-msg:after{clear:both}.direct-chat-messages,.direct-chat-contacts{-webkit-transition:-webkit-transform .5s ease-in-out;-moz-transition:-moz-transform .5s ease-in-out;-o-transition:-o-transform .5s ease-in-out;transition:transform .5s ease-in-out}.direct-chat-text{border-radius:5px;position:relative;padding:5px 10px;background:#d2d6de;border:1px solid #d2d6de;margin:5px 0 0 50px;color:#444}.direct-chat-text:after,.direct-chat-text:before{position:absolute;right:100%;top:15px;border:solid transparent;border-right-color:#d2d6de;content:' ';height:0;width:0;pointer-events:none}.direct-chat-text:after{border-width:5px;margin-top:-5px}.direct-chat-text:before{border-width:6px;margin-top:-6px}.right .direct-chat-text{margin-right:50px;margin-left:0}.right .direct-chat-text:after,.right .direct-chat-text:before{right:auto;left:100%;border-right-color:transparent;border-left-color:#d2d6de}.direct-chat-img{border-radius:50%;float:left;width:40px;height:40px}.right .direct-chat-img{float:right}.direct-chat-info{display:block;margin-bottom:2px;font-size:12px}.direct-chat-name{font-weight:600}.direct-chat-timestamp{color:#999}.direct-chat-contacts-open .direct-chat-contacts{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.direct-chat-contacts{-webkit-transform:translate(101%, 0);-ms-transform:translate(101%, 0);-o-transform:translate(101%, 0);transform:translate(101%, 0);position:absolute;top:0;bottom:0;height:250px;width:100%;background:#222d32;color:#fff;overflow:auto}.contacts-list>li{border-bottom:1px solid rgba(0,0,0,0.2);padding:10px;margin:0}.contacts-list>li:before,.contacts-list>li:after{content:" ";display:table}.contacts-list>li:after{clear:both}.contacts-list>li:last-of-type{border-bottom:none}.contacts-list-img{border-radius:50%;width:40px;float:left}.contacts-list-info{margin-left:45px;color:#fff}.contacts-list-name,.contacts-list-status{display:block}.contacts-list-name{font-weight:600}.contacts-list-status{font-size:12px}.contacts-list-date{color:#aaa;font-weight:normal}.contacts-list-msg{color:#999}.direct-chat-danger .right>.direct-chat-text{background:#dd4b39;border-color:#dd4b39;color:#fff}.direct-chat-danger .right>.direct-chat-text:after,.direct-chat-danger .right>.direct-chat-text:before{border-left-color:#dd4b39}.direct-chat-primary .right>.direct-chat-text{background:#3c8dbc;border-color:#3c8dbc;color:#fff}.direct-chat-primary .right>.direct-chat-text:after,.direct-chat-primary .right>.direct-chat-text:before{border-left-color:#3c8dbc}.direct-chat-warning .right>.direct-chat-text{background:#f39c12;border-color:#f39c12;color:#fff}.direct-chat-warning .right>.direct-chat-text:after,.direct-chat-warning .right>.direct-chat-text:before{border-left-color:#f39c12}.direct-chat-info .right>.direct-chat-text{background:#00c0ef;border-color:#00c0ef;color:#fff}.direct-chat-info .right>.direct-chat-text:after,.direct-chat-info .right>.direct-chat-text:before{border-left-color:#00c0ef}.direct-chat-success .right>.direct-chat-text{background:#00a65a;border-color:#00a65a;color:#fff}.direct-chat-success .right>.direct-chat-text:after,.direct-chat-success .right>.direct-chat-text:before{border-left-color:#00a65a}.users-list>li{width:25%;float:left;padding:10px;text-align:center}.users-list>li img{border-radius:50%;max-width:100%;height:auto}.users-list>li>a:hover,.users-list>li>a:hover .users-list-name{color:#999}.users-list-name,.users-list-date{display:block}.users-list-name{font-weight:600;color:#444;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.users-list-date{color:#999;font-size:12px}.carousel-control.left,.carousel-control.right{background-image:none}.carousel-control>.fa{font-size:40px;position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-20px}.modal{background:rgba(0,0,0,0.3)}.modal-content{border-radius:0;-webkit-box-shadow:0 2px 3px rgba(0,0,0,0.125);box-shadow:0 2px 3px rgba(0,0,0,0.125);border:0}@media (min-width:768px){.modal-content{-webkit-box-shadow:0 2px 3px rgba(0,0,0,0.125);box-shadow:0 2px 3px rgba(0,0,0,0.125)}}.modal-header{border-bottom-color:#f4f4f4}.modal-footer{border-top-color:#f4f4f4}.modal-primary .modal-header,.modal-primary .modal-footer{border-color:#307095}.modal-warning .modal-header,.modal-warning .modal-footer{border-color:#c87f0a}.modal-info .modal-header,.modal-info .modal-footer{border-color:#0097bc}.modal-success .modal-header,.modal-success .modal-footer{border-color:#00733e}.modal-danger .modal-header,.modal-danger .modal-footer{border-color:#c23321}.box-widget{border:none;position:relative}.widget-user .widget-user-header{padding:20px;height:120px;border-top-right-radius:3px;border-top-left-radius:3px}.widget-user .widget-user-username{margin-top:0;margin-bottom:5px;font-size:25px;font-weight:300;text-shadow:0 1px 1px rgba(0,0,0,0.2)}.widget-user .widget-user-desc{margin-top:0}.widget-user .widget-user-image{position:absolute;top:65px;left:50%;margin-left:-45px}.widget-user .widget-user-image>img{width:90px;height:auto;border:3px solid #fff}.widget-user .box-footer{padding-top:30px}.widget-user-2 .widget-user-header{padding:20px;border-top-right-radius:3px;border-top-left-radius:3px}.widget-user-2 .widget-user-username{margin-top:5px;margin-bottom:5px;font-size:25px;font-weight:300}.widget-user-2 .widget-user-desc{margin-top:0}.widget-user-2 .widget-user-username,.widget-user-2 .widget-user-desc{margin-left:75px}.widget-user-2 .widget-user-image>img{width:65px;height:auto;float:left}.treeview-menu{display:none;list-style:none;padding:0;margin:0;padding-left:5px}.treeview-menu .treeview-menu{padding-left:20px}.treeview-menu>li{margin:0}.treeview-menu>li>a{padding:5px 5px 5px 15px;display:block;font-size:14px}.treeview-menu>li>a>.fa,.treeview-menu>li>a>.glyphicon,.treeview-menu>li>a>.ion{width:20px}.treeview-menu>li>a>.pull-right-container>.fa-angle-left,.treeview-menu>li>a>.pull-right-container>.fa-angle-down,.treeview-menu>li>a>.fa-angle-left,.treeview-menu>li>a>.fa-angle-down{width:auto}.mailbox-messages>.table{margin:0}.mailbox-controls{padding:5px}.mailbox-controls.with-border{border-bottom:1px solid #f4f4f4}.mailbox-read-info{border-bottom:1px solid #f4f4f4;padding:10px}.mailbox-read-info h3{font-size:20px;margin:0}.mailbox-read-info h5{margin:0;padding:5px 0 0 0}.mailbox-read-time{color:#999;font-size:13px}.mailbox-read-message{padding:10px}.mailbox-attachments li{float:left;width:200px;border:1px solid #eee;margin-bottom:10px;margin-right:10px}.mailbox-attachment-name{font-weight:bold;color:#666}.mailbox-attachment-icon,.mailbox-attachment-info,.mailbox-attachment-size{display:block}.mailbox-attachment-info{padding:10px;background:#f4f4f4}.mailbox-attachment-size{color:#999;font-size:12px}.mailbox-attachment-icon{text-align:center;font-size:65px;color:#666;padding:20px 10px}.mailbox-attachment-icon.has-img{padding:0}.mailbox-attachment-icon.has-img>img{max-width:100%;height:auto}.lockscreen{background:#d2d6de}.lockscreen-logo{font-size:35px;text-align:center;margin-bottom:25px;font-weight:300}.lockscreen-logo a{color:#444}.lockscreen-wrapper{max-width:400px;margin:0 auto;margin-top:10%}.lockscreen .lockscreen-name{text-align:center;font-weight:600}.lockscreen-item{border-radius:4px;padding:0;background:#fff;position:relative;margin:10px auto 30px auto;width:290px}.lockscreen-image{border-radius:50%;position:absolute;left:-10px;top:-25px;background:#fff;padding:5px;z-index:10}.lockscreen-image>img{border-radius:50%;width:70px;height:70px}.lockscreen-credentials{margin-left:70px}.lockscreen-credentials .form-control{border:0}.lockscreen-credentials .btn{background-color:#fff;border:0;padding:0 10px}.lockscreen-footer{margin-top:10px}.login-logo,.register-logo{font-size:35px;text-align:center;margin-bottom:25px;font-weight:300}.login-logo a,.register-logo a{color:#444}.login-page,.register-page{background:#d2d6de}.login-box,.register-box{width:360px;margin:7% auto}@media (max-width:768px){.login-box,.register-box{width:90%;margin-top:20px}}.login-box-body,.register-box-body{background:#fff;padding:20px;border-top:0;color:#666}.login-box-body .form-control-feedback,.register-box-body .form-control-feedback{color:#777}.login-box-msg,.register-box-msg{margin:0;text-align:center;padding:0 20px 20px 20px}.social-auth-links{margin:10px 0}.error-page{width:600px;margin:20px auto 0 auto}@media (max-width:991px){.error-page{width:100%}}.error-page>.headline{float:left;font-size:100px;font-weight:300}@media (max-width:991px){.error-page>.headline{float:none;text-align:center}}.error-page>.error-content{margin-left:190px;display:block}@media (max-width:991px){.error-page>.error-content{margin-left:0}}.error-page>.error-content>h3{font-weight:300;font-size:25px}@media (max-width:991px){.error-page>.error-content>h3{text-align:center}}.invoice{position:relative;background:#fff;border:1px solid #f4f4f4;padding:20px;margin:10px 25px}.invoice-title{margin-top:0}.profile-user-img{margin:0 auto;width:100px;padding:3px;border:3px solid #d2d6de}.profile-username{font-size:21px;margin-top:5px}.post{border-bottom:1px solid #d2d6de;margin-bottom:15px;padding-bottom:15px;color:#666}.post:last-of-type{border-bottom:0;margin-bottom:0;padding-bottom:0}.post .user-block{margin-bottom:15px}.btn-social{position:relative;padding-left:44px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-social>:first-child{position:absolute;left:0;top:0;bottom:0;width:32px;line-height:34px;font-size:1.6em;text-align:center;border-right:1px solid rgba(0,0,0,0.2)}.btn-social.btn-lg{padding-left:61px}.btn-social.btn-lg>:first-child{line-height:45px;width:45px;font-size:1.8em}.btn-social.btn-sm{padding-left:38px}.btn-social.btn-sm>:first-child{line-height:28px;width:28px;font-size:1.4em}.btn-social.btn-xs{padding-left:30px}.btn-social.btn-xs>:first-child{line-height:20px;width:20px;font-size:1.2em}.btn-social-icon{position:relative;padding-left:44px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:34px;width:34px;padding:0}.btn-social-icon>:first-child{position:absolute;left:0;top:0;bottom:0;width:32px;line-height:34px;font-size:1.6em;text-align:center;border-right:1px solid rgba(0,0,0,0.2)}.btn-social-icon.btn-lg{padding-left:61px}.btn-social-icon.btn-lg>:first-child{line-height:45px;width:45px;font-size:1.8em}.btn-social-icon.btn-sm{padding-left:38px}.btn-social-icon.btn-sm>:first-child{line-height:28px;width:28px;font-size:1.4em}.btn-social-icon.btn-xs{padding-left:30px}.btn-social-icon.btn-xs>:first-child{line-height:20px;width:20px;font-size:1.2em}.btn-social-icon>:first-child{border:none;text-align:center;width:100%}.btn-social-icon.btn-lg{height:45px;width:45px;padding-left:0;padding-right:0}.btn-social-icon.btn-sm{height:30px;width:30px;padding-left:0;padding-right:0}.btn-social-icon.btn-xs{height:22px;width:22px;padding-left:0;padding-right:0}.btn-adn{color:#fff;background-color:#d87a68;border-color:rgba(0,0,0,0.2)}.btn-adn:focus,.btn-adn.focus{color:#fff;background-color:#ce563f;border-color:rgba(0,0,0,0.2)}.btn-adn:hover{color:#fff;background-color:#ce563f;border-color:rgba(0,0,0,0.2)}.btn-adn:active,.btn-adn.active,.open>.dropdown-toggle.btn-adn{color:#fff;background-color:#ce563f;border-color:rgba(0,0,0,0.2)}.btn-adn:active,.btn-adn.active,.open>.dropdown-toggle.btn-adn{background-image:none}.btn-adn .badge{color:#d87a68;background-color:#fff}.btn-bitbucket{color:#fff;background-color:#205081;border-color:rgba(0,0,0,0.2)}.btn-bitbucket:focus,.btn-bitbucket.focus{color:#fff;background-color:#163758;border-color:rgba(0,0,0,0.2)}.btn-bitbucket:hover{color:#fff;background-color:#163758;border-color:rgba(0,0,0,0.2)}.btn-bitbucket:active,.btn-bitbucket.active,.open>.dropdown-toggle.btn-bitbucket{color:#fff;background-color:#163758;border-color:rgba(0,0,0,0.2)}.btn-bitbucket:active,.btn-bitbucket.active,.open>.dropdown-toggle.btn-bitbucket{background-image:none}.btn-bitbucket .badge{color:#205081;background-color:#fff}.btn-dropbox{color:#fff;background-color:#1087dd;border-color:rgba(0,0,0,0.2)}.btn-dropbox:focus,.btn-dropbox.focus{color:#fff;background-color:#0d6aad;border-color:rgba(0,0,0,0.2)}.btn-dropbox:hover{color:#fff;background-color:#0d6aad;border-color:rgba(0,0,0,0.2)}.btn-dropbox:active,.btn-dropbox.active,.open>.dropdown-toggle.btn-dropbox{color:#fff;background-color:#0d6aad;border-color:rgba(0,0,0,0.2)}.btn-dropbox:active,.btn-dropbox.active,.open>.dropdown-toggle.btn-dropbox{background-image:none}.btn-dropbox .badge{color:#1087dd;background-color:#fff}.btn-facebook{color:#fff;background-color:#3b5998;border-color:rgba(0,0,0,0.2)}.btn-facebook:focus,.btn-facebook.focus{color:#fff;background-color:#2d4373;border-color:rgba(0,0,0,0.2)}.btn-facebook:hover{color:#fff;background-color:#2d4373;border-color:rgba(0,0,0,0.2)}.btn-facebook:active,.btn-facebook.active,.open>.dropdown-toggle.btn-facebook{color:#fff;background-color:#2d4373;border-color:rgba(0,0,0,0.2)}.btn-facebook:active,.btn-facebook.active,.open>.dropdown-toggle.btn-facebook{background-image:none}.btn-facebook .badge{color:#3b5998;background-color:#fff}.btn-flickr{color:#fff;background-color:#ff0084;border-color:rgba(0,0,0,0.2)}.btn-flickr:focus,.btn-flickr.focus{color:#fff;background-color:#cc006a;border-color:rgba(0,0,0,0.2)}.btn-flickr:hover{color:#fff;background-color:#cc006a;border-color:rgba(0,0,0,0.2)}.btn-flickr:active,.btn-flickr.active,.open>.dropdown-toggle.btn-flickr{color:#fff;background-color:#cc006a;border-color:rgba(0,0,0,0.2)}.btn-flickr:active,.btn-flickr.active,.open>.dropdown-toggle.btn-flickr{background-image:none}.btn-flickr .badge{color:#ff0084;background-color:#fff}.btn-foursquare{color:#fff;background-color:#f94877;border-color:rgba(0,0,0,0.2)}.btn-foursquare:focus,.btn-foursquare.focus{color:#fff;background-color:#f71752;border-color:rgba(0,0,0,0.2)}.btn-foursquare:hover{color:#fff;background-color:#f71752;border-color:rgba(0,0,0,0.2)}.btn-foursquare:active,.btn-foursquare.active,.open>.dropdown-toggle.btn-foursquare{color:#fff;background-color:#f71752;border-color:rgba(0,0,0,0.2)}.btn-foursquare:active,.btn-foursquare.active,.open>.dropdown-toggle.btn-foursquare{background-image:none}.btn-foursquare .badge{color:#f94877;background-color:#fff}.btn-github{color:#fff;background-color:#444;border-color:rgba(0,0,0,0.2)}.btn-github:focus,.btn-github.focus{color:#fff;background-color:#2b2b2b;border-color:rgba(0,0,0,0.2)}.btn-github:hover{color:#fff;background-color:#2b2b2b;border-color:rgba(0,0,0,0.2)}.btn-github:active,.btn-github.active,.open>.dropdown-toggle.btn-github{color:#fff;background-color:#2b2b2b;border-color:rgba(0,0,0,0.2)}.btn-github:active,.btn-github.active,.open>.dropdown-toggle.btn-github{background-image:none}.btn-github .badge{color:#444;background-color:#fff}.btn-google{color:#fff;background-color:#dd4b39;border-color:rgba(0,0,0,0.2)}.btn-google:focus,.btn-google.focus{color:#fff;background-color:#c23321;border-color:rgba(0,0,0,0.2)}.btn-google:hover{color:#fff;background-color:#c23321;border-color:rgba(0,0,0,0.2)}.btn-google:active,.btn-google.active,.open>.dropdown-toggle.btn-google{color:#fff;background-color:#c23321;border-color:rgba(0,0,0,0.2)}.btn-google:active,.btn-google.active,.open>.dropdown-toggle.btn-google{background-image:none}.btn-google .badge{color:#dd4b39;background-color:#fff}.btn-instagram{color:#fff;background-color:#3f729b;border-color:rgba(0,0,0,0.2)}.btn-instagram:focus,.btn-instagram.focus{color:#fff;background-color:#305777;border-color:rgba(0,0,0,0.2)}.btn-instagram:hover{color:#fff;background-color:#305777;border-color:rgba(0,0,0,0.2)}.btn-instagram:active,.btn-instagram.active,.open>.dropdown-toggle.btn-instagram{color:#fff;background-color:#305777;border-color:rgba(0,0,0,0.2)}.btn-instagram:active,.btn-instagram.active,.open>.dropdown-toggle.btn-instagram{background-image:none}.btn-instagram .badge{color:#3f729b;background-color:#fff}.btn-linkedin{color:#fff;background-color:#007bb6;border-color:rgba(0,0,0,0.2)}.btn-linkedin:focus,.btn-linkedin.focus{color:#fff;background-color:#005983;border-color:rgba(0,0,0,0.2)}.btn-linkedin:hover{color:#fff;background-color:#005983;border-color:rgba(0,0,0,0.2)}.btn-linkedin:active,.btn-linkedin.active,.open>.dropdown-toggle.btn-linkedin{color:#fff;background-color:#005983;border-color:rgba(0,0,0,0.2)}.btn-linkedin:active,.btn-linkedin.active,.open>.dropdown-toggle.btn-linkedin{background-image:none}.btn-linkedin .badge{color:#007bb6;background-color:#fff}.btn-microsoft{color:#fff;background-color:#2672ec;border-color:rgba(0,0,0,0.2)}.btn-microsoft:focus,.btn-microsoft.focus{color:#fff;background-color:#125acd;border-color:rgba(0,0,0,0.2)}.btn-microsoft:hover{color:#fff;background-color:#125acd;border-color:rgba(0,0,0,0.2)}.btn-microsoft:active,.btn-microsoft.active,.open>.dropdown-toggle.btn-microsoft{color:#fff;background-color:#125acd;border-color:rgba(0,0,0,0.2)}.btn-microsoft:active,.btn-microsoft.active,.open>.dropdown-toggle.btn-microsoft{background-image:none}.btn-microsoft .badge{color:#2672ec;background-color:#fff}.btn-openid{color:#fff;background-color:#f7931e;border-color:rgba(0,0,0,0.2)}.btn-openid:focus,.btn-openid.focus{color:#fff;background-color:#da7908;border-color:rgba(0,0,0,0.2)}.btn-openid:hover{color:#fff;background-color:#da7908;border-color:rgba(0,0,0,0.2)}.btn-openid:active,.btn-openid.active,.open>.dropdown-toggle.btn-openid{color:#fff;background-color:#da7908;border-color:rgba(0,0,0,0.2)}.btn-openid:active,.btn-openid.active,.open>.dropdown-toggle.btn-openid{background-image:none}.btn-openid .badge{color:#f7931e;background-color:#fff}.btn-pinterest{color:#fff;background-color:#cb2027;border-color:rgba(0,0,0,0.2)}.btn-pinterest:focus,.btn-pinterest.focus{color:#fff;background-color:#9f191f;border-color:rgba(0,0,0,0.2)}.btn-pinterest:hover{color:#fff;background-color:#9f191f;border-color:rgba(0,0,0,0.2)}.btn-pinterest:active,.btn-pinterest.active,.open>.dropdown-toggle.btn-pinterest{color:#fff;background-color:#9f191f;border-color:rgba(0,0,0,0.2)}.btn-pinterest:active,.btn-pinterest.active,.open>.dropdown-toggle.btn-pinterest{background-image:none}.btn-pinterest .badge{color:#cb2027;background-color:#fff}.btn-reddit{color:#000;background-color:#eff7ff;border-color:rgba(0,0,0,0.2)}.btn-reddit:focus,.btn-reddit.focus{color:#000;background-color:#bcddff;border-color:rgba(0,0,0,0.2)}.btn-reddit:hover{color:#000;background-color:#bcddff;border-color:rgba(0,0,0,0.2)}.btn-reddit:active,.btn-reddit.active,.open>.dropdown-toggle.btn-reddit{color:#000;background-color:#bcddff;border-color:rgba(0,0,0,0.2)}.btn-reddit:active,.btn-reddit.active,.open>.dropdown-toggle.btn-reddit{background-image:none}.btn-reddit .badge{color:#eff7ff;background-color:#000}.btn-soundcloud{color:#fff;background-color:#f50;border-color:rgba(0,0,0,0.2)}.btn-soundcloud:focus,.btn-soundcloud.focus{color:#fff;background-color:#c40;border-color:rgba(0,0,0,0.2)}.btn-soundcloud:hover{color:#fff;background-color:#c40;border-color:rgba(0,0,0,0.2)}.btn-soundcloud:active,.btn-soundcloud.active,.open>.dropdown-toggle.btn-soundcloud{color:#fff;background-color:#c40;border-color:rgba(0,0,0,0.2)}.btn-soundcloud:active,.btn-soundcloud.active,.open>.dropdown-toggle.btn-soundcloud{background-image:none}.btn-soundcloud .badge{color:#f50;background-color:#fff}.btn-tumblr{color:#fff;background-color:#2c4762;border-color:rgba(0,0,0,0.2)}.btn-tumblr:focus,.btn-tumblr.focus{color:#fff;background-color:#1c2d3f;border-color:rgba(0,0,0,0.2)}.btn-tumblr:hover{color:#fff;background-color:#1c2d3f;border-color:rgba(0,0,0,0.2)}.btn-tumblr:active,.btn-tumblr.active,.open>.dropdown-toggle.btn-tumblr{color:#fff;background-color:#1c2d3f;border-color:rgba(0,0,0,0.2)}.btn-tumblr:active,.btn-tumblr.active,.open>.dropdown-toggle.btn-tumblr{background-image:none}.btn-tumblr .badge{color:#2c4762;background-color:#fff}.btn-twitter{color:#fff;background-color:#55acee;border-color:rgba(0,0,0,0.2)}.btn-twitter:focus,.btn-twitter.focus{color:#fff;background-color:#2795e9;border-color:rgba(0,0,0,0.2)}.btn-twitter:hover{color:#fff;background-color:#2795e9;border-color:rgba(0,0,0,0.2)}.btn-twitter:active,.btn-twitter.active,.open>.dropdown-toggle.btn-twitter{color:#fff;background-color:#2795e9;border-color:rgba(0,0,0,0.2)}.btn-twitter:active,.btn-twitter.active,.open>.dropdown-toggle.btn-twitter{background-image:none}.btn-twitter .badge{color:#55acee;background-color:#fff}.btn-vimeo{color:#fff;background-color:#1ab7ea;border-color:rgba(0,0,0,0.2)}.btn-vimeo:focus,.btn-vimeo.focus{color:#fff;background-color:#1295bf;border-color:rgba(0,0,0,0.2)}.btn-vimeo:hover{color:#fff;background-color:#1295bf;border-color:rgba(0,0,0,0.2)}.btn-vimeo:active,.btn-vimeo.active,.open>.dropdown-toggle.btn-vimeo{color:#fff;background-color:#1295bf;border-color:rgba(0,0,0,0.2)}.btn-vimeo:active,.btn-vimeo.active,.open>.dropdown-toggle.btn-vimeo{background-image:none}.btn-vimeo .badge{color:#1ab7ea;background-color:#fff}.btn-vk{color:#fff;background-color:#587ea3;border-color:rgba(0,0,0,0.2)}.btn-vk:focus,.btn-vk.focus{color:#fff;background-color:#466482;border-color:rgba(0,0,0,0.2)}.btn-vk:hover{color:#fff;background-color:#466482;border-color:rgba(0,0,0,0.2)}.btn-vk:active,.btn-vk.active,.open>.dropdown-toggle.btn-vk{color:#fff;background-color:#466482;border-color:rgba(0,0,0,0.2)}.btn-vk:active,.btn-vk.active,.open>.dropdown-toggle.btn-vk{background-image:none}.btn-vk .badge{color:#587ea3;background-color:#fff}.btn-yahoo{color:#fff;background-color:#720e9e;border-color:rgba(0,0,0,0.2)}.btn-yahoo:focus,.btn-yahoo.focus{color:#fff;background-color:#500a6f;border-color:rgba(0,0,0,0.2)}.btn-yahoo:hover{color:#fff;background-color:#500a6f;border-color:rgba(0,0,0,0.2)}.btn-yahoo:active,.btn-yahoo.active,.open>.dropdown-toggle.btn-yahoo{color:#fff;background-color:#500a6f;border-color:rgba(0,0,0,0.2)}.btn-yahoo:active,.btn-yahoo.active,.open>.dropdown-toggle.btn-yahoo{background-image:none}.btn-yahoo .badge{color:#720e9e;background-color:#fff}.fc-button{background:#f4f4f4;background-image:none;color:#444;border-color:#ddd;border-bottom-color:#ddd}.fc-button:hover,.fc-button:active,.fc-button.hover{background-color:#e9e9e9}.fc-header-title h2{font-size:15px;line-height:1.6em;color:#666;margin-left:10px}.fc-header-right{padding-right:10px}.fc-header-left{padding-left:10px}.fc-widget-header{background:#fafafa}.fc-grid{width:100%;border:0}.fc-widget-header:first-of-type,.fc-widget-content:first-of-type{border-left:0;border-right:0}.fc-widget-header:last-of-type,.fc-widget-content:last-of-type{border-right:0}.fc-toolbar{padding:10px;margin:0}.fc-day-number{font-size:20px;font-weight:300;padding-right:10px}.fc-color-picker{list-style:none;margin:0;padding:0}.fc-color-picker>li{float:left;font-size:30px;margin-right:5px;line-height:30px}.fc-color-picker>li .fa{-webkit-transition:-webkit-transform linear .3s;-moz-transition:-moz-transform linear .3s;-o-transition:-o-transform linear .3s;transition:transform linear .3s}.fc-color-picker>li .fa:hover{-webkit-transform:rotate(30deg);-ms-transform:rotate(30deg);-o-transform:rotate(30deg);transform:rotate(30deg)}#add-new-event{-webkit-transition:all linear .3s;-o-transition:all linear .3s;transition:all linear .3s}.external-event{padding:5px 10px;font-weight:bold;margin-bottom:4px;box-shadow:0 1px 1px rgba(0,0,0,0.1);text-shadow:0 1px 1px rgba(0,0,0,0.1);border-radius:3px;cursor:move}.external-event:hover{box-shadow:inset 0 0 90px rgba(0,0,0,0.2)}.select2-container--default.select2-container--focus,.select2-selection.select2-container--focus,.select2-container--default:focus,.select2-selection:focus,.select2-container--default:active,.select2-selection:active{outline:none}.select2-container--default .select2-selection--single,.select2-selection .select2-selection--single{border:1px solid #d2d6de;border-radius:0;padding:6px 12px;height:34px}.select2-container--default.select2-container--open{border-color:#3c8dbc}.select2-dropdown{border:1px solid #d2d6de;border-radius:0}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#3c8dbc;color:white}.select2-results__option{padding:6px 12px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{padding-left:0;padding-right:0;height:auto;margin-top:-4px}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:6px;padding-left:20px}.select2-container--default .select2-selection--single .select2-selection__arrow{height:28px;right:3px}.select2-container--default .select2-selection--single .select2-selection__arrow b{margin-top:0}.select2-dropdown .select2-search__field,.select2-search--inline .select2-search__field{border:1px solid #d2d6de}.select2-dropdown .select2-search__field:focus,.select2-search--inline .select2-search__field:focus{outline:none}.select2-container--default.select2-container--focus .select2-selection--multiple,.select2-container--default .select2-search--dropdown .select2-search__field{border-color:#3c8dbc !important}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option[aria-selected=true],.select2-container--default .select2-results__option[aria-selected=true]:hover{color:#444}.select2-container--default .select2-selection--multiple{border:1px solid #d2d6de;border-radius:0}.select2-container--default .select2-selection--multiple:focus{border-color:#3c8dbc}.select2-container--default.select2-container--focus .select2-selection--multiple{border-color:#d2d6de}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#3c8dbc;border-color:#367fa9;padding:1px 10px;color:#fff}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{margin-right:5px;color:rgba(255,255,255,0.7)}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#fff}.select2-container .select2-selection--single .select2-selection__rendered{padding-right:10px}.box .datepicker-inline,.box .datepicker-inline .datepicker-days,.box .datepicker-inline>table,.box .datepicker-inline .datepicker-days>table{width:100%}.box .datepicker-inline td:hover,.box .datepicker-inline .datepicker-days td:hover,.box .datepicker-inline>table td:hover,.box .datepicker-inline .datepicker-days>table td:hover{background-color:rgba(255,255,255,0.3)}.box .datepicker-inline td.day.old,.box .datepicker-inline .datepicker-days td.day.old,.box .datepicker-inline>table td.day.old,.box .datepicker-inline .datepicker-days>table td.day.old,.box .datepicker-inline td.day.new,.box .datepicker-inline .datepicker-days td.day.new,.box .datepicker-inline>table td.day.new,.box .datepicker-inline .datepicker-days>table td.day.new{color:#777}.pad{padding:10px}.margin{margin:10px}.margin-bottom{margin-bottom:20px}.margin-bottom-none{margin-bottom:0}.margin-r-5{margin-right:5px}.inline{display:inline}.description-block{display:block;margin:10px 0;text-align:center}.description-block.margin-bottom{margin-bottom:25px}.description-block>.description-header{margin:0;padding:0;font-weight:600;font-size:16px}.description-block>.description-text{text-transform:uppercase}.bg-red,.bg-yellow,.bg-aqua,.bg-blue,.bg-light-blue,.bg-green,.bg-navy,.bg-teal,.bg-olive,.bg-lime,.bg-orange,.bg-fuchsia,.bg-purple,.bg-maroon,.bg-black,.bg-red-active,.bg-yellow-active,.bg-aqua-active,.bg-blue-active,.bg-light-blue-active,.bg-green-active,.bg-navy-active,.bg-teal-active,.bg-olive-active,.bg-lime-active,.bg-orange-active,.bg-fuchsia-active,.bg-purple-active,.bg-maroon-active,.bg-black-active,.callout.callout-danger,.callout.callout-warning,.callout.callout-info,.callout.callout-success,.alert-success,.alert-danger,.alert-error,.alert-warning,.alert-info,.label-danger,.label-info,.label-warning,.label-primary,.label-success,.modal-primary .modal-body,.modal-primary .modal-header,.modal-primary .modal-footer,.modal-warning .modal-body,.modal-warning .modal-header,.modal-warning .modal-footer,.modal-info .modal-body,.modal-info .modal-header,.modal-info .modal-footer,.modal-success .modal-body,.modal-success .modal-header,.modal-success .modal-footer,.modal-danger .modal-body,.modal-danger .modal-header,.modal-danger .modal-footer{color:#fff !important}.bg-gray{color:#000;background-color:#d2d6de !important}.bg-gray-light{background-color:#f7f7f7}.bg-black{background-color:#111 !important}.bg-red,.callout.callout-danger,.alert-danger,.alert-error,.label-danger,.modal-danger .modal-body{background-color:#dd4b39 !important}.bg-yellow,.callout.callout-warning,.alert-warning,.label-warning,.modal-warning .modal-body{background-color:#f39c12 !important}.bg-aqua,.callout.callout-info,.alert-info,.label-info,.modal-info .modal-body{background-color:#00c0ef !important}.bg-blue{background-color:#0073b7 !important}.bg-light-blue,.label-primary,.modal-primary .modal-body{background-color:#3c8dbc !important}.bg-green,.callout.callout-success,.alert-success,.label-success,.modal-success .modal-body{background-color:#00a65a !important}.bg-navy{background-color:#001f3f !important}.bg-teal{background-color:#39cccc !important}.bg-olive{background-color:#3d9970 !important}.bg-lime{background-color:#01ff70 !important}.bg-orange{background-color:#ff851b !important}.bg-fuchsia{background-color:#f012be !important}.bg-purple{background-color:#605ca8 !important}.bg-maroon{background-color:#d81b60 !important}.bg-gray-active{color:#000;background-color:#b5bbc8 !important}.bg-black-active{background-color:#000 !important}.bg-red-active,.modal-danger .modal-header,.modal-danger .modal-footer{background-color:#d33724 !important}.bg-yellow-active,.modal-warning .modal-header,.modal-warning .modal-footer{background-color:#db8b0b !important}.bg-aqua-active,.modal-info .modal-header,.modal-info .modal-footer{background-color:#00a7d0 !important}.bg-blue-active{background-color:#005384 !important}.bg-light-blue-active,.modal-primary .modal-header,.modal-primary .modal-footer{background-color:#357ca5 !important}.bg-green-active,.modal-success .modal-header,.modal-success .modal-footer{background-color:#008d4c !important}.bg-navy-active{background-color:#001a35 !important}.bg-teal-active{background-color:#30bbbb !important}.bg-olive-active{background-color:#368763 !important}.bg-lime-active{background-color:#00e765 !important}.bg-orange-active{background-color:#ff7701 !important}.bg-fuchsia-active{background-color:#db0ead !important}.bg-purple-active{background-color:#555299 !important}.bg-maroon-active{background-color:#ca195a !important}[class^="bg-"].disabled{opacity:.65;filter:alpha(opacity=65)}.text-red{color:#dd4b39 !important}.text-yellow{color:#f39c12 !important}.text-aqua{color:#00c0ef !important}.text-blue{color:#0073b7 !important}.text-black{color:#111 !important}.text-light-blue{color:#3c8dbc !important}.text-green{color:#00a65a !important}.text-gray{color:#d2d6de !important}.text-navy{color:#001f3f !important}.text-teal{color:#39cccc !important}.text-olive{color:#3d9970 !important}.text-lime{color:#01ff70 !important}.text-orange{color:#ff851b !important}.text-fuchsia{color:#f012be !important}.text-purple{color:#605ca8 !important}.text-maroon{color:#d81b60 !important}.link-muted{color:#7a869d}.link-muted:hover,.link-muted:focus{color:#606c84}.link-black{color:#666}.link-black:hover,.link-black:focus{color:#999}.hide{display:none !important}.no-border{border:0 !important}.no-padding{padding:0 !important}.no-margin{margin:0 !important}.no-shadow{box-shadow:none !important}.list-unstyled,.chart-legend,.contacts-list,.users-list,.mailbox-attachments{list-style:none;margin:0;padding:0}.list-group-unbordered>.list-group-item{border-left:0;border-right:0;border-radius:0;padding-left:0;padding-right:0}.flat{border-radius:0 !important}.text-bold,.text-bold.table td,.text-bold.table th{font-weight:700}.text-sm{font-size:12px}.jqstooltip{padding:5px !important;width:auto !important;height:auto !important}.bg-teal-gradient{background:#39cccc !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #39cccc), color-stop(1, #7adddd)) !important;background:-ms-linear-gradient(bottom, #39cccc, #7adddd) !important;background:-moz-linear-gradient(center bottom, #39cccc 0, #7adddd 100%) !important;background:-o-linear-gradient(#7adddd, #39cccc) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#7adddd', endColorstr='#39cccc', GradientType=0) !important;color:#fff}.bg-light-blue-gradient{background:#3c8dbc !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #3c8dbc), color-stop(1, #67a8ce)) !important;background:-ms-linear-gradient(bottom, #3c8dbc, #67a8ce) !important;background:-moz-linear-gradient(center bottom, #3c8dbc 0, #67a8ce 100%) !important;background:-o-linear-gradient(#67a8ce, #3c8dbc) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#67a8ce', endColorstr='#3c8dbc', GradientType=0) !important;color:#fff}.bg-blue-gradient{background:#0073b7 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #0073b7), color-stop(1, #0089db)) !important;background:-ms-linear-gradient(bottom, #0073b7, #0089db) !important;background:-moz-linear-gradient(center bottom, #0073b7 0, #0089db 100%) !important;background:-o-linear-gradient(#0089db, #0073b7) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0089db', endColorstr='#0073b7', GradientType=0) !important;color:#fff}.bg-aqua-gradient{background:#00c0ef !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #00c0ef), color-stop(1, #14d1ff)) !important;background:-ms-linear-gradient(bottom, #00c0ef, #14d1ff) !important;background:-moz-linear-gradient(center bottom, #00c0ef 0, #14d1ff 100%) !important;background:-o-linear-gradient(#14d1ff, #00c0ef) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#14d1ff', endColorstr='#00c0ef', GradientType=0) !important;color:#fff}.bg-yellow-gradient{background:#f39c12 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #f39c12), color-stop(1, #f7bc60)) !important;background:-ms-linear-gradient(bottom, #f39c12, #f7bc60) !important;background:-moz-linear-gradient(center bottom, #f39c12 0, #f7bc60 100%) !important;background:-o-linear-gradient(#f7bc60, #f39c12) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#f7bc60', endColorstr='#f39c12', GradientType=0) !important;color:#fff}.bg-purple-gradient{background:#605ca8 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #605ca8), color-stop(1, #9491c4)) !important;background:-ms-linear-gradient(bottom, #605ca8, #9491c4) !important;background:-moz-linear-gradient(center bottom, #605ca8 0, #9491c4 100%) !important;background:-o-linear-gradient(#9491c4, #605ca8) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9491c4', endColorstr='#605ca8', GradientType=0) !important;color:#fff}.bg-green-gradient{background:#00a65a !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #00a65a), color-stop(1, #00ca6d)) !important;background:-ms-linear-gradient(bottom, #00a65a, #00ca6d) !important;background:-moz-linear-gradient(center bottom, #00a65a 0, #00ca6d 100%) !important;background:-o-linear-gradient(#00ca6d, #00a65a) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ca6d', endColorstr='#00a65a', GradientType=0) !important;color:#fff}.bg-red-gradient{background:#dd4b39 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #dd4b39), color-stop(1, #e47365)) !important;background:-ms-linear-gradient(bottom, #dd4b39, #e47365) !important;background:-moz-linear-gradient(center bottom, #dd4b39 0, #e47365 100%) !important;background:-o-linear-gradient(#e47365, #dd4b39) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e47365', endColorstr='#dd4b39', GradientType=0) !important;color:#fff}.bg-black-gradient{background:#111 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #111), color-stop(1, #2b2b2b)) !important;background:-ms-linear-gradient(bottom, #111, #2b2b2b) !important;background:-moz-linear-gradient(center bottom, #111 0, #2b2b2b 100%) !important;background:-o-linear-gradient(#2b2b2b, #111) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#2b2b2b', endColorstr='#111111', GradientType=0) !important;color:#fff}.bg-maroon-gradient{background:#d81b60 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #d81b60), color-stop(1, #e73f7c)) !important;background:-ms-linear-gradient(bottom, #d81b60, #e73f7c) !important;background:-moz-linear-gradient(center bottom, #d81b60 0, #e73f7c 100%) !important;background:-o-linear-gradient(#e73f7c, #d81b60) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e73f7c', endColorstr='#d81b60', GradientType=0) !important;color:#fff}.description-block .description-icon{font-size:16px}.no-pad-top{padding-top:0}.position-static{position:static !important}.list-header{font-size:15px;padding:10px 4px;font-weight:bold;color:#666}.list-seperator{height:1px;background:#f4f4f4;margin:15px 0 9px 0}.list-link>a{padding:4px;color:#777}.list-link>a:hover{color:#222}.font-light{font-weight:300}.user-block:before,.user-block:after{content:" ";display:table}.user-block:after{clear:both}.user-block img{width:40px;height:40px;float:left}.user-block .username,.user-block .description,.user-block .comment{display:block;margin-left:50px}.user-block .username{font-size:16px;font-weight:600}.user-block .description{color:#999;font-size:13px}.user-block.user-block-sm .username,.user-block.user-block-sm .description,.user-block.user-block-sm .comment{margin-left:40px}.user-block.user-block-sm .username{font-size:14px}.img-sm,.img-md,.img-lg,.box-comments .box-comment img,.user-block.user-block-sm img{float:left}.img-sm,.box-comments .box-comment img,.user-block.user-block-sm img{width:30px !important;height:30px !important}.img-sm+.img-push{margin-left:40px}.img-md{width:60px;height:60px}.img-md+.img-push{margin-left:70px}.img-lg{width:100px;height:100px}.img-lg+.img-push{margin-left:110px}.img-bordered{border:3px solid #d2d6de;padding:3px}.img-bordered-sm{border:2px solid #d2d6de;padding:2px}.attachment-block{border:1px solid #f4f4f4;padding:5px;margin-bottom:10px;background:#f7f7f7}.attachment-block .attachment-img{max-width:100px;max-height:100px;height:auto;float:left}.attachment-block .attachment-pushed{margin-left:110px}.attachment-block .attachment-heading{margin:0}.attachment-block .attachment-text{color:#555}.connectedSortable{min-height:100px}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sort-highlight{background:#f4f4f4;border:1px dashed #ddd;margin-bottom:10px}.full-opacity-hover{opacity:.65;filter:alpha(opacity=65)}.full-opacity-hover:hover{opacity:1;filter:alpha(opacity=100)}.chart{position:relative;overflow:hidden;width:100%}.chart svg,.chart canvas{width:100% !important}@media print{.no-print,.main-sidebar,.left-side,.main-header,.content-header{display:none !important}.content-wrapper,.right-side,.main-footer{margin-left:0 !important;min-height:0 !important;-webkit-transform:translate(0, 0) !important;-ms-transform:translate(0, 0) !important;-o-transform:translate(0, 0) !important;transform:translate(0, 0) !important}.fixed .content-wrapper,.fixed .right-side{padding-top:0 !important}.invoice{width:100%;border:0;margin:0;padding:0}.invoice-col{float:left;width:33.3333333%}.table-responsive{overflow:auto}.table-responsive>.table tr th,.table-responsive>.table tr td{white-space:normal !important}}
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/dist/css/skins/_all-skins.min.css b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/dist/css/skins/_all-skins.min.css
new file mode 100644
index 0000000..c8e420e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/dist/css/skins/_all-skins.min.css
@@ -0,0 +1 @@
+.skin-blue .main-header .navbar{background-color:#3c8dbc}.skin-blue .main-header .navbar .nav>li>a{color:#fff}.skin-blue .main-header .navbar .nav>li>a:hover,.skin-blue .main-header .navbar .nav>li>a:active,.skin-blue .main-header .navbar .nav>li>a:focus,.skin-blue .main-header .navbar .nav .open>a,.skin-blue .main-header .navbar .nav .open>a:hover,.skin-blue .main-header .navbar .nav .open>a:focus,.skin-blue .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-blue .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-blue .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue .main-header .logo{background-color:#367fa9;color:#fff;border-bottom:0 solid transparent}.skin-blue .main-header .logo:hover{background-color:#357ca5}.skin-blue .main-header li.user-header{background-color:#3c8dbc}.skin-blue .content-header{background:transparent}.skin-blue .wrapper,.skin-blue .main-sidebar,.skin-blue .left-side{background-color:#222d32}.skin-blue .user-panel>.info,.skin-blue .user-panel>.info>a{color:#fff}.skin-blue .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-blue .sidebar-menu>li>a{border-left:3px solid transparent}.skin-blue .sidebar-menu>li:hover>a,.skin-blue .sidebar-menu>li.active>a,.skin-blue .sidebar-menu>li.menu-open>a{color:#fff;background:#1e282c}.skin-blue .sidebar-menu>li.active>a{border-left-color:#3c8dbc}.skin-blue .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-blue .sidebar a{color:#b8c7ce}.skin-blue .sidebar a:hover{text-decoration:none}.skin-blue .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-blue .sidebar-menu .treeview-menu>li.active>a,.skin-blue .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-blue .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-blue .sidebar-form input[type="text"],.skin-blue .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-blue .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue .sidebar-form input[type="text"]:focus,.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8}.skin-blue-light .main-header .navbar{background-color:#3c8dbc}.skin-blue-light .main-header .navbar .nav>li>a{color:#fff}.skin-blue-light .main-header .navbar .nav>li>a:hover,.skin-blue-light .main-header .navbar .nav>li>a:active,.skin-blue-light .main-header .navbar .nav>li>a:focus,.skin-blue-light .main-header .navbar .nav .open>a,.skin-blue-light .main-header .navbar .nav .open>a:hover,.skin-blue-light .main-header .navbar .nav .open>a:focus,.skin-blue-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-blue-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-blue-light .main-header .navbar .sidebar-toggle:hover{background-color:#367fa9}@media (max-width:767px){.skin-blue-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-blue-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-blue-light .main-header .navbar .dropdown-menu li a:hover{background:#367fa9}}.skin-blue-light .main-header .logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue-light .main-header .logo:hover{background-color:#3b8ab8}.skin-blue-light .main-header li.user-header{background-color:#3c8dbc}.skin-blue-light .content-header{background:transparent}.skin-blue-light .wrapper,.skin-blue-light .main-sidebar,.skin-blue-light .left-side{background-color:#f9fafc}.skin-blue-light .main-sidebar{border-right:1px solid #d2d6de}.skin-blue-light .user-panel>.info,.skin-blue-light .user-panel>.info>a{color:#444}.skin-blue-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-blue-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-blue-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-blue-light .sidebar-menu>li:hover>a,.skin-blue-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-blue-light .sidebar-menu>li.active{border-left-color:#3c8dbc}.skin-blue-light .sidebar-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-blue-light .sidebar a{color:#444}.skin-blue-light .sidebar a:hover{text-decoration:none}.skin-blue-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-blue-light .sidebar-menu .treeview-menu>li.active>a,.skin-blue-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-blue-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-blue-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-blue-light .sidebar-form input[type="text"],.skin-blue-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-blue-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-blue-light .sidebar-form input[type="text"]:focus,.skin-blue-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-blue-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-blue-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-blue-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-blue-light .main-footer{border-top-color:#d2d6de}.skin-blue.layout-top-nav .main-header>.logo{background-color:#3c8dbc;color:#fff;border-bottom:0 solid transparent}.skin-blue.layout-top-nav .main-header>.logo:hover{background-color:#3b8ab8}.skin-black .main-header{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.skin-black .main-header .navbar-toggle{color:#333}.skin-black .main-header .navbar-brand{color:#333;border-right:1px solid #eee}.skin-black .main-header .navbar{background-color:#fff}.skin-black .main-header .navbar .nav>li>a{color:#333}.skin-black .main-header .navbar .nav>li>a:hover,.skin-black .main-header .navbar .nav>li>a:active,.skin-black .main-header .navbar .nav>li>a:focus,.skin-black .main-header .navbar .nav .open>a,.skin-black .main-header .navbar .nav .open>a:hover,.skin-black .main-header .navbar .nav .open>a:focus,.skin-black .main-header .navbar .nav>.active>a{background:#fff;color:#999}.skin-black .main-header .navbar .sidebar-toggle{color:#333}.skin-black .main-header .navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black .main-header .navbar>.sidebar-toggle{color:#333;border-right:1px solid #eee}.skin-black .main-header .navbar .navbar-nav>li>a{border-right:1px solid #eee}.skin-black .main-header .navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black .main-header .navbar .navbar-right>li>a{border-left:1px solid #eee;border-right-width:0}.skin-black .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #eee}.skin-black .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black .main-header li.user-header{background-color:#222}.skin-black .content-header{background:transparent;box-shadow:none}.skin-black .wrapper,.skin-black .main-sidebar,.skin-black .left-side{background-color:#222d32}.skin-black .user-panel>.info,.skin-black .user-panel>.info>a{color:#fff}.skin-black .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-black .sidebar-menu>li>a{border-left:3px solid transparent}.skin-black .sidebar-menu>li:hover>a,.skin-black .sidebar-menu>li.active>a,.skin-black .sidebar-menu>li.menu-open>a{color:#fff;background:#1e282c}.skin-black .sidebar-menu>li.active>a{border-left-color:#fff}.skin-black .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-black .sidebar a{color:#b8c7ce}.skin-black .sidebar a:hover{text-decoration:none}.skin-black .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-black .sidebar-menu .treeview-menu>li.active>a,.skin-black .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-black .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-black .sidebar-form input[type="text"],.skin-black .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-black .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black .sidebar-form input[type="text"]:focus,.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-black .pace .pace-progress{background:#222}.skin-black .pace .pace-activity{border-top-color:#222;border-left-color:#222}.skin-black-light .main-header{border-bottom:1px solid #d2d6de}.skin-black-light .main-header .navbar-toggle{color:#333}.skin-black-light .main-header .navbar-brand{color:#333;border-right:1px solid #d2d6de}.skin-black-light .main-header .navbar{background-color:#fff}.skin-black-light .main-header .navbar .nav>li>a{color:#333}.skin-black-light .main-header .navbar .nav>li>a:hover,.skin-black-light .main-header .navbar .nav>li>a:active,.skin-black-light .main-header .navbar .nav>li>a:focus,.skin-black-light .main-header .navbar .nav .open>a,.skin-black-light .main-header .navbar .nav .open>a:hover,.skin-black-light .main-header .navbar .nav .open>a:focus,.skin-black-light .main-header .navbar .nav>.active>a{background:#fff;color:#999}.skin-black-light .main-header .navbar .sidebar-toggle{color:#333}.skin-black-light .main-header .navbar .sidebar-toggle:hover{color:#999;background:#fff}.skin-black-light .main-header .navbar>.sidebar-toggle{color:#333;border-right:1px solid #d2d6de}.skin-black-light .main-header .navbar .navbar-nav>li>a{border-right:1px solid #d2d6de}.skin-black-light .main-header .navbar .navbar-custom-menu .navbar-nav>li>a,.skin-black-light .main-header .navbar .navbar-right>li>a{border-left:1px solid #d2d6de;border-right-width:0}.skin-black-light .main-header>.logo{background-color:#fff;color:#333;border-bottom:0 solid transparent;border-right:1px solid #d2d6de}.skin-black-light .main-header>.logo:hover{background-color:#fcfcfc}@media (max-width:767px){.skin-black-light .main-header>.logo{background-color:#222;color:#fff;border-bottom:0 solid transparent;border-right:none}.skin-black-light .main-header>.logo:hover{background-color:#1f1f1f}}.skin-black-light .main-header li.user-header{background-color:#222}.skin-black-light .content-header{background:transparent;box-shadow:none}.skin-black-light .wrapper,.skin-black-light .main-sidebar,.skin-black-light .left-side{background-color:#f9fafc}.skin-black-light .main-sidebar{border-right:1px solid #d2d6de}.skin-black-light .user-panel>.info,.skin-black-light .user-panel>.info>a{color:#444}.skin-black-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-black-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-black-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-black-light .sidebar-menu>li:hover>a,.skin-black-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-black-light .sidebar-menu>li.active{border-left-color:#fff}.skin-black-light .sidebar-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-black-light .sidebar a{color:#444}.skin-black-light .sidebar a:hover{text-decoration:none}.skin-black-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-black-light .sidebar-menu .treeview-menu>li.active>a,.skin-black-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-black-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-black-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-black-light .sidebar-form input[type="text"],.skin-black-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-black-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-black-light .sidebar-form input[type="text"]:focus,.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-black-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-black-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-black-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-green .main-header .navbar{background-color:#00a65a}.skin-green .main-header .navbar .nav>li>a{color:#fff}.skin-green .main-header .navbar .nav>li>a:hover,.skin-green .main-header .navbar .nav>li>a:active,.skin-green .main-header .navbar .nav>li>a:focus,.skin-green .main-header .navbar .nav .open>a,.skin-green .main-header .navbar .nav .open>a:hover,.skin-green .main-header .navbar .nav .open>a:focus,.skin-green .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-green .main-header .navbar .sidebar-toggle{color:#fff}.skin-green .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-green .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green .main-header .logo{background-color:#008d4c;color:#fff;border-bottom:0 solid transparent}.skin-green .main-header .logo:hover{background-color:#008749}.skin-green .main-header li.user-header{background-color:#00a65a}.skin-green .content-header{background:transparent}.skin-green .wrapper,.skin-green .main-sidebar,.skin-green .left-side{background-color:#222d32}.skin-green .user-panel>.info,.skin-green .user-panel>.info>a{color:#fff}.skin-green .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-green .sidebar-menu>li>a{border-left:3px solid transparent}.skin-green .sidebar-menu>li:hover>a,.skin-green .sidebar-menu>li.active>a,.skin-green .sidebar-menu>li.menu-open>a{color:#fff;background:#1e282c}.skin-green .sidebar-menu>li.active>a{border-left-color:#00a65a}.skin-green .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-green .sidebar a{color:#b8c7ce}.skin-green .sidebar a:hover{text-decoration:none}.skin-green .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-green .sidebar-menu .treeview-menu>li.active>a,.skin-green .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-green .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-green .sidebar-form input[type="text"],.skin-green .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-green .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green .sidebar-form input[type="text"]:focus,.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-green-light .main-header .navbar{background-color:#00a65a}.skin-green-light .main-header .navbar .nav>li>a{color:#fff}.skin-green-light .main-header .navbar .nav>li>a:hover,.skin-green-light .main-header .navbar .nav>li>a:active,.skin-green-light .main-header .navbar .nav>li>a:focus,.skin-green-light .main-header .navbar .nav .open>a,.skin-green-light .main-header .navbar .nav .open>a:hover,.skin-green-light .main-header .navbar .nav .open>a:focus,.skin-green-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-green-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-green-light .main-header .navbar .sidebar-toggle:hover{background-color:#008d4c}@media (max-width:767px){.skin-green-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-green-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-green-light .main-header .navbar .dropdown-menu li a:hover{background:#008d4c}}.skin-green-light .main-header .logo{background-color:#00a65a;color:#fff;border-bottom:0 solid transparent}.skin-green-light .main-header .logo:hover{background-color:#00a157}.skin-green-light .main-header li.user-header{background-color:#00a65a}.skin-green-light .content-header{background:transparent}.skin-green-light .wrapper,.skin-green-light .main-sidebar,.skin-green-light .left-side{background-color:#f9fafc}.skin-green-light .main-sidebar{border-right:1px solid #d2d6de}.skin-green-light .user-panel>.info,.skin-green-light .user-panel>.info>a{color:#444}.skin-green-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-green-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-green-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-green-light .sidebar-menu>li:hover>a,.skin-green-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-green-light .sidebar-menu>li.active{border-left-color:#00a65a}.skin-green-light .sidebar-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-green-light .sidebar a{color:#444}.skin-green-light .sidebar a:hover{text-decoration:none}.skin-green-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-green-light .sidebar-menu .treeview-menu>li.active>a,.skin-green-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-green-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-green-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-green-light .sidebar-form input[type="text"],.skin-green-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-green-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-green-light .sidebar-form input[type="text"]:focus,.skin-green-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-green-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-green-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-green-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-red .main-header .navbar{background-color:#dd4b39}.skin-red .main-header .navbar .nav>li>a{color:#fff}.skin-red .main-header .navbar .nav>li>a:hover,.skin-red .main-header .navbar .nav>li>a:active,.skin-red .main-header .navbar .nav>li>a:focus,.skin-red .main-header .navbar .nav .open>a,.skin-red .main-header .navbar .nav .open>a:hover,.skin-red .main-header .navbar .nav .open>a:focus,.skin-red .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-red .main-header .navbar .sidebar-toggle{color:#fff}.skin-red .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-red .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red .main-header .logo{background-color:#d73925;color:#fff;border-bottom:0 solid transparent}.skin-red .main-header .logo:hover{background-color:#d33724}.skin-red .main-header li.user-header{background-color:#dd4b39}.skin-red .content-header{background:transparent}.skin-red .wrapper,.skin-red .main-sidebar,.skin-red .left-side{background-color:#222d32}.skin-red .user-panel>.info,.skin-red .user-panel>.info>a{color:#fff}.skin-red .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-red .sidebar-menu>li>a{border-left:3px solid transparent}.skin-red .sidebar-menu>li:hover>a,.skin-red .sidebar-menu>li.active>a,.skin-red .sidebar-menu>li.menu-open>a{color:#fff;background:#1e282c}.skin-red .sidebar-menu>li.active>a{border-left-color:#dd4b39}.skin-red .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-red .sidebar a{color:#b8c7ce}.skin-red .sidebar a:hover{text-decoration:none}.skin-red .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-red .sidebar-menu .treeview-menu>li.active>a,.skin-red .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-red .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-red .sidebar-form input[type="text"],.skin-red .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-red .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red .sidebar-form input[type="text"]:focus,.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-red-light .main-header .navbar{background-color:#dd4b39}.skin-red-light .main-header .navbar .nav>li>a{color:#fff}.skin-red-light .main-header .navbar .nav>li>a:hover,.skin-red-light .main-header .navbar .nav>li>a:active,.skin-red-light .main-header .navbar .nav>li>a:focus,.skin-red-light .main-header .navbar .nav .open>a,.skin-red-light .main-header .navbar .nav .open>a:hover,.skin-red-light .main-header .navbar .nav .open>a:focus,.skin-red-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-red-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-red-light .main-header .navbar .sidebar-toggle:hover{background-color:#d73925}@media (max-width:767px){.skin-red-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-red-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-red-light .main-header .navbar .dropdown-menu li a:hover{background:#d73925}}.skin-red-light .main-header .logo{background-color:#dd4b39;color:#fff;border-bottom:0 solid transparent}.skin-red-light .main-header .logo:hover{background-color:#dc4735}.skin-red-light .main-header li.user-header{background-color:#dd4b39}.skin-red-light .content-header{background:transparent}.skin-red-light .wrapper,.skin-red-light .main-sidebar,.skin-red-light .left-side{background-color:#f9fafc}.skin-red-light .main-sidebar{border-right:1px solid #d2d6de}.skin-red-light .user-panel>.info,.skin-red-light .user-panel>.info>a{color:#444}.skin-red-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-red-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-red-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-red-light .sidebar-menu>li:hover>a,.skin-red-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-red-light .sidebar-menu>li.active{border-left-color:#dd4b39}.skin-red-light .sidebar-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-red-light .sidebar a{color:#444}.skin-red-light .sidebar a:hover{text-decoration:none}.skin-red-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-red-light .sidebar-menu .treeview-menu>li.active>a,.skin-red-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-red-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-red-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-red-light .sidebar-form input[type="text"],.skin-red-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-red-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-red-light .sidebar-form input[type="text"]:focus,.skin-red-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-red-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-red-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-red-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-yellow .main-header .navbar{background-color:#f39c12}.skin-yellow .main-header .navbar .nav>li>a{color:#fff}.skin-yellow .main-header .navbar .nav>li>a:hover,.skin-yellow .main-header .navbar .nav>li>a:active,.skin-yellow .main-header .navbar .nav>li>a:focus,.skin-yellow .main-header .navbar .nav .open>a,.skin-yellow .main-header .navbar .nav .open>a:hover,.skin-yellow .main-header .navbar .nav .open>a:focus,.skin-yellow .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-yellow .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-yellow .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow .main-header .logo{background-color:#e08e0b;color:#fff;border-bottom:0 solid transparent}.skin-yellow .main-header .logo:hover{background-color:#db8b0b}.skin-yellow .main-header li.user-header{background-color:#f39c12}.skin-yellow .content-header{background:transparent}.skin-yellow .wrapper,.skin-yellow .main-sidebar,.skin-yellow .left-side{background-color:#222d32}.skin-yellow .user-panel>.info,.skin-yellow .user-panel>.info>a{color:#fff}.skin-yellow .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-yellow .sidebar-menu>li>a{border-left:3px solid transparent}.skin-yellow .sidebar-menu>li:hover>a,.skin-yellow .sidebar-menu>li.active>a,.skin-yellow .sidebar-menu>li.menu-open>a{color:#fff;background:#1e282c}.skin-yellow .sidebar-menu>li.active>a{border-left-color:#f39c12}.skin-yellow .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-yellow .sidebar a{color:#b8c7ce}.skin-yellow .sidebar a:hover{text-decoration:none}.skin-yellow .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-yellow .sidebar-menu .treeview-menu>li.active>a,.skin-yellow .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-yellow .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-yellow .sidebar-form input[type="text"],.skin-yellow .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-yellow .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow .sidebar-form input[type="text"]:focus,.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-yellow-light .main-header .navbar{background-color:#f39c12}.skin-yellow-light .main-header .navbar .nav>li>a{color:#fff}.skin-yellow-light .main-header .navbar .nav>li>a:hover,.skin-yellow-light .main-header .navbar .nav>li>a:active,.skin-yellow-light .main-header .navbar .nav>li>a:focus,.skin-yellow-light .main-header .navbar .nav .open>a,.skin-yellow-light .main-header .navbar .nav .open>a:hover,.skin-yellow-light .main-header .navbar .nav .open>a:focus,.skin-yellow-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-yellow-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-yellow-light .main-header .navbar .sidebar-toggle:hover{background-color:#e08e0b}@media (max-width:767px){.skin-yellow-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-yellow-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-yellow-light .main-header .navbar .dropdown-menu li a:hover{background:#e08e0b}}.skin-yellow-light .main-header .logo{background-color:#f39c12;color:#fff;border-bottom:0 solid transparent}.skin-yellow-light .main-header .logo:hover{background-color:#f39a0d}.skin-yellow-light .main-header li.user-header{background-color:#f39c12}.skin-yellow-light .content-header{background:transparent}.skin-yellow-light .wrapper,.skin-yellow-light .main-sidebar,.skin-yellow-light .left-side{background-color:#f9fafc}.skin-yellow-light .main-sidebar{border-right:1px solid #d2d6de}.skin-yellow-light .user-panel>.info,.skin-yellow-light .user-panel>.info>a{color:#444}.skin-yellow-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-yellow-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-yellow-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-yellow-light .sidebar-menu>li:hover>a,.skin-yellow-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-yellow-light .sidebar-menu>li.active{border-left-color:#f39c12}.skin-yellow-light .sidebar-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-yellow-light .sidebar a{color:#444}.skin-yellow-light .sidebar a:hover{text-decoration:none}.skin-yellow-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-yellow-light .sidebar-menu .treeview-menu>li.active>a,.skin-yellow-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-yellow-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-yellow-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-yellow-light .sidebar-form input[type="text"],.skin-yellow-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-yellow-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-yellow-light .sidebar-form input[type="text"]:focus,.skin-yellow-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-yellow-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-yellow-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-yellow-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}.skin-purple .main-header .navbar{background-color:#605ca8}.skin-purple .main-header .navbar .nav>li>a{color:#fff}.skin-purple .main-header .navbar .nav>li>a:hover,.skin-purple .main-header .navbar .nav>li>a:active,.skin-purple .main-header .navbar .nav>li>a:focus,.skin-purple .main-header .navbar .nav .open>a,.skin-purple .main-header .navbar .nav .open>a:hover,.skin-purple .main-header .navbar .nav .open>a:focus,.skin-purple .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-purple .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-purple .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple .main-header .logo{background-color:#555299;color:#fff;border-bottom:0 solid transparent}.skin-purple .main-header .logo:hover{background-color:#545096}.skin-purple .main-header li.user-header{background-color:#605ca8}.skin-purple .content-header{background:transparent}.skin-purple .wrapper,.skin-purple .main-sidebar,.skin-purple .left-side{background-color:#222d32}.skin-purple .user-panel>.info,.skin-purple .user-panel>.info>a{color:#fff}.skin-purple .sidebar-menu>li.header{color:#4b646f;background:#1a2226}.skin-purple .sidebar-menu>li>a{border-left:3px solid transparent}.skin-purple .sidebar-menu>li:hover>a,.skin-purple .sidebar-menu>li.active>a,.skin-purple .sidebar-menu>li.menu-open>a{color:#fff;background:#1e282c}.skin-purple .sidebar-menu>li.active>a{border-left-color:#605ca8}.skin-purple .sidebar-menu>li>.treeview-menu{margin:0 1px;background:#2c3b41}.skin-purple .sidebar a{color:#b8c7ce}.skin-purple .sidebar a:hover{text-decoration:none}.skin-purple .sidebar-menu .treeview-menu>li>a{color:#8aa4af}.skin-purple .sidebar-menu .treeview-menu>li.active>a,.skin-purple .sidebar-menu .treeview-menu>li>a:hover{color:#fff}.skin-purple .sidebar-form{border-radius:3px;border:1px solid #374850;margin:10px 10px}.skin-purple .sidebar-form input[type="text"],.skin-purple .sidebar-form .btn{box-shadow:none;background-color:#374850;border:1px solid transparent;height:35px}.skin-purple .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple .sidebar-form input[type="text"]:focus,.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.skin-purple-light .main-header .navbar{background-color:#605ca8}.skin-purple-light .main-header .navbar .nav>li>a{color:#fff}.skin-purple-light .main-header .navbar .nav>li>a:hover,.skin-purple-light .main-header .navbar .nav>li>a:active,.skin-purple-light .main-header .navbar .nav>li>a:focus,.skin-purple-light .main-header .navbar .nav .open>a,.skin-purple-light .main-header .navbar .nav .open>a:hover,.skin-purple-light .main-header .navbar .nav .open>a:focus,.skin-purple-light .main-header .navbar .nav>.active>a{background:rgba(0,0,0,0.1);color:#f6f6f6}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{color:#f6f6f6;background:rgba(0,0,0,0.1)}.skin-purple-light .main-header .navbar .sidebar-toggle{color:#fff}.skin-purple-light .main-header .navbar .sidebar-toggle:hover{background-color:#555299}@media (max-width:767px){.skin-purple-light .main-header .navbar .dropdown-menu li.divider{background-color:rgba(255,255,255,0.1)}.skin-purple-light .main-header .navbar .dropdown-menu li a{color:#fff}.skin-purple-light .main-header .navbar .dropdown-menu li a:hover{background:#555299}}.skin-purple-light .main-header .logo{background-color:#605ca8;color:#fff;border-bottom:0 solid transparent}.skin-purple-light .main-header .logo:hover{background-color:#5d59a6}.skin-purple-light .main-header li.user-header{background-color:#605ca8}.skin-purple-light .content-header{background:transparent}.skin-purple-light .wrapper,.skin-purple-light .main-sidebar,.skin-purple-light .left-side{background-color:#f9fafc}.skin-purple-light .main-sidebar{border-right:1px solid #d2d6de}.skin-purple-light .user-panel>.info,.skin-purple-light .user-panel>.info>a{color:#444}.skin-purple-light .sidebar-menu>li{-webkit-transition:border-left-color .3s ease;-o-transition:border-left-color .3s ease;transition:border-left-color .3s ease}.skin-purple-light .sidebar-menu>li.header{color:#848484;background:#f9fafc}.skin-purple-light .sidebar-menu>li>a{border-left:3px solid transparent;font-weight:600}.skin-purple-light .sidebar-menu>li:hover>a,.skin-purple-light .sidebar-menu>li.active>a{color:#000;background:#f4f4f5}.skin-purple-light .sidebar-menu>li.active{border-left-color:#605ca8}.skin-purple-light .sidebar-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-menu>li>.treeview-menu{background:#f4f4f5}.skin-purple-light .sidebar a{color:#444}.skin-purple-light .sidebar a:hover{text-decoration:none}.skin-purple-light .sidebar-menu .treeview-menu>li>a{color:#777}.skin-purple-light .sidebar-menu .treeview-menu>li.active>a,.skin-purple-light .sidebar-menu .treeview-menu>li>a:hover{color:#000}.skin-purple-light .sidebar-menu .treeview-menu>li.active>a{font-weight:600}.skin-purple-light .sidebar-form{border-radius:3px;border:1px solid #d2d6de;margin:10px 10px}.skin-purple-light .sidebar-form input[type="text"],.skin-purple-light .sidebar-form .btn{box-shadow:none;background-color:#fff;border:1px solid transparent;height:35px}.skin-purple-light .sidebar-form input[type="text"]{color:#666;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.skin-purple-light .sidebar-form input[type="text"]:focus,.skin-purple-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{background-color:#fff;color:#666}.skin-purple-light .sidebar-form input[type="text"]:focus+.input-group-btn .btn{border-left-color:#fff}.skin-purple-light .sidebar-form .btn{color:#999;border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}@media (min-width:768px){.skin-purple-light.sidebar-mini.sidebar-collapse .sidebar-menu>li>.treeview-menu{border-left:1px solid #d2d6de}}
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/dist/js/adminlte.min.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/dist/js/adminlte.min.js
new file mode 100644
index 0000000..a6b3218
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/dist/js/adminlte.min.js
@@ -0,0 +1,14 @@
+/*! AdminLTE app.js
+* ================
+* Main JS application file for AdminLTE v2. This file
+* should be included in all pages. It controls some layout
+* options and implements exclusive AdminLTE plugins.
+*
+* @Author  Almsaeed Studio
+* @Support <https://www.almsaeedstudio.com>
+* @Email   <abdullah@almsaeedstudio.com>
+* @version 2.4.5
+* @repository git://github.com/almasaeed2010/AdminLTE.git
+* @license MIT <http://opensource.org/licenses/MIT>
+*/
+if("undefined"==typeof jQuery)throw new Error("AdminLTE requires jQuery");+function(a){"use strict";function b(b){return this.each(function(){var e=a(this),g=e.data(c);if(!g){var h=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,g=new f(e,h))}if("string"==typeof g){if(void 0===g[b])throw new Error("No method named "+b);g[b]()}})}var c="lte.boxrefresh",d={source:"",params:{},trigger:".refresh-btn",content:".box-body",loadInContent:!0,responseType:"",overlayTemplate:'<div class="overlay"><div class="fa fa-refresh fa-spin"></div></div>',onLoadStart:function(){},onLoadDone:function(a){return a}},e={data:'[data-widget="box-refresh"]'},f=function(b,c){if(this.element=b,this.options=c,this.$overlay=a(c.overlay),""===c.source)throw new Error("Source url was not defined. Please specify a url in your BoxRefresh source option.");this._setUpListeners(),this.load()};f.prototype.load=function(){this._addOverlay(),this.options.onLoadStart.call(a(this)),a.get(this.options.source,this.options.params,function(b){this.options.loadInContent&&a(this.options.content).html(b),this.options.onLoadDone.call(a(this),b),this._removeOverlay()}.bind(this),""!==this.options.responseType&&this.options.responseType)},f.prototype._setUpListeners=function(){a(this.element).on("click",e.trigger,function(a){a&&a.preventDefault(),this.load()}.bind(this))},f.prototype._addOverlay=function(){a(this.element).append(this.$overlay)},f.prototype._removeOverlay=function(){a(this.element).remove(this.$overlay)};var g=a.fn.boxRefresh;a.fn.boxRefresh=b,a.fn.boxRefresh.Constructor=f,a.fn.boxRefresh.noConflict=function(){return a.fn.boxRefresh=g,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var g=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new h(e,g))}if("string"==typeof b){if(void 0===f[b])throw new Error("No method named "+b);f[b]()}})}var c="lte.boxwidget",d={animationSpeed:500,collapseTrigger:'[data-widget="collapse"]',removeTrigger:'[data-widget="remove"]',collapseIcon:"fa-minus",expandIcon:"fa-plus",removeIcon:"fa-times"},e={data:".box",collapsed:".collapsed-box",header:".box-header",body:".box-body",footer:".box-footer",tools:".box-tools"},f={collapsed:"collapsed-box"},g={collapsed:"collapsed.boxwidget",expanded:"expanded.boxwidget",removed:"removed.boxwidget"},h=function(a,b){this.element=a,this.options=b,this._setUpListeners()};h.prototype.toggle=function(){a(this.element).is(e.collapsed)?this.expand():this.collapse()},h.prototype.expand=function(){var b=a.Event(g.expanded),c=this.options.collapseIcon,d=this.options.expandIcon;a(this.element).removeClass(f.collapsed),a(this.element).children(e.header+", "+e.body+", "+e.footer).children(e.tools).find("."+d).removeClass(d).addClass(c),a(this.element).children(e.body+", "+e.footer).slideDown(this.options.animationSpeed,function(){a(this.element).trigger(b)}.bind(this))},h.prototype.collapse=function(){var b=a.Event(g.collapsed),c=this.options.collapseIcon,d=this.options.expandIcon;a(this.element).children(e.header+", "+e.body+", "+e.footer).children(e.tools).find("."+c).removeClass(c).addClass(d),a(this.element).children(e.body+", "+e.footer).slideUp(this.options.animationSpeed,function(){a(this.element).addClass(f.collapsed),a(this.element).trigger(b)}.bind(this))},h.prototype.remove=function(){var b=a.Event(g.removed);a(this.element).slideUp(this.options.animationSpeed,function(){a(this.element).trigger(b),a(this.element).remove()}.bind(this))},h.prototype._setUpListeners=function(){var b=this;a(this.element).on("click",this.options.collapseTrigger,function(c){return c&&c.preventDefault(),b.toggle(a(this)),!1}),a(this.element).on("click",this.options.removeTrigger,function(c){return c&&c.preventDefault(),b.remove(a(this)),!1})};var i=a.fn.boxWidget;a.fn.boxWidget=b,a.fn.boxWidget.Constructor=h,a.fn.boxWidget.noConflict=function(){return a.fn.boxWidget=i,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var g=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new h(e,g))}"string"==typeof b&&f.toggle()})}var c="lte.controlsidebar",d={slide:!0},e={sidebar:".control-sidebar",data:'[data-toggle="control-sidebar"]',open:".control-sidebar-open",bg:".control-sidebar-bg",wrapper:".wrapper",content:".content-wrapper",boxed:".layout-boxed"},f={open:"control-sidebar-open",fixed:"fixed"},g={collapsed:"collapsed.controlsidebar",expanded:"expanded.controlsidebar"},h=function(a,b){this.element=a,this.options=b,this.hasBindedResize=!1,this.init()};h.prototype.init=function(){a(this.element).is(e.data)||a(this).on("click",this.toggle),this.fix(),a(window).resize(function(){this.fix()}.bind(this))},h.prototype.toggle=function(b){b&&b.preventDefault(),this.fix(),a(e.sidebar).is(e.open)||a("body").is(e.open)?this.collapse():this.expand()},h.prototype.expand=function(){this.options.slide?a(e.sidebar).addClass(f.open):a("body").addClass(f.open),a(this.element).trigger(a.Event(g.expanded))},h.prototype.collapse=function(){a("body, "+e.sidebar).removeClass(f.open),a(this.element).trigger(a.Event(g.collapsed))},h.prototype.fix=function(){a("body").is(e.boxed)&&this._fixForBoxed(a(e.bg))},h.prototype._fixForBoxed=function(b){b.css({position:"absolute",height:a(e.wrapper).height()})};var i=a.fn.controlSidebar;a.fn.controlSidebar=b,a.fn.controlSidebar.Constructor=h,a.fn.controlSidebar.noConflict=function(){return a.fn.controlSidebar=i,this},a(document).on("click",e.data,function(c){c&&c.preventDefault(),b.call(a(this),"toggle")})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data(c);e||d.data(c,e=new f(d)),"string"==typeof b&&e.toggle(d)})}var c="lte.directchat",d={data:'[data-widget="chat-pane-toggle"]',box:".direct-chat"},e={open:"direct-chat-contacts-open"},f=function(a){this.element=a};f.prototype.toggle=function(a){a.parents(d.box).first().toggleClass(e.open)};var g=a.fn.directChat;a.fn.directChat=b,a.fn.directChat.Constructor=f,a.fn.directChat.noConflict=function(){return a.fn.directChat=g,this},a(document).on("click",d.data,function(c){c&&c.preventDefault(),b.call(a(this),"toggle")})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var h=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new g(h))}if("string"==typeof b){if(void 0===f[b])throw new Error("No method named "+b);f[b]()}})}var c="lte.layout",d={slimscroll:!0,resetHeight:!0},e={wrapper:".wrapper",contentWrapper:".content-wrapper",layoutBoxed:".layout-boxed",mainFooter:".main-footer",mainHeader:".main-header",sidebar:".sidebar",controlSidebar:".control-sidebar",fixed:".fixed",sidebarMenu:".sidebar-menu",logo:".main-header .logo"},f={fixed:"fixed",holdTransition:"hold-transition"},g=function(a){this.options=a,this.bindedResize=!1,this.activate()};g.prototype.activate=function(){this.fix(),this.fixSidebar(),a("body").removeClass(f.holdTransition),this.options.resetHeight&&a("body, html, "+e.wrapper).css({height:"auto","min-height":"100%"}),this.bindedResize||(a(window).resize(function(){this.fix(),this.fixSidebar(),a(e.logo+", "+e.sidebar).one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",function(){this.fix(),this.fixSidebar()}.bind(this))}.bind(this)),this.bindedResize=!0),a(e.sidebarMenu).on("expanded.tree",function(){this.fix(),this.fixSidebar()}.bind(this)),a(e.sidebarMenu).on("collapsed.tree",function(){this.fix(),this.fixSidebar()}.bind(this))},g.prototype.fix=function(){a(e.layoutBoxed+" > "+e.wrapper).css("overflow","hidden");var b=a(e.mainFooter).outerHeight()||0,c=a(e.mainHeader).outerHeight()||0,d=c+b,g=a(window).height(),h=a(e.sidebar).height()||0;if(a("body").hasClass(f.fixed))a(e.contentWrapper).css("min-height",g-b);else{var i;g>=h?(a(e.contentWrapper).css("min-height",g-d),i=g-d):(a(e.contentWrapper).css("min-height",h),i=h);var j=a(e.controlSidebar);void 0!==j&&j.height()>i&&a(e.contentWrapper).css("min-height",j.height())}},g.prototype.fixSidebar=function(){if(!a("body").hasClass(f.fixed))return void(void 0!==a.fn.slimScroll&&a(e.sidebar).slimScroll({destroy:!0}).height("auto"));this.options.slimscroll&&void 0!==a.fn.slimScroll&&a(e.sidebar).slimScroll({height:a(window).height()-a(e.mainHeader).height()+"px"})};var h=a.fn.layout;a.fn.layout=b,a.fn.layout.Constuctor=g,a.fn.layout.noConflict=function(){return a.fn.layout=h,this},a(window).on("load",function(){b.call(a("body"))})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var g=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new h(g))}"toggle"===b&&f.toggle()})}var c="lte.pushmenu",d={collapseScreenSize:767,expandOnHover:!1,expandTransitionDelay:200},e={collapsed:".sidebar-collapse",open:".sidebar-open",mainSidebar:".main-sidebar",contentWrapper:".content-wrapper",searchInput:".sidebar-form .form-control",button:'[data-toggle="push-menu"]',mini:".sidebar-mini",expanded:".sidebar-expanded-on-hover",layoutFixed:".fixed"},f={collapsed:"sidebar-collapse",open:"sidebar-open",mini:"sidebar-mini",expanded:"sidebar-expanded-on-hover",expandFeature:"sidebar-mini-expand-feature",layoutFixed:"fixed"},g={expanded:"expanded.pushMenu",collapsed:"collapsed.pushMenu"},h=function(a){this.options=a,this.init()};h.prototype.init=function(){(this.options.expandOnHover||a("body").is(e.mini+e.layoutFixed))&&(this.expandOnHover(),a("body").addClass(f.expandFeature)),a(e.contentWrapper).click(function(){a(window).width()<=this.options.collapseScreenSize&&a("body").hasClass(f.open)&&this.close()}.bind(this)),a(e.searchInput).click(function(a){a.stopPropagation()})},h.prototype.toggle=function(){var b=a(window).width(),c=!a("body").hasClass(f.collapsed);b<=this.options.collapseScreenSize&&(c=a("body").hasClass(f.open)),c?this.close():this.open()},h.prototype.open=function(){a(window).width()>this.options.collapseScreenSize?a("body").removeClass(f.collapsed).trigger(a.Event(g.expanded)):a("body").addClass(f.open).trigger(a.Event(g.expanded))},h.prototype.close=function(){a(window).width()>this.options.collapseScreenSize?a("body").addClass(f.collapsed).trigger(a.Event(g.collapsed)):a("body").removeClass(f.open+" "+f.collapsed).trigger(a.Event(g.collapsed))},h.prototype.expandOnHover=function(){a(e.mainSidebar).hover(function(){a("body").is(e.mini+e.collapsed)&&a(window).width()>this.options.collapseScreenSize&&this.expand()}.bind(this),function(){a("body").is(e.expanded)&&this.collapse()}.bind(this))},h.prototype.expand=function(){setTimeout(function(){a("body").removeClass(f.collapsed).addClass(f.expanded)},this.options.expandTransitionDelay)},h.prototype.collapse=function(){setTimeout(function(){a("body").removeClass(f.expanded).addClass(f.collapsed)},this.options.expandTransitionDelay)};var i=a.fn.pushMenu;a.fn.pushMenu=b,a.fn.pushMenu.Constructor=h,a.fn.pushMenu.noConflict=function(){return a.fn.pushMenu=i,this},a(document).on("click",e.button,function(c){c.preventDefault(),b.call(a(this),"toggle")}),a(window).on("load",function(){b.call(a(e.button))})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this),f=e.data(c);if(!f){var h=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,f=new g(e,h))}if("string"==typeof f){if(void 0===f[b])throw new Error("No method named "+b);f[b]()}})}var c="lte.todolist",d={onCheck:function(a){return a},onUnCheck:function(a){return a}},e={data:'[data-widget="todo-list"]'},f={done:"done"},g=function(a,b){this.element=a,this.options=b,this._setUpListeners()};g.prototype.toggle=function(a){if(a.parents(e.li).first().toggleClass(f.done),!a.prop("checked"))return void this.unCheck(a);this.check(a)},g.prototype.check=function(a){this.options.onCheck.call(a)},g.prototype.unCheck=function(a){this.options.onUnCheck.call(a)},g.prototype._setUpListeners=function(){var b=this;a(this.element).on("change ifChanged","input:checkbox",function(){b.toggle(a(this))})};var h=a.fn.todoList;a.fn.todoList=b,a.fn.todoList.Constructor=g,a.fn.todoList.noConflict=function(){return a.fn.todoList=h,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery),function(a){"use strict";function b(b){return this.each(function(){var e=a(this);if(!e.data(c)){var f=a.extend({},d,e.data(),"object"==typeof b&&b);e.data(c,new h(e,f))}})}var c="lte.tree",d={animationSpeed:500,accordion:!0,followLink:!1,trigger:".treeview a"},e={tree:".tree",treeview:".treeview",treeviewMenu:".treeview-menu",open:".menu-open, .active",li:"li",data:'[data-widget="tree"]',active:".active"},f={open:"menu-open",tree:"tree"},g={collapsed:"collapsed.tree",expanded:"expanded.tree"},h=function(b,c){this.element=b,this.options=c,a(this.element).addClass(f.tree),a(e.treeview+e.active,this.element).addClass(f.open),this._setUpListeners()};h.prototype.toggle=function(a,b){var c=a.next(e.treeviewMenu),d=a.parent(),g=d.hasClass(f.open);d.is(e.treeview)&&(this.options.followLink&&"#"!==a.attr("href")||b.preventDefault(),g?this.collapse(c,d):this.expand(c,d))},h.prototype.expand=function(b,c){var d=a.Event(g.expanded);if(this.options.accordion){var h=c.siblings(e.open),i=h.children(e.treeviewMenu);this.collapse(i,h)}c.addClass(f.open),b.slideDown(this.options.animationSpeed,function(){a(this.element).trigger(d)}.bind(this))},h.prototype.collapse=function(b,c){var d=a.Event(g.collapsed);c.removeClass(f.open),b.slideUp(this.options.animationSpeed,function(){a(this.element).trigger(d)}.bind(this))},h.prototype._setUpListeners=function(){var b=this;a(this.element).on("click",this.options.trigger,function(c){b.toggle(a(this),c)})};var i=a.fn.tree;a.fn.tree=b,a.fn.tree.Constructor=h,a.fn.tree.noConflict=function(){return a.fn.tree=i,this},a(window).on("load",function(){a(e.data).each(function(){b.call(a(this))})})}(jQuery);
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/icheck.min.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/icheck.min.js
new file mode 100644
index 0000000..d2720ed
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/icheck.min.js
@@ -0,0 +1,10 @@
+/*! iCheck v1.0.1 by Damir Sultanov, http://git.io/arlzeA, MIT Licensed */
+(function(h){function F(a,b,d){var c=a[0],e=/er/.test(d)?m:/bl/.test(d)?s:l,f=d==H?{checked:c[l],disabled:c[s],indeterminate:"true"==a.attr(m)||"false"==a.attr(w)}:c[e];if(/^(ch|di|in)/.test(d)&&!f)D(a,e);else if(/^(un|en|de)/.test(d)&&f)t(a,e);else if(d==H)for(e in f)f[e]?D(a,e,!0):t(a,e,!0);else if(!b||"toggle"==d){if(!b)a[p]("ifClicked");f?c[n]!==u&&t(a,e):D(a,e)}}function D(a,b,d){var c=a[0],e=a.parent(),f=b==l,A=b==m,B=b==s,K=A?w:f?E:"enabled",p=k(a,K+x(c[n])),N=k(a,b+x(c[n]));if(!0!==c[b]){if(!d&&
+b==l&&c[n]==u&&c.name){var C=a.closest("form"),r='input[name="'+c.name+'"]',r=C.length?C.find(r):h(r);r.each(function(){this!==c&&h(this).data(q)&&t(h(this),b)})}A?(c[b]=!0,c[l]&&t(a,l,"force")):(d||(c[b]=!0),f&&c[m]&&t(a,m,!1));L(a,f,b,d)}c[s]&&k(a,y,!0)&&e.find("."+I).css(y,"default");e[v](N||k(a,b)||"");B?e.attr("aria-disabled","true"):e.attr("aria-checked",A?"mixed":"true");e[z](p||k(a,K)||"")}function t(a,b,d){var c=a[0],e=a.parent(),f=b==l,h=b==m,q=b==s,p=h?w:f?E:"enabled",t=k(a,p+x(c[n])),
+u=k(a,b+x(c[n]));if(!1!==c[b]){if(h||!d||"force"==d)c[b]=!1;L(a,f,p,d)}!c[s]&&k(a,y,!0)&&e.find("."+I).css(y,"pointer");e[z](u||k(a,b)||"");q?e.attr("aria-disabled","false"):e.attr("aria-checked","false");e[v](t||k(a,p)||"")}function M(a,b){if(a.data(q)){a.parent().html(a.attr("style",a.data(q).s||""));if(b)a[p](b);a.off(".i").unwrap();h(G+'[for="'+a[0].id+'"]').add(a.closest(G)).off(".i")}}function k(a,b,d){if(a.data(q))return a.data(q).o[b+(d?"":"Class")]}function x(a){return a.charAt(0).toUpperCase()+
+a.slice(1)}function L(a,b,d,c){if(!c){if(b)a[p]("ifToggled");a[p]("ifChanged")[p]("if"+x(d))}}var q="iCheck",I=q+"-helper",u="radio",l="checked",E="un"+l,s="disabled",w="determinate",m="in"+w,H="update",n="type",v="addClass",z="removeClass",p="trigger",G="label",y="cursor",J=/ipad|iphone|ipod|android|blackberry|windows phone|opera mini|silk/i.test(navigator.userAgent);h.fn[q]=function(a,b){var d='input[type="checkbox"], input[type="'+u+'"]',c=h(),e=function(a){a.each(function(){var a=h(this);c=a.is(d)?
+c.add(a):c.add(a.find(d))})};if(/^(check|uncheck|toggle|indeterminate|determinate|disable|enable|update|destroy)$/i.test(a))return a=a.toLowerCase(),e(this),c.each(function(){var c=h(this);"destroy"==a?M(c,"ifDestroyed"):F(c,!0,a);h.isFunction(b)&&b()});if("object"!=typeof a&&a)return this;var f=h.extend({checkedClass:l,disabledClass:s,indeterminateClass:m,labelHover:!0,aria:!1},a),k=f.handle,B=f.hoverClass||"hover",x=f.focusClass||"focus",w=f.activeClass||"active",y=!!f.labelHover,C=f.labelHoverClass||
+"hover",r=(""+f.increaseArea).replace("%","")|0;if("checkbox"==k||k==u)d='input[type="'+k+'"]';-50>r&&(r=-50);e(this);return c.each(function(){var a=h(this);M(a);var c=this,b=c.id,e=-r+"%",d=100+2*r+"%",d={position:"absolute",top:e,left:e,display:"block",width:d,height:d,margin:0,padding:0,background:"#fff",border:0,opacity:0},e=J?{position:"absolute",visibility:"hidden"}:r?d:{position:"absolute",opacity:0},k="checkbox"==c[n]?f.checkboxClass||"icheckbox":f.radioClass||"i"+u,m=h(G+'[for="'+b+'"]').add(a.closest(G)),
+A=!!f.aria,E=q+"-"+Math.random().toString(36).replace("0.",""),g='<div class="'+k+'" '+(A?'role="'+c[n]+'" ':"");m.length&&A&&m.each(function(){g+='aria-labelledby="';this.id?g+=this.id:(this.id=E,g+=E);g+='"'});g=a.wrap(g+"/>")[p]("ifCreated").parent().append(f.insert);d=h('<ins class="'+I+'"/>').css(d).appendTo(g);a.data(q,{o:f,s:a.attr("style")}).css(e);f.inheritClass&&g[v](c.className||"");f.inheritID&&b&&g.attr("id",q+"-"+b);"static"==g.css("position")&&g.css("position","relative");F(a,!0,H);
+if(m.length)m.on("click.i mouseover.i mouseout.i touchbegin.i touchend.i",function(b){var d=b[n],e=h(this);if(!c[s]){if("click"==d){if(h(b.target).is("a"))return;F(a,!1,!0)}else y&&(/ut|nd/.test(d)?(g[z](B),e[z](C)):(g[v](B),e[v](C)));if(J)b.stopPropagation();else return!1}});a.on("click.i focus.i blur.i keyup.i keydown.i keypress.i",function(b){var d=b[n];b=b.keyCode;if("click"==d)return!1;if("keydown"==d&&32==b)return c[n]==u&&c[l]||(c[l]?t(a,l):D(a,l)),!1;if("keyup"==d&&c[n]==u)!c[l]&&D(a,l);else if(/us|ur/.test(d))g["blur"==
+d?z:v](x)});d.on("click mousedown mouseup mouseover mouseout touchbegin.i touchend.i",function(b){var d=b[n],e=/wn|up/.test(d)?w:B;if(!c[s]){if("click"==d)F(a,!1,!0);else{if(/wn|er|in/.test(d))g[v](e);else g[z](e+" "+w);if(m.length&&y&&e==B)m[/ut|nd/.test(d)?z:v](C)}if(J)b.stopPropagation();else return!1}})})}})(window.jQuery||window.Zepto);
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue.css b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue.css
new file mode 100644
index 0000000..95340fe
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue.css
@@ -0,0 +1,62 @@
+/* iCheck plugin Square skin, blue
+----------------------------------- */
+.icheckbox_square-blue,
+.iradio_square-blue {
+    display: inline-block;
+    *display: inline;
+    vertical-align: middle;
+    margin: 0;
+    padding: 0;
+    width: 22px;
+    height: 22px;
+    background: url(blue.png) no-repeat;
+    border: none;
+    cursor: pointer;
+}
+
+.icheckbox_square-blue {
+    background-position: 0 0;
+}
+    .icheckbox_square-blue.hover {
+        background-position: -24px 0;
+    }
+    .icheckbox_square-blue.checked {
+        background-position: -48px 0;
+    }
+    .icheckbox_square-blue.disabled {
+        background-position: -72px 0;
+        cursor: default;
+    }
+    .icheckbox_square-blue.checked.disabled {
+        background-position: -96px 0;
+    }
+
+.iradio_square-blue {
+    background-position: -120px 0;
+}
+    .iradio_square-blue.hover {
+        background-position: -144px 0;
+    }
+    .iradio_square-blue.checked {
+        background-position: -168px 0;
+    }
+    .iradio_square-blue.disabled {
+        background-position: -192px 0;
+        cursor: default;
+    }
+    .iradio_square-blue.checked.disabled {
+        background-position: -216px 0;
+    }
+
+/* Retina support */
+@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
+       only screen and (-moz-min-device-pixel-ratio: 1.5),
+       only screen and (-o-min-device-pixel-ratio: 3/2),
+       only screen and (min-device-pixel-ratio: 1.5) {
+    .icheckbox_square-blue,
+    .iradio_square-blue {
+        background-image: url(blue@2x.png);
+        -webkit-background-size: 240px 24px;
+        background-size: 240px 24px;
+    }
+}
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue.png b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue.png
new file mode 100644
index 0000000..a3e040f
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue.png
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue@2x.png b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue@2x.png
new file mode 100644
index 0000000..8fdea12
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/adminlte/plugins/iCheck/square/blue@2x.png
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/favicon.ico b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/favicon.ico
new file mode 100644
index 0000000..49c8a29
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/favicon.ico
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/common.1.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/common.1.js
new file mode 100644
index 0000000..1a3fd24
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/common.1.js
@@ -0,0 +1,156 @@
+$(function(){
+
+	// logout
+	$("#logoutBtn").click(function(){
+		layer.confirm( I18n.logout_confirm , {
+			icon: 3,
+			title: I18n.system_tips ,
+            btn: [ I18n.system_ok, I18n.system_cancel ]
+		}, function(index){
+			layer.close(index);
+
+			$.post(base_url + "/logout", function(data, status) {
+				if (data.code == "200") {
+                    layer.msg( I18n.logout_success );
+                    setTimeout(function(){
+                        window.location.href = base_url + "/";
+                    }, 500);
+				} else {
+					layer.open({
+						title: I18n.system_tips ,
+                        btn: [ I18n.system_ok ],
+						content: (data.msg || I18n.logout_fail),
+						icon: '2'
+					});
+				}
+			});
+		});
+
+	});
+
+	// slideToTop
+	var slideToTop = $("<div />");
+	slideToTop.html('<i class="fa fa-chevron-up"></i>');
+	slideToTop.css({
+		position: 'fixed',
+		bottom: '20px',
+		right: '25px',
+		width: '40px',
+		height: '40px',
+		color: '#eee',
+		'font-size': '',
+		'line-height': '40px',
+		'text-align': 'center',
+		'background-color': '#222d32',
+		cursor: 'pointer',
+		'border-radius': '5px',
+		'z-index': '99999',
+		opacity: '.7',
+		'display': 'none'
+	});
+	slideToTop.on('mouseenter', function () {
+		$(this).css('opacity', '1');
+	});
+	slideToTop.on('mouseout', function () {
+		$(this).css('opacity', '.7');
+	});
+	$('.wrapper').append(slideToTop);
+	$(window).scroll(function () {
+		if ($(window).scrollTop() >= 150) {
+			if (!$(slideToTop).is(':visible')) {
+				$(slideToTop).fadeIn(500);
+			}
+		} else {
+			$(slideToTop).fadeOut(500);
+		}
+	});
+	$(slideToTop).click(function () {
+		$("html,body").animate({		// firefox ie not support body, chrome support body. but found that new version chrome not support body too.
+			scrollTop: 0
+		}, 100);
+	});
+
+	// left menu status v: js + server + cookie
+	$('.sidebar-toggle').click(function(){
+		var xxljob_adminlte_settings = $.cookie('xxljob_adminlte_settings');	// on=open,off=close
+		if ('off' == xxljob_adminlte_settings) {
+            xxljob_adminlte_settings = 'on';
+		} else {
+            xxljob_adminlte_settings = 'off';
+		}
+		$.cookie('xxljob_adminlte_settings', xxljob_adminlte_settings, { expires: 7 });	//$.cookie('the_cookie', '', { expires: -1 });
+	});
+
+	// left menu status v1: js + cookie
+	/*
+	 var xxljob_adminlte_settings = $.cookie('xxljob_adminlte_settings');
+	 if (xxljob_adminlte_settings == 'off') {
+	 	$('body').addClass('sidebar-collapse');
+	 }
+	 */
+
+
+    // update pwd
+    $('#updatePwd').on('click', function(){
+        $('#updatePwdModal').modal({backdrop: false, keyboard: false}).modal('show');
+    });
+    var updatePwdModalValidate = $("#updatePwdModal .form").validate({
+        errorElement : 'span',
+        errorClass : 'help-block',
+        focusInvalid : true,
+        rules : {
+            password : {
+                required : true ,
+                rangelength:[4,50]
+            }
+        },
+        messages : {
+            password : {
+                required : '请输入密码'  ,
+                rangelength : "密码长度限制为4~50"
+            }
+        },
+        highlight : function(element) {
+            $(element).closest('.form-group').addClass('has-error');
+        },
+        success : function(label) {
+            label.closest('.form-group').removeClass('has-error');
+            label.remove();
+        },
+        errorPlacement : function(error, element) {
+            element.parent('div').append(error);
+        },
+        submitHandler : function(form) {
+            $.post(base_url + "/user/updatePwd",  $("#updatePwdModal .form").serialize(), function(data, status) {
+                if (data.code == 200) {
+                    $('#updatePwdModal').modal('hide');
+
+                    layer.msg( I18n.change_pwd_suc_to_logout );
+                    setTimeout(function(){
+                        $.post(base_url + "/logout", function(data, status) {
+                            if (data.code == 200) {
+                                window.location.href = base_url + "/";
+                            } else {
+                                layer.open({
+                                    icon: '2',
+                                    content: (data.msg|| I18n.logout_fail)
+                                });
+                            }
+                        });
+                    }, 500);
+                } else {
+                    layer.open({
+                        icon: '2',
+                        content: (data.msg|| I18n.change_pwd + I18n.system_fail )
+                    });
+                }
+            });
+        }
+    });
+    $("#updatePwdModal").on('hide.bs.modal', function () {
+        $("#updatePwdModal .form")[0].reset();
+        updatePwdModalValidate.resetForm();
+        $("#updatePwdModal .form .form-group").removeClass("has-error");
+    });
+	
+});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/index.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/index.js
new file mode 100644
index 0000000..09111c5
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/index.js
@@ -0,0 +1,207 @@
+/**
+ * Created by xuxueli on 17/4/24.
+ */
+$(function () {
+
+    // filter Time
+    var rangesConf = {};
+    rangesConf[I18n.daterangepicker_ranges_today] = [moment().startOf('day'), moment().endOf('day')];
+    rangesConf[I18n.daterangepicker_ranges_yesterday] = [moment().subtract(1, 'days').startOf('day'), moment().subtract(1, 'days').endOf('day')];
+    rangesConf[I18n.daterangepicker_ranges_this_month] = [moment().startOf('month'), moment().endOf('month')];
+    rangesConf[I18n.daterangepicker_ranges_last_month] = [moment().subtract(1, 'months').startOf('month'), moment().subtract(1, 'months').endOf('month')];
+    rangesConf[I18n.daterangepicker_ranges_recent_week] = [moment().subtract(1, 'weeks').startOf('day'), moment().endOf('day')];
+    rangesConf[I18n.daterangepicker_ranges_recent_month] = [moment().subtract(1, 'months').startOf('day'), moment().endOf('day')];
+
+    $('#filterTime').daterangepicker({
+        autoApply:false,
+        singleDatePicker:false,
+        showDropdowns:false,        // 是否显示年月选择条件
+        timePicker: true, 			// 是否显示小时和分钟选择条件
+        timePickerIncrement: 10, 	// 时间的增量,单位为分钟
+        timePicker24Hour : true,
+        opens : 'left', //日期选择框的弹出位置
+        ranges: rangesConf,
+        locale : {
+            format: 'YYYY-MM-DD HH:mm:ss',
+            separator : ' - ',
+            customRangeLabel : I18n.daterangepicker_custom_name ,
+            applyLabel : I18n.system_ok ,
+            cancelLabel : I18n.system_cancel ,
+            fromLabel : I18n.daterangepicker_custom_starttime ,
+            toLabel : I18n.daterangepicker_custom_endtime ,
+            daysOfWeek : I18n.daterangepicker_custom_daysofweek.split(',') ,        // '日', '一', '二', '三', '四', '五', '六'
+            monthNames : I18n.daterangepicker_custom_monthnames.split(',') ,        // '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'
+            firstDay : 1
+        },
+        startDate: rangesConf[I18n.daterangepicker_ranges_recent_week][0] ,
+        endDate: rangesConf[I18n.daterangepicker_ranges_recent_week][1]
+    }, function (start, end, label) {
+        freshChartDate(start, end);
+    });
+    freshChartDate(rangesConf[I18n.daterangepicker_ranges_recent_week][0], rangesConf[I18n.daterangepicker_ranges_recent_week][1]);
+
+    /**
+     * fresh Chart Date
+     *
+     * @param startDate
+     * @param endDate
+     */
+    function freshChartDate(startDate, endDate) {
+        $.ajax({
+            type : 'POST',
+            url : base_url + '/chartInfo',
+            data : {
+                'startDate':startDate.format('YYYY-MM-DD HH:mm:ss'),
+                'endDate':endDate.format('YYYY-MM-DD HH:mm:ss')
+            },
+            dataType : "json",
+            success : function(data){
+                if (data.code == 200) {
+                    lineChartInit(data)
+                    pieChartInit(data);
+                } else {
+                    layer.open({
+                        title: I18n.system_tips ,
+                        btn: [ I18n.system_ok ],
+                        content: (data.msg || I18n.job_dashboard_report_loaddata_fail ),
+                        icon: '2'
+                    });
+                }
+            }
+        });
+    }
+
+    /**
+     * line Chart Init
+     */
+    function lineChartInit(data) {
+        var option = {
+               title: {
+                   text: I18n.job_dashboard_date_report
+               },
+               tooltip : {
+                   trigger: 'axis',
+                   axisPointer: {
+                       type: 'cross',
+                       label: {
+                           backgroundColor: '#6a7985'
+                       }
+                   }
+               },
+               legend: {
+                   data:[I18n.joblog_status_suc, I18n.joblog_status_fail, I18n.joblog_status_running]
+               },
+               toolbox: {
+                   feature: {
+                       /*saveAsImage: {}*/
+                   }
+               },
+               grid: {
+                   left: '3%',
+                   right: '4%',
+                   bottom: '3%',
+                   containLabel: true
+               },
+               xAxis : [
+                   {
+                       type : 'category',
+                       boundaryGap : false,
+                       data : data.content.triggerDayList
+                   }
+               ],
+               yAxis : [
+                   {
+                       type : 'value'
+                   }
+               ],
+               series : [
+                   {
+                       name:I18n.joblog_status_suc,
+                       type:'line',
+                       stack: 'Total',
+                       areaStyle: {normal: {}},
+                       data: data.content.triggerDayCountSucList
+                   },
+                   {
+                       name:I18n.joblog_status_fail,
+                       type:'line',
+                       stack: 'Total',
+                       label: {
+                           normal: {
+                               show: true,
+                               position: 'top'
+                           }
+                       },
+                       areaStyle: {normal: {}},
+                       data: data.content.triggerDayCountFailList
+                   },
+                   {
+                       name:I18n.joblog_status_running,
+                       type:'line',
+                       stack: 'Total',
+                       areaStyle: {normal: {}},
+                       data: data.content.triggerDayCountRunningList
+                   }
+               ],
+                color:['#00A65A', '#c23632', '#F39C12']
+        };
+
+        var lineChart = echarts.init(document.getElementById('lineChart'));
+        lineChart.setOption(option);
+    }
+
+    /**
+     * pie Chart Init
+     */
+    function pieChartInit(data) {
+        var option = {
+            title : {
+                text: I18n.job_dashboard_rate_report ,
+                /*subtext: 'subtext',*/
+                x:'center'
+            },
+            tooltip : {
+                trigger: 'item',
+                formatter: "{b} : {c} ({d}%)"
+            },
+            legend: {
+                orient: 'vertical',
+                left: 'left',
+                data: [I18n.joblog_status_suc, I18n.joblog_status_fail, I18n.joblog_status_running ]
+            },
+            series : [
+                {
+                    //name: '分布比例',
+                    type: 'pie',
+                    radius : '55%',
+                    center: ['50%', '60%'],
+                    data:[
+                        {
+                            name:I18n.joblog_status_suc,
+                            value:data.content.triggerCountSucTotal
+                        },
+                        {
+                            name:I18n.joblog_status_fail,
+                            value:data.content.triggerCountFailTotal
+                        },
+                        {
+                            name:I18n.joblog_status_running,
+                            value:data.content.triggerCountRunningTotal
+                        }
+                    ],
+                    itemStyle: {
+                        emphasis: {
+                            shadowBlur: 10,
+                            shadowOffsetX: 0,
+                            shadowColor: 'rgba(0, 0, 0, 0.5)'
+                        }
+                    }
+                }
+            ],
+            color:['#00A65A', '#c23632', '#F39C12']
+        };
+        var pieChart = echarts.init(document.getElementById('pieChart'));
+        pieChart.setOption(option);
+    }
+
+});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/jobcode.index.1.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/jobcode.index.1.js
new file mode 100644
index 0000000..668d634
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/jobcode.index.1.js
@@ -0,0 +1,97 @@
+$(function() {
+
+	// init code editor
+	var codeEditor;
+	function initIde(glueSource) {
+		if (codeEditor == null) {
+            codeEditor = CodeMirror(document.getElementById("ideWindow"), {
+                mode : ideMode,
+                lineNumbers : true,
+                matchBrackets : true,
+                value: glueSource
+            });
+		} else {
+            codeEditor.setValue(glueSource);
+		}
+	}
+
+	initIde($("#version_now").val());
+
+	// code change
+	$(".source_version").click(function(){
+		var sourceId = $(this).attr('version');
+		var temp = $( "#" + sourceId ).val();
+
+		//codeEditor.setValue('');
+		initIde(temp);
+	});
+
+	// code source save
+	$("#save").click(function() {
+		$('#saveModal').modal({backdrop: false, keyboard: false}).modal('show');
+	});
+
+	$("#saveModal .ok").click(function() {
+
+		var glueSource = codeEditor.getValue();
+		var glueRemark = $("#glueRemark").val();
+		
+		if (!glueRemark) {
+			layer.open({
+				title: I18n.system_tips,
+                btn: [ I18n.system_ok],
+				content: I18n.system_please_input + I18n.jobinfo_glue_remark ,
+				icon: '2'
+			});
+			return;
+		}
+		if (glueRemark.length <4 || glueRemark.length > 100) {
+			layer.open({
+				title: I18n.system_tips ,
+                btn: [ I18n.system_ok ],
+				content: I18n.jobinfo_glue_remark_limit ,
+				icon: '2'
+			});
+			return;
+		}
+
+		$.ajax({
+			type : 'POST',
+			url : base_url + '/jobcode/save',
+			data : {
+				'id' : id,
+				'glueSource' : glueSource,
+				'glueRemark' : glueRemark
+			},
+			dataType : "json",
+			success : function(data){
+				if (data.code == 200) {
+					layer.open({
+						title: I18n.system_tips,
+                        btn: [ I18n.system_ok ],
+						content: (I18n.system_save + I18n.system_success) ,
+						icon: '1',
+						end: function(layero, index){
+							//$(window).unbind('beforeunload');
+							window.location.reload();
+						}
+					});
+				} else {
+					layer.open({
+						title: I18n.system_tips,
+                        btn: [ I18n.system_ok ],
+						content: (data.msg || (I18n.system_save + I18n.system_fail) ),
+						icon: '2'
+					});
+				}
+			}
+		});
+
+	});
+	
+	// before upload
+	/*$(window).bind('beforeunload',function(){
+		return 'Glue尚未保存,确定离开Glue编辑器?';
+	});*/
+	
+});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/jobgroup.index.1.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/jobgroup.index.1.js
new file mode 100644
index 0000000..9f74199
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/jobgroup.index.1.js
@@ -0,0 +1,239 @@
+$(function() {
+
+	// remove
+	$('.remove').on('click', function(){
+		var id = $(this).attr('id');
+
+		layer.confirm( (I18n.system_ok + I18n.jobgroup_del + '?') , {
+			icon: 3,
+			title: I18n.system_tips ,
+            btn: [ I18n.system_ok, I18n.system_cancel ]
+		}, function(index){
+			layer.close(index);
+
+			$.ajax({
+				type : 'POST',
+				url : base_url + '/jobgroup/remove',
+				data : {"id":id},
+				dataType : "json",
+				success : function(data){
+					if (data.code == 200) {
+						layer.open({
+							title: I18n.system_tips ,
+                            btn: [ I18n.system_ok ],
+							content: (I18n.jobgroup_del + I18n.system_success),
+							icon: '1',
+							end: function(layero, index){
+								window.location.reload();
+							}
+						});
+					} else {
+						layer.open({
+							title: I18n.system_tips,
+                            btn: [ I18n.system_ok ],
+							content: (data.msg || (I18n.jobgroup_del + I18n.system_fail)),
+							icon: '2'
+						});
+					}
+				},
+			});
+		});
+
+	});
+
+	// jquery.validate “low letters start, limit contants、 letters、numbers and line-through.”
+	jQuery.validator.addMethod("myValid01", function(value, element) {
+		var length = value.length;
+		var valid = /^[a-z][a-zA-Z0-9-]*$/;
+		return this.optional(element) || valid.test(value);
+	}, I18n.jobgroup_field_appName_limit );
+
+	$('.add').on('click', function(){
+		$('#addModal').modal({backdrop: false, keyboard: false}).modal('show');
+	});
+	var addModalValidate = $("#addModal .form").validate({
+		errorElement : 'span',
+		errorClass : 'help-block',
+		focusInvalid : true,
+		rules : {
+			appName : {
+				required : true,
+				rangelength:[4,64],
+				myValid01 : true
+			},
+			title : {
+				required : true,
+				rangelength:[4, 12]
+			},
+			order : {
+				required : true,
+				digits:true,
+				range:[1,1000]
+			}
+		},
+		messages : {
+			appName : {
+				required : I18n.system_please_input+"AppName",
+				rangelength: I18n.jobgroup_field_appName_length ,
+				myValid01: I18n.jobgroup_field_appName_limit
+			},
+			title : {
+				required : I18n.system_please_input + I18n.jobgroup_field_title ,
+				rangelength: I18n.jobgroup_field_title_length
+			},
+			order : {
+				required : I18n.system_please_input + I18n.jobgroup_field_order ,
+				digits: I18n.jobgroup_field_order_digits ,
+				range: I18n.jobgroup_field_orderrange
+			}
+		},
+		highlight : function(element) {
+			$(element).closest('.form-group').addClass('has-error');
+		},
+		success : function(label) {
+			label.closest('.form-group').removeClass('has-error');
+			label.remove();
+		},
+		errorPlacement : function(error, element) {
+			element.parent('div').append(error);
+		},
+		submitHandler : function(form) {
+			$.post(base_url + "/jobgroup/save",  $("#addModal .form").serialize(), function(data, status) {
+				if (data.code == "200") {
+					$('#addModal').modal('hide');
+					layer.open({
+						title: I18n.system_tips ,
+                        btn: [ I18n.system_ok ],
+						content: I18n.system_add_suc ,
+						icon: '1',
+						end: function(layero, index){
+							window.location.reload();
+						}
+					});
+				} else {
+					layer.open({
+						title: I18n.system_tips,
+                        btn: [ I18n.system_ok ],
+						content: (data.msg || I18n.system_add_fail  ),
+						icon: '2'
+					});
+				}
+			});
+		}
+	});
+	$("#addModal").on('hide.bs.modal', function () {
+		$("#addModal .form")[0].reset();
+		addModalValidate.resetForm();
+		$("#addModal .form .form-group").removeClass("has-error");
+	});
+
+	// addressType change
+	$("#addModal input[name=addressType], #updateModal input[name=addressType]").click(function(){
+		var addressType = $(this).val();
+		var $addressList = $(this).parents("form").find("textarea[name=addressList]");
+		if (addressType == 0) {
+            $addressList.css("background-color", "#eee");	// 自动注册
+            $addressList.attr("readonly","readonly");
+			$addressList.val("");
+		} else {
+            $addressList.css("background-color", "white");
+			$addressList.removeAttr("readonly");
+		}
+	});
+
+	// update
+	$('.update').on('click', function(){
+		$("#updateModal .form input[name='id']").val($(this).attr("id"));
+		$("#updateModal .form input[name='appName']").val($(this).attr("appName"));
+		$("#updateModal .form input[name='title']").val($(this).attr("title"));
+		$("#updateModal .form input[name='order']").val($(this).attr("order"));
+
+		// 注册方式
+		var addressType = $(this).attr("addressType");
+		$("#updateModal .form input[name='addressType']").removeAttr('checked');
+		//$("#updateModal .form input[name='addressType'][value='"+ addressType +"']").attr('checked', 'true');
+		$("#updateModal .form input[name='addressType'][value='"+ addressType +"']").click();
+		// 机器地址
+		$("#updateModal .form textarea[name='addressList']").val($(this).attr("addressList"));
+
+		$('#updateModal').modal({backdrop: false, keyboard: false}).modal('show');
+	});
+	var updateModalValidate = $("#updateModal .form").validate({
+		errorElement : 'span',
+		errorClass : 'help-block',
+		focusInvalid : true,
+		rules : {
+			appName : {
+				required : true,
+				rangelength:[4,64],
+				myValid01 : true
+			},
+			title : {
+				required : true,
+				rangelength:[4, 12]
+			},
+			order : {
+				required : true,
+				digits:true,
+				range:[1,1000]
+			}
+		},
+		messages : {
+            appName : {
+                required : I18n.system_please_input+"AppName",
+                rangelength: I18n.jobgroup_field_appName_length ,
+                myValid01: I18n.jobgroup_field_appName_limit
+            },
+            title : {
+                required : I18n.system_please_input + I18n.jobgroup_field_title ,
+                rangelength: I18n.jobgroup_field_title_length
+            },
+            order : {
+                required : I18n.system_please_input + I18n.jobgroup_field_order ,
+                digits: I18n.jobgroup_field_order_digits ,
+                range: I18n.jobgroup_field_orderrange
+            }
+		},
+		highlight : function(element) {
+			$(element).closest('.form-group').addClass('has-error');
+		},
+		success : function(label) {
+			label.closest('.form-group').removeClass('has-error');
+			label.remove();
+		},
+		errorPlacement : function(error, element) {
+			element.parent('div').append(error);
+		},
+		submitHandler : function(form) {
+			$.post(base_url + "/jobgroup/update",  $("#updateModal .form").serialize(), function(data, status) {
+				if (data.code == "200") {
+					$('#addModal').modal('hide');
+
+					layer.open({
+						title: I18n.system_tips ,
+                        btn: [ I18n.system_ok ],
+						content: I18n.system_update_suc ,
+						icon: '1',
+						end: function(layero, index){
+							window.location.reload();
+						}
+					});
+				} else {
+					layer.open({
+						title: I18n.system_tips,
+                        btn: [ I18n.system_ok ],
+						content: (data.msg || I18n.system_update_fail  ),
+						icon: '2'
+					});
+				}
+			});
+		}
+	});
+	$("#updateModal").on('hide.bs.modal', function () {
+		$("#updateModal .form")[0].reset();
+		addModalValidate.resetForm();
+		$("#updateModal .form .form-group").removeClass("has-error");
+	});
+
+	
+});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/jobinfo.index.1.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/jobinfo.index.1.js
new file mode 100644
index 0000000..815c26f
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/jobinfo.index.1.js
@@ -0,0 +1,648 @@
+$(function() {
+
+	// init date tables
+	var jobTable = $("#job_list").dataTable({
+		"deferRender": true,
+		"processing" : true,
+	    "serverSide": true,
+		"ajax": {
+			url: base_url + "/jobinfo/pageList",
+			type:"post",
+	        data : function ( d ) {
+	        	var obj = {};
+	        	obj.jobGroup = $('#jobGroup').val();
+                obj.triggerStatus = $('#triggerStatus').val();
+                obj.jobDesc = $('#jobDesc').val();
+	        	obj.executorHandler = $('#executorHandler').val();
+                obj.author = $('#author').val();
+	        	obj.start = d.start;
+	        	obj.length = d.length;
+                return obj;
+            }
+	    },
+	    "searching": false,
+	    "ordering": false,
+	    //"scrollX": true,	// scroll x,close self-adaption
+	    "columns": [
+	                {
+	                	"data": 'id',
+						"bSortable": false,
+						"visible" : true,
+						"width":'7%'
+					},
+	                {
+	                	"data": 'jobGroup',
+	                	"visible" : false,
+	                	"render": function ( data, type, row ) {
+	            			var groupMenu = $("#jobGroup").find("option");
+	            			for ( var index in $("#jobGroup").find("option")) {
+	            				if ($(groupMenu[index]).attr('value') == data) {
+									return $(groupMenu[index]).html();
+								}
+							}
+	            			return data;
+	            		}
+            		},
+	                {
+	                	"data": 'jobDesc',
+						"visible" : true,
+						"width":'25%'
+					},
+					{
+						"data": 'glueType',
+						"width":'25%',
+						"visible" : true,
+						"render": function ( data, type, row ) {
+							var glueTypeTitle = findGlueTypeTitle(row.glueType);
+                            if (row.executorHandler) {
+                                return glueTypeTitle +":" + row.executorHandler;
+                            } else {
+                                return glueTypeTitle;
+                            }
+						}
+					},
+	                { "data": 'executorParam', "visible" : false},
+					{
+						"data": 'jobCron',
+						"visible" : true,
+						"width":'13%'
+					},
+	                {
+	                	"data": 'addTime',
+	                	"visible" : false,
+	                	"render": function ( data, type, row ) {
+	                		return data?moment(new Date(data)).format("YYYY-MM-DD HH:mm:ss"):"";
+	                	}
+	                },
+	                {
+	                	"data": 'updateTime',
+	                	"visible" : false,
+	                	"render": function ( data, type, row ) {
+	                		return data?moment(new Date(data)).format("YYYY-MM-DD HH:mm:ss"):"";
+	                	}
+	                },
+	                { "data": 'author', "visible" : true, "width":'10%'},
+	                { "data": 'alarmEmail', "visible" : false},
+	                {
+	                	"data": 'triggerStatus',
+						"width":'10%',
+	                	"visible" : true,
+	                	"render": function ( data, type, row ) {
+                            // status
+                            if (1 == data) {
+                                return '<small class="label label-success" >RUNNING</small>';
+                            } else {
+                                return '<small class="label label-default" >STOP</small>';
+                            }
+	                		return data;
+	                	}
+	                },
+	                {
+						"data": I18n.system_opt ,
+						"width":'10%',
+	                	"render": function ( data, type, row ) {
+	                		return function(){
+
+                                // status
+                                var start_stop_div = "";
+                                if (1 == row.triggerStatus ) {
+                                    start_stop_div = '<li><a href="javascript:void(0);" class="job_operate" _type="job_pause" >'+ I18n.jobinfo_opt_stop +'</a></li>\n';
+                                } else {
+                                    start_stop_div = '<li><a href="javascript:void(0);" class="job_operate" _type="job_resume" >'+ I18n.jobinfo_opt_start +'</a></li>\n';
+                                }
+
+                                // log url
+                                var logHref = base_url +'/joblog?jobId='+ row.id;
+
+                                // log url
+                                var codeBtn = "";
+                                if ('BEAN' != row.glueType) {
+                                    var codeUrl = base_url +'/jobcode?jobId='+ row.id;
+                                    codeBtn = '<li><a href="'+ codeUrl +'" target="_blank" >GLUE IDE</a></li>\n';
+                                    codeBtn += '<li class="divider"></li>\n';
+                                }
+
+                                // data
+                                tableData['key'+row.id] = row;
+
+                                // opt
+                                var html = '<div class="btn-group">\n' +
+                                    '     <button type="button" class="btn btn-primary btn-sm">'+ I18n.system_opt +'</button>\n' +
+                                    '     <button type="button" class="btn btn-primary btn-sm dropdown-toggle" data-toggle="dropdown">\n' +
+                                    '       <span class="caret"></span>\n' +
+                                    '       <span class="sr-only">Toggle Dropdown</span>\n' +
+                                    '     </button>\n' +
+                                    '     <ul class="dropdown-menu" role="menu" _id="'+ row.id +'" >\n' +
+                                    '       <li><a href="javascript:void(0);" class="job_trigger" >'+ I18n.jobinfo_opt_run +'</a></li>\n' +
+                                    '       <li><a href="'+ logHref +'">'+ I18n.jobinfo_opt_log +'</a></li>\n' +
+                                    '       <li><a href="javascript:void(0);" class="job_registryinfo" >' + I18n.jobinfo_opt_registryinfo + '</a></li>\n' +
+                                    '       <li><a href="javascript:void(0);" class="job_next_time" >' + I18n.jobinfo_opt_next_time + '</a></li>\n' +
+                                    '       <li class="divider"></li>\n' +
+                                    codeBtn +
+                                    start_stop_div +
+                                    '       <li><a href="javascript:void(0);" class="update" >'+ I18n.system_opt_edit +'</a></li>\n' +
+                                    '       <li><a href="javascript:void(0);" class="job_operate" _type="job_del" >'+ I18n.system_opt_del +'</a></li>\n' +
+                                    '     </ul>\n' +
+                                    '   </div>';
+
+	                			return html;
+							};
+	                	}
+	                }
+	            ],
+		"language" : {
+			"sProcessing" : I18n.dataTable_sProcessing ,
+			"sLengthMenu" : I18n.dataTable_sLengthMenu ,
+			"sZeroRecords" : I18n.dataTable_sZeroRecords ,
+			"sInfo" : I18n.dataTable_sInfo ,
+			"sInfoEmpty" : I18n.dataTable_sInfoEmpty ,
+			"sInfoFiltered" : I18n.dataTable_sInfoFiltered ,
+			"sInfoPostFix" : "",
+			"sSearch" : I18n.dataTable_sSearch ,
+			"sUrl" : "",
+			"sEmptyTable" : I18n.dataTable_sEmptyTable ,
+			"sLoadingRecords" : I18n.dataTable_sLoadingRecords ,
+			"sInfoThousands" : ",",
+			"oPaginate" : {
+				"sFirst" : I18n.dataTable_sFirst ,
+				"sPrevious" : I18n.dataTable_sPrevious ,
+				"sNext" : I18n.dataTable_sNext ,
+				"sLast" : I18n.dataTable_sLast
+			},
+			"oAria" : {
+				"sSortAscending" : I18n.dataTable_sSortAscending ,
+				"sSortDescending" : I18n.dataTable_sSortDescending
+			}
+		}
+	});
+
+    // table data
+    var tableData = {};
+
+	// search btn
+	$('#searchBtn').on('click', function(){
+		jobTable.fnDraw();
+	});
+
+	// jobGroup change
+	$('#jobGroup').on('change', function(){
+        //reload
+        var jobGroup = $('#jobGroup').val();
+        window.location.href = base_url + "/jobinfo?jobGroup=" + jobGroup;
+    });
+
+	// job operate
+	$("#job_list").on('click', '.job_operate',function() {
+		var typeName;
+		var url;
+		var needFresh = false;
+
+		var type = $(this).attr("_type");
+		if ("job_pause" == type) {
+			typeName = I18n.jobinfo_opt_stop ;
+			url = base_url + "/jobinfo/stop";
+			needFresh = true;
+		} else if ("job_resume" == type) {
+			typeName = I18n.jobinfo_opt_start ;
+			url = base_url + "/jobinfo/start";
+			needFresh = true;
+		} else if ("job_del" == type) {
+			typeName = I18n.system_opt_del ;
+			url = base_url + "/jobinfo/remove";
+			needFresh = true;
+		} else {
+			return;
+		}
+
+		var id = $(this).parents('ul').attr("_id");
+
+		layer.confirm( I18n.system_ok + typeName + '?', {
+			icon: 3,
+			title: I18n.system_tips ,
+            btn: [ I18n.system_ok, I18n.system_cancel ]
+		}, function(index){
+			layer.close(index);
+
+			$.ajax({
+				type : 'POST',
+				url : url,
+				data : {
+					"id" : id
+				},
+				dataType : "json",
+				success : function(data){
+					if (data.code == 200) {
+                        layer.msg( typeName + I18n.system_success );
+                        if (needFresh) {
+                            //window.location.reload();
+                            jobTable.fnDraw(false);
+                        }
+					} else {
+                        layer.msg( data.msg || typeName + I18n.system_fail );
+					}
+				}
+			});
+		});
+	});
+
+    // job trigger
+    $("#job_list").on('click', '.job_trigger',function() {
+        var id = $(this).parents('ul').attr("_id");
+        var row = tableData['key'+id];
+
+        $("#jobTriggerModal .form input[name='id']").val( row.id );
+        $("#jobTriggerModal .form textarea[name='executorParam']").val( row.executorParam );
+
+        $('#jobTriggerModal').modal({backdrop: false, keyboard: false}).modal('show');
+    });
+    $("#jobTriggerModal .ok").on('click',function() {
+        $.ajax({
+            type : 'POST',
+            url : base_url + "/jobinfo/trigger",
+            data : {
+                "id" : $("#jobTriggerModal .form input[name='id']").val(),
+                "executorParam" : $("#jobTriggerModal .textarea[name='executorParam']").val()
+            },
+            dataType : "json",
+            success : function(data){
+                if (data.code == 200) {
+                    $('#jobTriggerModal').modal('hide');
+
+                    layer.msg( I18n.jobinfo_opt_run + I18n.system_success );
+                } else {
+                    layer.msg( data.msg || I18n.jobinfo_opt_run + I18n.system_fail );
+                }
+            }
+        });
+    });
+    $("#jobTriggerModal").on('hide.bs.modal', function () {
+        $("#jobTriggerModal .form")[0].reset();
+    });
+
+
+    // job registryinfo
+    $("#job_list").on('click', '.job_registryinfo',function() {
+        var id = $(this).parents('ul').attr("_id");
+        var row = tableData['key'+id];
+
+        var jobGroup = row.jobGroup;
+
+        $.ajax({
+            type : 'POST',
+            url : base_url + "/jobgroup/loadById",
+            data : {
+                "id" : jobGroup
+            },
+            dataType : "json",
+            success : function(data){
+
+                var html = '<center>';
+                if (data.code == 200 && data.content.registryList) {
+                    for (var index in data.content.registryList) {
+                        html += '<span class="badge bg-green" >' + data.content.registryList[index] + '</span><br>';
+                    }
+                }
+                html += '</center>';
+
+                layer.open({
+                    title: I18n.jobinfo_opt_registryinfo ,
+                    btn: [ I18n.system_ok ],
+                    content: html
+                });
+
+            }
+        });
+
+    });
+
+    // job_next_time
+    $("#job_list").on('click', '.job_next_time',function() {
+        var id = $(this).parents('ul').attr("_id");
+        var row = tableData['key'+id];
+
+        var jobCron = row.jobCron;
+
+        $.ajax({
+            type : 'POST',
+            url : base_url + "/jobinfo/nextTriggerTime",
+            data : {
+                "cron" : jobCron
+            },
+            dataType : "json",
+            success : function(data){
+            	
+            	if (data.code != 200) {
+                    layer.open({
+                        title: I18n.jobinfo_opt_next_time ,
+                        btn: [ I18n.system_ok ],
+                        content: data.msg
+                    });
+				} else {
+                    var html = '<center>';
+                    if (data.code == 200 && data.content) {
+                        for (var index in data.content) {
+                            html += '<span>' + data.content[index] + '</span><br>';
+                        }
+                    }
+                    html += '</center>';
+
+                    layer.open({
+                        title: I18n.jobinfo_opt_next_time ,
+                        btn: [ I18n.system_ok ],
+                        content: html
+                    });
+				}
+
+            }
+        });
+
+    });
+
+	// add
+	$(".add").click(function(){
+
+		// init-cronGen
+        $("#addModal .form input[name='jobCron']").show().siblings().remove();
+        $("#addModal .form input[name='jobCron']").cronGen({});
+
+		$('#addModal').modal({backdrop: false, keyboard: false}).modal('show');
+	});
+	var addModalValidate = $("#addModal .form").validate({
+		errorElement : 'span',
+        errorClass : 'help-block',
+        focusInvalid : true,
+        rules : {
+			jobDesc : {
+				required : true,
+				maxlength: 50
+			},
+            jobCron : {
+            	required : true
+            },
+			author : {
+				required : true
+			},
+            executorTimeout : {
+                digits:true
+            },
+            executorFailRetryCount : {
+                digits:true
+            }
+        },
+        messages : {
+            jobDesc : {
+            	required : I18n.system_please_input + I18n.jobinfo_field_jobdesc
+            },
+            jobCron : {
+            	required : I18n.system_please_input + "Cron"
+            },
+            author : {
+            	required : I18n.system_please_input + I18n.jobinfo_field_author
+            },
+            executorTimeout : {
+                digits: I18n.system_please_input + I18n.system_digits
+            },
+            executorFailRetryCount : {
+                digits: I18n.system_please_input + I18n.system_digits
+            }
+        },
+		highlight : function(element) {
+            $(element).closest('.form-group').addClass('has-error');
+        },
+        success : function(label) {
+            label.closest('.form-group').removeClass('has-error');
+            label.remove();
+        },
+        errorPlacement : function(error, element) {
+            element.parent('div').append(error);
+        },
+        submitHandler : function(form) {
+
+			// process
+            var executorTimeout = $("#addModal .form input[name='executorTimeout']").val();
+            if(!/^\d+$/.test(executorTimeout)) {
+                executorTimeout = 0;
+			}
+            $("#addModal .form input[name='executorTimeout']").val(executorTimeout);
+            var executorFailRetryCount = $("#addModal .form input[name='executorFailRetryCount']").val();
+            if(!/^\d+$/.test(executorFailRetryCount)) {
+                executorFailRetryCount = 0;
+            }
+            $("#addModal .form input[name='executorFailRetryCount']").val(executorFailRetryCount);
+
+            // process-cronGen
+            $("#addModal .form input[name='jobCron']").val( $("#addModal .form input[name='cronGen_display']").val() );
+
+        	$.post(base_url + "/jobinfo/add",  $("#addModal .form").serialize(), function(data, status) {
+    			if (data.code == "200") {
+					$('#addModal').modal('hide');
+					layer.open({
+						title: I18n.system_tips ,
+                        btn: [ I18n.system_ok ],
+						content: I18n.system_add_suc ,
+						icon: '1',
+						end: function(layero, index){
+							jobTable.fnDraw();
+							//window.location.reload();
+						}
+					});
+    			} else {
+					layer.open({
+						title: I18n.system_tips ,
+                        btn: [ I18n.system_ok ],
+						content: (data.msg || I18n.system_add_fail),
+						icon: '2'
+					});
+    			}
+    		});
+		}
+	});
+	$("#addModal").on('hide.bs.modal', function () {
+        addModalValidate.resetForm();
+		$("#addModal .form")[0].reset();
+		$("#addModal .form .form-group").removeClass("has-error");
+		$(".remote_panel").show();	// remote
+
+		$("#addModal .form input[name='executorHandler']").removeAttr("readonly");
+	});
+
+
+    // glueType change
+    $(".glueType").change(function(){
+		// executorHandler
+        var $executorHandler = $(this).parents("form").find("input[name='executorHandler']");
+        var glueType = $(this).val();
+        if ('BEAN' != glueType) {
+            $executorHandler.val("");
+            $executorHandler.attr("readonly","readonly");
+        } else {
+            $executorHandler.removeAttr("readonly");
+        }
+    });
+
+	$("#addModal .glueType").change(function(){
+		// glueSource
+		var glueType = $(this).val();
+		if ('GLUE_GROOVY'==glueType){
+			$("#addModal .form textarea[name='glueSource']").val( $("#addModal .form .glueSource_java").val() );
+		} else if ('GLUE_SHELL'==glueType){
+			$("#addModal .form textarea[name='glueSource']").val( $("#addModal .form .glueSource_shell").val() );
+		} else if ('GLUE_PYTHON'==glueType){
+			$("#addModal .form textarea[name='glueSource']").val( $("#addModal .form .glueSource_python").val() );
+		} else if ('GLUE_PHP'==glueType){
+            $("#addModal .form textarea[name='glueSource']").val( $("#addModal .form .glueSource_php").val() );
+        } else if ('GLUE_NODEJS'==glueType){
+			$("#addModal .form textarea[name='glueSource']").val( $("#addModal .form .glueSource_nodejs").val() );
+		} else if ('GLUE_POWERSHELL'==glueType){
+            $("#addModal .form textarea[name='glueSource']").val( $("#addModal .form .glueSource_powershell").val() );
+        } else {
+            $("#addModal .form textarea[name='glueSource']").val("");
+		}
+	});
+
+	// update
+	$("#job_list").on('click', '.update',function() {
+
+        var id = $(this).parents('ul').attr("_id");
+        var row = tableData['key'+id];
+
+		// base data
+		$("#updateModal .form input[name='id']").val( row.id );
+		$('#updateModal .form select[name=jobGroup] option[value='+ row.jobGroup +']').prop('selected', true);
+		$("#updateModal .form input[name='jobDesc']").val( row.jobDesc );
+		$("#updateModal .form input[name='jobCron']").val( row.jobCron );
+		$("#updateModal .form input[name='author']").val( row.author );
+		$("#updateModal .form input[name='alarmEmail']").val( row.alarmEmail );
+		$("#updateModal .form input[name='executorTimeout']").val( row.executorTimeout );
+        $("#updateModal .form input[name='executorFailRetryCount']").val( row.executorFailRetryCount );
+		$('#updateModal .form select[name=executorRouteStrategy] option[value='+ row.executorRouteStrategy +']').prop('selected', true);
+		$("#updateModal .form input[name='executorHandler']").val( row.executorHandler );
+		$("#updateModal .form textarea[name='executorParam']").val( row.executorParam );
+        $("#updateModal .form input[name='childJobId']").val( row.childJobId );
+		$('#updateModal .form select[name=executorBlockStrategy] option[value='+ row.executorBlockStrategy +']').prop('selected', true);
+		$('#updateModal .form select[name=glueType] option[value='+ row.glueType +']').prop('selected', true);
+
+        $("#updateModal .form select[name=glueType]").change();
+
+        // init-cronGen
+        $("#updateModal .form input[name='jobCron']").show().siblings().remove();
+        $("#updateModal .form input[name='jobCron']").cronGen({});
+
+		// show
+		$('#updateModal').modal({backdrop: false, keyboard: false}).modal('show');
+	});
+	var updateModalValidate = $("#updateModal .form").validate({
+		errorElement : 'span',
+        errorClass : 'help-block',
+        focusInvalid : true,
+
+		rules : {
+			jobDesc : {
+				required : true,
+				maxlength: 50
+			},
+			jobCron : {
+				required : true
+			},
+			author : {
+				required : true
+			},
+            executorTimeout : {
+                digits:true
+            },
+            executorFailRetryCount : {
+                digits:true
+            }
+		},
+		messages : {
+			jobDesc : {
+                required : I18n.system_please_input + I18n.jobinfo_field_jobdesc
+			},
+			jobCron : {
+				required : I18n.system_please_input + "Cron"
+			},
+			author : {
+				required : I18n.system_please_input + I18n.jobinfo_field_author
+			},
+            executorTimeout : {
+                digits: I18n.system_please_input + I18n.system_digits
+            },
+            executorFailRetryCount : {
+                digits: I18n.system_please_input + I18n.system_digits
+            }
+		},
+		highlight : function(element) {
+            $(element).closest('.form-group').addClass('has-error');
+        },
+        success : function(label) {
+            label.closest('.form-group').removeClass('has-error');
+            label.remove();
+        },
+        errorPlacement : function(error, element) {
+            element.parent('div').append(error);
+        },
+        submitHandler : function(form) {
+
+            // process
+            var executorTimeout = $("#updateModal .form input[name='executorTimeout']").val();
+            if(!/^\d+$/.test(executorTimeout)) {
+                executorTimeout = 0;
+            }
+            $("#updateModal .form input[name='executorTimeout']").val(executorTimeout);
+            var executorFailRetryCount = $("#updateModal .form input[name='executorFailRetryCount']").val();
+            if(!/^\d+$/.test(executorFailRetryCount)) {
+                executorFailRetryCount = 0;
+            }
+            $("#updateModal .form input[name='executorFailRetryCount']").val(executorFailRetryCount);
+
+            // process-cronGen
+            $("#updateModal .form input[name='jobCron']").val( $("#updateModal .form input[name='cronGen_display']").val() );
+
+			// post
+    		$.post(base_url + "/jobinfo/update", $("#updateModal .form").serialize(), function(data, status) {
+    			if (data.code == "200") {
+					$('#updateModal').modal('hide');
+					layer.open({
+						title: I18n.system_tips ,
+                        btn: [ I18n.system_ok ],
+						content: I18n.system_update_suc ,
+						icon: '1',
+						end: function(layero, index){
+							//window.location.reload();
+							jobTable.fnDraw();
+						}
+					});
+    			} else {
+					layer.open({
+						title: I18n.system_tips ,
+                        btn: [ I18n.system_ok ],
+						content: (data.msg || I18n.system_update_fail ),
+						icon: '2'
+					});
+    			}
+    		});
+		}
+	});
+	$("#updateModal").on('hide.bs.modal', function () {
+        updateModalValidate.resetForm();
+        $("#updateModal .form")[0].reset();
+        $("#updateModal .form .form-group").removeClass("has-error");
+	});
+
+    /**
+	 * find title by name, GlueType
+     */
+	function findGlueTypeTitle(glueType) {
+		var glueTypeTitle;
+        $("#addModal .form select[name=glueType] option").each(function () {
+            var name = $(this).val();
+            var title = $(this).text();
+            if (glueType == name) {
+                glueTypeTitle = title;
+                return false
+            }
+        });
+        return glueTypeTitle;
+    }
+
+});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/joblog.detail.1.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/joblog.detail.1.js
new file mode 100644
index 0000000..ddefd46
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/joblog.detail.1.js
@@ -0,0 +1,91 @@
+$(function() {
+
+    // trigger fail, end
+    if ( !(triggerCode == 200 || handleCode != 0) ) {
+        $('#logConsoleRunning').hide();
+        $('#logConsole').append('<span style="color: red;">'+ I18n.joblog_rolling_log_triggerfail +'</span>');
+        return;
+    }
+
+    // pull log
+    var fromLineNum = 1;    // [from, to], start as 1
+    var pullFailCount = 0;
+    function pullLog() {
+        // pullFailCount, max=20
+        if (pullFailCount++ > 20) {
+            logRunStop('<span style="color: red;">'+ I18n.joblog_rolling_log_failoften +'</span>');
+            return;
+        }
+
+        // load
+        console.log("pullLog, fromLineNum:" + fromLineNum);
+
+        $.ajax({
+            type : 'POST',
+            async: false,   // sync, make log ordered
+            url : base_url + '/joblog/logDetailCat',
+            data : {
+                "executorAddress":executorAddress,
+                "triggerTime":triggerTime,
+                "logId":logId,
+                "fromLineNum":fromLineNum
+            },
+            dataType : "json",
+            success : function(data){
+
+                if (data.code == 200) {
+                    if (!data.content) {
+                        console.log('pullLog fail');
+                        return;
+                    }
+                    if (fromLineNum != data.content.fromLineNum) {
+                        console.log('pullLog fromLineNum not match');
+                        return;
+                    }
+                    if (fromLineNum > data.content.toLineNum ) {
+                        console.log('pullLog already line-end');
+
+                        // valid end
+                        if (data.content.end) {
+                            logRunStop('<br><span style="color: green;">[Rolling Log Finish]</span>');
+                            return;
+                        }
+
+                        return;
+                    }
+
+                    // append content
+                    fromLineNum = data.content.toLineNum + 1;
+                    $('#logConsole').append(data.content.logContent);
+                    pullFailCount = 0;
+
+                    // scroll to bottom
+                    scrollTo(0, document.body.scrollHeight);        // $('#logConsolePre').scrollTop( document.body.scrollHeight + 300 );
+
+                } else {
+                    console.log('pullLog fail:'+data.msg);
+                }
+            }
+        });
+    }
+
+    // pull first page
+    pullLog();
+
+    // handler already callback, end
+    if (handleCode > 0) {
+        logRunStop('<br><span style="color: green;">[Load Log Finish]</span>');
+        return;
+    }
+
+    // round until end
+    var logRun = setInterval(function () {
+        pullLog()
+    }, 3000);
+    function logRunStop(content){
+        $('#logConsoleRunning').hide();
+        logRun = window.clearInterval(logRun);
+        $('#logConsole').append(content);
+    }
+
+});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/joblog.index.1.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/joblog.index.1.js
new file mode 100644
index 0000000..056a9c1
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/joblog.index.1.js
@@ -0,0 +1,375 @@
+$(function() {
+
+	// jobGroup change, job list init and select
+	$("#jobGroup").on("change", function () {
+		var jobGroup = $(this).children('option:selected').val();
+		$.ajax({
+			type : 'POST',
+            async: false,   // async, avoid js invoke pagelist before jobId data init
+			url : base_url + '/joblog/getJobsByGroup',
+			data : {"jobGroup":jobGroup},
+			dataType : "json",
+			success : function(data){
+				if (data.code == 200) {
+					$("#jobId").html( '<option value="0" >'+ I18n.system_all +'</option>' );
+					$.each(data.content, function (n, value) {
+                        $("#jobId").append('<option value="' + value.id + '" >' + value.jobDesc + '</option>');
+                    });
+                    if ($("#jobId").attr("paramVal")){
+                        $("#jobId").find("option[value='" + $("#jobId").attr("paramVal") + "']").attr("selected",true);
+                    }
+				} else {
+					layer.open({
+						title: I18n.system_tips ,
+                        btn: [ I18n.system_ok ],
+						content: (data.msg || I18n.system_api_error ),
+						icon: '2'
+					});
+				}
+			},
+		});
+	});
+	if ($("#jobGroup").attr("paramVal")){
+		$("#jobGroup").find("option[value='" + $("#jobGroup").attr("paramVal") + "']").attr("selected",true);
+        $("#jobGroup").change();
+	}
+
+	// filter Time
+    var rangesConf = {};
+    rangesConf[I18n.daterangepicker_ranges_recent_hour] = [moment().subtract(1, 'hours'), moment()];
+    rangesConf[I18n.daterangepicker_ranges_today] = [moment().startOf('day'), moment().endOf('day')];
+    rangesConf[I18n.daterangepicker_ranges_yesterday] = [moment().subtract(1, 'days').startOf('day'), moment().subtract(1, 'days').endOf('day')];
+    rangesConf[I18n.daterangepicker_ranges_this_month] = [moment().startOf('month'), moment().endOf('month')];
+    rangesConf[I18n.daterangepicker_ranges_last_month] = [moment().subtract(1, 'months').startOf('month'), moment().subtract(1, 'months').endOf('month')];
+    rangesConf[I18n.daterangepicker_ranges_recent_week] = [moment().subtract(1, 'weeks').startOf('day'), moment().endOf('day')];
+    rangesConf[I18n.daterangepicker_ranges_recent_month] = [moment().subtract(1, 'months').startOf('day'), moment().endOf('day')];
+
+	$('#filterTime').daterangepicker({
+        autoApply:false,
+        singleDatePicker:false,
+        showDropdowns:false,        // 是否显示年月选择条件
+		timePicker: true, 			// 是否显示小时和分钟选择条件
+		timePickerIncrement: 10, 	// 时间的增量,单位为分钟
+        timePicker24Hour : true,
+        opens : 'left', //日期选择框的弹出位置
+		ranges: rangesConf,
+        locale : {
+            format: 'YYYY-MM-DD HH:mm:ss',
+            separator : ' - ',
+            customRangeLabel : I18n.daterangepicker_custom_name ,
+            applyLabel : I18n.system_ok ,
+            cancelLabel : I18n.system_cancel ,
+            fromLabel : I18n.daterangepicker_custom_starttime ,
+            toLabel : I18n.daterangepicker_custom_endtime ,
+            daysOfWeek : I18n.daterangepicker_custom_daysofweek.split(',') ,        // '日', '一', '二', '三', '四', '五', '六'
+            monthNames : I18n.daterangepicker_custom_monthnames.split(',') ,        // '一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'
+            firstDay : 1
+        },
+        startDate: rangesConf[I18n.daterangepicker_ranges_today][0],
+        endDate: rangesConf[I18n.daterangepicker_ranges_today][1]
+	});
+
+	// init date tables
+	var logTable = $("#joblog_list").dataTable({
+		"deferRender": true,
+		"processing" : true, 
+	    "serverSide": true,
+		"ajax": {
+	        url: base_url + "/joblog/pageList" ,
+            type:"post",
+	        data : function ( d ) {
+	        	var obj = {};
+	        	obj.jobGroup = $('#jobGroup').val();
+	        	obj.jobId = $('#jobId').val();
+                obj.logStatus = $('#logStatus').val();
+				obj.filterTime = $('#filterTime').val();
+	        	obj.start = d.start;
+	        	obj.length = d.length;
+                return obj;
+            }
+	    },
+	    "searching": false,
+	    "ordering": false,
+	    //"scrollX": false,
+	    "columns": [
+					{
+						"data": 'jobId',
+						"visible" : true,
+                        "width":'10%',
+						"render": function ( data, type, row ) {
+
+							var jobhandler = '';
+                            if (row.executorHandler) {
+                                jobhandler = "<br>JobHandler:" + row.executorHandler;
+                            }
+
+							var temp = '';
+							temp += I18n.joblog_field_executorAddress + ':' + (row.executorAddress?row.executorAddress:'');
+							temp += jobhandler;
+							temp += '<br>'+ I18n.jobinfo_field_executorparam +':' + row.executorParam;
+
+							return '<a class="logTips" href="javascript:;" >'+ row.jobId +'<span style="display:none;">'+ temp +'</span></a>';
+						}
+					},
+					{ "data": 'jobGroup', "visible" : false},
+					{
+						"data": 'triggerTime',
+                        "width":'20%',
+						"render": function ( data, type, row ) {
+							return data?moment(new Date(data)).format("YYYY-MM-DD HH:mm:ss"):"";
+						}
+					},
+					{
+						"data": 'triggerCode',
+                        "width":'10%',
+						"render": function ( data, type, row ) {
+							var html = data;
+							if (data == 200) {
+								html = '<span style="color: green">'+ I18n.system_success +'</span>';
+							} else if (data == 500) {
+								html = '<span style="color: red">'+ I18n.system_fail +'</span>';
+							} else if (data == 0) {
+                                html = '';
+							}
+                            return html;
+						}
+					},
+					{
+						"data": 'triggerMsg',
+                        "width":'10%',
+						"render": function ( data, type, row ) {
+							return data?'<a class="logTips" href="javascript:;" >'+ I18n.system_show +'<span style="display:none;">'+ data +'</span></a>':I18n.system_empty;
+						}
+					},
+	                { 
+	                	"data": 'handleTime',
+                        "width":'20%',
+	                	"render": function ( data, type, row ) {
+	                		return data?moment(new Date(data)).format("YYYY-MM-DD HH:mm:ss"):"";
+	                	}
+	                },
+	                {
+						"data": 'handleCode',
+                        "width":'10%',
+						"render": function ( data, type, row ) {
+                            var html = data;
+                            if (data == 200) {
+                                html = '<span style="color: green">'+ I18n.joblog_handleCode_200 +'</span>';
+                            } else if (data == 500) {
+                                html = '<span style="color: red">'+ I18n.joblog_handleCode_500 +'</span>';
+                            } else if (data == 502) {
+                                html = '<span style="color: red">'+ I18n.joblog_handleCode_502 +'</span>';
+                            } else if (data == 0) {
+                                html = '';
+                            }
+                            return html;
+						}
+	                },
+	                { 
+	                	"data": 'handleMsg',
+                        "width":'10%',
+	                	"render": function ( data, type, row ) {
+	                		return data?'<a class="logTips" href="javascript:;" >'+ I18n.system_show +'<span style="display:none;">'+ data +'</span></a>':I18n.system_empty;
+	                	}
+	                },
+	                {
+						"data": 'handleMsg' ,
+						"bSortable": false,
+                        "width":'10%',
+	                	"render": function ( data, type, row ) {
+	                		// better support expression or string, not function
+	                		return function () {
+		                		if (row.triggerCode == 200 || row.handleCode != 0){
+		                			var temp = '<a href="javascript:;" class="logDetail" _id="'+ row.id +'">'+ I18n.joblog_rolling_log +'</a>';
+		                			if(row.handleCode == 0){
+		                				temp += '<br><a href="javascript:;" class="logKill" _id="'+ row.id +'" style="color: red;" >'+ I18n.joblog_kill_log +'</a>';
+		                			}
+		                			return temp;
+		                		}
+		                		return null;	
+	                		}
+	                	}
+	                }
+	            ],
+        "language" : {
+            "sProcessing" : I18n.dataTable_sProcessing ,
+            "sLengthMenu" : I18n.dataTable_sLengthMenu ,
+            "sZeroRecords" : I18n.dataTable_sZeroRecords ,
+            "sInfo" : I18n.dataTable_sInfo ,
+            "sInfoEmpty" : I18n.dataTable_sInfoEmpty ,
+            "sInfoFiltered" : I18n.dataTable_sInfoFiltered ,
+            "sInfoPostFix" : "",
+            "sSearch" : I18n.dataTable_sSearch ,
+            "sUrl" : "",
+            "sEmptyTable" : I18n.dataTable_sEmptyTable ,
+            "sLoadingRecords" : I18n.dataTable_sLoadingRecords ,
+            "sInfoThousands" : ",",
+            "oPaginate" : {
+                "sFirst" : I18n.dataTable_sFirst ,
+                "sPrevious" : I18n.dataTable_sPrevious ,
+                "sNext" : I18n.dataTable_sNext ,
+                "sLast" : I18n.dataTable_sLast
+            },
+            "oAria" : {
+                "sSortAscending" : I18n.dataTable_sSortAscending ,
+                "sSortDescending" : I18n.dataTable_sSortDescending
+            }
+        }
+	});
+    logTable.on('xhr.dt',function(e, settings, json, xhr) {
+        if (json.code && json.code != 200) {
+            layer.msg( json.msg || I18n.system_api_error );
+        }
+    });
+	
+	// logTips alert
+	$('#joblog_list').on('click', '.logTips', function(){
+		var msg = $(this).find('span').html();
+		ComAlertTec.show(msg);
+	});
+	
+	// search Btn
+	$('#searchBtn').on('click', function(){
+		logTable.fnDraw();
+	});
+	
+	// logDetail look
+	$('#joblog_list').on('click', '.logDetail', function(){
+		var _id = $(this).attr('_id');
+		
+		window.open(base_url + '/joblog/logDetailPage?id=' + _id);
+		return;
+	});
+
+	/**
+	 * log Kill
+	 */
+	$('#joblog_list').on('click', '.logKill', function(){
+		var _id = $(this).attr('_id');
+
+        layer.confirm( (I18n.system_ok + I18n.joblog_kill_log + '?'), {
+        	icon: 3,
+			title: I18n.system_tips ,
+            btn: [ I18n.system_ok, I18n.system_cancel ]
+		}, function(index){
+            layer.close(index);
+
+            $.ajax({
+                type : 'POST',
+                url : base_url + '/joblog/logKill',
+                data : {"id":_id},
+                dataType : "json",
+                success : function(data){
+                    if (data.code == 200) {
+                        layer.open({
+                            title: I18n.system_tips,
+                            btn: [ I18n.system_ok ],
+                            content: I18n.system_opt_suc ,
+                            icon: '1',
+                            end: function(layero, index){
+                                logTable.fnDraw();
+                            }
+                        });
+                    } else {
+                        layer.open({
+                            title: I18n.system_tips,
+                            btn: [ I18n.system_ok ],
+                            content: (data.msg || I18n.system_opt_fail ),
+                            icon: '2'
+                        });
+                    }
+                },
+            });
+        });
+
+	});
+
+	/**
+	 * clear Log
+	 */
+	$('#clearLog').on('click', function(){
+
+		var jobGroup = $('#jobGroup').val();
+		var jobId = $('#jobId').val();
+
+		var jobGroupText = $("#jobGroup").find("option:selected").text();
+		var jobIdText = $("#jobId").find("option:selected").text();
+
+		$('#clearLogModal input[name=jobGroup]').val(jobGroup);
+		$('#clearLogModal input[name=jobId]').val(jobId);
+
+		$('#clearLogModal .jobGroupText').val(jobGroupText);
+		$('#clearLogModal .jobIdText').val(jobIdText);
+
+		$('#clearLogModal').modal('show');
+
+	});
+	$("#clearLogModal .ok").on('click', function(){
+		$.post(base_url + "/joblog/clearLog",  $("#clearLogModal .form").serialize(), function(data, status) {
+			if (data.code == "200") {
+				$('#clearLogModal').modal('hide');
+				layer.open({
+					title: I18n.system_tips ,
+                    btn: [ I18n.system_ok ],
+					content: (I18n.joblog_clean_log + I18n.system_success) ,
+					icon: '1',
+					end: function(layero, index){
+						logTable.fnDraw();
+					}
+				});
+			} else {
+				layer.open({
+					title: I18n.system_tips ,
+                    btn: [ I18n.system_ok ],
+					content: (data.msg || (I18n.joblog_clean_log + I18n.system_fail) ),
+					icon: '2'
+				});
+			}
+		});
+	});
+	$("#clearLogModal").on('hide.bs.modal', function () {
+		$("#clearLogModal .form")[0].reset();
+	});
+
+});
+
+
+// Com Alert by Tec theme
+var ComAlertTec = {
+	html:function(){
+		var html =
+			'<div class="modal fade" id="ComAlertTec" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">' +
+			'	<div class="modal-dialog modal-lg-">' +
+			'		<div class="modal-content-tec">' +
+			'			<div class="modal-body">' +
+			'				<div class="alert" style="color:#fff;word-wrap: break-word;">' +
+			'				</div>' +
+			'			</div>' +
+			'				<div class="modal-footer">' +
+			'				<div class="text-center" >' +
+			'					<button type="button" class="btn btn-info ok" data-dismiss="modal" >'+ I18n.system_ok +'</button>' +
+			'				</div>' +
+			'			</div>' +
+			'		</div>' +
+			'	</div>' +
+			'</div>';
+		return html;
+	},
+	show:function(msg, callback){
+		// dom init
+		if ($('#ComAlertTec').length == 0){
+			$('body').append(ComAlertTec.html());
+		}
+
+		// init com alert
+		$('#ComAlertTec .alert').html(msg);
+		$('#ComAlertTec').modal('show');
+
+		$('#ComAlertTec .ok').click(function(){
+			$('#ComAlertTec').modal('hide');
+			if(typeof callback == 'function') {
+				callback();
+			}
+		});
+	}
+};
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/login.1.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/login.1.js
new file mode 100644
index 0000000..37eba6b
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/login.1.js
@@ -0,0 +1,66 @@
+$(function(){
+
+	// input iCheck
+    $('input').iCheck({
+      checkboxClass: 'icheckbox_square-blue',
+      radioClass: 'iradio_square-blue',
+      increaseArea: '20%' // optional
+    });
+    
+	// login Form Valid
+	var loginFormValid = $("#loginForm").validate({
+		errorElement : 'span',  
+        errorClass : 'help-block',
+        focusInvalid : true,  
+        rules : {  
+        	userName : {  
+        		required : true ,
+                minlength: 4,
+                maxlength: 18
+            },  
+            password : {  
+            	required : true ,
+                minlength: 4,
+                maxlength: 18
+            } 
+        }, 
+        messages : {  
+        	userName : {  
+                required  : I18n.login_username_empty,
+                minlength : I18n.login_username_lt_4
+            },
+            password : {
+            	required  : I18n.login_password_empty  ,
+                minlength : I18n.login_password_lt_4
+                /*,maxlength:"登录密码不应超过18位"*/
+            }
+        }, 
+		highlight : function(element) {  
+            $(element).closest('.form-group').addClass('has-error');  
+        },
+        success : function(label) {  
+            label.closest('.form-group').removeClass('has-error');  
+            label.remove();  
+        },
+        errorPlacement : function(error, element) {  
+            element.parent('div').append(error);  
+        },
+        submitHandler : function(form) {
+			$.post(base_url + "/login", $("#loginForm").serialize(), function(data, status) {
+				if (data.code == "200") {
+                    layer.msg( I18n.login_success );
+                    setTimeout(function(){
+                        window.location.href = base_url;
+                    }, 500);
+				} else {
+                    layer.open({
+                        title: I18n.system_tips,
+                        btn: [ I18n.system_ok ],
+                        content: (data.msg || I18n.login_fail ),
+                        icon: '2'
+                    });
+				}
+			});
+		}
+	});
+});
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/user.index.1.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/user.index.1.js
new file mode 100644
index 0000000..804640e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/js/user.index.1.js
@@ -0,0 +1,328 @@
+$(function() {
+
+	// init date tables
+	var userListTable = $("#user_list").dataTable({
+		"deferRender": true,
+		"processing" : true, 
+	    "serverSide": true,
+		"ajax": {
+			url: base_url + "/user/pageList",
+			type:"post",
+	        data : function ( d ) {
+	        	var obj = {};
+                obj.username = $('#username').val();
+                obj.role = $('#role').val();
+	        	obj.start = d.start;
+	        	obj.length = d.length;
+                return obj;
+            }
+	    },
+	    "searching": false,
+	    "ordering": false,
+	    //"scrollX": true,	// scroll x,close self-adaption
+	    "columns": [
+	                {
+	                	"data": 'id',
+						"visible" : false,
+						"width":'10%'
+					},
+	                {
+	                	"data": 'username',
+						"visible" : true,
+						"width":'20%'
+					},
+	                {
+	                	"data": 'password',
+						"visible" : true,
+                        "width":'20%',
+                        "render": function ( data, type, row ) {
+                            return '*********';
+                        }
+					},
+					{
+						"data": 'role',
+						"visible" : true,
+						"width":'10%',
+                        "render": function ( data, type, row ) {
+                            if (data == 1) {
+                                return I18n.user_role_admin
+                            } else {
+                                return I18n.user_role_normal
+                            }
+                        }
+					},
+	                {
+	                	"data": 'permission',
+						"width":'10%',
+	                	"visible" : false
+	                },
+	                {
+						"data": I18n.system_opt ,
+						"width":'15%',
+	                	"render": function ( data, type, row ) {
+	                		return function(){
+								// html
+                                tableData['key'+row.id] = row;
+								var html = '<p id="'+ row.id +'" >'+
+									'<button class="btn btn-warning btn-xs update" type="button">'+ I18n.system_opt_edit +'</button>  '+
+									'<button class="btn btn-danger btn-xs delete" type="button">'+ I18n.system_opt_del +'</button>  '+
+									'</p>';
+
+	                			return html;
+							};
+	                	}
+	                }
+	            ],
+		"language" : {
+			"sProcessing" : I18n.dataTable_sProcessing ,
+			"sLengthMenu" : I18n.dataTable_sLengthMenu ,
+			"sZeroRecords" : I18n.dataTable_sZeroRecords ,
+			"sInfo" : I18n.dataTable_sInfo ,
+			"sInfoEmpty" : I18n.dataTable_sInfoEmpty ,
+			"sInfoFiltered" : I18n.dataTable_sInfoFiltered ,
+			"sInfoPostFix" : "",
+			"sSearch" : I18n.dataTable_sSearch ,
+			"sUrl" : "",
+			"sEmptyTable" : I18n.dataTable_sEmptyTable ,
+			"sLoadingRecords" : I18n.dataTable_sLoadingRecords ,
+			"sInfoThousands" : ",",
+			"oPaginate" : {
+				"sFirst" : I18n.dataTable_sFirst ,
+				"sPrevious" : I18n.dataTable_sPrevious ,
+				"sNext" : I18n.dataTable_sNext ,
+				"sLast" : I18n.dataTable_sLast
+			},
+			"oAria" : {
+				"sSortAscending" : I18n.dataTable_sSortAscending ,
+				"sSortDescending" : I18n.dataTable_sSortDescending
+			}
+		}
+	});
+
+    // table data
+    var tableData = {};
+
+	// search btn
+	$('#searchBtn').on('click', function(){
+        userListTable.fnDraw();
+	});
+	
+	// job operate
+	$("#user_list").on('click', '.delete',function() {
+		var id = $(this).parent('p').attr("id");
+
+		layer.confirm( I18n.system_ok + I18n.system_opt_del + '?', {
+			icon: 3,
+			title: I18n.system_tips ,
+            btn: [ I18n.system_ok, I18n.system_cancel ]
+		}, function(index){
+			layer.close(index);
+
+			$.ajax({
+				type : 'POST',
+				url : base_url + "/user/remove",
+				data : {
+					"id" : id
+				},
+				dataType : "json",
+				success : function(data){
+					if (data.code == 200) {
+                        layer.msg( I18n.system_success );
+						userListTable.fnDraw(false);
+					} else {
+                        layer.msg( data.msg || I18n.system_opt_del + I18n.system_fail );
+					}
+				}
+			});
+		});
+	});
+
+	// add role
+    $("#addModal .form input[name=role]").change(function () {
+		var role = $(this).val();
+		if (role == 1) {
+            $("#addModal .form input[name=permission]").parents('.form-group').hide();
+		} else {
+            $("#addModal .form input[name=permission]").parents('.form-group').show();
+		}
+        $("#addModal .form input[name='permission']").prop("checked",false);
+    });
+
+    jQuery.validator.addMethod("myValid01", function(value, element) {
+        var length = value.length;
+        var valid = /^[a-z][a-z0-9]*$/;
+        return this.optional(element) || valid.test(value);
+    }, I18n.user_username_valid );
+
+	// add
+	$(".add").click(function(){
+		$('#addModal').modal({backdrop: false, keyboard: false}).modal('show');
+	});
+	var addModalValidate = $("#addModal .form").validate({
+		errorElement : 'span',  
+        errorClass : 'help-block',
+        focusInvalid : true,  
+        rules : {
+            username : {
+				required : true,
+                rangelength:[4, 20],
+                myValid01: true
+			},
+            password : {
+                required : true,
+                rangelength:[4, 20]
+            }
+        }, 
+        messages : {
+            username : {
+            	required : I18n.system_please_input + I18n.user_username,
+                rangelength: I18n.system_lengh_limit + "[4-20]"
+            },
+            password : {
+                required : I18n.system_please_input + I18n.user_password,
+                rangelength: I18n.system_lengh_limit + "[4-20]"
+            }
+        },
+		highlight : function(element) {  
+            $(element).closest('.form-group').addClass('has-error');  
+        },
+        success : function(label) {  
+            label.closest('.form-group').removeClass('has-error');  
+            label.remove();  
+        },
+        errorPlacement : function(error, element) {  
+            element.parent('div').append(error);  
+        },
+        submitHandler : function(form) {
+
+            var permissionArr = [];
+            $("#addModal .form input[name=permission]:checked").each(function(){
+                permissionArr.push($(this).val());
+            });
+
+			var paramData = {
+				"username": $("#addModal .form input[name=username]").val(),
+                "password": $("#addModal .form input[name=password]").val(),
+                "role": $("#addModal .form input[name=role]:checked").val(),
+                "permission": permissionArr.join(',')
+			};
+
+        	$.post(base_url + "/user/add", paramData, function(data, status) {
+    			if (data.code == "200") {
+					$('#addModal').modal('hide');
+
+                    layer.msg( I18n.system_add_suc );
+                    userListTable.fnDraw();
+    			} else {
+					layer.open({
+						title: I18n.system_tips ,
+                        btn: [ I18n.system_ok ],
+						content: (data.msg || I18n.system_add_fail),
+						icon: '2'
+					});
+    			}
+    		});
+		}
+	});
+	$("#addModal").on('hide.bs.modal', function () {
+		$("#addModal .form")[0].reset();
+		addModalValidate.resetForm();
+		$("#addModal .form .form-group").removeClass("has-error");
+		$(".remote_panel").show();	// remote
+
+        $("#addModal .form input[name=permission]").parents('.form-group').show();
+	});
+
+    // update role
+    $("#updateModal .form input[name=role]").change(function () {
+        var role = $(this).val();
+        if (role == 1) {
+            $("#updateModal .form input[name=permission]").parents('.form-group').hide();
+        } else {
+            $("#updateModal .form input[name=permission]").parents('.form-group').show();
+        }
+        $("#updateModal .form input[name='permission']").prop("checked",false);
+    });
+
+	// update
+	$("#user_list").on('click', '.update',function() {
+
+        var id = $(this).parent('p').attr("id");
+        var row = tableData['key'+id];
+
+		// base data
+		$("#updateModal .form input[name='id']").val( row.id );
+		$("#updateModal .form input[name='username']").val( row.username );
+		$("#updateModal .form input[name='password']").val( '' );
+		$("#updateModal .form input[name='role'][value='"+ row.role +"']").click();
+        var permissionArr = [];
+        if (row.permission) {
+            permissionArr = row.permission.split(",");
+		}
+        $("#updateModal .form input[name='permission']").each(function () {
+            if($.inArray($(this).val(), permissionArr) > -1) {
+                $(this).prop("checked",true);
+            } else {
+                $(this).prop("checked",false);
+            }
+        });
+
+		// show
+		$('#updateModal').modal({backdrop: false, keyboard: false}).modal('show');
+	});
+	var updateModalValidate = $("#updateModal .form").validate({
+		errorElement : 'span',  
+        errorClass : 'help-block',
+        focusInvalid : true,
+		highlight : function(element) {
+            $(element).closest('.form-group').addClass('has-error');  
+        },
+        success : function(label) {  
+            label.closest('.form-group').removeClass('has-error');  
+            label.remove();  
+        },
+        errorPlacement : function(error, element) {  
+            element.parent('div').append(error);  
+        },
+        submitHandler : function(form) {
+
+            var permissionArr =[];
+            $("#updateModal .form input[name=permission]:checked").each(function(){
+                permissionArr.push($(this).val());
+            });
+
+            var paramData = {
+                "id": $("#updateModal .form input[name=id]").val(),
+                "username": $("#updateModal .form input[name=username]").val(),
+                "password": $("#updateModal .form input[name=password]").val(),
+                "role": $("#updateModal .form input[name=role]:checked").val(),
+                "permission": permissionArr.join(',')
+            };
+
+            $.post(base_url + "/user/update", paramData, function(data, status) {
+                if (data.code == "200") {
+                    $('#updateModal').modal('hide');
+
+                    layer.msg( I18n.system_update_suc );
+                    userListTable.fnDraw();
+                } else {
+                    layer.open({
+                        title: I18n.system_tips ,
+                        btn: [ I18n.system_ok ],
+                        content: (data.msg || I18n.system_update_fail),
+                        icon: '2'
+                    });
+                }
+            });
+		}
+	});
+	$("#updateModal").on('hide.bs.modal', function () {
+        $("#updateModal .form")[0].reset();
+        updateModalValidate.resetForm();
+        $("#updateModal .form .form-group").removeClass("has-error");
+        $(".remote_panel").show();	// remote
+
+        $("#updateModal .form input[name=permission]").parents('.form-group').show();
+	});
+
+});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/addon/hint/anyword-hint.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/addon/hint/anyword-hint.js
new file mode 100644
index 0000000..d27a9ec
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/addon/hint/anyword-hint.js
@@ -0,0 +1,41 @@
+// CodeMirror, copyright (c) by Marijn Haverbeke and others
+// Distributed under an MIT license: https://codemirror.net/LICENSE
+
+(function(mod) {
+  if (typeof exports == "object" && typeof module == "object") // CommonJS
+    mod(require("../../lib/codemirror"));
+  else if (typeof define == "function" && define.amd) // AMD
+    define(["../../lib/codemirror"], mod);
+  else // Plain browser env
+    mod(CodeMirror);
+})(function(CodeMirror) {
+  "use strict";
+
+  var WORD = /[\w$]+/, RANGE = 500;
+
+  CodeMirror.registerHelper("hint", "anyword", function(editor, options) {
+    var word = options && options.word || WORD;
+    var range = options && options.range || RANGE;
+    var cur = editor.getCursor(), curLine = editor.getLine(cur.line);
+    var end = cur.ch, start = end;
+    while (start && word.test(curLine.charAt(start - 1))) --start;
+    var curWord = start != end && curLine.slice(start, end);
+
+    var list = options && options.list || [], seen = {};
+    var re = new RegExp(word.source, "g");
+    for (var dir = -1; dir <= 1; dir += 2) {
+      var line = cur.line, endLine = Math.min(Math.max(line + dir * range, editor.firstLine()), editor.lastLine()) + dir;
+      for (; line != endLine; line += dir) {
+        var text = editor.getLine(line), m;
+        while (m = re.exec(text)) {
+          if (line == cur.line && m[0] === curWord) continue;
+          if ((!curWord || m[0].lastIndexOf(curWord, 0) == 0) && !Object.prototype.hasOwnProperty.call(seen, m[0])) {
+            seen[m[0]] = true;
+            list.push(m[0]);
+          }
+        }
+      }
+    }
+    return {list: list, from: CodeMirror.Pos(cur.line, start), to: CodeMirror.Pos(cur.line, end)};
+  });
+});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.css b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.css
new file mode 100644
index 0000000..5617ccc
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.css
@@ -0,0 +1,36 @@
+.CodeMirror-hints {
+  position: absolute;
+  z-index: 10;
+  overflow: hidden;
+  list-style: none;
+
+  margin: 0;
+  padding: 2px;
+
+  -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
+  -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
+  box-shadow: 2px 3px 5px rgba(0,0,0,.2);
+  border-radius: 3px;
+  border: 1px solid silver;
+
+  background: white;
+  font-size: 90%;
+  font-family: monospace;
+
+  max-height: 20em;
+  overflow-y: auto;
+}
+
+.CodeMirror-hint {
+  margin: 0;
+  padding: 0 4px;
+  border-radius: 2px;
+  white-space: pre;
+  color: black;
+  cursor: pointer;
+}
+
+li.CodeMirror-hint-active {
+  background: #08f;
+  color: white;
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.js
new file mode 100644
index 0000000..5f6664b
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.js
@@ -0,0 +1,434 @@
+// CodeMirror, copyright (c) by Marijn Haverbeke and others
+// Distributed under an MIT license: https://codemirror.net/LICENSE
+
+(function(mod) {
+  if (typeof exports == "object" && typeof module == "object") // CommonJS
+    mod(require("../../lib/codemirror"));
+  else if (typeof define == "function" && define.amd) // AMD
+    define(["../../lib/codemirror"], mod);
+  else // Plain browser env
+    mod(CodeMirror);
+})(function(CodeMirror) {
+  "use strict";
+
+  var HINT_ELEMENT_CLASS        = "CodeMirror-hint";
+  var ACTIVE_HINT_ELEMENT_CLASS = "CodeMirror-hint-active";
+
+  // This is the old interface, kept around for now to stay
+  // backwards-compatible.
+  CodeMirror.showHint = function(cm, getHints, options) {
+    if (!getHints) return cm.showHint(options);
+    if (options && options.async) getHints.async = true;
+    var newOpts = {hint: getHints};
+    if (options) for (var prop in options) newOpts[prop] = options[prop];
+    return cm.showHint(newOpts);
+  };
+
+  CodeMirror.defineExtension("showHint", function(options) {
+    options = parseOptions(this, this.getCursor("start"), options);
+    var selections = this.listSelections()
+    if (selections.length > 1) return;
+    // By default, don't allow completion when something is selected.
+    // A hint function can have a `supportsSelection` property to
+    // indicate that it can handle selections.
+    if (this.somethingSelected()) {
+      if (!options.hint.supportsSelection) return;
+      // Don't try with cross-line selections
+      for (var i = 0; i < selections.length; i++)
+        if (selections[i].head.line != selections[i].anchor.line) return;
+    }
+
+    if (this.state.completionActive) this.state.completionActive.close();
+    var completion = this.state.completionActive = new Completion(this, options);
+    if (!completion.options.hint) return;
+
+    CodeMirror.signal(this, "startCompletion", this);
+    completion.update(true);
+  });
+
+  function Completion(cm, options) {
+    this.cm = cm;
+    this.options = options;
+    this.widget = null;
+    this.debounce = 0;
+    this.tick = 0;
+    this.startPos = this.cm.getCursor("start");
+    this.startLen = this.cm.getLine(this.startPos.line).length - this.cm.getSelection().length;
+
+    var self = this;
+    cm.on("cursorActivity", this.activityFunc = function() { self.cursorActivity(); });
+  }
+
+  var requestAnimationFrame = window.requestAnimationFrame || function(fn) {
+    return setTimeout(fn, 1000/60);
+  };
+  var cancelAnimationFrame = window.cancelAnimationFrame || clearTimeout;
+
+  Completion.prototype = {
+    close: function() {
+      if (!this.active()) return;
+      this.cm.state.completionActive = null;
+      this.tick = null;
+      this.cm.off("cursorActivity", this.activityFunc);
+
+      if (this.widget && this.data) CodeMirror.signal(this.data, "close");
+      if (this.widget) this.widget.close();
+      CodeMirror.signal(this.cm, "endCompletion", this.cm);
+    },
+
+    active: function() {
+      return this.cm.state.completionActive == this;
+    },
+
+    pick: function(data, i) {
+      var completion = data.list[i];
+      if (completion.hint) completion.hint(this.cm, data, completion);
+      else this.cm.replaceRange(getText(completion), completion.from || data.from,
+                                completion.to || data.to, "complete");
+      CodeMirror.signal(data, "pick", completion);
+      this.close();
+    },
+
+    cursorActivity: function() {
+      if (this.debounce) {
+        cancelAnimationFrame(this.debounce);
+        this.debounce = 0;
+      }
+
+      var pos = this.cm.getCursor(), line = this.cm.getLine(pos.line);
+      if (pos.line != this.startPos.line || line.length - pos.ch != this.startLen - this.startPos.ch ||
+          pos.ch < this.startPos.ch || this.cm.somethingSelected() ||
+          (!pos.ch || this.options.closeCharacters.test(line.charAt(pos.ch - 1)))) {
+        this.close();
+      } else {
+        var self = this;
+        this.debounce = requestAnimationFrame(function() {self.update();});
+        if (this.widget) this.widget.disable();
+      }
+    },
+
+    update: function(first) {
+      if (this.tick == null) return
+      var self = this, myTick = ++this.tick
+      fetchHints(this.options.hint, this.cm, this.options, function(data) {
+        if (self.tick == myTick) self.finishUpdate(data, first)
+      })
+    },
+
+    finishUpdate: function(data, first) {
+      if (this.data) CodeMirror.signal(this.data, "update");
+
+      var picked = (this.widget && this.widget.picked) || (first && this.options.completeSingle);
+      if (this.widget) this.widget.close();
+
+      this.data = data;
+
+      if (data && data.list.length) {
+        if (picked && data.list.length == 1) {
+          this.pick(data, 0);
+        } else {
+          this.widget = new Widget(this, data);
+          CodeMirror.signal(data, "shown");
+        }
+      }
+    }
+  };
+
+  function parseOptions(cm, pos, options) {
+    var editor = cm.options.hintOptions;
+    var out = {};
+    for (var prop in defaultOptions) out[prop] = defaultOptions[prop];
+    if (editor) for (var prop in editor)
+      if (editor[prop] !== undefined) out[prop] = editor[prop];
+    if (options) for (var prop in options)
+      if (options[prop] !== undefined) out[prop] = options[prop];
+    if (out.hint.resolve) out.hint = out.hint.resolve(cm, pos)
+    return out;
+  }
+
+  function getText(completion) {
+    if (typeof completion == "string") return completion;
+    else return completion.text;
+  }
+
+  function buildKeyMap(completion, handle) {
+    var baseMap = {
+      Up: function() {handle.moveFocus(-1);},
+      Down: function() {handle.moveFocus(1);},
+      PageUp: function() {handle.moveFocus(-handle.menuSize() + 1, true);},
+      PageDown: function() {handle.moveFocus(handle.menuSize() - 1, true);},
+      Home: function() {handle.setFocus(0);},
+      End: function() {handle.setFocus(handle.length - 1);},
+      Enter: handle.pick,
+      Tab: handle.pick,
+      Esc: handle.close
+    };
+    var custom = completion.options.customKeys;
+    var ourMap = custom ? {} : baseMap;
+    function addBinding(key, val) {
+      var bound;
+      if (typeof val != "string")
+        bound = function(cm) { return val(cm, handle); };
+      // This mechanism is deprecated
+      else if (baseMap.hasOwnProperty(val))
+        bound = baseMap[val];
+      else
+        bound = val;
+      ourMap[key] = bound;
+    }
+    if (custom)
+      for (var key in custom) if (custom.hasOwnProperty(key))
+        addBinding(key, custom[key]);
+    var extra = completion.options.extraKeys;
+    if (extra)
+      for (var key in extra) if (extra.hasOwnProperty(key))
+        addBinding(key, extra[key]);
+    return ourMap;
+  }
+
+  function getHintElement(hintsElement, el) {
+    while (el && el != hintsElement) {
+      if (el.nodeName.toUpperCase() === "LI" && el.parentNode == hintsElement) return el;
+      el = el.parentNode;
+    }
+  }
+
+  function Widget(completion, data) {
+    this.completion = completion;
+    this.data = data;
+    this.picked = false;
+    var widget = this, cm = completion.cm;
+
+    var hints = this.hints = document.createElement("ul");
+    var theme = completion.cm.options.theme;
+    hints.className = "CodeMirror-hints " + theme;
+    this.selectedHint = data.selectedHint || 0;
+
+    var completions = data.list;
+    for (var i = 0; i < completions.length; ++i) {
+      var elt = hints.appendChild(document.createElement("li")), cur = completions[i];
+      var className = HINT_ELEMENT_CLASS + (i != this.selectedHint ? "" : " " + ACTIVE_HINT_ELEMENT_CLASS);
+      if (cur.className != null) className = cur.className + " " + className;
+      elt.className = className;
+      if (cur.render) cur.render(elt, data, cur);
+      else elt.appendChild(document.createTextNode(cur.displayText || getText(cur)));
+      elt.hintId = i;
+    }
+
+    var pos = cm.cursorCoords(completion.options.alignWithWord ? data.from : null);
+    var left = pos.left, top = pos.bottom, below = true;
+    hints.style.left = left + "px";
+    hints.style.top = top + "px";
+    // If we're at the edge of the screen, then we want the menu to appear on the left of the cursor.
+    var winW = window.innerWidth || Math.max(document.body.offsetWidth, document.documentElement.offsetWidth);
+    var winH = window.innerHeight || Math.max(document.body.offsetHeight, document.documentElement.offsetHeight);
+    (completion.options.container || document.body).appendChild(hints);
+    var box = hints.getBoundingClientRect(), overlapY = box.bottom - winH;
+    var scrolls = hints.scrollHeight > hints.clientHeight + 1
+    var startScroll = cm.getScrollInfo();
+
+    if (overlapY > 0) {
+      var height = box.bottom - box.top, curTop = pos.top - (pos.bottom - box.top);
+      if (curTop - height > 0) { // Fits above cursor
+        hints.style.top = (top = pos.top - height) + "px";
+        below = false;
+      } else if (height > winH) {
+        hints.style.height = (winH - 5) + "px";
+        hints.style.top = (top = pos.bottom - box.top) + "px";
+        var cursor = cm.getCursor();
+        if (data.from.ch != cursor.ch) {
+          pos = cm.cursorCoords(cursor);
+          hints.style.left = (left = pos.left) + "px";
+          box = hints.getBoundingClientRect();
+        }
+      }
+    }
+    var overlapX = box.right - winW;
+    if (overlapX > 0) {
+      if (box.right - box.left > winW) {
+        hints.style.width = (winW - 5) + "px";
+        overlapX -= (box.right - box.left) - winW;
+      }
+      hints.style.left = (left = pos.left - overlapX) + "px";
+    }
+    if (scrolls) for (var node = hints.firstChild; node; node = node.nextSibling)
+      node.style.paddingRight = cm.display.nativeBarWidth + "px"
+
+    cm.addKeyMap(this.keyMap = buildKeyMap(completion, {
+      moveFocus: function(n, avoidWrap) { widget.changeActive(widget.selectedHint + n, avoidWrap); },
+      setFocus: function(n) { widget.changeActive(n); },
+      menuSize: function() { return widget.screenAmount(); },
+      length: completions.length,
+      close: function() { completion.close(); },
+      pick: function() { widget.pick(); },
+      data: data
+    }));
+
+    if (completion.options.closeOnUnfocus) {
+      var closingOnBlur;
+      cm.on("blur", this.onBlur = function() { closingOnBlur = setTimeout(function() { completion.close(); }, 100); });
+      cm.on("focus", this.onFocus = function() { clearTimeout(closingOnBlur); });
+    }
+
+    cm.on("scroll", this.onScroll = function() {
+      var curScroll = cm.getScrollInfo(), editor = cm.getWrapperElement().getBoundingClientRect();
+      var newTop = top + startScroll.top - curScroll.top;
+      var point = newTop - (window.pageYOffset || (document.documentElement || document.body).scrollTop);
+      if (!below) point += hints.offsetHeight;
+      if (point <= editor.top || point >= editor.bottom) return completion.close();
+      hints.style.top = newTop + "px";
+      hints.style.left = (left + startScroll.left - curScroll.left) + "px";
+    });
+
+    CodeMirror.on(hints, "dblclick", function(e) {
+      var t = getHintElement(hints, e.target || e.srcElement);
+      if (t && t.hintId != null) {widget.changeActive(t.hintId); widget.pick();}
+    });
+
+    CodeMirror.on(hints, "click", function(e) {
+      var t = getHintElement(hints, e.target || e.srcElement);
+      if (t && t.hintId != null) {
+        widget.changeActive(t.hintId);
+        if (completion.options.completeOnSingleClick) widget.pick();
+      }
+    });
+
+    CodeMirror.on(hints, "mousedown", function() {
+      setTimeout(function(){cm.focus();}, 20);
+    });
+
+    CodeMirror.signal(data, "select", completions[this.selectedHint], hints.childNodes[this.selectedHint]);
+    return true;
+  }
+
+  Widget.prototype = {
+    close: function() {
+      if (this.completion.widget != this) return;
+      this.completion.widget = null;
+      this.hints.parentNode.removeChild(this.hints);
+      this.completion.cm.removeKeyMap(this.keyMap);
+
+      var cm = this.completion.cm;
+      if (this.completion.options.closeOnUnfocus) {
+        cm.off("blur", this.onBlur);
+        cm.off("focus", this.onFocus);
+      }
+      cm.off("scroll", this.onScroll);
+    },
+
+    disable: function() {
+      this.completion.cm.removeKeyMap(this.keyMap);
+      var widget = this;
+      this.keyMap = {Enter: function() { widget.picked = true; }};
+      this.completion.cm.addKeyMap(this.keyMap);
+    },
+
+    pick: function() {
+      this.completion.pick(this.data, this.selectedHint);
+    },
+
+    changeActive: function(i, avoidWrap) {
+      if (i >= this.data.list.length)
+        i = avoidWrap ? this.data.list.length - 1 : 0;
+      else if (i < 0)
+        i = avoidWrap ? 0  : this.data.list.length - 1;
+      if (this.selectedHint == i) return;
+      var node = this.hints.childNodes[this.selectedHint];
+      if (node) node.className = node.className.replace(" " + ACTIVE_HINT_ELEMENT_CLASS, "");
+      node = this.hints.childNodes[this.selectedHint = i];
+      node.className += " " + ACTIVE_HINT_ELEMENT_CLASS;
+      if (node.offsetTop < this.hints.scrollTop)
+        this.hints.scrollTop = node.offsetTop - 3;
+      else if (node.offsetTop + node.offsetHeight > this.hints.scrollTop + this.hints.clientHeight)
+        this.hints.scrollTop = node.offsetTop + node.offsetHeight - this.hints.clientHeight + 3;
+      CodeMirror.signal(this.data, "select", this.data.list[this.selectedHint], node);
+    },
+
+    screenAmount: function() {
+      return Math.floor(this.hints.clientHeight / this.hints.firstChild.offsetHeight) || 1;
+    }
+  };
+
+  function applicableHelpers(cm, helpers) {
+    if (!cm.somethingSelected()) return helpers
+    var result = []
+    for (var i = 0; i < helpers.length; i++)
+      if (helpers[i].supportsSelection) result.push(helpers[i])
+    return result
+  }
+
+  function fetchHints(hint, cm, options, callback) {
+    if (hint.async) {
+      hint(cm, callback, options)
+    } else {
+      var result = hint(cm, options)
+      if (result && result.then) result.then(callback)
+      else callback(result)
+    }
+  }
+
+  function resolveAutoHints(cm, pos) {
+    var helpers = cm.getHelpers(pos, "hint"), words
+    if (helpers.length) {
+      var resolved = function(cm, callback, options) {
+        var app = applicableHelpers(cm, helpers);
+        function run(i) {
+          if (i == app.length) return callback(null)
+          fetchHints(app[i], cm, options, function(result) {
+            if (result && result.list.length > 0) callback(result)
+            else run(i + 1)
+          })
+        }
+        run(0)
+      }
+      resolved.async = true
+      resolved.supportsSelection = true
+      return resolved
+    } else if (words = cm.getHelper(cm.getCursor(), "hintWords")) {
+      return function(cm) { return CodeMirror.hint.fromList(cm, {words: words}) }
+    } else if (CodeMirror.hint.anyword) {
+      return function(cm, options) { return CodeMirror.hint.anyword(cm, options) }
+    } else {
+      return function() {}
+    }
+  }
+
+  CodeMirror.registerHelper("hint", "auto", {
+    resolve: resolveAutoHints
+  });
+
+  CodeMirror.registerHelper("hint", "fromList", function(cm, options) {
+    var cur = cm.getCursor(), token = cm.getTokenAt(cur)
+    var term, from = CodeMirror.Pos(cur.line, token.start), to = cur
+    if (token.start < cur.ch && /\w/.test(token.string.charAt(cur.ch - token.start - 1))) {
+      term = token.string.substr(0, cur.ch - token.start)
+    } else {
+      term = ""
+      from = cur
+    }
+    var found = [];
+    for (var i = 0; i < options.words.length; i++) {
+      var word = options.words[i];
+      if (word.slice(0, term.length) == term)
+        found.push(word);
+    }
+
+    if (found.length) return {list: found, from: from, to: to};
+  });
+
+  CodeMirror.commands.autocomplete = CodeMirror.showHint;
+
+  var defaultOptions = {
+    hint: CodeMirror.hint.auto,
+    completeSingle: true,
+    alignWithWord: true,
+    closeCharacters: /[\s()\[\]{};:>,]/,
+    closeOnUnfocus: true,
+    completeOnSingleClick: true,
+    container: null,
+    customKeys: null,
+    extraKeys: null
+  };
+
+  CodeMirror.defineOption("hintOptions", null);
+});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/lib/codemirror.css b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/lib/codemirror.css
new file mode 100644
index 0000000..c7a8ae7
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/lib/codemirror.css
@@ -0,0 +1,346 @@
+/* BASICS */
+
+.CodeMirror {
+  /* Set height, width, borders, and global font properties here */
+  font-family: monospace;
+  height: 300px;
+  color: black;
+  direction: ltr;
+}
+
+/* PADDING */
+
+.CodeMirror-lines {
+  padding: 4px 0; /* Vertical padding around content */
+}
+.CodeMirror pre {
+  padding: 0 4px; /* Horizontal padding of content */
+}
+
+.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
+  background-color: white; /* The little square between H and V scrollbars */
+}
+
+/* GUTTER */
+
+.CodeMirror-gutters {
+  border-right: 1px solid #ddd;
+  background-color: #f7f7f7;
+  white-space: nowrap;
+}
+.CodeMirror-linenumbers {}
+.CodeMirror-linenumber {
+  padding: 0 3px 0 5px;
+  min-width: 20px;
+  text-align: right;
+  color: #999;
+  white-space: nowrap;
+}
+
+.CodeMirror-guttermarker { color: black; }
+.CodeMirror-guttermarker-subtle { color: #999; }
+
+/* CURSOR */
+
+.CodeMirror-cursor {
+  border-left: 1px solid black;
+  border-right: none;
+  width: 0;
+}
+/* Shown when moving in bi-directional text */
+.CodeMirror div.CodeMirror-secondarycursor {
+  border-left: 1px solid silver;
+}
+.cm-fat-cursor .CodeMirror-cursor {
+  width: auto;
+  border: 0 !important;
+  background: #7e7;
+}
+.cm-fat-cursor div.CodeMirror-cursors {
+  z-index: 1;
+}
+.cm-fat-cursor-mark {
+  background-color: rgba(20, 255, 20, 0.5);
+  -webkit-animation: blink 1.06s steps(1) infinite;
+  -moz-animation: blink 1.06s steps(1) infinite;
+  animation: blink 1.06s steps(1) infinite;
+}
+.cm-animate-fat-cursor {
+  width: auto;
+  border: 0;
+  -webkit-animation: blink 1.06s steps(1) infinite;
+  -moz-animation: blink 1.06s steps(1) infinite;
+  animation: blink 1.06s steps(1) infinite;
+  background-color: #7e7;
+}
+@-moz-keyframes blink {
+  0% {}
+  50% { background-color: transparent; }
+  100% {}
+}
+@-webkit-keyframes blink {
+  0% {}
+  50% { background-color: transparent; }
+  100% {}
+}
+@keyframes blink {
+  0% {}
+  50% { background-color: transparent; }
+  100% {}
+}
+
+/* Can style cursor different in overwrite (non-insert) mode */
+.CodeMirror-overwrite .CodeMirror-cursor {}
+
+.cm-tab { display: inline-block; text-decoration: inherit; }
+
+.CodeMirror-rulers {
+  position: absolute;
+  left: 0; right: 0; top: -50px; bottom: -20px;
+  overflow: hidden;
+}
+.CodeMirror-ruler {
+  border-left: 1px solid #ccc;
+  top: 0; bottom: 0;
+  position: absolute;
+}
+
+/* DEFAULT THEME */
+
+.cm-s-default .cm-header {color: blue;}
+.cm-s-default .cm-quote {color: #090;}
+.cm-negative {color: #d44;}
+.cm-positive {color: #292;}
+.cm-header, .cm-strong {font-weight: bold;}
+.cm-em {font-style: italic;}
+.cm-link {text-decoration: underline;}
+.cm-strikethrough {text-decoration: line-through;}
+
+.cm-s-default .cm-keyword {color: #708;}
+.cm-s-default .cm-atom {color: #219;}
+.cm-s-default .cm-number {color: #164;}
+.cm-s-default .cm-def {color: #00f;}
+.cm-s-default .cm-variable,
+.cm-s-default .cm-punctuation,
+.cm-s-default .cm-property,
+.cm-s-default .cm-operator {}
+.cm-s-default .cm-variable-2 {color: #05a;}
+.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}
+.cm-s-default .cm-comment {color: #a50;}
+.cm-s-default .cm-string {color: #a11;}
+.cm-s-default .cm-string-2 {color: #f50;}
+.cm-s-default .cm-meta {color: #555;}
+.cm-s-default .cm-qualifier {color: #555;}
+.cm-s-default .cm-builtin {color: #30a;}
+.cm-s-default .cm-bracket {color: #997;}
+.cm-s-default .cm-tag {color: #170;}
+.cm-s-default .cm-attribute {color: #00c;}
+.cm-s-default .cm-hr {color: #999;}
+.cm-s-default .cm-link {color: #00c;}
+
+.cm-s-default .cm-error {color: #f00;}
+.cm-invalidchar {color: #f00;}
+
+.CodeMirror-composing { border-bottom: 2px solid; }
+
+/* Default styles for common addons */
+
+div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}
+div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}
+.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
+.CodeMirror-activeline-background {background: #e8f2ff;}
+
+/* STOP */
+
+/* The rest of this file contains styles related to the mechanics of
+   the editor. You probably shouldn't touch them. */
+
+.CodeMirror {
+  position: relative;
+  overflow: hidden;
+  background: white;
+}
+
+.CodeMirror-scroll {
+  overflow: scroll !important; /* Things will break if this is overridden */
+  /* 30px is the magic margin used to hide the element's real scrollbars */
+  /* See overflow: hidden in .CodeMirror */
+  margin-bottom: -30px; margin-right: -30px;
+  padding-bottom: 30px;
+  height: 100%;
+  outline: none; /* Prevent dragging from highlighting the element */
+  position: relative;
+}
+.CodeMirror-sizer {
+  position: relative;
+  border-right: 30px solid transparent;
+}
+
+/* The fake, visible scrollbars. Used to force redraw during scrolling
+   before actual scrolling happens, thus preventing shaking and
+   flickering artifacts. */
+.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
+  position: absolute;
+  z-index: 6;
+  display: none;
+}
+.CodeMirror-vscrollbar {
+  right: 0; top: 0;
+  overflow-x: hidden;
+  overflow-y: scroll;
+}
+.CodeMirror-hscrollbar {
+  bottom: 0; left: 0;
+  overflow-y: hidden;
+  overflow-x: scroll;
+}
+.CodeMirror-scrollbar-filler {
+  right: 0; bottom: 0;
+}
+.CodeMirror-gutter-filler {
+  left: 0; bottom: 0;
+}
+
+.CodeMirror-gutters {
+  position: absolute; left: 0; top: 0;
+  min-height: 100%;
+  z-index: 3;
+}
+.CodeMirror-gutter {
+  white-space: normal;
+  height: 100%;
+  display: inline-block;
+  vertical-align: top;
+  margin-bottom: -30px;
+}
+.CodeMirror-gutter-wrapper {
+  position: absolute;
+  z-index: 4;
+  background: none !important;
+  border: none !important;
+}
+.CodeMirror-gutter-background {
+  position: absolute;
+  top: 0; bottom: 0;
+  z-index: 4;
+}
+.CodeMirror-gutter-elt {
+  position: absolute;
+  cursor: default;
+  z-index: 4;
+}
+.CodeMirror-gutter-wrapper ::selection { background-color: transparent }
+.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }
+
+.CodeMirror-lines {
+  cursor: text;
+  min-height: 1px; /* prevents collapsing before first draw */
+}
+.CodeMirror pre {
+  /* Reset some styles that the rest of the page might have set */
+  -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
+  border-width: 0;
+  background: transparent;
+  font-family: inherit;
+  font-size: inherit;
+  margin: 0;
+  white-space: pre;
+  word-wrap: normal;
+  line-height: inherit;
+  color: inherit;
+  z-index: 2;
+  position: relative;
+  overflow: visible;
+  -webkit-tap-highlight-color: transparent;
+  -webkit-font-variant-ligatures: contextual;
+  font-variant-ligatures: contextual;
+}
+.CodeMirror-wrap pre {
+  word-wrap: break-word;
+  white-space: pre-wrap;
+  word-break: normal;
+}
+
+.CodeMirror-linebackground {
+  position: absolute;
+  left: 0; right: 0; top: 0; bottom: 0;
+  z-index: 0;
+}
+
+.CodeMirror-linewidget {
+  position: relative;
+  z-index: 2;
+  padding: 0.1px; /* Force widget margins to stay inside of the container */
+}
+
+.CodeMirror-widget {}
+
+.CodeMirror-rtl pre { direction: rtl; }
+
+.CodeMirror-code {
+  outline: none;
+}
+
+/* Force content-box sizing for the elements where we expect it */
+.CodeMirror-scroll,
+.CodeMirror-sizer,
+.CodeMirror-gutter,
+.CodeMirror-gutters,
+.CodeMirror-linenumber {
+  -moz-box-sizing: content-box;
+  box-sizing: content-box;
+}
+
+.CodeMirror-measure {
+  position: absolute;
+  width: 100%;
+  height: 0;
+  overflow: hidden;
+  visibility: hidden;
+}
+
+.CodeMirror-cursor {
+  position: absolute;
+  pointer-events: none;
+}
+.CodeMirror-measure pre { position: static; }
+
+div.CodeMirror-cursors {
+  visibility: hidden;
+  position: relative;
+  z-index: 3;
+}
+div.CodeMirror-dragcursors {
+  visibility: visible;
+}
+
+.CodeMirror-focused div.CodeMirror-cursors {
+  visibility: visible;
+}
+
+.CodeMirror-selected { background: #d9d9d9; }
+.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
+.CodeMirror-crosshair { cursor: crosshair; }
+.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
+.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
+
+.cm-searching {
+  background-color: #ffa;
+  background-color: rgba(255, 255, 0, .4);
+}
+
+/* Used to force a border model for a node */
+.cm-force-border { padding-right: .1px; }
+
+@media print {
+  /* Hide the cursor when printing */
+  .CodeMirror div.CodeMirror-cursors {
+    visibility: hidden;
+  }
+}
+
+/* See issue #2901 */
+.cm-tab-wrap-hack:after { content: ''; }
+
+/* Help users use markselection to safely style text background */
+span.CodeMirror-selectedtext { background: none; }
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/lib/codemirror.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/lib/codemirror.js
new file mode 100644
index 0000000..93c0ead
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/lib/codemirror.js
@@ -0,0 +1,9698 @@
+// CodeMirror, copyright (c) by Marijn Haverbeke and others
+// Distributed under an MIT license: https://codemirror.net/LICENSE
+
+// This is CodeMirror (https://codemirror.net), a code editor
+// implemented in JavaScript on top of the browser's DOM.
+//
+// You can find some technical background for some of the code below
+// at http://marijnhaverbeke.nl/blog/#cm-internals .
+
+(function (global, factory) {
+  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+  typeof define === 'function' && define.amd ? define(factory) :
+  (global.CodeMirror = factory());
+}(this, (function () { 'use strict';
+
+  // Kludges for bugs and behavior differences that can't be feature
+  // detected are enabled based on userAgent etc sniffing.
+  var userAgent = navigator.userAgent;
+  var platform = navigator.platform;
+
+  var gecko = /gecko\/\d/i.test(userAgent);
+  var ie_upto10 = /MSIE \d/.test(userAgent);
+  var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent);
+  var edge = /Edge\/(\d+)/.exec(userAgent);
+  var ie = ie_upto10 || ie_11up || edge;
+  var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]);
+  var webkit = !edge && /WebKit\//.test(userAgent);
+  var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent);
+  var chrome = !edge && /Chrome\//.test(userAgent);
+  var presto = /Opera\//.test(userAgent);
+  var safari = /Apple Computer/.test(navigator.vendor);
+  var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent);
+  var phantom = /PhantomJS/.test(userAgent);
+
+  var ios = !edge && /AppleWebKit/.test(userAgent) && /Mobile\/\w+/.test(userAgent);
+  var android = /Android/.test(userAgent);
+  // This is woefully incomplete. Suggestions for alternative methods welcome.
+  var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);
+  var mac = ios || /Mac/.test(platform);
+  var chromeOS = /\bCrOS\b/.test(userAgent);
+  var windows = /win/i.test(platform);
+
+  var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/);
+  if (presto_version) { presto_version = Number(presto_version[1]); }
+  if (presto_version && presto_version >= 15) { presto = false; webkit = true; }
+  // Some browsers use the wrong event properties to signal cmd/ctrl on OS X
+  var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11));
+  var captureRightClick = gecko || (ie && ie_version >= 9);
+
+  function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*") }
+
+  var rmClass = function(node, cls) {
+    var current = node.className;
+    var match = classTest(cls).exec(current);
+    if (match) {
+      var after = current.slice(match.index + match[0].length);
+      node.className = current.slice(0, match.index) + (after ? match[1] + after : "");
+    }
+  };
+
+  function removeChildren(e) {
+    for (var count = e.childNodes.length; count > 0; --count)
+      { e.removeChild(e.firstChild); }
+    return e
+  }
+
+  function removeChildrenAndAdd(parent, e) {
+    return removeChildren(parent).appendChild(e)
+  }
+
+  function elt(tag, content, className, style) {
+    var e = document.createElement(tag);
+    if (className) { e.className = className; }
+    if (style) { e.style.cssText = style; }
+    if (typeof content == "string") { e.appendChild(document.createTextNode(content)); }
+    else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } }
+    return e
+  }
+  // wrapper for elt, which removes the elt from the accessibility tree
+  function eltP(tag, content, className, style) {
+    var e = elt(tag, content, className, style);
+    e.setAttribute("role", "presentation");
+    return e
+  }
+
+  var range;
+  if (document.createRange) { range = function(node, start, end, endNode) {
+    var r = document.createRange();
+    r.setEnd(endNode || node, end);
+    r.setStart(node, start);
+    return r
+  }; }
+  else { range = function(node, start, end) {
+    var r = document.body.createTextRange();
+    try { r.moveToElementText(node.parentNode); }
+    catch(e) { return r }
+    r.collapse(true);
+    r.moveEnd("character", end);
+    r.moveStart("character", start);
+    return r
+  }; }
+
+  function contains(parent, child) {
+    if (child.nodeType == 3) // Android browser always returns false when child is a textnode
+      { child = child.parentNode; }
+    if (parent.contains)
+      { return parent.contains(child) }
+    do {
+      if (child.nodeType == 11) { child = child.host; }
+      if (child == parent) { return true }
+    } while (child = child.parentNode)
+  }
+
+  function activeElt() {
+    // IE and Edge may throw an "Unspecified Error" when accessing document.activeElement.
+    // IE < 10 will throw when accessed while the page is loading or in an iframe.
+    // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable.
+    var activeElement;
+    try {
+      activeElement = document.activeElement;
+    } catch(e) {
+      activeElement = document.body || null;
+    }
+    while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement)
+      { activeElement = activeElement.shadowRoot.activeElement; }
+    return activeElement
+  }
+
+  function addClass(node, cls) {
+    var current = node.className;
+    if (!classTest(cls).test(current)) { node.className += (current ? " " : "") + cls; }
+  }
+  function joinClasses(a, b) {
+    var as = a.split(" ");
+    for (var i = 0; i < as.length; i++)
+      { if (as[i] && !classTest(as[i]).test(b)) { b += " " + as[i]; } }
+    return b
+  }
+
+  var selectInput = function(node) { node.select(); };
+  if (ios) // Mobile Safari apparently has a bug where select() is broken.
+    { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; }
+  else if (ie) // Suppress mysterious IE10 errors
+    { selectInput = function(node) { try { node.select(); } catch(_e) {} }; }
+
+  function bind(f) {
+    var args = Array.prototype.slice.call(arguments, 1);
+    return function(){return f.apply(null, args)}
+  }
+
+  function copyObj(obj, target, overwrite) {
+    if (!target) { target = {}; }
+    for (var prop in obj)
+      { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop)))
+        { target[prop] = obj[prop]; } }
+    return target
+  }
+
+  // Counts the column offset in a string, taking tabs into account.
+  // Used mostly to find indentation.
+  function countColumn(string, end, tabSize, startIndex, startValue) {
+    if (end == null) {
+      end = string.search(/[^\s\u00a0]/);
+      if (end == -1) { end = string.length; }
+    }
+    for (var i = startIndex || 0, n = startValue || 0;;) {
+      var nextTab = string.indexOf("\t", i);
+      if (nextTab < 0 || nextTab >= end)
+        { return n + (end - i) }
+      n += nextTab - i;
+      n += tabSize - (n % tabSize);
+      i = nextTab + 1;
+    }
+  }
+
+  var Delayed = function() {this.id = null;};
+  Delayed.prototype.set = function (ms, f) {
+    clearTimeout(this.id);
+    this.id = setTimeout(f, ms);
+  };
+
+  function indexOf(array, elt) {
+    for (var i = 0; i < array.length; ++i)
+      { if (array[i] == elt) { return i } }
+    return -1
+  }
+
+  // Number of pixels added to scroller and sizer to hide scrollbar
+  var scrollerGap = 30;
+
+  // Returned or thrown by various protocols to signal 'I'm not
+  // handling this'.
+  var Pass = {toString: function(){return "CodeMirror.Pass"}};
+
+  // Reused option objects for setSelection & friends
+  var sel_dontScroll = {scroll: false}, sel_mouse = {origin: "*mouse"}, sel_move = {origin: "+move"};
+
+  // The inverse of countColumn -- find the offset that corresponds to
+  // a particular column.
+  function findColumn(string, goal, tabSize) {
+    for (var pos = 0, col = 0;;) {
+      var nextTab = string.indexOf("\t", pos);
+      if (nextTab == -1) { nextTab = string.length; }
+      var skipped = nextTab - pos;
+      if (nextTab == string.length || col + skipped >= goal)
+        { return pos + Math.min(skipped, goal - col) }
+      col += nextTab - pos;
+      col += tabSize - (col % tabSize);
+      pos = nextTab + 1;
+      if (col >= goal) { return pos }
+    }
+  }
+
+  var spaceStrs = [""];
+  function spaceStr(n) {
+    while (spaceStrs.length <= n)
+      { spaceStrs.push(lst(spaceStrs) + " "); }
+    return spaceStrs[n]
+  }
+
+  function lst(arr) { return arr[arr.length-1] }
+
+  function map(array, f) {
+    var out = [];
+    for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); }
+    return out
+  }
+
+  function insertSorted(array, value, score) {
+    var pos = 0, priority = score(value);
+    while (pos < array.length && score(array[pos]) <= priority) { pos++; }
+    array.splice(pos, 0, value);
+  }
+
+  function nothing() {}
+
+  function createObj(base, props) {
+    var inst;
+    if (Object.create) {
+      inst = Object.create(base);
+    } else {
+      nothing.prototype = base;
+      inst = new nothing();
+    }
+    if (props) { copyObj(props, inst); }
+    return inst
+  }
+
+  var nonASCIISingleCaseWordChar = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;
+  function isWordCharBasic(ch) {
+    return /\w/.test(ch) || ch > "\x80" &&
+      (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch))
+  }
+  function isWordChar(ch, helper) {
+    if (!helper) { return isWordCharBasic(ch) }
+    if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) { return true }
+    return helper.test(ch)
+  }
+
+  function isEmpty(obj) {
+    for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } }
+    return true
+  }
+
+  // Extending unicode characters. A series of a non-extending char +
+  // any number of extending chars is treated as a single unit as far
+  // as editing and measuring is concerned. This is not fully correct,
+  // since some scripts/fonts/browsers also treat other configurations
+  // of code points as a group.
+  var extendingChars = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;
+  function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) }
+
+  // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range.
+  function skipExtendingChars(str, pos, dir) {
+    while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; }
+    return pos
+  }
+
+  // Returns the value from the range [`from`; `to`] that satisfies
+  // `pred` and is closest to `from`. Assumes that at least `to`
+  // satisfies `pred`. Supports `from` being greater than `to`.
+  function findFirst(pred, from, to) {
+    // At any point we are certain `to` satisfies `pred`, don't know
+    // whether `from` does.
+    var dir = from > to ? -1 : 1;
+    for (;;) {
+      if (from == to) { return from }
+      var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF);
+      if (mid == from) { return pred(mid) ? from : to }
+      if (pred(mid)) { to = mid; }
+      else { from = mid + dir; }
+    }
+  }
+
+  // The display handles the DOM integration, both for input reading
+  // and content drawing. It holds references to DOM nodes and
+  // display-related state.
+
+  function Display(place, doc, input) {
+    var d = this;
+    this.input = input;
+
+    // Covers bottom-right square when both scrollbars are present.
+    d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler");
+    d.scrollbarFiller.setAttribute("cm-not-content", "true");
+    // Covers bottom of gutter when coverGutterNextToScrollbar is on
+    // and h scrollbar is present.
+    d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler");
+    d.gutterFiller.setAttribute("cm-not-content", "true");
+    // Will contain the actual code, positioned to cover the viewport.
+    d.lineDiv = eltP("div", null, "CodeMirror-code");
+    // Elements are added to these to represent selection and cursors.
+    d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1");
+    d.cursorDiv = elt("div", null, "CodeMirror-cursors");
+    // A visibility: hidden element used to find the size of things.
+    d.measure = elt("div", null, "CodeMirror-measure");
+    // When lines outside of the viewport are measured, they are drawn in this.
+    d.lineMeasure = elt("div", null, "CodeMirror-measure");
+    // Wraps everything that needs to exist inside the vertically-padded coordinate system
+    d.lineSpace = eltP("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv],
+                      null, "position: relative; outline: none");
+    var lines = eltP("div", [d.lineSpace], "CodeMirror-lines");
+    // Moved around its parent to cover visible view.
+    d.mover = elt("div", [lines], null, "position: relative");
+    // Set to the height of the document, allowing scrolling.
+    d.sizer = elt("div", [d.mover], "CodeMirror-sizer");
+    d.sizerWidth = null;
+    // Behavior of elts with overflow: auto and padding is
+    // inconsistent across browsers. This is used to ensure the
+    // scrollable area is big enough.
+    d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerGap + "px; width: 1px;");
+    // Will contain the gutters, if any.
+    d.gutters = elt("div", null, "CodeMirror-gutters");
+    d.lineGutter = null;
+    // Actual scrollable element.
+    d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll");
+    d.scroller.setAttribute("tabIndex", "-1");
+    // The element in which the editor lives.
+    d.wrapper = elt("div", [d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror");
+
+    // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported)
+    if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; }
+    if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; }
+
+    if (place) {
+      if (place.appendChild) { place.appendChild(d.wrapper); }
+      else { place(d.wrapper); }
+    }
+
+    // Current rendered range (may be bigger than the view window).
+    d.viewFrom = d.viewTo = doc.first;
+    d.reportedViewFrom = d.reportedViewTo = doc.first;
+    // Information about the rendered lines.
+    d.view = [];
+    d.renderedView = null;
+    // Holds info about a single rendered line when it was rendered
+    // for measurement, while not in view.
+    d.externalMeasured = null;
+    // Empty space (in pixels) above the view
+    d.viewOffset = 0;
+    d.lastWrapHeight = d.lastWrapWidth = 0;
+    d.updateLineNumbers = null;
+
+    d.nativeBarWidth = d.barHeight = d.barWidth = 0;
+    d.scrollbarsClipped = false;
+
+    // Used to only resize the line number gutter when necessary (when
+    // the amount of lines crosses a boundary that makes its width change)
+    d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null;
+    // Set to true when a non-horizontal-scrolling line widget is
+    // added. As an optimization, line widget aligning is skipped when
+    // this is false.
+    d.alignWidgets = false;
+
+    d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;
+
+    // Tracks the maximum line length so that the horizontal scrollbar
+    // can be kept static when scrolling.
+    d.maxLine = null;
+    d.maxLineLength = 0;
+    d.maxLineChanged = false;
+
+    // Used for measuring wheel scrolling granularity
+    d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null;
+
+    // True when shift is held down.
+    d.shift = false;
+
+    // Used to track whether anything happened since the context menu
+    // was opened.
+    d.selForContextMenu = null;
+
+    d.activeTouch = null;
+
+    input.init(d);
+  }
+
+  // Find the line object corresponding to the given line number.
+  function getLine(doc, n) {
+    n -= doc.first;
+    if (n < 0 || n >= doc.size) { throw new Error("There is no line " + (n + doc.first) + " in the document.") }
+    var chunk = doc;
+    while (!chunk.lines) {
+      for (var i = 0;; ++i) {
+        var child = chunk.children[i], sz = child.chunkSize();
+        if (n < sz) { chunk = child; break }
+        n -= sz;
+      }
+    }
+    return chunk.lines[n]
+  }
+
+  // Get the part of a document between two positions, as an array of
+  // strings.
+  function getBetween(doc, start, end) {
+    var out = [], n = start.line;
+    doc.iter(start.line, end.line + 1, function (line) {
+      var text = line.text;
+      if (n == end.line) { text = text.slice(0, end.ch); }
+      if (n == start.line) { text = text.slice(start.ch); }
+      out.push(text);
+      ++n;
+    });
+    return out
+  }
+  // Get the lines between from and to, as array of strings.
+  function getLines(doc, from, to) {
+    var out = [];
+    doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value
+    return out
+  }
+
+  // Update the height of a line, propagating the height change
+  // upwards to parent nodes.
+  function updateLineHeight(line, height) {
+    var diff = height - line.height;
+    if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } }
+  }
+
+  // Given a line object, find its line number by walking up through
+  // its parent links.
+  function lineNo(line) {
+    if (line.parent == null) { return null }
+    var cur = line.parent, no = indexOf(cur.lines, line);
+    for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) {
+      for (var i = 0;; ++i) {
+        if (chunk.children[i] == cur) { break }
+        no += chunk.children[i].chunkSize();
+      }
+    }
+    return no + cur.first
+  }
+
+  // Find the line at the given vertical position, using the height
+  // information in the document tree.
+  function lineAtHeight(chunk, h) {
+    var n = chunk.first;
+    outer: do {
+      for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) {
+        var child = chunk.children[i$1], ch = child.height;
+        if (h < ch) { chunk = child; continue outer }
+        h -= ch;
+        n += child.chunkSize();
+      }
+      return n
+    } while (!chunk.lines)
+    var i = 0;
+    for (; i < chunk.lines.length; ++i) {
+      var line = chunk.lines[i], lh = line.height;
+      if (h < lh) { break }
+      h -= lh;
+    }
+    return n + i
+  }
+
+  function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}
+
+  function lineNumberFor(options, i) {
+    return String(options.lineNumberFormatter(i + options.firstLineNumber))
+  }
+
+  // A Pos instance represents a position within the text.
+  function Pos(line, ch, sticky) {
+    if ( sticky === void 0 ) sticky = null;
+
+    if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) }
+    this.line = line;
+    this.ch = ch;
+    this.sticky = sticky;
+  }
+
+  // Compare two positions, return 0 if they are the same, a negative
+  // number when a is less, and a positive number otherwise.
+  function cmp(a, b) { return a.line - b.line || a.ch - b.ch }
+
+  function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 }
+
+  function copyPos(x) {return Pos(x.line, x.ch)}
+  function maxPos(a, b) { return cmp(a, b) < 0 ? b : a }
+  function minPos(a, b) { return cmp(a, b) < 0 ? a : b }
+
+  // Most of the external API clips given positions to make sure they
+  // actually exist within the document.
+  function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))}
+  function clipPos(doc, pos) {
+    if (pos.line < doc.first) { return Pos(doc.first, 0) }
+    var last = doc.first + doc.size - 1;
+    if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) }
+    return clipToLen(pos, getLine(doc, pos.line).text.length)
+  }
+  function clipToLen(pos, linelen) {
+    var ch = pos.ch;
+    if (ch == null || ch > linelen) { return Pos(pos.line, linelen) }
+    else if (ch < 0) { return Pos(pos.line, 0) }
+    else { return pos }
+  }
+  function clipPosArray(doc, array) {
+    var out = [];
+    for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); }
+    return out
+  }
+
+  // Optimize some code when these features are not used.
+  var sawReadOnlySpans = false, sawCollapsedSpans = false;
+
+  function seeReadOnlySpans() {
+    sawReadOnlySpans = true;
+  }
+
+  function seeCollapsedSpans() {
+    sawCollapsedSpans = true;
+  }
+
+  // TEXTMARKER SPANS
+
+  function MarkedSpan(marker, from, to) {
+    this.marker = marker;
+    this.from = from; this.to = to;
+  }
+
+  // Search an array of spans for a span matching the given marker.
+  function getMarkedSpanFor(spans, marker) {
+    if (spans) { for (var i = 0; i < spans.length; ++i) {
+      var span = spans[i];
+      if (span.marker == marker) { return span }
+    } }
+  }
+  // Remove a span from an array, returning undefined if no spans are
+  // left (we don't store arrays for lines without spans).
+  function removeMarkedSpan(spans, span) {
+    var r;
+    for (var i = 0; i < spans.length; ++i)
+      { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } }
+    return r
+  }
+  // Add a span to a line.
+  function addMarkedSpan(line, span) {
+    line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span];
+    span.marker.attachLine(line);
+  }
+
+  // Used for the algorithm that adjusts markers for a change in the
+  // document. These functions cut an array of spans at a given
+  // character position, returning an array of remaining chunks (or
+  // undefined if nothing remains).
+  function markedSpansBefore(old, startCh, isInsert) {
+    var nw;
+    if (old) { for (var i = 0; i < old.length; ++i) {
+      var span = old[i], marker = span.marker;
+      var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh);
+      if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) {
+        var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh)
+        ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to));
+      }
+    } }
+    return nw
+  }
+  function markedSpansAfter(old, endCh, isInsert) {
+    var nw;
+    if (old) { for (var i = 0; i < old.length; ++i) {
+      var span = old[i], marker = span.marker;
+      var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh);
+      if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) {
+        var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh)
+        ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh,
+                                              span.to == null ? null : span.to - endCh));
+      }
+    } }
+    return nw
+  }
+
+  // Given a change object, compute the new set of marker spans that
+  // cover the line in which the change took place. Removes spans
+  // entirely within the change, reconnects spans belonging to the
+  // same marker that appear on both sides of the change, and cuts off
+  // spans partially within the change. Returns an array of span
+  // arrays with one element for each line in (after) the change.
+  function stretchSpansOverChange(doc, change) {
+    if (change.full) { return null }
+    var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans;
+    var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans;
+    if (!oldFirst && !oldLast) { return null }
+
+    var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0;
+    // Get the spans that 'stick out' on both sides
+    var first = markedSpansBefore(oldFirst, startCh, isInsert);
+    var last = markedSpansAfter(oldLast, endCh, isInsert);
+
+    // Next, merge those two ends
+    var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0);
+    if (first) {
+      // Fix up .to properties of first
+      for (var i = 0; i < first.length; ++i) {
+        var span = first[i];
+        if (span.to == null) {
+          var found = getMarkedSpanFor(last, span.marker);
+          if (!found) { span.to = startCh; }
+          else if (sameLine) { span.to = found.to == null ? null : found.to + offset; }
+        }
+      }
+    }
+    if (last) {
+      // Fix up .from in last (or move them into first in case of sameLine)
+      for (var i$1 = 0; i$1 < last.length; ++i$1) {
+        var span$1 = last[i$1];
+        if (span$1.to != null) { span$1.to += offset; }
+        if (span$1.from == null) {
+          var found$1 = getMarkedSpanFor(first, span$1.marker);
+          if (!found$1) {
+            span$1.from = offset;
+            if (sameLine) { (first || (first = [])).push(span$1); }
+          }
+        } else {
+          span$1.from += offset;
+          if (sameLine) { (first || (first = [])).push(span$1); }
+        }
+      }
+    }
+    // Make sure we didn't create any zero-length spans
+    if (first) { first = clearEmptySpans(first); }
+    if (last && last != first) { last = clearEmptySpans(last); }
+
+    var newMarkers = [first];
+    if (!sameLine) {
+      // Fill gap with whole-line-spans
+      var gap = change.text.length - 2, gapMarkers;
+      if (gap > 0 && first)
+        { for (var i$2 = 0; i$2 < first.length; ++i$2)
+          { if (first[i$2].to == null)
+            { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } }
+      for (var i$3 = 0; i$3 < gap; ++i$3)
+        { newMarkers.push(gapMarkers); }
+      newMarkers.push(last);
+    }
+    return newMarkers
+  }
+
+  // Remove spans that are empty and don't have a clearWhenEmpty
+  // option of false.
+  function clearEmptySpans(spans) {
+    for (var i = 0; i < spans.length; ++i) {
+      var span = spans[i];
+      if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false)
+        { spans.splice(i--, 1); }
+    }
+    if (!spans.length) { return null }
+    return spans
+  }
+
+  // Used to 'clip' out readOnly ranges when making a change.
+  function removeReadOnlyRanges(doc, from, to) {
+    var markers = null;
+    doc.iter(from.line, to.line + 1, function (line) {
+      if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {
+        var mark = line.markedSpans[i].marker;
+        if (mark.readOnly && (!markers || indexOf(markers, mark) == -1))
+          { (markers || (markers = [])).push(mark); }
+      } }
+    });
+    if (!markers) { return null }
+    var parts = [{from: from, to: to}];
+    for (var i = 0; i < markers.length; ++i) {
+      var mk = markers[i], m = mk.find(0);
+      for (var j = 0; j < parts.length; ++j) {
+        var p = parts[j];
+        if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue }
+        var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to);
+        if (dfrom < 0 || !mk.inclusiveLeft && !dfrom)
+          { newParts.push({from: p.from, to: m.from}); }
+        if (dto > 0 || !mk.inclusiveRight && !dto)
+          { newParts.push({from: m.to, to: p.to}); }
+        parts.splice.apply(parts, newParts);
+        j += newParts.length - 3;
+      }
+    }
+    return parts
+  }
+
+  // Connect or disconnect spans from a line.
+  function detachMarkedSpans(line) {
+    var spans = line.markedSpans;
+    if (!spans) { return }
+    for (var i = 0; i < spans.length; ++i)
+      { spans[i].marker.detachLine(line); }
+    line.markedSpans = null;
+  }
+  function attachMarkedSpans(line, spans) {
+    if (!spans) { return }
+    for (var i = 0; i < spans.length; ++i)
+      { spans[i].marker.attachLine(line); }
+    line.markedSpans = spans;
+  }
+
+  // Helpers used when computing which overlapping collapsed span
+  // counts as the larger one.
+  function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 }
+  function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 }
+
+  // Returns a number indicating which of two overlapping collapsed
+  // spans is larger (and thus includes the other). Falls back to
+  // comparing ids when the spans cover exactly the same range.
+  function compareCollapsedMarkers(a, b) {
+    var lenDiff = a.lines.length - b.lines.length;
+    if (lenDiff != 0) { return lenDiff }
+    var aPos = a.find(), bPos = b.find();
+    var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b);
+    if (fromCmp) { return -fromCmp }
+    var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b);
+    if (toCmp) { return toCmp }
+    return b.id - a.id
+  }
+
+  // Find out whether a line ends or starts in a collapsed span. If
+  // so, return the marker for that span.
+  function collapsedSpanAtSide(line, start) {
+    var sps = sawCollapsedSpans && line.markedSpans, found;
+    if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {
+      sp = sps[i];
+      if (sp.marker.collapsed && (start ? sp.from : sp.to) == null &&
+          (!found || compareCollapsedMarkers(found, sp.marker) < 0))
+        { found = sp.marker; }
+    } }
+    return found
+  }
+  function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) }
+  function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) }
+
+  function collapsedSpanAround(line, ch) {
+    var sps = sawCollapsedSpans && line.markedSpans, found;
+    if (sps) { for (var i = 0; i < sps.length; ++i) {
+      var sp = sps[i];
+      if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) &&
+          (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; }
+    } }
+    return found
+  }
+
+  // Test whether there exists a collapsed span that partially
+  // overlaps (covers the start or end, but not both) of a new span.
+  // Such overlap is not allowed.
+  function conflictingCollapsedRange(doc, lineNo$$1, from, to, marker) {
+    var line = getLine(doc, lineNo$$1);
+    var sps = sawCollapsedSpans && line.markedSpans;
+    if (sps) { for (var i = 0; i < sps.length; ++i) {
+      var sp = sps[i];
+      if (!sp.marker.collapsed) { continue }
+      var found = sp.marker.find(0);
+      var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);
+      var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);
+      if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue }
+      if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||
+          fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))
+        { return true }
+    } }
+  }
+
+  // A visual line is a line as drawn on the screen. Folding, for
+  // example, can cause multiple logical lines to appear on the same
+  // visual line. This finds the start of the visual line that the
+  // given line is part of (usually that is the line itself).
+  function visualLine(line) {
+    var merged;
+    while (merged = collapsedSpanAtStart(line))
+      { line = merged.find(-1, true).line; }
+    return line
+  }
+
+  function visualLineEnd(line) {
+    var merged;
+    while (merged = collapsedSpanAtEnd(line))
+      { line = merged.find(1, true).line; }
+    return line
+  }
+
+  // Returns an array of logical lines that continue the visual line
+  // started by the argument, or undefined if there are no such lines.
+  function visualLineContinued(line) {
+    var merged, lines;
+    while (merged = collapsedSpanAtEnd(line)) {
+      line = merged.find(1, true).line
+      ;(lines || (lines = [])).push(line);
+    }
+    return lines
+  }
+
+  // Get the line number of the start of the visual line that the
+  // given line number is part of.
+  function visualLineNo(doc, lineN) {
+    var line = getLine(doc, lineN), vis = visualLine(line);
+    if (line == vis) { return lineN }
+    return lineNo(vis)
+  }
+
+  // Get the line number of the start of the next visual line after
+  // the given line.
+  function visualLineEndNo(doc, lineN) {
+    if (lineN > doc.lastLine()) { return lineN }
+    var line = getLine(doc, lineN), merged;
+    if (!lineIsHidden(doc, line)) { return lineN }
+    while (merged = collapsedSpanAtEnd(line))
+      { line = merged.find(1, true).line; }
+    return lineNo(line) + 1
+  }
+
+  // Compute whether a line is hidden. Lines count as hidden when they
+  // are part of a visual line that starts with another line, or when
+  // they are entirely covered by collapsed, non-widget span.
+  function lineIsHidden(doc, line) {
+    var sps = sawCollapsedSpans && line.markedSpans;
+    if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) {
+      sp = sps[i];
+      if (!sp.marker.collapsed) { continue }
+      if (sp.from == null) { return true }
+      if (sp.marker.widgetNode) { continue }
+      if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp))
+        { return true }
+    } }
+  }
+  function lineIsHiddenInner(doc, line, span) {
+    if (span.to == null) {
+      var end = span.marker.find(1, true);
+      return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker))
+    }
+    if (span.marker.inclusiveRight && span.to == line.text.length)
+      { return true }
+    for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) {
+      sp = line.markedSpans[i];
+      if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to &&
+          (sp.to == null || sp.to != span.from) &&
+          (sp.marker.inclusiveLeft || span.marker.inclusiveRight) &&
+          lineIsHiddenInner(doc, line, sp)) { return true }
+    }
+  }
+
+  // Find the height above the given line.
+  function heightAtLine(lineObj) {
+    lineObj = visualLine(lineObj);
+
+    var h = 0, chunk = lineObj.parent;
+    for (var i = 0; i < chunk.lines.length; ++i) {
+      var line = chunk.lines[i];
+      if (line == lineObj) { break }
+      else { h += line.height; }
+    }
+    for (var p = chunk.parent; p; chunk = p, p = chunk.parent) {
+      for (var i$1 = 0; i$1 < p.children.length; ++i$1) {
+        var cur = p.children[i$1];
+        if (cur == chunk) { break }
+        else { h += cur.height; }
+      }
+    }
+    return h
+  }
+
+  // Compute the character length of a line, taking into account
+  // collapsed ranges (see markText) that might hide parts, and join
+  // other lines onto it.
+  function lineLength(line) {
+    if (line.height == 0) { return 0 }
+    var len = line.text.length, merged, cur = line;
+    while (merged = collapsedSpanAtStart(cur)) {
+      var found = merged.find(0, true);
+      cur = found.from.line;
+      len += found.from.ch - found.to.ch;
+    }
+    cur = line;
+    while (merged = collapsedSpanAtEnd(cur)) {
+      var found$1 = merged.find(0, true);
+      len -= cur.text.length - found$1.from.ch;
+      cur = found$1.to.line;
+      len += cur.text.length - found$1.to.ch;
+    }
+    return len
+  }
+
+  // Find the longest line in the document.
+  function findMaxLine(cm) {
+    var d = cm.display, doc = cm.doc;
+    d.maxLine = getLine(doc, doc.first);
+    d.maxLineLength = lineLength(d.maxLine);
+    d.maxLineChanged = true;
+    doc.iter(function (line) {
+      var len = lineLength(line);
+      if (len > d.maxLineLength) {
+        d.maxLineLength = len;
+        d.maxLine = line;
+      }
+    });
+  }
+
+  // BIDI HELPERS
+
+  function iterateBidiSections(order, from, to, f) {
+    if (!order) { return f(from, to, "ltr", 0) }
+    var found = false;
+    for (var i = 0; i < order.length; ++i) {
+      var part = order[i];
+      if (part.from < to && part.to > from || from == to && part.to == from) {
+        f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr", i);
+        found = true;
+      }
+    }
+    if (!found) { f(from, to, "ltr"); }
+  }
+
+  var bidiOther = null;
+  function getBidiPartAt(order, ch, sticky) {
+    var found;
+    bidiOther = null;
+    for (var i = 0; i < order.length; ++i) {
+      var cur = order[i];
+      if (cur.from < ch && cur.to > ch) { return i }
+      if (cur.to == ch) {
+        if (cur.from != cur.to && sticky == "before") { found = i; }
+        else { bidiOther = i; }
+      }
+      if (cur.from == ch) {
+        if (cur.from != cur.to && sticky != "before") { found = i; }
+        else { bidiOther = i; }
+      }
+    }
+    return found != null ? found : bidiOther
+  }
+
+  // Bidirectional ordering algorithm
+  // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm
+  // that this (partially) implements.
+
+  // One-char codes used for character types:
+  // L (L):   Left-to-Right
+  // R (R):   Right-to-Left
+  // r (AL):  Right-to-Left Arabic
+  // 1 (EN):  European Number
+  // + (ES):  European Number Separator
+  // % (ET):  European Number Terminator
+  // n (AN):  Arabic Number
+  // , (CS):  Common Number Separator
+  // m (NSM): Non-Spacing Mark
+  // b (BN):  Boundary Neutral
+  // s (B):   Paragraph Separator
+  // t (S):   Segment Separator
+  // w (WS):  Whitespace
+  // N (ON):  Other Neutrals
+
+  // Returns null if characters are ordered as they appear
+  // (left-to-right), or an array of sections ({from, to, level}
+  // objects) in the order in which they occur visually.
+  var bidiOrdering = (function() {
+    // Character types for codepoints 0 to 0xff
+    var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN";
+    // Character types for codepoints 0x600 to 0x6f9
+    var arabicTypes = "nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";
+    function charType(code) {
+      if (code <= 0xf7) { return lowTypes.charAt(code) }
+      else if (0x590 <= code && code <= 0x5f4) { return "R" }
+      else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) }
+      else if (0x6ee <= code && code <= 0x8ac) { return "r" }
+      else if (0x2000 <= code && code <= 0x200b) { return "w" }
+      else if (code == 0x200c) { return "b" }
+      else { return "L" }
+    }
+
+    var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/;
+    var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/;
+
+    function BidiSpan(level, from, to) {
+      this.level = level;
+      this.from = from; this.to = to;
+    }
+
+    return function(str, direction) {
+      var outerType = direction == "ltr" ? "L" : "R";
+
+      if (str.length == 0 || direction == "ltr" && !bidiRE.test(str)) { return false }
+      var len = str.length, types = [];
+      for (var i = 0; i < len; ++i)
+        { types.push(charType(str.charCodeAt(i))); }
+
+      // W1. Examine each non-spacing mark (NSM) in the level run, and
+      // change the type of the NSM to the type of the previous
+      // character. If the NSM is at the start of the level run, it will
+      // get the type of sor.
+      for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) {
+        var type = types[i$1];
+        if (type == "m") { types[i$1] = prev; }
+        else { prev = type; }
+      }
+
+      // W2. Search backwards from each instance of a European number
+      // until the first strong type (R, L, AL, or sor) is found. If an
+      // AL is found, change the type of the European number to Arabic
+      // number.
+      // W3. Change all ALs to R.
+      for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) {
+        var type$1 = types[i$2];
+        if (type$1 == "1" && cur == "r") { types[i$2] = "n"; }
+        else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == "r") { types[i$2] = "R"; } }
+      }
+
+      // W4. A single European separator between two European numbers
+      // changes to a European number. A single common separator between
+      // two numbers of the same type changes to that type.
+      for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) {
+        var type$2 = types[i$3];
+        if (type$2 == "+" && prev$1 == "1" && types[i$3+1] == "1") { types[i$3] = "1"; }
+        else if (type$2 == "," && prev$1 == types[i$3+1] &&
+                 (prev$1 == "1" || prev$1 == "n")) { types[i$3] = prev$1; }
+        prev$1 = type$2;
+      }
+
+      // W5. A sequence of European terminators adjacent to European
+      // numbers changes to all European numbers.
+      // W6. Otherwise, separators and terminators change to Other
+      // Neutral.
+      for (var i$4 = 0; i$4 < len; ++i$4) {
+        var type$3 = types[i$4];
+        if (type$3 == ",") { types[i$4] = "N"; }
+        else if (type$3 == "%") {
+          var end = (void 0);
+          for (end = i$4 + 1; end < len && types[end] == "%"; ++end) {}
+          var replace = (i$4 && types[i$4-1] == "!") || (end < len && types[end] == "1") ? "1" : "N";
+          for (var j = i$4; j < end; ++j) { types[j] = replace; }
+          i$4 = end - 1;
+        }
+      }
+
+      // W7. Search backwards from each instance of a European number
+      // until the first strong type (R, L, or sor) is found. If an L is
+      // found, then change the type of the European number to L.
+      for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) {
+        var type$4 = types[i$5];
+        if (cur$1 == "L" && type$4 == "1") { types[i$5] = "L"; }
+        else if (isStrong.test(type$4)) { cur$1 = type$4; }
+      }
+
+      // N1. A sequence of neutrals takes the direction of the
+      // surrounding strong text if the text on both sides has the same
+      // direction. European and Arabic numbers act as if they were R in
+      // terms of their influence on neutrals. Start-of-level-run (sor)
+      // and end-of-level-run (eor) are used at level run boundaries.
+      // N2. Any remaining neutrals take the embedding direction.
+      for (var i$6 = 0; i$6 < len; ++i$6) {
+        if (isNeutral.test(types[i$6])) {
+          var end$1 = (void 0);
+          for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {}
+          var before = (i$6 ? types[i$6-1] : outerType) == "L";
+          var after = (end$1 < len ? types[end$1] : outerType) == "L";
+          var replace$1 = before == after ? (before ? "L" : "R") : outerType;
+          for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; }
+          i$6 = end$1 - 1;
+        }
+      }
+
+      // Here we depart from the documented algorithm, in order to avoid
+      // building up an actual levels array. Since there are only three
+      // levels (0, 1, 2) in an implementation that doesn't take
+      // explicit embedding into account, we can build up the order on
+      // the fly, without following the level-based algorithm.
+      var order = [], m;
+      for (var i$7 = 0; i$7 < len;) {
+        if (countsAsLeft.test(types[i$7])) {
+          var start = i$7;
+          for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {}
+          order.push(new BidiSpan(0, start, i$7));
+        } else {
+          var pos = i$7, at = order.length;
+          for (++i$7; i$7 < len && types[i$7] != "L"; ++i$7) {}
+          for (var j$2 = pos; j$2 < i$7;) {
+            if (countsAsNum.test(types[j$2])) {
+              if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); }
+              var nstart = j$2;
+              for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {}
+              order.splice(at, 0, new BidiSpan(2, nstart, j$2));
+              pos = j$2;
+            } else { ++j$2; }
+          }
+          if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); }
+        }
+      }
+      if (direction == "ltr") {
+        if (order[0].level == 1 && (m = str.match(/^\s+/))) {
+          order[0].from = m[0].length;
+          order.unshift(new BidiSpan(0, 0, m[0].length));
+        }
+        if (lst(order).level == 1 && (m = str.match(/\s+$/))) {
+          lst(order).to -= m[0].length;
+          order.push(new BidiSpan(0, len - m[0].length, len));
+        }
+      }
+
+      return direction == "rtl" ? order.reverse() : order
+    }
+  })();
+
+  // Get the bidi ordering for the given line (and cache it). Returns
+  // false for lines that are fully left-to-right, and an array of
+  // BidiSpan objects otherwise.
+  function getOrder(line, direction) {
+    var order = line.order;
+    if (order == null) { order = line.order = bidiOrdering(line.text, direction); }
+    return order
+  }
+
+  // EVENT HANDLING
+
+  // Lightweight event framework. on/off also work on DOM nodes,
+  // registering native DOM handlers.
+
+  var noHandlers = [];
+
+  var on = function(emitter, type, f) {
+    if (emitter.addEventListener) {
+      emitter.addEventListener(type, f, false);
+    } else if (emitter.attachEvent) {
+      emitter.attachEvent("on" + type, f);
+    } else {
+      var map$$1 = emitter._handlers || (emitter._handlers = {});
+      map$$1[type] = (map$$1[type] || noHandlers).concat(f);
+    }
+  };
+
+  function getHandlers(emitter, type) {
+    return emitter._handlers && emitter._handlers[type] || noHandlers
+  }
+
+  function off(emitter, type, f) {
+    if (emitter.removeEventListener) {
+      emitter.removeEventListener(type, f, false);
+    } else if (emitter.detachEvent) {
+      emitter.detachEvent("on" + type, f);
+    } else {
+      var map$$1 = emitter._handlers, arr = map$$1 && map$$1[type];
+      if (arr) {
+        var index = indexOf(arr, f);
+        if (index > -1)
+          { map$$1[type] = arr.slice(0, index).concat(arr.slice(index + 1)); }
+      }
+    }
+  }
+
+  function signal(emitter, type /*, values...*/) {
+    var handlers = getHandlers(emitter, type);
+    if (!handlers.length) { return }
+    var args = Array.prototype.slice.call(arguments, 2);
+    for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); }
+  }
+
+  // The DOM events that CodeMirror handles can be overridden by
+  // registering a (non-DOM) handler on the editor for the event name,
+  // and preventDefault-ing the event in that handler.
+  function signalDOMEvent(cm, e, override) {
+    if (typeof e == "string")
+      { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; }
+    signal(cm, override || e.type, cm, e);
+    return e_defaultPrevented(e) || e.codemirrorIgnore
+  }
+
+  function signalCursorActivity(cm) {
+    var arr = cm._handlers && cm._handlers.cursorActivity;
+    if (!arr) { return }
+    var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []);
+    for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1)
+      { set.push(arr[i]); } }
+  }
+
+  function hasHandler(emitter, type) {
+    return getHandlers(emitter, type).length > 0
+  }
+
+  // Add on and off methods to a constructor's prototype, to make
+  // registering events on such objects more convenient.
+  function eventMixin(ctor) {
+    ctor.prototype.on = function(type, f) {on(this, type, f);};
+    ctor.prototype.off = function(type, f) {off(this, type, f);};
+  }
+
+  // Due to the fact that we still support jurassic IE versions, some
+  // compatibility wrappers are needed.
+
+  function e_preventDefault(e) {
+    if (e.preventDefault) { e.preventDefault(); }
+    else { e.returnValue = false; }
+  }
+  function e_stopPropagation(e) {
+    if (e.stopPropagation) { e.stopPropagation(); }
+    else { e.cancelBubble = true; }
+  }
+  function e_defaultPrevented(e) {
+    return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false
+  }
+  function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);}
+
+  function e_target(e) {return e.target || e.srcElement}
+  function e_button(e) {
+    var b = e.which;
+    if (b == null) {
+      if (e.button & 1) { b = 1; }
+      else if (e.button & 2) { b = 3; }
+      else if (e.button & 4) { b = 2; }
+    }
+    if (mac && e.ctrlKey && b == 1) { b = 3; }
+    return b
+  }
+
+  // Detect drag-and-drop
+  var dragAndDrop = function() {
+    // There is *some* kind of drag-and-drop support in IE6-8, but I
+    // couldn't get it to work yet.
+    if (ie && ie_version < 9) { return false }
+    var div = elt('div');
+    return "draggable" in div || "dragDrop" in div
+  }();
+
+  var zwspSupported;
+  function zeroWidthElement(measure) {
+    if (zwspSupported == null) {
+      var test = elt("span", "\u200b");
+      removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")]));
+      if (measure.firstChild.offsetHeight != 0)
+        { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); }
+    }
+    var node = zwspSupported ? elt("span", "\u200b") :
+      elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px");
+    node.setAttribute("cm-text", "");
+    return node
+  }
+
+  // Feature-detect IE's crummy client rect reporting for bidi text
+  var badBidiRects;
+  function hasBadBidiRects(measure) {
+    if (badBidiRects != null) { return badBidiRects }
+    var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA"));
+    var r0 = range(txt, 0, 1).getBoundingClientRect();
+    var r1 = range(txt, 1, 2).getBoundingClientRect();
+    removeChildren(measure);
+    if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780)
+    return badBidiRects = (r1.right - r0.right < 3)
+  }
+
+  // See if "".split is the broken IE version, if so, provide an
+  // alternative way to split lines.
+  var splitLinesAuto = "\n\nb".split(/\n/).length != 3 ? function (string) {
+    var pos = 0, result = [], l = string.length;
+    while (pos <= l) {
+      var nl = string.indexOf("\n", pos);
+      if (nl == -1) { nl = string.length; }
+      var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl);
+      var rt = line.indexOf("\r");
+      if (rt != -1) {
+        result.push(line.slice(0, rt));
+        pos += rt + 1;
+      } else {
+        result.push(line);
+        pos = nl + 1;
+      }
+    }
+    return result
+  } : function (string) { return string.split(/\r\n?|\n/); };
+
+  var hasSelection = window.getSelection ? function (te) {
+    try { return te.selectionStart != te.selectionEnd }
+    catch(e) { return false }
+  } : function (te) {
+    var range$$1;
+    try {range$$1 = te.ownerDocument.selection.createRange();}
+    catch(e) {}
+    if (!range$$1 || range$$1.parentElement() != te) { return false }
+    return range$$1.compareEndPoints("StartToEnd", range$$1) != 0
+  };
+
+  var hasCopyEvent = (function () {
+    var e = elt("div");
+    if ("oncopy" in e) { return true }
+    e.setAttribute("oncopy", "return;");
+    return typeof e.oncopy == "function"
+  })();
+
+  var badZoomedRects = null;
+  function hasBadZoomedRects(measure) {
+    if (badZoomedRects != null) { return badZoomedRects }
+    var node = removeChildrenAndAdd(measure, elt("span", "x"));
+    var normal = node.getBoundingClientRect();
+    var fromRange = range(node, 0, 1).getBoundingClientRect();
+    return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1
+  }
+
+  // Known modes, by name and by MIME
+  var modes = {}, mimeModes = {};
+
+  // Extra arguments are stored as the mode's dependencies, which is
+  // used by (legacy) mechanisms like loadmode.js to automatically
+  // load a mode. (Preferred mechanism is the require/define calls.)
+  function defineMode(name, mode) {
+    if (arguments.length > 2)
+      { mode.dependencies = Array.prototype.slice.call(arguments, 2); }
+    modes[name] = mode;
+  }
+
+  function defineMIME(mime, spec) {
+    mimeModes[mime] = spec;
+  }
+
+  // Given a MIME type, a {name, ...options} config object, or a name
+  // string, return a mode config object.
+  function resolveMode(spec) {
+    if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) {
+      spec = mimeModes[spec];
+    } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) {
+      var found = mimeModes[spec.name];
+      if (typeof found == "string") { found = {name: found}; }
+      spec = createObj(found, spec);
+      spec.name = found.name;
+    } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) {
+      return resolveMode("application/xml")
+    } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+json$/.test(spec)) {
+      return resolveMode("application/json")
+    }
+    if (typeof spec == "string") { return {name: spec} }
+    else { return spec || {name: "null"} }
+  }
+
+  // Given a mode spec (anything that resolveMode accepts), find and
+  // initialize an actual mode object.
+  function getMode(options, spec) {
+    spec = resolveMode(spec);
+    var mfactory = modes[spec.name];
+    if (!mfactory) { return getMode(options, "text/plain") }
+    var modeObj = mfactory(options, spec);
+    if (modeExtensions.hasOwnProperty(spec.name)) {
+      var exts = modeExtensions[spec.name];
+      for (var prop in exts) {
+        if (!exts.hasOwnProperty(prop)) { continue }
+        if (modeObj.hasOwnProperty(prop)) { modeObj["_" + prop] = modeObj[prop]; }
+        modeObj[prop] = exts[prop];
+      }
+    }
+    modeObj.name = spec.name;
+    if (spec.helperType) { modeObj.helperType = spec.helperType; }
+    if (spec.modeProps) { for (var prop$1 in spec.modeProps)
+      { modeObj[prop$1] = spec.modeProps[prop$1]; } }
+
+    return modeObj
+  }
+
+  // This can be used to attach properties to mode objects from
+  // outside the actual mode definition.
+  var modeExtensions = {};
+  function extendMode(mode, properties) {
+    var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {});
+    copyObj(properties, exts);
+  }
+
+  function copyState(mode, state) {
+    if (state === true) { return state }
+    if (mode.copyState) { return mode.copyState(state) }
+    var nstate = {};
+    for (var n in state) {
+      var val = state[n];
+      if (val instanceof Array) { val = val.concat([]); }
+      nstate[n] = val;
+    }
+    return nstate
+  }
+
+  // Given a mode and a state (for that mode), find the inner mode and
+  // state at the position that the state refers to.
+  function innerMode(mode, state) {
+    var info;
+    while (mode.innerMode) {
+      info = mode.innerMode(state);
+      if (!info || info.mode == mode) { break }
+      state = info.state;
+      mode = info.mode;
+    }
+    return info || {mode: mode, state: state}
+  }
+
+  function startState(mode, a1, a2) {
+    return mode.startState ? mode.startState(a1, a2) : true
+  }
+
+  // STRING STREAM
+
+  // Fed to the mode parsers, provides helper functions to make
+  // parsers more succinct.
+
+  var StringStream = function(string, tabSize, lineOracle) {
+    this.pos = this.start = 0;
+    this.string = string;
+    this.tabSize = tabSize || 8;
+    this.lastColumnPos = this.lastColumnValue = 0;
+    this.lineStart = 0;
+    this.lineOracle = lineOracle;
+  };
+
+  StringStream.prototype.eol = function () {return this.pos >= this.string.length};
+  StringStream.prototype.sol = function () {return this.pos == this.lineStart};
+  StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined};
+  StringStream.prototype.next = function () {
+    if (this.pos < this.string.length)
+      { return this.string.charAt(this.pos++) }
+  };
+  StringStream.prototype.eat = function (match) {
+    var ch = this.string.charAt(this.pos);
+    var ok;
+    if (typeof match == "string") { ok = ch == match; }
+    else { ok = ch && (match.test ? match.test(ch) : match(ch)); }
+    if (ok) {++this.pos; return ch}
+  };
+  StringStream.prototype.eatWhile = function (match) {
+    var start = this.pos;
+    while (this.eat(match)){}
+    return this.pos > start
+  };
+  StringStream.prototype.eatSpace = function () {
+      var this$1 = this;
+
+    var start = this.pos;
+    while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) { ++this$1.pos; }
+    return this.pos > start
+  };
+  StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;};
+  StringStream.prototype.skipTo = function (ch) {
+    var found = this.string.indexOf(ch, this.pos);
+    if (found > -1) {this.pos = found; return true}
+  };
+  StringStream.prototype.backUp = function (n) {this.pos -= n;};
+  StringStream.prototype.column = function () {
+    if (this.lastColumnPos < this.start) {
+      this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue);
+      this.lastColumnPos = this.start;
+    }
+    return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)
+  };
+  StringStream.prototype.indentation = function () {
+    return countColumn(this.string, null, this.tabSize) -
+      (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0)
+  };
+  StringStream.prototype.match = function (pattern, consume, caseInsensitive) {
+    if (typeof pattern == "string") {
+      var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; };
+      var substr = this.string.substr(this.pos, pattern.length);
+      if (cased(substr) == cased(pattern)) {
+        if (consume !== false) { this.pos += pattern.length; }
+        return true
+      }
+    } else {
+      var match = this.string.slice(this.pos).match(pattern);
+      if (match && match.index > 0) { return null }
+      if (match && consume !== false) { this.pos += match[0].length; }
+      return match
+    }
+  };
+  StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)};
+  StringStream.prototype.hideFirstChars = function (n, inner) {
+    this.lineStart += n;
+    try { return inner() }
+    finally { this.lineStart -= n; }
+  };
+  StringStream.prototype.lookAhead = function (n) {
+    var oracle = this.lineOracle;
+    return oracle && oracle.lookAhead(n)
+  };
+  StringStream.prototype.baseToken = function () {
+    var oracle = this.lineOracle;
+    return oracle && oracle.baseToken(this.pos)
+  };
+
+  var SavedContext = function(state, lookAhead) {
+    this.state = state;
+    this.lookAhead = lookAhead;
+  };
+
+  var Context = function(doc, state, line, lookAhead) {
+    this.state = state;
+    this.doc = doc;
+    this.line = line;
+    this.maxLookAhead = lookAhead || 0;
+    this.baseTokens = null;
+    this.baseTokenPos = 1;
+  };
+
+  Context.prototype.lookAhead = function (n) {
+    var line = this.doc.getLine(this.line + n);
+    if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; }
+    return line
+  };
+
+  Context.prototype.baseToken = function (n) {
+      var this$1 = this;
+
+    if (!this.baseTokens) { return null }
+    while (this.baseTokens[this.baseTokenPos] <= n)
+      { this$1.baseTokenPos += 2; }
+    var type = this.baseTokens[this.baseTokenPos + 1];
+    return {type: type && type.replace(/( |^)overlay .*/, ""),
+            size: this.baseTokens[this.baseTokenPos] - n}
+  };
+
+  Context.prototype.nextLine = function () {
+    this.line++;
+    if (this.maxLookAhead > 0) { this.maxLookAhead--; }
+  };
+
+  Context.fromSaved = function (doc, saved, line) {
+    if (saved instanceof SavedContext)
+      { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) }
+    else
+      { return new Context(doc, copyState(doc.mode, saved), line) }
+  };
+
+  Context.prototype.save = function (copy) {
+    var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state;
+    return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state
+  };
+
+
+  // Compute a style array (an array starting with a mode generation
+  // -- for invalidation -- followed by pairs of end positions and
+  // style strings), which is used to highlight the tokens on the
+  // line.
+  function highlightLine(cm, line, context, forceToEnd) {
+    // A styles array always starts with a number identifying the
+    // mode/overlays that it is based on (for easy invalidation).
+    var st = [cm.state.modeGen], lineClasses = {};
+    // Compute the base array of styles
+    runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); },
+            lineClasses, forceToEnd);
+    var state = context.state;
+
+    // Run overlays, adjust style array.
+    var loop = function ( o ) {
+      context.baseTokens = st;
+      var overlay = cm.state.overlays[o], i = 1, at = 0;
+      context.state = true;
+      runMode(cm, line.text, overlay.mode, context, function (end, style) {
+        var start = i;
+        // Ensure there's a token end at the current position, and that i points at it
+        while (at < end) {
+          var i_end = st[i];
+          if (i_end > end)
+            { st.splice(i, 1, end, st[i+1], i_end); }
+          i += 2;
+          at = Math.min(end, i_end);
+        }
+        if (!style) { return }
+        if (overlay.opaque) {
+          st.splice(start, i - start, end, "overlay " + style);
+          i = start + 2;
+        } else {
+          for (; start < i; start += 2) {
+            var cur = st[start+1];
+            st[start+1] = (cur ? cur + " " : "") + "overlay " + style;
+          }
+        }
+      }, lineClasses);
+      context.state = state;
+      context.baseTokens = null;
+      context.baseTokenPos = 1;
+    };
+
+    for (var o = 0; o < cm.state.overlays.length; ++o) loop( o );
+
+    return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null}
+  }
+
+  function getLineStyles(cm, line, updateFrontier) {
+    if (!line.styles || line.styles[0] != cm.state.modeGen) {
+      var context = getContextBefore(cm, lineNo(line));
+      var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state);
+      var result = highlightLine(cm, line, context);
+      if (resetState) { context.state = resetState; }
+      line.stateAfter = context.save(!resetState);
+      line.styles = result.styles;
+      if (result.classes) { line.styleClasses = result.classes; }
+      else if (line.styleClasses) { line.styleClasses = null; }
+      if (updateFrontier === cm.doc.highlightFrontier)
+        { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); }
+    }
+    return line.styles
+  }
+
+  function getContextBefore(cm, n, precise) {
+    var doc = cm.doc, display = cm.display;
+    if (!doc.mode.startState) { return new Context(doc, true, n) }
+    var start = findStartLine(cm, n, precise);
+    var saved = start > doc.first && getLine(doc, start - 1).stateAfter;
+    var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start);
+
+    doc.iter(start, n, function (line) {
+      processLine(cm, line.text, context);
+      var pos = context.line;
+      line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null;
+      context.nextLine();
+    });
+    if (precise) { doc.modeFrontier = context.line; }
+    return context
+  }
+
+  // Lightweight form of highlight -- proceed over this line and
+  // update state, but don't save a style array. Used for lines that
+  // aren't currently visible.
+  function processLine(cm, text, context, startAt) {
+    var mode = cm.doc.mode;
+    var stream = new StringStream(text, cm.options.tabSize, context);
+    stream.start = stream.pos = startAt || 0;
+    if (text == "") { callBlankLine(mode, context.state); }
+    while (!stream.eol()) {
+      readToken(mode, stream, context.state);
+      stream.start = stream.pos;
+    }
+  }
+
+  function callBlankLine(mode, state) {
+    if (mode.blankLine) { return mode.blankLine(state) }
+    if (!mode.innerMode) { return }
+    var inner = innerMode(mode, state);
+    if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) }
+  }
+
+  function readToken(mode, stream, state, inner) {
+    for (var i = 0; i < 10; i++) {
+      if (inner) { inner[0] = innerMode(mode, state).mode; }
+      var style = mode.token(stream, state);
+      if (stream.pos > stream.start) { return style }
+    }
+    throw new Error("Mode " + mode.name + " failed to advance stream.")
+  }
+
+  var Token = function(stream, type, state) {
+    this.start = stream.start; this.end = stream.pos;
+    this.string = stream.current();
+    this.type = type || null;
+    this.state = state;
+  };
+
+  // Utility for getTokenAt and getLineTokens
+  function takeToken(cm, pos, precise, asArray) {
+    var doc = cm.doc, mode = doc.mode, style;
+    pos = clipPos(doc, pos);
+    var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise);
+    var stream = new StringStream(line.text, cm.options.tabSize, context), tokens;
+    if (asArray) { tokens = []; }
+    while ((asArray || stream.pos < pos.ch) && !stream.eol()) {
+      stream.start = stream.pos;
+      style = readToken(mode, stream, context.state);
+      if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); }
+    }
+    return asArray ? tokens : new Token(stream, style, context.state)
+  }
+
+  function extractLineClasses(type, output) {
+    if (type) { for (;;) {
+      var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/);
+      if (!lineClass) { break }
+      type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length);
+      var prop = lineClass[1] ? "bgClass" : "textClass";
+      if (output[prop] == null)
+        { output[prop] = lineClass[2]; }
+      else if (!(new RegExp("(?:^|\s)" + lineClass[2] + "(?:$|\s)")).test(output[prop]))
+        { output[prop] += " " + lineClass[2]; }
+    } }
+    return type
+  }
+
+  // Run the given mode's parser over a line, calling f for each token.
+  function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) {
+    var flattenSpans = mode.flattenSpans;
+    if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; }
+    var curStart = 0, curStyle = null;
+    var stream = new StringStream(text, cm.options.tabSize, context), style;
+    var inner = cm.options.addModeClass && [null];
+    if (text == "") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); }
+    while (!stream.eol()) {
+      if (stream.pos > cm.options.maxHighlightLength) {
+        flattenSpans = false;
+        if (forceToEnd) { processLine(cm, text, context, stream.pos); }
+        stream.pos = text.length;
+        style = null;
+      } else {
+        style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses);
+      }
+      if (inner) {
+        var mName = inner[0].name;
+        if (mName) { style = "m-" + (style ? mName + " " + style : mName); }
+      }
+      if (!flattenSpans || curStyle != style) {
+        while (curStart < stream.start) {
+          curStart = Math.min(stream.start, curStart + 5000);
+          f(curStart, curStyle);
+        }
+        curStyle = style;
+      }
+      stream.start = stream.pos;
+    }
+    while (curStart < stream.pos) {
+      // Webkit seems to refuse to render text nodes longer than 57444
+      // characters, and returns inaccurate measurements in nodes
+      // starting around 5000 chars.
+      var pos = Math.min(stream.pos, curStart + 5000);
+      f(pos, curStyle);
+      curStart = pos;
+    }
+  }
+
+  // Finds the line to start with when starting a parse. Tries to
+  // find a line with a stateAfter, so that it can start with a
+  // valid state. If that fails, it returns the line with the
+  // smallest indentation, which tends to need the least context to
+  // parse correctly.
+  function findStartLine(cm, n, precise) {
+    var minindent, minline, doc = cm.doc;
+    var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100);
+    for (var search = n; search > lim; --search) {
+      if (search <= doc.first) { return doc.first }
+      var line = getLine(doc, search - 1), after = line.stateAfter;
+      if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier))
+        { return search }
+      var indented = countColumn(line.text, null, cm.options.tabSize);
+      if (minline == null || minindent > indented) {
+        minline = search - 1;
+        minindent = indented;
+      }
+    }
+    return minline
+  }
+
+  function retreatFrontier(doc, n) {
+    doc.modeFrontier = Math.min(doc.modeFrontier, n);
+    if (doc.highlightFrontier < n - 10) { return }
+    var start = doc.first;
+    for (var line = n - 1; line > start; line--) {
+      var saved = getLine(doc, line).stateAfter;
+      // change is on 3
+      // state on line 1 looked ahead 2 -- so saw 3
+      // test 1 + 2 < 3 should cover this
+      if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) {
+        start = line + 1;
+        break
+      }
+    }
+    doc.highlightFrontier = Math.min(doc.highlightFrontier, start);
+  }
+
+  // LINE DATA STRUCTURE
+
+  // Line objects. These hold state related to a line, including
+  // highlighting info (the styles array).
+  var Line = function(text, markedSpans, estimateHeight) {
+    this.text = text;
+    attachMarkedSpans(this, markedSpans);
+    this.height = estimateHeight ? estimateHeight(this) : 1;
+  };
+
+  Line.prototype.lineNo = function () { return lineNo(this) };
+  eventMixin(Line);
+
+  // Change the content (text, markers) of a line. Automatically
+  // invalidates cached information and tries to re-estimate the
+  // line's height.
+  function updateLine(line, text, markedSpans, estimateHeight) {
+    line.text = text;
+    if (line.stateAfter) { line.stateAfter = null; }
+    if (line.styles) { line.styles = null; }
+    if (line.order != null) { line.order = null; }
+    detachMarkedSpans(line);
+    attachMarkedSpans(line, markedSpans);
+    var estHeight = estimateHeight ? estimateHeight(line) : 1;
+    if (estHeight != line.height) { updateLineHeight(line, estHeight); }
+  }
+
+  // Detach a line from the document tree and its markers.
+  function cleanUpLine(line) {
+    line.parent = null;
+    detachMarkedSpans(line);
+  }
+
+  // Convert a style as returned by a mode (either null, or a string
+  // containing one or more styles) to a CSS style. This is cached,
+  // and also looks for line-wide styles.
+  var styleToClassCache = {}, styleToClassCacheWithMode = {};
+  function interpretTokenStyle(style, options) {
+    if (!style || /^\s*$/.test(style)) { return null }
+    var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache;
+    return cache[style] ||
+      (cache[style] = style.replace(/\S+/g, "cm-$&"))
+  }
+
+  // Render the DOM representation of the text of a line. Also builds
+  // up a 'line map', which points at the DOM nodes that represent
+  // specific stretches of text, and is used by the measuring code.
+  // The returned object contains the DOM node, this map, and
+  // information about line-wide styles that were set by the mode.
+  function buildLineContent(cm, lineView) {
+    // The padding-right forces the element to have a 'border', which
+    // is needed on Webkit to be able to get line-level bounding
+    // rectangles for it (in measureChar).
+    var content = eltP("span", null, null, webkit ? "padding-right: .1px" : null);
+    var builder = {pre: eltP("pre", [content], "CodeMirror-line"), content: content,
+                   col: 0, pos: 0, cm: cm,
+                   trailingSpace: false,
+                   splitSpaces: cm.getOption("lineWrapping")};
+    lineView.measure = {};
+
+    // Iterate over the logical lines that make up this visual line.
+    for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) {
+      var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0);
+      builder.pos = 0;
+      builder.addToken = buildToken;
+      // Optionally wire in some hacks into the token-rendering
+      // algorithm, to deal with browser quirks.
+      if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction)))
+        { builder.addToken = buildTokenBadBidi(builder.addToken, order); }
+      builder.map = [];
+      var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line);
+      insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate));
+      if (line.styleClasses) {
+        if (line.styleClasses.bgClass)
+          { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || ""); }
+        if (line.styleClasses.textClass)
+          { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || ""); }
+      }
+
+      // Ensure at least a single node is present, for measuring.
+      if (builder.map.length == 0)
+        { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); }
+
+      // Store the map and a cache object for the current logical line
+      if (i == 0) {
+        lineView.measure.map = builder.map;
+        lineView.measure.cache = {};
+      } else {
+  (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map)
+        ;(lineView.measure.caches || (lineView.measure.caches = [])).push({});
+      }
+    }
+
+    // See issue #2901
+    if (webkit) {
+      var last = builder.content.lastChild;
+      if (/\bcm-tab\b/.test(last.className) || (last.querySelector && last.querySelector(".cm-tab")))
+        { builder.content.className = "cm-tab-wrap-hack"; }
+    }
+
+    signal(cm, "renderLine", cm, lineView.line, builder.pre);
+    if (builder.pre.className)
+      { builder.textClass = joinClasses(builder.pre.className, builder.textClass || ""); }
+
+    return builder
+  }
+
+  function defaultSpecialCharPlaceholder(ch) {
+    var token = elt("span", "\u2022", "cm-invalidchar");
+    token.title = "\\u" + ch.charCodeAt(0).toString(16);
+    token.setAttribute("aria-label", token.title);
+    return token
+  }
+
+  // Build up the DOM representation for a single token, and add it to
+  // the line map. Takes care to render special characters separately.
+  function buildToken(builder, text, style, startStyle, endStyle, title, css) {
+    if (!text) { return }
+    var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text;
+    var special = builder.cm.state.specialChars, mustWrap = false;
+    var content;
+    if (!special.test(text)) {
+      builder.col += text.length;
+      content = document.createTextNode(displayText);
+      builder.map.push(builder.pos, builder.pos + text.length, content);
+      if (ie && ie_version < 9) { mustWrap = true; }
+      builder.pos += text.length;
+    } else {
+      content = document.createDocumentFragment();
+      var pos = 0;
+      while (true) {
+        special.lastIndex = pos;
+        var m = special.exec(text);
+        var skipped = m ? m.index - pos : text.length - pos;
+        if (skipped) {
+          var txt = document.createTextNode(displayText.slice(pos, pos + skipped));
+          if (ie && ie_version < 9) { content.appendChild(elt("span", [txt])); }
+          else { content.appendChild(txt); }
+          builder.map.push(builder.pos, builder.pos + skipped, txt);
+          builder.col += skipped;
+          builder.pos += skipped;
+        }
+        if (!m) { break }
+        pos += skipped + 1;
+        var txt$1 = (void 0);
+        if (m[0] == "\t") {
+          var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize;
+          txt$1 = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab"));
+          txt$1.setAttribute("role", "presentation");
+          txt$1.setAttribute("cm-text", "\t");
+          builder.col += tabWidth;
+        } else if (m[0] == "\r" || m[0] == "\n") {
+          txt$1 = content.appendChild(elt("span", m[0] == "\r" ? "\u240d" : "\u2424", "cm-invalidchar"));
+          txt$1.setAttribute("cm-text", m[0]);
+          builder.col += 1;
+        } else {
+          txt$1 = builder.cm.options.specialCharPlaceholder(m[0]);
+          txt$1.setAttribute("cm-text", m[0]);
+          if (ie && ie_version < 9) { content.appendChild(elt("span", [txt$1])); }
+          else { content.appendChild(txt$1); }
+          builder.col += 1;
+        }
+        builder.map.push(builder.pos, builder.pos + 1, txt$1);
+        builder.pos++;
+      }
+    }
+    builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32;
+    if (style || startStyle || endStyle || mustWrap || css) {
+      var fullStyle = style || "";
+      if (startStyle) { fullStyle += startStyle; }
+      if (endStyle) { fullStyle += endStyle; }
+      var token = elt("span", [content], fullStyle, css);
+      if (title) { token.title = title; }
+      return builder.content.appendChild(token)
+    }
+    builder.content.appendChild(content);
+  }
+
+  // Change some spaces to NBSP to prevent the browser from collapsing
+  // trailing spaces at the end of a line when rendering text (issue #1362).
+  function splitSpaces(text, trailingBefore) {
+    if (text.length > 1 && !/  /.test(text)) { return text }
+    var spaceBefore = trailingBefore, result = "";
+    for (var i = 0; i < text.length; i++) {
+      var ch = text.charAt(i);
+      if (ch == " " && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32))
+        { ch = "\u00a0"; }
+      result += ch;
+      spaceBefore = ch == " ";
+    }
+    return result
+  }
+
+  // Work around nonsense dimensions being reported for stretches of
+  // right-to-left text.
+  function buildTokenBadBidi(inner, order) {
+    return function (builder, text, style, startStyle, endStyle, title, css) {
+      style = style ? style + " cm-force-border" : "cm-force-border";
+      var start = builder.pos, end = start + text.length;
+      for (;;) {
+        // Find the part that overlaps with the start of this text
+        var part = (void 0);
+        for (var i = 0; i < order.length; i++) {
+          part = order[i];
+          if (part.to > start && part.from <= start) { break }
+        }
+        if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, title, css) }
+        inner(builder, text.slice(0, part.to - start), style, startStyle, null, title, css);
+        startStyle = null;
+        text = text.slice(part.to - start);
+        start = part.to;
+      }
+    }
+  }
+
+  function buildCollapsedSpan(builder, size, marker, ignoreWidget) {
+    var widget = !ignoreWidget && marker.widgetNode;
+    if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); }
+    if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) {
+      if (!widget)
+        { widget = builder.content.appendChild(document.createElement("span")); }
+      widget.setAttribute("cm-marker", marker.id);
+    }
+    if (widget) {
+      builder.cm.display.input.setUneditable(widget);
+      builder.content.appendChild(widget);
+    }
+    builder.pos += size;
+    builder.trailingSpace = false;
+  }
+
+  // Outputs a number of spans to make up a line, taking highlighting
+  // and marked text into account.
+  function insertLineContent(line, builder, styles) {
+    var spans = line.markedSpans, allText = line.text, at = 0;
+    if (!spans) {
+      for (var i$1 = 1; i$1 < styles.length; i$1+=2)
+        { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); }
+      return
+    }
+
+    var len = allText.length, pos = 0, i = 1, text = "", style, css;
+    var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, title, collapsed;
+    for (;;) {
+      if (nextChange == pos) { // Update current marker set
+        spanStyle = spanEndStyle = spanStartStyle = title = css = "";
+        collapsed = null; nextChange = Infinity;
+        var foundBookmarks = [], endStyles = (void 0);
+        for (var j = 0; j < spans.length; ++j) {
+          var sp = spans[j], m = sp.marker;
+          if (m.type == "bookmark" && sp.from == pos && m.widgetNode) {
+            foundBookmarks.push(m);
+          } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) {
+            if (sp.to != null && sp.to != pos && nextChange > sp.to) {
+              nextChange = sp.to;
+              spanEndStyle = "";
+            }
+            if (m.className) { spanStyle += " " + m.className; }
+            if (m.css) { css = (css ? css + ";" : "") + m.css; }
+            if (m.startStyle && sp.from == pos) { spanStartStyle += " " + m.startStyle; }
+            if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); }
+            if (m.title && !title) { title = m.title; }
+            if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0))
+              { collapsed = sp; }
+          } else if (sp.from > pos && nextChange > sp.from) {
+            nextChange = sp.from;
+          }
+        }
+        if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2)
+          { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += " " + endStyles[j$1]; } } }
+
+        if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2)
+          { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } }
+        if (collapsed && (collapsed.from || 0) == pos) {
+          buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos,
+                             collapsed.marker, collapsed.from == null);
+          if (collapsed.to == null) { return }
+          if (collapsed.to == pos) { collapsed = false; }
+        }
+      }
+      if (pos >= len) { break }
+
+      var upto = Math.min(len, nextChange);
+      while (true) {
+        if (text) {
+          var end = pos + text.length;
+          if (!collapsed) {
+            var tokenText = end > upto ? text.slice(0, upto - pos) : text;
+            builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle,
+                             spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", title, css);
+          }
+          if (end >= upto) {text = text.slice(upto - pos); pos = upto; break}
+          pos = end;
+          spanStartStyle = "";
+        }
+        text = allText.slice(at, at = styles[i++]);
+        style = interpretTokenStyle(styles[i++], builder.cm.options);
+      }
+    }
+  }
+
+
+  // These objects are used to represent the visible (currently drawn)
+  // part of the document. A LineView may correspond to multiple
+  // logical lines, if those are connected by collapsed ranges.
+  function LineView(doc, line, lineN) {
+    // The starting line
+    this.line = line;
+    // Continuing lines, if any
+    this.rest = visualLineContinued(line);
+    // Number of logical lines in this visual line
+    this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1;
+    this.node = this.text = null;
+    this.hidden = lineIsHidden(doc, line);
+  }
+
+  // Create a range of LineView objects for the given lines.
+  function buildViewArray(cm, from, to) {
+    var array = [], nextPos;
+    for (var pos = from; pos < to; pos = nextPos) {
+      var view = new LineView(cm.doc, getLine(cm.doc, pos), pos);
+      nextPos = pos + view.size;
+      array.push(view);
+    }
+    return array
+  }
+
+  var operationGroup = null;
+
+  function pushOperation(op) {
+    if (operationGroup) {
+      operationGroup.ops.push(op);
+    } else {
+      op.ownsGroup = operationGroup = {
+        ops: [op],
+        delayedCallbacks: []
+      };
+    }
+  }
+
+  function fireCallbacksForOps(group) {
+    // Calls delayed callbacks and cursorActivity handlers until no
+    // new ones appear
+    var callbacks = group.delayedCallbacks, i = 0;
+    do {
+      for (; i < callbacks.length; i++)
+        { callbacks[i].call(null); }
+      for (var j = 0; j < group.ops.length; j++) {
+        var op = group.ops[j];
+        if (op.cursorActivityHandlers)
+          { while (op.cursorActivityCalled < op.cursorActivityHandlers.length)
+            { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } }
+      }
+    } while (i < callbacks.length)
+  }
+
+  function finishOperation(op, endCb) {
+    var group = op.ownsGroup;
+    if (!group) { return }
+
+    try { fireCallbacksForOps(group); }
+    finally {
+      operationGroup = null;
+      endCb(group);
+    }
+  }
+
+  var orphanDelayedCallbacks = null;
+
+  // Often, we want to signal events at a point where we are in the
+  // middle of some work, but don't want the handler to start calling
+  // other methods on the editor, which might be in an inconsistent
+  // state or simply not expect any other events to happen.
+  // signalLater looks whether there are any handlers, and schedules
+  // them to be executed when the last operation ends, or, if no
+  // operation is active, when a timeout fires.
+  function signalLater(emitter, type /*, values...*/) {
+    var arr = getHandlers(emitter, type);
+    if (!arr.length) { return }
+    var args = Array.prototype.slice.call(arguments, 2), list;
+    if (operationGroup) {
+      list = operationGroup.delayedCallbacks;
+    } else if (orphanDelayedCallbacks) {
+      list = orphanDelayedCallbacks;
+    } else {
+      list = orphanDelayedCallbacks = [];
+      setTimeout(fireOrphanDelayed, 0);
+    }
+    var loop = function ( i ) {
+      list.push(function () { return arr[i].apply(null, args); });
+    };
+
+    for (var i = 0; i < arr.length; ++i)
+      loop( i );
+  }
+
+  function fireOrphanDelayed() {
+    var delayed = orphanDelayedCallbacks;
+    orphanDelayedCallbacks = null;
+    for (var i = 0; i < delayed.length; ++i) { delayed[i](); }
+  }
+
+  // When an aspect of a line changes, a string is added to
+  // lineView.changes. This updates the relevant part of the line's
+  // DOM structure.
+  function updateLineForChanges(cm, lineView, lineN, dims) {
+    for (var j = 0; j < lineView.changes.length; j++) {
+      var type = lineView.changes[j];
+      if (type == "text") { updateLineText(cm, lineView); }
+      else if (type == "gutter") { updateLineGutter(cm, lineView, lineN, dims); }
+      else if (type == "class") { updateLineClasses(cm, lineView); }
+      else if (type == "widget") { updateLineWidgets(cm, lineView, dims); }
+    }
+    lineView.changes = null;
+  }
+
+  // Lines with gutter elements, widgets or a background class need to
+  // be wrapped, and have the extra elements added to the wrapper div
+  function ensureLineWrapped(lineView) {
+    if (lineView.node == lineView.text) {
+      lineView.node = elt("div", null, null, "position: relative");
+      if (lineView.text.parentNode)
+        { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); }
+      lineView.node.appendChild(lineView.text);
+      if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; }
+    }
+    return lineView.node
+  }
+
+  function updateLineBackground(cm, lineView) {
+    var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass;
+    if (cls) { cls += " CodeMirror-linebackground"; }
+    if (lineView.background) {
+      if (cls) { lineView.background.className = cls; }
+      else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; }
+    } else if (cls) {
+      var wrap = ensureLineWrapped(lineView);
+      lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild);
+      cm.display.input.setUneditable(lineView.background);
+    }
+  }
+
+  // Wrapper around buildLineContent which will reuse the structure
+  // in display.externalMeasured when possible.
+  function getLineContent(cm, lineView) {
+    var ext = cm.display.externalMeasured;
+    if (ext && ext.line == lineView.line) {
+      cm.display.externalMeasured = null;
+      lineView.measure = ext.measure;
+      return ext.built
+    }
+    return buildLineContent(cm, lineView)
+  }
+
+  // Redraw the line's text. Interacts with the background and text
+  // classes because the mode may output tokens that influence these
+  // classes.
+  function updateLineText(cm, lineView) {
+    var cls = lineView.text.className;
+    var built = getLineContent(cm, lineView);
+    if (lineView.text == lineView.node) { lineView.node = built.pre; }
+    lineView.text.parentNode.replaceChild(built.pre, lineView.text);
+    lineView.text = built.pre;
+    if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) {
+      lineView.bgClass = built.bgClass;
+      lineView.textClass = built.textClass;
+      updateLineClasses(cm, lineView);
+    } else if (cls) {
+      lineView.text.className = cls;
+    }
+  }
+
+  function updateLineClasses(cm, lineView) {
+    updateLineBackground(cm, lineView);
+    if (lineView.line.wrapClass)
+      { ensureLineWrapped(lineView).className = lineView.line.wrapClass; }
+    else if (lineView.node != lineView.text)
+      { lineView.node.className = ""; }
+    var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass;
+    lineView.text.className = textClass || "";
+  }
+
+  function updateLineGutter(cm, lineView, lineN, dims) {
+    if (lineView.gutter) {
+      lineView.node.removeChild(lineView.gutter);
+      lineView.gutter = null;
+    }
+    if (lineView.gutterBackground) {
+      lineView.node.removeChild(lineView.gutterBackground);
+      lineView.gutterBackground = null;
+    }
+    if (lineView.line.gutterClass) {
+      var wrap = ensureLineWrapped(lineView);
+      lineView.gutterBackground = elt("div", null, "CodeMirror-gutter-background " + lineView.line.gutterClass,
+                                      ("left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px; width: " + (dims.gutterTotalWidth) + "px"));
+      cm.display.input.setUneditable(lineView.gutterBackground);
+      wrap.insertBefore(lineView.gutterBackground, lineView.text);
+    }
+    var markers = lineView.line.gutterMarkers;
+    if (cm.options.lineNumbers || markers) {
+      var wrap$1 = ensureLineWrapped(lineView);
+      var gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", ("left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px"));
+      cm.display.input.setUneditable(gutterWrap);
+      wrap$1.insertBefore(gutterWrap, lineView.text);
+      if (lineView.line.gutterClass)
+        { gutterWrap.className += " " + lineView.line.gutterClass; }
+      if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"]))
+        { lineView.lineNumber = gutterWrap.appendChild(
+          elt("div", lineNumberFor(cm.options, lineN),
+              "CodeMirror-linenumber CodeMirror-gutter-elt",
+              ("left: " + (dims.gutterLeft["CodeMirror-linenumbers"]) + "px; width: " + (cm.display.lineNumInnerWidth) + "px"))); }
+      if (markers) { for (var k = 0; k < cm.options.gutters.length; ++k) {
+        var id = cm.options.gutters[k], found = markers.hasOwnProperty(id) && markers[id];
+        if (found)
+          { gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt",
+                                     ("left: " + (dims.gutterLeft[id]) + "px; width: " + (dims.gutterWidth[id]) + "px"))); }
+      } }
+    }
+  }
+
+  function updateLineWidgets(cm, lineView, dims) {
+    if (lineView.alignable) { lineView.alignable = null; }
+    for (var node = lineView.node.firstChild, next = (void 0); node; node = next) {
+      next = node.nextSibling;
+      if (node.className == "CodeMirror-linewidget")
+        { lineView.node.removeChild(node); }
+    }
+    insertLineWidgets(cm, lineView, dims);
+  }
+
+  // Build a line's DOM representation from scratch
+  function buildLineElement(cm, lineView, lineN, dims) {
+    var built = getLineContent(cm, lineView);
+    lineView.text = lineView.node = built.pre;
+    if (built.bgClass) { lineView.bgClass = built.bgClass; }
+    if (built.textClass) { lineView.textClass = built.textClass; }
+
+    updateLineClasses(cm, lineView);
+    updateLineGutter(cm, lineView, lineN, dims);
+    insertLineWidgets(cm, lineView, dims);
+    return lineView.node
+  }
+
+  // A lineView may contain multiple logical lines (when merged by
+  // collapsed spans). The widgets for all of them need to be drawn.
+  function insertLineWidgets(cm, lineView, dims) {
+    insertLineWidgetsFor(cm, lineView.line, lineView, dims, true);
+    if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)
+      { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } }
+  }
+
+  function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) {
+    if (!line.widgets) { return }
+    var wrap = ensureLineWrapped(lineView);
+    for (var i = 0, ws = line.widgets; i < ws.length; ++i) {
+      var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget");
+      if (!widget.handleMouseEvents) { node.setAttribute("cm-ignore-events", "true"); }
+      positionLineWidget(widget, node, lineView, dims);
+      cm.display.input.setUneditable(node);
+      if (allowAbove && widget.above)
+        { wrap.insertBefore(node, lineView.gutter || lineView.text); }
+      else
+        { wrap.appendChild(node); }
+      signalLater(widget, "redraw");
+    }
+  }
+
+  function positionLineWidget(widget, node, lineView, dims) {
+    if (widget.noHScroll) {
+  (lineView.alignable || (lineView.alignable = [])).push(node);
+      var width = dims.wrapperWidth;
+      node.style.left = dims.fixedPos + "px";
+      if (!widget.coverGutter) {
+        width -= dims.gutterTotalWidth;
+        node.style.paddingLeft = dims.gutterTotalWidth + "px";
+      }
+      node.style.width = width + "px";
+    }
+    if (widget.coverGutter) {
+      node.style.zIndex = 5;
+      node.style.position = "relative";
+      if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + "px"; }
+    }
+  }
+
+  function widgetHeight(widget) {
+    if (widget.height != null) { return widget.height }
+    var cm = widget.doc.cm;
+    if (!cm) { return 0 }
+    if (!contains(document.body, widget.node)) {
+      var parentStyle = "position: relative;";
+      if (widget.coverGutter)
+        { parentStyle += "margin-left: -" + cm.display.gutters.offsetWidth + "px;"; }
+      if (widget.noHScroll)
+        { parentStyle += "width: " + cm.display.wrapper.clientWidth + "px;"; }
+      removeChildrenAndAdd(cm.display.measure, elt("div", [widget.node], null, parentStyle));
+    }
+    return widget.height = widget.node.parentNode.offsetHeight
+  }
+
+  // Return true when the given mouse event happened in a widget
+  function eventInWidget(display, e) {
+    for (var n = e_target(e); n != display.wrapper; n = n.parentNode) {
+      if (!n || (n.nodeType == 1 && n.getAttribute("cm-ignore-events") == "true") ||
+          (n.parentNode == display.sizer && n != display.mover))
+        { return true }
+    }
+  }
+
+  // POSITION MEASUREMENT
+
+  function paddingTop(display) {return display.lineSpace.offsetTop}
+  function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight}
+  function paddingH(display) {
+    if (display.cachedPaddingH) { return display.cachedPaddingH }
+    var e = removeChildrenAndAdd(display.measure, elt("pre", "x"));
+    var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle;
+    var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)};
+    if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; }
+    return data
+  }
+
+  function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth }
+  function displayWidth(cm) {
+    return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth
+  }
+  function displayHeight(cm) {
+    return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight
+  }
+
+  // Ensure the lineView.wrapping.heights array is populated. This is
+  // an array of bottom offsets for the lines that make up a drawn
+  // line. When lineWrapping is on, there might be more than one
+  // height.
+  function ensureLineHeights(cm, lineView, rect) {
+    var wrapping = cm.options.lineWrapping;
+    var curWidth = wrapping && displayWidth(cm);
+    if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) {
+      var heights = lineView.measure.heights = [];
+      if (wrapping) {
+        lineView.measure.width = curWidth;
+        var rects = lineView.text.firstChild.getClientRects();
+        for (var i = 0; i < rects.length - 1; i++) {
+          var cur = rects[i], next = rects[i + 1];
+          if (Math.abs(cur.bottom - next.bottom) > 2)
+            { heights.push((cur.bottom + next.top) / 2 - rect.top); }
+        }
+      }
+      heights.push(rect.bottom - rect.top);
+    }
+  }
+
+  // Find a line map (mapping character offsets to text nodes) and a
+  // measurement cache for the given line number. (A line view might
+  // contain multiple lines when collapsed ranges are present.)
+  function mapFromLineView(lineView, line, lineN) {
+    if (lineView.line == line)
+      { return {map: lineView.measure.map, cache: lineView.measure.cache} }
+    for (var i = 0; i < lineView.rest.length; i++)
+      { if (lineView.rest[i] == line)
+        { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } }
+    for (var i$1 = 0; i$1 < lineView.rest.length; i$1++)
+      { if (lineNo(lineView.rest[i$1]) > lineN)
+        { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } }
+  }
+
+  // Render a line into the hidden node display.externalMeasured. Used
+  // when measurement is needed for a line that's not in the viewport.
+  function updateExternalMeasurement(cm, line) {
+    line = visualLine(line);
+    var lineN = lineNo(line);
+    var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN);
+    view.lineN = lineN;
+    var built = view.built = buildLineContent(cm, view);
+    view.text = built.pre;
+    removeChildrenAndAdd(cm.display.lineMeasure, built.pre);
+    return view
+  }
+
+  // Get a {top, bottom, left, right} box (in line-local coordinates)
+  // for a given character.
+  function measureChar(cm, line, ch, bias) {
+    return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias)
+  }
+
+  // Find a line view that corresponds to the given line number.
+  function findViewForLine(cm, lineN) {
+    if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo)
+      { return cm.display.view[findViewIndex(cm, lineN)] }
+    var ext = cm.display.externalMeasured;
+    if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size)
+      { return ext }
+  }
+
+  // Measurement can be split in two steps, the set-up work that
+  // applies to the whole line, and the measurement of the actual
+  // character. Functions like coordsChar, that need to do a lot of
+  // measurements in a row, can thus ensure that the set-up work is
+  // only done once.
+  function prepareMeasureForLine(cm, line) {
+    var lineN = lineNo(line);
+    var view = findViewForLine(cm, lineN);
+    if (view && !view.text) {
+      view = null;
+    } else if (view && view.changes) {
+      updateLineForChanges(cm, view, lineN, getDimensions(cm));
+      cm.curOp.forceUpdate = true;
+    }
+    if (!view)
+      { view = updateExternalMeasurement(cm, line); }
+
+    var info = mapFromLineView(view, line, lineN);
+    return {
+      line: line, view: view, rect: null,
+      map: info.map, cache: info.cache, before: info.before,
+      hasHeights: false
+    }
+  }
+
+  // Given a prepared measurement object, measures the position of an
+  // actual character (or fetches it from the cache).
+  function measureCharPrepared(cm, prepared, ch, bias, varHeight) {
+    if (prepared.before) { ch = -1; }
+    var key = ch + (bias || ""), found;
+    if (prepared.cache.hasOwnProperty(key)) {
+      found = prepared.cache[key];
+    } else {
+      if (!prepared.rect)
+        { prepared.rect = prepared.view.text.getBoundingClientRect(); }
+      if (!prepared.hasHeights) {
+        ensureLineHeights(cm, prepared.view, prepared.rect);
+        prepared.hasHeights = true;
+      }
+      found = measureCharInner(cm, prepared, ch, bias);
+      if (!found.bogus) { prepared.cache[key] = found; }
+    }
+    return {left: found.left, right: found.right,
+            top: varHeight ? found.rtop : found.top,
+            bottom: varHeight ? found.rbottom : found.bottom}
+  }
+
+  var nullRect = {left: 0, right: 0, top: 0, bottom: 0};
+
+  function nodeAndOffsetInLineMap(map$$1, ch, bias) {
+    var node, start, end, collapse, mStart, mEnd;
+    // First, search the line map for the text node corresponding to,
+    // or closest to, the target character.
+    for (var i = 0; i < map$$1.length; i += 3) {
+      mStart = map$$1[i];
+      mEnd = map$$1[i + 1];
+      if (ch < mStart) {
+        start = 0; end = 1;
+        collapse = "left";
+      } else if (ch < mEnd) {
+        start = ch - mStart;
+        end = start + 1;
+      } else if (i == map$$1.length - 3 || ch == mEnd && map$$1[i + 3] > ch) {
+        end = mEnd - mStart;
+        start = end - 1;
+        if (ch >= mEnd) { collapse = "right"; }
+      }
+      if (start != null) {
+        node = map$$1[i + 2];
+        if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right"))
+          { collapse = bias; }
+        if (bias == "left" && start == 0)
+          { while (i && map$$1[i - 2] == map$$1[i - 3] && map$$1[i - 1].insertLeft) {
+            node = map$$1[(i -= 3) + 2];
+            collapse = "left";
+          } }
+        if (bias == "right" && start == mEnd - mStart)
+          { while (i < map$$1.length - 3 && map$$1[i + 3] == map$$1[i + 4] && !map$$1[i + 5].insertLeft) {
+            node = map$$1[(i += 3) + 2];
+            collapse = "right";
+          } }
+        break
+      }
+    }
+    return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd}
+  }
+
+  function getUsefulRect(rects, bias) {
+    var rect = nullRect;
+    if (bias == "left") { for (var i = 0; i < rects.length; i++) {
+      if ((rect = rects[i]).left != rect.right) { break }
+    } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) {
+      if ((rect = rects[i$1]).left != rect.right) { break }
+    } }
+    return rect
+  }
+
+  function measureCharInner(cm, prepared, ch, bias) {
+    var place = nodeAndOffsetInLineMap(prepared.map, ch, bias);
+    var node = place.node, start = place.start, end = place.end, collapse = place.collapse;
+
+    var rect;
+    if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates.
+      for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned
+        while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; }
+        while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; }
+        if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart)
+          { rect = node.parentNode.getBoundingClientRect(); }
+        else
+          { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); }
+        if (rect.left || rect.right || start == 0) { break }
+        end = start;
+        start = start - 1;
+        collapse = "right";
+      }
+      if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); }
+    } else { // If it is a widget, simply get the box for the whole widget.
+      if (start > 0) { collapse = bias = "right"; }
+      var rects;
+      if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1)
+        { rect = rects[bias == "right" ? rects.length - 1 : 0]; }
+      else
+        { rect = node.getBoundingClientRect(); }
+    }
+    if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) {
+      var rSpan = node.parentNode.getClientRects()[0];
+      if (rSpan)
+        { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; }
+      else
+        { rect = nullRect; }
+    }
+
+    var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top;
+    var mid = (rtop + rbot) / 2;
+    var heights = prepared.view.measure.heights;
+    var i = 0;
+    for (; i < heights.length - 1; i++)
+      { if (mid < heights[i]) { break } }
+    var top = i ? heights[i - 1] : 0, bot = heights[i];
+    var result = {left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left,
+                  right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left,
+                  top: top, bottom: bot};
+    if (!rect.left && !rect.right) { result.bogus = true; }
+    if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; }
+
+    return result
+  }
+
+  // Work around problem with bounding client rects on ranges being
+  // returned incorrectly when zoomed on IE10 and below.
+  function maybeUpdateRectForZooming(measure, rect) {
+    if (!window.screen || screen.logicalXDPI == null ||
+        screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure))
+      { return rect }
+    var scaleX = screen.logicalXDPI / screen.deviceXDPI;
+    var scaleY = screen.logicalYDPI / screen.deviceYDPI;
+    return {left: rect.left * scaleX, right: rect.right * scaleX,
+            top: rect.top * scaleY, bottom: rect.bottom * scaleY}
+  }
+
+  function clearLineMeasurementCacheFor(lineView) {
+    if (lineView.measure) {
+      lineView.measure.cache = {};
+      lineView.measure.heights = null;
+      if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++)
+        { lineView.measure.caches[i] = {}; } }
+    }
+  }
+
+  function clearLineMeasurementCache(cm) {
+    cm.display.externalMeasure = null;
+    removeChildren(cm.display.lineMeasure);
+    for (var i = 0; i < cm.display.view.length; i++)
+      { clearLineMeasurementCacheFor(cm.display.view[i]); }
+  }
+
+  function clearCaches(cm) {
+    clearLineMeasurementCache(cm);
+    cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null;
+    if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; }
+    cm.display.lineNumChars = null;
+  }
+
+  function pageScrollX() {
+    // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206
+    // which causes page_Offset and bounding client rects to use
+    // different reference viewports and invalidate our calculations.
+    if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) }
+    return window.pageXOffset || (document.documentElement || document.body).scrollLeft
+  }
+  function pageScrollY() {
+    if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) }
+    return window.pageYOffset || (document.documentElement || document.body).scrollTop
+  }
+
+  function widgetTopHeight(lineObj) {
+    var height = 0;
+    if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above)
+      { height += widgetHeight(lineObj.widgets[i]); } } }
+    return height
+  }
+
+  // Converts a {top, bottom, left, right} box from line-local
+  // coordinates into another coordinate system. Context may be one of
+  // "line", "div" (display.lineDiv), "local"./null (editor), "window",
+  // or "page".
+  function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) {
+    if (!includeWidgets) {
+      var height = widgetTopHeight(lineObj);
+      rect.top += height; rect.bottom += height;
+    }
+    if (context == "line") { return rect }
+    if (!context) { context = "local"; }
+    var yOff = heightAtLine(lineObj);
+    if (context == "local") { yOff += paddingTop(cm.display); }
+    else { yOff -= cm.display.viewOffset; }
+    if (context == "page" || context == "window") {
+      var lOff = cm.display.lineSpace.getBoundingClientRect();
+      yOff += lOff.top + (context == "window" ? 0 : pageScrollY());
+      var xOff = lOff.left + (context == "window" ? 0 : pageScrollX());
+      rect.left += xOff; rect.right += xOff;
+    }
+    rect.top += yOff; rect.bottom += yOff;
+    return rect
+  }
+
+  // Coverts a box from "div" coords to another coordinate system.
+  // Context may be "window", "page", "div", or "local"./null.
+  function fromCoordSystem(cm, coords, context) {
+    if (context == "div") { return coords }
+    var left = coords.left, top = coords.top;
+    // First move into "page" coordinate system
+    if (context == "page") {
+      left -= pageScrollX();
+      top -= pageScrollY();
+    } else if (context == "local" || !context) {
+      var localBox = cm.display.sizer.getBoundingClientRect();
+      left += localBox.left;
+      top += localBox.top;
+    }
+
+    var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect();
+    return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top}
+  }
+
+  function charCoords(cm, pos, context, lineObj, bias) {
+    if (!lineObj) { lineObj = getLine(cm.doc, pos.line); }
+    return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context)
+  }
+
+  // Returns a box for a given cursor position, which may have an
+  // 'other' property containing the position of the secondary cursor
+  // on a bidi boundary.
+  // A cursor Pos(line, char, "before") is on the same visual line as `char - 1`
+  // and after `char - 1` in writing order of `char - 1`
+  // A cursor Pos(line, char, "after") is on the same visual line as `char`
+  // and before `char` in writing order of `char`
+  // Examples (upper-case letters are RTL, lower-case are LTR):
+  //     Pos(0, 1, ...)
+  //     before   after
+  // ab     a|b     a|b
+  // aB     a|B     aB|
+  // Ab     |Ab     A|b
+  // AB     B|A     B|A
+  // Every position after the last character on a line is considered to stick
+  // to the last character on the line.
+  function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) {
+    lineObj = lineObj || getLine(cm.doc, pos.line);
+    if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }
+    function get(ch, right) {
+      var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight);
+      if (right) { m.left = m.right; } else { m.right = m.left; }
+      return intoCoordSystem(cm, lineObj, m, context)
+    }
+    var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky;
+    if (ch >= lineObj.text.length) {
+      ch = lineObj.text.length;
+      sticky = "before";
+    } else if (ch <= 0) {
+      ch = 0;
+      sticky = "after";
+    }
+    if (!order) { return get(sticky == "before" ? ch - 1 : ch, sticky == "before") }
+
+    function getBidi(ch, partPos, invert) {
+      var part = order[partPos], right = part.level == 1;
+      return get(invert ? ch - 1 : ch, right != invert)
+    }
+    var partPos = getBidiPartAt(order, ch, sticky);
+    var other = bidiOther;
+    var val = getBidi(ch, partPos, sticky == "before");
+    if (other != null) { val.other = getBidi(ch, other, sticky != "before"); }
+    return val
+  }
+
+  // Used to cheaply estimate the coordinates for a position. Used for
+  // intermediate scroll updates.
+  function estimateCoords(cm, pos) {
+    var left = 0;
+    pos = clipPos(cm.doc, pos);
+    if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; }
+    var lineObj = getLine(cm.doc, pos.line);
+    var top = heightAtLine(lineObj) + paddingTop(cm.display);
+    return {left: left, right: left, top: top, bottom: top + lineObj.height}
+  }
+
+  // Positions returned by coordsChar contain some extra information.
+  // xRel is the relative x position of the input coordinates compared
+  // to the found position (so xRel > 0 means the coordinates are to
+  // the right of the character position, for example). When outside
+  // is true, that means the coordinates lie outside the line's
+  // vertical range.
+  function PosWithInfo(line, ch, sticky, outside, xRel) {
+    var pos = Pos(line, ch, sticky);
+    pos.xRel = xRel;
+    if (outside) { pos.outside = true; }
+    return pos
+  }
+
+  // Compute the character position closest to the given coordinates.
+  // Input must be lineSpace-local ("div" coordinate system).
+  function coordsChar(cm, x, y) {
+    var doc = cm.doc;
+    y += cm.display.viewOffset;
+    if (y < 0) { return PosWithInfo(doc.first, 0, null, true, -1) }
+    var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1;
+    if (lineN > last)
+      { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, true, 1) }
+    if (x < 0) { x = 0; }
+
+    var lineObj = getLine(doc, lineN);
+    for (;;) {
+      var found = coordsCharInner(cm, lineObj, lineN, x, y);
+      var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 ? 1 : 0));
+      if (!collapsed) { return found }
+      var rangeEnd = collapsed.find(1);
+      if (rangeEnd.line == lineN) { return rangeEnd }
+      lineObj = getLine(doc, lineN = rangeEnd.line);
+    }
+  }
+
+  function wrappedLineExtent(cm, lineObj, preparedMeasure, y) {
+    y -= widgetTopHeight(lineObj);
+    var end = lineObj.text.length;
+    var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0);
+    end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end);
+    return {begin: begin, end: end}
+  }
+
+  function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) {
+    if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); }
+    var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), "line").top;
+    return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop)
+  }
+
+  // Returns true if the given side of a box is after the given
+  // coordinates, in top-to-bottom, left-to-right order.
+  function boxIsAfter(box, x, y, left) {
+    return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x
+  }
+
+  function coordsCharInner(cm, lineObj, lineNo$$1, x, y) {
+    // Move y into line-local coordinate space
+    y -= heightAtLine(lineObj);
+    var preparedMeasure = prepareMeasureForLine(cm, lineObj);
+    // When directly calling `measureCharPrepared`, we have to adjust
+    // for the widgets at this line.
+    var widgetHeight$$1 = widgetTopHeight(lineObj);
+    var begin = 0, end = lineObj.text.length, ltr = true;
+
+    var order = getOrder(lineObj, cm.doc.direction);
+    // If the line isn't plain left-to-right text, first figure out
+    // which bidi section the coordinates fall into.
+    if (order) {
+      var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart)
+                   (cm, lineObj, lineNo$$1, preparedMeasure, order, x, y);
+      ltr = part.level != 1;
+      // The awkward -1 offsets are needed because findFirst (called
+      // on these below) will treat its first bound as inclusive,
+      // second as exclusive, but we want to actually address the
+      // characters in the part's range
+      begin = ltr ? part.from : part.to - 1;
+      end = ltr ? part.to : part.from - 1;
+    }
+
+    // A binary search to find the first character whose bounding box
+    // starts after the coordinates. If we run across any whose box wrap
+    // the coordinates, store that.
+    var chAround = null, boxAround = null;
+    var ch = findFirst(function (ch) {
+      var box = measureCharPrepared(cm, preparedMeasure, ch);
+      box.top += widgetHeight$$1; box.bottom += widgetHeight$$1;
+      if (!boxIsAfter(box, x, y, false)) { return false }
+      if (box.top <= y && box.left <= x) {
+        chAround = ch;
+        boxAround = box;
+      }
+      return true
+    }, begin, end);
+
+    var baseX, sticky, outside = false;
+    // If a box around the coordinates was found, use that
+    if (boxAround) {
+      // Distinguish coordinates nearer to the left or right side of the box
+      var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr;
+      ch = chAround + (atStart ? 0 : 1);
+      sticky = atStart ? "after" : "before";
+      baseX = atLeft ? boxAround.left : boxAround.right;
+    } else {
+      // (Adjust for extended bound, if necessary.)
+      if (!ltr && (ch == end || ch == begin)) { ch++; }
+      // To determine which side to associate with, get the box to the
+      // left of the character and compare it's vertical position to the
+      // coordinates
+      sticky = ch == 0 ? "after" : ch == lineObj.text.length ? "before" :
+        (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight$$1 <= y) == ltr ?
+        "after" : "before";
+      // Now get accurate coordinates for this place, in order to get a
+      // base X position
+      var coords = cursorCoords(cm, Pos(lineNo$$1, ch, sticky), "line", lineObj, preparedMeasure);
+      baseX = coords.left;
+      outside = y < coords.top || y >= coords.bottom;
+    }
+
+    ch = skipExtendingChars(lineObj.text, ch, 1);
+    return PosWithInfo(lineNo$$1, ch, sticky, outside, x - baseX)
+  }
+
+  function coordsBidiPart(cm, lineObj, lineNo$$1, preparedMeasure, order, x, y) {
+    // Bidi parts are sorted left-to-right, and in a non-line-wrapping
+    // situation, we can take this ordering to correspond to the visual
+    // ordering. This finds the first part whose end is after the given
+    // coordinates.
+    var index = findFirst(function (i) {
+      var part = order[i], ltr = part.level != 1;
+      return boxIsAfter(cursorCoords(cm, Pos(lineNo$$1, ltr ? part.to : part.from, ltr ? "before" : "after"),
+                                     "line", lineObj, preparedMeasure), x, y, true)
+    }, 0, order.length - 1);
+    var part = order[index];
+    // If this isn't the first part, the part's start is also after
+    // the coordinates, and the coordinates aren't on the same line as
+    // that start, move one part back.
+    if (index > 0) {
+      var ltr = part.level != 1;
+      var start = cursorCoords(cm, Pos(lineNo$$1, ltr ? part.from : part.to, ltr ? "after" : "before"),
+                               "line", lineObj, preparedMeasure);
+      if (boxIsAfter(start, x, y, true) && start.top > y)
+        { part = order[index - 1]; }
+    }
+    return part
+  }
+
+  function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) {
+    // In a wrapped line, rtl text on wrapping boundaries can do things
+    // that don't correspond to the ordering in our `order` array at
+    // all, so a binary search doesn't work, and we want to return a
+    // part that only spans one line so that the binary search in
+    // coordsCharInner is safe. As such, we first find the extent of the
+    // wrapped line, and then do a flat search in which we discard any
+    // spans that aren't on the line.
+    var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y);
+    var begin = ref.begin;
+    var end = ref.end;
+    if (/\s/.test(lineObj.text.charAt(end - 1))) { end--; }
+    var part = null, closestDist = null;
+    for (var i = 0; i < order.length; i++) {
+      var p = order[i];
+      if (p.from >= end || p.to <= begin) { continue }
+      var ltr = p.level != 1;
+      var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right;
+      // Weigh against spans ending before this, so that they are only
+      // picked if nothing ends after
+      var dist = endX < x ? x - endX + 1e9 : endX - x;
+      if (!part || closestDist > dist) {
+        part = p;
+        closestDist = dist;
+      }
+    }
+    if (!part) { part = order[order.length - 1]; }
+    // Clip the part to the wrapped line.
+    if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; }
+    if (part.to > end) { part = {from: part.from, to: end, level: part.level}; }
+    return part
+  }
+
+  var measureText;
+  // Compute the default text height.
+  function textHeight(display) {
+    if (display.cachedTextHeight != null) { return display.cachedTextHeight }
+    if (measureText == null) {
+      measureText = elt("pre");
+      // Measure a bunch of lines, for browsers that compute
+      // fractional heights.
+      for (var i = 0; i < 49; ++i) {
+        measureText.appendChild(document.createTextNode("x"));
+        measureText.appendChild(elt("br"));
+      }
+      measureText.appendChild(document.createTextNode("x"));
+    }
+    removeChildrenAndAdd(display.measure, measureText);
+    var height = measureText.offsetHeight / 50;
+    if (height > 3) { display.cachedTextHeight = height; }
+    removeChildren(display.measure);
+    return height || 1
+  }
+
+  // Compute the default character width.
+  function charWidth(display) {
+    if (display.cachedCharWidth != null) { return display.cachedCharWidth }
+    var anchor = elt("span", "xxxxxxxxxx");
+    var pre = elt("pre", [anchor]);
+    removeChildrenAndAdd(display.measure, pre);
+    var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10;
+    if (width > 2) { display.cachedCharWidth = width; }
+    return width || 10
+  }
+
+  // Do a bulk-read of the DOM positions and sizes needed to draw the
+  // view, so that we don't interleave reading and writing to the DOM.
+  function getDimensions(cm) {
+    var d = cm.display, left = {}, width = {};
+    var gutterLeft = d.gutters.clientLeft;
+    for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) {
+      left[cm.options.gutters[i]] = n.offsetLeft + n.clientLeft + gutterLeft;
+      width[cm.options.gutters[i]] = n.clientWidth;
+    }
+    return {fixedPos: compensateForHScroll(d),
+            gutterTotalWidth: d.gutters.offsetWidth,
+            gutterLeft: left,
+            gutterWidth: width,
+            wrapperWidth: d.wrapper.clientWidth}
+  }
+
+  // Computes display.scroller.scrollLeft + display.gutters.offsetWidth,
+  // but using getBoundingClientRect to get a sub-pixel-accurate
+  // result.
+  function compensateForHScroll(display) {
+    return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left
+  }
+
+  // Returns a function that estimates the height of a line, to use as
+  // first approximation until the line becomes visible (and is thus
+  // properly measurable).
+  function estimateHeight(cm) {
+    var th = textHeight(cm.display), wrapping = cm.options.lineWrapping;
+    var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3);
+    return function (line) {
+      if (lineIsHidden(cm.doc, line)) { return 0 }
+
+      var widgetsHeight = 0;
+      if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) {
+        if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; }
+      } }
+
+      if (wrapping)
+        { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th }
+      else
+        { return widgetsHeight + th }
+    }
+  }
+
+  function estimateLineHeights(cm) {
+    var doc = cm.doc, est = estimateHeight(cm);
+    doc.iter(function (line) {
+      var estHeight = est(line);
+      if (estHeight != line.height) { updateLineHeight(line, estHeight); }
+    });
+  }
+
+  // Given a mouse event, find the corresponding position. If liberal
+  // is false, it checks whether a gutter or scrollbar was clicked,
+  // and returns null if it was. forRect is used by rectangular
+  // selections, and tries to estimate a character position even for
+  // coordinates beyond the right of the text.
+  function posFromMouse(cm, e, liberal, forRect) {
+    var display = cm.display;
+    if (!liberal && e_target(e).getAttribute("cm-not-content") == "true") { return null }
+
+    var x, y, space = display.lineSpace.getBoundingClientRect();
+    // Fails unpredictably on IE[67] when mouse is dragged around quickly.
+    try { x = e.clientX - space.left; y = e.clientY - space.top; }
+    catch (e) { return null }
+    var coords = coordsChar(cm, x, y), line;
+    if (forRect && coords.xRel == 1 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) {
+      var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length;
+      coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff));
+    }
+    return coords
+  }
+
+  // Find the view element corresponding to a given line. Return null
+  // when the line isn't visible.
+  function findViewIndex(cm, n) {
+    if (n >= cm.display.viewTo) { return null }
+    n -= cm.display.viewFrom;
+    if (n < 0) { return null }
+    var view = cm.display.view;
+    for (var i = 0; i < view.length; i++) {
+      n -= view[i].size;
+      if (n < 0) { return i }
+    }
+  }
+
+  function updateSelection(cm) {
+    cm.display.input.showSelection(cm.display.input.prepareSelection());
+  }
+
+  function prepareSelection(cm, primary) {
+    if ( primary === void 0 ) primary = true;
+
+    var doc = cm.doc, result = {};
+    var curFragment = result.cursors = document.createDocumentFragment();
+    var selFragment = result.selection = document.createDocumentFragment();
+
+    for (var i = 0; i < doc.sel.ranges.length; i++) {
+      if (!primary && i == doc.sel.primIndex) { continue }
+      var range$$1 = doc.sel.ranges[i];
+      if (range$$1.from().line >= cm.display.viewTo || range$$1.to().line < cm.display.viewFrom) { continue }
+      var collapsed = range$$1.empty();
+      if (collapsed || cm.options.showCursorWhenSelecting)
+        { drawSelectionCursor(cm, range$$1.head, curFragment); }
+      if (!collapsed)
+        { drawSelectionRange(cm, range$$1, selFragment); }
+    }
+    return result
+  }
+
+  // Draws a cursor for the given range
+  function drawSelectionCursor(cm, head, output) {
+    var pos = cursorCoords(cm, head, "div", null, null, !cm.options.singleCursorHeightPerLine);
+
+    var cursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor"));
+    cursor.style.left = pos.left + "px";
+    cursor.style.top = pos.top + "px";
+    cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px";
+
+    if (pos.other) {
+      // Secondary cursor, shown when on a 'jump' in bi-directional text
+      var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor"));
+      otherCursor.style.display = "";
+      otherCursor.style.left = pos.other.left + "px";
+      otherCursor.style.top = pos.other.top + "px";
+      otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px";
+    }
+  }
+
+  function cmpCoords(a, b) { return a.top - b.top || a.left - b.left }
+
+  // Draws the given range as a highlighted selection
+  function drawSelectionRange(cm, range$$1, output) {
+    var display = cm.display, doc = cm.doc;
+    var fragment = document.createDocumentFragment();
+    var padding = paddingH(cm.display), leftSide = padding.left;
+    var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right;
+    var docLTR = doc.direction == "ltr";
+
+    function add(left, top, width, bottom) {
+      if (top < 0) { top = 0; }
+      top = Math.round(top);
+      bottom = Math.round(bottom);
+      fragment.appendChild(elt("div", null, "CodeMirror-selected", ("position: absolute; left: " + left + "px;\n                             top: " + top + "px; width: " + (width == null ? rightSide - left : width) + "px;\n                             height: " + (bottom - top) + "px")));
+    }
+
+    function drawForLine(line, fromArg, toArg) {
+      var lineObj = getLine(doc, line);
+      var lineLen = lineObj.text.length;
+      var start, end;
+      function coords(ch, bias) {
+        return charCoords(cm, Pos(line, ch), "div", lineObj, bias)
+      }
+
+      function wrapX(pos, dir, side) {
+        var extent = wrappedLineExtentChar(cm, lineObj, null, pos);
+        var prop = (dir == "ltr") == (side == "after") ? "left" : "right";
+        var ch = side == "after" ? extent.begin : extent.end - (/\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1);
+        return coords(ch, prop)[prop]
+      }
+
+      var order = getOrder(lineObj, doc.direction);
+      iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) {
+        var ltr = dir == "ltr";
+        var fromPos = coords(from, ltr ? "left" : "right");
+        var toPos = coords(to - 1, ltr ? "right" : "left");
+
+        var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen;
+        var first = i == 0, last = !order || i == order.length - 1;
+        if (toPos.top - fromPos.top <= 3) { // Single line
+          var openLeft = (docLTR ? openStart : openEnd) && first;
+          var openRight = (docLTR ? openEnd : openStart) && last;
+          var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left;
+          var right = openRight ? rightSide : (ltr ? toPos : fromPos).right;
+          add(left, fromPos.top, right - left, fromPos.bottom);
+        } else { // Multiple lines
+          var topLeft, topRight, botLeft, botRight;
+          if (ltr) {
+            topLeft = docLTR && openStart && first ? leftSide : fromPos.left;
+            topRight = docLTR ? rightSide : wrapX(from, dir, "before");
+            botLeft = docLTR ? leftSide : wrapX(to, dir, "after");
+            botRight = docLTR && openEnd && last ? rightSide : toPos.right;
+          } else {
+            topLeft = !docLTR ? leftSide : wrapX(from, dir, "before");
+            topRight = !docLTR && openStart && first ? rightSide : fromPos.right;
+            botLeft = !docLTR && openEnd && last ? leftSide : toPos.left;
+            botRight = !docLTR ? rightSide : wrapX(to, dir, "after");
+          }
+          add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom);
+          if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); }
+          add(botLeft, toPos.top, botRight - botLeft, toPos.bottom);
+        }
+
+        if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; }
+        if (cmpCoords(toPos, start) < 0) { start = toPos; }
+        if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; }
+        if (cmpCoords(toPos, end) < 0) { end = toPos; }
+      });
+      return {start: start, end: end}
+    }
+
+    var sFrom = range$$1.from(), sTo = range$$1.to();
+    if (sFrom.line == sTo.line) {
+      drawForLine(sFrom.line, sFrom.ch, sTo.ch);
+    } else {
+      var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line);
+      var singleVLine = visualLine(fromLine) == visualLine(toLine);
+      var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end;
+      var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start;
+      if (singleVLine) {
+        if (leftEnd.top < rightStart.top - 2) {
+          add(leftEnd.right, leftEnd.top, null, leftEnd.bottom);
+          add(leftSide, rightStart.top, rightStart.left, rightStart.bottom);
+        } else {
+          add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom);
+        }
+      }
+      if (leftEnd.bottom < rightStart.top)
+        { add(leftSide, leftEnd.bottom, null, rightStart.top); }
+    }
+
+    output.appendChild(fragment);
+  }
+
+  // Cursor-blinking
+  function restartBlink(cm) {
+    if (!cm.state.focused) { return }
+    var display = cm.display;
+    clearInterval(display.blinker);
+    var on = true;
+    display.cursorDiv.style.visibility = "";
+    if (cm.options.cursorBlinkRate > 0)
+      { display.blinker = setInterval(function () { return display.cursorDiv.style.visibility = (on = !on) ? "" : "hidden"; },
+        cm.options.cursorBlinkRate); }
+    else if (cm.options.cursorBlinkRate < 0)
+      { display.cursorDiv.style.visibility = "hidden"; }
+  }
+
+  function ensureFocus(cm) {
+    if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); }
+  }
+
+  function delayBlurEvent(cm) {
+    cm.state.delayingBlurEvent = true;
+    setTimeout(function () { if (cm.state.delayingBlurEvent) {
+      cm.state.delayingBlurEvent = false;
+      onBlur(cm);
+    } }, 100);
+  }
+
+  function onFocus(cm, e) {
+    if (cm.state.delayingBlurEvent) { cm.state.delayingBlurEvent = false; }
+
+    if (cm.options.readOnly == "nocursor") { return }
+    if (!cm.state.focused) {
+      signal(cm, "focus", cm, e);
+      cm.state.focused = true;
+      addClass(cm.display.wrapper, "CodeMirror-focused");
+      // This test prevents this from firing when a context
+      // menu is closed (since the input reset would kill the
+      // select-all detection hack)
+      if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) {
+        cm.display.input.reset();
+        if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730
+      }
+      cm.display.input.receivedFocus();
+    }
+    restartBlink(cm);
+  }
+  function onBlur(cm, e) {
+    if (cm.state.delayingBlurEvent) { return }
+
+    if (cm.state.focused) {
+      signal(cm, "blur", cm, e);
+      cm.state.focused = false;
+      rmClass(cm.display.wrapper, "CodeMirror-focused");
+    }
+    clearInterval(cm.display.blinker);
+    setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150);
+  }
+
+  // Read the actual heights of the rendered lines, and update their
+  // stored heights to match.
+  function updateHeightsInViewport(cm) {
+    var display = cm.display;
+    var prevBottom = display.lineDiv.offsetTop;
+    for (var i = 0; i < display.view.length; i++) {
+      var cur = display.view[i], height = (void 0);
+      if (cur.hidden) { continue }
+      if (ie && ie_version < 8) {
+        var bot = cur.node.offsetTop + cur.node.offsetHeight;
+        height = bot - prevBottom;
+        prevBottom = bot;
+      } else {
+        var box = cur.node.getBoundingClientRect();
+        height = box.bottom - box.top;
+      }
+      var diff = cur.line.height - height;
+      if (height < 2) { height = textHeight(display); }
+      if (diff > .005 || diff < -.005) {
+        updateLineHeight(cur.line, height);
+        updateWidgetHeight(cur.line);
+        if (cur.rest) { for (var j = 0; j < cur.rest.length; j++)
+          { updateWidgetHeight(cur.rest[j]); } }
+      }
+    }
+  }
+
+  // Read and store the height of line widgets associated with the
+  // given line.
+  function updateWidgetHeight(line) {
+    if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) {
+      var w = line.widgets[i], parent = w.node.parentNode;
+      if (parent) { w.height = parent.offsetHeight; }
+    } }
+  }
+
+  // Compute the lines that are visible in a given viewport (defaults
+  // the the current scroll position). viewport may contain top,
+  // height, and ensure (see op.scrollToPos) properties.
+  function visibleLines(display, doc, viewport) {
+    var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop;
+    top = Math.floor(top - paddingTop(display));
+    var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight;
+
+    var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom);
+    // Ensure is a {from: {line, ch}, to: {line, ch}} object, and
+    // forces those lines into the viewport (if possible).
+    if (viewport && viewport.ensure) {
+      var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line;
+      if (ensureFrom < from) {
+        from = ensureFrom;
+        to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight);
+      } else if (Math.min(ensureTo, doc.lastLine()) >= to) {
+        from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight);
+        to = ensureTo;
+      }
+    }
+    return {from: from, to: Math.max(to, from + 1)}
+  }
+
+  // Re-align line numbers and gutter marks to compensate for
+  // horizontal scrolling.
+  function alignHorizontally(cm) {
+    var display = cm.display, view = display.view;
+    if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return }
+    var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft;
+    var gutterW = display.gutters.offsetWidth, left = comp + "px";
+    for (var i = 0; i < view.length; i++) { if (!view[i].hidden) {
+      if (cm.options.fixedGutter) {
+        if (view[i].gutter)
+          { view[i].gutter.style.left = left; }
+        if (view[i].gutterBackground)
+          { view[i].gutterBackground.style.left = left; }
+      }
+      var align = view[i].alignable;
+      if (align) { for (var j = 0; j < align.length; j++)
+        { align[j].style.left = left; } }
+    } }
+    if (cm.options.fixedGutter)
+      { display.gutters.style.left = (comp + gutterW) + "px"; }
+  }
+
+  // Used to ensure that the line number gutter is still the right
+  // size for the current document size. Returns true when an update
+  // is needed.
+  function maybeUpdateLineNumberWidth(cm) {
+    if (!cm.options.lineNumbers) { return false }
+    var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display;
+    if (last.length != display.lineNumChars) {
+      var test = display.measure.appendChild(elt("div", [elt("div", last)],
+                                                 "CodeMirror-linenumber CodeMirror-gutter-elt"));
+      var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW;
+      display.lineGutter.style.width = "";
+      display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1;
+      display.lineNumWidth = display.lineNumInnerWidth + padding;
+      display.lineNumChars = display.lineNumInnerWidth ? last.length : -1;
+      display.lineGutter.style.width = display.lineNumWidth + "px";
+      updateGutterSpace(cm);
+      return true
+    }
+    return false
+  }
+
+  // SCROLLING THINGS INTO VIEW
+
+  // If an editor sits on the top or bottom of the window, partially
+  // scrolled out of view, this ensures that the cursor is visible.
+  function maybeScrollWindow(cm, rect) {
+    if (signalDOMEvent(cm, "scrollCursorIntoView")) { return }
+
+    var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null;
+    if (rect.top + box.top < 0) { doScroll = true; }
+    else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; }
+    if (doScroll != null && !phantom) {
+      var scrollNode = elt("div", "\u200b", null, ("position: absolute;\n                         top: " + (rect.top - display.viewOffset - paddingTop(cm.display)) + "px;\n                         height: " + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + "px;\n                         left: " + (rect.left) + "px; width: " + (Math.max(2, rect.right - rect.left)) + "px;"));
+      cm.display.lineSpace.appendChild(scrollNode);
+      scrollNode.scrollIntoView(doScroll);
+      cm.display.lineSpace.removeChild(scrollNode);
+    }
+  }
+
+  // Scroll a given position into view (immediately), verifying that
+  // it actually became visible (as line heights are accurately
+  // measured, the position of something may 'drift' during drawing).
+  function scrollPosIntoView(cm, pos, end, margin) {
+    if (margin == null) { margin = 0; }
+    var rect;
+    if (!cm.options.lineWrapping && pos == end) {
+      // Set pos and end to the cursor positions around the character pos sticks to
+      // If pos.sticky == "before", that is around pos.ch - 1, otherwise around pos.ch
+      // If pos == Pos(_, 0, "before"), pos and end are unchanged
+      pos = pos.ch ? Pos(pos.line, pos.sticky == "before" ? pos.ch - 1 : pos.ch, "after") : pos;
+      end = pos.sticky == "before" ? Pos(pos.line, pos.ch + 1, "before") : pos;
+    }
+    for (var limit = 0; limit < 5; limit++) {
+      var changed = false;
+      var coords = cursorCoords(cm, pos);
+      var endCoords = !end || end == pos ? coords : cursorCoords(cm, end);
+      rect = {left: Math.min(coords.left, endCoords.left),
+              top: Math.min(coords.top, endCoords.top) - margin,
+              right: Math.max(coords.left, endCoords.left),
+              bottom: Math.max(coords.bottom, endCoords.bottom) + margin};
+      var scrollPos = calculateScrollPos(cm, rect);
+      var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft;
+      if (scrollPos.scrollTop != null) {
+        updateScrollTop(cm, scrollPos.scrollTop);
+        if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; }
+      }
+      if (scrollPos.scrollLeft != null) {
+        setScrollLeft(cm, scrollPos.scrollLeft);
+        if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; }
+      }
+      if (!changed) { break }
+    }
+    return rect
+  }
+
+  // Scroll a given set of coordinates into view (immediately).
+  function scrollIntoView(cm, rect) {
+    var scrollPos = calculateScrollPos(cm, rect);
+    if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); }
+    if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); }
+  }
+
+  // Calculate a new scroll position needed to scroll the given
+  // rectangle into view. Returns an object with scrollTop and
+  // scrollLeft properties. When these are undefined, the
+  // vertical/horizontal position does not need to be adjusted.
+  function calculateScrollPos(cm, rect) {
+    var display = cm.display, snapMargin = textHeight(cm.display);
+    if (rect.top < 0) { rect.top = 0; }
+    var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop;
+    var screen = displayHeight(cm), result = {};
+    if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; }
+    var docBottom = cm.doc.height + paddingVert(display);
+    var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin;
+    if (rect.top < screentop) {
+      result.scrollTop = atTop ? 0 : rect.top;
+    } else if (rect.bottom > screentop + screen) {
+      var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen);
+      if (newTop != screentop) { result.scrollTop = newTop; }
+    }
+
+    var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft;
+    var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0);
+    var tooWide = rect.right - rect.left > screenw;
+    if (tooWide) { rect.right = rect.left + screenw; }
+    if (rect.left < 10)
+      { result.scrollLeft = 0; }
+    else if (rect.left < screenleft)
+      { result.scrollLeft = Math.max(0, rect.left - (tooWide ? 0 : 10)); }
+    else if (rect.right > screenw + screenleft - 3)
+      { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; }
+    return result
+  }
+
+  // Store a relative adjustment to the scroll position in the current
+  // operation (to be applied when the operation finishes).
+  function addToScrollTop(cm, top) {
+    if (top == null) { return }
+    resolveScrollToPos(cm);
+    cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top;
+  }
+
+  // Make sure that at the end of the operation the current cursor is
+  // shown.
+  function ensureCursorVisible(cm) {
+    resolveScrollToPos(cm);
+    var cur = cm.getCursor();
+    cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin};
+  }
+
+  function scrollToCoords(cm, x, y) {
+    if (x != null || y != null) { resolveScrollToPos(cm); }
+    if (x != null) { cm.curOp.scrollLeft = x; }
+    if (y != null) { cm.curOp.scrollTop = y; }
+  }
+
+  function scrollToRange(cm, range$$1) {
+    resolveScrollToPos(cm);
+    cm.curOp.scrollToPos = range$$1;
+  }
+
+  // When an operation has its scrollToPos property set, and another
+  // scroll action is applied before the end of the operation, this
+  // 'simulates' scrolling that position into view in a cheap way, so
+  // that the effect of intermediate scroll commands is not ignored.
+  function resolveScrollToPos(cm) {
+    var range$$1 = cm.curOp.scrollToPos;
+    if (range$$1) {
+      cm.curOp.scrollToPos = null;
+      var from = estimateCoords(cm, range$$1.from), to = estimateCoords(cm, range$$1.to);
+      scrollToCoordsRange(cm, from, to, range$$1.margin);
+    }
+  }
+
+  function scrollToCoordsRange(cm, from, to, margin) {
+    var sPos = calculateScrollPos(cm, {
+      left: Math.min(from.left, to.left),
+      top: Math.min(from.top, to.top) - margin,
+      right: Math.max(from.right, to.right),
+      bottom: Math.max(from.bottom, to.bottom) + margin
+    });
+    scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop);
+  }
+
+  // Sync the scrollable area and scrollbars, ensure the viewport
+  // covers the visible area.
+  function updateScrollTop(cm, val) {
+    if (Math.abs(cm.doc.scrollTop - val) < 2) { return }
+    if (!gecko) { updateDisplaySimple(cm, {top: val}); }
+    setScrollTop(cm, val, true);
+    if (gecko) { updateDisplaySimple(cm); }
+    startWorker(cm, 100);
+  }
+
+  function setScrollTop(cm, val, forceScroll) {
+    val = Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val);
+    if (cm.display.scroller.scrollTop == val && !forceScroll) { return }
+    cm.doc.scrollTop = val;
+    cm.display.scrollbars.setScrollTop(val);
+    if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; }
+  }
+
+  // Sync scroller and scrollbar, ensure the gutter elements are
+  // aligned.
+  function setScrollLeft(cm, val, isScroller, forceScroll) {
+    val = Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth);
+    if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return }
+    cm.doc.scrollLeft = val;
+    alignHorizontally(cm);
+    if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; }
+    cm.display.scrollbars.setScrollLeft(val);
+  }
+
+  // SCROLLBARS
+
+  // Prepare DOM reads needed to update the scrollbars. Done in one
+  // shot to minimize update/measure roundtrips.
+  function measureForScrollbars(cm) {
+    var d = cm.display, gutterW = d.gutters.offsetWidth;
+    var docH = Math.round(cm.doc.height + paddingVert(cm.display));
+    return {
+      clientHeight: d.scroller.clientHeight,
+      viewHeight: d.wrapper.clientHeight,
+      scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth,
+      viewWidth: d.wrapper.clientWidth,
+      barLeft: cm.options.fixedGutter ? gutterW : 0,
+      docHeight: docH,
+      scrollHeight: docH + scrollGap(cm) + d.barHeight,
+      nativeBarWidth: d.nativeBarWidth,
+      gutterWidth: gutterW
+    }
+  }
+
+  var NativeScrollbars = function(place, scroll, cm) {
+    this.cm = cm;
+    var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar");
+    var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar");
+    vert.tabIndex = horiz.tabIndex = -1;
+    place(vert); place(horiz);
+
+    on(vert, "scroll", function () {
+      if (vert.clientHeight) { scroll(vert.scrollTop, "vertical"); }
+    });
+    on(horiz, "scroll", function () {
+      if (horiz.clientWidth) { scroll(horiz.scrollLeft, "horizontal"); }
+    });
+
+    this.checkedZeroWidth = false;
+    // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8).
+    if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = "18px"; }
+  };
+
+  NativeScrollbars.prototype.update = function (measure) {
+    var needsH = measure.scrollWidth > measure.clientWidth + 1;
+    var needsV = measure.scrollHeight > measure.clientHeight + 1;
+    var sWidth = measure.nativeBarWidth;
+
+    if (needsV) {
+      this.vert.style.display = "block";
+      this.vert.style.bottom = needsH ? sWidth + "px" : "0";
+      var totalHeight = measure.viewHeight - (needsH ? sWidth : 0);
+      // A bug in IE8 can cause this value to be negative, so guard it.
+      this.vert.firstChild.style.height =
+        Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px";
+    } else {
+      this.vert.style.display = "";
+      this.vert.firstChild.style.height = "0";
+    }
+
+    if (needsH) {
+      this.horiz.style.display = "block";
+      this.horiz.style.right = needsV ? sWidth + "px" : "0";
+      this.horiz.style.left = measure.barLeft + "px";
+      var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0);
+      this.horiz.firstChild.style.width =
+        Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + "px";
+    } else {
+      this.horiz.style.display = "";
+      this.horiz.firstChild.style.width = "0";
+    }
+
+    if (!this.checkedZeroWidth && measure.clientHeight > 0) {
+      if (sWidth == 0) { this.zeroWidthHack(); }
+      this.checkedZeroWidth = true;
+    }
+
+    return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0}
+  };
+
+  NativeScrollbars.prototype.setScrollLeft = function (pos) {
+    if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; }
+    if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, "horiz"); }
+  };
+
+  NativeScrollbars.prototype.setScrollTop = function (pos) {
+    if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; }
+    if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, "vert"); }
+  };
+
+  NativeScrollbars.prototype.zeroWidthHack = function () {
+    var w = mac && !mac_geMountainLion ? "12px" : "18px";
+    this.horiz.style.height = this.vert.style.width = w;
+    this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none";
+    this.disableHoriz = new Delayed;
+    this.disableVert = new Delayed;
+  };
+
+  NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) {
+    bar.style.pointerEvents = "auto";
+    function maybeDisable() {
+      // To find out whether the scrollbar is still visible, we
+      // check whether the element under the pixel in the bottom
+      // right corner of the scrollbar box is the scrollbar box
+      // itself (when the bar is still visible) or its filler child
+      // (when the bar is hidden). If it is still visible, we keep
+      // it enabled, if it's hidden, we disable pointer events.
+      var box = bar.getBoundingClientRect();
+      var elt$$1 = type == "vert" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2)
+          : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1);
+      if (elt$$1 != bar) { bar.style.pointerEvents = "none"; }
+      else { delay.set(1000, maybeDisable); }
+    }
+    delay.set(1000, maybeDisable);
+  };
+
+  NativeScrollbars.prototype.clear = function () {
+    var parent = this.horiz.parentNode;
+    parent.removeChild(this.horiz);
+    parent.removeChild(this.vert);
+  };
+
+  var NullScrollbars = function () {};
+
+  NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} };
+  NullScrollbars.prototype.setScrollLeft = function () {};
+  NullScrollbars.prototype.setScrollTop = function () {};
+  NullScrollbars.prototype.clear = function () {};
+
+  function updateScrollbars(cm, measure) {
+    if (!measure) { measure = measureForScrollbars(cm); }
+    var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight;
+    updateScrollbarsInner(cm, measure);
+    for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) {
+      if (startWidth != cm.display.barWidth && cm.options.lineWrapping)
+        { updateHeightsInViewport(cm); }
+      updateScrollbarsInner(cm, measureForScrollbars(cm));
+      startWidth = cm.display.barWidth; startHeight = cm.display.barHeight;
+    }
+  }
+
+  // Re-synchronize the fake scrollbars with the actual size of the
+  // content.
+  function updateScrollbarsInner(cm, measure) {
+    var d = cm.display;
+    var sizes = d.scrollbars.update(measure);
+
+    d.sizer.style.paddingRight = (d.barWidth = sizes.right) + "px";
+    d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + "px";
+    d.heightForcer.style.borderBottom = sizes.bottom + "px solid transparent";
+
+    if (sizes.right && sizes.bottom) {
+      d.scrollbarFiller.style.display = "block";
+      d.scrollbarFiller.style.height = sizes.bottom + "px";
+      d.scrollbarFiller.style.width = sizes.right + "px";
+    } else { d.scrollbarFiller.style.display = ""; }
+    if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) {
+      d.gutterFiller.style.display = "block";
+      d.gutterFiller.style.height = sizes.bottom + "px";
+      d.gutterFiller.style.width = measure.gutterWidth + "px";
+    } else { d.gutterFiller.style.display = ""; }
+  }
+
+  var scrollbarModel = {"native": NativeScrollbars, "null": NullScrollbars};
+
+  function initScrollbars(cm) {
+    if (cm.display.scrollbars) {
+      cm.display.scrollbars.clear();
+      if (cm.display.scrollbars.addClass)
+        { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); }
+    }
+
+    cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) {
+      cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller);
+      // Prevent clicks in the scrollbars from killing focus
+      on(node, "mousedown", function () {
+        if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); }
+      });
+      node.setAttribute("cm-not-content", "true");
+    }, function (pos, axis) {
+      if (axis == "horizontal") { setScrollLeft(cm, pos); }
+      else { updateScrollTop(cm, pos); }
+    }, cm);
+    if (cm.display.scrollbars.addClass)
+      { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); }
+  }
+
+  // Operations are used to wrap a series of changes to the editor
+  // state in such a way that each change won't have to update the
+  // cursor and display (which would be awkward, slow, and
+  // error-prone). Instead, display updates are batched and then all
+  // combined and executed at once.
+
+  var nextOpId = 0;
+  // Start a new operation.
+  function startOperation(cm) {
+    cm.curOp = {
+      cm: cm,
+      viewChanged: false,      // Flag that indicates that lines might need to be redrawn
+      startHeight: cm.doc.height, // Used to detect need to update scrollbar
+      forceUpdate: false,      // Used to force a redraw
+      updateInput: null,       // Whether to reset the input textarea
+      typing: false,           // Whether this reset should be careful to leave existing text (for compositing)
+      changeObjs: null,        // Accumulated changes, for firing change events
+      cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on
+      cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already
+      selectionChanged: false, // Whether the selection needs to be redrawn
+      updateMaxLine: false,    // Set when the widest line needs to be determined anew
+      scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet
+      scrollToPos: null,       // Used to scroll to a specific position
+      focus: false,
+      id: ++nextOpId           // Unique ID
+    };
+    pushOperation(cm.curOp);
+  }
+
+  // Finish an operation, updating the display and signalling delayed events
+  function endOperation(cm) {
+    var op = cm.curOp;
+    if (op) { finishOperation(op, function (group) {
+      for (var i = 0; i < group.ops.length; i++)
+        { group.ops[i].cm.curOp = null; }
+      endOperations(group);
+    }); }
+  }
+
+  // The DOM updates done when an operation finishes are batched so
+  // that the minimum number of relayouts are required.
+  function endOperations(group) {
+    var ops = group.ops;
+    for (var i = 0; i < ops.length; i++) // Read DOM
+      { endOperation_R1(ops[i]); }
+    for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe)
+      { endOperation_W1(ops[i$1]); }
+    for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM
+      { endOperation_R2(ops[i$2]); }
+    for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe)
+      { endOperation_W2(ops[i$3]); }
+    for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM
+      { endOperation_finish(ops[i$4]); }
+  }
+
+  function endOperation_R1(op) {
+    var cm = op.cm, display = cm.display;
+    maybeClipScrollbars(cm);
+    if (op.updateMaxLine) { findMaxLine(cm); }
+
+    op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null ||
+      op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom ||
+                         op.scrollToPos.to.line >= display.viewTo) ||
+      display.maxLineChanged && cm.options.lineWrapping;
+    op.update = op.mustUpdate &&
+      new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate);
+  }
+
+  function endOperation_W1(op) {
+    op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update);
+  }
+
+  function endOperation_R2(op) {
+    var cm = op.cm, display = cm.display;
+    if (op.updatedDisplay) { updateHeightsInViewport(cm); }
+
+    op.barMeasure = measureForScrollbars(cm);
+
+    // If the max line changed since it was last measured, measure it,
+    // and ensure the document's width matches it.
+    // updateDisplay_W2 will use these properties to do the actual resizing
+    if (display.maxLineChanged && !cm.options.lineWrapping) {
+      op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3;
+      cm.display.sizerWidth = op.adjustWidthTo;
+      op.barMeasure.scrollWidth =
+        Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth);
+      op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm));
+    }
+
+    if (op.updatedDisplay || op.selectionChanged)
+      { op.preparedSelection = display.input.prepareSelection(); }
+  }
+
+  function endOperation_W2(op) {
+    var cm = op.cm;
+
+    if (op.adjustWidthTo != null) {
+      cm.display.sizer.style.minWidth = op.adjustWidthTo + "px";
+      if (op.maxScrollLeft < cm.doc.scrollLeft)
+        { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); }
+      cm.display.maxLineChanged = false;
+    }
+
+    var takeFocus = op.focus && op.focus == activeElt();
+    if (op.preparedSelection)
+      { cm.display.input.showSelection(op.preparedSelection, takeFocus); }
+    if (op.updatedDisplay || op.startHeight != cm.doc.height)
+      { updateScrollbars(cm, op.barMeasure); }
+    if (op.updatedDisplay)
+      { setDocumentHeight(cm, op.barMeasure); }
+
+    if (op.selectionChanged) { restartBlink(cm); }
+
+    if (cm.state.focused && op.updateInput)
+      { cm.display.input.reset(op.typing); }
+    if (takeFocus) { ensureFocus(op.cm); }
+  }
+
+  function endOperation_finish(op) {
+    var cm = op.cm, display = cm.display, doc = cm.doc;
+
+    if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); }
+
+    // Abort mouse wheel delta measurement, when scrolling explicitly
+    if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos))
+      { display.wheelStartX = display.wheelStartY = null; }
+
+    // Propagate the scroll position to the actual DOM scroller
+    if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); }
+
+    if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); }
+    // If we need to scroll a specific position into view, do so.
+    if (op.scrollToPos) {
+      var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from),
+                                   clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin);
+      maybeScrollWindow(cm, rect);
+    }
+
+    // Fire events for markers that are hidden/unidden by editing or
+    // undoing
+    var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers;
+    if (hidden) { for (var i = 0; i < hidden.length; ++i)
+      { if (!hidden[i].lines.length) { signal(hidden[i], "hide"); } } }
+    if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1)
+      { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], "unhide"); } } }
+
+    if (display.wrapper.offsetHeight)
+      { doc.scrollTop = cm.display.scroller.scrollTop; }
+
+    // Fire change events, and delayed event handlers
+    if (op.changeObjs)
+      { signal(cm, "changes", cm, op.changeObjs); }
+    if (op.update)
+      { op.update.finish(); }
+  }
+
+  // Run the given function in an operation
+  function runInOp(cm, f) {
+    if (cm.curOp) { return f() }
+    startOperation(cm);
+    try { return f() }
+    finally { endOperation(cm); }
+  }
+  // Wraps a function in an operation. Returns the wrapped function.
+  function operation(cm, f) {
+    return function() {
+      if (cm.curOp) { return f.apply(cm, arguments) }
+      startOperation(cm);
+      try { return f.apply(cm, arguments) }
+      finally { endOperation(cm); }
+    }
+  }
+  // Used to add methods to editor and doc instances, wrapping them in
+  // operations.
+  function methodOp(f) {
+    return function() {
+      if (this.curOp) { return f.apply(this, arguments) }
+      startOperation(this);
+      try { return f.apply(this, arguments) }
+      finally { endOperation(this); }
+    }
+  }
+  function docMethodOp(f) {
+    return function() {
+      var cm = this.cm;
+      if (!cm || cm.curOp) { return f.apply(this, arguments) }
+      startOperation(cm);
+      try { return f.apply(this, arguments) }
+      finally { endOperation(cm); }
+    }
+  }
+
+  // Updates the display.view data structure for a given change to the
+  // document. From and to are in pre-change coordinates. Lendiff is
+  // the amount of lines added or subtracted by the change. This is
+  // used for changes that span multiple lines, or change the way
+  // lines are divided into visual lines. regLineChange (below)
+  // registers single-line changes.
+  function regChange(cm, from, to, lendiff) {
+    if (from == null) { from = cm.doc.first; }
+    if (to == null) { to = cm.doc.first + cm.doc.size; }
+    if (!lendiff) { lendiff = 0; }
+
+    var display = cm.display;
+    if (lendiff && to < display.viewTo &&
+        (display.updateLineNumbers == null || display.updateLineNumbers > from))
+      { display.updateLineNumbers = from; }
+
+    cm.curOp.viewChanged = true;
+
+    if (from >= display.viewTo) { // Change after
+      if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo)
+        { resetView(cm); }
+    } else if (to <= display.viewFrom) { // Change before
+      if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) {
+        resetView(cm);
+      } else {
+        display.viewFrom += lendiff;
+        display.viewTo += lendiff;
+      }
+    } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap
+      resetView(cm);
+    } else if (from <= display.viewFrom) { // Top overlap
+      var cut = viewCuttingPoint(cm, to, to + lendiff, 1);
+      if (cut) {
+        display.view = display.view.slice(cut.index);
+        display.viewFrom = cut.lineN;
+        display.viewTo += lendiff;
+      } else {
+        resetView(cm);
+      }
+    } else if (to >= display.viewTo) { // Bottom overlap
+      var cut$1 = viewCuttingPoint(cm, from, from, -1);
+      if (cut$1) {
+        display.view = display.view.slice(0, cut$1.index);
+        display.viewTo = cut$1.lineN;
+      } else {
+        resetView(cm);
+      }
+    } else { // Gap in the middle
+      var cutTop = viewCuttingPoint(cm, from, from, -1);
+      var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1);
+      if (cutTop && cutBot) {
+        display.view = display.view.slice(0, cutTop.index)
+          .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN))
+          .concat(display.view.slice(cutBot.index));
+        display.viewTo += lendiff;
+      } else {
+        resetView(cm);
+      }
+    }
+
+    var ext = display.externalMeasured;
+    if (ext) {
+      if (to < ext.lineN)
+        { ext.lineN += lendiff; }
+      else if (from < ext.lineN + ext.size)
+        { display.externalMeasured = null; }
+    }
+  }
+
+  // Register a change to a single line. Type must be one of "text",
+  // "gutter", "class", "widget"
+  function regLineChange(cm, line, type) {
+    cm.curOp.viewChanged = true;
+    var display = cm.display, ext = cm.display.externalMeasured;
+    if (ext && line >= ext.lineN && line < ext.lineN + ext.size)
+      { display.externalMeasured = null; }
+
+    if (line < display.viewFrom || line >= display.viewTo) { return }
+    var lineView = display.view[findViewIndex(cm, line)];
+    if (lineView.node == null) { return }
+    var arr = lineView.changes || (lineView.changes = []);
+    if (indexOf(arr, type) == -1) { arr.push(type); }
+  }
+
+  // Clear the view.
+  function resetView(cm) {
+    cm.display.viewFrom = cm.display.viewTo = cm.doc.first;
+    cm.display.view = [];
+    cm.display.viewOffset = 0;
+  }
+
+  function viewCuttingPoint(cm, oldN, newN, dir) {
+    var index = findViewIndex(cm, oldN), diff, view = cm.display.view;
+    if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size)
+      { return {index: index, lineN: newN} }
+    var n = cm.display.viewFrom;
+    for (var i = 0; i < index; i++)
+      { n += view[i].size; }
+    if (n != oldN) {
+      if (dir > 0) {
+        if (index == view.length - 1) { return null }
+        diff = (n + view[index].size) - oldN;
+        index++;
+      } else {
+        diff = n - oldN;
+      }
+      oldN += diff; newN += diff;
+    }
+    while (visualLineNo(cm.doc, newN) != newN) {
+      if (index == (dir < 0 ? 0 : view.length - 1)) { return null }
+      newN += dir * view[index - (dir < 0 ? 1 : 0)].size;
+      index += dir;
+    }
+    return {index: index, lineN: newN}
+  }
+
+  // Force the view to cover a given range, adding empty view element
+  // or clipping off existing ones as needed.
+  function adjustView(cm, from, to) {
+    var display = cm.display, view = display.view;
+    if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) {
+      display.view = buildViewArray(cm, from, to);
+      display.viewFrom = from;
+    } else {
+      if (display.viewFrom > from)
+        { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); }
+      else if (display.viewFrom < from)
+        { display.view = display.view.slice(findViewIndex(cm, from)); }
+      display.viewFrom = from;
+      if (display.viewTo < to)
+        { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); }
+      else if (display.viewTo > to)
+        { display.view = display.view.slice(0, findViewIndex(cm, to)); }
+    }
+    display.viewTo = to;
+  }
+
+  // Count the number of lines in the view whose DOM representation is
+  // out of date (or nonexistent).
+  function countDirtyView(cm) {
+    var view = cm.display.view, dirty = 0;
+    for (var i = 0; i < view.length; i++) {
+      var lineView = view[i];
+      if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; }
+    }
+    return dirty
+  }
+
+  // HIGHLIGHT WORKER
+
+  function startWorker(cm, time) {
+    if (cm.doc.highlightFrontier < cm.display.viewTo)
+      { cm.state.highlight.set(time, bind(highlightWorker, cm)); }
+  }
+
+  function highlightWorker(cm) {
+    var doc = cm.doc;
+    if (doc.highlightFrontier >= cm.display.viewTo) { return }
+    var end = +new Date + cm.options.workTime;
+    var context = getContextBefore(cm, doc.highlightFrontier);
+    var changedLines = [];
+
+    doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) {
+      if (context.line >= cm.display.viewFrom) { // Visible
+        var oldStyles = line.styles;
+        var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null;
+        var highlighted = highlightLine(cm, line, context, true);
+        if (resetState) { context.state = resetState; }
+        line.styles = highlighted.styles;
+        var oldCls = line.styleClasses, newCls = highlighted.classes;
+        if (newCls) { line.styleClasses = newCls; }
+        else if (oldCls) { line.styleClasses = null; }
+        var ischange = !oldStyles || oldStyles.length != line.styles.length ||
+          oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass);
+        for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; }
+        if (ischange) { changedLines.push(context.line); }
+        line.stateAfter = context.save();
+        context.nextLine();
+      } else {
+        if (line.text.length <= cm.options.maxHighlightLength)
+          { processLine(cm, line.text, context); }
+        line.stateAfter = context.line % 5 == 0 ? context.save() : null;
+        context.nextLine();
+      }
+      if (+new Date > end) {
+        startWorker(cm, cm.options.workDelay);
+        return true
+      }
+    });
+    doc.highlightFrontier = context.line;
+    doc.modeFrontier = Math.max(doc.modeFrontier, context.line);
+    if (changedLines.length) { runInOp(cm, function () {
+      for (var i = 0; i < changedLines.length; i++)
+        { regLineChange(cm, changedLines[i], "text"); }
+    }); }
+  }
+
+  // DISPLAY DRAWING
+
+  var DisplayUpdate = function(cm, viewport, force) {
+    var display = cm.display;
+
+    this.viewport = viewport;
+    // Store some values that we'll need later (but don't want to force a relayout for)
+    this.visible = visibleLines(display, cm.doc, viewport);
+    this.editorIsHidden = !display.wrapper.offsetWidth;
+    this.wrapperHeight = display.wrapper.clientHeight;
+    this.wrapperWidth = display.wrapper.clientWidth;
+    this.oldDisplayWidth = displayWidth(cm);
+    this.force = force;
+    this.dims = getDimensions(cm);
+    this.events = [];
+  };
+
+  DisplayUpdate.prototype.signal = function (emitter, type) {
+    if (hasHandler(emitter, type))
+      { this.events.push(arguments); }
+  };
+  DisplayUpdate.prototype.finish = function () {
+      var this$1 = this;
+
+    for (var i = 0; i < this.events.length; i++)
+      { signal.apply(null, this$1.events[i]); }
+  };
+
+  function maybeClipScrollbars(cm) {
+    var display = cm.display;
+    if (!display.scrollbarsClipped && display.scroller.offsetWidth) {
+      display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth;
+      display.heightForcer.style.height = scrollGap(cm) + "px";
+      display.sizer.style.marginBottom = -display.nativeBarWidth + "px";
+      display.sizer.style.borderRightWidth = scrollGap(cm) + "px";
+      display.scrollbarsClipped = true;
+    }
+  }
+
+  function selectionSnapshot(cm) {
+    if (cm.hasFocus()) { return null }
+    var active = activeElt();
+    if (!active || !contains(cm.display.lineDiv, active)) { return null }
+    var result = {activeElt: active};
+    if (window.getSelection) {
+      var sel = window.getSelection();
+      if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) {
+        result.anchorNode = sel.anchorNode;
+        result.anchorOffset = sel.anchorOffset;
+        result.focusNode = sel.focusNode;
+        result.focusOffset = sel.focusOffset;
+      }
+    }
+    return result
+  }
+
+  function restoreSelection(snapshot) {
+    if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return }
+    snapshot.activeElt.focus();
+    if (snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) {
+      var sel = window.getSelection(), range$$1 = document.createRange();
+      range$$1.setEnd(snapshot.anchorNode, snapshot.anchorOffset);
+      range$$1.collapse(false);
+      sel.removeAllRanges();
+      sel.addRange(range$$1);
+      sel.extend(snapshot.focusNode, snapshot.focusOffset);
+    }
+  }
+
+  // Does the actual updating of the line display. Bails out
+  // (returning false) when there is nothing to be done and forced is
+  // false.
+  function updateDisplayIfNeeded(cm, update) {
+    var display = cm.display, doc = cm.doc;
+
+    if (update.editorIsHidden) {
+      resetView(cm);
+      return false
+    }
+
+    // Bail out if the visible area is already rendered and nothing changed.
+    if (!update.force &&
+        update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo &&
+        (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) &&
+        display.renderedView == display.view && countDirtyView(cm) == 0)
+      { return false }
+
+    if (maybeUpdateLineNumberWidth(cm)) {
+      resetView(cm);
+      update.dims = getDimensions(cm);
+    }
+
+    // Compute a suitable new viewport (from & to)
+    var end = doc.first + doc.size;
+    var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first);
+    var to = Math.min(end, update.visible.to + cm.options.viewportMargin);
+    if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); }
+    if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); }
+    if (sawCollapsedSpans) {
+      from = visualLineNo(cm.doc, from);
+      to = visualLineEndNo(cm.doc, to);
+    }
+
+    var different = from != display.viewFrom || to != display.viewTo ||
+      display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth;
+    adjustView(cm, from, to);
+
+    display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom));
+    // Position the mover div to align with the current scroll position
+    cm.display.mover.style.top = display.viewOffset + "px";
+
+    var toUpdate = countDirtyView(cm);
+    if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view &&
+        (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo))
+      { return false }
+
+    // For big changes, we hide the enclosing element during the
+    // update, since that speeds up the operations on most browsers.
+    var selSnapshot = selectionSnapshot(cm);
+    if (toUpdate > 4) { display.lineDiv.style.display = "none"; }
+    patchDisplay(cm, display.updateLineNumbers, update.dims);
+    if (toUpdate > 4) { display.lineDiv.style.display = ""; }
+    display.renderedView = display.view;
+    // There might have been a widget with a focused element that got
+    // hidden or updated, if so re-focus it.
+    restoreSelection(selSnapshot);
+
+    // Prevent selection and cursors from interfering with the scroll
+    // width and height.
+    removeChildren(display.cursorDiv);
+    removeChildren(display.selectionDiv);
+    display.gutters.style.height = display.sizer.style.minHeight = 0;
+
+    if (different) {
+      display.lastWrapHeight = update.wrapperHeight;
+      display.lastWrapWidth = update.wrapperWidth;
+      startWorker(cm, 400);
+    }
+
+    display.updateLineNumbers = null;
+
+    return true
+  }
+
+  function postUpdateDisplay(cm, update) {
+    var viewport = update.viewport;
+
+    for (var first = true;; first = false) {
+      if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {
+        // Clip forced viewport to actual scrollable area.
+        if (viewport && viewport.top != null)
+          { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; }
+        // Updated line heights might result in the drawn area not
+        // actually covering the viewport. Keep looping until it does.
+        update.visible = visibleLines(cm.display, cm.doc, viewport);
+        if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo)
+          { break }
+      }
+      if (!updateDisplayIfNeeded(cm, update)) { break }
+      updateHeightsInViewport(cm);
+      var barMeasure = measureForScrollbars(cm);
+      updateSelection(cm);
+      updateScrollbars(cm, barMeasure);
+      setDocumentHeight(cm, barMeasure);
+      update.force = false;
+    }
+
+    update.signal(cm, "update", cm);
+    if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) {
+      update.signal(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo);
+      cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo;
+    }
+  }
+
+  function updateDisplaySimple(cm, viewport) {
+    var update = new DisplayUpdate(cm, viewport);
+    if (updateDisplayIfNeeded(cm, update)) {
+      updateHeightsInViewport(cm);
+      postUpdateDisplay(cm, update);
+      var barMeasure = measureForScrollbars(cm);
+      updateSelection(cm);
+      updateScrollbars(cm, barMeasure);
+      setDocumentHeight(cm, barMeasure);
+      update.finish();
+    }
+  }
+
+  // Sync the actual display DOM structure with display.view, removing
+  // nodes for lines that are no longer in view, and creating the ones
+  // that are not there yet, and updating the ones that are out of
+  // date.
+  function patchDisplay(cm, updateNumbersFrom, dims) {
+    var display = cm.display, lineNumbers = cm.options.lineNumbers;
+    var container = display.lineDiv, cur = container.firstChild;
+
+    function rm(node) {
+      var next = node.nextSibling;
+      // Works around a throw-scroll bug in OS X Webkit
+      if (webkit && mac && cm.display.currentWheelTarget == node)
+        { node.style.display = "none"; }
+      else
+        { node.parentNode.removeChild(node); }
+      return next
+    }
+
+    var view = display.view, lineN = display.viewFrom;
+    // Loop over the elements in the view, syncing cur (the DOM nodes
+    // in display.lineDiv) with the view as we go.
+    for (var i = 0; i < view.length; i++) {
+      var lineView = view[i];
+      if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet
+        var node = buildLineElement(cm, lineView, lineN, dims);
+        container.insertBefore(node, cur);
+      } else { // Already drawn
+        while (cur != lineView.node) { cur = rm(cur); }
+        var updateNumber = lineNumbers && updateNumbersFrom != null &&
+          updateNumbersFrom <= lineN && lineView.lineNumber;
+        if (lineView.changes) {
+          if (indexOf(lineView.changes, "gutter") > -1) { updateNumber = false; }
+          updateLineForChanges(cm, lineView, lineN, dims);
+        }
+        if (updateNumber) {
+          removeChildren(lineView.lineNumber);
+          lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN)));
+        }
+        cur = lineView.node.nextSibling;
+      }
+      lineN += lineView.size;
+    }
+    while (cur) { cur = rm(cur); }
+  }
+
+  function updateGutterSpace(cm) {
+    var width = cm.display.gutters.offsetWidth;
+    cm.display.sizer.style.marginLeft = width + "px";
+  }
+
+  function setDocumentHeight(cm, measure) {
+    cm.display.sizer.style.minHeight = measure.docHeight + "px";
+    cm.display.heightForcer.style.top = measure.docHeight + "px";
+    cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + "px";
+  }
+
+  // Rebuild the gutter elements, ensure the margin to the left of the
+  // code matches their width.
+  function updateGutters(cm) {
+    var gutters = cm.display.gutters, specs = cm.options.gutters;
+    removeChildren(gutters);
+    var i = 0;
+    for (; i < specs.length; ++i) {
+      var gutterClass = specs[i];
+      var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + gutterClass));
+      if (gutterClass == "CodeMirror-linenumbers") {
+        cm.display.lineGutter = gElt;
+        gElt.style.width = (cm.display.lineNumWidth || 1) + "px";
+      }
+    }
+    gutters.style.display = i ? "" : "none";
+    updateGutterSpace(cm);
+  }
+
+  // Make sure the gutters options contains the element
+  // "CodeMirror-linenumbers" when the lineNumbers option is true.
+  function setGuttersForLineNumbers(options) {
+    var found = indexOf(options.gutters, "CodeMirror-linenumbers");
+    if (found == -1 && options.lineNumbers) {
+      options.gutters = options.gutters.concat(["CodeMirror-linenumbers"]);
+    } else if (found > -1 && !options.lineNumbers) {
+      options.gutters = options.gutters.slice(0);
+      options.gutters.splice(found, 1);
+    }
+  }
+
+  // Since the delta values reported on mouse wheel events are
+  // unstandardized between browsers and even browser versions, and
+  // generally horribly unpredictable, this code starts by measuring
+  // the scroll effect that the first few mouse wheel events have,
+  // and, from that, detects the way it can convert deltas to pixel
+  // offsets afterwards.
+  //
+  // The reason we want to know the amount a wheel event will scroll
+  // is that it gives us a chance to update the display before the
+  // actual scrolling happens, reducing flickering.
+
+  var wheelSamples = 0, wheelPixelsPerUnit = null;
+  // Fill in a browser-detected starting value on browsers where we
+  // know one. These don't have to be accurate -- the result of them
+  // being wrong would just be a slight flicker on the first wheel
+  // scroll (if it is large enough).
+  if (ie) { wheelPixelsPerUnit = -.53; }
+  else if (gecko) { wheelPixelsPerUnit = 15; }
+  else if (chrome) { wheelPixelsPerUnit = -.7; }
+  else if (safari) { wheelPixelsPerUnit = -1/3; }
+
+  function wheelEventDelta(e) {
+    var dx = e.wheelDeltaX, dy = e.wheelDeltaY;
+    if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; }
+    if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; }
+    else if (dy == null) { dy = e.wheelDelta; }
+    return {x: dx, y: dy}
+  }
+  function wheelEventPixels(e) {
+    var delta = wheelEventDelta(e);
+    delta.x *= wheelPixelsPerUnit;
+    delta.y *= wheelPixelsPerUnit;
+    return delta
+  }
+
+  function onScrollWheel(cm, e) {
+    var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y;
+
+    var display = cm.display, scroll = display.scroller;
+    // Quit if there's nothing to scroll here
+    var canScrollX = scroll.scrollWidth > scroll.clientWidth;
+    var canScrollY = scroll.scrollHeight > scroll.clientHeight;
+    if (!(dx && canScrollX || dy && canScrollY)) { return }
+
+    // Webkit browsers on OS X abort momentum scrolls when the target
+    // of the scroll event is removed from the scrollable element.
+    // This hack (see related code in patchDisplay) makes sure the
+    // element is kept around.
+    if (dy && mac && webkit) {
+      outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) {
+        for (var i = 0; i < view.length; i++) {
+          if (view[i].node == cur) {
+            cm.display.currentWheelTarget = cur;
+            break outer
+          }
+        }
+      }
+    }
+
+    // On some browsers, horizontal scrolling will cause redraws to
+    // happen before the gutter has been realigned, causing it to
+    // wriggle around in a most unseemly way. When we have an
+    // estimated pixels/delta value, we just handle horizontal
+    // scrolling entirely here. It'll be slightly off from native, but
+    // better than glitching out.
+    if (dx && !gecko && !presto && wheelPixelsPerUnit != null) {
+      if (dy && canScrollY)
+        { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); }
+      setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit));
+      // Only prevent default scrolling if vertical scrolling is
+      // actually possible. Otherwise, it causes vertical scroll
+      // jitter on OSX trackpads when deltaX is small and deltaY
+      // is large (issue #3579)
+      if (!dy || (dy && canScrollY))
+        { e_preventDefault(e); }
+      display.wheelStartX = null; // Abort measurement, if in progress
+      return
+    }
+
+    // 'Project' the visible viewport to cover the area that is being
+    // scrolled into view (if we know enough to estimate it).
+    if (dy && wheelPixelsPerUnit != null) {
+      var pixels = dy * wheelPixelsPerUnit;
+      var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight;
+      if (pixels < 0) { top = Math.max(0, top + pixels - 50); }
+      else { bot = Math.min(cm.doc.height, bot + pixels + 50); }
+      updateDisplaySimple(cm, {top: top, bottom: bot});
+    }
+
+    if (wheelSamples < 20) {
+      if (display.wheelStartX == null) {
+        display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop;
+        display.wheelDX = dx; display.wheelDY = dy;
+        setTimeout(function () {
+          if (display.wheelStartX == null) { return }
+          var movedX = scroll.scrollLeft - display.wheelStartX;
+          var movedY = scroll.scrollTop - display.wheelStartY;
+          var sample = (movedY && display.wheelDY && movedY / display.wheelDY) ||
+            (movedX && display.wheelDX && movedX / display.wheelDX);
+          display.wheelStartX = display.wheelStartY = null;
+          if (!sample) { return }
+          wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1);
+          ++wheelSamples;
+        }, 200);
+      } else {
+        display.wheelDX += dx; display.wheelDY += dy;
+      }
+    }
+  }
+
+  // Selection objects are immutable. A new one is created every time
+  // the selection changes. A selection is one or more non-overlapping
+  // (and non-touching) ranges, sorted, and an integer that indicates
+  // which one is the primary selection (the one that's scrolled into
+  // view, that getCursor returns, etc).
+  var Selection = function(ranges, primIndex) {
+    this.ranges = ranges;
+    this.primIndex = primIndex;
+  };
+
+  Selection.prototype.primary = function () { return this.ranges[this.primIndex] };
+
+  Selection.prototype.equals = function (other) {
+      var this$1 = this;
+
+    if (other == this) { return true }
+    if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false }
+    for (var i = 0; i < this.ranges.length; i++) {
+      var here = this$1.ranges[i], there = other.ranges[i];
+      if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false }
+    }
+    return true
+  };
+
+  Selection.prototype.deepCopy = function () {
+      var this$1 = this;
+
+    var out = [];
+    for (var i = 0; i < this.ranges.length; i++)
+      { out[i] = new Range(copyPos(this$1.ranges[i].anchor), copyPos(this$1.ranges[i].head)); }
+    return new Selection(out, this.primIndex)
+  };
+
+  Selection.prototype.somethingSelected = function () {
+      var this$1 = this;
+
+    for (var i = 0; i < this.ranges.length; i++)
+      { if (!this$1.ranges[i].empty()) { return true } }
+    return false
+  };
+
+  Selection.prototype.contains = function (pos, end) {
+      var this$1 = this;
+
+    if (!end) { end = pos; }
+    for (var i = 0; i < this.ranges.length; i++) {
+      var range = this$1.ranges[i];
+      if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0)
+        { return i }
+    }
+    return -1
+  };
+
+  var Range = function(anchor, head) {
+    this.anchor = anchor; this.head = head;
+  };
+
+  Range.prototype.from = function () { return minPos(this.anchor, this.head) };
+  Range.prototype.to = function () { return maxPos(this.anchor, this.head) };
+  Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch };
+
+  // Take an unsorted, potentially overlapping set of ranges, and
+  // build a selection out of it. 'Consumes' ranges array (modifying
+  // it).
+  function normalizeSelection(cm, ranges, primIndex) {
+    var mayTouch = cm && cm.options.selectionsMayTouch;
+    var prim = ranges[primIndex];
+    ranges.sort(function (a, b) { return cmp(a.from(), b.from()); });
+    primIndex = indexOf(ranges, prim);
+    for (var i = 1; i < ranges.length; i++) {
+      var cur = ranges[i], prev = ranges[i - 1];
+      var diff = cmp(prev.to(), cur.from());
+      if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) {
+        var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to());
+        var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head;
+        if (i <= primIndex) { --primIndex; }
+        ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to));
+      }
+    }
+    return new Selection(ranges, primIndex)
+  }
+
+  function simpleSelection(anchor, head) {
+    return new Selection([new Range(anchor, head || anchor)], 0)
+  }
+
+  // Compute the position of the end of a change (its 'to' property
+  // refers to the pre-change end).
+  function changeEnd(change) {
+    if (!change.text) { return change.to }
+    return Pos(change.from.line + change.text.length - 1,
+               lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0))
+  }
+
+  // Adjust a position to refer to the post-change position of the
+  // same text, or the end of the change if the change covers it.
+  function adjustForChange(pos, change) {
+    if (cmp(pos, change.from) < 0) { return pos }
+    if (cmp(pos, change.to) <= 0) { return changeEnd(change) }
+
+    var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch;
+    if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; }
+    return Pos(line, ch)
+  }
+
+  function computeSelAfterChange(doc, change) {
+    var out = [];
+    for (var i = 0; i < doc.sel.ranges.length; i++) {
+      var range = doc.sel.ranges[i];
+      out.push(new Range(adjustForChange(range.anchor, change),
+                         adjustForChange(range.head, change)));
+    }
+    return normalizeSelection(doc.cm, out, doc.sel.primIndex)
+  }
+
+  function offsetPos(pos, old, nw) {
+    if (pos.line == old.line)
+      { return Pos(nw.line, pos.ch - old.ch + nw.ch) }
+    else
+      { return Pos(nw.line + (pos.line - old.line), pos.ch) }
+  }
+
+  // Used by replaceSelections to allow moving the selection to the
+  // start or around the replaced test. Hint may be "start" or "around".
+  function computeReplacedSel(doc, changes, hint) {
+    var out = [];
+    var oldPrev = Pos(doc.first, 0), newPrev = oldPrev;
+    for (var i = 0; i < changes.length; i++) {
+      var change = changes[i];
+      var from = offsetPos(change.from, oldPrev, newPrev);
+      var to = offsetPos(changeEnd(change), oldPrev, newPrev);
+      oldPrev = change.to;
+      newPrev = to;
+      if (hint == "around") {
+        var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0;
+        out[i] = new Range(inv ? to : from, inv ? from : to);
+      } else {
+        out[i] = new Range(from, from);
+      }
+    }
+    return new Selection(out, doc.sel.primIndex)
+  }
+
+  // Used to get the editor into a consistent state again when options change.
+
+  function loadMode(cm) {
+    cm.doc.mode = getMode(cm.options, cm.doc.modeOption);
+    resetModeState(cm);
+  }
+
+  function resetModeState(cm) {
+    cm.doc.iter(function (line) {
+      if (line.stateAfter) { line.stateAfter = null; }
+      if (line.styles) { line.styles = null; }
+    });
+    cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first;
+    startWorker(cm, 100);
+    cm.state.modeGen++;
+    if (cm.curOp) { regChange(cm); }
+  }
+
+  // DOCUMENT DATA STRUCTURE
+
+  // By default, updates that start and end at the beginning of a line
+  // are treated specially, in order to make the association of line
+  // widgets and marker elements with the text behave more intuitive.
+  function isWholeLineUpdate(doc, change) {
+    return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" &&
+      (!doc.cm || doc.cm.options.wholeLineUpdateBefore)
+  }
+
+  // Perform a change on the document data structure.
+  function updateDoc(doc, change, markedSpans, estimateHeight$$1) {
+    function spansFor(n) {return markedSpans ? markedSpans[n] : null}
+    function update(line, text, spans) {
+      updateLine(line, text, spans, estimateHeight$$1);
+      signalLater(line, "change", line, change);
+    }
+    function linesFor(start, end) {
+      var result = [];
+      for (var i = start; i < end; ++i)
+        { result.push(new Line(text[i], spansFor(i), estimateHeight$$1)); }
+      return result
+    }
+
+    var from = change.from, to = change.to, text = change.text;
+    var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line);
+    var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line;
+
+    // Adjust the line structure
+    if (change.full) {
+      doc.insert(0, linesFor(0, text.length));
+      doc.remove(text.length, doc.size - text.length);
+    } else if (isWholeLineUpdate(doc, change)) {
+      // This is a whole-line replace. Treated specially to make
+      // sure line objects move the way they are supposed to.
+      var added = linesFor(0, text.length - 1);
+      update(lastLine, lastLine.text, lastSpans);
+      if (nlines) { doc.remove(from.line, nlines); }
+      if (added.length) { doc.insert(from.line, added); }
+    } else if (firstLine == lastLine) {
+      if (text.length == 1) {
+        update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans);
+      } else {
+        var added$1 = linesFor(1, text.length - 1);
+        added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight$$1));
+        update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));
+        doc.insert(from.line + 1, added$1);
+      }
+    } else if (text.length == 1) {
+      update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0));
+      doc.remove(from.line + 1, nlines);
+    } else {
+      update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0));
+      update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans);
+      var added$2 = linesFor(1, text.length - 1);
+      if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); }
+      doc.insert(from.line + 1, added$2);
+    }
+
+    signalLater(doc, "change", doc, change);
+  }
+
+  // Call f for all linked documents.
+  function linkedDocs(doc, f, sharedHistOnly) {
+    function propagate(doc, skip, sharedHist) {
+      if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) {
+        var rel = doc.linked[i];
+        if (rel.doc == skip) { continue }
+        var shared = sharedHist && rel.sharedHist;
+        if (sharedHistOnly && !shared) { continue }
+        f(rel.doc, shared);
+        propagate(rel.doc, doc, shared);
+      } }
+    }
+    propagate(doc, null, true);
+  }
+
+  // Attach a document to an editor.
+  function attachDoc(cm, doc) {
+    if (doc.cm) { throw new Error("This document is already in use.") }
+    cm.doc = doc;
+    doc.cm = cm;
+    estimateLineHeights(cm);
+    loadMode(cm);
+    setDirectionClass(cm);
+    if (!cm.options.lineWrapping) { findMaxLine(cm); }
+    cm.options.mode = doc.modeOption;
+    regChange(cm);
+  }
+
+  function setDirectionClass(cm) {
+  (cm.doc.direction == "rtl" ? addClass : rmClass)(cm.display.lineDiv, "CodeMirror-rtl");
+  }
+
+  function directionChanged(cm) {
+    runInOp(cm, function () {
+      setDirectionClass(cm);
+      regChange(cm);
+    });
+  }
+
+  function History(startGen) {
+    // Arrays of change events and selections. Doing something adds an
+    // event to done and clears undo. Undoing moves events from done
+    // to undone, redoing moves them in the other direction.
+    this.done = []; this.undone = [];
+    this.undoDepth = Infinity;
+    // Used to track when changes can be merged into a single undo
+    // event
+    this.lastModTime = this.lastSelTime = 0;
+    this.lastOp = this.lastSelOp = null;
+    this.lastOrigin = this.lastSelOrigin = null;
+    // Used by the isClean() method
+    this.generation = this.maxGeneration = startGen || 1;
+  }
+
+  // Create a history change event from an updateDoc-style change
+  // object.
+  function historyChangeFromChange(doc, change) {
+    var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)};
+    attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1);
+    linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true);
+    return histChange
+  }
+
+  // Pop all selection events off the end of a history array. Stop at
+  // a change event.
+  function clearSelectionEvents(array) {
+    while (array.length) {
+      var last = lst(array);
+      if (last.ranges) { array.pop(); }
+      else { break }
+    }
+  }
+
+  // Find the top change event in the history. Pop off selection
+  // events that are in the way.
+  function lastChangeEvent(hist, force) {
+    if (force) {
+      clearSelectionEvents(hist.done);
+      return lst(hist.done)
+    } else if (hist.done.length && !lst(hist.done).ranges) {
+      return lst(hist.done)
+    } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) {
+      hist.done.pop();
+      return lst(hist.done)
+    }
+  }
+
+  // Register a change in the history. Merges changes that are within
+  // a single operation, or are close together with an origin that
+  // allows merging (starting with "+") into a single event.
+  function addChangeToHistory(doc, change, selAfter, opId) {
+    var hist = doc.history;
+    hist.undone.length = 0;
+    var time = +new Date, cur;
+    var last;
+
+    if ((hist.lastOp == opId ||
+         hist.lastOrigin == change.origin && change.origin &&
+         ((change.origin.charAt(0) == "+" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) ||
+          change.origin.charAt(0) == "*")) &&
+        (cur = lastChangeEvent(hist, hist.lastOp == opId))) {
+      // Merge this change into the last event
+      last = lst(cur.changes);
+      if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) {
+        // Optimized case for simple insertion -- don't want to add
+        // new changesets for every character typed
+        last.to = changeEnd(change);
+      } else {
+        // Add new sub-event
+        cur.changes.push(historyChangeFromChange(doc, change));
+      }
+    } else {
+      // Can not be merged, start a new event.
+      var before = lst(hist.done);
+      if (!before || !before.ranges)
+        { pushSelectionToHistory(doc.sel, hist.done); }
+      cur = {changes: [historyChangeFromChange(doc, change)],
+             generation: hist.generation};
+      hist.done.push(cur);
+      while (hist.done.length > hist.undoDepth) {
+        hist.done.shift();
+        if (!hist.done[0].ranges) { hist.done.shift(); }
+      }
+    }
+    hist.done.push(selAfter);
+    hist.generation = ++hist.maxGeneration;
+    hist.lastModTime = hist.lastSelTime = time;
+    hist.lastOp = hist.lastSelOp = opId;
+    hist.lastOrigin = hist.lastSelOrigin = change.origin;
+
+    if (!last) { signal(doc, "historyAdded"); }
+  }
+
+  function selectionEventCanBeMerged(doc, origin, prev, sel) {
+    var ch = origin.charAt(0);
+    return ch == "*" ||
+      ch == "+" &&
+      prev.ranges.length == sel.ranges.length &&
+      prev.somethingSelected() == sel.somethingSelected() &&
+      new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500)
+  }
+
+  // Called whenever the selection changes, sets the new selection as
+  // the pending selection in the history, and pushes the old pending
+  // selection into the 'done' array when it was significantly
+  // different (in number of selected ranges, emptiness, or time).
+  function addSelectionToHistory(doc, sel, opId, options) {
+    var hist = doc.history, origin = options && options.origin;
+
+    // A new event is started when the previous origin does not match
+    // the current, or the origins don't allow matching. Origins
+    // starting with * are always merged, those starting with + are
+    // merged when similar and close together in time.
+    if (opId == hist.lastSelOp ||
+        (origin && hist.lastSelOrigin == origin &&
+         (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin ||
+          selectionEventCanBeMerged(doc, origin, lst(hist.done), sel))))
+      { hist.done[hist.done.length - 1] = sel; }
+    else
+      { pushSelectionToHistory(sel, hist.done); }
+
+    hist.lastSelTime = +new Date;
+    hist.lastSelOrigin = origin;
+    hist.lastSelOp = opId;
+    if (options && options.clearRedo !== false)
+      { clearSelectionEvents(hist.undone); }
+  }
+
+  function pushSelectionToHistory(sel, dest) {
+    var top = lst(dest);
+    if (!(top && top.ranges && top.equals(sel)))
+      { dest.push(sel); }
+  }
+
+  // Used to store marked span information in the history.
+  function attachLocalSpans(doc, change, from, to) {
+    var existing = change["spans_" + doc.id], n = 0;
+    doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) {
+      if (line.markedSpans)
+        { (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans; }
+      ++n;
+    });
+  }
+
+  // When un/re-doing restores text containing marked spans, those
+  // that have been explicitly cleared should not be restored.
+  function removeClearedSpans(spans) {
+    if (!spans) { return null }
+    var out;
+    for (var i = 0; i < spans.length; ++i) {
+      if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } }
+      else if (out) { out.push(spans[i]); }
+    }
+    return !out ? spans : out.length ? out : null
+  }
+
+  // Retrieve and filter the old marked spans stored in a change event.
+  function getOldSpans(doc, change) {
+    var found = change["spans_" + doc.id];
+    if (!found) { return null }
+    var nw = [];
+    for (var i = 0; i < change.text.length; ++i)
+      { nw.push(removeClearedSpans(found[i])); }
+    return nw
+  }
+
+  // Used for un/re-doing changes from the history. Combines the
+  // result of computing the existing spans with the set of spans that
+  // existed in the history (so that deleting around a span and then
+  // undoing brings back the span).
+  function mergeOldSpans(doc, change) {
+    var old = getOldSpans(doc, change);
+    var stretched = stretchSpansOverChange(doc, change);
+    if (!old) { return stretched }
+    if (!stretched) { return old }
+
+    for (var i = 0; i < old.length; ++i) {
+      var oldCur = old[i], stretchCur = stretched[i];
+      if (oldCur && stretchCur) {
+        spans: for (var j = 0; j < stretchCur.length; ++j) {
+          var span = stretchCur[j];
+          for (var k = 0; k < oldCur.length; ++k)
+            { if (oldCur[k].marker == span.marker) { continue spans } }
+          oldCur.push(span);
+        }
+      } else if (stretchCur) {
+        old[i] = stretchCur;
+      }
+    }
+    return old
+  }
+
+  // Used both to provide a JSON-safe object in .getHistory, and, when
+  // detaching a document, to split the history in two
+  function copyHistoryArray(events, newGroup, instantiateSel) {
+    var copy = [];
+    for (var i = 0; i < events.length; ++i) {
+      var event = events[i];
+      if (event.ranges) {
+        copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event);
+        continue
+      }
+      var changes = event.changes, newChanges = [];
+      copy.push({changes: newChanges});
+      for (var j = 0; j < changes.length; ++j) {
+        var change = changes[j], m = (void 0);
+        newChanges.push({from: change.from, to: change.to, text: change.text});
+        if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\d+)$/)) {
+          if (indexOf(newGroup, Number(m[1])) > -1) {
+            lst(newChanges)[prop] = change[prop];
+            delete change[prop];
+          }
+        } } }
+      }
+    }
+    return copy
+  }
+
+  // The 'scroll' parameter given to many of these indicated whether
+  // the new cursor position should be scrolled into view after
+  // modifying the selection.
+
+  // If shift is held or the extend flag is set, extends a range to
+  // include a given position (and optionally a second position).
+  // Otherwise, simply returns the range between the given positions.
+  // Used for cursor motion and such.
+  function extendRange(range, head, other, extend) {
+    if (extend) {
+      var anchor = range.anchor;
+      if (other) {
+        var posBefore = cmp(head, anchor) < 0;
+        if (posBefore != (cmp(other, anchor) < 0)) {
+          anchor = head;
+          head = other;
+        } else if (posBefore != (cmp(head, other) < 0)) {
+          head = other;
+        }
+      }
+      return new Range(anchor, head)
+    } else {
+      return new Range(other || head, head)
+    }
+  }
+
+  // Extend the primary selection range, discard the rest.
+  function extendSelection(doc, head, other, options, extend) {
+    if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); }
+    setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options);
+  }
+
+  // Extend all selections (pos is an array of selections with length
+  // equal the number of selections)
+  function extendSelections(doc, heads, options) {
+    var out = [];
+    var extend = doc.cm && (doc.cm.display.shift || doc.extend);
+    for (var i = 0; i < doc.sel.ranges.length; i++)
+      { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); }
+    var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex);
+    setSelection(doc, newSel, options);
+  }
+
+  // Updates a single range in the selection.
+  function replaceOneSelection(doc, i, range, options) {
+    var ranges = doc.sel.ranges.slice(0);
+    ranges[i] = range;
+    setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options);
+  }
+
+  // Reset the selection to a single range.
+  function setSimpleSelection(doc, anchor, head, options) {
+    setSelection(doc, simpleSelection(anchor, head), options);
+  }
+
+  // Give beforeSelectionChange handlers a change to influence a
+  // selection update.
+  function filterSelectionChange(doc, sel, options) {
+    var obj = {
+      ranges: sel.ranges,
+      update: function(ranges) {
+        var this$1 = this;
+
+        this.ranges = [];
+        for (var i = 0; i < ranges.length; i++)
+          { this$1.ranges[i] = new Range(clipPos(doc, ranges[i].anchor),
+                                     clipPos(doc, ranges[i].head)); }
+      },
+      origin: options && options.origin
+    };
+    signal(doc, "beforeSelectionChange", doc, obj);
+    if (doc.cm) { signal(doc.cm, "beforeSelectionChange", doc.cm, obj); }
+    if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) }
+    else { return sel }
+  }
+
+  function setSelectionReplaceHistory(doc, sel, options) {
+    var done = doc.history.done, last = lst(done);
+    if (last && last.ranges) {
+      done[done.length - 1] = sel;
+      setSelectionNoUndo(doc, sel, options);
+    } else {
+      setSelection(doc, sel, options);
+    }
+  }
+
+  // Set a new selection.
+  function setSelection(doc, sel, options) {
+    setSelectionNoUndo(doc, sel, options);
+    addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options);
+  }
+
+  function setSelectionNoUndo(doc, sel, options) {
+    if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange"))
+      { sel = filterSelectionChange(doc, sel, options); }
+
+    var bias = options && options.bias ||
+      (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1);
+    setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true));
+
+    if (!(options && options.scroll === false) && doc.cm)
+      { ensureCursorVisible(doc.cm); }
+  }
+
+  function setSelectionInner(doc, sel) {
+    if (sel.equals(doc.sel)) { return }
+
+    doc.sel = sel;
+
+    if (doc.cm) {
+      doc.cm.curOp.updateInput = doc.cm.curOp.selectionChanged = true;
+      signalCursorActivity(doc.cm);
+    }
+    signalLater(doc, "cursorActivity", doc);
+  }
+
+  // Verify that the selection does not partially select any atomic
+  // marked ranges.
+  function reCheckSelection(doc) {
+    setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false));
+  }
+
+  // Return a selection that does not partially select any atomic
+  // ranges.
+  function skipAtomicInSelection(doc, sel, bias, mayClear) {
+    var out;
+    for (var i = 0; i < sel.ranges.length; i++) {
+      var range = sel.ranges[i];
+      var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i];
+      var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear);
+      var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear);
+      if (out || newAnchor != range.anchor || newHead != range.head) {
+        if (!out) { out = sel.ranges.slice(0, i); }
+        out[i] = new Range(newAnchor, newHead);
+      }
+    }
+    return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel
+  }
+
+  function skipAtomicInner(doc, pos, oldPos, dir, mayClear) {
+    var line = getLine(doc, pos.line);
+    if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) {
+      var sp = line.markedSpans[i], m = sp.marker;
+      if ((sp.from == null || (m.inclusiveLeft ? sp.from <= pos.ch : sp.from < pos.ch)) &&
+          (sp.to == null || (m.inclusiveRight ? sp.to >= pos.ch : sp.to > pos.ch))) {
+        if (mayClear) {
+          signal(m, "beforeCursorEnter");
+          if (m.explicitlyCleared) {
+            if (!line.markedSpans) { break }
+            else {--i; continue}
+          }
+        }
+        if (!m.atomic) { continue }
+
+        if (oldPos) {
+          var near = m.find(dir < 0 ? 1 : -1), diff = (void 0);
+          if (dir < 0 ? m.inclusiveRight : m.inclusiveLeft)
+            { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); }
+          if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0))
+            { return skipAtomicInner(doc, near, pos, dir, mayClear) }
+        }
+
+        var far = m.find(dir < 0 ? -1 : 1);
+        if (dir < 0 ? m.inclusiveLeft : m.inclusiveRight)
+          { far = movePos(doc, far, dir, far.line == pos.line ? line : null); }
+        return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null
+      }
+    } }
+    return pos
+  }
+
+  // Ensure a given position is not inside an atomic range.
+  function skipAtomic(doc, pos, oldPos, bias, mayClear) {
+    var dir = bias || 1;
+    var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) ||
+        (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) ||
+        skipAtomicInner(doc, pos, oldPos, -dir, mayClear) ||
+        (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true));
+    if (!found) {
+      doc.cantEdit = true;
+      return Pos(doc.first, 0)
+    }
+    return found
+  }
+
+  function movePos(doc, pos, dir, line) {
+    if (dir < 0 && pos.ch == 0) {
+      if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) }
+      else { return null }
+    } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) {
+      if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) }
+      else { return null }
+    } else {
+      return new Pos(pos.line, pos.ch + dir)
+    }
+  }
+
+  function selectAll(cm) {
+    cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll);
+  }
+
+  // UPDATING
+
+  // Allow "beforeChange" event handlers to influence a change
+  function filterChange(doc, change, update) {
+    var obj = {
+      canceled: false,
+      from: change.from,
+      to: change.to,
+      text: change.text,
+      origin: change.origin,
+      cancel: function () { return obj.canceled = true; }
+    };
+    if (update) { obj.update = function (from, to, text, origin) {
+      if (from) { obj.from = clipPos(doc, from); }
+      if (to) { obj.to = clipPos(doc, to); }
+      if (text) { obj.text = text; }
+      if (origin !== undefined) { obj.origin = origin; }
+    }; }
+    signal(doc, "beforeChange", doc, obj);
+    if (doc.cm) { signal(doc.cm, "beforeChange", doc.cm, obj); }
+
+    if (obj.canceled) { return null }
+    return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin}
+  }
+
+  // Apply a change to a document, and add it to the document's
+  // history, and propagating it to all linked documents.
+  function makeChange(doc, change, ignoreReadOnly) {
+    if (doc.cm) {
+      if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) }
+      if (doc.cm.state.suppressEdits) { return }
+    }
+
+    if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) {
+      change = filterChange(doc, change, true);
+      if (!change) { return }
+    }
+
+    // Possibly split or suppress the update based on the presence
+    // of read-only spans in its range.
+    var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to);
+    if (split) {
+      for (var i = split.length - 1; i >= 0; --i)
+        { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text, origin: change.origin}); }
+    } else {
+      makeChangeInner(doc, change);
+    }
+  }
+
+  function makeChangeInner(doc, change) {
+    if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) { return }
+    var selAfter = computeSelAfterChange(doc, change);
+    addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN);
+
+    makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change));
+    var rebased = [];
+
+    linkedDocs(doc, function (doc, sharedHist) {
+      if (!sharedHist && indexOf(rebased, doc.history) == -1) {
+        rebaseHist(doc.history, change);
+        rebased.push(doc.history);
+      }
+      makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change));
+    });
+  }
+
+  // Revert a change stored in a document's history.
+  function makeChangeFromHistory(doc, type, allowSelectionOnly) {
+    var suppress = doc.cm && doc.cm.state.suppressEdits;
+    if (suppress && !allowSelectionOnly) { return }
+
+    var hist = doc.history, event, selAfter = doc.sel;
+    var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done;
+
+    // Verify that there is a useable event (so that ctrl-z won't
+    // needlessly clear selection events)
+    var i = 0;
+    for (; i < source.length; i++) {
+      event = source[i];
+      if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges)
+        { break }
+    }
+    if (i == source.length) { return }
+    hist.lastOrigin = hist.lastSelOrigin = null;
+
+    for (;;) {
+      event = source.pop();
+      if (event.ranges) {
+        pushSelectionToHistory(event, dest);
+        if (allowSelectionOnly && !event.equals(doc.sel)) {
+          setSelection(doc, event, {clearRedo: false});
+          return
+        }
+        selAfter = event;
+      } else if (suppress) {
+        source.push(event);
+        return
+      } else { break }
+    }
+
+    // Build up a reverse change object to add to the opposite history
+    // stack (redo when undoing, and vice versa).
+    var antiChanges = [];
+    pushSelectionToHistory(selAfter, dest);
+    dest.push({changes: antiChanges, generation: hist.generation});
+    hist.generation = event.generation || ++hist.maxGeneration;
+
+    var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange");
+
+    var loop = function ( i ) {
+      var change = event.changes[i];
+      change.origin = type;
+      if (filter && !filterChange(doc, change, false)) {
+        source.length = 0;
+        return {}
+      }
+
+      antiChanges.push(historyChangeFromChange(doc, change));
+
+      var after = i ? computeSelAfterChange(doc, change) : lst(source);
+      makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change));
+      if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); }
+      var rebased = [];
+
+      // Propagate to the linked documents
+      linkedDocs(doc, function (doc, sharedHist) {
+        if (!sharedHist && indexOf(rebased, doc.history) == -1) {
+          rebaseHist(doc.history, change);
+          rebased.push(doc.history);
+        }
+        makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change));
+      });
+    };
+
+    for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) {
+      var returned = loop( i$1 );
+
+      if ( returned ) return returned.v;
+    }
+  }
+
+  // Sub-views need their line numbers shifted when text is added
+  // above or below them in the parent document.
+  function shiftDoc(doc, distance) {
+    if (distance == 0) { return }
+    doc.first += distance;
+    doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range(
+      Pos(range.anchor.line + distance, range.anchor.ch),
+      Pos(range.head.line + distance, range.head.ch)
+    ); }), doc.sel.primIndex);
+    if (doc.cm) {
+      regChange(doc.cm, doc.first, doc.first - distance, distance);
+      for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++)
+        { regLineChange(doc.cm, l, "gutter"); }
+    }
+  }
+
+  // More lower-level change function, handling only a single document
+  // (not linked ones).
+  function makeChangeSingleDoc(doc, change, selAfter, spans) {
+    if (doc.cm && !doc.cm.curOp)
+      { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) }
+
+    if (change.to.line < doc.first) {
+      shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line));
+      return
+    }
+    if (change.from.line > doc.lastLine()) { return }
+
+    // Clip the change to the size of this doc
+    if (change.from.line < doc.first) {
+      var shift = change.text.length - 1 - (doc.first - change.from.line);
+      shiftDoc(doc, shift);
+      change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch),
+                text: [lst(change.text)], origin: change.origin};
+    }
+    var last = doc.lastLine();
+    if (change.to.line > last) {
+      change = {from: change.from, to: Pos(last, getLine(doc, last).text.length),
+                text: [change.text[0]], origin: change.origin};
+    }
+
+    change.removed = getBetween(doc, change.from, change.to);
+
+    if (!selAfter) { selAfter = computeSelAfterChange(doc, change); }
+    if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); }
+    else { updateDoc(doc, change, spans); }
+    setSelectionNoUndo(doc, selAfter, sel_dontScroll);
+  }
+
+  // Handle the interaction of a change to a document with the editor
+  // that this document is part of.
+  function makeChangeSingleDocInEditor(cm, change, spans) {
+    var doc = cm.doc, display = cm.display, from = change.from, to = change.to;
+
+    var recomputeMaxLength = false, checkWidthStart = from.line;
+    if (!cm.options.lineWrapping) {
+      checkWidthStart = lineNo(visualLine(getLine(doc, from.line)));
+      doc.iter(checkWidthStart, to.line + 1, function (line) {
+        if (line == display.maxLine) {
+          recomputeMaxLength = true;
+          return true
+        }
+      });
+    }
+
+    if (doc.sel.contains(change.from, change.to) > -1)
+      { signalCursorActivity(cm); }
+
+    updateDoc(doc, change, spans, estimateHeight(cm));
+
+    if (!cm.options.lineWrapping) {
+      doc.iter(checkWidthStart, from.line + change.text.length, function (line) {
+        var len = lineLength(line);
+        if (len > display.maxLineLength) {
+          display.maxLine = line;
+          display.maxLineLength = len;
+          display.maxLineChanged = true;
+          recomputeMaxLength = false;
+        }
+      });
+      if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; }
+    }
+
+    retreatFrontier(doc, from.line);
+    startWorker(cm, 400);
+
+    var lendiff = change.text.length - (to.line - from.line) - 1;
+    // Remember that these lines changed, for updating the display
+    if (change.full)
+      { regChange(cm); }
+    else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change))
+      { regLineChange(cm, from.line, "text"); }
+    else
+      { regChange(cm, from.line, to.line + 1, lendiff); }
+
+    var changesHandler = hasHandler(cm, "changes"), changeHandler = hasHandler(cm, "change");
+    if (changeHandler || changesHandler) {
+      var obj = {
+        from: from, to: to,
+        text: change.text,
+        removed: change.removed,
+        origin: change.origin
+      };
+      if (changeHandler) { signalLater(cm, "change", cm, obj); }
+      if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); }
+    }
+    cm.display.selForContextMenu = null;
+  }
+
+  function replaceRange(doc, code, from, to, origin) {
+    var assign;
+
+    if (!to) { to = from; }
+    if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); }
+    if (typeof code == "string") { code = doc.splitLines(code); }
+    makeChange(doc, {from: from, to: to, text: code, origin: origin});
+  }
+
+  // Rebasing/resetting history to deal with externally-sourced changes
+
+  function rebaseHistSelSingle(pos, from, to, diff) {
+    if (to < pos.line) {
+      pos.line += diff;
+    } else if (from < pos.line) {
+      pos.line = from;
+      pos.ch = 0;
+    }
+  }
+
+  // Tries to rebase an array of history events given a change in the
+  // document. If the change touches the same lines as the event, the
+  // event, and everything 'behind' it, is discarded. If the change is
+  // before the event, the event's positions are updated. Uses a
+  // copy-on-write scheme for the positions, to avoid having to
+  // reallocate them all on every rebase, but also avoid problems with
+  // shared position objects being unsafely updated.
+  function rebaseHistArray(array, from, to, diff) {
+    for (var i = 0; i < array.length; ++i) {
+      var sub = array[i], ok = true;
+      if (sub.ranges) {
+        if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; }
+        for (var j = 0; j < sub.ranges.length; j++) {
+          rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff);
+          rebaseHistSelSingle(sub.ranges[j].head, from, to, diff);
+        }
+        continue
+      }
+      for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) {
+        var cur = sub.changes[j$1];
+        if (to < cur.from.line) {
+          cur.from = Pos(cur.from.line + diff, cur.from.ch);
+          cur.to = Pos(cur.to.line + diff, cur.to.ch);
+        } else if (from <= cur.to.line) {
+          ok = false;
+          break
+        }
+      }
+      if (!ok) {
+        array.splice(0, i + 1);
+        i = 0;
+      }
+    }
+  }
+
+  function rebaseHist(hist, change) {
+    var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1;
+    rebaseHistArray(hist.done, from, to, diff);
+    rebaseHistArray(hist.undone, from, to, diff);
+  }
+
+  // Utility for applying a change to a line by handle or number,
+  // returning the number and optionally registering the line as
+  // changed.
+  function changeLine(doc, handle, changeType, op) {
+    var no = handle, line = handle;
+    if (typeof handle == "number") { line = getLine(doc, clipLine(doc, handle)); }
+    else { no = lineNo(handle); }
+    if (no == null) { return null }
+    if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); }
+    return line
+  }
+
+  // The document is represented as a BTree consisting of leaves, with
+  // chunk of lines in them, and branches, with up to ten leaves or
+  // other branch nodes below them. The top node is always a branch
+  // node, and is the document object itself (meaning it has
+  // additional methods and properties).
+  //
+  // All nodes have parent links. The tree is used both to go from
+  // line numbers to line objects, and to go from objects to numbers.
+  // It also indexes by height, and is used to convert between height
+  // and line object, and to find the total height of the document.
+  //
+  // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html
+
+  function LeafChunk(lines) {
+    var this$1 = this;
+
+    this.lines = lines;
+    this.parent = null;
+    var height = 0;
+    for (var i = 0; i < lines.length; ++i) {
+      lines[i].parent = this$1;
+      height += lines[i].height;
+    }
+    this.height = height;
+  }
+
+  LeafChunk.prototype = {
+    chunkSize: function() { return this.lines.length },
+
+    // Remove the n lines at offset 'at'.
+    removeInner: function(at, n) {
+      var this$1 = this;
+
+      for (var i = at, e = at + n; i < e; ++i) {
+        var line = this$1.lines[i];
+        this$1.height -= line.height;
+        cleanUpLine(line);
+        signalLater(line, "delete");
+      }
+      this.lines.splice(at, n);
+    },
+
+    // Helper used to collapse a small branch into a single leaf.
+    collapse: function(lines) {
+      lines.push.apply(lines, this.lines);
+    },
+
+    // Insert the given array of lines at offset 'at', count them as
+    // having the given height.
+    insertInner: function(at, lines, height) {
+      var this$1 = this;
+
+      this.height += height;
+      this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at));
+      for (var i = 0; i < lines.length; ++i) { lines[i].parent = this$1; }
+    },
+
+    // Used to iterate over a part of the tree.
+    iterN: function(at, n, op) {
+      var this$1 = this;
+
+      for (var e = at + n; at < e; ++at)
+        { if (op(this$1.lines[at])) { return true } }
+    }
+  };
+
+  function BranchChunk(children) {
+    var this$1 = this;
+
+    this.children = children;
+    var size = 0, height = 0;
+    for (var i = 0; i < children.length; ++i) {
+      var ch = children[i];
+      size += ch.chunkSize(); height += ch.height;
+      ch.parent = this$1;
+    }
+    this.size = size;
+    this.height = height;
+    this.parent = null;
+  }
+
+  BranchChunk.prototype = {
+    chunkSize: function() { return this.size },
+
+    removeInner: function(at, n) {
+      var this$1 = this;
+
+      this.size -= n;
+      for (var i = 0; i < this.children.length; ++i) {
+        var child = this$1.children[i], sz = child.chunkSize();
+        if (at < sz) {
+          var rm = Math.min(n, sz - at), oldHeight = child.height;
+          child.removeInner(at, rm);
+          this$1.height -= oldHeight - child.height;
+          if (sz == rm) { this$1.children.splice(i--, 1); child.parent = null; }
+          if ((n -= rm) == 0) { break }
+          at = 0;
+        } else { at -= sz; }
+      }
+      // If the result is smaller than 25 lines, ensure that it is a
+      // single leaf node.
+      if (this.size - n < 25 &&
+          (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) {
+        var lines = [];
+        this.collapse(lines);
+        this.children = [new LeafChunk(lines)];
+        this.children[0].parent = this;
+      }
+    },
+
+    collapse: function(lines) {
+      var this$1 = this;
+
+      for (var i = 0; i < this.children.length; ++i) { this$1.children[i].collapse(lines); }
+    },
+
+    insertInner: function(at, lines, height) {
+      var this$1 = this;
+
+      this.size += lines.length;
+      this.height += height;
+      for (var i = 0; i < this.children.length; ++i) {
+        var child = this$1.children[i], sz = child.chunkSize();
+        if (at <= sz) {
+          child.insertInner(at, lines, height);
+          if (child.lines && child.lines.length > 50) {
+            // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.
+            // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.
+            var remaining = child.lines.length % 25 + 25;
+            for (var pos = remaining; pos < child.lines.length;) {
+              var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));
+              child.height -= leaf.height;
+              this$1.children.splice(++i, 0, leaf);
+              leaf.parent = this$1;
+            }
+            child.lines = child.lines.slice(0, remaining);
+            this$1.maybeSpill();
+          }
+          break
+        }
+        at -= sz;
+      }
+    },
+
+    // When a node has grown, check whether it should be split.
+    maybeSpill: function() {
+      if (this.children.length <= 10) { return }
+      var me = this;
+      do {
+        var spilled = me.children.splice(me.children.length - 5, 5);
+        var sibling = new BranchChunk(spilled);
+        if (!me.parent) { // Become the parent node
+          var copy = new BranchChunk(me.children);
+          copy.parent = me;
+          me.children = [copy, sibling];
+          me = copy;
+       } else {
+          me.size -= sibling.size;
+          me.height -= sibling.height;
+          var myIndex = indexOf(me.parent.children, me);
+          me.parent.children.splice(myIndex + 1, 0, sibling);
+        }
+        sibling.parent = me.parent;
+      } while (me.children.length > 10)
+      me.parent.maybeSpill();
+    },
+
+    iterN: function(at, n, op) {
+      var this$1 = this;
+
+      for (var i = 0; i < this.children.length; ++i) {
+        var child = this$1.children[i], sz = child.chunkSize();
+        if (at < sz) {
+          var used = Math.min(n, sz - at);
+          if (child.iterN(at, used, op)) { return true }
+          if ((n -= used) == 0) { break }
+          at = 0;
+        } else { at -= sz; }
+      }
+    }
+  };
+
+  // Line widgets are block elements displayed above or below a line.
+
+  var LineWidget = function(doc, node, options) {
+    var this$1 = this;
+
+    if (options) { for (var opt in options) { if (options.hasOwnProperty(opt))
+      { this$1[opt] = options[opt]; } } }
+    this.doc = doc;
+    this.node = node;
+  };
+
+  LineWidget.prototype.clear = function () {
+      var this$1 = this;
+
+    var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line);
+    if (no == null || !ws) { return }
+    for (var i = 0; i < ws.length; ++i) { if (ws[i] == this$1) { ws.splice(i--, 1); } }
+    if (!ws.length) { line.widgets = null; }
+    var height = widgetHeight(this);
+    updateLineHeight(line, Math.max(0, line.height - height));
+    if (cm) {
+      runInOp(cm, function () {
+        adjustScrollWhenAboveVisible(cm, line, -height);
+        regLineChange(cm, no, "widget");
+      });
+      signalLater(cm, "lineWidgetCleared", cm, this, no);
+    }
+  };
+
+  LineWidget.prototype.changed = function () {
+      var this$1 = this;
+
+    var oldH = this.height, cm = this.doc.cm, line = this.line;
+    this.height = null;
+    var diff = widgetHeight(this) - oldH;
+    if (!diff) { return }
+    if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); }
+    if (cm) {
+      runInOp(cm, function () {
+        cm.curOp.forceUpdate = true;
+        adjustScrollWhenAboveVisible(cm, line, diff);
+        signalLater(cm, "lineWidgetChanged", cm, this$1, lineNo(line));
+      });
+    }
+  };
+  eventMixin(LineWidget);
+
+  function adjustScrollWhenAboveVisible(cm, line, diff) {
+    if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop))
+      { addToScrollTop(cm, diff); }
+  }
+
+  function addLineWidget(doc, handle, node, options) {
+    var widget = new LineWidget(doc, node, options);
+    var cm = doc.cm;
+    if (cm && widget.noHScroll) { cm.display.alignWidgets = true; }
+    changeLine(doc, handle, "widget", function (line) {
+      var widgets = line.widgets || (line.widgets = []);
+      if (widget.insertAt == null) { widgets.push(widget); }
+      else { widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget); }
+      widget.line = line;
+      if (cm && !lineIsHidden(doc, line)) {
+        var aboveVisible = heightAtLine(line) < doc.scrollTop;
+        updateLineHeight(line, line.height + widgetHeight(widget));
+        if (aboveVisible) { addToScrollTop(cm, widget.height); }
+        cm.curOp.forceUpdate = true;
+      }
+      return true
+    });
+    if (cm) { signalLater(cm, "lineWidgetAdded", cm, widget, typeof handle == "number" ? handle : lineNo(handle)); }
+    return widget
+  }
+
+  // TEXTMARKERS
+
+  // Created with markText and setBookmark methods. A TextMarker is a
+  // handle that can be used to clear or find a marked position in the
+  // document. Line objects hold arrays (markedSpans) containing
+  // {from, to, marker} object pointing to such marker objects, and
+  // indicating that such a marker is present on that line. Multiple
+  // lines may point to the same marker when it spans across lines.
+  // The spans will have null for their from/to properties when the
+  // marker continues beyond the start/end of the line. Markers have
+  // links back to the lines they currently touch.
+
+  // Collapsed markers have unique ids, in order to be able to order
+  // them, which is needed for uniquely determining an outer marker
+  // when they overlap (they may nest, but not partially overlap).
+  var nextMarkerId = 0;
+
+  var TextMarker = function(doc, type) {
+    this.lines = [];
+    this.type = type;
+    this.doc = doc;
+    this.id = ++nextMarkerId;
+  };
+
+  // Clear the marker.
+  TextMarker.prototype.clear = function () {
+      var this$1 = this;
+
+    if (this.explicitlyCleared) { return }
+    var cm = this.doc.cm, withOp = cm && !cm.curOp;
+    if (withOp) { startOperation(cm); }
+    if (hasHandler(this, "clear")) {
+      var found = this.find();
+      if (found) { signalLater(this, "clear", found.from, found.to); }
+    }
+    var min = null, max = null;
+    for (var i = 0; i < this.lines.length; ++i) {
+      var line = this$1.lines[i];
+      var span = getMarkedSpanFor(line.markedSpans, this$1);
+      if (cm && !this$1.collapsed) { regLineChange(cm, lineNo(line), "text"); }
+      else if (cm) {
+        if (span.to != null) { max = lineNo(line); }
+        if (span.from != null) { min = lineNo(line); }
+      }
+      line.markedSpans = removeMarkedSpan(line.markedSpans, span);
+      if (span.from == null && this$1.collapsed && !lineIsHidden(this$1.doc, line) && cm)
+        { updateLineHeight(line, textHeight(cm.display)); }
+    }
+    if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) {
+      var visual = visualLine(this$1.lines[i$1]), len = lineLength(visual);
+      if (len > cm.display.maxLineLength) {
+        cm.display.maxLine = visual;
+        cm.display.maxLineLength = len;
+        cm.display.maxLineChanged = true;
+      }
+    } }
+
+    if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); }
+    this.lines.length = 0;
+    this.explicitlyCleared = true;
+    if (this.atomic && this.doc.cantEdit) {
+      this.doc.cantEdit = false;
+      if (cm) { reCheckSelection(cm.doc); }
+    }
+    if (cm) { signalLater(cm, "markerCleared", cm, this, min, max); }
+    if (withOp) { endOperation(cm); }
+    if (this.parent) { this.parent.clear(); }
+  };
+
+  // Find the position of the marker in the document. Returns a {from,
+  // to} object by default. Side can be passed to get a specific side
+  // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the
+  // Pos objects returned contain a line object, rather than a line
+  // number (used to prevent looking up the same line twice).
+  TextMarker.prototype.find = function (side, lineObj) {
+      var this$1 = this;
+
+    if (side == null && this.type == "bookmark") { side = 1; }
+    var from, to;
+    for (var i = 0; i < this.lines.length; ++i) {
+      var line = this$1.lines[i];
+      var span = getMarkedSpanFor(line.markedSpans, this$1);
+      if (span.from != null) {
+        from = Pos(lineObj ? line : lineNo(line), span.from);
+        if (side == -1) { return from }
+      }
+      if (span.to != null) {
+        to = Pos(lineObj ? line : lineNo(line), span.to);
+        if (side == 1) { return to }
+      }
+    }
+    return from && {from: from, to: to}
+  };
+
+  // Signals that the marker's widget changed, and surrounding layout
+  // should be recomputed.
+  TextMarker.prototype.changed = function () {
+      var this$1 = this;
+
+    var pos = this.find(-1, true), widget = this, cm = this.doc.cm;
+    if (!pos || !cm) { return }
+    runInOp(cm, function () {
+      var line = pos.line, lineN = lineNo(pos.line);
+      var view = findViewForLine(cm, lineN);
+      if (view) {
+        clearLineMeasurementCacheFor(view);
+        cm.curOp.selectionChanged = cm.curOp.forceUpdate = true;
+      }
+      cm.curOp.updateMaxLine = true;
+      if (!lineIsHidden(widget.doc, line) && widget.height != null) {
+        var oldHeight = widget.height;
+        widget.height = null;
+        var dHeight = widgetHeight(widget) - oldHeight;
+        if (dHeight)
+          { updateLineHeight(line, line.height + dHeight); }
+      }
+      signalLater(cm, "markerChanged", cm, this$1);
+    });
+  };
+
+  TextMarker.prototype.attachLine = function (line) {
+    if (!this.lines.length && this.doc.cm) {
+      var op = this.doc.cm.curOp;
+      if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1)
+        { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); }
+    }
+    this.lines.push(line);
+  };
+
+  TextMarker.prototype.detachLine = function (line) {
+    this.lines.splice(indexOf(this.lines, line), 1);
+    if (!this.lines.length && this.doc.cm) {
+      var op = this.doc.cm.curOp
+      ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this);
+    }
+  };
+  eventMixin(TextMarker);
+
+  // Create a marker, wire it up to the right lines, and
+  function markText(doc, from, to, options, type) {
+    // Shared markers (across linked documents) are handled separately
+    // (markTextShared will call out to this again, once per
+    // document).
+    if (options && options.shared) { return markTextShared(doc, from, to, options, type) }
+    // Ensure we are in an operation.
+    if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) }
+
+    var marker = new TextMarker(doc, type), diff = cmp(from, to);
+    if (options) { copyObj(options, marker, false); }
+    // Don't connect empty markers unless clearWhenEmpty is false
+    if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false)
+      { return marker }
+    if (marker.replacedWith) {
+      // Showing up as a widget implies collapsed (widget replaces text)
+      marker.collapsed = true;
+      marker.widgetNode = eltP("span", [marker.replacedWith], "CodeMirror-widget");
+      if (!options.handleMouseEvents) { marker.widgetNode.setAttribute("cm-ignore-events", "true"); }
+      if (options.insertLeft) { marker.widgetNode.insertLeft = true; }
+    }
+    if (marker.collapsed) {
+      if (conflictingCollapsedRange(doc, from.line, from, to, marker) ||
+          from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker))
+        { throw new Error("Inserting collapsed marker partially overlapping an existing one") }
+      seeCollapsedSpans();
+    }
+
+    if (marker.addToHistory)
+      { addChangeToHistory(doc, {from: from, to: to, origin: "markText"}, doc.sel, NaN); }
+
+    var curLine = from.line, cm = doc.cm, updateMaxLine;
+    doc.iter(curLine, to.line + 1, function (line) {
+      if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine)
+        { updateMaxLine = true; }
+      if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); }
+      addMarkedSpan(line, new MarkedSpan(marker,
+                                         curLine == from.line ? from.ch : null,
+                                         curLine == to.line ? to.ch : null));
+      ++curLine;
+    });
+    // lineIsHidden depends on the presence of the spans, so needs a second pass
+    if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) {
+      if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); }
+    }); }
+
+    if (marker.clearOnEnter) { on(marker, "beforeCursorEnter", function () { return marker.clear(); }); }
+
+    if (marker.readOnly) {
+      seeReadOnlySpans();
+      if (doc.history.done.length || doc.history.undone.length)
+        { doc.clearHistory(); }
+    }
+    if (marker.collapsed) {
+      marker.id = ++nextMarkerId;
+      marker.atomic = true;
+    }
+    if (cm) {
+      // Sync editor state
+      if (updateMaxLine) { cm.curOp.updateMaxLine = true; }
+      if (marker.collapsed)
+        { regChange(cm, from.line, to.line + 1); }
+      else if (marker.className || marker.title || marker.startStyle || marker.endStyle || marker.css)
+        { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, "text"); } }
+      if (marker.atomic) { reCheckSelection(cm.doc); }
+      signalLater(cm, "markerAdded", cm, marker);
+    }
+    return marker
+  }
+
+  // SHARED TEXTMARKERS
+
+  // A shared marker spans multiple linked documents. It is
+  // implemented as a meta-marker-object controlling multiple normal
+  // markers.
+  var SharedTextMarker = function(markers, primary) {
+    var this$1 = this;
+
+    this.markers = markers;
+    this.primary = primary;
+    for (var i = 0; i < markers.length; ++i)
+      { markers[i].parent = this$1; }
+  };
+
+  SharedTextMarker.prototype.clear = function () {
+      var this$1 = this;
+
+    if (this.explicitlyCleared) { return }
+    this.explicitlyCleared = true;
+    for (var i = 0; i < this.markers.length; ++i)
+      { this$1.markers[i].clear(); }
+    signalLater(this, "clear");
+  };
+
+  SharedTextMarker.prototype.find = function (side, lineObj) {
+    return this.primary.find(side, lineObj)
+  };
+  eventMixin(SharedTextMarker);
+
+  function markTextShared(doc, from, to, options, type) {
+    options = copyObj(options);
+    options.shared = false;
+    var markers = [markText(doc, from, to, options, type)], primary = markers[0];
+    var widget = options.widgetNode;
+    linkedDocs(doc, function (doc) {
+      if (widget) { options.widgetNode = widget.cloneNode(true); }
+      markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type));
+      for (var i = 0; i < doc.linked.length; ++i)
+        { if (doc.linked[i].isParent) { return } }
+      primary = lst(markers);
+    });
+    return new SharedTextMarker(markers, primary)
+  }
+
+  function findSharedMarkers(doc) {
+    return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; })
+  }
+
+  function copySharedMarkers(doc, markers) {
+    for (var i = 0; i < markers.length; i++) {
+      var marker = markers[i], pos = marker.find();
+      var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to);
+      if (cmp(mFrom, mTo)) {
+        var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type);
+        marker.markers.push(subMark);
+        subMark.parent = marker;
+      }
+    }
+  }
+
+  function detachSharedMarkers(markers) {
+    var loop = function ( i ) {
+      var marker = markers[i], linked = [marker.primary.doc];
+      linkedDocs(marker.primary.doc, function (d) { return linked.push(d); });
+      for (var j = 0; j < marker.markers.length; j++) {
+        var subMarker = marker.markers[j];
+        if (indexOf(linked, subMarker.doc) == -1) {
+          subMarker.parent = null;
+          marker.markers.splice(j--, 1);
+        }
+      }
+    };
+
+    for (var i = 0; i < markers.length; i++) loop( i );
+  }
+
+  var nextDocId = 0;
+  var Doc = function(text, mode, firstLine, lineSep, direction) {
+    if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) }
+    if (firstLine == null) { firstLine = 0; }
+
+    BranchChunk.call(this, [new LeafChunk([new Line("", null)])]);
+    this.first = firstLine;
+    this.scrollTop = this.scrollLeft = 0;
+    this.cantEdit = false;
+    this.cleanGeneration = 1;
+    this.modeFrontier = this.highlightFrontier = firstLine;
+    var start = Pos(firstLine, 0);
+    this.sel = simpleSelection(start);
+    this.history = new History(null);
+    this.id = ++nextDocId;
+    this.modeOption = mode;
+    this.lineSep = lineSep;
+    this.direction = (direction == "rtl") ? "rtl" : "ltr";
+    this.extend = false;
+
+    if (typeof text == "string") { text = this.splitLines(text); }
+    updateDoc(this, {from: start, to: start, text: text});
+    setSelection(this, simpleSelection(start), sel_dontScroll);
+  };
+
+  Doc.prototype = createObj(BranchChunk.prototype, {
+    constructor: Doc,
+    // Iterate over the document. Supports two forms -- with only one
+    // argument, it calls that for each line in the document. With
+    // three, it iterates over the range given by the first two (with
+    // the second being non-inclusive).
+    iter: function(from, to, op) {
+      if (op) { this.iterN(from - this.first, to - from, op); }
+      else { this.iterN(this.first, this.first + this.size, from); }
+    },
+
+    // Non-public interface for adding and removing lines.
+    insert: function(at, lines) {
+      var height = 0;
+      for (var i = 0; i < lines.length; ++i) { height += lines[i].height; }
+      this.insertInner(at - this.first, lines, height);
+    },
+    remove: function(at, n) { this.removeInner(at - this.first, n); },
+
+    // From here, the methods are part of the public interface. Most
+    // are also available from CodeMirror (editor) instances.
+
+    getValue: function(lineSep) {
+      var lines = getLines(this, this.first, this.first + this.size);
+      if (lineSep === false) { return lines }
+      return lines.join(lineSep || this.lineSeparator())
+    },
+    setValue: docMethodOp(function(code) {
+      var top = Pos(this.first, 0), last = this.first + this.size - 1;
+      makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length),
+                        text: this.splitLines(code), origin: "setValue", full: true}, true);
+      if (this.cm) { scrollToCoords(this.cm, 0, 0); }
+      setSelection(this, simpleSelection(top), sel_dontScroll);
+    }),
+    replaceRange: function(code, from, to, origin) {
+      from = clipPos(this, from);
+      to = to ? clipPos(this, to) : from;
+      replaceRange(this, code, from, to, origin);
+    },
+    getRange: function(from, to, lineSep) {
+      var lines = getBetween(this, clipPos(this, from), clipPos(this, to));
+      if (lineSep === false) { return lines }
+      return lines.join(lineSep || this.lineSeparator())
+    },
+
+    getLine: function(line) {var l = this.getLineHandle(line); return l && l.text},
+
+    getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }},
+    getLineNumber: function(line) {return lineNo(line)},
+
+    getLineHandleVisualStart: function(line) {
+      if (typeof line == "number") { line = getLine(this, line); }
+      return visualLine(line)
+    },
+
+    lineCount: function() {return this.size},
+    firstLine: function() {return this.first},
+    lastLine: function() {return this.first + this.size - 1},
+
+    clipPos: function(pos) {return clipPos(this, pos)},
+
+    getCursor: function(start) {
+      var range$$1 = this.sel.primary(), pos;
+      if (start == null || start == "head") { pos = range$$1.head; }
+      else if (start == "anchor") { pos = range$$1.anchor; }
+      else if (start == "end" || start == "to" || start === false) { pos = range$$1.to(); }
+      else { pos = range$$1.from(); }
+      return pos
+    },
+    listSelections: function() { return this.sel.ranges },
+    somethingSelected: function() {return this.sel.somethingSelected()},
+
+    setCursor: docMethodOp(function(line, ch, options) {
+      setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options);
+    }),
+    setSelection: docMethodOp(function(anchor, head, options) {
+      setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options);
+    }),
+    extendSelection: docMethodOp(function(head, other, options) {
+      extendSelection(this, clipPos(this, head), other && clipPos(this, other), options);
+    }),
+    extendSelections: docMethodOp(function(heads, options) {
+      extendSelections(this, clipPosArray(this, heads), options);
+    }),
+    extendSelectionsBy: docMethodOp(function(f, options) {
+      var heads = map(this.sel.ranges, f);
+      extendSelections(this, clipPosArray(this, heads), options);
+    }),
+    setSelections: docMethodOp(function(ranges, primary, options) {
+      var this$1 = this;
+
+      if (!ranges.length) { return }
+      var out = [];
+      for (var i = 0; i < ranges.length; i++)
+        { out[i] = new Range(clipPos(this$1, ranges[i].anchor),
+                           clipPos(this$1, ranges[i].head)); }
+      if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); }
+      setSelection(this, normalizeSelection(this.cm, out, primary), options);
+    }),
+    addSelection: docMethodOp(function(anchor, head, options) {
+      var ranges = this.sel.ranges.slice(0);
+      ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor)));
+      setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options);
+    }),
+
+    getSelection: function(lineSep) {
+      var this$1 = this;
+
+      var ranges = this.sel.ranges, lines;
+      for (var i = 0; i < ranges.length; i++) {
+        var sel = getBetween(this$1, ranges[i].from(), ranges[i].to());
+        lines = lines ? lines.concat(sel) : sel;
+      }
+      if (lineSep === false) { return lines }
+      else { return lines.join(lineSep || this.lineSeparator()) }
+    },
+    getSelections: function(lineSep) {
+      var this$1 = this;
+
+      var parts = [], ranges = this.sel.ranges;
+      for (var i = 0; i < ranges.length; i++) {
+        var sel = getBetween(this$1, ranges[i].from(), ranges[i].to());
+        if (lineSep !== false) { sel = sel.join(lineSep || this$1.lineSeparator()); }
+        parts[i] = sel;
+      }
+      return parts
+    },
+    replaceSelection: function(code, collapse, origin) {
+      var dup = [];
+      for (var i = 0; i < this.sel.ranges.length; i++)
+        { dup[i] = code; }
+      this.replaceSelections(dup, collapse, origin || "+input");
+    },
+    replaceSelections: docMethodOp(function(code, collapse, origin) {
+      var this$1 = this;
+
+      var changes = [], sel = this.sel;
+      for (var i = 0; i < sel.ranges.length; i++) {
+        var range$$1 = sel.ranges[i];
+        changes[i] = {from: range$$1.from(), to: range$$1.to(), text: this$1.splitLines(code[i]), origin: origin};
+      }
+      var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse);
+      for (var i$1 = changes.length - 1; i$1 >= 0; i$1--)
+        { makeChange(this$1, changes[i$1]); }
+      if (newSel) { setSelectionReplaceHistory(this, newSel); }
+      else if (this.cm) { ensureCursorVisible(this.cm); }
+    }),
+    undo: docMethodOp(function() {makeChangeFromHistory(this, "undo");}),
+    redo: docMethodOp(function() {makeChangeFromHistory(this, "redo");}),
+    undoSelection: docMethodOp(function() {makeChangeFromHistory(this, "undo", true);}),
+    redoSelection: docMethodOp(function() {makeChangeFromHistory(this, "redo", true);}),
+
+    setExtending: function(val) {this.extend = val;},
+    getExtending: function() {return this.extend},
+
+    historySize: function() {
+      var hist = this.history, done = 0, undone = 0;
+      for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } }
+      for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } }
+      return {undo: done, redo: undone}
+    },
+    clearHistory: function() {this.history = new History(this.history.maxGeneration);},
+
+    markClean: function() {
+      this.cleanGeneration = this.changeGeneration(true);
+    },
+    changeGeneration: function(forceSplit) {
+      if (forceSplit)
+        { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; }
+      return this.history.generation
+    },
+    isClean: function (gen) {
+      return this.history.generation == (gen || this.cleanGeneration)
+    },
+
+    getHistory: function() {
+      return {done: copyHistoryArray(this.history.done),
+              undone: copyHistoryArray(this.history.undone)}
+    },
+    setHistory: function(histData) {
+      var hist = this.history = new History(this.history.maxGeneration);
+      hist.done = copyHistoryArray(histData.done.slice(0), null, true);
+      hist.undone = copyHistoryArray(histData.undone.slice(0), null, true);
+    },
+
+    setGutterMarker: docMethodOp(function(line, gutterID, value) {
+      return changeLine(this, line, "gutter", function (line) {
+        var markers = line.gutterMarkers || (line.gutterMarkers = {});
+        markers[gutterID] = value;
+        if (!value && isEmpty(markers)) { line.gutterMarkers = null; }
+        return true
+      })
+    }),
+
+    clearGutter: docMethodOp(function(gutterID) {
+      var this$1 = this;
+
+      this.iter(function (line) {
+        if (line.gutterMarkers && line.gutterMarkers[gutterID]) {
+          changeLine(this$1, line, "gutter", function () {
+            line.gutterMarkers[gutterID] = null;
+            if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; }
+            return true
+          });
+        }
+      });
+    }),
+
+    lineInfo: function(line) {
+      var n;
+      if (typeof line == "number") {
+        if (!isLine(this, line)) { return null }
+        n = line;
+        line = getLine(this, line);
+        if (!line) { return null }
+      } else {
+        n = lineNo(line);
+        if (n == null) { return null }
+      }
+      return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers,
+              textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass,
+              widgets: line.widgets}
+    },
+
+    addLineClass: docMethodOp(function(handle, where, cls) {
+      return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) {
+        var prop = where == "text" ? "textClass"
+                 : where == "background" ? "bgClass"
+                 : where == "gutter" ? "gutterClass" : "wrapClass";
+        if (!line[prop]) { line[prop] = cls; }
+        else if (classTest(cls).test(line[prop])) { return false }
+        else { line[prop] += " " + cls; }
+        return true
+      })
+    }),
+    removeLineClass: docMethodOp(function(handle, where, cls) {
+      return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) {
+        var prop = where == "text" ? "textClass"
+                 : where == "background" ? "bgClass"
+                 : where == "gutter" ? "gutterClass" : "wrapClass";
+        var cur = line[prop];
+        if (!cur) { return false }
+        else if (cls == null) { line[prop] = null; }
+        else {
+          var found = cur.match(classTest(cls));
+          if (!found) { return false }
+          var end = found.index + found[0].length;
+          line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null;
+        }
+        return true
+      })
+    }),
+
+    addLineWidget: docMethodOp(function(handle, node, options) {
+      return addLineWidget(this, handle, node, options)
+    }),
+    removeLineWidget: function(widget) { widget.clear(); },
+
+    markText: function(from, to, options) {
+      return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || "range")
+    },
+    setBookmark: function(pos, options) {
+      var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options),
+                      insertLeft: options && options.insertLeft,
+                      clearWhenEmpty: false, shared: options && options.shared,
+                      handleMouseEvents: options && options.handleMouseEvents};
+      pos = clipPos(this, pos);
+      return markText(this, pos, pos, realOpts, "bookmark")
+    },
+    findMarksAt: function(pos) {
+      pos = clipPos(this, pos);
+      var markers = [], spans = getLine(this, pos.line).markedSpans;
+      if (spans) { for (var i = 0; i < spans.length; ++i) {
+        var span = spans[i];
+        if ((span.from == null || span.from <= pos.ch) &&
+            (span.to == null || span.to >= pos.ch))
+          { markers.push(span.marker.parent || span.marker); }
+      } }
+      return markers
+    },
+    findMarks: function(from, to, filter) {
+      from = clipPos(this, from); to = clipPos(this, to);
+      var found = [], lineNo$$1 = from.line;
+      this.iter(from.line, to.line + 1, function (line) {
+        var spans = line.markedSpans;
+        if (spans) { for (var i = 0; i < spans.length; i++) {
+          var span = spans[i];
+          if (!(span.to != null && lineNo$$1 == from.line && from.ch >= span.to ||
+                span.from == null && lineNo$$1 != from.line ||
+                span.from != null && lineNo$$1 == to.line && span.from >= to.ch) &&
+              (!filter || filter(span.marker)))
+            { found.push(span.marker.parent || span.marker); }
+        } }
+        ++lineNo$$1;
+      });
+      return found
+    },
+    getAllMarks: function() {
+      var markers = [];
+      this.iter(function (line) {
+        var sps = line.markedSpans;
+        if (sps) { for (var i = 0; i < sps.length; ++i)
+          { if (sps[i].from != null) { markers.push(sps[i].marker); } } }
+      });
+      return markers
+    },
+
+    posFromIndex: function(off) {
+      var ch, lineNo$$1 = this.first, sepSize = this.lineSeparator().length;
+      this.iter(function (line) {
+        var sz = line.text.length + sepSize;
+        if (sz > off) { ch = off; return true }
+        off -= sz;
+        ++lineNo$$1;
+      });
+      return clipPos(this, Pos(lineNo$$1, ch))
+    },
+    indexFromPos: function (coords) {
+      coords = clipPos(this, coords);
+      var index = coords.ch;
+      if (coords.line < this.first || coords.ch < 0) { return 0 }
+      var sepSize = this.lineSeparator().length;
+      this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value
+        index += line.text.length + sepSize;
+      });
+      return index
+    },
+
+    copy: function(copyHistory) {
+      var doc = new Doc(getLines(this, this.first, this.first + this.size),
+                        this.modeOption, this.first, this.lineSep, this.direction);
+      doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft;
+      doc.sel = this.sel;
+      doc.extend = false;
+      if (copyHistory) {
+        doc.history.undoDepth = this.history.undoDepth;
+        doc.setHistory(this.getHistory());
+      }
+      return doc
+    },
+
+    linkedDoc: function(options) {
+      if (!options) { options = {}; }
+      var from = this.first, to = this.first + this.size;
+      if (options.from != null && options.from > from) { from = options.from; }
+      if (options.to != null && options.to < to) { to = options.to; }
+      var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction);
+      if (options.sharedHist) { copy.history = this.history
+      ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist});
+      copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}];
+      copySharedMarkers(copy, findSharedMarkers(this));
+      return copy
+    },
+    unlinkDoc: function(other) {
+      var this$1 = this;
+
+      if (other instanceof CodeMirror) { other = other.doc; }
+      if (this.linked) { for (var i = 0; i < this.linked.length; ++i) {
+        var link = this$1.linked[i];
+        if (link.doc != other) { continue }
+        this$1.linked.splice(i, 1);
+        other.unlinkDoc(this$1);
+        detachSharedMarkers(findSharedMarkers(this$1));
+        break
+      } }
+      // If the histories were shared, split them again
+      if (other.history == this.history) {
+        var splitIds = [other.id];
+        linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true);
+        other.history = new History(null);
+        other.history.done = copyHistoryArray(this.history.done, splitIds);
+        other.history.undone = copyHistoryArray(this.history.undone, splitIds);
+      }
+    },
+    iterLinkedDocs: function(f) {linkedDocs(this, f);},
+
+    getMode: function() {return this.mode},
+    getEditor: function() {return this.cm},
+
+    splitLines: function(str) {
+      if (this.lineSep) { return str.split(this.lineSep) }
+      return splitLinesAuto(str)
+    },
+    lineSeparator: function() { return this.lineSep || "\n" },
+
+    setDirection: docMethodOp(function (dir) {
+      if (dir != "rtl") { dir = "ltr"; }
+      if (dir == this.direction) { return }
+      this.direction = dir;
+      this.iter(function (line) { return line.order = null; });
+      if (this.cm) { directionChanged(this.cm); }
+    })
+  });
+
+  // Public alias.
+  Doc.prototype.eachLine = Doc.prototype.iter;
+
+  // Kludge to work around strange IE behavior where it'll sometimes
+  // re-fire a series of drag-related events right after the drop (#1551)
+  var lastDrop = 0;
+
+  function onDrop(e) {
+    var cm = this;
+    clearDragCursor(cm);
+    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e))
+      { return }
+    e_preventDefault(e);
+    if (ie) { lastDrop = +new Date; }
+    var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files;
+    if (!pos || cm.isReadOnly()) { return }
+    // Might be a file drop, in which case we simply extract the text
+    // and insert it.
+    if (files && files.length && window.FileReader && window.File) {
+      var n = files.length, text = Array(n), read = 0;
+      var loadFile = function (file, i) {
+        if (cm.options.allowDropFileTypes &&
+            indexOf(cm.options.allowDropFileTypes, file.type) == -1)
+          { return }
+
+        var reader = new FileReader;
+        reader.onload = operation(cm, function () {
+          var content = reader.result;
+          if (/[\x00-\x08\x0e-\x1f]{2}/.test(content)) { content = ""; }
+          text[i] = content;
+          if (++read == n) {
+            pos = clipPos(cm.doc, pos);
+            var change = {from: pos, to: pos,
+                          text: cm.doc.splitLines(text.join(cm.doc.lineSeparator())),
+                          origin: "paste"};
+            makeChange(cm.doc, change);
+            setSelectionReplaceHistory(cm.doc, simpleSelection(pos, changeEnd(change)));
+          }
+        });
+        reader.readAsText(file);
+      };
+      for (var i = 0; i < n; ++i) { loadFile(files[i], i); }
+    } else { // Normal drop
+      // Don't do a replace if the drop happened inside of the selected text.
+      if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) {
+        cm.state.draggingText(e);
+        // Ensure the editor is re-focused
+        setTimeout(function () { return cm.display.input.focus(); }, 20);
+        return
+      }
+      try {
+        var text$1 = e.dataTransfer.getData("Text");
+        if (text$1) {
+          var selected;
+          if (cm.state.draggingText && !cm.state.draggingText.copy)
+            { selected = cm.listSelections(); }
+          setSelectionNoUndo(cm.doc, simpleSelection(pos, pos));
+          if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1)
+            { replaceRange(cm.doc, "", selected[i$1].anchor, selected[i$1].head, "drag"); } }
+          cm.replaceSelection(text$1, "around", "paste");
+          cm.display.input.focus();
+        }
+      }
+      catch(e){}
+    }
+  }
+
+  function onDragStart(cm, e) {
+    if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return }
+    if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return }
+
+    e.dataTransfer.setData("Text", cm.getSelection());
+    e.dataTransfer.effectAllowed = "copyMove";
+
+    // Use dummy image instead of default browsers image.
+    // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.
+    if (e.dataTransfer.setDragImage && !safari) {
+      var img = elt("img", null, null, "position: fixed; left: 0; top: 0;");
+      img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";
+      if (presto) {
+        img.width = img.height = 1;
+        cm.display.wrapper.appendChild(img);
+        // Force a relayout, or Opera won't use our image for some obscure reason
+        img._top = img.offsetTop;
+      }
+      e.dataTransfer.setDragImage(img, 0, 0);
+      if (presto) { img.parentNode.removeChild(img); }
+    }
+  }
+
+  function onDragOver(cm, e) {
+    var pos = posFromMouse(cm, e);
+    if (!pos) { return }
+    var frag = document.createDocumentFragment();
+    drawSelectionCursor(cm, pos, frag);
+    if (!cm.display.dragCursor) {
+      cm.display.dragCursor = elt("div", null, "CodeMirror-cursors CodeMirror-dragcursors");
+      cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv);
+    }
+    removeChildrenAndAdd(cm.display.dragCursor, frag);
+  }
+
+  function clearDragCursor(cm) {
+    if (cm.display.dragCursor) {
+      cm.display.lineSpace.removeChild(cm.display.dragCursor);
+      cm.display.dragCursor = null;
+    }
+  }
+
+  // These must be handled carefully, because naively registering a
+  // handler for each editor will cause the editors to never be
+  // garbage collected.
+
+  function forEachCodeMirror(f) {
+    if (!document.getElementsByClassName) { return }
+    var byClass = document.getElementsByClassName("CodeMirror");
+    for (var i = 0; i < byClass.length; i++) {
+      var cm = byClass[i].CodeMirror;
+      if (cm) { f(cm); }
+    }
+  }
+
+  var globalsRegistered = false;
+  function ensureGlobalHandlers() {
+    if (globalsRegistered) { return }
+    registerGlobalHandlers();
+    globalsRegistered = true;
+  }
+  function registerGlobalHandlers() {
+    // When the window resizes, we need to refresh active editors.
+    var resizeTimer;
+    on(window, "resize", function () {
+      if (resizeTimer == null) { resizeTimer = setTimeout(function () {
+        resizeTimer = null;
+        forEachCodeMirror(onResize);
+      }, 100); }
+    });
+    // When the window loses focus, we want to show the editor as blurred
+    on(window, "blur", function () { return forEachCodeMirror(onBlur); });
+  }
+  // Called when the window resizes
+  function onResize(cm) {
+    var d = cm.display;
+    // Might be a text scaling operation, clear size caches.
+    d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null;
+    d.scrollbarsClipped = false;
+    cm.setSize();
+  }
+
+  var keyNames = {
+    3: "Pause", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt",
+    19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End",
+    36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert",
+    46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod",
+    106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 127: "Delete", 145: "ScrollLock",
+    173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\",
+    221: "]", 222: "'", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete",
+    63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert"
+  };
+
+  // Number keys
+  for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); }
+  // Alphabetic keys
+  for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); }
+  // Function keys
+  for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = "F" + i$2; }
+
+  var keyMap = {};
+
+  keyMap.basic = {
+    "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown",
+    "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown",
+    "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore",
+    "Tab": "defaultTab", "Shift-Tab": "indentAuto",
+    "Enter": "newlineAndIndent", "Insert": "toggleOverwrite",
+    "Esc": "singleSelection"
+  };
+  // Note that the save and find-related commands aren't defined by
+  // default. User code or addons can define them. Unknown commands
+  // are simply ignored.
+  keyMap.pcDefault = {
+    "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo",
+    "Ctrl-Home": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Up": "goLineUp", "Ctrl-Down": "goLineDown",
+    "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd",
+    "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find",
+    "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll",
+    "Ctrl-[": "indentLess", "Ctrl-]": "indentMore",
+    "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection",
+    "fallthrough": "basic"
+  };
+  // Very basic readline/emacs-style bindings, which are standard on Mac.
+  keyMap.emacsy = {
+    "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown",
+    "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd",
+    "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore",
+    "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars",
+    "Ctrl-O": "openLine"
+  };
+  keyMap.macDefault = {
+    "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo",
+    "Cmd-Home": "goDocStart", "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft",
+    "Alt-Right": "goGroupRight", "Cmd-Left": "goLineLeft", "Cmd-Right": "goLineRight", "Alt-Backspace": "delGroupBefore",
+    "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find",
+    "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll",
+    "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight",
+    "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd",
+    "fallthrough": ["basic", "emacsy"]
+  };
+  keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault;
+
+  // KEYMAP DISPATCH
+
+  function normalizeKeyName(name) {
+    var parts = name.split(/-(?!$)/);
+    name = parts[parts.length - 1];
+    var alt, ctrl, shift, cmd;
+    for (var i = 0; i < parts.length - 1; i++) {
+      var mod = parts[i];
+      if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; }
+      else if (/^a(lt)?$/i.test(mod)) { alt = true; }
+      else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; }
+      else if (/^s(hift)?$/i.test(mod)) { shift = true; }
+      else { throw new Error("Unrecognized modifier name: " + mod) }
+    }
+    if (alt) { name = "Alt-" + name; }
+    if (ctrl) { name = "Ctrl-" + name; }
+    if (cmd) { name = "Cmd-" + name; }
+    if (shift) { name = "Shift-" + name; }
+    return name
+  }
+
+  // This is a kludge to keep keymaps mostly working as raw objects
+  // (backwards compatibility) while at the same time support features
+  // like normalization and multi-stroke key bindings. It compiles a
+  // new normalized keymap, and then updates the old object to reflect
+  // this.
+  function normalizeKeyMap(keymap) {
+    var copy = {};
+    for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) {
+      var value = keymap[keyname];
+      if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue }
+      if (value == "...") { delete keymap[keyname]; continue }
+
+      var keys = map(keyname.split(" "), normalizeKeyName);
+      for (var i = 0; i < keys.length; i++) {
+        var val = (void 0), name = (void 0);
+        if (i == keys.length - 1) {
+          name = keys.join(" ");
+          val = value;
+        } else {
+          name = keys.slice(0, i + 1).join(" ");
+          val = "...";
+        }
+        var prev = copy[name];
+        if (!prev) { copy[name] = val; }
+        else if (prev != val) { throw new Error("Inconsistent bindings for " + name) }
+      }
+      delete keymap[keyname];
+    } }
+    for (var prop in copy) { keymap[prop] = copy[prop]; }
+    return keymap
+  }
+
+  function lookupKey(key, map$$1, handle, context) {
+    map$$1 = getKeyMap(map$$1);
+    var found = map$$1.call ? map$$1.call(key, context) : map$$1[key];
+    if (found === false) { return "nothing" }
+    if (found === "...") { return "multi" }
+    if (found != null && handle(found)) { return "handled" }
+
+    if (map$$1.fallthrough) {
+      if (Object.prototype.toString.call(map$$1.fallthrough) != "[object Array]")
+        { return lookupKey(key, map$$1.fallthrough, handle, context) }
+      for (var i = 0; i < map$$1.fallthrough.length; i++) {
+        var result = lookupKey(key, map$$1.fallthrough[i], handle, context);
+        if (result) { return result }
+      }
+    }
+  }
+
+  // Modifier key presses don't count as 'real' key presses for the
+  // purpose of keymap fallthrough.
+  function isModifierKey(value) {
+    var name = typeof value == "string" ? value : keyNames[value.keyCode];
+    return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod"
+  }
+
+  function addModifierNames(name, event, noShift) {
+    var base = name;
+    if (event.altKey && base != "Alt") { name = "Alt-" + name; }
+    if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") { name = "Ctrl-" + name; }
+    if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Cmd") { name = "Cmd-" + name; }
+    if (!noShift && event.shiftKey && base != "Shift") { name = "Shift-" + name; }
+    return name
+  }
+
+  // Look up the name of a key as indicated by an event object.
+  function keyName(event, noShift) {
+    if (presto && event.keyCode == 34 && event["char"]) { return false }
+    var name = keyNames[event.keyCode];
+    if (name == null || event.altGraphKey) { return false }
+    // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause,
+    // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+)
+    if (event.keyCode == 3 && event.code) { name = event.code; }
+    return addModifierNames(name, event, noShift)
+  }
+
+  function getKeyMap(val) {
+    return typeof val == "string" ? keyMap[val] : val
+  }
+
+  // Helper for deleting text near the selection(s), used to implement
+  // backspace, delete, and similar functionality.
+  function deleteNearSelection(cm, compute) {
+    var ranges = cm.doc.sel.ranges, kill = [];
+    // Build up a set of ranges to kill first, merging overlapping
+    // ranges.
+    for (var i = 0; i < ranges.length; i++) {
+      var toKill = compute(ranges[i]);
+      while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) {
+        var replaced = kill.pop();
+        if (cmp(replaced.from, toKill.from) < 0) {
+          toKill.from = replaced.from;
+          break
+        }
+      }
+      kill.push(toKill);
+    }
+    // Next, remove those actual ranges.
+    runInOp(cm, function () {
+      for (var i = kill.length - 1; i >= 0; i--)
+        { replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete"); }
+      ensureCursorVisible(cm);
+    });
+  }
+
+  function moveCharLogically(line, ch, dir) {
+    var target = skipExtendingChars(line.text, ch + dir, dir);
+    return target < 0 || target > line.text.length ? null : target
+  }
+
+  function moveLogically(line, start, dir) {
+    var ch = moveCharLogically(line, start.ch, dir);
+    return ch == null ? null : new Pos(start.line, ch, dir < 0 ? "after" : "before")
+  }
+
+  function endOfLine(visually, cm, lineObj, lineNo, dir) {
+    if (visually) {
+      var order = getOrder(lineObj, cm.doc.direction);
+      if (order) {
+        var part = dir < 0 ? lst(order) : order[0];
+        var moveInStorageOrder = (dir < 0) == (part.level == 1);
+        var sticky = moveInStorageOrder ? "after" : "before";
+        var ch;
+        // With a wrapped rtl chunk (possibly spanning multiple bidi parts),
+        // it could be that the last bidi part is not on the last visual line,
+        // since visual lines contain content order-consecutive chunks.
+        // Thus, in rtl, we are looking for the first (content-order) character
+        // in the rtl chunk that is on the last line (that is, the same line
+        // as the last (content-order) character).
+        if (part.level > 0 || cm.doc.direction == "rtl") {
+          var prep = prepareMeasureForLine(cm, lineObj);
+          ch = dir < 0 ? lineObj.text.length - 1 : 0;
+          var targetTop = measureCharPrepared(cm, prep, ch).top;
+          ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch);
+          if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1); }
+        } else { ch = dir < 0 ? part.to : part.from; }
+        return new Pos(lineNo, ch, sticky)
+      }
+    }
+    return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? "before" : "after")
+  }
+
+  function moveVisually(cm, line, start, dir) {
+    var bidi = getOrder(line, cm.doc.direction);
+    if (!bidi) { return moveLogically(line, start, dir) }
+    if (start.ch >= line.text.length) {
+      start.ch = line.text.length;
+      start.sticky = "before";
+    } else if (start.ch <= 0) {
+      start.ch = 0;
+      start.sticky = "after";
+    }
+    var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos];
+    if (cm.doc.direction == "ltr" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) {
+      // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines,
+      // nothing interesting happens.
+      return moveLogically(line, start, dir)
+    }
+
+    var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); };
+    var prep;
+    var getWrappedLineExtent = function (ch) {
+      if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} }
+      prep = prep || prepareMeasureForLine(cm, line);
+      return wrappedLineExtentChar(cm, line, prep, ch)
+    };
+    var wrappedLineExtent = getWrappedLineExtent(start.sticky == "before" ? mv(start, -1) : start.ch);
+
+    if (cm.doc.direction == "rtl" || part.level == 1) {
+      var moveInStorageOrder = (part.level == 1) == (dir < 0);
+      var ch = mv(start, moveInStorageOrder ? 1 : -1);
+      if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) {
+        // Case 2: We move within an rtl part or in an rtl editor on the same visual line
+        var sticky = moveInStorageOrder ? "before" : "after";
+        return new Pos(start.line, ch, sticky)
+      }
+    }
+
+    // Case 3: Could not move within this bidi part in this visual line, so leave
+    // the current bidi part
+
+    var searchInVisualLine = function (partPos, dir, wrappedLineExtent) {
+      var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder
+        ? new Pos(start.line, mv(ch, 1), "before")
+        : new Pos(start.line, ch, "after"); };
+
+      for (; partPos >= 0 && partPos < bidi.length; partPos += dir) {
+        var part = bidi[partPos];
+        var moveInStorageOrder = (dir > 0) == (part.level != 1);
+        var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1);
+        if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) }
+        ch = moveInStorageOrder ? part.from : mv(part.to, -1);
+        if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) }
+      }
+    };
+
+    // Case 3a: Look for other bidi parts on the same visual line
+    var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent);
+    if (res) { return res }
+
+    // Case 3b: Look for other bidi parts on the next visual line
+    var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1);
+    if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) {
+      res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh));
+      if (res) { return res }
+    }
+
+    // Case 4: Nowhere to move
+    return null
+  }
+
+  // Commands are parameter-less actions that can be performed on an
+  // editor, mostly used for keybindings.
+  var commands = {
+    selectAll: selectAll,
+    singleSelection: function (cm) { return cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll); },
+    killLine: function (cm) { return deleteNearSelection(cm, function (range) {
+      if (range.empty()) {
+        var len = getLine(cm.doc, range.head.line).text.length;
+        if (range.head.ch == len && range.head.line < cm.lastLine())
+          { return {from: range.head, to: Pos(range.head.line + 1, 0)} }
+        else
+          { return {from: range.head, to: Pos(range.head.line, len)} }
+      } else {
+        return {from: range.from(), to: range.to()}
+      }
+    }); },
+    deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({
+      from: Pos(range.from().line, 0),
+      to: clipPos(cm.doc, Pos(range.to().line + 1, 0))
+    }); }); },
+    delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({
+      from: Pos(range.from().line, 0), to: range.from()
+    }); }); },
+    delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) {
+      var top = cm.charCoords(range.head, "div").top + 5;
+      var leftPos = cm.coordsChar({left: 0, top: top}, "div");
+      return {from: leftPos, to: range.from()}
+    }); },
+    delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) {
+      var top = cm.charCoords(range.head, "div").top + 5;
+      var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div");
+      return {from: range.from(), to: rightPos }
+    }); },
+    undo: function (cm) { return cm.undo(); },
+    redo: function (cm) { return cm.redo(); },
+    undoSelection: function (cm) { return cm.undoSelection(); },
+    redoSelection: function (cm) { return cm.redoSelection(); },
+    goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); },
+    goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); },
+    goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); },
+      {origin: "+move", bias: 1}
+    ); },
+    goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); },
+      {origin: "+move", bias: 1}
+    ); },
+    goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); },
+      {origin: "+move", bias: -1}
+    ); },
+    goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) {
+      var top = cm.cursorCoords(range.head, "div").top + 5;
+      return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div")
+    }, sel_move); },
+    goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) {
+      var top = cm.cursorCoords(range.head, "div").top + 5;
+      return cm.coordsChar({left: 0, top: top}, "div")
+    }, sel_move); },
+    goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) {
+      var top = cm.cursorCoords(range.head, "div").top + 5;
+      var pos = cm.coordsChar({left: 0, top: top}, "div");
+      if (pos.ch < cm.getLine(pos.line).search(/\S/)) { return lineStartSmart(cm, range.head) }
+      return pos
+    }, sel_move); },
+    goLineUp: function (cm) { return cm.moveV(-1, "line"); },
+    goLineDown: function (cm) { return cm.moveV(1, "line"); },
+    goPageUp: function (cm) { return cm.moveV(-1, "page"); },
+    goPageDown: function (cm) { return cm.moveV(1, "page"); },
+    goCharLeft: function (cm) { return cm.moveH(-1, "char"); },
+    goCharRight: function (cm) { return cm.moveH(1, "char"); },
+    goColumnLeft: function (cm) { return cm.moveH(-1, "column"); },
+    goColumnRight: function (cm) { return cm.moveH(1, "column"); },
+    goWordLeft: function (cm) { return cm.moveH(-1, "word"); },
+    goGroupRight: function (cm) { return cm.moveH(1, "group"); },
+    goGroupLeft: function (cm) { return cm.moveH(-1, "group"); },
+    goWordRight: function (cm) { return cm.moveH(1, "word"); },
+    delCharBefore: function (cm) { return cm.deleteH(-1, "char"); },
+    delCharAfter: function (cm) { return cm.deleteH(1, "char"); },
+    delWordBefore: function (cm) { return cm.deleteH(-1, "word"); },
+    delWordAfter: function (cm) { return cm.deleteH(1, "word"); },
+    delGroupBefore: function (cm) { return cm.deleteH(-1, "group"); },
+    delGroupAfter: function (cm) { return cm.deleteH(1, "group"); },
+    indentAuto: function (cm) { return cm.indentSelection("smart"); },
+    indentMore: function (cm) { return cm.indentSelection("add"); },
+    indentLess: function (cm) { return cm.indentSelection("subtract"); },
+    insertTab: function (cm) { return cm.replaceSelection("\t"); },
+    insertSoftTab: function (cm) {
+      var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize;
+      for (var i = 0; i < ranges.length; i++) {
+        var pos = ranges[i].from();
+        var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);
+        spaces.push(spaceStr(tabSize - col % tabSize));
+      }
+      cm.replaceSelections(spaces);
+    },
+    defaultTab: function (cm) {
+      if (cm.somethingSelected()) { cm.indentSelection("add"); }
+      else { cm.execCommand("insertTab"); }
+    },
+    // Swap the two chars left and right of each selection's head.
+    // Move cursor behind the two swapped characters afterwards.
+    //
+    // Doesn't consider line feeds a character.
+    // Doesn't scan more than one line above to find a character.
+    // Doesn't do anything on an empty line.
+    // Doesn't do anything with non-empty selections.
+    transposeChars: function (cm) { return runInOp(cm, function () {
+      var ranges = cm.listSelections(), newSel = [];
+      for (var i = 0; i < ranges.length; i++) {
+        if (!ranges[i].empty()) { continue }
+        var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text;
+        if (line) {
+          if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); }
+          if (cur.ch > 0) {
+            cur = new Pos(cur.line, cur.ch + 1);
+            cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2),
+                            Pos(cur.line, cur.ch - 2), cur, "+transpose");
+          } else if (cur.line > cm.doc.first) {
+            var prev = getLine(cm.doc, cur.line - 1).text;
+            if (prev) {
+              cur = new Pos(cur.line, 1);
+              cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() +
+                              prev.charAt(prev.length - 1),
+                              Pos(cur.line - 1, prev.length - 1), cur, "+transpose");
+            }
+          }
+        }
+        newSel.push(new Range(cur, cur));
+      }
+      cm.setSelections(newSel);
+    }); },
+    newlineAndIndent: function (cm) { return runInOp(cm, function () {
+      var sels = cm.listSelections();
+      for (var i = sels.length - 1; i >= 0; i--)
+        { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, "+input"); }
+      sels = cm.listSelections();
+      for (var i$1 = 0; i$1 < sels.length; i$1++)
+        { cm.indentLine(sels[i$1].from().line, null, true); }
+      ensureCursorVisible(cm);
+    }); },
+    openLine: function (cm) { return cm.replaceSelection("\n", "start"); },
+    toggleOverwrite: function (cm) { return cm.toggleOverwrite(); }
+  };
+
+
+  function lineStart(cm, lineN) {
+    var line = getLine(cm.doc, lineN);
+    var visual = visualLine(line);
+    if (visual != line) { lineN = lineNo(visual); }
+    return endOfLine(true, cm, visual, lineN, 1)
+  }
+  function lineEnd(cm, lineN) {
+    var line = getLine(cm.doc, lineN);
+    var visual = visualLineEnd(line);
+    if (visual != line) { lineN = lineNo(visual); }
+    return endOfLine(true, cm, line, lineN, -1)
+  }
+  function lineStartSmart(cm, pos) {
+    var start = lineStart(cm, pos.line);
+    var line = getLine(cm.doc, start.line);
+    var order = getOrder(line, cm.doc.direction);
+    if (!order || order[0].level == 0) {
+      var firstNonWS = Math.max(0, line.text.search(/\S/));
+      var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch;
+      return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky)
+    }
+    return start
+  }
+
+  // Run a handler that was bound to a key.
+  function doHandleBinding(cm, bound, dropShift) {
+    if (typeof bound == "string") {
+      bound = commands[bound];
+      if (!bound) { return false }
+    }
+    // Ensure previous input has been read, so that the handler sees a
+    // consistent view of the document
+    cm.display.input.ensurePolled();
+    var prevShift = cm.display.shift, done = false;
+    try {
+      if (cm.isReadOnly()) { cm.state.suppressEdits = true; }
+      if (dropShift) { cm.display.shift = false; }
+      done = bound(cm) != Pass;
+    } finally {
+      cm.display.shift = prevShift;
+      cm.state.suppressEdits = false;
+    }
+    return done
+  }
+
+  function lookupKeyForEditor(cm, name, handle) {
+    for (var i = 0; i < cm.state.keyMaps.length; i++) {
+      var result = lookupKey(name, cm.state.keyMaps[i], handle, cm);
+      if (result) { return result }
+    }
+    return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm))
+      || lookupKey(name, cm.options.keyMap, handle, cm)
+  }
+
+  // Note that, despite the name, this function is also used to check
+  // for bound mouse clicks.
+
+  var stopSeq = new Delayed;
+
+  function dispatchKey(cm, name, e, handle) {
+    var seq = cm.state.keySeq;
+    if (seq) {
+      if (isModifierKey(name)) { return "handled" }
+      if (/\'$/.test(name))
+        { cm.state.keySeq = null; }
+      else
+        { stopSeq.set(50, function () {
+          if (cm.state.keySeq == seq) {
+            cm.state.keySeq = null;
+            cm.display.input.reset();
+          }
+        }); }
+      if (dispatchKeyInner(cm, seq + " " + name, e, handle)) { return true }
+    }
+    return dispatchKeyInner(cm, name, e, handle)
+  }
+
+  function dispatchKeyInner(cm, name, e, handle) {
+    var result = lookupKeyForEditor(cm, name, handle);
+
+    if (result == "multi")
+      { cm.state.keySeq = name; }
+    if (result == "handled")
+      { signalLater(cm, "keyHandled", cm, name, e); }
+
+    if (result == "handled" || result == "multi") {
+      e_preventDefault(e);
+      restartBlink(cm);
+    }
+
+    return !!result
+  }
+
+  // Handle a key from the keydown event.
+  function handleKeyBinding(cm, e) {
+    var name = keyName(e, true);
+    if (!name) { return false }
+
+    if (e.shiftKey && !cm.state.keySeq) {
+      // First try to resolve full name (including 'Shift-'). Failing
+      // that, see if there is a cursor-motion command (starting with
+      // 'go') bound to the keyname without 'Shift-'.
+      return dispatchKey(cm, "Shift-" + name, e, function (b) { return doHandleBinding(cm, b, true); })
+          || dispatchKey(cm, name, e, function (b) {
+               if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion)
+                 { return doHandleBinding(cm, b) }
+             })
+    } else {
+      return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); })
+    }
+  }
+
+  // Handle a key from the keypress event
+  function handleCharBinding(cm, e, ch) {
+    return dispatchKey(cm, "'" + ch + "'", e, function (b) { return doHandleBinding(cm, b, true); })
+  }
+
+  var lastStoppedKey = null;
+  function onKeyDown(e) {
+    var cm = this;
+    cm.curOp.focus = activeElt();
+    if (signalDOMEvent(cm, e)) { return }
+    // IE does strange things with escape.
+    if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; }
+    var code = e.keyCode;
+    cm.display.shift = code == 16 || e.shiftKey;
+    var handled = handleKeyBinding(cm, e);
+    if (presto) {
+      lastStoppedKey = handled ? code : null;
+      // Opera has no cut event... we try to at least catch the key combo
+      if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey))
+        { cm.replaceSelection("", null, "cut"); }
+    }
+
+    // Turn mouse into crosshair when Alt is held on Mac.
+    if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className))
+      { showCrossHair(cm); }
+  }
+
+  function showCrossHair(cm) {
+    var lineDiv = cm.display.lineDiv;
+    addClass(lineDiv, "CodeMirror-crosshair");
+
+    function up(e) {
+      if (e.keyCode == 18 || !e.altKey) {
+        rmClass(lineDiv, "CodeMirror-crosshair");
+        off(document, "keyup", up);
+        off(document, "mouseover", up);
+      }
+    }
+    on(document, "keyup", up);
+    on(document, "mouseover", up);
+  }
+
+  function onKeyUp(e) {
+    if (e.keyCode == 16) { this.doc.sel.shift = false; }
+    signalDOMEvent(this, e);
+  }
+
+  function onKeyPress(e) {
+    var cm = this;
+    if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return }
+    var keyCode = e.keyCode, charCode = e.charCode;
+    if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return}
+    if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return }
+    var ch = String.fromCharCode(charCode == null ? keyCode : charCode);
+    // Some browsers fire keypress events for backspace
+    if (ch == "\x08") { return }
+    if (handleCharBinding(cm, e, ch)) { return }
+    cm.display.input.onKeyPress(e);
+  }
+
+  var DOUBLECLICK_DELAY = 400;
+
+  var PastClick = function(time, pos, button) {
+    this.time = time;
+    this.pos = pos;
+    this.button = button;
+  };
+
+  PastClick.prototype.compare = function (time, pos, button) {
+    return this.time + DOUBLECLICK_DELAY > time &&
+      cmp(pos, this.pos) == 0 && button == this.button
+  };
+
+  var lastClick, lastDoubleClick;
+  function clickRepeat(pos, button) {
+    var now = +new Date;
+    if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) {
+      lastClick = lastDoubleClick = null;
+      return "triple"
+    } else if (lastClick && lastClick.compare(now, pos, button)) {
+      lastDoubleClick = new PastClick(now, pos, button);
+      lastClick = null;
+      return "double"
+    } else {
+      lastClick = new PastClick(now, pos, button);
+      lastDoubleClick = null;
+      return "single"
+    }
+  }
+
+  // A mouse down can be a single click, double click, triple click,
+  // start of selection drag, start of text drag, new cursor
+  // (ctrl-click), rectangle drag (alt-drag), or xwin
+  // middle-click-paste. Or it might be a click on something we should
+  // not interfere with, such as a scrollbar or widget.
+  function onMouseDown(e) {
+    var cm = this, display = cm.display;
+    if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return }
+    display.input.ensurePolled();
+    display.shift = e.shiftKey;
+
+    if (eventInWidget(display, e)) {
+      if (!webkit) {
+        // Briefly turn off draggability, to allow widgets to do
+        // normal dragging things.
+        display.scroller.draggable = false;
+        setTimeout(function () { return display.scroller.draggable = true; }, 100);
+      }
+      return
+    }
+    if (clickInGutter(cm, e)) { return }
+    var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : "single";
+    window.focus();
+
+    // #3261: make sure, that we're not starting a second selection
+    if (button == 1 && cm.state.selectingText)
+      { cm.state.selectingText(e); }
+
+    if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return }
+
+    if (button == 1) {
+      if (pos) { leftButtonDown(cm, pos, repeat, e); }
+      else if (e_target(e) == display.scroller) { e_preventDefault(e); }
+    } else if (button == 2) {
+      if (pos) { extendSelection(cm.doc, pos); }
+      setTimeout(function () { return display.input.focus(); }, 20);
+    } else if (button == 3) {
+      if (captureRightClick) { cm.display.input.onContextMenu(e); }
+      else { delayBlurEvent(cm); }
+    }
+  }
+
+  function handleMappedButton(cm, button, pos, repeat, event) {
+    var name = "Click";
+    if (repeat == "double") { name = "Double" + name; }
+    else if (repeat == "triple") { name = "Triple" + name; }
+    name = (button == 1 ? "Left" : button == 2 ? "Middle" : "Right") + name;
+
+    return dispatchKey(cm,  addModifierNames(name, event), event, function (bound) {
+      if (typeof bound == "string") { bound = commands[bound]; }
+      if (!bound) { return false }
+      var done = false;
+      try {
+        if (cm.isReadOnly()) { cm.state.suppressEdits = true; }
+        done = bound(cm, pos) != Pass;
+      } finally {
+        cm.state.suppressEdits = false;
+      }
+      return done
+    })
+  }
+
+  function configureMouse(cm, repeat, event) {
+    var option = cm.getOption("configureMouse");
+    var value = option ? option(cm, repeat, event) : {};
+    if (value.unit == null) {
+      var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey;
+      value.unit = rect ? "rectangle" : repeat == "single" ? "char" : repeat == "double" ? "word" : "line";
+    }
+    if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; }
+    if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; }
+    if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); }
+    return value
+  }
+
+  function leftButtonDown(cm, pos, repeat, event) {
+    if (ie) { setTimeout(bind(ensureFocus, cm), 0); }
+    else { cm.curOp.focus = activeElt(); }
+
+    var behavior = configureMouse(cm, repeat, event);
+
+    var sel = cm.doc.sel, contained;
+    if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() &&
+        repeat == "single" && (contained = sel.contains(pos)) > -1 &&
+        (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) &&
+        (cmp(contained.to(), pos) > 0 || pos.xRel < 0))
+      { leftButtonStartDrag(cm, event, pos, behavior); }
+    else
+      { leftButtonSelect(cm, event, pos, behavior); }
+  }
+
+  // Start a text drag. When it ends, see if any dragging actually
+  // happen, and treat as a click if it didn't.
+  function leftButtonStartDrag(cm, event, pos, behavior) {
+    var display = cm.display, moved = false;
+    var dragEnd = operation(cm, function (e) {
+      if (webkit) { display.scroller.draggable = false; }
+      cm.state.draggingText = false;
+      off(display.wrapper.ownerDocument, "mouseup", dragEnd);
+      off(display.wrapper.ownerDocument, "mousemove", mouseMove);
+      off(display.scroller, "dragstart", dragStart);
+      off(display.scroller, "drop", dragEnd);
+      if (!moved) {
+        e_preventDefault(e);
+        if (!behavior.addNew)
+          { extendSelection(cm.doc, pos, null, null, behavior.extend); }
+        // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081)
+        if (webkit || ie && ie_version == 9)
+          { setTimeout(function () {display.wrapper.ownerDocument.body.focus(); display.input.focus();}, 20); }
+        else
+          { display.input.focus(); }
+      }
+    });
+    var mouseMove = function(e2) {
+      moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10;
+    };
+    var dragStart = function () { return moved = true; };
+    // Let the drag handler handle this.
+    if (webkit) { display.scroller.draggable = true; }
+    cm.state.draggingText = dragEnd;
+    dragEnd.copy = !behavior.moveOnDrag;
+    // IE's approach to draggable
+    if (display.scroller.dragDrop) { display.scroller.dragDrop(); }
+    on(display.wrapper.ownerDocument, "mouseup", dragEnd);
+    on(display.wrapper.ownerDocument, "mousemove", mouseMove);
+    on(display.scroller, "dragstart", dragStart);
+    on(display.scroller, "drop", dragEnd);
+
+    delayBlurEvent(cm);
+    setTimeout(function () { return display.input.focus(); }, 20);
+  }
+
+  function rangeForUnit(cm, pos, unit) {
+    if (unit == "char") { return new Range(pos, pos) }
+    if (unit == "word") { return cm.findWordAt(pos) }
+    if (unit == "line") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) }
+    var result = unit(cm, pos);
+    return new Range(result.from, result.to)
+  }
+
+  // Normal selection, as opposed to text dragging.
+  function leftButtonSelect(cm, event, start, behavior) {
+    var display = cm.display, doc = cm.doc;
+    e_preventDefault(event);
+
+    var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges;
+    if (behavior.addNew && !behavior.extend) {
+      ourIndex = doc.sel.contains(start);
+      if (ourIndex > -1)
+        { ourRange = ranges[ourIndex]; }
+      else
+        { ourRange = new Range(start, start); }
+    } else {
+      ourRange = doc.sel.primary();
+      ourIndex = doc.sel.primIndex;
+    }
+
+    if (behavior.unit == "rectangle") {
+      if (!behavior.addNew) { ourRange = new Range(start, start); }
+      start = posFromMouse(cm, event, true, true);
+      ourIndex = -1;
+    } else {
+      var range$$1 = rangeForUnit(cm, start, behavior.unit);
+      if (behavior.extend)
+        { ourRange = extendRange(ourRange, range$$1.anchor, range$$1.head, behavior.extend); }
+      else
+        { ourRange = range$$1; }
+    }
+
+    if (!behavior.addNew) {
+      ourIndex = 0;
+      setSelection(doc, new Selection([ourRange], 0), sel_mouse);
+      startSel = doc.sel;
+    } else if (ourIndex == -1) {
+      ourIndex = ranges.length;
+      setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex),
+                   {scroll: false, origin: "*mouse"});
+    } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == "char" && !behavior.extend) {
+      setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0),
+                   {scroll: false, origin: "*mouse"});
+      startSel = doc.sel;
+    } else {
+      replaceOneSelection(doc, ourIndex, ourRange, sel_mouse);
+    }
+
+    var lastPos = start;
+    function extendTo(pos) {
+      if (cmp(lastPos, pos) == 0) { return }
+      lastPos = pos;
+
+      if (behavior.unit == "rectangle") {
+        var ranges = [], tabSize = cm.options.tabSize;
+        var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize);
+        var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize);
+        var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol);
+        for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line));
+             line <= end; line++) {
+          var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize);
+          if (left == right)
+            { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); }
+          else if (text.length > leftPos)
+            { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); }
+        }
+        if (!ranges.length) { ranges.push(new Range(start, start)); }
+        setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex),
+                     {origin: "*mouse", scroll: false});
+        cm.scrollIntoView(pos);
+      } else {
+        var oldRange = ourRange;
+        var range$$1 = rangeForUnit(cm, pos, behavior.unit);
+        var anchor = oldRange.anchor, head;
+        if (cmp(range$$1.anchor, anchor) > 0) {
+          head = range$$1.head;
+          anchor = minPos(oldRange.from(), range$$1.anchor);
+        } else {
+          head = range$$1.anchor;
+          anchor = maxPos(oldRange.to(), range$$1.head);
+        }
+        var ranges$1 = startSel.ranges.slice(0);
+        ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head));
+        setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse);
+      }
+    }
+
+    var editorSize = display.wrapper.getBoundingClientRect();
+    // Used to ensure timeout re-tries don't fire when another extend
+    // happened in the meantime (clearTimeout isn't reliable -- at
+    // least on Chrome, the timeouts still happen even when cleared,
+    // if the clear happens after their scheduled firing time).
+    var counter = 0;
+
+    function extend(e) {
+      var curCount = ++counter;
+      var cur = posFromMouse(cm, e, true, behavior.unit == "rectangle");
+      if (!cur) { return }
+      if (cmp(cur, lastPos) != 0) {
+        cm.curOp.focus = activeElt();
+        extendTo(cur);
+        var visible = visibleLines(display, doc);
+        if (cur.line >= visible.to || cur.line < visible.from)
+          { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); }
+      } else {
+        var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0;
+        if (outside) { setTimeout(operation(cm, function () {
+          if (counter != curCount) { return }
+          display.scroller.scrollTop += outside;
+          extend(e);
+        }), 50); }
+      }
+    }
+
+    function done(e) {
+      cm.state.selectingText = false;
+      counter = Infinity;
+      e_preventDefault(e);
+      display.input.focus();
+      off(display.wrapper.ownerDocument, "mousemove", move);
+      off(display.wrapper.ownerDocument, "mouseup", up);
+      doc.history.lastSelOrigin = null;
+    }
+
+    var move = operation(cm, function (e) {
+      if (e.buttons === 0 || !e_button(e)) { done(e); }
+      else { extend(e); }
+    });
+    var up = operation(cm, done);
+    cm.state.selectingText = up;
+    on(display.wrapper.ownerDocument, "mousemove", move);
+    on(display.wrapper.ownerDocument, "mouseup", up);
+  }
+
+  // Used when mouse-selecting to adjust the anchor to the proper side
+  // of a bidi jump depending on the visual position of the head.
+  function bidiSimplify(cm, range$$1) {
+    var anchor = range$$1.anchor;
+    var head = range$$1.head;
+    var anchorLine = getLine(cm.doc, anchor.line);
+    if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range$$1 }
+    var order = getOrder(anchorLine);
+    if (!order) { return range$$1 }
+    var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index];
+    if (part.from != anchor.ch && part.to != anchor.ch) { return range$$1 }
+    var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1);
+    if (boundary == 0 || boundary == order.length) { return range$$1 }
+
+    // Compute the relative visual position of the head compared to the
+    // anchor (<0 is to the left, >0 to the right)
+    var leftSide;
+    if (head.line != anchor.line) {
+      leftSide = (head.line - anchor.line) * (cm.doc.direction == "ltr" ? 1 : -1) > 0;
+    } else {
+      var headIndex = getBidiPartAt(order, head.ch, head.sticky);
+      var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1);
+      if (headIndex == boundary - 1 || headIndex == boundary)
+        { leftSide = dir < 0; }
+      else
+        { leftSide = dir > 0; }
+    }
+
+    var usePart = order[boundary + (leftSide ? -1 : 0)];
+    var from = leftSide == (usePart.level == 1);
+    var ch = from ? usePart.from : usePart.to, sticky = from ? "after" : "before";
+    return anchor.ch == ch && anchor.sticky == sticky ? range$$1 : new Range(new Pos(anchor.line, ch, sticky), head)
+  }
+
+
+  // Determines whether an event happened in the gutter, and fires the
+  // handlers for the corresponding event.
+  function gutterEvent(cm, e, type, prevent) {
+    var mX, mY;
+    if (e.touches) {
+      mX = e.touches[0].clientX;
+      mY = e.touches[0].clientY;
+    } else {
+      try { mX = e.clientX; mY = e.clientY; }
+      catch(e) { return false }
+    }
+    if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false }
+    if (prevent) { e_preventDefault(e); }
+
+    var display = cm.display;
+    var lineBox = display.lineDiv.getBoundingClientRect();
+
+    if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) }
+    mY -= lineBox.top - display.viewOffset;
+
+    for (var i = 0; i < cm.options.gutters.length; ++i) {
+      var g = display.gutters.childNodes[i];
+      if (g && g.getBoundingClientRect().right >= mX) {
+        var line = lineAtHeight(cm.doc, mY);
+        var gutter = cm.options.gutters[i];
+        signal(cm, type, cm, line, gutter, e);
+        return e_defaultPrevented(e)
+      }
+    }
+  }
+
+  function clickInGutter(cm, e) {
+    return gutterEvent(cm, e, "gutterClick", true)
+  }
+
+  // CONTEXT MENU HANDLING
+
+  // To make the context menu work, we need to briefly unhide the
+  // textarea (making it as unobtrusive as possible) to let the
+  // right-click take effect on it.
+  function onContextMenu(cm, e) {
+    if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return }
+    if (signalDOMEvent(cm, e, "contextmenu")) { return }
+    if (!captureRightClick) { cm.display.input.onContextMenu(e); }
+  }
+
+  function contextMenuInGutter(cm, e) {
+    if (!hasHandler(cm, "gutterContextMenu")) { return false }
+    return gutterEvent(cm, e, "gutterContextMenu", false)
+  }
+
+  function themeChanged(cm) {
+    cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") +
+      cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-");
+    clearCaches(cm);
+  }
+
+  var Init = {toString: function(){return "CodeMirror.Init"}};
+
+  var defaults = {};
+  var optionHandlers = {};
+
+  function defineOptions(CodeMirror) {
+    var optionHandlers = CodeMirror.optionHandlers;
+
+    function option(name, deflt, handle, notOnInit) {
+      CodeMirror.defaults[name] = deflt;
+      if (handle) { optionHandlers[name] =
+        notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; }
+    }
+
+    CodeMirror.defineOption = option;
+
+    // Passed to option handlers when there is no old value.
+    CodeMirror.Init = Init;
+
+    // These two are, on init, called from the constructor because they
+    // have to be initialized before the editor can start at all.
+    option("value", "", function (cm, val) { return cm.setValue(val); }, true);
+    option("mode", null, function (cm, val) {
+      cm.doc.modeOption = val;
+      loadMode(cm);
+    }, true);
+
+    option("indentUnit", 2, loadMode, true);
+    option("indentWithTabs", false);
+    option("smartIndent", true);
+    option("tabSize", 4, function (cm) {
+      resetModeState(cm);
+      clearCaches(cm);
+      regChange(cm);
+    }, true);
+
+    option("lineSeparator", null, function (cm, val) {
+      cm.doc.lineSep = val;
+      if (!val) { return }
+      var newBreaks = [], lineNo = cm.doc.first;
+      cm.doc.iter(function (line) {
+        for (var pos = 0;;) {
+          var found = line.text.indexOf(val, pos);
+          if (found == -1) { break }
+          pos = found + val.length;
+          newBreaks.push(Pos(lineNo, found));
+        }
+        lineNo++;
+      });
+      for (var i = newBreaks.length - 1; i >= 0; i--)
+        { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); }
+    });
+    option("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200f\u2028\u2029\ufeff]/g, function (cm, val, old) {
+      cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g");
+      if (old != Init) { cm.refresh(); }
+    });
+    option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true);
+    option("electricChars", true);
+    option("inputStyle", mobile ? "contenteditable" : "textarea", function () {
+      throw new Error("inputStyle can not (yet) be changed in a running editor") // FIXME
+    }, true);
+    option("spellcheck", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true);
+    option("rtlMoveVisually", !windows);
+    option("wholeLineUpdateBefore", true);
+
+    option("theme", "default", function (cm) {
+      themeChanged(cm);
+      guttersChanged(cm);
+    }, true);
+    option("keyMap", "default", function (cm, val, old) {
+      var next = getKeyMap(val);
+      var prev = old != Init && getKeyMap(old);
+      if (prev && prev.detach) { prev.detach(cm, next); }
+      if (next.attach) { next.attach(cm, prev || null); }
+    });
+    option("extraKeys", null);
+    option("configureMouse", null);
+
+    option("lineWrapping", false, wrappingChanged, true);
+    option("gutters", [], function (cm) {
+      setGuttersForLineNumbers(cm.options);
+      guttersChanged(cm);
+    }, true);
+    option("fixedGutter", true, function (cm, val) {
+      cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0";
+      cm.refresh();
+    }, true);
+    option("coverGutterNextToScrollbar", false, function (cm) { return updateScrollbars(cm); }, true);
+    option("scrollbarStyle", "native", function (cm) {
+      initScrollbars(cm);
+      updateScrollbars(cm);
+      cm.display.scrollbars.setScrollTop(cm.doc.scrollTop);
+      cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft);
+    }, true);
+    option("lineNumbers", false, function (cm) {
+      setGuttersForLineNumbers(cm.options);
+      guttersChanged(cm);
+    }, true);
+    option("firstLineNumber", 1, guttersChanged, true);
+    option("lineNumberFormatter", function (integer) { return integer; }, guttersChanged, true);
+    option("showCursorWhenSelecting", false, updateSelection, true);
+
+    option("resetSelectionOnContextMenu", true);
+    option("lineWiseCopyCut", true);
+    option("pasteLinesPerSelection", true);
+    option("selectionsMayTouch", false);
+
+    option("readOnly", false, function (cm, val) {
+      if (val == "nocursor") {
+        onBlur(cm);
+        cm.display.input.blur();
+      }
+      cm.display.input.readOnlyChanged(val);
+    });
+    option("disableInput", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true);
+    option("dragDrop", true, dragDropChanged);
+    option("allowDropFileTypes", null);
+
+    option("cursorBlinkRate", 530);
+    option("cursorScrollMargin", 0);
+    option("cursorHeight", 1, updateSelection, true);
+    option("singleCursorHeightPerLine", true, updateSelection, true);
+    option("workTime", 100);
+    option("workDelay", 100);
+    option("flattenSpans", true, resetModeState, true);
+    option("addModeClass", false, resetModeState, true);
+    option("pollInterval", 100);
+    option("undoDepth", 200, function (cm, val) { return cm.doc.history.undoDepth = val; });
+    option("historyEventDelay", 1250);
+    option("viewportMargin", 10, function (cm) { return cm.refresh(); }, true);
+    option("maxHighlightLength", 10000, resetModeState, true);
+    option("moveInputWithCursor", true, function (cm, val) {
+      if (!val) { cm.display.input.resetPosition(); }
+    });
+
+    option("tabindex", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || ""; });
+    option("autofocus", null);
+    option("direction", "ltr", function (cm, val) { return cm.doc.setDirection(val); }, true);
+    option("phrases", null);
+  }
+
+  function guttersChanged(cm) {
+    updateGutters(cm);
+    regChange(cm);
+    alignHorizontally(cm);
+  }
+
+  function dragDropChanged(cm, value, old) {
+    var wasOn = old && old != Init;
+    if (!value != !wasOn) {
+      var funcs = cm.display.dragFunctions;
+      var toggle = value ? on : off;
+      toggle(cm.display.scroller, "dragstart", funcs.start);
+      toggle(cm.display.scroller, "dragenter", funcs.enter);
+      toggle(cm.display.scroller, "dragover", funcs.over);
+      toggle(cm.display.scroller, "dragleave", funcs.leave);
+      toggle(cm.display.scroller, "drop", funcs.drop);
+    }
+  }
+
+  function wrappingChanged(cm) {
+    if (cm.options.lineWrapping) {
+      addClass(cm.display.wrapper, "CodeMirror-wrap");
+      cm.display.sizer.style.minWidth = "";
+      cm.display.sizerWidth = null;
+    } else {
+      rmClass(cm.display.wrapper, "CodeMirror-wrap");
+      findMaxLine(cm);
+    }
+    estimateLineHeights(cm);
+    regChange(cm);
+    clearCaches(cm);
+    setTimeout(function () { return updateScrollbars(cm); }, 100);
+  }
+
+  // A CodeMirror instance represents an editor. This is the object
+  // that user code is usually dealing with.
+
+  function CodeMirror(place, options) {
+    var this$1 = this;
+
+    if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) }
+
+    this.options = options = options ? copyObj(options) : {};
+    // Determine effective options based on given values and defaults.
+    copyObj(defaults, options, false);
+    setGuttersForLineNumbers(options);
+
+    var doc = options.value;
+    if (typeof doc == "string") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); }
+    else if (options.mode) { doc.modeOption = options.mode; }
+    this.doc = doc;
+
+    var input = new CodeMirror.inputStyles[options.inputStyle](this);
+    var display = this.display = new Display(place, doc, input);
+    display.wrapper.CodeMirror = this;
+    updateGutters(this);
+    themeChanged(this);
+    if (options.lineWrapping)
+      { this.display.wrapper.className += " CodeMirror-wrap"; }
+    initScrollbars(this);
+
+    this.state = {
+      keyMaps: [],  // stores maps added by addKeyMap
+      overlays: [], // highlighting overlays, as added by addOverlay
+      modeGen: 0,   // bumped when mode/overlay changes, used to invalidate highlighting info
+      overwrite: false,
+      delayingBlurEvent: false,
+      focused: false,
+      suppressEdits: false, // used to disable editing during key handlers when in readOnly mode
+      pasteIncoming: false, cutIncoming: false, // help recognize paste/cut edits in input.poll
+      selectingText: false,
+      draggingText: false,
+      highlight: new Delayed(), // stores highlight worker timeout
+      keySeq: null,  // Unfinished key sequence
+      specialChars: null
+    };
+
+    if (options.autofocus && !mobile) { display.input.focus(); }
+
+    // Override magic textarea content restore that IE sometimes does
+    // on our hidden textarea on reload
+    if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); }
+
+    registerEventHandlers(this);
+    ensureGlobalHandlers();
+
+    startOperation(this);
+    this.curOp.forceUpdate = true;
+    attachDoc(this, doc);
+
+    if ((options.autofocus && !mobile) || this.hasFocus())
+      { setTimeout(bind(onFocus, this), 20); }
+    else
+      { onBlur(this); }
+
+    for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt))
+      { optionHandlers[opt](this$1, options[opt], Init); } }
+    maybeUpdateLineNumberWidth(this);
+    if (options.finishInit) { options.finishInit(this); }
+    for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this$1); }
+    endOperation(this);
+    // Suppress optimizelegibility in Webkit, since it breaks text
+    // measuring on line wrapping boundaries.
+    if (webkit && options.lineWrapping &&
+        getComputedStyle(display.lineDiv).textRendering == "optimizelegibility")
+      { display.lineDiv.style.textRendering = "auto"; }
+  }
+
+  // The default configuration options.
+  CodeMirror.defaults = defaults;
+  // Functions to run when options are changed.
+  CodeMirror.optionHandlers = optionHandlers;
+
+  // Attach the necessary event handlers when initializing the editor
+  function registerEventHandlers(cm) {
+    var d = cm.display;
+    on(d.scroller, "mousedown", operation(cm, onMouseDown));
+    // Older IE's will not fire a second mousedown for a double click
+    if (ie && ie_version < 11)
+      { on(d.scroller, "dblclick", operation(cm, function (e) {
+        if (signalDOMEvent(cm, e)) { return }
+        var pos = posFromMouse(cm, e);
+        if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return }
+        e_preventDefault(e);
+        var word = cm.findWordAt(pos);
+        extendSelection(cm.doc, word.anchor, word.head);
+      })); }
+    else
+      { on(d.scroller, "dblclick", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); }
+    // Some browsers fire contextmenu *after* opening the menu, at
+    // which point we can't mess with it anymore. Context menu is
+    // handled in onMouseDown for these browsers.
+    on(d.scroller, "contextmenu", function (e) { return onContextMenu(cm, e); });
+
+    // Used to suppress mouse event handling when a touch happens
+    var touchFinished, prevTouch = {end: 0};
+    function finishTouch() {
+      if (d.activeTouch) {
+        touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000);
+        prevTouch = d.activeTouch;
+        prevTouch.end = +new Date;
+      }
+    }
+    function isMouseLikeTouchEvent(e) {
+      if (e.touches.length != 1) { return false }
+      var touch = e.touches[0];
+      return touch.radiusX <= 1 && touch.radiusY <= 1
+    }
+    function farAway(touch, other) {
+      if (other.left == null) { return true }
+      var dx = other.left - touch.left, dy = other.top - touch.top;
+      return dx * dx + dy * dy > 20 * 20
+    }
+    on(d.scroller, "touchstart", function (e) {
+      if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) {
+        d.input.ensurePolled();
+        clearTimeout(touchFinished);
+        var now = +new Date;
+        d.activeTouch = {start: now, moved: false,
+                         prev: now - prevTouch.end <= 300 ? prevTouch : null};
+        if (e.touches.length == 1) {
+          d.activeTouch.left = e.touches[0].pageX;
+          d.activeTouch.top = e.touches[0].pageY;
+        }
+      }
+    });
+    on(d.scroller, "touchmove", function () {
+      if (d.activeTouch) { d.activeTouch.moved = true; }
+    });
+    on(d.scroller, "touchend", function (e) {
+      var touch = d.activeTouch;
+      if (touch && !eventInWidget(d, e) && touch.left != null &&
+          !touch.moved && new Date - touch.start < 300) {
+        var pos = cm.coordsChar(d.activeTouch, "page"), range;
+        if (!touch.prev || farAway(touch, touch.prev)) // Single tap
+          { range = new Range(pos, pos); }
+        else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap
+          { range = cm.findWordAt(pos); }
+        else // Triple tap
+          { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); }
+        cm.setSelection(range.anchor, range.head);
+        cm.focus();
+        e_preventDefault(e);
+      }
+      finishTouch();
+    });
+    on(d.scroller, "touchcancel", finishTouch);
+
+    // Sync scrolling between fake scrollbars and real scrollable
+    // area, ensure viewport is updated when scrolling.
+    on(d.scroller, "scroll", function () {
+      if (d.scroller.clientHeight) {
+        updateScrollTop(cm, d.scroller.scrollTop);
+        setScrollLeft(cm, d.scroller.scrollLeft, true);
+        signal(cm, "scroll", cm);
+      }
+    });
+
+    // Listen to wheel events in order to try and update the viewport on time.
+    on(d.scroller, "mousewheel", function (e) { return onScrollWheel(cm, e); });
+    on(d.scroller, "DOMMouseScroll", function (e) { return onScrollWheel(cm, e); });
+
+    // Prevent wrapper from ever scrolling
+    on(d.wrapper, "scroll", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; });
+
+    d.dragFunctions = {
+      enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }},
+      over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},
+      start: function (e) { return onDragStart(cm, e); },
+      drop: operation(cm, onDrop),
+      leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}
+    };
+
+    var inp = d.input.getField();
+    on(inp, "keyup", function (e) { return onKeyUp.call(cm, e); });
+    on(inp, "keydown", operation(cm, onKeyDown));
+    on(inp, "keypress", operation(cm, onKeyPress));
+    on(inp, "focus", function (e) { return onFocus(cm, e); });
+    on(inp, "blur", function (e) { return onBlur(cm, e); });
+  }
+
+  var initHooks = [];
+  CodeMirror.defineInitHook = function (f) { return initHooks.push(f); };
+
+  // Indent the given line. The how parameter can be "smart",
+  // "add"/null, "subtract", or "prev". When aggressive is false
+  // (typically set to true for forced single-line indents), empty
+  // lines are not indented, and places where the mode returns Pass
+  // are left alone.
+  function indentLine(cm, n, how, aggressive) {
+    var doc = cm.doc, state;
+    if (how == null) { how = "add"; }
+    if (how == "smart") {
+      // Fall back to "prev" when the mode doesn't have an indentation
+      // method.
+      if (!doc.mode.indent) { how = "prev"; }
+      else { state = getContextBefore(cm, n).state; }
+    }
+
+    var tabSize = cm.options.tabSize;
+    var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize);
+    if (line.stateAfter) { line.stateAfter = null; }
+    var curSpaceString = line.text.match(/^\s*/)[0], indentation;
+    if (!aggressive && !/\S/.test(line.text)) {
+      indentation = 0;
+      how = "not";
+    } else if (how == "smart") {
+      indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text);
+      if (indentation == Pass || indentation > 150) {
+        if (!aggressive) { return }
+        how = "prev";
+      }
+    }
+    if (how == "prev") {
+      if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); }
+      else { indentation = 0; }
+    } else if (how == "add") {
+      indentation = curSpace + cm.options.indentUnit;
+    } else if (how == "subtract") {
+      indentation = curSpace - cm.options.indentUnit;
+    } else if (typeof how == "number") {
+      indentation = curSpace + how;
+    }
+    indentation = Math.max(0, indentation);
+
+    var indentString = "", pos = 0;
+    if (cm.options.indentWithTabs)
+      { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";} }
+    if (pos < indentation) { indentString += spaceStr(indentation - pos); }
+
+    if (indentString != curSpaceString) {
+      replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input");
+      line.stateAfter = null;
+      return true
+    } else {
+      // Ensure that, if the cursor was in the whitespace at the start
+      // of the line, it is moved to the end of that space.
+      for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) {
+        var range = doc.sel.ranges[i$1];
+        if (range.head.line == n && range.head.ch < curSpaceString.length) {
+          var pos$1 = Pos(n, curSpaceString.length);
+          replaceOneSelection(doc, i$1, new Range(pos$1, pos$1));
+          break
+        }
+      }
+    }
+  }
+
+  // This will be set to a {lineWise: bool, text: [string]} object, so
+  // that, when pasting, we know what kind of selections the copied
+  // text was made out of.
+  var lastCopied = null;
+
+  function setLastCopied(newLastCopied) {
+    lastCopied = newLastCopied;
+  }
+
+  function applyTextInput(cm, inserted, deleted, sel, origin) {
+    var doc = cm.doc;
+    cm.display.shift = false;
+    if (!sel) { sel = doc.sel; }
+
+    var paste = cm.state.pasteIncoming || origin == "paste";
+    var textLines = splitLinesAuto(inserted), multiPaste = null;
+    // When pasting N lines into N selections, insert one line per selection
+    if (paste && sel.ranges.length > 1) {
+      if (lastCopied && lastCopied.text.join("\n") == inserted) {
+        if (sel.ranges.length % lastCopied.text.length == 0) {
+          multiPaste = [];
+          for (var i = 0; i < lastCopied.text.length; i++)
+            { multiPaste.push(doc.splitLines(lastCopied.text[i])); }
+        }
+      } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) {
+        multiPaste = map(textLines, function (l) { return [l]; });
+      }
+    }
+
+    var updateInput;
+    // Normal behavior is to insert the new text into every selection
+    for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) {
+      var range$$1 = sel.ranges[i$1];
+      var from = range$$1.from(), to = range$$1.to();
+      if (range$$1.empty()) {
+        if (deleted && deleted > 0) // Handle deletion
+          { from = Pos(from.line, from.ch - deleted); }
+        else if (cm.state.overwrite && !paste) // Handle overwrite
+          { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); }
+        else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join("\n") == inserted)
+          { from = to = Pos(from.line, 0); }
+      }
+      updateInput = cm.curOp.updateInput;
+      var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines,
+                         origin: origin || (paste ? "paste" : cm.state.cutIncoming ? "cut" : "+input")};
+      makeChange(cm.doc, changeEvent);
+      signalLater(cm, "inputRead", cm, changeEvent);
+    }
+    if (inserted && !paste)
+      { triggerElectric(cm, inserted); }
+
+    ensureCursorVisible(cm);
+    cm.curOp.updateInput = updateInput;
+    cm.curOp.typing = true;
+    cm.state.pasteIncoming = cm.state.cutIncoming = false;
+  }
+
+  function handlePaste(e, cm) {
+    var pasted = e.clipboardData && e.clipboardData.getData("Text");
+    if (pasted) {
+      e.preventDefault();
+      if (!cm.isReadOnly() && !cm.options.disableInput)
+        { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, "paste"); }); }
+      return true
+    }
+  }
+
+  function triggerElectric(cm, inserted) {
+    // When an 'electric' character is inserted, immediately trigger a reindent
+    if (!cm.options.electricChars || !cm.options.smartIndent) { return }
+    var sel = cm.doc.sel;
+
+    for (var i = sel.ranges.length - 1; i >= 0; i--) {
+      var range$$1 = sel.ranges[i];
+      if (range$$1.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range$$1.head.line)) { continue }
+      var mode = cm.getModeAt(range$$1.head);
+      var indented = false;
+      if (mode.electricChars) {
+        for (var j = 0; j < mode.electricChars.length; j++)
+          { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) {
+            indented = indentLine(cm, range$$1.head.line, "smart");
+            break
+          } }
+      } else if (mode.electricInput) {
+        if (mode.electricInput.test(getLine(cm.doc, range$$1.head.line).text.slice(0, range$$1.head.ch)))
+          { indented = indentLine(cm, range$$1.head.line, "smart"); }
+      }
+      if (indented) { signalLater(cm, "electricInput", cm, range$$1.head.line); }
+    }
+  }
+
+  function copyableRanges(cm) {
+    var text = [], ranges = [];
+    for (var i = 0; i < cm.doc.sel.ranges.length; i++) {
+      var line = cm.doc.sel.ranges[i].head.line;
+      var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)};
+      ranges.push(lineRange);
+      text.push(cm.getRange(lineRange.anchor, lineRange.head));
+    }
+    return {text: text, ranges: ranges}
+  }
+
+  function disableBrowserMagic(field, spellcheck) {
+    field.setAttribute("autocorrect", "off");
+    field.setAttribute("autocapitalize", "off");
+    field.setAttribute("spellcheck", !!spellcheck);
+  }
+
+  function hiddenTextarea() {
+    var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none");
+    var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;");
+    // The textarea is kept positioned near the cursor to prevent the
+    // fact that it'll be scrolled into view on input from scrolling
+    // our fake cursor out of view. On webkit, when wrap=off, paste is
+    // very slow. So make the area wide instead.
+    if (webkit) { te.style.width = "1000px"; }
+    else { te.setAttribute("wrap", "off"); }
+    // If border: 0; -- iOS fails to open keyboard (issue #1287)
+    if (ios) { te.style.border = "1px solid black"; }
+    disableBrowserMagic(te);
+    return div
+  }
+
+  // The publicly visible API. Note that methodOp(f) means
+  // 'wrap f in an operation, performed on its `this` parameter'.
+
+  // This is not the complete set of editor methods. Most of the
+  // methods defined on the Doc type are also injected into
+  // CodeMirror.prototype, for backwards compatibility and
+  // convenience.
+
+  function addEditorMethods(CodeMirror) {
+    var optionHandlers = CodeMirror.optionHandlers;
+
+    var helpers = CodeMirror.helpers = {};
+
+    CodeMirror.prototype = {
+      constructor: CodeMirror,
+      focus: function(){window.focus(); this.display.input.focus();},
+
+      setOption: function(option, value) {
+        var options = this.options, old = options[option];
+        if (options[option] == value && option != "mode") { return }
+        options[option] = value;
+        if (optionHandlers.hasOwnProperty(option))
+          { operation(this, optionHandlers[option])(this, value, old); }
+        signal(this, "optionChange", this, option);
+      },
+
+      getOption: function(option) {return this.options[option]},
+      getDoc: function() {return this.doc},
+
+      addKeyMap: function(map$$1, bottom) {
+        this.state.keyMaps[bottom ? "push" : "unshift"](getKeyMap(map$$1));
+      },
+      removeKeyMap: function(map$$1) {
+        var maps = this.state.keyMaps;
+        for (var i = 0; i < maps.length; ++i)
+          { if (maps[i] == map$$1 || maps[i].name == map$$1) {
+            maps.splice(i, 1);
+            return true
+          } }
+      },
+
+      addOverlay: methodOp(function(spec, options) {
+        var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec);
+        if (mode.startState) { throw new Error("Overlays may not be stateful.") }
+        insertSorted(this.state.overlays,
+                     {mode: mode, modeSpec: spec, opaque: options && options.opaque,
+                      priority: (options && options.priority) || 0},
+                     function (overlay) { return overlay.priority; });
+        this.state.modeGen++;
+        regChange(this);
+      }),
+      removeOverlay: methodOp(function(spec) {
+        var this$1 = this;
+
+        var overlays = this.state.overlays;
+        for (var i = 0; i < overlays.length; ++i) {
+          var cur = overlays[i].modeSpec;
+          if (cur == spec || typeof spec == "string" && cur.name == spec) {
+            overlays.splice(i, 1);
+            this$1.state.modeGen++;
+            regChange(this$1);
+            return
+          }
+        }
+      }),
+
+      indentLine: methodOp(function(n, dir, aggressive) {
+        if (typeof dir != "string" && typeof dir != "number") {
+          if (dir == null) { dir = this.options.smartIndent ? "smart" : "prev"; }
+          else { dir = dir ? "add" : "subtract"; }
+        }
+        if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); }
+      }),
+      indentSelection: methodOp(function(how) {
+        var this$1 = this;
+
+        var ranges = this.doc.sel.ranges, end = -1;
+        for (var i = 0; i < ranges.length; i++) {
+          var range$$1 = ranges[i];
+          if (!range$$1.empty()) {
+            var from = range$$1.from(), to = range$$1.to();
+            var start = Math.max(end, from.line);
+            end = Math.min(this$1.lastLine(), to.line - (to.ch ? 0 : 1)) + 1;
+            for (var j = start; j < end; ++j)
+              { indentLine(this$1, j, how); }
+            var newRanges = this$1.doc.sel.ranges;
+            if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0)
+              { replaceOneSelection(this$1.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); }
+          } else if (range$$1.head.line > end) {
+            indentLine(this$1, range$$1.head.line, how, true);
+            end = range$$1.head.line;
+            if (i == this$1.doc.sel.primIndex) { ensureCursorVisible(this$1); }
+          }
+        }
+      }),
+
+      // Fetch the parser token for a given character. Useful for hacks
+      // that want to inspect the mode state (say, for completion).
+      getTokenAt: function(pos, precise) {
+        return takeToken(this, pos, precise)
+      },
+
+      getLineTokens: function(line, precise) {
+        return takeToken(this, Pos(line), precise, true)
+      },
+
+      getTokenTypeAt: function(pos) {
+        pos = clipPos(this.doc, pos);
+        var styles = getLineStyles(this, getLine(this.doc, pos.line));
+        var before = 0, after = (styles.length - 1) / 2, ch = pos.ch;
+        var type;
+        if (ch == 0) { type = styles[2]; }
+        else { for (;;) {
+          var mid = (before + after) >> 1;
+          if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; }
+          else if (styles[mid * 2 + 1] < ch) { before = mid + 1; }
+          else { type = styles[mid * 2 + 2]; break }
+        } }
+        var cut = type ? type.indexOf("overlay ") : -1;
+        return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1)
+      },
+
+      getModeAt: function(pos) {
+        var mode = this.doc.mode;
+        if (!mode.innerMode) { return mode }
+        return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode
+      },
+
+      getHelper: function(pos, type) {
+        return this.getHelpers(pos, type)[0]
+      },
+
+      getHelpers: function(pos, type) {
+        var this$1 = this;
+
+        var found = [];
+        if (!helpers.hasOwnProperty(type)) { return found }
+        var help = helpers[type], mode = this.getModeAt(pos);
+        if (typeof mode[type] == "string") {
+          if (help[mode[type]]) { found.push(help[mode[type]]); }
+        } else if (mode[type]) {
+          for (var i = 0; i < mode[type].length; i++) {
+            var val = help[mode[type][i]];
+            if (val) { found.push(val); }
+          }
+        } else if (mode.helperType && help[mode.helperType]) {
+          found.push(help[mode.helperType]);
+        } else if (help[mode.name]) {
+          found.push(help[mode.name]);
+        }
+        for (var i$1 = 0; i$1 < help._global.length; i$1++) {
+          var cur = help._global[i$1];
+          if (cur.pred(mode, this$1) && indexOf(found, cur.val) == -1)
+            { found.push(cur.val); }
+        }
+        return found
+      },
+
+      getStateAfter: function(line, precise) {
+        var doc = this.doc;
+        line = clipLine(doc, line == null ? doc.first + doc.size - 1: line);
+        return getContextBefore(this, line + 1, precise).state
+      },
+
+      cursorCoords: function(start, mode) {
+        var pos, range$$1 = this.doc.sel.primary();
+        if (start == null) { pos = range$$1.head; }
+        else if (typeof start == "object") { pos = clipPos(this.doc, start); }
+        else { pos = start ? range$$1.from() : range$$1.to(); }
+        return cursorCoords(this, pos, mode || "page")
+      },
+
+      charCoords: function(pos, mode) {
+        return charCoords(this, clipPos(this.doc, pos), mode || "page")
+      },
+
+      coordsChar: function(coords, mode) {
+        coords = fromCoordSystem(this, coords, mode || "page");
+        return coordsChar(this, coords.left, coords.top)
+      },
+
+      lineAtHeight: function(height, mode) {
+        height = fromCoordSystem(this, {top: height, left: 0}, mode || "page").top;
+        return lineAtHeight(this.doc, height + this.display.viewOffset)
+      },
+      heightAtLine: function(line, mode, includeWidgets) {
+        var end = false, lineObj;
+        if (typeof line == "number") {
+          var last = this.doc.first + this.doc.size - 1;
+          if (line < this.doc.first) { line = this.doc.first; }
+          else if (line > last) { line = last; end = true; }
+          lineObj = getLine(this.doc, line);
+        } else {
+          lineObj = line;
+        }
+        return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || "page", includeWidgets || end).top +
+          (end ? this.doc.height - heightAtLine(lineObj) : 0)
+      },
+
+      defaultTextHeight: function() { return textHeight(this.display) },
+      defaultCharWidth: function() { return charWidth(this.display) },
+
+      getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}},
+
+      addWidget: function(pos, node, scroll, vert, horiz) {
+        var display = this.display;
+        pos = cursorCoords(this, clipPos(this.doc, pos));
+        var top = pos.bottom, left = pos.left;
+        node.style.position = "absolute";
+        node.setAttribute("cm-ignore-events", "true");
+        this.display.input.setUneditable(node);
+        display.sizer.appendChild(node);
+        if (vert == "over") {
+          top = pos.top;
+        } else if (vert == "above" || vert == "near") {
+          var vspace = Math.max(display.wrapper.clientHeight, this.doc.height),
+          hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth);
+          // Default to positioning above (if specified and possible); otherwise default to positioning below
+          if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight)
+            { top = pos.top - node.offsetHeight; }
+          else if (pos.bottom + node.offsetHeight <= vspace)
+            { top = pos.bottom; }
+          if (left + node.offsetWidth > hspace)
+            { left = hspace - node.offsetWidth; }
+        }
+        node.style.top = top + "px";
+        node.style.left = node.style.right = "";
+        if (horiz == "right") {
+          left = display.sizer.clientWidth - node.offsetWidth;
+          node.style.right = "0px";
+        } else {
+          if (horiz == "left") { left = 0; }
+          else if (horiz == "middle") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; }
+          node.style.left = left + "px";
+        }
+        if (scroll)
+          { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); }
+      },
+
+      triggerOnKeyDown: methodOp(onKeyDown),
+      triggerOnKeyPress: methodOp(onKeyPress),
+      triggerOnKeyUp: onKeyUp,
+      triggerOnMouseDown: methodOp(onMouseDown),
+
+      execCommand: function(cmd) {
+        if (commands.hasOwnProperty(cmd))
+          { return commands[cmd].call(null, this) }
+      },
+
+      triggerElectric: methodOp(function(text) { triggerElectric(this, text); }),
+
+      findPosH: function(from, amount, unit, visually) {
+        var this$1 = this;
+
+        var dir = 1;
+        if (amount < 0) { dir = -1; amount = -amount; }
+        var cur = clipPos(this.doc, from);
+        for (var i = 0; i < amount; ++i) {
+          cur = findPosH(this$1.doc, cur, dir, unit, visually);
+          if (cur.hitSide) { break }
+        }
+        return cur
+      },
+
+      moveH: methodOp(function(dir, unit) {
+        var this$1 = this;
+
+        this.extendSelectionsBy(function (range$$1) {
+          if (this$1.display.shift || this$1.doc.extend || range$$1.empty())
+            { return findPosH(this$1.doc, range$$1.head, dir, unit, this$1.options.rtlMoveVisually) }
+          else
+            { return dir < 0 ? range$$1.from() : range$$1.to() }
+        }, sel_move);
+      }),
+
+      deleteH: methodOp(function(dir, unit) {
+        var sel = this.doc.sel, doc = this.doc;
+        if (sel.somethingSelected())
+          { doc.replaceSelection("", null, "+delete"); }
+        else
+          { deleteNearSelection(this, function (range$$1) {
+            var other = findPosH(doc, range$$1.head, dir, unit, false);
+            return dir < 0 ? {from: other, to: range$$1.head} : {from: range$$1.head, to: other}
+          }); }
+      }),
+
+      findPosV: function(from, amount, unit, goalColumn) {
+        var this$1 = this;
+
+        var dir = 1, x = goalColumn;
+        if (amount < 0) { dir = -1; amount = -amount; }
+        var cur = clipPos(this.doc, from);
+        for (var i = 0; i < amount; ++i) {
+          var coords = cursorCoords(this$1, cur, "div");
+          if (x == null) { x = coords.left; }
+          else { coords.left = x; }
+          cur = findPosV(this$1, coords, dir, unit);
+          if (cur.hitSide) { break }
+        }
+        return cur
+      },
+
+      moveV: methodOp(function(dir, unit) {
+        var this$1 = this;
+
+        var doc = this.doc, goals = [];
+        var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected();
+        doc.extendSelectionsBy(function (range$$1) {
+          if (collapse)
+            { return dir < 0 ? range$$1.from() : range$$1.to() }
+          var headPos = cursorCoords(this$1, range$$1.head, "div");
+          if (range$$1.goalColumn != null) { headPos.left = range$$1.goalColumn; }
+          goals.push(headPos.left);
+          var pos = findPosV(this$1, headPos, dir, unit);
+          if (unit == "page" && range$$1 == doc.sel.primary())
+            { addToScrollTop(this$1, charCoords(this$1, pos, "div").top - headPos.top); }
+          return pos
+        }, sel_move);
+        if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++)
+          { doc.sel.ranges[i].goalColumn = goals[i]; } }
+      }),
+
+      // Find the word at the given position (as returned by coordsChar).
+      findWordAt: function(pos) {
+        var doc = this.doc, line = getLine(doc, pos.line).text;
+        var start = pos.ch, end = pos.ch;
+        if (line) {
+          var helper = this.getHelper(pos, "wordChars");
+          if ((pos.sticky == "before" || end == line.length) && start) { --start; } else { ++end; }
+          var startChar = line.charAt(start);
+          var check = isWordChar(startChar, helper)
+            ? function (ch) { return isWordChar(ch, helper); }
+            : /\s/.test(startChar) ? function (ch) { return /\s/.test(ch); }
+            : function (ch) { return (!/\s/.test(ch) && !isWordChar(ch)); };
+          while (start > 0 && check(line.charAt(start - 1))) { --start; }
+          while (end < line.length && check(line.charAt(end))) { ++end; }
+        }
+        return new Range(Pos(pos.line, start), Pos(pos.line, end))
+      },
+
+      toggleOverwrite: function(value) {
+        if (value != null && value == this.state.overwrite) { return }
+        if (this.state.overwrite = !this.state.overwrite)
+          { addClass(this.display.cursorDiv, "CodeMirror-overwrite"); }
+        else
+          { rmClass(this.display.cursorDiv, "CodeMirror-overwrite"); }
+
+        signal(this, "overwriteToggle", this, this.state.overwrite);
+      },
+      hasFocus: function() { return this.display.input.getField() == activeElt() },
+      isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) },
+
+      scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }),
+      getScrollInfo: function() {
+        var scroller = this.display.scroller;
+        return {left: scroller.scrollLeft, top: scroller.scrollTop,
+                height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight,
+                width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth,
+                clientHeight: displayHeight(this), clientWidth: displayWidth(this)}
+      },
+
+      scrollIntoView: methodOp(function(range$$1, margin) {
+        if (range$$1 == null) {
+          range$$1 = {from: this.doc.sel.primary().head, to: null};
+          if (margin == null) { margin = this.options.cursorScrollMargin; }
+        } else if (typeof range$$1 == "number") {
+          range$$1 = {from: Pos(range$$1, 0), to: null};
+        } else if (range$$1.from == null) {
+          range$$1 = {from: range$$1, to: null};
+        }
+        if (!range$$1.to) { range$$1.to = range$$1.from; }
+        range$$1.margin = margin || 0;
+
+        if (range$$1.from.line != null) {
+          scrollToRange(this, range$$1);
+        } else {
+          scrollToCoordsRange(this, range$$1.from, range$$1.to, range$$1.margin);
+        }
+      }),
+
+      setSize: methodOp(function(width, height) {
+        var this$1 = this;
+
+        var interpret = function (val) { return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val; };
+        if (width != null) { this.display.wrapper.style.width = interpret(width); }
+        if (height != null) { this.display.wrapper.style.height = interpret(height); }
+        if (this.options.lineWrapping) { clearLineMeasurementCache(this); }
+        var lineNo$$1 = this.display.viewFrom;
+        this.doc.iter(lineNo$$1, this.display.viewTo, function (line) {
+          if (line.widgets) { for (var i = 0; i < line.widgets.length; i++)
+            { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo$$1, "widget"); break } } }
+          ++lineNo$$1;
+        });
+        this.curOp.forceUpdate = true;
+        signal(this, "refresh", this);
+      }),
+
+      operation: function(f){return runInOp(this, f)},
+      startOperation: function(){return startOperation(this)},
+      endOperation: function(){return endOperation(this)},
+
+      refresh: methodOp(function() {
+        var oldHeight = this.display.cachedTextHeight;
+        regChange(this);
+        this.curOp.forceUpdate = true;
+        clearCaches(this);
+        scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop);
+        updateGutterSpace(this);
+        if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5)
+          { estimateLineHeights(this); }
+        signal(this, "refresh", this);
+      }),
+
+      swapDoc: methodOp(function(doc) {
+        var old = this.doc;
+        old.cm = null;
+        attachDoc(this, doc);
+        clearCaches(this);
+        this.display.input.reset();
+        scrollToCoords(this, doc.scrollLeft, doc.scrollTop);
+        this.curOp.forceScroll = true;
+        signalLater(this, "swapDoc", this, old);
+        return old
+      }),
+
+      phrase: function(phraseText) {
+        var phrases = this.options.phrases;
+        return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText
+      },
+
+      getInputField: function(){return this.display.input.getField()},
+      getWrapperElement: function(){return this.display.wrapper},
+      getScrollerElement: function(){return this.display.scroller},
+      getGutterElement: function(){return this.display.gutters}
+    };
+    eventMixin(CodeMirror);
+
+    CodeMirror.registerHelper = function(type, name, value) {
+      if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; }
+      helpers[type][name] = value;
+    };
+    CodeMirror.registerGlobalHelper = function(type, name, predicate, value) {
+      CodeMirror.registerHelper(type, name, value);
+      helpers[type]._global.push({pred: predicate, val: value});
+    };
+  }
+
+  // Used for horizontal relative motion. Dir is -1 or 1 (left or
+  // right), unit can be "char", "column" (like char, but doesn't
+  // cross line boundaries), "word" (across next word), or "group" (to
+  // the start of next group of word or non-word-non-whitespace
+  // chars). The visually param controls whether, in right-to-left
+  // text, direction 1 means to move towards the next index in the
+  // string, or towards the character to the right of the current
+  // position. The resulting position will have a hitSide=true
+  // property if it reached the end of the document.
+  function findPosH(doc, pos, dir, unit, visually) {
+    var oldPos = pos;
+    var origDir = dir;
+    var lineObj = getLine(doc, pos.line);
+    function findNextLine() {
+      var l = pos.line + dir;
+      if (l < doc.first || l >= doc.first + doc.size) { return false }
+      pos = new Pos(l, pos.ch, pos.sticky);
+      return lineObj = getLine(doc, l)
+    }
+    function moveOnce(boundToLine) {
+      var next;
+      if (visually) {
+        next = moveVisually(doc.cm, lineObj, pos, dir);
+      } else {
+        next = moveLogically(lineObj, pos, dir);
+      }
+      if (next == null) {
+        if (!boundToLine && findNextLine())
+          { pos = endOfLine(visually, doc.cm, lineObj, pos.line, dir); }
+        else
+          { return false }
+      } else {
+        pos = next;
+      }
+      return true
+    }
+
+    if (unit == "char") {
+      moveOnce();
+    } else if (unit == "column") {
+      moveOnce(true);
+    } else if (unit == "word" || unit == "group") {
+      var sawType = null, group = unit == "group";
+      var helper = doc.cm && doc.cm.getHelper(pos, "wordChars");
+      for (var first = true;; first = false) {
+        if (dir < 0 && !moveOnce(!first)) { break }
+        var cur = lineObj.text.charAt(pos.ch) || "\n";
+        var type = isWordChar(cur, helper) ? "w"
+          : group && cur == "\n" ? "n"
+          : !group || /\s/.test(cur) ? null
+          : "p";
+        if (group && !first && !type) { type = "s"; }
+        if (sawType && sawType != type) {
+          if (dir < 0) {dir = 1; moveOnce(); pos.sticky = "after";}
+          break
+        }
+
+        if (type) { sawType = type; }
+        if (dir > 0 && !moveOnce(!first)) { break }
+      }
+    }
+    var result = skipAtomic(doc, pos, oldPos, origDir, true);
+    if (equalCursorPos(oldPos, result)) { result.hitSide = true; }
+    return result
+  }
+
+  // For relative vertical movement. Dir may be -1 or 1. Unit can be
+  // "page" or "line". The resulting position will have a hitSide=true
+  // property if it reached the end of the document.
+  function findPosV(cm, pos, dir, unit) {
+    var doc = cm.doc, x = pos.left, y;
+    if (unit == "page") {
+      var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight);
+      var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3);
+      y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount;
+
+    } else if (unit == "line") {
+      y = dir > 0 ? pos.bottom + 3 : pos.top - 3;
+    }
+    var target;
+    for (;;) {
+      target = coordsChar(cm, x, y);
+      if (!target.outside) { break }
+      if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break }
+      y += dir * 5;
+    }
+    return target
+  }
+
+  // CONTENTEDITABLE INPUT STYLE
+
+  var ContentEditableInput = function(cm) {
+    this.cm = cm;
+    this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null;
+    this.polling = new Delayed();
+    this.composing = null;
+    this.gracePeriod = false;
+    this.readDOMTimeout = null;
+  };
+
+  ContentEditableInput.prototype.init = function (display) {
+      var this$1 = this;
+
+    var input = this, cm = input.cm;
+    var div = input.div = display.lineDiv;
+    disableBrowserMagic(div, cm.options.spellcheck);
+
+    on(div, "paste", function (e) {
+      if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }
+      // IE doesn't fire input events, so we schedule a read for the pasted content in this way
+      if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); }
+    });
+
+    on(div, "compositionstart", function (e) {
+      this$1.composing = {data: e.data, done: false};
+    });
+    on(div, "compositionupdate", function (e) {
+      if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; }
+    });
+    on(div, "compositionend", function (e) {
+      if (this$1.composing) {
+        if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); }
+        this$1.composing.done = true;
+      }
+    });
+
+    on(div, "touchstart", function () { return input.forceCompositionEnd(); });
+
+    on(div, "input", function () {
+      if (!this$1.composing) { this$1.readFromDOMSoon(); }
+    });
+
+    function onCopyCut(e) {
+      if (signalDOMEvent(cm, e)) { return }
+      if (cm.somethingSelected()) {
+        setLastCopied({lineWise: false, text: cm.getSelections()});
+        if (e.type == "cut") { cm.replaceSelection("", null, "cut"); }
+      } else if (!cm.options.lineWiseCopyCut) {
+        return
+      } else {
+        var ranges = copyableRanges(cm);
+        setLastCopied({lineWise: true, text: ranges.text});
+        if (e.type == "cut") {
+          cm.operation(function () {
+            cm.setSelections(ranges.ranges, 0, sel_dontScroll);
+            cm.replaceSelection("", null, "cut");
+          });
+        }
+      }
+      if (e.clipboardData) {
+        e.clipboardData.clearData();
+        var content = lastCopied.text.join("\n");
+        // iOS exposes the clipboard API, but seems to discard content inserted into it
+        e.clipboardData.setData("Text", content);
+        if (e.clipboardData.getData("Text") == content) {
+          e.preventDefault();
+          return
+        }
+      }
+      // Old-fashioned briefly-focus-a-textarea hack
+      var kludge = hiddenTextarea(), te = kludge.firstChild;
+      cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);
+      te.value = lastCopied.text.join("\n");
+      var hadFocus = document.activeElement;
+      selectInput(te);
+      setTimeout(function () {
+        cm.display.lineSpace.removeChild(kludge);
+        hadFocus.focus();
+        if (hadFocus == div) { input.showPrimarySelection(); }
+      }, 50);
+    }
+    on(div, "copy", onCopyCut);
+    on(div, "cut", onCopyCut);
+  };
+
+  ContentEditableInput.prototype.prepareSelection = function () {
+    var result = prepareSelection(this.cm, false);
+    result.focus = this.cm.state.focused;
+    return result
+  };
+
+  ContentEditableInput.prototype.showSelection = function (info, takeFocus) {
+    if (!info || !this.cm.display.view.length) { return }
+    if (info.focus || takeFocus) { this.showPrimarySelection(); }
+    this.showMultipleSelections(info);
+  };
+
+  ContentEditableInput.prototype.getSelection = function () {
+    return this.cm.display.wrapper.ownerDocument.getSelection()
+  };
+
+  ContentEditableInput.prototype.showPrimarySelection = function () {
+    var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary();
+    var from = prim.from(), to = prim.to();
+
+    if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) {
+      sel.removeAllRanges();
+      return
+    }
+
+    var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);
+    var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset);
+    if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad &&
+        cmp(minPos(curAnchor, curFocus), from) == 0 &&
+        cmp(maxPos(curAnchor, curFocus), to) == 0)
+      { return }
+
+    var view = cm.display.view;
+    var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) ||
+        {node: view[0].measure.map[2], offset: 0};
+    var end = to.line < cm.display.viewTo && posToDOM(cm, to);
+    if (!end) {
+      var measure = view[view.length - 1].measure;
+      var map$$1 = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map;
+      end = {node: map$$1[map$$1.length - 1], offset: map$$1[map$$1.length - 2] - map$$1[map$$1.length - 3]};
+    }
+
+    if (!start || !end) {
+      sel.removeAllRanges();
+      return
+    }
+
+    var old = sel.rangeCount && sel.getRangeAt(0), rng;
+    try { rng = range(start.node, start.offset, end.offset, end.node); }
+    catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible
+    if (rng) {
+      if (!gecko && cm.state.focused) {
+        sel.collapse(start.node, start.offset);
+        if (!rng.collapsed) {
+          sel.removeAllRanges();
+          sel.addRange(rng);
+        }
+      } else {
+        sel.removeAllRanges();
+        sel.addRange(rng);
+      }
+      if (old && sel.anchorNode == null) { sel.addRange(old); }
+      else if (gecko) { this.startGracePeriod(); }
+    }
+    this.rememberSelection();
+  };
+
+  ContentEditableInput.prototype.startGracePeriod = function () {
+      var this$1 = this;
+
+    clearTimeout(this.gracePeriod);
+    this.gracePeriod = setTimeout(function () {
+      this$1.gracePeriod = false;
+      if (this$1.selectionChanged())
+        { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); }
+    }, 20);
+  };
+
+  ContentEditableInput.prototype.showMultipleSelections = function (info) {
+    removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors);
+    removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection);
+  };
+
+  ContentEditableInput.prototype.rememberSelection = function () {
+    var sel = this.getSelection();
+    this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset;
+    this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset;
+  };
+
+  ContentEditableInput.prototype.selectionInEditor = function () {
+    var sel = this.getSelection();
+    if (!sel.rangeCount) { return false }
+    var node = sel.getRangeAt(0).commonAncestorContainer;
+    return contains(this.div, node)
+  };
+
+  ContentEditableInput.prototype.focus = function () {
+    if (this.cm.options.readOnly != "nocursor") {
+      if (!this.selectionInEditor())
+        { this.showSelection(this.prepareSelection(), true); }
+      this.div.focus();
+    }
+  };
+  ContentEditableInput.prototype.blur = function () { this.div.blur(); };
+  ContentEditableInput.prototype.getField = function () { return this.div };
+
+  ContentEditableInput.prototype.supportsTouch = function () { return true };
+
+  ContentEditableInput.prototype.receivedFocus = function () {
+    var input = this;
+    if (this.selectionInEditor())
+      { this.pollSelection(); }
+    else
+      { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); }
+
+    function poll() {
+      if (input.cm.state.focused) {
+        input.pollSelection();
+        input.polling.set(input.cm.options.pollInterval, poll);
+      }
+    }
+    this.polling.set(this.cm.options.pollInterval, poll);
+  };
+
+  ContentEditableInput.prototype.selectionChanged = function () {
+    var sel = this.getSelection();
+    return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset ||
+      sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset
+  };
+
+  ContentEditableInput.prototype.pollSelection = function () {
+    if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return }
+    var sel = this.getSelection(), cm = this.cm;
+    // On Android Chrome (version 56, at least), backspacing into an
+    // uneditable block element will put the cursor in that element,
+    // and then, because it's not editable, hide the virtual keyboard.
+    // Because Android doesn't allow us to actually detect backspace
+    // presses in a sane way, this code checks for when that happens
+    // and simulates a backspace press in this case.
+    if (android && chrome && this.cm.options.gutters.length && isInGutter(sel.anchorNode)) {
+      this.cm.triggerOnKeyDown({type: "keydown", keyCode: 8, preventDefault: Math.abs});
+      this.blur();
+      this.focus();
+      return
+    }
+    if (this.composing) { return }
+    this.rememberSelection();
+    var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset);
+    var head = domToPos(cm, sel.focusNode, sel.focusOffset);
+    if (anchor && head) { runInOp(cm, function () {
+      setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll);
+      if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; }
+    }); }
+  };
+
+  ContentEditableInput.prototype.pollContent = function () {
+    if (this.readDOMTimeout != null) {
+      clearTimeout(this.readDOMTimeout);
+      this.readDOMTimeout = null;
+    }
+
+    var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary();
+    var from = sel.from(), to = sel.to();
+    if (from.ch == 0 && from.line > cm.firstLine())
+      { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); }
+    if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine())
+      { to = Pos(to.line + 1, 0); }
+    if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false }
+
+    var fromIndex, fromLine, fromNode;
+    if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) {
+      fromLine = lineNo(display.view[0].line);
+      fromNode = display.view[0].node;
+    } else {
+      fromLine = lineNo(display.view[fromIndex].line);
+      fromNode = display.view[fromIndex - 1].node.nextSibling;
+    }
+    var toIndex = findViewIndex(cm, to.line);
+    var toLine, toNode;
+    if (toIndex == display.view.length - 1) {
+      toLine = display.viewTo - 1;
+      toNode = display.lineDiv.lastChild;
+    } else {
+      toLine = lineNo(display.view[toIndex + 1].line) - 1;
+      toNode = display.view[toIndex + 1].node.previousSibling;
+    }
+
+    if (!fromNode) { return false }
+    var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine));
+    var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length));
+    while (newText.length > 1 && oldText.length > 1) {
+      if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; }
+      else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; }
+      else { break }
+    }
+
+    var cutFront = 0, cutEnd = 0;
+    var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length);
+    while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront))
+      { ++cutFront; }
+    var newBot = lst(newText), oldBot = lst(oldText);
+    var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0),
+                             oldBot.length - (oldText.length == 1 ? cutFront : 0));
+    while (cutEnd < maxCutEnd &&
+           newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1))
+      { ++cutEnd; }
+    // Try to move start of change to start of selection if ambiguous
+    if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) {
+      while (cutFront && cutFront > from.ch &&
+             newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) {
+        cutFront--;
+        cutEnd++;
+      }
+    }
+
+    newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\u200b+/, "");
+    newText[0] = newText[0].slice(cutFront).replace(/\u200b+$/, "");
+
+    var chFrom = Pos(fromLine, cutFront);
+    var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0);
+    if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) {
+      replaceRange(cm.doc, newText, chFrom, chTo, "+input");
+      return true
+    }
+  };
+
+  ContentEditableInput.prototype.ensurePolled = function () {
+    this.forceCompositionEnd();
+  };
+  ContentEditableInput.prototype.reset = function () {
+    this.forceCompositionEnd();
+  };
+  ContentEditableInput.prototype.forceCompositionEnd = function () {
+    if (!this.composing) { return }
+    clearTimeout(this.readDOMTimeout);
+    this.composing = null;
+    this.updateFromDOM();
+    this.div.blur();
+    this.div.focus();
+  };
+  ContentEditableInput.prototype.readFromDOMSoon = function () {
+      var this$1 = this;
+
+    if (this.readDOMTimeout != null) { return }
+    this.readDOMTimeout = setTimeout(function () {
+      this$1.readDOMTimeout = null;
+      if (this$1.composing) {
+        if (this$1.composing.done) { this$1.composing = null; }
+        else { return }
+      }
+      this$1.updateFromDOM();
+    }, 80);
+  };
+
+  ContentEditableInput.prototype.updateFromDOM = function () {
+      var this$1 = this;
+
+    if (this.cm.isReadOnly() || !this.pollContent())
+      { runInOp(this.cm, function () { return regChange(this$1.cm); }); }
+  };
+
+  ContentEditableInput.prototype.setUneditable = function (node) {
+    node.contentEditable = "false";
+  };
+
+  ContentEditableInput.prototype.onKeyPress = function (e) {
+    if (e.charCode == 0 || this.composing) { return }
+    e.preventDefault();
+    if (!this.cm.isReadOnly())
+      { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); }
+  };
+
+  ContentEditableInput.prototype.readOnlyChanged = function (val) {
+    this.div.contentEditable = String(val != "nocursor");
+  };
+
+  ContentEditableInput.prototype.onContextMenu = function () {};
+  ContentEditableInput.prototype.resetPosition = function () {};
+
+  ContentEditableInput.prototype.needsContentAttribute = true;
+
+  function posToDOM(cm, pos) {
+    var view = findViewForLine(cm, pos.line);
+    if (!view || view.hidden) { return null }
+    var line = getLine(cm.doc, pos.line);
+    var info = mapFromLineView(view, line, pos.line);
+
+    var order = getOrder(line, cm.doc.direction), side = "left";
+    if (order) {
+      var partPos = getBidiPartAt(order, pos.ch);
+      side = partPos % 2 ? "right" : "left";
+    }
+    var result = nodeAndOffsetInLineMap(info.map, pos.ch, side);
+    result.offset = result.collapse == "right" ? result.end : result.start;
+    return result
+  }
+
+  function isInGutter(node) {
+    for (var scan = node; scan; scan = scan.parentNode)
+      { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } }
+    return false
+  }
+
+  function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos }
+
+  function domTextBetween(cm, from, to, fromLine, toLine) {
+    var text = "", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false;
+    function recognizeMarker(id) { return function (marker) { return marker.id == id; } }
+    function close() {
+      if (closing) {
+        text += lineSep;
+        if (extraLinebreak) { text += lineSep; }
+        closing = extraLinebreak = false;
+      }
+    }
+    function addText(str) {
+      if (str) {
+        close();
+        text += str;
+      }
+    }
+    function walk(node) {
+      if (node.nodeType == 1) {
+        var cmText = node.getAttribute("cm-text");
+        if (cmText) {
+          addText(cmText);
+          return
+        }
+        var markerID = node.getAttribute("cm-marker"), range$$1;
+        if (markerID) {
+          var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID));
+          if (found.length && (range$$1 = found[0].find(0)))
+            { addText(getBetween(cm.doc, range$$1.from, range$$1.to).join(lineSep)); }
+          return
+        }
+        if (node.getAttribute("contenteditable") == "false") { return }
+        var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName);
+        if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return }
+
+        if (isBlock) { close(); }
+        for (var i = 0; i < node.childNodes.length; i++)
+          { walk(node.childNodes[i]); }
+
+        if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; }
+        if (isBlock) { closing = true; }
+      } else if (node.nodeType == 3) {
+        addText(node.nodeValue.replace(/\u200b/g, "").replace(/\u00a0/g, " "));
+      }
+    }
+    for (;;) {
+      walk(from);
+      if (from == to) { break }
+      from = from.nextSibling;
+      extraLinebreak = false;
+    }
+    return text
+  }
+
+  function domToPos(cm, node, offset) {
+    var lineNode;
+    if (node == cm.display.lineDiv) {
+      lineNode = cm.display.lineDiv.childNodes[offset];
+      if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) }
+      node = null; offset = 0;
+    } else {
+      for (lineNode = node;; lineNode = lineNode.parentNode) {
+        if (!lineNode || lineNode == cm.display.lineDiv) { return null }
+        if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break }
+      }
+    }
+    for (var i = 0; i < cm.display.view.length; i++) {
+      var lineView = cm.display.view[i];
+      if (lineView.node == lineNode)
+        { return locateNodeInLineView(lineView, node, offset) }
+    }
+  }
+
+  function locateNodeInLineView(lineView, node, offset) {
+    var wrapper = lineView.text.firstChild, bad = false;
+    if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) }
+    if (node == wrapper) {
+      bad = true;
+      node = wrapper.childNodes[offset];
+      offset = 0;
+      if (!node) {
+        var line = lineView.rest ? lst(lineView.rest) : lineView.line;
+        return badPos(Pos(lineNo(line), line.text.length), bad)
+      }
+    }
+
+    var textNode = node.nodeType == 3 ? node : null, topNode = node;
+    if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) {
+      textNode = node.firstChild;
+      if (offset) { offset = textNode.nodeValue.length; }
+    }
+    while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; }
+    var measure = lineView.measure, maps = measure.maps;
+
+    function find(textNode, topNode, offset) {
+      for (var i = -1; i < (maps ? maps.length : 0); i++) {
+        var map$$1 = i < 0 ? measure.map : maps[i];
+        for (var j = 0; j < map$$1.length; j += 3) {
+          var curNode = map$$1[j + 2];
+          if (curNode == textNode || curNode == topNode) {
+            var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]);
+            var ch = map$$1[j] + offset;
+            if (offset < 0 || curNode != textNode) { ch = map$$1[j + (offset ? 1 : 0)]; }
+            return Pos(line, ch)
+          }
+        }
+      }
+    }
+    var found = find(textNode, topNode, offset);
+    if (found) { return badPos(found, bad) }
+
+    // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems
+    for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) {
+      found = find(after, after.firstChild, 0);
+      if (found)
+        { return badPos(Pos(found.line, found.ch - dist), bad) }
+      else
+        { dist += after.textContent.length; }
+    }
+    for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) {
+      found = find(before, before.firstChild, -1);
+      if (found)
+        { return badPos(Pos(found.line, found.ch + dist$1), bad) }
+      else
+        { dist$1 += before.textContent.length; }
+    }
+  }
+
+  // TEXTAREA INPUT STYLE
+
+  var TextareaInput = function(cm) {
+    this.cm = cm;
+    // See input.poll and input.reset
+    this.prevInput = "";
+
+    // Flag that indicates whether we expect input to appear real soon
+    // now (after some event like 'keypress' or 'input') and are
+    // polling intensively.
+    this.pollingFast = false;
+    // Self-resetting timeout for the poller
+    this.polling = new Delayed();
+    // Used to work around IE issue with selection being forgotten when focus moves away from textarea
+    this.hasSelection = false;
+    this.composing = null;
+  };
+
+  TextareaInput.prototype.init = function (display) {
+      var this$1 = this;
+
+    var input = this, cm = this.cm;
+    this.createField(display);
+    var te = this.textarea;
+
+    display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild);
+
+    // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore)
+    if (ios) { te.style.width = "0px"; }
+
+    on(te, "input", function () {
+      if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; }
+      input.poll();
+    });
+
+    on(te, "paste", function (e) {
+      if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return }
+
+      cm.state.pasteIncoming = true;
+      input.fastPoll();
+    });
+
+    function prepareCopyCut(e) {
+      if (signalDOMEvent(cm, e)) { return }
+      if (cm.somethingSelected()) {
+        setLastCopied({lineWise: false, text: cm.getSelections()});
+      } else if (!cm.options.lineWiseCopyCut) {
+        return
+      } else {
+        var ranges = copyableRanges(cm);
+        setLastCopied({lineWise: true, text: ranges.text});
+        if (e.type == "cut") {
+          cm.setSelections(ranges.ranges, null, sel_dontScroll);
+        } else {
+          input.prevInput = "";
+          te.value = ranges.text.join("\n");
+          selectInput(te);
+        }
+      }
+      if (e.type == "cut") { cm.state.cutIncoming = true; }
+    }
+    on(te, "cut", prepareCopyCut);
+    on(te, "copy", prepareCopyCut);
+
+    on(display.scroller, "paste", function (e) {
+      if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return }
+      cm.state.pasteIncoming = true;
+      input.focus();
+    });
+
+    // Prevent normal selection in the editor (we handle our own)
+    on(display.lineSpace, "selectstart", function (e) {
+      if (!eventInWidget(display, e)) { e_preventDefault(e); }
+    });
+
+    on(te, "compositionstart", function () {
+      var start = cm.getCursor("from");
+      if (input.composing) { input.composing.range.clear(); }
+      input.composing = {
+        start: start,
+        range: cm.markText(start, cm.getCursor("to"), {className: "CodeMirror-composing"})
+      };
+    });
+    on(te, "compositionend", function () {
+      if (input.composing) {
+        input.poll();
+        input.composing.range.clear();
+        input.composing = null;
+      }
+    });
+  };
+
+  TextareaInput.prototype.createField = function (_display) {
+    // Wraps and hides input textarea
+    this.wrapper = hiddenTextarea();
+    // The semihidden textarea that is focused when the editor is
+    // focused, and receives input.
+    this.textarea = this.wrapper.firstChild;
+  };
+
+  TextareaInput.prototype.prepareSelection = function () {
+    // Redraw the selection and/or cursor
+    var cm = this.cm, display = cm.display, doc = cm.doc;
+    var result = prepareSelection(cm);
+
+    // Move the hidden textarea near the cursor to prevent scrolling artifacts
+    if (cm.options.moveInputWithCursor) {
+      var headPos = cursorCoords(cm, doc.sel.primary().head, "div");
+      var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect();
+      result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10,
+                                          headPos.top + lineOff.top - wrapOff.top));
+      result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10,
+                                           headPos.left + lineOff.left - wrapOff.left));
+    }
+
+    return result
+  };
+
+  TextareaInput.prototype.showSelection = function (drawn) {
+    var cm = this.cm, display = cm.display;
+    removeChildrenAndAdd(display.cursorDiv, drawn.cursors);
+    removeChildrenAndAdd(display.selectionDiv, drawn.selection);
+    if (drawn.teTop != null) {
+      this.wrapper.style.top = drawn.teTop + "px";
+      this.wrapper.style.left = drawn.teLeft + "px";
+    }
+  };
+
+  // Reset the input to correspond to the selection (or to be empty,
+  // when not typing and nothing is selected)
+  TextareaInput.prototype.reset = function (typing) {
+    if (this.contextMenuPending || this.composing) { return }
+    var cm = this.cm;
+    if (cm.somethingSelected()) {
+      this.prevInput = "";
+      var content = cm.getSelection();
+      this.textarea.value = content;
+      if (cm.state.focused) { selectInput(this.textarea); }
+      if (ie && ie_version >= 9) { this.hasSelection = content; }
+    } else if (!typing) {
+      this.prevInput = this.textarea.value = "";
+      if (ie && ie_version >= 9) { this.hasSelection = null; }
+    }
+  };
+
+  TextareaInput.prototype.getField = function () { return this.textarea };
+
+  TextareaInput.prototype.supportsTouch = function () { return false };
+
+  TextareaInput.prototype.focus = function () {
+    if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt() != this.textarea)) {
+      try { this.textarea.focus(); }
+      catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM
+    }
+  };
+
+  TextareaInput.prototype.blur = function () { this.textarea.blur(); };
+
+  TextareaInput.prototype.resetPosition = function () {
+    this.wrapper.style.top = this.wrapper.style.left = 0;
+  };
+
+  TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); };
+
+  // Poll for input changes, using the normal rate of polling. This
+  // runs as long as the editor is focused.
+  TextareaInput.prototype.slowPoll = function () {
+      var this$1 = this;
+
+    if (this.pollingFast) { return }
+    this.polling.set(this.cm.options.pollInterval, function () {
+      this$1.poll();
+      if (this$1.cm.state.focused) { this$1.slowPoll(); }
+    });
+  };
+
+  // When an event has just come in that is likely to add or change
+  // something in the input textarea, we poll faster, to ensure that
+  // the change appears on the screen quickly.
+  TextareaInput.prototype.fastPoll = function () {
+    var missed = false, input = this;
+    input.pollingFast = true;
+    function p() {
+      var changed = input.poll();
+      if (!changed && !missed) {missed = true; input.polling.set(60, p);}
+      else {input.pollingFast = false; input.slowPoll();}
+    }
+    input.polling.set(20, p);
+  };
+
+  // Read input from the textarea, and update the document to match.
+  // When something is selected, it is present in the textarea, and
+  // selected (unless it is huge, in which case a placeholder is
+  // used). When nothing is selected, the cursor sits after previously
+  // seen text (can be empty), which is stored in prevInput (we must
+  // not reset the textarea when typing, because that breaks IME).
+  TextareaInput.prototype.poll = function () {
+      var this$1 = this;
+
+    var cm = this.cm, input = this.textarea, prevInput = this.prevInput;
+    // Since this is called a *lot*, try to bail out as cheaply as
+    // possible when it is clear that nothing happened. hasSelection
+    // will be the case when there is a lot of text in the textarea,
+    // in which case reading its value would be expensive.
+    if (this.contextMenuPending || !cm.state.focused ||
+        (hasSelection(input) && !prevInput && !this.composing) ||
+        cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq)
+      { return false }
+
+    var text = input.value;
+    // If nothing changed, bail.
+    if (text == prevInput && !cm.somethingSelected()) { return false }
+    // Work around nonsensical selection resetting in IE9/10, and
+    // inexplicable appearance of private area unicode characters on
+    // some key combos in Mac (#2689).
+    if (ie && ie_version >= 9 && this.hasSelection === text ||
+        mac && /[\uf700-\uf7ff]/.test(text)) {
+      cm.display.input.reset();
+      return false
+    }
+
+    if (cm.doc.sel == cm.display.selForContextMenu) {
+      var first = text.charCodeAt(0);
+      if (first == 0x200b && !prevInput) { prevInput = "\u200b"; }
+      if (first == 0x21da) { this.reset(); return this.cm.execCommand("undo") }
+    }
+    // Find the part of the input that is actually new
+    var same = 0, l = Math.min(prevInput.length, text.length);
+    while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; }
+
+    runInOp(cm, function () {
+      applyTextInput(cm, text.slice(same), prevInput.length - same,
+                     null, this$1.composing ? "*compose" : null);
+
+      // Don't leave long text in the textarea, since it makes further polling slow
+      if (text.length > 1000 || text.indexOf("\n") > -1) { input.value = this$1.prevInput = ""; }
+      else { this$1.prevInput = text; }
+
+      if (this$1.composing) {
+        this$1.composing.range.clear();
+        this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor("to"),
+                                           {className: "CodeMirror-composing"});
+      }
+    });
+    return true
+  };
+
+  TextareaInput.prototype.ensurePolled = function () {
+    if (this.pollingFast && this.poll()) { this.pollingFast = false; }
+  };
+
+  TextareaInput.prototype.onKeyPress = function () {
+    if (ie && ie_version >= 9) { this.hasSelection = null; }
+    this.fastPoll();
+  };
+
+  TextareaInput.prototype.onContextMenu = function (e) {
+    var input = this, cm = input.cm, display = cm.display, te = input.textarea;
+    var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop;
+    if (!pos || presto) { return } // Opera is difficult.
+
+    // Reset the current text selection only if the click is done outside of the selection
+    // and 'resetSelectionOnContextMenu' option is true.
+    var reset = cm.options.resetSelectionOnContextMenu;
+    if (reset && cm.doc.sel.contains(pos) == -1)
+      { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); }
+
+    var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText;
+    input.wrapper.style.cssText = "position: absolute";
+    var wrapperBox = input.wrapper.getBoundingClientRect();
+    te.style.cssText = "position: absolute; width: 30px; height: 30px;\n      top: " + (e.clientY - wrapperBox.top - 5) + "px; left: " + (e.clientX - wrapperBox.left - 5) + "px;\n      z-index: 1000; background: " + (ie ? "rgba(255, 255, 255, .05)" : "transparent") + ";\n      outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);";
+    var oldScrollY;
+    if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712)
+    display.input.focus();
+    if (webkit) { window.scrollTo(null, oldScrollY); }
+    display.input.reset();
+    // Adds "Select all" to context menu in FF
+    if (!cm.somethingSelected()) { te.value = input.prevInput = " "; }
+    input.contextMenuPending = true;
+    display.selForContextMenu = cm.doc.sel;
+    clearTimeout(display.detectingSelectAll);
+
+    // Select-all will be greyed out if there's nothing to select, so
+    // this adds a zero-width space so that we can later check whether
+    // it got selected.
+    function prepareSelectAllHack() {
+      if (te.selectionStart != null) {
+        var selected = cm.somethingSelected();
+        var extval = "\u200b" + (selected ? te.value : "");
+        te.value = "\u21da"; // Used to catch context-menu undo
+        te.value = extval;
+        input.prevInput = selected ? "" : "\u200b";
+        te.selectionStart = 1; te.selectionEnd = extval.length;
+        // Re-set this, in case some other handler touched the
+        // selection in the meantime.
+        display.selForContextMenu = cm.doc.sel;
+      }
+    }
+    function rehide() {
+      input.contextMenuPending = false;
+      input.wrapper.style.cssText = oldWrapperCSS;
+      te.style.cssText = oldCSS;
+      if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); }
+
+      // Try to detect the user choosing select-all
+      if (te.selectionStart != null) {
+        if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); }
+        var i = 0, poll = function () {
+          if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 &&
+              te.selectionEnd > 0 && input.prevInput == "\u200b") {
+            operation(cm, selectAll)(cm);
+          } else if (i++ < 10) {
+            display.detectingSelectAll = setTimeout(poll, 500);
+          } else {
+            display.selForContextMenu = null;
+            display.input.reset();
+          }
+        };
+        display.detectingSelectAll = setTimeout(poll, 200);
+      }
+    }
+
+    if (ie && ie_version >= 9) { prepareSelectAllHack(); }
+    if (captureRightClick) {
+      e_stop(e);
+      var mouseup = function () {
+        off(window, "mouseup", mouseup);
+        setTimeout(rehide, 20);
+      };
+      on(window, "mouseup", mouseup);
+    } else {
+      setTimeout(rehide, 50);
+    }
+  };
+
+  TextareaInput.prototype.readOnlyChanged = function (val) {
+    if (!val) { this.reset(); }
+    this.textarea.disabled = val == "nocursor";
+  };
+
+  TextareaInput.prototype.setUneditable = function () {};
+
+  TextareaInput.prototype.needsContentAttribute = false;
+
+  function fromTextArea(textarea, options) {
+    options = options ? copyObj(options) : {};
+    options.value = textarea.value;
+    if (!options.tabindex && textarea.tabIndex)
+      { options.tabindex = textarea.tabIndex; }
+    if (!options.placeholder && textarea.placeholder)
+      { options.placeholder = textarea.placeholder; }
+    // Set autofocus to true if this textarea is focused, or if it has
+    // autofocus and no other element is focused.
+    if (options.autofocus == null) {
+      var hasFocus = activeElt();
+      options.autofocus = hasFocus == textarea ||
+        textarea.getAttribute("autofocus") != null && hasFocus == document.body;
+    }
+
+    function save() {textarea.value = cm.getValue();}
+
+    var realSubmit;
+    if (textarea.form) {
+      on(textarea.form, "submit", save);
+      // Deplorable hack to make the submit method do the right thing.
+      if (!options.leaveSubmitMethodAlone) {
+        var form = textarea.form;
+        realSubmit = form.submit;
+        try {
+          var wrappedSubmit = form.submit = function () {
+            save();
+            form.submit = realSubmit;
+            form.submit();
+            form.submit = wrappedSubmit;
+          };
+        } catch(e) {}
+      }
+    }
+
+    options.finishInit = function (cm) {
+      cm.save = save;
+      cm.getTextArea = function () { return textarea; };
+      cm.toTextArea = function () {
+        cm.toTextArea = isNaN; // Prevent this from being ran twice
+        save();
+        textarea.parentNode.removeChild(cm.getWrapperElement());
+        textarea.style.display = "";
+        if (textarea.form) {
+          off(textarea.form, "submit", save);
+          if (typeof textarea.form.submit == "function")
+            { textarea.form.submit = realSubmit; }
+        }
+      };
+    };
+
+    textarea.style.display = "none";
+    var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); },
+      options);
+    return cm
+  }
+
+  function addLegacyProps(CodeMirror) {
+    CodeMirror.off = off;
+    CodeMirror.on = on;
+    CodeMirror.wheelEventPixels = wheelEventPixels;
+    CodeMirror.Doc = Doc;
+    CodeMirror.splitLines = splitLinesAuto;
+    CodeMirror.countColumn = countColumn;
+    CodeMirror.findColumn = findColumn;
+    CodeMirror.isWordChar = isWordCharBasic;
+    CodeMirror.Pass = Pass;
+    CodeMirror.signal = signal;
+    CodeMirror.Line = Line;
+    CodeMirror.changeEnd = changeEnd;
+    CodeMirror.scrollbarModel = scrollbarModel;
+    CodeMirror.Pos = Pos;
+    CodeMirror.cmpPos = cmp;
+    CodeMirror.modes = modes;
+    CodeMirror.mimeModes = mimeModes;
+    CodeMirror.resolveMode = resolveMode;
+    CodeMirror.getMode = getMode;
+    CodeMirror.modeExtensions = modeExtensions;
+    CodeMirror.extendMode = extendMode;
+    CodeMirror.copyState = copyState;
+    CodeMirror.startState = startState;
+    CodeMirror.innerMode = innerMode;
+    CodeMirror.commands = commands;
+    CodeMirror.keyMap = keyMap;
+    CodeMirror.keyName = keyName;
+    CodeMirror.isModifierKey = isModifierKey;
+    CodeMirror.lookupKey = lookupKey;
+    CodeMirror.normalizeKeyMap = normalizeKeyMap;
+    CodeMirror.StringStream = StringStream;
+    CodeMirror.SharedTextMarker = SharedTextMarker;
+    CodeMirror.TextMarker = TextMarker;
+    CodeMirror.LineWidget = LineWidget;
+    CodeMirror.e_preventDefault = e_preventDefault;
+    CodeMirror.e_stopPropagation = e_stopPropagation;
+    CodeMirror.e_stop = e_stop;
+    CodeMirror.addClass = addClass;
+    CodeMirror.contains = contains;
+    CodeMirror.rmClass = rmClass;
+    CodeMirror.keyNames = keyNames;
+  }
+
+  // EDITOR CONSTRUCTOR
+
+  defineOptions(CodeMirror);
+
+  addEditorMethods(CodeMirror);
+
+  // Set up methods on CodeMirror's prototype to redirect to the editor's document.
+  var dontDelegate = "iter insert remove copy getEditor constructor".split(" ");
+  for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0)
+    { CodeMirror.prototype[prop] = (function(method) {
+      return function() {return method.apply(this.doc, arguments)}
+    })(Doc.prototype[prop]); } }
+
+  eventMixin(Doc);
+  CodeMirror.inputStyles = {"textarea": TextareaInput, "contenteditable": ContentEditableInput};
+
+  // Extra arguments are stored as the mode's dependencies, which is
+  // used by (legacy) mechanisms like loadmode.js to automatically
+  // load a mode. (Preferred mechanism is the require/define calls.)
+  CodeMirror.defineMode = function(name/*, mode, …*/) {
+    if (!CodeMirror.defaults.mode && name != "null") { CodeMirror.defaults.mode = name; }
+    defineMode.apply(this, arguments);
+  };
+
+  CodeMirror.defineMIME = defineMIME;
+
+  // Minimal default mode.
+  CodeMirror.defineMode("null", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); });
+  CodeMirror.defineMIME("text/plain", "null");
+
+  // EXTENSIONS
+
+  CodeMirror.defineExtension = function (name, func) {
+    CodeMirror.prototype[name] = func;
+  };
+  CodeMirror.defineDocExtension = function (name, func) {
+    Doc.prototype[name] = func;
+  };
+
+  CodeMirror.fromTextArea = fromTextArea;
+
+  addLegacyProps(CodeMirror);
+
+  CodeMirror.version = "5.41.0";
+
+  return CodeMirror;
+
+})));
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/clike/clike.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/clike/clike.js
new file mode 100644
index 0000000..77032ea
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/clike/clike.js
@@ -0,0 +1,879 @@
+// CodeMirror, copyright (c) by Marijn Haverbeke and others
+// Distributed under an MIT license: https://codemirror.net/LICENSE
+
+(function(mod) {
+  if (typeof exports == "object" && typeof module == "object") // CommonJS
+    mod(require("../../lib/codemirror"));
+  else if (typeof define == "function" && define.amd) // AMD
+    define(["../../lib/codemirror"], mod);
+  else // Plain browser env
+    mod(CodeMirror);
+})(function(CodeMirror) {
+"use strict";
+
+function Context(indented, column, type, info, align, prev) {
+  this.indented = indented;
+  this.column = column;
+  this.type = type;
+  this.info = info;
+  this.align = align;
+  this.prev = prev;
+}
+function pushContext(state, col, type, info) {
+  var indent = state.indented;
+  if (state.context && state.context.type == "statement" && type != "statement")
+    indent = state.context.indented;
+  return state.context = new Context(indent, col, type, info, null, state.context);
+}
+function popContext(state) {
+  var t = state.context.type;
+  if (t == ")" || t == "]" || t == "}")
+    state.indented = state.context.indented;
+  return state.context = state.context.prev;
+}
+
+function typeBefore(stream, state, pos) {
+  if (state.prevToken == "variable" || state.prevToken == "type") return true;
+  if (/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(stream.string.slice(0, pos))) return true;
+  if (state.typeAtEndOfLine && stream.column() == stream.indentation()) return true;
+}
+
+function isTopScope(context) {
+  for (;;) {
+    if (!context || context.type == "top") return true;
+    if (context.type == "}" && context.prev.info != "namespace") return false;
+    context = context.prev;
+  }
+}
+
+CodeMirror.defineMode("clike", function(config, parserConfig) {
+  var indentUnit = config.indentUnit,
+      statementIndentUnit = parserConfig.statementIndentUnit || indentUnit,
+      dontAlignCalls = parserConfig.dontAlignCalls,
+      keywords = parserConfig.keywords || {},
+      types = parserConfig.types || {},
+      builtin = parserConfig.builtin || {},
+      blockKeywords = parserConfig.blockKeywords || {},
+      defKeywords = parserConfig.defKeywords || {},
+      atoms = parserConfig.atoms || {},
+      hooks = parserConfig.hooks || {},
+      multiLineStrings = parserConfig.multiLineStrings,
+      indentStatements = parserConfig.indentStatements !== false,
+      indentSwitch = parserConfig.indentSwitch !== false,
+      namespaceSeparator = parserConfig.namespaceSeparator,
+      isPunctuationChar = parserConfig.isPunctuationChar || /[\[\]{}\(\),;\:\.]/,
+      numberStart = parserConfig.numberStart || /[\d\.]/,
+      number = parserConfig.number || /^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,
+      isOperatorChar = parserConfig.isOperatorChar || /[+\-*&%=<>!?|\/]/,
+      isIdentifierChar = parserConfig.isIdentifierChar || /[\w\$_\xa1-\uffff]/,
+      // An optional function that takes a {string} token and returns true if it
+      // should be treated as a builtin.
+      isReservedIdentifier = parserConfig.isReservedIdentifier || false;
+
+  var curPunc, isDefKeyword;
+
+  function tokenBase(stream, state) {
+    var ch = stream.next();
+    if (hooks[ch]) {
+      var result = hooks[ch](stream, state);
+      if (result !== false) return result;
+    }
+    if (ch == '"' || ch == "'") {
+      state.tokenize = tokenString(ch);
+      return state.tokenize(stream, state);
+    }
+    if (isPunctuationChar.test(ch)) {
+      curPunc = ch;
+      return null;
+    }
+    if (numberStart.test(ch)) {
+      stream.backUp(1)
+      if (stream.match(number)) return "number"
+      stream.next()
+    }
+    if (ch == "/") {
+      if (stream.eat("*")) {
+        state.tokenize = tokenComment;
+        return tokenComment(stream, state);
+      }
+      if (stream.eat("/")) {
+        stream.skipToEnd();
+        return "comment";
+      }
+    }
+    if (isOperatorChar.test(ch)) {
+      while (!stream.match(/^\/[\/*]/, false) && stream.eat(isOperatorChar)) {}
+      return "operator";
+    }
+    stream.eatWhile(isIdentifierChar);
+    if (namespaceSeparator) while (stream.match(namespaceSeparator))
+      stream.eatWhile(isIdentifierChar);
+
+    var cur = stream.current();
+    if (contains(keywords, cur)) {
+      if (contains(blockKeywords, cur)) curPunc = "newstatement";
+      if (contains(defKeywords, cur)) isDefKeyword = true;
+      return "keyword";
+    }
+    if (contains(types, cur)) return "type";
+    if (contains(builtin, cur)
+        || (isReservedIdentifier && isReservedIdentifier(cur))) {
+      if (contains(blockKeywords, cur)) curPunc = "newstatement";
+      return "builtin";
+    }
+    if (contains(atoms, cur)) return "atom";
+    return "variable";
+  }
+
+  function tokenString(quote) {
+    return function(stream, state) {
+      var escaped = false, next, end = false;
+      while ((next = stream.next()) != null) {
+        if (next == quote && !escaped) {end = true; break;}
+        escaped = !escaped && next == "\\";
+      }
+      if (end || !(escaped || multiLineStrings))
+        state.tokenize = null;
+      return "string";
+    };
+  }
+
+  function tokenComment(stream, state) {
+    var maybeEnd = false, ch;
+    while (ch = stream.next()) {
+      if (ch == "/" && maybeEnd) {
+        state.tokenize = null;
+        break;
+      }
+      maybeEnd = (ch == "*");
+    }
+    return "comment";
+  }
+
+  function maybeEOL(stream, state) {
+    if (parserConfig.typeFirstDefinitions && stream.eol() && isTopScope(state.context))
+      state.typeAtEndOfLine = typeBefore(stream, state, stream.pos)
+  }
+
+  // Interface
+
+  return {
+    startState: function(basecolumn) {
+      return {
+        tokenize: null,
+        context: new Context((basecolumn || 0) - indentUnit, 0, "top", null, false),
+        indented: 0,
+        startOfLine: true,
+        prevToken: null
+      };
+    },
+
+    token: function(stream, state) {
+      var ctx = state.context;
+      if (stream.sol()) {
+        if (ctx.align == null) ctx.align = false;
+        state.indented = stream.indentation();
+        state.startOfLine = true;
+      }
+      if (stream.eatSpace()) { maybeEOL(stream, state); return null; }
+      curPunc = isDefKeyword = null;
+      var style = (state.tokenize || tokenBase)(stream, state);
+      if (style == "comment" || style == "meta") return style;
+      if (ctx.align == null) ctx.align = true;
+
+      if (curPunc == ";" || curPunc == ":" || (curPunc == "," && stream.match(/^\s*(?:\/\/.*)?$/, false)))
+        while (state.context.type == "statement") popContext(state);
+      else if (curPunc == "{") pushContext(state, stream.column(), "}");
+      else if (curPunc == "[") pushContext(state, stream.column(), "]");
+      else if (curPunc == "(") pushContext(state, stream.column(), ")");
+      else if (curPunc == "}") {
+        while (ctx.type == "statement") ctx = popContext(state);
+        if (ctx.type == "}") ctx = popContext(state);
+        while (ctx.type == "statement") ctx = popContext(state);
+      }
+      else if (curPunc == ctx.type) popContext(state);
+      else if (indentStatements &&
+               (((ctx.type == "}" || ctx.type == "top") && curPunc != ";") ||
+                (ctx.type == "statement" && curPunc == "newstatement"))) {
+        pushContext(state, stream.column(), "statement", stream.current());
+      }
+
+      if (style == "variable" &&
+          ((state.prevToken == "def" ||
+            (parserConfig.typeFirstDefinitions && typeBefore(stream, state, stream.start) &&
+             isTopScope(state.context) && stream.match(/^\s*\(/, false)))))
+        style = "def";
+
+      if (hooks.token) {
+        var result = hooks.token(stream, state, style);
+        if (result !== undefined) style = result;
+      }
+
+      if (style == "def" && parserConfig.styleDefs === false) style = "variable";
+
+      state.startOfLine = false;
+      state.prevToken = isDefKeyword ? "def" : style || curPunc;
+      maybeEOL(stream, state);
+      return style;
+    },
+
+    indent: function(state, textAfter) {
+      if (state.tokenize != tokenBase && state.tokenize != null || state.typeAtEndOfLine) return CodeMirror.Pass;
+      var ctx = state.context, firstChar = textAfter && textAfter.charAt(0);
+      var closing = firstChar == ctx.type;
+      if (ctx.type == "statement" && firstChar == "}") ctx = ctx.prev;
+      if (parserConfig.dontIndentStatements)
+        while (ctx.type == "statement" && parserConfig.dontIndentStatements.test(ctx.info))
+          ctx = ctx.prev
+      if (hooks.indent) {
+        var hook = hooks.indent(state, ctx, textAfter, indentUnit);
+        if (typeof hook == "number") return hook
+      }
+      var switchBlock = ctx.prev && ctx.prev.info == "switch";
+      if (parserConfig.allmanIndentation && /[{(]/.test(firstChar)) {
+        while (ctx.type != "top" && ctx.type != "}") ctx = ctx.prev
+        return ctx.indented
+      }
+      if (ctx.type == "statement")
+        return ctx.indented + (firstChar == "{" ? 0 : statementIndentUnit);
+      if (ctx.align && (!dontAlignCalls || ctx.type != ")"))
+        return ctx.column + (closing ? 0 : 1);
+      if (ctx.type == ")" && !closing)
+        return ctx.indented + statementIndentUnit;
+
+      return ctx.indented + (closing ? 0 : indentUnit) +
+        (!closing && switchBlock && !/^(?:case|default)\b/.test(textAfter) ? indentUnit : 0);
+    },
+
+    electricInput: indentSwitch ? /^\s*(?:case .*?:|default:|\{\}?|\})$/ : /^\s*[{}]$/,
+    blockCommentStart: "/*",
+    blockCommentEnd: "*/",
+    blockCommentContinue: " * ",
+    lineComment: "//",
+    fold: "brace"
+  };
+});
+
+  function words(str) {
+    var obj = {}, words = str.split(" ");
+    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
+    return obj;
+  }
+  function contains(words, word) {
+    if (typeof words === "function") {
+      return words(word);
+    } else {
+      return words.propertyIsEnumerable(word);
+    }
+  }
+  var cKeywords = "auto if break case register continue return default do sizeof " +
+    "static else struct switch extern typedef union for goto while enum const " +
+    "volatile inline restrict asm fortran";
+
+  // Do not use this. Use the cTypes function below. This is global just to avoid
+  // excessive calls when cTypes is being called multiple times during a parse.
+  var basicCTypes = words("int long char short double float unsigned signed " +
+    "void bool");
+
+  // Do not use this. Use the objCTypes function below. This is global just to avoid
+  // excessive calls when objCTypes is being called multiple times during a parse.
+  var basicObjCTypes = words("SEL instancetype id Class Protocol BOOL");
+
+  // Returns true if identifier is a "C" type.
+  // C type is defined as those that are reserved by the compiler (basicTypes),
+  // and those that end in _t (Reserved by POSIX for types)
+  // http://www.gnu.org/software/libc/manual/html_node/Reserved-Names.html
+  function cTypes(identifier) {
+    return contains(basicCTypes, identifier) || /.+_t/.test(identifier);
+  }
+
+  // Returns true if identifier is a "Objective C" type.
+  function objCTypes(identifier) {
+    return cTypes(identifier) || contains(basicObjCTypes, identifier);
+  }
+
+  var cBlockKeywords = "case do else for if switch while struct enum union";
+  var cDefKeywords = "struct enum union";
+
+  function cppHook(stream, state) {
+    if (!state.startOfLine) return false
+    for (var ch, next = null; ch = stream.peek();) {
+      if (ch == "\\" && stream.match(/^.$/)) {
+        next = cppHook
+        break
+      } else if (ch == "/" && stream.match(/^\/[\/\*]/, false)) {
+        break
+      }
+      stream.next()
+    }
+    state.tokenize = next
+    return "meta"
+  }
+
+  function pointerHook(_stream, state) {
+    if (state.prevToken == "type") return "type";
+    return false;
+  }
+
+  // For C and C++ (and ObjC): identifiers starting with __
+  // or _ followed by a capital letter are reserved for the compiler.
+  function cIsReservedIdentifier(token) {
+    if (!token || token.length < 2) return false;
+    if (token[0] != '_') return false;
+    return (token[1] == '_') || (token[1] !== token[1].toLowerCase());
+  }
+
+  function cpp14Literal(stream) {
+    stream.eatWhile(/[\w\.']/);
+    return "number";
+  }
+
+  function cpp11StringHook(stream, state) {
+    stream.backUp(1);
+    // Raw strings.
+    if (stream.match(/(R|u8R|uR|UR|LR)/)) {
+      var match = stream.match(/"([^\s\\()]{0,16})\(/);
+      if (!match) {
+        return false;
+      }
+      state.cpp11RawStringDelim = match[1];
+      state.tokenize = tokenRawString;
+      return tokenRawString(stream, state);
+    }
+    // Unicode strings/chars.
+    if (stream.match(/(u8|u|U|L)/)) {
+      if (stream.match(/["']/, /* eat */ false)) {
+        return "string";
+      }
+      return false;
+    }
+    // Ignore this hook.
+    stream.next();
+    return false;
+  }
+
+  function cppLooksLikeConstructor(word) {
+    var lastTwo = /(\w+)::~?(\w+)$/.exec(word);
+    return lastTwo && lastTwo[1] == lastTwo[2];
+  }
+
+  // C#-style strings where "" escapes a quote.
+  function tokenAtString(stream, state) {
+    var next;
+    while ((next = stream.next()) != null) {
+      if (next == '"' && !stream.eat('"')) {
+        state.tokenize = null;
+        break;
+      }
+    }
+    return "string";
+  }
+
+  // C++11 raw string literal is <prefix>"<delim>( anything )<delim>", where
+  // <delim> can be a string up to 16 characters long.
+  function tokenRawString(stream, state) {
+    // Escape characters that have special regex meanings.
+    var delim = state.cpp11RawStringDelim.replace(/[^\w\s]/g, '\\$&');
+    var match = stream.match(new RegExp(".*?\\)" + delim + '"'));
+    if (match)
+      state.tokenize = null;
+    else
+      stream.skipToEnd();
+    return "string";
+  }
+
+  function def(mimes, mode) {
+    if (typeof mimes == "string") mimes = [mimes];
+    var words = [];
+    function add(obj) {
+      if (obj) for (var prop in obj) if (obj.hasOwnProperty(prop))
+        words.push(prop);
+    }
+    add(mode.keywords);
+    add(mode.types);
+    add(mode.builtin);
+    add(mode.atoms);
+    if (words.length) {
+      mode.helperType = mimes[0];
+      CodeMirror.registerHelper("hintWords", mimes[0], words);
+    }
+
+    for (var i = 0; i < mimes.length; ++i)
+      CodeMirror.defineMIME(mimes[i], mode);
+  }
+
+  def(["text/x-csrc", "text/x-c", "text/x-chdr"], {
+    name: "clike",
+    keywords: words(cKeywords),
+    types: cTypes,
+    blockKeywords: words(cBlockKeywords),
+    defKeywords: words(cDefKeywords),
+    typeFirstDefinitions: true,
+    atoms: words("NULL true false"),
+    isReservedIdentifier: cIsReservedIdentifier,
+    hooks: {
+      "#": cppHook,
+      "*": pointerHook,
+    },
+    modeProps: {fold: ["brace", "include"]}
+  });
+
+  def(["text/x-c++src", "text/x-c++hdr"], {
+    name: "clike",
+    keywords: words(cKeywords + " dynamic_cast namespace reinterpret_cast try explicit new " +
+                    "static_cast typeid catch operator template typename class friend private " +
+                    "this using const_cast public throw virtual delete mutable protected " +
+                    "alignas alignof constexpr decltype nullptr noexcept thread_local final " +
+                    "static_assert override"),
+    types: cTypes,
+    blockKeywords: words(cBlockKeywords +" class try catch finally"),
+    defKeywords: words(cDefKeywords + " class namespace"),
+    typeFirstDefinitions: true,
+    atoms: words("true false NULL"),
+    dontIndentStatements: /^template$/,
+    isIdentifierChar: /[\w\$_~\xa1-\uffff]/,
+    isReservedIdentifier: cIsReservedIdentifier,
+    hooks: {
+      "#": cppHook,
+      "*": pointerHook,
+      "u": cpp11StringHook,
+      "U": cpp11StringHook,
+      "L": cpp11StringHook,
+      "R": cpp11StringHook,
+      "0": cpp14Literal,
+      "1": cpp14Literal,
+      "2": cpp14Literal,
+      "3": cpp14Literal,
+      "4": cpp14Literal,
+      "5": cpp14Literal,
+      "6": cpp14Literal,
+      "7": cpp14Literal,
+      "8": cpp14Literal,
+      "9": cpp14Literal,
+      token: function(stream, state, style) {
+        if (style == "variable" && stream.peek() == "(" &&
+            (state.prevToken == ";" || state.prevToken == null ||
+             state.prevToken == "}") &&
+            cppLooksLikeConstructor(stream.current()))
+          return "def";
+      }
+    },
+    namespaceSeparator: "::",
+    modeProps: {fold: ["brace", "include"]}
+  });
+
+  def("text/x-java", {
+    name: "clike",
+    keywords: words("abstract assert break case catch class const continue default " +
+                    "do else enum extends final finally float for goto if implements import " +
+                    "instanceof interface native new package private protected public " +
+                    "return static strictfp super switch synchronized this throw throws transient " +
+                    "try volatile while @interface"),
+    types: words("byte short int long float double boolean char void Boolean Byte Character Double Float " +
+                 "Integer Long Number Object Short String StringBuffer StringBuilder Void"),
+    blockKeywords: words("catch class do else finally for if switch try while"),
+    defKeywords: words("class interface enum @interface"),
+    typeFirstDefinitions: true,
+    atoms: words("true false null"),
+    number: /^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,
+    hooks: {
+      "@": function(stream) {
+        // Don't match the @interface keyword.
+        if (stream.match('interface', false)) return false;
+
+        stream.eatWhile(/[\w\$_]/);
+        return "meta";
+      }
+    },
+    modeProps: {fold: ["brace", "import"]}
+  });
+
+  def("text/x-csharp", {
+    name: "clike",
+    keywords: words("abstract as async await base break case catch checked class const continue" +
+                    " default delegate do else enum event explicit extern finally fixed for" +
+                    " foreach goto if implicit in interface internal is lock namespace new" +
+                    " operator out override params private protected public readonly ref return sealed" +
+                    " sizeof stackalloc static struct switch this throw try typeof unchecked" +
+                    " unsafe using virtual void volatile while add alias ascending descending dynamic from get" +
+                    " global group into join let orderby partial remove select set value var yield"),
+    types: words("Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func" +
+                 " Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32" +
+                 " UInt64 bool byte char decimal double short int long object"  +
+                 " sbyte float string ushort uint ulong"),
+    blockKeywords: words("catch class do else finally for foreach if struct switch try while"),
+    defKeywords: words("class interface namespace struct var"),
+    typeFirstDefinitions: true,
+    atoms: words("true false null"),
+    hooks: {
+      "@": function(stream, state) {
+        if (stream.eat('"')) {
+          state.tokenize = tokenAtString;
+          return tokenAtString(stream, state);
+        }
+        stream.eatWhile(/[\w\$_]/);
+        return "meta";
+      }
+    }
+  });
+
+  function tokenTripleString(stream, state) {
+    var escaped = false;
+    while (!stream.eol()) {
+      if (!escaped && stream.match('"""')) {
+        state.tokenize = null;
+        break;
+      }
+      escaped = stream.next() == "\\" && !escaped;
+    }
+    return "string";
+  }
+
+  function tokenNestedComment(depth) {
+    return function (stream, state) {
+      var ch
+      while (ch = stream.next()) {
+        if (ch == "*" && stream.eat("/")) {
+          if (depth == 1) {
+            state.tokenize = null
+            break
+          } else {
+            state.tokenize = tokenNestedComment(depth - 1)
+            return state.tokenize(stream, state)
+          }
+        } else if (ch == "/" && stream.eat("*")) {
+          state.tokenize = tokenNestedComment(depth + 1)
+          return state.tokenize(stream, state)
+        }
+      }
+      return "comment"
+    }
+  }
+
+  def("text/x-scala", {
+    name: "clike",
+    keywords: words(
+      /* scala */
+      "abstract case catch class def do else extends final finally for forSome if " +
+      "implicit import lazy match new null object override package private protected return " +
+      "sealed super this throw trait try type val var while with yield _ " +
+
+      /* package scala */
+      "assert assume require print println printf readLine readBoolean readByte readShort " +
+      "readChar readInt readLong readFloat readDouble"
+    ),
+    types: words(
+      "AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either " +
+      "Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable " +
+      "Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering " +
+      "Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder " +
+      "StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector " +
+
+      /* package java.lang */
+      "Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable " +
+      "Compiler Double Exception Float Integer Long Math Number Object Package Pair Process " +
+      "Runtime Runnable SecurityManager Short StackTraceElement StrictMath String " +
+      "StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"
+    ),
+    multiLineStrings: true,
+    blockKeywords: words("catch class enum do else finally for forSome if match switch try while"),
+    defKeywords: words("class enum def object package trait type val var"),
+    atoms: words("true false null"),
+    indentStatements: false,
+    indentSwitch: false,
+    isOperatorChar: /[+\-*&%=<>!?|\/#:@]/,
+    hooks: {
+      "@": function(stream) {
+        stream.eatWhile(/[\w\$_]/);
+        return "meta";
+      },
+      '"': function(stream, state) {
+        if (!stream.match('""')) return false;
+        state.tokenize = tokenTripleString;
+        return state.tokenize(stream, state);
+      },
+      "'": function(stream) {
+        stream.eatWhile(/[\w\$_\xa1-\uffff]/);
+        return "atom";
+      },
+      "=": function(stream, state) {
+        var cx = state.context
+        if (cx.type == "}" && cx.align && stream.eat(">")) {
+          state.context = new Context(cx.indented, cx.column, cx.type, cx.info, null, cx.prev)
+          return "operator"
+        } else {
+          return false
+        }
+      },
+
+      "/": function(stream, state) {
+        if (!stream.eat("*")) return false
+        state.tokenize = tokenNestedComment(1)
+        return state.tokenize(stream, state)
+      }
+    },
+    modeProps: {closeBrackets: {pairs: '()[]{}""', triples: '"'}}
+  });
+
+  function tokenKotlinString(tripleString){
+    return function (stream, state) {
+      var escaped = false, next, end = false;
+      while (!stream.eol()) {
+        if (!tripleString && !escaped && stream.match('"') ) {end = true; break;}
+        if (tripleString && stream.match('"""')) {end = true; break;}
+        next = stream.next();
+        if(!escaped && next == "$" && stream.match('{'))
+          stream.skipTo("}");
+        escaped = !escaped && next == "\\" && !tripleString;
+      }
+      if (end || !tripleString)
+        state.tokenize = null;
+      return "string";
+    }
+  }
+
+  def("text/x-kotlin", {
+    name: "clike",
+    keywords: words(
+      /*keywords*/
+      "package as typealias class interface this super val operator " +
+      "var fun for is in This throw return annotation " +
+      "break continue object if else while do try when !in !is as? " +
+
+      /*soft keywords*/
+      "file import where by get set abstract enum open inner override private public internal " +
+      "protected catch finally out final vararg reified dynamic companion constructor init " +
+      "sealed field property receiver param sparam lateinit data inline noinline tailrec " +
+      "external annotation crossinline const operator infix suspend actual expect setparam"
+    ),
+    types: words(
+      /* package java.lang */
+      "Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable " +
+      "Compiler Double Exception Float Integer Long Math Number Object Package Pair Process " +
+      "Runtime Runnable SecurityManager Short StackTraceElement StrictMath String " +
+      "StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray " +
+      "ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy " +
+      "LazyThreadSafetyMode LongArray Nothing ShortArray Unit"
+    ),
+    intendSwitch: false,
+    indentStatements: false,
+    multiLineStrings: true,
+    number: /^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,
+    blockKeywords: words("catch class do else finally for if where try while enum"),
+    defKeywords: words("class val var object interface fun"),
+    atoms: words("true false null this"),
+    hooks: {
+      "@": function(stream) {
+        stream.eatWhile(/[\w\$_]/);
+        return "meta";
+      },
+      '"': function(stream, state) {
+        state.tokenize = tokenKotlinString(stream.match('""'));
+        return state.tokenize(stream, state);
+      },
+      indent: function(state, ctx, textAfter, indentUnit) {
+        var firstChar = textAfter && textAfter.charAt(0);
+        if ((state.prevToken == "}" || state.prevToken == ")") && textAfter == "")
+          return state.indented;
+        if (state.prevToken == "operator" && textAfter != "}" ||
+          state.prevToken == "variable" && firstChar == "." ||
+          (state.prevToken == "}" || state.prevToken == ")") && firstChar == ".")
+          return indentUnit * 2 + ctx.indented;
+        if (ctx.align && ctx.type == "}")
+          return ctx.indented + (state.context.type == (textAfter || "").charAt(0) ? 0 : indentUnit);
+      }
+    },
+    modeProps: {closeBrackets: {triples: '"'}}
+  });
+
+  def(["x-shader/x-vertex", "x-shader/x-fragment"], {
+    name: "clike",
+    keywords: words("sampler1D sampler2D sampler3D samplerCube " +
+                    "sampler1DShadow sampler2DShadow " +
+                    "const attribute uniform varying " +
+                    "break continue discard return " +
+                    "for while do if else struct " +
+                    "in out inout"),
+    types: words("float int bool void " +
+                 "vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 " +
+                 "mat2 mat3 mat4"),
+    blockKeywords: words("for while do if else struct"),
+    builtin: words("radians degrees sin cos tan asin acos atan " +
+                    "pow exp log exp2 sqrt inversesqrt " +
+                    "abs sign floor ceil fract mod min max clamp mix step smoothstep " +
+                    "length distance dot cross normalize ftransform faceforward " +
+                    "reflect refract matrixCompMult " +
+                    "lessThan lessThanEqual greaterThan greaterThanEqual " +
+                    "equal notEqual any all not " +
+                    "texture1D texture1DProj texture1DLod texture1DProjLod " +
+                    "texture2D texture2DProj texture2DLod texture2DProjLod " +
+                    "texture3D texture3DProj texture3DLod texture3DProjLod " +
+                    "textureCube textureCubeLod " +
+                    "shadow1D shadow2D shadow1DProj shadow2DProj " +
+                    "shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod " +
+                    "dFdx dFdy fwidth " +
+                    "noise1 noise2 noise3 noise4"),
+    atoms: words("true false " +
+                "gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex " +
+                "gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 " +
+                "gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 " +
+                "gl_FogCoord gl_PointCoord " +
+                "gl_Position gl_PointSize gl_ClipVertex " +
+                "gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor " +
+                "gl_TexCoord gl_FogFragCoord " +
+                "gl_FragCoord gl_FrontFacing " +
+                "gl_FragData gl_FragDepth " +
+                "gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix " +
+                "gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse " +
+                "gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse " +
+                "gl_TexureMatrixTranspose gl_ModelViewMatrixInverseTranspose " +
+                "gl_ProjectionMatrixInverseTranspose " +
+                "gl_ModelViewProjectionMatrixInverseTranspose " +
+                "gl_TextureMatrixInverseTranspose " +
+                "gl_NormalScale gl_DepthRange gl_ClipPlane " +
+                "gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel " +
+                "gl_FrontLightModelProduct gl_BackLightModelProduct " +
+                "gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ " +
+                "gl_FogParameters " +
+                "gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords " +
+                "gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats " +
+                "gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits " +
+                "gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits " +
+                "gl_MaxDrawBuffers"),
+    indentSwitch: false,
+    hooks: {"#": cppHook},
+    modeProps: {fold: ["brace", "include"]}
+  });
+
+  def("text/x-nesc", {
+    name: "clike",
+    keywords: words(cKeywords + " as atomic async call command component components configuration event generic " +
+                    "implementation includes interface module new norace nx_struct nx_union post provides " +
+                    "signal task uses abstract extends"),
+    types: cTypes,
+    blockKeywords: words(cBlockKeywords),
+    atoms: words("null true false"),
+    hooks: {"#": cppHook},
+    modeProps: {fold: ["brace", "include"]}
+  });
+
+  def("text/x-objectivec", {
+    name: "clike",
+    keywords: words(cKeywords + " bycopy byref in inout oneway out self super atomic nonatomic retain copy " +
+                    "readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd " +
+                    "@interface @implementation @end @protocol @encode @property @synthesize @dynamic @class " +
+                    "@public @package @private @protected @required @optional @try @catch @finally @import " +
+                    "@selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available"),
+    types: objCTypes,
+    builtin: words("FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION NS_RETURNS_RETAINED " +
+                   "NS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER NS_DESIGNATED_INITIALIZER " +
+                   "NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION NS_ASSUME_NONNULL_BEGIN " +
+                   "NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT"),
+    blockKeywords: words(cBlockKeywords + " @synthesize @try @catch @finally @autoreleasepool @synchronized"),
+    defKeywords: words(cDefKeywords + " @interface @implementation @protocol @class"),
+    dontIndentStatements: /^@.*$/,
+    typeFirstDefinitions: true,
+    atoms: words("YES NO NULL Nil nil true false nullptr"),
+    isReservedIdentifier: cIsReservedIdentifier,
+    hooks: {
+      "#": cppHook,
+      "*": pointerHook,
+    },
+    modeProps: {fold: ["brace", "include"]}
+  });
+
+  def("text/x-squirrel", {
+    name: "clike",
+    keywords: words("base break clone continue const default delete enum extends function in class" +
+                    " foreach local resume return this throw typeof yield constructor instanceof static"),
+    types: cTypes,
+    blockKeywords: words("case catch class else for foreach if switch try while"),
+    defKeywords: words("function local class"),
+    typeFirstDefinitions: true,
+    atoms: words("true false null"),
+    hooks: {"#": cppHook},
+    modeProps: {fold: ["brace", "include"]}
+  });
+
+  // Ceylon Strings need to deal with interpolation
+  var stringTokenizer = null;
+  function tokenCeylonString(type) {
+    return function(stream, state) {
+      var escaped = false, next, end = false;
+      while (!stream.eol()) {
+        if (!escaped && stream.match('"') &&
+              (type == "single" || stream.match('""'))) {
+          end = true;
+          break;
+        }
+        if (!escaped && stream.match('``')) {
+          stringTokenizer = tokenCeylonString(type);
+          end = true;
+          break;
+        }
+        next = stream.next();
+        escaped = type == "single" && !escaped && next == "\\";
+      }
+      if (end)
+          state.tokenize = null;
+      return "string";
+    }
+  }
+
+  def("text/x-ceylon", {
+    name: "clike",
+    keywords: words("abstracts alias assembly assert assign break case catch class continue dynamic else" +
+                    " exists extends finally for function given if import in interface is let module new" +
+                    " nonempty object of out outer package return satisfies super switch then this throw" +
+                    " try value void while"),
+    types: function(word) {
+        // In Ceylon all identifiers that start with an uppercase are types
+        var first = word.charAt(0);
+        return (first === first.toUpperCase() && first !== first.toLowerCase());
+    },
+    blockKeywords: words("case catch class dynamic else finally for function if interface module new object switch try while"),
+    defKeywords: words("class dynamic function interface module object package value"),
+    builtin: words("abstract actual aliased annotation by default deprecated doc final formal late license" +
+                   " native optional sealed see serializable shared suppressWarnings tagged throws variable"),
+    isPunctuationChar: /[\[\]{}\(\),;\:\.`]/,
+    isOperatorChar: /[+\-*&%=<>!?|^~:\/]/,
+    numberStart: /[\d#$]/,
+    number: /^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,
+    multiLineStrings: true,
+    typeFirstDefinitions: true,
+    atoms: words("true false null larger smaller equal empty finished"),
+    indentSwitch: false,
+    styleDefs: false,
+    hooks: {
+      "@": function(stream) {
+        stream.eatWhile(/[\w\$_]/);
+        return "meta";
+      },
+      '"': function(stream, state) {
+          state.tokenize = tokenCeylonString(stream.match('""') ? "triple" : "single");
+          return state.tokenize(stream, state);
+        },
+      '`': function(stream, state) {
+          if (!stringTokenizer || !stream.match('`')) return false;
+          state.tokenize = stringTokenizer;
+          stringTokenizer = null;
+          return state.tokenize(stream, state);
+        },
+      "'": function(stream) {
+        stream.eatWhile(/[\w\$_\xa1-\uffff]/);
+        return "atom";
+      },
+      token: function(_stream, state, style) {
+          if ((style == "variable" || style == "type") &&
+              state.prevToken == ".") {
+            return "variable-2";
+          }
+        }
+    },
+    modeProps: {
+        fold: ["brace", "import"],
+        closeBrackets: {triples: '"'}
+    }
+  });
+
+});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/javascript/javascript.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/javascript/javascript.js
new file mode 100644
index 0000000..b0a27ce
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/javascript/javascript.js
@@ -0,0 +1,899 @@
+// CodeMirror, copyright (c) by Marijn Haverbeke and others
+// Distributed under an MIT license: https://codemirror.net/LICENSE
+
+(function(mod) {
+  if (typeof exports == "object" && typeof module == "object") // CommonJS
+    mod(require("../../lib/codemirror"));
+  else if (typeof define == "function" && define.amd) // AMD
+    define(["../../lib/codemirror"], mod);
+  else // Plain browser env
+    mod(CodeMirror);
+})(function(CodeMirror) {
+"use strict";
+
+CodeMirror.defineMode("javascript", function(config, parserConfig) {
+  var indentUnit = config.indentUnit;
+  var statementIndent = parserConfig.statementIndent;
+  var jsonldMode = parserConfig.jsonld;
+  var jsonMode = parserConfig.json || jsonldMode;
+  var isTS = parserConfig.typescript;
+  var wordRE = parserConfig.wordCharacters || /[\w$\xa1-\uffff]/;
+
+  // Tokenizer
+
+  var keywords = function(){
+    function kw(type) {return {type: type, style: "keyword"};}
+    var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c"), D = kw("keyword d");
+    var operator = kw("operator"), atom = {type: "atom", style: "atom"};
+
+    return {
+      "if": kw("if"), "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B,
+      "return": D, "break": D, "continue": D, "new": kw("new"), "delete": C, "void": C, "throw": C,
+      "debugger": kw("debugger"), "var": kw("var"), "const": kw("var"), "let": kw("var"),
+      "function": kw("function"), "catch": kw("catch"),
+      "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"),
+      "in": operator, "typeof": operator, "instanceof": operator,
+      "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom,
+      "this": kw("this"), "class": kw("class"), "super": kw("atom"),
+      "yield": C, "export": kw("export"), "import": kw("import"), "extends": C,
+      "await": C
+    };
+  }();
+
+  var isOperatorChar = /[+\-*&%=<>!?|~^@]/;
+  var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;
+
+  function readRegexp(stream) {
+    var escaped = false, next, inSet = false;
+    while ((next = stream.next()) != null) {
+      if (!escaped) {
+        if (next == "/" && !inSet) return;
+        if (next == "[") inSet = true;
+        else if (inSet && next == "]") inSet = false;
+      }
+      escaped = !escaped && next == "\\";
+    }
+  }
+
+  // Used as scratch variables to communicate multiple values without
+  // consing up tons of objects.
+  var type, content;
+  function ret(tp, style, cont) {
+    type = tp; content = cont;
+    return style;
+  }
+  function tokenBase(stream, state) {
+    var ch = stream.next();
+    if (ch == '"' || ch == "'") {
+      state.tokenize = tokenString(ch);
+      return state.tokenize(stream, state);
+    } else if (ch == "." && stream.match(/^\d+(?:[eE][+\-]?\d+)?/)) {
+      return ret("number", "number");
+    } else if (ch == "." && stream.match("..")) {
+      return ret("spread", "meta");
+    } else if (/[\[\]{}\(\),;\:\.]/.test(ch)) {
+      return ret(ch);
+    } else if (ch == "=" && stream.eat(">")) {
+      return ret("=>", "operator");
+    } else if (ch == "0" && stream.match(/^(?:x[\da-f]+|o[0-7]+|b[01]+)n?/i)) {
+      return ret("number", "number");
+    } else if (/\d/.test(ch)) {
+      stream.match(/^\d*(?:n|(?:\.\d*)?(?:[eE][+\-]?\d+)?)?/);
+      return ret("number", "number");
+    } else if (ch == "/") {
+      if (stream.eat("*")) {
+        state.tokenize = tokenComment;
+        return tokenComment(stream, state);
+      } else if (stream.eat("/")) {
+        stream.skipToEnd();
+        return ret("comment", "comment");
+      } else if (expressionAllowed(stream, state, 1)) {
+        readRegexp(stream);
+        stream.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/);
+        return ret("regexp", "string-2");
+      } else {
+        stream.eat("=");
+        return ret("operator", "operator", stream.current());
+      }
+    } else if (ch == "`") {
+      state.tokenize = tokenQuasi;
+      return tokenQuasi(stream, state);
+    } else if (ch == "#") {
+      stream.skipToEnd();
+      return ret("error", "error");
+    } else if (isOperatorChar.test(ch)) {
+      if (ch != ">" || !state.lexical || state.lexical.type != ">") {
+        if (stream.eat("=")) {
+          if (ch == "!" || ch == "=") stream.eat("=")
+        } else if (/[<>*+\-]/.test(ch)) {
+          stream.eat(ch)
+          if (ch == ">") stream.eat(ch)
+        }
+      }
+      return ret("operator", "operator", stream.current());
+    } else if (wordRE.test(ch)) {
+      stream.eatWhile(wordRE);
+      var word = stream.current()
+      if (state.lastType != ".") {
+        if (keywords.propertyIsEnumerable(word)) {
+          var kw = keywords[word]
+          return ret(kw.type, kw.style, word)
+        }
+        if (word == "async" && stream.match(/^(\s|\/\*.*?\*\/)*[\[\(\w]/, false))
+          return ret("async", "keyword", word)
+      }
+      return ret("variable", "variable", word)
+    }
+  }
+
+  function tokenString(quote) {
+    return function(stream, state) {
+      var escaped = false, next;
+      if (jsonldMode && stream.peek() == "@" && stream.match(isJsonldKeyword)){
+        state.tokenize = tokenBase;
+        return ret("jsonld-keyword", "meta");
+      }
+      while ((next = stream.next()) != null) {
+        if (next == quote && !escaped) break;
+        escaped = !escaped && next == "\\";
+      }
+      if (!escaped) state.tokenize = tokenBase;
+      return ret("string", "string");
+    };
+  }
+
+  function tokenComment(stream, state) {
+    var maybeEnd = false, ch;
+    while (ch = stream.next()) {
+      if (ch == "/" && maybeEnd) {
+        state.tokenize = tokenBase;
+        break;
+      }
+      maybeEnd = (ch == "*");
+    }
+    return ret("comment", "comment");
+  }
+
+  function tokenQuasi(stream, state) {
+    var escaped = false, next;
+    while ((next = stream.next()) != null) {
+      if (!escaped && (next == "`" || next == "$" && stream.eat("{"))) {
+        state.tokenize = tokenBase;
+        break;
+      }
+      escaped = !escaped && next == "\\";
+    }
+    return ret("quasi", "string-2", stream.current());
+  }
+
+  var brackets = "([{}])";
+  // This is a crude lookahead trick to try and notice that we're
+  // parsing the argument patterns for a fat-arrow function before we
+  // actually hit the arrow token. It only works if the arrow is on
+  // the same line as the arguments and there's no strange noise
+  // (comments) in between. Fallback is to only notice when we hit the
+  // arrow, and not declare the arguments as locals for the arrow
+  // body.
+  function findFatArrow(stream, state) {
+    if (state.fatArrowAt) state.fatArrowAt = null;
+    var arrow = stream.string.indexOf("=>", stream.start);
+    if (arrow < 0) return;
+
+    if (isTS) { // Try to skip TypeScript return type declarations after the arguments
+      var m = /:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(stream.string.slice(stream.start, arrow))
+      if (m) arrow = m.index
+    }
+
+    var depth = 0, sawSomething = false;
+    for (var pos = arrow - 1; pos >= 0; --pos) {
+      var ch = stream.string.charAt(pos);
+      var bracket = brackets.indexOf(ch);
+      if (bracket >= 0 && bracket < 3) {
+        if (!depth) { ++pos; break; }
+        if (--depth == 0) { if (ch == "(") sawSomething = true; break; }
+      } else if (bracket >= 3 && bracket < 6) {
+        ++depth;
+      } else if (wordRE.test(ch)) {
+        sawSomething = true;
+      } else if (/["'\/]/.test(ch)) {
+        return;
+      } else if (sawSomething && !depth) {
+        ++pos;
+        break;
+      }
+    }
+    if (sawSomething && !depth) state.fatArrowAt = pos;
+  }
+
+  // Parser
+
+  var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true, "this": true, "jsonld-keyword": true};
+
+  function JSLexical(indented, column, type, align, prev, info) {
+    this.indented = indented;
+    this.column = column;
+    this.type = type;
+    this.prev = prev;
+    this.info = info;
+    if (align != null) this.align = align;
+  }
+
+  function inScope(state, varname) {
+    for (var v = state.localVars; v; v = v.next)
+      if (v.name == varname) return true;
+    for (var cx = state.context; cx; cx = cx.prev) {
+      for (var v = cx.vars; v; v = v.next)
+        if (v.name == varname) return true;
+    }
+  }
+
+  function parseJS(state, style, type, content, stream) {
+    var cc = state.cc;
+    // Communicate our context to the combinators.
+    // (Less wasteful than consing up a hundred closures on every call.)
+    cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style;
+
+    if (!state.lexical.hasOwnProperty("align"))
+      state.lexical.align = true;
+
+    while(true) {
+      var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement;
+      if (combinator(type, content)) {
+        while(cc.length && cc[cc.length - 1].lex)
+          cc.pop()();
+        if (cx.marked) return cx.marked;
+        if (type == "variable" && inScope(state, content)) return "variable-2";
+        return style;
+      }
+    }
+  }
+
+  // Combinator utils
+
+  var cx = {state: null, column: null, marked: null, cc: null};
+  function pass() {
+    for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]);
+  }
+  function cont() {
+    pass.apply(null, arguments);
+    return true;
+  }
+  function inList(name, list) {
+    for (var v = list; v; v = v.next) if (v.name == name) return true
+    return false;
+  }
+  function register(varname) {
+    var state = cx.state;
+    cx.marked = "def";
+    if (state.context) {
+      if (state.lexical.info == "var" && state.context && state.context.block) {
+        // FIXME function decls are also not block scoped
+        var newContext = registerVarScoped(varname, state.context)
+        if (newContext != null) {
+          state.context = newContext
+          return
+        }
+      } else if (!inList(varname, state.localVars)) {
+        state.localVars = new Var(varname, state.localVars)
+        return
+      }
+    }
+    // Fall through means this is global
+    if (parserConfig.globalVars && !inList(varname, state.globalVars))
+      state.globalVars = new Var(varname, state.globalVars)
+  }
+  function registerVarScoped(varname, context) {
+    if (!context) {
+      return null
+    } else if (context.block) {
+      var inner = registerVarScoped(varname, context.prev)
+      if (!inner) return null
+      if (inner == context.prev) return context
+      return new Context(inner, context.vars, true)
+    } else if (inList(varname, context.vars)) {
+      return context
+    } else {
+      return new Context(context.prev, new Var(varname, context.vars), false)
+    }
+  }
+
+  function isModifier(name) {
+    return name == "public" || name == "private" || name == "protected" || name == "abstract" || name == "readonly"
+  }
+
+  // Combinators
+
+  function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block }
+  function Var(name, next) { this.name = name; this.next = next }
+
+  var defaultVars = new Var("this", new Var("arguments", null))
+  function pushcontext() {
+    cx.state.context = new Context(cx.state.context, cx.state.localVars, false)
+    cx.state.localVars = defaultVars
+  }
+  function pushblockcontext() {
+    cx.state.context = new Context(cx.state.context, cx.state.localVars, true)
+    cx.state.localVars = null
+  }
+  function popcontext() {
+    cx.state.localVars = cx.state.context.vars
+    cx.state.context = cx.state.context.prev
+  }
+  popcontext.lex = true
+  function pushlex(type, info) {
+    var result = function() {
+      var state = cx.state, indent = state.indented;
+      if (state.lexical.type == "stat") indent = state.lexical.indented;
+      else for (var outer = state.lexical; outer && outer.type == ")" && outer.align; outer = outer.prev)
+        indent = outer.indented;
+      state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info);
+    };
+    result.lex = true;
+    return result;
+  }
+  function poplex() {
+    var state = cx.state;
+    if (state.lexical.prev) {
+      if (state.lexical.type == ")")
+        state.indented = state.lexical.indented;
+      state.lexical = state.lexical.prev;
+    }
+  }
+  poplex.lex = true;
+
+  function expect(wanted) {
+    function exp(type) {
+      if (type == wanted) return cont();
+      else if (wanted == ";" || type == "}" || type == ")" || type == "]") return pass();
+      else return cont(exp);
+    };
+    return exp;
+  }
+
+  function statement(type, value) {
+    if (type == "var") return cont(pushlex("vardef", value), vardef, expect(";"), poplex);
+    if (type == "keyword a") return cont(pushlex("form"), parenExpr, statement, poplex);
+    if (type == "keyword b") return cont(pushlex("form"), statement, poplex);
+    if (type == "keyword d") return cx.stream.match(/^\s*$/, false) ? cont() : cont(pushlex("stat"), maybeexpression, expect(";"), poplex);
+    if (type == "debugger") return cont(expect(";"));
+    if (type == "{") return cont(pushlex("}"), pushblockcontext, block, poplex, popcontext);
+    if (type == ";") return cont();
+    if (type == "if") {
+      if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex)
+        cx.state.cc.pop()();
+      return cont(pushlex("form"), parenExpr, statement, poplex, maybeelse);
+    }
+    if (type == "function") return cont(functiondef);
+    if (type == "for") return cont(pushlex("form"), forspec, statement, poplex);
+    if (type == "class" || (isTS && value == "interface")) { cx.marked = "keyword"; return cont(pushlex("form"), className, poplex); }
+    if (type == "variable") {
+      if (isTS && value == "declare") {
+        cx.marked = "keyword"
+        return cont(statement)
+      } else if (isTS && (value == "module" || value == "enum" || value == "type") && cx.stream.match(/^\s*\w/, false)) {
+        cx.marked = "keyword"
+        if (value == "enum") return cont(enumdef);
+        else if (value == "type") return cont(typeexpr, expect("operator"), typeexpr, expect(";"));
+        else return cont(pushlex("form"), pattern, expect("{"), pushlex("}"), block, poplex, poplex)
+      } else if (isTS && value == "namespace") {
+        cx.marked = "keyword"
+        return cont(pushlex("form"), expression, block, poplex)
+      } else if (isTS && value == "abstract") {
+        cx.marked = "keyword"
+        return cont(statement)
+      } else {
+        return cont(pushlex("stat"), maybelabel);
+      }
+    }
+    if (type == "switch") return cont(pushlex("form"), parenExpr, expect("{"), pushlex("}", "switch"), pushblockcontext,
+                                      block, poplex, poplex, popcontext);
+    if (type == "case") return cont(expression, expect(":"));
+    if (type == "default") return cont(expect(":"));
+    if (type == "catch") return cont(pushlex("form"), pushcontext, maybeCatchBinding, statement, poplex, popcontext);
+    if (type == "export") return cont(pushlex("stat"), afterExport, poplex);
+    if (type == "import") return cont(pushlex("stat"), afterImport, poplex);
+    if (type == "async") return cont(statement)
+    if (value == "@") return cont(expression, statement)
+    return pass(pushlex("stat"), expression, expect(";"), poplex);
+  }
+  function maybeCatchBinding(type) {
+    if (type == "(") return cont(funarg, expect(")"))
+  }
+  function expression(type, value) {
+    return expressionInner(type, value, false);
+  }
+  function expressionNoComma(type, value) {
+    return expressionInner(type, value, true);
+  }
+  function parenExpr(type) {
+    if (type != "(") return pass()
+    return cont(pushlex(")"), expression, expect(")"), poplex)
+  }
+  function expressionInner(type, value, noComma) {
+    if (cx.state.fatArrowAt == cx.stream.start) {
+      var body = noComma ? arrowBodyNoComma : arrowBody;
+      if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, expect("=>"), body, popcontext);
+      else if (type == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext);
+    }
+
+    var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma;
+    if (atomicTypes.hasOwnProperty(type)) return cont(maybeop);
+    if (type == "function") return cont(functiondef, maybeop);
+    if (type == "class" || (isTS && value == "interface")) { cx.marked = "keyword"; return cont(pushlex("form"), classExpression, poplex); }
+    if (type == "keyword c" || type == "async") return cont(noComma ? expressionNoComma : expression);
+    if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeop);
+    if (type == "operator" || type == "spread") return cont(noComma ? expressionNoComma : expression);
+    if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop);
+    if (type == "{") return contCommasep(objprop, "}", null, maybeop);
+    if (type == "quasi") return pass(quasi, maybeop);
+    if (type == "new") return cont(maybeTarget(noComma));
+    if (type == "import") return cont(expression);
+    return cont();
+  }
+  function maybeexpression(type) {
+    if (type.match(/[;\}\)\],]/)) return pass();
+    return pass(expression);
+  }
+
+  function maybeoperatorComma(type, value) {
+    if (type == ",") return cont(expression);
+    return maybeoperatorNoComma(type, value, false);
+  }
+  function maybeoperatorNoComma(type, value, noComma) {
+    var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma;
+    var expr = noComma == false ? expression : expressionNoComma;
+    if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext);
+    if (type == "operator") {
+      if (/\+\+|--/.test(value) || isTS && value == "!") return cont(me);
+      if (isTS && value == "<" && cx.stream.match(/^([^>]|<.*?>)*>\s*\(/, false))
+        return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, me);
+      if (value == "?") return cont(expression, expect(":"), expr);
+      return cont(expr);
+    }
+    if (type == "quasi") { return pass(quasi, me); }
+    if (type == ";") return;
+    if (type == "(") return contCommasep(expressionNoComma, ")", "call", me);
+    if (type == ".") return cont(property, me);
+    if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me);
+    if (isTS && value == "as") { cx.marked = "keyword"; return cont(typeexpr, me) }
+    if (type == "regexp") {
+      cx.state.lastType = cx.marked = "operator"
+      cx.stream.backUp(cx.stream.pos - cx.stream.start - 1)
+      return cont(expr)
+    }
+  }
+  function quasi(type, value) {
+    if (type != "quasi") return pass();
+    if (value.slice(value.length - 2) != "${") return cont(quasi);
+    return cont(expression, continueQuasi);
+  }
+  function continueQuasi(type) {
+    if (type == "}") {
+      cx.marked = "string-2";
+      cx.state.tokenize = tokenQuasi;
+      return cont(quasi);
+    }
+  }
+  function arrowBody(type) {
+    findFatArrow(cx.stream, cx.state);
+    return pass(type == "{" ? statement : expression);
+  }
+  function arrowBodyNoComma(type) {
+    findFatArrow(cx.stream, cx.state);
+    return pass(type == "{" ? statement : expressionNoComma);
+  }
+  function maybeTarget(noComma) {
+    return function(type) {
+      if (type == ".") return cont(noComma ? targetNoComma : target);
+      else if (type == "variable" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma)
+      else return pass(noComma ? expressionNoComma : expression);
+    };
+  }
+  function target(_, value) {
+    if (value == "target") { cx.marked = "keyword"; return cont(maybeoperatorComma); }
+  }
+  function targetNoComma(_, value) {
+    if (value == "target") { cx.marked = "keyword"; return cont(maybeoperatorNoComma); }
+  }
+  function maybelabel(type) {
+    if (type == ":") return cont(poplex, statement);
+    return pass(maybeoperatorComma, expect(";"), poplex);
+  }
+  function property(type) {
+    if (type == "variable") {cx.marked = "property"; return cont();}
+  }
+  function objprop(type, value) {
+    if (type == "async") {
+      cx.marked = "property";
+      return cont(objprop);
+    } else if (type == "variable" || cx.style == "keyword") {
+      cx.marked = "property";
+      if (value == "get" || value == "set") return cont(getterSetter);
+      var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params
+      if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\s*:\s*/, false)))
+        cx.state.fatArrowAt = cx.stream.pos + m[0].length
+      return cont(afterprop);
+    } else if (type == "number" || type == "string") {
+      cx.marked = jsonldMode ? "property" : (cx.style + " property");
+      return cont(afterprop);
+    } else if (type == "jsonld-keyword") {
+      return cont(afterprop);
+    } else if (isTS && isModifier(value)) {
+      cx.marked = "keyword"
+      return cont(objprop)
+    } else if (type == "[") {
+      return cont(expression, maybetype, expect("]"), afterprop);
+    } else if (type == "spread") {
+      return cont(expressionNoComma, afterprop);
+    } else if (value == "*") {
+      cx.marked = "keyword";
+      return cont(objprop);
+    } else if (type == ":") {
+      return pass(afterprop)
+    }
+  }
+  function getterSetter(type) {
+    if (type != "variable") return pass(afterprop);
+    cx.marked = "property";
+    return cont(functiondef);
+  }
+  function afterprop(type) {
+    if (type == ":") return cont(expressionNoComma);
+    if (type == "(") return pass(functiondef);
+  }
+  function commasep(what, end, sep) {
+    function proceed(type, value) {
+      if (sep ? sep.indexOf(type) > -1 : type == ",") {
+        var lex = cx.state.lexical;
+        if (lex.info == "call") lex.pos = (lex.pos || 0) + 1;
+        return cont(function(type, value) {
+          if (type == end || value == end) return pass()
+          return pass(what)
+        }, proceed);
+      }
+      if (type == end || value == end) return cont();
+      return cont(expect(end));
+    }
+    return function(type, value) {
+      if (type == end || value == end) return cont();
+      return pass(what, proceed);
+    };
+  }
+  function contCommasep(what, end, info) {
+    for (var i = 3; i < arguments.length; i++)
+      cx.cc.push(arguments[i]);
+    return cont(pushlex(end, info), commasep(what, end), poplex);
+  }
+  function block(type) {
+    if (type == "}") return cont();
+    return pass(statement, block);
+  }
+  function maybetype(type, value) {
+    if (isTS) {
+      if (type == ":") return cont(typeexpr);
+      if (value == "?") return cont(maybetype);
+    }
+  }
+  function mayberettype(type) {
+    if (isTS && type == ":") {
+      if (cx.stream.match(/^\s*\w+\s+is\b/, false)) return cont(expression, isKW, typeexpr)
+      else return cont(typeexpr)
+    }
+  }
+  function isKW(_, value) {
+    if (value == "is") {
+      cx.marked = "keyword"
+      return cont()
+    }
+  }
+  function typeexpr(type, value) {
+    if (value == "keyof" || value == "typeof") {
+      cx.marked = "keyword"
+      return cont(value == "keyof" ? typeexpr : expressionNoComma)
+    }
+    if (type == "variable" || value == "void") {
+      cx.marked = "type"
+      return cont(afterType)
+    }
+    if (type == "string" || type == "number" || type == "atom") return cont(afterType);
+    if (type == "[") return cont(pushlex("]"), commasep(typeexpr, "]", ","), poplex, afterType)
+    if (type == "{") return cont(pushlex("}"), commasep(typeprop, "}", ",;"), poplex, afterType)
+    if (type == "(") return cont(commasep(typearg, ")"), maybeReturnType)
+    if (type == "<") return cont(commasep(typeexpr, ">"), typeexpr)
+  }
+  function maybeReturnType(type) {
+    if (type == "=>") return cont(typeexpr)
+  }
+  function typeprop(type, value) {
+    if (type == "variable" || cx.style == "keyword") {
+      cx.marked = "property"
+      return cont(typeprop)
+    } else if (value == "?") {
+      return cont(typeprop)
+    } else if (type == ":") {
+      return cont(typeexpr)
+    } else if (type == "[") {
+      return cont(expression, maybetype, expect("]"), typeprop)
+    }
+  }
+  function typearg(type, value) {
+    if (type == "variable" && cx.stream.match(/^\s*[?:]/, false) || value == "?") return cont(typearg)
+    if (type == ":") return cont(typeexpr)
+    return pass(typeexpr)
+  }
+  function afterType(type, value) {
+    if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
+    if (value == "|" || type == "." || value == "&") return cont(typeexpr)
+    if (type == "[") return cont(expect("]"), afterType)
+    if (value == "extends" || value == "implements") { cx.marked = "keyword"; return cont(typeexpr) }
+  }
+  function maybeTypeArgs(_, value) {
+    if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType)
+  }
+  function typeparam() {
+    return pass(typeexpr, maybeTypeDefault)
+  }
+  function maybeTypeDefault(_, value) {
+    if (value == "=") return cont(typeexpr)
+  }
+  function vardef(_, value) {
+    if (value == "enum") {cx.marked = "keyword"; return cont(enumdef)}
+    return pass(pattern, maybetype, maybeAssign, vardefCont);
+  }
+  function pattern(type, value) {
+    if (isTS && isModifier(value)) { cx.marked = "keyword"; return cont(pattern) }
+    if (type == "variable") { register(value); return cont(); }
+    if (type == "spread") return cont(pattern);
+    if (type == "[") return contCommasep(eltpattern, "]");
+    if (type == "{") return contCommasep(proppattern, "}");
+  }
+  function proppattern(type, value) {
+    if (type == "variable" && !cx.stream.match(/^\s*:/, false)) {
+      register(value);
+      return cont(maybeAssign);
+    }
+    if (type == "variable") cx.marked = "property";
+    if (type == "spread") return cont(pattern);
+    if (type == "}") return pass();
+    return cont(expect(":"), pattern, maybeAssign);
+  }
+  function eltpattern() {
+    return pass(pattern, maybeAssign)
+  }
+  function maybeAssign(_type, value) {
+    if (value == "=") return cont(expressionNoComma);
+  }
+  function vardefCont(type) {
+    if (type == ",") return cont(vardef);
+  }
+  function maybeelse(type, value) {
+    if (type == "keyword b" && value == "else") return cont(pushlex("form", "else"), statement, poplex);
+  }
+  function forspec(type, value) {
+    if (value == "await") return cont(forspec);
+    if (type == "(") return cont(pushlex(")"), forspec1, expect(")"), poplex);
+  }
+  function forspec1(type) {
+    if (type == "var") return cont(vardef, expect(";"), forspec2);
+    if (type == ";") return cont(forspec2);
+    if (type == "variable") return cont(formaybeinof);
+    return pass(expression, expect(";"), forspec2);
+  }
+  function formaybeinof(_type, value) {
+    if (value == "in" || value == "of") { cx.marked = "keyword"; return cont(expression); }
+    return cont(maybeoperatorComma, forspec2);
+  }
+  function forspec2(type, value) {
+    if (type == ";") return cont(forspec3);
+    if (value == "in" || value == "of") { cx.marked = "keyword"; return cont(expression); }
+    return pass(expression, expect(";"), forspec3);
+  }
+  function forspec3(type) {
+    if (type != ")") cont(expression);
+  }
+  function functiondef(type, value) {
+    if (value == "*") {cx.marked = "keyword"; return cont(functiondef);}
+    if (type == "variable") {register(value); return cont(functiondef);}
+    if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, mayberettype, statement, popcontext);
+    if (isTS && value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, functiondef)
+  }
+  function funarg(type, value) {
+    if (value == "@") cont(expression, funarg)
+    if (type == "spread") return cont(funarg);
+    if (isTS && isModifier(value)) { cx.marked = "keyword"; return cont(funarg); }
+    return pass(pattern, maybetype, maybeAssign);
+  }
+  function classExpression(type, value) {
+    // Class expressions may have an optional name.
+    if (type == "variable") return className(type, value);
+    return classNameAfter(type, value);
+  }
+  function className(type, value) {
+    if (type == "variable") {register(value); return cont(classNameAfter);}
+  }
+  function classNameAfter(type, value) {
+    if (value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, classNameAfter)
+    if (value == "extends" || value == "implements" || (isTS && type == ",")) {
+      if (value == "implements") cx.marked = "keyword";
+      return cont(isTS ? typeexpr : expression, classNameAfter);
+    }
+    if (type == "{") return cont(pushlex("}"), classBody, poplex);
+  }
+  function classBody(type, value) {
+    if (type == "async" ||
+        (type == "variable" &&
+         (value == "static" || value == "get" || value == "set" || (isTS && isModifier(value))) &&
+         cx.stream.match(/^\s+[\w$\xa1-\uffff]/, false))) {
+      cx.marked = "keyword";
+      return cont(classBody);
+    }
+    if (type == "variable" || cx.style == "keyword") {
+      cx.marked = "property";
+      return cont(isTS ? classfield : functiondef, classBody);
+    }
+    if (type == "[")
+      return cont(expression, maybetype, expect("]"), isTS ? classfield : functiondef, classBody)
+    if (value == "*") {
+      cx.marked = "keyword";
+      return cont(classBody);
+    }
+    if (type == ";") return cont(classBody);
+    if (type == "}") return cont();
+    if (value == "@") return cont(expression, classBody)
+  }
+  function classfield(type, value) {
+    if (value == "?") return cont(classfield)
+    if (type == ":") return cont(typeexpr, maybeAssign)
+    if (value == "=") return cont(expressionNoComma)
+    return pass(functiondef)
+  }
+  function afterExport(type, value) {
+    if (value == "*") { cx.marked = "keyword"; return cont(maybeFrom, expect(";")); }
+    if (value == "default") { cx.marked = "keyword"; return cont(expression, expect(";")); }
+    if (type == "{") return cont(commasep(exportField, "}"), maybeFrom, expect(";"));
+    return pass(statement);
+  }
+  function exportField(type, value) {
+    if (value == "as") { cx.marked = "keyword"; return cont(expect("variable")); }
+    if (type == "variable") return pass(expressionNoComma, exportField);
+  }
+  function afterImport(type) {
+    if (type == "string") return cont();
+    if (type == "(") return pass(expression);
+    return pass(importSpec, maybeMoreImports, maybeFrom);
+  }
+  function importSpec(type, value) {
+    if (type == "{") return contCommasep(importSpec, "}");
+    if (type == "variable") register(value);
+    if (value == "*") cx.marked = "keyword";
+    return cont(maybeAs);
+  }
+  function maybeMoreImports(type) {
+    if (type == ",") return cont(importSpec, maybeMoreImports)
+  }
+  function maybeAs(_type, value) {
+    if (value == "as") { cx.marked = "keyword"; return cont(importSpec); }
+  }
+  function maybeFrom(_type, value) {
+    if (value == "from") { cx.marked = "keyword"; return cont(expression); }
+  }
+  function arrayLiteral(type) {
+    if (type == "]") return cont();
+    return pass(commasep(expressionNoComma, "]"));
+  }
+  function enumdef() {
+    return pass(pushlex("form"), pattern, expect("{"), pushlex("}"), commasep(enummember, "}"), poplex, poplex)
+  }
+  function enummember() {
+    return pass(pattern, maybeAssign);
+  }
+
+  function isContinuedStatement(state, textAfter) {
+    return state.lastType == "operator" || state.lastType == "," ||
+      isOperatorChar.test(textAfter.charAt(0)) ||
+      /[,.]/.test(textAfter.charAt(0));
+  }
+
+  function expressionAllowed(stream, state, backUp) {
+    return state.tokenize == tokenBase &&
+      /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(state.lastType) ||
+      (state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0))))
+  }
+
+  // Interface
+
+  return {
+    startState: function(basecolumn) {
+      var state = {
+        tokenize: tokenBase,
+        lastType: "sof",
+        cc: [],
+        lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false),
+        localVars: parserConfig.localVars,
+        context: parserConfig.localVars && new Context(null, null, false),
+        indented: basecolumn || 0
+      };
+      if (parserConfig.globalVars && typeof parserConfig.globalVars == "object")
+        state.globalVars = parserConfig.globalVars;
+      return state;
+    },
+
+    token: function(stream, state) {
+      if (stream.sol()) {
+        if (!state.lexical.hasOwnProperty("align"))
+          state.lexical.align = false;
+        state.indented = stream.indentation();
+        findFatArrow(stream, state);
+      }
+      if (state.tokenize != tokenComment && stream.eatSpace()) return null;
+      var style = state.tokenize(stream, state);
+      if (type == "comment") return style;
+      state.lastType = type == "operator" && (content == "++" || content == "--") ? "incdec" : type;
+      return parseJS(state, style, type, content, stream);
+    },
+
+    indent: function(state, textAfter) {
+      if (state.tokenize == tokenComment) return CodeMirror.Pass;
+      if (state.tokenize != tokenBase) return 0;
+      var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, top
+      // Kludge to prevent 'maybelse' from blocking lexical scope pops
+      if (!/^\s*else\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) {
+        var c = state.cc[i];
+        if (c == poplex) lexical = lexical.prev;
+        else if (c != maybeelse) break;
+      }
+      while ((lexical.type == "stat" || lexical.type == "form") &&
+             (firstChar == "}" || ((top = state.cc[state.cc.length - 1]) &&
+                                   (top == maybeoperatorComma || top == maybeoperatorNoComma) &&
+                                   !/^[,\.=+\-*:?[\(]/.test(textAfter))))
+        lexical = lexical.prev;
+      if (statementIndent && lexical.type == ")" && lexical.prev.type == "stat")
+        lexical = lexical.prev;
+      var type = lexical.type, closing = firstChar == type;
+
+      if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info.length + 1 : 0);
+      else if (type == "form" && firstChar == "{") return lexical.indented;
+      else if (type == "form") return lexical.indented + indentUnit;
+      else if (type == "stat")
+        return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0);
+      else if (lexical.info == "switch" && !closing && parserConfig.doubleIndentSwitch != false)
+        return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit);
+      else if (lexical.align) return lexical.column + (closing ? 0 : 1);
+      else return lexical.indented + (closing ? 0 : indentUnit);
+    },
+
+    electricInput: /^\s*(?:case .*?:|default:|\{|\})$/,
+    blockCommentStart: jsonMode ? null : "/*",
+    blockCommentEnd: jsonMode ? null : "*/",
+    blockCommentContinue: jsonMode ? null : " * ",
+    lineComment: jsonMode ? null : "//",
+    fold: "brace",
+    closeBrackets: "()[]{}''\"\"``",
+
+    helperType: jsonMode ? "json" : "javascript",
+    jsonldMode: jsonldMode,
+    jsonMode: jsonMode,
+
+    expressionAllowed: expressionAllowed,
+
+    skipExpression: function(state) {
+      var top = state.cc[state.cc.length - 1]
+      if (top == expression || top == expressionNoComma) state.cc.pop()
+    }
+  };
+});
+
+CodeMirror.registerHelper("wordChars", "javascript", /[\w$]/);
+
+CodeMirror.defineMIME("text/javascript", "javascript");
+CodeMirror.defineMIME("text/ecmascript", "javascript");
+CodeMirror.defineMIME("application/javascript", "javascript");
+CodeMirror.defineMIME("application/x-javascript", "javascript");
+CodeMirror.defineMIME("application/ecmascript", "javascript");
+CodeMirror.defineMIME("application/json", {name: "javascript", json: true});
+CodeMirror.defineMIME("application/x-json", {name: "javascript", json: true});
+CodeMirror.defineMIME("application/ld+json", {name: "javascript", jsonld: true});
+CodeMirror.defineMIME("text/typescript", { name: "javascript", typescript: true });
+CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript: true });
+
+});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/php/php.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/php/php.js
new file mode 100644
index 0000000..80e2f20
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/php/php.js
@@ -0,0 +1,234 @@
+// CodeMirror, copyright (c) by Marijn Haverbeke and others
+// Distributed under an MIT license: https://codemirror.net/LICENSE
+
+(function(mod) {
+  if (typeof exports == "object" && typeof module == "object") // CommonJS
+    mod(require("../../lib/codemirror"), require("../htmlmixed/htmlmixed"), require("../clike/clike"));
+  else if (typeof define == "function" && define.amd) // AMD
+    define(["../../lib/codemirror", "../htmlmixed/htmlmixed", "../clike/clike"], mod);
+  else // Plain browser env
+    mod(CodeMirror);
+})(function(CodeMirror) {
+  "use strict";
+
+  function keywords(str) {
+    var obj = {}, words = str.split(" ");
+    for (var i = 0; i < words.length; ++i) obj[words[i]] = true;
+    return obj;
+  }
+
+  // Helper for phpString
+  function matchSequence(list, end, escapes) {
+    if (list.length == 0) return phpString(end);
+    return function (stream, state) {
+      var patterns = list[0];
+      for (var i = 0; i < patterns.length; i++) if (stream.match(patterns[i][0])) {
+        state.tokenize = matchSequence(list.slice(1), end);
+        return patterns[i][1];
+      }
+      state.tokenize = phpString(end, escapes);
+      return "string";
+    };
+  }
+  function phpString(closing, escapes) {
+    return function(stream, state) { return phpString_(stream, state, closing, escapes); };
+  }
+  function phpString_(stream, state, closing, escapes) {
+    // "Complex" syntax
+    if (escapes !== false && stream.match("${", false) || stream.match("{$", false)) {
+      state.tokenize = null;
+      return "string";
+    }
+
+    // Simple syntax
+    if (escapes !== false && stream.match(/^\$[a-zA-Z_][a-zA-Z0-9_]*/)) {
+      // After the variable name there may appear array or object operator.
+      if (stream.match("[", false)) {
+        // Match array operator
+        state.tokenize = matchSequence([
+          [["[", null]],
+          [[/\d[\w\.]*/, "number"],
+           [/\$[a-zA-Z_][a-zA-Z0-9_]*/, "variable-2"],
+           [/[\w\$]+/, "variable"]],
+          [["]", null]]
+        ], closing, escapes);
+      }
+      if (stream.match(/\-\>\w/, false)) {
+        // Match object operator
+        state.tokenize = matchSequence([
+          [["->", null]],
+          [[/[\w]+/, "variable"]]
+        ], closing, escapes);
+      }
+      return "variable-2";
+    }
+
+    var escaped = false;
+    // Normal string
+    while (!stream.eol() &&
+           (escaped || escapes === false ||
+            (!stream.match("{$", false) &&
+             !stream.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*|\$\{)/, false)))) {
+      if (!escaped && stream.match(closing)) {
+        state.tokenize = null;
+        state.tokStack.pop(); state.tokStack.pop();
+        break;
+      }
+      escaped = stream.next() == "\\" && !escaped;
+    }
+    return "string";
+  }
+
+  var phpKeywords = "abstract and array as break case catch class clone const continue declare default " +
+    "do else elseif enddeclare endfor endforeach endif endswitch endwhile extends final " +
+    "for foreach function global goto if implements interface instanceof namespace " +
+    "new or private protected public static switch throw trait try use var while xor " +
+    "die echo empty exit eval include include_once isset list require require_once return " +
+    "print unset __halt_compiler self static parent yield insteadof finally";
+  var phpAtoms = "true false null TRUE FALSE NULL __CLASS__ __DIR__ __FILE__ __LINE__ __METHOD__ __FUNCTION__ __NAMESPACE__ __TRAIT__";
+  var phpBuiltin = "func_num_args func_get_arg func_get_args strlen strcmp strncmp strcasecmp strncasecmp each error_reporting define defined trigger_error user_error set_error_handler restore_error_handler get_declared_classes get_loaded_extensions extension_loaded get_extension_funcs debug_backtrace constant bin2hex hex2bin sleep usleep time mktime gmmktime strftime gmstrftime strtotime date gmdate getdate localtime checkdate flush wordwrap htmlspecialchars htmlentities html_entity_decode md5 md5_file crc32 getimagesize image_type_to_mime_type phpinfo phpversion phpcredits strnatcmp strnatcasecmp substr_count strspn strcspn strtok strtoupper strtolower strpos strrpos strrev hebrev hebrevc nl2br basename dirname pathinfo stripslashes stripcslashes strstr stristr strrchr str_shuffle str_word_count strcoll substr substr_replace quotemeta ucfirst ucwords strtr addslashes addcslashes rtrim str_replace str_repeat count_chars chunk_split trim ltrim strip_tags similar_text explode implode setlocale localeconv parse_str str_pad chop strchr sprintf printf vprintf vsprintf sscanf fscanf parse_url urlencode urldecode rawurlencode rawurldecode readlink linkinfo link unlink exec system escapeshellcmd escapeshellarg passthru shell_exec proc_open proc_close rand srand getrandmax mt_rand mt_srand mt_getrandmax base64_decode base64_encode abs ceil floor round is_finite is_nan is_infinite bindec hexdec octdec decbin decoct dechex base_convert number_format fmod ip2long long2ip getenv putenv getopt microtime gettimeofday getrusage uniqid quoted_printable_decode set_time_limit get_cfg_var magic_quotes_runtime set_magic_quotes_runtime get_magic_quotes_gpc get_magic_quotes_runtime import_request_variables error_log serialize unserialize memory_get_usage var_dump var_export debug_zval_dump print_r highlight_file show_source highlight_string ini_get ini_get_all ini_set ini_alter ini_restore get_include_path set_include_path restore_include_path setcookie header headers_sent connection_aborted connection_status ignore_user_abort parse_ini_file is_uploaded_file move_uploaded_file intval floatval doubleval strval gettype settype is_null is_resource is_bool is_long is_float is_int is_integer is_double is_real is_numeric is_string is_array is_object is_scalar ereg ereg_replace eregi eregi_replace split spliti join sql_regcase dl pclose popen readfile rewind rmdir umask fclose feof fgetc fgets fgetss fread fopen fpassthru ftruncate fstat fseek ftell fflush fwrite fputs mkdir rename copy tempnam tmpfile file file_get_contents file_put_contents stream_select stream_context_create stream_context_set_params stream_context_set_option stream_context_get_options stream_filter_prepend stream_filter_append fgetcsv flock get_meta_tags stream_set_write_buffer set_file_buffer set_socket_blocking stream_set_blocking socket_set_blocking stream_get_meta_data stream_register_wrapper stream_wrapper_register stream_set_timeout socket_set_timeout socket_get_status realpath fnmatch fsockopen pfsockopen pack unpack get_browser crypt opendir closedir chdir getcwd rewinddir readdir dir glob fileatime filectime filegroup fileinode filemtime fileowner fileperms filesize filetype file_exists is_writable is_writeable is_readable is_executable is_file is_dir is_link stat lstat chown touch clearstatcache mail ob_start ob_flush ob_clean ob_end_flush ob_end_clean ob_get_flush ob_get_clean ob_get_length ob_get_level ob_get_status ob_get_contents ob_implicit_flush ob_list_handlers ksort krsort natsort natcasesort asort arsort sort rsort usort uasort uksort shuffle array_walk count end prev next reset current key min max in_array array_search extract compact array_fill range array_multisort array_push array_pop array_shift array_unshift array_splice array_slice array_merge array_merge_recursive array_keys array_values array_count_values array_reverse array_reduce array_pad array_flip array_change_key_case array_rand array_unique array_intersect array_intersect_assoc array_diff array_diff_assoc array_sum array_filter array_map array_chunk array_key_exists array_intersect_key array_combine array_column pos sizeof key_exists assert assert_options version_compare ftok str_rot13 aggregate session_name session_module_name session_save_path session_id session_regenerate_id session_decode session_register session_unregister session_is_registered session_encode session_start session_destroy session_unset session_set_save_handler session_cache_limiter session_cache_expire session_set_cookie_params session_get_cookie_params session_write_close preg_match preg_match_all preg_replace preg_replace_callback preg_split preg_quote preg_grep overload ctype_alnum ctype_alpha ctype_cntrl ctype_digit ctype_lower ctype_graph ctype_print ctype_punct ctype_space ctype_upper ctype_xdigit virtual apache_request_headers apache_note apache_lookup_uri apache_child_terminate apache_setenv apache_response_headers apache_get_version getallheaders mysql_connect mysql_pconnect mysql_close mysql_select_db mysql_create_db mysql_drop_db mysql_query mysql_unbuffered_query mysql_db_query mysql_list_dbs mysql_list_tables mysql_list_fields mysql_list_processes mysql_error mysql_errno mysql_affected_rows mysql_insert_id mysql_result mysql_num_rows mysql_num_fields mysql_fetch_row mysql_fetch_array mysql_fetch_assoc mysql_fetch_object mysql_data_seek mysql_fetch_lengths mysql_fetch_field mysql_field_seek mysql_free_result mysql_field_name mysql_field_table mysql_field_len mysql_field_type mysql_field_flags mysql_escape_string mysql_real_escape_string mysql_stat mysql_thread_id mysql_client_encoding mysql_get_client_info mysql_get_host_info mysql_get_proto_info mysql_get_server_info mysql_info mysql mysql_fieldname mysql_fieldtable mysql_fieldlen mysql_fieldtype mysql_fieldflags mysql_selectdb mysql_createdb mysql_dropdb mysql_freeresult mysql_numfields mysql_numrows mysql_listdbs mysql_listtables mysql_listfields mysql_db_name mysql_dbname mysql_tablename mysql_table_name pg_connect pg_pconnect pg_close pg_connection_status pg_connection_busy pg_connection_reset pg_host pg_dbname pg_port pg_tty pg_options pg_ping pg_query pg_send_query pg_cancel_query pg_fetch_result pg_fetch_row pg_fetch_assoc pg_fetch_array pg_fetch_object pg_fetch_all pg_affected_rows pg_get_result pg_result_seek pg_result_status pg_free_result pg_last_oid pg_num_rows pg_num_fields pg_field_name pg_field_num pg_field_size pg_field_type pg_field_prtlen pg_field_is_null pg_get_notify pg_get_pid pg_result_error pg_last_error pg_last_notice pg_put_line pg_end_copy pg_copy_to pg_copy_from pg_trace pg_untrace pg_lo_create pg_lo_unlink pg_lo_open pg_lo_close pg_lo_read pg_lo_write pg_lo_read_all pg_lo_import pg_lo_export pg_lo_seek pg_lo_tell pg_escape_string pg_escape_bytea pg_unescape_bytea pg_client_encoding pg_set_client_encoding pg_meta_data pg_convert pg_insert pg_update pg_delete pg_select pg_exec pg_getlastoid pg_cmdtuples pg_errormessage pg_numrows pg_numfields pg_fieldname pg_fieldsize pg_fieldtype pg_fieldnum pg_fieldprtlen pg_fieldisnull pg_freeresult pg_result pg_loreadall pg_locreate pg_lounlink pg_loopen pg_loclose pg_loread pg_lowrite pg_loimport pg_loexport http_response_code get_declared_traits getimagesizefromstring socket_import_stream stream_set_chunk_size trait_exists header_register_callback class_uses session_status session_register_shutdown echo print global static exit array empty eval isset unset die include require include_once require_once json_decode json_encode json_last_error json_last_error_msg curl_close curl_copy_handle curl_errno curl_error curl_escape curl_exec curl_file_create curl_getinfo curl_init curl_multi_add_handle curl_multi_close curl_multi_exec curl_multi_getcontent curl_multi_info_read curl_multi_init curl_multi_remove_handle curl_multi_select curl_multi_setopt curl_multi_strerror curl_pause curl_reset curl_setopt_array curl_setopt curl_share_close curl_share_init curl_share_setopt curl_strerror curl_unescape curl_version mysqli_affected_rows mysqli_autocommit mysqli_change_user mysqli_character_set_name mysqli_close mysqli_commit mysqli_connect_errno mysqli_connect_error mysqli_connect mysqli_data_seek mysqli_debug mysqli_dump_debug_info mysqli_errno mysqli_error_list mysqli_error mysqli_fetch_all mysqli_fetch_array mysqli_fetch_assoc mysqli_fetch_field_direct mysqli_fetch_field mysqli_fetch_fields mysqli_fetch_lengths mysqli_fetch_object mysqli_fetch_row mysqli_field_count mysqli_field_seek mysqli_field_tell mysqli_free_result mysqli_get_charset mysqli_get_client_info mysqli_get_client_stats mysqli_get_client_version mysqli_get_connection_stats mysqli_get_host_info mysqli_get_proto_info mysqli_get_server_info mysqli_get_server_version mysqli_info mysqli_init mysqli_insert_id mysqli_kill mysqli_more_results mysqli_multi_query mysqli_next_result mysqli_num_fields mysqli_num_rows mysqli_options mysqli_ping mysqli_prepare mysqli_query mysqli_real_connect mysqli_real_escape_string mysqli_real_query mysqli_reap_async_query mysqli_refresh mysqli_rollback mysqli_select_db mysqli_set_charset mysqli_set_local_infile_default mysqli_set_local_infile_handler mysqli_sqlstate mysqli_ssl_set mysqli_stat mysqli_stmt_init mysqli_store_result mysqli_thread_id mysqli_thread_safe mysqli_use_result mysqli_warning_count";
+  CodeMirror.registerHelper("hintWords", "php", [phpKeywords, phpAtoms, phpBuiltin].join(" ").split(" "));
+  CodeMirror.registerHelper("wordChars", "php", /[\w$]/);
+
+  var phpConfig = {
+    name: "clike",
+    helperType: "php",
+    keywords: keywords(phpKeywords),
+    blockKeywords: keywords("catch do else elseif for foreach if switch try while finally"),
+    defKeywords: keywords("class function interface namespace trait"),
+    atoms: keywords(phpAtoms),
+    builtin: keywords(phpBuiltin),
+    multiLineStrings: true,
+    hooks: {
+      "$": function(stream) {
+        stream.eatWhile(/[\w\$_]/);
+        return "variable-2";
+      },
+      "<": function(stream, state) {
+        var before;
+        if (before = stream.match(/<<\s*/)) {
+          var quoted = stream.eat(/['"]/);
+          stream.eatWhile(/[\w\.]/);
+          var delim = stream.current().slice(before[0].length + (quoted ? 2 : 1));
+          if (quoted) stream.eat(quoted);
+          if (delim) {
+            (state.tokStack || (state.tokStack = [])).push(delim, 0);
+            state.tokenize = phpString(delim, quoted != "'");
+            return "string";
+          }
+        }
+        return false;
+      },
+      "#": function(stream) {
+        while (!stream.eol() && !stream.match("?>", false)) stream.next();
+        return "comment";
+      },
+      "/": function(stream) {
+        if (stream.eat("/")) {
+          while (!stream.eol() && !stream.match("?>", false)) stream.next();
+          return "comment";
+        }
+        return false;
+      },
+      '"': function(_stream, state) {
+        (state.tokStack || (state.tokStack = [])).push('"', 0);
+        state.tokenize = phpString('"');
+        return "string";
+      },
+      "{": function(_stream, state) {
+        if (state.tokStack && state.tokStack.length)
+          state.tokStack[state.tokStack.length - 1]++;
+        return false;
+      },
+      "}": function(_stream, state) {
+        if (state.tokStack && state.tokStack.length > 0 &&
+            !--state.tokStack[state.tokStack.length - 1]) {
+          state.tokenize = phpString(state.tokStack[state.tokStack.length - 2]);
+        }
+        return false;
+      }
+    }
+  };
+
+  CodeMirror.defineMode("php", function(config, parserConfig) {
+    var htmlMode = CodeMirror.getMode(config, (parserConfig && parserConfig.htmlMode) || "text/html");
+    var phpMode = CodeMirror.getMode(config, phpConfig);
+
+    function dispatch(stream, state) {
+      var isPHP = state.curMode == phpMode;
+      if (stream.sol() && state.pending && state.pending != '"' && state.pending != "'") state.pending = null;
+      if (!isPHP) {
+        if (stream.match(/^<\?\w*/)) {
+          state.curMode = phpMode;
+          if (!state.php) state.php = CodeMirror.startState(phpMode, htmlMode.indent(state.html, ""))
+          state.curState = state.php;
+          return "meta";
+        }
+        if (state.pending == '"' || state.pending == "'") {
+          while (!stream.eol() && stream.next() != state.pending) {}
+          var style = "string";
+        } else if (state.pending && stream.pos < state.pending.end) {
+          stream.pos = state.pending.end;
+          var style = state.pending.style;
+        } else {
+          var style = htmlMode.token(stream, state.curState);
+        }
+        if (state.pending) state.pending = null;
+        var cur = stream.current(), openPHP = cur.search(/<\?/), m;
+        if (openPHP != -1) {
+          if (style == "string" && (m = cur.match(/[\'\"]$/)) && !/\?>/.test(cur)) state.pending = m[0];
+          else state.pending = {end: stream.pos, style: style};
+          stream.backUp(cur.length - openPHP);
+        }
+        return style;
+      } else if (isPHP && state.php.tokenize == null && stream.match("?>")) {
+        state.curMode = htmlMode;
+        state.curState = state.html;
+        if (!state.php.context.prev) state.php = null;
+        return "meta";
+      } else {
+        return phpMode.token(stream, state.curState);
+      }
+    }
+
+    return {
+      startState: function() {
+        var html = CodeMirror.startState(htmlMode)
+        var php = parserConfig.startOpen ? CodeMirror.startState(phpMode) : null
+        return {html: html,
+                php: php,
+                curMode: parserConfig.startOpen ? phpMode : htmlMode,
+                curState: parserConfig.startOpen ? php : html,
+                pending: null};
+      },
+
+      copyState: function(state) {
+        var html = state.html, htmlNew = CodeMirror.copyState(htmlMode, html),
+            php = state.php, phpNew = php && CodeMirror.copyState(phpMode, php), cur;
+        if (state.curMode == htmlMode) cur = htmlNew;
+        else cur = phpNew;
+        return {html: htmlNew, php: phpNew, curMode: state.curMode, curState: cur,
+                pending: state.pending};
+      },
+
+      token: dispatch,
+
+      indent: function(state, textAfter) {
+        if ((state.curMode != phpMode && /^\s*<\//.test(textAfter)) ||
+            (state.curMode == phpMode && /^\?>/.test(textAfter)))
+          return htmlMode.indent(state.html, textAfter);
+        return state.curMode.indent(state.curState, textAfter);
+      },
+
+      blockCommentStart: "/*",
+      blockCommentEnd: "*/",
+      lineComment: "//",
+
+      innerMode: function(state) { return {state: state.curState, mode: state.curMode}; }
+    };
+  }, "htmlmixed", "clike");
+
+  CodeMirror.defineMIME("application/x-httpd-php", "php");
+  CodeMirror.defineMIME("application/x-httpd-php-open", {name: "php", startOpen: true});
+  CodeMirror.defineMIME("text/x-php", phpConfig);
+});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/powershell/powershell.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/powershell/powershell.js
new file mode 100644
index 0000000..85f89b9
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/powershell/powershell.js
@@ -0,0 +1,398 @@
+// CodeMirror, copyright (c) by Marijn Haverbeke and others
+// Distributed under an MIT license: https://codemirror.net/LICENSE
+
+(function(mod) {
+  'use strict';
+  if (typeof exports == 'object' && typeof module == 'object') // CommonJS
+    mod(require('../../lib/codemirror'));
+  else if (typeof define == 'function' && define.amd) // AMD
+    define(['../../lib/codemirror'], mod);
+  else // Plain browser env
+    mod(window.CodeMirror);
+})(function(CodeMirror) {
+'use strict';
+
+CodeMirror.defineMode('powershell', function() {
+  function buildRegexp(patterns, options) {
+    options = options || {};
+    var prefix = options.prefix !== undefined ? options.prefix : '^';
+    var suffix = options.suffix !== undefined ? options.suffix : '\\b';
+
+    for (var i = 0; i < patterns.length; i++) {
+      if (patterns[i] instanceof RegExp) {
+        patterns[i] = patterns[i].source;
+      }
+      else {
+        patterns[i] = patterns[i].replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
+      }
+    }
+
+    return new RegExp(prefix + '(' + patterns.join('|') + ')' + suffix, 'i');
+  }
+
+  var notCharacterOrDash = '(?=[^A-Za-z\\d\\-_]|$)';
+  var varNames = /[\w\-:]/
+  var keywords = buildRegexp([
+    /begin|break|catch|continue|data|default|do|dynamicparam/,
+    /else|elseif|end|exit|filter|finally|for|foreach|from|function|if|in/,
+    /param|process|return|switch|throw|trap|try|until|where|while/
+  ], { suffix: notCharacterOrDash });
+
+  var punctuation = /[\[\]{},;`\.]|@[({]/;
+  var wordOperators = buildRegexp([
+    'f',
+    /b?not/,
+    /[ic]?split/, 'join',
+    /is(not)?/, 'as',
+    /[ic]?(eq|ne|[gl][te])/,
+    /[ic]?(not)?(like|match|contains)/,
+    /[ic]?replace/,
+    /b?(and|or|xor)/
+  ], { prefix: '-' });
+  var symbolOperators = /[+\-*\/%]=|\+\+|--|\.\.|[+\-*&^%:=!|\/]|<(?!#)|(?!#)>/;
+  var operators = buildRegexp([wordOperators, symbolOperators], { suffix: '' });
+
+  var numbers = /^((0x[\da-f]+)|((\d+\.\d+|\d\.|\.\d+|\d+)(e[\+\-]?\d+)?))[ld]?([kmgtp]b)?/i;
+
+  var identifiers = /^[A-Za-z\_][A-Za-z\-\_\d]*\b/;
+
+  var symbolBuiltins = /[A-Z]:|%|\?/i;
+  var namedBuiltins = buildRegexp([
+    /Add-(Computer|Content|History|Member|PSSnapin|Type)/,
+    /Checkpoint-Computer/,
+    /Clear-(Content|EventLog|History|Host|Item(Property)?|Variable)/,
+    /Compare-Object/,
+    /Complete-Transaction/,
+    /Connect-PSSession/,
+    /ConvertFrom-(Csv|Json|SecureString|StringData)/,
+    /Convert-Path/,
+    /ConvertTo-(Csv|Html|Json|SecureString|Xml)/,
+    /Copy-Item(Property)?/,
+    /Debug-Process/,
+    /Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,
+    /Disconnect-PSSession/,
+    /Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,
+    /(Enter|Exit)-PSSession/,
+    /Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)/,
+    /ForEach-Object/,
+    /Format-(Custom|List|Table|Wide)/,
+    new RegExp('Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Counter|Credential'
+      + '|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job'
+      + '|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration'
+      + '|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|Verb|WinEvent|WmiObject)'),
+    /Group-Object/,
+    /Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)/,
+    /ImportSystemModules/,
+    /Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)/,
+    /Join-Path/,
+    /Limit-EventLog/,
+    /Measure-(Command|Object)/,
+    /Move-Item(Property)?/,
+    new RegExp('New-(Alias|Event|EventLog|Item(Property)?|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile'
+      + '|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy|WinEvent)'),
+    /Out-(Default|File|GridView|Host|Null|Printer|String)/,
+    /Pause/,
+    /(Pop|Push)-Location/,
+    /Read-Host/,
+    /Receive-(Job|PSSession)/,
+    /Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)/,
+    /Remove-(Computer|Event|EventLog|Item(Property)?|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)/,
+    /Rename-(Computer|Item(Property)?)/,
+    /Reset-ComputerMachinePassword/,
+    /Resolve-Path/,
+    /Restart-(Computer|Service)/,
+    /Restore-Computer/,
+    /Resume-(Job|Service)/,
+    /Save-Help/,
+    /Select-(Object|String|Xml)/,
+    /Send-MailMessage/,
+    new RegExp('Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item(Property)?|Location|PSBreakpoint|PSDebug' +
+               '|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)'),
+    /Show-(Command|ControlPanelItem|EventLog)/,
+    /Sort-Object/,
+    /Split-Path/,
+    /Start-(Job|Process|Service|Sleep|Transaction|Transcript)/,
+    /Stop-(Computer|Job|Process|Service|Transcript)/,
+    /Suspend-(Job|Service)/,
+    /TabExpansion2/,
+    /Tee-Object/,
+    /Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)/,
+    /Trace-Command/,
+    /Unblock-File/,
+    /Undo-Transaction/,
+    /Unregister-(Event|PSSessionConfiguration)/,
+    /Update-(FormatData|Help|List|TypeData)/,
+    /Use-Transaction/,
+    /Wait-(Event|Job|Process)/,
+    /Where-Object/,
+    /Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)/,
+    /cd|help|mkdir|more|oss|prompt/,
+    /ac|asnp|cat|cd|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|dnsn|ebp/,
+    /echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps/,
+    /group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md/,
+    /measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri/,
+    /rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls/,
+    /sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|where|wjb|write/
+  ], { prefix: '', suffix: '' });
+  var variableBuiltins = buildRegexp([
+    /[$?^_]|Args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext/,
+    /FormatEnumerationLimit|Home|Host|Input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount/,
+    /MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|OutputEncoding|Pid|Profile|ProgressPreference/,
+    /PSBoundParameters|PSCommandPath|PSCulture|PSDefaultParameterValues|PSEmailServer|PSHome|PSScriptRoot|PSSessionApplicationName/,
+    /PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|Pwd|ShellId|StackTrace|VerbosePreference/,
+    /WarningPreference|WhatIfPreference/,
+
+    /Event|EventArgs|EventSubscriber|Sender/,
+    /Matches|Ofs|ForEach|LastExitCode|PSCmdlet|PSItem|PSSenderInfo|This/,
+    /true|false|null/
+  ], { prefix: '\\$', suffix: '' });
+
+  var builtins = buildRegexp([symbolBuiltins, namedBuiltins, variableBuiltins], { suffix: notCharacterOrDash });
+
+  var grammar = {
+    keyword: keywords,
+    number: numbers,
+    operator: operators,
+    builtin: builtins,
+    punctuation: punctuation,
+    identifier: identifiers
+  };
+
+  // tokenizers
+  function tokenBase(stream, state) {
+    // Handle Comments
+    //var ch = stream.peek();
+
+    var parent = state.returnStack[state.returnStack.length - 1];
+    if (parent && parent.shouldReturnFrom(state)) {
+      state.tokenize = parent.tokenize;
+      state.returnStack.pop();
+      return state.tokenize(stream, state);
+    }
+
+    if (stream.eatSpace()) {
+      return null;
+    }
+
+    if (stream.eat('(')) {
+      state.bracketNesting += 1;
+      return 'punctuation';
+    }
+
+    if (stream.eat(')')) {
+      state.bracketNesting -= 1;
+      return 'punctuation';
+    }
+
+    for (var key in grammar) {
+      if (stream.match(grammar[key])) {
+        return key;
+      }
+    }
+
+    var ch = stream.next();
+
+    // single-quote string
+    if (ch === "'") {
+      return tokenSingleQuoteString(stream, state);
+    }
+
+    if (ch === '$') {
+      return tokenVariable(stream, state);
+    }
+
+    // double-quote string
+    if (ch === '"') {
+      return tokenDoubleQuoteString(stream, state);
+    }
+
+    if (ch === '<' && stream.eat('#')) {
+      state.tokenize = tokenComment;
+      return tokenComment(stream, state);
+    }
+
+    if (ch === '#') {
+      stream.skipToEnd();
+      return 'comment';
+    }
+
+    if (ch === '@') {
+      var quoteMatch = stream.eat(/["']/);
+      if (quoteMatch && stream.eol()) {
+        state.tokenize = tokenMultiString;
+        state.startQuote = quoteMatch[0];
+        return tokenMultiString(stream, state);
+      } else if (stream.eol()) {
+        return 'error';
+      } else if (stream.peek().match(/[({]/)) {
+        return 'punctuation';
+      } else if (stream.peek().match(varNames)) {
+        // splatted variable
+        return tokenVariable(stream, state);
+      }
+    }
+    return 'error';
+  }
+
+  function tokenSingleQuoteString(stream, state) {
+    var ch;
+    while ((ch = stream.peek()) != null) {
+      stream.next();
+
+      if (ch === "'" && !stream.eat("'")) {
+        state.tokenize = tokenBase;
+        return 'string';
+      }
+    }
+
+    return 'error';
+  }
+
+  function tokenDoubleQuoteString(stream, state) {
+    var ch;
+    while ((ch = stream.peek()) != null) {
+      if (ch === '$') {
+        state.tokenize = tokenStringInterpolation;
+        return 'string';
+      }
+
+      stream.next();
+      if (ch === '`') {
+        stream.next();
+        continue;
+      }
+
+      if (ch === '"' && !stream.eat('"')) {
+        state.tokenize = tokenBase;
+        return 'string';
+      }
+    }
+
+    return 'error';
+  }
+
+  function tokenStringInterpolation(stream, state) {
+    return tokenInterpolation(stream, state, tokenDoubleQuoteString);
+  }
+
+  function tokenMultiStringReturn(stream, state) {
+    state.tokenize = tokenMultiString;
+    state.startQuote = '"'
+    return tokenMultiString(stream, state);
+  }
+
+  function tokenHereStringInterpolation(stream, state) {
+    return tokenInterpolation(stream, state, tokenMultiStringReturn);
+  }
+
+  function tokenInterpolation(stream, state, parentTokenize) {
+    if (stream.match('$(')) {
+      var savedBracketNesting = state.bracketNesting;
+      state.returnStack.push({
+        /*jshint loopfunc:true */
+        shouldReturnFrom: function(state) {
+          return state.bracketNesting === savedBracketNesting;
+        },
+        tokenize: parentTokenize
+      });
+      state.tokenize = tokenBase;
+      state.bracketNesting += 1;
+      return 'punctuation';
+    } else {
+      stream.next();
+      state.returnStack.push({
+        shouldReturnFrom: function() { return true; },
+        tokenize: parentTokenize
+      });
+      state.tokenize = tokenVariable;
+      return state.tokenize(stream, state);
+    }
+  }
+
+  function tokenComment(stream, state) {
+    var maybeEnd = false, ch;
+    while ((ch = stream.next()) != null) {
+      if (maybeEnd && ch == '>') {
+          state.tokenize = tokenBase;
+          break;
+      }
+      maybeEnd = (ch === '#');
+    }
+    return 'comment';
+  }
+
+  function tokenVariable(stream, state) {
+    var ch = stream.peek();
+    if (stream.eat('{')) {
+      state.tokenize = tokenVariableWithBraces;
+      return tokenVariableWithBraces(stream, state);
+    } else if (ch != undefined && ch.match(varNames)) {
+      stream.eatWhile(varNames);
+      state.tokenize = tokenBase;
+      return 'variable-2';
+    } else {
+      state.tokenize = tokenBase;
+      return 'error';
+    }
+  }
+
+  function tokenVariableWithBraces(stream, state) {
+    var ch;
+    while ((ch = stream.next()) != null) {
+      if (ch === '}') {
+        state.tokenize = tokenBase;
+        break;
+      }
+    }
+    return 'variable-2';
+  }
+
+  function tokenMultiString(stream, state) {
+    var quote = state.startQuote;
+    if (stream.sol() && stream.match(new RegExp(quote + '@'))) {
+      state.tokenize = tokenBase;
+    }
+    else if (quote === '"') {
+      while (!stream.eol()) {
+        var ch = stream.peek();
+        if (ch === '$') {
+          state.tokenize = tokenHereStringInterpolation;
+          return 'string';
+        }
+
+        stream.next();
+        if (ch === '`') {
+          stream.next();
+        }
+      }
+    }
+    else {
+      stream.skipToEnd();
+    }
+
+    return 'string';
+  }
+
+  var external = {
+    startState: function() {
+      return {
+        returnStack: [],
+        bracketNesting: 0,
+        tokenize: tokenBase
+      };
+    },
+
+    token: function(stream, state) {
+      return state.tokenize(stream, state);
+    },
+
+    blockCommentStart: '<#',
+    blockCommentEnd: '#>',
+    lineComment: '#',
+    fold: 'brace'
+  };
+  return external;
+});
+
+CodeMirror.defineMIME('application/x-powershell', 'powershell');
+});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/python/python.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/python/python.js
new file mode 100644
index 0000000..623c03f
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/python/python.js
@@ -0,0 +1,409 @@
+// CodeMirror, copyright (c) by Marijn Haverbeke and others
+// Distributed under an MIT license: https://codemirror.net/LICENSE
+
+(function(mod) {
+  if (typeof exports == "object" && typeof module == "object") // CommonJS
+    mod(require("../../lib/codemirror"));
+  else if (typeof define == "function" && define.amd) // AMD
+    define(["../../lib/codemirror"], mod);
+  else // Plain browser env
+    mod(CodeMirror);
+})(function(CodeMirror) {
+  "use strict";
+
+  function wordRegexp(words) {
+    return new RegExp("^((" + words.join(")|(") + "))\\b");
+  }
+
+  var wordOperators = wordRegexp(["and", "or", "not", "is"]);
+  var commonKeywords = ["as", "assert", "break", "class", "continue",
+                        "def", "del", "elif", "else", "except", "finally",
+                        "for", "from", "global", "if", "import",
+                        "lambda", "pass", "raise", "return",
+                        "try", "while", "with", "yield", "in"];
+  var commonBuiltins = ["abs", "all", "any", "bin", "bool", "bytearray", "callable", "chr",
+                        "classmethod", "compile", "complex", "delattr", "dict", "dir", "divmod",
+                        "enumerate", "eval", "filter", "float", "format", "frozenset",
+                        "getattr", "globals", "hasattr", "hash", "help", "hex", "id",
+                        "input", "int", "isinstance", "issubclass", "iter", "len",
+                        "list", "locals", "map", "max", "memoryview", "min", "next",
+                        "object", "oct", "open", "ord", "pow", "property", "range",
+                        "repr", "reversed", "round", "set", "setattr", "slice",
+                        "sorted", "staticmethod", "str", "sum", "super", "tuple",
+                        "type", "vars", "zip", "__import__", "NotImplemented",
+                        "Ellipsis", "__debug__"];
+  CodeMirror.registerHelper("hintWords", "python", commonKeywords.concat(commonBuiltins));
+
+  function top(state) {
+    return state.scopes[state.scopes.length - 1];
+  }
+
+  CodeMirror.defineMode("python", function(conf, parserConf) {
+    var ERRORCLASS = "error";
+
+    var delimiters = parserConf.delimiters || parserConf.singleDelimiters || /^[\(\)\[\]\{\}@,:`=;\.\\]/;
+    //               (Backwards-compatiblity with old, cumbersome config system)
+    var operators = [parserConf.singleOperators, parserConf.doubleOperators, parserConf.doubleDelimiters, parserConf.tripleDelimiters,
+                     parserConf.operators || /^([-+*/%\/&|^]=?|[<>=]+|\/\/=?|\*\*=?|!=|[~!@])/]
+    for (var i = 0; i < operators.length; i++) if (!operators[i]) operators.splice(i--, 1)
+
+    var hangingIndent = parserConf.hangingIndent || conf.indentUnit;
+
+    var myKeywords = commonKeywords, myBuiltins = commonBuiltins;
+    if (parserConf.extra_keywords != undefined)
+      myKeywords = myKeywords.concat(parserConf.extra_keywords);
+
+    if (parserConf.extra_builtins != undefined)
+      myBuiltins = myBuiltins.concat(parserConf.extra_builtins);
+
+    var py3 = !(parserConf.version && Number(parserConf.version) < 3)
+    if (py3) {
+      // since http://legacy.python.org/dev/peps/pep-0465/ @ is also an operator
+      var identifiers = parserConf.identifiers|| /^[_A-Za-z\u00A1-\uFFFF][_A-Za-z0-9\u00A1-\uFFFF]*/;
+      myKeywords = myKeywords.concat(["nonlocal", "False", "True", "None", "async", "await"]);
+      myBuiltins = myBuiltins.concat(["ascii", "bytes", "exec", "print"]);
+      var stringPrefixes = new RegExp("^(([rbuf]|(br)|(fr))?('{3}|\"{3}|['\"]))", "i");
+    } else {
+      var identifiers = parserConf.identifiers|| /^[_A-Za-z][_A-Za-z0-9]*/;
+      myKeywords = myKeywords.concat(["exec", "print"]);
+      myBuiltins = myBuiltins.concat(["apply", "basestring", "buffer", "cmp", "coerce", "execfile",
+                                      "file", "intern", "long", "raw_input", "reduce", "reload",
+                                      "unichr", "unicode", "xrange", "False", "True", "None"]);
+      var stringPrefixes = new RegExp("^(([rubf]|(ur)|(br))?('{3}|\"{3}|['\"]))", "i");
+    }
+    var keywords = wordRegexp(myKeywords);
+    var builtins = wordRegexp(myBuiltins);
+
+    // tokenizers
+    function tokenBase(stream, state) {
+      var sol = stream.sol() && state.lastToken != "\\"
+      if (sol) state.indent = stream.indentation()
+      // Handle scope changes
+      if (sol && top(state).type == "py") {
+        var scopeOffset = top(state).offset;
+        if (stream.eatSpace()) {
+          var lineOffset = stream.indentation();
+          if (lineOffset > scopeOffset)
+            pushPyScope(state);
+          else if (lineOffset < scopeOffset && dedent(stream, state) && stream.peek() != "#")
+            state.errorToken = true;
+          return null;
+        } else {
+          var style = tokenBaseInner(stream, state);
+          if (scopeOffset > 0 && dedent(stream, state))
+            style += " " + ERRORCLASS;
+          return style;
+        }
+      }
+      return tokenBaseInner(stream, state);
+    }
+
+    function tokenBaseInner(stream, state) {
+      if (stream.eatSpace()) return null;
+
+      // Handle Comments
+      if (stream.match(/^#.*/)) return "comment";
+
+      // Handle Number Literals
+      if (stream.match(/^[0-9\.]/, false)) {
+        var floatLiteral = false;
+        // Floats
+        if (stream.match(/^[\d_]*\.\d+(e[\+\-]?\d+)?/i)) { floatLiteral = true; }
+        if (stream.match(/^[\d_]+\.\d*/)) { floatLiteral = true; }
+        if (stream.match(/^\.\d+/)) { floatLiteral = true; }
+        if (floatLiteral) {
+          // Float literals may be "imaginary"
+          stream.eat(/J/i);
+          return "number";
+        }
+        // Integers
+        var intLiteral = false;
+        // Hex
+        if (stream.match(/^0x[0-9a-f_]+/i)) intLiteral = true;
+        // Binary
+        if (stream.match(/^0b[01_]+/i)) intLiteral = true;
+        // Octal
+        if (stream.match(/^0o[0-7_]+/i)) intLiteral = true;
+        // Decimal
+        if (stream.match(/^[1-9][\d_]*(e[\+\-]?[\d_]+)?/)) {
+          // Decimal literals may be "imaginary"
+          stream.eat(/J/i);
+          // TODO - Can you have imaginary longs?
+          intLiteral = true;
+        }
+        // Zero by itself with no other piece of number.
+        if (stream.match(/^0(?![\dx])/i)) intLiteral = true;
+        if (intLiteral) {
+          // Integer literals may be "long"
+          stream.eat(/L/i);
+          return "number";
+        }
+      }
+
+      // Handle Strings
+      if (stream.match(stringPrefixes)) {
+        var isFmtString = stream.current().toLowerCase().indexOf('f') !== -1;
+        if (!isFmtString) {
+          state.tokenize = tokenStringFactory(stream.current());
+          return state.tokenize(stream, state);
+        } else {
+          state.tokenize = formatStringFactory(stream.current(), state.tokenize);
+          return state.tokenize(stream, state);
+        }
+      }
+
+      for (var i = 0; i < operators.length; i++)
+        if (stream.match(operators[i])) return "operator"
+
+      if (stream.match(delimiters)) return "punctuation";
+
+      if (state.lastToken == "." && stream.match(identifiers))
+        return "property";
+
+      if (stream.match(keywords) || stream.match(wordOperators))
+        return "keyword";
+
+      if (stream.match(builtins))
+        return "builtin";
+
+      if (stream.match(/^(self|cls)\b/))
+        return "variable-2";
+
+      if (stream.match(identifiers)) {
+        if (state.lastToken == "def" || state.lastToken == "class")
+          return "def";
+        return "variable";
+      }
+
+      // Handle non-detected items
+      stream.next();
+      return ERRORCLASS;
+    }
+
+    function formatStringFactory(delimiter, tokenOuter) {
+      while ("rubf".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)
+        delimiter = delimiter.substr(1);
+
+      var singleline = delimiter.length == 1;
+      var OUTCLASS = "string";
+
+      function tokenFString(stream, state) {
+        // inside f-str Expression
+        if (stream.match(delimiter)) {
+          // expression ends pre-maturally, but very common in editing
+          // Could show error to remind users to close brace here
+          state.tokenize = tokenString
+          return OUTCLASS;
+        } else if (stream.match('{')) {
+          // starting brace, if not eaten below
+          return "punctuation";
+        } else if (stream.match('}')) {
+          // return to regular inside string state
+          state.tokenize = tokenString
+          return "punctuation";
+        } else {
+          // use tokenBaseInner to parse the expression
+          return tokenBaseInner(stream, state);
+        }
+      }
+
+      function tokenString(stream, state) {
+        while (!stream.eol()) {
+          stream.eatWhile(/[^'"\{\}\\]/);
+          if (stream.eat("\\")) {
+            stream.next();
+            if (singleline && stream.eol())
+              return OUTCLASS;
+          } else if (stream.match(delimiter)) {
+            state.tokenize = tokenOuter;
+            return OUTCLASS;
+          } else if (stream.match('{{')) {
+            // ignore {{ in f-str
+            return OUTCLASS;
+          } else if (stream.match('{', false)) {
+            // switch to nested mode
+            state.tokenize = tokenFString
+            if (stream.current()) {
+              return OUTCLASS;
+            } else {
+              // need to return something, so eat the starting {
+              stream.next();
+              return "punctuation";
+            }
+          } else if (stream.match('}}')) {
+            return OUTCLASS;
+          } else if (stream.match('}')) {
+            // single } in f-string is an error
+            return ERRORCLASS;
+          } else {
+            stream.eat(/['"]/);
+          }
+        }
+        if (singleline) {
+          if (parserConf.singleLineStringErrors)
+            return ERRORCLASS;
+          else
+            state.tokenize = tokenOuter;
+        }
+        return OUTCLASS;
+      }
+      tokenString.isString = true;
+      return tokenString;
+    }
+
+    function tokenStringFactory(delimiter) {
+      while ("rubf".indexOf(delimiter.charAt(0).toLowerCase()) >= 0)
+        delimiter = delimiter.substr(1);
+
+      var singleline = delimiter.length == 1;
+      var OUTCLASS = "string";
+
+      function tokenString(stream, state) {
+        while (!stream.eol()) {
+          stream.eatWhile(/[^'"\\]/);
+          if (stream.eat("\\")) {
+            stream.next();
+            if (singleline && stream.eol())
+              return OUTCLASS;
+          } else if (stream.match(delimiter)) {
+            state.tokenize = tokenBase;
+            return OUTCLASS;
+          } else {
+            stream.eat(/['"]/);
+          }
+        }
+        if (singleline) {
+          if (parserConf.singleLineStringErrors)
+            return ERRORCLASS;
+          else
+            state.tokenize = tokenBase;
+        }
+        return OUTCLASS;
+      }
+      tokenString.isString = true;
+      return tokenString;
+    }
+
+    function pushPyScope(state) {
+      while (top(state).type != "py") state.scopes.pop()
+      state.scopes.push({offset: top(state).offset + conf.indentUnit,
+                         type: "py",
+                         align: null})
+    }
+
+    function pushBracketScope(stream, state, type) {
+      var align = stream.match(/^([\s\[\{\(]|#.*)*$/, false) ? null : stream.column() + 1
+      state.scopes.push({offset: state.indent + hangingIndent,
+                         type: type,
+                         align: align})
+    }
+
+    function dedent(stream, state) {
+      var indented = stream.indentation();
+      while (state.scopes.length > 1 && top(state).offset > indented) {
+        if (top(state).type != "py") return true;
+        state.scopes.pop();
+      }
+      return top(state).offset != indented;
+    }
+
+    function tokenLexer(stream, state) {
+      if (stream.sol()) state.beginningOfLine = true;
+
+      var style = state.tokenize(stream, state);
+      var current = stream.current();
+
+      // Handle decorators
+      if (state.beginningOfLine && current == "@")
+        return stream.match(identifiers, false) ? "meta" : py3 ? "operator" : ERRORCLASS;
+
+      if (/\S/.test(current)) state.beginningOfLine = false;
+
+      if ((style == "variable" || style == "builtin")
+          && state.lastToken == "meta")
+        style = "meta";
+
+      // Handle scope changes.
+      if (current == "pass" || current == "return")
+        state.dedent += 1;
+
+      if (current == "lambda") state.lambda = true;
+      if (current == ":" && !state.lambda && top(state).type == "py")
+        pushPyScope(state);
+
+      if (current.length == 1 && !/string|comment/.test(style)) {
+        var delimiter_index = "[({".indexOf(current);
+        if (delimiter_index != -1)
+          pushBracketScope(stream, state, "])}".slice(delimiter_index, delimiter_index+1));
+
+        delimiter_index = "])}".indexOf(current);
+        if (delimiter_index != -1) {
+          if (top(state).type == current) state.indent = state.scopes.pop().offset - hangingIndent
+          else return ERRORCLASS;
+        }
+      }
+      if (state.dedent > 0 && stream.eol() && top(state).type == "py") {
+        if (state.scopes.length > 1) state.scopes.pop();
+        state.dedent -= 1;
+      }
+
+      return style;
+    }
+
+    var external = {
+      startState: function(basecolumn) {
+        return {
+          tokenize: tokenBase,
+          scopes: [{offset: basecolumn || 0, type: "py", align: null}],
+          indent: basecolumn || 0,
+          lastToken: null,
+          lambda: false,
+          dedent: 0
+        };
+      },
+
+      token: function(stream, state) {
+        var addErr = state.errorToken;
+        if (addErr) state.errorToken = false;
+        var style = tokenLexer(stream, state);
+
+        if (style && style != "comment")
+          state.lastToken = (style == "keyword" || style == "punctuation") ? stream.current() : style;
+        if (style == "punctuation") style = null;
+
+        if (stream.eol() && state.lambda)
+          state.lambda = false;
+        return addErr ? style + " " + ERRORCLASS : style;
+      },
+
+      indent: function(state, textAfter) {
+        if (state.tokenize != tokenBase)
+          return state.tokenize.isString ? CodeMirror.Pass : 0;
+
+        var scope = top(state), closing = scope.type == textAfter.charAt(0)
+        if (scope.align != null)
+          return scope.align - (closing ? 1 : 0)
+        else
+          return scope.offset - (closing ? hangingIndent : 0)
+      },
+
+      electricInput: /^\s*[\}\]\)]$/,
+      closeBrackets: {triples: "'\""},
+      lineComment: "#",
+      fold: "indent"
+    };
+    return external;
+  });
+
+  CodeMirror.defineMIME("text/x-python", "python");
+
+  var words = function(str) { return str.split(" "); };
+
+  CodeMirror.defineMIME("text/x-cython", {
+    name: "python",
+    extra_keywords: words("by cdef cimport cpdef ctypedef enum except "+
+                          "extern gil include nogil property public "+
+                          "readonly struct union DEF IF ELIF ELSE")
+  });
+
+});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/shell/shell.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/shell/shell.js
new file mode 100644
index 0000000..5af1241
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/codemirror/mode/shell/shell.js
@@ -0,0 +1,152 @@
+// CodeMirror, copyright (c) by Marijn Haverbeke and others
+// Distributed under an MIT license: https://codemirror.net/LICENSE
+
+(function(mod) {
+  if (typeof exports == "object" && typeof module == "object") // CommonJS
+    mod(require("../../lib/codemirror"));
+  else if (typeof define == "function" && define.amd) // AMD
+    define(["../../lib/codemirror"], mod);
+  else // Plain browser env
+    mod(CodeMirror);
+})(function(CodeMirror) {
+"use strict";
+
+CodeMirror.defineMode('shell', function() {
+
+  var words = {};
+  function define(style, dict) {
+    for(var i = 0; i < dict.length; i++) {
+      words[dict[i]] = style;
+    }
+  };
+
+  var commonAtoms = ["true", "false"];
+  var commonKeywords = ["if", "then", "do", "else", "elif", "while", "until", "for", "in", "esac", "fi",
+    "fin", "fil", "done", "exit", "set", "unset", "export", "function"];
+  var commonCommands = ["ab", "awk", "bash", "beep", "cat", "cc", "cd", "chown", "chmod", "chroot", "clear",
+    "cp", "curl", "cut", "diff", "echo", "find", "gawk", "gcc", "get", "git", "grep", "hg", "kill", "killall",
+    "ln", "ls", "make", "mkdir", "openssl", "mv", "nc", "nl", "node", "npm", "ping", "ps", "restart", "rm",
+    "rmdir", "sed", "service", "sh", "shopt", "shred", "source", "sort", "sleep", "ssh", "start", "stop",
+    "su", "sudo", "svn", "tee", "telnet", "top", "touch", "vi", "vim", "wall", "wc", "wget", "who", "write",
+    "yes", "zsh"];
+
+  CodeMirror.registerHelper("hintWords", "shell", commonAtoms.concat(commonKeywords, commonCommands));
+
+  define('atom', commonAtoms);
+  define('keyword', commonKeywords);
+  define('builtin', commonCommands);
+
+  function tokenBase(stream, state) {
+    if (stream.eatSpace()) return null;
+
+    var sol = stream.sol();
+    var ch = stream.next();
+
+    if (ch === '\\') {
+      stream.next();
+      return null;
+    }
+    if (ch === '\'' || ch === '"' || ch === '`') {
+      state.tokens.unshift(tokenString(ch, ch === "`" ? "quote" : "string"));
+      return tokenize(stream, state);
+    }
+    if (ch === '#') {
+      if (sol && stream.eat('!')) {
+        stream.skipToEnd();
+        return 'meta'; // 'comment'?
+      }
+      stream.skipToEnd();
+      return 'comment';
+    }
+    if (ch === '$') {
+      state.tokens.unshift(tokenDollar);
+      return tokenize(stream, state);
+    }
+    if (ch === '+' || ch === '=') {
+      return 'operator';
+    }
+    if (ch === '-') {
+      stream.eat('-');
+      stream.eatWhile(/\w/);
+      return 'attribute';
+    }
+    if (/\d/.test(ch)) {
+      stream.eatWhile(/\d/);
+      if(stream.eol() || !/\w/.test(stream.peek())) {
+        return 'number';
+      }
+    }
+    stream.eatWhile(/[\w-]/);
+    var cur = stream.current();
+    if (stream.peek() === '=' && /\w+/.test(cur)) return 'def';
+    return words.hasOwnProperty(cur) ? words[cur] : null;
+  }
+
+  function tokenString(quote, style) {
+    var close = quote == "(" ? ")" : quote == "{" ? "}" : quote
+    return function(stream, state) {
+      var next, escaped = false;
+      while ((next = stream.next()) != null) {
+        if (next === close && !escaped) {
+          state.tokens.shift();
+          break;
+        } else if (next === '$' && !escaped && quote !== "'" && stream.peek() != close) {
+          escaped = true;
+          stream.backUp(1);
+          state.tokens.unshift(tokenDollar);
+          break;
+        } else if (!escaped && quote !== close && next === quote) {
+          state.tokens.unshift(tokenString(quote, style))
+          return tokenize(stream, state)
+        } else if (!escaped && /['"]/.test(next) && !/['"]/.test(quote)) {
+          state.tokens.unshift(tokenStringStart(next, "string"));
+          stream.backUp(1);
+          break;
+        }
+        escaped = !escaped && next === '\\';
+      }
+      return style;
+    };
+  };
+
+  function tokenStringStart(quote, style) {
+    return function(stream, state) {
+      state.tokens[0] = tokenString(quote, style)
+      stream.next()
+      return tokenize(stream, state)
+    }
+  }
+
+  var tokenDollar = function(stream, state) {
+    if (state.tokens.length > 1) stream.eat('$');
+    var ch = stream.next()
+    if (/['"({]/.test(ch)) {
+      state.tokens[0] = tokenString(ch, ch == "(" ? "quote" : ch == "{" ? "def" : "string");
+      return tokenize(stream, state);
+    }
+    if (!/\d/.test(ch)) stream.eatWhile(/\w/);
+    state.tokens.shift();
+    return 'def';
+  };
+
+  function tokenize(stream, state) {
+    return (state.tokens[0] || tokenBase) (stream, state);
+  };
+
+  return {
+    startState: function() {return {tokens:[]};},
+    token: function(stream, state) {
+      return tokenize(stream, state);
+    },
+    closeBrackets: "()[]{}''\"\"``",
+    lineComment: '#',
+    fold: "brace"
+  };
+});
+
+CodeMirror.defineMIME('text/x-sh', 'shell');
+// Apache uses a slightly different Media Type for Shell scripts
+// http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
+CodeMirror.defineMIME('application/x-sh', 'shell');
+
+});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/cronGen/cronGen.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/cronGen/cronGen.js
new file mode 100644
index 0000000..5ec7046
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/cronGen/cronGen.js
@@ -0,0 +1,1079 @@
+(function ($) {
+    // var resultsName = "";
+    var inputElement;
+    var displayElement;
+    $.fn.extend({
+        cronGen: function (options) {
+            if (options == null) {
+              options = {};
+            }
+            options = $.extend({}, $.fn.cronGen.defaultOptions, options);
+            //create top menu
+            var cronContainer = $("<div/>", { id: "CronContainer", style: "display:none;width:300px;height:300px;" });
+            var mainDiv = $("<div/>", { id: "CronGenMainDiv", style: "width:410px;height:300px;" });
+            var topMenu = $("<ul/>", { "class": "nav nav-tabs", id: "CronGenTabs" });
+            $('<li/>', { 'class': 'active' }).html($('<a id="SecondlyTab" href="#Secondly">秒</a>')).appendTo(topMenu);
+            $('<li/>').html($('<a id="MinutesTab" href="#Minutes">分钟</a>')).appendTo(topMenu);
+            $('<li/>').html($('<a id="HourlyTab" href="#Hourly">小时</a>')).appendTo(topMenu);
+            $('<li/>').html($('<a id="DailyTab" href="#Daily">日</a>')).appendTo(topMenu);
+            $('<li/>').html($('<a id="MonthlyTab" href="#Monthly">月</a>')).appendTo(topMenu);
+            $('<li/>').html($('<a id="WeeklyTab" href="#Weekly">周</a>')).appendTo(topMenu);
+            $('<li/>').html($('<a id="YearlyTab" href="#Yearly">年</a>')).appendTo(topMenu);
+            $(topMenu).appendTo(mainDiv);
+
+            //create what's inside the tabs
+            var container = $("<div/>", { "class": "container-fluid", "style": "margin-top: 30px;margin-left: -14px;" });
+            var row = $("<div/>", { "class": "row-fluid" });
+            var span12 = $("<div/>", { "class": "span12" });
+            var tabContent = $("<div/>", { "class": "tab-content", "style": "border:0px; margin-top:-20px;" });
+
+
+            //creating the secondsTab
+            var secondsTab = $("<div/>", { "class": "tab-pane active", id: "Secondly" });
+            var seconds1 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "1", name : "second"}).appendTo(seconds1);
+            $(seconds1).append("每秒 允许的通配符[, - * /]");
+            $(seconds1).appendTo(secondsTab);
+
+            var seconds2 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "2", name : "second"}).appendTo(seconds2);
+            $(seconds2).append("周期 从");
+            $("<input/>",{type : "text", id : "secondStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(seconds2);
+            $(seconds2).append("-");
+            $("<input/>",{type : "text", id : "secondEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(seconds2);
+            $(seconds2).append("秒");
+            $(seconds2).appendTo(secondsTab);
+
+            var seconds3 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "3", name : "second"}).appendTo(seconds3);
+            $(seconds3).append("从");
+            $("<input/>",{type : "text", id : "secondStart_1", value : "0", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(seconds3);
+            $(seconds3).append("秒开始,每");
+            $("<input/>",{type : "text", id : "secondEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(seconds3);
+            $(seconds3).append("秒执行一次");
+            $(seconds3).appendTo(secondsTab);
+
+            var seconds4 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "4", name : "second", id: "sencond_appoint"}).appendTo(seconds4);
+            $(seconds4).append("指定");
+            $(seconds4).appendTo(secondsTab);
+
+            $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="0">00<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">01<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">02<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">03<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">04<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">05<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">06<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">07<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="8">08<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="9">09</div>');
+            $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="10">10<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="11">11<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="12">12<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="13">13<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="14">14<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="15">15<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="16">16<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="17">17<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="18">18<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="19">19</div>');
+            $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="20">20<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="21">21<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="22">22<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="23">23<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="24">24<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="25">25<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="26">26<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="27">27<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="28">28<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="29">29</div>');
+            $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="30">30<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="31">31<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="32">32<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="33">33<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="34">34<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="35">35<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="36">36<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="37">37<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="38">38<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="39">39</div>');
+            $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="40">40<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="41">41<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="42">42<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="43">43<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="44">44<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="45">45<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="46">46<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="47">47<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="48">48<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="49">49</div>');
+            $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="50">50<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="51">51<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="52">52<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="53">53<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="54">54<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="55">55<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="56">56<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="57">57<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="58">58<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="59">59</div>');
+            $("<input/>",{type : "hidden", id : "secondHidden"}).appendTo(secondsTab);
+            $(secondsTab).appendTo(tabContent);
+
+            //creating the minutesTab
+            var minutesTab = $("<div/>", { "class": "tab-pane", id: "Minutes" });
+
+            var minutes1 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "1", name : "min"}).appendTo(minutes1);
+            $(minutes1).append("每分钟 允许的通配符[, - * /]");
+            $(minutes1).appendTo(minutesTab);
+
+            var minutes2 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "2", name : "min"}).appendTo(minutes2);
+            $(minutes2).append("周期 从");
+            $("<input/>",{type : "text", id : "minStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(minutes2);
+            $(minutes2).append("-");
+            $("<input/>",{type : "text", id : "minEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(minutes2);
+            $(minutes2).append("分钟");
+            $(minutes2).appendTo(minutesTab);
+
+            var minutes3 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "3", name : "min"}).appendTo(minutes3);
+            $(minutes3).append("从");
+            $("<input/>",{type : "text", id : "minStart_1", value : "0", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(minutes3);
+            $(minutes3).append("分钟开始,每");
+            $("<input/>",{type : "text", id : "minEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(minutes3);
+            $(minutes3).append("分钟执行一次");
+            $(minutes3).appendTo(minutesTab);
+
+            var minutes4 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "4", name : "min", id: "min_appoint"}).appendTo(minutes4);
+            $(minutes4).append("指定");
+            $(minutes4).appendTo(minutesTab);
+
+            $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="0">00<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">01<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">02<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">03<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">04<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">05<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">06<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">07<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="8">08<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="9">09</div>');
+            $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="10">10<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="11">11<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="12">12<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="13">13<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="14">14<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="15">15<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="16">16<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="17">17<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="18">18<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="19">19</div>');
+            $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="20">20<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="21">21<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="22">22<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="23">23<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="24">24<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="25">25<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="26">26<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="27">27<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="28">28<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="29">29</div>');
+            $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="30">30<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="31">31<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="32">32<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="33">33<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="34">34<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="35">35<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="36">36<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="37">37<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="38">38<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="39">39</div>');
+            $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="40">40<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="41">41<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="42">42<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="43">43<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="44">44<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="45">45<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="46">46<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="47">47<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="48">48<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="49">49</div>');
+            $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="50">50<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="51">51<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="52">52<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="53">53<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="54">54<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="55">55<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="56">56<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="57">57<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="58">58<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="59">59</div>');
+            $("<input/>",{type : "hidden", id : "minHidden"}).appendTo(minutesTab);
+            $(minutesTab).appendTo(tabContent);
+
+            //creating the hourlyTab
+            var hourlyTab = $("<div/>", { "class": "tab-pane", id: "Hourly" });
+
+            var hourly1 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "1", name : "hour"}).appendTo(hourly1);
+            $(hourly1).append("每小时 允许的通配符[, - * /]");
+            $(hourly1).appendTo(hourlyTab);
+
+            var hourly2 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "2", name : "hour"}).appendTo(hourly2);
+            $(hourly2).append("周期 从");
+            $("<input/>",{type : "text", id : "hourStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(hourly2);
+            $(hourly2).append("-");
+            $("<input/>",{type : "text", id : "hourEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(hourly2);
+            $(hourly2).append("小时");
+            $(hourly2).appendTo(hourlyTab);
+
+            var hourly3 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "3", name : "hour"}).appendTo(hourly3);
+            $(hourly3).append("从");
+            $("<input/>",{type : "text", id : "hourStart_1", value : "0", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(hourly3);
+            $(hourly3).append("小时开始,每");
+            $("<input/>",{type : "text", id : "hourEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(hourly3);
+            $(hourly3).append("小时执行一次");
+            $(hourly3).appendTo(hourlyTab);
+
+            var hourly4 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "4", name : "hour", id: "hour_appoint"}).appendTo(hourly4);
+            $(hourly4).append("指定");
+            $(hourly4).appendTo(hourlyTab);
+
+            $(hourlyTab).append('<div class="imp hourList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="0">00<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">01<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">02<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">03<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">04<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">05</div>');
+            $(hourlyTab).append('<div class="imp hourList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">06<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">07<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="8">08<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="9">09<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="10">10<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="11">11</div>');
+            $(hourlyTab).append('<div class="imp hourList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="12">12<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="13">13<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="14">14<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="15">15<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="16">16<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="17">17</div>');
+            $(hourlyTab).append('<div class="imp hourList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="18">18<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="19">19<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="20">20<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="21">21<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="22">22<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="23">23</div>');
+            $("<input/>",{type : "hidden", id : "hourHidden"}).appendTo(hourlyTab);
+            $(hourlyTab).appendTo(tabContent);
+
+
+            //creating the dailyTab
+            var dailyTab = $("<div/>", { "class": "tab-pane", id: "Daily" });
+
+            var daily1 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "1", name : "day"}).appendTo(daily1);
+            $(daily1).append("每天 允许的通配符[, - * / L W]");
+            $(daily1).appendTo(dailyTab);
+
+            var daily5 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "2", name : "day"}).appendTo(daily5);
+            $(daily5).append("不指定");
+            $(daily5).appendTo(dailyTab);
+
+            var daily2 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "3", name : "day"}).appendTo(daily2);
+            $(daily2).append("周期 从");
+            $("<input/>",{type : "text", id : "dayStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(daily2);
+            $(daily2).append("-");
+            $("<input/>",{type : "text", id : "dayEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(daily2);
+            $(daily2).append("日");
+            $(daily2).appendTo(dailyTab);
+
+            var daily3 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "4", name : "day"}).appendTo(daily3);
+            $(daily3).append("从");
+            $("<input/>",{type : "text", id : "dayStart_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(daily3);
+            $(daily3).append("日开始,每");
+            $("<input/>",{type : "text", id : "dayEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(daily3);
+            $(daily3).append("天执行一次");
+            $(daily3).appendTo(dailyTab);
+
+            var daily6 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "5", name : "day"}).appendTo(daily6);
+            $(daily6).append("每月");
+            $("<input/>",{type : "text", id : "dayStart_2", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(daily6);
+            $(daily6).append("号最近的那个工作日");
+            $(daily6).appendTo(dailyTab);
+
+            var daily7 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "6", name : "day"}).appendTo(daily7);
+            $(daily7).append("本月最后一天");
+            $(daily7).appendTo(dailyTab);
+
+            var daily4 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "7", name : "day", id: "day_appoint"}).appendTo(daily4);
+            $(daily4).append("指定");
+            $(daily4).appendTo(dailyTab);
+
+            $(dailyTab).append('<div class="imp dayList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">01<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">02<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">03<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">04<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">05<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">06<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">07<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="8">08<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="9">09<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="10">10</div>');
+            $(dailyTab).append('<div class="imp dayList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="11">11<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="12">12<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="13">13<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="14">14<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="15">15<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="16">16<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="17">17<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="18">18<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="19">19<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="20">20</div>');
+            $(dailyTab).append('<div class="imp dayList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="21">21<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="22">22<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="23">23<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="24">24<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="25">25<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="26">26<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="27">27<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="28">28<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="29">29<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="30">30</div>');
+            $(dailyTab).append('<div class="imp dayList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="31">31</div>');
+            $("<input/>",{type : "hidden", id : "dayHidden"}).appendTo(dailyTab);
+            $(dailyTab).appendTo(tabContent);
+
+
+            //creating the monthlyTab
+            var monthlyTab = $("<div/>", { "class": "tab-pane", id: "Monthly" });
+
+            var monthly1 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "1", name : "month"}).appendTo(monthly1);
+            $(monthly1).append("每月 允许的通配符[, - * /]");
+            $(monthly1).appendTo(monthlyTab);
+
+            var monthly2 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "2", name : "month"}).appendTo(monthly2);
+            $(monthly2).append("不指定");
+            $(monthly2).appendTo(monthlyTab);
+
+            var monthly3 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "3", name : "month"}).appendTo(monthly3);
+            $(monthly3).append("周期 从");
+            $("<input/>",{type : "text", id : "monthStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(monthly3);
+            $(monthly3).append("-");
+            $("<input/>",{type : "text", id : "monthEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(monthly3);
+            $(monthly3).append("月");
+            $(monthly3).appendTo(monthlyTab);
+
+            var monthly4 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "4", name : "month"}).appendTo(monthly4);
+            $(monthly4).append("从");
+            $("<input/>",{type : "text", id : "monthStart_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(monthly4);
+            $(monthly4).append("日开始,每");
+            $("<input/>",{type : "text", id : "monthEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(monthly4);
+            $(monthly4).append("月执行一次");
+            $(monthly4).appendTo(monthlyTab);
+
+            var monthly5 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "5", name : "month", id: "month_appoint"}).appendTo(monthly5);
+            $(monthly5).append("指定");
+            $(monthly5).appendTo(monthlyTab);
+
+            $(monthlyTab).append('<div class="imp monthList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">01<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">02<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">03<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">04<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">05<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">06</div>');
+            $(monthlyTab).append('<div class="imp monthList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">07<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="8">08<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="9">09<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="10">10<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="11">11<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="12">12</div>');
+            $("<input/>",{type : "hidden", id : "monthHidden"}).appendTo(monthlyTab);
+            $(monthlyTab).appendTo(tabContent);
+
+            //creating the weeklyTab
+            var weeklyTab = $("<div/>", { "class": "tab-pane", id: "Weekly" });
+
+            var weekly1 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "1", name : "week"}).appendTo(weekly1);
+            $(weekly1).append("每周 允许的通配符[, - * / L #]");
+            $(weekly1).appendTo(weeklyTab);
+
+            var weekly2 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "2", name : "week"}).appendTo(weekly2);
+            $(weekly2).append("不指定");
+            $(weekly2).appendTo(weeklyTab);
+
+            var weekly3 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "3", name : "week"}).appendTo(weekly3);
+            $(weekly3).append("周期 从星期");
+            $("<input/>",{type : "text", id : "weekStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly3);
+            $(weekly3).append("-");
+            $("<input/>",{type : "text", id : "weekEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly3);
+            $(weekly3).appendTo(weeklyTab);
+
+            var weekly4 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "4", name : "week"}).appendTo(weekly4);
+            $(weekly4).append("第");
+            $("<input/>",{type : "text", id : "weekStart_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly4);
+            $(weekly4).append("周的星期");
+            $("<input/>",{type : "text", id : "weekEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly4);
+            $(weekly4).appendTo(weeklyTab);
+
+            var weekly5 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "5", name : "week"}).appendTo(weekly5);
+            $(weekly5).append("本月最后一个星期");
+            $("<input/>",{type : "text", id : "weekStart_2", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly5);
+            $(weekly5).appendTo(weeklyTab);
+
+            var weekly6 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "6", name : "week", id: "week_appoint"}).appendTo(weekly6);
+            $(weekly6).append("指定");
+            $(weekly6).appendTo(weeklyTab);
+
+            $(weeklyTab).append('<div class="imp weekList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">1<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">2<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">3<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">4<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">5<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">6<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">7</div>');
+
+            $("<input/>",{type : "hidden", id : "weekHidden"}).appendTo(weeklyTab);
+            $(weeklyTab).appendTo(tabContent);
+
+            //creating the yearlyTab
+            var yearlyTab = $("<div/>", { "class": "tab-pane", id: "Yearly" });
+
+            var yearly1 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "1", name : "year"}).appendTo(yearly1);
+            $(yearly1).append("不指定 允许的通配符[, - * /] 非必填");
+            $(yearly1).appendTo(yearlyTab);
+
+            var yearly3 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "2", name : "year"}).appendTo(yearly3);
+            $(yearly3).append("每年");
+            $(yearly3).appendTo(yearlyTab);
+
+            var yearly2 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "3", name : "year"}).appendTo(yearly2);
+            $(yearly2).append("周期从");
+            $("<input/>",{type : "text", id : "yearStart_0", value : "2016", style:"width:45px; height:20px;"}).appendTo(yearly2);
+            $(yearly2).append("-");
+            $("<input/>",{type : "text", id : "yearEnd_0", value : "2017", style:"width:45px; height:20px;"}).appendTo(yearly2);
+            $(yearly2).append("年");
+            $(yearly2).appendTo(yearlyTab);
+            $("<input/>",{type : "hidden", id : "yearHidden"}).appendTo(yearlyTab);
+            $(yearlyTab).appendTo(tabContent);
+
+            $(tabContent).appendTo(span12);
+
+            //creating the button and results input
+            // resultsName = $(this).prop("id");
+            // $(this).prop("name", resultsName);
+
+            $(span12).appendTo(row);
+            $(row).appendTo(container);
+            $(container).appendTo(mainDiv);
+            $(cronContainer).append(mainDiv);
+
+            var that = $(this);
+
+            // Hide the original input
+            that.hide();
+
+            // Replace the input with an input group
+            var $g = $("<div>").addClass("input-group");
+            // Add an input
+            var $i = $("<input>", { type: 'text', placeholder: 'cron表达式...', name: 'cronGen_display' }).addClass("form-control").val($(that).val());
+            $i.appendTo($g);
+            // Add the button
+            var $b = $("<button class=\"btn btn-default\"><i class=\"fa fa-edit\"></i></button>");
+            // Put button inside span
+            var $s = $("<span>").addClass("input-group-btn");
+            $b.appendTo($s);
+            $s.appendTo($g);
+
+            $(this).before($g);
+
+            inputElement = that;
+            displayElement = $i;
+
+            $b.popover({
+                html: true,
+                content: function () {
+                    return $(cronContainer).html();
+                },
+                template: '<div class="popover" style="max-width:500px !important; width:425px;left:-341.656px;"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>',
+                placement: options.direction
+
+            }).on('click', function (e) {
+                e.preventDefault();
+
+                //fillDataOfMinutesAndHoursSelectOptions();
+                //fillDayWeekInMonth();
+                //fillInWeekDays();
+                //fillInMonths();
+
+                $.fn.cronGen.tools.cronParse(inputElement.val());
+
+                //绑定指定事件
+                $.fn.cronGen.tools.initChangeEvent();
+
+
+                $('#CronGenTabs a').click(function (e) {
+                    e.preventDefault();
+                    $(this).tab('show');
+                    //generate();
+                });
+                $("#CronGenMainDiv select,input").change(function (e) {
+                    generate();
+                });
+                $("#CronGenMainDiv input").focus(function (e) {
+                    generate();
+                });
+                //generate();
+            });
+            return;
+        }
+    });
+
+
+    var fillInMonths = function () {
+        var days = [
+            { text: "一月", val: "1" },
+            { text: "二月", val: "2" },
+            { text: "三月", val: "3" },
+            { text: "四月", val: "4" },
+            { text: "五月", val: "5" },
+            { text: "六月", val: "6" },
+            { text: "七月", val: "7" },
+            { text: "八月", val: "8" },
+            { text: "九月", val: "9" },
+            { text: "十月", val: "10" },
+            { text: "十一月", val: "11" },
+            { text: "十二月", val: "12" }
+        ];
+        $(".months").each(function () {
+            fillOptions(this, days);
+        });
+    };
+
+    var fillOptions = function (elements, options) {
+        for (var i = 0; i < options.length; i++)
+            $(elements).append("<option value='" + options[i].val + "'>" + options[i].text + "</option>");
+    };
+    var fillDataOfMinutesAndHoursSelectOptions = function () {
+        for (var i = 0; i < 60; i++) {
+            if (i < 24) {
+                $(".hours").each(function () { $(this).append(timeSelectOption(i)); });
+            }
+            $(".minutes").each(function () { $(this).append(timeSelectOption(i)); });
+        }
+    };
+    var fillInWeekDays = function () {
+        var days = [
+            { text: "周一", val: "2" },
+            { text: "周二", val: "3" },
+            { text: "周三", val: "4" },
+            { text: "周四", val: "5" },
+            { text: "周五", val: "6" },
+            { text: "周六", val: "7" },
+            { text: "周天", val: "1" }
+        ];
+        $(".week-days").each(function () {
+            fillOptions(this, days);
+        });
+
+    };
+    var fillDayWeekInMonth = function () {
+        var days = [
+            { text: "第一个", val: "1" },
+            { text: "第二个", val: "2" },
+            { text: "第三个", val: "3" },
+            { text: "第四个", val: "4" }
+        ];
+        $(".day-order-in-month").each(function () {
+            fillOptions(this, days);
+        });
+    };
+    var displayTimeUnit = function (unit) {
+        if (unit.toString().length == 1)
+            return "0" + unit;
+        return unit;
+    };
+    var timeSelectOption = function (i) {
+        return "<option id='" + i + "'>" + displayTimeUnit(i) + "</option>";
+    };
+
+    var generate = function () {
+
+        var activeTab = $("ul#CronGenTabs li.active a").prop("id");
+        if (activeTab == undefined) {
+            return;
+        }
+        var results = "";
+        switch (activeTab) {
+            case "SecondlyTab":
+                switch ($("input:radio[name=second]:checked").val()) {
+                    case "1":
+                        $.fn.cronGen.tools.everyTime("second");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "2":
+                        $.fn.cronGen.tools.cycle("second");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "3":
+                        $.fn.cronGen.tools.startOn("second");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "4":
+                    	$.fn.cronGen.tools.initCheckBox("second");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                }
+                break;
+            case "MinutesTab":
+                switch ($("input:radio[name=min]:checked").val()) {
+                    case "1":
+                        $.fn.cronGen.tools.everyTime("min");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "2":
+                        $.fn.cronGen.tools.cycle("min");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "3":
+                        $.fn.cronGen.tools.startOn("min");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "4":
+                    	$.fn.cronGen.tools.initCheckBox("min");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                }
+                break;
+            case "HourlyTab":
+                switch ($("input:radio[name=hour]:checked").val()) {
+                    case "1":
+                       $.fn.cronGen.tools.everyTime("hour");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "2":
+                       $.fn.cronGen.tools.cycle("hour");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "3":
+                        $.fn.cronGen.tools.startOn("hour");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "4":
+                    	$.fn.cronGen.tools.initCheckBox("hour");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                }
+                break;
+            case "DailyTab":
+                switch ($("input:radio[name=day]:checked").val()) {
+                    case "1":
+                        $.fn.cronGen.tools.everyTime("day");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "2":
+                        $.fn.cronGen.tools.unAppoint("day");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "3":
+                        $.fn.cronGen.tools.cycle("day");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "4":
+                        $.fn.cronGen.tools.startOn("day");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "5":
+                        $.fn.cronGen.tools.workDay("day");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "6":
+                        $.fn.cronGen.tools.lastDay("day");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "7":
+                    	$.fn.cronGen.tools.initCheckBox("day");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                }
+                break;
+            case "WeeklyTab":
+                switch ($("input:radio[name=week]:checked").val()) {
+                    case "1":
+                        $.fn.cronGen.tools.everyTime("week");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "2":
+                        $.fn.cronGen.tools.unAppoint("week");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "3":
+                        $.fn.cronGen.tools.cycle("week");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "4":
+                        $.fn.cronGen.tools.startOn("week");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "5":
+                        $.fn.cronGen.tools.lastWeek("week");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "6":
+                    	$.fn.cronGen.tools.initCheckBox("week");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                }
+                break;
+            case "MonthlyTab":
+                switch ($("input:radio[name=month]:checked").val()) {
+                    case "1":
+                        $.fn.cronGen.tools.everyTime("month");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "2":
+                        $.fn.cronGen.tools.unAppoint("month");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "3":
+                        $.fn.cronGen.tools.cycle("month");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "4":
+                        $.fn.cronGen.tools.startOn("month");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "5":
+                    	$.fn.cronGen.tools.initCheckBox("month");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                }
+                break;
+            case "YearlyTab":
+                switch ($("input:radio[name=year]:checked").val()) {
+                    case "1":
+                        $.fn.cronGen.tools.unAppoint("year");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "2":
+                        $.fn.cronGen.tools.everyTime("year");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "3":
+                        $.fn.cronGen.tools.cycle("year");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                }
+                break;
+        }
+
+        // Update original control
+        inputElement.val(results);
+        // Update display
+        displayElement.val(results);
+    };
+
+})(jQuery);
+
+(function($) {
+    $.fn.cronGen.defaultOptions = {
+        direction : 'bottom'
+    };
+    $.fn.cronGen.tools = {
+        /**
+         * 每周期
+         */
+        everyTime : function(dom){
+            $("#"+dom+"Hidden").val("*");
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        /**
+         * 不指定
+         */
+        unAppoint : function(dom){
+            var val = "?";
+            if (dom == "year")
+            {
+                val = "";
+            }
+            $("#"+dom+"Hidden").val(val);
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        /**
+         * 周期
+         */
+        cycle : function(dom){
+            var start = $("#"+dom+"Start_0").val();
+            var end = $("#"+dom+"End_0").val();
+            $("#"+dom+"Hidden").val(start + "-" + end);
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        /**
+         * 从开始
+         */
+        startOn : function(dom) {
+            var start = $("#"+dom+"Start_1").val();
+            var end = $("#"+dom+"End_1").val();
+            $("#"+dom+"Hidden").val(start + "/" + end);
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        /**
+         * 最后一天
+         */
+        lastDay : function(dom){
+            $("#"+dom+"Hidden").val("L");
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        /**
+         * 每周的某一天
+         */
+        weekOfDay : function(dom){
+            var start = $("#"+dom+"Start_0").val();
+            var end = $("#"+dom+"End_0").val();
+            $("#"+dom+"Hidden").val(start + "#" + end);
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        /**
+         * 最后一周
+         */
+        lastWeek : function(dom){
+            var start = $("#"+dom+"Start_2").val();
+            $("#"+dom+"Hidden").val(start+"L");
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        /**
+         * 工作日
+         */
+        workDay : function(dom) {
+            var start = $("#"+dom+"Start_2").val();
+            $("#"+dom+"Hidden").val(start + "W");
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        initChangeEvent : function(){
+            var secondList = $(".secondList").children();
+            $("#sencond_appoint").click(function(){
+                if (this.checked) {
+                    if ($(secondList).filter(":checked").length == 0) {
+                        $(secondList.eq(0)).attr("checked", true);
+                    }
+                    secondList.eq(0).change();
+                }
+            });
+
+            secondList.change(function() {
+                var sencond_appoint = $("#sencond_appoint").prop("checked");
+                if (sencond_appoint) {
+                    var vals = [];
+                    secondList.each(function() {
+                        if (this.checked) {
+                            vals.push(this.value);
+                        }
+                    });
+                    var val = "?";
+                    if (vals.length > 0 && vals.length < 59) {
+                        val = vals.join(",");
+                    }else if(vals.length == 59){
+                        val = "*";
+                    }
+                    $("#secondHidden").val(val);
+                }
+            });
+
+            var minList = $(".minList").children();
+            $("#min_appoint").click(function(){
+                if (this.checked) {
+                    if ($(minList).filter(":checked").length == 0) {
+                        $(minList.eq(0)).attr("checked", true);
+                    }
+                    minList.eq(0).change();
+                }
+            });
+
+            minList.change(function() {
+                var min_appoint = $("#min_appoint").prop("checked");
+                if (min_appoint) {
+                    var vals = [];
+                    minList.each(function() {
+                        if (this.checked) {
+                            vals.push(this.value);
+                        }
+                    });
+                    var val = "?";
+                    if (vals.length > 0 && vals.length < 59) {
+                        val = vals.join(",");
+                    }else if(vals.length == 59){
+                        val = "*";
+                    }
+                    $("#minHidden").val(val);
+                }
+            });
+
+            var hourList = $(".hourList").children();
+            $("#hour_appoint").click(function(){
+                if (this.checked) {
+                    if ($(hourList).filter(":checked").length == 0) {
+                        $(hourList.eq(0)).attr("checked", true);
+                    }
+                    hourList.eq(0).change();
+                }
+            });
+
+            hourList.change(function() {
+                var hour_appoint = $("#hour_appoint").prop("checked");
+                if (hour_appoint) {
+                    var vals = [];
+                    hourList.each(function() {
+                        if (this.checked) {
+                            vals.push(this.value);
+                        }
+                    });
+                    var val = "?";
+                    if (vals.length > 0 && vals.length < 24) {
+                        val = vals.join(",");
+                    }else if(vals.length == 24){
+                        val = "*";
+                    }
+                    $("#hourHidden").val(val);
+                }
+            });
+
+            var dayList = $(".dayList").children();
+            $("#day_appoint").click(function(){
+                if (this.checked) {
+                    if ($(dayList).filter(":checked").length == 0) {
+                        $(dayList.eq(0)).attr("checked", true);
+                    }
+                    dayList.eq(0).change();
+                }
+            });
+
+            dayList.change(function() {
+                var day_appoint = $("#day_appoint").prop("checked");
+                if (day_appoint) {
+                    var vals = [];
+                    dayList.each(function() {
+                        if (this.checked) {
+                            vals.push(this.value);
+                        }
+                    });
+                    var val = "?";
+                    if (vals.length > 0 && vals.length < 31) {
+                        val = vals.join(",");
+                    }else if(vals.length == 31){
+                        val = "*";
+                    }
+                   $("#dayHidden").val(val);
+                }
+            });
+
+            var monthList = $(".monthList").children();
+            $("#month_appoint").click(function(){
+                if (this.checked) {
+                    if ($(monthList).filter(":checked").length == 0) {
+                        $(monthList.eq(0)).attr("checked", true);
+                    }
+                    monthList.eq(0).change();
+                }
+            });
+
+            monthList.change(function() {
+                var month_appoint = $("#month_appoint").prop("checked");
+                if (month_appoint) {
+                    var vals = [];
+                    monthList.each(function() {
+                        if (this.checked) {
+                            vals.push(this.value);
+                        }
+                    });
+                    var val = "?";
+                    if (vals.length > 0 && vals.length < 12) {
+                        val = vals.join(",");
+                    }else if(vals.length == 12){
+                        val = "*";
+                    }
+                    $("#monthHidden").val(val);
+                }
+            });
+
+            var weekList = $(".weekList").children();
+            $("#week_appoint").click(function(){
+                if (this.checked) {
+                    if ($(weekList).filter(":checked").length == 0) {
+                        $(weekList.eq(0)).attr("checked", true);
+                    }
+                    weekList.eq(0).change();
+                }
+            });
+
+            weekList.change(function() {
+                var week_appoint = $("#week_appoint").prop("checked");
+                if (week_appoint) {
+                    var vals = [];
+                    weekList.each(function() {
+                        if (this.checked) {
+                            vals.push(this.value);
+                        }
+                    });
+                    var val = "?";
+                    if (vals.length > 0 && vals.length < 7) {
+                        val = vals.join(",");
+                    }else if(vals.length == 7){
+                        val = "*";
+                    }
+                   $("#weekHidden").val(val);
+                }
+            });
+        },
+        initObj : function(strVal, strid){
+            var ary = null;
+            var objRadio = $("input[name='" + strid + "'");
+            if (strVal == "*") {
+                objRadio.eq(0).attr("checked", "checked");
+            } else if (strVal.split('-').length > 1) {
+                ary = strVal.split('-');
+                objRadio.eq(1).attr("checked", "checked");
+                $("#" + strid + "Start_0").val(ary[0]);
+                $("#" + strid + "End_0").val(ary[1]);
+            } else if (strVal.split('/').length > 1) {
+                ary = strVal.split('/');
+                objRadio.eq(2).attr("checked", "checked");
+                $("#" + strid + "Start_1").val(ary[0]);
+                $("#" + strid + "End_1").val(ary[1]);
+            } else {
+                objRadio.eq(3).attr("checked", "checked");
+                if (strVal != "?") {
+                    ary = strVal.split(",");
+                    for (var i = 0; i < ary.length; i++) {
+                        $("." + strid + "List input[value='" + ary[i] + "']").attr("checked", "checked");
+                    }
+                    $.fn.cronGen.tools.initCheckBox(strid);
+                }
+            }
+        },
+        initDay : function(strVal) {
+            var ary = null;
+            var objRadio = $("input[name='day'");
+            if (strVal == "*") {
+                objRadio.eq(0).attr("checked", "checked");
+            } else if (strVal == "?") {
+                objRadio.eq(1).attr("checked", "checked");
+            } else if (strVal.split('-').length > 1) {
+                ary = strVal.split('-');
+                objRadio.eq(2).attr("checked", "checked");
+                $("#dayStart_0").val(ary[0]);
+                $("#dayEnd_0").val(ary[1]);
+            } else if (strVal.split('/').length > 1) {
+                ary = strVal.split('/');
+                objRadio.eq(3).attr("checked", "checked");
+                $("#dayStart_1").val(ary[0]);
+                $("#dayEnd_1").val(ary[1]);
+            } else if (strVal.split('W').length > 1) {
+                ary = strVal.split('W');
+                objRadio.eq(4).attr("checked", "checked");
+                $("#dayStart_2").val(ary[0]);
+            } else if (strVal == "L") {
+                objRadio.eq(5).attr("checked", "checked");
+            } else {
+                objRadio.eq(6).attr("checked", "checked");
+                ary = strVal.split(",");
+                for (var i = 0; i < ary.length; i++) {
+                    $(".dayList input[value='" + ary[i] + "']").attr("checked", "checked");
+                }
+                $.fn.cronGen.tools.initCheckBox("day");
+            }
+        },
+        initMonth : function(strVal) {
+            var ary = null;
+            var objRadio = $("input[name='month'");
+            if (strVal == "*") {
+                objRadio.eq(0).attr("checked", "checked");
+            } else if (strVal == "?") {
+                objRadio.eq(1).attr("checked", "checked");
+            } else if (strVal.split('-').length > 1) {
+                ary = strVal.split('-');
+                objRadio.eq(2).attr("checked", "checked");
+                $("#monthStart_0").val(ary[0]);
+                $("#monthEnd_0").val(ary[1]);
+            } else if (strVal.split('/').length > 1) {
+                ary = strVal.split('/');
+                objRadio.eq(3).attr("checked", "checked");
+                $("#monthStart_1").val(ary[0]);
+                $("#monthEnd_1").val(ary[1]);
+
+            } else {
+                objRadio.eq(4).attr("checked", "checked");
+
+                ary = strVal.split(",");
+                for (var i = 0; i < ary.length; i++) {
+                    $(".monthList input[value='" + ary[i] + "']").attr("checked", "checked");
+                }
+                $.fn.cronGen.tools.initCheckBox("month");
+            }
+        },
+        initWeek : function(strVal) {
+            var ary = null;
+            var objRadio = $("input[name='week'");
+            if (strVal == "*") {
+                objRadio.eq(0).attr("checked", "checked");
+            } else if (strVal == "?") {
+                objRadio.eq(1).attr("checked", "checked");
+            } else if (strVal.split('/').length > 1) {
+                ary = strVal.split('/');
+                objRadio.eq(2).attr("checked", "checked");
+                $("#weekStart_0").val(ary[0]);
+                $("#weekEnd_0").val(ary[1]);
+            } else if (strVal.split('-').length > 1) {
+                ary = strVal.split('-');
+                objRadio.eq(3).attr("checked", "checked");
+                $("#weekStart_1").val(ary[0]);
+                $("#weekEnd_1").val(ary[1]);
+            } else if (strVal.split('L').length > 1) {
+                ary = strVal.split('L');
+                objRadio.eq(4).attr("checked", "checked");
+                $("#weekStart_2").val(ary[0]);
+            } else {
+                objRadio.eq(5).attr("checked", "checked");
+                ary = strVal.split(",");
+                for (var i = 0; i < ary.length; i++) {
+                    $(".weekList input[value='" + ary[i] + "']").attr("checked", "checked");
+                }
+                $.fn.cronGen.tools.initCheckBox("week");
+            }
+        },
+        initYear : function(strVal) {
+            var ary = null;
+            var objRadio = $("input[name='year'");
+            if (strVal == "*") {
+                objRadio.eq(1).attr("checked", "checked");
+            } else if (strVal.split('-').length > 1) {
+                ary = strVal.split('-');
+                objRadio.eq(2).attr("checked", "checked");
+                $("#yearStart_0").val(ary[0]);
+                $("#yearEnd_0").val(ary[1]);
+            }
+        },
+        cronParse : function(cronExpress) {
+            //获取参数中表达式的值
+            if (cronExpress) {
+                var regs = cronExpress.split(' ');
+                $("input[name=secondHidden]").val(regs[0]);
+                $("input[name=minHidden]").val(regs[1]);
+                $("input[name=hourHidden]").val(regs[2]);
+                $("input[name=dayHidden]").val(regs[3]);
+                $("input[name=monthHidden]").val(regs[4]);
+                $("input[name=weekHidden]").val(regs[5]);
+
+                $.fn.cronGen.tools.initObj(regs[0], "second");
+                $.fn.cronGen.tools.initObj(regs[1], "min");
+                $.fn.cronGen.tools.initObj(regs[2], "hour");
+                $.fn.cronGen.tools.initDay(regs[3]);
+                $.fn.cronGen.tools.initMonth(regs[4]);
+                $.fn.cronGen.tools.initWeek(regs[5]);
+
+                if (regs.length > 6) {
+                    $("input[name=yearHidden]").val(regs[6]);
+                    $.fn.cronGen.tools.initYear(regs[6]);
+                }
+            }
+    	},
+        cronResult : function() {
+            var result;
+            var second = $("#secondHidden").val();
+            second = second== "" ? "*":second;
+            var minute = $("#minHidden").val();
+            minute = minute== "" ? "*":minute;
+            var hour = $("#hourHidden").val();
+            hour = hour== "" ? "*":hour;
+            var day = $("#dayHidden").val();
+            day = day== "" ? "*":day;
+            var month = $("#monthHidden").val();
+            month = month== "" ? "*":month;
+            var week = $("#weekHidden").val();
+            week = week== "" ? "?":week;
+            var year = $("#yearHidden").val();
+            if(year!="")
+            {
+                result = second+" "+minute+" "+hour+" "+day+" "+month+" "+week+" "+year;
+            }else
+            {
+                result = second+" "+minute+" "+hour+" "+day+" "+month+" "+week;
+            }
+            return result;
+        },
+        clearCheckbox : function(dom){
+        	//清除选中的checkbox
+            var list = $("."+dom+"List").children().filter(":checked");
+            if ($(list).length > 0) {
+            	$.each(list, function(index){
+            		$(this).attr("checked", false);
+            		$(this).attr("disabled", "disabled");
+            		$(this).change();
+            	});
+            }
+        },
+        initCheckBox : function(dom) {
+        	//移除checkbox禁用
+            var list = $("."+dom+"List").children();
+            if ($(list).length > 0) {
+            	$.each(list, function(index){
+            		$(this).removeAttr("disabled");
+            	});
+            }
+        }
+    };
+})(jQuery);
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/cronGen/cronGen_en.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/cronGen/cronGen_en.js
new file mode 100644
index 0000000..7201833
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/cronGen/cronGen_en.js
@@ -0,0 +1,1079 @@
+(function ($) {
+    // var resultsName = "";
+    var inputElement;
+    var displayElement;
+    $.fn.extend({
+        cronGen: function (options) {
+            if (options == null) {
+              options = {};
+            }
+            options = $.extend({}, $.fn.cronGen.defaultOptions, options);
+            //create top menu
+            var cronContainer = $("<div/>", { id: "CronContainer", style: "display:none;width:300px;height:300px;" });
+            var mainDiv = $("<div/>", { id: "CronGenMainDiv", style: "width:410px;height:300px;" });
+            var topMenu = $("<ul/>", { "class": "nav nav-tabs", id: "CronGenTabs" });
+            $('<li/>', { 'class': 'active' }).html($('<a id="SecondlyTab" href="#Secondly">秒</a>')).appendTo(topMenu);
+            $('<li/>').html($('<a id="MinutesTab" href="#Minutes">Minute</a>')).appendTo(topMenu);
+            $('<li/>').html($('<a id="HourlyTab" href="#Hourly">Hour</a>')).appendTo(topMenu);
+            $('<li/>').html($('<a id="DailyTab" href="#Daily">Day</a>')).appendTo(topMenu);
+            $('<li/>').html($('<a id="MonthlyTab" href="#Monthly">Month</a>')).appendTo(topMenu);
+            $('<li/>').html($('<a id="WeeklyTab" href="#Weekly">Week</a>')).appendTo(topMenu);
+            $('<li/>').html($('<a id="YearlyTab" href="#Yearly">Year</a>')).appendTo(topMenu);
+            $(topMenu).appendTo(mainDiv);
+
+            //create what's inside the tabs
+            var container = $("<div/>", { "class": "container-fluid", "style": "margin-top: 30px;margin-left: -14px;" });
+            var row = $("<div/>", { "class": "row-fluid" });
+            var span12 = $("<div/>", { "class": "span12" });
+            var tabContent = $("<div/>", { "class": "tab-content", "style": "border:0px; margin-top:-20px;" });
+
+
+            //creating the secondsTab
+            var secondsTab = $("<div/>", { "class": "tab-pane active", id: "Secondly" });
+            var seconds1 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "1", name : "second"}).appendTo(seconds1);
+            $(seconds1).append("Per second, allowed wildcard[, - * /]");
+            $(seconds1).appendTo(secondsTab);
+
+            var seconds2 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "2", name : "second"}).appendTo(seconds2);
+            $(seconds2).append("Cycle, from");
+            $("<input/>",{type : "text", id : "secondStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(seconds2);
+            $(seconds2).append("-");
+            $("<input/>",{type : "text", id : "secondEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(seconds2);
+            $(seconds2).append("second");
+            $(seconds2).appendTo(secondsTab);
+
+            var seconds3 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "3", name : "second"}).appendTo(seconds3);
+            $(seconds3).append("from");
+            $("<input/>",{type : "text", id : "secondStart_1", value : "0", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(seconds3);
+            $(seconds3).append("seconds start, per");
+            $("<input/>",{type : "text", id : "secondEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(seconds3);
+            $(seconds3).append("second execute once");
+            $(seconds3).appendTo(secondsTab);
+
+            var seconds4 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "4", name : "second", id: "sencond_appoint"}).appendTo(seconds4);
+            $(seconds4).append("specify");
+            $(seconds4).appendTo(secondsTab);
+
+            $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="0">00<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">01<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">02<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">03<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">04<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">05<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">06<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">07<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="8">08<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="9">09</div>');
+            $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="10">10<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="11">11<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="12">12<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="13">13<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="14">14<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="15">15<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="16">16<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="17">17<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="18">18<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="19">19</div>');
+            $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="20">20<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="21">21<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="22">22<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="23">23<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="24">24<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="25">25<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="26">26<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="27">27<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="28">28<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="29">29</div>');
+            $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="30">30<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="31">31<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="32">32<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="33">33<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="34">34<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="35">35<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="36">36<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="37">37<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="38">38<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="39">39</div>');
+            $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="40">40<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="41">41<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="42">42<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="43">43<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="44">44<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="45">45<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="46">46<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="47">47<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="48">48<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="49">49</div>');
+            $(secondsTab).append('<div class="imp secondList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="50">50<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="51">51<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="52">52<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="53">53<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="54">54<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="55">55<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="56">56<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="57">57<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="58">58<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="59">59</div>');
+            $("<input/>",{type : "hidden", id : "secondHidden"}).appendTo(secondsTab);
+            $(secondsTab).appendTo(tabContent);
+
+            //creating the minutesTab
+            var minutesTab = $("<div/>", { "class": "tab-pane", id: "Minutes" });
+
+            var minutes1 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "1", name : "min"}).appendTo(minutes1);
+            $(minutes1).append("Per minute, allowed wildcard[, - * /]");
+            $(minutes1).appendTo(minutesTab);
+
+            var minutes2 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "2", name : "min"}).appendTo(minutes2);
+            $(minutes2).append("Cycle, from");
+            $("<input/>",{type : "text", id : "minStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(minutes2);
+            $(minutes2).append("-");
+            $("<input/>",{type : "text", id : "minEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(minutes2);
+            $(minutes2).append("minute");
+            $(minutes2).appendTo(minutesTab);
+
+            var minutes3 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "3", name : "min"}).appendTo(minutes3);
+            $(minutes3).append("from");
+            $("<input/>",{type : "text", id : "minStart_1", value : "0", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(minutes3);
+            $(minutes3).append("seconds start, per");
+            $("<input/>",{type : "text", id : "minEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(minutes3);
+            $(minutes3).append("second execute once");
+            $(minutes3).appendTo(minutesTab);
+
+            var minutes4 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "4", name : "min", id: "min_appoint"}).appendTo(minutes4);
+            $(minutes4).append("specify");
+            $(minutes4).appendTo(minutesTab);
+
+            $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="0">00<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">01<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">02<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">03<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">04<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">05<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">06<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">07<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="8">08<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="9">09</div>');
+            $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="10">10<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="11">11<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="12">12<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="13">13<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="14">14<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="15">15<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="16">16<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="17">17<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="18">18<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="19">19</div>');
+            $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="20">20<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="21">21<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="22">22<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="23">23<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="24">24<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="25">25<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="26">26<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="27">27<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="28">28<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="29">29</div>');
+            $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="30">30<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="31">31<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="32">32<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="33">33<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="34">34<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="35">35<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="36">36<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="37">37<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="38">38<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="39">39</div>');
+            $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="40">40<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="41">41<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="42">42<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="43">43<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="44">44<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="45">45<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="46">46<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="47">47<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="48">48<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="49">49</div>');
+            $(minutesTab).append('<div class="imp minList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="50">50<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="51">51<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="52">52<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="53">53<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="54">54<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="55">55<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="56">56<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="57">57<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="58">58<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="59">59</div>');
+            $("<input/>",{type : "hidden", id : "minHidden"}).appendTo(minutesTab);
+            $(minutesTab).appendTo(tabContent);
+
+            //creating the hourlyTab
+            var hourlyTab = $("<div/>", { "class": "tab-pane", id: "Hourly" });
+
+            var hourly1 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "1", name : "hour"}).appendTo(hourly1);
+            $(hourly1).append("Per hour, allowed wildcard[, - * /]");
+            $(hourly1).appendTo(hourlyTab);
+
+            var hourly2 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "2", name : "hour"}).appendTo(hourly2);
+            $(hourly2).append("Cycle, from");
+            $("<input/>",{type : "text", id : "hourStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(hourly2);
+            $(hourly2).append("-");
+            $("<input/>",{type : "text", id : "hourEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(hourly2);
+            $(hourly2).append("hour");
+            $(hourly2).appendTo(hourlyTab);
+
+            var hourly3 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "3", name : "hour"}).appendTo(hourly3);
+            $(hourly3).append("from");
+            $("<input/>",{type : "text", id : "hourStart_1", value : "0", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(hourly3);
+            $(hourly3).append("hour start, per");
+            $("<input/>",{type : "text", id : "hourEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(hourly3);
+            $(hourly3).append("hour execute once");
+            $(hourly3).appendTo(hourlyTab);
+
+            var hourly4 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "4", name : "hour", id: "hour_appoint"}).appendTo(hourly4);
+            $(hourly4).append("specify");
+            $(hourly4).appendTo(hourlyTab);
+
+            $(hourlyTab).append('<div class="imp hourList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="0">00<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">01<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">02<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">03<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">04<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">05</div>');
+            $(hourlyTab).append('<div class="imp hourList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">06<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">07<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="8">08<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="9">09<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="10">10<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="11">11</div>');
+            $(hourlyTab).append('<div class="imp hourList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="12">12<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="13">13<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="14">14<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="15">15<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="16">16<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="17">17</div>');
+            $(hourlyTab).append('<div class="imp hourList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="18">18<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="19">19<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="20">20<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="21">21<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="22">22<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="23">23</div>');
+            $("<input/>",{type : "hidden", id : "hourHidden"}).appendTo(hourlyTab);
+            $(hourlyTab).appendTo(tabContent);
+
+
+            //creating the dailyTab
+            var dailyTab = $("<div/>", { "class": "tab-pane", id: "Daily" });
+
+            var daily1 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "1", name : "day"}).appendTo(daily1);
+            $(daily1).append("Per day, allowed wildcard[, - * / L W]");
+            $(daily1).appendTo(dailyTab);
+
+            var daily5 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "2", name : "day"}).appendTo(daily5);
+            $(daily5).append("not specify");
+            $(daily5).appendTo(dailyTab);
+
+            var daily2 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "3", name : "day"}).appendTo(daily2);
+            $(daily2).append("Cycle, from");
+            $("<input/>",{type : "text", id : "dayStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(daily2);
+            $(daily2).append("-");
+            $("<input/>",{type : "text", id : "dayEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(daily2);
+            $(daily2).append("day");
+            $(daily2).appendTo(dailyTab);
+
+            var daily3 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "4", name : "day"}).appendTo(daily3);
+            $(daily3).append("from");
+            $("<input/>",{type : "text", id : "dayStart_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(daily3);
+            $(daily3).append("day start, per");
+            $("<input/>",{type : "text", id : "dayEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(daily3);
+            $(daily3).append("day execute once");
+            $(daily3).appendTo(dailyTab);
+
+            var daily6 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "5", name : "day"}).appendTo(daily6);
+            $(daily6).append("The most recent working day on the 1");
+            $("<input/>",{type : "text", id : "dayStart_2", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(daily6);
+            $(daily6).append(" of each month");
+            $(daily6).appendTo(dailyTab);
+
+            var daily7 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "6", name : "day"}).appendTo(daily7);
+            $(daily7).append("The last day of the month");
+            $(daily7).appendTo(dailyTab);
+
+            var daily4 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "7", name : "day", id: "day_appoint"}).appendTo(daily4);
+            $(daily4).append("specify");
+            $(daily4).appendTo(dailyTab);
+
+            $(dailyTab).append('<div class="imp dayList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">01<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">02<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">03<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">04<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">05<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">06<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">07<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="8">08<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="9">09<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="10">10</div>');
+            $(dailyTab).append('<div class="imp dayList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="11">11<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="12">12<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="13">13<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="14">14<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="15">15<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="16">16<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="17">17<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="18">18<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="19">19<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="20">20</div>');
+            $(dailyTab).append('<div class="imp dayList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="21">21<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="22">22<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="23">23<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="24">24<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="25">25<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="26">26<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="27">27<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="28">28<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="29">29<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="30">30</div>');
+            $(dailyTab).append('<div class="imp dayList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="31">31</div>');
+            $("<input/>",{type : "hidden", id : "dayHidden"}).appendTo(dailyTab);
+            $(dailyTab).appendTo(tabContent);
+
+
+            //creating the monthlyTab
+            var monthlyTab = $("<div/>", { "class": "tab-pane", id: "Monthly" });
+
+            var monthly1 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "1", name : "month"}).appendTo(monthly1);
+            $(monthly1).append("Per month, allowed wildcard[, - * /]");
+            $(monthly1).appendTo(monthlyTab);
+
+            var monthly2 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "2", name : "month"}).appendTo(monthly2);
+            $(monthly2).append("not specify");
+            $(monthly2).appendTo(monthlyTab);
+
+            var monthly3 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "3", name : "month"}).appendTo(monthly3);
+            $(monthly3).append("Cycle, from");
+            $("<input/>",{type : "text", id : "monthStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(monthly3);
+            $(monthly3).append("-");
+            $("<input/>",{type : "text", id : "monthEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(monthly3);
+            $(monthly3).append("month");
+            $(monthly3).appendTo(monthlyTab);
+
+            var monthly4 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "4", name : "month"}).appendTo(monthly4);
+            $(monthly4).append("Starting from ");
+            $("<input/>",{type : "text", id : "monthStart_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(monthly4);
+            $(monthly4).append("day, once every");
+            $("<input/>",{type : "text", id : "monthEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(monthly4);
+            $(monthly4).append("month");
+            $(monthly4).appendTo(monthlyTab);
+
+            var monthly5 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "5", name : "month", id: "month_appoint"}).appendTo(monthly5);
+            $(monthly5).append("specify");
+            $(monthly5).appendTo(monthlyTab);
+
+            $(monthlyTab).append('<div class="imp monthList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">01<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">02<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">03<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">04<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">05<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">06</div>');
+            $(monthlyTab).append('<div class="imp monthList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">07<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="8">08<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="9">09<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="10">10<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="11">11<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="12">12</div>');
+            $("<input/>",{type : "hidden", id : "monthHidden"}).appendTo(monthlyTab);
+            $(monthlyTab).appendTo(tabContent);
+
+            //creating the weeklyTab
+            var weeklyTab = $("<div/>", { "class": "tab-pane", id: "Weekly" });
+
+            var weekly1 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "1", name : "week"}).appendTo(weekly1);
+            $(weekly1).append("Per week, allowed wildcard[, - * / L #]");
+            $(weekly1).appendTo(weeklyTab);
+
+            var weekly2 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "2", name : "week"}).appendTo(weekly2);
+            $(weekly2).append("not specify");
+            $(weekly2).appendTo(weeklyTab);
+
+            var weekly3 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "3", name : "week"}).appendTo(weekly3);
+            $(weekly3).append("Cycle, from week");
+            $("<input/>",{type : "text", id : "weekStart_0", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly3);
+            $(weekly3).append("-");
+            $("<input/>",{type : "text", id : "weekEnd_0", value : "2", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly3);
+            $(weekly3).appendTo(weeklyTab);
+
+            var weekly4 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "4", name : "week"}).appendTo(weekly4);
+            $(weekly4).append("The");
+            $("<input/>",{type : "text", id : "weekStart_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly4);
+            $(weekly4).append("th week, and day ");
+            $("<input/>",{type : "text", id : "weekEnd_1", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly4);
+            $(weekly4).appendTo(weeklyTab);
+
+            var weekly5 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "5", name : "week"}).appendTo(weekly5);
+            $(weekly5).append("Last week of the month");
+            $("<input/>",{type : "text", id : "weekStart_2", value : "1", style:"width:35px; height:20px; text-align: center; margin: 0 3px;"}).appendTo(weekly5);
+            $(weekly5).appendTo(weeklyTab);
+
+            var weekly6 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "6", name : "week", id: "week_appoint"}).appendTo(weekly6);
+            $(weekly6).append("specify");
+            $(weekly6).appendTo(weeklyTab);
+
+            $(weeklyTab).append('<div class="imp weekList"><input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="1">1<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="2">2<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="3">3<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="4">4<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="5">5<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="6">6<input type="checkbox" disabled="disabled" style="margin-left: 5px"  value="7">7</div>');
+
+            $("<input/>",{type : "hidden", id : "weekHidden"}).appendTo(weeklyTab);
+            $(weeklyTab).appendTo(tabContent);
+
+            //creating the yearlyTab
+            var yearlyTab = $("<div/>", { "class": "tab-pane", id: "Yearly" });
+
+            var yearly1 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "1", name : "year"}).appendTo(yearly1);
+            $(yearly1).append("not specify allowed wildcard[, - * /] not required");
+            $(yearly1).appendTo(yearlyTab);
+
+            var yearly3 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "2", name : "year"}).appendTo(yearly3);
+            $(yearly3).append("Per year");
+            $(yearly3).appendTo(yearlyTab);
+
+            var yearly2 = $("<div/>",{"class":"line"});
+            $("<input/>",{type : "radio", value : "3", name : "year"}).appendTo(yearly2);
+            $(yearly2).append("Cycle, from ");
+            $("<input/>",{type : "text", id : "yearStart_0", value : "2016", style:"width:45px; height:20px;"}).appendTo(yearly2);
+            $(yearly2).append("-");
+            $("<input/>",{type : "text", id : "yearEnd_0", value : "2017", style:"width:45px; height:20px;"}).appendTo(yearly2);
+            $(yearly2).append("year");
+            $(yearly2).appendTo(yearlyTab);
+            $("<input/>",{type : "hidden", id : "yearHidden"}).appendTo(yearlyTab);
+            $(yearlyTab).appendTo(tabContent);
+
+            $(tabContent).appendTo(span12);
+
+            //creating the button and results input
+            // resultsName = $(this).prop("id");
+            // $(this).prop("name", resultsName);
+
+            $(span12).appendTo(row);
+            $(row).appendTo(container);
+            $(container).appendTo(mainDiv);
+            $(cronContainer).append(mainDiv);
+
+            var that = $(this);
+
+            // Hide the original input
+            that.hide();
+
+            // Replace the input with an input group
+            var $g = $("<div>").addClass("input-group");
+            // Add an input
+            var $i = $("<input>", { type: 'text', placeholder: 'cron expression...', name: 'cronGen_display' }).addClass("form-control").val($(that).val());
+            $i.appendTo($g);
+            // Add the button
+            var $b = $("<button class=\"btn btn-default\"><i class=\"fa fa-edit\"></i></button>");
+            // Put button inside span
+            var $s = $("<span>").addClass("input-group-btn");
+            $b.appendTo($s);
+            $s.appendTo($g);
+
+            $(this).before($g);
+
+            inputElement = that;
+            displayElement = $i;
+
+            $b.popover({
+                html: true,
+                content: function () {
+                    return $(cronContainer).html();
+                },
+                template: '<div class="popover" style="max-width:500px !important; width:425px;left:-341.656px;"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"><p></p></div></div></div>',
+                placement: options.direction
+
+            }).on('click', function (e) {
+                e.preventDefault();
+
+                //fillDataOfMinutesAndHoursSelectOptions();
+                //fillDayWeekInMonth();
+                //fillInWeekDays();
+                //fillInMonths();
+
+                $.fn.cronGen.tools.cronParse(inputElement.val());
+
+                //绑定指定事件
+                $.fn.cronGen.tools.initChangeEvent();
+
+
+                $('#CronGenTabs a').click(function (e) {
+                    e.preventDefault();
+                    $(this).tab('show');
+                    //generate();
+                });
+                $("#CronGenMainDiv select,input").change(function (e) {
+                    generate();
+                });
+                $("#CronGenMainDiv input").focus(function (e) {
+                    generate();
+                });
+                //generate();
+            });
+            return;
+        }
+    });
+
+
+    var fillInMonths = function () {
+        var days = [
+            { text: "January", val: "1" },
+            { text: "February", val: "2" },
+            { text: "March", val: "3" },
+            { text: "April", val: "4" },
+            { text: "May", val: "5" },
+            { text: "June", val: "6" },
+            { text: "July", val: "7" },
+            { text: "August", val: "8" },
+            { text: "September", val: "9" },
+            { text: "October", val: "10" },
+            { text: "November", val: "11" },
+            { text: "December", val: "12" }
+        ];
+        $(".months").each(function () {
+            fillOptions(this, days);
+        });
+    };
+
+    var fillOptions = function (elements, options) {
+        for (var i = 0; i < options.length; i++)
+            $(elements).append("<option value='" + options[i].val + "'>" + options[i].text + "</option>");
+    };
+    var fillDataOfMinutesAndHoursSelectOptions = function () {
+        for (var i = 0; i < 60; i++) {
+            if (i < 24) {
+                $(".hours").each(function () { $(this).append(timeSelectOption(i)); });
+            }
+            $(".minutes").each(function () { $(this).append(timeSelectOption(i)); });
+        }
+    };
+    var fillInWeekDays = function () {
+        var days = [
+            { text: "Tuesday", val: "2" },
+            { text: "Wednesday", val: "3" },
+            { text: "Thursday", val: "4" },
+            { text: "Friday", val: "5" },
+            { text: "Saturday", val: "6" },
+            { text: "Sunday", val: "7" },
+            { text: "Monday", val: "1" }
+        ];
+        $(".week-days").each(function () {
+            fillOptions(this, days);
+        });
+
+    };
+    var fillDayWeekInMonth = function () {
+        var days = [
+            { text: "First", val: "1" },
+            { text: "Second", val: "2" },
+            { text: "Third", val: "3" },
+            { text: "Fourth", val: "4" }
+        ];
+        $(".day-order-in-month").each(function () {
+            fillOptions(this, days);
+        });
+    };
+    var displayTimeUnit = function (unit) {
+        if (unit.toString().length == 1)
+            return "0" + unit;
+        return unit;
+    };
+    var timeSelectOption = function (i) {
+        return "<option id='" + i + "'>" + displayTimeUnit(i) + "</option>";
+    };
+
+    var generate = function () {
+
+        var activeTab = $("ul#CronGenTabs li.active a").prop("id");
+        if (activeTab == undefined) {
+            return;
+        }
+        var results = "";
+        switch (activeTab) {
+            case "SecondlyTab":
+                switch ($("input:radio[name=second]:checked").val()) {
+                    case "1":
+                        $.fn.cronGen.tools.everyTime("second");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "2":
+                        $.fn.cronGen.tools.cycle("second");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "3":
+                        $.fn.cronGen.tools.startOn("second");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "4":
+                    	$.fn.cronGen.tools.initCheckBox("second");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                }
+                break;
+            case "MinutesTab":
+                switch ($("input:radio[name=min]:checked").val()) {
+                    case "1":
+                        $.fn.cronGen.tools.everyTime("min");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "2":
+                        $.fn.cronGen.tools.cycle("min");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "3":
+                        $.fn.cronGen.tools.startOn("min");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "4":
+                    	$.fn.cronGen.tools.initCheckBox("min");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                }
+                break;
+            case "HourlyTab":
+                switch ($("input:radio[name=hour]:checked").val()) {
+                    case "1":
+                       $.fn.cronGen.tools.everyTime("hour");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "2":
+                       $.fn.cronGen.tools.cycle("hour");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "3":
+                        $.fn.cronGen.tools.startOn("hour");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "4":
+                    	$.fn.cronGen.tools.initCheckBox("hour");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                }
+                break;
+            case "DailyTab":
+                switch ($("input:radio[name=day]:checked").val()) {
+                    case "1":
+                        $.fn.cronGen.tools.everyTime("day");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "2":
+                        $.fn.cronGen.tools.unAppoint("day");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "3":
+                        $.fn.cronGen.tools.cycle("day");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "4":
+                        $.fn.cronGen.tools.startOn("day");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "5":
+                        $.fn.cronGen.tools.workDay("day");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "6":
+                        $.fn.cronGen.tools.lastDay("day");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "7":
+                    	$.fn.cronGen.tools.initCheckBox("day");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                }
+                break;
+            case "WeeklyTab":
+                switch ($("input:radio[name=week]:checked").val()) {
+                    case "1":
+                        $.fn.cronGen.tools.everyTime("week");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "2":
+                        $.fn.cronGen.tools.unAppoint("week");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "3":
+                        $.fn.cronGen.tools.cycle("week");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "4":
+                        $.fn.cronGen.tools.startOn("week");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "5":
+                        $.fn.cronGen.tools.lastWeek("week");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "6":
+                    	$.fn.cronGen.tools.initCheckBox("week");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                }
+                break;
+            case "MonthlyTab":
+                switch ($("input:radio[name=month]:checked").val()) {
+                    case "1":
+                        $.fn.cronGen.tools.everyTime("month");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "2":
+                        $.fn.cronGen.tools.unAppoint("month");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "3":
+                        $.fn.cronGen.tools.cycle("month");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "4":
+                        $.fn.cronGen.tools.startOn("month");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "5":
+                    	$.fn.cronGen.tools.initCheckBox("month");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                }
+                break;
+            case "YearlyTab":
+                switch ($("input:radio[name=year]:checked").val()) {
+                    case "1":
+                        $.fn.cronGen.tools.unAppoint("year");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "2":
+                        $.fn.cronGen.tools.everyTime("year");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                    case "3":
+                        $.fn.cronGen.tools.cycle("year");
+                        results = $.fn.cronGen.tools.cronResult();
+                        break;
+                }
+                break;
+        }
+
+        // Update original control
+        inputElement.val(results);
+        // Update display
+        displayElement.val(results);
+    };
+
+})(jQuery);
+
+(function($) {
+    $.fn.cronGen.defaultOptions = {
+        direction : 'bottom'
+    };
+    $.fn.cronGen.tools = {
+        /**
+         * 每周期
+         */
+        everyTime : function(dom){
+            $("#"+dom+"Hidden").val("*");
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        /**
+         * 不指定
+         */
+        unAppoint : function(dom){
+            var val = "?";
+            if (dom == "year")
+            {
+                val = "";
+            }
+            $("#"+dom+"Hidden").val(val);
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        /**
+         * 周期
+         */
+        cycle : function(dom){
+            var start = $("#"+dom+"Start_0").val();
+            var end = $("#"+dom+"End_0").val();
+            $("#"+dom+"Hidden").val(start + "-" + end);
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        /**
+         * 从开始
+         */
+        startOn : function(dom) {
+            var start = $("#"+dom+"Start_1").val();
+            var end = $("#"+dom+"End_1").val();
+            $("#"+dom+"Hidden").val(start + "/" + end);
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        /**
+         * 最后一天
+         */
+        lastDay : function(dom){
+            $("#"+dom+"Hidden").val("L");
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        /**
+         * 每周的某一天
+         */
+        weekOfDay : function(dom){
+            var start = $("#"+dom+"Start_0").val();
+            var end = $("#"+dom+"End_0").val();
+            $("#"+dom+"Hidden").val(start + "#" + end);
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        /**
+         * 最后一周
+         */
+        lastWeek : function(dom){
+            var start = $("#"+dom+"Start_2").val();
+            $("#"+dom+"Hidden").val(start+"L");
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        /**
+         * 工作日
+         */
+        workDay : function(dom) {
+            var start = $("#"+dom+"Start_2").val();
+            $("#"+dom+"Hidden").val(start + "W");
+            $.fn.cronGen.tools.clearCheckbox(dom);
+        },
+        initChangeEvent : function(){
+            var secondList = $(".secondList").children();
+            $("#sencond_appoint").click(function(){
+                if (this.checked) {
+                    if ($(secondList).filter(":checked").length == 0) {
+                        $(secondList.eq(0)).attr("checked", true);
+                    }
+                    secondList.eq(0).change();
+                }
+            });
+
+            secondList.change(function() {
+                var sencond_appoint = $("#sencond_appoint").prop("checked");
+                if (sencond_appoint) {
+                    var vals = [];
+                    secondList.each(function() {
+                        if (this.checked) {
+                            vals.push(this.value);
+                        }
+                    });
+                    var val = "?";
+                    if (vals.length > 0 && vals.length < 59) {
+                        val = vals.join(",");
+                    }else if(vals.length == 59){
+                        val = "*";
+                    }
+                    $("#secondHidden").val(val);
+                }
+            });
+
+            var minList = $(".minList").children();
+            $("#min_appoint").click(function(){
+                if (this.checked) {
+                    if ($(minList).filter(":checked").length == 0) {
+                        $(minList.eq(0)).attr("checked", true);
+                    }
+                    minList.eq(0).change();
+                }
+            });
+
+            minList.change(function() {
+                var min_appoint = $("#min_appoint").prop("checked");
+                if (min_appoint) {
+                    var vals = [];
+                    minList.each(function() {
+                        if (this.checked) {
+                            vals.push(this.value);
+                        }
+                    });
+                    var val = "?";
+                    if (vals.length > 0 && vals.length < 59) {
+                        val = vals.join(",");
+                    }else if(vals.length == 59){
+                        val = "*";
+                    }
+                    $("#minHidden").val(val);
+                }
+            });
+
+            var hourList = $(".hourList").children();
+            $("#hour_appoint").click(function(){
+                if (this.checked) {
+                    if ($(hourList).filter(":checked").length == 0) {
+                        $(hourList.eq(0)).attr("checked", true);
+                    }
+                    hourList.eq(0).change();
+                }
+            });
+
+            hourList.change(function() {
+                var hour_appoint = $("#hour_appoint").prop("checked");
+                if (hour_appoint) {
+                    var vals = [];
+                    hourList.each(function() {
+                        if (this.checked) {
+                            vals.push(this.value);
+                        }
+                    });
+                    var val = "?";
+                    if (vals.length > 0 && vals.length < 24) {
+                        val = vals.join(",");
+                    }else if(vals.length == 24){
+                        val = "*";
+                    }
+                    $("#hourHidden").val(val);
+                }
+            });
+
+            var dayList = $(".dayList").children();
+            $("#day_appoint").click(function(){
+                if (this.checked) {
+                    if ($(dayList).filter(":checked").length == 0) {
+                        $(dayList.eq(0)).attr("checked", true);
+                    }
+                    dayList.eq(0).change();
+                }
+            });
+
+            dayList.change(function() {
+                var day_appoint = $("#day_appoint").prop("checked");
+                if (day_appoint) {
+                    var vals = [];
+                    dayList.each(function() {
+                        if (this.checked) {
+                            vals.push(this.value);
+                        }
+                    });
+                    var val = "?";
+                    if (vals.length > 0 && vals.length < 31) {
+                        val = vals.join(",");
+                    }else if(vals.length == 31){
+                        val = "*";
+                    }
+                   $("#dayHidden").val(val);
+                }
+            });
+
+            var monthList = $(".monthList").children();
+            $("#month_appoint").click(function(){
+                if (this.checked) {
+                    if ($(monthList).filter(":checked").length == 0) {
+                        $(monthList.eq(0)).attr("checked", true);
+                    }
+                    monthList.eq(0).change();
+                }
+            });
+
+            monthList.change(function() {
+                var month_appoint = $("#month_appoint").prop("checked");
+                if (month_appoint) {
+                    var vals = [];
+                    monthList.each(function() {
+                        if (this.checked) {
+                            vals.push(this.value);
+                        }
+                    });
+                    var val = "?";
+                    if (vals.length > 0 && vals.length < 12) {
+                        val = vals.join(",");
+                    }else if(vals.length == 12){
+                        val = "*";
+                    }
+                    $("#monthHidden").val(val);
+                }
+            });
+
+            var weekList = $(".weekList").children();
+            $("#week_appoint").click(function(){
+                if (this.checked) {
+                    if ($(weekList).filter(":checked").length == 0) {
+                        $(weekList.eq(0)).attr("checked", true);
+                    }
+                    weekList.eq(0).change();
+                }
+            });
+
+            weekList.change(function() {
+                var week_appoint = $("#week_appoint").prop("checked");
+                if (week_appoint) {
+                    var vals = [];
+                    weekList.each(function() {
+                        if (this.checked) {
+                            vals.push(this.value);
+                        }
+                    });
+                    var val = "?";
+                    if (vals.length > 0 && vals.length < 7) {
+                        val = vals.join(",");
+                    }else if(vals.length == 7){
+                        val = "*";
+                    }
+                   $("#weekHidden").val(val);
+                }
+            });
+        },
+        initObj : function(strVal, strid){
+            var ary = null;
+            var objRadio = $("input[name='" + strid + "'");
+            if (strVal == "*") {
+                objRadio.eq(0).attr("checked", "checked");
+            } else if (strVal.split('-').length > 1) {
+                ary = strVal.split('-');
+                objRadio.eq(1).attr("checked", "checked");
+                $("#" + strid + "Start_0").val(ary[0]);
+                $("#" + strid + "End_0").val(ary[1]);
+            } else if (strVal.split('/').length > 1) {
+                ary = strVal.split('/');
+                objRadio.eq(2).attr("checked", "checked");
+                $("#" + strid + "Start_1").val(ary[0]);
+                $("#" + strid + "End_1").val(ary[1]);
+            } else {
+                objRadio.eq(3).attr("checked", "checked");
+                if (strVal != "?") {
+                    ary = strVal.split(",");
+                    for (var i = 0; i < ary.length; i++) {
+                        $("." + strid + "List input[value='" + ary[i] + "']").attr("checked", "checked");
+                    }
+                    $.fn.cronGen.tools.initCheckBox(strid);
+                }
+            }
+        },
+        initDay : function(strVal) {
+            var ary = null;
+            var objRadio = $("input[name='day'");
+            if (strVal == "*") {
+                objRadio.eq(0).attr("checked", "checked");
+            } else if (strVal == "?") {
+                objRadio.eq(1).attr("checked", "checked");
+            } else if (strVal.split('-').length > 1) {
+                ary = strVal.split('-');
+                objRadio.eq(2).attr("checked", "checked");
+                $("#dayStart_0").val(ary[0]);
+                $("#dayEnd_0").val(ary[1]);
+            } else if (strVal.split('/').length > 1) {
+                ary = strVal.split('/');
+                objRadio.eq(3).attr("checked", "checked");
+                $("#dayStart_1").val(ary[0]);
+                $("#dayEnd_1").val(ary[1]);
+            } else if (strVal.split('W').length > 1) {
+                ary = strVal.split('W');
+                objRadio.eq(4).attr("checked", "checked");
+                $("#dayStart_2").val(ary[0]);
+            } else if (strVal == "L") {
+                objRadio.eq(5).attr("checked", "checked");
+            } else {
+                objRadio.eq(6).attr("checked", "checked");
+                ary = strVal.split(",");
+                for (var i = 0; i < ary.length; i++) {
+                    $(".dayList input[value='" + ary[i] + "']").attr("checked", "checked");
+                }
+                $.fn.cronGen.tools.initCheckBox("day");
+            }
+        },
+        initMonth : function(strVal) {
+            var ary = null;
+            var objRadio = $("input[name='month'");
+            if (strVal == "*") {
+                objRadio.eq(0).attr("checked", "checked");
+            } else if (strVal == "?") {
+                objRadio.eq(1).attr("checked", "checked");
+            } else if (strVal.split('-').length > 1) {
+                ary = strVal.split('-');
+                objRadio.eq(2).attr("checked", "checked");
+                $("#monthStart_0").val(ary[0]);
+                $("#monthEnd_0").val(ary[1]);
+            } else if (strVal.split('/').length > 1) {
+                ary = strVal.split('/');
+                objRadio.eq(3).attr("checked", "checked");
+                $("#monthStart_1").val(ary[0]);
+                $("#monthEnd_1").val(ary[1]);
+
+            } else {
+                objRadio.eq(4).attr("checked", "checked");
+
+                ary = strVal.split(",");
+                for (var i = 0; i < ary.length; i++) {
+                    $(".monthList input[value='" + ary[i] + "']").attr("checked", "checked");
+                }
+                $.fn.cronGen.tools.initCheckBox("month");
+            }
+        },
+        initWeek : function(strVal) {
+            var ary = null;
+            var objRadio = $("input[name='week'");
+            if (strVal == "*") {
+                objRadio.eq(0).attr("checked", "checked");
+            } else if (strVal == "?") {
+                objRadio.eq(1).attr("checked", "checked");
+            } else if (strVal.split('/').length > 1) {
+                ary = strVal.split('/');
+                objRadio.eq(2).attr("checked", "checked");
+                $("#weekStart_0").val(ary[0]);
+                $("#weekEnd_0").val(ary[1]);
+            } else if (strVal.split('-').length > 1) {
+                ary = strVal.split('-');
+                objRadio.eq(3).attr("checked", "checked");
+                $("#weekStart_1").val(ary[0]);
+                $("#weekEnd_1").val(ary[1]);
+            } else if (strVal.split('L').length > 1) {
+                ary = strVal.split('L');
+                objRadio.eq(4).attr("checked", "checked");
+                $("#weekStart_2").val(ary[0]);
+            } else {
+                objRadio.eq(5).attr("checked", "checked");
+                ary = strVal.split(",");
+                for (var i = 0; i < ary.length; i++) {
+                    $(".weekList input[value='" + ary[i] + "']").attr("checked", "checked");
+                }
+                $.fn.cronGen.tools.initCheckBox("week");
+            }
+        },
+        initYear : function(strVal) {
+            var ary = null;
+            var objRadio = $("input[name='year'");
+            if (strVal == "*") {
+                objRadio.eq(1).attr("checked", "checked");
+            } else if (strVal.split('-').length > 1) {
+                ary = strVal.split('-');
+                objRadio.eq(2).attr("checked", "checked");
+                $("#yearStart_0").val(ary[0]);
+                $("#yearEnd_0").val(ary[1]);
+            }
+        },
+        cronParse : function(cronExpress) {
+            //获取参数中表达式的值
+            if (cronExpress) {
+                var regs = cronExpress.split(' ');
+                $("input[name=secondHidden]").val(regs[0]);
+                $("input[name=minHidden]").val(regs[1]);
+                $("input[name=hourHidden]").val(regs[2]);
+                $("input[name=dayHidden]").val(regs[3]);
+                $("input[name=monthHidden]").val(regs[4]);
+                $("input[name=weekHidden]").val(regs[5]);
+
+                $.fn.cronGen.tools.initObj(regs[0], "second");
+                $.fn.cronGen.tools.initObj(regs[1], "min");
+                $.fn.cronGen.tools.initObj(regs[2], "hour");
+                $.fn.cronGen.tools.initDay(regs[3]);
+                $.fn.cronGen.tools.initMonth(regs[4]);
+                $.fn.cronGen.tools.initWeek(regs[5]);
+
+                if (regs.length > 6) {
+                    $("input[name=yearHidden]").val(regs[6]);
+                    $.fn.cronGen.tools.initYear(regs[6]);
+                }
+            }
+    	},
+        cronResult : function() {
+            var result;
+            var second = $("#secondHidden").val();
+            second = second== "" ? "*":second;
+            var minute = $("#minHidden").val();
+            minute = minute== "" ? "*":minute;
+            var hour = $("#hourHidden").val();
+            hour = hour== "" ? "*":hour;
+            var day = $("#dayHidden").val();
+            day = day== "" ? "*":day;
+            var month = $("#monthHidden").val();
+            month = month== "" ? "*":month;
+            var week = $("#weekHidden").val();
+            week = week== "" ? "?":week;
+            var year = $("#yearHidden").val();
+            if(year!="")
+            {
+                result = second+" "+minute+" "+hour+" "+day+" "+month+" "+week+" "+year;
+            }else
+            {
+                result = second+" "+minute+" "+hour+" "+day+" "+month+" "+week;
+            }
+            return result;
+        },
+        clearCheckbox : function(dom){
+        	//清除选中的checkbox
+            var list = $("."+dom+"List").children().filter(":checked");
+            if ($(list).length > 0) {
+            	$.each(list, function(index){
+            		$(this).attr("checked", false);
+            		$(this).attr("disabled", "disabled");
+            		$(this).change();
+            	});
+            }
+        },
+        initCheckBox : function(dom) {
+        	//移除checkbox禁用
+            var list = $("."+dom+"List").children();
+            if ($(list).length > 0) {
+            	$.each(list, function(index){
+            		$(this).removeAttr("disabled");
+            	});
+            }
+        }
+    };
+})(jQuery);
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/echarts/echarts.common.min.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/echarts/echarts.common.min.js
new file mode 100644
index 0000000..cdf14db
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/echarts/echarts.common.min.js
@@ -0,0 +1,22 @@
+
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.echarts={})}(this,function(t){"use strict";function e(t,e){"createCanvas"===t&&(zp=null),Lp[t]=e}function n(t){if(null==t||"object"!=typeof t)return t;var e=t,i=Ip.call(t);if("[object Array]"===i){if(!z(t)){e=[];for(var r=0,o=t.length;r<o;r++)e[r]=n(t[r])}}else if(Sp[i]){if(!z(t)){var a=t.constructor;if(t.constructor.from)e=a.from(t);else{e=new a(t.length);for(var r=0,o=t.length;r<o;r++)e[r]=n(t[r])}}}else if(!Mp[i]&&!z(t)&&!S(t)){e={};for(var s in t)t.hasOwnProperty(s)&&(e[s]=n(t[s]))}return e}function i(t,e,r){if(!w(e)||!w(t))return r?n(e):t;for(var o in e)if(e.hasOwnProperty(o)){var a=t[o],s=e[o];!w(s)||!w(a)||y(s)||y(a)||S(s)||S(a)||b(s)||b(a)||z(s)||z(a)?!r&&o in t||(t[o]=n(e[o],!0)):i(a,s,r)}return t}function r(t,e){for(var n=t[0],r=1,o=t.length;r<o;r++)n=i(n,t[r],e);return n}function o(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function a(t,e,n){for(var i in e)e.hasOwnProperty(i)&&(n?null!=e[i]:null==t[i])&&(t[i]=e[i]);return t}function s(){return zp||(zp=Op().getContext("2d")),zp}function l(t,e){if(t){if(t.indexOf)return t.indexOf(e);for(var n=0,i=t.length;n<i;n++)if(t[n]===e)return n}return-1}function u(t,e){function n(){}var i=t.prototype;n.prototype=e.prototype,t.prototype=new n;for(var r in i)t.prototype[r]=i[r];t.prototype.constructor=t,t.superClass=e}function h(t,e,n){a(t="prototype"in t?t.prototype:t,e="prototype"in e?e.prototype:e,n)}function c(t){if(t)return"string"!=typeof t&&"number"==typeof t.length}function d(t,e,n){if(t&&e)if(t.forEach&&t.forEach===Tp)t.forEach(e,n);else if(t.length===+t.length)for(var i=0,r=t.length;i<r;i++)e.call(n,t[i],i,t);else for(var o in t)t.hasOwnProperty(o)&&e.call(n,t[o],o,t)}function f(t,e,n){if(t&&e){if(t.map&&t.map===kp)return t.map(e,n);for(var i=[],r=0,o=t.length;r<o;r++)i.push(e.call(n,t[r],r,t));return i}}function p(t,e,n,i){if(t&&e){if(t.reduce&&t.reduce===Pp)return t.reduce(e,n,i);for(var r=0,o=t.length;r<o;r++)n=e.call(i,n,t[r],r,t);return n}}function g(t,e,n){if(t&&e){if(t.filter&&t.filter===Dp)return t.filter(e,n);for(var i=[],r=0,o=t.length;r<o;r++)e.call(n,t[r],r,t)&&i.push(t[r]);return i}}function m(t,e){var n=Ap.call(arguments,2);return function(){return t.apply(e,n.concat(Ap.call(arguments)))}}function v(t){var e=Ap.call(arguments,1);return function(){return t.apply(this,e.concat(Ap.call(arguments)))}}function y(t){return"[object Array]"===Ip.call(t)}function x(t){return"function"==typeof t}function _(t){return"[object String]"===Ip.call(t)}function w(t){var e=typeof t;return"function"===e||!!t&&"object"==e}function b(t){return!!Mp[Ip.call(t)]}function M(t){return!!Sp[Ip.call(t)]}function S(t){return"object"==typeof t&&"number"==typeof t.nodeType&&"object"==typeof t.ownerDocument}function I(t){return t!==t}function C(t){for(var e=0,n=arguments.length;e<n;e++)if(null!=arguments[e])return arguments[e]}function T(t,e){return null!=t?t:e}function D(t,e,n){return null!=t?t:null!=e?e:n}function A(){return Function.call.apply(Ap,arguments)}function k(t){if("number"==typeof t)return[t,t,t,t];var e=t.length;return 2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t}function P(t,e){if(!t)throw new Error(e)}function L(t){return null==t?null:"function"==typeof t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}function O(t){t[Ep]=!0}function z(t){return t[Ep]}function E(t){function e(t,e){n?i.set(t,e):i.set(e,t)}var n=y(t),i=this;t instanceof E?t.each(e):t&&d(t,e)}function N(t){return new E(t)}function R(){}function B(t,e){var n=new Rp(2);return null==t&&(t=0),null==e&&(e=0),n[0]=t,n[1]=e,n}function V(t,e){return t[0]=e[0],t[1]=e[1],t}function F(t){var e=new Rp(2);return e[0]=t[0],e[1]=t[1],e}function H(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function G(t,e,n,i){return t[0]=e[0]+n[0]*i,t[1]=e[1]+n[1]*i,t}function W(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function Z(t){return Math.sqrt(U(t))}function U(t){return t[0]*t[0]+t[1]*t[1]}function X(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t}function j(t,e){var n=Z(e);return 0===n?(t[0]=0,t[1]=0):(t[0]=e[0]/n,t[1]=e[1]/n),t}function Y(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))}function q(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])}function $(t,e,n){var i=e[0],r=e[1];return t[0]=n[0]*i+n[2]*r+n[4],t[1]=n[1]*i+n[3]*r+n[5],t}function K(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t}function Q(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t}function J(){this.on("mousedown",this._dragStart,this),this.on("mousemove",this._drag,this),this.on("mouseup",this._dragEnd,this),this.on("globalout",this._dragEnd,this)}function tt(t,e){return{target:t,topTarget:e&&e.topTarget}}function et(t,e,n){return{type:t,event:n,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which}}function nt(){}function it(t,e,n){if(t[t.rectHover?"rectContain":"contain"](e,n)){for(var i,r=t;r;){if(r.clipPath&&!r.clipPath.contain(e,n))return!1;r.silent&&(i=!0),r=r.parent}return!i||Up}return!1}function rt(){var t=new Yp(6);return ot(t),t}function ot(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function at(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function st(t,e,n){var i=e[0]*n[0]+e[2]*n[1],r=e[1]*n[0]+e[3]*n[1],o=e[0]*n[2]+e[2]*n[3],a=e[1]*n[2]+e[3]*n[3],s=e[0]*n[4]+e[2]*n[5]+e[4],l=e[1]*n[4]+e[3]*n[5]+e[5];return t[0]=i,t[1]=r,t[2]=o,t[3]=a,t[4]=s,t[5]=l,t}function lt(t,e,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+n[0],t[5]=e[5]+n[1],t}function ut(t,e,n){var i=e[0],r=e[2],o=e[4],a=e[1],s=e[3],l=e[5],u=Math.sin(n),h=Math.cos(n);return t[0]=i*h+a*u,t[1]=-i*u+a*h,t[2]=r*h+s*u,t[3]=-r*u+h*s,t[4]=h*o+u*l,t[5]=h*l-u*o,t}function ht(t,e,n){var i=n[0],r=n[1];return t[0]=e[0]*i,t[1]=e[1]*r,t[2]=e[2]*i,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*r,t}function ct(t,e){var n=e[0],i=e[2],r=e[4],o=e[1],a=e[3],s=e[5],l=n*a-o*i;return l?(l=1/l,t[0]=a*l,t[1]=-o*l,t[2]=-i*l,t[3]=n*l,t[4]=(i*s-a*r)*l,t[5]=(o*r-n*s)*l,t):null}function dt(t){return t>Kp||t<-Kp}function ft(t){this._target=t.target,this._life=t.life||1e3,this._delay=t.delay||0,this._initialized=!1,this.loop=null!=t.loop&&t.loop,this.gap=t.gap||0,this.easing=t.easing||"Linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart,this._pausedTime=0,this._paused=!1}function pt(t){return(t=Math.round(t))<0?0:t>255?255:t}function gt(t){return(t=Math.round(t))<0?0:t>360?360:t}function mt(t){return t<0?0:t>1?1:t}function vt(t){return pt(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100*255:parseInt(t,10))}function yt(t){return mt(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100:parseFloat(t))}function xt(t,e,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?t+(e-t)*n*6:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function _t(t,e,n){return t+(e-t)*n}function wt(t,e,n,i,r){return t[0]=e,t[1]=n,t[2]=i,t[3]=r,t}function bt(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Mt(t,e){ug&&bt(ug,e),ug=lg.put(t,ug||e.slice())}function St(t,e){if(t){e=e||[];var n=lg.get(t);if(n)return bt(e,n);var i=(t+="").replace(/ /g,"").toLowerCase();if(i in sg)return bt(e,sg[i]),Mt(t,e),e;if("#"!==i.charAt(0)){var r=i.indexOf("("),o=i.indexOf(")");if(-1!==r&&o+1===i.length){var a=i.substr(0,r),s=i.substr(r+1,o-(r+1)).split(","),l=1;switch(a){case"rgba":if(4!==s.length)return void wt(e,0,0,0,1);l=yt(s.pop());case"rgb":return 3!==s.length?void wt(e,0,0,0,1):(wt(e,vt(s[0]),vt(s[1]),vt(s[2]),l),Mt(t,e),e);case"hsla":return 4!==s.length?void wt(e,0,0,0,1):(s[3]=yt(s[3]),It(s,e),Mt(t,e),e);case"hsl":return 3!==s.length?void wt(e,0,0,0,1):(It(s,e),Mt(t,e),e);default:return}}wt(e,0,0,0,1)}else{if(4===i.length)return(u=parseInt(i.substr(1),16))>=0&&u<=4095?(wt(e,(3840&u)>>4|(3840&u)>>8,240&u|(240&u)>>4,15&u|(15&u)<<4,1),Mt(t,e),e):void wt(e,0,0,0,1);if(7===i.length){var u=parseInt(i.substr(1),16);return u>=0&&u<=16777215?(wt(e,(16711680&u)>>16,(65280&u)>>8,255&u,1),Mt(t,e),e):void wt(e,0,0,0,1)}}}}function It(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=yt(t[1]),r=yt(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return e=e||[],wt(e,pt(255*xt(a,o,n+1/3)),pt(255*xt(a,o,n)),pt(255*xt(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Ct(t){if(t){var e,n,i=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),l=s-a,u=(s+a)/2;if(0===l)e=0,n=0;else{n=u<.5?l/(s+a):l/(2-s-a);var h=((s-i)/6+l/2)/l,c=((s-r)/6+l/2)/l,d=((s-o)/6+l/2)/l;i===s?e=d-c:r===s?e=1/3+h-d:o===s&&(e=2/3+c-h),e<0&&(e+=1),e>1&&(e-=1)}var f=[360*e,n,u];return null!=t[3]&&f.push(t[3]),f}}function Tt(t,e){var n=St(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,n[i]>255?n[i]=255:t[i]<0&&(n[i]=0);return Lt(n,4===n.length?"rgba":"rgb")}}function Dt(t){var e=St(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function At(t,e,n){if(e&&e.length&&t>=0&&t<=1){n=n||[];var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=e[r],s=e[o],l=i-r;return n[0]=pt(_t(a[0],s[0],l)),n[1]=pt(_t(a[1],s[1],l)),n[2]=pt(_t(a[2],s[2],l)),n[3]=mt(_t(a[3],s[3],l)),n}}function kt(t,e,n){if(e&&e.length&&t>=0&&t<=1){var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=St(e[r]),s=St(e[o]),l=i-r,u=Lt([pt(_t(a[0],s[0],l)),pt(_t(a[1],s[1],l)),pt(_t(a[2],s[2],l)),mt(_t(a[3],s[3],l))],"rgba");return n?{color:u,leftIndex:r,rightIndex:o,value:i}:u}}function Pt(t,e){if((t=St(t))&&null!=e)return t[3]=mt(e),Lt(t,"rgba")}function Lt(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function Ot(t,e){return t[e]}function zt(t,e,n){t[e]=n}function Et(t,e,n){return(e-t)*n+t}function Nt(t,e,n){return n>.5?e:t}function Rt(t,e,n,i,r){var o=t.length;if(1==r)for(s=0;s<o;s++)i[s]=Et(t[s],e[s],n);else for(var a=o&&t[0].length,s=0;s<o;s++)for(var l=0;l<a;l++)i[s][l]=Et(t[s][l],e[s][l],n)}function Bt(t,e,n){var i=t.length,r=e.length;if(i!==r)if(i>r)t.length=r;else for(a=i;a<r;a++)t.push(1===n?e[a]:fg.call(e[a]));for(var o=t[0]&&t[0].length,a=0;a<t.length;a++)if(1===n)isNaN(t[a])&&(t[a]=e[a]);else for(var s=0;s<o;s++)isNaN(t[a][s])&&(t[a][s]=e[a][s])}function Vt(t,e,n){if(t===e)return!0;var i=t.length;if(i!==e.length)return!1;if(1===n){for(o=0;o<i;o++)if(t[o]!==e[o])return!1}else for(var r=t[0].length,o=0;o<i;o++)for(var a=0;a<r;a++)if(t[o][a]!==e[o][a])return!1;return!0}function Ft(t,e,n,i,r,o,a,s,l){var u=t.length;if(1==l)for(c=0;c<u;c++)s[c]=Ht(t[c],e[c],n[c],i[c],r,o,a);else for(var h=t[0].length,c=0;c<u;c++)for(var d=0;d<h;d++)s[c][d]=Ht(t[c][d],e[c][d],n[c][d],i[c][d],r,o,a)}function Ht(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function Gt(t){if(c(t)){var e=t.length;if(c(t[0])){for(var n=[],i=0;i<e;i++)n.push(fg.call(t[i]));return n}return fg.call(t)}return t}function Wt(t){return t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.floor(t[2]),"rgba("+t.join(",")+")"}function Zt(t){var e=t[t.length-1].value;return c(e&&e[0])?2:1}function Ut(t,e,n,i,r,o){var a=t._getter,s=t._setter,l="spline"===e,u=i.length;if(u){var h,d=c(i[0].value),f=!1,p=!1,g=d?Zt(i):0;i.sort(function(t,e){return t.time-e.time}),h=i[u-1].time;for(var m=[],v=[],y=i[0].value,x=!0,_=0;_<u;_++){m.push(i[_].time/h);var w=i[_].value;if(d&&Vt(w,y,g)||!d&&w===y||(x=!1),y=w,"string"==typeof w){var b=St(w);b?(w=b,f=!0):p=!0}v.push(w)}if(o||!x){for(var M=v[u-1],_=0;_<u-1;_++)d?Bt(v[_],M,g):!isNaN(v[_])||isNaN(M)||p||f||(v[_]=M);d&&Bt(a(t._target,r),M,g);var S,I,C,T,D,A,k=0,P=0;if(f)var L=[0,0,0,0];var O=new ft({target:t._target,life:h,loop:t._loop,delay:t._delay,onframe:function(t,e){var n;if(e<0)n=0;else if(e<P){for(n=S=Math.min(k+1,u-1);n>=0&&!(m[n]<=e);n--);n=Math.min(n,u-2)}else{for(n=k;n<u&&!(m[n]>e);n++);n=Math.min(n-1,u-2)}k=n,P=e;var i=m[n+1]-m[n];if(0!==i)if(I=(e-m[n])/i,l)if(T=v[n],C=v[0===n?n:n-1],D=v[n>u-2?u-1:n+1],A=v[n>u-3?u-1:n+2],d)Ft(C,T,D,A,I,I*I,I*I*I,a(t,r),g);else{if(f)o=Ft(C,T,D,A,I,I*I,I*I*I,L,1),o=Wt(L);else{if(p)return Nt(T,D,I);o=Ht(C,T,D,A,I,I*I,I*I*I)}s(t,r,o)}else if(d)Rt(v[n],v[n+1],I,a(t,r),g);else{var o;if(f)Rt(v[n],v[n+1],I,L,1),o=Wt(L);else{if(p)return Nt(v[n],v[n+1],I);o=Et(v[n],v[n+1],I)}s(t,r,o)}},ondestroy:n});return e&&"spline"!==e&&(O.easing=e),O}}}function Xt(t,e,n,i){n<0&&(t+=n,n=-n),i<0&&(e+=i,i=-i),this.x=t,this.y=e,this.width=n,this.height=i}function jt(t){for(var e=0;t>=Ig;)e|=1&t,t>>=1;return t+e}function Yt(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){for(;r<n&&i(t[r],t[r-1])<0;)r++;qt(t,e,r)}else for(;r<n&&i(t[r],t[r-1])>=0;)r++;return r-e}function qt(t,e,n){for(n--;e<n;){var i=t[e];t[e++]=t[n],t[n--]=i}}function $t(t,e,n,i,r){for(i===e&&i++;i<n;i++){for(var o,a=t[i],s=e,l=i;s<l;)r(a,t[o=s+l>>>1])<0?l=o:s=o+1;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=a}}function Kt(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])>0){for(s=i-r;l<s&&o(t,e[n+r+l])>0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}else{for(s=r+1;l<s&&o(t,e[n+r-l])<=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])>0?a=h+1:l=h}return l}function Qt(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])<0){for(s=r+1;l<s&&o(t,e[n+r-l])<0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}else{for(s=i-r;l<s&&o(t,e[n+r+l])>=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function Jt(t,e){function n(n){var s=o[n],u=a[n],h=o[n+1],c=a[n+1];a[n]=u+c,n===l-3&&(o[n+1]=o[n+2],a[n+1]=a[n+2]),l--;var d=Qt(t[h],t,s,u,0,e);s+=d,0!==(u-=d)&&0!==(c=Kt(t[s+u-1],t,h,c,c-1,e))&&(u<=c?i(s,u,h,c):r(s,u,h,c))}function i(n,i,r,o){var a=0;for(a=0;a<i;a++)u[a]=t[n+a];var l=0,h=r,c=n;if(t[c++]=t[h++],0!=--o)if(1!==i){for(var d,f,p,g=s;;){d=0,f=0,p=!1;do{if(e(t[h],u[l])<0){if(t[c++]=t[h++],f++,d=0,0==--o){p=!0;break}}else if(t[c++]=u[l++],d++,f=0,1==--i){p=!0;break}}while((d|f)<g);if(p)break;do{if(0!==(d=Qt(t[h],u,l,i,0,e))){for(a=0;a<d;a++)t[c+a]=u[l+a];if(c+=d,l+=d,(i-=d)<=1){p=!0;break}}if(t[c++]=t[h++],0==--o){p=!0;break}if(0!==(f=Kt(u[l],t,h,o,0,e))){for(a=0;a<f;a++)t[c+a]=t[h+a];if(c+=f,h+=f,0===(o-=f)){p=!0;break}}if(t[c++]=u[l++],1==--i){p=!0;break}g--}while(d>=Cg||f>=Cg);if(p)break;g<0&&(g=0),g+=2}if((s=g)<1&&(s=1),1===i){for(a=0;a<o;a++)t[c+a]=t[h+a];t[c+o]=u[l]}else{if(0===i)throw new Error;for(a=0;a<i;a++)t[c+a]=u[l+a]}}else{for(a=0;a<o;a++)t[c+a]=t[h+a];t[c+o]=u[l]}else for(a=0;a<i;a++)t[c+a]=u[l+a]}function r(n,i,r,o){var a=0;for(a=0;a<o;a++)u[a]=t[r+a];var l=n+i-1,h=o-1,c=r+o-1,d=0,f=0;if(t[c--]=t[l--],0!=--i)if(1!==o){for(var p=s;;){var g=0,m=0,v=!1;do{if(e(u[h],t[l])<0){if(t[c--]=t[l--],g++,m=0,0==--i){v=!0;break}}else if(t[c--]=u[h--],m++,g=0,1==--o){v=!0;break}}while((g|m)<p);if(v)break;do{if(0!=(g=i-Qt(u[h],t,n,i,i-1,e))){for(i-=g,f=(c-=g)+1,d=(l-=g)+1,a=g-1;a>=0;a--)t[f+a]=t[d+a];if(0===i){v=!0;break}}if(t[c--]=u[h--],1==--o){v=!0;break}if(0!=(m=o-Kt(t[l],u,0,o,o-1,e))){for(o-=m,f=(c-=m)+1,d=(h-=m)+1,a=0;a<m;a++)t[f+a]=u[d+a];if(o<=1){v=!0;break}}if(t[c--]=t[l--],0==--i){v=!0;break}p--}while(g>=Cg||m>=Cg);if(v)break;p<0&&(p=0),p+=2}if((s=p)<1&&(s=1),1===o){for(f=(c-=i)+1,d=(l-=i)+1,a=i-1;a>=0;a--)t[f+a]=t[d+a];t[c]=u[h]}else{if(0===o)throw new Error;for(d=c-(o-1),a=0;a<o;a++)t[d+a]=u[a]}}else{for(f=(c-=i)+1,d=(l-=i)+1,a=i-1;a>=0;a--)t[f+a]=t[d+a];t[c]=u[h]}else for(d=c-(o-1),a=0;a<o;a++)t[d+a]=u[a]}var o,a,s=Cg,l=0,u=[];o=[],a=[],this.mergeRuns=function(){for(;l>1;){var t=l-2;if(t>=1&&a[t-1]<=a[t]+a[t+1]||t>=2&&a[t-2]<=a[t]+a[t-1])a[t-1]<a[t+1]&&t--;else if(a[t]>a[t+1])break;n(t)}},this.forceMergeRuns=function(){for(;l>1;){var t=l-2;t>0&&a[t-1]<a[t+1]&&t--,n(t)}},this.pushRun=function(t,e){o[l]=t,a[l]=e,l+=1}}function te(t,e,n,i){n||(n=0),i||(i=t.length);var r=i-n;if(!(r<2)){var o=0;if(r<Ig)return o=Yt(t,n,i,e),void $t(t,n,i,n+o,e);var a=new Jt(t,e),s=jt(r);do{if((o=Yt(t,n,i,e))<s){var l=r;l>s&&(l=s),$t(t,n,n+l,n+o,e),o=l}a.pushRun(n,o),a.mergeRuns(),r-=o,n+=o}while(0!==r);a.forceMergeRuns()}}function ee(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}function ne(t,e,n){var i=null==e.x?0:e.x,r=null==e.x2?1:e.x2,o=null==e.y?0:e.y,a=null==e.y2?0:e.y2;return e.global||(i=i*n.width+n.x,r=r*n.width+n.x,o=o*n.height+n.y,a=a*n.height+n.y),i=isNaN(i)?0:i,r=isNaN(r)?1:r,o=isNaN(o)?0:o,a=isNaN(a)?0:a,t.createLinearGradient(i,o,r,a)}function ie(t,e,n){var i=n.width,r=n.height,o=Math.min(i,r),a=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;return e.global||(a=a*i+n.x,s=s*r+n.y,l*=o),t.createRadialGradient(a,s,0,a,s,l)}function re(){return!1}function oe(t,e,n){var i=Op(),r=e.getWidth(),o=e.getHeight(),a=i.style;return a&&(a.position="absolute",a.left=0,a.top=0,a.width=r+"px",a.height=o+"px",i.setAttribute("data-zr-dom-id",t)),i.width=r*n,i.height=o*n,i}function ae(t){if("string"==typeof t){var e=Bg.get(t);return e&&e.image}return t}function se(t,e,n,i,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var o=Bg.get(t),a={hostEl:n,cb:i,cbPayload:r};return o?!ue(e=o.image)&&o.pending.push(a):(!e&&(e=new Image),e.onload=le,Bg.put(t,e.__cachedImgObj={image:e,pending:[a]}),e.src=e.__zrImageSrc=t),e}return t}return e}function le(){var t=this.__cachedImgObj;this.onload=this.__cachedImgObj=null;for(var e=0;e<t.pending.length;e++){var n=t.pending[e],i=n.cb;i&&i(this,n.cbPayload),n.hostEl.dirty()}t.pending.length=0}function ue(t){return t&&t.width&&t.height}function he(t,e){var n=t+":"+(e=e||Wg);if(Vg[n])return Vg[n];for(var i=(t+"").split("\n"),r=0,o=0,a=i.length;o<a;o++)r=Math.max(be(i[o],e).width,r);return Fg>Hg&&(Fg=0,Vg={}),Fg++,Vg[n]=r,r}function ce(t,e,n,i,r,o,a){return o?fe(t,e,n,i,r,o,a):de(t,e,n,i,r,a)}function de(t,e,n,i,r,o){var a=Me(t,e,r,o),s=he(t,e);r&&(s+=r[1]+r[3]);var l=a.outerHeight,u=new Xt(pe(0,s,n),ge(0,l,i),s,l);return u.lineHeight=a.lineHeight,u}function fe(t,e,n,i,r,o,a){var s=Se(t,{rich:o,truncate:a,font:e,textAlign:n,textPadding:r}),l=s.outerWidth,u=s.outerHeight;return new Xt(pe(0,l,n),ge(0,u,i),l,u)}function pe(t,e,n){return"right"===n?t-=e:"center"===n&&(t-=e/2),t}function ge(t,e,n){return"middle"===n?t-=e/2:"bottom"===n&&(t-=e),t}function me(t,e,n){var i=e.x,r=e.y,o=e.height,a=e.width,s=o/2,l="left",u="top";switch(t){case"left":i-=n,r+=s,l="right",u="middle";break;case"right":i+=n+a,r+=s,u="middle";break;case"top":i+=a/2,r-=n,l="center",u="bottom";break;case"bottom":i+=a/2,r+=o+n,l="center";break;case"inside":i+=a/2,r+=s,l="center",u="middle";break;case"insideLeft":i+=n,r+=s,u="middle";break;case"insideRight":i+=a-n,r+=s,l="right",u="middle";break;case"insideTop":i+=a/2,r+=n,l="center";break;case"insideBottom":i+=a/2,r+=o-n,l="center",u="bottom";break;case"insideTopLeft":i+=n,r+=n;break;case"insideTopRight":i+=a-n,r+=n,l="right";break;case"insideBottomLeft":i+=n,r+=o-n,u="bottom";break;case"insideBottomRight":i+=a-n,r+=o-n,l="right",u="bottom"}return{x:i,y:r,textAlign:l,textVerticalAlign:u}}function ve(t,e,n,i,r){if(!e)return"";var o=(t+"").split("\n");r=ye(e,n,i,r);for(var a=0,s=o.length;a<s;a++)o[a]=xe(o[a],r);return o.join("\n")}function ye(t,e,n,i){(i=o({},i)).font=e;var n=T(n,"...");i.maxIterations=T(i.maxIterations,2);var r=i.minChar=T(i.minChar,0);i.cnCharWidth=he("国",e);var a=i.ascCharWidth=he("a",e);i.placeholder=T(i.placeholder,"");for(var s=t=Math.max(0,t-1),l=0;l<r&&s>=a;l++)s-=a;var u=he(n);return u>s&&(n="",u=0),s=t-u,i.ellipsis=n,i.ellipsisWidth=u,i.contentWidth=s,i.containerWidth=t,i}function xe(t,e){var n=e.containerWidth,i=e.font,r=e.contentWidth;if(!n)return"";var o=he(t,i);if(o<=n)return t;for(var a=0;;a++){if(o<=r||a>=e.maxIterations){t+=e.ellipsis;break}var s=0===a?_e(t,r,e.ascCharWidth,e.cnCharWidth):o>0?Math.floor(t.length*r/o):0;o=he(t=t.substr(0,s),i)}return""===t&&(t=e.placeholder),t}function _e(t,e,n,i){for(var r=0,o=0,a=t.length;o<a&&r<e;o++){var s=t.charCodeAt(o);r+=0<=s&&s<=127?n:i}return o}function we(t){return he("国",t)}function be(t,e){return Zg.measureText(t,e)}function Me(t,e,n,i){null!=t&&(t+="");var r=we(e),o=t?t.split("\n"):[],a=o.length*r,s=a;if(n&&(s+=n[0]+n[2]),t&&i){var l=i.outerHeight,u=i.outerWidth;if(null!=l&&s>l)t="",o=[];else if(null!=u)for(var h=ye(u-(n?n[1]+n[3]:0),e,i.ellipsis,{minChar:i.minChar,placeholder:i.placeholder}),c=0,d=o.length;c<d;c++)o[c]=xe(o[c],h)}return{lines:o,height:a,outerHeight:s,lineHeight:r}}function Se(t,e){var n={lines:[],width:0,height:0};if(null!=t&&(t+=""),!t)return n;for(var i,r=Gg.lastIndex=0;null!=(i=Gg.exec(t));){var o=i.index;o>r&&Ie(n,t.substring(r,o)),Ie(n,i[2],i[1]),r=Gg.lastIndex}r<t.length&&Ie(n,t.substring(r,t.length));var a=n.lines,s=0,l=0,u=[],h=e.textPadding,c=e.truncate,d=c&&c.outerWidth,f=c&&c.outerHeight;h&&(null!=d&&(d-=h[1]+h[3]),null!=f&&(f-=h[0]+h[2]));for(k=0;k<a.length;k++){for(var p=a[k],g=0,m=0,v=0;v<p.tokens.length;v++){var y=(P=p.tokens[v]).styleName&&e.rich[P.styleName]||{},x=P.textPadding=y.textPadding,_=P.font=y.font||e.font,w=P.textHeight=T(y.textHeight,we(_));if(x&&(w+=x[0]+x[2]),P.height=w,P.lineHeight=D(y.textLineHeight,e.textLineHeight,w),P.textAlign=y&&y.textAlign||e.textAlign,P.textVerticalAlign=y&&y.textVerticalAlign||"middle",null!=f&&s+P.lineHeight>f)return{lines:[],width:0,height:0};P.textWidth=he(P.text,_);var b=y.textWidth,M=null==b||"auto"===b;if("string"==typeof b&&"%"===b.charAt(b.length-1))P.percentWidth=b,u.push(P),b=0;else{if(M){b=P.textWidth;var S=y.textBackgroundColor,I=S&&S.image;I&&ue(I=ae(I))&&(b=Math.max(b,I.width*w/I.height))}var C=x?x[1]+x[3]:0;b+=C;var A=null!=d?d-m:null;null!=A&&A<b&&(!M||A<C?(P.text="",P.textWidth=b=0):(P.text=ve(P.text,A-C,_,c.ellipsis,{minChar:c.minChar}),P.textWidth=he(P.text,_),b=P.textWidth+C))}m+=P.width=b,y&&(g=Math.max(g,P.lineHeight))}p.width=m,p.lineHeight=g,s+=g,l=Math.max(l,m)}n.outerWidth=n.width=T(e.textWidth,l),n.outerHeight=n.height=T(e.textHeight,s),h&&(n.outerWidth+=h[1]+h[3],n.outerHeight+=h[0]+h[2]);for(var k=0;k<u.length;k++){var P=u[k],L=P.percentWidth;P.width=parseInt(L,10)/100*l}return n}function Ie(t,e,n){for(var i=""===e,r=e.split("\n"),o=t.lines,a=0;a<r.length;a++){var s=r[a],l={styleName:n,text:s,isLineHolder:!s&&!i};if(a)o.push({tokens:[l]});else{var u=(o[o.length-1]||(o[0]={tokens:[]})).tokens,h=u.length;1===h&&u[0].isLineHolder?u[0]=l:(s||!h||i)&&u.push(l)}}}function Ce(t){var e=(t.fontSize||t.fontFamily)&&[t.fontStyle,t.fontWeight,(t.fontSize||12)+"px",t.fontFamily||"sans-serif"].join(" ");return e&&L(e)||t.textFont||t.font}function Te(t,e){var n,i,r,o,a=e.x,s=e.y,l=e.width,u=e.height,h=e.r;l<0&&(a+=l,l=-l),u<0&&(s+=u,u=-u),"number"==typeof h?n=i=r=o=h:h instanceof Array?1===h.length?n=i=r=o=h[0]:2===h.length?(n=r=h[0],i=o=h[1]):3===h.length?(n=h[0],i=o=h[1],r=h[2]):(n=h[0],i=h[1],r=h[2],o=h[3]):n=i=r=o=0;var c;n+i>l&&(n*=l/(c=n+i),i*=l/c),r+o>l&&(r*=l/(c=r+o),o*=l/c),i+r>u&&(i*=u/(c=i+r),r*=u/c),n+o>u&&(n*=u/(c=n+o),o*=u/c),t.moveTo(a+n,s),t.lineTo(a+l-i,s),0!==i&&t.arc(a+l-i,s+i,i,-Math.PI/2,0),t.lineTo(a+l,s+u-r),0!==r&&t.arc(a+l-r,s+u-r,r,0,Math.PI/2),t.lineTo(a+o,s+u),0!==o&&t.arc(a+o,s+u-o,o,Math.PI/2,Math.PI),t.lineTo(a,s+n),0!==n&&t.arc(a+n,s+n,n,Math.PI,1.5*Math.PI)}function De(t){return Ae(t),d(t.rich,Ae),t}function Ae(t){if(t){t.font=Ce(t);var e=t.textAlign;"middle"===e&&(e="center"),t.textAlign=null==e||Ug[e]?e:"left";var n=t.textVerticalAlign||t.textBaseline;"center"===n&&(n="middle"),t.textVerticalAlign=null==n||Xg[n]?n:"top",t.textPadding&&(t.textPadding=k(t.textPadding))}}function ke(t,e,n,i,r){i.rich?Le(t,e,n,i,r):Pe(t,e,n,i,r)}function Pe(t,e,n,i,r){var o=Fe(e,"font",i.font||Wg),a=i.textPadding,s=t.__textCotentBlock;s&&!t.__dirty||(s=t.__textCotentBlock=Me(n,o,a,i.truncate));var l=s.outerHeight,u=s.lines,h=s.lineHeight,c=Ve(l,i,r),d=c.baseX,f=c.baseY,p=c.textAlign,g=c.textVerticalAlign;ze(e,i,r,d,f);var m=ge(f,l,g),v=d,y=m,x=Ne(i);if(x||a){var _=he(n,o);a&&(_+=a[1]+a[3]);var w=pe(d,_,p);x&&Re(t,e,i,w,m,_,l),a&&(v=Ze(d,p,a),y+=a[0])}Fe(e,"textAlign",p||"left"),Fe(e,"textBaseline","middle"),Fe(e,"shadowBlur",i.textShadowBlur||0),Fe(e,"shadowColor",i.textShadowColor||"transparent"),Fe(e,"shadowOffsetX",i.textShadowOffsetX||0),Fe(e,"shadowOffsetY",i.textShadowOffsetY||0),y+=h/2;var b=i.textStrokeWidth,M=He(i.textStroke,b),S=Ge(i.textFill);M&&(Fe(e,"lineWidth",b),Fe(e,"strokeStyle",M)),S&&Fe(e,"fillStyle",S);for(var I=0;I<u.length;I++)M&&e.strokeText(u[I],v,y),S&&e.fillText(u[I],v,y),y+=h}function Le(t,e,n,i,r){var o=t.__textCotentBlock;o&&!t.__dirty||(o=t.__textCotentBlock=Se(n,i)),Oe(t,e,o,i,r)}function Oe(t,e,n,i,r){var o=n.width,a=n.outerWidth,s=n.outerHeight,l=i.textPadding,u=Ve(s,i,r),h=u.baseX,c=u.baseY,d=u.textAlign,f=u.textVerticalAlign;ze(e,i,r,h,c);var p=pe(h,a,d),g=ge(c,s,f),m=p,v=g;l&&(m+=l[3],v+=l[0]);var y=m+o;Ne(i)&&Re(t,e,i,p,g,a,s);for(var x=0;x<n.lines.length;x++){for(var _,w=n.lines[x],b=w.tokens,M=b.length,S=w.lineHeight,I=w.width,C=0,T=m,D=y,A=M-1;C<M&&(!(_=b[C]).textAlign||"left"===_.textAlign);)Ee(t,e,_,i,S,v,T,"left"),I-=_.width,T+=_.width,C++;for(;A>=0&&"right"===(_=b[A]).textAlign;)Ee(t,e,_,i,S,v,D,"right"),I-=_.width,D-=_.width,A--;for(T+=(o-(T-m)-(y-D)-I)/2;C<=A;)Ee(t,e,_=b[C],i,S,v,T+_.width/2,"center"),T+=_.width,C++;v+=S}}function ze(t,e,n,i,r){if(n&&e.textRotation){var o=e.textOrigin;"center"===o?(i=n.width/2+n.x,r=n.height/2+n.y):o&&(i=o[0]+n.x,r=o[1]+n.y),t.translate(i,r),t.rotate(-e.textRotation),t.translate(-i,-r)}}function Ee(t,e,n,i,r,o,a,s){var l=i.rich[n.styleName]||{},u=n.textVerticalAlign,h=o+r/2;"top"===u?h=o+n.height/2:"bottom"===u&&(h=o+r-n.height/2),!n.isLineHolder&&Ne(l)&&Re(t,e,l,"right"===s?a-n.width:"center"===s?a-n.width/2:a,h-n.height/2,n.width,n.height);var c=n.textPadding;c&&(a=Ze(a,s,c),h-=n.height/2-c[2]-n.textHeight/2),Fe(e,"shadowBlur",D(l.textShadowBlur,i.textShadowBlur,0)),Fe(e,"shadowColor",l.textShadowColor||i.textShadowColor||"transparent"),Fe(e,"shadowOffsetX",D(l.textShadowOffsetX,i.textShadowOffsetX,0)),Fe(e,"shadowOffsetY",D(l.textShadowOffsetY,i.textShadowOffsetY,0)),Fe(e,"textAlign",s),Fe(e,"textBaseline","middle"),Fe(e,"font",n.font||Wg);var d=He(l.textStroke||i.textStroke,p),f=Ge(l.textFill||i.textFill),p=T(l.textStrokeWidth,i.textStrokeWidth);d&&(Fe(e,"lineWidth",p),Fe(e,"strokeStyle",d),e.strokeText(n.text,a,h)),f&&(Fe(e,"fillStyle",f),e.fillText(n.text,a,h))}function Ne(t){return t.textBackgroundColor||t.textBorderWidth&&t.textBorderColor}function Re(t,e,n,i,r,o,a){var s=n.textBackgroundColor,l=n.textBorderWidth,u=n.textBorderColor,h=_(s);if(Fe(e,"shadowBlur",n.textBoxShadowBlur||0),Fe(e,"shadowColor",n.textBoxShadowColor||"transparent"),Fe(e,"shadowOffsetX",n.textBoxShadowOffsetX||0),Fe(e,"shadowOffsetY",n.textBoxShadowOffsetY||0),h||l&&u){e.beginPath();var c=n.textBorderRadius;c?Te(e,{x:i,y:r,width:o,height:a,r:c}):e.rect(i,r,o,a),e.closePath()}if(h)Fe(e,"fillStyle",s),e.fill();else if(w(s)){var d=s.image;(d=se(d,null,t,Be,s))&&ue(d)&&e.drawImage(d,i,r,o,a)}l&&u&&(Fe(e,"lineWidth",l),Fe(e,"strokeStyle",u),e.stroke())}function Be(t,e){e.image=t}function Ve(t,e,n){var i=e.x||0,r=e.y||0,o=e.textAlign,a=e.textVerticalAlign;if(n){var s=e.textPosition;if(s instanceof Array)i=n.x+We(s[0],n.width),r=n.y+We(s[1],n.height);else{var l=me(s,n,e.textDistance);i=l.x,r=l.y,o=o||l.textAlign,a=a||l.textVerticalAlign}var u=e.textOffset;u&&(i+=u[0],r+=u[1])}return{baseX:i,baseY:r,textAlign:o,textVerticalAlign:a}}function Fe(t,e,n){return t[e]=Ag(t,e,n),t[e]}function He(t,e){return null==t||e<=0||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function Ge(t){return null==t||"none"===t?null:t.image||t.colorStops?"#000":t}function We(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function Ze(t,e,n){return"right"===e?t-n[1]:"center"===e?t+n[3]/2-n[1]/2:t+n[3]}function Ue(t,e){return null!=t&&(t||e.textBackgroundColor||e.textBorderWidth&&e.textBorderColor||e.textPadding)}function Xe(t){t=t||{},_g.call(this,t);for(var e in t)t.hasOwnProperty(e)&&"style"!==e&&(this[e]=t[e]);this.style=new Pg(t.style,this),this._rect=null,this.__clipPaths=[]}function je(t){Xe.call(this,t)}function Ye(t){return parseInt(t,10)}function qe(t){return!!t&&(!!t.__builtin__||"function"==typeof t.resize&&"function"==typeof t.refresh)}function $e(t,e,n){return qg.copy(t.getBoundingRect()),t.transform&&qg.applyTransform(t.transform),$g.width=e,$g.height=n,!qg.intersect($g)}function Ke(t,e){if(t==e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!0}function Qe(t,e){for(var n=0;n<t.length;n++){var i=t[n];i.setTransform(e),e.beginPath(),i.buildPath(e,i.shape),e.clip(),i.restoreTransform(e)}}function Je(t,e){var n=document.createElement("div");return n.style.cssText=["position:relative","overflow:hidden","width:"+t+"px","height:"+e+"px","padding:0","margin:0","border-width:0"].join(";")+";",n}function tn(t){return t.getBoundingClientRect?t.getBoundingClientRect():{left:0,top:0}}function en(t,e,n,i){return n=n||{},i||!bp.canvasSupported?nn(t,e,n):bp.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):nn(t,e,n),n}function nn(t,e,n){var i=tn(t);n.zrX=e.clientX-i.left,n.zrY=e.clientY-i.top}function rn(t,e,n){if(null!=(e=e||window.event).zrX)return e;var i=e.type;if(i&&i.indexOf("touch")>=0){var r="touchend"!=i?e.targetTouches[0]:e.changedTouches[0];r&&en(t,r,e,n)}else en(t,e,e,n),e.zrDelta=e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3;var o=e.button;return null==e.which&&void 0!==o&&Jg.test(e.type)&&(e.which=1&o?1:2&o?3:4&o?2:0),e}function on(t,e,n){Qg?t.addEventListener(e,n):t.attachEvent("on"+e,n)}function an(t,e,n){Qg?t.removeEventListener(e,n):t.detachEvent("on"+e,n)}function sn(t){return t.which>1}function ln(t){var e=t[1][0]-t[0][0],n=t[1][1]-t[0][1];return Math.sqrt(e*e+n*n)}function un(t){return[(t[0][0]+t[1][0])/2,(t[0][1]+t[1][1])/2]}function hn(t){return"mousewheel"===t&&bp.browser.firefox?"DOMMouseScroll":t}function cn(t,e,n){var i=t._gestureMgr;"start"===n&&i.clear();var r=i.recognize(e,t.handler.findHover(e.zrX,e.zrY,null).target,t.dom);if("end"===n&&i.clear(),r){var o=r.type;e.gestureEvent=o,t.handler.dispatchToElement({target:r.target},o,r.event)}}function dn(t){t._touching=!0,clearTimeout(t._touchTimer),t._touchTimer=setTimeout(function(){t._touching=!1},700)}function fn(t){var e=t.pointerType;return"pen"===e||"touch"===e}function pn(t){function e(t,e){return function(){if(!e._touching)return t.apply(e,arguments)}}d(om,function(e){t._handlers[e]=m(lm[e],t)}),d(sm,function(e){t._handlers[e]=m(lm[e],t)}),d(rm,function(n){t._handlers[n]=e(lm[n],t)})}function gn(t){function e(e,n){d(e,function(e){on(t,hn(e),n._handlers[e])},n)}Zp.call(this),this.dom=t,this._touching=!1,this._touchTimer,this._gestureMgr=new nm,this._handlers={},pn(this),bp.pointerEventsSupported?e(sm,this):(bp.touchEventsSupported&&e(om,this),e(rm,this))}function mn(t,e){var n=new fm(_p(),t,e);return dm[n.id]=n,n}function vn(t,e){cm[t]=e}function yn(t){delete dm[t]}function xn(t){return t instanceof Array?t:null==t?[]:[t]}function _n(t,e,n){if(t){t[e]=t[e]||{},t.emphasis=t.emphasis||{},t.emphasis[e]=t.emphasis[e]||{};for(var i=0,r=n.length;i<r;i++){var o=n[i];!t.emphasis[e].hasOwnProperty(o)&&t[e].hasOwnProperty(o)&&(t.emphasis[e][o]=t[e][o])}}}function wn(t){return!mm(t)||vm(t)||t instanceof Date?t:t.value}function bn(t){return mm(t)&&!(t instanceof Array)}function Mn(t,e){e=(e||[]).slice();var n=f(t||[],function(t,e){return{exist:t}});return gm(e,function(t,i){if(mm(t)){for(r=0;r<n.length;r++)if(!n[r].option&&null!=t.id&&n[r].exist.id===t.id+"")return n[r].option=t,void(e[i]=null);for(var r=0;r<n.length;r++){var o=n[r].exist;if(!(n[r].option||null!=o.id&&null!=t.id||null==t.name||Cn(t)||Cn(o)||o.name!==t.name+""))return n[r].option=t,void(e[i]=null)}}}),gm(e,function(t,e){if(mm(t)){for(var i=0;i<n.length;i++){var r=n[i].exist;if(!n[i].option&&!Cn(r)&&null==t.id){n[i].option=t;break}}i>=n.length&&n.push({option:t})}}),n}function Sn(t){var e=N();gm(t,function(t,n){var i=t.exist;i&&e.set(i.id,t)}),gm(t,function(t,n){var i=t.option;P(!i||null==i.id||!e.get(i.id)||e.get(i.id)===t,"id duplicates: "+(i&&i.id)),i&&null!=i.id&&e.set(i.id,t),!t.keyInfo&&(t.keyInfo={})}),gm(t,function(t,n){var i=t.exist,r=t.option,o=t.keyInfo;if(mm(r)){if(o.name=null!=r.name?r.name+"":i?i.name:ym+n,i)o.id=i.id;else if(null!=r.id)o.id=r.id+"";else{var a=0;do{o.id="\0"+o.name+"\0"+a++}while(e.get(o.id))}e.set(o.id,t)}})}function In(t){var e=t.name;return!(!e||!e.indexOf(ym))}function Cn(t){return mm(t)&&t.id&&0===(t.id+"").indexOf("\0_ec_\0")}function Tn(t,e){return null!=e.dataIndexInside?e.dataIndexInside:null!=e.dataIndex?y(e.dataIndex)?f(e.dataIndex,function(e){return t.indexOfRawIndex(e)}):t.indexOfRawIndex(e.dataIndex):null!=e.name?y(e.name)?f(e.name,function(e){return t.indexOfName(e)}):t.indexOfName(e.name):void 0}function Dn(){var t="__\0ec_inner_"+_m+++"_"+Math.random().toFixed(5);return function(e){return e[t]||(e[t]={})}}function An(t,e,n){if(_(e)){var i={};i[e+"Index"]=0,e=i}var r=n&&n.defaultMainType;!r||kn(e,r+"Index")||kn(e,r+"Id")||kn(e,r+"Name")||(e[r+"Index"]=0);var o={};return gm(e,function(i,r){var i=e[r];if("dataIndex"!==r&&"dataIndexInside"!==r){var a=r.match(/^(\w+)(Index|Id|Name)$/)||[],s=a[1],u=(a[2]||"").toLowerCase();if(!(!s||!u||null==i||"index"===u&&"none"===i||n&&n.includeMainTypes&&l(n.includeMainTypes,s)<0)){var h={mainType:s};"index"===u&&"all"===i||(h[u]=i);var c=t.queryComponents(h);o[s+"Models"]=c,o[s+"Model"]=c[0]}}else o[r]=i}),o}function kn(t,e){return t&&t.hasOwnProperty(e)}function Pn(t,e,n){t.setAttribute?t.setAttribute(e,n):t[e]=n}function Ln(t,e){return t.getAttribute?t.getAttribute(e):t[e]}function On(t){var e={main:"",sub:""};return t&&(t=t.split(wm),e.main=t[0]||"",e.sub=t[1]||""),e}function zn(t){P(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(t),'componentType "'+t+'" illegal')}function En(t,e){t.$constructor=t,t.extend=function(t){var e=this,n=function(){t.$constructor?t.$constructor.apply(this,arguments):e.apply(this,arguments)};return o(n.prototype,t),n.extend=this.extend,n.superCall=Rn,n.superApply=Bn,u(n,this),n.superClass=e,n}}function Nn(t){var e=["__\0is_clz",Mm++,Math.random().toFixed(3)].join("_");t.prototype[e]=!0,t.isInstance=function(t){return!(!t||!t[e])}}function Rn(t,e){var n=A(arguments,2);return this.superClass.prototype[e].apply(t,n)}function Bn(t,e,n){return this.superClass.prototype[e].apply(t,n)}function Vn(t,e){function n(t){var e=i[t.main];return e&&e[bm]||((e=i[t.main]={})[bm]=!0),e}e=e||{};var i={};if(t.registerClass=function(t,e){return e&&(zn(e),(e=On(e)).sub?e.sub!==bm&&(n(e)[e.sub]=t):i[e.main]=t),t},t.getClass=function(t,e,n){var r=i[t];if(r&&r[bm]&&(r=e?r[e]:null),n&&!r)throw new Error(e?"Component "+t+"."+(e||"")+" not exists. Load it first.":t+".type should be specified.");return r},t.getClassesByMainType=function(t){t=On(t);var e=[],n=i[t.main];return n&&n[bm]?d(n,function(t,n){n!==bm&&e.push(t)}):e.push(n),e},t.hasClass=function(t){return t=On(t),!!i[t.main]},t.getAllClassMainTypes=function(){var t=[];return d(i,function(e,n){t.push(n)}),t},t.hasSubTypes=function(t){t=On(t);var e=i[t.main];return e&&e[bm]},t.parseClassType=On,e.registerWhenExtend){var r=t.extend;r&&(t.extend=function(e){var n=r.call(this,e);return t.registerClass(n,e.type)})}return t}function Fn(t){return t>-Pm&&t<Pm}function Hn(t){return t>Pm||t<-Pm}function Gn(t,e,n,i,r){var o=1-r;return o*o*(o*t+3*r*e)+r*r*(r*i+3*o*n)}function Wn(t,e,n,i,r){var o=1-r;return 3*(((e-t)*o+2*(n-e)*r)*o+(i-n)*r*r)}function Zn(t,e,n,i,r,o){var a=i+3*(e-n)-t,s=3*(n-2*e+t),l=3*(e-t),u=t-r,h=s*s-3*a*l,c=s*l-9*a*u,d=l*l-3*s*u,f=0;if(Fn(h)&&Fn(c))Fn(s)?o[0]=0:(S=-l/s)>=0&&S<=1&&(o[f++]=S);else{var p=c*c-4*h*d;if(Fn(p)){var g=c/h,m=-g/2;(S=-s/a+g)>=0&&S<=1&&(o[f++]=S),m>=0&&m<=1&&(o[f++]=m)}else if(p>0){var v=km(p),y=h*s+1.5*a*(-c+v),x=h*s+1.5*a*(-c-v);(S=(-s-((y=y<0?-Am(-y,zm):Am(y,zm))+(x=x<0?-Am(-x,zm):Am(x,zm))))/(3*a))>=0&&S<=1&&(o[f++]=S)}else{var _=(2*h*s-3*a*c)/(2*km(h*h*h)),w=Math.acos(_)/3,b=km(h),M=Math.cos(w),S=(-s-2*b*M)/(3*a),m=(-s+b*(M+Om*Math.sin(w)))/(3*a),I=(-s+b*(M-Om*Math.sin(w)))/(3*a);S>=0&&S<=1&&(o[f++]=S),m>=0&&m<=1&&(o[f++]=m),I>=0&&I<=1&&(o[f++]=I)}}return f}function Un(t,e,n,i,r){var o=6*n-12*e+6*t,a=9*e+3*i-3*t-9*n,s=3*e-3*t,l=0;if(Fn(a))Hn(o)&&(c=-s/o)>=0&&c<=1&&(r[l++]=c);else{var u=o*o-4*a*s;if(Fn(u))r[0]=-o/(2*a);else if(u>0){var h=km(u),c=(-o+h)/(2*a),d=(-o-h)/(2*a);c>=0&&c<=1&&(r[l++]=c),d>=0&&d<=1&&(r[l++]=d)}}return l}function Xn(t,e,n,i,r,o){var a=(e-t)*r+t,s=(n-e)*r+e,l=(i-n)*r+n,u=(s-a)*r+a,h=(l-s)*r+s,c=(h-u)*r+u;o[0]=t,o[1]=a,o[2]=u,o[3]=c,o[4]=c,o[5]=h,o[6]=l,o[7]=i}function jn(t,e,n,i,r,o,a,s,l,u,h){var c,d,f,p,g,m=.005,v=1/0;Em[0]=l,Em[1]=u;for(var y=0;y<1;y+=.05)Nm[0]=Gn(t,n,r,a,y),Nm[1]=Gn(e,i,o,s,y),(p=Hp(Em,Nm))<v&&(c=y,v=p);v=1/0;for(var x=0;x<32&&!(m<Lm);x++)d=c-m,f=c+m,Nm[0]=Gn(t,n,r,a,d),Nm[1]=Gn(e,i,o,s,d),p=Hp(Nm,Em),d>=0&&p<v?(c=d,v=p):(Rm[0]=Gn(t,n,r,a,f),Rm[1]=Gn(e,i,o,s,f),g=Hp(Rm,Em),f<=1&&g<v?(c=f,v=g):m*=.5);return h&&(h[0]=Gn(t,n,r,a,c),h[1]=Gn(e,i,o,s,c)),km(v)}function Yn(t,e,n,i){var r=1-i;return r*(r*t+2*i*e)+i*i*n}function qn(t,e,n,i){return 2*((1-i)*(e-t)+i*(n-e))}function $n(t,e,n,i,r){var o=t-2*e+n,a=2*(e-t),s=t-i,l=0;if(Fn(o))Hn(a)&&(c=-s/a)>=0&&c<=1&&(r[l++]=c);else{var u=a*a-4*o*s;if(Fn(u))(c=-a/(2*o))>=0&&c<=1&&(r[l++]=c);else if(u>0){var h=km(u),c=(-a+h)/(2*o),d=(-a-h)/(2*o);c>=0&&c<=1&&(r[l++]=c),d>=0&&d<=1&&(r[l++]=d)}}return l}function Kn(t,e,n){var i=t+n-2*e;return 0===i?.5:(t-e)/i}function Qn(t,e,n,i,r){var o=(e-t)*i+t,a=(n-e)*i+e,s=(a-o)*i+o;r[0]=t,r[1]=o,r[2]=s,r[3]=s,r[4]=a,r[5]=n}function Jn(t,e,n,i,r,o,a,s,l){var u,h=.005,c=1/0;Em[0]=a,Em[1]=s;for(var d=0;d<1;d+=.05)Nm[0]=Yn(t,n,r,d),Nm[1]=Yn(e,i,o,d),(m=Hp(Em,Nm))<c&&(u=d,c=m);c=1/0;for(var f=0;f<32&&!(h<Lm);f++){var p=u-h,g=u+h;Nm[0]=Yn(t,n,r,p),Nm[1]=Yn(e,i,o,p);var m=Hp(Nm,Em);if(p>=0&&m<c)u=p,c=m;else{Rm[0]=Yn(t,n,r,g),Rm[1]=Yn(e,i,o,g);var v=Hp(Rm,Em);g<=1&&v<c?(u=g,c=v):h*=.5}}return l&&(l[0]=Yn(t,n,r,u),l[1]=Yn(e,i,o,u)),km(c)}function ti(t,e,n){if(0!==t.length){var i,r=t[0],o=r[0],a=r[0],s=r[1],l=r[1];for(i=1;i<t.length;i++)r=t[i],o=Bm(o,r[0]),a=Vm(a,r[0]),s=Bm(s,r[1]),l=Vm(l,r[1]);e[0]=o,e[1]=s,n[0]=a,n[1]=l}}function ei(t,e,n,i,r,o){r[0]=Bm(t,n),r[1]=Bm(e,i),o[0]=Vm(t,n),o[1]=Vm(e,i)}function ni(t,e,n,i,r,o,a,s,l,u){var h,c=Un,d=Gn,f=c(t,n,r,a,Xm);for(l[0]=1/0,l[1]=1/0,u[0]=-1/0,u[1]=-1/0,h=0;h<f;h++){var p=d(t,n,r,a,Xm[h]);l[0]=Bm(p,l[0]),u[0]=Vm(p,u[0])}for(f=c(e,i,o,s,jm),h=0;h<f;h++){var g=d(e,i,o,s,jm[h]);l[1]=Bm(g,l[1]),u[1]=Vm(g,u[1])}l[0]=Bm(t,l[0]),u[0]=Vm(t,u[0]),l[0]=Bm(a,l[0]),u[0]=Vm(a,u[0]),l[1]=Bm(e,l[1]),u[1]=Vm(e,u[1]),l[1]=Bm(s,l[1]),u[1]=Vm(s,u[1])}function ii(t,e,n,i,r,o,a,s){var l=Kn,u=Yn,h=Vm(Bm(l(t,n,r),1),0),c=Vm(Bm(l(e,i,o),1),0),d=u(t,n,r,h),f=u(e,i,o,c);a[0]=Bm(t,r,d),a[1]=Bm(e,o,f),s[0]=Vm(t,r,d),s[1]=Vm(e,o,f)}function ri(t,e,n,i,r,o,a,s,l){var u=K,h=Q,c=Math.abs(r-o);if(c%Gm<1e-4&&c>1e-4)return s[0]=t-n,s[1]=e-i,l[0]=t+n,void(l[1]=e+i);if(Wm[0]=Hm(r)*n+t,Wm[1]=Fm(r)*i+e,Zm[0]=Hm(o)*n+t,Zm[1]=Fm(o)*i+e,u(s,Wm,Zm),h(l,Wm,Zm),(r%=Gm)<0&&(r+=Gm),(o%=Gm)<0&&(o+=Gm),r>o&&!a?o+=Gm:r<o&&a&&(r+=Gm),a){var d=o;o=r,r=d}for(var f=0;f<o;f+=Math.PI/2)f>r&&(Um[0]=Hm(f)*n+t,Um[1]=Fm(f)*i+e,u(s,Um,s),h(l,Um,l))}function oi(t,e,n,i,r,o,a){if(0===r)return!1;var s=r,l=0,u=t;if(a>e+s&&a>i+s||a<e-s&&a<i-s||o>t+s&&o>n+s||o<t-s&&o<n-s)return!1;if(t===n)return Math.abs(o-t)<=s/2;var h=(l=(e-i)/(t-n))*o-a+(u=(t*i-n*e)/(t-n));return h*h/(l*l+1)<=s/2*s/2}function ai(t,e,n,i,r,o,a,s,l,u,h){if(0===l)return!1;var c=l;return!(h>e+c&&h>i+c&&h>o+c&&h>s+c||h<e-c&&h<i-c&&h<o-c&&h<s-c||u>t+c&&u>n+c&&u>r+c&&u>a+c||u<t-c&&u<n-c&&u<r-c&&u<a-c)&&jn(t,e,n,i,r,o,a,s,u,h,null)<=c/2}function si(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;return!(l>e+u&&l>i+u&&l>o+u||l<e-u&&l<i-u&&l<o-u||s>t+u&&s>n+u&&s>r+u||s<t-u&&s<n-u&&s<r-u)&&Jn(t,e,n,i,r,o,s,l,null)<=u/2}function li(t){return(t%=sv)<0&&(t+=sv),t}function ui(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;s-=t,l-=e;var h=Math.sqrt(s*s+l*l);if(h-u>n||h+u<n)return!1;if(Math.abs(i-r)%lv<1e-4)return!0;if(o){var c=i;i=li(r),r=li(c)}else i=li(i),r=li(r);i>r&&(r+=lv);var d=Math.atan2(l,s);return d<0&&(d+=lv),d>=i&&d<=r||d+lv>=i&&d+lv<=r}function hi(t,e,n,i,r,o){if(o>e&&o>i||o<e&&o<i)return 0;if(i===e)return 0;var a=i<e?1:-1,s=(o-e)/(i-e);1!==s&&0!==s||(a=i<e?.5:-.5);var l=s*(n-t)+t;return l===r?1/0:l>r?a:0}function ci(t,e){return Math.abs(t-e)<cv}function di(){var t=fv[0];fv[0]=fv[1],fv[1]=t}function fi(t,e,n,i,r,o,a,s,l,u){if(u>e&&u>i&&u>o&&u>s||u<e&&u<i&&u<o&&u<s)return 0;var h=Zn(e,i,o,s,u,dv);if(0===h)return 0;for(var c,d,f=0,p=-1,g=0;g<h;g++){var m=dv[g],v=0===m||1===m?.5:1;Gn(t,n,r,a,m)<l||(p<0&&(p=Un(e,i,o,s,fv),fv[1]<fv[0]&&p>1&&di(),c=Gn(e,i,o,s,fv[0]),p>1&&(d=Gn(e,i,o,s,fv[1]))),2==p?m<fv[0]?f+=c<e?v:-v:m<fv[1]?f+=d<c?v:-v:f+=s<d?v:-v:m<fv[0]?f+=c<e?v:-v:f+=s<c?v:-v)}return f}function pi(t,e,n,i,r,o,a,s){if(s>e&&s>i&&s>o||s<e&&s<i&&s<o)return 0;var l=$n(e,i,o,s,dv);if(0===l)return 0;var u=Kn(e,i,o);if(u>=0&&u<=1){for(var h=0,c=Yn(e,i,o,u),d=0;d<l;d++){f=0===dv[d]||1===dv[d]?.5:1;(p=Yn(t,n,r,dv[d]))<a||(dv[d]<u?h+=c<e?f:-f:h+=o<c?f:-f)}return h}var f=0===dv[0]||1===dv[0]?.5:1,p=Yn(t,n,r,dv[0]);return p<a?0:o<e?f:-f}function gi(t,e,n,i,r,o,a,s){if((s-=e)>n||s<-n)return 0;u=Math.sqrt(n*n-s*s);dv[0]=-u,dv[1]=u;var l=Math.abs(i-r);if(l<1e-4)return 0;if(l%hv<1e-4){i=0,r=hv;p=o?1:-1;return a>=dv[0]+t&&a<=dv[1]+t?p:0}if(o){var u=i;i=li(r),r=li(u)}else i=li(i),r=li(r);i>r&&(r+=hv);for(var h=0,c=0;c<2;c++){var d=dv[c];if(d+t>a){var f=Math.atan2(s,d),p=o?1:-1;f<0&&(f=hv+f),(f>=i&&f<=r||f+hv>=i&&f+hv<=r)&&(f>Math.PI/2&&f<1.5*Math.PI&&(p=-p),h+=p)}}return h}function mi(t,e,n,i,r){for(var o=0,a=0,s=0,l=0,u=0,h=0;h<t.length;){var c=t[h++];switch(c===uv.M&&h>1&&(n||(o+=hi(a,s,l,u,i,r))),1==h&&(l=a=t[h],u=s=t[h+1]),c){case uv.M:a=l=t[h++],s=u=t[h++];break;case uv.L:if(n){if(oi(a,s,t[h],t[h+1],e,i,r))return!0}else o+=hi(a,s,t[h],t[h+1],i,r)||0;a=t[h++],s=t[h++];break;case uv.C:if(n){if(ai(a,s,t[h++],t[h++],t[h++],t[h++],t[h],t[h+1],e,i,r))return!0}else o+=fi(a,s,t[h++],t[h++],t[h++],t[h++],t[h],t[h+1],i,r)||0;a=t[h++],s=t[h++];break;case uv.Q:if(n){if(si(a,s,t[h++],t[h++],t[h],t[h+1],e,i,r))return!0}else o+=pi(a,s,t[h++],t[h++],t[h],t[h+1],i,r)||0;a=t[h++],s=t[h++];break;case uv.A:var d=t[h++],f=t[h++],p=t[h++],g=t[h++],m=t[h++],v=t[h++],y=(t[h++],1-t[h++]),x=Math.cos(m)*p+d,_=Math.sin(m)*g+f;h>1?o+=hi(a,s,x,_,i,r):(l=x,u=_);var w=(i-d)*g/p+d;if(n){if(ui(d,f,g,m,m+v,y,e,w,r))return!0}else o+=gi(d,f,g,m,m+v,y,w,r);a=Math.cos(m+v)*p+d,s=Math.sin(m+v)*g+f;break;case uv.R:l=a=t[h++],u=s=t[h++];var x=l+t[h++],_=u+t[h++];if(n){if(oi(l,u,x,u,e,i,r)||oi(x,u,x,_,e,i,r)||oi(x,_,l,_,e,i,r)||oi(l,_,l,u,e,i,r))return!0}else o+=hi(x,u,x,_,i,r),o+=hi(l,_,l,u,i,r);break;case uv.Z:if(n){if(oi(a,s,l,u,e,i,r))return!0}else o+=hi(a,s,l,u,i,r);a=l,s=u}}return n||ci(s,u)||(o+=hi(a,s,l,u,i,r)||0),0!==o}function vi(t,e,n){return mi(t,0,!1,e,n)}function yi(t,e,n,i){return mi(t,e,!0,n,i)}function xi(t){Xe.call(this,t),this.path=null}function _i(t,e,n,i,r,o,a,s,l,u,h){var c=l*(Cv/180),d=Iv(c)*(t-n)/2+Sv(c)*(e-i)/2,f=-1*Sv(c)*(t-n)/2+Iv(c)*(e-i)/2,p=d*d/(a*a)+f*f/(s*s);p>1&&(a*=Mv(p),s*=Mv(p));var g=(r===o?-1:1)*Mv((a*a*(s*s)-a*a*(f*f)-s*s*(d*d))/(a*a*(f*f)+s*s*(d*d)))||0,m=g*a*f/s,v=g*-s*d/a,y=(t+n)/2+Iv(c)*m-Sv(c)*v,x=(e+i)/2+Sv(c)*m+Iv(c)*v,_=Av([1,0],[(d-m)/a,(f-v)/s]),w=[(d-m)/a,(f-v)/s],b=[(-1*d-m)/a,(-1*f-v)/s],M=Av(w,b);Dv(w,b)<=-1&&(M=Cv),Dv(w,b)>=1&&(M=0),0===o&&M>0&&(M-=2*Cv),1===o&&M<0&&(M+=2*Cv),h.addData(u,y,x,a,s,_,M,c,o)}function wi(t){if(!t)return[];var e,n=t.replace(/-/g," -").replace(/  /g," ").replace(/ /g,",").replace(/,,/g,",");for(e=0;e<bv.length;e++)n=n.replace(new RegExp(bv[e],"g"),"|"+bv[e]);var i,r=n.split("|"),o=0,a=0,s=new av,l=av.CMD;for(e=1;e<r.length;e++){var u,h=r[e],c=h.charAt(0),d=0,f=h.slice(1).replace(/e,-/g,"e-").split(",");f.length>0&&""===f[0]&&f.shift();for(var p=0;p<f.length;p++)f[p]=parseFloat(f[p]);for(;d<f.length&&!isNaN(f[d])&&!isNaN(f[0]);){var g,m,v,y,x,_,w,b=o,M=a;switch(c){case"l":o+=f[d++],a+=f[d++],u=l.L,s.addData(u,o,a);break;case"L":o=f[d++],a=f[d++],u=l.L,s.addData(u,o,a);break;case"m":o+=f[d++],a+=f[d++],u=l.M,s.addData(u,o,a),c="l";break;case"M":o=f[d++],a=f[d++],u=l.M,s.addData(u,o,a),c="L";break;case"h":o+=f[d++],u=l.L,s.addData(u,o,a);break;case"H":o=f[d++],u=l.L,s.addData(u,o,a);break;case"v":a+=f[d++],u=l.L,s.addData(u,o,a);break;case"V":a=f[d++],u=l.L,s.addData(u,o,a);break;case"C":u=l.C,s.addData(u,f[d++],f[d++],f[d++],f[d++],f[d++],f[d++]),o=f[d-2],a=f[d-1];break;case"c":u=l.C,s.addData(u,f[d++]+o,f[d++]+a,f[d++]+o,f[d++]+a,f[d++]+o,f[d++]+a),o+=f[d-2],a+=f[d-1];break;case"S":g=o,m=a;var S=s.len(),I=s.data;i===l.C&&(g+=o-I[S-4],m+=a-I[S-3]),u=l.C,b=f[d++],M=f[d++],o=f[d++],a=f[d++],s.addData(u,g,m,b,M,o,a);break;case"s":g=o,m=a;var S=s.len(),I=s.data;i===l.C&&(g+=o-I[S-4],m+=a-I[S-3]),u=l.C,b=o+f[d++],M=a+f[d++],o+=f[d++],a+=f[d++],s.addData(u,g,m,b,M,o,a);break;case"Q":b=f[d++],M=f[d++],o=f[d++],a=f[d++],u=l.Q,s.addData(u,b,M,o,a);break;case"q":b=f[d++]+o,M=f[d++]+a,o+=f[d++],a+=f[d++],u=l.Q,s.addData(u,b,M,o,a);break;case"T":g=o,m=a;var S=s.len(),I=s.data;i===l.Q&&(g+=o-I[S-4],m+=a-I[S-3]),o=f[d++],a=f[d++],u=l.Q,s.addData(u,g,m,o,a);break;case"t":g=o,m=a;var S=s.len(),I=s.data;i===l.Q&&(g+=o-I[S-4],m+=a-I[S-3]),o+=f[d++],a+=f[d++],u=l.Q,s.addData(u,g,m,o,a);break;case"A":v=f[d++],y=f[d++],x=f[d++],_=f[d++],w=f[d++],_i(b=o,M=a,o=f[d++],a=f[d++],_,w,v,y,x,u=l.A,s);break;case"a":v=f[d++],y=f[d++],x=f[d++],_=f[d++],w=f[d++],_i(b=o,M=a,o+=f[d++],a+=f[d++],_,w,v,y,x,u=l.A,s)}}"z"!==c&&"Z"!==c||(u=l.Z,s.addData(u)),i=u}return s.toStatic(),s}function bi(t,e){var n=wi(t);return e=e||{},e.buildPath=function(t){if(t.setData)t.setData(n.data),(e=t.getContext())&&t.rebuildPath(e);else{var e=t;n.rebuildPath(e)}},e.applyTransform=function(t){wv(n,t),this.dirty(!0)},e}function Mi(t,e){return new xi(bi(t,e))}function Si(t,e){return xi.extend(bi(t,e))}function Ii(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function Ci(t,e,n){var i=e.points,r=e.smooth;if(i&&i.length>=2){if(r&&"spline"!==r){var o=Rv(i,r,n,e.smoothConstraint);t.moveTo(i[0][0],i[0][1]);for(var a=i.length,s=0;s<(n?a:a-1);s++){var l=o[2*s],u=o[2*s+1],h=i[(s+1)%a];t.bezierCurveTo(l[0],l[1],u[0],u[1],h[0],h[1])}}else{"spline"===r&&(i=Nv(i,n)),t.moveTo(i[0][0],i[0][1]);for(var s=1,c=i.length;s<c;s++)t.lineTo(i[s][0],i[s][1])}n&&t.closePath()}}function Ti(t,e,n){var i=t.cpx2,r=t.cpy2;return null===i||null===r?[(n?Wn:Gn)(t.x1,t.cpx1,t.cpx2,t.x2,e),(n?Wn:Gn)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(n?qn:Yn)(t.x1,t.cpx1,t.x2,e),(n?qn:Yn)(t.y1,t.cpy1,t.y2,e)]}function Di(t){Xe.call(this,t),this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.notClear=!0}function Ai(t){return xi.extend(t)}function ki(t,e,n,i){var r=Mi(t,e),o=r.getBoundingRect();return n&&("center"===i&&(n=Li(n,o)),Oi(r,n)),r}function Pi(t,e,n){var i=new je({style:{image:t,x:e.x,y:e.y,width:e.width,height:e.height},onload:function(t){if("center"===n){var r={width:t.width,height:t.height};i.setStyle(Li(e,r))}}});return i}function Li(t,e){var n,i=e.width/e.height,r=t.height*i;return n=r<=t.width?t.height:(r=t.width)/i,{x:t.x+t.width/2-r/2,y:t.y+t.height/2-n/2,width:r,height:n}}function Oi(t,e){if(t.applyTransform){var n=t.getBoundingRect().calculateTransform(e);t.applyTransform(n)}}function zi(t){var e=t.shape,n=t.style.lineWidth;return $v(2*e.x1)===$v(2*e.x2)&&(e.x1=e.x2=Ni(e.x1,n,!0)),$v(2*e.y1)===$v(2*e.y2)&&(e.y1=e.y2=Ni(e.y1,n,!0)),t}function Ei(t){var e=t.shape,n=t.style.lineWidth,i=e.x,r=e.y,o=e.width,a=e.height;return e.x=Ni(e.x,n,!0),e.y=Ni(e.y,n,!0),e.width=Math.max(Ni(i+o,n,!1)-e.x,0===o?0:1),e.height=Math.max(Ni(r+a,n,!1)-e.y,0===a?0:1),t}function Ni(t,e,n){var i=$v(2*t);return(i+$v(e))%2==0?i/2:(i+(n?1:-1))/2}function Ri(t){return null!=t&&"none"!=t}function Bi(t){return"string"==typeof t?Tt(t,-.1):t}function Vi(t){if(t.__hoverStlDirty){var e=t.style.stroke,n=t.style.fill,i=t.__hoverStl;i.fill=i.fill||(Ri(n)?Bi(n):null),i.stroke=i.stroke||(Ri(e)?Bi(e):null);var r={};for(var o in i)null!=i[o]&&(r[o]=t.style[o]);t.__normalStl=r,t.__hoverStlDirty=!1}}function Fi(t){if(!t.__isHover){if(Vi(t),t.useHoverLayer)t.__zr&&t.__zr.addHover(t,t.__hoverStl);else{var e=t.style,n=e.insideRollbackOpt;n&&ir(e),e.extendFrom(t.__hoverStl),n&&(nr(e,e.insideOriginalTextPosition,n),null==e.textFill&&(e.textFill=n.autoColor)),t.dirty(!1),t.z2+=1}t.__isHover=!0}}function Hi(t){if(t.__isHover){var e=t.__normalStl;t.useHoverLayer?t.__zr&&t.__zr.removeHover(t):(e&&t.setStyle(e),t.z2-=1),t.__isHover=!1}}function Gi(t){"group"===t.type?t.traverse(function(t){"group"!==t.type&&Fi(t)}):Fi(t)}function Wi(t){"group"===t.type?t.traverse(function(t){"group"!==t.type&&Hi(t)}):Hi(t)}function Zi(t,e){t.__hoverStl=t.hoverStyle||e||{},t.__hoverStlDirty=!0,t.__isHover&&Vi(t)}function Ui(t){this.__hoverSilentOnTouch&&t.zrByTouch||!this.__isEmphasis&&Gi(this)}function Xi(t){this.__hoverSilentOnTouch&&t.zrByTouch||!this.__isEmphasis&&Wi(this)}function ji(){this.__isEmphasis=!0,Gi(this)}function Yi(){this.__isEmphasis=!1,Wi(this)}function qi(t,e,n){t.__hoverSilentOnTouch=n&&n.hoverSilentOnTouch,"group"===t.type?t.traverse(function(t){"group"!==t.type&&Zi(t,e)}):Zi(t,e),t.on("mouseover",Ui).on("mouseout",Xi),t.on("emphasis",ji).on("normal",Yi)}function $i(t,e,n,i,r,o,a){var s,l=(r=r||Jv).labelFetcher,u=r.labelDataIndex,h=r.labelDimIndex,c=n.getShallow("show"),d=i.getShallow("show");(c||d)&&(l&&(s=l.getFormattedLabel(u,"normal",null,h)),null==s&&(s=x(r.defaultText)?r.defaultText(u,r):r.defaultText));var f=c?s:null,p=d?T(l?l.getFormattedLabel(u,"emphasis",null,h):null,s):null;null==f&&null==p||(Ki(t,n,o,r),Ki(e,i,a,r,!0)),t.text=f,e.text=p}function Ki(t,e,n,i,r){return Qi(t,e,i,r),n&&o(t,n),t.host&&t.host.dirty&&t.host.dirty(!1),t}function Qi(t,e,n,i){if((n=n||Jv).isRectText){var r=e.getShallow("position")||(i?null:"inside");"outside"===r&&(r="top"),t.textPosition=r,t.textOffset=e.getShallow("offset");var o=e.getShallow("rotate");null!=o&&(o*=Math.PI/180),t.textRotation=o,t.textDistance=T(e.getShallow("distance"),i?null:5)}var a,s=e.ecModel,l=s&&s.option.textStyle,u=Ji(e);if(u){a={};for(var h in u)if(u.hasOwnProperty(h)){var c=e.getModel(["rich",h]);tr(a[h]={},c,l,n,i)}}return t.rich=a,tr(t,e,l,n,i,!0),n.forceRich&&!n.textStyle&&(n.textStyle={}),t}function Ji(t){for(var e;t&&t!==t.ecModel;){var n=(t.option||Jv).rich;if(n){e=e||{};for(var i in n)n.hasOwnProperty(i)&&(e[i]=1)}t=t.parentModel}return e}function tr(t,e,n,i,r,o){if(n=!r&&n||Jv,t.textFill=er(e.getShallow("color"),i)||n.color,t.textStroke=er(e.getShallow("textBorderColor"),i)||n.textBorderColor,t.textStrokeWidth=T(e.getShallow("textBorderWidth"),n.textBorderWidth),!r){if(o){var a=t.textPosition;t.insideRollback=nr(t,a,i),t.insideOriginalTextPosition=a,t.insideRollbackOpt=i}null==t.textFill&&(t.textFill=i.autoColor)}t.fontStyle=e.getShallow("fontStyle")||n.fontStyle,t.fontWeight=e.getShallow("fontWeight")||n.fontWeight,t.fontSize=e.getShallow("fontSize")||n.fontSize,t.fontFamily=e.getShallow("fontFamily")||n.fontFamily,t.textAlign=e.getShallow("align"),t.textVerticalAlign=e.getShallow("verticalAlign")||e.getShallow("baseline"),t.textLineHeight=e.getShallow("lineHeight"),t.textWidth=e.getShallow("width"),t.textHeight=e.getShallow("height"),t.textTag=e.getShallow("tag"),o&&i.disableBox||(t.textBackgroundColor=er(e.getShallow("backgroundColor"),i),t.textPadding=e.getShallow("padding"),t.textBorderColor=er(e.getShallow("borderColor"),i),t.textBorderWidth=e.getShallow("borderWidth"),t.textBorderRadius=e.getShallow("borderRadius"),t.textBoxShadowColor=e.getShallow("shadowColor"),t.textBoxShadowBlur=e.getShallow("shadowBlur"),t.textBoxShadowOffsetX=e.getShallow("shadowOffsetX"),t.textBoxShadowOffsetY=e.getShallow("shadowOffsetY")),t.textShadowColor=e.getShallow("textShadowColor")||n.textShadowColor,t.textShadowBlur=e.getShallow("textShadowBlur")||n.textShadowBlur,t.textShadowOffsetX=e.getShallow("textShadowOffsetX")||n.textShadowOffsetX,t.textShadowOffsetY=e.getShallow("textShadowOffsetY")||n.textShadowOffsetY}function er(t,e){return"auto"!==t?t:e&&e.autoColor?e.autoColor:null}function nr(t,e,n){var i,r=n.useInsideStyle;return null==t.textFill&&!1!==r&&(!0===r||n.isRectText&&e&&"string"==typeof e&&e.indexOf("inside")>=0)&&(i={textFill:null,textStroke:t.textStroke,textStrokeWidth:t.textStrokeWidth},t.textFill="#fff",null==t.textStroke&&(t.textStroke=n.autoColor,null==t.textStrokeWidth&&(t.textStrokeWidth=2))),i}function ir(t){var e=t.insideRollback;e&&(t.textFill=e.textFill,t.textStroke=e.textStroke,t.textStrokeWidth=e.textStrokeWidth)}function rr(t,e){var n=e||e.getModel("textStyle");return L([t.fontStyle||n&&n.getShallow("fontStyle")||"",t.fontWeight||n&&n.getShallow("fontWeight")||"",(t.fontSize||n&&n.getShallow("fontSize")||12)+"px",t.fontFamily||n&&n.getShallow("fontFamily")||"sans-serif"].join(" "))}function or(t,e,n,i,r,o){if("function"==typeof r&&(o=r,r=null),i&&i.isAnimationEnabled()){var a=t?"Update":"",s=i.getShallow("animationDuration"+a),l=i.getShallow("animationEasing"+a),u=i.getShallow("animationDelay"+a);"function"==typeof u&&(u=u(r,i.getAnimationDelayParams?i.getAnimationDelayParams(e,r):null)),"function"==typeof s&&(s=s(r)),s>0?e.animateTo(n,s,u||0,l,o,!!o):(e.stopAnimation(),e.attr(n),o&&o())}else e.stopAnimation(),e.attr(n),o&&o()}function ar(t,e,n,i,r){or(!0,t,e,n,i,r)}function sr(t,e,n,i,r){or(!1,t,e,n,i,r)}function lr(t,e){for(var n=ot([]);t&&t!==e;)st(n,t.getLocalTransform(),n),t=t.parent;return n}function ur(t,e,n){return e&&!c(e)&&(e=Qp.getLocalTransform(e)),n&&(e=ct([],e)),$([],t,e)}function hr(t,e,n){var i=0===e[4]||0===e[5]||0===e[0]?1:Math.abs(2*e[4]/e[0]),r=0===e[4]||0===e[5]||0===e[2]?1:Math.abs(2*e[4]/e[2]),o=["left"===t?-i:"right"===t?i:0,"top"===t?-r:"bottom"===t?r:0];return o=ur(o,e,n),Math.abs(o[0])>Math.abs(o[1])?o[0]>0?"right":"left":o[1]>0?"bottom":"top"}function cr(t,e,n,i){function r(t){var e={position:F(t.position),rotation:t.rotation};return t.shape&&(e.shape=o({},t.shape)),e}if(t&&e){var a=function(t){var e={};return t.traverse(function(t){!t.isGroup&&t.anid&&(e[t.anid]=t)}),e}(t);e.traverse(function(t){if(!t.isGroup&&t.anid){var e=a[t.anid];if(e){var i=r(t);t.attr(r(e)),ar(t,i,n,t.dataIndex)}}})}}function dr(t,e){return f(t,function(t){var n=t[0];n=Kv(n,e.x),n=Qv(n,e.x+e.width);var i=t[1];return i=Kv(i,e.y),i=Qv(i,e.y+e.height),[n,i]})}function fr(t,e,n){var i=(e=o({rectHover:!0},e)).style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(i.image=t.slice(8),a(i,n),new je(e)):ki(t.replace("path://",""),e,n,"center")}function pr(t,e,n){this.parentModel=e,this.ecModel=n,this.option=t}function gr(t,e,n){for(var i=0;i<e.length&&(!e[i]||null!=(t=t&&"object"==typeof t?t[e[i]]:null));i++);return null==t&&n&&(t=n.get(e)),t}function mr(t,e){var n=ay(t).getParent;return n?n.call(t,e):t.parentModel}function vr(t){return[t||"",sy++,Math.random().toFixed(5)].join("_")}function yr(t){return t.replace(/^\s+/,"").replace(/\s+$/,"")}function xr(t,e,n,i){var r=e[1]-e[0],o=n[1]-n[0];if(0===r)return 0===o?n[0]:(n[0]+n[1])/2;if(i)if(r>0){if(t<=e[0])return n[0];if(t>=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/r*o+n[0]}function _r(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?yr(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function wr(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function br(t){return t.sort(function(t,e){return t-e}),t}function Mr(t){if(t=+t,isNaN(t))return 0;for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}function Sr(t){var e=t.toString(),n=e.indexOf("e");if(n>0){var i=+e.slice(n+1);return i<0?-i:0}var r=e.indexOf(".");return r<0?0:e.length-1-r}function Ir(t,e){var n=Math.log,i=Math.LN10,r=Math.floor(n(t[1]-t[0])/i),o=Math.round(n(Math.abs(e[1]-e[0]))/i),a=Math.min(Math.max(-r+o,0),20);return isFinite(a)?a:20}function Cr(t,e,n){if(!t[e])return 0;var i=p(t,function(t,e){return t+(isNaN(e)?0:e)},0);if(0===i)return 0;for(var r=Math.pow(10,n),o=f(t,function(t){return(isNaN(t)?0:t)/i*r*100}),a=100*r,s=f(o,function(t){return Math.floor(t)}),l=p(s,function(t,e){return t+e},0),u=f(o,function(t,e){return t-s[e]});l<a;){for(var h=Number.NEGATIVE_INFINITY,c=null,d=0,g=u.length;d<g;++d)u[d]>h&&(h=u[d],c=d);++s[c],u[c]=0,++l}return s[e]/r}function Tr(t){var e=2*Math.PI;return(t%e+e)%e}function Dr(t){return t>-ly&&t<ly}function Ar(t){if(t instanceof Date)return t;if("string"==typeof t){var e=uy.exec(t);if(!e)return new Date(NaN);if(e[8]){var n=+e[4]||0;return"Z"!==e[8].toUpperCase()&&(n-=e[8].slice(0,3)),new Date(Date.UTC(+e[1],+(e[2]||1)-1,+e[3]||1,n,+(e[5]||0),+e[6]||0,+e[7]||0))}return new Date(+e[1],+(e[2]||1)-1,+e[3]||1,+e[4]||0,+(e[5]||0),+e[6]||0,+e[7]||0)}return null==t?new Date(NaN):new Date(Math.round(t))}function kr(t){return Math.pow(10,Pr(t))}function Pr(t){return Math.floor(Math.log(t)/Math.LN10)}function Lr(t,e){var n,i=Pr(t),r=Math.pow(10,i),o=t/r;return n=e?o<1.5?1:o<2.5?2:o<4?3:o<7?5:10:o<1?1:o<2?2:o<3?3:o<5?5:10,t=n*r,i>=-20?+t.toFixed(i<0?-i:0):t}function Or(t){return isNaN(t)?"-":(t=(t+"").split("."))[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function zr(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,function(t,e){return e.toUpperCase()}),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}function Er(t){return null==t?"":(t+"").replace(dy,function(t,e){return fy[e]})}function Nr(t,e,n){y(e)||(e=[e]);var i=e.length;if(!i)return"";for(var r=e[0].$vars||[],o=0;o<r.length;o++){var a=py[o];t=t.replace(gy(a),gy(a,0))}for(var s=0;s<i;s++)for(var l=0;l<r.length;l++){var u=e[s][r[l]];t=t.replace(gy(py[l],s),n?Er(u):u)}return t}function Rr(t,e){var n=(t=_(t)?{color:t,extraCssText:e}:t||{}).color,i=t.type,e=t.extraCssText;return n?"subItem"===i?'<span style="display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:'+Er(n)+";"+(e||"")+'"></span>':'<span style="display:inline-block;margin-right:5px;border-radius:10px;width:10px;height:10px;background-color:'+Er(n)+";"+(e||"")+'"></span>':""}function Br(t,e){return t+="","0000".substr(0,e-t.length)+t}function Vr(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=Ar(e),r=n?"UTC":"",o=i["get"+r+"FullYear"](),a=i["get"+r+"Month"]()+1,s=i["get"+r+"Date"](),l=i["get"+r+"Hours"](),u=i["get"+r+"Minutes"](),h=i["get"+r+"Seconds"](),c=i["get"+r+"Milliseconds"]();return t=t.replace("MM",Br(a,2)).replace("M",a).replace("yyyy",o).replace("yy",o%100).replace("dd",Br(s,2)).replace("d",s).replace("hh",Br(l,2)).replace("h",l).replace("mm",Br(u,2)).replace("m",u).replace("ss",Br(h,2)).replace("s",h).replace("SSS",Br(c,3))}function Fr(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}function Hr(t,e,n,i,r){var o=0,a=0;null==i&&(i=1/0),null==r&&(r=1/0);var s=0;e.eachChild(function(l,u){var h,c,d=l.position,f=l.getBoundingRect(),p=e.childAt(u+1),g=p&&p.getBoundingRect();if("horizontal"===t){var m=f.width+(g?-g.x+f.x:0);(h=o+m)>i||l.newline?(o=0,h=m,a+=s+n,s=f.height):s=Math.max(s,f.height)}else{var v=f.height+(g?-g.y+f.y:0);(c=a+v)>r||l.newline?(o+=s+n,a=0,c=v,s=f.width):s=Math.max(s,f.width)}l.newline||(d[0]=o,d[1]=a,"horizontal"===t?o=h+n:a=c+n)})}function Gr(t,e,n){n=cy(n||0);var i=e.width,r=e.height,o=_r(t.left,i),a=_r(t.top,r),s=_r(t.right,i),l=_r(t.bottom,r),u=_r(t.width,i),h=_r(t.height,r),c=n[2]+n[0],d=n[1]+n[3],f=t.aspect;switch(isNaN(u)&&(u=i-s-d-o),isNaN(h)&&(h=r-l-c-a),null!=f&&(isNaN(u)&&isNaN(h)&&(f>i/r?u=.8*i:h=.8*r),isNaN(u)&&(u=f*h),isNaN(h)&&(h=u/f)),isNaN(o)&&(o=i-s-u-d),isNaN(a)&&(a=r-l-h-c),t.left||t.right){case"center":o=i/2-u/2-n[3];break;case"right":o=i-u-d}switch(t.top||t.bottom){case"middle":case"center":a=r/2-h/2-n[0];break;case"bottom":a=r-h-c}o=o||0,a=a||0,isNaN(u)&&(u=i-d-o-(s||0)),isNaN(h)&&(h=r-c-a-(l||0));var p=new Xt(o+n[3],a+n[0],u,h);return p.margin=n,p}function Wr(t,e,n,i,r){var o=!r||!r.hv||r.hv[0],s=!r||!r.hv||r.hv[1],l=r&&r.boundingMode||"all";if(o||s){var u;if("raw"===l)u="group"===t.type?new Xt(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(u=t.getBoundingRect(),t.needLocalTransform()){var h=t.getLocalTransform();(u=u.clone()).applyTransform(h)}e=Gr(a({width:u.width,height:u.height},e),n,i);var c=t.position,d=o?e.x-u.x:0,f=s?e.y-u.y:0;t.attr("position","raw"===l?[d,f]:[c[0]+d,c[1]+f])}}function Zr(t,e,n){function i(n,i){var a={},l=0,u={},h=0;if(xy(n,function(e){u[e]=t[e]}),xy(n,function(t){r(e,t)&&(a[t]=u[t]=e[t]),o(a,t)&&l++,o(u,t)&&h++}),s[i])return o(e,n[1])?u[n[2]]=null:o(e,n[2])&&(u[n[1]]=null),u;if(2!==h&&l){if(l>=2)return a;for(var c=0;c<n.length;c++){var d=n[c];if(!r(a,d)&&r(t,d)){a[d]=t[d];break}}return a}return u}function r(t,e){return t.hasOwnProperty(e)}function o(t,e){return null!=t[e]&&"auto"!==t[e]}function a(t,e,n){xy(t,function(t){e[t]=n[t]})}!w(n)&&(n={});var s=n.ignoreSize;!y(s)&&(s=[s,s]);var l=i(wy[0],0),u=i(wy[1],1);a(wy[0],t,l),a(wy[1],t,u)}function Ur(t){return Xr({},t)}function Xr(t,e){return e&&t&&xy(_y,function(n){e.hasOwnProperty(n)&&(t[n]=e[n])}),t}function jr(t,e){for(var n=t.length,i=0;i<n;i++)if(t[i].length>e)return t[i];return t[n-1]}function Yr(t){var e=t.get("coordinateSystem"),n={coordSysName:e,coordSysDims:[],axisMap:N(),categoryAxisMap:N()},i=ky[e];if(i)return i(t,n,n.axisMap,n.categoryAxisMap),n}function qr(t){return"category"===t.get("type")}function $r(t){this.fromDataset=t.fromDataset,this.data=t.data||(t.sourceFormat===zy?{}:[]),this.sourceFormat=t.sourceFormat||Ey,this.seriesLayoutBy=t.seriesLayoutBy||Ry,this.dimensionsDefine=t.dimensionsDefine,this.encodeDefine=t.encodeDefine&&N(t.encodeDefine),this.startIndex=t.startIndex||0,this.dimensionsDetectCount=t.dimensionsDetectCount}function Kr(t){var e=t.option.source,n=Ey;if(M(e))n=Ny;else if(y(e))for(var i=0,r=e.length;i<r;i++){var o=e[i];if(null!=o){if(y(o)){n=Ly;break}if(w(o)){n=Oy;break}}}else if(w(e)){for(var a in e)if(e.hasOwnProperty(a)&&c(e[a])){n=zy;break}}else if(null!=e)throw new Error("Invalid data");Vy(t).sourceFormat=n}function Qr(t){return Vy(t).source}function Jr(t){Vy(t).datasetMap=N()}function to(t){var e=t.option,n=e.data,i=M(n)?Ny:Py,r=!1,o=e.seriesLayoutBy,a=e.sourceHeader,s=e.dimensions,l=ao(t);if(l){var u=l.option;n=u.source,i=Vy(l).sourceFormat,r=!0,o=o||u.seriesLayoutBy,null==a&&(a=u.sourceHeader),s=s||u.dimensions}var h=eo(n,i,o,a,s),c=e.encode;!c&&l&&(c=oo(t,l,n,i,o,h)),Vy(t).source=new $r({data:n,fromDataset:r,seriesLayoutBy:o,sourceFormat:i,dimensionsDefine:h.dimensionsDefine,startIndex:h.startIndex,dimensionsDetectCount:h.dimensionsDetectCount,encodeDefine:c})}function eo(t,e,n,i,r){if(!t)return{dimensionsDefine:no(r)};var o,a,s;if(e===Ly)"auto"===i||null==i?io(function(t){null!=t&&"-"!==t&&(_(t)?null==a&&(a=1):a=0)},n,t,10):a=i?1:0,r||1!==a||(r=[],io(function(t,e){r[e]=null!=t?t:""},n,t)),o=r?r.length:n===By?t.length:t[0]?t[0].length:null;else if(e===Oy)r||(r=ro(t),s=!0);else if(e===zy)r||(r=[],s=!0,d(t,function(t,e){r.push(e)}));else if(e===Py){var l=wn(t[0]);o=y(l)&&l.length||1}var u;return s&&d(r,function(t,e){"name"===(w(t)?t.name:t)&&(u=e)}),{startIndex:a,dimensionsDefine:no(r),dimensionsDetectCount:o,potentialNameDimIndex:u}}function no(t){if(t){var e=N();return f(t,function(t,n){if(null==(t=o({},w(t)?t:{name:t})).name)return t;t.name+="",null==t.displayName&&(t.displayName=t.name);var i=e.get(t.name);return i?t.name+="-"+i.count++:e.set(t.name,{count:1}),t})}}function io(t,e,n,i){if(null==i&&(i=1/0),e===By)for(o=0;o<n.length&&o<i;o++)t(n[o]?n[o][0]:null,o);else for(var r=n[0]||[],o=0;o<r.length&&o<i;o++)t(r[o],o)}function ro(t){for(var e,n=0;n<t.length&&!(e=t[n++]););if(e){var i=[];return d(e,function(t,e){i.push(e)}),i}}function oo(t,e,n,i,r,o){var a=Yr(t),s={},l=[],u=[],h=t.subType,c=N(["pie","map","funnel"]),f=N(["line","bar","pictorialBar","scatter","effectScatter","candlestick","boxplot"]);if(a&&null!=f.get(h)){var p=t.ecModel,g=Vy(p).datasetMap,m=e.uid+"_"+r,v=g.get(m)||g.set(m,{categoryWayDim:1,valueWayDim:0});d(a.coordSysDims,function(t){if(null==a.firstCategoryDimIndex){e=v.valueWayDim++;s[t]=e,u.push(e)}else if(a.categoryAxisMap.get(t))s[t]=0,l.push(0);else{var e=v.categoryWayDim++;s[t]=e,u.push(e)}})}else if(null!=c.get(h)){for(var y,x=0;x<5&&null==y;x++)lo(n,i,r,o.dimensionsDefine,o.startIndex,x)||(y=x);if(null!=y){s.value=y;var _=o.potentialNameDimIndex||Math.max(y-1,0);u.push(_),l.push(_)}}return l.length&&(s.itemName=l),u.length&&(s.seriesName=u),s}function ao(t){var e=t.option;if(!e.data)return t.ecModel.getComponent("dataset",e.datasetIndex||0)}function so(t,e){return lo(t.data,t.sourceFormat,t.seriesLayoutBy,t.dimensionsDefine,t.startIndex,e)}function lo(t,e,n,i,r,o){function a(t){return(null==t||!isFinite(t)||""===t)&&(!(!_(t)||"-"===t)||void 0)}var s;if(M(t))return!1;var l;if(i&&(l=w(l=i[o])?l.name:l),e===Ly)if(n===By){for(var u=t[o],h=0;h<(u||[]).length&&h<5;h++)if(null!=(s=a(u[r+h])))return s}else for(h=0;h<t.length&&h<5;h++){var c=t[r+h];if(c&&null!=(s=a(c[o])))return s}else if(e===Oy){if(!l)return;for(h=0;h<t.length&&h<5;h++)if((d=t[h])&&null!=(s=a(d[l])))return s}else if(e===zy){if(!l)return;if(!(u=t[l])||M(u))return!1;for(h=0;h<u.length&&h<5;h++)if(null!=(s=a(u[h])))return s}else if(e===Py)for(h=0;h<t.length&&h<5;h++){var d=t[h],f=wn(d);if(!y(f))return!1;if(null!=(s=a(f[o])))return s}return!1}function uo(t,e){if(e){var n=e.seiresIndex,i=e.seriesId,r=e.seriesName;return null!=n&&t.componentIndex!==n||null!=i&&t.id!==i||null!=r&&t.name!==r}}function ho(t,e){var r=t.color&&!t.colorLayer;d(e,function(e,o){"colorLayer"===o&&r||Iy.hasClass(o)||("object"==typeof e?t[o]=t[o]?i(t[o],e,!1):n(e):null==t[o]&&(t[o]=e))})}function co(t){t=t,this.option={},this.option[Fy]=1,this._componentsMap=N({series:[]}),this._seriesIndices,this._seriesIndicesMap,ho(t,this._theme.option),i(t,Ty,!1),this.mergeOption(t)}function fo(t,e){y(e)||(e=e?[e]:[]);var n={};return d(e,function(e){n[e]=(t.get(e)||[]).slice()}),n}function po(t,e,n){return e.type?e.type:n?n.subType:Iy.determineSubType(t,e)}function go(t,e){t._seriesIndicesMap=N(t._seriesIndices=f(e,function(t){return t.componentIndex})||[])}function mo(t,e){return e.hasOwnProperty("subType")?g(t,function(t){return t.subType===e.subType}):t}function vo(t){d(Gy,function(e){this[e]=m(t[e],t)},this)}function yo(){this._coordinateSystems=[]}function xo(t){this._api=t,this._timelineOptions=[],this._mediaList=[],this._mediaDefault,this._currentMediaIndices=[],this._optionBackup,this._newBaseOption}function _o(t,e,n){var i,r,o=[],a=[],s=t.timeline;if(t.baseOption&&(r=t.baseOption),(s||t.options)&&(r=r||{},o=(t.options||[]).slice()),t.media){r=r||{};var l=t.media;Zy(l,function(t){t&&t.option&&(t.query?a.push(t):i||(i=t))})}return r||(r=t),r.timeline||(r.timeline=s),Zy([r].concat(o).concat(f(a,function(t){return t.option})),function(t){Zy(e,function(e){e(t,n)})}),{baseOption:r,timelineOptions:o,mediaDefault:i,mediaList:a}}function wo(t,e,n){var i={width:e,height:n,aspectratio:e/n},r=!0;return d(t,function(t,e){var n=e.match(Yy);if(n&&n[1]&&n[2]){var o=n[1],a=n[2].toLowerCase();bo(i[a],t,o)||(r=!1)}}),r}function bo(t,e,n){return"min"===n?t>=e:"max"===n?t<=e:t===e}function Mo(t,e){return t.join(",")===e.join(",")}function So(t,e){Zy(e=e||{},function(e,n){if(null!=e){var i=t[n];if(Iy.hasClass(n)){e=xn(e);var r=Mn(i=xn(i),e);t[n]=Xy(r,function(t){return t.option&&t.exist?jy(t.exist,t.option,!0):t.exist||t.option})}else t[n]=jy(i,e,!0)}})}function Io(t){var e=t&&t.itemStyle;if(e)for(var n=0,r=Ky.length;n<r;n++){var o=Ky[n],a=e.normal,s=e.emphasis;a&&a[o]&&(t[o]=t[o]||{},t[o].normal?i(t[o].normal,a[o]):t[o].normal=a[o],a[o]=null),s&&s[o]&&(t[o]=t[o]||{},t[o].emphasis?i(t[o].emphasis,s[o]):t[o].emphasis=s[o],s[o]=null)}}function Co(t,e,n){if(t&&t[e]&&(t[e].normal||t[e].emphasis)){var i=t[e].normal,r=t[e].emphasis;i&&(n?(t[e].normal=t[e].emphasis=null,a(t[e],i)):t[e]=i),r&&(t.emphasis=t.emphasis||{},t.emphasis[e]=r)}}function To(t){Co(t,"itemStyle"),Co(t,"lineStyle"),Co(t,"areaStyle"),Co(t,"label"),Co(t,"labelLine"),Co(t,"upperLabel"),Co(t,"edgeLabel")}function Do(t,e){var n=$y(t)&&t[e],i=$y(n)&&n.textStyle;if(i)for(var r=0,o=xm.length;r<o;r++){var e=xm[r];i.hasOwnProperty(e)&&(n[e]=i[e])}}function Ao(t){t&&(To(t),Do(t,"label"),t.emphasis&&Do(t.emphasis,"label"))}function ko(t){if($y(t)){Io(t),To(t),Do(t,"label"),Do(t,"upperLabel"),Do(t,"edgeLabel"),t.emphasis&&(Do(t.emphasis,"label"),Do(t.emphasis,"upperLabel"),Do(t.emphasis,"edgeLabel"));var e=t.markPoint;e&&(Io(e),Ao(e));var n=t.markLine;n&&(Io(n),Ao(n));var i=t.markArea;i&&Ao(i);var r=t.data;if("graph"===t.type){r=r||t.nodes;var o=t.links||t.edges;if(o&&!M(o))for(s=0;s<o.length;s++)Ao(o[s]);d(t.categories,function(t){To(t)})}if(r&&!M(r))for(s=0;s<r.length;s++)Ao(r[s]);if((e=t.markPoint)&&e.data)for(var a=e.data,s=0;s<a.length;s++)Ao(a[s]);if((n=t.markLine)&&n.data)for(var l=n.data,s=0;s<l.length;s++)y(l[s])?(Ao(l[s][0]),Ao(l[s][1])):Ao(l[s]);"gauge"===t.type?(Do(t,"axisLabel"),Do(t,"title"),Do(t,"detail")):"treemap"===t.type?(Co(t.breadcrumb,"itemStyle"),d(t.levels,function(t){To(t)})):"tree"===t.type&&To(t.leaves)}}function Po(t){return y(t)?t:t?[t]:[]}function Lo(t){return(y(t)?t[0]:t)||{}}function Oo(t,e){e=e.split(",");for(var n=t,i=0;i<e.length&&null!=(n=n&&n[e[i]]);i++);return n}function zo(t,e,n,i){e=e.split(",");for(var r,o=t,a=0;a<e.length-1;a++)null==o[r=e[a]]&&(o[r]={}),o=o[r];(i||null==o[e[a]])&&(o[e[a]]=n)}function Eo(t){d(Jy,function(e){e[0]in t&&!(e[1]in t)&&(t[e[1]]=t[e[0]])})}function No(t){d(t,function(e,n){var i=[],r=[NaN,NaN],o=[e.stackResultDimension,e.stackedOverDimension],a=e.data,s=e.isStackedByIndex,l=a.map(o,function(o,l,u){var h=a.get(e.stackedDimension,u);if(isNaN(h))return r;var c,d;s?d=a.getRawIndex(u):c=a.get(e.stackedByDimension,u);for(var f=NaN,p=n-1;p>=0;p--){var g=t[p];if(s||(d=g.data.rawIndexOf(g.stackedByDimension,c)),d>=0){var m=g.data.getByRawIndex(g.stackResultDimension,d);if(h>=0&&m>0||h<=0&&m<0){h+=m,f=m;break}}}return i[0]=h,i[1]=f,i});a.hostModel.setData(l),e.data=l})}function Ro(t,e){$r.isInstance(t)||(t=$r.seriesDataToSource(t)),this._source=t;var n=this._data=t.data,i=t.sourceFormat;i===Ny&&(this._offset=0,this._dimSize=e,this._data=n),o(this,ix[i===Ly?i+"_"+t.seriesLayoutBy:i])}function Bo(){return this._data.length}function Vo(t){return this._data[t]}function Fo(t){for(var e=0;e<t.length;e++)this._data.push(t[e])}function Ho(t,e,n,i){return null!=n?t[n]:t}function Go(t,e,n,i){return Wo(t[i],this._dimensionInfos[e])}function Wo(t,e){var n=e&&e.type;if("ordinal"===n){var i=e&&e.ordinalMeta;return i?i.parseAndCollect(t):t}return"time"===n&&"number"!=typeof t&&null!=t&&"-"!==t&&(t=+Ar(t)),null==t||""===t?NaN:+t}function Zo(t,e,n){if(t){var i=t.getRawDataItem(e);if(null!=i){var r,o,a=t.getProvider().getSource().sourceFormat,s=t.getDimensionInfo(n);return s&&(r=s.name,o=s.index),rx[a](i,e,o,r)}}}function Uo(t,e,n){if(t){var i=t.getProvider().getSource().sourceFormat;if(i===Py||i===Oy){var r=t.getRawDataItem(e);return i!==Py||w(r)||(r=null),r?r[n]:void 0}}}function Xo(t){return new jo(t)}function jo(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0,this.context}function Yo(t,e,n,i,r,o){ux.reset(n,i,r,o),t._callingProgress=e,t._callingProgress({start:n,end:i,count:i-n,next:ux.next},t.context)}function qo(t,e){t._dueIndex=t._outputDueEnd=t._dueEnd=0,t._settedOutputEnd=null;var n,i;!e&&t._reset&&((n=t._reset(t.context))&&n.progress&&(i=n.forceFirstProgress,n=n.progress),y(n)&&!n.length&&(n=null)),t._progress=n,t._modBy=t._modDataCount=null;var r=t._downstream;return r&&r.dirty(),i}function $o(t){var e=t.name;In(t)||(t.name=Ko(t)||e)}function Ko(t){var e=t.getRawData(),n=[];return d(e.mapDimension("seriesName",!0),function(t){var i=e.getDimensionInfo(t);i.displayName&&n.push(i.displayName)}),n.join(" ")}function Qo(t){return t.model.getRawData().count()}function Jo(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),ta}function ta(t,e){t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function ea(t,e){d(t.CHANGABLE_METHODS,function(n){t.wrapMethod(n,v(na,e))})}function na(t){var e=ia(t);e&&e.setOutputEnd(this.count())}function ia(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i=n.currentTask;if(i){var r=i.agentStubMap;r&&(i=r.get(t.uid))}return i}}function ra(){this.group=new Sg,this.uid=vr("viewChart"),this.renderTask=Xo({plan:sa,reset:la}),this.renderTask.context={view:this}}function oa(t,e){if(t&&(t.trigger(e),"group"===t.type))for(var n=0;n<t.childCount();n++)oa(t.childAt(n),e)}function aa(t,e,n){var i=Tn(t,e);null!=i?d(xn(i),function(e){oa(t.getItemGraphicEl(e),n)}):t.eachItemGraphicEl(function(t){oa(t,n)})}function sa(t){return mx(t.model)}function la(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&gx(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),yx[l]}function ua(t,e,n){function i(){h=(new Date).getTime(),c=null,t.apply(a,s||[])}var r,o,a,s,l,u=0,h=0,c=null;e=e||0;var d=function(){r=(new Date).getTime(),a=this,s=arguments;var t=l||e,d=l||n;l=null,o=r-(d?u:h)-t,clearTimeout(c),d?c=setTimeout(i,t):o>=0?i():c=setTimeout(i,-o),u=r};return d.clear=function(){c&&(clearTimeout(c),c=null)},d.debounceNextCall=function(t){l=t},d}function ha(t,e,n,i){var r=t[e];if(r){var o=r[xx]||r,a=r[bx];if(r[_x]!==n||a!==i){if(null==n||!i)return t[e]=o;(r=t[e]=ua(o,n,"debounce"===i))[xx]=o,r[bx]=i,r[_x]=n}return r}}function ca(t,e){var n=t[e];n&&n[xx]&&(t[e]=n[xx])}function da(t,e,n,i){this.ecInstance=t,this.api=e,this.unfinished;var n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice();this._allHandlers=n.concat(i),this._stageTaskMap=N()}function fa(t,e,n,i,r){function o(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}r=r||{};var a;d(e,function(e,s){if(!r.visualType||r.visualType===e.visualType){var l=t._stageTaskMap.get(e.uid),u=l.seriesTaskMap,h=l.overallTask;if(h){var c,d=h.agentStubMap;d.each(function(t){o(r,t)&&(t.dirty(),c=!0)}),c&&h.dirty(),Dx(h,i);var f=t.getPerformArgs(h,r.block);d.each(function(t){t.perform(f)}),a|=h.perform(f)}else u&&u.each(function(s,l){o(r,s)&&s.dirty();var u=t.getPerformArgs(s,r.block);u.skip=!e.performRawSeries&&n.isSeriesFiltered(s.context.model),Dx(s,i),a|=s.perform(u)})}}),t.unfinished|=a}function pa(t,e,n,i,r){function o(n){var o=n.uid,s=a.get(o)||a.set(o,Xo({plan:_a,reset:wa,count:Ma}));s.context={model:n,ecModel:i,api:r,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:t},Sa(t,n,s)}var a=n.seriesTaskMap||(n.seriesTaskMap=N()),s=e.seriesType,l=e.getTargetSeries;e.createOnAllSeries?i.eachRawSeries(o):s?i.eachRawSeriesByType(s,o):l&&l(i,r).each(o);var u=t._pipelineMap;a.each(function(t,e){u.get(e)||(t.dispose(),a.removeKey(e))})}function ga(t,e,n,i,r){function o(e){var n=e.uid,i=s.get(n);i||(i=s.set(n,Xo({reset:va,onDirty:xa})),a.dirty()),i.context={model:e,overallProgress:h,modifyOutputEnd:c},i.agent=a,i.__block=h,Sa(t,e,i)}var a=n.overallTask=n.overallTask||Xo({reset:ma});a.context={ecModel:i,api:r,overallReset:e.overallReset,scheduler:t};var s=a.agentStubMap=a.agentStubMap||N(),l=e.seriesType,u=e.getTargetSeries,h=!0,c=e.modifyOutputEnd;l?i.eachRawSeriesByType(l,o):u?u(i,r).each(o):(h=!1,d(i.getSeries(),o));var f=t._pipelineMap;s.each(function(t,e){f.get(e)||(t.dispose(),a.dirty(),s.removeKey(e))})}function ma(t){t.overallReset(t.ecModel,t.api,t.payload)}function va(t,e){return t.overallProgress&&ya}function ya(){this.agent.dirty(),this.getDownstream().dirty()}function xa(){this.agent&&this.agent.dirty()}function _a(t){return t.plan&&t.plan(t.model,t.ecModel,t.api,t.payload)}function wa(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=xn(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?f(e,function(t,e){return ba(e)}):Ax}function ba(t){return function(e,n){var i=n.data,r=n.resetDefines[t];if(r&&r.dataEach)for(var o=e.start;o<e.end;o++)r.dataEach(i,o);else r&&r.progress&&r.progress(e,i)}}function Ma(t){return t.data.count()}function Sa(t,e,n){var i=e.uid,r=t._pipelineMap.get(i);!r.head&&(r.head=n),r.tail&&r.tail.pipe(n),r.tail=n,n.__idxInPipeline=r.count++,n.__pipeline=r}function Ia(t){kx=null;try{t(Px,Lx)}catch(t){}return kx}function Ca(t,e){for(var n in e.prototype)t[n]=R}function Ta(t){return function(e,n,i){e=e&&e.toLowerCase(),Zp.prototype[t].call(this,e,n,i)}}function Da(){Zp.call(this)}function Aa(t,e,i){function r(t,e){return t.__prio-e.__prio}i=i||{},"string"==typeof e&&(e=o_[e]),this.id,this.group,this._dom=t;var o=this._zr=mn(t,{renderer:i.renderer||"canvas",devicePixelRatio:i.devicePixelRatio,width:i.width,height:i.height});this._throttledZrFlush=ua(m(o.flush,o),17),(e=n(e))&&ex(e,!0),this._theme=e,this._chartsViews=[],this._chartsMap={},this._componentsViews=[],this._componentsMap={},this._coordSysMgr=new yo;var a=this._api=ja(this);te(r_,r),te(e_,r),this._scheduler=new da(this,a,e_,r_),Zp.call(this),this._messageCenter=new Da,this._initEvents(),this.resize=m(this.resize,this),this._pendingActions=[],o.animation.on("frame",this._onframe,this),Ra(o,this),O(this)}function ka(t,e,n){var i,r=this._model,o=this._coordSysMgr.getCoordinateSystems();e=An(r,e);for(var a=0;a<o.length;a++){var s=o[a];if(s[t]&&null!=(i=s[t](r,e,n)))return i}}function Pa(t){var e=t._model,n=t._scheduler;n.restorePipelines(e),n.prepareStageTasks(),Ba(t,"component",e,n),Ba(t,"chart",e,n),n.plan()}function La(t,e,n,i,r){function o(i){i&&i.__alive&&i[e]&&i[e](i.__model,a,t._api,n)}var a=t._model;if(i){var s={};s[i+"Id"]=n[i+"Id"],s[i+"Index"]=n[i+"Index"],s[i+"Name"]=n[i+"Name"];var l={mainType:i,query:s};r&&(l.subType=r);var u=n.excludeSeriesId;null!=u&&(u=N(xn(u))),a&&a.eachComponent(l,function(e){u&&null!=u.get(e.id)||o(t["series"===i?"_chartsMap":"_componentsMap"][e.__viewId])},t)}else Bx(t._componentsViews.concat(t._chartsViews),o)}function Oa(t,e){var n=t._chartsMap,i=t._scheduler;e.eachSeries(function(t){i.updateStreamModes(t,n[t.__viewId])})}function za(t,e){var n=t.type,i=t.escapeConnect,r=Jx[n],s=r.actionInfo,l=(s.update||"update").split(":"),u=l.pop();l=null!=l[0]&&Hx(l[0]),this[jx]=!0;var h=[t],c=!1;t.batch&&(c=!0,h=f(t.batch,function(e){return e=a(o({},e),t),e.batch=null,e}));var d,p=[],g="highlight"===n||"downplay"===n;Bx(h,function(t){d=r.action(t,this._model,this._api),(d=d||o({},t)).type=s.event||d.type,p.push(d),g?La(this,u,t,"series"):l&&La(this,u,t,l.main,l.sub)},this),"none"===u||g||l||(this[Yx]?(Pa(this),Kx.update.call(this,t),this[Yx]=!1):Kx[u].call(this,t)),d=c?{type:s.event||n,escapeConnect:i,batch:p}:p[0],this[jx]=!1,!e&&this._messageCenter.trigger(d.type,d)}function Ea(t){for(var e=this._pendingActions;e.length;){var n=e.shift();za.call(this,n,t)}}function Na(t){!t&&this.trigger("updated")}function Ra(t,e){t.on("rendered",function(){e.trigger("rendered"),!t.animation.isFinished()||e[Yx]||e._scheduler.unfinished||e._pendingActions.length||e.trigger("finished")})}function Ba(t,e,n,i){function r(t){var e="_ec_"+t.id+"_"+t.type,r=s[e];if(!r){var h=Hx(t.type);(r=new(o?dx.getClass(h.main,h.sub):ra.getClass(h.sub))).init(n,u),s[e]=r,a.push(r),l.add(r.group)}t.__viewId=r.__id=e,r.__alive=!0,r.__model=t,r.group.__ecComponentInfo={mainType:t.mainType,index:t.componentIndex},!o&&i.prepareView(r,t,n,u)}for(var o="component"===e,a=o?t._componentsViews:t._chartsViews,s=o?t._componentsMap:t._chartsMap,l=t._zr,u=t._api,h=0;h<a.length;h++)a[h].__alive=!1;o?n.eachComponent(function(t,e){"series"!==t&&r(e)}):n.eachSeries(r);for(h=0;h<a.length;){var c=a[h];c.__alive?h++:(!o&&c.renderTask.dispose(),l.remove(c.group),c.dispose(n,u),a.splice(h,1),delete s[c.__id],c.__id=c.group.__ecComponentInfo=null)}}function Va(t){t.clearColorPalette(),t.eachSeries(function(t){t.clearColorPalette()})}function Fa(t,e,n,i){Ha(t,e,n,i),Bx(t._chartsViews,function(t){t.__alive=!1}),Ga(t,e,n,i),Bx(t._chartsViews,function(t){t.__alive||t.remove(e,n)})}function Ha(t,e,n,i,r){Bx(r||t._componentsViews,function(t){var r=t.__model;t.render(r,e,n,i),Xa(r,t)})}function Ga(t,e,n,i,r){var o,a=t._scheduler;e.eachSeries(function(e){var n=t._chartsMap[e.__viewId];n.__alive=!0;var s=n.renderTask;a.updatePayload(s,i),r&&r.get(e.uid)&&s.dirty(),o|=s.perform(a.getPerformArgs(s)),n.group.silent=!!e.get("silent"),Xa(e,n),Ua(e,n)}),a.unfinished|=o,Za(t._zr,e),Ix(t._zr.dom,e)}function Wa(t,e){Bx(i_,function(n){n(t,e)})}function Za(t,e){var n=t.storage,i=0;n.traverse(function(t){t.isGroup||i++}),i>e.get("hoverLayerThreshold")&&!bp.node&&n.traverse(function(t){t.isGroup||(t.useHoverLayer=!0)})}function Ua(t,e){var n=t.get("blendMode")||null;e.group.traverse(function(t){t.isGroup||t.style.blend!==n&&t.setStyle("blend",n),t.eachPendingDisplayable&&t.eachPendingDisplayable(function(t){t.setStyle("blend",n)})})}function Xa(t,e){var n=t.get("z"),i=t.get("zlevel");e.group.traverse(function(t){"group"!==t.type&&(null!=n&&(t.z=n),null!=i&&(t.zlevel=i))})}function ja(t){var e=t._coordSysMgr;return o(new vo(t),{getCoordinateSystems:m(e.getCoordinateSystems,e),getComponentByElement:function(e){for(;e;){var n=e.__ecComponentInfo;if(null!=n)return t._model.getComponent(n.mainType,n.index);e=e.parent}}})}function Ya(t){function e(t,e){for(var i=0;i<t.length;i++)t[i][n]=e}var n="__connectUpdateStatus";Bx(t_,function(i,r){t._messageCenter.on(r,function(i){if(l_[t.group]&&0!==t[n]){if(i&&i.escapeConnect)return;var r=t.makeActionFromEvent(i),o=[];Bx(s_,function(e){e!==t&&e.group===t.group&&o.push(e)}),e(o,0),Bx(o,function(t){1!==t[n]&&t.dispatchAction(r)}),e(o,2)}})})}function qa(t){l_[t]=!1}function $a(t){return s_[Ln(t,c_)]}function Ka(t,e){o_[t]=e}function Qa(t){n_.push(t)}function Ja(t,e){is(e_,t,e,Wx)}function ts(t,e,n){"function"==typeof e&&(n=e,e="");var i=Fx(t)?t.type:[t,t={event:e}][0];t.event=(t.event||i).toLowerCase(),e=t.event,Rx(qx.test(i)&&qx.test(e)),Jx[i]||(Jx[i]={action:n,actionInfo:t}),t_[e]=i}function es(t,e){is(r_,t,e,Zx,"layout")}function ns(t,e){is(r_,t,e,Ux,"visual")}function is(t,e,n,i,r){(Vx(e)||Fx(e))&&(n=e,e=i);var o=da.wrapStageHandler(n,r);return o.__prio=e,o.__raw=n,t.push(o),o}function rs(t,e){a_[t]=e}function os(t){return Iy.extend(t)}function as(t){return dx.extend(t)}function ss(t){return cx.extend(t)}function ls(t){return ra.extend(t)}function us(t){return t}function hs(t,e,n,i,r){this._old=t,this._new=e,this._oldKeyGetter=n||us,this._newKeyGetter=i||us,this.context=r}function cs(t,e,n,i,r){for(var o=0;o<t.length;o++){var a="_ec_"+r[i](t[o],o),s=e[a];null==s?(n.push(a),e[a]=o):(s.length||(e[a]=s=[s]),s.push(o))}}function ds(t){var e={},n=e.encode={},i=N(),r=[],o=[];d(t.dimensions,function(e){var a=t.getDimensionInfo(e),s=a.coordDim;if(s){var l=n[s];n.hasOwnProperty(s)||(l=n[s]=[]),l[a.coordDimIndex]=e,a.isExtraCoord||(i.set(s,1),ps(a.type)&&(r[0]=e)),a.defaultTooltip&&o.push(e)}g_.each(function(t,e){var i=n[e];n.hasOwnProperty(e)||(i=n[e]=[]);var r=a.otherDims[e];null!=r&&!1!==r&&(i[r]=a.name)})});var a=[],s={};i.each(function(t,e){var i=n[e];s[e]=i[0],a=a.concat(i)}),e.dataDimsOnCoord=a,e.encodeFirstDimNotExtra=s;var l=n.label;l&&l.length&&(r=l.slice());var u=n.tooltip;return u&&u.length?o=u.slice():o.length||(o=r.slice()),n.defaultedLabel=r,n.defaultedTooltip=o,e}function fs(t){return"category"===t?"ordinal":"time"===t?"time":"float"}function ps(t){return!("ordinal"===t||"time"===t)}function gs(t){return t._rawCount>65535?x_:__}function ms(t){var e=t.constructor;return e===Array?t.slice():new e(t)}function vs(t,e){d(w_.concat(e.__wrappedMethods||[]),function(n){e.hasOwnProperty(n)&&(t[n]=e[n])}),t.__wrappedMethods=e.__wrappedMethods,d(b_,function(i){t[i]=n(e[i])}),t._calculationInfo=o(e._calculationInfo)}function ys(t){var e=t._invertedIndicesMap;d(e,function(n,i){var r=t._dimensionInfos[i].ordinalMeta;if(r){n=e[i]=new x_(r.categories.length);for(o=0;o<n.length;o++)n[o]=NaN;for(var o=0;o<t._count;o++)n[t.get(i,o)]=o}})}function xs(t,e,n){var i;if(null!=e){var r=t._chunkSize,o=Math.floor(n/r),a=n%r,s=t.dimensions[e],l=t._storage[s][o];if(l){i=l[a];var u=t._dimensionInfos[s].ordinalMeta;u&&u.categories.length&&(i=u.categories[i])}}return i}function _s(t){return t}function ws(t){return t<this._count&&t>=0?this._indices[t]:-1}function bs(t,e){var n=t._idList[e];return null==n&&(n=xs(t,t._idDimIdx,e)),null==n&&(n=v_+e),n}function Ms(t){return y(t)||(t=[t]),t}function Ss(t,e){var n=t.dimensions,i=new M_(f(n,t.getDimensionInfo,t),t.hostModel);vs(i,t);for(var r=i._storage={},o=t._storage,a=0;a<n.length;a++){var s=n[a];o[s]&&(l(e,s)>=0?(r[s]=Is(o[s]),i._rawExtent[s]=Cs(),i._extent[s]=null):r[s]=o[s])}return i}function Is(t){for(var e=new Array(t.length),n=0;n<t.length;n++)e[n]=ms(t[n]);return e}function Cs(){return[1/0,-1/0]}function Ts(t,e,i){function r(t,e,n){null!=g_.get(e)?t.otherDims[e]=n:(t.coordDim=e,t.coordDimIndex=n,h.set(e,!0))}$r.isInstance(e)||(e=$r.seriesDataToSource(e)),i=i||{},t=(t||[]).slice();for(var s=(i.dimsDef||[]).slice(),l=N(i.encodeDef),u=N(),h=N(),c=[],f=Ds(e,t,s,i.dimCount),p=0;p<f;p++){var g=s[p]=o({},w(s[p])?s[p]:{name:s[p]}),m=g.name,v=c[p]={otherDims:{}};null!=m&&null==u.get(m)&&(v.name=v.displayName=m,u.set(m,p)),null!=g.type&&(v.type=g.type),null!=g.displayName&&(v.displayName=g.displayName)}l.each(function(t,e){t=xn(t).slice();var n=l.set(e,[]);d(t,function(t,i){_(t)&&(t=u.get(t)),null!=t&&t<f&&(n[i]=t,r(c[t],e,i))})});var y=0;d(t,function(t,e){var i,t,o,s;if(_(t))i=t,t={};else{i=t.name;var u=t.ordinalMeta;t.ordinalMeta=null,(t=n(t)).ordinalMeta=u,o=t.dimsDef,s=t.otherDims,t.name=t.coordDim=t.coordDimIndex=t.dimsDef=t.otherDims=null}var h=xn(l.get(i));if(!h.length)for(var f=0;f<(o&&o.length||1);f++){for(;y<c.length&&null!=c[y].coordDim;)y++;y<c.length&&h.push(y++)}d(h,function(e,n){var l=c[e];if(r(a(l,t),i,n),null==l.name&&o){var u=o[n];!w(u)&&(u={name:u}),l.name=l.displayName=u.name,l.defaultTooltip=u.defaultTooltip}s&&a(l.otherDims,s)})});var x=i.generateCoord,b=i.generateCoordCount,M=null!=b;b=x?b||1:0;for(var S=x||"value",I=0;I<f;I++)null==(v=c[I]=c[I]||{}).coordDim&&(v.coordDim=As(S,h,M),v.coordDimIndex=0,(!x||b<=0)&&(v.isExtraCoord=!0),b--),null==v.name&&(v.name=As(v.coordDim,u)),null==v.type&&so(e,I,v.name)&&(v.type="ordinal");return c}function Ds(t,e,n,i){var r=Math.max(t.dimensionsDetectCount||1,e.length,n.length,i||0);return d(e,function(t){var e=t.dimsDef;e&&(r=Math.max(r,e.length))}),r}function As(t,e,n){if(n||null!=e.get(t)){for(var i=0;null!=e.get(t+i);)i++;t+=i}return e.set(t,!0),t}function ks(t,e,n){var i,r,o,a,s=(n=n||{}).byIndex,l=n.stackedCoordDimension,u=!(!t||!t.get("stack"));if(d(e,function(t,n){_(t)&&(e[n]=t={name:t}),u&&!t.isExtraCoord&&(s||i||!t.ordinalMeta||(i=t),r||"ordinal"===t.type||"time"===t.type||l&&l!==t.coordDim||(r=t))}),!r||s||i||(s=!0),r){o="__\0ecstackresult",a="__\0ecstackedover",i&&(i.createInvertedIndices=!0);var h=r.coordDim,c=r.type,f=0;d(e,function(t){t.coordDim===h&&f++}),e.push({name:o,coordDim:h,coordDimIndex:f,type:c,isExtraCoord:!0,isCalculationCoord:!0}),f++,e.push({name:a,coordDim:a,coordDimIndex:f,type:c,isExtraCoord:!0,isCalculationCoord:!0})}return{stackedDimension:r&&r.name,stackedByDimension:i&&i.name,isStackedByIndex:s,stackedOverDimension:a,stackResultDimension:o}}function Ps(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function Ls(t,e){return Ps(t,e)?t.getCalculationInfo("stackResultDimension"):e}function Os(t,e,n){n=n||{},$r.isInstance(t)||(t=$r.seriesDataToSource(t));var i,r=e.get("coordinateSystem"),o=yo.get(r),a=Yr(e);a&&(i=f(a.coordSysDims,function(t){var e={name:t},n=a.axisMap.get(t);if(n){var i=n.get("type");e.type=fs(i)}return e})),i||(i=o&&(o.getDimensionsInfo?o.getDimensionsInfo():o.dimensions.slice())||["x","y"]);var s,l,u=C_(t,{coordDimensions:i,generateCoord:n.generateCoord});a&&d(u,function(t,e){var n=t.coordDim,i=a.categoryAxisMap.get(n);i&&(null==s&&(s=e),t.ordinalMeta=i.getOrdinalMeta()),null!=t.otherDims.itemName&&(l=!0)}),l||null==s||(u[s].otherDims.itemName=0);var h=ks(e,u),c=new M_(u,e);c.setCalculationInfo(h);var p=null!=s&&zs(t)?function(t,e,n,i){return i===s?n:this.defaultDimValueGetter(t,e,n,i)}:null;return c.hasItemOption=!1,c.initData(t,null,p),c}function zs(t){if(t.sourceFormat===Py){var e=Es(t.data||[]);return null!=e&&!y(wn(e))}}function Es(t){for(var e=0;e<t.length&&null==t[e];)e++;return t[e]}function Ns(t){this._setting=t||{},this._extent=[1/0,-1/0],this._interval=0,this.init&&this.init.apply(this,arguments)}function Rs(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication,this._map}function Bs(t){return t._map||(t._map=N(t.categories))}function Vs(t){return w(t)&&null!=t.value?t.value:t+""}function Fs(t,e,n,i){var r={},o=t[1]-t[0],a=r.interval=Lr(o/e,!0);null!=n&&a<n&&(a=r.interval=n),null!=i&&a>i&&(a=r.interval=i);var s=r.intervalPrecision=Hs(a);return Ws(r.niceTickExtent=[k_(Math.ceil(t[0]/a)*a,s),k_(Math.floor(t[1]/a)*a,s)],t),r}function Hs(t){return Sr(t)+2}function Gs(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function Ws(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),Gs(t,0,e),Gs(t,1,e),t[0]>t[1]&&(t[0]=t[1])}function Zs(t,e,n,i){var r=[];if(!t)return r;e[0]<n[0]&&r.push(e[0]);for(var o=n[0];o<=n[1]&&(r.push(o),(o=k_(o+t,i))!==r[r.length-1]);)if(r.length>1e4)return[];return e[1]>(r.length?r[r.length-1]:n[1])&&r.push(e[1]),r}function Us(t){return t.get("stack")||O_+t.seriesIndex}function Xs(t){return t.dim+t.index}function js(t,e){var n=[];return e.eachSeriesByType(t,function(t){Ks(t)&&!Qs(t)&&n.push(t)}),n}function Ys(t){var e=[];return d(t,function(t){var n=t.getData(),i=t.coordinateSystem.getBaseAxis(),r=i.getExtent(),o="category"===i.type?i.getBandWidth():Math.abs(r[1]-r[0])/n.count(),a=_r(t.get("barWidth"),o),s=_r(t.get("barMaxWidth"),o),l=t.get("barGap"),u=t.get("barCategoryGap");e.push({bandWidth:o,barWidth:a,barMaxWidth:s,barGap:l,barCategoryGap:u,axisKey:Xs(i),stackId:Us(t)})}),qs(e)}function qs(t){var e={};d(t,function(t,n){var i=t.axisKey,r=t.bandWidth,o=e[i]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},a=o.stacks;e[i]=o;var s=t.stackId;a[s]||o.autoWidthCount++,a[s]=a[s]||{width:0,maxWidth:0};var l=t.barWidth;l&&!a[s].width&&(a[s].width=l,l=Math.min(o.remainedWidth,l),o.remainedWidth-=l);var u=t.barMaxWidth;u&&(a[s].maxWidth=u);var h=t.barGap;null!=h&&(o.gap=h);var c=t.barCategoryGap;null!=c&&(o.categoryGap=c)});var n={};return d(e,function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=_r(t.categoryGap,r),a=_r(t.gap,1),s=t.remainedWidth,l=t.autoWidthCount,u=(s-o)/(l+(l-1)*a);u=Math.max(u,0),d(i,function(t,e){var n=t.maxWidth;n&&n<u&&(n=Math.min(n,s),t.width&&(n=Math.min(n,t.width)),s-=n,t.width=n,l--)}),u=(s-o)/(l+(l-1)*a),u=Math.max(u,0);var h,c=0;d(i,function(t,e){t.width||(t.width=u),h=t,c+=t.width*(1+a)}),h&&(c-=h.width*a);var f=-c/2;d(i,function(t,i){n[e][i]=n[e][i]||{offset:f,width:t.width},f+=t.width*(1+a)})}),n}function $s(t,e,n){if(t&&e){var i=t[Xs(e)];return null!=i&&null!=n&&(i=i[Us(n)]),i}}function Ks(t){return t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type}function Qs(t){return t.pipelineContext&&t.pipelineContext.large}function Js(t,e,n){return l(t.getAxesOnZeroOf(),e)>=0||n?e.toGlobalCoord(e.dataToCoord(0)):e.getGlobalExtent()[0]}function tl(t,e){return U_(t,Z_(e))}function el(t,e){var n,i,r,o=t.type,a=e.getMin(),s=e.getMax(),l=null!=a,u=null!=s,h=t.getExtent();"ordinal"===o?n=e.getCategories().length:(y(i=e.get("boundaryGap"))||(i=[i||0,i||0]),"boolean"==typeof i[0]&&(i=[0,0]),i[0]=_r(i[0],1),i[1]=_r(i[1],1),r=h[1]-h[0]||Math.abs(h[0])),null==a&&(a="ordinal"===o?n?0:NaN:h[0]-i[0]*r),null==s&&(s="ordinal"===o?n?n-1:NaN:h[1]+i[1]*r),"dataMin"===a?a=h[0]:"function"==typeof a&&(a=a({min:h[0],max:h[1]})),"dataMax"===s?s=h[1]:"function"==typeof s&&(s=s({min:h[0],max:h[1]})),(null==a||!isFinite(a))&&(a=NaN),(null==s||!isFinite(s))&&(s=NaN),t.setBlank(I(a)||I(s)||"ordinal"===o&&!t.getOrdinalMeta().categories.length),e.getNeedCrossZero()&&(a>0&&s>0&&!l&&(a=0),a<0&&s<0&&!u&&(s=0));var c=e.ecModel;if(c&&"time"===o){var f,p=js("bar",c);if(d(p,function(t){f|=t.getBaseAxis()===e.axis}),f){var g=Ys(p),m=nl(a,s,e,g);a=m.min,s=m.max}}return[a,s]}function nl(t,e,n,i){var r=n.axis.getExtent(),o=r[1]-r[0],a=$s(i,n.axis);if(void 0===a)return{min:t,max:e};var s=1/0;d(a,function(t){s=Math.min(t.offset,s)});var l=-1/0;d(a,function(t){l=Math.max(t.offset+t.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,h=e-t,c=h/(1-(s+l)/o)-h;return e+=c*(l/u),t-=c*(s/u),{min:t,max:e}}function il(t,e){var n=el(t,e),i=null!=e.getMin(),r=null!=e.getMax(),o=e.get("splitNumber");"log"===t.type&&(t.base=e.get("logBase"));var a=t.type;t.setExtent(n[0],n[1]),t.niceExtent({splitNumber:o,fixMin:i,fixMax:r,minInterval:"interval"===a||"time"===a?e.get("minInterval"):null,maxInterval:"interval"===a||"time"===a?e.get("maxInterval"):null});var s=e.get("interval");null!=s&&t.setInterval&&t.setInterval(s)}function rl(t,e){if(e=e||t.get("type"))switch(e){case"category":return new A_(t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),[1/0,-1/0]);case"value":return new L_;default:return(Ns.getClass(e)||L_).create(t)}}function ol(t){var e=t.scale.getExtent(),n=e[0],i=e[1];return!(n>0&&i>0||n<0&&i<0)}function al(t){var e=t.getLabelModel().get("formatter"),n="category"===t.type?t.scale.getExtent()[0]:null;return"string"==typeof e?e=function(t){return function(e){return t.replace("{value}",null!=e?e:"")}}(e):"function"==typeof e?function(i,r){return null!=n&&(r=i-n),e(sl(t,i),r)}:function(e){return t.scale.getLabel(e)}}function sl(t,e){return"category"===t.type?t.scale.getLabel(e):e}function ll(t){var e=t.model,n=t.scale;if(e.get("axisLabel.show")&&!n.isBlank()){var i,r,o="category"===t.type,a=n.getExtent();r=o?n.count():(i=n.getTicks()).length;var s,l=t.getLabelModel(),u=al(t),h=1;r>40&&(h=Math.ceil(r/40));for(var c=0;c<r;c+=h){var d=u(i?i[c]:a[0]+c),f=ul(l.getTextRect(d),l.get("rotate")||0);s?s.union(f):s=f}return s}}function ul(t,e){var n=e*Math.PI/180,i=t.plain(),r=i.width,o=i.height,a=r*Math.cos(n)+o*Math.sin(n),s=r*Math.sin(n)+o*Math.cos(n);return new Xt(i.x,i.y,a,s)}function hl(t,e){if("image"!==this.type){var n=this.style,i=this.shape;i&&"line"===i.symbolType?n.stroke=t:this.__isEmptyBrush?(n.stroke=t,n.fill=e||"#fff"):(n.fill&&(n.fill=t),n.stroke&&(n.stroke=t)),this.dirty(!1)}}function cl(t,e,n,i,r,o,a){var s=0===t.indexOf("empty");s&&(t=t.substr(5,1).toLowerCase()+t.substr(6));var l;return l=0===t.indexOf("image://")?Pi(t.slice(8),new Xt(e,n,i,r),a?"center":"cover"):0===t.indexOf("path://")?ki(t.slice(7),{},new Xt(e,n,i,r),a?"center":"cover"):new rw({shape:{symbolType:t,x:e,y:n,width:i,height:r}}),l.__isEmptyBrush=s,l.setColor=hl,l.setColor(o),l}function dl(t,e){return Math.abs(t-e)<sw}function fl(t,e,n){var i=0,r=t[0];if(!r)return!1;for(var o=1;o<t.length;o++){var a=t[o];i+=hi(r[0],r[1],a[0],a[1],e,n),r=a}var s=t[0];return dl(r[0],s[0])&&dl(r[1],s[1])||(i+=hi(r[0],r[1],s[0],s[1],e,n)),0!==i}function pl(t,e,n){if(this.name=t,this.geometries=e,n)n=[n[0],n[1]];else{var i=this.getBoundingRect();n=[i.x+i.width/2,i.y+i.height/2]}this.center=n}function gl(t){if(!t.UTF8Encoding)return t;var e=t.UTF8Scale;null==e&&(e=1024);for(var n=t.features,i=0;i<n.length;i++)for(var r=n[i].geometry,o=r.coordinates,a=r.encodeOffsets,s=0;s<o.length;s++){var l=o[s];if("Polygon"===r.type)o[s]=ml(l,a[s],e);else if("MultiPolygon"===r.type)for(var u=0;u<l.length;u++){var h=l[u];l[u]=ml(h,a[s][u],e)}}return t.UTF8Encoding=!1,t}function ml(t,e,n){for(var i=[],r=e[0],o=e[1],a=0;a<t.length;a+=2){var s=t.charCodeAt(a)-64,l=t.charCodeAt(a+1)-64;s=s>>1^-(1&s),l=l>>1^-(1&l),r=s+=r,o=l+=o,i.push([s/n,l/n])}return i}function vl(t){return"category"===t.type?xl(t):bl(t)}function yl(t,e){return"category"===t.type?wl(t,e):{ticks:t.scale.getTicks()}}function xl(t){var e=t.getLabelModel(),n=_l(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}function _l(t,e){var n=Ml(t,"labels"),i=Pl(e),r=Sl(n,i);if(r)return r;var o,a;return o=x(i)?kl(t,i):Al(t,a="auto"===i?Cl(t):i),Il(n,i,{labels:o,labelCategoryInterval:a})}function wl(t,e){var n=Ml(t,"ticks"),i=Pl(e),r=Sl(n,i);if(r)return r;var o,a;if(e.get("show")&&!t.scale.isBlank()||(o=[]),x(i))o=kl(t,i,!0);else if("auto"===i){var s=_l(t,t.getLabelModel());a=s.labelCategoryInterval,o=f(s.labels,function(t){return t.tickValue})}else o=Al(t,a=i,!0);return Il(n,i,{ticks:o,tickCategoryInterval:a})}function bl(t){var e=t.scale.getTicks(),n=al(t);return{labels:f(e,function(e,i){return{formattedLabel:n(e,i),rawLabel:t.scale.getLabel(e),tickValue:e}})}}function Ml(t,e){return uw(t)[e]||(uw(t)[e]=[])}function Sl(t,e){for(var n=0;n<t.length;n++)if(t[n].key===e)return t[n].value}function Il(t,e,n){return t.push({key:e,value:n}),n}function Cl(t){var e=uw(t).autoInterval;return null!=e?e:uw(t).autoInterval=t.calculateCategoryInterval()}function Tl(t){var e=Dl(t),n=al(t),i=(e.axisRotate-e.labelRotate)/180*Math.PI,r=t.scale,o=r.getExtent(),a=r.count();if(o[1]-o[0]<1)return 0;var s=1;a>40&&(s=Math.max(1,Math.floor(a/40)));for(var l=o[0],u=t.dataToCoord(l+1)-t.dataToCoord(l),h=Math.abs(u*Math.cos(i)),c=Math.abs(u*Math.sin(i)),d=0,f=0;l<=o[1];l+=s){var p=0,g=0,m=ce(n(l),e.font,"center","top");p=1.3*m.width,g=1.3*m.height,d=Math.max(d,p,7),f=Math.max(f,g,7)}var v=d/h,y=f/c;isNaN(v)&&(v=1/0),isNaN(y)&&(y=1/0);var x=Math.max(0,Math.floor(Math.min(v,y))),_=uw(t.model),w=_.lastAutoInterval,b=_.lastTickCount;return null!=w&&null!=b&&Math.abs(w-x)<=1&&Math.abs(b-a)<=1&&w>x?x=w:(_.lastTickCount=a,_.lastAutoInterval=x),x}function Dl(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}function Al(t,e,n){function i(t){l.push(n?t:{formattedLabel:r(t),rawLabel:o.getLabel(t),tickValue:t})}var r=al(t),o=t.scale,a=o.getExtent(),s=t.getLabelModel(),l=[],u=Math.max((e||0)+1,1),h=a[0],c=o.count();0!==h&&u>1&&c/u>2&&(h=Math.round(Math.ceil(h/u)*u));var d={min:s.get("showMinLabel"),max:s.get("showMaxLabel")};d.min&&h!==a[0]&&i(a[0]);for(var f=h;f<=a[1];f+=u)i(f);return d.max&&f!==a[1]&&i(a[1]),l}function kl(t,e,n){var i=t.scale,r=al(t),o=[];return d(i.getTicks(),function(t){var a=i.getLabel(t);e(t,a)&&o.push(n?t:{formattedLabel:r(t),rawLabel:a,tickValue:t})}),o}function Pl(t){var e=t.get("interval");return null==e?"auto":e}function Ll(t,e){var n=(t[1]-t[0])/e/2;t[0]+=n,t[1]-=n}function Ol(t,e,n,i,r){function o(t,e){return h?t>e:t<e}var a=e.length;if(t.onBand&&!i&&a){var s,l=t.getExtent();if(1===a)e[0].coord=l[0],s=e[1]={coord:l[0]};else{var u=e[1].coord-e[0].coord;d(e,function(t){t.coord-=u/2;var e=e||0;e%2>0&&(t.coord-=u/(2*(e+1)))}),s={coord:e[a-1].coord+u},e.push(s)}var h=l[0]>l[1];o(e[0].coord,l[0])&&(r?e[0].coord=l[0]:e.shift()),r&&o(l[0],e[0].coord)&&e.unshift({coord:l[0]}),o(l[1],s.coord)&&(r?s.coord=l[1]:e.pop()),r&&o(s.coord,l[1])&&e.push({coord:l[1]})}}function zl(t,e){var n=t.mapDimension("defaultedLabel",!0),i=n.length;if(1===i)return Zo(t,e,n[0]);if(i){for(var r=[],o=0;o<n.length;o++){var a=Zo(t,e,n[o]);r.push(a)}return r.join(" ")}}function El(t,e,n){Sg.call(this),this.updateData(t,e,n)}function Nl(t){return[t[0]/2,t[1]/2]}function Rl(t,e){this.parent.drift(t,e)}function Bl(t){this.group=new Sg,this._symbolCtor=t||El}function Vl(t,e,n,i){return e&&!isNaN(e[0])&&!isNaN(e[1])&&!(i.isIgnore&&i.isIgnore(n))&&!(i.clipShape&&!i.clipShape.contain(e[0],e[1]))&&"none"!==t.getItemVisual(n,"symbol")}function Fl(t){return null==t||w(t)||(t={isIgnore:t}),t||{}}function Hl(t){var e=t.hostModel;return{itemStyle:e.getModel("itemStyle").getItemStyle(["color"]),hoverItemStyle:e.getModel("emphasis.itemStyle").getItemStyle(),symbolRotate:e.get("symbolRotate"),symbolOffset:e.get("symbolOffset"),hoverAnimation:e.get("hoverAnimation"),labelModel:e.getModel("label"),hoverLabelModel:e.getModel("emphasis.label"),cursorStyle:e.get("cursor")}}function Gl(t,e,n){var i,r=t.getBaseAxis(),o=t.getOtherAxis(r),a=Wl(o,n),s=r.dim,l=o.dim,u=e.mapDimension(l),h=e.mapDimension(s),c="x"===l||"radius"===l?1:0,d=f(t.dimensions,function(t){return e.mapDimension(t)}),p=e.getCalculationInfo("stackResultDimension");return(i|=Ps(e,d[0]))&&(d[0]=p),(i|=Ps(e,d[1]))&&(d[1]=p),{dataDimsForPoint:d,valueStart:a,valueAxisDim:l,baseAxisDim:s,stacked:!!i,valueDim:u,baseDim:h,baseDataOffset:c,stackedOverDimension:e.getCalculationInfo("stackedOverDimension")}}function Wl(t,e){var n=0,i=t.scale.getExtent();return"start"===e?n=i[0]:"end"===e?n=i[1]:i[0]>0?n=i[0]:i[1]<0&&(n=i[1]),n}function Zl(t,e,n,i){var r=NaN;t.stacked&&(r=n.get(n.getCalculationInfo("stackedOverDimension"),i)),isNaN(r)&&(r=t.valueStart);var o=t.baseDataOffset,a=[];return a[o]=n.get(t.baseDim,i),a[1-o]=r,e.dataToPoint(a)}function Ul(t,e){var n=[];return e.diff(t).add(function(t){n.push({cmd:"+",idx:t})}).update(function(t,e){n.push({cmd:"=",idx:e,idx1:t})}).remove(function(t){n.push({cmd:"-",idx:t})}).execute(),n}function Xl(t){return isNaN(t[0])||isNaN(t[1])}function jl(t,e,n,i,r,o,a,s,l,u,h){return"none"!==u&&u?Yl.apply(this,arguments):ql.apply(this,arguments)}function Yl(t,e,n,i,r,o,a,s,l,u,h){for(var c=0,d=n,f=0;f<i;f++){var p=e[d];if(d>=r||d<0)break;if(Xl(p)){if(h){d+=o;continue}break}if(d===n)t[o>0?"moveTo":"lineTo"](p[0],p[1]);else if(l>0){var g=e[c],m="y"===u?1:0,v=(p[m]-g[m])*l;Iw(Tw,g),Tw[m]=g[m]+v,Iw(Dw,p),Dw[m]=p[m]-v,t.bezierCurveTo(Tw[0],Tw[1],Dw[0],Dw[1],p[0],p[1])}else t.lineTo(p[0],p[1]);c=d,d+=o}return f}function ql(t,e,n,i,r,o,a,s,l,u,h){for(var c=0,d=n,f=0;f<i;f++){var p=e[d];if(d>=r||d<0)break;if(Xl(p)){if(h){d+=o;continue}break}if(d===n)t[o>0?"moveTo":"lineTo"](p[0],p[1]),Iw(Tw,p);else if(l>0){var g=d+o,m=e[g];if(h)for(;m&&Xl(e[g]);)m=e[g+=o];var v=.5,y=e[c];if(!(m=e[g])||Xl(m))Iw(Dw,p);else{Xl(m)&&!h&&(m=p),W(Cw,m,y);var x,_;if("x"===u||"y"===u){var w="x"===u?0:1;x=Math.abs(p[w]-y[w]),_=Math.abs(p[w]-m[w])}else x=Fp(p,y),_=Fp(p,m);Sw(Dw,p,Cw,-l*(1-(v=_/(_+x))))}bw(Tw,Tw,s),Mw(Tw,Tw,a),bw(Dw,Dw,s),Mw(Dw,Dw,a),t.bezierCurveTo(Tw[0],Tw[1],Dw[0],Dw[1],p[0],p[1]),Sw(Tw,p,Cw,l*v)}else t.lineTo(p[0],p[1]);c=d,d+=o}return f}function $l(t,e){var n=[1/0,1/0],i=[-1/0,-1/0];if(e)for(var r=0;r<t.length;r++){var o=t[r];o[0]<n[0]&&(n[0]=o[0]),o[1]<n[1]&&(n[1]=o[1]),o[0]>i[0]&&(i[0]=o[0]),o[1]>i[1]&&(i[1]=o[1])}return{min:e?n:i,max:e?i:n}}function Kl(t,e){if(t.length===e.length){for(var n=0;n<t.length;n++){var i=t[n],r=e[n];if(i[0]!==r[0]||i[1]!==r[1])return}return!0}}function Ql(t){return"number"==typeof t?t:t?.5:0}function Jl(t){var e=t.getGlobalExtent();if(t.onBand){var n=t.getBandWidth()/2-1,i=e[1]>e[0]?1:-1;e[0]+=i*n,e[1]-=i*n}return e}function tu(t,e,n){if(!n.valueDim)return[];for(var i=[],r=0,o=e.count();r<o;r++)i.push(Zl(n,t,e,r));return i}function eu(t,e,n,i){var r=Jl(t.getAxis("x")),o=Jl(t.getAxis("y")),a=t.getBaseAxis().isHorizontal(),s=Math.min(r[0],r[1]),l=Math.min(o[0],o[1]),u=Math.max(r[0],r[1])-s,h=Math.max(o[0],o[1])-l;if(n)s-=.5,u+=.5,l-=.5,h+=.5;else{var c=i.get("lineStyle.width")||2,d=i.get("clipOverflow")?c/2:Math.max(u,h);a?(l-=d,h+=2*d):(s-=d,u+=2*d)}var f=new Fv({shape:{x:s,y:l,width:u,height:h}});return e&&(f.shape[a?"width":"height"]=0,sr(f,{shape:{width:u,height:h}},i)),f}function nu(t,e,n,i){var r=t.getAngleAxis(),o=t.getRadiusAxis().getExtent().slice();o[0]>o[1]&&o.reverse();var a=r.getExtent(),s=Math.PI/180;n&&(o[0]-=.5,o[1]+=.5);var l=new zv({shape:{cx:wr(t.cx,1),cy:wr(t.cy,1),r0:wr(o[0],1),r:wr(o[1],1),startAngle:-a[0]*s,endAngle:-a[1]*s,clockwise:r.inverse}});return e&&(l.shape.endAngle=-a[0]*s,sr(l,{shape:{endAngle:-a[1]*s}},i)),l}function iu(t,e,n,i){return"polar"===t.type?nu(t,e,n,i):eu(t,e,n,i)}function ru(t,e,n){for(var i=e.getBaseAxis(),r="x"===i.dim||"radius"===i.dim?0:1,o=[],a=0;a<t.length-1;a++){var s=t[a+1],l=t[a];o.push(l);var u=[];switch(n){case"end":u[r]=s[r],u[1-r]=l[1-r],o.push(u);break;case"middle":var h=(l[r]+s[r])/2,c=[];u[r]=c[r]=h,u[1-r]=l[1-r],c[1-r]=s[1-r],o.push(u),o.push(c);break;default:u[r]=l[r],u[1-r]=s[1-r],o.push(u)}}return t[a]&&o.push(t[a]),o}function ou(t,e){var n=t.getVisual("visualMeta");if(n&&n.length&&t.count()&&"cartesian2d"===e.type){for(var i,r,o=n.length-1;o>=0;o--){var a=n[o].dimension,s=t.dimensions[a],l=t.getDimensionInfo(s);if("x"===(i=l&&l.coordDim)||"y"===i){r=n[o];break}}if(r){var u=e.getAxis(i),h=f(r.stops,function(t){return{coord:u.toGlobalCoord(u.dataToCoord(t.value)),color:t.color}}),c=h.length,p=r.outerColors.slice();c&&h[0].coord>h[c-1].coord&&(h.reverse(),p.reverse());var g=h[0].coord-10,m=h[c-1].coord+10,v=m-g;if(v<.001)return"transparent";d(h,function(t){t.offset=(t.coord-g)/v}),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new jv(0,0,0,0,h,!0);return y[i]=g,y[i+"2"]=m,y}}}function au(t,e,n){var i=t.get("showAllSymbol"),r="auto"===i;if(!i||r){var o=n.getAxesByScale("ordinal")[0];if(o&&(!r||!su(o,e))){var a=e.mapDimension(o.dim),s={};return d(o.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function su(t,e){var n=t.getExtent(),i=Math.abs(n[1]-n[0])/t.scale.count();isNaN(i)&&(i=0);for(var r=e.count(),o=Math.max(1,Math.round(r/5)),a=0;a<r;a+=o)if(1.5*El.getSymbolSize(e,a)[t.isHorizontal()?1:0]>i)return!1;return!0}function lu(t){return this._axes[t]}function uu(t){Ew.call(this,t)}function hu(t,e){return e.type||(e.data?"category":"value")}function cu(t,e,n){return t.getCoordSysModel()===e}function du(t,e,n){this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this._initCartesian(t,e,n),this.model=t}function fu(t,e,n){n.getAxesOnZeroOf=function(){return i?[i]:[]};var i,r=t[e],o=n.model,a=o.get("axisLine.onZero"),s=o.get("axisLine.onZeroAxisIndex");if(a)if(null==s){for(var l in r)if(r.hasOwnProperty(l)&&pu(r[l])){i=r[l];break}}else pu(r[s])&&(i=r[s])}function pu(t){return t&&"category"!==t.type&&"time"!==t.type&&ol(t)}function gu(t,e){var n=t.getExtent(),i=n[0]+n[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return i-t+e}}function mu(t,e){return f(Zw,function(e){return t.getReferringComponents(e)[0]})}function vu(t){return"cartesian2d"===t.get("coordinateSystem")}function yu(t){var e={componentType:t.mainType};return e[t.mainType+"Index"]=t.componentIndex,e}function xu(t,e,n,i){var r,o,a=Tr(n-t.rotation),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;return Dr(a-Uw/2)?(o=l?"bottom":"top",r="center"):Dr(a-1.5*Uw)?(o=l?"top":"bottom",r="center"):(o="middle",r=a<1.5*Uw&&a>Uw/2?l?"left":"right":l?"right":"left"),{rotation:a,textAlign:r,textVerticalAlign:o}}function _u(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)}function wu(t,e,n){var i=t.get("axisLabel.showMinLabel"),r=t.get("axisLabel.showMaxLabel");e=e||[],n=n||[];var o=e[0],a=e[1],s=e[e.length-1],l=e[e.length-2],u=n[0],h=n[1],c=n[n.length-1],d=n[n.length-2];!1===i?(bu(o),bu(u)):Mu(o,a)&&(i?(bu(a),bu(h)):(bu(o),bu(u))),!1===r?(bu(s),bu(c)):Mu(l,s)&&(r?(bu(l),bu(d)):(bu(s),bu(c)))}function bu(t){t&&(t.ignore=!0)}function Mu(t,e,n){var i=t&&t.getBoundingRect().clone(),r=e&&e.getBoundingRect().clone();if(i&&r){var o=ot([]);return ut(o,o,-t.rotation),i.applyTransform(st([],o,t.getLocalTransform())),r.applyTransform(st([],o,e.getLocalTransform())),i.intersect(r)}}function Su(t){return"middle"===t||"center"===t}function Iu(t,e,n){var i=e.axis;if(e.get("axisTick.show")&&!i.scale.isBlank()){for(var r=e.getModel("axisTick"),o=r.getModel("lineStyle"),s=r.get("length"),l=i.getTicksCoords(),u=[],h=[],c=t._transform,d=[],f=0;f<l.length;f++){var p=l[f].coord;u[0]=p,u[1]=0,h[0]=p,h[1]=n.tickDirection*s,c&&($(u,u,c),$(h,h,c));var g=new Hv(zi({anid:"tick_"+l[f].tickValue,shape:{x1:u[0],y1:u[1],x2:h[0],y2:h[1]},style:a(o.getLineStyle(),{stroke:e.get("axisLine.lineStyle.color")}),z2:2,silent:!0}));t.group.add(g),d.push(g)}return d}}function Cu(t,e,n){var i=e.axis;if(C(n.axisLabelShow,e.get("axisLabel.show"))&&!i.scale.isBlank()){var r=e.getModel("axisLabel"),o=r.get("margin"),a=i.getViewLabels(),s=(C(n.labelRotate,r.get("rotate"))||0)*Uw/180,l=Yw(n.rotation,s,n.labelDirection),u=e.getCategories(!0),h=[],c=_u(e),f=e.get("triggerEvent");return d(a,function(a,s){var d=a.tickValue,p=a.formattedLabel,g=a.rawLabel,m=r;u&&u[d]&&u[d].textStyle&&(m=new pr(u[d].textStyle,r,e.ecModel));var v=m.getTextColor()||e.get("axisLine.lineStyle.color"),y=[i.dataToCoord(d),n.labelOffset+n.labelDirection*o],x=new kv({anid:"label_"+d,position:y,rotation:l.rotation,silent:c,z2:10});Ki(x.style,m,{text:p,textAlign:m.getShallow("align",!0)||l.textAlign,textVerticalAlign:m.getShallow("verticalAlign",!0)||m.getShallow("baseline",!0)||l.textVerticalAlign,textFill:"function"==typeof v?v("category"===i.type?g:"value"===i.type?d+"":d,s):v}),f&&(x.eventData=yu(e),x.eventData.targetType="axisLabel",x.eventData.value=g),t._dumbGroup.add(x),x.updateTransform(),h.push(x),t.group.add(x),x.decomposeTransform()}),h}}function Tu(t,e){var n={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return Du(n,t,e),n.seriesInvolved&&ku(n,t),n}function Du(t,e,n){var i=e.getComponent("tooltip"),r=e.getComponent("axisPointer"),o=r.get("link",!0)||[],a=[];qw(n.getCoordinateSystems(),function(n){function s(i,s,l){var c=l.model.getModel("axisPointer",r),d=c.get("show");if(d&&("auto"!==d||i||Nu(c))){null==s&&(s=c.get("triggerTooltip"));var f=(c=i?Au(l,h,r,e,i,s):c).get("snap"),p=Ru(l.model),g=s||f||"category"===l.type,m=t.axesInfo[p]={key:p,axis:l,coordSys:n,axisPointerModel:c,triggerTooltip:s,involveSeries:g,snap:f,useHandle:Nu(c),seriesModels:[]};u[p]=m,t.seriesInvolved|=g;var v=Pu(o,l);if(null!=v){var y=a[v]||(a[v]={axesInfo:{}});y.axesInfo[p]=m,y.mapper=o[v].mapper,m.linkGroup=y}}}if(n.axisPointerEnabled){var l=Ru(n.model),u=t.coordSysAxesInfo[l]={};t.coordSysMap[l]=n;var h=n.model.getModel("tooltip",i);if(qw(n.getAxes(),$w(s,!1,null)),n.getTooltipAxes&&i&&h.get("show")){var c="axis"===h.get("trigger"),d="cross"===h.get("axisPointer.type"),f=n.getTooltipAxes(h.get("axisPointer.axis"));(c||d)&&qw(f.baseAxes,$w(s,!d||"cross",c)),d&&qw(f.otherAxes,$w(s,"cross",!1))}}})}function Au(t,e,i,r,o,s){var l=e.getModel("axisPointer"),u={};qw(["type","snap","lineStyle","shadowStyle","label","animation","animationDurationUpdate","animationEasingUpdate","z"],function(t){u[t]=n(l.get(t))}),u.snap="category"!==t.type&&!!s,"cross"===l.get("type")&&(u.type="line");var h=u.label||(u.label={});if(null==h.show&&(h.show=!1),"cross"===o){var c=l.get("label.show");if(h.show=null==c||c,!s){var d=u.lineStyle=l.get("crossStyle");d&&a(h,d.textStyle)}}return t.model.getModel("axisPointer",new pr(u,i,r))}function ku(t,e){e.eachSeries(function(e){var n=e.coordinateSystem,i=e.get("tooltip.trigger",!0),r=e.get("tooltip.show",!0);n&&"none"!==i&&!1!==i&&"item"!==i&&!1!==r&&!1!==e.get("axisPointer.show",!0)&&qw(t.coordSysAxesInfo[Ru(n.model)],function(t){var i=t.axis;n.getAxis(i.dim)===i&&(t.seriesModels.push(e),null==t.seriesDataCount&&(t.seriesDataCount=0),t.seriesDataCount+=e.getData().count())})},this)}function Pu(t,e){for(var n=e.model,i=e.dim,r=0;r<t.length;r++){var o=t[r]||{};if(Lu(o[i+"AxisId"],n.id)||Lu(o[i+"AxisIndex"],n.componentIndex)||Lu(o[i+"AxisName"],n.name))return r}}function Lu(t,e){return"all"===t||y(t)&&l(t,e)>=0||t===e}function Ou(t){var e=zu(t);if(e){var n=e.axisPointerModel,i=e.axis.scale,r=n.option,o=n.get("status"),a=n.get("value");null!=a&&(a=i.parse(a));var s=Nu(n);null==o&&(r.status=s?"show":"hide");var l=i.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==a||a>l[1])&&(a=l[1]),a<l[0]&&(a=l[0]),r.value=a,s&&(r.status=e.axis.scale.isBlank()?"hide":"show")}}function zu(t){var e=(t.ecModel.getComponent("axisPointer")||{}).coordSysAxesInfo;return e&&e.axesInfo[Ru(t)]}function Eu(t){var e=zu(t);return e&&e.axisPointerModel}function Nu(t){return!!t.get("handle.show")}function Ru(t){return t.type+"||"+t.id}function Bu(t,e,n,i,r,o){var a=Kw.getAxisPointerClass(t.axisPointerClass);if(a){var s=Eu(e);s?(t._axisPointer||(t._axisPointer=new a)).render(e,s,i,o):Vu(t,i)}}function Vu(t,e,n){var i=t._axisPointer;i&&i.dispose(e,n),t._axisPointer=null}function Fu(t,e,n){n=n||{};var i=t.coordinateSystem,r=e.axis,o={},a=r.getAxesOnZeroOf()[0],s=r.position,l=a?"onZero":s,u=r.dim,h=i.getRect(),c=[h.x,h.x+h.width,h.y,h.y+h.height],d={left:0,right:1,top:0,bottom:1,onZero:2},f=e.get("offset")||0,p="x"===u?[c[2]-f,c[3]+f]:[c[0]-f,c[1]+f];if(a){var g=a.toGlobalCoord(a.dataToCoord(0));p[d.onZero]=Math.max(Math.min(g,p[1]),p[0])}o.position=["y"===u?p[d[l]]:c[0],"x"===u?p[d[l]]:c[3]],o.rotation=Math.PI/2*("x"===u?0:1);var m={top:-1,bottom:1,left:-1,right:1};o.labelDirection=o.tickDirection=o.nameDirection=m[s],o.labelOffset=a?p[d[s]]-p[d.onZero]:0,e.get("axisTick.inside")&&(o.tickDirection=-o.tickDirection),C(n.labelInside,e.get("axisLabel.inside"))&&(o.labelDirection=-o.labelDirection);var v=e.get("axisLabel.rotate");return o.labelRotate="top"===l?-v:v,o.z2=1,o}function Hu(t,e,n,i,r,o,a){$i(t,e,n.getModel("label"),n.getModel("emphasis.label"),{labelFetcher:r,labelDataIndex:o,defaultText:zl(r.getData(),o),isRectText:!0,autoColor:i}),Gu(t),Gu(e)}function Gu(t,e){"outside"===t.textPosition&&(t.textPosition=e)}function Wu(t,e,n){n.style.text=null,ar(n,{shape:{width:0}},e,t,function(){n.parent&&n.parent.remove(n)})}function Zu(t,e,n){n.style.text=null,ar(n,{shape:{r:n.shape.r0}},e,t,function(){n.parent&&n.parent.remove(n)})}function Uu(t,e,n,i,r,o,s,l){var u=e.getItemVisual(n,"color"),h=e.getItemVisual(n,"opacity"),c=i.getModel("itemStyle"),d=i.getModel("emphasis.itemStyle").getBarItemStyle();l||t.setShape("r",c.get("barBorderRadius")||0),t.useStyle(a({fill:u,opacity:h},c.getBarItemStyle()));var f=i.getShallow("cursor");f&&t.attr("cursor",f);var p=s?r.height>0?"bottom":"top":r.width>0?"left":"right";l||Hu(t.style,d,i,u,o,n,p),qi(t,d)}function Xu(t,e){var n=t.get(rb)||0;return Math.min(n,Math.abs(e.width),Math.abs(e.height))}function ju(t,e,n){var i=t.getData(),r=[],o=i.getLayout("valueAxisHorizontal")?1:0;r[1-o]=i.getLayout("valueAxisStart");var a=new sb({shape:{points:i.getLayout("largePoints")},incremental:!!n,__startPoint:r,__valueIdx:o});e.add(a),Yu(a,t,i)}function Yu(t,e,n){var i=n.getVisual("borderColor")||n.getVisual("color"),r=e.getModel("itemStyle").getItemStyle(["color","borderColor"]);t.useStyle(r),t.style.fill=null,t.style.stroke=i,t.style.lineWidth=n.getLayout("barWidth")}function qu(t,e,n,i){var r=e.getData(),o=this.dataIndex,a=r.getName(o),s=e.get("selectedOffset");i.dispatchAction({type:"pieToggleSelect",from:t,name:a,seriesId:e.id}),r.each(function(t){$u(r.getItemGraphicEl(t),r.getItemLayout(t),e.isSelected(r.getName(t)),s,n)})}function $u(t,e,n,i,r){var o=(e.startAngle+e.endAngle)/2,a=Math.cos(o),s=Math.sin(o),l=n?i:0,u=[a*l,s*l];r?t.animate().when(200,{position:u}).start("bounceOut"):t.attr("position",u)}function Ku(t,e){function n(){o.ignore=o.hoverIgnore,a.ignore=a.hoverIgnore}function i(){o.ignore=o.normalIgnore,a.ignore=a.normalIgnore}Sg.call(this);var r=new zv({z2:2}),o=new Vv,a=new kv;this.add(r),this.add(o),this.add(a),this.updateData(t,e,!0),this.on("emphasis",n).on("normal",i).on("mouseover",n).on("mouseout",i)}function Qu(t,e,n,i,r,o,a){function s(e,n){for(var i=e;i>=0&&(t[i].y-=n,!(i>0&&t[i].y>t[i-1].y+t[i-1].height));i--);}function l(t,e,n,i,r,o){for(var a=e?Number.MAX_VALUE:0,s=0,l=t.length;s<l;s++)if("center"!==t[s].position){var u=Math.abs(t[s].y-i),h=t[s].len,c=t[s].len2,d=u<r+h?Math.sqrt((r+h+c)*(r+h+c)-u*u):Math.abs(t[s].x-n);e&&d>=a&&(d=a-10),!e&&d<=a&&(d=a+10),t[s].x=n+d*o,a=d}}t.sort(function(t,e){return t.y-e.y});for(var u,h=0,c=t.length,d=[],f=[],p=0;p<c;p++)(u=t[p].y-h)<0&&function(e,n,i,r){for(var o=e;o<n;o++)if(t[o].y+=i,o>e&&o+1<n&&t[o+1].y>t[o].y+t[o].height)return void s(o,i/2);s(n-1,i/2)}(p,c,-u),h=t[p].y+t[p].height;a-h<0&&s(c-1,h-a);for(p=0;p<c;p++)t[p].y>=n?f.push(t[p]):d.push(t[p]);l(d,!1,e,n,i,r),l(f,!0,e,n,i,r)}function Ju(t,e,n,i,r,o){for(var a=[],s=[],l=0;l<t.length;l++)t[l].x<e?a.push(t[l]):s.push(t[l]);Qu(s,e,n,i,1,r,o),Qu(a,e,n,i,-1,r,o);for(l=0;l<t.length;l++){var u=t[l].linePoints;if(u){var h=u[1][0]-u[2][0];t[l].x<e?u[2][0]=t[l].x+3:u[2][0]=t[l].x-3,u[1][1]=u[2][1]=t[l].y,u[1][0]=u[2][0]+h}}}function th(){this.group=new Sg}function eh(t,e,n,i){var r=n.type,o=new(0,ty[r.charAt(0).toUpperCase()+r.slice(1)])(n);e.add(o),i.set(t,o),o.__ecGraphicId=t}function nh(t,e){var n=t&&t.parent;n&&("group"===t.type&&t.traverse(function(t){nh(t,e)}),e.removeKey(t.__ecGraphicId),n.remove(t))}function ih(t){return t=o({},t),d(["id","parentId","$action","hv","bounding"].concat(_y),function(e){delete t[e]}),t}function rh(t,e){var n;return d(e,function(e){null!=t[e]&&"auto"!==t[e]&&(n=!0)}),n}function oh(t,e){var n=t.exist;if(e.id=t.keyInfo.id,!e.type&&n&&(e.type=n.type),null==e.parentId){var i=e.parentOption;i?e.parentId=i.id:n&&(e.parentId=n.parentId)}e.parentOption=null}function ah(t,e,n){var r=o({},n),a=t[e],s=n.$action||"merge";"merge"===s?a?(i(a,r,!0),Zr(a,r,{ignoreSize:!0}),Xr(n,a)):t[e]=r:"replace"===s?t[e]=r:"remove"===s&&a&&(t[e]=null)}function sh(t,e){t&&(t.hv=e.hv=[rh(e,["left","right"]),rh(e,["top","bottom"])],"group"===t.type&&(null==t.width&&(t.width=e.width=0),null==t.height&&(t.height=e.height=0)))}function lh(t,e,n,i,r){var a=t.axis;if(!a.scale.isBlank()&&a.containData(e))if(t.involveSeries){var s=uh(e,t),l=s.payloadBatch,u=s.snapToValue;l[0]&&null==r.seriesIndex&&o(r,l[0]),!i&&t.snap&&a.containData(u)&&null!=u&&(e=u),n.showPointer(t,e,l,r),n.showTooltip(t,s,u)}else n.showPointer(t,e)}function uh(t,e){var n=e.axis,i=n.dim,r=t,o=[],a=Number.MAX_VALUE,s=-1;return xb(e.seriesModels,function(e,l){var u,h,c=e.getData().mapDimension(i,!0);if(e.getAxisTooltipData){var d=e.getAxisTooltipData(c,t,n);h=d.dataIndices,u=d.nestestValue}else{if(!(h=e.getData().indicesOfNearest(c[0],t,"category"===n.type?.5:null)).length)return;u=e.getData().get(c[0],h[0])}if(null!=u&&isFinite(u)){var f=t-u,p=Math.abs(f);p<=a&&((p<a||f>=0&&s<0)&&(a=p,s=f,r=u,o.length=0),xb(h,function(t){o.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})}))}}),{payloadBatch:o,snapToValue:r}}function hh(t,e,n,i){t[e.key]={value:n,payloadBatch:i}}function ch(t,e,n,i){var r=n.payloadBatch,o=e.axis,a=o.model,s=e.axisPointerModel;if(e.triggerTooltip&&r.length){var l=e.coordSys.model,u=Ru(l),h=t.map[u];h||(h=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(h)),h.dataByAxis.push({axisDim:o.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:i,valueLabelOpt:{precision:s.get("label.precision"),formatter:s.get("label.formatter")},seriesDataIndices:r.slice()})}}function dh(t,e,n){var i=n.axesInfo=[];xb(e,function(e,n){var r=e.axisPointerModel.option,o=t[n];o?(!e.useHandle&&(r.status="show"),r.value=o.value,r.seriesDataIndices=(o.payloadBatch||[]).slice()):!e.useHandle&&(r.status="hide"),"show"===r.status&&i.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:r.value})})}function fh(t,e,n,i){if(!vh(e)&&t.list.length){var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}else i({type:"hideTip"})}function ph(t,e,n){var i=n.getZr(),r=wb(i).axisPointerLastHighlights||{},o=wb(i).axisPointerLastHighlights={};xb(t,function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&xb(n.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;o[e]=t})});var a=[],s=[];d(r,function(t,e){!o[e]&&s.push(t)}),d(o,function(t,e){!r[e]&&a.push(t)}),s.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,batch:s}),a.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,batch:a})}function gh(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}function mh(t){var e=t.axis.model,n={},i=n.axisDim=t.axis.dim;return n.axisIndex=n[i+"AxisIndex"]=e.componentIndex,n.axisName=n[i+"AxisName"]=e.name,n.axisId=n[i+"AxisId"]=e.id,n}function vh(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function yh(t,e,n){if(!bp.node){var i=e.getZr();bb(i).records||(bb(i).records={}),xh(i,e),(bb(i).records[t]||(bb(i).records[t]={})).handler=n}}function xh(t,e){function n(n,i){t.on(n,function(n){var r=Mh(e);Mb(bb(t).records,function(t){t&&i(t,n,r.dispatchAction)}),_h(r.pendings,e)})}bb(t).initialized||(bb(t).initialized=!0,n("click",v(bh,"click")),n("mousemove",v(bh,"mousemove")),n("globalout",wh))}function _h(t,e){var n,i=t.showTip.length,r=t.hideTip.length;i?n=t.showTip[i-1]:r&&(n=t.hideTip[r-1]),n&&(n.dispatchAction=null,e.dispatchAction(n))}function wh(t,e,n){t.handler("leave",null,n)}function bh(t,e,n,i){e.handler(t,n,i)}function Mh(t){var e={showTip:[],hideTip:[]},n=function(i){var r=e[i.type];r?r.push(i):(i.dispatchAction=n,t.dispatchAction(i))};return{dispatchAction:n,pendings:e}}function Sh(t,e){if(!bp.node){var n=e.getZr();(bb(n).records||{})[t]&&(bb(n).records[t]=null)}}function Ih(){}function Ch(t,e,n,i){Th(Ib(n).lastProp,i)||(Ib(n).lastProp=i,e?ar(n,i,t):(n.stopAnimation(),n.attr(i)))}function Th(t,e){if(w(t)&&w(e)){var n=!0;return d(e,function(e,i){n=n&&Th(t[i],e)}),!!n}return t===e}function Dh(t,e){t[e.get("label.show")?"show":"hide"]()}function Ah(t){return{position:t.position.slice(),rotation:t.rotation||0}}function kh(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)})}function Ph(t){var e,n=t.get("type"),i=t.getModel(n+"Style");return"line"===n?(e=i.getLineStyle()).fill=null:"shadow"===n&&((e=i.getAreaStyle()).stroke=null),e}function Lh(t,e,n,i,r){var o=zh(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get("label.precision"),formatter:n.get("label.formatter")}),a=n.getModel("label"),s=cy(a.get("padding")||0),l=a.getFont(),u=ce(o,l),h=r.position,c=u.width+s[1]+s[3],d=u.height+s[0]+s[2],f=r.align;"right"===f&&(h[0]-=c),"center"===f&&(h[0]-=c/2);var p=r.verticalAlign;"bottom"===p&&(h[1]-=d),"middle"===p&&(h[1]-=d/2),Oh(h,c,d,i);var g=a.get("backgroundColor");g&&"auto"!==g||(g=e.get("axisLine.lineStyle.color")),t.label={shape:{x:0,y:0,width:c,height:d,r:a.get("borderRadius")},position:h.slice(),style:{text:o,textFont:l,textFill:a.getTextColor(),textPosition:"inside",fill:g,stroke:a.get("borderColor")||"transparent",lineWidth:a.get("borderWidth")||0,shadowBlur:a.get("shadowBlur"),shadowColor:a.get("shadowColor"),shadowOffsetX:a.get("shadowOffsetX"),shadowOffsetY:a.get("shadowOffsetY")},z2:10}}function Oh(t,e,n,i){var r=i.getWidth(),o=i.getHeight();t[0]=Math.min(t[0]+e,r)-e,t[1]=Math.min(t[1]+n,o)-n,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}function zh(t,e,n,i,r){t=e.scale.parse(t);var o=e.scale.getLabel(t,{precision:r.precision}),a=r.formatter;if(a){var s={value:sl(e,t),seriesData:[]};d(i,function(t){var e=n.getSeriesByIndex(t.seriesIndex),i=t.dataIndexInside,r=e&&e.getDataParams(i);r&&s.seriesData.push(r)}),_(a)?o=a.replace("{value}",o):x(a)&&(o=a(s))}return o}function Eh(t,e,n){var i=rt();return ut(i,i,n.rotation),lt(i,i,n.position),ur([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}function Nh(t,e,n,i,r,o){var a=Xw.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=r.get("label.margin"),Lh(e,i,r,o,{position:Eh(i.axis,t,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}function Rh(t,e,n){return n=n||0,{x1:t[n],y1:t[1-n],x2:e[n],y2:e[1-n]}}function Bh(t,e,n){return n=n||0,{x:t[n],y:t[1-n],width:e[n],height:e[1-n]}}function Vh(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}function Fh(t){return"x"===t.dim?0:1}function Hh(t){var e="left "+t+"s cubic-bezier(0.23, 1, 0.32, 1),top "+t+"s cubic-bezier(0.23, 1, 0.32, 1)";return f(Lb,function(t){return t+"transition:"+e}).join(";")}function Gh(t){var e=[],n=t.get("fontSize"),i=t.getTextColor();return i&&e.push("color:"+i),e.push("font:"+t.getFont()),n&&e.push("line-height:"+Math.round(3*n/2)+"px"),kb(["decoration","align"],function(n){var i=t.get(n);i&&e.push("text-"+n+":"+i)}),e.join(";")}function Wh(t){var e=[],n=t.get("transitionDuration"),i=t.get("backgroundColor"),r=t.getModel("textStyle"),o=t.get("padding");return n&&e.push(Hh(n)),i&&(bp.canvasSupported?e.push("background-Color:"+i):(e.push("background-Color:#"+Dt(i)),e.push("filter:alpha(opacity=70)"))),kb(["width","color","radius"],function(n){var i="border-"+n,r=Pb(i),o=t.get(r);null!=o&&e.push(i+":"+o+("color"===n?"":"px"))}),e.push(Gh(r)),null!=o&&e.push("padding:"+cy(o).join("px ")+"px"),e.join(";")+";"}function Zh(t,e){if(bp.wxa)return null;var n=document.createElement("div"),i=this._zr=e.getZr();this.el=n,this._x=e.getWidth()/2,this._y=e.getHeight()/2,t.appendChild(n),this._container=t,this._show=!1,this._hideTimeout;var r=this;n.onmouseenter=function(){r._enterable&&(clearTimeout(r._hideTimeout),r._show=!0),r._inContent=!0},n.onmousemove=function(e){if(e=e||window.event,!r._enterable){var n=i.handler;rn(t,e,!0),n.dispatch("mousemove",e)}},n.onmouseleave=function(){r._enterable&&r._show&&r.hideLater(r._hideDelay),r._inContent=!1}}function Uh(t){for(var e=t.pop();t.length;){var n=t.pop();n&&(pr.isInstance(n)&&(n=n.get("tooltip",!0)),"string"==typeof n&&(n={formatter:n}),e=new pr(n,e,e.ecModel))}return e}function Xh(t,e){return t.dispatchAction||m(e.dispatchAction,e)}function jh(t,e,n,i,r,o,a){var s=qh(n),l=s.width,u=s.height;return null!=o&&(t+l+o>i?t-=l+o:t+=o),null!=a&&(e+u+a>r?e-=u+a:e+=a),[t,e]}function Yh(t,e,n,i,r){var o=qh(n),a=o.width,s=o.height;return t=Math.min(t+a,i)-a,e=Math.min(e+s,r)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}function qh(t){var e=t.clientWidth,n=t.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var i=document.defaultView.getComputedStyle(t);i&&(e+=parseInt(i.paddingLeft,10)+parseInt(i.paddingRight,10)+parseInt(i.borderLeftWidth,10)+parseInt(i.borderRightWidth,10),n+=parseInt(i.paddingTop,10)+parseInt(i.paddingBottom,10)+parseInt(i.borderTopWidth,10)+parseInt(i.borderBottomWidth,10))}return{width:e,height:n}}function $h(t,e,n){var i=n[0],r=n[1],o=0,a=0,s=e.width,l=e.height;switch(t){case"inside":o=e.x+s/2-i/2,a=e.y+l/2-r/2;break;case"top":o=e.x+s/2-i/2,a=e.y-r-5;break;case"bottom":o=e.x+s/2-i/2,a=e.y+l+5;break;case"left":o=e.x-i-5,a=e.y+l/2-r/2;break;case"right":o=e.x+s+5,a=e.y+l/2-r/2}return[o,a]}function Kh(t){return"center"===t||"middle"===t}function Qh(t,e,n){var i,r={},o="toggleSelected"===t;return n.eachComponent("legend",function(n){o&&null!=i?n[i?"select":"unSelect"](e.name):(n[t](e.name),i=n.isSelected(e.name)),d(n.getData(),function(t){var e=t.get("name");if("\n"!==e&&""!==e){var i=n.isSelected(e);r.hasOwnProperty(e)?r[e]=r[e]&&i:r[e]=i}})}),{name:e.name,selected:r}}function Jh(t,e,n){var i=e.getBoxLayoutParams(),r=e.get("padding"),o={width:n.getWidth(),height:n.getHeight()},a=Gr(i,o,r);by(e.get("orient"),t,e.get("itemGap"),a.width,a.height),Wr(t,i,o,r)}function tc(t,e){var n=cy(e.get("padding")),i=e.getItemStyle(["color","opacity"]);return i.fill=e.get("backgroundColor"),t=new Fv({shape:{x:t.x-n[3],y:t.y-n[0],width:t.width+n[1]+n[3],height:t.height+n[0]+n[2],r:e.get("borderRadius")},style:i,silent:!0,z2:-1})}function ec(t,e){e.dispatchAction({type:"legendToggleSelect",name:t})}function nc(t,e,n,i){var r=n.getZr().storage.getDisplayList()[0];r&&r.useHoverLayer||n.dispatchAction({type:"highlight",seriesName:t.name,name:e,excludeSeriesId:i})}function ic(t,e,n,i){var r=n.getZr().storage.getDisplayList()[0];r&&r.useHoverLayer||n.dispatchAction({type:"downplay",seriesName:t.name,name:e,excludeSeriesId:i})}function rc(t,e,n){var i=[1,1];i[t.getOrient().index]=0,Zr(e,n,{type:"box",ignoreSize:i})}function oc(t){_n(t,"label",["show"])}function ac(t){return!(isNaN(parseFloat(t.x))&&isNaN(parseFloat(t.y)))}function sc(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}function lc(t,e,n,i,r,o){var a=[],s=Ps(e,i)?e.getCalculationInfo("stackResultDimension"):i,l=pc(e,s,t),u=e.indicesOfNearest(s,l)[0];a[r]=e.get(n,u),a[o]=e.get(i,u);var h=Mr(e.get(i,u));return(h=Math.min(h,20))>=0&&(a[o]=+a[o].toFixed(h)),a}function uc(t,e){var i=t.getData(),r=t.coordinateSystem;if(e&&!sc(e)&&!y(e.coord)&&r){var o=r.dimensions,a=hc(e,i,r,t);if((e=n(e)).type&&Qb[e.type]&&a.baseAxis&&a.valueAxis){var s=$b(o,a.baseAxis.dim),l=$b(o,a.valueAxis.dim);e.coord=Qb[e.type](i,a.baseDataDim,a.valueDataDim,s,l),e.value=e.coord[l]}else{for(var u=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],h=0;h<2;h++)Qb[u[h]]&&(u[h]=pc(i,i.mapDimension(o[h]),u[h]));e.coord=u}}return e}function hc(t,e,n,i){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=n.getAxis(cc(i,r.valueDataDim)),r.baseAxis=n.getOtherAxis(r.valueAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim)):(r.baseAxis=i.getBaseAxis(),r.valueAxis=n.getOtherAxis(r.baseAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim),r.valueDataDim=e.mapDimension(r.valueAxis.dim)),r}function cc(t,e){var n=t.getData(),i=n.dimensions;e=n.getDimension(e);for(var r=0;r<i.length;r++){var o=n.getDimensionInfo(i[r]);if(o.name===e)return o.coordDim}}function dc(t,e){return!(t&&t.containData&&e.coord&&!ac(e))||t.containData(e.coord)}function fc(t,e,n,i){return i<2?t.coord&&t.coord[i]:t.value}function pc(t,e,n){if("average"===n){var i=0,r=0;return t.each(e,function(t,e){isNaN(t)||(i+=t,r++)}),i/r}return"median"===n?t.getMedian(e):t.getDataExtent(e,!0)["max"===n?1:0]}function gc(t,e,n){var i=e.coordinateSystem;t.each(function(r){var o,a=t.getItemModel(r),s=_r(a.get("x"),n.getWidth()),l=_r(a.get("y"),n.getHeight());if(isNaN(s)||isNaN(l)){if(e.getMarkerPosition)o=e.getMarkerPosition(t.getValues(t.dimensions,r));else if(i){var u=t.get(i.dimensions[0],r),h=t.get(i.dimensions[1],r);o=i.dataToPoint([u,h])}}else o=[s,l];isNaN(s)||(o[0]=s),isNaN(l)||(o[1]=l),t.setItemLayout(r,o)})}function mc(t,e,n){var i;i=t?f(t&&t.dimensions,function(t){return a({name:t},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{})}):[{name:"value",type:"float"}];var r=new M_(i,n),o=f(n.get("data"),v(uc,e));return t&&(o=g(o,v(dc,t))),r.initData(o,null,t?fc:function(t){return t.value}),r}function vc(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}function yc(t){return"_"+t+"Type"}function xc(t,e,n){var i=e.getItemVisual(n,"color"),r=e.getItemVisual(n,t),o=e.getItemVisual(n,t+"Size");if(r&&"none"!==r){y(o)||(o=[o,o]);var a=cl(r,-o[0]/2,-o[1]/2,o[0],o[1],i);return a.name=t,a}}function _c(t){var e=new nM({name:"line"});return wc(e.shape,t),e}function wc(t,e){var n=e[0],i=e[1],r=e[2];t.x1=n[0],t.y1=n[1],t.x2=i[0],t.y2=i[1],t.percent=1,r?(t.cpx1=r[0],t.cpy1=r[1]):(t.cpx1=NaN,t.cpy1=NaN)}function bc(t,e,n){Sg.call(this),this._createLine(t,e,n)}function Mc(t){this._ctor=t||bc,this.group=new Sg}function Sc(t,e,n,i){if(Dc(e.getItemLayout(n))){var r=new t._ctor(e,n,i);e.setItemGraphicEl(n,r),t.group.add(r)}}function Ic(t,e,n,i,r,o){var a=e.getItemGraphicEl(i);Dc(n.getItemLayout(r))?(a?a.updateData(n,r,o):a=new t._ctor(n,r,o),n.setItemGraphicEl(r,a),t.group.add(a)):t.group.remove(a)}function Cc(t){var e=t.hostModel;return{lineStyle:e.getModel("lineStyle").getLineStyle(),hoverLineStyle:e.getModel("emphasis.lineStyle").getLineStyle(),labelModel:e.getModel("label"),hoverLabelModel:e.getModel("emphasis.label")}}function Tc(t){return isNaN(t[0])||isNaN(t[1])}function Dc(t){return!Tc(t[0])&&!Tc(t[1])}function Ac(t){return!isNaN(t)&&!isFinite(t)}function kc(t,e,n,i){var r=1-t,o=i.dimensions[t];return Ac(e[r])&&Ac(n[r])&&e[t]===n[t]&&i.getAxis(o).containData(e[t])}function Pc(t,e){if("cartesian2d"===t.type){var n=e[0].coord,i=e[1].coord;if(n&&i&&(kc(1,n,i,t)||kc(0,n,i,t)))return!0}return dc(t,e[0])&&dc(t,e[1])}function Lc(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=_r(s.get("x"),r.getWidth()),u=_r(s.get("y"),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(t.dimensions,e));else{var h=a.dimensions,c=t.get(h[0],e),d=t.get(h[1],e);o=a.dataToPoint([c,d])}if("cartesian2d"===a.type){var f=a.getAxis("x"),p=a.getAxis("y"),h=a.dimensions;Ac(t.get(h[0],e))?o[0]=f.toGlobalCoord(f.getExtent()[n?0:1]):Ac(t.get(h[1],e))&&(o[1]=p.toGlobalCoord(p.getExtent()[n?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];t.setItemLayout(e,o)}function Oc(t,e,n){var i;i=t?f(t&&t.dimensions,function(t){return a({name:t},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{})}):[{name:"value",type:"float"}];var r=new M_(i,n),o=new M_(i,n),s=new M_([],n),l=f(n.get("data"),v(aM,e,t,n));t&&(l=g(l,v(Pc,t)));var u=t?fc:function(t){return t.value};return r.initData(f(l,function(t){return t[0]}),null,u),o.initData(f(l,function(t){return t[1]}),null,u),s.initData(f(l,function(t){return t[2]})),s.hasItemOption=!0,{from:r,to:o,line:s}}function zc(t){return!isNaN(t)&&!isFinite(t)}function Ec(t,e,n,i){var r=1-t;return zc(e[r])&&zc(n[r])}function Nc(t,e){var n=e.coord[0],i=e.coord[1];return!("cartesian2d"!==t.type||!n||!i||!Ec(1,n,i,t)&&!Ec(0,n,i,t))||(dc(t,{coord:n,x:e.x0,y:e.y0})||dc(t,{coord:i,x:e.x1,y:e.y1}))}function Rc(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=_r(s.get(n[0]),r.getWidth()),u=_r(s.get(n[1]),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(n,e));else{var h=[f=t.get(n[0],e),p=t.get(n[1],e)];a.clampData&&a.clampData(h,h),o=a.dataToPoint(h,!0)}if("cartesian2d"===a.type){var c=a.getAxis("x"),d=a.getAxis("y"),f=t.get(n[0],e),p=t.get(n[1],e);zc(f)?o[0]=c.toGlobalCoord(c.getExtent()["x0"===n[0]?0:1]):zc(p)&&(o[1]=d.toGlobalCoord(d.getExtent()["y0"===n[1]?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];return o}function Bc(t,e,n){var i,r,o=["x0","y0","x1","y1"];t?(i=f(t&&t.dimensions,function(t){var n=e.getData();return a({name:t},n.getDimensionInfo(n.mapDimension(t))||{})}),r=new M_(f(o,function(t,e){return{name:t,type:i[e%2].type}}),n)):r=new M_(i=[{name:"value",type:"float"}],n);var s=f(n.get("data"),v(sM,e,t,n));t&&(s=g(s,v(Nc,t)));var l=t?function(t,e,n,i){return t.coord[Math.floor(i/2)][i%2]}:function(t){return t.value};return r.initData(s,null,l),r.hasItemOption=!0,r}function Vc(t){return l(uM,t)>=0}function Fc(t,e,n){function i(t,e){return l(e.nodes,t)>=0}function r(t,i){var r=!1;return e(function(e){d(n(t,e)||[],function(t){i.records[e.name][t]&&(r=!0)})}),r}function o(t,i){i.nodes.push(t),e(function(e){d(n(t,e)||[],function(t){i.records[e.name][t]=!0})})}return function(n){var a={nodes:[],records:{}};if(e(function(t){a.records[t.name]={}}),!n)return a;o(n,a);var s;do{s=!1,t(function(t){!i(t,a)&&r(t,a)&&(o(t,a),s=!0)})}while(s);return a}}function Hc(t,e,n){var i=[1/0,-1/0];return cM(n,function(t){var n=t.getData();n&&cM(n.mapDimension(e,!0),function(t){var e=n.getApproximateExtent(t);e[0]<i[0]&&(i[0]=e[0]),e[1]>i[1]&&(i[1]=e[1])})}),i[1]<i[0]&&(i=[NaN,NaN]),Gc(t,i),i}function Gc(t,e){var n=t.getAxisModel(),i=n.getMin(!0),r="category"===n.get("type"),o=r&&n.getCategories().length;null!=i&&"dataMin"!==i&&"function"!=typeof i?e[0]=i:r&&(e[0]=o>0?0:NaN);var a=n.getMax(!0);return null!=a&&"dataMax"!==a&&"function"!=typeof a?e[1]=a:r&&(e[1]=o>0?o-1:NaN),n.get("scale",!0)||(e[0]>0&&(e[0]=0),e[1]<0&&(e[1]=0)),e}function Wc(t,e){var n=t.getAxisModel(),i=t._percentWindow,r=t._valueWindow;if(i){var o=Ir(r,[0,500]);o=Math.min(o,20);var a=e||0===i[0]&&100===i[1];n.setRange(a?null:+r[0].toFixed(o),a?null:+r[1].toFixed(o))}}function Zc(t){var e=t._minMaxSpan={},n=t._dataZoomModel;cM(["min","max"],function(i){e[i+"Span"]=n.get(i+"Span");var r=n.get(i+"ValueSpan");if(null!=r&&(e[i+"ValueSpan"]=r,null!=(r=t.getAxisModel().axis.scale.parse(r)))){var o=t._dataExtent;e[i+"Span"]=xr(o[0]+r,o,[0,100],!0)}})}function Uc(t){var e={};return pM(["start","end","startValue","endValue","throttle"],function(n){t.hasOwnProperty(n)&&(e[n]=t[n])}),e}function Xc(t,e){var n=t._rangePropMode,i=t.get("rangeMode");pM([["start","startValue"],["end","endValue"]],function(t,r){var o=null!=e[t[0]],a=null!=e[t[1]];o&&!a?n[r]="percent":!o&&a?n[r]="value":i?n[r]=i[r]:o&&(n[r]="percent")})}function jc(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:n>0?-1:n<0?1:e?-1:1}}function Yc(t,e){return Math.min(e[1],Math.max(e[0],t))}function qc(t){return{x:"y",y:"x",radius:"angle",angle:"radius"}[t]}function $c(t){return"vertical"===t?"ns-resize":"ew-resize"}function Kc(t,e,n){td(t)[e]=n}function Qc(t,e,n){var i=td(t);i[e]===n&&(i[e]=null)}function Jc(t,e){return!!td(t)[e]}function td(t){return t[DM]||(t[DM]={})}function ed(t){this.pointerChecker,this._zr=t,this._opt={};var e=m,i=e(nd,this),r=e(id,this),o=e(rd,this),s=e(od,this),l=e(ad,this);Zp.call(this),this.setPointerChecker=function(t){this.pointerChecker=t},this.enable=function(e,u){this.disable(),this._opt=a(n(u)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,preventDefaultMouseMove:!0}),null==e&&(e=!0),!0!==e&&"move"!==e&&"pan"!==e||(t.on("mousedown",i),t.on("mousemove",r),t.on("mouseup",o)),!0!==e&&"scale"!==e&&"zoom"!==e||(t.on("mousewheel",s),t.on("pinch",l))},this.disable=function(){t.off("mousedown",i),t.off("mousemove",r),t.off("mouseup",o),t.off("mousewheel",s),t.off("pinch",l)},this.dispose=this.disable,this.isDragging=function(){return this._dragging},this.isPinching=function(){return this._pinching}}function nd(t){if(!(sn(t)||t.target&&t.target.draggable)){var e=t.offsetX,n=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,n)&&(this._x=e,this._y=n,this._dragging=!0)}}function id(t){if(!sn(t)&&ld(this,"moveOnMouseMove",t)&&this._dragging&&"pinch"!==t.gestureEvent&&!Jc(this._zr,"globalPan")){var e=t.offsetX,n=t.offsetY,i=this._x,r=this._y,o=e-i,a=n-r;this._x=e,this._y=n,this._opt.preventDefaultMouseMove&&tm(t.event),this.trigger("pan",o,a,i,r,e,n)}}function rd(t){sn(t)||(this._dragging=!1)}function od(t){if(ld(this,"zoomOnMouseWheel",t)&&0!==t.wheelDelta){var e=t.wheelDelta>0?1.1:1/1.1;sd.call(this,t,e,t.offsetX,t.offsetY)}}function ad(t){if(!Jc(this._zr,"globalPan")){var e=t.pinchScale>1?1.1:1/1.1;sd.call(this,t,e,t.pinchX,t.pinchY)}}function sd(t,e,n,i){this.pointerChecker&&this.pointerChecker(t,n,i)&&(tm(t.event),this.trigger("zoom",e,n,i))}function ld(t,e,n){var i=t._opt[e];return i&&(!_(i)||n.event[i+"Key"])}function ud(t,e){var n=dd(t),i=e.dataZoomId,r=e.coordId;d(n,function(t,n){var o=t.dataZoomInfos;o[i]&&l(e.allCoordIds,r)<0&&(delete o[i],t.count--)}),pd(n);var o=n[r];o||((o=n[r]={coordId:r,dataZoomInfos:{},count:0}).controller=fd(t,o),o.dispatchAction=v(yd,t)),!o.dataZoomInfos[i]&&o.count++,o.dataZoomInfos[i]=e;var a=xd(o.dataZoomInfos);o.controller.enable(a.controlType,a.opt),o.controller.setPointerChecker(e.containsPoint),ha(o,"dispatchAction",e.throttleRate,"fixRate")}function hd(t,e){var n=dd(t);d(n,function(t){t.controller.dispose();var n=t.dataZoomInfos;n[e]&&(delete n[e],t.count--)}),pd(n)}function cd(t){return t.type+"\0_"+t.id}function dd(t){var e=t.getZr();return e[kM]||(e[kM]={})}function fd(t,e){var n=new ed(t.getZr());return n.on("pan",AM(gd,e)),n.on("zoom",AM(md,e)),n}function pd(t){d(t,function(e,n){e.count||(e.controller.dispose(),delete t[n])})}function gd(t,e,n,i,r,o,a){vd(t,function(s){return s.panGetRange(t.controller,e,n,i,r,o,a)})}function md(t,e,n,i){vd(t,function(r){return r.zoomGetRange(t.controller,e,n,i)})}function vd(t,e){var n=[];d(t.dataZoomInfos,function(t){var i=e(t);!t.disabled&&i&&n.push({dataZoomId:t.dataZoomId,start:i[0],end:i[1]})}),n.length&&t.dispatchAction(n)}function yd(t,e){t.dispatchAction({type:"dataZoom",batch:e})}function xd(t){var e,n={},i={type_true:2,type_move:1,type_false:0,type_undefined:-1};return d(t,function(t){var r=!t.disabled&&(!t.zoomLock||"move");i["type_"+r]>i["type_"+e]&&(e=r),o(n,t.roamControllerOpt)}),{controlType:e,opt:n}}function _d(t,e){zM[t]=e}function wd(t){return zM[t]}function bd(t){return 0===t.indexOf("my")}function Md(t){this.model=t}function Sd(t){this.model=t}function Id(t){var e={},n=[],i=[];return t.eachRawSeries(function(t){var r=t.coordinateSystem;if(!r||"cartesian2d"!==r.type&&"polar"!==r.type)n.push(t);else{var o=r.getBaseAxis();if("category"===o.type){var a=o.dim+"_"+o.index;e[a]||(e[a]={categoryAxis:o,valueAxis:r.getOtherAxis(o),series:[]},i.push({axisDim:o.dim,axisIndex:o.index})),e[a].series.push(t)}else n.push(t)}}),{seriesGroupByCategoryAxis:e,other:n,meta:i}}function Cd(t){var e=[];return d(t,function(t,n){var i=t.categoryAxis,r=t.valueAxis.dim,o=[" "].concat(f(t.series,function(t){return t.name})),a=[i.model.getCategories()];d(t.series,function(t){a.push(t.getRawData().mapArray(r,function(t){return t}))});for(var s=[o.join(WM)],l=0;l<a[0].length;l++){for(var u=[],h=0;h<a.length;h++)u.push(a[h][l]);s.push(u.join(WM))}e.push(s.join("\n"))}),e.join("\n\n"+GM+"\n\n")}function Td(t){return f(t,function(t){var e=t.getRawData(),n=[t.name],i=[];return e.each(e.dimensions,function(){for(var t=arguments.length,r=arguments[t-1],o=e.getName(r),a=0;a<t-1;a++)i[a]=arguments[a];n.push((o?o+WM:"")+i.join(WM))}),n.join("\n")}).join("\n\n"+GM+"\n\n")}function Dd(t){var e=Id(t);return{value:g([Cd(e.seriesGroupByCategoryAxis),Td(e.other)],function(t){return t.replace(/[\n\t\s]/g,"")}).join("\n\n"+GM+"\n\n"),meta:e.meta}}function Ad(t){return t.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function kd(t){if(t.slice(0,t.indexOf("\n")).indexOf(WM)>=0)return!0}function Pd(t){for(var e=t.split(/\n+/g),n=[],i=f(Ad(e.shift()).split(ZM),function(t){return{name:t,data:[]}}),r=0;r<e.length;r++){var o=Ad(e[r]).split(ZM);n.push(o.shift());for(var a=0;a<o.length;a++)i[a]&&(i[a].data[r]=o[a])}return{series:i,categories:n}}function Ld(t){for(var e=t.split(/\n+/g),n=Ad(e.shift()),i=[],r=0;r<e.length;r++){var o,a=Ad(e[r]).split(ZM),s="",l=!1;isNaN(a[0])?(l=!0,s=a[0],a=a.slice(1),i[r]={name:s,value:[]},o=i[r].value):o=i[r]=[];for(var u=0;u<a.length;u++)o.push(+a[u]);1===o.length&&(l?i[r].value=o[0]:i[r]=o[0])}return{name:n,data:i}}function Od(t,e){var n={series:[]};return d(t.split(new RegExp("\n*"+GM+"\n*","g")),function(t,i){if(kd(t)){var r=Pd(t),o=e[i],a=o.axisDim+"Axis";o&&(n[a]=n[a]||[],n[a][o.axisIndex]={data:r.categories},n.series=n.series.concat(r.series))}else{r=Ld(t);n.series.push(r)}}),n}function zd(t){this._dom=null,this.model=t}function Ed(t,e){return f(t,function(t,n){var i=e&&e[n];return w(i)&&!y(i)?(w(t)&&!y(t)&&(t=t.value),a({value:t},i)):t})}function Nd(t){Zp.call(this),this._zr=t,this.group=new Sg,this._brushType,this._brushOption,this._panels,this._track=[],this._dragging,this._covers=[],this._creatingCover,this._creatingPanel,this._enableGlobalPan,this._uid="brushController_"+rS++,this._handlers={},XM(oS,function(t,e){this._handlers[e]=m(t,this)},this)}function Rd(t,e){var r=t._zr;t._enableGlobalPan||Kc(r,tS,t._uid),XM(t._handlers,function(t,e){r.on(e,t)}),t._brushType=e.brushType,t._brushOption=i(n(iS),e,!0)}function Bd(t){var e=t._zr;Qc(e,tS,t._uid),XM(t._handlers,function(t,n){e.off(n,t)}),t._brushType=t._brushOption=null}function Vd(t,e){var n=aS[e.brushType].createCover(t,e);return n.__brushOption=e,Gd(n,e),t.group.add(n),n}function Fd(t,e){var n=Zd(e);return n.endCreating&&(n.endCreating(t,e),Gd(e,e.__brushOption)),e}function Hd(t,e){var n=e.__brushOption;Zd(e).updateCoverShape(t,e,n.range,n)}function Gd(t,e){var n=e.z;null==n&&(n=KM),t.traverse(function(t){t.z=n,t.z2=n})}function Wd(t,e){Zd(e).updateCommon(t,e),Hd(t,e)}function Zd(t){return aS[t.__brushOption.brushType]}function Ud(t,e,n){var i=t._panels;if(!i)return!0;var r,o=t._transform;return XM(i,function(t){t.isTargetByCursor(e,n,o)&&(r=t)}),r}function Xd(t,e){var n=t._panels;if(!n)return!0;var i=e.__brushOption.panelId;return null==i||n[i]}function jd(t){var e=t._covers,n=e.length;return XM(e,function(e){t.group.remove(e)},t),e.length=0,!!n}function Yd(t,e){var i=jM(t._covers,function(t){var e=t.__brushOption,i=n(e.range);return{brushType:e.brushType,panelId:e.panelId,range:i}});t.trigger("brush",i,{isEnd:!!e.isEnd,removeOnClick:!!e.removeOnClick})}function qd(t){var e=t._track;if(!e.length)return!1;var n=e[e.length-1],i=e[0],r=n[0]-i[0],o=n[1]-i[1];return $M(r*r+o*o,.5)>QM}function $d(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function Kd(t,e,n,i){var r=new Sg;return r.add(new Fv({name:"main",style:ef(n),silent:!0,draggable:!0,cursor:"move",drift:UM(t,e,r,"nswe"),ondragend:UM(Yd,e,{isEnd:!0})})),XM(i,function(n){r.add(new Fv({name:n,style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:UM(t,e,r,n),ondragend:UM(Yd,e,{isEnd:!0})}))}),r}function Qd(t,e,n,i){var r=i.brushStyle.lineWidth||0,o=qM(r,JM),a=n[0][0],s=n[1][0],l=a-r/2,u=s-r/2,h=n[0][1],c=n[1][1],d=h-o+r/2,f=c-o+r/2,p=h-a,g=c-s,m=p+r,v=g+r;tf(t,e,"main",a,s,p,g),i.transformable&&(tf(t,e,"w",l,u,o,v),tf(t,e,"e",d,u,o,v),tf(t,e,"n",l,u,m,o),tf(t,e,"s",l,f,m,o),tf(t,e,"nw",l,u,o,o),tf(t,e,"ne",d,u,o,o),tf(t,e,"sw",l,f,o,o),tf(t,e,"se",d,f,o,o))}function Jd(t,e){var n=e.__brushOption,i=n.transformable,r=e.childAt(0);r.useStyle(ef(n)),r.attr({silent:!i,cursor:i?"move":"default"}),XM(["w","e","n","s","se","sw","ne","nw"],function(n){var r=e.childOfName(n),o=of(t,n);r&&r.attr({silent:!i,invisible:!i,cursor:i?nS[o]+"-resize":null})})}function tf(t,e,n,i,r,o,a){var s=e.childOfName(n);s&&s.setShape(hf(uf(t,e,[[i,r],[i+o,r+a]])))}function ef(t){return a({strokeNoScale:!0},t.brushStyle)}function nf(t,e,n,i){var r=[YM(t,n),YM(e,i)],o=[qM(t,n),qM(e,i)];return[[r[0],o[0]],[r[1],o[1]]]}function rf(t){return lr(t.group)}function of(t,e){if(e.length>1)return("e"===(i=[of(t,(e=e.split(""))[0]),of(t,e[1])])[0]||"w"===i[0])&&i.reverse(),i.join("");var n={left:"w",right:"e",top:"n",bottom:"s"},i=hr({w:"left",e:"right",n:"top",s:"bottom"}[e],rf(t));return n[i]}function af(t,e,n,i,r,o,a,s){var l=i.__brushOption,u=t(l.range),h=lf(n,o,a);XM(r.split(""),function(t){var e=eS[t];u[e[0]][e[1]]+=h[e[0]]}),l.range=e(nf(u[0][0],u[1][0],u[0][1],u[1][1])),Wd(n,i),Yd(n,{isEnd:!1})}function sf(t,e,n,i,r){var o=e.__brushOption.range,a=lf(t,n,i);XM(o,function(t){t[0]+=a[0],t[1]+=a[1]}),Wd(t,e),Yd(t,{isEnd:!1})}function lf(t,e,n){var i=t.group,r=i.transformCoordToLocal(e,n),o=i.transformCoordToLocal(0,0);return[r[0]-o[0],r[1]-o[1]]}function uf(t,e,i){var r=Xd(t,e);return r&&!0!==r?r.clipPath(i,t._transform):n(i)}function hf(t){var e=YM(t[0][0],t[1][0]),n=YM(t[0][1],t[1][1]);return{x:e,y:n,width:qM(t[0][0],t[1][0])-e,height:qM(t[0][1],t[1][1])-n}}function cf(t,e,n){if(t._brushType){var i=t._zr,r=t._covers,o=Ud(t,e,n);if(!t._dragging)for(var a=0;a<r.length;a++){var s=r[a].__brushOption;if(o&&(!0===o||s.panelId===o.panelId)&&aS[s.brushType].contain(r[a],n[0],n[1]))return}o&&i.setCursorStyle("crosshair")}}function df(t){var e=t.event;e.preventDefault&&e.preventDefault()}function ff(t,e,n){return t.childOfName("main").contain(e,n)}function pf(t,e,i,r){var o,a=t._creatingCover,s=t._creatingPanel,l=t._brushOption;if(t._track.push(i.slice()),qd(t)||a){if(s&&!a){"single"===l.brushMode&&jd(t);var u=n(l);u.brushType=gf(u.brushType,s),u.panelId=!0===s?null:s.panelId,a=t._creatingCover=Vd(t,u),t._covers.push(a)}if(a){var h=aS[gf(t._brushType,s)];a.__brushOption.range=h.getCreatingRange(uf(t,a,t._track)),r&&(Fd(t,a),h.updateCommon(t,a)),Hd(t,a),o={isEnd:r}}}else r&&"single"===l.brushMode&&l.removeOnClick&&Ud(t,e,i)&&jd(t)&&(o={isEnd:r,removeOnClick:!0});return o}function gf(t,e){return"auto"===t?e.defaultBrushType:t}function mf(t){if(this._dragging){df(t);var e=pf(this,t,this.group.transformCoordToLocal(t.offsetX,t.offsetY),!0);this._dragging=!1,this._track=[],this._creatingCover=null,e&&Yd(this,e)}}function vf(t){return{createCover:function(e,n){return Kd(UM(af,function(e){var n=[e,[0,100]];return t&&n.reverse(),n},function(e){return e[t]}),e,n,[["w","e"],["n","s"]][t])},getCreatingRange:function(e){var n=$d(e);return[YM(n[0][t],n[1][t]),qM(n[0][t],n[1][t])]},updateCoverShape:function(e,n,i,r){var o,a=Xd(e,n);if(!0!==a&&a.getLinearBrushOtherExtent)o=a.getLinearBrushOtherExtent(t,e._transform);else{var s=e._zr;o=[0,[s.getWidth(),s.getHeight()][1-t]]}var l=[i,o];t&&l.reverse(),Qd(e,n,l,r)},updateCommon:Jd,contain:ff}}function yf(t,e,n){var i=e.getComponentByElement(t.topTarget),r=i&&i.coordinateSystem;return i&&i!==n&&!sS[i.mainType]&&r&&r.model!==n}function xf(t){return t=bf(t),function(e,n){return dr(e,t)}}function _f(t,e){return t=bf(t),function(n){var i=null!=e?e:n,r=i?t.width:t.height,o=i?t.x:t.y;return[o,o+(r||0)]}}function wf(t,e,n){return t=bf(t),function(i,r,o){return t.contain(r[0],r[1])&&!yf(i,e,n)}}function bf(t){return Xt.create(t)}function Mf(t,e,n){var i=this._targetInfoList=[],r={},o=If(e,t);lS(pS,function(t,e){(!n||!n.include||uS(n.include,e)>=0)&&t(o,i,r)})}function Sf(t){return t[0]>t[1]&&t.reverse(),t}function If(t,e){return An(t,e,{includeMainTypes:dS})}function Cf(t,e,n,i){var r=n.getAxis(["x","y"][t]),o=Sf(f([0,1],function(t){return e?r.coordToData(r.toLocalCoord(i[t])):r.toGlobalCoord(r.dataToCoord(i[t]))})),a=[];return a[t]=o,a[1-t]=[NaN,NaN],{values:o,xyMinMax:a}}function Tf(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function Df(t,e){var n=Af(t),i=Af(e),r=[n[0]/i[0],n[1]/i[1]];return isNaN(r[0])&&(r[0]=1),isNaN(r[1])&&(r[1]=1),r}function Af(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}function kf(t,e){var n=zf(t);xS(e,function(e,i){for(var r=n.length-1;r>=0&&!n[r][i];r--);if(r<0){var o=t.queryComponents({mainType:"dataZoom",subType:"select",id:i})[0];if(o){var a=o.getPercentRange();n[0][i]={dataZoomId:i,start:a[0],end:a[1]}}}}),n.push(e)}function Pf(t){var e=zf(t),n=e[e.length-1];e.length>1&&e.pop();var i={};return xS(n,function(t,n){for(var r=e.length-1;r>=0;r--)if(t=e[r][n]){i[n]=t;break}}),i}function Lf(t){t[_S]=null}function Of(t){return zf(t).length}function zf(t){var e=t[_S];return e||(e=t[_S]=[{}]),e}function Ef(t,e,n){(this._brushController=new Nd(n.getZr())).on("brush",m(this._onBrush,this)).mount(),this._isZoomActive}function Nf(t){var e={};return d(["xAxisIndex","yAxisIndex"],function(n){e[n]=t[n],null==e[n]&&(e[n]="all"),(!1===e[n]||"none"===e[n])&&(e[n]=[])}),e}function Rf(t,e){t.setIconStatus("back",Of(e)>1?"emphasis":"normal")}function Bf(t,e,n,i,r){var o=n._isZoomActive;i&&"takeGlobalCursor"===i.type&&(o="dataZoomSelect"===i.key&&i.dataZoomSelectActive),n._isZoomActive=o,t.setIconStatus("zoom",o?"emphasis":"normal");var a=new Mf(Nf(t.option),e,{include:["grid"]});n._brushController.setPanels(a.makePanelOpts(r,function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"})).enableBrush(!!o&&{brushType:"auto",brushStyle:{lineWidth:0,fill:"rgba(0,0,0,0.2)"}})}function Vf(t){this.model=t}function Ff(t){return TS(t)}function Hf(){if(!kS&&PS){kS=!0;var t=PS.styleSheets;t.length<31?PS.createStyleSheet().addRule(".zrvml","behavior:url(#default#VML)"):t[0].addRule(".zrvml","behavior:url(#default#VML)")}}function Gf(t){return parseInt(t,10)}function Wf(t,e){Hf(),this.root=t,this.storage=e;var n=document.createElement("div"),i=document.createElement("div");n.style.cssText="display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;",i.style.cssText="position:absolute;left:0;top:0;",t.appendChild(n),this._vmlRoot=i,this._vmlViewport=n,this.resize();var r=e.delFromStorage,o=e.addToStorage;e.delFromStorage=function(t){r.call(e,t),t&&t.onRemove&&t.onRemove(i)},e.addToStorage=function(t){t.onAdd&&t.onAdd(i),o.call(e,t)},this._firstPaint=!0}function Zf(t){return function(){yg('In IE8.0 VML mode painter not support method "'+t+'"')}}function Uf(t){return document.createElementNS(cI,t)}function Xf(t){return gI(1e4*t)/1e4}function jf(t){return t<wI&&t>-wI}function Yf(t,e){var n=e?t.textFill:t.fill;return null!=n&&n!==pI}function qf(t,e){var n=e?t.textStroke:t.stroke;return null!=n&&n!==pI}function $f(t,e){e&&Kf(t,"transform","matrix("+fI.call(e,",")+")")}function Kf(t,e,n){(!n||"linear"!==n.type&&"radial"!==n.type)&&("string"==typeof n&&n.indexOf("NaN")>-1&&console.log(n),t.setAttribute(e,n))}function Qf(t,e,n){t.setAttributeNS("http://www.w3.org/1999/xlink",e,n)}function Jf(t,e,n){if(Yf(e,n)){var i=n?e.textFill:e.fill;i="transparent"===i?pI:i,"none"!==t.getAttribute("clip-path")&&i===pI&&(i="rgba(0, 0, 0, 0.002)"),Kf(t,"fill",i),Kf(t,"fill-opacity",e.opacity)}else Kf(t,"fill",pI);if(qf(e,n)){var r=n?e.textStroke:e.stroke;Kf(t,"stroke",r="transparent"===r?pI:r),Kf(t,"stroke-width",(n?e.textStrokeWidth:e.lineWidth)/(!n&&e.strokeNoScale?e.host.getLineScale():1)),Kf(t,"paint-order",n?"stroke":"fill"),Kf(t,"stroke-opacity",e.opacity),e.lineDash?(Kf(t,"stroke-dasharray",e.lineDash.join(",")),Kf(t,"stroke-dashoffset",gI(e.lineDashOffset||0))):Kf(t,"stroke-dasharray",""),e.lineCap&&Kf(t,"stroke-linecap",e.lineCap),e.lineJoin&&Kf(t,"stroke-linejoin",e.lineJoin),e.miterLimit&&Kf(t,"stroke-miterlimit",e.miterLimit)}else Kf(t,"stroke",pI)}function tp(t){for(var e=[],n=t.data,i=t.len(),r=0;r<i;){var o="",a=0;switch(n[r++]){case dI.M:o="M",a=2;break;case dI.L:o="L",a=2;break;case dI.Q:o="Q",a=4;break;case dI.C:o="C",a=6;break;case dI.A:var s=n[r++],l=n[r++],u=n[r++],h=n[r++],c=n[r++],d=n[r++],f=n[r++],p=n[r++],g=Math.abs(d),m=jf(g-xI)&&!jf(g),v=!1;v=g>=xI||!jf(g)&&(d>-yI&&d<0||d>yI)==!!p;var y=Xf(s+u*vI(c)),x=Xf(l+h*mI(c));m&&(d=p?xI-1e-4:1e-4-xI,v=!0,9===r&&e.push("M",y,x));var _=Xf(s+u*vI(c+d)),w=Xf(l+h*mI(c+d));e.push("A",Xf(u),Xf(h),gI(f*_I),+v,+p,_,w);break;case dI.Z:o="Z";break;case dI.R:var _=Xf(n[r++]),w=Xf(n[r++]),b=Xf(n[r++]),M=Xf(n[r++]);e.push("M",_,w,"L",_+b,w,"L",_+b,w+M,"L",_,w+M,"L",_,w)}o&&e.push(o);for(var S=0;S<a;S++)e.push(Xf(n[r++]))}return e.join(" ")}function ep(t){return"middle"===t?"middle":"bottom"===t?"baseline":"hanging"}function np(){}function ip(t,e,n,i){for(var r=0,o=e.length,a=0,s=0;r<o;r++){var l=e[r];if(l.removed){for(var u=[],h=s;h<s+l.count;h++)u.push(h);l.indices=u,s+=l.count}else{for(var u=[],h=a;h<a+l.count;h++)u.push(h);l.indices=u,a+=l.count,l.added||(s+=l.count)}}return e}function rp(t){return{newPos:t.newPos,components:t.components.slice(0)}}function op(t,e,n,i,r){this._zrId=t,this._svgRoot=e,this._tagNames="string"==typeof n?[n]:n,this._markLabel=i,this._domName=r||"_dom",this.nextId=0}function ap(t,e){op.call(this,t,e,["linearGradient","radialGradient"],"__gradient_in_use__")}function sp(t,e){op.call(this,t,e,"clipPath","__clippath_in_use__")}function lp(t,e){op.call(this,t,e,["filter"],"__filter_in_use__","_shadowDom")}function up(t){return t&&(t.shadowBlur||t.shadowOffsetX||t.shadowOffsetY||t.textShadowBlur||t.textShadowOffsetX||t.textShadowOffsetY)}function hp(t){return parseInt(t,10)}function cp(t){return t instanceof xi?bI:t instanceof je?MI:t instanceof kv?SI:bI}function dp(t,e){return e&&t&&e.parentNode!==t}function fp(t,e,n){if(dp(t,e)&&n){var i=n.nextSibling;i?t.insertBefore(e,i):t.appendChild(e)}}function pp(t,e){if(dp(t,e)){var n=t.firstChild;n?t.insertBefore(e,n):t.appendChild(e)}}function gp(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)}function mp(t){return t.__textSvgEl}function vp(t){return t.__svgEl}function yp(t){return function(){yg('In SVG mode painter not support method "'+t+'"')}}var xp=2311,_p=function(){return xp++},wp={},bp=wp="object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?{browser:{},os:{},node:!1,wxa:!0,canvasSupported:!0,svgSupported:!1,touchEventsSupported:!0}:"undefined"==typeof document&&"undefined"!=typeof self?{browser:{},os:{},node:!1,worker:!0,canvasSupported:!0}:"undefined"==typeof navigator?{browser:{},os:{},node:!0,worker:!1,canvasSupported:!0,svgSupported:!0}:function(t){var e={},n={},i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge\/([\d.]+)/),a=/micromessenger/i.test(t);return i&&(n.firefox=!0,n.version=i[1]),r&&(n.ie=!0,n.version=r[1]),o&&(n.edge=!0,n.version=o[1]),a&&(n.weChat=!0),{browser:n,os:e,node:!1,canvasSupported:!!document.createElement("canvas").getContext,svgSupported:"undefined"!=typeof SVGRect,touchEventsSupported:"ontouchstart"in window&&!n.ie&&!n.edge,pointerEventsSupported:"onpointerdown"in window&&(n.edge||n.ie&&n.version>=11)}}(navigator.userAgent),Mp={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1,"[object Canvas]":1},Sp={"[object Int8Array]":1,"[object Uint8Array]":1,"[object Uint8ClampedArray]":1,"[object Int16Array]":1,"[object Uint16Array]":1,"[object Int32Array]":1,"[object Uint32Array]":1,"[object Float32Array]":1,"[object Float64Array]":1},Ip=Object.prototype.toString,Cp=Array.prototype,Tp=Cp.forEach,Dp=Cp.filter,Ap=Cp.slice,kp=Cp.map,Pp=Cp.reduce,Lp={},Op=function(){return Lp.createCanvas()};Lp.createCanvas=function(){return document.createElement("canvas")};var zp,Ep="__ec_primitive__";E.prototype={constructor:E,get:function(t){return this.hasOwnProperty(t)?this[t]:null},set:function(t,e){return this[t]=e},each:function(t,e){void 0!==e&&(t=m(t,e));for(var n in this)this.hasOwnProperty(n)&&t(this[n],n)},removeKey:function(t){delete this[t]}};var Np=(Object.freeze||Object)({$override:e,clone:n,merge:i,mergeAll:r,extend:o,defaults:a,createCanvas:Op,getContext:s,indexOf:l,inherits:u,mixin:h,isArrayLike:c,each:d,map:f,reduce:p,filter:g,find:function(t,e,n){if(t&&e)for(var i=0,r=t.length;i<r;i++)if(e.call(n,t[i],i,t))return t[i]},bind:m,curry:v,isArray:y,isFunction:x,isString:_,isObject:w,isBuiltInObject:b,isTypedArray:M,isDom:S,eqNaN:I,retrieve:C,retrieve2:T,retrieve3:D,slice:A,normalizeCssArray:k,assert:P,trim:L,setAsPrimitive:O,isPrimitive:z,createHashMap:N,concatArray:function(t,e){for(var n=new t.constructor(t.length+e.length),i=0;i<t.length;i++)n[i]=t[i];var r=t.length;for(i=0;i<e.length;i++)n[i+r]=e[i];return n},noop:R}),Rp="undefined"==typeof Float32Array?Array:Float32Array,Bp=Z,Vp=U,Fp=Y,Hp=q,Gp=(Object.freeze||Object)({create:B,copy:V,clone:F,set:function(t,e,n){return t[0]=e,t[1]=n,t},add:H,scaleAndAdd:G,sub:W,len:Z,length:Bp,lenSquare:U,lengthSquare:Vp,mul:function(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t},div:function(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t},dot:function(t,e){return t[0]*e[0]+t[1]*e[1]},scale:X,normalize:j,distance:Y,dist:Fp,distanceSquare:q,distSquare:Hp,negate:function(t,e){return t[0]=-e[0],t[1]=-e[1],t},lerp:function(t,e,n,i){return t[0]=e[0]+i*(n[0]-e[0]),t[1]=e[1]+i*(n[1]-e[1]),t},applyTransform:$,min:K,max:Q});J.prototype={constructor:J,_dragStart:function(t){var e=t.target;e&&e.draggable&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.dispatchToElement(tt(e,t),"dragstart",t.event))},_drag:function(t){var e=this._draggingTarget;if(e){var n=t.offsetX,i=t.offsetY,r=n-this._x,o=i-this._y;this._x=n,this._y=i,e.drift(r,o,t),this.dispatchToElement(tt(e,t),"drag",t.event);var a=this.findHover(n,i,e).target,s=this._dropTarget;this._dropTarget=a,e!==a&&(s&&a!==s&&this.dispatchToElement(tt(s,t),"dragleave",t.event),a&&a!==s&&this.dispatchToElement(tt(a,t),"dragenter",t.event))}},_dragEnd:function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.dispatchToElement(tt(e,t),"dragend",t.event),this._dropTarget&&this.dispatchToElement(tt(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null}};var Wp=Array.prototype.slice,Zp=function(){this._$handlers={}};Zp.prototype={constructor:Zp,one:function(t,e,n){var i=this._$handlers;if(!e||!t)return this;i[t]||(i[t]=[]);for(var r=0;r<i[t].length;r++)if(i[t][r].h===e)return this;return i[t].push({h:e,one:!0,ctx:n||this}),this},on:function(t,e,n){var i=this._$handlers;if(!e||!t)return this;i[t]||(i[t]=[]);for(var r=0;r<i[t].length;r++)if(i[t][r].h===e)return this;return i[t].push({h:e,one:!1,ctx:n||this}),this},isSilent:function(t){var e=this._$handlers;return e[t]&&e[t].length},off:function(t,e){var n=this._$handlers;if(!t)return this._$handlers={},this;if(e){if(n[t]){for(var i=[],r=0,o=n[t].length;r<o;r++)n[t][r].h!=e&&i.push(n[t][r]);n[t]=i}n[t]&&0===n[t].length&&delete n[t]}else delete n[t];return this},trigger:function(t){if(this._$handlers[t]){var e=arguments,n=e.length;n>3&&(e=Wp.call(e,1));for(var i=this._$handlers[t],r=i.length,o=0;o<r;){switch(n){case 1:i[o].h.call(i[o].ctx);break;case 2:i[o].h.call(i[o].ctx,e[1]);break;case 3:i[o].h.call(i[o].ctx,e[1],e[2]);break;default:i[o].h.apply(i[o].ctx,e)}i[o].one?(i.splice(o,1),r--):o++}}return this},triggerWithContext:function(t){if(this._$handlers[t]){var e=arguments,n=e.length;n>4&&(e=Wp.call(e,1,e.length-1));for(var i=e[e.length-1],r=this._$handlers[t],o=r.length,a=0;a<o;){switch(n){case 1:r[a].h.call(i);break;case 2:r[a].h.call(i,e[1]);break;case 3:r[a].h.call(i,e[1],e[2]);break;default:r[a].h.apply(i,e)}r[a].one?(r.splice(a,1),o--):a++}}return this}};var Up="silent";nt.prototype.dispose=function(){};var Xp=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],jp=function(t,e,n,i){Zp.call(this),this.storage=t,this.painter=e,this.painterRoot=i,n=n||new nt,this.proxy=null,this._hovered={},this._lastTouchMoment,this._lastX,this._lastY,J.call(this),this.setHandlerProxy(n)};jp.prototype={constructor:jp,setHandlerProxy:function(t){this.proxy&&this.proxy.dispose(),t&&(d(Xp,function(e){t.on&&t.on(e,this[e],this)},this),t.handler=this),this.proxy=t},mousemove:function(t){var e=t.zrX,n=t.zrY,i=this._hovered,r=i.target;r&&!r.__zr&&(r=(i=this.findHover(i.x,i.y)).target);var o=this._hovered=this.findHover(e,n),a=o.target,s=this.proxy;s.setCursor&&s.setCursor(a?a.cursor:"default"),r&&a!==r&&this.dispatchToElement(i,"mouseout",t),this.dispatchToElement(o,"mousemove",t),a&&a!==r&&this.dispatchToElement(o,"mouseover",t)},mouseout:function(t){this.dispatchToElement(this._hovered,"mouseout",t);var e,n=t.toElement||t.relatedTarget;do{n=n&&n.parentNode}while(n&&9!=n.nodeType&&!(e=n===this.painterRoot));!e&&this.trigger("globalout",{event:t})},resize:function(t){this._hovered={}},dispatch:function(t,e){var n=this[t];n&&n.call(this,e)},dispose:function(){this.proxy.dispose(),this.storage=this.proxy=this.painter=null},setCursorStyle:function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},dispatchToElement:function(t,e,n){var i=(t=t||{}).target;if(!i||!i.silent){for(var r="on"+e,o=et(e,t,n);i&&(i[r]&&(o.cancelBubble=i[r].call(i,o)),i.trigger(e,o),i=i.parent,!o.cancelBubble););o.cancelBubble||(this.trigger(e,o),this.painter&&this.painter.eachOtherLayer(function(t){"function"==typeof t[r]&&t[r].call(t,o),t.trigger&&t.trigger(e,o)}))}},findHover:function(t,e,n){for(var i=this.storage.getDisplayList(),r={x:t,y:e},o=i.length-1;o>=0;o--){var a;if(i[o]!==n&&!i[o].ignore&&(a=it(i[o],t,e))&&(!r.topTarget&&(r.topTarget=i[o]),a!==Up)){r.target=i[o];break}}return r}},d(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){jp.prototype[t]=function(e){var n=this.findHover(e.zrX,e.zrY),i=n.target;if("mousedown"===t)this._downEl=i,this._downPoint=[e.zrX,e.zrY],this._upEl=i;else if("mouseup"===t)this._upEl=i;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||Fp(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}}),h(jp,Zp),h(jp,J);var Yp="undefined"==typeof Float32Array?Array:Float32Array,qp=(Object.freeze||Object)({create:rt,identity:ot,copy:at,mul:st,translate:lt,rotate:ut,scale:ht,invert:ct,clone:function(t){var e=rt();return at(e,t),e}}),$p=ot,Kp=5e-5,Qp=function(t){(t=t||{}).position||(this.position=[0,0]),null==t.rotation&&(this.rotation=0),t.scale||(this.scale=[1,1]),this.origin=this.origin||null},Jp=Qp.prototype;Jp.transform=null,Jp.needLocalTransform=function(){return dt(this.rotation)||dt(this.position[0])||dt(this.position[1])||dt(this.scale[0]-1)||dt(this.scale[1]-1)},Jp.updateTransform=function(){var t=this.parent,e=t&&t.transform,n=this.needLocalTransform(),i=this.transform;n||e?(i=i||rt(),n?this.getLocalTransform(i):$p(i),e&&(n?st(i,t.transform,i):at(i,t.transform)),this.transform=i,this.invTransform=this.invTransform||rt(),ct(this.invTransform,i)):i&&$p(i)},Jp.getLocalTransform=function(t){return Qp.getLocalTransform(this,t)},Jp.setTransform=function(t){var e=this.transform,n=t.dpr||1;e?t.setTransform(n*e[0],n*e[1],n*e[2],n*e[3],n*e[4],n*e[5]):t.setTransform(n,0,0,n,0,0)},Jp.restoreTransform=function(t){var e=t.dpr||1;t.setTransform(e,0,0,e,0,0)};var tg=[];Jp.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(st(tg,t.invTransform,e),e=tg);var n=e[0]*e[0]+e[1]*e[1],i=e[2]*e[2]+e[3]*e[3],r=this.position,o=this.scale;dt(n-1)&&(n=Math.sqrt(n)),dt(i-1)&&(i=Math.sqrt(i)),e[0]<0&&(n=-n),e[3]<0&&(i=-i),r[0]=e[4],r[1]=e[5],o[0]=n,o[1]=i,this.rotation=Math.atan2(-e[1]/i,e[0]/n)}},Jp.getGlobalScale=function(){var t=this.transform;if(!t)return[1,1];var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]),n=Math.sqrt(t[2]*t[2]+t[3]*t[3]);return t[0]<0&&(e=-e),t[3]<0&&(n=-n),[e,n]},Jp.transformCoordToLocal=function(t,e){var n=[t,e],i=this.invTransform;return i&&$(n,n,i),n},Jp.transformCoordToGlobal=function(t,e){var n=[t,e],i=this.transform;return i&&$(n,n,i),n},Qp.getLocalTransform=function(t,e){$p(e=e||[]);var n=t.origin,i=t.scale||[1,1],r=t.rotation||0,o=t.position||[0,0];return n&&(e[4]-=n[0],e[5]-=n[1]),ht(e,e,i),r&&ut(e,e,r),n&&(e[4]+=n[0],e[5]+=n[1]),e[4]+=o[0],e[5]+=o[1],e};var eg={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-eg.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*eg.bounceIn(2*t):.5*eg.bounceOut(2*t-1)+.5}};ft.prototype={constructor:ft,step:function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),this._paused)this._pausedTime+=e;else{var n=(t-this._startTime-this._pausedTime)/this._life;if(!(n<0)){n=Math.min(n,1);var i=this.easing,r="string"==typeof i?eg[i]:i,o="function"==typeof r?r(n):n;return this.fire("frame",o),1==n?this.loop?(this.restart(t),"restart"):(this._needsRemove=!0,"destroy"):null}}},restart:function(t){var e=(t-this._startTime-this._pausedTime)%this._life;this._startTime=t-e+this.gap,this._pausedTime=0,this._needsRemove=!1},fire:function(t,e){this[t="on"+t]&&this[t](this._target,e)},pause:function(){this._paused=!0},resume:function(){this._paused=!1}};var ng=function(){this.head=null,this.tail=null,this._len=0},ig=ng.prototype;ig.insert=function(t){var e=new rg(t);return this.insertEntry(e),e},ig.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},ig.remove=function(t){var e=t.prev,n=t.next;e?e.next=n:this.head=n,n?n.prev=e:this.tail=e,t.next=t.prev=null,this._len--},ig.len=function(){return this._len},ig.clear=function(){this.head=this.tail=null,this._len=0};var rg=function(t){this.value=t,this.next,this.prev},og=function(t){this._list=new ng,this._map={},this._maxSize=t||10,this._lastRemovedEntry=null},ag=og.prototype;ag.put=function(t,e){var n=this._list,i=this._map,r=null;if(null==i[t]){var o=n.len(),a=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var s=n.head;n.remove(s),delete i[s.key],r=s.value,this._lastRemovedEntry=s}a?a.value=e:a=new rg(e),a.key=t,n.insertEntry(a),i[t]=a}return r},ag.get=function(t){var e=this._map[t],n=this._list;if(null!=e)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},ag.clear=function(){this._list.clear(),this._map={}};var sg={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]},lg=new og(20),ug=null,hg=At,cg=kt,dg=(Object.freeze||Object)({parse:St,lift:Tt,toHex:Dt,fastLerp:At,fastMapToColor:hg,lerp:kt,mapToColor:cg,modifyHSL:function(t,e,n,i){if(t=St(t))return t=Ct(t),null!=e&&(t[0]=gt(e)),null!=n&&(t[1]=yt(n)),null!=i&&(t[2]=yt(i)),Lt(It(t),"rgba")},modifyAlpha:Pt,stringify:Lt}),fg=Array.prototype.slice,pg=function(t,e,n,i){this._tracks={},this._target=t,this._loop=e||!1,this._getter=n||Ot,this._setter=i||zt,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};pg.prototype={when:function(t,e){var n=this._tracks;for(var i in e)if(e.hasOwnProperty(i)){if(!n[i]){n[i]=[];var r=this._getter(this._target,i);if(null==r)continue;0!==t&&n[i].push({time:0,value:Gt(r)})}n[i].push({time:t,value:e[i]})}return this},during:function(t){return this._onframeList.push(t),this},pause:function(){for(var t=0;t<this._clipList.length;t++)this._clipList[t].pause();this._paused=!0},resume:function(){for(var t=0;t<this._clipList.length;t++)this._clipList[t].resume();this._paused=!1},isPaused:function(){return!!this._paused},_doneCallback:function(){this._tracks={},this._clipList.length=0;for(var t=this._doneList,e=t.length,n=0;n<e;n++)t[n].call(this)},start:function(t,e){var n,i=this,r=0;for(var o in this._tracks)if(this._tracks.hasOwnProperty(o)){var a=Ut(this,t,function(){--r||i._doneCallback()},this._tracks[o],o,e);a&&(this._clipList.push(a),r++,this.animation&&this.animation.addClip(a),n=a)}if(n){var s=n.onframe;n.onframe=function(t,e){s(t,e);for(var n=0;n<i._onframeList.length;n++)i._onframeList[n](t,e)}}return r||this._doneCallback(),this},stop:function(t){for(var e=this._clipList,n=this.animation,i=0;i<e.length;i++){var r=e[i];t&&r.onframe(this._target,1),n&&n.removeClip(r)}e.length=0},delay:function(t){return this._delay=t,this},done:function(t){return t&&this._doneList.push(t),this},getClips:function(){return this._clipList}};var gg=1;"undefined"!=typeof window&&(gg=Math.max(window.devicePixelRatio||1,1));var mg=gg,vg=function(){},yg=vg,xg=function(){this.animators=[]};xg.prototype={constructor:xg,animate:function(t,e){var n,i=!1,r=this,o=this.__zr;if(t){var a=t.split("."),s=r;i="shape"===a[0];for(var u=0,h=a.length;u<h;u++)s&&(s=s[a[u]]);s&&(n=s)}else n=r;if(n){var c=r.animators,d=new pg(n,e);return d.during(function(t){r.dirty(i)}).done(function(){c.splice(l(c,d),1)}),c.push(d),o&&o.animation.addAnimator(d),d}yg('Property "'+t+'" is not existed in element '+r.id)},stopAnimation:function(t){for(var e=this.animators,n=e.length,i=0;i<n;i++)e[i].stop(t);return e.length=0,this},animateTo:function(t,e,n,i,r,o){_(n)?(r=i,i=n,n=0):x(i)?(r=i,i="linear",n=0):x(n)?(r=n,n=0):x(e)?(r=e,e=500):e||(e=500),this.stopAnimation(),this._animateToShallow("",this,t,e,n);var a=this.animators.slice(),s=a.length;s||r&&r();for(var l=0;l<a.length;l++)a[l].done(function(){--s||r&&r()}).start(i,o)},_animateToShallow:function(t,e,n,i,r){var o={},a=0;for(var s in n)if(n.hasOwnProperty(s))if(null!=e[s])w(n[s])&&!c(n[s])?this._animateToShallow(t?t+"."+s:s,e[s],n[s],i,r):(o[s]=n[s],a++);else if(null!=n[s])if(t){var l={};l[t]={},l[t][s]=n[s],this.attr(l)}else this.attr(s,n[s]);return a>0&&this.animate(t,!1).when(null==i?500:i,o).delay(r||0),this}};var _g=function(t){Qp.call(this,t),Zp.call(this,t),xg.call(this,t),this.id=t.id||_p()};_g.prototype={type:"element",name:"",__zr:null,ignore:!1,clipPath:null,isGroup:!1,drift:function(t,e){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var n=this.transform;n||(n=this.transform=[1,0,0,1,0,0]),n[4]+=t,n[5]+=e,this.decomposeTransform(),this.dirty(!1)},beforeUpdate:function(){},afterUpdate:function(){},update:function(){this.updateTransform()},traverse:function(t,e){},attrKV:function(t,e){if("position"===t||"scale"===t||"origin"===t){if(e){var n=this[t];n||(n=this[t]=[]),n[0]=e[0],n[1]=e[1]}}else this[t]=e},hide:function(){this.ignore=!0,this.__zr&&this.__zr.refresh()},show:function(){this.ignore=!1,this.__zr&&this.__zr.refresh()},attr:function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(w(t))for(var n in t)t.hasOwnProperty(n)&&this.attrKV(n,t[n]);return this.dirty(!1),this},setClipPath:function(t){var e=this.__zr;e&&t.addSelfToZr(e),this.clipPath&&this.clipPath!==t&&this.removeClipPath(),this.clipPath=t,t.__zr=e,t.__clipTarget=this,this.dirty(!1)},removeClipPath:function(){var t=this.clipPath;t&&(t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__clipTarget=null,this.clipPath=null,this.dirty(!1))},addSelfToZr:function(t){this.__zr=t;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.addAnimator(e[n]);this.clipPath&&this.clipPath.addSelfToZr(t)},removeSelfFromZr:function(t){this.__zr=null;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.removeAnimator(e[n]);this.clipPath&&this.clipPath.removeSelfFromZr(t)}},h(_g,xg),h(_g,Qp),h(_g,Zp);var wg=$,bg=Math.min,Mg=Math.max;Xt.prototype={constructor:Xt,union:function(t){var e=bg(t.x,this.x),n=bg(t.y,this.y);this.width=Mg(t.x+t.width,this.x+this.width)-e,this.height=Mg(t.y+t.height,this.y+this.height)-n,this.x=e,this.y=n},applyTransform:function(){var t=[],e=[],n=[],i=[];return function(r){if(r){t[0]=n[0]=this.x,t[1]=i[1]=this.y,e[0]=i[0]=this.x+this.width,e[1]=n[1]=this.y+this.height,wg(t,t,r),wg(e,e,r),wg(n,n,r),wg(i,i,r),this.x=bg(t[0],e[0],n[0],i[0]),this.y=bg(t[1],e[1],n[1],i[1]);var o=Mg(t[0],e[0],n[0],i[0]),a=Mg(t[1],e[1],n[1],i[1]);this.width=o-this.x,this.height=a-this.y}}}(),calculateTransform:function(t){var e=this,n=t.width/e.width,i=t.height/e.height,r=rt();return lt(r,r,[-e.x,-e.y]),ht(r,r,[n,i]),lt(r,r,[t.x,t.y]),r},intersect:function(t){if(!t)return!1;t instanceof Xt||(t=Xt.create(t));var e=this,n=e.x,i=e.x+e.width,r=e.y,o=e.y+e.height,a=t.x,s=t.x+t.width,l=t.y,u=t.y+t.height;return!(i<a||s<n||o<l||u<r)},contain:function(t,e){var n=this;return t>=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},clone:function(){return new Xt(this.x,this.y,this.width,this.height)},copy:function(t){this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height},plain:function(){return{x:this.x,y:this.y,width:this.width,height:this.height}}},Xt.create=function(t){return new Xt(t.x,t.y,t.width,t.height)};var Sg=function(t){t=t||{},_g.call(this,t);for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);this._children=[],this.__storage=null,this.__dirty=!0};Sg.prototype={constructor:Sg,isGroup:!0,type:"group",silent:!1,children:function(){return this._children.slice()},childAt:function(t){return this._children[t]},childOfName:function(t){for(var e=this._children,n=0;n<e.length;n++)if(e[n].name===t)return e[n]},childCount:function(){return this._children.length},add:function(t){return t&&t!==this&&t.parent!==this&&(this._children.push(t),this._doAdd(t)),this},addBefore:function(t,e){if(t&&t!==this&&t.parent!==this&&e&&e.parent===this){var n=this._children,i=n.indexOf(e);i>=0&&(n.splice(i,0,t),this._doAdd(t))}return this},_doAdd:function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__storage,n=this.__zr;e&&e!==t.__storage&&(e.addToStorage(t),t instanceof Sg&&t.addChildrenToStorage(e)),n&&n.refresh()},remove:function(t){var e=this.__zr,n=this.__storage,i=this._children,r=l(i,t);return r<0?this:(i.splice(r,1),t.parent=null,n&&(n.delFromStorage(t),t instanceof Sg&&t.delChildrenFromStorage(n)),e&&e.refresh(),this)},removeAll:function(){var t,e,n=this._children,i=this.__storage;for(e=0;e<n.length;e++)t=n[e],i&&(i.delFromStorage(t),t instanceof Sg&&t.delChildrenFromStorage(i)),t.parent=null;return n.length=0,this},eachChild:function(t,e){for(var n=this._children,i=0;i<n.length;i++){var r=n[i];t.call(e,r,i)}return this},traverse:function(t,e){for(var n=0;n<this._children.length;n++){var i=this._children[n];t.call(e,i),"group"===i.type&&i.traverse(t,e)}return this},addChildrenToStorage:function(t){for(var e=0;e<this._children.length;e++){var n=this._children[e];t.addToStorage(n),n instanceof Sg&&n.addChildrenToStorage(t)}},delChildrenFromStorage:function(t){for(var e=0;e<this._children.length;e++){var n=this._children[e];t.delFromStorage(n),n instanceof Sg&&n.delChildrenFromStorage(t)}},dirty:function(){return this.__dirty=!0,this.__zr&&this.__zr.refresh(),this},getBoundingRect:function(t){for(var e=null,n=new Xt(0,0,0,0),i=t||this._children,r=[],o=0;o<i.length;o++){var a=i[o];if(!a.ignore&&!a.invisible){var s=a.getBoundingRect(),l=a.getLocalTransform(r);l?(n.copy(s),n.applyTransform(l),(e=e||n.clone()).union(n)):(e=e||s.clone()).union(s)}}return e||n}},u(Sg,_g);var Ig=32,Cg=7,Tg=function(){this._roots=[],this._displayList=[],this._displayListLen=0};Tg.prototype={constructor:Tg,traverse:function(t,e){for(var n=0;n<this._roots.length;n++)this._roots[n].traverse(t,e)},getDisplayList:function(t,e){return e=e||!1,t&&this.updateDisplayList(e),this._displayList},updateDisplayList:function(t){this._displayListLen=0;for(var e=this._roots,n=this._displayList,i=0,r=e.length;i<r;i++)this._updateAndAddDisplayable(e[i],null,t);n.length=this._displayListLen,bp.canvasSupported&&te(n,ee)},_updateAndAddDisplayable:function(t,e,n){if(!t.ignore||n){t.beforeUpdate(),t.__dirty&&t.update(),t.afterUpdate();var i=t.clipPath;if(i){e=e?e.slice():[];for(var r=i,o=t;r;)r.parent=o,r.updateTransform(),e.push(r),o=r,r=r.clipPath}if(t.isGroup){for(var a=t._children,s=0;s<a.length;s++){var l=a[s];t.__dirty&&(l.__dirty=!0),this._updateAndAddDisplayable(l,e,n)}t.__dirty=!1}else t.__clipPaths=e,this._displayList[this._displayListLen++]=t}},addRoot:function(t){t.__storage!==this&&(t instanceof Sg&&t.addChildrenToStorage(this),this.addToStorage(t),this._roots.push(t))},delRoot:function(t){if(null==t){for(n=0;n<this._roots.length;n++){var e=this._roots[n];e instanceof Sg&&e.delChildrenFromStorage(this)}return this._roots=[],this._displayList=[],void(this._displayListLen=0)}if(t instanceof Array)for(var n=0,i=t.length;n<i;n++)this.delRoot(t[n]);else{var r=l(this._roots,t);r>=0&&(this.delFromStorage(t),this._roots.splice(r,1),t instanceof Sg&&t.delChildrenFromStorage(this))}},addToStorage:function(t){return t&&(t.__storage=this,t.dirty(!1)),this},delFromStorage:function(t){return t&&(t.__storage=null),this},dispose:function(){this._renderList=this._roots=null},displayableSortFunc:ee};var Dg={shadowBlur:1,shadowOffsetX:1,shadowOffsetY:1,textShadowBlur:1,textShadowOffsetX:1,textShadowOffsetY:1,textBoxShadowBlur:1,textBoxShadowOffsetX:1,textBoxShadowOffsetY:1},Ag=function(t,e,n){return Dg.hasOwnProperty(e)?n*=t.dpr:n},kg=[["shadowBlur",0],["shadowOffsetX",0],["shadowOffsetY",0],["shadowColor","#000"],["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]],Pg=function(t,e){this.extendFrom(t,!1),this.host=e};Pg.prototype={constructor:Pg,host:null,fill:"#000",stroke:null,opacity:1,lineDash:null,lineDashOffset:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,lineWidth:1,strokeNoScale:!1,text:null,font:null,textFont:null,fontStyle:null,fontWeight:null,fontSize:null,fontFamily:null,textTag:null,textFill:"#000",textStroke:null,textWidth:null,textHeight:null,textStrokeWidth:0,textLineHeight:null,textPosition:"inside",textRect:null,textOffset:null,textAlign:null,textVerticalAlign:null,textDistance:5,textShadowColor:"transparent",textShadowBlur:0,textShadowOffsetX:0,textShadowOffsetY:0,textBoxShadowColor:"transparent",textBoxShadowBlur:0,textBoxShadowOffsetX:0,textBoxShadowOffsetY:0,transformText:!1,textRotation:0,textOrigin:null,textBackgroundColor:null,textBorderColor:null,textBorderWidth:0,textBorderRadius:0,textPadding:null,rich:null,truncate:null,blend:null,bind:function(t,e,n){for(var i=this,r=n&&n.style,o=!r,a=0;a<kg.length;a++){var s=kg[a],l=s[0];(o||i[l]!==r[l])&&(t[l]=Ag(t,l,i[l]||s[1]))}if((o||i.fill!==r.fill)&&(t.fillStyle=i.fill),(o||i.stroke!==r.stroke)&&(t.strokeStyle=i.stroke),(o||i.opacity!==r.opacity)&&(t.globalAlpha=null==i.opacity?1:i.opacity),(o||i.blend!==r.blend)&&(t.globalCompositeOperation=i.blend||"source-over"),this.hasStroke()){var u=i.lineWidth;t.lineWidth=u/(this.strokeNoScale&&e&&e.getLineScale?e.getLineScale():1)}},hasFill:function(){var t=this.fill;return null!=t&&"none"!==t},hasStroke:function(){var t=this.stroke;return null!=t&&"none"!==t&&this.lineWidth>0},extendFrom:function(t,e){if(t)for(var n in t)!t.hasOwnProperty(n)||!0!==e&&(!1===e?this.hasOwnProperty(n):null==t[n])||(this[n]=t[n])},set:function(t,e){"string"==typeof t?this[t]=e:this.extendFrom(t,!0)},clone:function(){var t=new this.constructor;return t.extendFrom(this,!0),t},getGradient:function(t,e,n){for(var i=("radial"===e.type?ie:ne)(t,e,n),r=e.colorStops,o=0;o<r.length;o++)i.addColorStop(r[o].offset,r[o].color);return i}};for(var Lg=Pg.prototype,Og=0;Og<kg.length;Og++){var zg=kg[Og];zg[0]in Lg||(Lg[zg[0]]=zg[1])}Pg.getGradient=Lg.getGradient;var Eg=function(t,e){this.image=t,this.repeat=e,this.type="pattern"};Eg.prototype.getCanvasPattern=function(t){return t.createPattern(this.image,this.repeat||"repeat")};var Ng=function(t,e,n){var i;n=n||mg,"string"==typeof t?i=oe(t,e,n):w(t)&&(t=(i=t).id),this.id=t,this.dom=i;var r=i.style;r&&(i.onselectstart=re,r["-webkit-user-select"]="none",r["user-select"]="none",r["-webkit-touch-callout"]="none",r["-webkit-tap-highlight-color"]="rgba(0,0,0,0)",r.padding=0,r.margin=0,r["border-width"]=0),this.domBack=null,this.ctxBack=null,this.painter=e,this.config=null,this.clearColor=0,this.motionBlur=!1,this.lastFrameAlpha=.7,this.dpr=n};Ng.prototype={constructor:Ng,__dirty:!0,__used:!1,__drawIndex:0,__startIndex:0,__endIndex:0,incremental:!1,getElementCount:function(){return this.__endIndex-this.__startIndex},initContext:function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},createBackBuffer:function(){var t=this.dpr;this.domBack=oe("back-"+this.id,this.painter,t),this.ctxBack=this.domBack.getContext("2d"),1!=t&&this.ctxBack.scale(t,t)},resize:function(t,e){var n=this.dpr,i=this.dom,r=i.style,o=this.domBack;r&&(r.width=t+"px",r.height=e+"px"),i.width=t*n,i.height=e*n,o&&(o.width=t*n,o.height=e*n,1!=n&&this.ctxBack.scale(n,n))},clear:function(t,e){var n=this.dom,i=this.ctx,r=n.width,o=n.height,e=e||this.clearColor,a=this.motionBlur&&!t,s=this.lastFrameAlpha,l=this.dpr;if(a&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(n,0,0,r/l,o/l)),i.clearRect(0,0,r,o),e&&"transparent"!==e){var u;e.colorStops?(u=e.__canvasGradient||Pg.getGradient(i,e,{x:0,y:0,width:r,height:o}),e.__canvasGradient=u):e.image&&(u=Eg.prototype.getCanvasPattern.call(e,i)),i.save(),i.fillStyle=u||e,i.fillRect(0,0,r,o),i.restore()}if(a){var h=this.domBack;i.save(),i.globalAlpha=s,i.drawImage(h,0,0,r,o),i.restore()}}};var Rg="undefined"!=typeof window&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){setTimeout(t,16)},Bg=new og(50),Vg={},Fg=0,Hg=5e3,Gg=/\{([a-zA-Z0-9_]+)\|([^}]*)\}/g,Wg="12px sans-serif",Zg={};Zg.measureText=function(t,e){var n=s();return n.font=e||Wg,n.measureText(t)};var Ug={left:1,right:1,center:1},Xg={top:1,bottom:1,middle:1},jg=new Xt,Yg=function(){};Yg.prototype={constructor:Yg,drawRectText:function(t,e){var n=this.style;e=n.textRect||e,this.__dirty&&De(n);var i=n.text;if(null!=i&&(i+=""),Ue(i,n)){t.save();var r=this.transform;n.transformText?this.setTransform(t):r&&(jg.copy(e),jg.applyTransform(r),e=jg),ke(this,t,i,n,e),t.restore()}}},Xe.prototype={constructor:Xe,type:"displayable",__dirty:!0,invisible:!1,z:0,z2:0,zlevel:0,draggable:!1,dragging:!1,silent:!1,culling:!1,cursor:"pointer",rectHover:!1,progressive:!1,incremental:!1,inplace:!1,beforeBrush:function(t){},afterBrush:function(t){},brush:function(t,e){},getBoundingRect:function(){},contain:function(t,e){return this.rectContain(t,e)},traverse:function(t,e){t.call(e,this)},rectContain:function(t,e){var n=this.transformCoordToLocal(t,e);return this.getBoundingRect().contain(n[0],n[1])},dirty:function(){this.__dirty=!0,this._rect=null,this.__zr&&this.__zr.refresh()},animateStyle:function(t){return this.animate("style",t)},attrKV:function(t,e){"style"!==t?_g.prototype.attrKV.call(this,t,e):this.style.set(e)},setStyle:function(t,e){return this.style.set(t,e),this.dirty(!1),this},useStyle:function(t){return this.style=new Pg(t,this),this.dirty(!1),this}},u(Xe,_g),h(Xe,Yg),je.prototype={constructor:je,type:"image",brush:function(t,e){var n=this.style,i=n.image;n.bind(t,this,e);var r=this._image=se(i,this._image,this,this.onload);if(r&&ue(r)){var o=n.x||0,a=n.y||0,s=n.width,l=n.height,u=r.width/r.height;if(null==s&&null!=l?s=l*u:null==l&&null!=s?l=s/u:null==s&&null==l&&(s=r.width,l=r.height),this.setTransform(t),n.sWidth&&n.sHeight){var h=n.sx||0,c=n.sy||0;t.drawImage(r,h,c,n.sWidth,n.sHeight,o,a,s,l)}else if(n.sx&&n.sy){var d=s-(h=n.sx),f=l-(c=n.sy);t.drawImage(r,h,c,d,f,o,a,s,l)}else t.drawImage(r,o,a,s,l);null!=n.text&&(this.restoreTransform(t),this.drawRectText(t,this.getBoundingRect()))}},getBoundingRect:function(){var t=this.style;return this._rect||(this._rect=new Xt(t.x||0,t.y||0,t.width||0,t.height||0)),this._rect}},u(je,Xe);var qg=new Xt(0,0,0,0),$g=new Xt(0,0,0,0),Kg=function(t,e,n){this.type="canvas";var i=!t.nodeName||"CANVAS"===t.nodeName.toUpperCase();this._opts=n=o({},n||{}),this.dpr=n.devicePixelRatio||mg,this._singleCanvas=i,this.root=t;var r=t.style;r&&(r["-webkit-tap-highlight-color"]="transparent",r["-webkit-user-select"]=r["user-select"]=r["-webkit-touch-callout"]="none",t.innerHTML=""),this.storage=e;var a=this._zlevelList=[],s=this._layers={};if(this._layerConfig={},this._needsManuallyCompositing=!1,i){var l=t.width,u=t.height;null!=n.width&&(l=n.width),null!=n.height&&(u=n.height),this.dpr=n.devicePixelRatio||1,t.width=l*this.dpr,t.height=u*this.dpr,this._width=l,this._height=u;var h=new Ng(t,this,this.dpr);h.__builtin__=!0,h.initContext(),s[314159]=h,h.zlevel=314159,a.push(314159),this._domRoot=t}else{this._width=this._getSize(0),this._height=this._getSize(1);var c=this._domRoot=Je(this._width,this._height);t.appendChild(c)}this._hoverlayer=null,this._hoverElements=[]};Kg.prototype={constructor:Kg,getType:function(){return"canvas"},isSingleCanvas:function(){return this._singleCanvas},getViewportRoot:function(){return this._domRoot},getViewportRootOffset:function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},refresh:function(t){var e=this.storage.getDisplayList(!0),n=this._zlevelList;this._redrawId=Math.random(),this._paintList(e,t,this._redrawId);for(var i=0;i<n.length;i++){var r=n[i],o=this._layers[r];if(!o.__builtin__&&o.refresh){var a=0===i?this._backgroundColor:null;o.refresh(a)}}return this.refreshHover(),this},addHover:function(t,e){if(!t.__hoverMir){var n=new t.constructor({style:t.style,shape:t.shape});n.__from=t,t.__hoverMir=n,n.setStyle(e),this._hoverElements.push(n)}},removeHover:function(t){var e=t.__hoverMir,n=this._hoverElements,i=l(n,e);i>=0&&n.splice(i,1),t.__hoverMir=null},clearHover:function(t){for(var e=this._hoverElements,n=0;n<e.length;n++){var i=e[n].__from;i&&(i.__hoverMir=null)}e.length=0},refreshHover:function(){var t=this._hoverElements,e=t.length,n=this._hoverlayer;if(n&&n.clear(),e){te(t,this.storage.displayableSortFunc),n||(n=this._hoverlayer=this.getLayer(1e5));var i={};n.ctx.save();for(var r=0;r<e;){var o=t[r],a=o.__from;a&&a.__zr?(r++,a.invisible||(o.transform=a.transform,o.invTransform=a.invTransform,o.__clipPaths=a.__clipPaths,this._doPaintEl(o,n,!0,i))):(t.splice(r,1),a.__hoverMir=null,e--)}n.ctx.restore()}},getHoverLayer:function(){return this.getLayer(1e5)},_paintList:function(t,e,n){if(this._redrawId===n){e=e||!1,this._updateLayerStatus(t);var i=this._doPaintList(t,e);if(this._needsManuallyCompositing&&this._compositeManually(),!i){var r=this;Rg(function(){r._paintList(t,e,n)})}}},_compositeManually:function(){var t=this.getLayer(314159).ctx,e=this._domRoot.width,n=this._domRoot.height;t.clearRect(0,0,e,n),this.eachBuiltinLayer(function(i){i.virtual&&t.drawImage(i.dom,0,0,e,n)})},_doPaintList:function(t,e){for(var n=[],i=0;i<this._zlevelList.length;i++){var r=this._zlevelList[i];(s=this._layers[r]).__builtin__&&s!==this._hoverlayer&&(s.__dirty||e)&&n.push(s)}for(var o=!0,a=0;a<n.length;a++){var s=n[a],l=s.ctx,u={};l.save();var h=e?s.__startIndex:s.__drawIndex,c=!e&&s.incremental&&Date.now,f=c&&Date.now(),p=s.zlevel===this._zlevelList[0]?this._backgroundColor:null;if(s.__startIndex===s.__endIndex)s.clear(!1,p);else if(h===s.__startIndex){var g=t[h];g.incremental&&g.notClear&&!e||s.clear(!1,p)}-1===h&&(console.error("For some unknown reason. drawIndex is -1"),h=s.__startIndex);for(var m=h;m<s.__endIndex;m++){var v=t[m];if(this._doPaintEl(v,s,e,u),v.__dirty=!1,c&&Date.now()-f>15)break}s.__drawIndex=m,s.__drawIndex<s.__endIndex&&(o=!1),u.prevElClipPaths&&l.restore(),l.restore()}return bp.wxa&&d(this._layers,function(t){t&&t.ctx&&t.ctx.draw&&t.ctx.draw()}),o},_doPaintEl:function(t,e,n,i){var r=e.ctx,o=t.transform;if((e.__dirty||n)&&!t.invisible&&0!==t.style.opacity&&(!o||o[0]||o[3])&&(!t.culling||!$e(t,this._width,this._height))){var a=t.__clipPaths;i.prevElClipPaths&&!Ke(a,i.prevElClipPaths)||(i.prevElClipPaths&&(e.ctx.restore(),i.prevElClipPaths=null,i.prevEl=null),a&&(r.save(),Qe(a,r),i.prevElClipPaths=a)),t.beforeBrush&&t.beforeBrush(r),t.brush(r,i.prevEl||null),i.prevEl=t,t.afterBrush&&t.afterBrush(r)}},getLayer:function(t,e){this._singleCanvas&&!this._needsManuallyCompositing&&(t=314159);var n=this._layers[t];return n||((n=new Ng("zr_"+t,this,this.dpr)).zlevel=t,n.__builtin__=!0,this._layerConfig[t]&&i(n,this._layerConfig[t],!0),e&&(n.virtual=e),this.insertLayer(t,n),n.initContext()),n},insertLayer:function(t,e){var n=this._layers,i=this._zlevelList,r=i.length,o=null,a=-1,s=this._domRoot;if(n[t])yg("ZLevel "+t+" has been used already");else if(qe(e)){if(r>0&&t>i[0]){for(a=0;a<r-1&&!(i[a]<t&&i[a+1]>t);a++);o=n[i[a]]}if(i.splice(a+1,0,t),n[t]=e,!e.virtual)if(o){var l=o.dom;l.nextSibling?s.insertBefore(e.dom,l.nextSibling):s.appendChild(e.dom)}else s.firstChild?s.insertBefore(e.dom,s.firstChild):s.appendChild(e.dom)}else yg("Layer of zlevel "+t+" is not valid")},eachLayer:function(t,e){var n,i,r=this._zlevelList;for(i=0;i<r.length;i++)n=r[i],t.call(e,this._layers[n],n)},eachBuiltinLayer:function(t,e){var n,i,r,o=this._zlevelList;for(r=0;r<o.length;r++)i=o[r],(n=this._layers[i]).__builtin__&&t.call(e,n,i)},eachOtherLayer:function(t,e){var n,i,r,o=this._zlevelList;for(r=0;r<o.length;r++)i=o[r],(n=this._layers[i]).__builtin__||t.call(e,n,i)},getLayers:function(){return this._layers},_updateLayerStatus:function(t){function e(t){n&&(n.__endIndex!==t&&(n.__dirty=!0),n.__endIndex=t)}if(this.eachBuiltinLayer(function(t,e){t.__dirty=t.__used=!1}),this._singleCanvas)for(r=1;r<t.length;r++)if((a=t[r]).zlevel!==t[r-1].zlevel||a.incremental){this._needsManuallyCompositing=!0;break}for(var n=null,i=0,r=0;r<t.length;r++){var o,a=t[r],s=a.zlevel;a.incremental?((o=this.getLayer(s+.001,this._needsManuallyCompositing)).incremental=!0,i=1):o=this.getLayer(s+(i>0?.01:0),this._needsManuallyCompositing),o.__builtin__||yg("ZLevel "+s+" has been used by unkown layer "+o.id),o!==n&&(o.__used=!0,o.__startIndex!==r&&(o.__dirty=!0),o.__startIndex=r,o.incremental?o.__drawIndex=-1:o.__drawIndex=r,e(r),n=o),a.__dirty&&(o.__dirty=!0,o.incremental&&o.__drawIndex<0&&(o.__drawIndex=r))}e(r),this.eachBuiltinLayer(function(t,e){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)})},clear:function(){return this.eachBuiltinLayer(this._clearLayer),this},_clearLayer:function(t){t.clear()},setBackgroundColor:function(t){this._backgroundColor=t},configLayer:function(t,e){if(e){var n=this._layerConfig;n[t]?i(n[t],e,!0):n[t]=e;for(var r=0;r<this._zlevelList.length;r++){var o=this._zlevelList[r];o!==t&&o!==t+.01||i(this._layers[o],n[t],!0)}}},delLayer:function(t){var e=this._layers,n=this._zlevelList,i=e[t];i&&(i.dom.parentNode.removeChild(i.dom),delete e[t],n.splice(l(n,t),1))},resize:function(t,e){if(this._domRoot.style){var n=this._domRoot;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!=t||e!=this._height){n.style.width=t+"px",n.style.height=e+"px";for(var r in this._layers)this._layers.hasOwnProperty(r)&&this._layers[r].resize(t,e);d(this._progressiveLayers,function(n){n.resize(t,e)}),this.refresh(!0)}this._width=t,this._height=e}else{if(null==t||null==e)return;this._width=t,this._height=e,this.getLayer(314159).resize(t,e)}return this},clearLayer:function(t){var e=this._layers[t];e&&e.clear()},dispose:function(){this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},getRenderedCanvas:function(t){if(t=t||{},this._singleCanvas&&!this._compositeManually)return this._layers[314159].dom;var e=new Ng("image",this,t.pixelRatio||this.dpr);if(e.initContext(),e.clear(!1,t.backgroundColor||this._backgroundColor),t.pixelRatio<=this.dpr){this.refresh();var n=e.dom.width,i=e.dom.height,r=e.ctx;this.eachLayer(function(t){t.__builtin__?r.drawImage(t.dom,0,0,n,i):t.renderToCanvas&&(e.ctx.save(),t.renderToCanvas(e.ctx),e.ctx.restore())})}else for(var o={},a=this.storage.getDisplayList(!0),s=0;s<a.length;s++){var l=a[s];this._doPaintEl(l,e,!0,o)}return e.dom},getWidth:function(){return this._width},getHeight:function(){return this._height},_getSize:function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||Ye(s[n])||Ye(a.style[n]))-(Ye(s[r])||0)-(Ye(s[o])||0)|0},pathToImage:function(t,e){e=e||this.dpr;var n=document.createElement("canvas"),i=n.getContext("2d"),r=t.getBoundingRect(),o=t.style,a=o.shadowBlur*e,s=o.shadowOffsetX*e,l=o.shadowOffsetY*e,u=o.hasStroke()?o.lineWidth:0,h=Math.max(u/2,-s+a),c=Math.max(u/2,s+a),d=Math.max(u/2,-l+a),f=Math.max(u/2,l+a),p=r.width+h+c,g=r.height+d+f;n.width=p*e,n.height=g*e,i.scale(e,e),i.clearRect(0,0,p,g),i.dpr=e;var m={position:t.position,rotation:t.rotation,scale:t.scale};t.position=[h-r.x,d-r.y],t.rotation=0,t.scale=[1,1],t.updateTransform(),t&&t.brush(i);var v=new je({style:{x:0,y:0,image:n}});return null!=m.position&&(v.position=t.position=m.position),null!=m.rotation&&(v.rotation=t.rotation=m.rotation),null!=m.scale&&(v.scale=t.scale=m.scale),v}};var Qg="undefined"!=typeof window&&!!window.addEventListener,Jg=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,tm=Qg?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0},em=function(t){t=t||{},this.stage=t.stage||{},this.onframe=t.onframe||function(){},this._clips=[],this._running=!1,this._time,this._pausedTime,this._pauseStart,this._paused=!1,Zp.call(this)};em.prototype={constructor:em,addClip:function(t){this._clips.push(t)},addAnimator:function(t){t.animation=this;for(var e=t.getClips(),n=0;n<e.length;n++)this.addClip(e[n])},removeClip:function(t){var e=l(this._clips,t);e>=0&&this._clips.splice(e,1)},removeAnimator:function(t){for(var e=t.getClips(),n=0;n<e.length;n++)this.removeClip(e[n]);t.animation=null},_update:function(){for(var t=(new Date).getTime()-this._pausedTime,e=t-this._time,n=this._clips,i=n.length,r=[],o=[],a=0;a<i;a++){var s=n[a],l=s.step(t,e);l&&(r.push(l),o.push(s))}for(a=0;a<i;)n[a]._needsRemove?(n[a]=n[i-1],n.pop(),i--):a++;i=r.length;for(a=0;a<i;a++)o[a].fire(r[a]);this._time=t,this.onframe(e),this.trigger("frame",e),this.stage.update&&this.stage.update()},_startLoop:function(){function t(){e._running&&(Rg(t),!e._paused&&e._update())}var e=this;this._running=!0,Rg(t)},start:function(){this._time=(new Date).getTime(),this._pausedTime=0,this._startLoop()},stop:function(){this._running=!1},pause:function(){this._paused||(this._pauseStart=(new Date).getTime(),this._paused=!0)},resume:function(){this._paused&&(this._pausedTime+=(new Date).getTime()-this._pauseStart,this._paused=!1)},clear:function(){this._clips=[]},isFinished:function(){return!this._clips.length},animate:function(t,e){var n=new pg(t,(e=e||{}).loop,e.getter,e.setter);return this.addAnimator(n),n}},h(em,Zp);var nm=function(){this._track=[]};nm.prototype={constructor:nm,recognize:function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},clear:function(){return this._track.length=0,this},_doTrack:function(t,e,n){var i=t.touches;if(i){for(var r={points:[],touches:[],target:e,event:t},o=0,a=i.length;o<a;o++){var s=i[o],l=en(n,s,{});r.points.push([l.zrX,l.zrY]),r.touches.push(s)}this._track.push(r)}},_recognize:function(t){for(var e in im)if(im.hasOwnProperty(e)){var n=im[e](this._track,t);if(n)return n}}};var im={pinch:function(t,e){var n=t.length;if(n){var i=(t[n-1]||{}).points,r=(t[n-2]||{}).points||i;if(r&&r.length>1&&i&&i.length>1){var o=ln(i)/ln(r);!isFinite(o)&&(o=1),e.pinchScale=o;var a=un(i);return e.pinchX=a[0],e.pinchY=a[1],{type:"pinch",target:t[0].target,event:e}}}}},rm=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],om=["touchstart","touchend","touchmove"],am={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},sm=f(rm,function(t){var e=t.replace("mouse","pointer");return am[e]?e:t}),lm={mousemove:function(t){t=rn(this.dom,t),this.trigger("mousemove",t)},mouseout:function(t){var e=(t=rn(this.dom,t)).toElement||t.relatedTarget;if(e!=this.dom)for(;e&&9!=e.nodeType;){if(e===this.dom)return;e=e.parentNode}this.trigger("mouseout",t)},touchstart:function(t){(t=rn(this.dom,t)).zrByTouch=!0,this._lastTouchMoment=new Date,cn(this,t,"start"),lm.mousemove.call(this,t),lm.mousedown.call(this,t),dn(this)},touchmove:function(t){(t=rn(this.dom,t)).zrByTouch=!0,cn(this,t,"change"),lm.mousemove.call(this,t),dn(this)},touchend:function(t){(t=rn(this.dom,t)).zrByTouch=!0,cn(this,t,"end"),lm.mouseup.call(this,t),+new Date-this._lastTouchMoment<300&&lm.click.call(this,t),dn(this)},pointerdown:function(t){lm.mousedown.call(this,t)},pointermove:function(t){fn(t)||lm.mousemove.call(this,t)},pointerup:function(t){lm.mouseup.call(this,t)},pointerout:function(t){fn(t)||lm.mouseout.call(this,t)}};d(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){lm[t]=function(e){e=rn(this.dom,e),this.trigger(t,e)}});var um=gn.prototype;um.dispose=function(){for(var t=rm.concat(om),e=0;e<t.length;e++){var n=t[e];an(this.dom,hn(n),this._handlers[n])}},um.setCursor=function(t){this.dom.style&&(this.dom.style.cursor=t||"default")},h(gn,Zp);var hm=!bp.canvasSupported,cm={canvas:Kg},dm={},fm=function(t,e,n){n=n||{},this.dom=e,this.id=t;var i=this,r=new Tg,o=n.renderer;if(hm){if(!cm.vml)throw new Error("You need to require 'zrender/vml/vml' to support IE8");o="vml"}else o&&cm[o]||(o="canvas");var a=new cm[o](e,r,n,t);this.storage=r,this.painter=a;var s=bp.node||bp.worker?null:new gn(a.getViewportRoot());this.handler=new jp(r,a,s,a.root),this.animation=new em({stage:{update:m(this.flush,this)}}),this.animation.start(),this._needsRefresh;var l=r.delFromStorage,u=r.addToStorage;r.delFromStorage=function(t){l.call(r,t),t&&t.removeSelfFromZr(i)},r.addToStorage=function(t){u.call(r,t),t.addSelfToZr(i)}};fm.prototype={constructor:fm,getId:function(){return this.id},add:function(t){this.storage.addRoot(t),this._needsRefresh=!0},remove:function(t){this.storage.delRoot(t),this._needsRefresh=!0},configLayer:function(t,e){this.painter.configLayer&&this.painter.configLayer(t,e),this._needsRefresh=!0},setBackgroundColor:function(t){this.painter.setBackgroundColor&&this.painter.setBackgroundColor(t),this._needsRefresh=!0},refreshImmediately:function(){this._needsRefresh=!1,this.painter.refresh(),this._needsRefresh=!1},refresh:function(){this._needsRefresh=!0},flush:function(){var t;this._needsRefresh&&(t=!0,this.refreshImmediately()),this._needsRefreshHover&&(t=!0,this.refreshHoverImmediately()),t&&this.trigger("rendered")},addHover:function(t,e){this.painter.addHover&&(this.painter.addHover(t,e),this.refreshHover())},removeHover:function(t){this.painter.removeHover&&(this.painter.removeHover(t),this.refreshHover())},clearHover:function(){this.painter.clearHover&&(this.painter.clearHover(),this.refreshHover())},refreshHover:function(){this._needsRefreshHover=!0},refreshHoverImmediately:function(){this._needsRefreshHover=!1,this.painter.refreshHover&&this.painter.refreshHover()},resize:function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},clearAnimation:function(){this.animation.clear()},getWidth:function(){return this.painter.getWidth()},getHeight:function(){return this.painter.getHeight()},pathToImage:function(t,e){return this.painter.pathToImage(t,e)},setCursorStyle:function(t){this.handler.setCursorStyle(t)},findHover:function(t,e){return this.handler.findHover(t,e)},on:function(t,e,n){this.handler.on(t,e,n)},off:function(t,e){this.handler.off(t,e)},trigger:function(t,e){this.handler.trigger(t,e)},clear:function(){this.storage.delRoot(),this.painter.clear()},dispose:function(){this.animation.stop(),this.clear(),this.storage.dispose(),this.painter.dispose(),this.handler.dispose(),this.animation=this.storage=this.painter=this.handler=null,yn(this.id)}};var pm=(Object.freeze||Object)({version:"4.0.4",init:mn,dispose:function(t){if(t)t.dispose();else{for(var e in dm)dm.hasOwnProperty(e)&&dm[e].dispose();dm={}}return this},getInstance:function(t){return dm[t]},registerPainter:vn}),gm=d,mm=w,vm=y,ym="series\0",xm=["fontStyle","fontWeight","fontSize","fontFamily","rich","tag","color","textBorderColor","textBorderWidth","width","height","lineHeight","align","verticalAlign","baseline","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","backgroundColor","borderColor","borderWidth","borderRadius","padding"],_m=0,wm=".",bm="___EC__COMPONENT__CONTAINER___",Mm=0,Sm=function(t){for(var e=0;e<t.length;e++)t[e][1]||(t[e][1]=t[e][0]);return function(e,n,i){for(var r={},o=0;o<t.length;o++){var a=t[o][1];if(!(n&&l(n,a)>=0||i&&l(i,a)<0)){var s=e.getShallow(a);null!=s&&(r[t[o][0]]=s)}}return r}},Im=Sm([["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),Cm={getLineStyle:function(t){var e=Im(this,t),n=this.getLineDash(e.lineWidth);return n&&(e.lineDash=n),e},getLineDash:function(t){null==t&&(t=1);var e=this.get("type"),n=Math.max(t,2),i=4*t;return"solid"===e||null==e?null:"dashed"===e?[i,i]:[n,n]}},Tm=Sm([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),Dm={getAreaStyle:function(t,e){return Tm(this,t,e)}},Am=Math.pow,km=Math.sqrt,Pm=1e-8,Lm=1e-4,Om=km(3),zm=1/3,Em=B(),Nm=B(),Rm=B(),Bm=Math.min,Vm=Math.max,Fm=Math.sin,Hm=Math.cos,Gm=2*Math.PI,Wm=B(),Zm=B(),Um=B(),Xm=[],jm=[],Ym={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},qm=[],$m=[],Km=[],Qm=[],Jm=Math.min,tv=Math.max,ev=Math.cos,nv=Math.sin,iv=Math.sqrt,rv=Math.abs,ov="undefined"!=typeof Float32Array,av=function(t){this._saveData=!t,this._saveData&&(this.data=[]),this._ctx=null};av.prototype={constructor:av,_xi:0,_yi:0,_x0:0,_y0:0,_ux:0,_uy:0,_len:0,_lineDash:null,_dashOffset:0,_dashIdx:0,_dashSum:0,setScale:function(t,e){this._ux=rv(1/mg/t)||0,this._uy=rv(1/mg/e)||0},getContext:function(){return this._ctx},beginPath:function(t){return this._ctx=t,t&&t.beginPath(),t&&(this.dpr=t.dpr),this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this},moveTo:function(t,e){return this.addData(Ym.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},lineTo:function(t,e){var n=rv(t-this._xi)>this._ux||rv(e-this._yi)>this._uy||this._len<5;return this.addData(Ym.L,t,e),this._ctx&&n&&(this._needsDash()?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},bezierCurveTo:function(t,e,n,i,r,o){return this.addData(Ym.C,t,e,n,i,r,o),this._ctx&&(this._needsDash()?this._dashedBezierTo(t,e,n,i,r,o):this._ctx.bezierCurveTo(t,e,n,i,r,o)),this._xi=r,this._yi=o,this},quadraticCurveTo:function(t,e,n,i){return this.addData(Ym.Q,t,e,n,i),this._ctx&&(this._needsDash()?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},arc:function(t,e,n,i,r,o){return this.addData(Ym.A,t,e,n,n,i,r-i,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=ev(r)*n+t,this._yi=nv(r)*n+t,this},arcTo:function(t,e,n,i,r){return this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},rect:function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(Ym.R,t,e,n,i),this},closePath:function(){this.addData(Ym.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash()&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},fill:function(t){t&&t.fill(),this.toStatic()},stroke:function(t){t&&t.stroke(),this.toStatic()},setLineDash:function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,n=0;n<t.length;n++)e+=t[n];this._dashSum=e}return this},setLineDashOffset:function(t){return this._dashOffset=t,this},len:function(){return this._len},setData:function(t){var e=t.length;this.data&&this.data.length==e||!ov||(this.data=new Float32Array(e));for(var n=0;n<e;n++)this.data[n]=t[n];this._len=e},appendPath:function(t){t instanceof Array||(t=[t]);for(var e=t.length,n=0,i=this._len,r=0;r<e;r++)n+=t[r].len();ov&&this.data instanceof Float32Array&&(this.data=new Float32Array(i+n));for(r=0;r<e;r++)for(var o=t[r].data,a=0;a<o.length;a++)this.data[i++]=o[a];this._len=i},addData:function(t){if(this._saveData){var e=this.data;this._len+arguments.length>e.length&&(this._expandData(),e=this.data);for(var n=0;n<arguments.length;n++)e[this._len++]=arguments[n];this._prevCmd=t}},_expandData:function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e<this._len;e++)t[e]=this.data[e];this.data=t}},_needsDash:function(){return this._lineDash},_dashedLineTo:function(t,e){var n,i,r=this._dashSum,o=this._dashOffset,a=this._lineDash,s=this._ctx,l=this._xi,u=this._yi,h=t-l,c=e-u,d=iv(h*h+c*c),f=l,p=u,g=a.length;for(h/=d,c/=d,o<0&&(o=r+o),f-=(o%=r)*h,p-=o*c;h>0&&f<=t||h<0&&f>=t||0==h&&(c>0&&p<=e||c<0&&p>=e);)f+=h*(n=a[i=this._dashIdx]),p+=c*n,this._dashIdx=(i+1)%g,h>0&&f<l||h<0&&f>l||c>0&&p<u||c<0&&p>u||s[i%2?"moveTo":"lineTo"](h>=0?Jm(f,t):tv(f,t),c>=0?Jm(p,e):tv(p,e));h=f-t,c=p-e,this._dashOffset=-iv(h*h+c*c)},_dashedBezierTo:function(t,e,n,i,r,o){var a,s,l,u,h,c=this._dashSum,d=this._dashOffset,f=this._lineDash,p=this._ctx,g=this._xi,m=this._yi,v=Gn,y=0,x=this._dashIdx,_=f.length,w=0;for(d<0&&(d=c+d),d%=c,a=0;a<1;a+=.1)s=v(g,t,n,r,a+.1)-v(g,t,n,r,a),l=v(m,e,i,o,a+.1)-v(m,e,i,o,a),y+=iv(s*s+l*l);for(;x<_&&!((w+=f[x])>d);x++);for(a=(w-d)/y;a<=1;)u=v(g,t,n,r,a),h=v(m,e,i,o,a),x%2?p.moveTo(u,h):p.lineTo(u,h),a+=f[x]/y,x=(x+1)%_;x%2!=0&&p.lineTo(r,o),s=r-u,l=o-h,this._dashOffset=-iv(s*s+l*l)},_dashedQuadraticTo:function(t,e,n,i){var r=n,o=i;n=(n+2*t)/3,i=(i+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,n,i,r,o)},toStatic:function(){var t=this.data;t instanceof Array&&(t.length=this._len,ov&&(this.data=new Float32Array(t)))},getBoundingRect:function(){qm[0]=qm[1]=Km[0]=Km[1]=Number.MAX_VALUE,$m[0]=$m[1]=Qm[0]=Qm[1]=-Number.MAX_VALUE;for(var t=this.data,e=0,n=0,i=0,r=0,o=0;o<t.length;){var a=t[o++];switch(1==o&&(i=e=t[o],r=n=t[o+1]),a){case Ym.M:e=i=t[o++],n=r=t[o++],Km[0]=i,Km[1]=r,Qm[0]=i,Qm[1]=r;break;case Ym.L:ei(e,n,t[o],t[o+1],Km,Qm),e=t[o++],n=t[o++];break;case Ym.C:ni(e,n,t[o++],t[o++],t[o++],t[o++],t[o],t[o+1],Km,Qm),e=t[o++],n=t[o++];break;case Ym.Q:ii(e,n,t[o++],t[o++],t[o],t[o+1],Km,Qm),e=t[o++],n=t[o++];break;case Ym.A:var s=t[o++],l=t[o++],u=t[o++],h=t[o++],c=t[o++],d=t[o++]+c,f=(t[o++],1-t[o++]);1==o&&(i=ev(c)*u+s,r=nv(c)*h+l),ri(s,l,u,h,c,d,f,Km,Qm),e=ev(d)*u+s,n=nv(d)*h+l;break;case Ym.R:ei(i=e=t[o++],r=n=t[o++],i+t[o++],r+t[o++],Km,Qm);break;case Ym.Z:e=i,n=r}K(qm,qm,Km),Q($m,$m,Qm)}return 0===o&&(qm[0]=qm[1]=$m[0]=$m[1]=0),new Xt(qm[0],qm[1],$m[0]-qm[0],$m[1]-qm[1])},rebuildPath:function(t){for(var e,n,i,r,o,a,s=this.data,l=this._ux,u=this._uy,h=this._len,c=0;c<h;){var d=s[c++];switch(1==c&&(e=i=s[c],n=r=s[c+1]),d){case Ym.M:e=i=s[c++],n=r=s[c++],t.moveTo(i,r);break;case Ym.L:o=s[c++],a=s[c++],(rv(o-i)>l||rv(a-r)>u||c===h-1)&&(t.lineTo(o,a),i=o,r=a);break;case Ym.C:t.bezierCurveTo(s[c++],s[c++],s[c++],s[c++],s[c++],s[c++]),i=s[c-2],r=s[c-1];break;case Ym.Q:t.quadraticCurveTo(s[c++],s[c++],s[c++],s[c++]),i=s[c-2],r=s[c-1];break;case Ym.A:var f=s[c++],p=s[c++],g=s[c++],m=s[c++],v=s[c++],y=s[c++],x=s[c++],_=s[c++],w=g>m?g:m,b=g>m?1:g/m,M=g>m?m/g:1,S=v+y;Math.abs(g-m)>.001?(t.translate(f,p),t.rotate(x),t.scale(b,M),t.arc(0,0,w,v,S,1-_),t.scale(1/b,1/M),t.rotate(-x),t.translate(-f,-p)):t.arc(f,p,w,v,S,1-_),1==c&&(e=ev(v)*g+f,n=nv(v)*m+p),i=ev(S)*g+f,r=nv(S)*m+p;break;case Ym.R:e=i=s[c],n=r=s[c+1],t.rect(s[c++],s[c++],s[c++],s[c++]);break;case Ym.Z:t.closePath(),i=e,r=n}}}},av.CMD=Ym;var sv=2*Math.PI,lv=2*Math.PI,uv=av.CMD,hv=2*Math.PI,cv=1e-4,dv=[-1,-1,-1],fv=[-1,-1],pv=Eg.prototype.getCanvasPattern,gv=Math.abs,mv=new av(!0);xi.prototype={constructor:xi,type:"path",__dirtyPath:!0,strokeContainThreshold:5,brush:function(t,e){var n=this.style,i=this.path||mv,r=n.hasStroke(),o=n.hasFill(),a=n.fill,s=n.stroke,l=o&&!!a.colorStops,u=r&&!!s.colorStops,h=o&&!!a.image,c=r&&!!s.image;if(n.bind(t,this,e),this.setTransform(t),this.__dirty){var d;l&&(d=d||this.getBoundingRect(),this._fillGradient=n.getGradient(t,a,d)),u&&(d=d||this.getBoundingRect(),this._strokeGradient=n.getGradient(t,s,d))}l?t.fillStyle=this._fillGradient:h&&(t.fillStyle=pv.call(a,t)),u?t.strokeStyle=this._strokeGradient:c&&(t.strokeStyle=pv.call(s,t));var f=n.lineDash,p=n.lineDashOffset,g=!!t.setLineDash,m=this.getGlobalScale();i.setScale(m[0],m[1]),this.__dirtyPath||f&&!g&&r?(i.beginPath(t),f&&!g&&(i.setLineDash(f),i.setLineDashOffset(p)),this.buildPath(i,this.shape,!1),this.path&&(this.__dirtyPath=!1)):(t.beginPath(),this.path.rebuildPath(t)),o&&i.fill(t),f&&g&&(t.setLineDash(f),t.lineDashOffset=p),r&&i.stroke(t),f&&g&&t.setLineDash([]),null!=n.text&&(this.restoreTransform(t),this.drawRectText(t,this.getBoundingRect()))},buildPath:function(t,e,n){},createPathProxy:function(){this.path=new av},getBoundingRect:function(){var t=this._rect,e=this.style,n=!t;if(n){var i=this.path;i||(i=this.path=new av),this.__dirtyPath&&(i.beginPath(),this.buildPath(i,this.shape,!1)),t=i.getBoundingRect()}if(this._rect=t,e.hasStroke()){var r=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||n){r.copy(t);var o=e.lineWidth,a=e.strokeNoScale?this.getLineScale():1;e.hasFill()||(o=Math.max(o,this.strokeContainThreshold||4)),a>1e-10&&(r.width+=o/a,r.height+=o/a,r.x-=o/a/2,r.y-=o/a/2)}return r}return t},contain:function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect(),r=this.style;if(t=n[0],e=n[1],i.contain(t,e)){var o=this.path.data;if(r.hasStroke()){var a=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(r.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),yi(o,a/s,t,e)))return!0}if(r.hasFill())return vi(o,t,e)}return!1},dirty:function(t){null==t&&(t=!0),t&&(this.__dirtyPath=t,this._rect=null),this.__dirty=!0,this.__zr&&this.__zr.refresh(),this.__clipTarget&&this.__clipTarget.dirty()},animateShape:function(t){return this.animate("shape",t)},attrKV:function(t,e){"shape"===t?(this.setShape(e),this.__dirtyPath=!0,this._rect=null):Xe.prototype.attrKV.call(this,t,e)},setShape:function(t,e){var n=this.shape;if(n){if(w(t))for(var i in t)t.hasOwnProperty(i)&&(n[i]=t[i]);else n[t]=e;this.dirty(!0)}return this},getLineScale:function(){var t=this.transform;return t&&gv(t[0]-1)>1e-10&&gv(t[3]-1)>1e-10?Math.sqrt(gv(t[0]*t[3]-t[2]*t[1])):1}},xi.extend=function(t){var e=function(e){xi.call(this,e),t.style&&this.style.extendFrom(t.style,!1);var n=t.shape;if(n){this.shape=this.shape||{};var i=this.shape;for(var r in n)!i.hasOwnProperty(r)&&n.hasOwnProperty(r)&&(i[r]=n[r])}t.init&&t.init.call(this,e)};u(e,xi);for(var n in t)"style"!==n&&"shape"!==n&&(e.prototype[n]=t[n]);return e},u(xi,Xe);var vv=av.CMD,yv=[[],[],[]],xv=Math.sqrt,_v=Math.atan2,wv=function(t,e){var n,i,r,o,a,s,l=t.data,u=vv.M,h=vv.C,c=vv.L,d=vv.R,f=vv.A,p=vv.Q;for(r=0,o=0;r<l.length;){switch(n=l[r++],o=r,i=0,n){case u:case c:i=1;break;case h:i=3;break;case p:i=2;break;case f:var g=e[4],m=e[5],v=xv(e[0]*e[0]+e[1]*e[1]),y=xv(e[2]*e[2]+e[3]*e[3]),x=_v(-e[1]/y,e[0]/v);l[r]*=v,l[r++]+=g,l[r]*=y,l[r++]+=m,l[r++]*=v,l[r++]*=y,l[r++]+=x,l[r++]+=x,o=r+=2;break;case d:s[0]=l[r++],s[1]=l[r++],$(s,s,e),l[o++]=s[0],l[o++]=s[1],s[0]+=l[r++],s[1]+=l[r++],$(s,s,e),l[o++]=s[0],l[o++]=s[1]}for(a=0;a<i;a++)(s=yv[a])[0]=l[r++],s[1]=l[r++],$(s,s,e),l[o++]=s[0],l[o++]=s[1]}},bv=["m","M","l","L","v","V","h","H","z","Z","c","C","q","Q","t","T","s","S","a","A"],Mv=Math.sqrt,Sv=Math.sin,Iv=Math.cos,Cv=Math.PI,Tv=function(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])},Dv=function(t,e){return(t[0]*e[0]+t[1]*e[1])/(Tv(t)*Tv(e))},Av=function(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos(Dv(t,e))},kv=function(t){Xe.call(this,t)};kv.prototype={constructor:kv,type:"text",brush:function(t,e){var n=this.style;this.__dirty&&De(n),n.fill=n.stroke=n.shadowBlur=n.shadowColor=n.shadowOffsetX=n.shadowOffsetY=null;var i=n.text;null!=i&&(i+=""),n.bind(t,this,e),Ue(i,n)&&(this.setTransform(t),ke(this,t,i,n),this.restoreTransform(t))},getBoundingRect:function(){var t=this.style;if(this.__dirty&&De(t),!this._rect){var e=t.text;null!=e?e+="":e="";var n=ce(t.text+"",t.font,t.textAlign,t.textVerticalAlign,t.textPadding,t.rich);if(n.x+=t.x||0,n.y+=t.y||0,He(t.textStroke,t.textStrokeWidth)){var i=t.textStrokeWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect}},u(kv,Xe);var Pv=xi.extend({type:"circle",shape:{cx:0,cy:0,r:0},buildPath:function(t,e,n){n&&t.moveTo(e.cx+e.r,e.cy),t.arc(e.cx,e.cy,e.r,0,2*Math.PI,!0)}}),Lv=[["shadowBlur",0],["shadowColor","#000"],["shadowOffsetX",0],["shadowOffsetY",0]],Ov=function(t){return bp.browser.ie&&bp.browser.version>=11?function(){var e,n=this.__clipPaths,i=this.style;if(n)for(var r=0;r<n.length;r++){var o=n[r],a=o&&o.shape,s=o&&o.type;if(a&&("sector"===s&&a.startAngle===a.endAngle||"rect"===s&&(!a.width||!a.height))){for(l=0;l<Lv.length;l++)Lv[l][2]=i[Lv[l][0]],i[Lv[l][0]]=Lv[l][1];e=!0;break}}if(t.apply(this,arguments),e)for(var l=0;l<Lv.length;l++)i[Lv[l][0]]=Lv[l][2]}:t},zv=xi.extend({type:"sector",shape:{cx:0,cy:0,r0:0,r:0,startAngle:0,endAngle:2*Math.PI,clockwise:!0},brush:Ov(xi.prototype.brush),buildPath:function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r0||0,0),o=Math.max(e.r,0),a=e.startAngle,s=e.endAngle,l=e.clockwise,u=Math.cos(a),h=Math.sin(a);t.moveTo(u*r+n,h*r+i),t.lineTo(u*o+n,h*o+i),t.arc(n,i,o,a,s,!l),t.lineTo(Math.cos(s)*r+n,Math.sin(s)*r+i),0!==r&&t.arc(n,i,r,s,a,l),t.closePath()}}),Ev=xi.extend({type:"ring",shape:{cx:0,cy:0,r:0,r0:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=2*Math.PI;t.moveTo(n+e.r,i),t.arc(n,i,e.r,0,r,!1),t.moveTo(n+e.r0,i),t.arc(n,i,e.r0,0,r,!0)}}),Nv=function(t,e){for(var n=t.length,i=[],r=0,o=1;o<n;o++)r+=Y(t[o-1],t[o]);var a=r/2;a=a<n?n:a;for(o=0;o<a;o++){var s,l,u,h=o/(a-1)*(e?n:n-1),c=Math.floor(h),d=h-c,f=t[c%n];e?(s=t[(c-1+n)%n],l=t[(c+1)%n],u=t[(c+2)%n]):(s=t[0===c?c:c-1],l=t[c>n-2?n-1:c+1],u=t[c>n-3?n-1:c+2]);var p=d*d,g=d*p;i.push([Ii(s[0],f[0],l[0],u[0],d,p,g),Ii(s[1],f[1],l[1],u[1],d,p,g)])}return i},Rv=function(t,e,n,i){var r,o,a,s,l=[],u=[],h=[],c=[];if(i){a=[1/0,1/0],s=[-1/0,-1/0];for(var d=0,f=t.length;d<f;d++)K(a,a,t[d]),Q(s,s,t[d]);K(a,a,i[0]),Q(s,s,i[1])}for(var d=0,f=t.length;d<f;d++){var p=t[d];if(n)r=t[d?d-1:f-1],o=t[(d+1)%f];else{if(0===d||d===f-1){l.push(F(t[d]));continue}r=t[d-1],o=t[d+1]}W(u,o,r),X(u,u,e);var g=Y(p,r),m=Y(p,o),v=g+m;0!==v&&(g/=v,m/=v),X(h,u,-g),X(c,u,m);var y=H([],p,h),x=H([],p,c);i&&(Q(y,y,a),K(y,y,s),Q(x,x,a),K(x,x,s)),l.push(y),l.push(x)}return n&&l.push(l.shift()),l},Bv=xi.extend({type:"polygon",shape:{points:null,smooth:!1,smoothConstraint:null},buildPath:function(t,e){Ci(t,e,!0)}}),Vv=xi.extend({type:"polyline",shape:{points:null,smooth:!1,smoothConstraint:null},style:{stroke:"#000",fill:null},buildPath:function(t,e){Ci(t,e,!1)}}),Fv=xi.extend({type:"rect",shape:{r:0,x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.x,i=e.y,r=e.width,o=e.height;e.r?Te(t,e):t.rect(n,i,r,o),t.closePath()}}),Hv=xi.extend({type:"line",shape:{x1:0,y1:0,x2:0,y2:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(t,e){var n=e.x1,i=e.y1,r=e.x2,o=e.y2,a=e.percent;0!==a&&(t.moveTo(n,i),a<1&&(r=n*(1-a)+r*a,o=i*(1-a)+o*a),t.lineTo(r,o))},pointAt:function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]}}),Gv=[],Wv=xi.extend({type:"bezier-curve",shape:{x1:0,y1:0,x2:0,y2:0,cpx1:0,cpy1:0,percent:1},style:{stroke:"#000",fill:null},buildPath:function(t,e){var n=e.x1,i=e.y1,r=e.x2,o=e.y2,a=e.cpx1,s=e.cpy1,l=e.cpx2,u=e.cpy2,h=e.percent;0!==h&&(t.moveTo(n,i),null==l||null==u?(h<1&&(Qn(n,a,r,h,Gv),a=Gv[1],r=Gv[2],Qn(i,s,o,h,Gv),s=Gv[1],o=Gv[2]),t.quadraticCurveTo(a,s,r,o)):(h<1&&(Xn(n,a,l,r,h,Gv),a=Gv[1],l=Gv[2],r=Gv[3],Xn(i,s,u,o,h,Gv),s=Gv[1],u=Gv[2],o=Gv[3]),t.bezierCurveTo(a,s,l,u,r,o)))},pointAt:function(t){return Ti(this.shape,t,!1)},tangentAt:function(t){var e=Ti(this.shape,t,!0);return j(e,e)}}),Zv=xi.extend({type:"arc",shape:{cx:0,cy:0,r:0,startAngle:0,endAngle:2*Math.PI,clockwise:!0},style:{stroke:"#000",fill:null},buildPath:function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r,0),o=e.startAngle,a=e.endAngle,s=e.clockwise,l=Math.cos(o),u=Math.sin(o);t.moveTo(l*r+n,u*r+i),t.arc(n,i,r,o,a,!s)}}),Uv=xi.extend({type:"compound",shape:{paths:null},_updatePathDirty:function(){for(var t=this.__dirtyPath,e=this.shape.paths,n=0;n<e.length;n++)t=t||e[n].__dirtyPath;this.__dirtyPath=t,this.__dirty=this.__dirty||t},beforeBrush:function(){this._updatePathDirty();for(var t=this.shape.paths||[],e=this.getGlobalScale(),n=0;n<t.length;n++)t[n].path||t[n].createPathProxy(),t[n].path.setScale(e[0],e[1])},buildPath:function(t,e){for(var n=e.paths||[],i=0;i<n.length;i++)n[i].buildPath(t,n[i].shape,!0)},afterBrush:function(){for(var t=this.shape.paths||[],e=0;e<t.length;e++)t[e].__dirtyPath=!1},getBoundingRect:function(){return this._updatePathDirty(),xi.prototype.getBoundingRect.call(this)}}),Xv=function(t){this.colorStops=t||[]};Xv.prototype={constructor:Xv,addColorStop:function(t,e){this.colorStops.push({offset:t,color:e})}};var jv=function(t,e,n,i,r,o){this.x=null==t?0:t,this.y=null==e?0:e,this.x2=null==n?1:n,this.y2=null==i?0:i,this.type="linear",this.global=o||!1,Xv.call(this,r)};jv.prototype={constructor:jv},u(jv,Xv);var Yv=function(t,e,n,i,r){this.x=null==t?.5:t,this.y=null==e?.5:e,this.r=null==n?.5:n,this.type="radial",this.global=r||!1,Xv.call(this,i)};Yv.prototype={constructor:Yv},u(Yv,Xv),Di.prototype.incremental=!0,Di.prototype.clearDisplaybles=function(){this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.dirty(),this.notClear=!1},Di.prototype.addDisplayable=function(t,e){e?this._temporaryDisplayables.push(t):this._displayables.push(t),this.dirty()},Di.prototype.addDisplayables=function(t,e){e=e||!1;for(var n=0;n<t.length;n++)this.addDisplayable(t[n],e)},Di.prototype.eachPendingDisplayable=function(t){for(e=this._cursor;e<this._displayables.length;e++)t&&t(this._displayables[e]);for(var e=0;e<this._temporaryDisplayables.length;e++)t&&t(this._temporaryDisplayables[e])},Di.prototype.update=function(){this.updateTransform();for(t=this._cursor;t<this._displayables.length;t++)(e=this._displayables[t]).parent=this,e.update(),e.parent=null;for(var t=0;t<this._temporaryDisplayables.length;t++){var e=this._temporaryDisplayables[t];e.parent=this,e.update(),e.parent=null}},Di.prototype.brush=function(t,e){for(n=this._cursor;n<this._displayables.length;n++)(i=this._displayables[n]).beforeBrush&&i.beforeBrush(t),i.brush(t,n===this._cursor?null:this._displayables[n-1]),i.afterBrush&&i.afterBrush(t);this._cursor=n;for(var n=0;n<this._temporaryDisplayables.length;n++){var i=this._temporaryDisplayables[n];i.beforeBrush&&i.beforeBrush(t),i.brush(t,0===n?null:this._temporaryDisplayables[n-1]),i.afterBrush&&i.afterBrush(t)}this._temporaryDisplayables=[],this.notClear=!0};var qv=[];Di.prototype.getBoundingRect=function(){if(!this._rect){for(var t=new Xt(1/0,1/0,-1/0,-1/0),e=0;e<this._displayables.length;e++){var n=this._displayables[e],i=n.getBoundingRect().clone();n.needLocalTransform()&&i.applyTransform(n.getLocalTransform(qv)),t.union(i)}this._rect=t}return this._rect},Di.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e);if(this.getBoundingRect().contain(n[0],n[1]))for(var i=0;i<this._displayables.length;i++)if(this._displayables[i].contain(t,e))return!0;return!1},u(Di,Xe);var $v=Math.round,Kv=Math.max,Qv=Math.min,Jv={},ty=(Object.freeze||Object)({extendShape:Ai,extendPath:function(t,e){return Si(t,e)},makePath:ki,makeImage:Pi,mergePath:function(t,e){for(var n=[],i=t.length,r=0;r<i;r++){var o=t[r];o.path||o.createPathProxy(),o.__dirtyPath&&o.buildPath(o.path,o.shape,!0),n.push(o.path)}var a=new xi(e);return a.createPathProxy(),a.buildPath=function(t){t.appendPath(n);var e=t.getContext();e&&t.rebuildPath(e)},a},resizePath:Oi,subPixelOptimizeLine:zi,subPixelOptimizeRect:Ei,subPixelOptimize:Ni,setHoverStyle:qi,setLabelStyle:$i,setTextStyle:Ki,setText:function(t,e,n){var i,r={isRectText:!0};!1===n?i=!0:r.autoColor=n,Qi(t,e,r,i),t.host&&t.host.dirty&&t.host.dirty(!1)},getFont:rr,updateProps:ar,initProps:sr,getTransform:lr,applyTransform:ur,transformDirection:hr,groupTransition:cr,clipPointsByRect:dr,clipRectByRect:function(t,e){var n=Kv(t.x,e.x),i=Qv(t.x+t.width,e.x+e.width),r=Kv(t.y,e.y),o=Qv(t.y+t.height,e.y+e.height);if(i>=n&&o>=r)return{x:n,y:r,width:i-n,height:o-r}},createIcon:fr,Group:Sg,Image:je,Text:kv,Circle:Pv,Sector:zv,Ring:Ev,Polygon:Bv,Polyline:Vv,Rect:Fv,Line:Hv,BezierCurve:Wv,Arc:Zv,IncrementalDisplayable:Di,CompoundPath:Uv,LinearGradient:jv,RadialGradient:Yv,BoundingRect:Xt}),ey=["textStyle","color"],ny={getTextColor:function(t){var e=this.ecModel;return this.getShallow("color")||(!t&&e?e.get(ey):null)},getFont:function(){return rr({fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily")},this.ecModel)},getTextRect:function(t){return ce(t,this.getFont(),this.getShallow("align"),this.getShallow("verticalAlign")||this.getShallow("baseline"),this.getShallow("padding"),this.getShallow("rich"),this.getShallow("truncateText"))}},iy=Sm([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["textPosition"],["textAlign"]]),ry={getItemStyle:function(t,e){var n=iy(this,t,e),i=this.getBorderLineDash();return i&&(n.lineDash=i),n},getBorderLineDash:function(){var t=this.get("borderType");return"solid"===t||null==t?null:"dashed"===t?[5,5]:[1,1]}},oy=h,ay=Dn();pr.prototype={constructor:pr,init:null,mergeOption:function(t){i(this.option,t,!0)},get:function(t,e){return null==t?this.option:gr(this.option,this.parsePath(t),!e&&mr(this,t))},getShallow:function(t,e){var n=this.option,i=null==n?n:n[t],r=!e&&mr(this,t);return null==i&&r&&(i=r.getShallow(t)),i},getModel:function(t,e){var n,i=null==t?this.option:gr(this.option,t=this.parsePath(t));return e=e||(n=mr(this,t))&&n.getModel(t),new pr(i,e,this.ecModel)},isEmpty:function(){return null==this.option},restoreData:function(){},clone:function(){return new(0,this.constructor)(n(this.option))},setReadOnly:function(t){},parsePath:function(t){return"string"==typeof t&&(t=t.split(".")),t},customizeGetParent:function(t){ay(this).getParent=t},isAnimationEnabled:function(){if(!bp.node){if(null!=this.option.animation)return!!this.option.animation;if(this.parentModel)return this.parentModel.isAnimationEnabled()}}},En(pr),Nn(pr),oy(pr,Cm),oy(pr,Dm),oy(pr,ny),oy(pr,ry);var sy=0,ly=1e-4,uy=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/,hy=(Object.freeze||Object)({linearMap:xr,parsePercent:_r,round:wr,asc:br,getPrecision:Mr,getPrecisionSafe:Sr,getPixelPrecision:Ir,getPercentWithPrecision:Cr,MAX_SAFE_INTEGER:9007199254740991,remRadian:Tr,isRadianAroundZero:Dr,parseDate:Ar,quantity:kr,nice:Lr,reformIntervals:function(t){function e(t,n,i){return t.interval[i]<n.interval[i]||t.interval[i]===n.interval[i]&&(t.close[i]-n.close[i]==(i?-1:1)||!i&&e(t,n,1))}t.sort(function(t,n){return e(t,n,0)?-1:1});for(var n=-1/0,i=1,r=0;r<t.length;){for(var o=t[r].interval,a=t[r].close,s=0;s<2;s++)o[s]<=n&&(o[s]=n,a[s]=s?1:1-i),n=o[s],i=a[s];o[0]===o[1]&&a[0]*a[1]!=1?t.splice(r,1):r++}return t},isNumeric:function(t){return t-parseFloat(t)>=0}}),cy=k,dy=/([&<>"'])/g,fy={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},py=["a","b","c","d","e","f","g"],gy=function(t,e){return"{"+t+(null==e?"":e)+"}"},my=ve,vy=ce,yy=(Object.freeze||Object)({addCommas:Or,toCamelCase:zr,normalizeCssArray:cy,encodeHTML:Er,formatTpl:Nr,formatTplSimple:function(t,e,n){return d(e,function(e,i){t=t.replace("{"+i+"}",n?Er(e):e)}),t},getTooltipMarker:Rr,formatTime:Vr,capitalFirst:Fr,truncateText:my,getTextRect:vy}),xy=d,_y=["left","right","top","bottom","width","height"],wy=[["width","left","right"],["height","top","bottom"]],by=Hr,My=(v(Hr,"vertical"),v(Hr,"horizontal"),{getBoxLayoutParams:function(){return{left:this.get("left"),top:this.get("top"),right:this.get("right"),bottom:this.get("bottom"),width:this.get("width"),height:this.get("height")}}}),Sy=Dn(),Iy=pr.extend({type:"component",id:"",name:"",mainType:"",subType:"",componentIndex:0,defaultOption:null,ecModel:null,dependentModels:[],uid:null,layoutMode:null,$constructor:function(t,e,n,i){pr.call(this,t,e,n,i),this.uid=vr("ec_cpt_model")},init:function(t,e,n,i){this.mergeDefaultAndTheme(t,n)},mergeDefaultAndTheme:function(t,e){var n=this.layoutMode,r=n?Ur(t):{};i(t,e.getTheme().get(this.mainType)),i(t,this.getDefaultOption()),n&&Zr(t,r,n)},mergeOption:function(t,e){i(this.option,t,!0);var n=this.layoutMode;n&&Zr(this.option,t,n)},optionUpdated:function(t,e){},getDefaultOption:function(){var t=Sy(this);if(!t.defaultOption){for(var e=[],n=this.constructor;n;){var r=n.prototype.defaultOption;r&&e.push(r),n=n.superClass}for(var o={},a=e.length-1;a>=0;a--)o=i(o,e[a],!0);t.defaultOption=o}return t.defaultOption},getReferringComponents:function(t){return this.ecModel.queryComponents({mainType:t,index:this.get(t+"Index",!0),id:this.get(t+"Id",!0)})}});Vn(Iy,{registerWhenExtend:!0}),function(t){var e={};t.registerSubTypeDefaulter=function(t,n){t=On(t),e[t.main]=n},t.determineSubType=function(n,i){var r=i.type;if(!r){var o=On(n).main;t.hasSubTypes(n)&&e[o]&&(r=e[o](i))}return r}}(Iy),function(t,e){function n(t){var n={},o=[];return d(t,function(a){var s=i(n,a),u=r(s.originalDeps=e(a),t);s.entryCount=u.length,0===s.entryCount&&o.push(a),d(u,function(t){l(s.predecessor,t)<0&&s.predecessor.push(t);var e=i(n,t);l(e.successor,t)<0&&e.successor.push(a)})}),{graph:n,noEntryList:o}}function i(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}function r(t,e){var n=[];return d(t,function(t){l(e,t)>=0&&n.push(t)}),n}t.topologicalTravel=function(t,e,i,r){function o(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}if(t.length){var a=n(e),s=a.graph,l=a.noEntryList,u={};for(d(t,function(t){u[t]=!0});l.length;){var h=l.pop(),c=s[h],f=!!u[h];f&&(i.call(r,h,c.originalDeps.slice()),delete u[h]),d(c.successor,f?function(t){u[t]=!0,o(t)}:o)}d(u,function(){throw new Error("Circle dependency may exists")})}}}(Iy,function(t){var e=[];return d(Iy.getClassesByMainType(t),function(t){e=e.concat(t.prototype.dependencies||[])}),e=f(e,function(t){return On(t).main}),"dataset"!==t&&l(e,"dataset")<=0&&e.unshift("dataset"),e}),h(Iy,My);var Cy="";"undefined"!=typeof navigator&&(Cy=navigator.platform||"");var Ty={color:["#c23531","#2f4554","#61a0a8","#d48265","#91c7ae","#749f83","#ca8622","#bda29a","#6e7074","#546570","#c4ccd3"],gradientColor:["#f6efa6","#d88273","#bf444c"],textStyle:{fontFamily:Cy.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,animation:"auto",animationDuration:1e3,animationDurationUpdate:300,animationEasing:"exponentialOut",animationEasingUpdate:"cubicOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},Dy=Dn(),Ay={clearColorPalette:function(){Dy(this).colorIdx=0,Dy(this).colorNameMap={}},getColorFromPalette:function(t,e,n){var i=Dy(e=e||this),r=i.colorIdx||0,o=i.colorNameMap=i.colorNameMap||{};if(o.hasOwnProperty(t))return o[t];var a=xn(this.get("color",!0)),s=this.get("colorLayer",!0),l=null!=n&&s?jr(s,n):a;if((l=l||a)&&l.length){var u=l[r];return t&&(o[t]=u),i.colorIdx=(r+1)%l.length,u}}},ky={cartesian2d:function(t,e,n,i){var r=t.getReferringComponents("xAxis")[0],o=t.getReferringComponents("yAxis")[0];e.coordSysDims=["x","y"],n.set("x",r),n.set("y",o),qr(r)&&(i.set("x",r),e.firstCategoryDimIndex=0),qr(o)&&(i.set("y",o),e.firstCategoryDimIndex=1)},singleAxis:function(t,e,n,i){var r=t.getReferringComponents("singleAxis")[0];e.coordSysDims=["single"],n.set("single",r),qr(r)&&(i.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,n,i){var r=t.getReferringComponents("polar")[0],o=r.findAxisModel("radiusAxis"),a=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),qr(o)&&(i.set("radius",o),e.firstCategoryDimIndex=0),qr(a)&&(i.set("angle",a),e.firstCategoryDimIndex=1)},geo:function(t,e,n,i){e.coordSysDims=["lng","lat"]},parallel:function(t,e,n,i){var r=t.ecModel,o=r.getComponent("parallel",t.get("parallelIndex")),a=e.coordSysDims=o.dimensions.slice();d(o.parallelAxisIndex,function(t,o){var s=r.getComponent("parallelAxis",t),l=a[o];n.set(l,s),qr(s)&&null==e.firstCategoryDimIndex&&(i.set(l,s),e.firstCategoryDimIndex=o)})}},Py="original",Ly="arrayRows",Oy="objectRows",zy="keyedColumns",Ey="unknown",Ny="typedArray",Ry="column",By="row";$r.seriesDataToSource=function(t){return new $r({data:t,sourceFormat:M(t)?Ny:Py,fromDataset:!1})},Nn($r);var Vy=Dn(),Fy="\0_ec_inner",Hy=pr.extend({init:function(t,e,n,i){n=n||{},this.option=null,this._theme=new pr(n),this._optionManager=i},setOption:function(t,e){P(!(Fy in t),"please use chart.getOption()"),this._optionManager.setOption(t,e),this.resetOption(null)},resetOption:function(t){var e=!1,n=this._optionManager;if(!t||"recreate"===t){var i=n.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this.mergeOption(i)):co.call(this,i),e=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var r=n.getTimelineOption(this);r&&(this.mergeOption(r),e=!0)}if(!t||"recreate"===t||"media"===t){var o=n.getMediaOption(this,this._api);o.length&&d(o,function(t){this.mergeOption(t,e=!0)},this)}return e},mergeOption:function(t){var e=this.option,r=this._componentsMap,a=[];Jr(this),d(t,function(t,r){null!=t&&(Iy.hasClass(r)?r&&a.push(r):e[r]=null==e[r]?n(t):i(e[r],t,!0))}),Iy.topologicalTravel(a,Iy.getAllClassMainTypes(),function(n,i){var a=xn(t[n]),s=Mn(r.get(n),a);Sn(s),d(s,function(t,e){var i=t.option;w(i)&&(t.keyInfo.mainType=n,t.keyInfo.subType=po(n,i,t.exist))});var l=fo(r,i);e[n]=[],r.set(n,[]),d(s,function(t,i){var a=t.exist,s=t.option;if(P(w(s)||a,"Empty component definition"),s){var u=Iy.getClass(n,t.keyInfo.subType,!0);if(a&&a instanceof u)a.name=t.keyInfo.name,a.mergeOption(s,this),a.optionUpdated(s,!1);else{var h=o({dependentModels:l,componentIndex:i},t.keyInfo);o(a=new u(s,this,this,h),h),a.init(s,this,this,h),a.optionUpdated(null,!0)}}else a.mergeOption({},this),a.optionUpdated({},!1);r.get(n)[i]=a,e[n][i]=a.option},this),"series"===n&&go(this,r.get("series"))},this),this._seriesIndicesMap=N(this._seriesIndices=this._seriesIndices||[])},getOption:function(){var t=n(this.option);return d(t,function(e,n){if(Iy.hasClass(n)){for(var i=(e=xn(e)).length-1;i>=0;i--)Cn(e[i])&&e.splice(i,1);t[n]=e}}),delete t[Fy],t},getTheme:function(){return this._theme},getComponent:function(t,e){var n=this._componentsMap.get(t);if(n)return n[e||0]},queryComponents:function(t){var e=t.mainType;if(!e)return[];var n=t.index,i=t.id,r=t.name,o=this._componentsMap.get(e);if(!o||!o.length)return[];var a;if(null!=n)y(n)||(n=[n]),a=g(f(n,function(t){return o[t]}),function(t){return!!t});else if(null!=i){var s=y(i);a=g(o,function(t){return s&&l(i,t.id)>=0||!s&&t.id===i})}else if(null!=r){var u=y(r);a=g(o,function(t){return u&&l(r,t.name)>=0||!u&&t.name===r})}else a=o.slice();return mo(a,t)},findComponents:function(t){var e=t.query,n=t.mainType,i=function(t){var e=n+"Index",i=n+"Id",r=n+"Name";return!t||null==t[e]&&null==t[i]&&null==t[r]?null:{mainType:n,index:t[e],id:t[i],name:t[r]}}(e);return function(e){return t.filter?g(e,t.filter):e}(mo(i?this.queryComponents(i):this._componentsMap.get(n),t))},eachComponent:function(t,e,n){var i=this._componentsMap;"function"==typeof t?(n=e,e=t,i.each(function(t,i){d(t,function(t,r){e.call(n,i,t,r)})})):_(t)?d(i.get(t),e,n):w(t)&&d(this.findComponents(t),e,n)},getSeriesByName:function(t){return g(this._componentsMap.get("series"),function(e){return e.name===t})},getSeriesByIndex:function(t){return this._componentsMap.get("series")[t]},getSeriesByType:function(t){return g(this._componentsMap.get("series"),function(e){return e.subType===t})},getSeries:function(){return this._componentsMap.get("series").slice()},getSeriesCount:function(){return this._componentsMap.get("series").length},eachSeries:function(t,e){d(this._seriesIndices,function(n){var i=this._componentsMap.get("series")[n];t.call(e,i,n)},this)},eachRawSeries:function(t,e){d(this._componentsMap.get("series"),t,e)},eachSeriesByType:function(t,e,n){d(this._seriesIndices,function(i){var r=this._componentsMap.get("series")[i];r.subType===t&&e.call(n,r,i)},this)},eachRawSeriesByType:function(t,e,n){return d(this.getSeriesByType(t),e,n)},isSeriesFiltered:function(t){return null==this._seriesIndicesMap.get(t.componentIndex)},getCurrentSeriesIndices:function(){return(this._seriesIndices||[]).slice()},filterSeries:function(t,e){go(this,g(this._componentsMap.get("series"),t,e))},restoreData:function(t){var e=this._componentsMap;go(this,e.get("series"));var n=[];e.each(function(t,e){n.push(e)}),Iy.topologicalTravel(n,Iy.getAllClassMainTypes(),function(n,i){d(e.get(n),function(e){("series"!==n||!uo(e,t))&&e.restoreData()})})}});h(Hy,Ay);var Gy=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getModel","getOption","getViewOfComponentModel","getViewOfSeriesModel"],Wy={};yo.prototype={constructor:yo,create:function(t,e){var n=[];d(Wy,function(i,r){var o=i.create(t,e);n=n.concat(o||[])}),this._coordinateSystems=n},update:function(t,e){d(this._coordinateSystems,function(n){n.update&&n.update(t,e)})},getCoordinateSystems:function(){return this._coordinateSystems.slice()}},yo.register=function(t,e){Wy[t]=e},yo.get=function(t){return Wy[t]};var Zy=d,Uy=n,Xy=f,jy=i,Yy=/^(min|max)?(.+)$/;xo.prototype={constructor:xo,setOption:function(t,e){t&&d(xn(t.series),function(t){t&&t.data&&M(t.data)&&O(t.data)}),t=Uy(t,!0);var n=this._optionBackup,i=_o.call(this,t,e,!n);this._newBaseOption=i.baseOption,n?(So(n.baseOption,i.baseOption),i.timelineOptions.length&&(n.timelineOptions=i.timelineOptions),i.mediaList.length&&(n.mediaList=i.mediaList),i.mediaDefault&&(n.mediaDefault=i.mediaDefault)):this._optionBackup=i},mountOption:function(t){var e=this._optionBackup;return this._timelineOptions=Xy(e.timelineOptions,Uy),this._mediaList=Xy(e.mediaList,Uy),this._mediaDefault=Uy(e.mediaDefault),this._currentMediaIndices=[],Uy(t?e.baseOption:this._newBaseOption)},getTimelineOption:function(t){var e,n=this._timelineOptions;if(n.length){var i=t.getComponent("timeline");i&&(e=Uy(n[i.getCurrentIndex()],!0))}return e},getMediaOption:function(t){var e=this._api.getWidth(),n=this._api.getHeight(),i=this._mediaList,r=this._mediaDefault,o=[],a=[];if(!i.length&&!r)return a;for(var s=0,l=i.length;s<l;s++)wo(i[s].query,e,n)&&o.push(s);return!o.length&&r&&(o=[-1]),o.length&&!Mo(o,this._currentMediaIndices)&&(a=Xy(o,function(t){return Uy(-1===t?r.option:i[t].option)})),this._currentMediaIndices=o,a}};var qy=d,$y=w,Ky=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"],Qy=function(t,e){qy(Po(t.series),function(t){$y(t)&&ko(t)});var n=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","parallelAxis","radar"];e&&n.push("valueAxis","categoryAxis","logAxis","timeAxis"),qy(n,function(e){qy(Po(t[e]),function(t){t&&(Do(t,"axisLabel"),Do(t.axisPointer,"label"))})}),qy(Po(t.parallel),function(t){var e=t&&t.parallelAxisDefault;Do(e,"axisLabel"),Do(e&&e.axisPointer,"label")}),qy(Po(t.calendar),function(t){Co(t,"itemStyle"),Do(t,"dayLabel"),Do(t,"monthLabel"),Do(t,"yearLabel")}),qy(Po(t.radar),function(t){Do(t,"name")}),qy(Po(t.geo),function(t){$y(t)&&(Ao(t),qy(Po(t.regions),function(t){Ao(t)}))}),qy(Po(t.timeline),function(t){Ao(t),Co(t,"label"),Co(t,"itemStyle"),Co(t,"controlStyle",!0);var e=t.data;y(e)&&d(e,function(t){w(t)&&(Co(t,"label"),Co(t,"itemStyle"))})}),qy(Po(t.toolbox),function(t){Co(t,"iconStyle"),qy(t.feature,function(t){Co(t,"iconStyle")})}),Do(Lo(t.axisPointer),"label"),Do(Lo(t.tooltip).axisPointer,"label")},Jy=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],tx=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"],ex=function(t,e){Qy(t,e),t.series=xn(t.series),d(t.series,function(t){if(w(t)){var e=t.type;if("pie"!==e&&"gauge"!==e||null!=t.clockWise&&(t.clockwise=t.clockWise),"gauge"===e){var n=Oo(t,"pointer.color");null!=n&&zo(t,"itemStyle.normal.color",n)}Eo(t)}}),t.dataRange&&(t.visualMap=t.dataRange),d(tx,function(e){var n=t[e];n&&(y(n)||(n=[n]),d(n,function(t){Eo(t)}))})},nx=Ro.prototype;nx.pure=!1,nx.persistent=!0,nx.getSource=function(){return this._source};var ix={arrayRows_column:{pure:!0,count:function(){return Math.max(0,this._data.length-this._source.startIndex)},getItem:function(t){return this._data[t+this._source.startIndex]},appendData:Fo},arrayRows_row:{pure:!0,count:function(){var t=this._data[0];return t?Math.max(0,t.length-this._source.startIndex):0},getItem:function(t){t+=this._source.startIndex;for(var e=[],n=this._data,i=0;i<n.length;i++){var r=n[i];e.push(r?r[t]:null)}return e},appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},objectRows:{pure:!0,count:Bo,getItem:Vo,appendData:Fo},keyedColumns:{pure:!0,count:function(){var t=this._source.dimensionsDefine[0].name,e=this._data[t];return e?e.length:0},getItem:function(t){for(var e=[],n=this._source.dimensionsDefine,i=0;i<n.length;i++){var r=this._data[n[i].name];e.push(r?r[t]:null)}return e},appendData:function(t){var e=this._data;d(t,function(t,n){for(var i=e[n]||(e[n]=[]),r=0;r<(t||[]).length;r++)i.push(t[r])})}},original:{count:Bo,getItem:Vo,appendData:Fo},typedArray:{persistent:!1,pure:!0,count:function(){return this._data?this._data.length/this._dimSize:0},getItem:function(t,e){t-=this._offset,e=e||[];for(var n=this._dimSize*t,i=0;i<this._dimSize;i++)e[i]=this._data[n+i];return e},appendData:function(t){this._data=t},clean:function(){this._offset+=this.count(),this._data=null}}},rx={arrayRows:Ho,objectRows:function(t,e,n,i){return null!=n?t[i]:t},keyedColumns:Ho,original:function(t,e,n,i){var r=wn(t);return null!=n&&r instanceof Array?r[n]:r},typedArray:Ho},ox={arrayRows:Go,objectRows:function(t,e,n,i){return Wo(t[e],this._dimensionInfos[e])},keyedColumns:Go,original:function(t,e,n,i){var r=t&&(null==t.value?t:t.value);return!this._rawData.pure&&bn(t)&&(this.hasItemOption=!0),Wo(r instanceof Array?r[i]:r,this._dimensionInfos[e])},typedArray:function(t,e,n,i){return t[i]}},ax=/\{@(.+?)\}/g,sx={getDataParams:function(t,e){var n=this.getData(e),i=this.getRawValue(t,e),r=n.getRawIndex(t),o=n.getName(t),a=n.getRawDataItem(t),s=n.getItemVisual(t,"color");return{componentType:this.mainType,componentSubType:this.subType,seriesType:"series"===this.mainType?this.subType:null,seriesIndex:this.seriesIndex,seriesId:this.id,seriesName:this.name,name:o,dataIndex:r,data:a,dataType:e,value:i,color:s,marker:Rr(s),$vars:["seriesName","name","value"]}},getFormattedLabel:function(t,e,n,i,r){e=e||"normal";var o=this.getData(n),a=o.getItemModel(t),s=this.getDataParams(t,n);null!=i&&s.value instanceof Array&&(s.value=s.value[i]);var l=a.get("normal"===e?[r||"label","formatter"]:[e,r||"label","formatter"]);return"function"==typeof l?(s.status=e,l(s)):"string"==typeof l?Nr(l,s).replace(ax,function(e,n){var i=n.length;return"["===n.charAt(0)&&"]"===n.charAt(i-1)&&(n=+n.slice(1,i-1)),Zo(o,t,n)}):void 0},getRawValue:function(t,e){return Zo(this.getData(e),t)},formatTooltip:function(){}},lx=jo.prototype;lx.perform=function(t){function e(t){return!(t>=1)&&(t=1),t}var n=this._upstream,i=t&&t.skip;if(this._dirty&&n){var r=this.context;r.data=r.outputData=n.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var o;this._plan&&!i&&(o=this._plan(this.context));var a=e(this._modBy),s=this._modDataCount||0,l=e(t&&t.modBy),u=t&&t.modDataCount||0;a===l&&s===u||(o="reset");var h;(this._dirty||"reset"===o)&&(this._dirty=!1,h=qo(this,i)),this._modBy=l,this._modDataCount=u;var c=t&&t.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var d=this._dueIndex,f=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!i&&(h||d<f)){var p=this._progress;if(y(p))for(var g=0;g<p.length;g++)Yo(this,p[g],d,f,l,u);else Yo(this,p,d,f,l,u)}this._dueIndex=f;var m=null!=this._settedOutputEnd?this._settedOutputEnd:f;this._outputDueEnd=m}else this._dueIndex=this._outputDueEnd=null!=this._settedOutputEnd?this._settedOutputEnd:this._dueEnd;return this.unfinished()};var ux=function(){function t(){return i<n?i++:null}function e(){var t=i%a*r+Math.ceil(i/a),e=i>=n?null:t<o?t:i;return i++,e}var n,i,r,o,a,s={reset:function(l,u,h,c){i=l,n=u,r=h,o=c,a=Math.ceil(o/r),s.next=r>1&&o>0?e:t}};return s}();lx.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},lx.unfinished=function(){return this._progress&&this._dueIndex<this._dueEnd},lx.pipe=function(t){(this._downstream!==t||this._dirty)&&(this._downstream=t,t._upstream=this,t.dirty())},lx.dispose=function(){this._disposed||(this._upstream&&(this._upstream._downstream=null),this._downstream&&(this._downstream._upstream=null),this._dirty=!1,this._disposed=!0)},lx.getUpstream=function(){return this._upstream},lx.getDownstream=function(){return this._downstream},lx.setOutputEnd=function(t){this._outputDueEnd=this._settedOutputEnd=t};var hx=Dn(),cx=Iy.extend({type:"series.__base__",seriesIndex:0,coordinateSystem:null,defaultOption:null,legendDataProvider:null,visualColorAccessPath:"itemStyle.color",layoutMode:null,init:function(t,e,n,i){this.seriesIndex=this.componentIndex,this.dataTask=Xo({count:Qo,reset:Jo}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n),to(this);var r=this.getInitialData(t,n);ea(r,this),this.dataTask.context.data=r,hx(this).dataBeforeProcessed=r,$o(this)},mergeDefaultAndTheme:function(t,e){var n=this.layoutMode,r=n?Ur(t):{},o=this.subType;Iy.hasClass(o)&&(o+="Series"),i(t,e.getTheme().get(this.subType)),i(t,this.getDefaultOption()),_n(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&Zr(t,r,n)},mergeOption:function(t,e){t=i(this.option,t,!0),this.fillDataTextStyle(t.data);var n=this.layoutMode;n&&Zr(this.option,t,n),to(this);var r=this.getInitialData(t,e);ea(r,this),this.dataTask.dirty(),this.dataTask.context.data=r,hx(this).dataBeforeProcessed=r,$o(this)},fillDataTextStyle:function(t){if(t&&!M(t))for(var e=["show"],n=0;n<t.length;n++)t[n]&&t[n].label&&_n(t[n],"label",e)},getInitialData:function(){},appendData:function(t){this.getRawData().appendData(t.data)},getData:function(t){var e=ia(this);if(e){var n=e.context.data;return null==t?n:n.getLinkedData(t)}return hx(this).data},setData:function(t){var e=ia(this);if(e){var n=e.context;n.data!==t&&e.modifyOutputEnd&&e.setOutputEnd(t.count()),n.outputData=t,e!==this.dataTask&&(n.data=t)}hx(this).data=t},getSource:function(){return Qr(this)},getRawData:function(){return hx(this).dataBeforeProcessed},getBaseAxis:function(){var t=this.coordinateSystem;return t&&t.getBaseAxis&&t.getBaseAxis()},formatTooltip:function(t,e,n){function i(t){return Er(Or(t))}var r=this.getData(),o=r.mapDimension("defaultedTooltip",!0),a=o.length,s=this.getRawValue(t),l=y(s),u=r.getItemVisual(t,"color");w(u)&&u.colorStops&&(u=(u.colorStops[0]||{}).color),u=u||"transparent";var h=a>1||l&&!a?function(n){function i(t,n){var i=r.getDimensionInfo(n);if(i&&!1!==i.otherDims.tooltip){var o=i.type,l=Rr({color:u,type:"subItem"}),h=(a?l+Er(i.displayName||"-")+": ":"")+Er("ordinal"===o?t+"":"time"===o?e?"":Vr("yyyy/MM/dd hh:mm:ss",t):Or(t));h&&s.push(h)}}var a=p(n,function(t,e,n){var i=r.getDimensionInfo(n);return t|=i&&!1!==i.tooltip&&null!=i.displayName},0),s=[];return o.length?d(o,function(e){i(Zo(r,t,e),e)}):d(n,i),(a?"<br/>":"")+s.join(a?"<br/>":", ")}(s):i(a?Zo(r,t,o[0]):l?s[0]:s),c=Rr(u),f=r.getName(t),g=this.name;return In(this)||(g=""),g=g?Er(g)+(e?": ":"<br/>"):"",e?c+g+h:g+c+(f?Er(f)+": "+h:h)},isAnimationEnabled:function(){if(bp.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),t},restoreData:function(){this.dataTask.dirty()},getColorFromPalette:function(t,e,n){var i=this.ecModel,r=Ay.getColorFromPalette.call(this,t,e,n);return r||(r=i.getColorFromPalette(t,e,n)),r},coordDimToDataDim:function(t){return this.getRawData().mapDimension(t,!0)},getProgressive:function(){return this.get("progressive")},getProgressiveThreshold:function(){return this.get("progressiveThreshold")},getAxisTooltipData:null,getTooltipPosition:null,pipeTask:null,preventIncremental:null,pipelineContext:null});h(cx,sx),h(cx,Ay);var dx=function(){this.group=new Sg,this.uid=vr("viewComponent")};dx.prototype={constructor:dx,init:function(t,e){},render:function(t,e,n,i){},dispose:function(){}};var fx=dx.prototype;fx.updateView=fx.updateLayout=fx.updateVisual=function(t,e,n,i){},En(dx),Vn(dx,{registerWhenExtend:!0});var px=function(){var t=Dn();return function(e){var n=t(e),i=e.pipelineContext,r=n.large,o=n.progressiveRender,a=n.large=i.large,s=n.progressiveRender=i.progressiveRender;return!!(r^a||o^s)&&"reset"}},gx=Dn(),mx=px();ra.prototype={type:"chart",init:function(t,e){},render:function(t,e,n,i){},highlight:function(t,e,n,i){aa(t.getData(),i,"emphasis")},downplay:function(t,e,n,i){aa(t.getData(),i,"normal")},remove:function(t,e){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null};var vx=ra.prototype;vx.updateView=vx.updateLayout=vx.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},En(ra),Vn(ra,{registerWhenExtend:!0}),ra.markUpdateMethod=function(t,e){gx(t).updateMethod=e};var yx={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},xx="\0__throttleOriginMethod",_x="\0__throttleRate",bx="\0__throttleType",Mx={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),i=(t.visualColorAccessPath||"itemStyle.color").split("."),r=t.get(i)||t.getColorFromPalette(t.name,null,e.getSeriesCount());if(n.setVisual("color",r),!e.isSeriesFiltered(t)){"function"!=typeof r||r instanceof Xv||n.each(function(e){n.setItemVisual(e,"color",r(t.getDataParams(e)))});return{dataEach:n.hasItemOption?function(t,e){var n=t.getItemModel(e).get(i,!0);null!=n&&t.setItemVisual(e,"color",n)}:null}}}},Sx={toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}},Ix=function(t,e){function n(t,e){if("string"!=typeof t)return t;var n=t;return d(e,function(t,e){n=n.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)}),n}function i(t){var e=o.get(t);if(null==e){for(var n=t.split("."),i=Sx.aria,r=0;r<n.length;++r)i=i[n[r]];return i}return e}function r(t){return Sx.series.typeNames[t]||"自定义图"}var o=e.getModel("aria");if(o.get("show"))if(o.get("description"))t.setAttribute("aria-label",o.get("description"));else{var a=0;e.eachSeries(function(t,e){++a},this);var s,l=o.get("data.maxCount")||10,u=o.get("series.maxCount")||10,h=Math.min(a,u);if(!(a<1)){var c=function(){var t=e.getModel("title").option;return t&&t.length&&(t=t[0]),t&&t.text}();s=c?n(i("general.withTitle"),{title:c}):i("general.withoutTitle");var f=[];s+=n(i(a>1?"series.multiple.prefix":"series.single.prefix"),{seriesCount:a}),e.eachSeries(function(t,e){if(e<h){var o,s=t.get("name"),u="series."+(a>1?"multiple":"single")+".";o=n(o=i(s?u+"withName":u+"withoutName"),{seriesId:t.seriesIndex,seriesName:t.get("name"),seriesType:r(t.subType)});var c=t.getData();window.data=c,c.count()>l?o+=n(i("data.partialData"),{displayCnt:l}):o+=i("data.allData");for(var d=[],p=0;p<c.count();p++)if(p<l){var g=c.getName(p),m=Zo(c,p);d.push(n(i(g?"data.withName":"data.withoutName"),{name:g,value:m}))}o+=d.join(i("data.separator.middle"))+i("data.separator.end"),f.push(o)}}),s+=f.join(i("series.multiple.separator.middle"))+i("series.multiple.separator.end"),t.setAttribute("aria-label",s)}}},Cx=Math.PI,Tx=da.prototype;Tx.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each(function(t){var e=t.overallTask;e&&e.dirty()})},Tx.getPerformArgs=function(t,e){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,r=!e&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex?n.step:null,o=i&&i.modDataCount;return{step:r,modBy:null!=o?Math.ceil(o/r):null,modDataCount:o}}},Tx.getPipeline=function(t){return this._pipelineMap.get(t)},Tx.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:a,large:o}},Tx.restorePipelines=function(t){var e=this,n=e._pipelineMap=N();t.eachSeries(function(t){var i=t.getProgressive(),r=t.uid;n.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),Sa(e,t,t.dataTask)})},Tx.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.ecInstance.getModel(),n=this.api;d(this._allHandlers,function(i){var r=t.get(i.uid)||t.set(i.uid,[]);i.reset&&pa(this,i,r,e,n),i.overallReset&&ga(this,i,r,e,n)},this)},Tx.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,Sa(this,e,r)},Tx.performDataProcessorTasks=function(t,e){fa(this,this._dataProcessorHandlers,t,e,{block:!0})},Tx.performVisualTasks=function(t,e,n){fa(this,this._visualHandlers,t,e,n)},Tx.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e|=t.dataTask.perform()}),this.unfinished|=e},Tx.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})};var Dx=Tx.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},Ax=ba(0);da.wrapStageHandler=function(t,e){return x(t)&&(t={overallReset:t,seriesType:Ia(t)}),t.uid=vr("stageHandler"),e&&(t.visualType=e),t};var kx,Px={},Lx={};Ca(Px,Hy),Ca(Lx,vo),Px.eachSeriesByType=Px.eachRawSeriesByType=function(t){kx=t},Px.eachComponent=function(t){"series"===t.mainType&&t.subType&&(kx=t.subType)};var Ox=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],zx={color:Ox,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],Ox]},Ex=["#dd6b66","#759aa0","#e69d87","#8dc1a9","#ea7e53","#eedd78","#73a373","#73b9bc","#7289ab","#91ca8c","#f49f42"],Nx={color:Ex,backgroundColor:"#333",tooltip:{axisPointer:{lineStyle:{color:"#eee"},crossStyle:{color:"#eee"}}},legend:{textStyle:{color:"#eee"}},textStyle:{color:"#eee"},title:{textStyle:{color:"#eee"}},toolbox:{iconStyle:{normal:{borderColor:"#eee"}}},dataZoom:{textStyle:{color:"#eee"}},visualMap:{textStyle:{color:"#eee"}},timeline:{lineStyle:{color:"#eee"},itemStyle:{normal:{color:Ex[1]}},label:{normal:{textStyle:{color:"#eee"}}},controlStyle:{normal:{color:"#eee",borderColor:"#eee"}}},timeAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},logAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},valueAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},categoryAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},line:{symbol:"circle"},graph:{color:Ex},gauge:{title:{textStyle:{color:"#eee"}}},candlestick:{itemStyle:{normal:{color:"#FD1050",color0:"#0CF49B",borderColor:"#FD1050",borderColor0:"#0CF49B"}}}};Nx.categoryAxis.splitLine.show=!1,Iy.extend({type:"dataset",defaultOption:{seriesLayoutBy:Ry,sourceHeader:null,dimensions:null,source:null},optionUpdated:function(){Kr(this)}}),dx.extend({type:"dataset"});var Rx=P,Bx=d,Vx=x,Fx=w,Hx=Iy.parseClassType,Gx={zrender:"4.0.4"},Wx=1e3,Zx=1e3,Ux=3e3,Xx={PROCESSOR:{FILTER:Wx,STATISTIC:5e3},VISUAL:{LAYOUT:Zx,GLOBAL:2e3,CHART:Ux,COMPONENT:4e3,BRUSH:5e3}},jx="__flagInMainProcess",Yx="__optionUpdated",qx=/^[a-zA-Z0-9_]+$/;Da.prototype.on=Ta("on"),Da.prototype.off=Ta("off"),Da.prototype.one=Ta("one"),h(Da,Zp);var $x=Aa.prototype;$x._onframe=function(){if(!this._disposed){var t=this._scheduler;if(this[Yx]){var e=this[Yx].silent;this[jx]=!0,Pa(this),Kx.update.call(this),this[jx]=!1,this[Yx]=!1,Ea.call(this,e),Na.call(this,e)}else if(t.unfinished){var n=1,i=this._model;this._api;t.unfinished=!1;do{var r=+new Date;t.performSeriesTasks(i),t.performDataProcessorTasks(i),Oa(this,i),t.performVisualTasks(i),Ga(this,this._model,0,"remain"),n-=+new Date-r}while(n>0&&t.unfinished);t.unfinished||this._zr.flush()}}},$x.getDom=function(){return this._dom},$x.getZr=function(){return this._zr},$x.setOption=function(t,e,n){var i;if(Fx(e)&&(n=e.lazyUpdate,i=e.silent,e=e.notMerge),this[jx]=!0,!this._model||e){var r=new xo(this._api),o=this._theme,a=this._model=new Hy(null,null,o,r);a.scheduler=this._scheduler,a.init(null,null,o,r)}this._model.setOption(t,n_),n?(this[Yx]={silent:i},this[jx]=!1):(Pa(this),Kx.update.call(this),this._zr.flush(),this[Yx]=!1,this[jx]=!1,Ea.call(this,i),Na.call(this,i))},$x.setTheme=function(){console.log("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},$x.getModel=function(){return this._model},$x.getOption=function(){return this._model&&this._model.getOption()},$x.getWidth=function(){return this._zr.getWidth()},$x.getHeight=function(){return this._zr.getHeight()},$x.getDevicePixelRatio=function(){return this._zr.painter.dpr||window.devicePixelRatio||1},$x.getRenderedCanvas=function(t){if(bp.canvasSupported)return(t=t||{}).pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor"),this._zr.painter.getRenderedCanvas(t)},$x.getSvgDataUrl=function(){if(bp.svgSupported){var t=this._zr;return d(t.storage.getDisplayList(),function(t){t.stopAnimation(!0)}),t.painter.pathToDataUrl()}},$x.getDataURL=function(t){var e=(t=t||{}).excludeComponents,n=this._model,i=[],r=this;Bx(e,function(t){n.eachComponent({mainType:t},function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(i.push(e),e.group.ignore=!0)})});var o="svg"===this._zr.painter.getType()?this.getSvgDataUrl():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return Bx(i,function(t){t.group.ignore=!1}),o},$x.getConnectedDataURL=function(t){if(bp.canvasSupported){var e=this.group,i=Math.min,r=Math.max;if(l_[e]){var o=1/0,a=1/0,s=-1/0,l=-1/0,u=[],h=t&&t.pixelRatio||1;d(s_,function(h,c){if(h.group===e){var d=h.getRenderedCanvas(n(t)),f=h.getDom().getBoundingClientRect();o=i(f.left,o),a=i(f.top,a),s=r(f.right,s),l=r(f.bottom,l),u.push({dom:d,left:f.left,top:f.top})}});var c=(s*=h)-(o*=h),f=(l*=h)-(a*=h),p=Op();p.width=c,p.height=f;var g=mn(p);return Bx(u,function(t){var e=new je({style:{x:t.left*h-o,y:t.top*h-a,image:t.dom}});g.add(e)}),g.refreshImmediately(),p.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},$x.convertToPixel=v(ka,"convertToPixel"),$x.convertFromPixel=v(ka,"convertFromPixel"),$x.containPixel=function(t,e){var n;return t=An(this._model,t),d(t,function(t,i){i.indexOf("Models")>=0&&d(t,function(t){var r=t.coordinateSystem;if(r&&r.containPoint)n|=!!r.containPoint(e);else if("seriesModels"===i){var o=this._chartsMap[t.__viewId];o&&o.containPoint&&(n|=o.containPoint(e,t))}},this)},this),!!n},$x.getVisual=function(t,e){var n=(t=An(this._model,t,{defaultMainType:"series"})).seriesModel.getData(),i=t.hasOwnProperty("dataIndexInside")?t.dataIndexInside:t.hasOwnProperty("dataIndex")?n.indexOfRawIndex(t.dataIndex):null;return null!=i?n.getItemVisual(i,e):n.getVisual(e)},$x.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},$x.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]};var Kx={prepareAndUpdate:function(t){Pa(this),Kx.update.call(this,t)},update:function(t){var e=this._model,n=this._api,i=this._zr,r=this._coordSysMgr,o=this._scheduler;if(e){o.restoreData(e,t),o.performSeriesTasks(e),r.create(e,n),o.performDataProcessorTasks(e,t),Oa(this,e),r.update(e,n),Va(e),o.performVisualTasks(e,t),Fa(this,e,n,t);var a=e.get("backgroundColor")||"transparent";if(bp.canvasSupported)i.setBackgroundColor(a);else{var s=St(a);a=Lt(s,"rgb"),0===s[3]&&(a="transparent")}Wa(e,n)}},updateTransform:function(t){var e=this._model,n=this,i=this._api;if(e){var r=[];e.eachComponent(function(o,a){var s=n.getViewOfComponentModel(a);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(a,e,i,t);l&&l.update&&r.push(s)}else r.push(s)});var o=N();e.eachSeries(function(r){var a=n._chartsMap[r.__viewId];if(a.updateTransform){var s=a.updateTransform(r,e,i,t);s&&s.update&&o.set(r.uid,1)}else o.set(r.uid,1)}),Va(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0,dirtyMap:o}),Ga(n,e,0,t,o),Wa(e,this._api)}},updateView:function(t){var e=this._model;e&&(ra.markUpdateMethod(t,"updateView"),Va(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),Fa(this,this._model,this._api,t),Wa(e,this._api))},updateVisual:function(t){Kx.update.call(this,t)},updateLayout:function(t){Kx.update.call(this,t)}};$x.resize=function(t){this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var n=e.resetOption("media"),i=t&&t.silent;this[jx]=!0,n&&Pa(this),Kx.update.call(this),this[jx]=!1,Ea.call(this,i),Na.call(this,i)}},$x.showLoading=function(t,e){if(Fx(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),a_[t]){var n=a_[t](this._api,e),i=this._zr;this._loadingFX=n,i.add(n)}},$x.hideLoading=function(){this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},$x.makeActionFromEvent=function(t){var e=o({},t);return e.type=t_[t.type],e},$x.dispatchAction=function(t,e){Fx(e)||(e={silent:!!e}),Jx[t.type]&&this._model&&(this[jx]?this._pendingActions.push(t):(za.call(this,t,e.silent),e.flush?this._zr.flush(!0):!1!==e.flush&&bp.browser.weChat&&this._throttledZrFlush(),Ea.call(this,e.silent),Na.call(this,e.silent)))},$x.appendData=function(t){var e=t.seriesIndex;this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0},$x.on=Ta("on"),$x.off=Ta("off"),$x.one=Ta("one");var Qx=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];$x._initEvents=function(){Bx(Qx,function(t){this._zr.on(t,function(e){var n,i=this.getModel(),r=e.target;if("globalout"===t)n={};else if(r&&null!=r.dataIndex){var a=r.dataModel||i.getSeriesByIndex(r.seriesIndex);n=a&&a.getDataParams(r.dataIndex,r.dataType)||{}}else r&&r.eventData&&(n=o({},r.eventData));n&&(n.event=e,n.type=t,this.trigger(t,n))},this)},this),Bx(t_,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},$x.isDisposed=function(){return this._disposed},$x.clear=function(){this.setOption({series:[]},!0)},$x.dispose=function(){if(!this._disposed){this._disposed=!0,Pn(this.getDom(),c_,"");var t=this._api,e=this._model;Bx(this._componentsViews,function(n){n.dispose(e,t)}),Bx(this._chartsViews,function(n){n.dispose(e,t)}),this._zr.dispose(),delete s_[this.id]}},h(Aa,Zp);var Jx={},t_={},e_=[],n_=[],i_=[],r_=[],o_={},a_={},s_={},l_={},u_=new Date-0,h_=new Date-0,c_="_echarts_instance_",d_={},f_=qa;ns(2e3,Mx),Qa(ex),Ja(5e3,function(t){var e=N();t.eachSeries(function(t){var n=t.get("stack");if(n){var i=e.get(n)||e.set(n,[]),r=t.getData(),o={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:t};if(!o.stackedDimension||!o.isStackedByIndex&&!o.stackedByDimension)return;i.length&&r.setCalculationInfo("stackedOnSeries",i[i.length-1].seriesModel),i.push(o)}}),e.each(No)}),rs("default",function(t,e){a(e=e||{},{text:"loading",color:"#c23531",textColor:"#000",maskColor:"rgba(255, 255, 255, 0.8)",zlevel:0});var n=new Fv({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4}),i=new Zv({shape:{startAngle:-Cx/2,endAngle:-Cx/2+.1,r:10},style:{stroke:e.color,lineCap:"round",lineWidth:5},zlevel:e.zlevel,z:10001}),r=new Fv({style:{fill:"none",text:e.text,textPosition:"right",textDistance:10,textFill:e.textColor},zlevel:e.zlevel,z:10001});i.animateShape(!0).when(1e3,{endAngle:3*Cx/2}).start("circularInOut"),i.animateShape(!0).when(1e3,{startAngle:3*Cx/2}).delay(300).start("circularInOut");var o=new Sg;return o.add(i),o.add(r),o.add(n),o.resize=function(){var e=t.getWidth()/2,o=t.getHeight()/2;i.setShape({cx:e,cy:o});var a=i.shape.r;r.setShape({x:e-a,y:o-a,width:2*a,height:2*a}),n.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},o.resize(),o}),ts({type:"highlight",event:"highlight",update:"highlight"},R),ts({type:"downplay",event:"downplay",update:"downplay"},R),Ka("light",zx),Ka("dark",Nx);var p_={};hs.prototype={constructor:hs,add:function(t){return this._add=t,this},update:function(t){return this._update=t,this},remove:function(t){return this._remove=t,this},execute:function(){var t=this._old,e=this._new,n={},i=[],r=[];for(cs(t,{},i,"_oldKeyGetter",this),cs(e,n,r,"_newKeyGetter",this),o=0;o<t.length;o++)null!=(s=n[a=i[o]])?((u=s.length)?(1===u&&(n[a]=null),s=s.unshift()):n[a]=null,this._update&&this._update(s,o)):this._remove&&this._remove(o);for(var o=0;o<r.length;o++){var a=r[o];if(n.hasOwnProperty(a)){var s=n[a];if(null==s)continue;if(s.length)for(var l=0,u=s.length;l<u;l++)this._add&&this._add(s[l]);else this._add&&this._add(s)}}}};var g_=N(["tooltip","label","itemName","itemId","seriesName"]),m_=w,v_="e\0\0",y_={float:"undefined"==typeof Float64Array?Array:Float64Array,int:"undefined"==typeof Int32Array?Array:Int32Array,ordinal:Array,number:Array,time:Array},x_="undefined"==typeof Uint32Array?Array:Uint32Array,__="undefined"==typeof Uint16Array?Array:Uint16Array,w_=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_rawData","_chunkSize","_chunkCount","_dimValueGetter","_count","_rawCount","_nameDimIdx","_idDimIdx"],b_=["_extent","_approximateExtent","_rawExtent"],M_=function(t,e){t=t||["x","y"];for(var n={},i=[],r={},o=0;o<t.length;o++){var a=t[o];_(a)&&(a={name:a});var s=a.name;a.type=a.type||"float",a.coordDim||(a.coordDim=s,a.coordDimIndex=0),a.otherDims=a.otherDims||{},i.push(s),n[s]=a,a.index=o,a.createInvertedIndices&&(r[s]=[])}this.dimensions=i,this._dimensionInfos=n,this.hostModel=e,this.dataType,this._indices=null,this._count=0,this._rawCount=0,this._storage={},this._nameList=[],this._idList=[],this._optionModels=[],this._visual={},this._layout={},this._itemVisuals=[],this.hasItemVisual={},this._itemLayouts=[],this._graphicEls=[],this._chunkSize=1e5,this._chunkCount=0,this._rawData,this._rawExtent={},this._extent={},this._approximateExtent={},this._dimensionsSummary=ds(this),this._invertedIndicesMap=r,this._calculationInfo={}},S_=M_.prototype;S_.type="list",S_.hasItemOption=!0,S_.getDimension=function(t){return isNaN(t)||(t=this.dimensions[t]||t),t},S_.getDimensionInfo=function(t){return this._dimensionInfos[this.getDimension(t)]},S_.getDimensionsOnCoord=function(){return this._dimensionsSummary.dataDimsOnCoord.slice()},S_.mapDimension=function(t,e){var n=this._dimensionsSummary;if(null==e)return n.encodeFirstDimNotExtra[t];var i=n.encode[t];return!0===e?(i||[]).slice():i&&i[e]},S_.initData=function(t,e,n){($r.isInstance(t)||c(t))&&(t=new Ro(t,this.dimensions.length)),this._rawData=t,this._storage={},this._indices=null,this._nameList=e||[],this._idList=[],this._nameRepeatCount={},n||(this.hasItemOption=!1),this.defaultDimValueGetter=ox[this._rawData.getSource().sourceFormat],this._dimValueGetter=n=n||this.defaultDimValueGetter,this._rawExtent={},this._initDataFromProvider(0,t.count()),t.pure&&(this.hasItemOption=!1)},S_.getProvider=function(){return this._rawData},S_.appendData=function(t){var e=this._rawData,n=this.count();e.appendData(t);var i=e.count();e.persistent||(i+=n),this._initDataFromProvider(n,i)},S_._initDataFromProvider=function(t,e){if(!(t>=e)){for(var n,i=this._chunkSize,r=this._rawData,o=this._storage,a=this.dimensions,s=a.length,l=this._dimensionInfos,u=this._nameList,h=this._idList,c=this._rawExtent,d=this._nameRepeatCount={},f=this._chunkCount,p=f-1,g=0;g<s;g++){c[C=a[g]]||(c[C]=[1/0,-1/0]);var m=l[C];0===m.otherDims.itemName&&(n=this._nameDimIdx=g),0===m.otherDims.itemId&&(this._idDimIdx=g);var v=y_[m.type];o[C]||(o[C]=[]);var y=o[C][p];if(y&&y.length<i){for(var x=new v(Math.min(e-p*i,i)),_=0;_<y.length;_++)x[_]=y[_];o[C][p]=x}for(I=f*i;I<e;I+=i)o[C].push(new v(Math.min(e-I,i)));this._chunkCount=o[C].length}for(var w=new Array(s),b=t;b<e;b++){w=r.getItem(b,w);for(var M=Math.floor(b/i),S=b%i,I=0;I<s;I++){var C=a[I],T=o[C][M],D=this._dimValueGetter(w,C,b,I);T[S]=D;var A=c[C];D<A[0]&&(A[0]=D),D>A[1]&&(A[1]=D)}if(!r.pure){var k=u[b];if(w&&null==k)if(null!=w.name)u[b]=k=w.name;else if(null!=n){var P=a[n],L=o[P][M];if(L){k=L[S];var O=l[P].ordinalMeta;O&&O.categories.length&&(k=O.categories[k])}}var z=null==w?null:w.id;null==z&&null!=k&&(d[k]=d[k]||0,z=k,d[k]>0&&(z+="__ec__"+d[k]),d[k]++),null!=z&&(h[b]=z)}}!r.persistent&&r.clean&&r.clean(),this._rawCount=this._count=e,this._extent={},ys(this)}},S_.count=function(){return this._count},S_.getIndices=function(){var t=this._indices;if(t){var e=t.constructor,n=this._count;if(e===Array){i=new e(n);for(r=0;r<n;r++)i[r]=t[r]}else i=new e(t.buffer,0,n)}else for(var i=new(e=gs(this))(this.count()),r=0;r<i.length;r++)i[r]=r;return i},S_.get=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storage;if(!n[t])return NaN;e=this.getRawIndex(e);var i=Math.floor(e/this._chunkSize),r=e%this._chunkSize;return n[t][i][r]},S_.getByRawIndex=function(t,e){if(!(e>=0&&e<this._rawCount))return NaN;var n=this._storage[t];if(!n)return NaN;var i=Math.floor(e/this._chunkSize),r=e%this._chunkSize;return n[i][r]},S_._getFast=function(t,e){var n=Math.floor(e/this._chunkSize),i=e%this._chunkSize;return this._storage[t][n][i]},S_.getValues=function(t,e){var n=[];y(t)||(e=t,t=this.dimensions);for(var i=0,r=t.length;i<r;i++)n.push(this.get(t[i],e));return n},S_.hasValue=function(t){for(var e=this._dimensionsSummary.dataDimsOnCoord,n=this._dimensionInfos,i=0,r=e.length;i<r;i++)if("ordinal"!==n[e[i]].type&&isNaN(this.get(e[i],t)))return!1;return!0},S_.getDataExtent=function(t){t=this.getDimension(t);var e=[1/0,-1/0];if(!this._storage[t])return e;var n,i=this.count();if(!this._indices)return this._rawExtent[t].slice();if(n=this._extent[t])return n.slice();for(var r=(n=e)[0],o=n[1],a=0;a<i;a++){var s=this._getFast(t,this.getRawIndex(a));s<r&&(r=s),s>o&&(o=s)}return n=[r,o],this._extent[t]=n,n},S_.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},S_.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},S_.getCalculationInfo=function(t){return this._calculationInfo[t]},S_.setCalculationInfo=function(t,e){m_(t)?o(this._calculationInfo,t):this._calculationInfo[t]=e},S_.getSum=function(t){var e=0;if(this._storage[t])for(var n=0,i=this.count();n<i;n++){var r=this.get(t,n);isNaN(r)||(e+=r)}return e},S_.getMedian=function(t){var e=[];this.each(t,function(t,n){isNaN(t)||e.push(t)});var n=[].concat(e).sort(function(t,e){return t-e}),i=this.count();return 0===i?0:i%2==1?n[(i-1)/2]:(n[i/2]+n[i/2-1])/2},S_.rawIndexOf=function(t,e){var n=(t&&this._invertedIndicesMap[t])[e];return null==n||isNaN(n)?-1:n},S_.indexOfName=function(t){for(var e=0,n=this.count();e<n;e++)if(this.getName(e)===t)return e;return-1},S_.indexOfRawIndex=function(t){if(!this._indices)return t;if(t>=this._rawCount||t<0)return-1;var e=this._indices,n=e[t];if(null!=n&&n<this._count&&n===t)return t;for(var i=0,r=this._count-1;i<=r;){var o=(i+r)/2|0;if(e[o]<t)i=o+1;else{if(!(e[o]>t))return o;r=o-1}}return-1},S_.indicesOfNearest=function(t,e,n){var i=[];if(!this._storage[t])return i;null==n&&(n=1/0);for(var r=Number.MAX_VALUE,o=-1,a=0,s=this.count();a<s;a++){var l=e-this.get(t,a),u=Math.abs(l);l<=n&&u<=r&&((u<r||l>=0&&o<0)&&(r=u,o=l,i.length=0),i.push(a))}return i},S_.getRawIndex=_s,S_.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],n=0;n<this.dimensions.length;n++){var i=this.dimensions[n];e.push(this.get(i,t))}return e},S_.getName=function(t){var e=this.getRawIndex(t);return this._nameList[e]||xs(this,this._nameDimIdx,e)||""},S_.getId=function(t){return bs(this,this.getRawIndex(t))},S_.each=function(t,e,n,i){if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]),n=n||i||this;for(var r=(t=f(Ms(t),this.getDimension,this)).length,o=0;o<this.count();o++)switch(r){case 0:e.call(n,o);break;case 1:e.call(n,this.get(t[0],o),o);break;case 2:e.call(n,this.get(t[0],o),this.get(t[1],o),o);break;default:for(var a=0,s=[];a<r;a++)s[a]=this.get(t[a],o);s[a]=o,e.apply(n,s)}}},S_.filterSelf=function(t,e,n,i){if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]),n=n||i||this,t=f(Ms(t),this.getDimension,this);for(var r=this.count(),o=new(gs(this))(r),a=[],s=t.length,l=0,u=t[0],h=0;h<r;h++){var c,d=this.getRawIndex(h);if(0===s)c=e.call(n,h);else if(1===s){var p=this._getFast(u,d);c=e.call(n,p,h)}else{for(var g=0;g<s;g++)a[g]=this._getFast(u,d);a[g]=h,c=e.apply(n,a)}c&&(o[l++]=d)}return l<r&&(this._indices=o),this._count=l,this._extent={},this.getRawIndex=this._indices?ws:_s,this}},S_.selectRange=function(t){if(this._count){var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(n);var i=e.length;if(i){var r=this.count(),o=new(gs(this))(r),a=0,s=e[0],l=t[s][0],u=t[s][1],h=!1;if(!this._indices){var c=0;if(1===i){for(var d=this._storage[e[0]],f=0;f<this._chunkCount;f++)for(var p=d[f],g=Math.min(this._count-f*this._chunkSize,this._chunkSize),m=0;m<g;m++)((w=p[m])>=l&&w<=u||isNaN(w))&&(o[a++]=c),c++;h=!0}else if(2===i){for(var d=this._storage[s],v=this._storage[e[1]],y=t[e[1]][0],x=t[e[1]][1],f=0;f<this._chunkCount;f++)for(var p=d[f],_=v[f],g=Math.min(this._count-f*this._chunkSize,this._chunkSize),m=0;m<g;m++){var w=p[m],b=_[m];(w>=l&&w<=u||isNaN(w))&&(b>=y&&b<=x||isNaN(b))&&(o[a++]=c),c++}h=!0}}if(!h)if(1===i)for(m=0;m<r;m++){S=this.getRawIndex(m);((w=this._getFast(s,S))>=l&&w<=u||isNaN(w))&&(o[a++]=S)}else for(m=0;m<r;m++){for(var M=!0,S=this.getRawIndex(m),f=0;f<i;f++){var I=e[f];((w=this._getFast(n,S))<t[I][0]||w>t[I][1])&&(M=!1)}M&&(o[a++]=this.getRawIndex(m))}return a<r&&(this._indices=o),this._count=a,this._extent={},this.getRawIndex=this._indices?ws:_s,this}}},S_.mapArray=function(t,e,n,i){"function"==typeof t&&(i=n,n=e,e=t,t=[]),n=n||i||this;var r=[];return this.each(t,function(){r.push(e&&e.apply(this,arguments))},n),r},S_.map=function(t,e,n,i){n=n||i||this;var r=Ss(this,t=f(Ms(t),this.getDimension,this));r._indices=this._indices,r.getRawIndex=r._indices?ws:_s;for(var o=r._storage,a=[],s=this._chunkSize,l=t.length,u=this.count(),h=[],c=r._rawExtent,d=0;d<u;d++){for(var p=0;p<l;p++)h[p]=this.get(t[p],d);h[l]=d;var g=e&&e.apply(n,h);if(null!=g){"object"!=typeof g&&(a[0]=g,g=a);for(var m=this.getRawIndex(d),v=Math.floor(m/s),y=m%s,x=0;x<g.length;x++){var _=t[x],w=g[x],b=c[_],M=o[_];M&&(M[v][y]=w),w<b[0]&&(b[0]=w),w>b[1]&&(b[1]=w)}}}return r},S_.downSample=function(t,e,n,i){for(var r=Ss(this,[t]),o=r._storage,a=[],s=Math.floor(1/e),l=o[t],u=this.count(),h=this._chunkSize,c=r._rawExtent[t],d=new(gs(this))(u),f=0,p=0;p<u;p+=s){s>u-p&&(s=u-p,a.length=s);for(var g=0;g<s;g++){var m=this.getRawIndex(p+g),v=Math.floor(m/h),y=m%h;a[g]=l[v][y]}var x=n(a),_=this.getRawIndex(Math.min(p+i(a,x)||0,u-1)),w=_%h;l[Math.floor(_/h)][w]=x,x<c[0]&&(c[0]=x),x>c[1]&&(c[1]=x),d[f++]=_}return r._count=f,r._indices=d,r.getRawIndex=ws,r},S_.getItemModel=function(t){var e=this.hostModel;return new pr(this.getRawDataItem(t),e,e&&e.ecModel)},S_.diff=function(t){var e=this;return new hs(t?t.getIndices():[],this.getIndices(),function(e){return bs(t,e)},function(t){return bs(e,t)})},S_.getVisual=function(t){var e=this._visual;return e&&e[t]},S_.setVisual=function(t,e){if(m_(t))for(var n in t)t.hasOwnProperty(n)&&this.setVisual(n,t[n]);else this._visual=this._visual||{},this._visual[t]=e},S_.setLayout=function(t,e){if(m_(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},S_.getLayout=function(t){return this._layout[t]},S_.getItemLayout=function(t){return this._itemLayouts[t]},S_.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?o(this._itemLayouts[t]||{},e):e},S_.clearItemLayouts=function(){this._itemLayouts.length=0},S_.getItemVisual=function(t,e,n){var i=this._itemVisuals[t],r=i&&i[e];return null!=r||n?r:this.getVisual(e)},S_.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{},r=this.hasItemVisual;if(this._itemVisuals[t]=i,m_(e))for(var o in e)e.hasOwnProperty(o)&&(i[o]=e[o],r[o]=!0);else i[e]=n,r[e]=!0},S_.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};var I_=function(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType};S_.setItemGraphicEl=function(t,e){var n=this.hostModel;e&&(e.dataIndex=t,e.dataType=this.dataType,e.seriesIndex=n&&n.seriesIndex,"group"===e.type&&e.traverse(I_,e)),this._graphicEls[t]=e},S_.getItemGraphicEl=function(t){return this._graphicEls[t]},S_.eachItemGraphicEl=function(t,e){d(this._graphicEls,function(n,i){n&&t&&t.call(e,n,i)})},S_.cloneShallow=function(t){if(!t){var e=f(this.dimensions,this.getDimensionInfo,this);t=new M_(e,this.hostModel)}if(t._storage=this._storage,vs(t,this),this._indices){var n=this._indices.constructor;t._indices=new n(this._indices)}else t._indices=null;return t.getRawIndex=t._indices?ws:_s,t},S_.wrapMethod=function(t,e){var n=this[t];"function"==typeof n&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(A(arguments)))})},S_.TRANSFERABLE_METHODS=["cloneShallow","downSample","map"],S_.CHANGABLE_METHODS=["filterSelf","selectRange"];var C_=function(t,e){return e=e||{},Ts(e.coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})};Ns.prototype.parse=function(t){return t},Ns.prototype.getSetting=function(t){return this._setting[t]},Ns.prototype.contain=function(t){var e=this._extent;return t>=e[0]&&t<=e[1]},Ns.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},Ns.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},Ns.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1])},Ns.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},Ns.prototype.getExtent=function(){return this._extent.slice()},Ns.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},Ns.prototype.isBlank=function(){return this._isBlank},Ns.prototype.setBlank=function(t){this._isBlank=t},Ns.prototype.getLabel=null,En(Ns),Vn(Ns,{registerWhenExtend:!0}),Rs.createByAxisModel=function(t){var e=t.option,n=e.data,i=n&&f(n,Vs);return new Rs({categories:i,needCollect:!i,deduplication:!1!==e.dedplication})};var T_=Rs.prototype;T_.getOrdinal=function(t){return Bs(this).get(t)},T_.parseAndCollect=function(t){var e,n=this._needCollect;if("string"!=typeof t&&!n)return t;if(n&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var i=Bs(this);return null==(e=i.get(t))&&(n?(e=this.categories.length,this.categories[e]=t,i.set(t,e)):e=NaN),e};var D_=Ns.prototype,A_=Ns.extend({type:"ordinal",init:function(t,e){t&&!y(t)||(t=new Rs({categories:t})),this._ordinalMeta=t,this._extent=e||[0,t.categories.length-1]},parse:function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},contain:function(t){return t=this.parse(t),D_.contain.call(this,t)&&null!=this._ordinalMeta.categories[t]},normalize:function(t){return D_.normalize.call(this,this.parse(t))},scale:function(t){return Math.round(D_.scale.call(this,t))},getTicks:function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push(n),n++;return t},getLabel:function(t){if(!this.isBlank())return this._ordinalMeta.categories[t]},count:function(){return this._extent[1]-this._extent[0]+1},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},getOrdinalMeta:function(){return this._ordinalMeta},niceTicks:R,niceExtent:R});A_.create=function(){return new A_};var k_=wr,P_=wr,L_=Ns.extend({type:"interval",_interval:0,_intervalPrecision:2,setExtent:function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},unionExtent:function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1]),L_.prototype.setExtent.call(this,e[0],e[1])},getInterval:function(){return this._interval},setInterval:function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=Hs(t)},getTicks:function(){return Zs(this._interval,this._extent,this._niceExtent,this._intervalPrecision)},getLabel:function(t,e){if(null==t)return"";var n=e&&e.precision;return null==n?n=Sr(t)||0:"auto"===n&&(n=this._intervalPrecision),t=P_(t,n,!0),Or(t)},niceTicks:function(t,e,n){t=t||5;var i=this._extent,r=i[1]-i[0];if(isFinite(r)){r<0&&(r=-r,i.reverse());var o=Fs(i,t,e,n);this._intervalPrecision=o.intervalPrecision,this._interval=o.interval,this._niceExtent=o.niceTickExtent}},niceExtent:function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var n=e[0];t.fixMax?e[0]-=n/2:(e[1]+=n/2,e[0]-=n/2)}else e[1]=1;var i=e[1]-e[0];isFinite(i)||(e[0]=0,e[1]=1),this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval);var r=this._interval;t.fixMin||(e[0]=P_(Math.floor(e[0]/r)*r)),t.fixMax||(e[1]=P_(Math.ceil(e[1]/r)*r))}});L_.create=function(){return new L_};var O_="__ec_stack_",z_="undefined"!=typeof Float32Array?Float32Array:Array,E_={seriesType:"bar",plan:px(),reset:function(t){if(Ks(t)&&Qs(t)){var e=t.getData(),n=t.coordinateSystem,i=n.getBaseAxis(),r=n.getOtherAxis(i),o=e.mapDimension(r.dim),a=e.mapDimension(i.dim),s=r.isHorizontal(),l=s?0:1,u=$s(Ys([t]),i,t).width;return u>.5||(u=.5),{progress:function(t,e){for(var h,c=new z_(2*t.count),d=[],f=[],p=0;null!=(h=t.next());)f[l]=e.get(o,h),f[1-l]=e.get(a,h),d=n.dataToPoint(f,null,d),c[p++]=d[0],c[p++]=d[1];e.setLayout({largePoints:c,barWidth:u,valueAxisStart:Js(i,r,!1),valueAxisHorizontal:s})}}}}},N_=L_.prototype,R_=Math.ceil,B_=Math.floor,V_=function(t,e,n,i){for(;n<i;){var r=n+i>>>1;t[r][1]<e?n=r+1:i=r}return n},F_=L_.extend({type:"time",getLabel:function(t){var e=this._stepLvl,n=new Date(t);return Vr(e[0],n,this.getSetting("useUTC"))},niceExtent:function(t){var e=this._extent;if(e[0]===e[1]&&(e[0]-=864e5,e[1]+=864e5),e[1]===-1/0&&e[0]===1/0){var n=new Date;e[1]=+new Date(n.getFullYear(),n.getMonth(),n.getDate()),e[0]=e[1]-864e5}this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval);var i=this._interval;t.fixMin||(e[0]=wr(B_(e[0]/i)*i)),t.fixMax||(e[1]=wr(R_(e[1]/i)*i))},niceTicks:function(t,e,n){t=t||10;var i=this._extent,r=i[1]-i[0],o=r/t;null!=e&&o<e&&(o=e),null!=n&&o>n&&(o=n);var a=H_.length,s=V_(H_,o,0,a),l=H_[Math.min(s,a-1)],u=l[1];"year"===l[0]&&(u*=Lr(r/u/t,!0));var h=this.getSetting("useUTC")?0:60*new Date(+i[0]||+i[1]).getTimezoneOffset()*1e3,c=[Math.round(R_((i[0]-h)/u)*u+h),Math.round(B_((i[1]-h)/u)*u+h)];Ws(c,i),this._stepLvl=l,this._interval=u,this._niceExtent=c},parse:function(t){return+Ar(t)}});d(["contain","normalize"],function(t){F_.prototype[t]=function(e){return N_[t].call(this,this.parse(e))}});var H_=[["hh:mm:ss",1e3],["hh:mm:ss",5e3],["hh:mm:ss",1e4],["hh:mm:ss",15e3],["hh:mm:ss",3e4],["hh:mm\nMM-dd",6e4],["hh:mm\nMM-dd",3e5],["hh:mm\nMM-dd",6e5],["hh:mm\nMM-dd",9e5],["hh:mm\nMM-dd",18e5],["hh:mm\nMM-dd",36e5],["hh:mm\nMM-dd",72e5],["hh:mm\nMM-dd",216e5],["hh:mm\nMM-dd",432e5],["MM-dd\nyyyy",864e5],["MM-dd\nyyyy",1728e5],["MM-dd\nyyyy",2592e5],["MM-dd\nyyyy",3456e5],["MM-dd\nyyyy",432e6],["MM-dd\nyyyy",5184e5],["week",6048e5],["MM-dd\nyyyy",864e6],["week",12096e5],["week",18144e5],["month",26784e5],["week",36288e5],["month",53568e5],["week",36288e5],["quarter",8208e6],["month",107136e5],["month",13392e6],["half-year",16416e6],["month",214272e5],["month",26784e6],["year",32832e6]];F_.create=function(t){return new F_({useUTC:t.ecModel.get("useUTC")})};var G_=Ns.prototype,W_=L_.prototype,Z_=Sr,U_=wr,X_=Math.floor,j_=Math.ceil,Y_=Math.pow,q_=Math.log,$_=Ns.extend({type:"log",base:10,$constructor:function(){Ns.apply(this,arguments),this._originalScale=new L_},getTicks:function(){var t=this._originalScale,e=this._extent,n=t.getExtent();return f(W_.getTicks.call(this),function(i){var r=wr(Y_(this.base,i));return r=i===e[0]&&t.__fixMin?tl(r,n[0]):r,r=i===e[1]&&t.__fixMax?tl(r,n[1]):r},this)},getLabel:W_.getLabel,scale:function(t){return t=G_.scale.call(this,t),Y_(this.base,t)},setExtent:function(t,e){var n=this.base;t=q_(t)/q_(n),e=q_(e)/q_(n),W_.setExtent.call(this,t,e)},getExtent:function(){var t=this.base,e=G_.getExtent.call(this);e[0]=Y_(t,e[0]),e[1]=Y_(t,e[1]);var n=this._originalScale,i=n.getExtent();return n.__fixMin&&(e[0]=tl(e[0],i[0])),n.__fixMax&&(e[1]=tl(e[1],i[1])),e},unionExtent:function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=q_(t[0])/q_(e),t[1]=q_(t[1])/q_(e),G_.unionExtent.call(this,t)},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},niceTicks:function(t){t=t||10;var e=this._extent,n=e[1]-e[0];if(!(n===1/0||n<=0)){var i=kr(n);for(t/n*i<=.5&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var r=[wr(j_(e[0]/i)*i),wr(X_(e[1]/i)*i)];this._interval=i,this._niceExtent=r}},niceExtent:function(t){W_.niceExtent.call(this,t);var e=this._originalScale;e.__fixMin=t.fixMin,e.__fixMax=t.fixMax}});d(["contain","normalize"],function(t){$_.prototype[t]=function(e){return e=q_(e)/q_(this.base),G_[t].call(this,e)}}),$_.create=function(){return new $_};var K_={getMin:function(t){var e=this.option,n=t||null==e.rangeStart?e.min:e.rangeStart;return this.axis&&null!=n&&"dataMin"!==n&&"function"!=typeof n&&!I(n)&&(n=this.axis.scale.parse(n)),n},getMax:function(t){var e=this.option,n=t||null==e.rangeEnd?e.max:e.rangeEnd;return this.axis&&null!=n&&"dataMax"!==n&&"function"!=typeof n&&!I(n)&&(n=this.axis.scale.parse(n)),n},getNeedCrossZero:function(){var t=this.option;return null==t.rangeStart&&null==t.rangeEnd&&!t.scale},getCoordSysModel:R,setRange:function(t,e){this.option.rangeStart=t,this.option.rangeEnd=e},resetRange:function(){this.option.rangeStart=this.option.rangeEnd=null}},Q_=Ai({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i+o),t.lineTo(n-r,i+o),t.closePath()}}),J_=Ai({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i),t.lineTo(n,i+o),t.lineTo(n-r,i),t.closePath()}}),tw=Ai({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.x,i=e.y,r=e.width/5*3,o=Math.max(r,e.height),a=r/2,s=a*a/(o-a),l=i-o+a+s,u=Math.asin(s/a),h=Math.cos(u)*a,c=Math.sin(u),d=Math.cos(u),f=.6*a,p=.7*a;t.moveTo(n-h,l+s),t.arc(n,l,a,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(n+h-c*f,l+s+d*f,n,i-p,n,i),t.bezierCurveTo(n,i-p,n-h+c*f,l+s+d*f,n-h,l+s),t.closePath()}}),ew=Ai({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.height,i=e.width,r=e.x,o=e.y,a=i/3*2;t.moveTo(r,o),t.lineTo(r+a,o+n),t.lineTo(r,o+n/4*3),t.lineTo(r-a,o+n),t.lineTo(r,o),t.closePath()}}),nw={line:function(t,e,n,i,r){r.x1=t,r.y1=e+i/2,r.x2=t+n,r.y2=e+i/2},rect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i},roundRect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i,r.r=Math.min(n,i)/4},square:function(t,e,n,i,r){var o=Math.min(n,i);r.x=t,r.y=e,r.width=o,r.height=o},circle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.r=Math.min(n,i)/2},diamond:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i},pin:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},arrow:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},triangle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i}},iw={};d({line:Hv,rect:Fv,roundRect:Fv,square:Fv,circle:Pv,diamond:J_,pin:tw,arrow:ew,triangle:Q_},function(t,e){iw[e]=new t});var rw=Ai({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},beforeBrush:function(){var t=this.style;"pin"===this.shape.symbolType&&"inside"===t.textPosition&&(t.textPosition=["50%","40%"],t.textAlign="center",t.textVerticalAlign="middle")},buildPath:function(t,e,n){var i=e.symbolType,r=iw[i];"none"!==e.symbolType&&(r||(r=iw[i="rect"]),nw[i](e.x,e.y,e.width,e.height,r.shape),r.buildPath(t,r.shape,n))}}),ow={isDimensionStacked:Ps,enableDataStack:ks,getStackedDimension:Ls},aw=(Object.freeze||Object)({createList:function(t){return Os(t.getSource(),t)},getLayoutRect:Gr,dataStack:ow,createScale:function(t,e){var n=e;pr.isInstance(e)||h(n=new pr(e),K_);var i=rl(n);return i.setExtent(t[0],t[1]),il(i,n),i},mixinAxisModelCommonMethods:function(t){h(t,K_)},completeDimensions:Ts,createDimensions:C_,createSymbol:cl}),sw=1e-8;pl.prototype={constructor:pl,properties:null,getBoundingRect:function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,n=[e,e],i=[-e,-e],r=[],o=[],a=this.geometries,s=0;s<a.length;s++)"polygon"===a[s].type&&(ti(a[s].exterior,r,o),K(n,n,r),Q(i,i,o));return 0===s&&(n[0]=n[1]=i[0]=i[1]=0),this._rect=new Xt(n[0],n[1],i[0]-n[0],i[1]-n[1])},contain:function(t){var e=this.getBoundingRect(),n=this.geometries;if(!e.contain(t[0],t[1]))return!1;t:for(var i=0,r=n.length;i<r;i++)if("polygon"===n[i].type){var o=n[i].exterior,a=n[i].interiors;if(fl(o,t[0],t[1])){for(var s=0;s<(a?a.length:0);s++)if(fl(a[s]))continue t;return!0}}return!1},transformTo:function(t,e,n,i){var r=this.getBoundingRect(),o=r.width/r.height;n?i||(i=n/o):n=o*i;for(var a=new Xt(t,e,n,i),s=r.calculateTransform(a),l=this.geometries,u=0;u<l.length;u++)if("polygon"===l[u].type){for(var h=l[u].exterior,c=l[u].interiors,d=0;d<h.length;d++)$(h[d],h[d],s);for(var f=0;f<(c?c.length:0);f++)for(d=0;d<c[f].length;d++)$(c[f][d],c[f][d],s)}(r=this._rect).copy(a),this.center=[r.x+r.width/2,r.y+r.height/2]}};var lw=function(t){return gl(t),f(g(t.features,function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0}),function(t){var e=t.properties,n=t.geometry,i=n.coordinates,r=[];"Polygon"===n.type&&r.push({type:"polygon",exterior:i[0],interiors:i.slice(1)}),"MultiPolygon"===n.type&&d(i,function(t){t[0]&&r.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})});var o=new pl(e.name,r,e.cp);return o.properties=e,o})},uw=Dn(),hw=[0,1],cw=function(t,e,n){this.dim=t,this.scale=e,this._extent=n||[0,0],this.inverse=!1,this.onBand=!1};cw.prototype={constructor:cw,contain:function(t){var e=this._extent,n=Math.min(e[0],e[1]),i=Math.max(e[0],e[1]);return t>=n&&t<=i},containData:function(t){return this.contain(this.dataToCoord(t))},getExtent:function(){return this._extent.slice()},getPixelPrecision:function(t){return Ir(t||this.scale.getExtent(),this._extent)},setExtent:function(t,e){var n=this._extent;n[0]=t,n[1]=e},dataToCoord:function(t,e){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&"ordinal"===i.type&&Ll(n=n.slice(),i.count()),xr(t,hw,n,e)},coordToData:function(t,e){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&Ll(n=n.slice(),i.count());var r=xr(t,n,hw,e);return this.scale.scale(r)},pointToData:function(t,e){},getTicksCoords:function(t){var e=(t=t||{}).tickModel||this.getTickModel(),n=yl(this,e),i=f(n.ticks,function(t){return{coord:this.dataToCoord(t),tickValue:t}},this),r=e.get("alignWithLabel");return Ol(this,i,n.tickCategoryInterval,r,t.clamp),i},getViewLabels:function(){return vl(this).labels},getLabelModel:function(){return this.model.getModel("axisLabel")},getTickModel:function(){return this.model.getModel("axisTick")},getBandWidth:function(){var t=this._extent,e=this.scale.getExtent(),n=e[1]-e[0]+(this.onBand?1:0);0===n&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},isHorizontal:null,getRotate:null,calculateCategoryInterval:function(){return Tl(this)}};var dw=lw,fw={};d(["map","each","filter","indexOf","inherits","reduce","filter","bind","curry","isArray","isString","isObject","isFunction","extend","defaults","clone","merge"],function(t){fw[t]=Np[t]}),cx.extend({type:"series.line",dependencies:["grid","polar"],getInitialData:function(t,e){return Os(this.getSource(),this)},defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,hoverAnimation:!0,clipOverflow:!0,label:{position:"top"},lineStyle:{width:2,type:"solid"},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0}});var pw=El.prototype,gw=El.getSymbolSize=function(t,e){var n=t.getItemVisual(e,"symbolSize");return n instanceof Array?n.slice():[+n,+n]};pw._createSymbol=function(t,e,n,i,r){this.removeAll();var o=cl(t,-1,-1,2,2,e.getItemVisual(n,"color"),r);o.attr({z2:100,culling:!0,scale:Nl(i)}),o.drift=Rl,this._symbolType=t,this.add(o)},pw.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(t)},pw.getSymbolPath=function(){return this.childAt(0)},pw.getScale=function(){return this.childAt(0).scale},pw.highlight=function(){this.childAt(0).trigger("emphasis")},pw.downplay=function(){this.childAt(0).trigger("normal")},pw.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},pw.setDraggable=function(t){var e=this.childAt(0);e.draggable=t,e.cursor=t?"move":"pointer"},pw.updateData=function(t,e,n){this.silent=!1;var i=t.getItemVisual(e,"symbol")||"circle",r=t.hostModel,o=gw(t,e),a=i!==this._symbolType;if(a){var s=t.getItemVisual(e,"symbolKeepAspect");this._createSymbol(i,t,e,o,s)}else(l=this.childAt(0)).silent=!1,ar(l,{scale:Nl(o)},r,e);if(this._updateCommon(t,e,o,n),a){var l=this.childAt(0),u=n&&n.fadeIn,h={scale:l.scale.slice()};u&&(h.style={opacity:l.style.opacity}),l.scale=[0,0],u&&(l.style.opacity=0),sr(l,h,r,e)}this._seriesModel=r};var mw=["itemStyle"],vw=["emphasis","itemStyle"],yw=["label"],xw=["emphasis","label"];pw._updateCommon=function(t,e,n,i){var r=this.childAt(0),a=t.hostModel,s=t.getItemVisual(e,"color");"image"!==r.type&&r.useStyle({strokeNoScale:!0});var l=i&&i.itemStyle,u=i&&i.hoverItemStyle,h=i&&i.symbolRotate,c=i&&i.symbolOffset,d=i&&i.labelModel,f=i&&i.hoverLabelModel,p=i&&i.hoverAnimation,g=i&&i.cursorStyle;if(!i||t.hasItemOption){var m=i&&i.itemModel?i.itemModel:t.getItemModel(e);l=m.getModel(mw).getItemStyle(["color"]),u=m.getModel(vw).getItemStyle(),h=m.getShallow("symbolRotate"),c=m.getShallow("symbolOffset"),d=m.getModel(yw),f=m.getModel(xw),p=m.getShallow("hoverAnimation"),g=m.getShallow("cursor")}else u=o({},u);var v=r.style;r.attr("rotation",(h||0)*Math.PI/180||0),c&&r.attr("position",[_r(c[0],n[0]),_r(c[1],n[1])]),g&&r.attr("cursor",g),r.setColor(s,i&&i.symbolInnerColor),r.setStyle(l);var y=t.getItemVisual(e,"opacity");null!=y&&(v.opacity=y);var x=t.getItemVisual(e,"liftZ"),_=r.__z2Origin;null!=x?null==_&&(r.__z2Origin=r.z2,r.z2+=x):null!=_&&(r.z2=_,r.__z2Origin=null);var w=i&&i.useNameLabel;$i(v,u,d,f,{labelFetcher:a,labelDataIndex:e,defaultText:function(e,n){return w?t.getName(e):zl(t,e)},isRectText:!0,autoColor:s}),r.off("mouseover").off("mouseout").off("emphasis").off("normal"),r.hoverStyle=u,qi(r);var b=Nl(n);if(p&&a.isAnimationEnabled()){var M=function(){if(!this.incremental){var t=b[1]/b[0];this.animateTo({scale:[Math.max(1.1*b[0],b[0]+3),Math.max(1.1*b[1],b[1]+3*t)]},400,"elasticOut")}},S=function(){this.incremental||this.animateTo({scale:b},400,"elasticOut")};r.on("mouseover",M).on("mouseout",S).on("emphasis",M).on("normal",S)}},pw.fadeOut=function(t,e){var n=this.childAt(0);this.silent=n.silent=!0,!(e&&e.keepLabel)&&(n.style.text=null),ar(n,{style:{opacity:0},scale:[0,0]},this._seriesModel,this.dataIndex,t)},u(El,Sg);var _w=Bl.prototype;_w.updateData=function(t,e){e=Fl(e);var n=this.group,i=t.hostModel,r=this._data,o=this._symbolCtor,a=Hl(t);r||n.removeAll(),t.diff(r).add(function(i){var r=t.getItemLayout(i);if(Vl(t,r,i,e)){var s=new o(t,i,a);s.attr("position",r),t.setItemGraphicEl(i,s),n.add(s)}}).update(function(s,l){var u=r.getItemGraphicEl(l),h=t.getItemLayout(s);Vl(t,h,s,e)?(u?(u.updateData(t,s,a),ar(u,{position:h},i)):(u=new o(t,s)).attr("position",h),n.add(u),t.setItemGraphicEl(s,u)):n.remove(u)}).remove(function(t){var e=r.getItemGraphicEl(t);e&&e.fadeOut(function(){n.remove(e)})}).execute(),this._data=t},_w.isPersistent=function(){return!0},_w.updateLayout=function(){var t=this._data;t&&t.eachItemGraphicEl(function(e,n){var i=t.getItemLayout(n);e.attr("position",i)})},_w.incrementalPrepareUpdate=function(t){this._seriesScope=Hl(t),this._data=null,this.group.removeAll()},_w.incrementalUpdate=function(t,e,n){n=Fl(n);for(var i=t.start;i<t.end;i++){var r=e.getItemLayout(i);if(Vl(e,r,i,n)){var o=new this._symbolCtor(e,i,this._seriesScope);o.traverse(function(t){t.isGroup||(t.incremental=t.useHoverLayer=!0)}),o.attr("position",r),this.group.add(o),e.setItemGraphicEl(i,o)}}},_w.remove=function(t){var e=this.group,n=this._data;n&&t?n.eachItemGraphicEl(function(t){t.fadeOut(function(){e.remove(t)})}):e.removeAll()};var ww=function(t,e,n,i,r,o,a,s){for(var l=Ul(t,e),u=[],h=[],c=[],d=[],f=[],p=[],g=[],m=Gl(r,e,a),v=Gl(o,t,s),y=0;y<l.length;y++){var x=l[y],_=!0;switch(x.cmd){case"=":var w=t.getItemLayout(x.idx),b=e.getItemLayout(x.idx1);(isNaN(w[0])||isNaN(w[1]))&&(w=b.slice()),u.push(w),h.push(b),c.push(n[x.idx]),d.push(i[x.idx1]),g.push(e.getRawIndex(x.idx1));break;case"+":M=x.idx;u.push(r.dataToPoint([e.get(m.dataDimsForPoint[0],M),e.get(m.dataDimsForPoint[1],M)])),h.push(e.getItemLayout(M).slice()),c.push(Zl(m,r,e,M)),d.push(i[M]),g.push(e.getRawIndex(M));break;case"-":var M=x.idx,S=t.getRawIndex(M);S!==M?(u.push(t.getItemLayout(M)),h.push(o.dataToPoint([t.get(v.dataDimsForPoint[0],M),t.get(v.dataDimsForPoint[1],M)])),c.push(n[M]),d.push(Zl(v,o,t,M)),g.push(S)):_=!1}_&&(f.push(x),p.push(p.length))}p.sort(function(t,e){return g[t]-g[e]});for(var I=[],C=[],T=[],D=[],A=[],y=0;y<p.length;y++){M=p[y];I[y]=u[M],C[y]=h[M],T[y]=c[M],D[y]=d[M],A[y]=f[M]}return{current:I,next:C,stackedOnCurrent:T,stackedOnNext:D,status:A}},bw=K,Mw=Q,Sw=G,Iw=V,Cw=[],Tw=[],Dw=[],Aw=xi.extend({type:"ec-polyline",shape:{points:[],smooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},style:{fill:null,stroke:"#000"},brush:Ov(xi.prototype.brush),buildPath:function(t,e){var n=e.points,i=0,r=n.length,o=$l(n,e.smoothConstraint);if(e.connectNulls){for(;r>0&&Xl(n[r-1]);r--);for(;i<r&&Xl(n[i]);i++);}for(;i<r;)i+=jl(t,n,i,r,r,1,o.min,o.max,e.smooth,e.smoothMonotone,e.connectNulls)+1}}),kw=xi.extend({type:"ec-polygon",shape:{points:[],stackedOnPoints:[],smooth:0,stackedOnSmooth:0,smoothConstraint:!0,smoothMonotone:null,connectNulls:!1},brush:Ov(xi.prototype.brush),buildPath:function(t,e){var n=e.points,i=e.stackedOnPoints,r=0,o=n.length,a=e.smoothMonotone,s=$l(n,e.smoothConstraint),l=$l(i,e.smoothConstraint);if(e.connectNulls){for(;o>0&&Xl(n[o-1]);o--);for(;r<o&&Xl(n[r]);r++);}for(;r<o;){var u=jl(t,n,r,o,o,1,s.min,s.max,e.smooth,a,e.connectNulls);jl(t,i,r+u-1,u,o,-1,l.min,l.max,e.stackedOnSmooth,a,e.connectNulls),r+=u+1,t.closePath()}}});ra.extend({type:"line",init:function(){var t=new Sg,e=new Bl;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},render:function(t,e,n){var i=t.coordinateSystem,r=this.group,o=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=o.mapArray(o.getItemLayout),h="polar"===i.type,c=this._coordSys,d=this._symbolDraw,f=this._polyline,p=this._polygon,g=this._lineGroup,m=t.get("animation"),v=!l.isEmpty(),y=l.get("origin"),x=tu(i,o,Gl(i,o,y)),_=t.get("showSymbol"),w=_&&!h&&au(t,o,i),b=this._data;b&&b.eachItemGraphicEl(function(t,e){t.__temp&&(r.remove(t),b.setItemGraphicEl(e,null))}),_||d.remove(),r.add(g);var M=!h&&t.get("step");f&&c.type===i.type&&M===this._step?(v&&!p?p=this._newPolygon(u,x,i,m):p&&!v&&(g.remove(p),p=this._polygon=null),g.setClipPath(iu(i,!1,!1,t)),_&&d.updateData(o,{isIgnore:w,clipShape:iu(i,!1,!0,t)}),o.eachItemGraphicEl(function(t){t.stopAnimation(!0)}),Kl(this._stackedOnPoints,x)&&Kl(this._points,u)||(m?this._updateAnimation(o,x,i,n,M,y):(M&&(u=ru(u,i,M),x=ru(x,i,M)),f.setShape({points:u}),p&&p.setShape({points:u,stackedOnPoints:x})))):(_&&d.updateData(o,{isIgnore:w,clipShape:iu(i,!1,!0,t)}),M&&(u=ru(u,i,M),x=ru(x,i,M)),f=this._newPolyline(u,i,m),v&&(p=this._newPolygon(u,x,i,m)),g.setClipPath(iu(i,!0,!1,t)));var S=ou(o,i)||o.getVisual("color");f.useStyle(a(s.getLineStyle(),{fill:"none",stroke:S,lineJoin:"bevel"}));var I=t.get("smooth");if(I=Ql(t.get("smooth")),f.setShape({smooth:I,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")}),p){var C=o.getCalculationInfo("stackedOnSeries"),T=0;p.useStyle(a(l.getAreaStyle(),{fill:S,opacity:.7,lineJoin:"bevel"})),C&&(T=Ql(C.get("smooth"))),p.setShape({smooth:I,stackedOnSmooth:T,smoothMonotone:t.get("smoothMonotone"),connectNulls:t.get("connectNulls")})}this._data=o,this._coordSys=i,this._stackedOnPoints=x,this._points=u,this._step=M,this._valueOrigin=y},dispose:function(){},highlight:function(t,e,n,i){var r=t.getData(),o=Tn(r,i);if(!(o instanceof Array)&&null!=o&&o>=0){var a=r.getItemGraphicEl(o);if(!a){var s=r.getItemLayout(o);if(!s)return;(a=new El(r,o)).position=s,a.setZ(t.get("zlevel"),t.get("z")),a.ignore=isNaN(s[0])||isNaN(s[1]),a.__temp=!0,r.setItemGraphicEl(o,a),a.stopSymbolAnimation(!0),this.group.add(a)}a.highlight()}else ra.prototype.highlight.call(this,t,e,n,i)},downplay:function(t,e,n,i){var r=t.getData(),o=Tn(r,i);if(null!=o&&o>=0){var a=r.getItemGraphicEl(o);a&&(a.__temp?(r.setItemGraphicEl(o,null),this.group.remove(a)):a.downplay())}else ra.prototype.downplay.call(this,t,e,n,i)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new Aw({shape:{points:t},silent:!0,z2:10}),this._lineGroup.add(e),this._polyline=e,e},_newPolygon:function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new kw({shape:{points:t,stackedOnPoints:e},silent:!0}),this._lineGroup.add(n),this._polygon=n,n},_updateAnimation:function(t,e,n,i,r,o){var a=this._polyline,s=this._polygon,l=t.hostModel,u=ww(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),h=u.current,c=u.stackedOnCurrent,d=u.next,f=u.stackedOnNext;r&&(h=ru(u.current,n,r),c=ru(u.stackedOnCurrent,n,r),d=ru(u.next,n,r),f=ru(u.stackedOnNext,n,r)),a.shape.__points=u.current,a.shape.points=h,ar(a,{shape:{points:d}},l),s&&(s.setShape({points:h,stackedOnPoints:c}),ar(s,{shape:{points:d,stackedOnPoints:f}},l));for(var p=[],g=u.status,m=0;m<g.length;m++)if("="===g[m].cmd){var v=t.getItemGraphicEl(g[m].idx1);v&&p.push({el:v,ptIdx:m})}a.animators&&a.animators.length&&a.animators[0].during(function(){for(var t=0;t<p.length;t++)p[t].el.attr("position",a.shape.__points[p[t].ptIdx])})},remove:function(t){var e=this.group,n=this._data;this._lineGroup.removeAll(),this._symbolDraw.remove(!0),n&&n.eachItemGraphicEl(function(t,i){t.__temp&&(e.remove(t),n.setItemGraphicEl(i,null))}),this._polyline=this._polygon=this._coordSys=this._points=this._stackedOnPoints=this._data=null}});var Pw=function(t,e,n){return{seriesType:t,performRawSeries:!0,reset:function(t,i,r){var o=t.getData(),a=t.get("symbol")||e,s=t.get("symbolSize"),l=t.get("symbolKeepAspect");if(o.setVisual({legendSymbol:n||a,symbol:a,symbolSize:s,symbolKeepAspect:l}),!i.isSeriesFiltered(t)){var u="function"==typeof s;return{dataEach:o.hasItemOption||u?function(e,n){if("function"==typeof s){var i=t.getRawValue(n),r=t.getDataParams(n);e.setItemVisual(n,"symbolSize",s(i,r))}if(e.hasItemOption){var o=e.getItemModel(n),a=o.getShallow("symbol",!0),l=o.getShallow("symbolSize",!0),u=o.getShallow("symbolKeepAspect",!0);null!=a&&e.setItemVisual(n,"symbol",a),null!=l&&e.setItemVisual(n,"symbolSize",l),null!=u&&e.setItemVisual(n,"symbolKeepAspect",u)}}:null}}}}},Lw=function(t){return{seriesType:t,plan:px(),reset:function(t){var e=t.getData(),n=t.coordinateSystem,i=t.pipelineContext.large;if(n){var r=f(n.dimensions,function(t){return e.mapDimension(t)}).slice(0,2),o=r.length,a=e.getCalculationInfo("stackResultDimension");return Ps(e,r[0])&&(r[0]=a),Ps(e,r[1])&&(r[1]=a),o&&{progress:function(t,e){for(var a=t.end-t.start,s=i&&new Float32Array(a*o),l=t.start,u=0,h=[],c=[];l<t.end;l++){var d;if(1===o)f=e.get(r[0],l),d=!isNaN(f)&&n.dataToPoint(f,null,c);else{var f=h[0]=e.get(r[0],l),p=h[1]=e.get(r[1],l);d=!isNaN(f)&&!isNaN(p)&&n.dataToPoint(h,null,c)}i?(s[u++]=d?d[0]:NaN,s[u++]=d?d[1]:NaN):e.setItemLayout(l,d&&d.slice()||[NaN,NaN])}i&&e.setLayout("symbolPoints",s)}}}}}},Ow={average:function(t){for(var e=0,n=0,i=0;i<t.length;i++)isNaN(t[i])||(e+=t[i],n++);return 0===n?NaN:e/n},sum:function(t){for(var e=0,n=0;n<t.length;n++)e+=t[n]||0;return e},max:function(t){for(var e=-1/0,n=0;n<t.length;n++)t[n]>e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;n<t.length;n++)t[n]<e&&(e=t[n]);return isFinite(e)?e:NaN},nearest:function(t){return t[0]}},zw=function(t,e){return Math.round(t.length/2)},Ew=function(t){this._axes={},this._dimList=[],this.name=t||""};Ew.prototype={constructor:Ew,type:"cartesian",getAxis:function(t){return this._axes[t]},getAxes:function(){return f(this._dimList,lu,this)},getAxesByScale:function(t){return t=t.toLowerCase(),g(this.getAxes(),function(e){return e.scale.type===t})},addAxis:function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},dataToCoord:function(t){return this._dataCoordConvert(t,"dataToCoord")},coordToData:function(t){return this._dataCoordConvert(t,"coordToData")},_dataCoordConvert:function(t,e){for(var n=this._dimList,i=t instanceof Array?[]:{},r=0;r<n.length;r++){var o=n[r],a=this._axes[o];i[o]=a[e](t[o])}return i}},uu.prototype={constructor:uu,type:"cartesian2d",dimensions:["x","y"],getBaseAxis:function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},containPoint:function(t){var e=this.getAxis("x"),n=this.getAxis("y");return e.contain(e.toLocalCoord(t[0]))&&n.contain(n.toLocalCoord(t[1]))},containData:function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},dataToPoint:function(t,e,n){var i=this.getAxis("x"),r=this.getAxis("y");return n=n||[],n[0]=i.toGlobalCoord(i.dataToCoord(t[0])),n[1]=r.toGlobalCoord(r.dataToCoord(t[1])),n},clampData:function(t,e){var n=this.getAxis("x").scale,i=this.getAxis("y").scale,r=n.getExtent(),o=i.getExtent(),a=n.parse(t[0]),s=i.parse(t[1]);return e=e||[],e[0]=Math.min(Math.max(Math.min(r[0],r[1]),a),Math.max(r[0],r[1])),e[1]=Math.min(Math.max(Math.min(o[0],o[1]),s),Math.max(o[0],o[1])),e},pointToData:function(t,e){var n=this.getAxis("x"),i=this.getAxis("y");return e=e||[],e[0]=n.coordToData(n.toLocalCoord(t[0])),e[1]=i.coordToData(i.toLocalCoord(t[1])),e},getOtherAxis:function(t){return this.getAxis("x"===t.dim?"y":"x")}},u(uu,Ew);var Nw=function(t,e,n,i,r){cw.call(this,t,e,n),this.type=i||"value",this.position=r||"bottom"};Nw.prototype={constructor:Nw,index:0,getAxesOnZeroOf:null,model:null,isHorizontal:function(){var t=this.position;return"top"===t||"bottom"===t},getGlobalExtent:function(t){var e=this.getExtent();return e[0]=this.toGlobalCoord(e[0]),e[1]=this.toGlobalCoord(e[1]),t&&e[0]>e[1]&&e.reverse(),e},getOtherAxis:function(){this.grid.getOtherAxis()},pointToData:function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},toLocalCoord:null,toGlobalCoord:null},u(Nw,cw);var Rw={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#333",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}},Bw={};Bw.categoryAxis=i({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},Rw),Bw.valueAxis=i({boundaryGap:[0,0],splitNumber:5},Rw),Bw.timeAxis=a({scale:!0,min:"dataMin",max:"dataMax"},Bw.valueAxis),Bw.logAxis=a({scale:!0,logBase:10},Bw.valueAxis);var Vw=["value","category","time","log"],Fw=function(t,e,n,o){d(Vw,function(a){e.extend({type:t+"Axis."+a,mergeDefaultAndTheme:function(e,r){var o=this.layoutMode,s=o?Ur(e):{};i(e,r.getTheme().get(a+"Axis")),i(e,this.getDefaultOption()),e.type=n(t,e),o&&Zr(e,s,o)},optionUpdated:function(){"category"===this.option.type&&(this.__ordinalMeta=Rs.createByAxisModel(this))},getCategories:function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},getOrdinalMeta:function(){return this.__ordinalMeta},defaultOption:r([{},Bw[a+"Axis"],o],!0)})}),Iy.registerSubTypeDefaulter(t+"Axis",v(n,t))},Hw=Iy.extend({type:"cartesian2dAxis",axis:null,init:function(){Hw.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){Hw.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){Hw.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});i(Hw.prototype,K_);var Gw={offset:0};Fw("x",Hw,hu,Gw),Fw("y",Hw,hu,Gw),Iy.extend({type:"grid",dependencies:["xAxis","yAxis"],layoutMode:"box",coordinateSystem:null,defaultOption:{show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:60,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"}});var Ww=du.prototype;Ww.type="grid",Ww.axisPointerEnabled=!0,Ww.getRect=function(){return this._rect},Ww.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),d(n.x,function(t){il(t.scale,t.model)}),d(n.y,function(t){il(t.scale,t.model)}),d(n.x,function(t){fu(n,"y",t)}),d(n.y,function(t){fu(n,"x",t)}),this.resize(this.model,e)},Ww.resize=function(t,e,n){function i(){d(o,function(t){var e=t.isHorizontal(),n=e?[0,r.width]:[0,r.height],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),gu(t,e?r.x:r.y)})}var r=Gr(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()});this._rect=r;var o=this._axesList;i(),!n&&t.get("containLabel")&&(d(o,function(t){if(!t.model.get("axisLabel.inside")){var e=ll(t);if(e){var n=t.isHorizontal()?"height":"width",i=t.model.get("axisLabel.margin");r[n]-=e[n]+i,"top"===t.position?r.y+=e.height+i:"left"===t.position&&(r.x+=e.width+i)}}}),i())},Ww.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n){if(null==e)for(var i in n)if(n.hasOwnProperty(i))return n[i];return n[e]}},Ww.getAxes=function(){return this._axesList.slice()},Ww.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}w(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;i<r.length;i++)if(r[i].getAxis("x").index===t||r[i].getAxis("y").index===e)return r[i]},Ww.getCartesians=function(){return this._coordsList.slice()},Ww.convertToPixel=function(t,e,n){var i=this._findConvertTarget(t,e);return i.cartesian?i.cartesian.dataToPoint(n):i.axis?i.axis.toGlobalCoord(i.axis.dataToCoord(n)):null},Ww.convertFromPixel=function(t,e,n){var i=this._findConvertTarget(t,e);return i.cartesian?i.cartesian.pointToData(n):i.axis?i.axis.coordToData(i.axis.toLocalCoord(n)):null},Ww._findConvertTarget=function(t,e){var n,i,r=e.seriesModel,o=e.xAxisModel||r&&r.getReferringComponents("xAxis")[0],a=e.yAxisModel||r&&r.getReferringComponents("yAxis")[0],s=e.gridModel,u=this._coordsList;return r?l(u,n=r.coordinateSystem)<0&&(n=null):o&&a?n=this.getCartesian(o.componentIndex,a.componentIndex):o?i=this.getAxis("x",o.componentIndex):a?i=this.getAxis("y",a.componentIndex):s&&s.coordinateSystem===this&&(n=this._coordsList[0]),{cartesian:n,axis:i}},Ww.containPoint=function(t){var e=this._coordsList[0];if(e)return e.containPoint(t)},Ww._initCartesian=function(t,e,n){function i(n){return function(i,s){if(cu(i,t,e)){var l=i.get("position");"x"===n?"top"!==l&&"bottom"!==l&&r[l="bottom"]&&(l="top"===l?"bottom":"top"):"left"!==l&&"right"!==l&&r[l="left"]&&(l="left"===l?"right":"left"),r[l]=!0;var u=new Nw(n,rl(i),[0,0],i.get("type"),l),h="category"===u.type;u.onBand=h&&i.get("boundaryGap"),u.inverse=i.get("inverse"),i.axis=u,u.model=i,u.grid=this,u.index=s,this._axesList.push(u),o[n][s]=u,a[n]++}}}var r={left:!1,right:!1,top:!1,bottom:!1},o={x:{},y:{}},a={x:0,y:0};if(e.eachComponent("xAxis",i("x"),this),e.eachComponent("yAxis",i("y"),this),!a.x||!a.y)return this._axesMap={},void(this._axesList=[]);this._axesMap=o,d(o.x,function(e,n){d(o.y,function(i,r){var o="x"+n+"y"+r,a=new uu(o);a.grid=this,a.model=t,this._coordsMap[o]=a,this._coordsList.push(a),a.addAxis(e),a.addAxis(i)},this)},this)},Ww._updateScale=function(t,e){function n(t,e,n){d(t.mapDimension(e.dim,!0),function(n){e.scale.unionExtentFromData(t,Ls(t,n))})}d(this._axesList,function(t){t.scale.setExtent(1/0,-1/0)}),t.eachSeries(function(i){if(vu(i)){var r=mu(i),o=r[0],a=r[1];if(!cu(o,e,t)||!cu(a,e,t))return;var s=this.getCartesian(o.componentIndex,a.componentIndex),l=i.getData(),u=s.getAxis("x"),h=s.getAxis("y");"list"===l.type&&(n(l,u),n(l,h))}},this)},Ww.getTooltipAxes=function(t){var e=[],n=[];return d(this.getCartesians(),function(i){var r=null!=t&&"auto"!==t?i.getAxis(t):i.getBaseAxis(),o=i.getOtherAxis(r);l(e,r)<0&&e.push(r),l(n,o)<0&&n.push(o)}),{baseAxes:e,otherAxes:n}};var Zw=["xAxis","yAxis"];du.create=function(t,e){var n=[];return t.eachComponent("grid",function(i,r){var o=new du(i,t,e);o.name="grid_"+r,o.resize(i,e,!0),i.coordinateSystem=o,n.push(o)}),t.eachSeries(function(t){if(vu(t)){var e=mu(t),n=e[0],i=e[1],r=n.getCoordSysModel().coordinateSystem;t.coordinateSystem=r.getCartesian(n.componentIndex,i.componentIndex)}}),n},du.dimensions=du.prototype.dimensions=uu.prototype.dimensions,yo.register("cartesian2d",du);var Uw=Math.PI,Xw=function(t,e){this.opt=e,this.axisModel=t,a(e,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0}),this.group=new Sg;var n=new Sg({position:e.position.slice(),rotation:e.rotation});n.updateTransform(),this._transform=n.transform,this._dumbGroup=n};Xw.prototype={constructor:Xw,hasBuilder:function(t){return!!jw[t]},add:function(t){jw[t].call(this)},getGroup:function(){return this.group}};var jw={axisLine:function(){var t=this.opt,e=this.axisModel;if(e.get("axisLine.show")){var n=this.axisModel.axis.getExtent(),i=this._transform,r=[n[0],0],a=[n[1],0];i&&($(r,r,i),$(a,a,i));var s=o({lineCap:"round"},e.getModel("axisLine.lineStyle").getLineStyle());this.group.add(new Hv(zi({anid:"line",shape:{x1:r[0],y1:r[1],x2:a[0],y2:a[1]},style:s,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1})));var l=e.get("axisLine.symbol"),u=e.get("axisLine.symbolSize"),h=e.get("axisLine.symbolOffset")||0;if("number"==typeof h&&(h=[h,h]),null!=l){"string"==typeof l&&(l=[l,l]),"string"!=typeof u&&"number"!=typeof u||(u=[u,u]);var c=u[0],f=u[1];d([{rotate:t.rotation+Math.PI/2,offset:h[0],r:0},{rotate:t.rotation-Math.PI/2,offset:h[1],r:Math.sqrt((r[0]-a[0])*(r[0]-a[0])+(r[1]-a[1])*(r[1]-a[1]))}],function(e,n){if("none"!==l[n]&&null!=l[n]){var i=cl(l[n],-c/2,-f/2,c,f,s.stroke,!0),o=e.r+e.offset,a=[r[0]+o*Math.cos(t.rotation),r[1]-o*Math.sin(t.rotation)];i.attr({rotation:e.rotate,position:a,silent:!0}),this.group.add(i)}},this)}}},axisTickLabel:function(){var t=this.axisModel,e=this.opt,n=Iu(this,t,e);wu(t,Cu(this,t,e),n)},axisName:function(){var t=this.opt,e=this.axisModel,n=C(t.axisName,e.get("name"));if(n){var i,r=e.get("nameLocation"),a=t.nameDirection,s=e.getModel("nameTextStyle"),l=e.get("nameGap")||0,u=this.axisModel.axis.getExtent(),h=u[0]>u[1]?-1:1,c=["start"===r?u[0]-h*l:"end"===r?u[1]+h*l:(u[0]+u[1])/2,Su(r)?t.labelOffset+a*l:0],d=e.get("nameRotate");null!=d&&(d=d*Uw/180);var f;Su(r)?i=Yw(t.rotation,null!=d?d:t.rotation,a):(i=xu(t,r,d||0,u),null!=(f=t.axisNameAvailableWidth)&&(f=Math.abs(f/Math.sin(i.rotation)),!isFinite(f)&&(f=null)));var p=s.getFont(),g=e.get("nameTruncate",!0)||{},m=g.ellipsis,v=C(t.nameTruncateMaxWidth,g.maxWidth,f),y=null!=m&&null!=v?my(n,v,p,m,{minChar:2,placeholder:g.placeholder}):n,x=e.get("tooltip",!0),_=e.mainType,w={componentType:_,name:n,$vars:["name"]};w[_+"Index"]=e.componentIndex;var b=new kv({anid:"name",__fullText:n,__truncatedText:y,position:c,rotation:i.rotation,silent:_u(e),z2:1,tooltip:x&&x.show?o({content:n,formatter:function(){return n},formatterParams:w},x):null});Ki(b.style,s,{text:y,textFont:p,textFill:s.getTextColor()||e.get("axisLine.lineStyle.color"),textAlign:i.textAlign,textVerticalAlign:i.textVerticalAlign}),e.get("triggerEvent")&&(b.eventData=yu(e),b.eventData.targetType="axisName",b.eventData.name=n),this._dumbGroup.add(b),b.updateTransform(),this.group.add(b),b.decomposeTransform()}}},Yw=Xw.innerTextLayout=function(t,e,n){var i,r,o=Tr(e-t);return Dr(o)?(r=n>0?"top":"bottom",i="center"):Dr(o-Uw)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=o>0&&o<Uw?n>0?"right":"left":n>0?"left":"right"),{rotation:o,textAlign:i,textVerticalAlign:r}},qw=d,$w=v,Kw=as({type:"axis",_axisPointer:null,axisPointerClass:null,render:function(t,e,n,i){this.axisPointerClass&&Ou(t),Kw.superApply(this,"render",arguments),Bu(this,t,0,n,0,!0)},updateAxisPointer:function(t,e,n,i,r){Bu(this,t,0,n,0,!1)},remove:function(t,e){var n=this._axisPointer;n&&n.remove(e),Kw.superApply(this,"remove",arguments)},dispose:function(t,e){Vu(this,e),Kw.superApply(this,"dispose",arguments)}}),Qw=[];Kw.registerAxisPointerClass=function(t,e){Qw[t]=e},Kw.getAxisPointerClass=function(t){return t&&Qw[t]};var Jw=["axisLine","axisTickLabel","axisName"],tb=["splitArea","splitLine"],eb=Kw.extend({type:"cartesianAxis",axisPointerClass:"CartesianAxisPointer",render:function(t,e,n,i){this.group.removeAll();var r=this._axisGroup;if(this._axisGroup=new Sg,this.group.add(this._axisGroup),t.get("show")){var o=t.getCoordSysModel(),a=Fu(o,t),s=new Xw(t,a);d(Jw,s.add,s),this._axisGroup.add(s.getGroup()),d(tb,function(e){t.get(e+".show")&&this["_"+e](t,o)},this),cr(r,this._axisGroup,t),eb.superCall(this,"render",t,e,n,i)}},remove:function(){this._splitAreaColors=null},_splitLine:function(t,e){var n=t.axis;if(!n.scale.isBlank()){var i=t.getModel("splitLine"),r=i.getModel("lineStyle"),o=r.get("color");o=y(o)?o:[o];for(var s=e.coordinateSystem.getRect(),l=n.isHorizontal(),u=0,h=n.getTicksCoords({tickModel:i}),c=[],d=[],f=r.getLineStyle(),p=0;p<h.length;p++){var g=n.toGlobalCoord(h[p].coord);l?(c[0]=g,c[1]=s.y,d[0]=g,d[1]=s.y+s.height):(c[0]=s.x,c[1]=g,d[0]=s.x+s.width,d[1]=g);var m=u++%o.length,v=h[p].tickValue;this._axisGroup.add(new Hv(zi({anid:null!=v?"line_"+h[p].tickValue:null,shape:{x1:c[0],y1:c[1],x2:d[0],y2:d[1]},style:a({stroke:o[m]},f),silent:!0})))}}},_splitArea:function(t,e){var n=t.axis;if(!n.scale.isBlank()){var i=t.getModel("splitArea"),r=i.getModel("areaStyle"),o=r.get("color"),s=e.coordinateSystem.getRect(),l=n.getTicksCoords({tickModel:i,clamp:!0});if(l.length){var u=o.length,h=this._splitAreaColors,c=N(),d=0;if(h)for(m=0;m<l.length;m++){var f=h.get(l[m].tickValue);if(null!=f){d=(f+(u-1)*m)%u;break}}var p=n.toGlobalCoord(l[0].coord),g=r.getAreaStyle();o=y(o)?o:[o];for(var m=1;m<l.length;m++){var v,x,_,w,b=n.toGlobalCoord(l[m].coord);n.isHorizontal()?(v=p,x=s.y,_=b-v,w=s.height,p=v+_):(v=s.x,x=p,_=s.width,p=x+(w=b-x));var M=l[m-1].tickValue;null!=M&&c.set(M,d),this._axisGroup.add(new Fv({anid:null!=M?"area_"+M:null,shape:{x:v,y:x,width:_,height:w},style:a({fill:o[d]},g),silent:!0})),d=(d+1)%u}this._splitAreaColors=c}}}});eb.extend({type:"xAxis"}),eb.extend({type:"yAxis"}),as({type:"grid",render:function(t,e){this.group.removeAll(),t.get("show")&&this.group.add(new Fv({shape:t.coordinateSystem.getRect(),style:a({fill:t.get("backgroundColor")},t.getItemStyle()),silent:!0,z2:-1}))}}),Qa(function(t){t.xAxis&&t.yAxis&&!t.grid&&(t.grid={})}),ns(Pw("line","circle","line")),es(Lw("line")),Ja(Xx.PROCESSOR.STATISTIC,function(t){return{seriesType:t,modifyOutputEnd:!0,reset:function(t,e,n){var i=t.getData(),r=t.get("sampling"),o=t.coordinateSystem;if("cartesian2d"===o.type&&r){var a=o.getBaseAxis(),s=o.getOtherAxis(a),l=a.getExtent(),u=l[1]-l[0],h=Math.round(i.count()/u);if(h>1){var c;"string"==typeof r?c=Ow[r]:"function"==typeof r&&(c=r),c&&t.setData(i.downSample(i.mapDimension(s.dim),1/h,c,zw))}}}}}("line")),cx.extend({type:"series.__base_bar__",getInitialData:function(t,e){return Os(this.getSource(),this)},getMarkerPosition:function(t){var e=this.coordinateSystem;if(e){var n=e.dataToPoint(e.clampData(t)),i=this.getData(),r=i.getLayout("offset"),o=i.getLayout("size");return n[e.getBaseAxis().isHorizontal()?0:1]+=r+o/2,n}return[NaN,NaN]},defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod",itemStyle:{},emphasis:{}}}).extend({type:"series.bar",dependencies:["grid","polar"],brushSelector:"rect",getProgressive:function(){return!!this.get("large")&&this.get("progressive")},getProgressiveThreshold:function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t}});var nb=Sm([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["stroke","barBorderColor"],["lineWidth","barBorderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),ib={getBarItemStyle:function(t){var e=nb(this,t);if(this.getBorderLineDash){var n=this.getBorderLineDash();n&&(e.lineDash=n)}return e}},rb=["itemStyle","barBorderWidth"];o(pr.prototype,ib),ls({type:"bar",render:function(t,e,n){this._updateDrawMode(t);var i=t.get("coordinateSystem");return"cartesian2d"!==i&&"polar"!==i||(this._isLargeDraw?this._renderLarge(t,e,n):this._renderNormal(t,e,n)),this.group},incrementalPrepareRender:function(t,e,n){this._clear(),this._updateDrawMode(t)},incrementalRender:function(t,e,n,i){this._incrementalRenderLarge(t,e)},_updateDrawMode:function(t){var e=t.pipelineContext.large;(null==this._isLargeDraw||e^this._isLargeDraw)&&(this._isLargeDraw=e,this._clear())},_renderNormal:function(t,e,n){var i,r=this.group,o=t.getData(),a=this._data,s=t.coordinateSystem,l=s.getBaseAxis();"cartesian2d"===s.type?i=l.isHorizontal():"polar"===s.type&&(i="angle"===l.dim);var u=t.isAnimationEnabled()?t:null;o.diff(a).add(function(e){if(o.hasValue(e)){var n=o.getItemModel(e),a=ab[s.type](o,e,n),l=ob[s.type](o,e,n,a,i,u);o.setItemGraphicEl(e,l),r.add(l),Uu(l,o,e,n,a,t,i,"polar"===s.type)}}).update(function(e,n){var l=a.getItemGraphicEl(n);if(o.hasValue(e)){var h=o.getItemModel(e),c=ab[s.type](o,e,h);l?ar(l,{shape:c},u,e):l=ob[s.type](o,e,h,c,i,u,!0),o.setItemGraphicEl(e,l),r.add(l),Uu(l,o,e,h,c,t,i,"polar"===s.type)}else r.remove(l)}).remove(function(t){var e=a.getItemGraphicEl(t);"cartesian2d"===s.type?e&&Wu(t,u,e):e&&Zu(t,u,e)}).execute(),this._data=o},_renderLarge:function(t,e,n){this._clear(),ju(t,this.group)},_incrementalRenderLarge:function(t,e){ju(e,this.group,!0)},dispose:R,remove:function(t){this._clear(t)},_clear:function(t){var e=this.group,n=this._data;t&&t.get("animation")&&n&&!this._isLargeDraw?n.eachItemGraphicEl(function(e){"sector"===e.type?Zu(e.dataIndex,t,e):Wu(e.dataIndex,t,e)}):e.removeAll(),this._data=null}});var ob={cartesian2d:function(t,e,n,i,r,a,s){var l=new Fv({shape:o({},i)});if(a){var u=l.shape,h=r?"height":"width",c={};u[h]=0,c[h]=i[h],ty[s?"updateProps":"initProps"](l,{shape:c},a,e)}return l},polar:function(t,e,n,i,r,o,s){var l=i.startAngle<i.endAngle,u=new zv({shape:a({clockwise:l},i)});if(o){var h=u.shape,c=r?"r":"endAngle",d={};h[c]=r?0:i.startAngle,d[c]=i[c],ty[s?"updateProps":"initProps"](u,{shape:d},o,e)}return u}},ab={cartesian2d:function(t,e,n){var i=t.getItemLayout(e),r=Xu(n,i),o=i.width>0?1:-1,a=i.height>0?1:-1;return{x:i.x+o*r/2,y:i.y+a*r/2,width:i.width-o*r,height:i.height-a*r}},polar:function(t,e,n){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}},sb=xi.extend({type:"largeBar",shape:{points:[]},buildPath:function(t,e){for(var n=e.points,i=this.__startPoint,r=this.__valueIdx,o=0;o<n.length;o+=2)i[this.__valueIdx]=n[o+r],t.moveTo(i[0],i[1]),t.lineTo(n[o],n[o+1])}});es(v(function(t,e){var n=js(t,e),i=Ys(n),r={};d(n,function(t){var e=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=Us(t),s=i[Xs(o)][a],l=s.offset,u=s.width,h=n.getOtherAxis(o),c=t.get("barMinHeight")||0;r[a]=r[a]||[],e.setLayout({offset:l,size:u});for(var d=e.mapDimension(h.dim),f=e.mapDimension(o.dim),p=Ps(e,d),g=h.isHorizontal(),m=Js(o,h,p),v=0,y=e.count();v<y;v++){var x=e.get(d,v),_=e.get(f,v);if(!isNaN(x)){var w=x>=0?"p":"n",b=m;p&&(r[a][_]||(r[a][_]={p:m,n:m}),b=r[a][_][w]);var M,S,I,C;if(g)M=b,S=(T=n.dataToPoint([x,_]))[1]+l,I=T[0]-m,C=u,Math.abs(I)<c&&(I=(I<0?-1:1)*c),p&&(r[a][_][w]+=I);else{var T=n.dataToPoint([_,x]);M=T[0]+l,S=b,I=u,C=T[1]-m,Math.abs(C)<c&&(C=(C<=0?-1:1)*c),p&&(r[a][_][w]+=C)}e.setItemLayout(v,{x:M,y:S,width:I,height:C})}}},this)},"bar")),es(E_),ns({seriesType:"bar",reset:function(t){t.getData().setVisual("legendSymbol","roundRect")}});var lb=function(t,e,n){e=y(e)&&{coordDimensions:e}||o({},e);var i=t.getSource(),r=C_(i,e),a=new M_(r,t);return a.initData(i,n),a},ub={updateSelectedMap:function(t){this._targetList=y(t)?t.slice():[],this._selectTargetMap=p(t||[],function(t,e){return t.set(e.name,e),t},N())},select:function(t,e){var n=null!=e?this._targetList[e]:this._selectTargetMap.get(t);"single"===this.get("selectedMode")&&this._selectTargetMap.each(function(t){t.selected=!1}),n&&(n.selected=!0)},unSelect:function(t,e){var n=null!=e?this._targetList[e]:this._selectTargetMap.get(t);n&&(n.selected=!1)},toggleSelected:function(t,e){var n=null!=e?this._targetList[e]:this._selectTargetMap.get(t);if(null!=n)return this[n.selected?"unSelect":"select"](t,e),n.selected},isSelected:function(t,e){var n=null!=e?this._targetList[e]:this._selectTargetMap.get(t);return n&&n.selected}},hb=ss({type:"series.pie",init:function(t){hb.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()},this.updateSelectedMap(this._createSelectableList()),this._defaultLabelLine(t)},mergeOption:function(t){hb.superCall(this,"mergeOption",t),this.updateSelectedMap(this._createSelectableList())},getInitialData:function(t,e){return lb(this,["value"])},_createSelectableList:function(){for(var t=this.getRawData(),e=t.mapDimension("value"),n=[],i=0,r=t.count();i<r;i++)n.push({name:t.getName(i),value:t.get(e,i),selected:Uo(t,i,"selected")});return n},getDataParams:function(t){var e=this.getData(),n=hb.superCall(this,"getDataParams",t),i=[];return e.each(e.mapDimension("value"),function(t){i.push(t)}),n.percent=Cr(i,t,e.hostModel.get("percentPrecision")),n.$vars.push("percent"),n},_defaultLabelLine:function(t){_n(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},defaultOption:{zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,selectedOffset:10,hoverOffset:10,avoidLabelOverlap:!0,percentPrecision:2,stillShowZeroSum:!0,label:{rotate:!1,show:!0,position:"outer"},labelLine:{show:!0,length:15,length2:15,smooth:!1,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},animationType:"expansion",animationEasing:"cubicOut"}});h(hb,ub);var cb=Ku.prototype;cb.updateData=function(t,e,n){function i(){s.stopAnimation(!0),s.animateTo({shape:{r:h.r+l.get("hoverOffset")}},300,"elasticOut")}function r(){s.stopAnimation(!0),s.animateTo({shape:{r:h.r}},300,"elasticOut")}var s=this.childAt(0),l=t.hostModel,u=t.getItemModel(e),h=t.getItemLayout(e),c=o({},h);c.label=null,n?(s.setShape(c),"scale"===l.getShallow("animationType")?(s.shape.r=h.r0,sr(s,{shape:{r:h.r}},l,e)):(s.shape.endAngle=h.startAngle,ar(s,{shape:{endAngle:h.endAngle}},l,e))):ar(s,{shape:c},l,e);var d=t.getItemVisual(e,"color");s.useStyle(a({lineJoin:"bevel",fill:d},u.getModel("itemStyle").getItemStyle())),s.hoverStyle=u.getModel("emphasis.itemStyle").getItemStyle();var f=u.getShallow("cursor");f&&s.attr("cursor",f),$u(this,t.getItemLayout(e),l.isSelected(null,e),l.get("selectedOffset"),l.get("animation")),s.off("mouseover").off("mouseout").off("emphasis").off("normal"),u.get("hoverAnimation")&&l.isAnimationEnabled()&&s.on("mouseover",i).on("mouseout",r).on("emphasis",i).on("normal",r),this._updateLabel(t,e),qi(this)},cb._updateLabel=function(t,e){var n=this.childAt(1),i=this.childAt(2),r=t.hostModel,o=t.getItemModel(e),a=t.getItemLayout(e).label,s=t.getItemVisual(e,"color");ar(n,{shape:{points:a.linePoints||[[a.x,a.y],[a.x,a.y],[a.x,a.y]]}},r,e),ar(i,{style:{x:a.x,y:a.y}},r,e),i.attr({rotation:a.rotation,origin:[a.x,a.y],z2:10});var l=o.getModel("label"),u=o.getModel("emphasis.label"),h=o.getModel("labelLine"),c=o.getModel("emphasis.labelLine"),s=t.getItemVisual(e,"color");$i(i.style,i.hoverStyle={},l,u,{labelFetcher:t.hostModel,labelDataIndex:e,defaultText:t.getName(e),autoColor:s,useInsideStyle:!!a.inside},{textAlign:a.textAlign,textVerticalAlign:a.verticalAlign,opacity:t.getItemVisual(e,"opacity")}),i.ignore=i.normalIgnore=!l.get("show"),i.hoverIgnore=!u.get("show"),n.ignore=n.normalIgnore=!h.get("show"),n.hoverIgnore=!c.get("show"),n.setStyle({stroke:s,opacity:t.getItemVisual(e,"opacity")}),n.setStyle(h.getModel("lineStyle").getLineStyle()),n.hoverStyle=c.getModel("lineStyle").getLineStyle();var d=h.get("smooth");d&&!0===d&&(d=.4),n.setShape({smooth:d})},u(Ku,Sg);ra.extend({type:"pie",init:function(){var t=new Sg;this._sectorGroup=t},render:function(t,e,n,i){if(!i||i.from!==this.uid){var r=t.getData(),o=this._data,a=this.group,s=e.get("animation"),l=!o,u=t.get("animationType"),h=v(qu,this.uid,t,s,n),c=t.get("selectedMode");if(r.diff(o).add(function(t){var e=new Ku(r,t);l&&"scale"!==u&&e.eachChild(function(t){t.stopAnimation(!0)}),c&&e.on("click",h),r.setItemGraphicEl(t,e),a.add(e)}).update(function(t,e){var n=o.getItemGraphicEl(e);n.updateData(r,t),n.off("click"),c&&n.on("click",h),a.add(n),r.setItemGraphicEl(t,n)}).remove(function(t){var e=o.getItemGraphicEl(t);a.remove(e)}).execute(),s&&l&&r.count()>0&&"scale"!==u){var d=r.getItemLayout(0),f=Math.max(n.getWidth(),n.getHeight())/2,p=m(a.removeClipPath,a);a.setClipPath(this._createClipPath(d.cx,d.cy,f,d.startAngle,d.clockwise,p,t))}this._data=r}},dispose:function(){},_createClipPath:function(t,e,n,i,r,o,a){var s=new zv({shape:{cx:t,cy:e,r0:0,r:n,startAngle:i,endAngle:i,clockwise:r}});return sr(s,{shape:{endAngle:i+(r?1:-1)*Math.PI*2}},a,o),s},containPoint:function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}}});var db=function(t,e,n,i){var r,o,a=t.getData(),s=[],l=!1;a.each(function(n){var i,u,h,c,d=a.getItemLayout(n),f=a.getItemModel(n),p=f.getModel("label"),g=p.get("position")||f.get("emphasis.label.position"),m=f.getModel("labelLine"),v=m.get("length"),y=m.get("length2"),x=(d.startAngle+d.endAngle)/2,_=Math.cos(x),w=Math.sin(x);r=d.cx,o=d.cy;var b="inside"===g||"inner"===g;if("center"===g)i=d.cx,u=d.cy,c="center";else{var M=(b?(d.r+d.r0)/2*_:d.r*_)+r,S=(b?(d.r+d.r0)/2*w:d.r*w)+o;if(i=M+3*_,u=S+3*w,!b){var I=M+_*(v+e-d.r),C=S+w*(v+e-d.r),T=I+(_<0?-1:1)*y,D=C;i=T+(_<0?-5:5),u=D,h=[[M,S],[I,C],[T,D]]}c=b?"center":_>0?"left":"right"}var A=p.getFont(),k=p.get("rotate")?_<0?-x+Math.PI:-x:0,P=ce(t.getFormattedLabel(n,"normal")||a.getName(n),A,c,"top");l=!!k,d.label={x:i,y:u,position:g,height:P.height,len:v,len2:y,linePoints:h,textAlign:c,verticalAlign:"middle",rotation:k,inside:b},b||s.push(d.label)}),!l&&t.get("avoidLabelOverlap")&&Ju(s,r,o,e,n,i)},fb=2*Math.PI,pb=Math.PI/180;!function(t,e){d(e,function(e){e.update="updateView",ts(e,function(n,i){var r={};return i.eachComponent({mainType:"series",subType:t,query:n},function(t){t[e.method]&&t[e.method](n.name,n.dataIndex);var i=t.getData();i.each(function(e){var n=i.getName(e);r[n]=t.isSelected(n)||!1})}),{name:n.name,selected:r}})})}("pie",[{type:"pieToggleSelect",event:"pieselectchanged",method:"toggleSelected"},{type:"pieSelect",event:"pieselected",method:"select"},{type:"pieUnSelect",event:"pieunselected",method:"unSelect"}]),ns(function(t){return{getTargetSeries:function(e){var n={},i=N();return e.eachSeriesByType(t,function(t){t.__paletteScope=n,i.set(t.uid,t)}),i},reset:function(t,e){var n=t.getRawData(),i={},r=t.getData();r.each(function(t){var e=r.getRawIndex(t);i[e]=t}),n.each(function(e){var o=i[e],a=null!=o&&r.getItemVisual(o,"color",!0);if(a)n.setItemVisual(e,"color",a);else{var s=n.getItemModel(e).get("itemStyle.color")||t.getColorFromPalette(n.getName(e)||e+"",t.__paletteScope,n.count());n.setItemVisual(e,"color",s),null!=o&&r.setItemVisual(o,"color",s)}})}}}("pie")),es(v(function(t,e,n,i){e.eachSeriesByType(t,function(t){var e=t.getData(),i=e.mapDimension("value"),r=t.get("center"),o=t.get("radius");y(o)||(o=[0,o]),y(r)||(r=[r,r]);var a=n.getWidth(),s=n.getHeight(),l=Math.min(a,s),u=_r(r[0],a),h=_r(r[1],s),c=_r(o[0],l/2),d=_r(o[1],l/2),f=-t.get("startAngle")*pb,p=t.get("minAngle")*pb,g=0;e.each(i,function(t){!isNaN(t)&&g++});var m=e.getSum(i),v=Math.PI/(m||g)*2,x=t.get("clockwise"),_=t.get("roseType"),w=t.get("stillShowZeroSum"),b=e.getDataExtent(i);b[0]=0;var M=fb,S=0,I=f,C=x?1:-1;if(e.each(i,function(t,n){var i;if(isNaN(t))e.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:x,cx:u,cy:h,r0:c,r:_?NaN:d});else{(i="area"!==_?0===m&&w?v:t*v:fb/g)<p?(i=p,M-=p):S+=t;var r=I+C*i;e.setItemLayout(n,{angle:i,startAngle:I,endAngle:r,clockwise:x,cx:u,cy:h,r0:c,r:_?xr(t,b,[c,d]):d}),I=r}}),M<fb&&g)if(M<=.001){var T=fb/g;e.each(i,function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n);i.angle=T,i.startAngle=f+C*n*T,i.endAngle=f+C*(n+1)*T}})}else v=M/S,I=f,e.each(i,function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n),r=i.angle===p?p:t*v;i.startAngle=I,i.endAngle=I+C*r,I+=C*r}});db(t,d,a,s)})},"pie")),Ja(function(t){return{seriesType:t,reset:function(t,e){var n=e.findComponents({mainType:"legend"});if(n&&n.length){var i=t.getData();i.filterSelf(function(t){for(var e=i.getName(t),r=0;r<n.length;r++)if(!n[r].isSelected(e))return!1;return!0})}}}}("pie")),cx.extend({type:"series.scatter",dependencies:["grid","polar","geo","singleAxis","calendar"],getInitialData:function(t,e){return Os(this.getSource(),this)},brushSelector:"point",getProgressive:function(){var t=this.option.progressive;return null==t?this.option.large?5e3:this.get("progressive"):t},getProgressiveThreshold:function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?1e4:this.get("progressiveThreshold"):t},defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8}}});var gb=Ai({shape:{points:null},symbolProxy:null,buildPath:function(t,e){var n=e.points,i=e.size,r=this.symbolProxy,o=r.shape;if(!((t.getContext?t.getContext():t)&&i[0]<4))for(var a=0;a<n.length;){var s=n[a++],l=n[a++];isNaN(s)||isNaN(l)||(o.x=s-i[0]/2,o.y=l-i[1]/2,o.width=i[0],o.height=i[1],r.buildPath(t,o,!0))}},afterBrush:function(t){var e=this.shape,n=e.points,i=e.size;if(i[0]<4){this.setTransform(t);for(var r=0;r<n.length;){var o=n[r++],a=n[r++];isNaN(o)||isNaN(a)||t.fillRect(o-i[0]/2,a-i[1]/2,i[0],i[1])}this.restoreTransform(t)}},findDataIndex:function(t,e){for(var n=this.shape,i=n.points,r=n.size,o=Math.max(r[0],4),a=Math.max(r[1],4),s=i.length/2-1;s>=0;s--){var l=2*s,u=i[l]-o/2,h=i[l+1]-a/2;if(t>=u&&e>=h&&t<=u+o&&e<=h+a)return s}return-1}}),mb=th.prototype;mb.isPersistent=function(){return!this._incremental},mb.updateData=function(t){this.group.removeAll();var e=new gb({rectHover:!0,cursor:"default"});e.setShape({points:t.getLayout("symbolPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},mb.updateLayout=function(t){if(!this._incremental){var e=t.getLayout("symbolPoints");this.group.eachChild(function(t){if(null!=t.startIndex){var n=2*(t.endIndex-t.startIndex),i=4*t.startIndex*2;e=new Float32Array(e.buffer,i,n)}t.setShape("points",e)})}},mb.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>2e6?(this._incremental||(this._incremental=new Di({silent:!0})),this.group.add(this._incremental)):this._incremental=null},mb.incrementalUpdate=function(t,e){var n;this._incremental?(n=new gb,this._incremental.addDisplayable(n,!0)):((n=new gb({rectHover:!0,cursor:"default",startIndex:t.start,endIndex:t.end})).incremental=!0,this.group.add(n)),n.setShape({points:e.getLayout("symbolPoints")}),this._setCommon(n,e,!!this._incremental)},mb._setCommon=function(t,e,n){var i=e.hostModel,r=e.getVisual("symbolSize");t.setShape("size",r instanceof Array?r:[r,r]),t.symbolProxy=cl(e.getVisual("symbol"),0,0,0,0),t.setColor=t.symbolProxy.setColor;var o=t.shape.size[0]<4;t.useStyle(i.getModel("itemStyle").getItemStyle(o?["color","shadowBlur","shadowColor"]:["color"]));var a=e.getVisual("color");a&&t.setColor(a),n||(t.seriesIndex=i.seriesIndex,t.on("mousemove",function(e){t.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>=0&&(t.dataIndex=n+(t.startIndex||0))}))},mb.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},mb._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},ls({type:"scatter",render:function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).updateData(i),this._finished=!0},incrementalPrepareRender:function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).incrementalPrepareUpdate(i),this._finished=!1},incrementalRender:function(t,e,n){this._symbolDraw.incrementalUpdate(t,e.getData()),this._finished=t.end===e.getData().count()},updateTransform:function(t,e,n){var i=t.getData();if(this.group.dirty(),!this._finished||i.count()>1e4||!this._symbolDraw.isPersistent())return{update:!0};var r=Lw().reset(t);r.progress&&r.progress({start:0,end:i.count()},i),this._symbolDraw.updateLayout(i)},_updateSymbolDraw:function(t,e){var n=this._symbolDraw,i=e.pipelineContext.large;return n&&i===this._isLargeDraw||(n&&n.remove(),n=this._symbolDraw=i?new th:new Bl,this._isLargeDraw=i,this.group.removeAll()),this.group.add(n.group),n},remove:function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},dispose:function(){}}),ns(Pw("scatter","circle")),es(Lw("scatter")),Qa(function(t){var e=t.graphic;y(e)?e[0]&&e[0].elements?t.graphic=[t.graphic[0]]:t.graphic=[{elements:e}]:e&&!e.elements&&(t.graphic=[{elements:[e]}])});var vb=os({type:"graphic",defaultOption:{elements:[],parentId:null},_elOptionsToUpdate:null,mergeOption:function(t){var e=this.option.elements;this.option.elements=null,vb.superApply(this,"mergeOption",arguments),this.option.elements=e},optionUpdated:function(t,e){var n=this.option,i=(e?n:t).elements,r=n.elements=e?[]:n.elements,o=[];this._flatten(i,o);var a=Mn(r,o);Sn(a);var s=this._elOptionsToUpdate=[];d(a,function(t,e){var n=t.option;n&&(s.push(n),oh(t,n),ah(r,e,n),sh(r[e],n))},this);for(var l=r.length-1;l>=0;l--)null==r[l]?r.splice(l,1):delete r[l].$action},_flatten:function(t,e,n){d(t,function(t){if(t){n&&(t.parentOption=n),e.push(t);var i=t.children;"group"===t.type&&i&&this._flatten(i,e,t),delete t.children}},this)},useElOptionsToUpdate:function(){var t=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,t}});as({type:"graphic",init:function(t,e){this._elMap=N(),this._lastGraphicModel},render:function(t,e,n){t!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=t,this._updateElements(t,n),this._relocate(t,n)},_updateElements:function(t,e){var n=t.useElOptionsToUpdate();if(n){var i=this._elMap,r=this.group;d(n,function(t){var e=t.$action,n=t.id,o=i.get(n),a=t.parentId,s=null!=a?i.get(a):r;if("text"===t.type){var l=t.style;t.hv&&t.hv[1]&&(l.textVerticalAlign=l.textBaseline=null),!l.hasOwnProperty("textFill")&&l.fill&&(l.textFill=l.fill),!l.hasOwnProperty("textStroke")&&l.stroke&&(l.textStroke=l.stroke)}var u=ih(t);e&&"merge"!==e?"replace"===e?(nh(o,i),eh(n,s,u,i)):"remove"===e&&nh(o,i):o?o.attr(u):eh(n,s,u,i);var h=i.get(n);h&&(h.__ecGraphicWidth=t.width,h.__ecGraphicHeight=t.height)})}},_relocate:function(t,e){for(var n=t.option.elements,i=this.group,r=this._elMap,o=n.length-1;o>=0;o--){var a=n[o],s=r.get(a.id);if(s){var l=s.parent;Wr(s,a,l===i?{width:e.getWidth(),height:e.getHeight()}:{width:l.__ecGraphicWidth||0,height:l.__ecGraphicHeight||0},null,{hv:a.hv,boundingMode:a.bounding})}}},_clear:function(){var t=this._elMap;t.each(function(e){nh(e,t)}),this._elMap=N()},dispose:function(){this._clear()}});var yb=function(t,e){var n,i=[],r=t.seriesIndex;if(null==r||!(n=e.getSeriesByIndex(r)))return{point:[]};var o=n.getData(),a=Tn(o,t);if(null==a||a<0||y(a))return{point:[]};var s=o.getItemGraphicEl(a),l=n.coordinateSystem;if(n.getTooltipPosition)i=n.getTooltipPosition(a)||[];else if(l&&l.dataToPoint)i=l.dataToPoint(o.getValues(f(l.dimensions,function(t){return o.mapDimension(t)}),a,!0))||[];else if(s){var u=s.getBoundingRect().clone();u.applyTransform(s.transform),i=[u.x+u.width/2,u.y+u.height/2]}return{point:i,el:s}},xb=d,_b=v,wb=Dn(),bb=(os({type:"axisPointer",coordSysAxesInfo:null,defaultOption:{show:"auto",triggerOn:null,zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#aaa",width:1,type:"solid"},shadowStyle:{color:"rgba(150,150,150,0.3)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,shadowBlur:3,shadowColor:"#aaa"},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}}}),Dn()),Mb=d,Sb=as({type:"axisPointer",render:function(t,e,n){var i=e.getComponent("tooltip"),r=t.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";yh("axisPointer",n,function(t,e,n){"none"!==r&&("leave"===t||r.indexOf(t)>=0)&&n({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})})},remove:function(t,e){Sh(e.getZr(),"axisPointer"),Sb.superApply(this._model,"remove",arguments)},dispose:function(t,e){Sh("axisPointer",e),Sb.superApply(this._model,"dispose",arguments)}}),Ib=Dn(),Cb=n,Tb=m;(Ih.prototype={_group:null,_lastGraphicKey:null,_handle:null,_dragging:!1,_lastValue:null,_lastStatus:null,_payloadInfo:null,animationThreshold:15,render:function(t,e,n,i){var r=e.get("value"),o=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=n,i||this._lastValue!==r||this._lastStatus!==o){this._lastValue=r,this._lastStatus=o;var a=this._group,s=this._handle;if(!o||"hide"===o)return a&&a.hide(),void(s&&s.hide());a&&a.show(),s&&s.show();var l={};this.makeElOption(l,r,t,e,n);var u=l.graphicKey;u!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=u;var h=this._moveAnimation=this.determineAnimation(t,e);if(a){var c=v(Ch,e,h);this.updatePointerEl(a,l,c,e),this.updateLabelEl(a,l,c,e)}else a=this._group=new Sg,this.createPointerEl(a,l,t,e),this.createLabelEl(a,l,t,e),n.getZr().add(a);kh(a,e,!0),this._renderHandle(r)}},remove:function(t){this.clear(t)},dispose:function(t){this.clear(t)},determineAnimation:function(t,e){var n=e.get("animation"),i=t.axis,r="category"===i.type,o=e.get("snap");if(!o&&!r)return!1;if("auto"===n||null==n){var a=this.animationThreshold;if(r&&i.getBandWidth()>a)return!0;if(o){var s=zu(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1}return!0===n},makeElOption:function(t,e,n,i,r){},createPointerEl:function(t,e,n,i){var r=e.pointer;if(r){var o=Ib(t).pointerEl=new ty[r.type](Cb(e.pointer));t.add(o)}},createLabelEl:function(t,e,n,i){if(e.label){var r=Ib(t).labelEl=new Fv(Cb(e.label));t.add(r),Dh(r,i)}},updatePointerEl:function(t,e,n){var i=Ib(t).pointerEl;i&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,n,i){var r=Ib(t).labelEl;r&&(r.setStyle(e.label.style),n(r,{shape:e.label.shape,position:e.label.position}),Dh(r,i))},_renderHandle:function(t){if(!this._dragging&&this.updateHandleTransform){var e=this._axisPointerModel,n=this._api.getZr(),i=this._handle,r=e.getModel("handle"),o=e.get("status");if(!r.get("show")||!o||"hide"===o)return i&&n.remove(i),void(this._handle=null);var a;this._handle||(a=!0,i=this._handle=fr(r.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){tm(t.event)},onmousedown:Tb(this._onHandleDragMove,this,0,0),drift:Tb(this._onHandleDragMove,this),ondragend:Tb(this._onHandleDragEnd,this)}),n.add(i)),kh(i,e,!1);var s=["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];i.setStyle(r.getItemStyle(null,s));var l=r.get("size");y(l)||(l=[l,l]),i.attr("scale",[l[0]/2,l[1]/2]),ha(this,"_doDispatchAxisPointer",r.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,a)}},_moveHandleToValue:function(t,e){Ch(this._axisPointerModel,!e&&this._moveAnimation,this._handle,Ah(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(t,e){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(Ah(n),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(Ah(i)),Ib(n).lastProp=null,this._doDispatchAxisPointer()}},_doDispatchAxisPointer:function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},_onHandleDragEnd:function(t){if(this._dragging=!1,this._handle){var e=this._axisPointerModel.get("value");this._moveHandleToValue(e),this._api.dispatchAction({type:"hideTip"})}},getHandleTransform:null,updateHandleTransform:null,clear:function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null)},doClear:function(){},buildLabel:function(t,e,n){return n=n||0,{x:t[n],y:t[1-n],width:e[n],height:e[1-n]}}}).constructor=Ih,En(Ih);var Db=Ih.extend({makeElOption:function(t,e,n,i,r){var o=n.axis,a=o.grid,s=i.get("type"),l=Vh(a,o).getOtherAxis(o).getGlobalExtent(),u=o.toGlobalCoord(o.dataToCoord(e,!0));if(s&&"none"!==s){var h=Ph(i),c=Ab[s](o,u,l,h);c.style=h,t.graphicKey=c.type,t.pointer=c}Nh(e,t,Fu(a.model,n),n,i,r)},getHandleTransform:function(t,e,n){var i=Fu(e.axis.grid.model,e,{labelInside:!1});return i.labelMargin=n.get("handle.margin"),{position:Eh(e.axis,t,i),rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,n,i){var r=n.axis,o=r.grid,a=r.getGlobalExtent(!0),s=Vh(o,r).getOtherAxis(r).getGlobalExtent(),l="x"===r.dim?0:1,u=t.position;u[l]+=e[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];c[l]=u[l];var d=[{verticalAlign:"middle"},{align:"center"}];return{position:u,rotation:t.rotation,cursorPoint:c,tooltipOption:d[l]}}}),Ab={line:function(t,e,n,i){var r=Rh([e,n[0]],[e,n[1]],Fh(t));return zi({shape:r,style:i}),{type:"Line",shape:r}},shadow:function(t,e,n,i){var r=Math.max(1,t.getBandWidth()),o=n[1]-n[0];return{type:"Rect",shape:Bh([e-r/2,n[0]],[r,o],Fh(t))}}};Kw.registerAxisPointerClass("CartesianAxisPointer",Db),Qa(function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!y(e)&&(t.axisPointer.link=[e])}}),Ja(Xx.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=Tu(t,e)}),ts({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},function(t,e,n){var i=t.currTrigger,r=[t.x,t.y],o=t,a=t.dispatchAction||m(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){vh(r)&&(r=yb({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=vh(r),u=o.axesInfo,h=s.axesInfo,c="leave"===i||vh(r),d={},f={},p={list:[],map:{}},g={showPointer:_b(hh,f),showTooltip:_b(ch,p)};xb(s.coordSysMap,function(t,e){var n=l||t.containPoint(r);xb(s.coordSysAxesInfo[e],function(t,e){var i=t.axis,o=gh(u,t);if(!c&&n&&(!u||o)){var a=o&&o.value;null!=a||l||(a=i.pointToData(r)),null!=a&&lh(t,a,g,!1,d)}})});var v={};return xb(h,function(t,e){var n=t.linkGroup;n&&!f[e]&&xb(n.axesInfo,function(e,i){var r=f[i];if(e!==t&&r){var o=r.value;n.mapper&&(o=t.axis.scale.parse(n.mapper(o,mh(e),mh(t)))),v[t.key]=o}})}),xb(v,function(t,e){lh(h[e],t,g,!0,d)}),dh(f,h,d),fh(p,r,t,a),ph(h,0,n),d}}),os({type:"tooltip",dependencies:["axisPointer"],defaultOption:{zlevel:0,z:8,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",confine:!1,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"rgba(50,50,50,0.7)",borderColor:"#333",borderRadius:4,borderWidth:0,padding:5,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#fff",fontSize:14}}});var kb=d,Pb=zr,Lb=["","-webkit-","-moz-","-o-"];Zh.prototype={constructor:Zh,_enterable:!0,update:function(){var t=this._container,e=t.currentStyle||document.defaultView.getComputedStyle(t),n=t.style;"absolute"!==n.position&&"absolute"!==e.position&&(n.position="relative")},show:function(t){clearTimeout(this._hideTimeout);var e=this.el;e.style.cssText="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;"+Wh(t)+";left:"+this._x+"px;top:"+this._y+"px;"+(t.get("extraCssText")||""),e.style.display=e.innerHTML?"block":"none",this._show=!0},setContent:function(t){this.el.innerHTML=null==t?"":t},setEnterable:function(t){this._enterable=t},getSize:function(){var t=this.el;return[t.clientWidth,t.clientHeight]},moveTo:function(t,e){var n,i=this._zr;i&&i.painter&&(n=i.painter.getViewportRootOffset())&&(t+=n.offsetLeft,e+=n.offsetTop);var r=this.el.style;r.left=t+"px",r.top=e+"px",this._x=t,this._y=e},hide:function(){this.el.style.display="none",this._show=!1},hideLater:function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(m(this.hide,this),t)):this.hide())},isShow:function(){return this._show}};var Ob=m,zb=d,Eb=_r,Nb=new Fv({shape:{x:-1,y:-1,width:2,height:2}});as({type:"tooltip",init:function(t,e){if(!bp.node){var n=new Zh(e.getDom(),e);this._tooltipContent=n}},render:function(t,e,n){if(!bp.node&&!bp.wxa){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=n,this._lastDataByCoordSys=null,this._alwaysShowContent=t.get("alwaysShowContent");var i=this._tooltipContent;i.update(),i.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},_initGlobalListener:function(){var t=this._tooltipModel.get("triggerOn");yh("itemTooltip",this._api,Ob(function(e,n,i){"none"!==t&&(t.indexOf(e)>=0?this._tryShow(n,i):"leave"===e&&this._hide(i))},this))},_keepShow:function(){var t=this._tooltipModel,e=this._ecModel,n=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var i=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){i.manuallyShowTip(t,e,n,{x:i._lastX,y:i._lastY})})}},manuallyShowTip:function(t,e,n,i){if(i.from!==this.uid&&!bp.node){var r=Xh(i,n);this._ticket="";var o=i.dataByCoordSys;if(i.tooltip&&null!=i.x&&null!=i.y){var a=Nb;a.position=[i.x,i.y],a.update(),a.tooltip=i.tooltip,this._tryShow({offsetX:i.x,offsetY:i.y,target:a},r)}else if(o)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,event:{},dataByCoordSys:i.dataByCoordSys,tooltipOption:i.tooltipOption},r);else if(null!=i.seriesIndex){if(this._manuallyAxisShowTip(t,e,n,i))return;var s=yb(i,e),l=s.point[0],u=s.point[1];null!=l&&null!=u&&this._tryShow({offsetX:l,offsetY:u,position:i.position,target:s.el,event:{}},r)}else null!=i.x&&null!=i.y&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target,event:{}},r))}},manuallyHideTip:function(t,e,n,i){var r=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=null,i.from!==this.uid&&this._hide(Xh(i,n))},_manuallyAxisShowTip:function(t,e,n,i){var r=i.seriesIndex,o=i.dataIndex,a=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=o&&null!=a){var s=e.getSeriesByIndex(r);if(s&&"axis"===(t=Uh([s.getData().getItemModel(o),s,(s.coordinateSystem||{}).model,t])).get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:o,position:i.position}),!0}},_tryShow:function(t,e){var n=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var i=t.dataByCoordSys;i&&i.length?this._showAxisTooltip(i,t):n&&null!=n.dataIndex?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,n,e)):n&&n.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,n,e)):(this._lastDataByCoordSys=null,this._hide(e))}},_showOrMove:function(t,e){var n=t.get("showDelay");e=m(e,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(e,n):e()},_showAxisTooltip:function(t,e){var n=this._ecModel,i=this._tooltipModel,r=[e.offsetX,e.offsetY],o=[],a=[],s=Uh([e.tooltipOption,i]);zb(t,function(t){zb(t.dataByAxis,function(t){var e=n.getComponent(t.axisDim+"Axis",t.axisIndex),i=t.value,r=[];if(e&&null!=i){var s=zh(i,e.axis,n,t.seriesDataIndices,t.valueLabelOpt);d(t.seriesDataIndices,function(o){var l=n.getSeriesByIndex(o.seriesIndex),u=o.dataIndexInside,h=l&&l.getDataParams(u);h.axisDim=t.axisDim,h.axisIndex=t.axisIndex,h.axisType=t.axisType,h.axisId=t.axisId,h.axisValue=sl(e.axis,i),h.axisValueLabel=s,h&&(a.push(h),r.push(l.formatTooltip(u,!0)))});var l=s;o.push((l?Er(l)+"<br />":"")+r.join("<br />"))}})},this),o.reverse(),o=o.join("<br /><br />");var l=e.position;this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(s,l,r[0],r[1],this._tooltipContent,a):this._showTooltipContent(s,o,a,Math.random(),r[0],r[1],l)})},_showSeriesItemTooltip:function(t,e,n){var i=this._ecModel,r=e.seriesIndex,o=i.getSeriesByIndex(r),a=e.dataModel||o,s=e.dataIndex,l=e.dataType,u=a.getData(),h=Uh([u.getItemModel(s),a,o&&(o.coordinateSystem||{}).model,this._tooltipModel]),c=h.get("trigger");if(null==c||"item"===c){var d=a.getDataParams(s,l),f=a.formatTooltip(s,!1,l),p="item_"+a.name+"_"+s;this._showOrMove(h,function(){this._showTooltipContent(h,f,d,p,t.offsetX,t.offsetY,t.position,t.target)}),n({type:"showTip",dataIndexInside:s,dataIndex:u.getRawIndex(s),seriesIndex:r,from:this.uid})}},_showComponentItemTooltip:function(t,e,n){var i=e.tooltip;if("string"==typeof i){var r=i;i={content:r,formatter:r}}var o=new pr(i,this._tooltipModel,this._ecModel),a=o.get("content"),s=Math.random();this._showOrMove(o,function(){this._showTooltipContent(o,a,o.get("formatterParams")||{},s,t.offsetX,t.offsetY,t.position,e)}),n({type:"showTip",from:this.uid})},_showTooltipContent:function(t,e,n,i,r,o,a,s){if(this._ticket="",t.get("showContent")&&t.get("show")){var l=this._tooltipContent,u=t.get("formatter");a=a||t.get("position");var h=e;if(u&&"string"==typeof u)h=Nr(u,n,!0);else if("function"==typeof u){var c=Ob(function(e,i){e===this._ticket&&(l.setContent(i),this._updatePosition(t,a,r,o,l,n,s))},this);this._ticket=i,h=u(n,i,c)}l.setContent(h),l.show(t),this._updatePosition(t,a,r,o,l,n,s)}},_updatePosition:function(t,e,n,i,r,o,a){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var u=r.getSize(),h=t.get("align"),c=t.get("verticalAlign"),d=a&&a.getBoundingRect().clone();if(a&&d.applyTransform(a.transform),"function"==typeof e&&(e=e([n,i],o,r.el,d,{viewSize:[s,l],contentSize:u.slice()})),y(e))n=Eb(e[0],s),i=Eb(e[1],l);else if(w(e)){e.width=u[0],e.height=u[1];var f=Gr(e,{width:s,height:l});n=f.x,i=f.y,h=null,c=null}else"string"==typeof e&&a?(n=(p=$h(e,d,u))[0],i=p[1]):(n=(p=jh(n,i,r.el,s,l,h?null:20,c?null:20))[0],i=p[1]);if(h&&(n-=Kh(h)?u[0]/2:"right"===h?u[0]:0),c&&(i-=Kh(c)?u[1]/2:"bottom"===c?u[1]:0),t.get("confine")){var p=Yh(n,i,r.el,s,l);n=p[0],i=p[1]}r.moveTo(n,i)},_updateContentNotChangedOnAxis:function(t){var e=this._lastDataByCoordSys,n=!!e&&e.length===t.length;return n&&zb(e,function(e,i){var r=e.dataByAxis||{},o=(t[i]||{}).dataByAxis||[];(n&=r.length===o.length)&&zb(r,function(t,e){var i=o[e]||{},r=t.seriesDataIndices||[],a=i.seriesDataIndices||[];(n&=t.value===i.value&&t.axisType===i.axisType&&t.axisId===i.axisId&&r.length===a.length)&&zb(r,function(t,e){var i=a[e];n&=t.seriesIndex===i.seriesIndex&&t.dataIndex===i.dataIndex})})}),this._lastDataByCoordSys=t,!!n},_hide:function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},dispose:function(t,e){bp.node||bp.wxa||(this._tooltipContent.hide(),Sh("itemTooltip",e))}}),ts({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){}),ts({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},function(){});var Rb=os({type:"legend.plain",dependencies:["series"],layoutMode:{type:"box",ignoreSize:!0},init:function(t,e,n){this.mergeDefaultAndTheme(t,n),t.selected=t.selected||{}},mergeOption:function(t){Rb.superCall(this,"mergeOption",t)},optionUpdated:function(){this._updateData(this.ecModel);var t=this._data;if(t[0]&&"single"===this.get("selectedMode")){for(var e=!1,n=0;n<t.length;n++){var i=t[n].get("name");if(this.isSelected(i)){this.select(i),e=!0;break}}!e&&this.select(t[0].get("name"))}},_updateData:function(t){var e=[],n=[];t.eachRawSeries(function(i){var r=i.name;n.push(r);var o;if(i.legendDataProvider){var a=i.legendDataProvider(),s=a.mapArray(a.getName);t.isSeriesFiltered(i)||(n=n.concat(s)),s.length?e=e.concat(s):o=!0}else o=!0;o&&In(i)&&e.push(i.name)}),this._availableNames=n;var i=f(this.get("data")||e,function(t){return"string"!=typeof t&&"number"!=typeof t||(t={name:t}),new pr(t,this,this.ecModel)},this);this._data=i},getData:function(){return this._data},select:function(t){var e=this.option.selected;"single"===this.get("selectedMode")&&d(this._data,function(t){e[t.get("name")]=!1}),e[t]=!0},unSelect:function(t){"single"!==this.get("selectedMode")&&(this.option.selected[t]=!1)},toggleSelected:function(t){var e=this.option.selected;e.hasOwnProperty(t)||(e[t]=!0),this[e[t]?"unSelect":"select"](t)},isSelected:function(t){var e=this.option.selected;return!(e.hasOwnProperty(t)&&!e[t])&&l(this._availableNames,t)>=0},defaultOption:{zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",textStyle:{color:"#333"},selectedMode:!0,tooltip:{show:!1}}});ts("legendToggleSelect","legendselectchanged",v(Qh,"toggleSelected")),ts("legendSelect","legendselected",v(Qh,"select")),ts("legendUnSelect","legendunselected",v(Qh,"unSelect"));var Bb=v,Vb=d,Fb=Sg,Hb=as({type:"legend.plain",newlineDisabled:!1,init:function(){this.group.add(this._contentGroup=new Fb),this._backgroundEl},getContentGroup:function(){return this._contentGroup},render:function(t,e,n){if(this.resetInner(),t.get("show",!0)){var i=t.get("align");i&&"auto"!==i||(i="right"===t.get("left")&&"vertical"===t.get("orient")?"right":"left"),this.renderInner(i,t,e,n);var r=t.getBoxLayoutParams(),o={width:n.getWidth(),height:n.getHeight()},s=t.get("padding"),l=Gr(r,o,s),u=this.layoutInner(t,i,l),h=Gr(a({width:u.width,height:u.height},r),o,s);this.group.attr("position",[h.x-u.x,h.y-u.y]),this.group.add(this._backgroundEl=tc(u,t))}},resetInner:function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl)},renderInner:function(t,e,n,i){var r=this.getContentGroup(),o=N(),a=e.get("selectedMode"),s=[];n.eachRawSeries(function(t){!t.get("legendHoverLink")&&s.push(t.id)}),Vb(e.getData(),function(l,u){var h=l.get("name");if(this.newlineDisabled||""!==h&&"\n"!==h){var c=n.getSeriesByName(h)[0];if(!o.get(h))if(c){var d=c.getData(),f=d.getVisual("color");"function"==typeof f&&(f=f(c.getDataParams(0)));var p=d.getVisual("legendSymbol")||"roundRect",g=d.getVisual("symbol");this._createItem(h,u,l,e,p,g,t,f,a).on("click",Bb(ec,h,i)).on("mouseover",Bb(nc,c,null,i,s)).on("mouseout",Bb(ic,c,null,i,s)),o.set(h,!0)}else n.eachRawSeries(function(n){if(!o.get(h)&&n.legendDataProvider){var r=n.legendDataProvider(),c=r.indexOfName(h);if(c<0)return;var d=r.getItemVisual(c,"color");this._createItem(h,u,l,e,"roundRect",null,t,d,a).on("click",Bb(ec,h,i)).on("mouseover",Bb(nc,n,h,i,s)).on("mouseout",Bb(ic,n,h,i,s)),o.set(h,!0)}},this)}else r.add(new Fb({newline:!0}))},this)},_createItem:function(t,e,n,i,r,a,s,l,u){var h=i.get("itemWidth"),c=i.get("itemHeight"),d=i.get("inactiveColor"),f=i.get("symbolKeepAspect"),p=i.isSelected(t),g=new Fb,m=n.getModel("textStyle"),v=n.get("icon"),y=n.getModel("tooltip"),x=y.parentModel;if(r=v||r,g.add(cl(r,0,0,h,c,p?l:d,null==f||f)),!v&&a&&(a!==r||"none"==a)){var _=.8*c;"none"===a&&(a="circle"),g.add(cl(a,(h-_)/2,(c-_)/2,_,_,p?l:d,null==f||f))}var w="left"===s?h+5:-5,b=s,M=i.get("formatter"),S=t;"string"==typeof M&&M?S=M.replace("{name}",null!=t?t:""):"function"==typeof M&&(S=M(t)),g.add(new kv({style:Ki({},m,{text:S,x:w,y:c/2,textFill:p?m.getTextColor():d,textAlign:b,textVerticalAlign:"middle"})}));var I=new Fv({shape:g.getBoundingRect(),invisible:!0,tooltip:y.get("show")?o({content:t,formatter:x.get("formatter",!0)||function(){return t},formatterParams:{componentType:"legend",legendIndex:i.componentIndex,name:t,$vars:["name"]}},y.option):null});return g.add(I),g.eachChild(function(t){t.silent=!0}),I.silent=!u,this.getContentGroup().add(g),qi(g),g.__legendDataIndex=e,g},layoutInner:function(t,e,n){var i=this.getContentGroup();by(t.get("orient"),i,t.get("itemGap"),n.width,n.height);var r=i.getBoundingRect();return i.attr("position",[-r.x,-r.y]),this.group.getBoundingRect()}});Ja(function(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries(function(t){for(var n=0;n<e.length;n++)if(!e[n].isSelected(t.name))return!1;return!0})}),Iy.registerSubTypeDefaulter("legend",function(){return"plain"});var Gb=Rb.extend({type:"legend.scroll",setScrollDataIndex:function(t){this.option.scrollDataIndex=t},defaultOption:{scrollDataIndex:0,pageButtonItemGap:5,pageButtonGap:null,pageButtonPosition:"end",pageFormatter:"{current}/{total}",pageIcons:{horizontal:["M0,0L12,-10L12,10z","M0,0L-12,-10L-12,10z"],vertical:["M0,0L20,0L10,-20z","M0,0L20,0L10,20z"]},pageIconColor:"#2f4554",pageIconInactiveColor:"#aaa",pageIconSize:15,pageTextStyle:{color:"#333"},animationDurationUpdate:800},init:function(t,e,n,i){var r=Ur(t);Gb.superCall(this,"init",t,e,n,i),rc(this,t,r)},mergeOption:function(t,e){Gb.superCall(this,"mergeOption",t,e),rc(this,this.option,t)},getOrient:function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}}}),Wb=Sg,Zb=["width","height"],Ub=["x","y"],Xb=Hb.extend({type:"legend.scroll",newlineDisabled:!0,init:function(){Xb.superCall(this,"init"),this._currentIndex=0,this.group.add(this._containerGroup=new Wb),this._containerGroup.add(this.getContentGroup()),this.group.add(this._controllerGroup=new Wb),this._showController},resetInner:function(){Xb.superCall(this,"resetInner"),this._controllerGroup.removeAll(),this._containerGroup.removeClipPath(),this._containerGroup.__rectSize=null},renderInner:function(t,e,n,i){function r(t,n){var r=t+"DataIndex",l=fr(e.get("pageIcons",!0)[e.getOrient().name][n],{onclick:m(o._pageGo,o,r,e,i)},{x:-s[0]/2,y:-s[1]/2,width:s[0],height:s[1]});l.name=t,a.add(l)}var o=this;Xb.superCall(this,"renderInner",t,e,n,i);var a=this._controllerGroup,s=e.get("pageIconSize",!0);y(s)||(s=[s,s]),r("pagePrev",0);var l=e.getModel("pageTextStyle");a.add(new kv({name:"pageText",style:{textFill:l.getTextColor(),font:l.getFont(),textVerticalAlign:"middle",textAlign:"center"},silent:!0})),r("pageNext",1)},layoutInner:function(t,e,n){var i=this.getContentGroup(),r=this._containerGroup,o=this._controllerGroup,a=t.getOrient().index,s=Zb[a],l=Zb[1-a],u=Ub[1-a];by(t.get("orient"),i,t.get("itemGap"),a?n.width:null,a?null:n.height),by("horizontal",o,t.get("pageButtonItemGap",!0));var h=i.getBoundingRect(),c=o.getBoundingRect(),d=this._showController=h[s]>n[s],f=[-h.x,-h.y];f[a]=i.position[a];var p=[0,0],g=[-c.x,-c.y],m=T(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?g[a]+=n[s]-c[s]:p[a]+=c[s]+m),g[1-a]+=h[l]/2-c[l]/2,i.attr("position",f),r.attr("position",p),o.attr("position",g);var v=this.group.getBoundingRect();if((v={x:0,y:0})[s]=d?n[s]:h[s],v[l]=Math.max(h[l],c[l]),v[u]=Math.min(0,c[u]+g[1-a]),r.__rectSize=n[s],d){var y={x:0,y:0};y[s]=Math.max(n[s]-c[s]-m,0),y[l]=v[l],r.setClipPath(new Fv({shape:y})),r.__rectSize=y[s]}else o.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var x=this._getPageInfo(t);return null!=x.pageIndex&&ar(i,{position:x.contentPosition},!!d&&t),this._updatePageInfoView(t,x),v},_pageGo:function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},_updatePageInfoView:function(t,e){var n=this._controllerGroup;d(["pagePrev","pageNext"],function(i){var r=null!=e[i+"DataIndex"],o=n.childOfName(i);o&&(o.setStyle("fill",r?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),o.cursor=r?"pointer":"default")});var i=n.childOfName("pageText"),r=t.get("pageFormatter"),o=e.pageIndex,a=null!=o?o+1:0,s=e.pageCount;i&&r&&i.setStyle("text",_(r)?r.replace("{current}",a).replace("{total}",s):r({current:a,total:s}))},_getPageInfo:function(t){function e(t){var e=t.getBoundingRect().clone();return e[f]+=t.position[h],e}var n,i,r,o,a=t.get("scrollDataIndex",!0),s=this.getContentGroup(),l=s.getBoundingRect(),u=this._containerGroup.__rectSize,h=t.getOrient().index,c=Zb[h],d=Zb[1-h],f=Ub[h],p=s.position.slice();this._showController?s.eachChild(function(t){t.__legendDataIndex===a&&(o=t)}):o=s.childAt(0);var g=u?Math.ceil(l[c]/u):0;if(o){var m=o.getBoundingRect(),v=o.position[h]+m[f];p[h]=-v-l[f],n=Math.floor(g*(v+m[f]+u/2)/l[c]),n=l[c]&&g?Math.max(0,Math.min(g-1,n)):-1;var y={x:0,y:0};y[c]=u,y[d]=l[d],y[f]=-p[h]-l[f];var x,_=s.children();if(s.eachChild(function(t,n){var i=e(t);i.intersect(y)&&(null==x&&(x=n),r=t.__legendDataIndex),n===_.length-1&&i[f]+i[c]<=y[f]+y[c]&&(r=null)}),null!=x){var w=e(_[x]);if(y[f]=w[f]+w[c]-y[c],x<=0&&w[f]>=y[f])i=null;else{for(;x>0&&e(_[x-1]).intersect(y);)x--;i=_[x].__legendDataIndex}}}return{contentPosition:p,pageIndex:n,pageCount:g,pagePrevDataIndex:i,pageNextDataIndex:r}}});ts("legendScroll","legendscroll",function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(n)})}),os({type:"title",layoutMode:{type:"box",ignoreSize:!0},defaultOption:{zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bolder",color:"#333"},subtextStyle:{color:"#aaa"}}}),as({type:"title",render:function(t,e,n){if(this.group.removeAll(),t.get("show")){var i=this.group,r=t.getModel("textStyle"),o=t.getModel("subtextStyle"),a=t.get("textAlign"),s=t.get("textBaseline"),l=new kv({style:Ki({},r,{text:t.get("text"),textFill:r.getTextColor()},{disableBox:!0}),z2:10}),u=l.getBoundingRect(),h=t.get("subtext"),c=new kv({style:Ki({},o,{text:h,textFill:o.getTextColor(),y:u.height+t.get("itemGap"),textVerticalAlign:"top"},{disableBox:!0}),z2:10}),d=t.get("link"),f=t.get("sublink");l.silent=!d,c.silent=!f,d&&l.on("click",function(){window.open(d,"_"+t.get("target"))}),f&&c.on("click",function(){window.open(f,"_"+t.get("subtarget"))}),i.add(l),h&&i.add(c);var p=i.getBoundingRect(),g=t.getBoxLayoutParams();g.width=p.width,g.height=p.height;var m=Gr(g,{width:n.getWidth(),height:n.getHeight()},t.get("padding"));a||("middle"===(a=t.get("left")||t.get("right"))&&(a="center"),"right"===a?m.x+=m.width:"center"===a&&(m.x+=m.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?m.y+=m.height:"middle"===s&&(m.y+=m.height/2),s=s||"top"),i.attr("position",[m.x,m.y]);var v={textAlign:a,textVerticalAlign:s};l.setStyle(v),c.setStyle(v),p=i.getBoundingRect();var y=m.margin,x=t.getItemStyle(["color","opacity"]);x.fill=t.get("backgroundColor");var _=new Fv({shape:{x:p.x-y[3],y:p.y-y[0],width:p.width+y[1]+y[3],height:p.height+y[0]+y[2],r:t.get("borderRadius")},style:x,silent:!0});Ei(_),i.add(_)}}});var jb=Or,Yb=Er,qb=os({type:"marker",dependencies:["series","grid","polar","geo"],init:function(t,e,n,i){this.mergeDefaultAndTheme(t,n),this.mergeOption(t,n,i.createdBySelf,!0)},isAnimationEnabled:function(){if(bp.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},mergeOption:function(t,e,n,i){var r=this.constructor,a=this.mainType+"Model";n||e.eachSeries(function(t){var n=t.get(this.mainType,!0),s=t[a];n&&n.data?(s?s.mergeOption(n,e,!0):(i&&oc(n),d(n.data,function(t){t instanceof Array?(oc(t[0]),oc(t[1])):oc(t)}),o(s=new r(n,this,e),{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),s.__hostSeries=t),t[a]=s):t[a]=null},this)},formatTooltip:function(t){var e=this.getData(),n=this.getRawValue(t),i=y(n)?f(n,jb).join(", "):jb(n),r=e.getName(t),o=Yb(this.name);return(null!=n||r)&&(o+="<br />"),r&&(o+=Yb(r),null!=n&&(o+=" : ")),null!=n&&(o+=Yb(i)),o},getData:function(){return this._data},setData:function(t){this._data=t}});h(qb,sx),qb.extend({type:"markPoint",defaultOption:{zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}}});var $b=l,Kb=v,Qb={min:Kb(lc,"min"),max:Kb(lc,"max"),average:Kb(lc,"average")},Jb=as({type:"marker",init:function(){this.markerGroupMap=N()},render:function(t,e,n){var i=this.markerGroupMap;i.each(function(t){t.__keep=!1});var r=this.type+"Model";e.eachSeries(function(t){var i=t[r];i&&this.renderSeries(t,i,e,n)},this),i.each(function(t){!t.__keep&&this.group.remove(t.group)},this)},renderSeries:function(){}});Jb.extend({type:"markPoint",updateTransform:function(t,e,n){e.eachSeries(function(t){var e=t.markPointModel;e&&(gc(e.getData(),t,n),this.markerGroupMap.get(t.id).updateLayout(e))},this)},renderSeries:function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new Bl),u=mc(r,t,e);e.setData(u),gc(e.getData(),t,i),u.each(function(t){var n=u.getItemModel(t),i=n.getShallow("symbolSize");"function"==typeof i&&(i=i(e.getRawValue(t),e.getDataParams(t))),u.setItemVisual(t,{symbolSize:i,color:n.get("itemStyle.color")||a.getVisual("color"),symbol:n.getShallow("symbol")})}),l.updateData(u),this.group.add(l.group),u.eachItemGraphicEl(function(t){t.traverse(function(t){t.dataModel=e})}),l.__keep=!0,l.group.silent=e.get("silent")||t.get("silent")}}),Qa(function(t){t.markPoint=t.markPoint||{}}),qb.extend({type:"markLine",defaultOption:{zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end"},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"}});var tM=Hv.prototype,eM=Wv.prototype,nM=Ai({type:"ec-line",style:{stroke:"#000",fill:null},shape:{x1:0,y1:0,x2:0,y2:0,percent:1,cpx1:null,cpy1:null},buildPath:function(t,e){(vc(e)?tM:eM).buildPath(t,e)},pointAt:function(t){return vc(this.shape)?tM.pointAt.call(this,t):eM.pointAt.call(this,t)},tangentAt:function(t){var e=this.shape,n=vc(e)?[e.x2-e.x1,e.y2-e.y1]:eM.tangentAt.call(this,t);return j(n,n)}}),iM=["fromSymbol","toSymbol"],rM=bc.prototype;rM.beforeUpdate=function(){var t=this,e=t.childOfName("fromSymbol"),n=t.childOfName("toSymbol"),i=t.childOfName("label");if(e||n||!i.ignore){for(var r=1,o=this.parent;o;)o.scale&&(r/=o.scale[0]),o=o.parent;var a=t.childOfName("line");if(this.__dirty||a.__dirty){var s=a.shape.percent,l=a.pointAt(0),u=a.pointAt(s),h=W([],u,l);if(j(h,h),e&&(e.attr("position",l),c=a.tangentAt(0),e.attr("rotation",Math.PI/2-Math.atan2(c[1],c[0])),e.attr("scale",[r*s,r*s])),n){n.attr("position",u);var c=a.tangentAt(1);n.attr("rotation",-Math.PI/2-Math.atan2(c[1],c[0])),n.attr("scale",[r*s,r*s])}if(!i.ignore){i.attr("position",u);var d,f,p,g=5*r;if("end"===i.__position)d=[h[0]*g+u[0],h[1]*g+u[1]],f=h[0]>.8?"left":h[0]<-.8?"right":"center",p=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";else if("middle"===i.__position){var m=s/2,v=[(c=a.tangentAt(m))[1],-c[0]],y=a.pointAt(m);v[1]>0&&(v[0]=-v[0],v[1]=-v[1]),d=[y[0]+v[0]*g,y[1]+v[1]*g],f="center",p="bottom";var x=-Math.atan2(c[1],c[0]);u[0]<l[0]&&(x=Math.PI+x),i.attr("rotation",x)}else d=[-h[0]*g+l[0],-h[1]*g+l[1]],f=h[0]>.8?"right":h[0]<-.8?"left":"center",p=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";i.attr({style:{textVerticalAlign:i.__verticalAlign||p,textAlign:i.__textAlign||f},position:d,scale:[r,r]})}}}},rM._createLine=function(t,e,n){var i=t.hostModel,r=_c(t.getItemLayout(e));r.shape.percent=0,sr(r,{shape:{percent:1}},i,e),this.add(r);var o=new kv({name:"label"});this.add(o),d(iM,function(n){var i=xc(n,t,e);this.add(i),this[yc(n)]=t.getItemVisual(e,n)},this),this._updateCommonStl(t,e,n)},rM.updateData=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=t.getItemLayout(e),a={shape:{}};wc(a.shape,o),ar(r,a,i,e),d(iM,function(n){var i=t.getItemVisual(e,n),r=yc(n);if(this[r]!==i){this.remove(this.childOfName(n));var o=xc(n,t,e);this.add(o)}this[r]=i},this),this._updateCommonStl(t,e,n)},rM._updateCommonStl=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=n&&n.lineStyle,s=n&&n.hoverLineStyle,l=n&&n.labelModel,u=n&&n.hoverLabelModel;if(!n||t.hasItemOption){var h=t.getItemModel(e);o=h.getModel("lineStyle").getLineStyle(),s=h.getModel("emphasis.lineStyle").getLineStyle(),l=h.getModel("label"),u=h.getModel("emphasis.label")}var c=t.getItemVisual(e,"color"),f=D(t.getItemVisual(e,"opacity"),o.opacity,1);r.useStyle(a({strokeNoScale:!0,fill:"none",stroke:c,opacity:f},o)),r.hoverStyle=s,d(iM,function(t){var e=this.childOfName(t);e&&(e.setColor(c),e.setStyle({opacity:f}))},this);var p,g,m=l.getShallow("show"),v=u.getShallow("show"),y=this.childOfName("label");if((m||v)&&(p=c||"#000",null==(g=i.getFormattedLabel(e,"normal",t.dataType)))){var x=i.getRawValue(e);g=null==x?t.getName(e):isFinite(x)?wr(x):x}var _=m?g:null,w=v?T(i.getFormattedLabel(e,"emphasis",t.dataType),g):null,b=y.style;null==_&&null==w||(Ki(y.style,l,{text:_},{autoColor:p}),y.__textAlign=b.textAlign,y.__verticalAlign=b.textVerticalAlign,y.__position=l.get("position")||"middle"),y.hoverStyle=null!=w?{text:w,textFill:u.getTextColor(!0),fontStyle:u.getShallow("fontStyle"),fontWeight:u.getShallow("fontWeight"),fontSize:u.getShallow("fontSize"),fontFamily:u.getShallow("fontFamily")}:{text:null},y.ignore=!m&&!v,qi(this)},rM.highlight=function(){this.trigger("emphasis")},rM.downplay=function(){this.trigger("normal")},rM.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},rM.setLinePoints=function(t){var e=this.childOfName("line");wc(e.shape,t),e.dirty()},u(bc,Sg);var oM=Mc.prototype;oM.isPersistent=function(){return!0},oM.updateData=function(t){var e=this,n=e.group,i=e._lineData;e._lineData=t,i||n.removeAll();var r=Cc(t);t.diff(i).add(function(n){Sc(e,t,n,r)}).update(function(n,o){Ic(e,i,t,o,n,r)}).remove(function(t){n.remove(i.getItemGraphicEl(t))}).execute()},oM.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl(function(e,n){e.updateLayout(t,n)},this)},oM.incrementalPrepareUpdate=function(t){this._seriesScope=Cc(t),this._lineData=null,this.group.removeAll()},oM.incrementalUpdate=function(t,e){for(var n=t.start;n<t.end;n++)if(Dc(e.getItemLayout(n))){var i=new this._ctor(e,n,this._seriesScope);i.traverse(function(t){t.isGroup||(t.incremental=t.useHoverLayer=!0)}),this.group.add(i),e.setItemGraphicEl(n,i)}},oM.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},oM._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()};var aM=function(t,e,r,a){var s=t.getData(),l=a.type;if(!y(a)&&("min"===l||"max"===l||"average"===l||"median"===l||null!=a.xAxis||null!=a.yAxis)){var u,h;if(null!=a.yAxis||null!=a.xAxis)u=null!=a.yAxis?"y":"x",e.getAxis(u),h=C(a.yAxis,a.xAxis);else{var c=hc(a,s,e,t);u=c.valueDataDim,c.valueAxis,h=pc(s,u,l)}var d="x"===u?0:1,f=1-d,p=n(a),g={};p.type=null,p.coord=[],g.coord=[],p.coord[f]=-1/0,g.coord[f]=1/0;var m=r.get("precision");m>=0&&"number"==typeof h&&(h=+h.toFixed(Math.min(m,20))),p.coord[d]=g.coord[d]=h,a=[p,g,{type:l,valueIndex:a.valueIndex,value:h}]}return a=[uc(t,a[0]),uc(t,a[1]),o({},a[2])],a[2].type=a[2].type||"",i(a[2],a[0]),i(a[2],a[1]),a};Jb.extend({type:"markLine",updateTransform:function(t,e,n){e.eachSeries(function(t){var e=t.markLineModel;if(e){var i=e.getData(),r=e.__from,o=e.__to;r.each(function(e){Lc(r,e,!0,t,n),Lc(o,e,!1,t,n)}),i.each(function(t){i.setItemLayout(t,[r.getItemLayout(t),o.getItemLayout(t)])}),this.markerGroupMap.get(t.id).updateLayout()}},this)},renderSeries:function(t,e,n,i){function r(e,n,r){var o=e.getItemModel(n);Lc(e,n,r,t,i),e.setItemVisual(n,{symbolSize:o.get("symbolSize")||g[r?0:1],symbol:o.get("symbol",!0)||p[r?0:1],color:o.get("itemStyle.color")||s.getVisual("color")})}var o=t.coordinateSystem,a=t.id,s=t.getData(),l=this.markerGroupMap,u=l.get(a)||l.set(a,new Mc);this.group.add(u.group);var h=Oc(o,t,e),c=h.from,d=h.to,f=h.line;e.__from=c,e.__to=d,e.setData(f);var p=e.get("symbol"),g=e.get("symbolSize");y(p)||(p=[p,p]),"number"==typeof g&&(g=[g,g]),h.from.each(function(t){r(c,t,!0),r(d,t,!1)}),f.each(function(t){var e=f.getItemModel(t).get("lineStyle.color");f.setItemVisual(t,{color:e||c.getItemVisual(t,"color")}),f.setItemLayout(t,[c.getItemLayout(t),d.getItemLayout(t)]),f.setItemVisual(t,{fromSymbolSize:c.getItemVisual(t,"symbolSize"),fromSymbol:c.getItemVisual(t,"symbol"),toSymbolSize:d.getItemVisual(t,"symbolSize"),toSymbol:d.getItemVisual(t,"symbol")})}),u.updateData(f),h.line.eachItemGraphicEl(function(t,n){t.traverse(function(t){t.dataModel=e})}),u.__keep=!0,u.group.silent=e.get("silent")||t.get("silent")}}),Qa(function(t){t.markLine=t.markLine||{}}),qb.extend({type:"markArea",defaultOption:{zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}}});var sM=function(t,e,n,i){var o=uc(t,i[0]),a=uc(t,i[1]),s=C,l=o.coord,u=a.coord;l[0]=s(l[0],-1/0),l[1]=s(l[1],-1/0),u[0]=s(u[0],1/0),u[1]=s(u[1],1/0);var h=r([{},o,a]);return h.coord=[o.coord,a.coord],h.x0=o.x,h.y0=o.y,h.x1=a.x,h.y1=a.y,h},lM=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]];Jb.extend({type:"markArea",updateTransform:function(t,e,n){e.eachSeries(function(t){var e=t.markAreaModel;if(e){var i=e.getData();i.each(function(e){var r=f(lM,function(r){return Rc(i,e,r,t,n)});i.setItemLayout(e,r),i.getItemGraphicEl(e).setShape("points",r)})}},this)},renderSeries:function(t,e,n,i){var r=t.coordinateSystem,o=t.id,s=t.getData(),l=this.markerGroupMap,u=l.get(o)||l.set(o,{group:new Sg});this.group.add(u.group),u.__keep=!0;var h=Bc(r,t,e);e.setData(h),h.each(function(e){h.setItemLayout(e,f(lM,function(n){return Rc(h,e,n,t,i)})),h.setItemVisual(e,{color:s.getVisual("color")})}),h.diff(u.__data).add(function(t){var e=new Bv({shape:{points:h.getItemLayout(t)}});h.setItemGraphicEl(t,e),u.group.add(e)}).update(function(t,n){var i=u.__data.getItemGraphicEl(n);ar(i,{shape:{points:h.getItemLayout(t)}},e,t),u.group.add(i),h.setItemGraphicEl(t,i)}).remove(function(t){var e=u.__data.getItemGraphicEl(t);u.group.remove(e)}).execute(),h.eachItemGraphicEl(function(t,n){var i=h.getItemModel(n),r=i.getModel("label"),o=i.getModel("emphasis.label"),s=h.getItemVisual(n,"color");t.useStyle(a(i.getModel("itemStyle").getItemStyle(),{fill:Pt(s,.4),stroke:s})),t.hoverStyle=i.getModel("emphasis.itemStyle").getItemStyle(),$i(t.style,t.hoverStyle,r,o,{labelFetcher:e,labelDataIndex:n,defaultText:h.getName(n)||"",isRectText:!0,autoColor:s}),qi(t,{}),t.dataModel=e}),u.__data=h,u.group.silent=e.get("silent")||t.get("silent")}}),Qa(function(t){t.markArea=t.markArea||{}}),Iy.registerSubTypeDefaulter("dataZoom",function(){return"slider"});var uM=["cartesian2d","polar","singleAxis"],hM=function(t,e){var n=f(t=t.slice(),Fr),i=f(e=(e||[]).slice(),Fr);return function(r,o){d(t,function(t,a){for(var s={name:t,capital:n[a]},l=0;l<e.length;l++)s[e[l]]=t+i[l];r.call(o,s)})}}(["x","y","z","radius","angle","single"],["axisIndex","axis","index","id"]),cM=d,dM=br,fM=function(t,e,n,i){this._dimName=t,this._axisIndex=e,this._valueWindow,this._percentWindow,this._dataExtent,this._minMaxSpan,this.ecModel=i,this._dataZoomModel=n};fM.prototype={constructor:fM,hostedBy:function(t){return this._dataZoomModel===t},getDataValueWindow:function(){return this._valueWindow.slice()},getDataPercentWindow:function(){return this._percentWindow.slice()},getTargetSeriesModels:function(){var t=[],e=this.ecModel;return e.eachSeries(function(n){if(Vc(n.get("coordinateSystem"))){var i=this._dimName,r=e.queryComponents({mainType:i+"Axis",index:n.get(i+"AxisIndex"),id:n.get(i+"AxisId")})[0];this._axisIndex===(r&&r.componentIndex)&&t.push(n)}},this),t},getAxisModel:function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},getOtherAxisModel:function(){var t,e,n=this._dimName,i=this.ecModel,r=this.getAxisModel();"x"===n||"y"===n?(e="gridIndex",t="x"===n?"y":"x"):(e="polarIndex",t="angle"===n?"radius":"angle");var o;return i.eachComponent(t+"Axis",function(t){(t.get(e)||0)===(r.get(e)||0)&&(o=t)}),o},getMinMaxSpan:function(){return n(this._minMaxSpan)},calculateDataWindow:function(t){var e=this._dataExtent,n=this.getAxisModel().axis.scale,i=this._dataZoomModel.getRangePropMode(),r=[0,100],o=[t.start,t.end],a=[];return cM(["startValue","endValue"],function(e){a.push(null!=t[e]?n.parse(t[e]):null)}),cM([0,1],function(t){var s=a[t],l=o[t];"percent"===i[t]?(null==l&&(l=r[t]),s=n.parse(xr(l,r,e,!0))):l=xr(s,e,r,!0),a[t]=s,o[t]=l}),{valueWindow:dM(a),percentWindow:dM(o)}},reset:function(t){if(t===this._dataZoomModel){var e=this.getTargetSeriesModels();this._dataExtent=Hc(this,this._dimName,e);var n=this.calculateDataWindow(t.option);this._valueWindow=n.valueWindow,this._percentWindow=n.percentWindow,Zc(this),Wc(this)}},restore:function(t){t===this._dataZoomModel&&(this._valueWindow=this._percentWindow=null,Wc(this,!0))},filterData:function(t,e){function n(t){return t>=a[0]&&t<=a[1]}if(t===this._dataZoomModel){var i=this._dimName,r=this.getTargetSeriesModels(),o=t.get("filterMode"),a=this._valueWindow;"none"!==o&&cM(r,function(t){var e=t.getData(),r=e.mapDimension(i,!0);"weakFilter"===o?e.filterSelf(function(t){for(var n,i,o,s=0;s<r.length;s++){var l=e.get(r[s],t),u=!isNaN(l),h=l<a[0],c=l>a[1];if(u&&!h&&!c)return!0;u&&(o=!0),h&&(n=!0),c&&(i=!0)}return o&&n&&i}):cM(r,function(i){if("empty"===o)t.setData(e.map(i,function(t){return n(t)?t:NaN}));else{var r={};r[i]=a,e.selectRange(r)}}),cM(r,function(t){e.setApproximateExtent(a,t)})})}}};var pM=d,gM=hM,mM=os({type:"dataZoom",dependencies:["xAxis","yAxis","zAxis","radiusAxis","angleAxis","singleAxis","series"],defaultOption:{zlevel:0,z:4,orient:null,xAxisIndex:null,yAxisIndex:null,filterMode:"filter",throttle:null,start:0,end:100,startValue:null,endValue:null,minSpan:null,maxSpan:null,minValueSpan:null,maxValueSpan:null,rangeMode:null},init:function(t,e,n){this._dataIntervalByAxis={},this._dataInfo={},this._axisProxies={},this.textStyleModel,this._autoThrottle=!0,this._rangePropMode=["percent","percent"];var i=Uc(t);this.mergeDefaultAndTheme(t,n),this.doInit(i)},mergeOption:function(t){var e=Uc(t);i(this.option,t,!0),this.doInit(e)},doInit:function(t){var e=this.option;bp.canvasSupported||(e.realtime=!1),this._setDefaultThrottle(t),Xc(this,t),pM([["start","startValue"],["end","endValue"]],function(t,n){"value"===this._rangePropMode[n]&&(e[t[0]]=null)},this),this.textStyleModel=this.getModel("textStyle"),this._resetTarget(),this._giveAxisProxies()},_giveAxisProxies:function(){var t=this._axisProxies;this.eachTargetAxis(function(e,n,i,r){var o=this.dependentModels[e.axis][n],a=o.__dzAxisProxy||(o.__dzAxisProxy=new fM(e.name,n,this,r));t[e.name+"_"+n]=a},this)},_resetTarget:function(){var t=this.option,e=this._judgeAutoMode();gM(function(e){var n=e.axisIndex;t[n]=xn(t[n])},this),"axisIndex"===e?this._autoSetAxisIndex():"orient"===e&&this._autoSetOrient()},_judgeAutoMode:function(){var t=this.option,e=!1;gM(function(n){null!=t[n.axisIndex]&&(e=!0)},this);var n=t.orient;return null==n&&e?"orient":e?void 0:(null==n&&(t.orient="horizontal"),"axisIndex")},_autoSetAxisIndex:function(){var t=!0,e=this.get("orient",!0),n=this.option,i=this.dependentModels;if(t){var r="vertical"===e?"y":"x";i[r+"Axis"].length?(n[r+"AxisIndex"]=[0],t=!1):pM(i.singleAxis,function(i){t&&i.get("orient",!0)===e&&(n.singleAxisIndex=[i.componentIndex],t=!1)})}t&&gM(function(e){if(t){var i=[],r=this.dependentModels[e.axis];if(r.length&&!i.length)for(var o=0,a=r.length;o<a;o++)"category"===r[o].get("type")&&i.push(o);n[e.axisIndex]=i,i.length&&(t=!1)}},this),t&&this.ecModel.eachSeries(function(t){this._isSeriesHasAllAxesTypeOf(t,"value")&&gM(function(e){var i=n[e.axisIndex],r=t.get(e.axisIndex),o=t.get(e.axisId);l(i,r=t.ecModel.queryComponents({mainType:e.axis,index:r,id:o})[0].componentIndex)<0&&i.push(r)})},this)},_autoSetOrient:function(){var t;this.eachTargetAxis(function(e){!t&&(t=e.name)},this),this.option.orient="y"===t?"vertical":"horizontal"},_isSeriesHasAllAxesTypeOf:function(t,e){var n=!0;return gM(function(i){var r=t.get(i.axisIndex),o=this.dependentModels[i.axis][r];o&&o.get("type")===e||(n=!1)},this),n},_setDefaultThrottle:function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},getFirstTargetAxisModel:function(){var t;return gM(function(e){if(null==t){var n=this.get(e.axisIndex);n.length&&(t=this.dependentModels[e.axis][n[0]])}},this),t},eachTargetAxis:function(t,e){var n=this.ecModel;gM(function(i){pM(this.get(i.axisIndex),function(r){t.call(e,i,r,this,n)},this)},this)},getAxisProxy:function(t,e){return this._axisProxies[t+"_"+e]},getAxisModel:function(t,e){var n=this.getAxisProxy(t,e);return n&&n.getAxisModel()},setRawRange:function(t,e){var n=this.option;pM([["start","startValue"],["end","endValue"]],function(e){null==t[e[0]]&&null==t[e[1]]||(n[e[0]]=t[e[0]],n[e[1]]=t[e[1]])},this),!e&&Xc(this,t)},getPercentRange:function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},getValueRange:function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},findRepresentativeAxisProxy:function(t){if(t)return t.__dzAxisProxy;var e=this._axisProxies;for(var n in e)if(e.hasOwnProperty(n)&&e[n].hostedBy(this))return e[n];for(var n in e)if(e.hasOwnProperty(n)&&!e[n].hostedBy(this))return e[n]},getRangePropMode:function(){return this._rangePropMode.slice()}}),vM=dx.extend({type:"dataZoom",render:function(t,e,n,i){this.dataZoomModel=t,this.ecModel=e,this.api=n},getTargetCoordInfo:function(){function t(t,e,n,i){for(var r,o=0;o<n.length;o++)if(n[o].model===t){r=n[o];break}r||n.push(r={model:t,axisModels:[],coordIndex:i}),r.axisModels.push(e)}var e=this.dataZoomModel,n=this.ecModel,i={};return e.eachTargetAxis(function(e,r){var o=n.getComponent(e.axis,r);if(o){var a=o.getCoordSysModel();a&&t(a,o,i[a.mainType]||(i[a.mainType]=[]),a.componentIndex)}},this),i}}),yM=(mM.extend({type:"dataZoom.slider",layoutMode:"box",defaultOption:{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#2f4554",width:.5,opacity:.3},areaStyle:{color:"rgba(47,69,84,0.3)",opacity:.3}},borderColor:"#ddd",fillerColor:"rgba(167,183,204,0.4)",handleIcon:"M8.2,13.6V3.9H6.3v9.7H3.1v14.9h3.3v9.7h1.8v-9.7h3.3V13.6H8.2z M9.7,24.4H4.8v-1.4h4.9V24.4z M9.7,19.1H4.8v-1.4h4.9V19.1z",handleSize:"100%",handleStyle:{color:"#a7b7cc"},labelPrecision:null,labelFormatter:null,showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#333"}}}),function(t,e,n,i,r,o){e[0]=Yc(e[0],n),e[1]=Yc(e[1],n),t=t||0;var a=n[1]-n[0];null!=r&&(r=Yc(r,[0,a])),null!=o&&(o=Math.max(o,null!=r?r:0)),"all"===i&&(r=o=Math.abs(e[1]-e[0]),i=0);var s=jc(e,i);e[i]+=t;var l=r||0,u=n.slice();s.sign<0?u[0]+=l:u[1]-=l,e[i]=Yc(e[i],u);h=jc(e,i);null!=r&&(h.sign!==s.sign||h.span<r)&&(e[1-i]=e[i]+s.sign*r);var h=jc(e,i);return null!=o&&h.span>o&&(e[1-i]=e[i]+h.sign*o),e}),xM=Fv,_M=xr,wM=br,bM=m,MM=d,SM="horizontal",IM=5,CM=["line","bar","candlestick","scatter"],TM=vM.extend({type:"dataZoom.slider",init:function(t,e){this._displayables={},this._orient,this._range,this._handleEnds,this._size,this._handleWidth,this._handleHeight,this._location,this._dragging,this._dataShadowInfo,this.api=e},render:function(t,e,n,i){TM.superApply(this,"render",arguments),ha(this,"_dispatchZoomAction",this.dataZoomModel.get("throttle"),"fixRate"),this._orient=t.get("orient"),!1!==this.dataZoomModel.get("show")?(i&&"dataZoom"===i.type&&i.from===this.uid||this._buildView(),this._updateView()):this.group.removeAll()},remove:function(){TM.superApply(this,"remove",arguments),ca(this,"_dispatchZoomAction")},dispose:function(){TM.superApply(this,"dispose",arguments),ca(this,"_dispatchZoomAction")},_buildView:function(){var t=this.group;t.removeAll(),this._resetLocation(),this._resetInterval();var e=this._displayables.barGroup=new Sg;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},_resetLocation:function(){var t=this.dataZoomModel,e=this.api,n=this._findCoordRect(),i={width:e.getWidth(),height:e.getHeight()},r=this._orient===SM?{right:i.width-n.x-n.width,top:i.height-30-7,width:n.width,height:30}:{right:7,top:n.y,width:30,height:n.height},o=Ur(t.option);d(["right","top","width","height"],function(t){"ph"===o[t]&&(o[t]=r[t])});var a=Gr(o,i,t.padding);this._location={x:a.x,y:a.y},this._size=[a.width,a.height],"vertical"===this._orient&&this._size.reverse()},_positionGroup:function(){var t=this.group,e=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),r=i&&i.get("inverse"),o=this._displayables.barGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;o.attr(n!==SM||r?n===SM&&r?{scale:a?[-1,1]:[-1,-1]}:"vertical"!==n||r?{scale:a?[-1,-1]:[-1,1],rotation:Math.PI/2}:{scale:a?[1,-1]:[1,1],rotation:Math.PI/2}:{scale:a?[1,1]:[1,-1]});var s=t.getBoundingRect([o]);t.attr("position",[e.x-s.x,e.y-s.y])},_getViewExtent:function(){return[0,this._size[0]]},_renderBackground:function(){var t=this.dataZoomModel,e=this._size,n=this._displayables.barGroup;n.add(new xM({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40})),n.add(new xM({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:m(this._onClickPanelClick,this)}))},_renderDataShadow:function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(t){var e=this._size,n=t.series,i=n.getRawData(),r=n.getShadowDim?n.getShadowDim():t.otherDim;if(null!=r){var o=i.getDataExtent(r),s=.3*(o[1]-o[0]);o=[o[0]-s,o[1]+s];var l,u=[0,e[1]],h=[0,e[0]],c=[[e[0],0],[0,0]],d=[],f=h[1]/(i.count()-1),p=0,g=Math.round(i.count()/e[0]);i.each([r],function(t,e){if(g>0&&e%g)p+=f;else{var n=null==t||isNaN(t)||""===t,i=n?0:_M(t,o,u,!0);n&&!l&&e?(c.push([c[c.length-1][0],0]),d.push([d[d.length-1][0],0])):!n&&l&&(c.push([p,0]),d.push([p,0])),c.push([p,i]),d.push([p,i]),p+=f,l=n}});var m=this.dataZoomModel;this._displayables.barGroup.add(new Bv({shape:{points:c},style:a({fill:m.get("dataBackgroundColor")},m.getModel("dataBackground.areaStyle").getAreaStyle()),silent:!0,z2:-20})),this._displayables.barGroup.add(new Vv({shape:{points:d},style:m.getModel("dataBackground.lineStyle").getLineStyle(),silent:!0,z2:-19}))}}},_prepareDataShadowInfo:function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var n,i=this.ecModel;return t.eachTargetAxis(function(r,o){d(t.getAxisProxy(r.name,o).getTargetSeriesModels(),function(t){if(!(n||!0!==e&&l(CM,t.get("type"))<0)){var a,s=i.getComponent(r.axis,o).axis,u=qc(r.name),h=t.coordinateSystem;null!=u&&h.getOtherAxis&&(a=h.getOtherAxis(s).inverse),u=t.getData().mapDimension(u),n={thisAxis:s,series:t,thisDim:r.name,otherDim:u,otherAxisInverse:a}}},this)},this),n}},_renderHandle:function(){var t=this._displayables,e=t.handles=[],n=t.handleLabels=[],i=this._displayables.barGroup,r=this._size,o=this.dataZoomModel;i.add(t.filler=new xM({draggable:!0,cursor:$c(this._orient),drift:bM(this._onDragMove,this,"all"),onmousemove:function(t){tm(t.event)},ondragstart:bM(this._showDataInfo,this,!0),ondragend:bM(this._onDragEnd,this),onmouseover:bM(this._showDataInfo,this,!0),onmouseout:bM(this._showDataInfo,this,!1),style:{fill:o.get("fillerColor"),textPosition:"inside"}})),i.add(new xM(Ei({silent:!0,shape:{x:0,y:0,width:r[0],height:r[1]},style:{stroke:o.get("dataBackgroundColor")||o.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}}))),MM([0,1],function(t){var r=fr(o.get("handleIcon"),{cursor:$c(this._orient),draggable:!0,drift:bM(this._onDragMove,this,t),onmousemove:function(t){tm(t.event)},ondragend:bM(this._onDragEnd,this),onmouseover:bM(this._showDataInfo,this,!0),onmouseout:bM(this._showDataInfo,this,!1)},{x:-1,y:0,width:2,height:2}),a=r.getBoundingRect();this._handleHeight=_r(o.get("handleSize"),this._size[1]),this._handleWidth=a.width/a.height*this._handleHeight,r.setStyle(o.getModel("handleStyle").getItemStyle());var s=o.get("handleColor");null!=s&&(r.style.fill=s),i.add(e[t]=r);var l=o.textStyleModel;this.group.add(n[t]=new kv({silent:!0,invisible:!0,style:{x:0,y:0,text:"",textVerticalAlign:"middle",textAlign:"center",textFill:l.getTextColor(),textFont:l.getFont()},z2:10}))},this)},_resetInterval:function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[_M(t[0],[0,100],e,!0),_M(t[1],[0,100],e,!0)]},_updateInterval:function(t,e){var n=this.dataZoomModel,i=this._handleEnds,r=this._getViewExtent(),o=n.findRepresentativeAxisProxy().getMinMaxSpan(),a=[0,100];yM(e,i,r,n.get("zoomLock")?"all":t,null!=o.minSpan?_M(o.minSpan,a,r,!0):null,null!=o.maxSpan?_M(o.maxSpan,a,r,!0):null);var s=this._range,l=this._range=wM([_M(i[0],r,a,!0),_M(i[1],r,a,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},_updateView:function(t){var e=this._displayables,n=this._handleEnds,i=wM(n.slice()),r=this._size;MM([0,1],function(t){var i=e.handles[t],o=this._handleHeight;i.attr({scale:[o/2,o/2],position:[n[t],r[1]/2-o/2]})},this),e.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:r[1]}),this._updateDataInfo(t)},_updateDataInfo:function(t){function e(t){var e=lr(i.handles[t].parent,this.group),n=hr(0===t?"right":"left",e),s=this._handleWidth/2+IM,l=ur([c[t]+(0===t?-s:s),this._size[1]/2],e);r[t].setStyle({x:l[0],y:l[1],textVerticalAlign:o===SM?"middle":n,textAlign:o===SM?n:"center",text:a[t]})}var n=this.dataZoomModel,i=this._displayables,r=i.handleLabels,o=this._orient,a=["",""];if(n.get("showDetail")){var s=n.findRepresentativeAxisProxy();if(s){var l=s.getAxisModel().axis,u=this._range,h=t?s.calculateDataWindow({start:u[0],end:u[1]}).valueWindow:s.getDataValueWindow();a=[this._formatLabel(h[0],l),this._formatLabel(h[1],l)]}}var c=wM(this._handleEnds.slice());e.call(this,0),e.call(this,1)},_formatLabel:function(t,e){var n=this.dataZoomModel,i=n.get("labelFormatter"),r=n.get("labelPrecision");null!=r&&"auto"!==r||(r=e.getPixelPrecision());var o=null==t||isNaN(t)?"":"category"===e.type||"time"===e.type?e.scale.getLabel(Math.round(t)):t.toFixed(Math.min(r,20));return x(i)?i(t,o):_(i)?i.replace("{value}",o):o},_showDataInfo:function(t){t=this._dragging||t;var e=this._displayables.handleLabels;e[0].attr("invisible",!t),e[1].attr("invisible",!t)},_onDragMove:function(t,e,n){this._dragging=!0;var i=ur([e,n],this._displayables.barGroup.getLocalTransform(),!0),r=this._updateInterval(t,i[0]),o=this.dataZoomModel.get("realtime");this._updateView(!o),r&&o&&this._dispatchZoomAction()},_onDragEnd:function(){this._dragging=!1,this._showDataInfo(!1),!this.dataZoomModel.get("realtime")&&this._dispatchZoomAction()},_onClickPanelClick:function(t){var e=this._size,n=this._displayables.barGroup.transformCoordToLocal(t.offsetX,t.offsetY);if(!(n[0]<0||n[0]>e[0]||n[1]<0||n[1]>e[1])){var i=this._handleEnds,r=(i[0]+i[1])/2,o=this._updateInterval("all",n[0]-r);this._updateView(),o&&this._dispatchZoomAction()}},_dispatchZoomAction:function(){var t=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,start:t[0],end:t[1]})},_findCoordRect:function(){var t;if(MM(this.getTargetCoordInfo(),function(e){if(!t&&e.length){var n=e[0].model.coordinateSystem;t=n.getRect&&n.getRect()}}),!t){var e=this.api.getWidth(),n=this.api.getHeight();t={x:.2*e,y:.2*n,width:.6*e,height:.6*n}}return t}});mM.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,preventDefaultMouseMove:!0}});var DM="\0_ec_interaction_mutex";ts({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){}),h(ed,Zp);var AM=v,kM="\0_ec_dataZoom_roams",PM=m,LM=vM.extend({type:"dataZoom.inside",init:function(t,e){this._range},render:function(t,e,n,i){LM.superApply(this,"render",arguments),this._range=t.getPercentRange(),d(this.getTargetCoordInfo(),function(e,i){var r=f(e,function(t){return cd(t.model)});d(e,function(e){var o=e.model,a=t.option;ud(n,{coordId:cd(o),allCoordIds:r,containsPoint:function(t,e,n){return o.coordinateSystem.containPoint([e,n])},dataZoomId:t.id,throttleRate:t.get("throttle",!0),panGetRange:PM(this._onPan,this,e,i),zoomGetRange:PM(this._onZoom,this,e,i),zoomLock:a.zoomLock,disabled:a.disabled,roamControllerOpt:{zoomOnMouseWheel:a.zoomOnMouseWheel,moveOnMouseMove:a.moveOnMouseMove,preventDefaultMouseMove:a.preventDefaultMouseMove}})},this)},this)},dispose:function(){hd(this.api,this.dataZoomModel.id),LM.superApply(this,"dispose",arguments),this._range=null},_onPan:function(t,e,n,i,r,o,a,s,l){var u=this._range,h=u.slice(),c=t.axisModels[0];if(c){var d=OM[e]([o,a],[s,l],c,n,t),f=d.signal*(h[1]-h[0])*d.pixel/d.pixelLength;return yM(f,h,[0,100],"all"),this._range=h,u[0]!==h[0]||u[1]!==h[1]?h:void 0}},_onZoom:function(t,e,n,i,r,o){var a=this._range,s=a.slice(),l=t.axisModels[0];if(l){var u=OM[e](null,[r,o],l,n,t),h=(u.signal>0?u.pixelStart+u.pixelLength-u.pixel:u.pixel-u.pixelStart)/u.pixelLength*(s[1]-s[0])+s[0];i=Math.max(1/i,0),s[0]=(s[0]-h)*i+h,s[1]=(s[1]-h)*i+h;var c=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return yM(0,s,[0,100],0,c.minSpan,c.maxSpan),this._range=s,a[0]!==s[0]||a[1]!==s[1]?s:void 0}}}),OM={grid:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem.getRect();return t=t||[0,0],"x"===o.dim?(a.pixel=e[0]-t[0],a.pixelLength=s.width,a.pixelStart=s.x,a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=s.height,a.pixelStart=s.y,a.signal=o.inverse?-1:1),a},polar:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===n.mainType?(a.pixel=e[0]-t[0],a.pixelLength=l[1]-l[0],a.pixelStart=l[0],a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=u[1]-u[0],a.pixelStart=u[0],a.signal=o.inverse?-1:1),a},singleAxis:function(t,e,n,i,r){var o=n.axis,a=r.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===o.orient?(s.pixel=e[0]-t[0],s.pixelLength=a.width,s.pixelStart=a.x,s.signal=o.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=a.height,s.pixelStart=a.y,s.signal=o.inverse?-1:1),s}};Ja({getTargetSeries:function(t){var e=N();return t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,n,i){d(i.getAxisProxy(t.name,n).getTargetSeriesModels(),function(t){e.set(t.uid,t)})})}),e},modifyOutputEnd:!0,overallReset:function(t,e){t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,n,i){i.getAxisProxy(t.name,n).reset(i,e)}),t.eachTargetAxis(function(t,n,i){i.getAxisProxy(t.name,n).filterData(i,e)})}),t.eachComponent("dataZoom",function(t){var e=t.findRepresentativeAxisProxy(),n=e.getDataPercentWindow(),i=e.getDataValueWindow();t.setRawRange({start:n[0],end:n[1],startValue:i[0],endValue:i[1]},!0)})}}),ts("dataZoom",function(t,e){var n=Fc(m(e.eachComponent,e,"dataZoom"),hM,function(t,e){return t.get(e.axisIndex)}),i=[];e.eachComponent({mainType:"dataZoom",query:t},function(t,e){i.push.apply(i,n(t).nodes)}),d(i,function(e,n){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})})});var zM={},EM=os({type:"toolbox",layoutMode:{type:"box",ignoreSize:!0},optionUpdated:function(){EM.superApply(this,"optionUpdated",arguments),d(this.option.feature,function(t,e){var n=wd(e);n&&i(t,n.defaultOption)})},defaultOption:{show:!0,z:6,zlevel:0,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}}}});as({type:"toolbox",render:function(t,e,n,i){function r(r,a){var s,c=h[r],d=h[a],f=new pr(l[c],t,t.ecModel);if(c&&!d){if(bd(c))s={model:f,onclick:f.option.onclick,featureName:c};else{var p=wd(c);if(!p)return;s=new p(f,e,n)}u[c]=s}else{if(!(s=u[d]))return;s.model=f,s.ecModel=e,s.api=n}c||!d?f.get("show")&&!s.unusable?(o(f,s,c),f.setIconStatus=function(t,e){var n=this.option,i=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[t]=e,i[t]&&i[t].trigger(e)},s.render&&s.render(f,e,n,i)):s.remove&&s.remove(e,n):s.dispose&&s.dispose(e,n)}function o(i,r,o){var l=i.getModel("iconStyle"),u=i.getModel("emphasis.iconStyle"),h=r.getIcons?r.getIcons():i.get("icon"),c=i.get("title")||{};if("string"==typeof h){var f=h,p=c;c={},(h={})[o]=f,c[o]=p}var g=i.iconPaths={};d(h,function(o,h){var d=fr(o,{},{x:-s/2,y:-s/2,width:s,height:s});d.setStyle(l.getItemStyle()),d.hoverStyle=u.getItemStyle(),qi(d),t.get("showTitle")&&(d.__title=c[h],d.on("mouseover",function(){var t=u.getItemStyle();d.setStyle({text:c[h],textPosition:t.textPosition||"bottom",textFill:t.fill||t.stroke||"#000",textAlign:t.textAlign||"center"})}).on("mouseout",function(){d.setStyle({textFill:null})})),d.trigger(i.get("iconStatus."+h)||"normal"),a.add(d),d.on("click",m(r.onclick,r,e,n,h)),g[h]=d})}var a=this.group;if(a.removeAll(),t.get("show")){var s=+t.get("itemSize"),l=t.get("feature")||{},u=this._features||(this._features={}),h=[];d(l,function(t,e){h.push(e)}),new hs(this._featureNames||[],h).add(r).update(r).remove(v(r,null)).execute(),this._featureNames=h,Jh(a,t,n),a.add(tc(a.getBoundingRect(),t)),a.eachChild(function(t){var e=t.__title,i=t.hoverStyle;if(i&&e){var r=ce(e,Ce(i)),o=t.position[0]+a.position[0],l=!1;t.position[1]+a.position[1]+s+r.height>n.getHeight()&&(i.textPosition="top",l=!0);var u=l?-5-r.height:s+8;o+r.width/2>n.getWidth()?(i.textPosition=["100%",u],i.textAlign="right"):o-r.width/2<0&&(i.textPosition=[0,u],i.textAlign="left")}})}},updateView:function(t,e,n,i){d(this._features,function(t){t.updateView&&t.updateView(t.model,e,n,i)})},remove:function(t,e){d(this._features,function(n){n.remove&&n.remove(t,e)}),this.group.removeAll()},dispose:function(t,e){d(this._features,function(n){n.dispose&&n.dispose(t,e)})}});var NM=Sx.toolbox.saveAsImage;Md.defaultOption={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:NM.title,type:"png",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:NM.lang.slice()},Md.prototype.unusable=!bp.canvasSupported,Md.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",r=document.createElement("a"),o=n.get("type",!0)||"png";r.download=i+"."+o,r.target="_blank";var a=e.getConnectedDataURL({type:o,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")});if(r.href=a,"function"!=typeof MouseEvent||bp.browser.ie||bp.browser.edge)if(window.navigator.msSaveOrOpenBlob){for(var s=atob(a.split(",")[1]),l=s.length,u=new Uint8Array(l);l--;)u[l]=s.charCodeAt(l);var h=new Blob([u]);window.navigator.msSaveOrOpenBlob(h,i+"."+o)}else{var c=n.get("lang"),d='<body style="margin:0;"><img src="'+a+'" style="max-width:100%;" title="'+(c&&c[0]||"")+'" /></body>';window.open().document.write(d)}else{var f=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});r.dispatchEvent(f)}},_d("saveAsImage",Md);var RM=Sx.toolbox.magicType;Sd.defaultOption={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z",tiled:"M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z"},title:n(RM.title),option:{},seriesIndex:{}};var BM=Sd.prototype;BM.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return d(t.get("type"),function(t){e[t]&&(n[t]=e[t])}),n};var VM={line:function(t,e,n,r){if("bar"===t)return i({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},r.get("option.line")||{},!0)},bar:function(t,e,n,r){if("line"===t)return i({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},r.get("option.bar")||{},!0)},stack:function(t,e,n,r){if("line"===t||"bar"===t)return i({id:e,stack:"__ec_magicType_stack__"},r.get("option.stack")||{},!0)},tiled:function(t,e,n,r){if("line"===t||"bar"===t)return i({id:e,stack:""},r.get("option.tiled")||{},!0)}},FM=[["line","bar"],["stack","tiled"]];BM.onclick=function(t,e,n){var i=this.model,r=i.get("seriesIndex."+n);if(VM[n]){var o={series:[]};d(FM,function(t){l(t,n)>=0&&d(t,function(t){i.setIconStatus(t,"normal")})}),i.setIconStatus(n,"emphasis"),t.eachComponent({mainType:"series",query:null==r?null:{seriesIndex:r}},function(e){var r=e.subType,s=e.id,l=VM[n](r,s,e,i);l&&(a(l,e.option),o.series.push(l));var u=e.coordinateSystem;if(u&&"cartesian2d"===u.type&&("line"===n||"bar"===n)){var h=u.getAxesByScale("ordinal")[0];if(h){var c=h.dim+"Axis",d=t.queryComponents({mainType:c,index:e.get(name+"Index"),id:e.get(name+"Id")})[0].componentIndex;o[c]=o[c]||[];for(var f=0;f<=d;f++)o[c][d]=o[c][d]||{};o[c][d].boundaryGap="bar"===n}}}),e.dispatchAction({type:"changeMagicType",currentType:n,newOption:o})}},ts({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),_d("magicType",Sd);var HM=Sx.toolbox.dataView,GM=new Array(60).join("-"),WM="\t",ZM=new RegExp("["+WM+"]+","g");zd.defaultOption={show:!0,readOnly:!1,optionToContent:null,contentToOption:null,icon:"M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28",title:n(HM.title),lang:n(HM.lang),backgroundColor:"#fff",textColor:"#000",textareaColor:"#fff",textareaBorderColor:"#333",buttonColor:"#c23531",buttonTextColor:"#fff"},zd.prototype.onclick=function(t,e){function n(){i.removeChild(o),x._dom=null}var i=e.getDom(),r=this.model;this._dom&&i.removeChild(this._dom);var o=document.createElement("div");o.style.cssText="position:absolute;left:5px;top:5px;bottom:5px;right:5px;",o.style.backgroundColor=r.get("backgroundColor")||"#fff";var a=document.createElement("h4"),s=r.get("lang")||[];a.innerHTML=s[0]||r.get("title"),a.style.cssText="margin: 10px 20px;",a.style.color=r.get("textColor");var l=document.createElement("div"),u=document.createElement("textarea");l.style.cssText="display:block;width:100%;overflow:auto;";var h=r.get("optionToContent"),c=r.get("contentToOption"),d=Dd(t);if("function"==typeof h){var f=h(e.getOption());"string"==typeof f?l.innerHTML=f:S(f)&&l.appendChild(f)}else l.appendChild(u),u.readOnly=r.get("readOnly"),u.style.cssText="width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;",u.style.color=r.get("textColor"),u.style.borderColor=r.get("textareaBorderColor"),u.style.backgroundColor=r.get("textareaColor"),u.value=d.value;var p=d.meta,g=document.createElement("div");g.style.cssText="position:absolute;bottom:0;left:0;right:0;";var m="float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px",v=document.createElement("div"),y=document.createElement("div");m+=";background-color:"+r.get("buttonColor"),m+=";color:"+r.get("buttonTextColor");var x=this;on(v,"click",n),on(y,"click",function(){var t;try{t="function"==typeof c?c(l,e.getOption()):Od(u.value,p)}catch(t){throw n(),new Error("Data view format error "+t)}t&&e.dispatchAction({type:"changeDataView",newOption:t}),n()}),v.innerHTML=s[1],y.innerHTML=s[2],y.style.cssText=m,v.style.cssText=m,!r.get("readOnly")&&g.appendChild(y),g.appendChild(v),on(u,"keydown",function(t){if(9===(t.keyCode||t.which)){var e=this.value,n=this.selectionStart,i=this.selectionEnd;this.value=e.substring(0,n)+WM+e.substring(i),this.selectionStart=this.selectionEnd=n+1,tm(t)}}),o.appendChild(a),o.appendChild(l),o.appendChild(g),l.style.height=i.clientHeight-80+"px",i.appendChild(o),this._dom=o},zd.prototype.remove=function(t,e){this._dom&&e.getDom().removeChild(this._dom)},zd.prototype.dispose=function(t,e){this.remove(t,e)},_d("dataView",zd),ts({type:"changeDataView",event:"dataViewChanged",update:"prepareAndUpdate"},function(t,e){var n=[];d(t.newOption.series,function(t){var i=e.getSeriesByName(t.name)[0];if(i){var r=i.get("data");n.push({name:t.name,data:Ed(t.data,r)})}else n.push(o({type:"scatter"},t))}),e.mergeOption(a({series:n},t.newOption))});var UM=v,XM=d,jM=f,YM=Math.min,qM=Math.max,$M=Math.pow,KM=1e4,QM=6,JM=6,tS="globalPan",eS={w:[0,0],e:[0,1],n:[1,0],s:[1,1]},nS={w:"ew",e:"ew",n:"ns",s:"ns",ne:"nesw",sw:"nesw",nw:"nwse",se:"nwse"},iS={brushStyle:{lineWidth:2,stroke:"rgba(0,0,0,0.3)",fill:"rgba(0,0,0,0.1)"},transformable:!0,brushMode:"single",removeOnClick:!1},rS=0;Nd.prototype={constructor:Nd,enableBrush:function(t){return this._brushType&&Bd(this),t.brushType&&Rd(this,t),this},setPanels:function(t){if(t&&t.length){var e=this._panels={};d(t,function(t){e[t.panelId]=n(t)})}else this._panels=null;return this},mount:function(t){t=t||{},this._enableGlobalPan=t.enableGlobalPan;var e=this.group;return this._zr.add(e),e.attr({position:t.position||[0,0],rotation:t.rotation||0,scale:t.scale||[1,1]}),this._transform=e.getLocalTransform(),this},eachCover:function(t,e){XM(this._covers,t,e)},updateCovers:function(t){function e(t,e){return(null!=t.id?t.id:o+e)+"-"+t.brushType}function r(e,n){var i=t[e];if(null!=n&&a[n]===u)s[e]=a[n];else{var r=s[e]=null!=n?(a[n].__brushOption=i,a[n]):Fd(l,Vd(l,i));Wd(l,r)}}t=f(t,function(t){return i(n(iS),t,!0)});var o="\0-brush-index-",a=this._covers,s=this._covers=[],l=this,u=this._creatingCover;return new hs(a,t,function(t,n){return e(t.__brushOption,n)},e).add(r).update(r).remove(function(t){a[t]!==u&&l.group.remove(a[t])}).execute(),this},unmount:function(){return this.enableBrush(!1),jd(this),this._zr.remove(this.group),this},dispose:function(){this.unmount(),this.off()}},h(Nd,Zp);var oS={mousedown:function(t){if(this._dragging)mf.call(this,t);else if(!t.target||!t.target.draggable){df(t);var e=this.group.transformCoordToLocal(t.offsetX,t.offsetY);this._creatingCover=null,(this._creatingPanel=Ud(this,t,e))&&(this._dragging=!0,this._track=[e.slice()])}},mousemove:function(t){var e=this.group.transformCoordToLocal(t.offsetX,t.offsetY);if(cf(this,t,e),this._dragging){df(t);var n=pf(this,t,e,!1);n&&Yd(this,n)}},mouseup:mf},aS={lineX:vf(0),lineY:vf(1),rect:{createCover:function(t,e){return Kd(UM(af,function(t){return t},function(t){return t}),t,e,["w","e","n","s","se","sw","ne","nw"])},getCreatingRange:function(t){var e=$d(t);return nf(e[1][0],e[1][1],e[0][0],e[0][1])},updateCoverShape:function(t,e,n,i){Qd(t,e,n,i)},updateCommon:Jd,contain:ff},polygon:{createCover:function(t,e){var n=new Sg;return n.add(new Vv({name:"main",style:ef(e),silent:!0})),n},getCreatingRange:function(t){return t},endCreating:function(t,e){e.remove(e.childAt(0)),e.add(new Bv({name:"main",draggable:!0,drift:UM(sf,t,e),ondragend:UM(Yd,t,{isEnd:!0})}))},updateCoverShape:function(t,e,n,i){e.childAt(0).setShape({points:uf(t,e,n)})},updateCommon:Jd,contain:ff}},sS={axisPointer:1,tooltip:1,brush:1},lS=d,uS=l,hS=v,cS=["dataToPoint","pointToData"],dS=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],fS=Mf.prototype;fS.setOutputRanges=function(t,e){this.matchOutputRanges(t,e,function(t,e,n){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var i=vS[t.brushType](0,n,e);t.__rangeOffset={offset:yS[t.brushType](i.values,t.range,[1,1]),xyMinMax:i.xyMinMax}}})},fS.matchOutputRanges=function(t,e,n){lS(t,function(t){var i=this.findTargetInfo(t,e);i&&!0!==i&&d(i.coordSyses,function(i){var r=vS[t.brushType](1,i,t.range);n(t,r.values,i,e)})},this)},fS.setInputRanges=function(t,e){lS(t,function(t){var n=this.findTargetInfo(t,e);if(t.range=t.range||[],n&&!0!==n){t.panelId=n.panelId;var i=vS[t.brushType](0,n.coordSys,t.coordRange),r=t.__rangeOffset;t.range=r?yS[t.brushType](i.values,r.offset,Df(i.xyMinMax,r.xyMinMax)):i.values}},this)},fS.makePanelOpts=function(t,e){return f(this._targetInfoList,function(n){var i=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:e&&e(n),clipPath:xf(i),isTargetByCursor:wf(i,t,n.coordSysModel),getLinearBrushOtherExtent:_f(i)}})},fS.controlSeries=function(t,e,n){var i=this.findTargetInfo(t,n);return!0===i||i&&uS(i.coordSyses,e.coordinateSystem)>=0},fS.findTargetInfo=function(t,e){for(var n=this._targetInfoList,i=If(e,t),r=0;r<n.length;r++){var o=n[r],a=t.panelId;if(a){if(o.panelId===a)return o}else for(r=0;r<gS.length;r++)if(gS[r](i,o))return o}return!0};var pS={grid:function(t,e){var n=t.xAxisModels,i=t.yAxisModels,r=t.gridModels,o=N(),a={},s={};(n||i||r)&&(lS(n,function(t){var e=t.axis.grid.model;o.set(e.id,e),a[e.id]=!0}),lS(i,function(t){var e=t.axis.grid.model;o.set(e.id,e),s[e.id]=!0}),lS(r,function(t){o.set(t.id,t),a[t.id]=!0,s[t.id]=!0}),o.each(function(t){var r=t.coordinateSystem,o=[];lS(r.getCartesians(),function(t,e){(uS(n,t.getAxis("x").model)>=0||uS(i,t.getAxis("y").model)>=0)&&o.push(t)}),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:o[0],coordSyses:o,getPanelRect:mS.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})}))},geo:function(t,e){lS(t.geoModels,function(t){var n=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:n,coordSyses:[n],getPanelRect:mS.geo})})}},gS=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,r=t.gridModel;return!r&&n&&(r=n.axis.grid.model),!r&&i&&(r=i.axis.grid.model),r&&r===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],mS={grid:function(){return this.coordSys.grid.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(lr(t)),e}},vS={lineX:hS(Cf,0),lineY:hS(Cf,1),rect:function(t,e,n){var i=e[cS[t]]([n[0][0],n[1][0]]),r=e[cS[t]]([n[0][1],n[1][1]]),o=[Sf([i[0],r[0]]),Sf([i[1],r[1]])];return{values:o,xyMinMax:o}},polygon:function(t,e,n){var i=[[1/0,-1/0],[1/0,-1/0]];return{values:f(n,function(n){var r=e[cS[t]](n);return i[0][0]=Math.min(i[0][0],r[0]),i[1][0]=Math.min(i[1][0],r[1]),i[0][1]=Math.max(i[0][1],r[0]),i[1][1]=Math.max(i[1][1],r[1]),r}),xyMinMax:i}}},yS={lineX:hS(Tf,0),lineY:hS(Tf,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,e,n){return f(t,function(t,i){return[t[0]-n[0]*e[i][0],t[1]-n[1]*e[i][1]]})}},xS=d,_S="\0_ec_hist_store";mM.extend({type:"dataZoom.select"}),vM.extend({type:"dataZoom.select"});var wS=Sx.toolbox.dataZoom,bS=d,MS="\0_ec_\0toolbox-dataZoom_";Ef.defaultOption={show:!0,icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:n(wS.title)};var SS=Ef.prototype;SS.render=function(t,e,n,i){this.model=t,this.ecModel=e,this.api=n,Bf(t,e,this,i,n),Rf(t,e)},SS.onclick=function(t,e,n){IS[n].call(this)},SS.remove=function(t,e){this._brushController.unmount()},SS.dispose=function(t,e){this._brushController.dispose()};var IS={zoom:function(){var t=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(Pf(this.ecModel))}};SS._onBrush=function(t,e){function n(t,e,n){var a=e.getAxis(t),s=a.model,l=i(t,s,o),u=l.findRepresentativeAxisProxy(s).getMinMaxSpan();null==u.minValueSpan&&null==u.maxValueSpan||(n=yM(0,n.slice(),a.scale.getExtent(),0,u.minValueSpan,u.maxValueSpan)),l&&(r[l.id]={dataZoomId:l.id,startValue:n[0],endValue:n[1]})}function i(t,e,n){var i;return n.eachComponent({mainType:"dataZoom",subType:"select"},function(n){n.getAxisModel(t,e.componentIndex)&&(i=n)}),i}if(e.isEnd&&t.length){var r={},o=this.ecModel;this._brushController.updateCovers([]),new Mf(Nf(this.model.option),o,{include:["grid"]}).matchOutputRanges(t,o,function(t,e,i){if("cartesian2d"===i.type){var r=t.brushType;"rect"===r?(n("x",i,e[0]),n("y",i,e[1])):n({lineX:"x",lineY:"y"}[r],i,e)}}),kf(o,r),this._dispatchZoomAction(r)}},SS._dispatchZoomAction=function(t){var e=[];bS(t,function(t,i){e.push(n(t))}),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},_d("dataZoom",Ef),Qa(function(t){function e(t,e){if(e){var r=t+"Index",o=e[r];null==o||"all"==o||y(o)||(o=!1===o||"none"===o?[]:[o]),n(t,function(e,n){if(null==o||"all"==o||-1!==l(o,n)){var a={type:"select",$fromToolbox:!0,id:MS+t+n};a[r]=n,i.push(a)}})}}function n(e,n){var i=t[e];y(i)||(i=i?[i]:[]),bS(i,n)}if(t){var i=t.dataZoom||(t.dataZoom=[]);y(i)||(t.dataZoom=i=[i]);var r=t.toolbox;if(r&&(y(r)&&(r=r[0]),r&&r.feature)){var o=r.feature.dataZoom;e("xAxis",o),e("yAxis",o)}}});var CS=Sx.toolbox.restore;Vf.defaultOption={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:CS.title},Vf.prototype.onclick=function(t,e,n){Lf(t),e.dispatchAction({type:"restore",from:this.uid})},_d("restore",Vf),ts({type:"restore",event:"restore",update:"prepareAndUpdate"},function(t,e){e.resetOption("recreate")});var TS,DS="urn:schemas-microsoft-com:vml",AS="undefined"==typeof window?null:window,kS=!1,PS=AS&&AS.document;if(PS&&!bp.canvasSupported)try{!PS.namespaces.zrvml&&PS.namespaces.add("zrvml",DS),TS=function(t){return PS.createElement("<zrvml:"+t+' class="zrvml">')}}catch(t){TS=function(t){return PS.createElement("<"+t+' xmlns="'+DS+'" class="zrvml">')}}var LS=av.CMD,OS=Math.round,zS=Math.sqrt,ES=Math.abs,NS=Math.cos,RS=Math.sin,BS=Math.max;if(!bp.canvasSupported){var VS=21600,FS=VS/2,HS=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=VS+","+VS,t.coordorigin="0,0"},GS=function(t){return String(t).replace(/&/g,"&amp;").replace(/"/g,"&quot;")},WS=function(t,e,n){return"rgb("+[t,e,n].join(",")+")"},ZS=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},US=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},XS=function(t,e,n){return 1e5*(parseFloat(t)||0)+1e3*(parseFloat(e)||0)+n},jS=function(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t},YS=function(t,e,n){var i=St(e);n=+n,isNaN(n)&&(n=1),i&&(t.color=WS(i[0],i[1],i[2]),t.opacity=n*i[3])},qS=function(t){var e=St(t);return[WS(e[0],e[1],e[2]),e[3]]},$S=function(t,e,n){var i=e.fill;if(null!=i)if(i instanceof Xv){var r,o=0,a=[0,0],s=0,l=1,u=n.getBoundingRect(),h=u.width,c=u.height;if("linear"===i.type){r="gradient";var d=n.transform,f=[i.x*h,i.y*c],p=[i.x2*h,i.y2*c];d&&($(f,f,d),$(p,p,d));var g=p[0]-f[0],m=p[1]-f[1];(o=180*Math.atan2(g,m)/Math.PI)<0&&(o+=360),o<1e-6&&(o=0)}else{r="gradientradial";var f=[i.x*h,i.y*c],d=n.transform,v=n.scale,y=h,x=c;a=[(f[0]-u.x)/y,(f[1]-u.y)/x],d&&$(f,f,d),y/=v[0]*VS,x/=v[1]*VS;var _=BS(y,x);s=0/_,l=2*i.r/_-s}var w=i.colorStops.slice();w.sort(function(t,e){return t.offset-e.offset});for(var b=w.length,M=[],S=[],I=0;I<b;I++){var C=w[I],T=qS(C.color);S.push(C.offset*l+s+" "+T[0]),0!==I&&I!==b-1||M.push(T)}if(b>=2){var D=M[0][0],A=M[1][0],k=M[0][1]*e.opacity,P=M[1][1]*e.opacity;t.type=r,t.method="none",t.focus="100%",t.angle=o,t.color=D,t.color2=A,t.colors=S.join(","),t.opacity=P,t.opacity2=k}"radial"===r&&(t.focusposition=a.join(","))}else YS(t,i,e.opacity)},KS=function(t,e){null!=e.lineDash&&(t.dashstyle=e.lineDash.join(" ")),null==e.stroke||e.stroke instanceof Xv||YS(t,e.stroke,e.opacity)},QS=function(t,e,n,i){var r="fill"==e,o=t.getElementsByTagName(e)[0];null!=n[e]&&"none"!==n[e]&&(r||!r&&n.lineWidth)?(t[r?"filled":"stroked"]="true",n[e]instanceof Xv&&US(t,o),o||(o=Ff(e)),r?$S(o,n,i):KS(o,n),ZS(t,o)):(t[r?"filled":"stroked"]="false",US(t,o))},JS=[[],[],[]],tI=function(t,e){var n,i,r,o,a,s,l=LS.M,u=LS.C,h=LS.L,c=LS.A,d=LS.Q,f=[],p=t.data,g=t.len();for(o=0;o<g;){switch(r=p[o++],i="",n=0,r){case l:i=" m ",n=1,a=p[o++],s=p[o++],JS[0][0]=a,JS[0][1]=s;break;case h:i=" l ",n=1,a=p[o++],s=p[o++],JS[0][0]=a,JS[0][1]=s;break;case d:case u:i=" c ",n=3;var m,v,y=p[o++],x=p[o++],_=p[o++],w=p[o++];r===d?(m=_,v=w,_=(_+2*y)/3,w=(w+2*x)/3,y=(a+2*y)/3,x=(s+2*x)/3):(m=p[o++],v=p[o++]),JS[0][0]=y,JS[0][1]=x,JS[1][0]=_,JS[1][1]=w,JS[2][0]=m,JS[2][1]=v,a=m,s=v;break;case c:var b=0,M=0,S=1,I=1,C=0;e&&(b=e[4],M=e[5],S=zS(e[0]*e[0]+e[1]*e[1]),I=zS(e[2]*e[2]+e[3]*e[3]),C=Math.atan2(-e[1]/I,e[0]/S));var T=p[o++],D=p[o++],A=p[o++],k=p[o++],P=p[o++]+C,L=p[o++]+P+C;o++;var O=p[o++],z=T+NS(P)*A,E=D+RS(P)*k,y=T+NS(L)*A,x=D+RS(L)*k,N=O?" wa ":" at ";Math.abs(z-y)<1e-4&&(Math.abs(L-P)>.01?O&&(z+=.0125):Math.abs(E-D)<1e-4?O&&z<T||!O&&z>T?x-=.0125:x+=.0125:O&&E<D||!O&&E>D?y+=.0125:y-=.0125),f.push(N,OS(((T-A)*S+b)*VS-FS),",",OS(((D-k)*I+M)*VS-FS),",",OS(((T+A)*S+b)*VS-FS),",",OS(((D+k)*I+M)*VS-FS),",",OS((z*S+b)*VS-FS),",",OS((E*I+M)*VS-FS),",",OS((y*S+b)*VS-FS),",",OS((x*I+M)*VS-FS)),a=y,s=x;break;case LS.R:var R=JS[0],B=JS[1];R[0]=p[o++],R[1]=p[o++],B[0]=R[0]+p[o++],B[1]=R[1]+p[o++],e&&($(R,R,e),$(B,B,e)),R[0]=OS(R[0]*VS-FS),B[0]=OS(B[0]*VS-FS),R[1]=OS(R[1]*VS-FS),B[1]=OS(B[1]*VS-FS),f.push(" m ",R[0],",",R[1]," l ",B[0],",",R[1]," l ",B[0],",",B[1]," l ",R[0],",",B[1]);break;case LS.Z:f.push(" x ")}if(n>0){f.push(i);for(var V=0;V<n;V++){var F=JS[V];e&&$(F,F,e),f.push(OS(F[0]*VS-FS),",",OS(F[1]*VS-FS),V<n-1?",":"")}}}return f.join("")};xi.prototype.brushVML=function(t){var e=this.style,n=this._vmlEl;n||(n=Ff("shape"),HS(n),this._vmlEl=n),QS(n,"fill",e,this),QS(n,"stroke",e,this);var i=this.transform,r=null!=i,o=n.getElementsByTagName("stroke")[0];if(o){var a=e.lineWidth;if(r&&!e.strokeNoScale){var s=i[0]*i[3]-i[1]*i[2];a*=zS(ES(s))}o.weight=a+"px"}var l=this.path||(this.path=new av);this.__dirtyPath&&(l.beginPath(),this.buildPath(l,this.shape),l.toStatic(),this.__dirtyPath=!1),n.path=tI(l,this.transform),n.style.zIndex=XS(this.zlevel,this.z,this.z2),ZS(t,n),null!=e.text?this.drawRectText(t,this.getBoundingRect()):this.removeRectText(t)},xi.prototype.onRemove=function(t){US(t,this._vmlEl),this.removeRectText(t)},xi.prototype.onAdd=function(t){ZS(t,this._vmlEl),this.appendRectText(t)};var eI=function(t){return"object"==typeof t&&t.tagName&&"IMG"===t.tagName.toUpperCase()};je.prototype.brushVML=function(t){var e,n,i=this.style,r=i.image;if(eI(r)){var o=r.src;if(o===this._imageSrc)e=this._imageWidth,n=this._imageHeight;else{var a=r.runtimeStyle,s=a.width,l=a.height;a.width="auto",a.height="auto",e=r.width,n=r.height,a.width=s,a.height=l,this._imageSrc=o,this._imageWidth=e,this._imageHeight=n}r=o}else r===this._imageSrc&&(e=this._imageWidth,n=this._imageHeight);if(r){var u=i.x||0,h=i.y||0,c=i.width,d=i.height,f=i.sWidth,p=i.sHeight,g=i.sx||0,m=i.sy||0,v=f&&p,y=this._vmlEl;y||(y=PS.createElement("div"),HS(y),this._vmlEl=y);var x,_=y.style,w=!1,b=1,M=1;if(this.transform&&(x=this.transform,b=zS(x[0]*x[0]+x[1]*x[1]),M=zS(x[2]*x[2]+x[3]*x[3]),w=x[1]||x[2]),w){var S=[u,h],I=[u+c,h],C=[u,h+d],T=[u+c,h+d];$(S,S,x),$(I,I,x),$(C,C,x),$(T,T,x);var D=BS(S[0],I[0],C[0],T[0]),A=BS(S[1],I[1],C[1],T[1]),k=[];k.push("M11=",x[0]/b,",","M12=",x[2]/M,",","M21=",x[1]/b,",","M22=",x[3]/M,",","Dx=",OS(u*b+x[4]),",","Dy=",OS(h*M+x[5])),_.padding="0 "+OS(D)+"px "+OS(A)+"px 0",_.filter="progid:DXImageTransform.Microsoft.Matrix("+k.join("")+", SizingMethod=clip)"}else x&&(u=u*b+x[4],h=h*M+x[5]),_.filter="",_.left=OS(u)+"px",_.top=OS(h)+"px";var P=this._imageEl,L=this._cropEl;P||(P=PS.createElement("div"),this._imageEl=P);var O=P.style;if(v){if(e&&n)O.width=OS(b*e*c/f)+"px",O.height=OS(M*n*d/p)+"px";else{var z=new Image,E=this;z.onload=function(){z.onload=null,e=z.width,n=z.height,O.width=OS(b*e*c/f)+"px",O.height=OS(M*n*d/p)+"px",E._imageWidth=e,E._imageHeight=n,E._imageSrc=r},z.src=r}L||((L=PS.createElement("div")).style.overflow="hidden",this._cropEl=L);var N=L.style;N.width=OS((c+g*c/f)*b),N.height=OS((d+m*d/p)*M),N.filter="progid:DXImageTransform.Microsoft.Matrix(Dx="+-g*c/f*b+",Dy="+-m*d/p*M+")",L.parentNode||y.appendChild(L),P.parentNode!=L&&L.appendChild(P)}else O.width=OS(b*c)+"px",O.height=OS(M*d)+"px",y.appendChild(P),L&&L.parentNode&&(y.removeChild(L),this._cropEl=null);var R="",B=i.opacity;B<1&&(R+=".Alpha(opacity="+OS(100*B)+") "),R+="progid:DXImageTransform.Microsoft.AlphaImageLoader(src="+r+", SizingMethod=scale)",O.filter=R,y.style.zIndex=XS(this.zlevel,this.z,this.z2),ZS(t,y),null!=i.text&&this.drawRectText(t,this.getBoundingRect())}},je.prototype.onRemove=function(t){US(t,this._vmlEl),this._vmlEl=null,this._cropEl=null,this._imageEl=null,this.removeRectText(t)},je.prototype.onAdd=function(t){ZS(t,this._vmlEl),this.appendRectText(t)};var nI,iI={},rI=0,oI=document.createElement("div"),aI=function(t){var e=iI[t];if(!e){rI>100&&(rI=0,iI={});var n,i=oI.style;try{i.font=t,n=i.fontFamily.split(",")[0]}catch(t){}e={style:i.fontStyle||"normal",variant:i.fontVariant||"normal",weight:i.fontWeight||"normal",size:0|parseFloat(i.fontSize||12),family:n||"Microsoft YaHei"},iI[t]=e,rI++}return e};!function(t,e){Zg[t]=e}("measureText",function(t,e){var n=PS;nI||((nI=n.createElement("div")).style.cssText="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;",PS.body.appendChild(nI));try{nI.style.font=e}catch(t){}return nI.innerHTML="",nI.appendChild(n.createTextNode(t)),{width:nI.offsetWidth}});for(var sI=new Xt,lI=[Yg,Xe,je,xi,kv],uI=0;uI<lI.length;uI++){var hI=lI[uI].prototype;hI.drawRectText=function(t,e,n,i){var r=this.style;this.__dirty&&De(r);var o=r.text;if(null!=o&&(o+=""),o){if(r.rich){var a=Se(o,r);o=[];for(var s=0;s<a.lines.length;s++){for(var l=a.lines[s].tokens,u=[],h=0;h<l.length;h++)u.push(l[h].text);o.push(u.join(""))}o=o.join("\n")}var c,d,f=r.textAlign,p=r.textVerticalAlign,g=aI(r.font),m=g.style+" "+g.variant+" "+g.weight+" "+g.size+'px "'+g.family+'"';n=n||ce(o,m,f,p);var v=this.transform;if(v&&!i&&(sI.copy(e),sI.applyTransform(v),e=sI),i)c=e.x,d=e.y;else{var y=r.textPosition,x=r.textDistance;if(y instanceof Array)c=e.x+jS(y[0],e.width),d=e.y+jS(y[1],e.height),f=f||"left";else{var _=me(y,e,x);c=_.x,d=_.y,f=f||_.textAlign,p=p||_.textVerticalAlign}}c=pe(c,n.width,f),d=ge(d,n.height,p),d+=n.height/2;var w,b,M,S=Ff,I=this._textVmlEl;I?b=(w=(M=I.firstChild).nextSibling).nextSibling:(I=S("line"),w=S("path"),b=S("textpath"),M=S("skew"),b.style["v-text-align"]="left",HS(I),w.textpathok=!0,b.on=!0,I.from="0 0",I.to="1000 0.05",ZS(I,M),ZS(I,w),ZS(I,b),this._textVmlEl=I);var C=[c,d],T=I.style;v&&i?($(C,C,v),M.on=!0,M.matrix=v[0].toFixed(3)+","+v[2].toFixed(3)+","+v[1].toFixed(3)+","+v[3].toFixed(3)+",0,0",M.offset=(OS(C[0])||0)+","+(OS(C[1])||0),M.origin="0 0",T.left="0px",T.top="0px"):(M.on=!1,T.left=OS(c)+"px",T.top=OS(d)+"px"),b.string=GS(o);try{b.style.font=m}catch(t){}QS(I,"fill",{fill:r.textFill,opacity:r.opacity},this),QS(I,"stroke",{stroke:r.textStroke,opacity:r.opacity,lineDash:r.lineDash},this),I.style.zIndex=XS(this.zlevel,this.z,this.z2),ZS(t,I)}},hI.removeRectText=function(t){US(t,this._textVmlEl),this._textVmlEl=null},hI.appendRectText=function(t){ZS(t,this._textVmlEl)}}kv.prototype.brushVML=function(t){var e=this.style;null!=e.text?this.drawRectText(t,{x:e.x||0,y:e.y||0,width:0,height:0},this.getBoundingRect(),!0):this.removeRectText(t)},kv.prototype.onRemove=function(t){this.removeRectText(t)},kv.prototype.onAdd=function(t){this.appendRectText(t)}}Wf.prototype={constructor:Wf,getType:function(){return"vml"},getViewportRoot:function(){return this._vmlViewport},getViewportRootOffset:function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},refresh:function(){var t=this.storage.getDisplayList(!0,!0);this._paintList(t)},_paintList:function(t){for(var e=this._vmlRoot,n=0;n<t.length;n++){var i=t[n];i.invisible||i.ignore?(i.__alreadyNotVisible||i.onRemove(e),i.__alreadyNotVisible=!0):(i.__alreadyNotVisible&&i.onAdd(e),i.__alreadyNotVisible=!1,i.__dirty&&(i.beforeBrush&&i.beforeBrush(),(i.brushVML||i.brush).call(i,e),i.afterBrush&&i.afterBrush())),i.__dirty=!1}this._firstPaint&&(this._vmlViewport.appendChild(e),this._firstPaint=!1)},resize:function(t,e){var t=null==t?this._getWidth():t,e=null==e?this._getHeight():e;if(this._width!=t||this._height!=e){this._width=t,this._height=e;var n=this._vmlViewport.style;n.width=t+"px",n.height=e+"px"}},dispose:function(){this.root.innerHTML="",this._vmlRoot=this._vmlViewport=this.storage=null},getWidth:function(){return this._width},getHeight:function(){return this._height},clear:function(){this._vmlViewport&&this.root.removeChild(this._vmlViewport)},_getWidth:function(){var t=this.root,e=t.currentStyle;return(t.clientWidth||Gf(e.width))-Gf(e.paddingLeft)-Gf(e.paddingRight)|0},_getHeight:function(){var t=this.root,e=t.currentStyle;return(t.clientHeight||Gf(e.height))-Gf(e.paddingTop)-Gf(e.paddingBottom)|0}},d(["getLayer","insertLayer","eachLayer","eachBuiltinLayer","eachOtherLayer","getLayers","modLayer","delLayer","clearLayer","toDataURL","pathToImage"],function(t){Wf.prototype[t]=Zf(t)}),vn("vml",Wf);var cI="http://www.w3.org/2000/svg",dI=av.CMD,fI=Array.prototype.join,pI="none",gI=Math.round,mI=Math.sin,vI=Math.cos,yI=Math.PI,xI=2*Math.PI,_I=180/yI,wI=1e-4,bI={};bI.brush=function(t){var e=t.style,n=t.__svgEl;n||(n=Uf("path"),t.__svgEl=n),t.path||t.createPathProxy();var i=t.path;if(t.__dirtyPath){i.beginPath(),t.buildPath(i,t.shape),t.__dirtyPath=!1;var r=tp(i);r.indexOf("NaN")<0&&Kf(n,"d",r)}Jf(n,e),$f(n,t.transform),null!=e.text&&CI(t,t.getBoundingRect())};var MI={};MI.brush=function(t){var e=t.style,n=e.image;if(n instanceof HTMLImageElement&&(n=n.src),n){var i=e.x||0,r=e.y||0,o=e.width,a=e.height,s=t.__svgEl;s||(s=Uf("image"),t.__svgEl=s),n!==t.__imageSrc&&(Qf(s,"href",n),t.__imageSrc=n),Kf(s,"width",o),Kf(s,"height",a),Kf(s,"x",i),Kf(s,"y",r),$f(s,t.transform),null!=e.text&&CI(t,t.getBoundingRect())}};var SI={},II=new Xt,CI=function(t,e,n){var i=t.style;t.__dirty&&De(i);var r=i.text;if(null!=r){r+="";var o=t.__textSvgEl;o||(o=Uf("text"),t.__textSvgEl=o);var a,s,l=i.textPosition,u=i.textDistance,h=i.textAlign||"left";"number"==typeof i.fontSize&&(i.fontSize+="px");var c=i.font||[i.fontStyle||"",i.fontWeight||"",i.fontSize||"",i.fontFamily||""].join(" ")||Wg,d=ep(i.textVerticalAlign),f=(n=ce(r,c,h,d)).lineHeight;if(l instanceof Array)a=e.x+l[0],s=e.y+l[1];else{var p=me(l,e,u);a=p.x,s=p.y,d=ep(p.textVerticalAlign),h=p.textAlign}Kf(o,"alignment-baseline",d),c&&(o.style.font=c);var g=i.textPadding;if(Kf(o,"x",a),Kf(o,"y",s),Jf(o,i,!0),t instanceof kv||t.style.transformText)$f(o,t.transform);else{if(t.transform)II.copy(e),II.applyTransform(t.transform),e=II;else{var m=t.transformCoordToGlobal(e.x,e.y);e.x=m[0],e.y=m[1]}var v=i.textOrigin;"center"===v?(a=n.width/2+a,s=n.height/2+s):v&&(a=v[0]+a,s=v[1]+s);var y=-i.textRotation||0,x=rt();ut(x,t.transform,y),$f(o,x)}var _=r.split("\n"),w=_.length,b=h;"left"===b?(b="start",g&&(a+=g[3])):"right"===b?(b="end",g&&(a-=g[1])):"center"===b&&(b="middle",g&&(a+=(g[3]-g[1])/2));var M=0;if("baseline"===d?(M=-n.height+f,g&&(M-=g[2])):"middle"===d?(M=(-n.height+f)/2,g&&(s+=(g[0]-g[2])/2)):g&&(M+=g[0]),t.__text!==r||t.__textFont!==c){var S=t.__tspanList||[];t.__tspanList=S;for(C=0;C<w;C++)(T=S[C])?T.innerHTML="":(T=S[C]=Uf("tspan"),o.appendChild(T),Kf(T,"alignment-baseline",d),Kf(T,"text-anchor",b)),Kf(T,"x",a),Kf(T,"y",s+C*f+M),T.appendChild(document.createTextNode(_[C]));for(;C<S.length;C++)o.removeChild(S[C]);S.length=w,t.__text=r,t.__textFont=c}else if(t.__tspanList.length)for(var I=t.__tspanList.length,C=0;C<I;++C){var T=t.__tspanList[C];T&&(Kf(T,"x",a),Kf(T,"y",s+C*f+M))}}};SI.drawRectText=CI,SI.brush=function(t){var e=t.style;null!=e.text&&(e.textPosition=[0,0],CI(t,{x:e.x||0,y:e.y||0,width:0,height:0},t.getBoundingRect()))},np.prototype={diff:function(t,e,n){n||(n=function(t,e){return t===e}),this.equals=n;var i=this;t=t.slice();var r=(e=e.slice()).length,o=t.length,a=1,s=r+o,l=[{newPos:-1,components:[]}],u=this.extractCommon(l[0],e,t,0);if(l[0].newPos+1>=r&&u+1>=o){for(var h=[],c=0;c<e.length;c++)h.push(c);return[{indices:h,count:e.length}]}for(;a<=s;){var d=function(){for(var n=-1*a;n<=a;n+=2){var s,u=l[n-1],h=l[n+1],c=(h?h.newPos:0)-n;u&&(l[n-1]=void 0);var d=u&&u.newPos+1<r,f=h&&0<=c&&c<o;if(d||f){if(!d||f&&u.newPos<h.newPos?(s=rp(h),i.pushComponent(s.components,void 0,!0)):((s=u).newPos++,i.pushComponent(s.components,!0,void 0)),c=i.extractCommon(s,e,t,n),s.newPos+1>=r&&c+1>=o)return ip(0,s.components);l[n]=s}else l[n]=void 0}a++}();if(d)return d}},pushComponent:function(t,e,n){var i=t[t.length-1];i&&i.added===e&&i.removed===n?t[t.length-1]={count:i.count+1,added:e,removed:n}:t.push({count:1,added:e,removed:n})},extractCommon:function(t,e,n,i){for(var r=e.length,o=n.length,a=t.newPos,s=a-i,l=0;a+1<r&&s+1<o&&this.equals(e[a+1],n[s+1]);)a++,s++,l++;return l&&t.components.push({count:l}),t.newPos=a,s},tokenize:function(t){return t.slice()},join:function(t){return t.slice()}};var TI=new np,DI=function(t,e,n){return TI.diff(t,e,n)};op.prototype.createElement=Uf,op.prototype.getDefs=function(t){var e=this._svgRoot,n=this._svgRoot.getElementsByTagName("defs");return 0===n.length?t?((n=e.insertBefore(this.createElement("defs"),e.firstChild)).contains||(n.contains=function(t){var e=n.children;if(!e)return!1;for(var i=e.length-1;i>=0;--i)if(e[i]===t)return!0;return!1}),n):null:n[0]},op.prototype.update=function(t,e){if(t){var n=this.getDefs(!1);if(t[this._domName]&&n.contains(t[this._domName]))"function"==typeof e&&e(t);else{var i=this.add(t);i&&(t[this._domName]=i)}}},op.prototype.addDom=function(t){this.getDefs(!0).appendChild(t)},op.prototype.removeDom=function(t){var e=this.getDefs(!1);e&&t[this._domName]&&(e.removeChild(t[this._domName]),t[this._domName]=null)},op.prototype.getDoms=function(){var t=this.getDefs(!1);if(!t)return[];var e=[];return d(this._tagNames,function(n){var i=t.getElementsByTagName(n);e=e.concat([].slice.call(i))}),e},op.prototype.markAllUnused=function(){var t=this;d(this.getDoms(),function(e){e[t._markLabel]="0"})},op.prototype.markUsed=function(t){t&&(t[this._markLabel]="1")},op.prototype.removeUnused=function(){var t=this.getDefs(!1);if(t){var e=this;d(this.getDoms(),function(n){"1"!==n[e._markLabel]&&t.removeChild(n)})}},op.prototype.getSvgProxy=function(t){return t instanceof xi?bI:t instanceof je?MI:t instanceof kv?SI:bI},op.prototype.getTextSvgElement=function(t){return t.__textSvgEl},op.prototype.getSvgElement=function(t){return t.__svgEl},u(ap,op),ap.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var n=this;d(["fill","stroke"],function(i){if(e.style[i]&&("linear"===e.style[i].type||"radial"===e.style[i].type)){var r,o=e.style[i],a=n.getDefs(!0);o._dom?(r=o._dom,a.contains(o._dom)||n.addDom(r)):r=n.add(o),n.markUsed(e);var s=r.getAttribute("id");t.setAttribute(i,"url(#"+s+")")}})}},ap.prototype.add=function(t){var e;if("linear"===t.type)e=this.createElement("linearGradient");else{if("radial"!==t.type)return yg("Illegal gradient type."),null;e=this.createElement("radialGradient")}return t.id=t.id||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-gradient-"+t.id),this.updateDom(t,e),this.addDom(e),e},ap.prototype.update=function(t){var e=this;op.prototype.update.call(this,t,function(){var n=t.type,i=t._dom.tagName;"linear"===n&&"linearGradient"===i||"radial"===n&&"radialGradient"===i?e.updateDom(t,t._dom):(e.removeDom(t),e.add(t))})},ap.prototype.updateDom=function(t,e){if("linear"===t.type)e.setAttribute("x1",t.x),e.setAttribute("y1",t.y),e.setAttribute("x2",t.x2),e.setAttribute("y2",t.y2);else{if("radial"!==t.type)return void yg("Illegal gradient type.");e.setAttribute("cx",t.x),e.setAttribute("cy",t.y),e.setAttribute("r",t.r)}t.global?e.setAttribute("gradientUnits","userSpaceOnUse"):e.setAttribute("gradientUnits","objectBoundingBox"),e.innerHTML="";for(var n=t.colorStops,i=0,r=n.length;i<r;++i){var o=this.createElement("stop");o.setAttribute("offset",100*n[i].offset+"%"),o.setAttribute("stop-color",n[i].color),e.appendChild(o)}t._dom=e},ap.prototype.markUsed=function(t){if(t.style){var e=t.style.fill;e&&e._dom&&op.prototype.markUsed.call(this,e._dom),(e=t.style.stroke)&&e._dom&&op.prototype.markUsed.call(this,e._dom)}},u(sp,op),sp.prototype.update=function(t){var e=this.getSvgElement(t);e&&this.updateDom(e,t.__clipPaths,!1);var n=this.getTextSvgElement(t);n&&this.updateDom(n,t.__clipPaths,!0),this.markUsed(t)},sp.prototype.updateDom=function(t,e,n){if(e&&e.length>0){var i,r,o=this.getDefs(!0),a=e[0],s=n?"_textDom":"_dom";a[s]?(r=a[s].getAttribute("id"),i=a[s],o.contains(i)||o.appendChild(i)):(r="zr"+this._zrId+"-clip-"+this.nextId,++this.nextId,(i=this.createElement("clipPath")).setAttribute("id",r),o.appendChild(i),a[s]=i);var l=this.getSvgProxy(a);if(a.transform&&a.parent.invTransform&&!n){var u=Array.prototype.slice.call(a.transform);st(a.transform,a.parent.invTransform,a.transform),l.brush(a),a.transform=u}else l.brush(a);var h=this.getSvgElement(a);i.innerHTML="",i.appendChild(h.cloneNode()),t.setAttribute("clip-path","url(#"+r+")"),e.length>1&&this.updateDom(i,e.slice(1),n)}else t&&t.setAttribute("clip-path","none")},sp.prototype.markUsed=function(t){var e=this;t.__clipPaths&&t.__clipPaths.length>0&&d(t.__clipPaths,function(t){t._dom&&op.prototype.markUsed.call(e,t._dom),t._textDom&&op.prototype.markUsed.call(e,t._textDom)})},u(lp,op),lp.prototype.addWithoutUpdate=function(t,e){if(e&&up(e.style)){var n,i=e.style;i._shadowDom?(n=i._shadowDom,this.getDefs(!0).contains(i._shadowDom)||this.addDom(n)):n=this.add(e),this.markUsed(e);var r=n.getAttribute("id");t.style.filter="url(#"+r+")"}},lp.prototype.add=function(t){var e=this.createElement("filter"),n=t.style;return n._shadowDomId=n._shadowDomId||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-shadow-"+n._shadowDomId),this.updateDom(t,e),this.addDom(e),e},lp.prototype.update=function(t,e){var n=e.style;if(up(n)){var i=this;op.prototype.update.call(this,e,function(t){i.updateDom(e,t._shadowDom)})}else this.remove(t,n)},lp.prototype.remove=function(t,e){null!=e._shadowDomId&&(this.removeDom(e),t.style.filter="")},lp.prototype.updateDom=function(t,e){var n=e.getElementsByTagName("feDropShadow");n=0===n.length?this.createElement("feDropShadow"):n[0];var i,r,o,a,s=t.style,l=t.scale?t.scale[0]||1:1,u=t.scale?t.scale[1]||1:1;if(s.shadowBlur||s.shadowOffsetX||s.shadowOffsetY)i=s.shadowOffsetX||0,r=s.shadowOffsetY||0,o=s.shadowBlur,a=s.shadowColor;else{if(!s.textShadowBlur)return void this.removeDom(e,s);i=s.textShadowOffsetX||0,r=s.textShadowOffsetY||0,o=s.textShadowBlur,a=s.textShadowColor}n.setAttribute("dx",i/l),n.setAttribute("dy",r/u),n.setAttribute("flood-color",a);var h=o/2/l+" "+o/2/u;n.setAttribute("stdDeviation",h),e.setAttribute("x","-100%"),e.setAttribute("y","-100%"),e.setAttribute("width",Math.ceil(o/2*200)+"%"),e.setAttribute("height",Math.ceil(o/2*200)+"%"),e.appendChild(n),s._shadowDom=e},lp.prototype.markUsed=function(t){var e=t.style;e&&e._shadowDom&&op.prototype.markUsed.call(this,e._shadowDom)};var AI=function(t,e,n,i){this.root=t,this.storage=e,this._opts=n=o({},n||{});var r=Uf("svg");r.setAttribute("xmlns","http://www.w3.org/2000/svg"),r.setAttribute("version","1.1"),r.setAttribute("baseProfile","full"),r.style.cssText="user-select:none;position:absolute;left:0;top:0;",this.gradientManager=new ap(i,r),this.clipPathManager=new sp(i,r),this.shadowManager=new lp(i,r);var a=document.createElement("div");a.style.cssText="overflow:hidden;position:relative",this._svgRoot=r,this._viewport=a,t.appendChild(a),a.appendChild(r),this.resize(n.width,n.height),this._visibleList=[]};AI.prototype={constructor:AI,getType:function(){return"svg"},getViewportRoot:function(){return this._viewport},getViewportRootOffset:function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},refresh:function(){var t=this.storage.getDisplayList(!0);this._paintList(t)},setBackgroundColor:function(t){this._viewport.style.background=t},_paintList:function(t){this.gradientManager.markAllUnused(),this.clipPathManager.markAllUnused(),this.shadowManager.markAllUnused();var e,n=this._svgRoot,i=this._visibleList,r=t.length,o=[];for(e=0;e<r;e++){var a=cp(f=t[e]),s=vp(f)||mp(f);f.invisible||(f.__dirty&&(a&&a.brush(f),this.clipPathManager.update(f),f.style&&(this.gradientManager.update(f.style.fill),this.gradientManager.update(f.style.stroke),this.shadowManager.update(s,f)),f.__dirty=!1),o.push(f))}var l,u=DI(i,o);for(e=0;e<u.length;e++)if((c=u[e]).removed)for(d=0;d<c.count;d++){var s=vp(f=i[c.indices[d]]),h=mp(f);gp(n,s),gp(n,h)}for(e=0;e<u.length;e++){var c=u[e];if(c.added)for(d=0;d<c.count;d++){var s=vp(f=o[c.indices[d]]),h=mp(f);l?fp(n,s,l):pp(n,s),s?fp(n,h,s):l?fp(n,h,l):pp(n,h),fp(n,h,s),l=h||s||l,this.gradientManager.addWithoutUpdate(s,f),this.shadowManager.addWithoutUpdate(l,f),this.clipPathManager.markUsed(f)}else if(!c.removed)for(var d=0;d<c.count;d++){var f=o[c.indices[d]];l=s=mp(f)||vp(f)||l,this.gradientManager.markUsed(f),this.gradientManager.addWithoutUpdate(s,f),this.shadowManager.markUsed(f),this.shadowManager.addWithoutUpdate(s,f),this.clipPathManager.markUsed(f)}}this.gradientManager.removeUnused(),this.clipPathManager.removeUnused(),this.shadowManager.removeUnused(),this._visibleList=o},_getDefs:function(t){var e=this._svgRoot,n=this._svgRoot.getElementsByTagName("defs");return 0===n.length?t?((n=e.insertBefore(Uf("defs"),e.firstChild)).contains||(n.contains=function(t){var e=n.children;if(!e)return!1;for(var i=e.length-1;i>=0;--i)if(e[i]===t)return!0;return!1}),n):null:n[0]},resize:function(t,e){var n=this._viewport;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||this._height!==e){this._width=t,this._height=e;var r=n.style;r.width=t+"px",r.height=e+"px";var o=this._svgRoot;o.setAttribute("width",t),o.setAttribute("height",e)}},getWidth:function(){return this._width},getHeight:function(){return this._height},_getSize:function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||hp(s[n])||hp(a.style[n]))-(hp(s[r])||0)-(hp(s[o])||0)|0},dispose:function(){this.root.innerHTML="",this._svgRoot=this._viewport=this.storage=null},clear:function(){this._viewport&&this.root.removeChild(this._viewport)},pathToDataUrl:function(){return this.refresh(),"data:image/svg+xml;charset=UTF-8,"+this._svgRoot.outerHTML}},d(["getLayer","insertLayer","eachLayer","eachBuiltinLayer","eachOtherLayer","getLayers","modLayer","delLayer","clearLayer","toDataURL","pathToImage"],function(t){AI.prototype[t]=yp(t)}),vn("svg",AI),t.version="4.1.0",t.dependencies=Gx,t.PRIORITY=Xx,t.init=function(t,e,n){var i=$a(t);if(i)return i;var r=new Aa(t,e,n);return r.id="ec_"+u_++,s_[r.id]=r,Pn(t,c_,r.id),Ya(r),r},t.connect=function(t){if(y(t)){var e=t;t=null,Bx(e,function(e){null!=e.group&&(t=e.group)}),t=t||"g_"+h_++,Bx(e,function(e){e.group=t})}return l_[t]=!0,t},t.disConnect=qa,t.disconnect=f_,t.dispose=function(t){"string"==typeof t?t=s_[t]:t instanceof Aa||(t=$a(t)),t instanceof Aa&&!t.isDisposed()&&t.dispose()},t.getInstanceByDom=$a,t.getInstanceById=function(t){return s_[t]},t.registerTheme=Ka,t.registerPreprocessor=Qa,t.registerProcessor=Ja,t.registerPostUpdate=function(t){i_.push(t)},t.registerAction=ts,t.registerCoordinateSystem=function(t,e){yo.register(t,e)},t.getCoordinateSystemDimensions=function(t){var e=yo.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.registerLayout=es,t.registerVisual=ns,t.registerLoading=rs,t.extendComponentModel=os,t.extendComponentView=as,t.extendSeriesModel=ss,t.extendChartView=ls,t.setCanvasCreator=function(t){e("createCanvas",t)},t.registerMap=function(t,e,n){e.geoJson&&!e.features&&(n=e.specialAreas,e=e.geoJson),"string"==typeof e&&(e="undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")()),d_[t]={geoJson:e,specialAreas:n}},t.getMap=function(t){return d_[t]},t.dataTool=p_,t.zrender=pm,t.graphic=ty,t.number=hy,t.format=yy,t.throttle=ua,t.helper=aw,t.matrix=qp,t.vector=Gp,t.color=dg,t.parseGeoJSON=lw,t.parseGeoJson=dw,t.util=fw,t.List=M_,t.Model=pr,t.Axis=cw,t.env=bp});
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/jquery/jquery.cookie.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/jquery/jquery.cookie.js
new file mode 100644
index 0000000..c7f3a59
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/jquery/jquery.cookie.js
@@ -0,0 +1,117 @@
+/*!
+ * jQuery Cookie Plugin v1.4.1
+ * https://github.com/carhartl/jquery-cookie
+ *
+ * Copyright 2013 Klaus Hartl
+ * Released under the MIT license
+ */
+(function (factory) {
+	if (typeof define === 'function' && define.amd) {
+		// AMD
+		define(['jquery'], factory);
+	} else if (typeof exports === 'object') {
+		// CommonJS
+		factory(require('jquery'));
+	} else {
+		// Browser globals
+		factory(jQuery);
+	}
+}(function ($) {
+
+	var pluses = /\+/g;
+
+	function encode(s) {
+		return config.raw ? s : encodeURIComponent(s);
+	}
+
+	function decode(s) {
+		return config.raw ? s : decodeURIComponent(s);
+	}
+
+	function stringifyCookieValue(value) {
+		return encode(config.json ? JSON.stringify(value) : String(value));
+	}
+
+	function parseCookieValue(s) {
+		if (s.indexOf('"') === 0) {
+			// This is a quoted cookie as according to RFC2068, unescape...
+			s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
+		}
+
+		try {
+			// Replace server-side written pluses with spaces.
+			// If we can't decode the cookie, ignore it, it's unusable.
+			// If we can't parse the cookie, ignore it, it's unusable.
+			s = decodeURIComponent(s.replace(pluses, ' '));
+			return config.json ? JSON.parse(s) : s;
+		} catch(e) {}
+	}
+
+	function read(s, converter) {
+		var value = config.raw ? s : parseCookieValue(s);
+		return $.isFunction(converter) ? converter(value) : value;
+	}
+
+	var config = $.cookie = function (key, value, options) {
+
+		// Write
+
+		if (value !== undefined && !$.isFunction(value)) {
+			options = $.extend({}, config.defaults, options);
+
+			if (typeof options.expires === 'number') {
+				var days = options.expires, t = options.expires = new Date();
+				t.setTime(+t + days * 864e+5);
+			}
+
+			return (document.cookie = [
+				encode(key), '=', stringifyCookieValue(value),
+				options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
+				options.path    ? '; path=' + options.path : '',
+				options.domain  ? '; domain=' + options.domain : '',
+				options.secure  ? '; secure' : ''
+			].join(''));
+		}
+
+		// Read
+
+		var result = key ? undefined : {};
+
+		// To prevent the for loop in the first place assign an empty array
+		// in case there are no cookies at all. Also prevents odd result when
+		// calling $.cookie().
+		var cookies = document.cookie ? document.cookie.split('; ') : [];
+
+		for (var i = 0, l = cookies.length; i < l; i++) {
+			var parts = cookies[i].split('=');
+			var name = decode(parts.shift());
+			var cookie = parts.join('=');
+
+			if (key && key === name) {
+				// If second argument (value) is a function it's a converter...
+				result = read(cookie, value);
+				break;
+			}
+
+			// Prevent storing a cookie that we couldn't decode.
+			if (!key && (cookie = read(cookie)) !== undefined) {
+				result[name] = cookie;
+			}
+		}
+
+		return result;
+	};
+
+	config.defaults = {};
+
+	$.removeCookie = function (key, options) {
+		if ($.cookie(key) === undefined) {
+			return false;
+		}
+
+		// Must not alter options, thus extending a fresh object...
+		$.cookie(key, '', $.extend({}, options, { expires: -1 }));
+		return !$.cookie(key);
+	};
+
+}));
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/jquery/jquery.validate.min.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/jquery/jquery.validate.min.js
new file mode 100644
index 0000000..d959022
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/jquery/jquery.validate.min.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.18.0 - 9/9/2018
+ * https://jqueryvalidation.org/
+ * Copyright (c) 2018 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.submitButton=b.currentTarget,a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.submitButton&&(c.settings.submitHandler||c.formSubmitted)&&(d=a("<input type='hidden'/>").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),!(c.settings.submitHandler&&!c.settings.debug)||(e=c.settings.submitHandler.call(c,c.currentForm,b),d&&d.remove(),void 0!==e&&e)}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(null!=j&&(!j.form&&j.isContentEditable&&(j.form=this.closest("form")[0],j.name=this.attr("name")),null!=j.form)){if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(a,b){i[b]=f[b],delete f[b]}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g)),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}}),a.extend(a.expr.pseudos||a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){var c=a(b).val();return null!==c&&!!a.trim(""+c)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||a.inArray(c.keyCode,d)!==-1||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}."),step:a.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){if(!this.form&&this.isContentEditable&&(this.form=a(this).closest("form")[0],this.name=a(this).attr("name")),d===this.form){var c=a.data(this.form,"validator"),e="on"+b.type.replace(/^validate/,""),f=c.settings;f[e]&&!a(this).is(f.ignore)&&f[e].call(c,this,b)}}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.currentForm,e=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){e[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox'], [contenteditable], [type='button']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=g.check(e)&&h))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr("aria-invalid",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,""),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)void 0!==a[b]&&null!==a[b]&&a[b]!==!1&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea, [contenteditable]").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.isContentEditable&&(this.form=a(this).closest("form")[0],this.name=d),this.form===b.currentForm&&(!(d in c||!b.objectLength(a(this).rules()))&&(c[d]=!0,!0))})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type;return"radio"===f||"checkbox"===f?this.findByName(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badInput?"NaN":e.val():(c=b.isContentEditable?e.text():e.val(),"file"===f?"C:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf("/"),d>=0?c.substr(d+1):(d=c.lastIndexOf("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f,g=a(b).rules(),h=a.map(g,function(a,b){return b}).length,i=!1,j=this.elementValue(b);"function"==typeof g.normalizer?f=g.normalizer:"function"==typeof this.settings.normalizer&&(f=this.settings.normalizer),f&&(j=f.call(b,j),delete g.normalizer);for(d in g){e={method:d,parameters:g[d]};try{if(c=a.validator.methods[d].call(this,j,b,e.parameters),"dependency-mismatch"===c&&1===h){i=!0;continue}if(i=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(k){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",k),k instanceof TypeError&&(k.message+=".  Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),k}}if(!i)return this.objectLength(g)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a]},defaultMessage:function(b,c){"string"==typeof c&&(c={method:c});var d=this.findDefined(this.customMessage(b.name,c.method),this.customDataMessage(b,c.method),!this.settings.ignoreTitle&&b.title||void 0,a.validator.messages[c.method],"<strong>Warning: No message defined for "+b.name+"</strong>"),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr("aria-describedby");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),h.html(c)):(h=a("<"+this.settings.errorElement+">").attr("id",i+"-error").addClass(this.settings.errorClass).html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement.call(this,d,a(b)):d.insertAfter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapeCssMeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new RegExp("\\b"+this.escapeCssMeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapeCssMeta(b)+"']",g.currentForm).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapeCssMeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(a){return a.replace(/([\\!"#$%&'()*+,.\/:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+this.escapeCssMeta(b)+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return!this.dependTypes[typeof a]||this.dependTypes[typeof a](a,b)},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.submitButton&&a("input:hidden[name='"+this.submitButton.name+"']",this.currentForm).remove(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b,c){return c="string"==typeof c&&c||"remote",a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur").find(".validate-lessThan-blur").off(".validate-lessThan").removeClass("validate-lessThan-blur").find(".validate-lessThanEqual-blur").off(".validate-lessThanEqual").removeClass("validate-lessThanEqual-blur").find(".validate-greaterThanEqual-blur").off(".validate-greaterThanEqual").removeClass("validate-greaterThanEqual-blur").find(".validate-greaterThan-blur").off(".validate-greaterThan").removeClass("validate-greaterThan-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),""===d&&(d=!0),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0===e.param||e.param:(a.data(c.form,"validator").resetElements(a(c)),delete b[d])}}),a.each(b,function(d,e){b[d]=a.isFunction(e)&&"normalizer"!==d?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:void 0!==b&&null!==b&&b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[\/?#]\S*)?$/i.test(a)},date:function(){var a=!1;return function(b,c){return a||(a=!0,this.settings.debug&&window.console&&console.warn("The `date` method is deprecated and will be removed in version '2.0.0'.\nPlease don't use it, since it relies on the Date constructor, which\nbehaves very differently across browsers and locales. Use `dateISO`\ninstead or one of the locale specific methods in `localizations/`\nand `additional-methods.js`.")),this.optional(c)||!/Invalid|NaN/.test(new Date(b).toString())}}(),dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e<=d},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||a<=c},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e,f=a(c).attr("type"),g="Step attribute on input type "+f+" is not supported.",h=["text","number","range"],i=new RegExp("\\b"+f+"\\b"),j=f&&!i.test(h.join()),k=function(a){var b=(""+a).match(/(?:\.(\d+))?$/);return b&&b[1]?b[1].length:0},l=function(a){return Math.round(a*Math.pow(10,e))},m=!0;if(j)throw new Error(g);return e=k(d),(k(b)>e||l(b)%l(d)!==0)&&(m=!1),this.optional(c)||m},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalTo-blur").length&&e.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),i.old===h?i.valid:(i.old=h,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.resetInternals(),f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),"pending")}}});var b,c={};return a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)}),a});
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/layer.js b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/layer.js
new file mode 100644
index 0000000..12cb6b5
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/layer.js
@@ -0,0 +1,2 @@
+/*! layer-v3.1.1 Web弹层组件 MIT License  http://layer.layui.com/  By 贤心 */
+ ;!function(e,t){"use strict";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;n>0;n--)if("interactive"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["&#x786E;&#x5B9A;","&#x53D6;&#x6D88;"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName("head")[0],s=document.createElement("link");"string"==typeof i&&(n=i);var l=(n||t).replace(/\.|\//g,""),f="layuicss-"+l,c=0;s.rel="stylesheet",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),"function"==typeof i&&!function u(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(o.getStyle(document.getElementById(f),"width"))?i():setTimeout(u,100))}()}}},r={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):o.link("theme/"+e.extend),this):this},ready:function(e){var t="layer",i="",n=(a?"modules/layer/":"theme/")+"default/layer.css?v="+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s="function"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+" layui-layer-hui",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];l.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:"&#x4FE1;&#x606F;",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'<div class="layui-layer-title" style="'+(f?r.title[1]:"")+'">'+(f?r.title[0]:r.title)+"</div>":"";return r.zIndex=s,t([r.shade?'<div class="layui-layer-shade" id="layui-layer-shade'+a+'" times="'+a+'" style="'+("z-index:"+(s-1)+"; ")+'"></div>':"",'<div class="'+l[0]+(" layui-layer-"+o.type[r.type])+(0!=r.type&&2!=r.type||r.shade?"":" layui-layer-border")+" "+(r.skin||"")+'" id="'+l[0]+a+'" type="'+o.type[r.type]+'" times="'+a+'" showtime="'+r.time+'" conType="'+(e?"object":"string")+'" style="z-index: '+s+"; width:"+r.area[0]+";height:"+r.area[1]+(r.fixed?"":";position:absolute;")+'">'+(e&&2!=r.type?"":u)+'<div id="'+(r.id||"")+'" class="layui-layer-content'+(0==r.type&&r.icon!==-1?" layui-layer-padding":"")+(3==r.type?" layui-layer-loading"+r.icon:"")+'">'+(0==r.type&&r.icon!==-1?'<i class="layui-layer-ico layui-layer-ico'+r.icon+'"></i>':"")+(1==r.type&&e?"":r.content||"")+'</div><span class="layui-layer-setwin">'+function(){var e=c?'<a class="layui-layer-min" href="javascript:;"><cite></cite></a><a class="layui-layer-ico layui-layer-max" href="javascript:;"></a>':"";return r.closeBtn&&(e+='<a class="layui-layer-ico '+l[7]+" "+l[7]+(r.title?r.closeBtn:4==r.type?"1":"2")+'" href="javascript:;"></a>'),e}()+"</span>"+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t<i;t++)e+='<a class="'+l[6]+t+'">'+r.btn[t]+"</a>";return'<div class="'+l[6]+" layui-layer-btn-"+(r.btnAlign||"")+'">'+e+"</div>"}():"")+(r.resize?'<span class="layui-layer-resize"></span>':"")+"</div>"],u,i('<div class="layui-layer-move"></div>')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f="object"==typeof s,c=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var s=t.content=f?t.content:[t.content||"http://layer.layui.com","auto"];t.content='<iframe scrolling="'+(t.content[1]||"auto")+'" allowtransparency="true" id="'+l[4]+a+'" name="'+l[4]+a+'" onload="this.className=\'\';" class="layui-layer-load" frameborder="0" src="'+t.content[0]+'"></iframe>';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'<i class="layui-layer-TipsG"></i>',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;a<c.stX&&(a=c.stX),a>f&&(a=f),o<c.stY&&(o=c.stY),o>u&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'<textarea class="layui-layer-input"'+a+">"+(e.value||"")+"</textarea>":function(){return'<input type="'+(1==e.formType?"password":"text")+'" class="layui-layer-input" value="'+(e.value||"")+'">'}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["&#x786E;&#x5B9A;","&#x53D6;&#x6D88;"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(e){s=e.find(".layui-layer-input"),s.focus(),"function"==typeof f&&f(e)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("&#x6700;&#x591A;&#x8F93;&#x5165;"+(e.maxlength||500)+"&#x4E2A;&#x5B57;&#x6570;",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a='<span class="'+n+'">'+t[0].title+"</span>";i<e;i++)a+="<span>"+t[i].title+"</span>";return a}(),content:'<ul class="layui-layer-tabmain">'+function(){var e=t.length,i=1,a="";if(e>0)for(a='<li class="layui-layer-tabli '+n+'">'+(t[0].content||"no content")+"</li>";i<e;i++)a+='<li class="layui-layer-tabli">'+(t[i].content||"no  content")+"</li>";return a}()+"</ul>",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("&#x6CA1;&#x6709;&#x56FE;&#x7247;")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]<r[1]&&(a[0]=a[0]/r[1],a[1]=a[1]/r[1])}return[a[0]+"px",a[1]+"px"]}(),title:!1,shade:.9,shadeClose:!0,closeBtn:!1,move:".layui-layer-phimg img",moveType:1,scrollbar:!1,moveOut:!0,isOutAnim:!1,skin:"layui-layer-photos"+c("photos"),content:'<div class="layui-layer-phimg"><img src="'+u[d].src+'" alt="'+(u[d].alt||"")+'" layer-pid="'+u[d].pid+'"><div class="layui-layer-imgsee">'+(u.length>1?'<span class="layui-layer-imguide"><a href="javascript:;" class="layui-layer-iconext layui-layer-imgprev"></a><a href="javascript:;" class="layui-layer-iconext layui-layer-imgnext"></a></span>':"")+'<div class="layui-layer-imgbar" style="display:'+(a?"block":"")+'"><span class="layui-layer-imgtit"><a href="javascript:;">'+(u[d].alt||"")+"</a><em>"+s.imgIndex+"/"+u.length+"</em></span></div></div></div>",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("&#x5F53;&#x524D;&#x56FE;&#x7247;&#x5730;&#x5740;&#x5F02;&#x5E38;<br>&#x662F;&#x5426;&#x7EE7;&#x7EED;&#x67E5;&#x770B;&#x4E0B;&#x4E00;&#x5F20;&#xFF1F;",{time:3e4,btn:["&#x4E0B;&#x4E00;&#x5F20;","&#x4E0D;&#x770B;&#x4E86;"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window);
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/icon-ext.png b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/icon-ext.png
new file mode 100644
index 0000000..bbbb669
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/icon-ext.png
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/icon.png b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/icon.png
new file mode 100644
index 0000000..3e17da8
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/icon.png
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/layer.css b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/layer.css
new file mode 100644
index 0000000..820b4a9
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/layer.css
@@ -0,0 +1 @@
+.layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .layui-layer-title span,.layui-layer-title{text-overflow:ellipsis;white-space:nowrap}html #layuicss-layer{display:none;position:absolute;width:1989px}.layui-layer,.layui-layer-shade{position:fixed;_position:absolute;pointer-events:auto}.layui-layer-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px")}.layui-layer{-webkit-overflow-scrolling:touch;top:150px;left:0;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;border-radius:2px;box-shadow:1px 1px 50px rgba(0,0,0,.3)}.layui-layer-close{position:absolute}.layui-layer-content{position:relative}.layui-layer-border{border:1px solid #B2B2B2;border:1px solid rgba(0,0,0,.1);box-shadow:1px 1px 5px rgba(0,0,0,.2)}.layui-layer-load{background:url(loading-1.gif) center center no-repeat #eee}.layui-layer-ico{background:url(icon.png) no-repeat}.layui-layer-btn a,.layui-layer-dialog .layui-layer-ico,.layui-layer-setwin a{display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-move{display:none;position:fixed;*position:absolute;left:0;top:0;width:100%;height:100%;cursor:move;opacity:0;filter:alpha(opacity=0);background-color:#fff;z-index:2147483647}.layui-layer-resize{position:absolute;width:15px;height:15px;right:0;bottom:0;cursor:se-resize}.layer-anim{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}@-webkit-keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-00{-webkit-animation-name:layer-bounceIn;animation-name:layer-bounceIn}@-webkit-keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-01{-webkit-animation-name:layer-zoomInDown;animation-name:layer-zoomInDown}@-webkit-keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layer-anim-02{-webkit-animation-name:layer-fadeInUpBig;animation-name:layer-fadeInUpBig}@-webkit-keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-03{-webkit-animation-name:layer-zoomInLeft;animation-name:layer-zoomInLeft}@-webkit-keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}@keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);-ms-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}.layer-anim-04{-webkit-animation-name:layer-rollIn;animation-name:layer-rollIn}@keyframes layer-fadeIn{0%{opacity:0}100%{opacity:1}}.layer-anim-05{-webkit-animation-name:layer-fadeIn;animation-name:layer-fadeIn}@-webkit-keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layer-anim-06{-webkit-animation-name:layer-shake;animation-name:layer-shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layui-layer-title{padding:0 80px 0 20px;height:42px;line-height:42px;border-bottom:1px solid #eee;font-size:14px;color:#333;overflow:hidden;background-color:#F8F8F8;border-radius:2px 2px 0 0}.layui-layer-setwin{position:absolute;right:15px;*right:0;top:15px;font-size:0;line-height:initial}.layui-layer-setwin a{position:relative;width:16px;height:16px;margin-left:10px;font-size:12px;_overflow:hidden}.layui-layer-setwin .layui-layer-min cite{position:absolute;width:14px;height:2px;left:0;top:50%;margin-top:-1px;background-color:#2E2D3C;cursor:pointer;_overflow:hidden}.layui-layer-setwin .layui-layer-min:hover cite{background-color:#2D93CA}.layui-layer-setwin .layui-layer-max{background-position:-32px -40px}.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px}.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px}.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px}.layui-layer-setwin .layui-layer-close1{background-position:1px -40px;cursor:pointer}.layui-layer-setwin .layui-layer-close1:hover{opacity:.7}.layui-layer-setwin .layui-layer-close2{position:absolute;right:-28px;top:-28px;width:30px;height:30px;margin-left:0;background-position:-149px -31px;*right:-18px;_display:none}.layui-layer-setwin .layui-layer-close2:hover{background-position:-180px -31px}.layui-layer-btn{text-align:right;padding:0 15px 12px;pointer-events:auto;user-select:none;-webkit-user-select:none}.layui-layer-btn a{height:28px;line-height:28px;margin:5px 5px 0;padding:0 15px;border:1px solid #dedede;background-color:#fff;color:#333;border-radius:2px;font-weight:400;cursor:pointer;text-decoration:none}.layui-layer-btn a:hover{opacity:.9;text-decoration:none}.layui-layer-btn a:active{opacity:.8}.layui-layer-btn .layui-layer-btn0{border-color:#1E9FFF;background-color:#1E9FFF;color:#fff}.layui-layer-btn-l{text-align:left}.layui-layer-btn-c{text-align:center}.layui-layer-dialog{min-width:260px}.layui-layer-dialog .layui-layer-content{position:relative;padding:20px;line-height:24px;word-break:break-all;overflow:hidden;font-size:14px;overflow-x:hidden;overflow-y:auto}.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute;top:16px;left:15px;_left:-40px;width:30px;height:30px}.layui-layer-ico1{background-position:-30px 0}.layui-layer-ico2{background-position:-60px 0}.layui-layer-ico3{background-position:-90px 0}.layui-layer-ico4{background-position:-120px 0}.layui-layer-ico5{background-position:-150px 0}.layui-layer-ico6{background-position:-180px 0}.layui-layer-rim{border:6px solid #8D8D8D;border:6px solid rgba(0,0,0,.3);border-radius:5px;box-shadow:none}.layui-layer-msg{min-width:180px;border:1px solid #D3D4D3;box-shadow:none}.layui-layer-hui{min-width:100px;background-color:#000;filter:alpha(opacity=60);background-color:rgba(0,0,0,.6);color:#fff;border:none}.layui-layer-hui .layui-layer-content{padding:12px 25px;text-align:center}.layui-layer-dialog .layui-layer-padding{padding:20px 20px 20px 55px;text-align:left}.layui-layer-page .layui-layer-content{position:relative;overflow:auto}.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}.layui-layer-nobg{background:0 0}.layui-layer-iframe iframe{display:block;width:100%}.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}.layui-layer-loading .layui-layer-content{width:60px;height:24px;background:url(loading-0.gif) no-repeat}.layui-layer-loading .layui-layer-loading1{width:37px;height:37px;background:url(loading-1.gif) no-repeat}.layui-layer-ico16,.layui-layer-loading .layui-layer-loading2{width:32px;height:32px;background:url(loading-2.gif) no-repeat}.layui-layer-tips{background:0 0;box-shadow:none;border:none}.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:8px 15px;font-size:12px;_float:left;border-radius:2px;box-shadow:1px 1px 3px rgba(0,0,0,.2);background-color:#000;color:#fff}.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;*overflow:hidden}.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:#000}.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}.layui-layer-tips i.layui-layer-TipsB{top:-8px}.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:5px;border-bottom-style:solid;border-bottom-color:#000}.layui-layer-tips i.layui-layer-TipsR{left:-8px}.layui-layer-tips i.layui-layer-TipsL{right:-8px}.layui-layer-lan[type=dialog]{min-width:280px}.layui-layer-lan .layui-layer-title{background:#4476A7;color:#fff;border:none}.layui-layer-lan .layui-layer-btn{padding:5px 10px 10px;text-align:right;border-top:1px solid #E9E7E7}.layui-layer-lan .layui-layer-btn a{background:#fff;border-color:#E9E7E7;color:#333}.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#C9C5C5}.layui-layer-molv .layui-layer-title{background:#009f95;color:#fff;border:none}.layui-layer-molv .layui-layer-btn a{background:#009f95;border-color:#009f95}.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92B8B1}.layui-layer-iconext{background:url(icon-ext.png) no-repeat}.layui-layer-prompt .layui-layer-input{display:block;width:230px;height:36px;margin:0 auto;line-height:30px;padding-left:10px;border:1px solid #e6e6e6;color:#333}.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px;padding:6px 10px}.layui-layer-prompt .layui-layer-content{padding:20px}.layui-layer-prompt .layui-layer-btn{padding-top:0}.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}.layui-layer-tab .layui-layer-title{padding-left:0;overflow:visible}.layui-layer-tab .layui-layer-title span{position:relative;float:left;min-width:80px;max-width:260px;padding:0 20px;text-align:center;overflow:hidden;cursor:pointer}.layui-layer-tab .layui-layer-title span.layui-this{height:43px;border-left:1px solid #eee;border-right:1px solid #eee;background-color:#fff;z-index:10}.layui-layer-tab .layui-layer-title span:first-child{border-left:none}.layui-layer-tabmain{line-height:24px;clear:both}.layui-layer-tabmain .layui-layer-tabli{display:none}.layui-layer-tabmain .layui-layer-tabli.layui-this{display:block}.layui-layer-photos{-webkit-animation-duration:.8s;animation-duration:.8s}.layui-layer-photos .layui-layer-content{overflow:hidden;text-align:center}.layui-layer-photos .layui-layer-phimg img{position:relative;width:100%;display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-imgbar,.layui-layer-imguide{display:none}.layui-layer-imgnext,.layui-layer-imgprev{position:absolute;top:50%;width:27px;_width:44px;height:44px;margin-top:-22px;outline:0;blr:expression(this.onFocus=this.blur())}.layui-layer-imgprev{left:10px;background-position:-5px -5px;_background-position:-70px -5px}.layui-layer-imgprev:hover{background-position:-33px -5px;_background-position:-120px -5px}.layui-layer-imgnext{right:10px;_right:8px;background-position:-5px -50px;_background-position:-70px -50px}.layui-layer-imgnext:hover{background-position:-33px -50px;_background-position:-120px -50px}.layui-layer-imgbar{position:absolute;left:0;bottom:0;width:100%;height:32px;line-height:32px;background-color:rgba(0,0,0,.8);background-color:#000\9;filter:Alpha(opacity=80);color:#fff;overflow:hidden;font-size:0}.layui-layer-imgtit *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:12px}.layui-layer-imgtit a{max-width:65%;overflow:hidden;color:#fff}.layui-layer-imgtit a:hover{color:#fff;text-decoration:underline}.layui-layer-imgtit em{padding-left:10px;font-style:normal}@-webkit-keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-close{-webkit-animation-name:layer-bounceOut;animation-name:layer-bounceOut;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}@media screen and (max-width:1100px){.layui-layer-iframe{overflow-y:auto;-webkit-overflow-scrolling:touch}}
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/loading-0.gif b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/loading-0.gif
new file mode 100644
index 0000000..6f3c953
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/loading-0.gif
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/loading-1.gif b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/loading-1.gif
new file mode 100644
index 0000000..db3a483
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/loading-1.gif
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/loading-2.gif b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/loading-2.gif
new file mode 100644
index 0000000..5bb90fd
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/static/plugins/layer/theme/default/loading-2.gif
Binary files differ
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/common/common.exception.ftl b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/common/common.exception.ftl
new file mode 100644
index 0000000..e448125
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/common/common.exception.ftl
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<meta charset="UTF-8">
+	<title>Error</title>
+    <style type="text/css"> 
+        body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
+        div.dialog {
+            width: 80%;
+            padding: 1em 4em;
+            margin: 4em auto 0 auto;
+            border: 1px solid #ccc;
+            border-right-color: #999;
+            border-bottom-color: #999;
+        }
+        h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
+    </style>
+    
+</head> 
+</head>
+<body> 
+
+	<div class="dialog"> 
+	    <h1>System Error</h1>
+	    <p>${exceptionMsg}</p>
+		<a href="javascript:window.location.href='${request.contextPath}/'">Back</a>
+	    </p> 
+	</div>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/common/common.macro.ftl b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/common/common.macro.ftl
new file mode 100644
index 0000000..1a5e7a9
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/common/common.macro.ftl
@@ -0,0 +1,239 @@
+<#macro commonStyle>
+
+	<#-- favicon -->
+	<link rel="icon" href="${request.contextPath}/static/favicon.ico" />
+
+	<meta charset="utf-8">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge">
+    <!-- Tell the browser to be responsive to screen width -->
+    <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
+    <!-- Bootstrap -->
+    <link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/bootstrap/css/bootstrap.min.css">
+    <!-- Font Awesome -->
+    <link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/font-awesome/css/font-awesome.min.css">
+    <!-- Ionicons -->
+    <link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/Ionicons/css/ionicons.min.css">
+    <!-- Theme style -->
+    <link rel="stylesheet" href="${request.contextPath}/static/adminlte/dist/css/AdminLTE.min.css">
+    <!-- AdminLTE Skins. Choose a skin from the css/skins folder instead of downloading all of them to reduce the load. -->
+    <link rel="stylesheet" href="${request.contextPath}/static/adminlte/dist/css/skins/_all-skins.min.css">
+      
+	<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
+    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
+    <!--[if lt IE 9]>
+    <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
+    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+    <![endif]-->
+
+	<!-- pace -->
+	<link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/PACE/themes/blue/pace-theme-flash.css">
+
+	<#-- i18n -->
+	<#global I18n = I18nUtil.getMultString()?eval />
+
+</#macro>
+
+<#macro commonScript>
+	<!-- jQuery 2.1.4 -->
+	<script src="${request.contextPath}/static/adminlte/bower_components/jquery/jquery.min.js"></script>
+	<!-- Bootstrap 3.3.5 -->
+	<script src="${request.contextPath}/static/adminlte/bower_components/bootstrap/js/bootstrap.min.js"></script>
+	<!-- FastClick -->
+	<script src="${request.contextPath}/static/adminlte/bower_components/fastclick/fastclick.js"></script>
+	<!-- AdminLTE App -->
+	<script src="${request.contextPath}/static/adminlte/dist/js/adminlte.min.js"></script>
+	<!-- jquery.slimscroll -->
+	<script src="${request.contextPath}/static/adminlte/bower_components/jquery-slimscroll/jquery.slimscroll.min.js"></script>
+
+    <!-- pace -->
+    <script src="${request.contextPath}/static/adminlte/bower_components/PACE/pace.min.js"></script>
+    <#-- jquery cookie -->
+	<script src="${request.contextPath}/static/plugins/jquery/jquery.cookie.js"></script>
+	<#-- jquery.validate -->
+	<script src="${request.contextPath}/static/plugins/jquery/jquery.validate.min.js"></script>
+
+	<#-- layer -->
+	<script src="${request.contextPath}/static/plugins/layer/layer.js"></script>
+
+	<#-- common -->
+    <script src="${request.contextPath}/static/js/common.1.js"></script>
+    <script>
+		var base_url = '${request.contextPath}';
+        var I18n = ${I18nUtil.getMultString()};
+	</script>
+
+</#macro>
+
+<#macro commonHeader>
+	<header class="main-header">
+		<a href="${request.contextPath}/" class="logo">
+			<span class="logo-mini"><b>XXL</b></span>
+			<span class="logo-lg"><b>${I18n.admin_name}</b></span>
+		</a>
+		<nav class="navbar navbar-static-top" role="navigation">
+
+			<a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </a>
+
+          	<div class="navbar-custom-menu">
+				<ul class="nav navbar-nav">
+					<#-- login user -->
+                    <li class="dropdown">
+                        <a href="javascript:" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
+                            ${I18n.system_welcome} ${Request["XXL_JOB_LOGIN_IDENTITY"].username}
+                            <span class="caret"></span>
+                        </a>
+                        <ul class="dropdown-menu" role="menu">
+                            <li id="updatePwd" ><a href="javascript:">${I18n.change_pwd}</a></li>
+                            <li id="logoutBtn" ><a href="javascript:">${I18n.logout_btn}</a></li>
+                        </ul>
+                    </li>
+				</ul>
+			</div>
+
+		</nav>
+	</header>
+
+	<!-- 修改密码.模态框 -->
+	<div class="modal fade" id="updatePwdModal" tabindex="-1" role="dialog"  aria-hidden="true">
+		<div class="modal-dialog ">
+			<div class="modal-content">
+				<div class="modal-header">
+					<h4 class="modal-title" >${I18n.change_pwd}</h4>
+				</div>
+				<div class="modal-body">
+					<form class="form-horizontal form" role="form" >
+						<div class="form-group">
+							<label for="lastname" class="col-sm-2 control-label">${I18n.change_pwd_field_newpwd}<font color="red">*</font></label>
+							<div class="col-sm-10"><input type="text" class="form-control" name="password" placeholder="${I18n.system_please_input} ${I18n.change_pwd_field_newpwd}" maxlength="18" ></div>
+						</div>
+						<hr>
+						<div class="form-group">
+							<div class="col-sm-offset-3 col-sm-6">
+								<button type="submit" class="btn btn-primary"  >${I18n.system_save}</button>
+								<button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
+							</div>
+						</div>
+					</form>
+				</div>
+			</div>
+		</div>
+	</div>
+
+</#macro>
+
+<#macro commonLeft pageName >
+	<!-- Left side column. contains the logo and sidebar -->
+	<aside class="main-sidebar">
+		<!-- sidebar: style can be found in sidebar.less -->
+		<section class="sidebar">
+			<!-- sidebar menu: : style can be found in sidebar.less -->
+			<ul class="sidebar-menu">
+                <li class="header">${I18n.system_nav}</li>
+                <li class="nav-click <#if pageName == "index">active</#if>" ><a href="${request.contextPath}/"><i class="fa fa-circle-o text-aqua"></i><span>${I18n.job_dashboard_name}</span></a></li>
+				<li class="nav-click <#if pageName == "jobinfo">active</#if>" ><a href="${request.contextPath}/jobinfo"><i class="fa fa-circle-o text-yellow"></i><span>${I18n.jobinfo_name}</span></a></li>
+				<li class="nav-click <#if pageName == "joblog">active</#if>" ><a href="${request.contextPath}/joblog"><i class="fa fa-circle-o text-green"></i><span>${I18n.joblog_name}</span></a></li>
+				<#if Request["XXL_JOB_LOGIN_IDENTITY"].role == 1>
+                    <li class="nav-click <#if pageName == "jobgroup">active</#if>" ><a href="${request.contextPath}/jobgroup"><i class="fa fa-circle-o text-red"></i><span>${I18n.jobgroup_name}</span></a></li>
+                    <li class="nav-click <#if pageName == "user">active</#if>" ><a href="${request.contextPath}/user"><i class="fa fa-circle-o text-purple"></i><span>${I18n.user_manage}</span></a></li>
+				</#if>
+				<li class="nav-click <#if pageName == "help">active</#if>" ><a href="${request.contextPath}/help"><i class="fa fa-circle-o text-gray"></i><span>${I18n.job_help}</span></a></li>
+			</ul>
+		</section>
+		<!-- /.sidebar -->
+	</aside>
+</#macro>
+
+<#macro commonControl >
+	<!-- Control Sidebar -->
+	<aside class="control-sidebar control-sidebar-dark">
+		<!-- Create the tabs -->
+		<ul class="nav nav-tabs nav-justified control-sidebar-tabs">
+			<li class="active"><a href="#control-sidebar-home-tab" data-toggle="tab"><i class="fa fa-home"></i></a></li>
+			<li><a href="#control-sidebar-settings-tab" data-toggle="tab"><i class="fa fa-gears"></i></a></li>
+		</ul>
+		<!-- Tab panes -->
+		<div class="tab-content">
+			<!-- Home tab content -->
+			<div class="tab-pane active" id="control-sidebar-home-tab">
+				<h3 class="control-sidebar-heading">近期活动</h3>
+				<ul class="control-sidebar-menu">
+					<li>
+						<a href="javascript::;">
+							<i class="menu-icon fa fa-birthday-cake bg-red"></i>
+							<div class="menu-info">
+								<h4 class="control-sidebar-subheading">张三今天过生日</h4>
+								<p>2015-09-10</p>
+							</div>
+						</a>
+					</li>
+					<li>
+						<a href="javascript::;"> 
+							<i class="menu-icon fa fa-user bg-yellow"></i>
+							<div class="menu-info">
+								<h4 class="control-sidebar-subheading">Frodo 更新了资料</h4>
+								<p>更新手机号码 +1(800)555-1234</p>
+							</div>
+						</a>
+					</li>
+					<li>
+						<a href="javascript::;"> 
+							<i class="menu-icon fa fa-envelope-o bg-light-blue"></i>
+							<div class="menu-info">
+								<h4 class="control-sidebar-subheading">Nora 加入邮件列表</h4>
+								<p>nora@example.com</p>
+							</div>
+						</a>
+					</li>
+					<li>
+						<a href="javascript::;">
+						<i class="menu-icon fa fa-file-code-o bg-green"></i>
+						<div class="menu-info">
+							<h4 class="control-sidebar-subheading">001号定时作业调度</h4>
+							<p>5秒前执行</p>
+						</div>
+						</a>
+					</li>
+				</ul>
+				<!-- /.control-sidebar-menu -->
+			</div>
+			<!-- /.tab-pane -->
+
+			<!-- Settings tab content -->
+			<div class="tab-pane" id="control-sidebar-settings-tab">
+				<form method="post">
+					<h3 class="control-sidebar-heading">个人设置</h3>
+					<div class="form-group">
+						<label class="control-sidebar-subheading"> 左侧菜单自适应
+							<input type="checkbox" class="pull-right" checked>
+						</label>
+						<p>左侧菜单栏样式自适应</p>
+					</div>
+					<!-- /.form-group -->
+
+				</form>
+			</div>
+			<!-- /.tab-pane -->
+		</div>
+	</aside>
+	<!-- /.control-sidebar -->
+	<!-- Add the sidebar's background. This div must be placed immediately after the control sidebar -->
+	<div class="control-sidebar-bg"></div>
+</#macro>
+
+<#macro commonFooter >
+	<footer class="main-footer">
+        Powered by <b>XXL-JOB</b> ${I18n.admin_version}
+		<div class="pull-right hidden-xs">
+            <strong>Copyright &copy; 2015-${.now?string('yyyy')} &nbsp;
+                <a href="https://www.xuxueli.com/" target="_blank" >xuxueli</a>
+				&nbsp;
+                <a href="https://github.com/xuxueli/xxl-job" target="_blank" >github</a>
+            </strong><!-- All rights reserved. -->
+		</div>
+	</footer>
+</#macro>
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/help.ftl b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/help.ftl
new file mode 100644
index 0000000..1409fc5
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/help.ftl
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+<head>
+  	<#import "./common/common.macro.ftl" as netCommon>
+	<@netCommon.commonStyle />
+	<title>${I18n.admin_name}</title>
+</head>
+<body class="hold-transition skin-blue sidebar-mini <#if cookieMap?exists && cookieMap["xxljob_adminlte_settings"]?exists && "off" == cookieMap["xxljob_adminlte_settings"].value >sidebar-collapse</#if> ">
+<div class="wrapper">
+	<!-- header -->
+	<@netCommon.commonHeader />
+	<!-- left -->
+	<@netCommon.commonLeft "help" />
+	
+	<!-- Content Wrapper. Contains page content -->
+	<div class="content-wrapper">
+		<!-- Content Header (Page header) -->
+		<section class="content-header">
+			<h1>${I18n.job_help}</h1>
+		</section>
+
+		<!-- Main content -->
+		<section class="content">
+			<div class="callout callout-info">
+				<h4>${I18n.admin_name_full}</h4>
+				<br>
+				<p>
+					<a target="_blank" href="https://github.com/xuxueli/xxl-job">Github</a>&nbsp;&nbsp;&nbsp;&nbsp;
+					<iframe src="https://ghbtns.com/github-btn.html?user=xuxueli&repo=xxl-job&type=star&count=true" frameborder="0" scrolling="0" width="170px" height="20px" style="margin-bottom:-5px;"></iframe> 
+					<br><br>
+                    <a target="_blank" href="https://www.xuxueli.com/xxl-job/">${I18n.job_help_document}</a>
+                    <br><br>
+
+				</p>
+				<p></p>
+            </div>
+		</section>
+		<!-- /.content -->
+	</div>
+	<!-- /.content-wrapper -->
+	
+	<!-- footer -->
+	<@netCommon.commonFooter />
+</div>
+<@netCommon.commonScript />
+</body>
+</html>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/index.ftl b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/index.ftl
new file mode 100644
index 0000000..d642f4e
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/index.ftl
@@ -0,0 +1,147 @@
+<!DOCTYPE html>
+<html>
+<head>
+  	<#import "./common/common.macro.ftl" as netCommon>
+	<@netCommon.commonStyle />
+    <!-- daterangepicker -->
+    <link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.css">
+    <title>${I18n.admin_name}</title>
+</head>
+<body class="hold-transition skin-blue sidebar-mini <#if cookieMap?exists && cookieMap["xxljob_adminlte_settings"]?exists && "off" == cookieMap["xxljob_adminlte_settings"].value >sidebar-collapse</#if> ">
+<div class="wrapper">
+	<!-- header -->
+	<@netCommon.commonHeader />
+	<!-- left -->
+	<@netCommon.commonLeft "index" />
+	
+	<!-- Content Wrapper. Contains page content -->
+	<div class="content-wrapper">
+		<!-- Content Header (Page header) -->
+		<section class="content-header">
+			<h1>${I18n.job_dashboard_name}</h1>
+			<!--
+			<h1>运行报表<small>任务调度中心</small></h1>
+			<ol class="breadcrumb">
+				<li><a><i class="fa fa-dashboard"></i>调度中心</a></li>
+				<li class="active">使用教程</li>
+			</ol>
+			-->
+		</section>
+
+		<!-- Main content -->
+		<section class="content">
+
+            <!-- 任务信息 -->
+            <div class="row">
+
+                <#-- 任务信息 -->
+                <div class="col-md-4 col-sm-6 col-xs-12">
+                    <div class="info-box bg-aqua">
+                        <span class="info-box-icon"><i class="fa fa-flag-o"></i></span>
+
+                        <div class="info-box-content">
+                            <span class="info-box-text">${I18n.job_dashboard_job_num}</span>
+                            <span class="info-box-number">${jobInfoCount}</span>
+
+                            <div class="progress">
+                                <div class="progress-bar" style="width: 100%"></div>
+                            </div>
+                            <span class="progress-description">${I18n.job_dashboard_job_num_tip}</span>
+                        </div>
+                    </div>
+                </div>
+
+                <#-- 调度信息 -->
+                <div class="col-md-4 col-sm-6 col-xs-12" >
+                    <div class="info-box bg-yellow">
+                        <span class="info-box-icon"><i class="fa fa-calendar"></i></span>
+
+                        <div class="info-box-content">
+                            <span class="info-box-text">${I18n.job_dashboard_trigger_num}</span>
+                            <span class="info-box-number">${jobLogCount}</span>
+
+                            <div class="progress">
+                                <div class="progress-bar" style="width: 100%" ></div>
+                            </div>
+                            <span class="progress-description">
+                                ${I18n.job_dashboard_trigger_num_tip}
+                                <#--<#if jobLogCount gt 0>
+                                    调度成功率:${(jobLogSuccessCount*100/jobLogCount)?string("0.00")}<small>%</small>
+                                </#if>-->
+                            </span>
+                        </div>
+                    </div>
+                </div>
+
+                <#-- 执行器 -->
+                <div class="col-md-4 col-sm-6 col-xs-12">
+                    <div class="info-box bg-green">
+                        <span class="info-box-icon"><i class="fa ion-ios-settings-strong"></i></span>
+
+                        <div class="info-box-content">
+                            <span class="info-box-text">${I18n.job_dashboard_jobgroup_num}</span>
+                            <span class="info-box-number">${executorCount}</span>
+
+                            <div class="progress">
+                                <div class="progress-bar" style="width: 100%"></div>
+                            </div>
+                            <span class="progress-description">${I18n.job_dashboard_jobgroup_num_tip}</span>
+                        </div>
+                    </div>
+                </div>
+
+            </div>
+
+            <#-- 调度报表:时间区间筛选,左侧折线图 + 右侧饼图 -->
+            <div class="row">
+                <div class="col-md-12">
+                    <div class="box">
+                        <div class="box-header with-border">
+                            <h3 class="box-title">${I18n.job_dashboard_report}</h3>
+                            <#--<input type="text" class="form-control" id="filterTime" readonly >-->
+
+                            <!-- tools box -->
+                            <div class="pull-right box-tools">
+                                <button type="button" class="btn btn-primary btn-sm daterange pull-right" data-toggle="tooltip" id="filterTime" >
+                                    <i class="fa fa-calendar"></i>
+                                </button>
+                                <#--<button type="button" class="btn btn-primary btn-sm pull-right" data-widget="collapse" data-toggle="tooltip" title="" style="margin-right: 5px;" data-original-title="Collapse">
+                                    <i class="fa fa-minus"></i>
+                                </button>-->
+                            </div>
+                            <!-- /. tools -->
+
+                        </div>
+                        <div class="box-body">
+                            <div class="row">
+                                <#-- 左侧折线图 -->
+                                <div class="col-md-8">
+                                    <div id="lineChart" style="height: 350px;"></div>
+                                </div>
+                                <#-- 右侧饼图 -->
+                                <div class="col-md-4">
+                                    <div id="pieChart" style="height: 350px;"></div>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+		</section>
+		<!-- /.content -->
+	</div>
+	<!-- /.content-wrapper -->
+	
+	<!-- footer -->
+	<@netCommon.commonFooter />
+</div>
+<@netCommon.commonScript />
+<!-- daterangepicker -->
+<script src="${request.contextPath}/static/adminlte/bower_components/moment/moment.min.js"></script>
+<script src="${request.contextPath}/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.js"></script>
+<#-- echarts -->
+<script src="${request.contextPath}/static/plugins/echarts/echarts.common.min.js"></script>
+<script src="${request.contextPath}/static/js/index.js"></script>
+</body>
+</html>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/jobcode/jobcode.index.ftl b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/jobcode/jobcode.index.ftl
new file mode 100644
index 0000000..4b43bb6
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/jobcode/jobcode.index.ftl
@@ -0,0 +1,164 @@
+<!DOCTYPE html>
+<html>
+<head>
+  	<#import "../common/common.macro.ftl" as netCommon>
+	<@netCommon.commonStyle />
+	<link rel="stylesheet" href="${request.contextPath}/static/plugins/codemirror/lib/codemirror.css">
+	<link rel="stylesheet" href="${request.contextPath}/static/plugins/codemirror/addon/hint/show-hint.css">
+    <title>${I18n.admin_name}</title>
+	<style type="text/css">
+		.CodeMirror {
+      		font-size:16px;
+            width: 100%;
+      		height: 100%;
+            /*bottom: 0;
+            top: 0px;*/
+            position: absolute;
+		}
+    </style>
+</head>
+<body class="skin-blue fixed layout-top-nav">
+
+	<div class="wrapper">
+
+        <header class="main-header">
+            <nav class="navbar navbar-static-top">
+                <div class="container">
+					<#-- icon -->
+                    <div class="navbar-header">
+                        <a class="navbar-brand"><b>Web</b>IDE</a>
+                        <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse">
+                            <i class="fa fa-bars"></i>
+                        </button>
+                    </div>
+
+                    <#-- left nav -->
+                    <div class="collapse navbar-collapse pull-left" id="navbar-collapse">
+                        <ul class="nav navbar-nav">
+                            <li class="active" ><a href="javascript:;">
+                                <span class="sr-only">(current)</span>
+                                【<#list GlueTypeEnum as item><#if item == jobInfo.glueType>${item.desc}</#if></#list>】
+                                ${jobInfo.jobDesc}
+                            </a></li>
+                        </ul>
+                    </div>
+
+					<#-- right nav -->
+                    <div class="navbar-custom-menu">
+                        <ul class="nav navbar-nav">
+                            <li class="dropdown">
+                                <a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">${I18n.jobinfo_glue_rollback} <span class="caret"></span></a>
+                                <ul class="dropdown-menu" role="menu">
+                                    <li <#if jobLogGlues?exists && jobLogGlues?size gt 0 >style="display: none;"</#if> >
+                                        <a href="javascript:;" class="source_version" version="version_now" glueType="${jobInfo.glueType}" >
+                                            <#list GlueTypeEnum as item><#if item == jobInfo.glueType>${item.desc}</#if></#list>: ${jobInfo.glueRemark}
+                                        </a>
+                                    </li>
+                                    <textarea id="version_now" style="display:none;" >${jobInfo.glueSource}</textarea>
+									<#if jobLogGlues?exists && jobLogGlues?size gt 0 >
+										<#list jobLogGlues as glue>
+                                            <li>
+                                                <a href="javascript:;" class="source_version" version="version_${glue.id}" glueType="${glue.glueType}" >
+                                                    <#list GlueTypeEnum as item><#if item == glue.glueType>${item.desc}</#if></#list>: ${glue.glueRemark}
+                                                </a>
+                                            </li>
+                                            <textarea id="version_${glue.id}" style="display:none;" >${glue.glueSource}</textarea>
+										</#list>
+									</#if>
+                                </ul>
+                            </li>
+                            <li id="save" >
+								<a href="javascript:;" >
+									<i class="fa fa-fw fa-save" ></i>
+                                    ${I18n.system_save}
+								</a>
+							</li>
+                            <li>
+                                <a href="javascript:window.close();" >
+                                    <i class="fa fa-fw fa-close" ></i>
+                                ${I18n.system_close}
+                                </a>
+                            </li>
+                        </ul>
+                    </div>
+
+                </div>
+            </nav>
+        </header>
+
+		<div class="content-wrapper" id="ideWindow" ></div>
+
+		<!-- footer -->
+		<#--<@netCommon.commonFooter />-->
+	</div>
+
+    <!-- 保存.模态框 -->
+    <div class="modal fade" id="saveModal" tabindex="-1" role="dialog"  aria-hidden="true">
+        <div class="modal-dialog ">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h4 class="modal-title" ><i class="fa fa-fw fa-save"></i>${I18n.system_save}</h4>
+                </div>
+                <div class="modal-body">
+                    <form class="form-horizontal form" role="form" >
+                        <div class="form-group">
+                            <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_glue_remark}<font color="red">*</font></label>
+                            <div class="col-sm-10"><input type="text" class="form-control" id="glueRemark" placeholder="${I18n.system_please_input}${I18n.jobinfo_glue_remark}" maxlength="64" ></div>
+                        </div>
+                        <hr>
+                        <div class="form-group">
+                            <div class="col-sm-offset-3 col-sm-6">
+                                <button type="button" class="btn btn-primary ok" >${I18n.system_save}</button>
+                                <button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+	
+<@netCommon.commonScript />
+
+
+    <#assign glueTypeModeSrc = "${request.contextPath}/static/plugins/codemirror/mode/clike/clike.js" />
+    <#assign glueTypeIdeMode = "text/x-java" />
+
+    <#if jobInfo.glueType == "GLUE_GROOVY" >
+        <#assign glueTypeModeSrc = "${request.contextPath}/static/plugins/codemirror/mode/clike/clike.js" />
+        <#assign glueTypeIdeMode = "text/x-java" />
+    <#elseif jobInfo.glueType == "GLUE_SHELL" >
+        <#assign glueTypeModeSrc = "${request.contextPath}/static/plugins/codemirror/mode/shell/shell.js" />
+        <#assign glueTypeIdeMode = "text/x-sh" />
+    <#elseif jobInfo.glueType == "GLUE_PYTHON" >
+        <#assign glueTypeModeSrc = "${request.contextPath}/static/plugins/codemirror/mode/python/python.js" />
+        <#assign glueTypeIdeMode = "text/x-python" />
+    <#elseif jobInfo.glueType == "GLUE_PHP" >
+        <#assign glueTypeModeSrc = "${request.contextPath}/static/plugins/codemirror/mode/php/php.js" />
+        <#assign glueTypeIdeMode = "text/x-php" />
+        <#assign glueTypeModeSrc02 = "${request.contextPath}/static/plugins/codemirror/mode/clike/clike.js" />
+    <#elseif jobInfo.glueType == "GLUE_NODEJS" >
+        <#assign glueTypeModeSrc = "${request.contextPath}/static/plugins/codemirror/mode/javascript/javascript.js" />
+        <#assign glueTypeIdeMode = "text/javascript" />
+    <#elseif jobInfo.glueType == "GLUE_POWERSHELL" >
+        <#assign glueTypeModeSrc = "${request.contextPath}/static/plugins/codemirror/mode/powershell/powershell.js" />
+        <#assign glueTypeIdeMode = "powershell" />
+    </#if>
+
+
+<script src="${request.contextPath}/static/plugins/codemirror/lib/codemirror.js"></script>
+<script src="${glueTypeModeSrc}"></script>
+<#if glueTypeModeSrc02?exists>
+    <script src="${glueTypeModeSrc02}"></script>
+</#if>
+<script src="${request.contextPath}/static/plugins/codemirror/addon/hint/show-hint.js"></script>
+<script src="${request.contextPath}/static/plugins/codemirror/addon/hint/anyword-hint.js"></script>
+
+<script>
+var id = '${jobInfo.id}';
+var ideMode = '${glueTypeIdeMode}';
+</script>
+<script src="${request.contextPath}/static/js/jobcode.index.1.js"></script>
+
+</body>
+</html>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/jobgroup/jobgroup.index.ftl b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/jobgroup/jobgroup.index.ftl
new file mode 100644
index 0000000..a9b78a7
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/jobgroup/jobgroup.index.ftl
@@ -0,0 +1,199 @@
+<!DOCTYPE html>
+<html>
+<head>
+  	<#import "../common/common.macro.ftl" as netCommon>
+	<@netCommon.commonStyle />
+	<!-- DataTables -->
+  	<link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css">
+    <title>${I18n.admin_name}</title>
+</head>
+<body class="hold-transition skin-blue sidebar-mini <#if cookieMap?exists && cookieMap["xxljob_adminlte_settings"]?exists && "off" == cookieMap["xxljob_adminlte_settings"].value >sidebar-collapse</#if> ">
+<div class="wrapper">
+	<!-- header -->
+	<@netCommon.commonHeader />
+	<!-- left -->
+	<@netCommon.commonLeft "jobgroup" />
+	
+	<!-- Content Wrapper. Contains page content -->
+	<div class="content-wrapper">
+		<!-- Content Header (Page header) -->
+		<section class="content-header">
+			<h1>${I18n.jobgroup_name}</h1>
+		</section>
+
+		<!-- Main content -->
+	    <section class="content">
+			
+			<div class="row">
+				<div class="col-xs-12">
+					<div class="box">
+			            <div class="box-header">
+							<h3 class="box-title">${I18n.jobgroup_list}</h3>&nbsp;&nbsp;
+                            <button class="btn btn-info btn-xs pull-left2 add" >${I18n.jobgroup_add}</button>
+						</div>
+			            <div class="box-body">
+			              	<table id="joblog_list" class="table table-bordered table-striped display" width="100%" >
+				                <thead>
+					            	<tr>
+                                        <#--<th name="id" >ID</th>-->
+                                        <th name="order" >${I18n.jobgroup_field_order}</th>
+                                        <th name="appName" >AppName</th>
+                                        <th name="title" >${I18n.jobgroup_field_title}</th>
+                                        <th name="addressType" >${I18n.jobgroup_field_addressType}</th>
+                                        <th name="registryList" >OnLine ${I18n.jobgroup_field_registryList}</th>
+                                        <th name="operate" >${I18n.system_opt}</th>
+					                </tr>
+				                </thead>
+                                <tbody>
+								<#if list?exists && list?size gt 0>
+								<#list list as group>
+									<tr>
+                                        <#--<td>${group.id}</td>-->
+                                        <td>${group.order}</td>
+                                        <td>${group.appName}</td>
+                                        <td>${group.title}</td>
+                                        <td><#if group.addressType==0>${I18n.jobgroup_field_addressType_0}<#else>${I18n.jobgroup_field_addressType_1}</#if></td>
+                                        <td>
+                                            <#if group.registryList?exists>
+                                                <#list group.registryList as item>
+                                                    <span class="badge bg-green" title="${item}" >
+                                                        <#if item?length gt 35>
+                                                            ${item?substring(0, 35)}...
+                                                        <#else>
+                                                            ${item}
+                                                        </#if>
+                                                    </span>
+                                                    <br>
+                                                </#list>
+                                            </#if>
+                                        </td>
+										<td>
+                                            <button class="btn btn-warning btn-xs update"
+                                                    id="${group.id}"
+                                                    appName="${group.appName}"
+                                                    title="${group.title}"
+                                                    order="${group.order}"
+                                                    addressType="${group.addressType}"
+                                                    addressList="${group.addressList!}" >${I18n.system_opt_edit}</button>
+                                            <button class="btn btn-danger btn-xs remove" id="${group.id}" >${I18n.system_opt_del}</button>
+										</td>
+									</tr>
+								</#list>
+								</#if>
+								</tbody>
+							</table>
+						</div>
+					</div>
+				</div>
+			</div>
+	    </section>
+	</div>
+
+    <!-- 新增.模态框 -->
+    <div class="modal fade" id="addModal" tabindex="-1" role="dialog"  aria-hidden="true">
+        <div class="modal-dialog ">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h4 class="modal-title" >${I18n.jobgroup_add}</h4>
+                </div>
+                <div class="modal-body">
+                    <form class="form-horizontal form" role="form" >
+                        <div class="form-group">
+                            <label for="lastname" class="col-sm-2 control-label">AppName<font color="red">*</font></label>
+                            <div class="col-sm-10"><input type="text" class="form-control" name="appName" placeholder="${I18n.system_please_input}AppName" maxlength="64" ></div>
+                        </div>
+                        <div class="form-group">
+                            <label for="lastname" class="col-sm-2 control-label">${I18n.jobgroup_field_title}<font color="red">*</font></label>
+                            <div class="col-sm-10"><input type="text" class="form-control" name="title" placeholder="${I18n.system_please_input}${I18n.jobgroup_field_title}" maxlength="12" ></div>
+                        </div>
+                        <div class="form-group">
+                            <label for="lastname" class="col-sm-2 control-label">${I18n.jobgroup_field_order}<font color="red">*</font></label>
+                            <div class="col-sm-10"><input type="text" class="form-control" name="order" placeholder="${I18n.system_please_input}${I18n.jobgroup_field_order}" maxlength="50" ></div>
+                        </div>
+                        <div class="form-group">
+                            <label for="lastname" class="col-sm-2 control-label">${I18n.jobgroup_field_addressType}<font color="red">*</font></label>
+                            <div class="col-sm-10">
+                                <input type="radio" name="addressType" value="0" checked />${I18n.jobgroup_field_addressType_0}
+                                &nbsp;&nbsp;&nbsp;&nbsp;
+                                <input type="radio" name="addressType" value="1" />${I18n.jobgroup_field_addressType_1}
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <label for="lastname" class="col-sm-2 control-label">${I18n.jobgroup_field_registryList}<font color="red">*</font></label>
+                            <div class="col-sm-10">
+                                <textarea class="textarea" name="addressList" maxlength="512" placeholder="${I18n.jobgroup_field_registryList_placeholder}" readonly="readonly" style="background-color:#eee; width: 100%; height: 100px; font-size: 14px; line-height: 15px; border: 1px solid #dddddd; padding: 5px;"></textarea>
+                            </div>
+                        </div>
+                        <hr>
+                        <div class="form-group">
+                            <div class="col-sm-offset-3 col-sm-6">
+                                <button type="submit" class="btn btn-primary"  >${I18n.system_save}</button>
+                                <button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <!-- 更新.模态框 -->
+    <div class="modal fade" id="updateModal" tabindex="-1" role="dialog"  aria-hidden="true">
+        <div class="modal-dialog ">
+            <div class="modal-content">
+                <div class="modal-header">
+                    <h4 class="modal-title" >${I18n.jobgroup_edit}</h4>
+                </div>
+                <div class="modal-body">
+                    <form class="form-horizontal form" role="form" >
+                        <div class="form-group">
+                            <label for="lastname" class="col-sm-2 control-label">AppName<font color="red">*</font></label>
+                            <div class="col-sm-10"><input type="text" class="form-control" name="appName" placeholder="${I18n.system_please_input}AppName" maxlength="64" ></div>
+                        </div>
+                        <div class="form-group">
+                            <label for="lastname" class="col-sm-2 control-label">${I18n.jobgroup_field_title}<font color="red">*</font></label>
+                            <div class="col-sm-10"><input type="text" class="form-control" name="title" placeholder="${I18n.system_please_input}${I18n.jobgroup_field_title}" maxlength="12" ></div>
+                        </div>
+                        <div class="form-group">
+                            <label for="lastname" class="col-sm-2 control-label">${I18n.jobgroup_field_order}<font color="red">*</font></label>
+                            <div class="col-sm-10"><input type="text" class="form-control" name="order" placeholder="${I18n.system_please_input}${I18n.jobgroup_field_order}" maxlength="50" ></div>
+                        </div>
+                        <div class="form-group">
+                            <label for="lastname" class="col-sm-2 control-label">${I18n.jobgroup_field_addressType}<font color="red">*</font></label>
+                            <div class="col-sm-10">
+                                <input type="radio" name="addressType" value="0" />${I18n.jobgroup_field_addressType_0}
+                                &nbsp;&nbsp;&nbsp;&nbsp;
+                                <input type="radio" name="addressType" value="1" />${I18n.jobgroup_field_addressType_1}
+                            </div>
+                        </div>
+                        <div class="form-group">
+                            <label for="lastname" class="col-sm-2 control-label">${I18n.jobgroup_field_registryList}<font color="red">*</font></label>
+                            <div class="col-sm-10">
+                                <textarea class="textarea" name="addressList" maxlength="512" placeholder="${I18n.jobgroup_field_registryList_placeholder}" readonly="readonly" style="background-color:#eee; width: 100%; height: 100px; font-size: 14px; line-height: 15px; border: 1px solid #dddddd; padding: 5px;"></textarea>
+                            </div>
+                        </div>
+                        <hr>
+                        <div class="form-group">
+                            <div class="col-sm-offset-3 col-sm-6">
+                                <button type="submit" class="btn btn-primary"  >${I18n.system_save}</button>
+                                <button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
+                                <input type="hidden" name="id" >
+                            </div>
+                        </div>
+                    </form>
+                </div>
+            </div>
+        </div>
+    </div>
+	
+	<!-- footer -->
+	<@netCommon.commonFooter />
+</div>
+
+<@netCommon.commonScript />
+<!-- DataTables -->
+<script src="${request.contextPath}/static/adminlte/bower_components/datatables.net/js/jquery.dataTables.min.js"></script>
+<script src="${request.contextPath}/static/adminlte/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
+<script src="${request.contextPath}/static/js/jobgroup.index.1.js"></script>
+</body>
+</html>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/jobinfo/jobinfo.index.ftl b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/jobinfo/jobinfo.index.ftl
new file mode 100644
index 0000000..be9dba5
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/jobinfo/jobinfo.index.ftl
@@ -0,0 +1,434 @@
+<!DOCTYPE html>
+<html>
+<head>
+  	<#import "../common/common.macro.ftl" as netCommon>
+	<@netCommon.commonStyle />
+	<!-- DataTables -->
+  	<link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css">
+    <title>${I18n.admin_name}</title>
+</head>
+<body class="hold-transition skin-blue sidebar-mini <#if cookieMap?exists && cookieMap["xxljob_adminlte_settings"]?exists && "off" == cookieMap["xxljob_adminlte_settings"].value >sidebar-collapse</#if>">
+<div class="wrapper">
+	<!-- header -->
+	<@netCommon.commonHeader />
+	<!-- left -->
+	<@netCommon.commonLeft "jobinfo" />
+	
+	<!-- Content Wrapper. Contains page content -->
+	<div class="content-wrapper">
+		<!-- Content Header (Page header) -->
+		<section class="content-header">
+			<h1>${I18n.jobinfo_name}</h1>
+		</section>
+		
+		<!-- Main content -->
+	    <section class="content">
+	    
+	    	<div class="row">
+	    		<div class="col-xs-3">
+	              	<div class="input-group">
+	                	<span class="input-group-addon">${I18n.jobinfo_field_jobgroup}</span>
+                		<select class="form-control" id="jobGroup" >
+                			<#list JobGroupList as group>
+                				<option value="${group.id}" <#if jobGroup==group.id>selected</#if> >${group.title}</option>
+                			</#list>
+	                  	</select>
+	              	</div>
+	            </div>
+                <div class="col-xs-1">
+                    <div class="input-group">
+                        <select class="form-control" id="triggerStatus" >
+                            <option value="-1" >${I18n.system_all}</option>
+                            <option value="0" >${I18n.jobinfo_opt_stop}</option>
+                            <option value="1" >${I18n.jobinfo_opt_start}</option>
+                        </select>
+                    </div>
+                </div>
+                <div class="col-xs-2">
+                    <div class="input-group">
+                        <input type="text" class="form-control" id="jobDesc" autocomplete="on" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_jobdesc}" >
+                    </div>
+                </div>
+                <div class="col-xs-2">
+                    <div class="input-group">
+                        <input type="text" class="form-control" id="executorHandler" autocomplete="on" placeholder="${I18n.system_please_input}JobHandler" >
+                    </div>
+                </div>
+                <div class="col-xs-2">
+                    <div class="input-group">
+                        <input type="text" class="form-control" id="author" autocomplete="on" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_author}" >
+                    </div>
+                </div>
+	            <div class="col-xs-1">
+	            	<button class="btn btn-block btn-info" id="searchBtn">${I18n.system_search}</button>
+	            </div>
+	            <div class="col-xs-1">
+	            	<button class="btn btn-block btn-success add" type="button">${I18n.jobinfo_field_add}</button>
+	            </div>
+          	</div>
+	    	
+			<div class="row">
+				<div class="col-xs-12">
+					<div class="box">
+			            <#--<div class="box-header hide">
+			            	<h3 class="box-title">调度列表</h3>
+			            </div>-->
+			            <div class="box-body" >
+			              	<table id="job_list" class="table table-bordered table-striped" width="100%" >
+				                <thead>
+					            	<tr>
+					            		<th name="id" >${I18n.jobinfo_field_id}</th>
+					                	<th name="jobGroup" >${I18n.jobinfo_field_jobgroup}</th>
+					                  	<th name="jobDesc" >${I18n.jobinfo_field_jobdesc}</th>
+                                        <th name="glueType" >${I18n.jobinfo_field_gluetype}</th>
+					                  	<th name="executorParam" >${I18n.jobinfo_field_executorparam}</th>
+                                        <th name="jobCron" >Cron</th>
+					                  	<th name="addTime" >addTime</th>
+					                  	<th name="updateTime" >updateTime</th>
+					                  	<th name="author" >${I18n.jobinfo_field_author}</th>
+					                  	<th name="alarmEmail" >${I18n.jobinfo_field_alarmemail}</th>
+					                  	<th name="triggerStatus" >${I18n.system_status}</th>
+					                  	<th>${I18n.system_opt}</th>
+					                </tr>
+				                </thead>
+				                <tbody></tbody>
+				                <tfoot></tfoot>
+							</table>
+						</div>
+					</div>
+				</div>
+			</div>
+	    </section>
+	</div>
+	
+	<!-- footer -->
+	<@netCommon.commonFooter />
+</div>
+
+<!-- job新增.模态框 -->
+<div class="modal fade" id="addModal" tabindex="-1" role="dialog"  aria-hidden="true">
+	<div class="modal-dialog modal-lg">
+		<div class="modal-content">
+			<div class="modal-header">
+            	<h4 class="modal-title" >${I18n.jobinfo_field_add}</h4>
+         	</div>
+         	<div class="modal-body">
+				<form class="form-horizontal form" role="form" >
+					<div class="form-group">
+						<label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_jobgroup}<font color="red">*</font></label>
+						<div class="col-sm-4">
+							<select class="form-control" name="jobGroup" >
+		            			<#list JobGroupList as group>
+		            				<option value="${group.id}" <#if jobGroup==group.id>selected</#if> >${group.title}</option>
+		            			</#list>
+		                  	</select>
+						</div>
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_jobdesc}<font color="red">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="jobDesc" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_jobdesc}" maxlength="50" ></div>
+					</div>
+                    <div class="form-group">
+                        <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorRouteStrategy}<font color="red">*</font></label>
+                        <div class="col-sm-4">
+                            <select class="form-control" name="executorRouteStrategy" >
+							<#list ExecutorRouteStrategyEnum as item>
+                                <option value="${item}" >${item.title}</option>
+							</#list>
+                            </select>
+                        </div>
+                        <label for="lastname" class="col-sm-2 control-label">Cron<font color="red">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="jobCron" placeholder="${I18n.system_please_input}Cron" maxlength="128" ></div>
+                    </div>
+                    <div class="form-group">
+                        <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_gluetype}<font color="red">*</font></label>
+                        <div class="col-sm-4">
+                            <select class="form-control glueType" name="glueType" >
+								<#list GlueTypeEnum as item>
+									<option value="${item}" >${item.desc}</option>
+								</#list>
+                            </select>
+                        </div>
+                        <label for="firstname" class="col-sm-2 control-label">JobHandler<font color="red">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="executorHandler" placeholder="${I18n.system_please_input}JobHandler" maxlength="100" ></div>
+                    </div>
+                    <div class="form-group">
+                        <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorBlockStrategy}<font color="red">*</font></label>
+                        <div class="col-sm-4">
+                            <select class="form-control" name="executorBlockStrategy" >
+								<#list ExecutorBlockStrategyEnum as item>
+                                    <option value="${item}" >${item.title}</option>
+                                </#list>
+                            </select>
+                        </div>
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_childJobId}<font color="black">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="childJobId" placeholder="${I18n.jobinfo_field_childJobId_placeholder}" maxlength="100" ></div>
+                    </div>
+                    <div class="form-group">
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_timeout}<font color="black">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="executorTimeout" placeholder="${I18n.jobinfo_field_executorTimeout_placeholder}" maxlength="6" ></div>
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorFailRetryCount}<font color="black">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="executorFailRetryCount" placeholder="${I18n.jobinfo_field_executorFailRetryCount_placeholder}" maxlength="4" ></div>
+                    </div>
+					<div class="form-group">
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_author}<font color="red">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="author" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_author}" maxlength="50" ></div>
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_alarmemail}<font color="black">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="alarmEmail" placeholder="${I18n.jobinfo_field_alarmemail_placeholder}" maxlength="100" ></div>
+					</div>
+                    <div class="form-group">
+                        <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorparam}<font color="black">*</font></label>
+                        <div class="col-sm-10">
+                            <textarea class="textarea form-control" name="executorParam" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_executorparam}" maxlength="512" style="height: 63px; line-height: 1.2;"></textarea>
+						</div>
+                    </div>
+
+                    <hr>
+					<div class="form-group">
+						<div class="col-sm-offset-3 col-sm-6">
+							<button type="submit" class="btn btn-primary"  >${I18n.system_save}</button>
+							<button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
+						</div>
+					</div>
+
+<input type="hidden" name="glueRemark" value="GLUE代码初始化" >
+<textarea name="glueSource" style="display:none;" ></textarea>
+<textarea class="glueSource_java" style="display:none;" >
+package com.xxl.job.service.handler;
+
+import com.xxl.job.core.log.XxlJobLogger;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.IJobHandler;
+
+public class DemoGlueJobHandler extends IJobHandler {
+
+	@Override
+	public ReturnT<String> execute(String param) throws Exception {
+		XxlJobLogger.log("XXL-JOB, Hello World.");
+		return ReturnT.SUCCESS;
+	}
+
+}
+</textarea>
+<textarea class="glueSource_shell" style="display:none;" >
+#!/bin/bash
+echo "xxl-job: hello shell"
+
+echo "${I18n.jobinfo_script_location}:$0"
+echo "${I18n.jobinfo_field_executorparam}:$1"
+echo "${I18n.jobinfo_shard_index} = $2"
+echo "${I18n.jobinfo_shard_total} = $3"
+<#--echo "参数数量:$#"
+for param in $*
+do
+    echo "参数 : $param"
+    sleep 1s
+done-->
+
+echo "Good bye!"
+exit 0
+</textarea>
+<textarea class="glueSource_python" style="display:none;" >
+#!/usr/bin/python
+# -*- coding: UTF-8 -*-
+import time
+import sys
+
+print "xxl-job: hello python"
+
+print "${I18n.jobinfo_script_location}:", sys.argv[0]
+print "${I18n.jobinfo_field_executorparam}:", sys.argv[1]
+print "${I18n.jobinfo_shard_index}:", sys.argv[2]
+print "${I18n.jobinfo_shard_total}:", sys.argv[3]
+<#--for i in range(1, len(sys.argv)):
+	time.sleep(1)
+	print "参数", i, sys.argv[i]-->
+
+print "Good bye!"
+exit(0)
+<#--
+import logging
+logging.basicConfig(level=logging.DEBUG)
+logging.info("脚本文件:" + sys.argv[0])
+-->
+</textarea>
+<#--这里有问题,新建一个运行模式为 php 的任务后,GLUE 中没有下边的 php 代码-->
+<textarea class="glueSource_php" style="display:none;" >
+<?php
+
+    echo "xxl-job: hello php  \n";
+
+    echo "${I18n.jobinfo_script_location}:$argv[0]  \n";
+    echo "${I18n.jobinfo_field_executorparam}:$argv[1]  \n";
+    echo "${I18n.jobinfo_shard_index} = $argv[2]  \n";
+    echo "${I18n.jobinfo_shard_total} = $argv[3]  \n";
+
+    echo "Good bye!  \n";
+    exit(0);
+
+?>
+</textarea>
+<textarea class="glueSource_nodejs" style="display:none;" >
+#!/usr/bin/env node
+console.log("xxl-job: hello nodejs")
+
+var arguments = process.argv
+
+console.log("${I18n.jobinfo_script_location}: " + arguments[1])
+console.log("${I18n.jobinfo_field_executorparam}: " + arguments[2])
+console.log("${I18n.jobinfo_shard_index}: " + arguments[3])
+console.log("${I18n.jobinfo_shard_total}: " + arguments[4])
+<#--for (var i = 2; i < arguments.length; i++){
+	console.log("参数 %s = %s", (i-1), arguments[i]);
+}-->
+
+console.log("Good bye!")
+process.exit(0)
+</textarea>
+<textarea class="glueSource_powershell" style="display:none;" >
+Write-Host "xxl-job: hello powershell"
+
+Write-Host "${I18n.jobinfo_script_location}: " $MyInvocation.MyCommand.Definition
+Write-Host "${I18n.jobinfo_field_executorparam}: "
+	if ($args.Count -gt 2) { $args[0..($args.Count-3)] }
+Write-Host "${I18n.jobinfo_shard_index}: " $args[$args.Count-2]
+Write-Host "${I18n.jobinfo_shard_total}: " $args[$args.Count-1]
+
+Write-Host "Good bye!"
+exit 0
+</textarea>
+				</form>
+         	</div>
+		</div>
+	</div>
+</div>
+
+<!-- 更新.模态框 -->
+<div class="modal fade" id="updateModal" tabindex="-1" role="dialog"  aria-hidden="true">
+	<div class="modal-dialog modal-lg">
+		<div class="modal-content">
+			<div class="modal-header">
+            	<h4 class="modal-title" >${I18n.jobinfo_field_update}</h4>
+         	</div>
+         	<div class="modal-body">
+				<form class="form-horizontal form" role="form" >
+					<div class="form-group">
+                        <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_jobgroup}<font color="red">*</font></label>
+                        <div class="col-sm-4">
+                            <select class="form-control" name="jobGroup" >
+							<#list JobGroupList as group>
+                                <option value="${group.id}" >${group.title}</option>
+							</#list>
+                            </select>
+                        </div>
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_jobdesc}<font color="red">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="jobDesc" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_jobdesc}" maxlength="50" ></div>
+                    </div>
+                    <div class="form-group">
+                        <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorRouteStrategy}<font color="red">*</font></label>
+                        <div class="col-sm-4">
+                            <select class="form-control" name="executorRouteStrategy" >
+							<#list ExecutorRouteStrategyEnum as item>
+                                <option value="${item}" >${item.title}</option>
+							</#list>
+                            </select>
+                        </div>
+                        <label for="lastname" class="col-sm-2 control-label">Cron<font color="red">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="jobCron" placeholder="${I18n.system_please_input}Cron" maxlength="128" ></div>
+                    </div>
+                    <div class="form-group">
+                        <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_gluetype}<font color="red">*</font></label>
+                        <div class="col-sm-4">
+                            <select class="form-control glueType" name="glueType" disabled >
+							<#list GlueTypeEnum as item>
+                                <option value="${item}" >${item.desc}</option>
+							</#list>
+                            </select>
+                        </div>
+                        <label for="firstname" class="col-sm-2 control-label">JobHandler<font color="red">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="executorHandler" placeholder="${I18n.system_please_input}JobHandler" maxlength="100" ></div>
+                    </div>
+                    <div class="form-group">
+                        <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorBlockStrategy}<font color="red">*</font></label>
+                        <div class="col-sm-4">
+                            <select class="form-control" name="executorBlockStrategy" >
+							<#list ExecutorBlockStrategyEnum as item>
+                                <option value="${item}" >${item.title}</option>
+							</#list>
+                            </select>
+                        </div>
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_childJobId}<font color="black">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="childJobId" placeholder="${I18n.jobinfo_field_childJobId_placeholder}" maxlength="100" ></div>
+                    </div>
+                    <div class="form-group">
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_timeout}<font color="black">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="executorTimeout" placeholder="${I18n.jobinfo_field_executorTimeout_placeholder}" maxlength="6" ></div>
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorFailRetryCount}<font color="black">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="executorFailRetryCount" placeholder="${I18n.jobinfo_field_executorFailRetryCount_placeholder}" maxlength="4" ></div>
+                    </div>
+                    <div class="form-group">
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_author}<font color="red">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="author" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_author}" maxlength="50" ></div>
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.jobinfo_field_alarmemail}<font color="black">*</font></label>
+                        <div class="col-sm-4"><input type="text" class="form-control" name="alarmEmail" placeholder="${I18n.jobinfo_field_alarmemail_placeholder}" maxlength="100" ></div>
+                    </div>
+                    <div class="form-group">
+                        <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorparam}<font color="black">*</font></label>
+                        <div class="col-sm-10">
+                            <textarea class="textarea form-control" name="executorParam" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_executorparam}" maxlength="512" style="height: 63px; line-height: 1.2;"></textarea>
+						</div>
+                    </div>
+
+					<hr>
+					<div class="form-group">
+                        <div class="col-sm-offset-3 col-sm-6">
+							<button type="submit" class="btn btn-primary"  >${I18n.system_save}</button>
+							<button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
+                            <input type="hidden" name="id" >
+						</div>
+					</div>
+
+				</form>
+         	</div>
+		</div>
+	</div>
+</div>
+
+<#-- trigger -->
+<div class="modal fade" id="jobTriggerModal" tabindex="-1" role="dialog"  aria-hidden="true">
+    <div class="modal-dialog ">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h4 class="modal-title" >${I18n.jobinfo_opt_run}</h4>
+            </div>
+            <div class="modal-body">
+                <form class="form-horizontal form" role="form" >
+                    <div class="form-group">
+                        <label for="firstname" class="col-sm-2 control-label">${I18n.jobinfo_field_executorparam}<font color="black">*</font></label>
+                        <div class="col-sm-10">
+                            <textarea class="textarea form-control" name="executorParam" placeholder="${I18n.system_please_input}${I18n.jobinfo_field_executorparam}" maxlength="512" style="height: 63px; line-height: 1.2;"></textarea>
+                        </div>
+                    </div>
+                    <hr>
+                    <div class="form-group">
+                        <div class="col-sm-offset-3 col-sm-6">
+                            <button type="button" class="btn btn-primary ok" >${I18n.system_save}</button>
+                            <button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
+                            <input type="hidden" name="id" >
+                        </div>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+</div>
+
+<@netCommon.commonScript />
+<!-- DataTables -->
+<script src="${request.contextPath}/static/adminlte/bower_components/datatables.net/js/jquery.dataTables.min.js"></script>
+<script src="${request.contextPath}/static/adminlte/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
+<!-- moment -->
+<script src="${request.contextPath}/static/adminlte/bower_components/moment/moment.min.js"></script>
+<#-- cronGen -->
+<script src="${request.contextPath}/static/plugins/cronGen/cronGen<#if I18n.admin_i18n?default('')?length gt 0 >_${I18n.admin_i18n}</#if>.js"></script>
+<script src="${request.contextPath}/static/js/jobinfo.index.1.js"></script>
+</body>
+</html>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/joblog/joblog.detail.ftl b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/joblog/joblog.detail.ftl
new file mode 100644
index 0000000..736b7e3
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/joblog/joblog.detail.ftl
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <#import "../common/common.macro.ftl" as netCommon>
+    <@netCommon.commonStyle />
+    <title>${I18n.admin_name}</title>
+</head>
+<body class="hold-transition skin-blue layout-top-nav">
+
+<div class="wrapper">
+
+    <header class="main-header">
+        <nav class="navbar navbar-static-top">
+            <div class="container">
+                <#-- icon -->
+                <div class="navbar-header">
+                    <a class="navbar-brand"><b>${I18n.joblog_rolling_log}</b> Console</a>
+                    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse">
+                        <i class="fa fa-bars"></i>
+                    </button>
+                </div>
+
+                <#-- left nav -->
+                <div class="collapse navbar-collapse pull-left" id="navbar-collapse">
+                    <ul class="nav navbar-nav">
+                        <#--<li class="active" ><a href="javascript:;">任务:<span class="sr-only">(current)</span></a></li>-->
+                    </ul>
+                </div>
+
+                <#-- right nav -->
+                <div class="navbar-custom-menu">
+                    <ul class="nav navbar-nav">
+                        <li>
+                            <a href="javascript:window.location.reload();" >
+                                <i class="fa fa-fw fa-refresh" ></i>
+                                ${I18n.joblog_rolling_log_refresh}
+                            </a>
+                        </li>
+                    </ul>
+                </div>
+
+            </div>
+        </nav>
+    </header>
+
+    <div class="content-wrapper" >
+        <section class="content">
+            <pre style="font-size:12px;position:relative;" >
+                <div id="logConsole"></div>
+                <li class="fa fa-refresh fa-spin" style="font-size: 20px;float: left;" id="logConsoleRunning" ></li>
+                <div><hr><hr></div>
+            </pre>
+        </section>
+    </div>
+
+    <!-- footer -->
+    <@netCommon.commonFooter />
+
+</div>
+
+<@netCommon.commonScript />
+<script>
+    // 参数
+    var triggerCode = '${triggerCode}';
+    var handleCode = '${handleCode}';
+    var executorAddress = '${executorAddress!}';
+    var triggerTime = '${triggerTime?c}';
+    var logId = '${logId}';
+</script>
+<script src="${request.contextPath}/static/js/joblog.detail.1.js"></script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/joblog/joblog.index.ftl b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/joblog/joblog.index.ftl
new file mode 100644
index 0000000..462ea34
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/joblog/joblog.index.ftl
@@ -0,0 +1,180 @@
+<!DOCTYPE html>
+<html>
+<head>
+  	<#import "../common/common.macro.ftl" as netCommon>
+	<@netCommon.commonStyle />
+	<!-- DataTables -->
+  	<link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css">
+  	<!-- daterangepicker -->
+  	<link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.css">
+    <title>${I18n.admin_name}</title>
+</head>
+<body class="hold-transition skin-blue sidebar-mini <#if cookieMap?exists && cookieMap["xxljob_adminlte_settings"]?exists && "off" == cookieMap["xxljob_adminlte_settings"].value >sidebar-collapse</#if> ">
+<div class="wrapper">
+	<!-- header -->
+	<@netCommon.commonHeader />
+	<!-- left -->
+	<@netCommon.commonLeft "joblog" />
+	
+	<!-- Content Wrapper. Contains page content -->
+	<div class="content-wrapper">
+		<!-- Content Header (Page header) -->
+		<section class="content-header">
+			<h1>${I18n.joblog_name}</h1>
+		</section>
+		
+		<!-- Main content -->
+	    <section class="content">
+	    	<div class="row">
+	    		<div class="col-xs-2">
+ 					<div class="input-group">
+	                	<span class="input-group-addon">${I18n.jobinfo_field_jobgroup}</span>
+                		<select class="form-control" id="jobGroup"  paramVal="<#if jobInfo?exists>${jobInfo.jobGroup}</#if>" >
+                            <#if Request["XXL_JOB_LOGIN_IDENTITY"].role == 1>
+                                <option value="0" >${I18n.system_all}</option>  <#-- 仅管理员支持查询全部;普通用户仅支持查询有权限的 jobGroup -->
+                            </#if>
+                			<#list JobGroupList as group>
+                				<option value="${group.id}" >${group.title}</option>
+                			</#list>
+	                  	</select>
+	              	</div>
+	            </div>
+	            <div class="col-xs-2">
+	              	<div class="input-group">
+	                	<span class="input-group-addon">${I18n.jobinfo_job}</span>
+                        <select class="form-control" id="jobId" paramVal="<#if jobInfo?exists>${jobInfo.id}</#if>" >
+                            <option value="0" >${I18n.system_all}</option>
+						</select>
+	              	</div>
+	            </div>
+
+                <div class="col-xs-2">
+                    <div class="input-group">
+                        <span class="input-group-addon">${I18n.joblog_status}</span>
+                        <select class="form-control" id="logStatus" >
+                            <option value="-1" >${I18n.joblog_status_all}</option>
+                            <option value="1" >${I18n.joblog_status_suc}</option>
+                            <option value="2" >${I18n.joblog_status_fail}</option>
+                            <option value="3" >${I18n.joblog_status_running}</option>
+                        </select>
+                    </div>
+                </div>
+
+	            <div class="col-xs-4">
+              		<div class="input-group">
+                		<span class="input-group-addon">
+	                  		${I18n.joblog_field_triggerTime}
+	                	</span>
+	                	<input type="text" class="form-control" id="filterTime" readonly >
+	              	</div>
+	            </div>
+
+                <div class="col-xs-1">
+                    <button class="btn btn-block btn-info" id="searchBtn">${I18n.system_search}</button>
+                </div>
+
+	            <div class="col-xs-1">
+                    <button class="btn btn-block btn-nomal" id="clearLog">${I18n.joblog_clean}</button>
+	            </div>
+          	</div>
+			
+			<div class="row">
+				<div class="col-xs-12">
+					<div class="box">
+			            <#--<div class="box-header hide"><h3 class="box-title">调度日志</h3></div>-->
+			            <div class="box-body">
+			              	<table id="joblog_list" class="table table-bordered table-striped display" width="100%" >
+				                <thead>
+					            	<tr>
+                                        <th name="jobId" >${I18n.jobinfo_field_id}</th>
+                                        <th name="jobGroup" >jobGroup</th>
+										<#--<th name="executorAddress" >执行器地址</th>
+										<th name="glueType" >运行模式</th>
+                                      	<th name="executorParam" >任务参数</th>-->
+                                        <th name="triggerTime" >${I18n.joblog_field_triggerTime}</th>
+                                        <th name="triggerCode" >${I18n.joblog_field_triggerCode}</th>
+                                        <th name="triggerMsg" >${I18n.joblog_field_triggerMsg}</th>
+					                  	<th name="handleTime" >${I18n.joblog_field_handleTime}</th>
+					                  	<th name="handleCode" >${I18n.joblog_field_handleCode}</th>
+					                  	<th name="handleMsg" >${I18n.joblog_field_handleMsg}</th>
+					                  	<th name="handleMsg" >${I18n.system_opt}</th>
+					                </tr>
+				                </thead>
+				                <tbody></tbody>
+							</table>
+						</div>
+					</div>
+				</div>
+			</div>
+	    </section>
+	</div>
+	
+	<!-- footer -->
+	<@netCommon.commonFooter />
+</div>
+
+<!-- 日志清理.模态框 -->
+<div class="modal fade" id="clearLogModal" tabindex="-1" role="dialog"  aria-hidden="true">
+    <div class="modal-dialog">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h4 class="modal-title" >${I18n.joblog_clean_log}</h4>
+            </div>
+            <div class="modal-body">
+                <form class="form-horizontal form" role="form" >
+                    <div class="form-group">
+                        <label class="col-sm-3 control-label"">${I18n.jobinfo_field_jobgroup}:</label>
+                        <div class="col-sm-9">
+                            <input type="text" class="form-control jobGroupText" readonly >
+							<input type="hidden" name="jobGroup" >
+						</div>
+                    </div>
+
+                    <div class="form-group">
+                        <label class="col-sm-3 control-label"">${I18n.jobinfo_job}:</label>
+                        <div class="col-sm-9">
+                            <input type="text" class="form-control jobIdText" readonly >
+                            <input type="hidden" name="jobId" >
+						</div>
+                    </div>
+
+                    <div class="form-group">
+                        <label class="col-sm-3 control-label"">${I18n.joblog_clean_type}:</label>
+                        <div class="col-sm-9">
+                            <select class="form-control" name="type" >
+                                <option value="1" >${I18n.joblog_clean_type_1}</option>
+                                <option value="2" >${I18n.joblog_clean_type_2}</option>
+                                <option value="3" >${I18n.joblog_clean_type_3}</option>
+                                <option value="4" >${I18n.joblog_clean_type_4}</option>
+                                <option value="5" >${I18n.joblog_clean_type_5}</option>
+                                <option value="6" >${I18n.joblog_clean_type_6}</option>
+                                <option value="7" >${I18n.joblog_clean_type_7}</option>
+                                <option value="8" >${I18n.joblog_clean_type_8}</option>
+                                <option value="9" >${I18n.joblog_clean_type_9}</option>
+                            </select>
+                        </div>
+                    </div>
+
+                    <hr>
+                    <div class="form-group">
+                        <div class="col-sm-offset-3 col-sm-6">
+                            <button type="button" class="btn btn-primary ok" >${I18n.system_ok}</button>
+                            <button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
+                        </div>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+</div>
+
+<@netCommon.commonScript />
+<!-- DataTables -->
+<script src="${request.contextPath}/static/adminlte/bower_components/datatables.net/js/jquery.dataTables.min.js"></script>
+<script src="${request.contextPath}/static/adminlte/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
+<!-- daterangepicker -->
+<script src="${request.contextPath}/static/adminlte/bower_components/moment/moment.min.js"></script>
+<script src="${request.contextPath}/static/adminlte/bower_components/bootstrap-daterangepicker/daterangepicker.js"></script>
+<script src="${request.contextPath}/static/js/joblog.index.1.js"></script>
+</body>
+</html>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/login.ftl b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/login.ftl
new file mode 100644
index 0000000..c3f6963
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/login.ftl
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+<head>
+  	<#import "./common/common.macro.ftl" as netCommon>
+	<@netCommon.commonStyle />
+    <link rel="stylesheet" href="${request.contextPath}/static/adminlte/plugins/iCheck/square/blue.css">
+	<title>${I18n.admin_name}</title>
+</head>
+<body class="hold-transition login-page">
+	<div class="login-box">
+		<div class="login-logo">
+			<a><b>XXL</b>JOB</a>
+		</div>
+		<form id="loginForm" method="post" >
+			<div class="login-box-body">
+				<p class="login-box-msg">${I18n.admin_name}</p>
+				<div class="form-group has-feedback">
+	            	<input type="text" name="userName" class="form-control" placeholder="${I18n.login_username_placeholder}"  maxlength="18" >
+	            	<span class="glyphicon glyphicon-envelope form-control-feedback"></span>
+				</div>
+	          	<div class="form-group has-feedback">
+	            	<input type="password" name="password" class="form-control" placeholder="${I18n.login_password_placeholder}"  maxlength="18" >
+	            	<span class="glyphicon glyphicon-lock form-control-feedback"></span>
+	          	</div>
+				<div class="row">
+					<div class="col-xs-8">
+		              	<div class="checkbox icheck">
+		                	<label>
+		                  		<input type="checkbox" name="ifRemember" > &nbsp; ${I18n.login_remember_me}
+		                	</label>
+						</div>
+		            </div><!-- /.col -->
+		            <div class="col-xs-4">
+						<button type="submit" class="btn btn-primary btn-block btn-flat">${I18n.login_btn}</button>
+					</div>
+				</div>
+			</div>
+		</form>
+	</div>
+<@netCommon.commonScript />
+<script src="${request.contextPath}/static/adminlte/plugins/iCheck/icheck.min.js"></script>
+<script src="${request.contextPath}/static/js/login.1.js"></script>
+
+</body>
+</html>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/user/user.index.ftl b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/user/user.index.ftl
new file mode 100644
index 0000000..9902055
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob-admin/src/main/resources/templates/user/user.index.ftl
@@ -0,0 +1,188 @@
+<!DOCTYPE html>
+<html>
+<head>
+  	<#import "../common/common.macro.ftl" as netCommon>
+	<@netCommon.commonStyle />
+	<!-- DataTables -->
+  	<link rel="stylesheet" href="${request.contextPath}/static/adminlte/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css">
+    <title>${I18n.admin_name}</title>
+</head>
+<body class="hold-transition skin-blue sidebar-mini <#if cookieMap?exists && cookieMap["xxljob_adminlte_settings"]?exists && "off" == cookieMap["xxljob_adminlte_settings"].value >sidebar-collapse</#if>">
+<div class="wrapper">
+	<!-- header -->
+	<@netCommon.commonHeader />
+	<!-- left -->
+	<@netCommon.commonLeft "user" />
+	
+	<!-- Content Wrapper. Contains page content -->
+	<div class="content-wrapper">
+		<!-- Content Header (Page header) -->
+		<section class="content-header">
+			<h1>${I18n.user_manage}</h1>
+		</section>
+		
+		<!-- Main content -->
+	    <section class="content">
+	    
+	    	<div class="row">
+                <div class="col-xs-3">
+                    <div class="input-group">
+                        <span class="input-group-addon">${I18n.user_role}</span>
+                        <select class="form-control" id="role" >
+                            <option value="-1" >${I18n.system_all}</option>
+                            <option value="1" >${I18n.user_role_admin}</option>
+                            <option value="0" >${I18n.user_role_normal}</option>
+                        </select>
+                    </div>
+                </div>
+                <div class="col-xs-3">
+                    <div class="input-group">
+                        <span class="input-group-addon">${I18n.user_username}</span>
+                        <input type="text" class="form-control" id="username" autocomplete="on" >
+                    </div>
+                </div>
+	            <div class="col-xs-1">
+	            	<button class="btn btn-block btn-info" id="searchBtn">${I18n.system_search}</button>
+	            </div>
+	            <div class="col-xs-2">
+	            	<button class="btn btn-block btn-success add" type="button">${I18n.user_add}</button>
+	            </div>
+          	</div>
+	    	
+			<div class="row">
+				<div class="col-xs-12">
+					<div class="box">
+			            <div class="box-body" >
+			              	<table id="user_list" class="table table-bordered table-striped" width="100%" >
+				                <thead>
+					            	<tr>
+                                        <th name="id" >ID</th>
+                                        <th name="username" >${I18n.user_username}</th>
+					                  	<th name="password" >${I18n.user_password}</th>
+                                        <th name="role" >${I18n.user_role}</th>
+					                  	<th name="permission" >${I18n.user_permission}</th>
+					                  	<th>${I18n.system_opt}</th>
+					                </tr>
+				                </thead>
+				                <tbody></tbody>
+				                <tfoot></tfoot>
+							</table>
+						</div>
+					</div>
+				</div>
+			</div>
+	    </section>
+	</div>
+	
+	<!-- footer -->
+	<@netCommon.commonFooter />
+</div>
+
+<!-- 新增.模态框 -->
+<div class="modal fade" id="addModal" tabindex="-1" role="dialog"  aria-hidden="true">
+	<div class="modal-dialog">
+		<div class="modal-content">
+			<div class="modal-header">
+            	<h4 class="modal-title" >${I18n.user_add}</h4>
+         	</div>
+         	<div class="modal-body">
+				<form class="form-horizontal form" role="form" >
+                    <div class="form-group">
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.user_username}<font color="red">*</font></label>
+                        <div class="col-sm-8"><input type="text" class="form-control" name="username" placeholder="${I18n.system_please_input}${I18n.user_username}" maxlength="20" ></div>
+                    </div>
+                    <div class="form-group">
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.user_password}<font color="red">*</font></label>
+                        <div class="col-sm-8"><input type="text" class="form-control" name="password" placeholder="${I18n.system_please_input}${I18n.user_password}" maxlength="20" ></div>
+                    </div>
+                    <div class="form-group">
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.user_role}<font color="red">*</font></label>
+                        <div class="col-sm-10">
+                            <input type="radio" name="role" value="0" checked />${I18n.user_role_normal}
+                            &nbsp;&nbsp;&nbsp;&nbsp;
+                            <input type="radio" name="role" value="1" />${I18n.user_role_admin}
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.user_permission}<font color="black">*</font></label>
+                        <div class="col-sm-10">
+							<#if groupList?exists && groupList?size gt 0>
+								<#list groupList as item>
+                                    <input type="checkbox" name="permission" value="${item.id}" />${item.title}(${item.appName})<br>
+								</#list>
+							</#if>
+                        </div>
+                    </div>
+
+                    <hr>
+					<div class="form-group">
+						<div class="col-sm-offset-3 col-sm-6">
+							<button type="submit" class="btn btn-primary"  >${I18n.system_save}</button>
+							<button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
+						</div>
+					</div>
+
+				</form>
+         	</div>
+		</div>
+	</div>
+</div>
+
+<!-- 更新.模态框 -->
+<div class="modal fade" id="updateModal" tabindex="-1" role="dialog"  aria-hidden="true">
+	<div class="modal-dialog">
+		<div class="modal-content">
+			<div class="modal-header">
+            	<h4 class="modal-title" >${I18n.user_update}</h4>
+         	</div>
+         	<div class="modal-body">
+				<form class="form-horizontal form" role="form" >
+                    <div class="form-group">
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.user_username}<font color="red">*</font></label>
+                        <div class="col-sm-8"><input type="text" class="form-control" name="username" placeholder="${I18n.system_please_input}${I18n.user_username}" maxlength="20" readonly ></div>
+                    </div>
+                    <div class="form-group">
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.user_password}<font color="red">*</font></label>
+                        <div class="col-sm-8"><input type="text" class="form-control" name="password" placeholder="${I18n.user_password_update_placeholder}" maxlength="20" ></div>
+                    </div>
+                    <div class="form-group">
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.user_role}<font color="red">*</font></label>
+                        <div class="col-sm-10">
+                            <input type="radio" name="role" value="0" />${I18n.user_role_normal}
+                            &nbsp;&nbsp;&nbsp;&nbsp;
+                            <input type="radio" name="role" value="1" />${I18n.user_role_admin}
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label for="lastname" class="col-sm-2 control-label">${I18n.user_permission}<font color="black">*</font></label>
+                        <div class="col-sm-10">
+						<#if groupList?exists && groupList?size gt 0>
+							<#list groupList as item>
+                                <input type="checkbox" name="permission" value="${item.id}" />${item.title}(${item.appName})<br>
+							</#list>
+						</#if>
+                        </div>
+                    </div>
+
+					<hr>
+					<div class="form-group">
+                        <div class="col-sm-offset-3 col-sm-6">
+							<button type="submit" class="btn btn-primary"  >${I18n.system_save}</button>
+							<button type="button" class="btn btn-default" data-dismiss="modal">${I18n.system_cancel}</button>
+                            <input type="hidden" name="id" >
+						</div>
+					</div>
+
+				</form>
+         	</div>
+		</div>
+	</div>
+</div>
+
+<@netCommon.commonScript />
+<!-- DataTables -->
+<script src="${request.contextPath}/static/adminlte/bower_components/datatables.net/js/jquery.dataTables.min.js"></script>
+<script src="${request.contextPath}/static/adminlte/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
+<script src="${request.contextPath}/static/js/user.index.1.js"></script>
+</body>
+</html>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/Dockerfile b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/Dockerfile
new file mode 100644
index 0000000..7870ce7
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/Dockerfile
@@ -0,0 +1,13 @@
+FROM bladex/alpine-java:openjdk8-openj9_cn_slim
+
+MAINTAINER bladejava@qq.com
+
+RUN mkdir -p /blade/xxljob
+
+WORKDIR /blade/xxljob
+
+EXPOSE 7008
+
+ADD ./target/blade-xxljob.jar ./app.jar
+
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/pom.xml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/pom.xml
new file mode 100644
index 0000000..9a35ab3
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/pom.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-ops</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <artifactId>skjcmanager-xxljob</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <!--Blade-->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-common</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-cloud</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-launch</artifactId>
+        </dependency>
+        <!--Job-->
+        <dependency>
+            <groupId>com.xuxueli</groupId>
+            <artifactId>xxl-job-core</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>dockerfile-maven-plugin</artifactId>
+                <configuration>
+                    <username>${docker.username}</username>
+                    <password>${docker.password}</password>
+                    <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+                    <tag>${project.version}</tag>
+                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+                    <buildArgs>
+                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+                    </buildArgs>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+
+</project>
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/JobApplication.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/JobApplication.java
new file mode 100644
index 0000000..60307d5
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/JobApplication.java
@@ -0,0 +1,36 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.job.executor;
+
+import cn.gistack.common.constant.LauncherConstant;
+import org.springblade.core.cloud.client.BladeCloudApplication;
+import org.springblade.core.launch.BladeApplication;
+
+/**
+ * Job启动器
+ *
+ * @author Chill
+ */
+@BladeCloudApplication
+public class JobApplication {
+
+	public static void main(String[] args) {
+		BladeApplication.run(LauncherConstant.APPLICATION_XXLJOB_NAME, JobApplication.class, args);
+	}
+
+}
+
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/config/XxlJobConfig.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/config/XxlJobConfig.java
new file mode 100644
index 0000000..7df7683
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/config/XxlJobConfig.java
@@ -0,0 +1,74 @@
+package cn.gistack.job.executor.config;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * xxl-job config
+ *
+ * @author xuxueli 2017-04-28
+ */
+@Configuration(proxyBeanMethods = false)
+public class XxlJobConfig {
+	private final Logger logger = LoggerFactory.getLogger(XxlJobConfig.class);
+
+	@Value("${xxl.job.admin.addresses}")
+	private String adminAddresses;
+
+	@Value("${xxl.job.executor.appname}")
+	private String appName;
+
+	@Value("${xxl.job.executor.ip}")
+	private String ip;
+
+	@Value("${xxl.job.executor.port}")
+	private int port;
+
+	@Value("${xxl.job.accessToken}")
+	private String accessToken;
+
+	@Value("${xxl.job.executor.logpath}")
+	private String logPath;
+
+	@Value("${xxl.job.executor.logretentiondays}")
+	private int logRetentionDays;
+
+
+	@Bean
+	public XxlJobSpringExecutor xxlJobExecutor() {
+		logger.info(">>>>>>>>>>> xxl-job config init.");
+		XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+		xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+		xxlJobSpringExecutor.setAppName(appName);
+		xxlJobSpringExecutor.setIp(ip);
+		xxlJobSpringExecutor.setPort(port);
+		xxlJobSpringExecutor.setAccessToken(accessToken);
+		xxlJobSpringExecutor.setLogPath(logPath);
+		xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+		return xxlJobSpringExecutor;
+	}
+
+	/**
+	 * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
+	 *
+	 *      1、引入依赖:
+	 *          <dependency>
+	 *             <groupId>org.springframework.cloud</groupId>
+	 *             <artifactId>spring-cloud-commons</artifactId>
+	 *             <version>${version}</version>
+	 *         </dependency>
+	 *
+	 *      2、配置文件,或者容器启动变量
+	 *          spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
+	 *
+	 *      3、获取IP
+	 *          String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
+	 */
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/controller/TestController.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/controller/TestController.java
new file mode 100644
index 0000000..f1dbc97
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/controller/TestController.java
@@ -0,0 +1,23 @@
+package cn.gistack.job.executor.controller;
+
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 测试定时请求
+ *
+ * @author job
+ */
+@RestController
+@RequestMapping("/test")
+public class TestController {
+
+	@GetMapping("testRequest")
+	public R testRequest(String name) {
+		return R.data("我是测试请求" + name);
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SampleXxlJob.java b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SampleXxlJob.java
new file mode 100644
index 0000000..a5638bf
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/java/cn/gistack/job/executor/jobhandler/SampleXxlJob.java
@@ -0,0 +1,195 @@
+package cn.gistack.job.executor.jobhandler;
+
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.IJobHandler;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import com.xxl.job.core.log.XxlJobLogger;
+import com.xxl.job.core.util.ShardingUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * XxlJob开发示例(Bean模式)
+ * <p>
+ * 开发步骤:
+ * 1、在Spring Bean实例中,开发Job方法,方式格式要求为 "public ReturnT<String> execute(String param)"
+ * 2、为Job方法添加注解 "@XxlJob(value="自定义jobhandler名称", init = "JobHandler初始化方法", destroy = "JobHandler销毁方法")",注解value值对应的是调度中心新建任务的JobHandler属性的值。
+ * 3、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
+ *
+ * @author xuxueli
+ */
+@Component
+public class SampleXxlJob {
+	private static final Logger logger = LoggerFactory.getLogger(SampleXxlJob.class);
+
+
+	/**
+	 * 1、简单任务示例(Bean模式)
+	 */
+	@XxlJob("demoJobHandler")
+	public ReturnT<String> demoJobHandler(String param) throws Exception {
+		XxlJobLogger.log("XXL-JOB, Hello World.");
+
+		for (int i = 0; i < 5; i++) {
+			XxlJobLogger.log("beat at:" + i);
+			TimeUnit.SECONDS.sleep(2);
+		}
+		return ReturnT.SUCCESS;
+	}
+
+
+	/**
+	 * 2、分片广播任务
+	 */
+	@XxlJob("shardingJobHandler")
+	public ReturnT<String> shardingJobHandler(String param) throws Exception {
+
+		// 分片参数
+		ShardingUtil.ShardingVO shardingVO = ShardingUtil.getShardingVo();
+		XxlJobLogger.log("分片参数:当前分片序号 = {}, 总分片数 = {}", shardingVO.getIndex(), shardingVO.getTotal());
+
+		// 业务逻辑
+		for (int i = 0; i < shardingVO.getTotal(); i++) {
+			if (i == shardingVO.getIndex()) {
+				XxlJobLogger.log("第 {} 片, 命中分片开始处理", i);
+			} else {
+				XxlJobLogger.log("第 {} 片, 忽略", i);
+			}
+		}
+
+		return ReturnT.SUCCESS;
+	}
+
+
+	/**
+	 * 3、命令行任务
+	 */
+	@XxlJob("commandJobHandler")
+	public ReturnT<String> commandJobHandler(String param) throws Exception {
+		String command = param;
+		int exitValue = -1;
+
+		BufferedReader bufferedReader = null;
+		try {
+			// command process
+			Process process = Runtime.getRuntime().exec(command);
+			BufferedInputStream bufferedInputStream = new BufferedInputStream(process.getInputStream());
+			bufferedReader = new BufferedReader(new InputStreamReader(bufferedInputStream));
+
+			// command log
+			String line;
+			while ((line = bufferedReader.readLine()) != null) {
+				XxlJobLogger.log(line);
+			}
+
+			// command exit
+			process.waitFor();
+			exitValue = process.exitValue();
+		} catch (Exception e) {
+			XxlJobLogger.log(e);
+		} finally {
+			if (bufferedReader != null) {
+				bufferedReader.close();
+			}
+		}
+
+		if (exitValue == 0) {
+			return IJobHandler.SUCCESS;
+		} else {
+			return new ReturnT<String>(IJobHandler.FAIL.getCode(), "command exit value(" + exitValue + ") is failed");
+		}
+	}
+
+
+	/**
+	 * 4、跨平台Http任务
+	 */
+	@XxlJob("httpJobHandler")
+	public ReturnT<String> httpJobHandler(String param) throws Exception {
+
+		// request
+		HttpURLConnection connection = null;
+		BufferedReader bufferedReader = null;
+		try {
+			// connection
+			URL realUrl = new URL(param);
+			connection = (HttpURLConnection) realUrl.openConnection();
+
+			// connection setting
+			connection.setRequestMethod("GET");
+			connection.setDoOutput(true);
+			connection.setDoInput(true);
+			connection.setUseCaches(false);
+			connection.setReadTimeout(5 * 1000);
+			connection.setConnectTimeout(3 * 1000);
+			connection.setRequestProperty("connection", "Keep-Alive");
+			connection.setRequestProperty("Content-Type", "application/json;charset=UTF-8");
+			connection.setRequestProperty("Accept-Charset", "application/json;charset=UTF-8");
+
+			// do connection
+			connection.connect();
+
+			//Map<String, List<String>> map = connection.getHeaderFields();
+
+			// valid StatusCode
+			int statusCode = connection.getResponseCode();
+			if (statusCode != 200) {
+				throw new RuntimeException("Http Request StatusCode(" + statusCode + ") Invalid.");
+			}
+
+			// result
+			bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
+			StringBuilder result = new StringBuilder();
+			String line;
+			while ((line = bufferedReader.readLine()) != null) {
+				result.append(line);
+			}
+			String responseMsg = result.toString();
+
+			XxlJobLogger.log(responseMsg);
+			return ReturnT.SUCCESS;
+		} catch (Exception e) {
+			XxlJobLogger.log(e);
+			return ReturnT.FAIL;
+		} finally {
+			try {
+				if (bufferedReader != null) {
+					bufferedReader.close();
+				}
+				if (connection != null) {
+					connection.disconnect();
+				}
+			} catch (Exception e2) {
+				XxlJobLogger.log(e2);
+			}
+		}
+
+	}
+
+	/**
+	 * 5、生命周期任务示例:任务初始化与销毁时,支持自定义相关逻辑;
+	 */
+	@XxlJob(value = "demoJobHandler2", init = "init", destroy = "destroy")
+	public ReturnT<String> demoJobHandler2(String param) throws Exception {
+		XxlJobLogger.log("XXL-JOB, Hello World.");
+		return ReturnT.SUCCESS;
+	}
+
+	public void init() {
+		logger.info("init");
+	}
+
+	public void destroy() {
+		logger.info("destory");
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/resources/application.yml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/resources/application.yml
new file mode 100644
index 0000000..f57c8c7
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/resources/application.yml
@@ -0,0 +1,21 @@
+server:
+  port: 7008
+
+logging:
+  config: classpath:logback.xml
+
+spring:
+  main:
+    allow-circular-references: true
+
+xxl:
+  job:
+    accessToken: ''
+    admin:
+      addresses: http://127.0.0.1:7009/xxl-job-admin
+    executor:
+      appname: blade-xxljob
+      ip: 127.0.0.1
+      logpath: ../data/applogs/xxl-job/jobhandler
+      logretentiondays: -1
+      port: 7018
diff --git a/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/resources/logback.xml b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/resources/logback.xml
new file mode 100644
index 0000000..43b344f
--- /dev/null
+++ b/skjcmanager/skjcmanager-ops/skjcmanager-xxljob/src/main/resources/logback.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="false" debug="false">
+
+    <contextName>logback</contextName>
+    <property name="log.path" value="../data/applogs/xxl-job/xxl-job-executor-sample-springboot.log"/>
+
+    <!-- 彩色日志依赖的渲染类 -->
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
+    <conversionRule conversionWord="wex"
+                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
+    <conversionRule conversionWord="wEx"
+                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+    <!-- 彩色日志格式 -->
+    <property name="CONSOLE_LOG_PATTERN"
+              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
+    <!-- 控制台输出 -->
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+            <charset>utf8</charset>
+        </encoder>
+    </appender>
+
+    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
+            </pattern>
+        </encoder>
+    </appender>
+
+    <root level="info">
+        <appender-ref ref="console"/>
+        <appender-ref ref="file"/>
+    </root>
+
+</configuration>
diff --git a/skjcmanager/skjcmanager-plugin-api/README.md b/skjcmanager/skjcmanager-plugin-api/README.md
new file mode 100644
index 0000000..4388a98
--- /dev/null
+++ b/skjcmanager/skjcmanager-plugin-api/README.md
@@ -0,0 +1,15 @@
+## 目录说明
+- 此目录为插件系统专用
+- 插件为商业用户独立开发维护并上架至应用市场
+- 获得插件后请根据提供的文档复制到对应目录并刷新工程构建便可生效
+
+## 市场简介
+- 随着商业用户的增加,需求也在不断增加,我们相信任何一个框架的功能都无法做到满足所有人的需求
+- 为了满足商业用户的大量需求,需要一个平台来综合处理,经过一年的努力调研,我们的平台终于来了
+- BladeX 应用市场是官方架设的一个平台,邀请独立开发的商业用户与官方共同构建生态合作共赢
+- 独立开发的商业用户将自己基于BladeX拓展的插件应用提交给官方审核上架获得额外收入
+- 有需求的商业用户就能在应用市场更方便更省钱更省时地拿到所需要的功能模块
+- 在应用市场您可以找到各种拓展增强后的插件与应用,也可以很方便地集成到BladeX架构内
+- 我们的愿景是打造一个庞大的生态圈,相信在用户与官方的默契配合下,BladeX可以走得更远
+- 市场地址:https://bladex.vip/#/market
+- 入驻须知:https://bladex.vip/#/market/notice
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-plugin-api/pom.xml b/skjcmanager/skjcmanager-plugin-api/pom.xml
new file mode 100644
index 0000000..1a9d1af
--- /dev/null
+++ b/skjcmanager/skjcmanager-plugin-api/pom.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-plugin-api</artifactId>
+    <name>${project.artifactId}</name>
+    <version>3.0.1.RELEASE</version>
+    <packaging>pom</packaging>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                    <finalName>${project.name}</finalName>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-plugin/README.md b/skjcmanager/skjcmanager-plugin/README.md
new file mode 100644
index 0000000..4388a98
--- /dev/null
+++ b/skjcmanager/skjcmanager-plugin/README.md
@@ -0,0 +1,15 @@
+## 目录说明
+- 此目录为插件系统专用
+- 插件为商业用户独立开发维护并上架至应用市场
+- 获得插件后请根据提供的文档复制到对应目录并刷新工程构建便可生效
+
+## 市场简介
+- 随着商业用户的增加,需求也在不断增加,我们相信任何一个框架的功能都无法做到满足所有人的需求
+- 为了满足商业用户的大量需求,需要一个平台来综合处理,经过一年的努力调研,我们的平台终于来了
+- BladeX 应用市场是官方架设的一个平台,邀请独立开发的商业用户与官方共同构建生态合作共赢
+- 独立开发的商业用户将自己基于BladeX拓展的插件应用提交给官方审核上架获得额外收入
+- 有需求的商业用户就能在应用市场更方便更省钱更省时地拿到所需要的功能模块
+- 在应用市场您可以找到各种拓展增强后的插件与应用,也可以很方便地集成到BladeX架构内
+- 我们的愿景是打造一个庞大的生态圈,相信在用户与官方的默契配合下,BladeX可以走得更远
+- 市场地址:https://bladex.vip/#/market
+- 入驻须知:https://bladex.vip/#/market/notice
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-plugin/pom.xml b/skjcmanager/skjcmanager-plugin/pom.xml
new file mode 100644
index 0000000..446c569
--- /dev/null
+++ b/skjcmanager/skjcmanager-plugin/pom.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-plugin</artifactId>
+    <name>${project.artifactId}</name>
+    <version>3.0.1.RELEASE</version>
+    <packaging>pom</packaging>
+
+</project>
diff --git a/skjcmanager/skjcmanager-service-api/pom.xml b/skjcmanager/skjcmanager-service-api/pom.xml
new file mode 100644
index 0000000..813b31b
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/pom.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-service-api</artifactId>
+    <name>${project.artifactId}</name>
+    <version>3.0.1.RELEASE</version>
+    <packaging>pom</packaging>
+    <description>BladeX 微服务API集合</description>
+
+    <modules>
+        <module>skjcmanager-desk-api</module>
+        <module>skjcmanager-dict-api</module>
+        <module>skjcmanager-scope-api</module>
+        <module>skjcmanager-system-api</module>
+        <module>skjcmanager-user-api</module>
+    </modules>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-mybatis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-tenant</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>io.swagger</groupId>
+                    <artifactId>swagger-models</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>io.swagger</groupId>
+            <artifactId>swagger-models</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-auto</artifactId>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                    <finalName>${project.name}</finalName>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/pom.xml b/skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/pom.xml
new file mode 100644
index 0000000..6c0823e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/pom.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-service-api</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-desk-api</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+</project>
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/src/main/java/cn/gistack/desk/entity/Notice.java b/skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/src/main/java/cn/gistack/desk/entity/Notice.java
new file mode 100644
index 0000000..0d33c0e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/src/main/java/cn/gistack/desk/entity/Notice.java
@@ -0,0 +1,64 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.desk.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tenant.mp.TenantEntity;
+
+import java.util.Date;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_notice")
+@EqualsAndHashCode(callSuper = true)
+public class Notice extends TenantEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 标题
+	 */
+	@ApiModelProperty(value = "标题")
+	private String title;
+
+	/**
+	 * 通知类型
+	 */
+	@ApiModelProperty(value = "通知类型")
+	private Integer category;
+
+	/**
+	 * 发布日期
+	 */
+	@ApiModelProperty(value = "发布日期")
+	private Date releaseTime;
+
+	/**
+	 * 内容
+	 */
+	@ApiModelProperty(value = "内容")
+	private String content;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/src/main/java/cn/gistack/desk/feign/INoticeClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/src/main/java/cn/gistack/desk/feign/INoticeClient.java
new file mode 100644
index 0000000..371c868
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/src/main/java/cn/gistack/desk/feign/INoticeClient.java
@@ -0,0 +1,49 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.desk.feign;
+
+import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.core.mp.support.BladePage;
+import cn.gistack.desk.entity.Notice;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * Notice Feign接口类
+ *
+ * @author Chill
+ */
+@FeignClient(
+	value = AppConstant.APPLICATION_DESK_NAME
+)
+public interface INoticeClient {
+
+	String API_PREFIX = "/client";
+	String TOP = API_PREFIX + "/top";
+
+	/**
+	 * 获取notice列表
+	 *
+	 * @param current
+	 * @param size
+	 * @return
+	 */
+	@GetMapping(TOP)
+	BladePage<Notice> top(@RequestParam("current") Integer current, @RequestParam("size") Integer size);
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/src/main/java/cn/gistack/desk/vo/NoticeVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/src/main/java/cn/gistack/desk/vo/NoticeVO.java
new file mode 100644
index 0000000..daa7de9
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-desk-api/src/main/java/cn/gistack/desk/vo/NoticeVO.java
@@ -0,0 +1,23 @@
+package cn.gistack.desk.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.desk.entity.Notice;
+
+/**
+ * 通知公告视图类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class NoticeVO extends Notice {
+
+	@ApiModelProperty(value = "通知类型名")
+	private String categoryName;
+
+	@ApiModelProperty(value = "租户编号")
+	private String tenantId;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/pom.xml b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/pom.xml
new file mode 100644
index 0000000..6b352c8
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/pom.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-service-api</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-dict-api</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-cache</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/cache/DictBizCache.java b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/cache/DictBizCache.java
new file mode 100644
index 0000000..b3b6ba0
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/cache/DictBizCache.java
@@ -0,0 +1,133 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.cache;
+
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.core.tool.utils.StringPool;
+import cn.gistack.system.entity.DictBiz;
+import cn.gistack.system.enums.DictBizEnum;
+import cn.gistack.system.feign.IDictBizClient;
+
+import java.util.List;
+
+import static org.springblade.core.cache.constant.CacheConstant.DICT_CACHE;
+
+/**
+ * 业务字典缓存工具类
+ *
+ * @author Chill
+ */
+public class DictBizCache {
+
+	private static final String DICT_ID = "dictBiz:id";
+	private static final String DICT_VALUE = "dictBiz:value";
+	private static final String DICT_LIST = "dictBiz:list";
+
+	private static IDictBizClient dictClient;
+
+	private static IDictBizClient getDictClient() {
+		if (dictClient == null) {
+			dictClient = SpringUtil.getBean(IDictBizClient.class);
+		}
+		return dictClient;
+	}
+
+	/**
+	 * 获取字典实体
+	 *
+	 * @param id 主键
+	 * @return DictBiz
+	 */
+	public static DictBiz getById(Long id) {
+		String keyPrefix = DICT_ID.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON);
+		return CacheUtil.get(DICT_CACHE, keyPrefix, id, () -> {
+			R<DictBiz> result = getDictClient().getById(id);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取字典值
+	 *
+	 * @param code    字典编号枚举
+	 * @param dictKey Integer型字典键
+	 * @return String
+	 */
+	public static String getValue(DictBizEnum code, Integer dictKey) {
+		return getValue(code.getName(), dictKey);
+	}
+
+
+	/**
+	 * 获取字典值
+	 *
+	 * @param code    字典编号
+	 * @param dictKey Integer型字典键
+	 * @return String
+	 */
+	public static String getValue(String code, Integer dictKey) {
+		String keyPrefix = DICT_VALUE.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON);
+		return CacheUtil.get(DICT_CACHE, keyPrefix + code + StringPool.COLON, String.valueOf(dictKey), () -> {
+			R<String> result = getDictClient().getValue(code, String.valueOf(dictKey));
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取字典值
+	 *
+	 * @param code    字典编号枚举
+	 * @param dictKey String型字典键
+	 * @return String
+	 */
+	public static String getValue(DictBizEnum code, String dictKey) {
+		return getValue(code.getName(), dictKey);
+	}
+
+	/**
+	 * 获取字典值
+	 *
+	 * @param code    字典编号
+	 * @param dictKey String型字典键
+	 * @return String
+	 */
+	public static String getValue(String code, String dictKey) {
+		String keyPrefix = DICT_VALUE.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON);
+		return CacheUtil.get(DICT_CACHE, keyPrefix + code + StringPool.COLON, dictKey, () -> {
+			R<String> result = getDictClient().getValue(code, dictKey);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取字典集合
+	 *
+	 * @param code 字典编号
+	 * @return List<DictBiz>
+	 */
+	public static List<DictBiz> getList(String code) {
+		String keyPrefix = DICT_LIST.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON);
+		return CacheUtil.get(DICT_CACHE, keyPrefix, code, () -> {
+			R<List<DictBiz>> result = getDictClient().getList(code);
+			return result.getData();
+		});
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/cache/DictCache.java b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/cache/DictCache.java
new file mode 100644
index 0000000..f869290
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/cache/DictCache.java
@@ -0,0 +1,160 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.cache;
+
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.core.tool.utils.StringPool;
+import cn.gistack.system.entity.Dict;
+import cn.gistack.system.enums.DictEnum;
+import cn.gistack.system.feign.IDictClient;
+
+import java.util.List;
+import java.util.Optional;
+
+import static org.springblade.core.cache.constant.CacheConstant.DICT_CACHE;
+
+/**
+ * 字典缓存工具类
+ *
+ * @author Chill
+ */
+public class DictCache {
+
+	private static final String DICT_ID = "dict:id:";
+	private static final String DICT_KEY = "dict:key:";
+	private static final String DICT_VALUE = "dict:value:";
+	private static final String DICT_LIST = "dict:list:";
+
+	private static final Boolean TENANT_MODE = Boolean.FALSE;
+
+	private static IDictClient dictClient;
+
+	private static IDictClient getDictClient() {
+		if (dictClient == null) {
+			dictClient = SpringUtil.getBean(IDictClient.class);
+		}
+		return dictClient;
+	}
+
+	/**
+	 * 获取字典实体
+	 *
+	 * @param id 主键
+	 * @return Dict
+	 */
+	public static Dict getById(Long id) {
+		return CacheUtil.get(DICT_CACHE, DICT_ID, id, () -> {
+			R<Dict> result = getDictClient().getById(id);
+			return result.getData();
+		}, TENANT_MODE);
+	}
+
+	/**
+	 * 获取字典值
+	 *
+	 * @param code      字典编号枚举
+	 * @param dictValue 字典值
+	 * @return String
+	 */
+	public static String getKey(DictEnum code, String dictValue) {
+		return getKey(code.getName(), dictValue);
+	}
+
+	/**
+	 * 获取字典键
+	 *
+	 * @param code      字典编号
+	 * @param dictValue 字典值
+	 * @return String
+	 */
+	public static String getKey(String code, String dictValue) {
+		return CacheUtil.get(DICT_CACHE, DICT_KEY + code + StringPool.COLON, dictValue, () -> {
+			List<Dict> list = getList(code);
+			Optional<String> key = list.stream().filter(
+				dict -> dict.getDictValue().equalsIgnoreCase(dictValue)
+			).map(Dict::getDictKey).findFirst();
+			return key.orElse(StringPool.EMPTY);
+		}, TENANT_MODE);
+	}
+
+	/**
+	 * 获取字典值
+	 *
+	 * @param code    字典编号枚举
+	 * @param dictKey Integer型字典键
+	 * @return String
+	 */
+	public static String getValue(DictEnum code, Integer dictKey) {
+		return getValue(code.getName(), dictKey);
+	}
+
+
+	/**
+	 * 获取字典值
+	 *
+	 * @param code    字典编号
+	 * @param dictKey Integer型字典键
+	 * @return String
+	 */
+	public static String getValue(String code, Integer dictKey) {
+		return CacheUtil.get(DICT_CACHE, DICT_VALUE + code + StringPool.COLON, String.valueOf(dictKey), () -> {
+			R<String> result = getDictClient().getValue(code, String.valueOf(dictKey));
+			return result.getData();
+		}, TENANT_MODE);
+	}
+
+	/**
+	 * 获取字典值
+	 *
+	 * @param code    字典编号枚举
+	 * @param dictKey String型字典键
+	 * @return String
+	 */
+	public static String getValue(DictEnum code, String dictKey) {
+		return getValue(code.getName(), dictKey);
+	}
+
+	/**
+	 * 获取字典值
+	 *
+	 * @param code    字典编号
+	 * @param dictKey String型字典键
+	 * @return String
+	 */
+	public static String getValue(String code, String dictKey) {
+		return CacheUtil.get(DICT_CACHE, DICT_VALUE + code + StringPool.COLON, dictKey, () -> {
+			R<String> result = getDictClient().getValue(code, dictKey);
+			return result.getData();
+		}, TENANT_MODE);
+	}
+
+	/**
+	 * 获取字典集合
+	 *
+	 * @param code 字典编号
+	 * @return List<Dict>
+	 */
+	public static List<Dict> getList(String code) {
+		return CacheUtil.get(DICT_CACHE, DICT_LIST, code, () -> {
+			R<List<Dict>> result = getDictClient().getList(code);
+			return result.getData();
+		}, TENANT_MODE);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/constant/DictConstant.java b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/constant/DictConstant.java
new file mode 100644
index 0000000..6400178
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/constant/DictConstant.java
@@ -0,0 +1,38 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.constant;
+
+/**
+ * 字典常量.
+ *
+ * @author zhuangqian
+ */
+public interface DictConstant {
+
+	String SEX_CODE = "sex";
+
+	String NOTICE_CODE = "notice";
+
+	String MENU_CATEGORY_CODE = "menu_category";
+
+	String BUTTON_FUNC_CODE = "button_func";
+
+	String YES_NO_CODE = "yes_no";
+
+	String FLOW_CATEGORY_CODE = "flow_category";
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/dto/DictDTO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/dto/DictDTO.java
new file mode 100644
index 0000000..e307358
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/dto/DictDTO.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.dto;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.system.entity.Dict;
+
+/**
+ * 数据传输对象实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class DictDTO extends Dict {
+	private static final long serialVersionUID = 1L;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/entity/Dict.java b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/entity/Dict.java
new file mode 100644
index 0000000..fc04a2b
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/entity/Dict.java
@@ -0,0 +1,102 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_dict")
+@ApiModel(value = "Dict对象", description = "Dict对象")
+public class Dict implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "主键")
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
+
+	/**
+	 * 父主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "父主键")
+	private Long parentId;
+
+	/**
+	 * 字典码
+	 */
+	@ApiModelProperty(value = "字典码")
+	private String code;
+
+	/**
+	 * 字典值
+	 */
+	@ApiModelProperty(value = "字典值")
+	private String dictKey;
+
+	/**
+	 * 字典名称
+	 */
+	@ApiModelProperty(value = "字典名称")
+	private String dictValue;
+
+	/**
+	 * 排序
+	 */
+	@ApiModelProperty(value = "排序")
+	private Integer sort;
+
+	/**
+	 * 字典备注
+	 */
+	@ApiModelProperty(value = "字典备注")
+	private String remark;
+
+	/**
+	 * 是否已封存
+	 */
+	@ApiModelProperty(value = "是否已封存")
+	private Integer isSealed;
+
+	/**
+	 * 是否已删除
+	 */
+	@TableLogic
+	@ApiModelProperty(value = "是否已删除")
+	private Integer isDeleted;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/entity/DictBiz.java b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/entity/DictBiz.java
new file mode 100644
index 0000000..31669c7
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/entity/DictBiz.java
@@ -0,0 +1,108 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_dict_biz")
+@ApiModel(value = "DictBiz对象", description = "DictBiz对象")
+public class DictBiz implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "主键")
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
+
+	/**
+	 * 租户ID
+	 */
+	@ApiModelProperty(value = "租户ID")
+	private String tenantId;
+
+	/**
+	 * 父主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "父主键")
+	private Long parentId;
+
+	/**
+	 * 字典码
+	 */
+	@ApiModelProperty(value = "字典码")
+	private String code;
+
+	/**
+	 * 字典值
+	 */
+	@ApiModelProperty(value = "字典值")
+	private String dictKey;
+
+	/**
+	 * 字典名称
+	 */
+	@ApiModelProperty(value = "字典名称")
+	private String dictValue;
+
+	/**
+	 * 排序
+	 */
+	@ApiModelProperty(value = "排序")
+	private Integer sort;
+
+	/**
+	 * 字典备注
+	 */
+	@ApiModelProperty(value = "字典备注")
+	private String remark;
+
+	/**
+	 * 是否已封存
+	 */
+	@ApiModelProperty(value = "是否已封存")
+	private Integer isSealed;
+
+	/**
+	 * 是否已删除
+	 */
+	@TableLogic
+	@ApiModelProperty(value = "是否已删除")
+	private Integer isDeleted;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/enums/DictBizEnum.java b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/enums/DictBizEnum.java
new file mode 100644
index 0000000..57a7969
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/enums/DictBizEnum.java
@@ -0,0 +1,39 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 业务字典枚举类
+ *
+ * @author Chill
+ */
+@Getter
+@AllArgsConstructor
+public enum DictBizEnum {
+
+	/**
+	 * 测试
+	 */
+	TEST("test"),
+	;
+
+	final String name;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/enums/DictEnum.java b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/enums/DictEnum.java
new file mode 100644
index 0000000..1ec47a7
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/enums/DictEnum.java
@@ -0,0 +1,95 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 系统字典枚举类
+ *
+ * @author Chill
+ */
+@Getter
+@AllArgsConstructor
+public enum DictEnum {
+
+	/**
+	 * 性别
+	 */
+	SEX("sex"),
+	/**
+	 * 通知类型
+	 */
+	NOTICE("notice"),
+	/**
+	 * 菜单类型
+	 */
+	MENU_CATEGORY("menu_category"),
+	/**
+	 * 按钮功能
+	 */
+	BUTTON_FUNC("button_func"),
+	/**
+	 * 是否
+	 */
+	YES_NO("yes_no"),
+	/**
+	 * 流程类型
+	 */
+	FLOW("flow"),
+	/**
+	 * 机构类型
+	 */
+	ORG_CATEGORY("org_category"),
+	/**
+	 * 数据权限
+	 */
+	DATA_SCOPE_TYPE("data_scope_type"),
+	/**
+	 * 接口权限
+	 */
+	API_SCOPE_TYPE("api_scope_type"),
+	/**
+	 * 权限类型
+	 */
+	SCOPE_CATEGORY("scope_category"),
+	/**
+	 * 对象存储类型
+	 */
+	OSS("oss"),
+	/**
+	 * 短信服务类型
+	 */
+	SMS("sms"),
+	/**
+	 * 岗位类型
+	 */
+	POST_CATEGORY("post_category"),
+	/**
+	 * 行政区划
+	 */
+	REGION("region"),
+	/**
+	 * 用户平台
+	 */
+	USER_TYPE("user_type"),
+	;
+
+	final String name;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictBizClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictBizClient.java
new file mode 100644
index 0000000..a28cee8
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictBizClient.java
@@ -0,0 +1,73 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.feign;
+
+
+import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.core.tool.api.R;
+import cn.gistack.system.entity.DictBiz;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * Feign接口类
+ *
+ * @author Chill
+ */
+@FeignClient(
+	value = AppConstant.APPLICATION_SYSTEM_NAME,
+	fallback = IDictBizClientFallback.class
+)
+public interface IDictBizClient {
+
+	String API_PREFIX = "/client";
+	String GET_BY_ID = API_PREFIX + "/dict-biz/get-by-id";
+	String GET_VALUE = API_PREFIX + "/dict-biz/get-value";
+	String GET_LIST = API_PREFIX + "/dict-biz/get-list";
+
+	/**
+	 * 获取字典实体
+	 *
+	 * @param id 主键
+	 * @return
+	 */
+	@GetMapping(GET_BY_ID)
+	R<DictBiz> getById(@RequestParam("id") Long id);
+
+	/**
+	 * 获取字典表对应值
+	 *
+	 * @param code    字典编号
+	 * @param dictKey 字典序号
+	 * @return
+	 */
+	@GetMapping(GET_VALUE)
+	R<String> getValue(@RequestParam("code") String code, @RequestParam("dictKey") String dictKey);
+
+	/**
+	 * 获取字典表
+	 *
+	 * @param code 字典编号
+	 * @return
+	 */
+	@GetMapping(GET_LIST)
+	R<List<DictBiz>> getList(@RequestParam("code") String code);
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictBizClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictBizClientFallback.java
new file mode 100644
index 0000000..9b243fb
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictBizClientFallback.java
@@ -0,0 +1,46 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.feign;
+
+import org.springblade.core.tool.api.R;
+import cn.gistack.system.entity.DictBiz;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * Feign失败配置
+ *
+ * @author Chill
+ */
+@Component
+public class IDictBizClientFallback implements IDictBizClient {
+	@Override
+	public R<DictBiz> getById(Long id) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<String> getValue(String code, String dictKey) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<List<DictBiz>> getList(String code) {
+		return R.fail("获取数据失败");
+	}
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictClient.java
new file mode 100644
index 0000000..6f3746d
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictClient.java
@@ -0,0 +1,73 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.feign;
+
+
+import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.core.tool.api.R;
+import cn.gistack.system.entity.Dict;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * Feign接口类
+ *
+ * @author Chill
+ */
+@FeignClient(
+	value = AppConstant.APPLICATION_SYSTEM_NAME,
+	fallback = IDictClientFallback.class
+)
+public interface IDictClient {
+
+	String API_PREFIX = "/client";
+	String GET_BY_ID = API_PREFIX + "/dict/get-by-id";
+	String GET_VALUE = API_PREFIX + "/dict/get-value";
+	String GET_LIST = API_PREFIX + "/dict/get-list";
+
+	/**
+	 * 获取字典实体
+	 *
+	 * @param id 主键
+	 * @return
+	 */
+	@GetMapping(GET_BY_ID)
+	R<Dict> getById(@RequestParam("id") Long id);
+
+	/**
+	 * 获取字典表对应值
+	 *
+	 * @param code    字典编号
+	 * @param dictKey 字典序号
+	 * @return
+	 */
+	@GetMapping(GET_VALUE)
+	R<String> getValue(@RequestParam("code") String code, @RequestParam("dictKey") String dictKey);
+
+	/**
+	 * 获取字典表
+	 *
+	 * @param code 字典编号
+	 * @return
+	 */
+	@GetMapping(GET_LIST)
+	R<List<Dict>> getList(@RequestParam("code") String code);
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictClientFallback.java
new file mode 100644
index 0000000..6a8ea65
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/feign/IDictClientFallback.java
@@ -0,0 +1,46 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.feign;
+
+import org.springblade.core.tool.api.R;
+import cn.gistack.system.entity.Dict;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * Feign失败配置
+ *
+ * @author Chill
+ */
+@Component
+public class IDictClientFallback implements IDictClient {
+	@Override
+	public R<Dict> getById(Long id) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<String> getValue(String code, String dictKey) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<List<Dict>> getList(String code) {
+		return R.fail("获取数据失败");
+	}
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/vo/DictBizVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/vo/DictBizVO.java
new file mode 100644
index 0000000..04c8e13
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/vo/DictBizVO.java
@@ -0,0 +1,71 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tool.node.INode;
+import cn.gistack.system.entity.DictBiz;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "DictBizVO对象", description = "DictBizVO对象")
+public class DictBizVO extends DictBiz implements INode<DictBizVO> {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 主键ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long id;
+
+	/**
+	 * 父节点ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long parentId;
+
+	/**
+	 * 子孙节点
+	 */
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	private List<DictBizVO> children;
+
+	@Override
+	public List<DictBizVO> getChildren() {
+		if (this.children == null) {
+			this.children = new ArrayList<>();
+		}
+		return this.children;
+	}
+
+	/**
+	 * 上级字典
+	 */
+	private String parentName;
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/vo/DictVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/vo/DictVO.java
new file mode 100644
index 0000000..9b8ea77
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-dict-api/src/main/java/cn/gistack/system/vo/DictVO.java
@@ -0,0 +1,71 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tool.node.INode;
+import cn.gistack.system.entity.Dict;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "DictVO对象", description = "DictVO对象")
+public class DictVO extends Dict implements INode<DictVO> {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 主键ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long id;
+
+	/**
+	 * 父节点ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long parentId;
+
+	/**
+	 * 子孙节点
+	 */
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	private List<DictVO> children;
+
+	@Override
+	public List<DictVO> getChildren() {
+		if (this.children == null) {
+			this.children = new ArrayList<>();
+		}
+		return this.children;
+	}
+
+	/**
+	 * 上级字典
+	 */
+	private String parentName;
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/pom.xml b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/pom.xml
new file mode 100644
index 0000000..ec10363
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/pom.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-service-api</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-scope-api</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-secure</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-cache</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-datascope</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/cache/ApiScopeCache.java b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/cache/ApiScopeCache.java
new file mode 100644
index 0000000..70eabd5
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/cache/ApiScopeCache.java
@@ -0,0 +1,77 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.cache;
+
+import cn.gistack.system.feign.IApiScopeClient;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.core.tool.utils.StringPool;
+
+import java.util.List;
+
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
+/**
+ * 接口权限缓存
+ *
+ * @author Chill
+ */
+public class ApiScopeCache {
+
+	private static final String SCOPE_CACHE_CODE = "apiScope:code:";
+
+	private static IApiScopeClient apiScopeClient;
+
+	private static IApiScopeClient getApiScopeClient() {
+		if (apiScopeClient == null) {
+			apiScopeClient = SpringUtil.getBean(IApiScopeClient.class);
+		}
+		return apiScopeClient;
+	}
+
+	/**
+	 * 获取接口权限地址
+	 *
+	 * @param roleId 角色id
+	 * @return permissions
+	 */
+	public static List<String> permissionPath(String roleId) {
+		List<String> permissions = CacheUtil.get(SYS_CACHE, SCOPE_CACHE_CODE, roleId, List.class, Boolean.FALSE);
+		if (permissions == null) {
+			permissions = getApiScopeClient().permissionPath(roleId);
+			CacheUtil.put(SYS_CACHE, SCOPE_CACHE_CODE, roleId, permissions);
+		}
+		return permissions;
+	}
+
+	/**
+	 * 获取接口权限信息
+	 *
+	 * @param permission 权限编号
+	 * @param roleId     角色id
+	 * @return permissions
+	 */
+	public static List<String> permissionCode(String permission, String roleId) {
+		List<String> permissions = CacheUtil.get(SYS_CACHE, SCOPE_CACHE_CODE, permission + StringPool.COLON + roleId, List.class, Boolean.FALSE);
+		if (permissions == null) {
+			permissions = getApiScopeClient().permissionCode(permission, roleId);
+			CacheUtil.put(SYS_CACHE, SCOPE_CACHE_CODE, permission + StringPool.COLON + roleId, permissions);
+		}
+		return permissions;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/cache/DataScopeCache.java b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/cache/DataScopeCache.java
new file mode 100644
index 0000000..ef6e98d
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/cache/DataScopeCache.java
@@ -0,0 +1,96 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.cache;
+
+import cn.gistack.system.feign.IDataScopeClient;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.datascope.model.DataScopeModel;
+import org.springblade.core.tool.utils.CollectionUtil;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.core.tool.utils.StringPool;
+import org.springblade.core.tool.utils.StringUtil;
+
+import java.util.List;
+
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
+/**
+ * 数据权限缓存
+ *
+ * @author Chill
+ */
+public class DataScopeCache {
+
+	private static final String SCOPE_CACHE_CODE = "dataScope:code:";
+	private static final String SCOPE_CACHE_CLASS = "dataScope:class:";
+	private static final String DEPT_CACHE_ANCESTORS = "dept:ancestors:";
+
+	private static IDataScopeClient dataScopeClient;
+
+	private static IDataScopeClient getDataScopeClient() {
+		if (dataScopeClient == null) {
+			dataScopeClient = SpringUtil.getBean(IDataScopeClient.class);
+		}
+		return dataScopeClient;
+	}
+
+	/**
+	 * 获取数据权限
+	 *
+	 * @param mapperId 数据权限mapperId
+	 * @param roleId   用户角色集合
+	 * @return DataScopeModel
+	 */
+	public static DataScopeModel getDataScopeByMapper(String mapperId, String roleId) {
+		DataScopeModel dataScope = CacheUtil.get(SYS_CACHE, SCOPE_CACHE_CLASS, mapperId + StringPool.COLON + roleId, DataScopeModel.class, Boolean.FALSE);
+		if (dataScope == null || !dataScope.getSearched()) {
+			dataScope = getDataScopeClient().getDataScopeByMapper(mapperId, roleId);
+			CacheUtil.put(SYS_CACHE, SCOPE_CACHE_CLASS, mapperId + StringPool.COLON + roleId, dataScope);
+		}
+		return StringUtil.isNotBlank(dataScope.getResourceCode()) ? dataScope : null;
+	}
+
+	/**
+	 * 获取数据权限
+	 *
+	 * @param code 数据权限资源编号
+	 * @return DataScopeModel
+	 */
+	public static DataScopeModel getDataScopeByCode(String code) {
+		DataScopeModel dataScope = CacheUtil.get(SYS_CACHE, SCOPE_CACHE_CODE, code, DataScopeModel.class, Boolean.FALSE);
+		if (dataScope == null || !dataScope.getSearched()) {
+			dataScope = getDataScopeClient().getDataScopeByCode(code);
+			CacheUtil.put(SYS_CACHE, SCOPE_CACHE_CODE, code, dataScope);
+		}
+		return StringUtil.isNotBlank(dataScope.getResourceCode()) ? dataScope : null;
+	}
+
+	/**
+	 * 获取部门子级
+	 *
+	 * @param deptId 部门id
+	 * @return deptIds
+	 */
+	public static List<Long> getDeptAncestors(Long deptId) {
+		List ancestors = CacheUtil.get(SYS_CACHE, DEPT_CACHE_ANCESTORS, deptId, List.class);
+		if (CollectionUtil.isEmpty(ancestors)) {
+			ancestors = getDataScopeClient().getDeptAncestors(deptId);
+			CacheUtil.put(SYS_CACHE, DEPT_CACHE_ANCESTORS, deptId, ancestors);
+		}
+		return ancestors;
+	}
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/config/ScopeConfiguration.java b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/config/ScopeConfiguration.java
new file mode 100644
index 0000000..73cf707
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/config/ScopeConfiguration.java
@@ -0,0 +1,50 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.config;
+
+
+import lombok.AllArgsConstructor;
+import org.springblade.core.datascope.handler.ScopeModelHandler;
+import org.springblade.core.secure.config.RegistryConfiguration;
+import org.springblade.core.secure.handler.IPermissionHandler;
+import cn.gistack.system.handler.ApiScopePermissionHandler;
+import cn.gistack.system.handler.DataScopeModelHandler;
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * 公共封装包配置类
+ *
+ * @author Chill
+ */
+@Configuration(proxyBeanMethods = false)
+@AllArgsConstructor
+@AutoConfigureBefore(RegistryConfiguration.class)
+public class ScopeConfiguration {
+
+	@Bean
+	public ScopeModelHandler scopeModelHandler() {
+		return new DataScopeModelHandler();
+	}
+
+	@Bean
+	public IPermissionHandler permissionHandler() {
+		return new ApiScopePermissionHandler();
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IApiScopeClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IApiScopeClient.java
new file mode 100644
index 0000000..bb271fb
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IApiScopeClient.java
@@ -0,0 +1,60 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.feign;
+
+import org.springblade.core.launch.constant.AppConstant;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * 接口权限Feign接口类
+ *
+ * @author Chill
+ */
+@FeignClient(
+	value = AppConstant.APPLICATION_SYSTEM_NAME,
+	fallback = IApiScopeClientFallback.class
+)
+public interface IApiScopeClient {
+
+	String API_PREFIX = "/client/api-scope";
+	String PERMISSION_PATH = API_PREFIX + "/permission-path";
+	String PERMISSION_CODE = API_PREFIX + "/permission-code";
+
+	/**
+	 * 获取接口权限地址
+	 *
+	 * @param roleId 角色id
+	 * @return permissions
+	 */
+	@GetMapping(PERMISSION_PATH)
+	List<String> permissionPath(@RequestParam("roleId") String roleId);
+
+	/**
+	 * 获取接口权限信息
+	 *
+	 * @param permission 权限编号
+	 * @param roleId     角色id
+	 * @return permissions
+	 */
+	@GetMapping(PERMISSION_CODE)
+	List<String> permissionCode(@RequestParam("permission") String permission, @RequestParam("roleId") String roleId);
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IApiScopeClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IApiScopeClientFallback.java
new file mode 100644
index 0000000..08bc3ba
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IApiScopeClientFallback.java
@@ -0,0 +1,39 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.feign;
+
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * IApiScopeClientFallback
+ *
+ * @author Chill
+ */
+@Component
+public class IApiScopeClientFallback implements IApiScopeClient {
+	@Override
+	public List<String> permissionPath(String roleId) {
+		return null;
+	}
+
+	@Override
+	public List<String> permissionCode(String permission, String roleId) {
+		return null;
+	}
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IDataScopeClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IDataScopeClient.java
new file mode 100644
index 0000000..077543e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IDataScopeClient.java
@@ -0,0 +1,72 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.feign;
+
+import org.springblade.core.datascope.model.DataScopeModel;
+import org.springblade.core.launch.constant.AppConstant;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * 数据权限Feign接口类
+ *
+ * @author Chill
+ */
+@FeignClient(
+	value = AppConstant.APPLICATION_SYSTEM_NAME,
+	fallback = IDataScopeClientFallback.class
+)
+public interface IDataScopeClient {
+
+	String API_PREFIX = "/client/data-scope";
+	String GET_DATA_SCOPE_BY_MAPPER = API_PREFIX + "/by-mapper";
+	String GET_DATA_SCOPE_BY_CODE = API_PREFIX + "/by-code";
+	String GET_DEPT_ANCESTORS = API_PREFIX + "/dept-ancestors";
+
+	/**
+	 * 获取数据权限
+	 *
+	 * @param mapperId 数据权限mapperId
+	 * @param roleId   用户角色集合
+	 * @return DataScopeModel
+	 */
+	@GetMapping(GET_DATA_SCOPE_BY_MAPPER)
+	DataScopeModel getDataScopeByMapper(@RequestParam("mapperId") String mapperId, @RequestParam("roleId") String roleId);
+
+	/**
+	 * 获取数据权限
+	 *
+	 * @param code 数据权限资源编号
+	 * @return DataScopeModel
+	 */
+	@GetMapping(GET_DATA_SCOPE_BY_CODE)
+	DataScopeModel getDataScopeByCode(@RequestParam("code") String code);
+
+	/**
+	 * 获取部门子级
+	 *
+	 * @param deptId 部门id
+	 * @return deptIds
+	 */
+	@GetMapping(GET_DEPT_ANCESTORS)
+	List<Long> getDeptAncestors(@RequestParam("deptId") Long deptId);
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IDataScopeClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IDataScopeClientFallback.java
new file mode 100644
index 0000000..d31a9dc
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/feign/IDataScopeClientFallback.java
@@ -0,0 +1,45 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.feign;
+
+import org.springblade.core.datascope.model.DataScopeModel;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * IDataScopeClientFallback
+ *
+ * @author Chill
+ */
+@Component
+public class IDataScopeClientFallback implements IDataScopeClient {
+	@Override
+	public DataScopeModel getDataScopeByMapper(String mapperId, String roleId) {
+		return null;
+	}
+
+	@Override
+	public DataScopeModel getDataScopeByCode(String code) {
+		return null;
+	}
+
+	@Override
+	public List<Long> getDeptAncestors(Long deptId) {
+		return null;
+	}
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/handler/ApiScopePermissionHandler.java b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/handler/ApiScopePermissionHandler.java
new file mode 100644
index 0000000..eac31a5
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/handler/ApiScopePermissionHandler.java
@@ -0,0 +1,61 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.handler;
+
+import cn.gistack.system.cache.ApiScopeCache;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.handler.IPermissionHandler;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.WebUtil;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * 接口权限校验类
+ *
+ * @author Chill
+ */
+public class ApiScopePermissionHandler implements IPermissionHandler {
+
+	@Override
+	public boolean permissionAll() {
+		HttpServletRequest request = WebUtil.getRequest();
+		BladeUser user = AuthUtil.getUser();
+		if (request == null || user == null) {
+			return false;
+		}
+		String uri = request.getRequestURI();
+		List<String> paths = ApiScopeCache.permissionPath(user.getRoleId());
+		if (paths == null || paths.size() == 0) {
+			return false;
+		}
+		return paths.stream().anyMatch(uri::contains);
+	}
+
+	@Override
+	public boolean hasPermission(String permission) {
+		HttpServletRequest request = WebUtil.getRequest();
+		BladeUser user = AuthUtil.getUser();
+		if (request == null || user == null) {
+			return false;
+		}
+		List<String> codes = ApiScopeCache.permissionCode(permission, user.getRoleId());
+		return codes != null && codes.size() != 0;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/handler/DataScopeModelHandler.java b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/handler/DataScopeModelHandler.java
new file mode 100644
index 0000000..dda6ffa
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-scope-api/src/main/java/cn/gistack/system/handler/DataScopeModelHandler.java
@@ -0,0 +1,65 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.handler;
+
+import cn.gistack.system.cache.DataScopeCache;
+import org.springblade.core.datascope.handler.ScopeModelHandler;
+import org.springblade.core.datascope.model.DataScopeModel;
+
+import java.util.List;
+
+/**
+ * 通用数据权限规则
+ *
+ * @author Chill
+ */
+public class DataScopeModelHandler implements ScopeModelHandler {
+
+	/**
+	 * 获取数据权限
+	 *
+	 * @param mapperId 数据权限mapperId
+	 * @param roleId   用户角色集合
+	 * @return DataScopeModel
+	 */
+	@Override
+	public DataScopeModel getDataScopeByMapper(String mapperId, String roleId) {
+		return DataScopeCache.getDataScopeByMapper(mapperId, roleId);
+	}
+
+	/**
+	 * 获取数据权限
+	 *
+	 * @param code 数据权限资源编号
+	 * @return DataScopeModel
+	 */
+	@Override
+	public DataScopeModel getDataScopeByCode(String code) {
+		return DataScopeCache.getDataScopeByCode(code);
+	}
+
+	/**
+	 * 获取部门子级
+	 *
+	 * @param deptId 部门id
+	 * @return deptIds
+	 */
+	@Override
+	public List<Long> getDeptAncestors(Long deptId) {
+		return DataScopeCache.getDeptAncestors(deptId);
+	}
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/pom.xml b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/pom.xml
new file mode 100644
index 0000000..4e3b1ea
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/pom.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-service-api</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-system-api</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-cache</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/cache/ParamCache.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/cache/ParamCache.java
new file mode 100644
index 0000000..a320d61
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/cache/ParamCache.java
@@ -0,0 +1,72 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.cache;
+
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.SpringUtil;
+import cn.gistack.system.entity.Param;
+import cn.gistack.system.feign.ISysClient;
+
+import static org.springblade.core.cache.constant.CacheConstant.PARAM_CACHE;
+
+/**
+ * 参数缓存工具类
+ *
+ * @author Chill
+ */
+public class ParamCache {
+
+	private static final String PARAM_ID = "param:id:";
+	private static final String PARAM_VALUE = "param:value:";
+
+	private static ISysClient sysClient;
+
+	private static ISysClient getSysClient() {
+		if (sysClient == null) {
+			sysClient = SpringUtil.getBean(ISysClient.class);
+		}
+		return sysClient;
+	}
+
+	/**
+	 * 获取参数实体
+	 *
+	 * @param id 主键
+	 * @return Param
+	 */
+	public static Param getById(Long id) {
+		return CacheUtil.get(PARAM_CACHE, PARAM_ID, id, () -> {
+			R<Param> result = getSysClient().getParam(id);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取参数配置
+	 *
+	 * @param paramKey 参数值
+	 * @return String
+	 */
+	public static String getValue(String paramKey) {
+		return CacheUtil.get(PARAM_CACHE, PARAM_VALUE, paramKey, () -> {
+			R<String> result = getSysClient().getParamValue(paramKey);
+			return result.getData();
+		});
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/cache/RegionCache.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/cache/RegionCache.java
new file mode 100644
index 0000000..3de607d
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/cache/RegionCache.java
@@ -0,0 +1,63 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.cache;
+
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.SpringUtil;
+import cn.gistack.system.entity.Region;
+import cn.gistack.system.feign.ISysClient;
+
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
+/**
+ * 行政区划缓存工具类
+ *
+ * @author Chill
+ */
+public class RegionCache {
+	public static final int PROVINCE_LEVEL = 1;
+	public static final int CITY_LEVEL = 2;
+	public static final int DISTRICT_LEVEL = 3;
+	public static final int TOWN_LEVEL = 4;
+	public static final int VILLAGE_LEVEL = 5;
+
+	private static final String REGION_CODE = "region:code:";
+
+	private static ISysClient sysClient;
+
+	private static ISysClient getSysClient() {
+		if (sysClient == null) {
+			sysClient = SpringUtil.getBean(ISysClient.class);
+		}
+		return sysClient;
+	}
+
+	/**
+	 * 获取行政区划实体
+	 *
+	 * @param code 区划编号
+	 * @return Param
+	 */
+	public static Region getByCode(String code) {
+		return CacheUtil.get(SYS_CACHE, REGION_CODE, code, () -> {
+			R<Region> result = getSysClient().getRegion(code);
+			return result.getData();
+		});
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/cache/SysCache.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/cache/SysCache.java
new file mode 100644
index 0000000..4809e35
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/cache/SysCache.java
@@ -0,0 +1,373 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.cache;
+
+import cn.gistack.system.entity.*;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.core.tool.utils.StringPool;
+import cn.gistack.system.feign.ISysClient;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
+/**
+ * 系统缓存
+ *
+ * @author Chill
+ */
+public class SysCache {
+	private static final String MENU_ID = "menu:id:";
+	private static final String DEPT_ID = "dept:id:";
+	private static final String DEPT_NAME = "dept:name:";
+	private static final String DEPT_NAME_FUZZY = "dept:nameFuzzy:";
+	private static final String DEPT_NAME_ID = "deptName:id:";
+	private static final String DEPT_NAMES_ID = "deptNames:id:";
+	private static final String DEPT_CHILD_ID = "deptChild:id:";
+	private static final String DEPT_CHILDIDS_ID = "deptChildIds:id:";
+	private static final String POST_ID = "post:id:";
+	private static final String POST_NAME = "post:name:";
+	private static final String POST_NAME_FUZZY = "post:nameFuzzy:";
+	private static final String POST_NAME_ID = "postName:id:";
+	private static final String POST_NAMES_ID = "postNames:id:";
+	private static final String ROLE_ID = "role:id:";
+	private static final String ROLE_NAME = "role:name:";
+	private static final String ROLE_NAME_ID = "roleName:id:";
+	private static final String ROLE_NAMES_ID = "roleNames:id:";
+	private static final String ROLE_ALIAS_ID = "roleAlias:id:";
+	private static final String ROLE_ALIASES_ID = "roleAliases:id:";
+	public static final String TENANT_ID = "tenant:id:";
+	public static final String TENANT_TENANT_ID = "tenant:tenantId:";
+	public static final String TENANT_PACKAGE_ID = "tenant:packageId:";
+
+	private static ISysClient sysClient;
+
+	private static ISysClient getSysClient() {
+		if (sysClient == null) {
+			sysClient = SpringUtil.getBean(ISysClient.class);
+		}
+		return sysClient;
+	}
+
+	/**
+	 * 获取菜单
+	 *
+	 * @param id 主键
+	 * @return 菜单
+	 */
+	public static Menu getMenu(Long id) {
+		return CacheUtil.get(SYS_CACHE, MENU_ID, id, () -> {
+			R<Menu> result = getSysClient().getMenu(id);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取部门
+	 *
+	 * @param id 主键
+	 * @return 部门
+	 */
+	public static Dept getDept(Long id) {
+		return CacheUtil.get(SYS_CACHE, DEPT_ID, id, () -> {
+			R<Dept> result = getSysClient().getDept(id);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取部门id
+	 *
+	 * @param tenantId  租户id
+	 * @param deptNames 部门名
+	 * @return 部门id
+	 */
+	public static String getDeptIds(String tenantId, String deptNames) {
+		return CacheUtil.get(SYS_CACHE, DEPT_NAME, tenantId + StringPool.DASH + deptNames, () -> {
+			R<String> result = getSysClient().getDeptIds(tenantId, deptNames);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取部门id
+	 *
+	 * @param tenantId  租户id
+	 * @param deptNames 部门名模糊查询
+	 * @return 部门id
+	 */
+	public static String getDeptIdsByFuzzy(String tenantId, String deptNames) {
+		return CacheUtil.get(SYS_CACHE, DEPT_NAME_FUZZY, tenantId + StringPool.DASH + deptNames, () -> {
+			R<String> result = getSysClient().getDeptIdsByFuzzy(tenantId, deptNames);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取部门名
+	 *
+	 * @param id 主键
+	 * @return 部门名
+	 */
+	public static String getDeptName(Long id) {
+		return CacheUtil.get(SYS_CACHE, DEPT_NAME_ID, id, () -> {
+			R<String> result = getSysClient().getDeptName(id);
+			return result.getData();
+		});
+	}
+
+
+	/**
+	 * 获取部门名集合
+	 *
+	 * @param deptIds 主键集合
+	 * @return 部门名
+	 */
+	public static List<String> getDeptNames(String deptIds) {
+		return CacheUtil.get(SYS_CACHE, DEPT_NAMES_ID, deptIds, () -> {
+			R<List<String>> result = getSysClient().getDeptNames(deptIds);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取子部门集合
+	 *
+	 * @param deptId 主键
+	 * @return 子部门
+	 */
+	public static List<Dept> getDeptChild(Long deptId) {
+		return CacheUtil.get(SYS_CACHE, DEPT_CHILD_ID, deptId, () -> {
+			R<List<Dept>> result = getSysClient().getDeptChild(deptId);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取子部门ID集合
+	 *
+	 * @param deptId 主键
+	 * @return 子部门ID
+	 */
+	public static List<Long> getDeptChildIds(Long deptId) {
+		if (deptId == null) {
+			return null;
+		}
+		List<Long> deptIdList = CacheUtil.get(SYS_CACHE, DEPT_CHILDIDS_ID, deptId, List.class);
+		if (deptIdList == null) {
+			deptIdList = new ArrayList<>();
+			List<Dept> deptChild = getDeptChild(deptId);
+			if (deptChild != null) {
+				List<Long> collect = deptChild.stream().map(Dept::getId).collect(Collectors.toList());
+				deptIdList.addAll(collect);
+			}
+			deptIdList.add(deptId);
+			CacheUtil.put(SYS_CACHE, DEPT_CHILDIDS_ID, deptId, deptIdList);
+		}
+		return deptIdList;
+	}
+
+	/**
+	 * 获取岗位
+	 *
+	 * @param id 主键
+	 * @return
+	 */
+	public static Post getPost(Long id) {
+		return CacheUtil.get(SYS_CACHE, POST_ID, id, () -> {
+			R<Post> result = getSysClient().getPost(id);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取岗位id
+	 *
+	 * @param tenantId  租户id
+	 * @param postNames 岗位名
+	 * @return
+	 */
+	public static String getPostIds(String tenantId, String postNames) {
+		return CacheUtil.get(SYS_CACHE, POST_NAME, tenantId + StringPool.DASH + postNames, () -> {
+			R<String> result = getSysClient().getPostIds(tenantId, postNames);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取岗位id
+	 *
+	 * @param tenantId  租户id
+	 * @param postNames 岗位名模糊查询
+	 * @return
+	 */
+	public static String getPostIdsByFuzzy(String tenantId, String postNames) {
+		return CacheUtil.get(SYS_CACHE, POST_NAME_FUZZY, tenantId + StringPool.DASH + postNames, () -> {
+			R<String> result = getSysClient().getPostIdsByFuzzy(tenantId, postNames);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取岗位名
+	 *
+	 * @param id 主键
+	 * @return 岗位名
+	 */
+	public static String getPostName(Long id) {
+		return CacheUtil.get(SYS_CACHE, POST_NAME_ID, id, () -> {
+			R<String> result = getSysClient().getPostName(id);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取岗位名集合
+	 *
+	 * @param postIds 主键集合
+	 * @return 岗位名
+	 */
+	public static List<String> getPostNames(String postIds) {
+		return CacheUtil.get(SYS_CACHE, POST_NAMES_ID, postIds, () -> {
+			R<List<String>> result = getSysClient().getPostNames(postIds);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取角色
+	 *
+	 * @param id 主键
+	 * @return Role
+	 */
+	public static Role getRole(Long id) {
+		return CacheUtil.get(SYS_CACHE, ROLE_ID, id, () -> {
+			R<Role> result = getSysClient().getRole(id);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取角色id
+	 *
+	 * @param tenantId  租户id
+	 * @param roleNames 角色名
+	 * @return
+	 */
+	public static String getRoleIds(String tenantId, String roleNames) {
+		return CacheUtil.get(SYS_CACHE, ROLE_NAME, tenantId + StringPool.DASH + roleNames, () -> {
+			R<String> result = getSysClient().getRoleIds(tenantId, roleNames);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取角色名
+	 *
+	 * @param id 主键
+	 * @return 角色名
+	 */
+	public static String getRoleName(Long id) {
+		return CacheUtil.get(SYS_CACHE, ROLE_NAME_ID, id, () -> {
+			R<String> result = getSysClient().getRoleName(id);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取角色别名
+	 *
+	 * @param id 主键
+	 * @return 角色别名
+	 */
+	public static String getRoleAlias(Long id) {
+		return CacheUtil.get(SYS_CACHE, ROLE_ALIAS_ID, id, () -> {
+			R<String> result = getSysClient().getRoleAlias(id);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取角色名集合
+	 *
+	 * @param roleIds 主键集合
+	 * @return 角色名
+	 */
+	public static List<String> getRoleNames(String roleIds) {
+		return CacheUtil.get(SYS_CACHE, ROLE_NAMES_ID, roleIds, () -> {
+			R<List<String>> result = getSysClient().getRoleNames(roleIds);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取角色别名集合
+	 *
+	 * @param roleIds 主键集合
+	 * @return 角色别名
+	 */
+	public static List<String> getRoleAliases(String roleIds) {
+		return CacheUtil.get(SYS_CACHE, ROLE_ALIASES_ID, roleIds, () -> {
+			R<List<String>> result = getSysClient().getRoleAliases(roleIds);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取租户
+	 *
+	 * @param id 主键
+	 * @return Tenant
+	 */
+	public static Tenant getTenant(Long id) {
+		return CacheUtil.get(SYS_CACHE, TENANT_ID, id, () -> {
+			R<Tenant> result = getSysClient().getTenant(id);
+			return result.getData();
+		}, Boolean.FALSE);
+	}
+
+	/**
+	 * 获取租户
+	 *
+	 * @param tenantId 租户id
+	 * @return Tenant
+	 */
+	public static Tenant getTenant(String tenantId) {
+		return CacheUtil.get(SYS_CACHE, TENANT_TENANT_ID, tenantId, () -> {
+			R<Tenant> result = getSysClient().getTenant(tenantId);
+			return result.getData();
+		}, Boolean.FALSE);
+	}
+
+	/**
+	 * 获取租户产品包
+	 *
+	 * @param tenantId 租户id
+	 * @return Tenant
+	 */
+	public static TenantPackage getTenantPackage(String tenantId) {
+		return CacheUtil.get(SYS_CACHE, TENANT_PACKAGE_ID, tenantId, () -> {
+			R<TenantPackage> result = getSysClient().getTenantPackage(tenantId);
+			return result.getData();
+		}, Boolean.FALSE);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/DeptDTO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/DeptDTO.java
new file mode 100644
index 0000000..d593fd9
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/DeptDTO.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.dto;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.system.entity.Dept;
+
+/**
+ * 数据传输对象实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class DeptDTO extends Dept {
+	private static final long serialVersionUID = 1L;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/MenuDTO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/MenuDTO.java
new file mode 100644
index 0000000..0fedd6c
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/MenuDTO.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 数据传输对象实体类
+ *
+ * @author Chill
+ */
+@Data
+public class MenuDTO implements Serializable {
+	private static final long serialVersionUID = 1L;
+	private String alias;
+	private String path;
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/ParamDTO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/ParamDTO.java
new file mode 100644
index 0000000..a171213
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/ParamDTO.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.dto;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.system.entity.Param;
+
+/**
+ * 数据传输对象实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class ParamDTO extends Param {
+	private static final long serialVersionUID = 1L;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/PostDTO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/PostDTO.java
new file mode 100644
index 0000000..6b687b9
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/PostDTO.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.dto;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.system.entity.Post;
+
+/**
+ * 岗位表数据传输对象实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class PostDTO extends Post {
+	private static final long serialVersionUID = 1L;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/RoleDTO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/RoleDTO.java
new file mode 100644
index 0000000..3c5bfb9
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/RoleDTO.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.dto;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.system.entity.Role;
+
+/**
+ * 数据传输对象实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class RoleDTO extends Role {
+	private static final long serialVersionUID = 1L;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/RoleMenuDTO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/RoleMenuDTO.java
new file mode 100644
index 0000000..bf486d0
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/dto/RoleMenuDTO.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.dto;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.system.entity.RoleMenu;
+
+/**
+ * 数据传输对象实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class RoleMenuDTO extends RoleMenu {
+	private static final long serialVersionUID = 1L;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/ApiScope.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/ApiScope.java
new file mode 100644
index 0000000..0149b7d
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/ApiScope.java
@@ -0,0 +1,71 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/**
+ * 实体类
+ *
+ * @author BladeX
+ */
+@Data
+@TableName("blade_scope_api")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "ApiScope对象", description = "ApiScope对象")
+public class ApiScope extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 菜单主键
+	 */
+	@ApiModelProperty(value = "菜单主键")
+	private Long menuId;
+	/**
+	 * 资源编号
+	 */
+	@ApiModelProperty(value = "资源编号")
+	private String resourceCode;
+	/**
+	 * 接口权限名称
+	 */
+	@ApiModelProperty(value = "接口权限名称")
+	private String scopeName;
+	/**
+	 * 接口权限字段
+	 */
+	@ApiModelProperty(value = "接口权限字段")
+	private String scopePath;
+	/**
+	 * 接口权限类型
+	 */
+	@ApiModelProperty(value = "接口权限类型")
+	private Integer scopeType;
+	/**
+	 * 接口权限备注
+	 */
+	@ApiModelProperty(value = "接口权限备注")
+	private String remark;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/AuthClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/AuthClient.java
new file mode 100644
index 0000000..156276c
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/AuthClient.java
@@ -0,0 +1,98 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/**
+ * 实体类
+ *
+ * @author BladeX
+ */
+@Data
+@TableName("blade_client")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "Client对象", description = "Client对象")
+public class AuthClient extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 客户端id
+	 */
+	@ApiModelProperty(value = "客户端id")
+	private String clientId;
+	/**
+	 * 客户端密钥
+	 */
+	@ApiModelProperty(value = "客户端密钥")
+	private String clientSecret;
+	/**
+	 * 资源集合
+	 */
+	@ApiModelProperty(value = "资源集合")
+	private String resourceIds;
+	/**
+	 * 授权范围
+	 */
+	@ApiModelProperty(value = "授权范围")
+	private String scope;
+	/**
+	 * 授权类型
+	 */
+	@ApiModelProperty(value = "授权类型")
+	private String authorizedGrantTypes;
+	/**
+	 * 回调地址
+	 */
+	@ApiModelProperty(value = "回调地址")
+	private String webServerRedirectUri;
+	/**
+	 * 权限
+	 */
+	@ApiModelProperty(value = "权限")
+	private String authorities;
+	/**
+	 * 令牌过期秒数
+	 */
+	@ApiModelProperty(value = "令牌过期秒数")
+	private Integer accessTokenValidity;
+	/**
+	 * 刷新令牌过期秒数
+	 */
+	@ApiModelProperty(value = "刷新令牌过期秒数")
+	private Integer refreshTokenValidity;
+	/**
+	 * 附加说明
+	 */
+	@JsonIgnore
+	@ApiModelProperty(value = "附加说明")
+	private String additionalInformation;
+	/**
+	 * 自动授权
+	 */
+	@ApiModelProperty(value = "自动授权")
+	private String autoapprove;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/DataScope.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/DataScope.java
new file mode 100644
index 0000000..535de99
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/DataScope.java
@@ -0,0 +1,86 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/**
+ * 实体类
+ *
+ * @author BladeX
+ */
+@Data
+@TableName("blade_scope_data")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "DataScope对象", description = "DataScope对象")
+public class DataScope extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 菜单主键
+	 */
+	@ApiModelProperty(value = "菜单主键")
+	private Long menuId;
+	/**
+	 * 资源编号
+	 */
+	@ApiModelProperty(value = "资源编号")
+	private String resourceCode;
+	/**
+	 * 数据权限名称
+	 */
+	@ApiModelProperty(value = "数据权限名称")
+	private String scopeName;
+	/**
+	 * 数据权限可见字段
+	 */
+	@ApiModelProperty(value = "数据权限可见字段")
+	private String scopeField;
+	/**
+	 * 数据权限类名
+	 */
+	@ApiModelProperty(value = "数据权限类名")
+	private String scopeClass;
+	/**
+	 * 数据权限字段
+	 */
+	@ApiModelProperty(value = "数据权限字段")
+	private String scopeColumn;
+	/**
+	 * 数据权限类型
+	 */
+	@ApiModelProperty(value = "数据权限类型")
+	private Integer scopeType;
+	/**
+	 * 数据权限值域
+	 */
+	@ApiModelProperty(value = "数据权限值域")
+	private String scopeValue;
+	/**
+	 * 数据权限备注
+	 */
+	@ApiModelProperty(value = "数据权限备注")
+	private String remark;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Dept.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Dept.java
new file mode 100644
index 0000000..7f25400
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Dept.java
@@ -0,0 +1,108 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_dept")
+@ApiModel(value = "Dept对象", description = "Dept对象")
+public class Dept implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "主键")
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
+
+	/**
+	 * 租户ID
+	 */
+	@ApiModelProperty(value = "租户ID")
+	private String tenantId;
+
+	/**
+	 * 父主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "父主键")
+	private Long parentId;
+
+	/**
+	 * 机构名
+	 */
+	@ApiModelProperty(value = "机构名")
+	private String deptName;
+
+	/**
+	 * 机构全称
+	 */
+	@ApiModelProperty(value = "机构全称")
+	private String fullName;
+
+	/**
+	 * 祖级机构主键
+	 */
+	@ApiModelProperty(value = "祖级机构主键")
+	private String ancestors;
+
+	/**
+	 * 机构类型
+	 */
+	@ApiModelProperty(value = "机构类型")
+	private Integer deptCategory;
+
+	/**
+	 * 排序
+	 */
+	@ApiModelProperty(value = "排序")
+	private Integer sort;
+
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remark;
+
+	/**
+	 * 是否已删除
+	 */
+	@TableLogic
+	@ApiModelProperty(value = "是否已删除")
+	private Integer isDeleted;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Menu.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Menu.java
new file mode 100644
index 0000000..721249a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Menu.java
@@ -0,0 +1,149 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springblade.core.tool.utils.Func;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_menu")
+@ApiModel(value = "Menu对象", description = "Menu对象")
+public class Menu implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "主键")
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
+
+	/**
+	 * 菜单父主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "菜单父主键")
+	private Long parentId;
+
+	/**
+	 * 菜单编号
+	 */
+	@ApiModelProperty(value = "菜单编号")
+	private String code;
+
+	/**
+	 * 菜单名称
+	 */
+	@ApiModelProperty(value = "菜单名称")
+	private String name;
+
+	/**
+	 * 菜单别名
+	 */
+	@ApiModelProperty(value = "菜单别名")
+	private String alias;
+
+	/**
+	 * 请求地址
+	 */
+	@ApiModelProperty(value = "请求地址")
+	private String path;
+
+	/**
+	 * 菜单资源
+	 */
+	@ApiModelProperty(value = "菜单资源")
+	private String source;
+
+	/**
+	 * 排序
+	 */
+	@ApiModelProperty(value = "排序")
+	private Integer sort;
+
+	/**
+	 * 菜单类型
+	 */
+	@ApiModelProperty(value = "菜单类型")
+	private Integer category;
+
+	/**
+	 * 操作按钮类型
+	 */
+	@ApiModelProperty(value = "操作按钮类型")
+	private Integer action;
+
+	/**
+	 * 是否打开新页面
+	 */
+	@ApiModelProperty(value = "是否打开新页面")
+	private Integer isOpen;
+
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remark;
+
+	/**
+	 * 是否已删除
+	 */
+	@TableLogic
+	@ApiModelProperty(value = "是否已删除")
+	private Integer isDeleted;
+
+
+	@Override
+	public boolean equals(Object obj) {
+		if (this == obj) {
+			return true;
+		}
+		if (obj == null) {
+			return false;
+		}
+		Menu other = (Menu) obj;
+		if (Func.equals(this.getId(), other.getId())) {
+			return true;
+		}
+		return false;
+	}
+
+	@Override
+	public int hashCode() {
+		return Objects.hash(id, parentId, code);
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Param.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Param.java
new file mode 100644
index 0000000..9a9a8a5
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Param.java
@@ -0,0 +1,64 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_param")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "Param对象", description = "Param对象")
+public class Param extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 参数名
+	 */
+	@ApiModelProperty(value = "参数名")
+	private String paramName;
+
+	/**
+	 * 参数键
+	 */
+	@ApiModelProperty(value = "参数键")
+	private String paramKey;
+
+	/**
+	 * 参数值
+	 */
+	@ApiModelProperty(value = "参数值")
+	private String paramValue;
+
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remark;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Post.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Post.java
new file mode 100644
index 0000000..56ca4a2
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Post.java
@@ -0,0 +1,66 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tenant.mp.TenantEntity;
+
+/**
+ * 岗位表实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_post")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "Post对象", description = "岗位表")
+public class Post extends TenantEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 类型
+	 */
+	@ApiModelProperty(value = "类型")
+	private Integer category;
+	/**
+	 * 岗位编号
+	 */
+	@ApiModelProperty(value = "岗位编号")
+	private String postCode;
+	/**
+	 * 岗位名称
+	 */
+	@ApiModelProperty(value = "岗位名称")
+	private String postName;
+	/**
+	 * 岗位排序
+	 */
+	@ApiModelProperty(value = "岗位排序")
+	private Integer sort;
+	/**
+	 * 岗位描述
+	 */
+	@ApiModelProperty(value = "岗位描述")
+	private String remark;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Region.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Region.java
new file mode 100644
index 0000000..49c5e01
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Region.java
@@ -0,0 +1,128 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 行政区划表实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_region")
+@ApiModel(value = "Region对象", description = "行政区划表")
+public class Region implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 区划编号
+	 */
+	@TableId(value = "code", type = IdType.INPUT)
+	@ApiModelProperty(value = "区划编号")
+	private String code;
+	/**
+	 * 父区划编号
+	 */
+	@ApiModelProperty(value = "父区划编号")
+	private String parentCode;
+	/**
+	 * 祖区划编号
+	 */
+	@ApiModelProperty(value = "祖区划编号")
+	private String ancestors;
+	/**
+	 * 区划名称
+	 */
+	@ApiModelProperty(value = "区划名称")
+	private String name;
+	/**
+	 * 省级区划编号
+	 */
+	@ApiModelProperty(value = "省级区划编号")
+	private String provinceCode;
+	/**
+	 * 省级名称
+	 */
+	@ApiModelProperty(value = "省级名称")
+	private String provinceName;
+	/**
+	 * 市级区划编号
+	 */
+	@ApiModelProperty(value = "市级区划编号")
+	private String cityCode;
+	/**
+	 * 市级名称
+	 */
+	@ApiModelProperty(value = "市级名称")
+	private String cityName;
+	/**
+	 * 区级区划编号
+	 */
+	@ApiModelProperty(value = "区级区划编号")
+	private String districtCode;
+	/**
+	 * 区级名称
+	 */
+	@ApiModelProperty(value = "区级名称")
+	private String districtName;
+	/**
+	 * 镇级区划编号
+	 */
+	@ApiModelProperty(value = "镇级区划编号")
+	private String townCode;
+	/**
+	 * 镇级名称
+	 */
+	@ApiModelProperty(value = "镇级名称")
+	private String townName;
+	/**
+	 * 村级区划编号
+	 */
+	@ApiModelProperty(value = "村级区划编号")
+	private String villageCode;
+	/**
+	 * 村级名称
+	 */
+	@ApiModelProperty(value = "村级名称")
+	private String villageName;
+	/**
+	 * 层级
+	 */
+	@ApiModelProperty(value = "层级")
+	private Integer regionLevel;
+	/**
+	 * 排序
+	 */
+	@ApiModelProperty(value = "排序")
+	private Integer sort;
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remark;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Role.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Role.java
new file mode 100644
index 0000000..8d55e72
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Role.java
@@ -0,0 +1,90 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_role")
+@ApiModel(value = "Role对象", description = "Role对象")
+public class Role implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "主键")
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
+
+	/**
+	 * 租户ID
+	 */
+	@ApiModelProperty(value = "租户ID")
+	private String tenantId;
+
+	/**
+	 * 父主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "父主键")
+	private Long parentId;
+
+	/**
+	 * 角色名
+	 */
+	@ApiModelProperty(value = "角色名")
+	private String roleName;
+
+	/**
+	 * 排序
+	 */
+	@ApiModelProperty(value = "排序")
+	private Integer sort;
+
+	/**
+	 * 角色别名
+	 */
+	@ApiModelProperty(value = "角色别名")
+	private String roleAlias;
+
+	/**
+	 * 是否已删除
+	 */
+	@TableLogic
+	@ApiModelProperty(value = "是否已删除")
+	private Integer isDeleted;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/RoleMenu.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/RoleMenu.java
new file mode 100644
index 0000000..6c8a8df
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/RoleMenu.java
@@ -0,0 +1,65 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_role_menu")
+@ApiModel(value = "RoleMenu对象", description = "RoleMenu对象")
+public class RoleMenu implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "主键")
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
+
+	/**
+	 * 菜单id
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "菜单id")
+	private Long menuId;
+
+	/**
+	 * 角色id
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "角色id")
+	private Long roleId;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/RoleScope.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/RoleScope.java
new file mode 100644
index 0000000..78a8b8e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/RoleScope.java
@@ -0,0 +1,71 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_role_scope")
+@ApiModel(value = "RoleScope对象", description = "RoleScope对象")
+public class RoleScope implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "主键")
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
+
+	/**
+	 * 权限类型
+	 */
+	@ApiModelProperty(value = "权限类型")
+	private Integer scopeCategory;
+
+	/**
+	 * 权限id
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "权限id")
+	private Long scopeId;
+
+	/**
+	 * 角色id
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "角色id")
+	private Long roleId;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Tenant.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Tenant.java
new file mode 100644
index 0000000..812858b
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/Tenant.java
@@ -0,0 +1,112 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.NullSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_tenant")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "Tenant对象", description = "Tenant对象")
+public class Tenant extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 租户ID
+	 */
+	@ApiModelProperty(value = "租户ID")
+	private String tenantId;
+	/**
+	 * 租户名称
+	 */
+	@ApiModelProperty(value = "租户名称")
+	private String tenantName;
+	/**
+	 * 域名地址
+	 */
+	@ApiModelProperty(value = "域名地址")
+	private String domainUrl;
+	/**
+	 * 系统背景
+	 */
+	@ApiModelProperty(value = "系统背景")
+	private String backgroundUrl;
+	/**
+	 * 联系人
+	 */
+	@ApiModelProperty(value = "联系人")
+	private String linkman;
+	/**
+	 * 联系电话
+	 */
+	@ApiModelProperty(value = "联系电话")
+	private String contactNumber;
+	/**
+	 * 联系地址
+	 */
+	@ApiModelProperty(value = "联系地址")
+	private String address;
+	/**
+	 * 账号额度
+	 */
+	@ApiModelProperty(value = "账号额度")
+	private Integer accountNumber;
+	/**
+	 * 过期时间
+	 */
+	@DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
+	@JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
+	@ApiModelProperty(value = "过期时间")
+	private Date expireTime;
+	/**
+	 * 产品包ID
+	 */
+	@JsonSerialize(nullsUsing = NullSerializer.class)
+	@ApiModelProperty(value = "产品包ID")
+	private Long packageId;
+	/**
+	 * 数据源ID
+	 */
+	@JsonSerialize(nullsUsing = NullSerializer.class)
+	@ApiModelProperty(value = "数据源ID")
+	private Long datasourceId;
+	/**
+	 * 授权码
+	 */
+	@ApiModelProperty(value = "授权码")
+	private String licenseKey;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/TenantPackage.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/TenantPackage.java
new file mode 100644
index 0000000..7400766
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/TenantPackage.java
@@ -0,0 +1,56 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+/**
+ * 租户产品表实体类
+ *
+ * @author BladeX
+ */
+@Data
+@TableName("blade_tenant_package")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "TenantPackage对象", description = "租户产品表")
+public class TenantPackage extends BaseEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 产品包名称
+	 */
+	@ApiModelProperty(value = "产品包名称")
+	private String packageName;
+	/**
+	 * 菜单ID
+	 */
+	@ApiModelProperty(value = "菜单ID")
+	private String menuId;
+	/**
+	 * 备注
+	 */
+	@ApiModelProperty(value = "备注")
+	private String remark;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/TopMenu.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/TopMenu.java
new file mode 100644
index 0000000..8dcb93d
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/TopMenu.java
@@ -0,0 +1,61 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tenant.mp.TenantEntity;
+
+/**
+ * 顶部菜单表实体类
+ *
+ * @author BladeX
+ */
+@Data
+@TableName("blade_top_menu")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "TopMenu对象", description = "顶部菜单表")
+public class TopMenu extends TenantEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 顶部菜单编号
+	 */
+	@ApiModelProperty(value = "顶部菜单编号")
+	private String code;
+	/**
+	 * 顶部菜单名
+	 */
+	@ApiModelProperty(value = "顶部菜单名")
+	private String name;
+	/**
+	 * 顶部菜单资源
+	 */
+	@ApiModelProperty(value = "顶部菜单资源")
+	private String source;
+	/**
+	 * 顶部菜单排序
+	 */
+	@ApiModelProperty(value = "顶部菜单排序")
+	private Integer sort;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/TopMenuSetting.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/TopMenuSetting.java
new file mode 100644
index 0000000..e28b222
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/entity/TopMenuSetting.java
@@ -0,0 +1,38 @@
+package cn.gistack.system.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+/**
+ * TopMenuSetting
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_top_menu_setting")
+public class TopMenuSetting {
+
+	/**
+	 * 主键id
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
+
+	/**
+	 * 顶部菜单id
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long topMenuId;
+
+	/**
+	 * 菜单id
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long menuId;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/feign/ISysClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/feign/ISysClient.java
new file mode 100644
index 0000000..7f2c7c6
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/feign/ISysClient.java
@@ -0,0 +1,270 @@
+package cn.gistack.system.feign;
+
+import cn.gistack.system.entity.*;
+import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.core.tool.api.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * Feign接口类
+ *
+ * @author Chill
+ */
+@FeignClient(
+	value = AppConstant.APPLICATION_SYSTEM_NAME,
+	fallback = ISysClientFallback.class
+)
+public interface ISysClient {
+
+	String API_PREFIX = "/client";
+	String MENU = API_PREFIX + "/menu";
+	String DEPT = API_PREFIX + "/dept";
+	String DEPT_IDS = API_PREFIX + "/dept-ids";
+	String DEPT_IDS_FUZZY = API_PREFIX + "/dept-ids-fuzzy";
+	String DEPT_NAME = API_PREFIX + "/dept-name";
+	String DEPT_NAMES = API_PREFIX + "/dept-names";
+	String DEPT_CHILD = API_PREFIX + "/dept-child";
+	String POST = API_PREFIX + "/post";
+	String POST_IDS = API_PREFIX + "/post-ids";
+	String POST_IDS_FUZZY = API_PREFIX + "/post-ids-fuzzy";
+	String POST_NAME = API_PREFIX + "/post-name";
+	String POST_NAMES = API_PREFIX + "/post-names";
+	String ROLE = API_PREFIX + "/role";
+	String ROLE_IDS = API_PREFIX + "/role-ids";
+	String ROLE_NAME = API_PREFIX + "/role-name";
+	String ROLE_NAMES = API_PREFIX + "/role-names";
+	String ROLE_ALIAS = API_PREFIX + "/role-alias";
+	String ROLE_ALIASES = API_PREFIX + "/role-aliases";
+	String TENANT = API_PREFIX + "/tenant";
+	String TENANT_ID = API_PREFIX + "/tenant-id";
+	String TENANT_PACKAGE = API_PREFIX + "/tenant-package";
+	String PARAM = API_PREFIX + "/param";
+	String PARAM_VALUE = API_PREFIX + "/param-value";
+	String REGION = API_PREFIX + "/region";
+
+	/**
+	 * 获取菜单
+	 *
+	 * @param id 主键
+	 * @return Menu
+	 */
+	@GetMapping(MENU)
+	R<Menu> getMenu(@RequestParam("id") Long id);
+
+	/**
+	 * 获取部门
+	 *
+	 * @param id 主键
+	 * @return Dept
+	 */
+	@GetMapping(DEPT)
+	R<Dept> getDept(@RequestParam("id") Long id);
+
+	/**
+	 * 获取部门id
+	 *
+	 * @param tenantId  租户id
+	 * @param deptNames 部门名
+	 * @return 部门id
+	 */
+	@GetMapping(DEPT_IDS)
+	R<String> getDeptIds(@RequestParam("tenantId") String tenantId, @RequestParam("deptNames") String deptNames);
+
+	/**
+	 * 获取部门id
+	 *
+	 * @param tenantId  租户id
+	 * @param deptNames 部门名
+	 * @return 部门id
+	 */
+	@GetMapping(DEPT_IDS_FUZZY)
+	R<String> getDeptIdsByFuzzy(@RequestParam("tenantId") String tenantId, @RequestParam("deptNames") String deptNames);
+
+	/**
+	 * 获取部门名
+	 *
+	 * @param id 主键
+	 * @return 部门名
+	 */
+	@GetMapping(DEPT_NAME)
+	R<String> getDeptName(@RequestParam("id") Long id);
+
+	/**
+	 * 获取部门名
+	 *
+	 * @param deptIds 主键
+	 * @return
+	 */
+	@GetMapping(DEPT_NAMES)
+	R<List<String>> getDeptNames(@RequestParam("deptIds") String deptIds);
+
+	/**
+	 * 获取子部门ID
+	 *
+	 * @param deptId
+	 * @return
+	 */
+	@GetMapping(DEPT_CHILD)
+	R<List<Dept>> getDeptChild(@RequestParam("deptId") Long deptId);
+
+	/**
+	 * 获取岗位
+	 *
+	 * @param id 主键
+	 * @return Post
+	 */
+	@GetMapping(POST)
+	R<Post> getPost(@RequestParam("id") Long id);
+
+	/**
+	 * 获取岗位id
+	 *
+	 * @param tenantId  租户id
+	 * @param postNames 岗位名
+	 * @return 岗位id
+	 */
+	@GetMapping(POST_IDS)
+	R<String> getPostIds(@RequestParam("tenantId") String tenantId, @RequestParam("postNames") String postNames);
+
+	/**
+	 * 获取岗位id
+	 *
+	 * @param tenantId  租户id
+	 * @param postNames 岗位名
+	 * @return 岗位id
+	 */
+	@GetMapping(POST_IDS_FUZZY)
+	R<String> getPostIdsByFuzzy(@RequestParam("tenantId") String tenantId, @RequestParam("postNames") String postNames);
+
+	/**
+	 * 获取岗位名
+	 *
+	 * @param id 主键
+	 * @return 岗位名
+	 */
+	@GetMapping(POST_NAME)
+	R<String> getPostName(@RequestParam("id") Long id);
+
+	/**
+	 * 获取岗位名
+	 *
+	 * @param postIds 主键
+	 * @return
+	 */
+	@GetMapping(POST_NAMES)
+	R<List<String>> getPostNames(@RequestParam("postIds") String postIds);
+
+	/**
+	 * 获取角色
+	 *
+	 * @param id 主键
+	 * @return Role
+	 */
+	@GetMapping(ROLE)
+	R<Role> getRole(@RequestParam("id") Long id);
+
+	/**
+	 * 获取角色id
+	 *
+	 * @param tenantId  租户id
+	 * @param roleNames 角色名
+	 * @return 角色id
+	 */
+	@GetMapping(ROLE_IDS)
+	R<String> getRoleIds(@RequestParam("tenantId") String tenantId, @RequestParam("roleNames") String roleNames);
+
+	/**
+	 * 获取角色名
+	 *
+	 * @param id 主键
+	 * @return 角色名
+	 */
+	@GetMapping(ROLE_NAME)
+	R<String> getRoleName(@RequestParam("id") Long id);
+
+	/**
+	 * 获取角色别名
+	 *
+	 * @param id 主键
+	 * @return 角色别名
+	 */
+	@GetMapping(ROLE_ALIAS)
+	R<String> getRoleAlias(@RequestParam("id") Long id);
+
+	/**
+	 * 获取角色名
+	 *
+	 * @param roleIds 主键
+	 * @return
+	 */
+	@GetMapping(ROLE_NAMES)
+	R<List<String>> getRoleNames(@RequestParam("roleIds") String roleIds);
+
+	/**
+	 * 获取角色别名
+	 *
+	 * @param roleIds 主键
+	 * @return 角色别名
+	 */
+	@GetMapping(ROLE_ALIASES)
+	R<List<String>> getRoleAliases(@RequestParam("roleIds") String roleIds);
+
+	/**
+	 * 获取租户
+	 *
+	 * @param id 主键
+	 * @return Tenant
+	 */
+	@GetMapping(TENANT)
+	R<Tenant> getTenant(@RequestParam("id") Long id);
+
+	/**
+	 * 获取租户
+	 *
+	 * @param tenantId 租户id
+	 * @return Tenant
+	 */
+	@GetMapping(TENANT_ID)
+	R<Tenant> getTenant(@RequestParam("tenantId") String tenantId);
+
+	/**
+	 * 获取租户产品包
+	 *
+	 * @param tenantId 租户id
+	 * @return Tenant
+	 */
+	@GetMapping(TENANT_PACKAGE)
+	R<TenantPackage> getTenantPackage(@RequestParam("tenantId") String tenantId);
+
+	/**
+	 * 获取参数
+	 *
+	 * @param id 主键
+	 * @return Param
+	 */
+	@GetMapping(PARAM)
+	R<Param> getParam(@RequestParam("id") Long id);
+
+	/**
+	 * 获取参数配置
+	 *
+	 * @param paramKey 参数key
+	 * @return String
+	 */
+	@GetMapping(PARAM_VALUE)
+	R<String> getParamValue(@RequestParam("paramKey") String paramKey);
+
+	/**
+	 * 获取行政区划
+	 *
+	 * @param code 主键
+	 * @return Region
+	 */
+	@GetMapping(REGION)
+	R<Region> getRegion(@RequestParam("code") String code);
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/feign/ISysClientFallback.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/feign/ISysClientFallback.java
new file mode 100644
index 0000000..e2bf5ef
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/feign/ISysClientFallback.java
@@ -0,0 +1,154 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.feign;
+
+import cn.gistack.system.entity.*;
+import org.springblade.core.tool.api.R;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * Feign失败配置
+ *
+ * @author Chill
+ */
+@Component
+public class ISysClientFallback implements ISysClient {
+
+	@Override
+	public R<Menu> getMenu(Long id) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<Dept> getDept(Long id) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<String> getDeptIds(String tenantId, String deptNames) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<String> getDeptIdsByFuzzy(String tenantId, String deptNames) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<String> getDeptName(Long id) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<List<String>> getDeptNames(String deptIds) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<List<Dept>> getDeptChild(Long deptId) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<Post> getPost(Long id) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<String> getPostIds(String tenantId, String postNames) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<String> getPostIdsByFuzzy(String tenantId, String postNames) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<String> getPostName(Long id) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<List<String>> getPostNames(String postIds) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<Role> getRole(Long id) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<String> getRoleIds(String tenantId, String roleNames) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<String> getRoleName(Long id) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<String> getRoleAlias(Long id) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<List<String>> getRoleNames(String roleIds) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<List<String>> getRoleAliases(String roleIds) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<Tenant> getTenant(Long id) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<Tenant> getTenant(String tenantId) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<TenantPackage> getTenantPackage(String tenantId) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<Param> getParam(Long id) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<String> getParamValue(String paramKey) {
+		return R.fail("获取数据失败");
+	}
+
+	@Override
+	public R<Region> getRegion(String code) {
+		return R.fail("获取数据失败");
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/ApiScopeVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/ApiScopeVO.java
new file mode 100644
index 0000000..a510ddc
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/ApiScopeVO.java
@@ -0,0 +1,39 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.system.entity.ApiScope;
+
+/**
+ * 视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "ApiScopeVO对象", description = "ApiScopeVO对象")
+public class ApiScopeVO extends ApiScope {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 规则类型名
+	 */
+	private String scopeTypeName;
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/CheckedTreeVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/CheckedTreeVO.java
new file mode 100644
index 0000000..b82416f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/CheckedTreeVO.java
@@ -0,0 +1,37 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.vo;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * CheckedTreeVO
+ *
+ * @author Chill
+ */
+@Data
+public class CheckedTreeVO {
+
+	private List<String> menu;
+
+	private List<String> dataScope;
+
+	private List<String> apiScope;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/DataScopeVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/DataScopeVO.java
new file mode 100644
index 0000000..6d7aa30
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/DataScopeVO.java
@@ -0,0 +1,39 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.system.entity.DataScope;
+
+/**
+ * 视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "DataScopeVO对象", description = "DataScopeVO对象")
+public class DataScopeVO extends DataScope {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 规则类型名
+	 */
+	private String scopeTypeName;
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/DeptVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/DeptVO.java
new file mode 100644
index 0000000..3d7b9cf
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/DeptVO.java
@@ -0,0 +1,84 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tool.node.INode;
+import cn.gistack.system.entity.Dept;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "DeptVO对象", description = "DeptVO对象")
+public class DeptVO extends Dept implements INode<DeptVO> {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long id;
+
+	/**
+	 * 父节点ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long parentId;
+
+	/**
+	 * 子孙节点
+	 */
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	private List<DeptVO> children;
+
+	/**
+	 * 是否有子孙节点
+	 */
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	private Boolean hasChildren;
+
+	@Override
+	public List<DeptVO> getChildren() {
+		if (this.children == null) {
+			this.children = new ArrayList<>();
+		}
+		return this.children;
+	}
+
+	/**
+	 * 上级机构
+	 */
+	private String parentName;
+
+	/**
+	 * 机构类型名称
+	 */
+	private String deptCategoryName;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/GrantTreeVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/GrantTreeVO.java
new file mode 100644
index 0000000..d1f82ab
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/GrantTreeVO.java
@@ -0,0 +1,40 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.vo;
+
+import lombok.Data;
+import org.springblade.core.tool.node.TreeNode;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * GrantTreeVO
+ *
+ * @author Chill
+ */
+@Data
+public class GrantTreeVO implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	private List<TreeNode> menu;
+
+	private List<TreeNode> dataScope;
+
+	private List<TreeNode> apiScope;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/GrantVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/GrantVO.java
new file mode 100644
index 0000000..b5c3d97
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/GrantVO.java
@@ -0,0 +1,49 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * GrantVO
+ *
+ * @author Chill
+ */
+@Data
+public class GrantVO implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	@ApiModelProperty(value = "roleIds集合")
+	private List<Long> roleIds;
+
+	@ApiModelProperty(value = "menuIds集合")
+	private List<Long> menuIds;
+
+	@ApiModelProperty(value = "topMenuIds集合")
+	private List<Long> topMenuIds;
+
+	@ApiModelProperty(value = "dataScopeIds集合")
+	private List<Long> dataScopeIds;
+
+	@ApiModelProperty(value = "apiScopeIds集合")
+	private List<Long> apiScopeIds;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/MenuVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/MenuVO.java
new file mode 100644
index 0000000..933be66
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/MenuVO.java
@@ -0,0 +1,93 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tool.node.INode;
+import cn.gistack.system.entity.Menu;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "MenuVO对象", description = "MenuVO对象")
+public class MenuVO extends Menu implements INode<MenuVO> {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long id;
+
+	/**
+	 * 父节点ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long parentId;
+
+	/**
+	 * 子孙节点
+	 */
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	private List<MenuVO> children;
+
+	/**
+	 * 是否有子孙节点
+	 */
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	private Boolean hasChildren;
+
+	@Override
+	public List<MenuVO> getChildren() {
+		if (this.children == null) {
+			this.children = new ArrayList<>();
+		}
+		return this.children;
+	}
+
+	/**
+	 * 上级菜单
+	 */
+	private String parentName;
+
+	/**
+	 * 菜单类型
+	 */
+	private String categoryName;
+
+	/**
+	 * 按钮功能
+	 */
+	private String actionName;
+
+	/**
+	 * 是否新窗口打开
+	 */
+	private String isOpenName;
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/ParamVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/ParamVO.java
new file mode 100644
index 0000000..49ef9d8
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/ParamVO.java
@@ -0,0 +1,35 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.system.entity.Param;
+
+/**
+ * 视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "ParamVO对象", description = "ParamVO对象")
+public class ParamVO extends Param {
+	private static final long serialVersionUID = 1L;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/PostVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/PostVO.java
new file mode 100644
index 0000000..784a9d7
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/PostVO.java
@@ -0,0 +1,40 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.system.entity.Post;
+
+/**
+ * 岗位表视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "PostVO对象", description = "岗位表")
+public class PostVO extends Post {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 岗位分类名
+	 */
+	private String categoryName;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/RegionVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/RegionVO.java
new file mode 100644
index 0000000..72fc3d8
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/RegionVO.java
@@ -0,0 +1,89 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tool.node.INode;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.entity.Region;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 行政区划表视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "RegionVO对象", description = "行政区划表")
+public class RegionVO extends Region implements INode<RegionVO> {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long id;
+
+	/**
+	 * 父节点ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long parentId;
+
+	/**
+	 * 父节点名称
+	 */
+	private String parentName;
+
+	/**
+	 * 是否有子孙节点
+	 */
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	private Boolean hasChildren;
+
+	/**
+	 * 子孙节点
+	 */
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	private List<RegionVO> children;
+
+	@Override
+	public Long getId() {
+		return Func.toLong(this.getCode());
+	}
+
+	@Override
+	public Long getParentId() {
+		return Func.toLong(this.getParentCode());
+	}
+
+	@Override
+	public List<RegionVO> getChildren() {
+		if (this.children == null) {
+			this.children = new ArrayList<>();
+		}
+		return this.children;
+	}
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/RoleMenuVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/RoleMenuVO.java
new file mode 100644
index 0000000..f21be48
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/RoleMenuVO.java
@@ -0,0 +1,35 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.system.entity.RoleMenu;
+
+/**
+ * 视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "RoleMenuVO对象", description = "RoleMenuVO对象")
+public class RoleMenuVO extends RoleMenu {
+	private static final long serialVersionUID = 1L;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/RoleVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/RoleVO.java
new file mode 100644
index 0000000..857474a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-system-api/src/main/java/cn/gistack/system/vo/RoleVO.java
@@ -0,0 +1,72 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tool.node.INode;
+import cn.gistack.system.entity.Role;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "RoleVO对象", description = "RoleVO对象")
+public class RoleVO extends Role implements INode<RoleVO> {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long id;
+
+	/**
+	 * 父节点ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long parentId;
+
+	/**
+	 * 子孙节点
+	 */
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	private List<RoleVO> children;
+
+	@Override
+	public List<RoleVO> getChildren() {
+		if (this.children == null) {
+			this.children = new ArrayList<>();
+		}
+		return this.children;
+	}
+
+	/**
+	 * 上级角色
+	 */
+	private String parentName;
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/pom.xml b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/pom.xml
new file mode 100644
index 0000000..9c73bbb
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/pom.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-service-api</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-user-api</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-cache</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/cache/UserCache.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/cache/UserCache.java
new file mode 100644
index 0000000..99cfbdf
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/cache/UserCache.java
@@ -0,0 +1,87 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.cache;
+
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.core.tool.utils.StringPool;
+import org.springblade.core.tool.utils.StringUtil;
+import cn.gistack.system.user.entity.User;
+import cn.gistack.system.user.feign.IUserClient;
+
+import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE;
+import static org.springblade.core.launch.constant.FlowConstant.TASK_USR_PREFIX;
+
+/**
+ * 系统缓存
+ *
+ * @author Chill
+ */
+public class UserCache {
+	private static final String USER_CACHE_ID = "user:id:";
+	private static final String USER_CACHE_ACCOUNT = "user:account:";
+
+	private static IUserClient userClient;
+
+	private static IUserClient getUserClient() {
+		if (userClient == null) {
+			userClient = SpringUtil.getBean(IUserClient.class);
+		}
+		return userClient;
+	}
+
+	/**
+	 * 根据任务用户id获取用户信息
+	 *
+	 * @param taskUserId 任务用户id
+	 * @return
+	 */
+	public static User getUserByTaskUser(String taskUserId) {
+		Long userId = Func.toLong(StringUtil.removePrefix(taskUserId, TASK_USR_PREFIX));
+		return getUser(userId);
+	}
+
+	/**
+	 * 获取用户
+	 *
+	 * @param userId 用户id
+	 * @return
+	 */
+	public static User getUser(Long userId) {
+		return CacheUtil.get(USER_CACHE, USER_CACHE_ID, userId, () -> {
+			R<User> result = getUserClient().userInfoById(userId);
+			return result.getData();
+		});
+	}
+
+	/**
+	 * 获取用户
+	 *
+	 * @param tenantId 租户id
+	 * @param account  账号名
+	 * @return
+	 */
+	public static User getUser(String tenantId, String account) {
+		return CacheUtil.get(USER_CACHE, USER_CACHE_ACCOUNT, tenantId + StringPool.DASH + account, () -> {
+			R<User> result = getUserClient().userByAccount(tenantId, account);
+			return result.getData();
+		});
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/User.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/User.java
new file mode 100644
index 0000000..b5aaaf2
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/User.java
@@ -0,0 +1,96 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tenant.mp.TenantEntity;
+
+import java.util.Date;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_user")
+@EqualsAndHashCode(callSuper = true)
+public class User extends TenantEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 用户编号
+	 */
+	private String code;
+	/**
+	 * 用户平台
+	 */
+	private Integer userType;
+	/**
+	 * 账号
+	 */
+	private String account;
+	/**
+	 * 密码
+	 */
+	private String password;
+	/**
+	 * 昵称
+	 */
+	private String name;
+	/**
+	 * 真名
+	 */
+	private String realName;
+	/**
+	 * 头像
+	 */
+	private String avatar;
+	/**
+	 * 邮箱
+	 */
+	private String email;
+	/**
+	 * 手机
+	 */
+	private String phone;
+	/**
+	 * 生日
+	 */
+	private Date birthday;
+	/**
+	 * 性别
+	 */
+	private Integer sex;
+	/**
+	 * 角色id
+	 */
+	private String roleId;
+	/**
+	 * 部门id
+	 */
+	private String deptId;
+	/**
+	 * 岗位id
+	 */
+	private String postId;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserApp.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserApp.java
new file mode 100644
index 0000000..a2d6c88
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserApp.java
@@ -0,0 +1,64 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_user_app")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "UserApp对象", description = "UserApp对象")
+public class UserApp extends Model<UserApp> {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "主键")
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
+
+	/**
+	 * 用户ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "用户ID")
+	private Long userId;
+
+	/**
+	 * 用户拓展信息
+	 */
+	@ApiModelProperty(value = "用户拓展信息")
+	private String userExt;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserDept.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserDept.java
new file mode 100644
index 0000000..9f544ab
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserDept.java
@@ -0,0 +1,64 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_user_dept")
+@ApiModel(value = "UserDept对象", description = "UserDept对象")
+public class UserDept implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "主键")
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
+
+	/**
+	 * 用户ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "用户ID")
+	private Long userId;
+
+	/**
+	 * 部门ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "部门ID")
+	private Long deptId;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserInfo.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserInfo.java
new file mode 100644
index 0000000..5c3e453
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserInfo.java
@@ -0,0 +1,68 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springblade.core.tool.support.Kv;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 用户信息
+ *
+ * @author Chill
+ */
+@Data
+@ApiModel(description = "用户信息")
+public class UserInfo implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 第三方授权id
+	 */
+	@ApiModelProperty(value = "第三方授权id")
+	private String oauthId;
+
+	/**
+	 * 用户基础信息
+	 */
+	@ApiModelProperty(value = "用户")
+	private User user;
+
+	/**
+	 * 拓展信息
+	 */
+	@ApiModelProperty(value = "拓展信息")
+	private Kv detail;
+
+	/**
+	 * 权限标识集合
+	 */
+	@ApiModelProperty(value = "权限集合")
+	private List<String> permissions;
+
+	/**
+	 * 角色集合
+	 */
+	@ApiModelProperty(value = "角色集合")
+	private List<String> roles;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserOauth.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserOauth.java
new file mode 100644
index 0000000..d49802b
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserOauth.java
@@ -0,0 +1,107 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_user_oauth")
+public class UserOauth implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "主键")
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
+
+	/**
+	 * 租户ID
+	 */
+	private String tenantId;
+
+	/**
+	 * 第三方系统用户ID
+	 */
+	private String uuid;
+
+	/**
+	 * 用户ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "用户主键")
+	private Long userId;
+
+	/**
+	 * 用户名
+	 */
+	private String username;
+	/**
+	 * 用户昵称
+	 */
+	private String nickname;
+	/**
+	 * 用户头像
+	 */
+	private String avatar;
+	/**
+	 * 用户网址
+	 */
+	private String blog;
+	/**
+	 * 所在公司
+	 */
+	private String company;
+	/**
+	 * 位置
+	 */
+	private String location;
+	/**
+	 * 用户邮箱
+	 */
+	private String email;
+	/**
+	 * 用户备注(各平台中的用户个人介绍)
+	 */
+	private String remark;
+	/**
+	 * 性别
+	 */
+	private String gender;
+	/**
+	 * 用户来源
+	 */
+	private String source;
+
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserOther.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserOther.java
new file mode 100644
index 0000000..bc0b0c1
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserOther.java
@@ -0,0 +1,64 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_user_other")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "UserOther对象", description = "UserOther对象")
+public class UserOther extends Model<UserOther> {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "主键")
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
+
+	/**
+	 * 用户ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "用户ID")
+	private Long userId;
+
+	/**
+	 * 用户拓展信息
+	 */
+	@ApiModelProperty(value = "用户拓展信息")
+	private String userExt;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserWeb.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserWeb.java
new file mode 100644
index 0000000..628c598
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/entity/UserWeb.java
@@ -0,0 +1,64 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_user_web")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "UserWeb对象", description = "UserWeb对象")
+public class UserWeb extends Model<UserWeb> {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "主键")
+	@TableId(value = "id", type = IdType.ASSIGN_ID)
+	private Long id;
+
+	/**
+	 * 用户ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	@ApiModelProperty(value = "用户ID")
+	private Long userId;
+
+	/**
+	 * 用户拓展信息
+	 */
+	@ApiModelProperty(value = "用户拓展信息")
+	private String userExt;
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/enums/UserEnum.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/enums/UserEnum.java
new file mode 100644
index 0000000..8e36236
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/enums/UserEnum.java
@@ -0,0 +1,69 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 用户类型枚举
+ *
+ * @author Chill
+ */
+@Getter
+@AllArgsConstructor
+public enum UserEnum {
+
+	/**
+	 * web
+	 */
+	WEB("web", 1),
+
+	/**
+	 * app
+	 */
+	APP("app", 2),
+
+	/**
+	 * other
+	 */
+	OTHER("other", 3),
+	;
+
+	final String name;
+	final int category;
+
+	/**
+	 * 匹配枚举值
+	 *
+	 * @param name 名称
+	 * @return BladeUserEnum
+	 */
+	public static UserEnum of(String name) {
+		if (name == null) {
+			return null;
+		}
+		UserEnum[] values = UserEnum.values();
+		for (UserEnum smsEnum : values) {
+			if (smsEnum.name.equals(name)) {
+				return smsEnum;
+			}
+		}
+		return null;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java
new file mode 100644
index 0000000..b9574af
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java
@@ -0,0 +1,119 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.feign;
+
+import org.springblade.core.tool.api.R;
+import cn.gistack.system.user.entity.User;
+import cn.gistack.system.user.entity.UserInfo;
+import cn.gistack.system.user.entity.UserOauth;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * User Feign接口类
+ *
+ * @author Chill
+ */
+//@FeignClient(
+//	value = AppConstant.APPLICATION_USER_NAME
+//)
+@FeignClient(
+	value = "skjcmanager-user"
+)
+public interface IUserClient {
+
+	String API_PREFIX = "/client";
+	String USER_INFO = API_PREFIX + "/user-info";
+	String USER_INFO_BY_TYPE = API_PREFIX + "/user-info-by-type";
+	String USER_INFO_BY_ID = API_PREFIX + "/user-info-by-id";
+	String USER_INFO_BY_ACCOUNT = API_PREFIX + "/user-info-by-account";
+	String USER_AUTH_INFO = API_PREFIX + "/user-auth-info";
+	String SAVE_USER = API_PREFIX + "/save-user";
+	String REMOVE_USER = API_PREFIX + "/remove-user";
+
+	/**
+	 * 获取用户信息
+	 *
+	 * @param userId 用户id
+	 * @return
+	 */
+	@GetMapping(USER_INFO_BY_ID)
+	R<User> userInfoById(@RequestParam("userId") Long userId);
+
+
+	/**
+	 * 根据账号获取用户信息
+	 *
+	 * @param tenantId 租户id
+	 * @param account  账号
+	 * @return
+	 */
+	@GetMapping(USER_INFO_BY_ACCOUNT)
+	R<User> userByAccount(@RequestParam("tenantId") String tenantId, @RequestParam("account") String account);
+
+	/**
+	 * 获取用户信息
+	 *
+	 * @param tenantId 租户ID
+	 * @param account  账号
+	 * @return
+	 */
+	@GetMapping(USER_INFO)
+	R<UserInfo> userInfo(@RequestParam("tenantId") String tenantId, @RequestParam("account") String account);
+
+	/**
+	 * 获取用户信息
+	 *
+	 * @param tenantId 租户ID
+	 * @param account  账号
+	 * @param userType 用户平台
+	 * @return
+	 */
+	@GetMapping(USER_INFO_BY_TYPE)
+	R<UserInfo> userInfo(@RequestParam("tenantId") String tenantId, @RequestParam("account") String account, @RequestParam("userType") String userType);
+
+	/**
+	 * 获取第三方平台信息
+	 *
+	 * @param userOauth 第三方授权用户信息
+	 * @return UserInfo
+	 */
+	@PostMapping(USER_AUTH_INFO)
+	R<UserInfo> userAuthInfo(@RequestBody UserOauth userOauth);
+
+	/**
+	 * 新建用户
+	 *
+	 * @param user 用户实体
+	 * @return
+	 */
+	@PostMapping(SAVE_USER)
+	R<Boolean> saveUser(@RequestBody User user);
+
+	/**
+	 * 删除用户
+	 *
+	 * @param tenantIds 租户id集合
+	 * @return
+	 */
+	@PostMapping(REMOVE_USER)
+	R<Boolean> removeUser(@RequestParam("tenantIds") String tenantIds);
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserSearchClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserSearchClient.java
new file mode 100644
index 0000000..df0cc3a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserSearchClient.java
@@ -0,0 +1,84 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.feign;
+
+
+import org.springblade.core.launch.constant.AppConstant;
+import org.springblade.core.tool.api.R;
+import cn.gistack.system.user.entity.User;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * User Search Feign接口类
+ *
+ * @author Chill
+ */
+//@FeignClient(
+//	value = AppConstant.APPLICATION_USER_NAME
+//)
+@FeignClient(
+	value = "skjcmanager-user"
+)
+public interface IUserSearchClient {
+
+	String API_PREFIX = "/client";
+	String LIST_BY_USER = API_PREFIX + "/user/list-by-user";
+	String LIST_BY_DEPT = API_PREFIX + "/user/list-by-dept";
+	String LIST_BY_POST = API_PREFIX + "/user/list-by-post";
+	String LIST_BY_ROLE = API_PREFIX + "/user/list-by-role";
+
+	/**
+	 * 根据用户ID查询用户列表
+	 *
+	 * @param userId 用户ID
+	 * @return 用户列表
+	 */
+	@GetMapping(LIST_BY_USER)
+	R<List<User>> listByUser(@RequestParam("userId") String userId);
+
+	/**
+	 * 根据部门ID查询用户列表
+	 *
+	 * @param deptId 部门ID
+	 * @return 用户列表
+	 */
+	@GetMapping(LIST_BY_DEPT)
+	R<List<User>> listByDept(@RequestParam("deptId") String deptId);
+
+	/**
+	 * 根据岗位ID查询用户列表
+	 *
+	 * @param postId 岗位ID
+	 * @return 用户列表
+	 */
+	@GetMapping(LIST_BY_POST)
+	R<List<User>> listByPost(@RequestParam("postId") String postId);
+
+	/**
+	 * 根据角色ID查询用户列表
+	 *
+	 * @param roleId 角色ID
+	 * @return 用户列表
+	 */
+	@GetMapping(LIST_BY_ROLE)
+	R<List<User>> listByRole(@RequestParam("roleId") String roleId);
+
+}
diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/vo/UserVO.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/vo/UserVO.java
new file mode 100644
index 0000000..906c926
--- /dev/null
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/vo/UserVO.java
@@ -0,0 +1,84 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.vo;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.system.user.entity.User;
+
+/**
+ * 视图实体类
+ *
+ * @author Chill
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "UserVO对象", description = "UserVO对象")
+public class UserVO extends User {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 主键ID
+	 */
+	@JsonSerialize(using = ToStringSerializer.class)
+	private Long id;
+
+	/**
+	 * 密码
+	 */
+	@JsonIgnore
+	private String password;
+
+	/**
+	 * 租户名
+	 */
+	private String tenantName;
+
+	/**
+	 * 用户平台名
+	 */
+	private String userTypeName;
+
+	/**
+	 * 角色名
+	 */
+	private String roleName;
+
+	/**
+	 * 部门名
+	 */
+	private String deptName;
+
+	/**
+	 * 岗位名
+	 */
+	private String postName;
+
+	/**
+	 * 性别
+	 */
+	private String sexName;
+
+	/**
+	 * 拓展信息
+	 */
+	private String userExt;
+}
diff --git a/skjcmanager/skjcmanager-service/pom.xml b/skjcmanager/skjcmanager-service/pom.xml
new file mode 100644
index 0000000..fd4941a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/pom.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <parent>
+        <groupId>org.springblade</groupId>
+        <artifactId>skjcmanager</artifactId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-service</artifactId>
+    <name>${project.artifactId}</name>
+    <version>3.0.1.RELEASE</version>
+    <packaging>pom</packaging>
+    <description>BladeX 微服务集合</description>
+
+    <modules>
+        <module>skjcmanager-desk</module>
+        <module>skjcmanager-system</module>
+        <module>skjcmanager-user</module>
+    </modules>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-common</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-metrics</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-tenant</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-api-crypto</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-dict-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-scope-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+    </dependencies>
+
+</project>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/Dockerfile b/skjcmanager/skjcmanager-service/skjcmanager-desk/Dockerfile
new file mode 100644
index 0000000..2efbdfc
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/Dockerfile
@@ -0,0 +1,15 @@
+FROM bladex/alpine-java:openjdk8-openj9_cn_slim
+
+MAINTAINER bladejava@qq.com
+
+RUN mkdir -p /blade/desk
+
+WORKDIR /blade/desk
+
+EXPOSE 8105
+
+ADD ./target/blade-desk.jar ./app.jar
+
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
+
+CMD ["--spring.profiles.active=test"]
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/pom.xml b/skjcmanager/skjcmanager-service/skjcmanager-desk/pom.xml
new file mode 100644
index 0000000..444af18
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/pom.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <parent>
+        <groupId>org.springblade</groupId>
+        <artifactId>skjcmanager-service</artifactId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-desk</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-boot</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-swagger</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-desk-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-user-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-flow-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <!--Oss-->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-oss</artifactId>
+        </dependency>
+        <!--MinIO-->
+        <dependency>
+            <groupId>io.minio</groupId>
+            <artifactId>minio</artifactId>
+        </dependency>
+        <!--QiNiu-->
+        <dependency>
+            <groupId>com.qiniu</groupId>
+            <artifactId>qiniu-java-sdk</artifactId>
+        </dependency>
+        <!--<dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-transaction</artifactId>
+        </dependency>-->
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>dockerfile-maven-plugin</artifactId>
+                <configuration>
+                    <username>${docker.username}</username>
+                    <password>${docker.password}</password>
+                    <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+                    <tag>${project.version}</tag>
+                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+                    <buildArgs>
+                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+                    </buildArgs>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/DeskApplication.java b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/DeskApplication.java
new file mode 100644
index 0000000..0a8a008
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/DeskApplication.java
@@ -0,0 +1,36 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.desk;
+
+import org.springblade.core.cloud.client.BladeCloudApplication;
+import org.springblade.core.launch.BladeApplication;
+import org.springblade.core.launch.constant.AppConstant;
+
+/**
+ * Desk启动器
+ *
+ * @author Chill
+ */
+@BladeCloudApplication
+public class DeskApplication {
+
+	public static void main(String[] args) {
+		BladeApplication.run(AppConstant.APPLICATION_DESK_NAME, DeskApplication.class, args);
+	}
+
+}
+
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/controller/DashBoardController.java b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/controller/DashBoardController.java
new file mode 100644
index 0000000..d942a50
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/controller/DashBoardController.java
@@ -0,0 +1,207 @@
+package cn.gistack.desk.controller;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.support.Kv;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 首页
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@Api(value = "首页", tags = "首页")
+public class DashBoardController {
+
+	/**
+	 * 活跃用户
+	 */
+	@GetMapping("/dashboard/activities")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "活跃用户", notes = "活跃用户")
+	public R activities() {
+		List<Map<String, Object>> list = new ArrayList<>();
+
+		Map<String, Object> map1 = new HashMap<>(16);
+		map1.put("id", "trend-1");
+		map1.put("updatedAt", "2019-01-01");
+		map1.put("user", Kv.create().set("name", "曲丽丽").set("avatar", "https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png"));
+		map1.put("group", Kv.create().set("name", "高逼格设计天团").set("link", "http://github.com/"));
+		map1.put("project", Kv.create().set("name", "六月迭代").set("link", "http://github.com/"));
+		map1.put("template", "在 @{group} 新建项目 @{project}");
+		list.add(map1);
+
+		Map<String, Object> map2 = new HashMap<>(16);
+		map2.put("id", "trend-2");
+		map2.put("updatedAt", "2019-01-01");
+		map2.put("user", Kv.create().set("name", "付小小").set("avatar", "https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png"));
+		map2.put("group", Kv.create().set("name", "高逼格设计天团").set("link", "http://github.com/"));
+		map2.put("project", Kv.create().set("name", "七月月迭代").set("link", "http://github.com/"));
+		map2.put("template", "在  @{group} 新建项目 @{project}");
+		list.add(map2);
+
+		return R.data(list);
+	}
+
+	/**
+	 * 用户信息
+	 */
+	@GetMapping("/dashboard/info")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "用户信息", notes = "用户信息")
+	public R info() {
+		Map<String, Object> map = new HashMap<>(16);
+		map.put("id", "trend-1");
+		map.put("updatedAt", "2019-01-01");
+		map.put("user", Kv.create().set("name", "曲丽丽").set("avatar", "https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png"));
+		map.put("group", Kv.create().set("name", "高逼格设计天团").set("link", "http://github.com/"));
+		map.put("project", Kv.create().set("name", "六月迭代").set("link", "http://github.com/"));
+		map.put("template", "在 @{group} 新建项目 @{project}");
+		return R.data(map);
+	}
+
+	/**
+	 * 签名信息
+	 */
+	@PostMapping("/dashboard/sign")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "签名信息", notes = "签名信息")
+	public R sign() {
+		Map<String, Object> map = new HashMap<>(16);
+		map.put("user", Kv.create().set("name", "曲丽丽").set("avatar", "https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png"));
+		return R.data(map);
+	}
+
+	/**
+	 * 获取消息
+	 */
+	@GetMapping("/notice/notices")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "消息", notes = "消息")
+	public R notices() {
+		List<Map<String, String>> list = new ArrayList<>();
+		Map<String, String> map1 = new HashMap<>(16);
+		map1.put("logo", "https://spring.io/img/homepage/icon-spring-framework.svg");
+		map1.put("title", "SpringBoot");
+		map1.put("description", "现在的web项目几乎都会用到spring框架,而要使用spring难免需要配置大量的xml配置文件,而 springboot的出现解   决了这一问题,一个项目甚至不用部署到服务器上直接开跑,真像springboot所说:“just run”。");
+		map1.put("member", "Chill");
+		map1.put("href", "http://spring.io/projects/spring-boot");
+		list.add(map1);
+
+		Map<String, String> map2 = new HashMap<>(16);
+		map2.put("logo", "https://spring.io/img/homepage/icon-spring-cloud.svg");
+		map2.put("title", "SpringCloud");
+		map2.put("description", "SpringCloud是基于SpringBoot的一整套实现微服务的框架。他提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。");
+		map2.put("member", "Chill");
+		map2.put("href", "http://spring.io/projects/spring-cloud");
+		list.add(map2);
+
+		Map<String, String> map3 = new HashMap<>(16);
+		map3.put("logo", "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1546359961068&di=05ff9406e6675ca9a58a525a7e7950b9&imgtype=jpg&src=http%3A%2F%2Fimg0.imgtn.bdimg.com%2Fit%2Fu%3D575314515%2C4268715674%26fm%3D214%26gp%3D0.jpg");
+		map3.put("title", "Mybatis");
+		map3.put("description", "MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。");
+		map3.put("member", "Chill");
+		map3.put("href", "http://www.mybatis.org/mybatis-3/getting-started.html");
+		list.add(map3);
+
+		Map<String, String> map4 = new HashMap<>(16);
+		map4.put("logo", "https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png");
+		map4.put("title", "React");
+		map4.put("description", "React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。");
+		map4.put("member", "Chill");
+		map4.put("href", "https://reactjs.org/");
+		list.add(map4);
+
+		Map<String, String> map5 = new HashMap<>(16);
+		map5.put("logo", "https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png");
+		map5.put("title", "Ant Design");
+		map5.put("description", "蚂蚁金服体验技术部经过大量的项目实践和总结,沉淀出设计语言 Ant Design,这可不单纯只是设计原则、控件规范和视觉尺寸,还配套有前端代码实现方案。也就是说采用Ant Design后,UI设计和前端界面研发可同步完成,效率大大提升。");
+		map5.put("member", "Chill");
+		map5.put("href", "https://ant.design/docs/spec/introduce-cn");
+		list.add(map5);
+
+		Map<String, String> map6 = new HashMap<>(16);
+		map6.put("logo", "https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png");
+		map6.put("title", "Ant Design Pro");
+		map6.put("description", "Ant Design Pro 是一个企业级开箱即用的中后台前端/设计解决方案。符合阿里追求的'敏捷的前端+强大的中台'的思想。");
+		map6.put("member", "Chill");
+		map6.put("href", "https://pro.ant.design");
+		list.add(map6);
+
+		return R.data(list);
+	}
+
+	/**
+	 * 获取我的消息
+	 */
+	@GetMapping("/notice/my-notices")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "消息", notes = "消息")
+	public R myNotices() {
+		List<Map<String, String>> list = new ArrayList<>();
+		Map<String, String> map1 = new HashMap<>(16);
+		map1.put("id", "000000001");
+		map1.put("avatar", "https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png");
+		map1.put("title", "你收到了 14 份新周报");
+		map1.put("datetime", "2018-08-09");
+		map1.put("type", "notification");
+		list.add(map1);
+
+		Map<String, String> map2 = new HashMap<>(16);
+		map2.put("id", "000000002");
+		map2.put("avatar", "https://gw.alipayobjects.com/zos/rmsportal/OKJXDXrmkNshAMvwtvhu.png");
+		map2.put("title", "你推荐的 曲妮妮 已通过第三轮面试");
+		map2.put("datetime", "2018-08-08");
+		map2.put("type", "notification");
+		list.add(map2);
+
+
+		Map<String, String> map3 = new HashMap<>(16);
+		map3.put("id", "000000003");
+		map3.put("avatar", "https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg");
+		map3.put("title", "曲丽丽 评论了你");
+		map3.put("description", "描述信息描述信息描述信息");
+		map3.put("datetime", "2018-08-07");
+		map3.put("type", "message");
+		map3.put("clickClose", "true");
+		list.add(map3);
+
+
+		Map<String, String> map4 = new HashMap<>(16);
+		map4.put("id", "000000004");
+		map4.put("avatar", "https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg");
+		map4.put("title", "朱偏右 回复了你");
+		map4.put("description", "这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像");
+		map4.put("type", "message");
+		map4.put("datetime", "2018-08-07");
+		map4.put("clickClose", "true");
+		list.add(map4);
+
+
+		Map<String, String> map5 = new HashMap<>(16);
+		map5.put("id", "000000005");
+		map5.put("title", "任务名称");
+		map5.put("description", "任务需要在 2018-01-12 20:00 前启动");
+		map5.put("extra", "未开始");
+		map5.put("status", "todo");
+		map5.put("type", "event");
+		list.add(map5);
+
+		return R.data(list);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/controller/LeaveController.java b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/controller/LeaveController.java
new file mode 100644
index 0000000..ad96bc1
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/controller/LeaveController.java
@@ -0,0 +1,66 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.desk.controller;
+
+import cn.gistack.desk.entity.ProcessLeave;
+import cn.gistack.system.user.cache.UserCache;
+import lombok.AllArgsConstructor;
+import cn.gistack.common.cache.CacheNames;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import cn.gistack.desk.service.ILeaveService;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+/**
+ * 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@ApiIgnore
+@RestController
+@RequestMapping("/process/leave")
+@AllArgsConstructor
+public class LeaveController extends BladeController implements CacheNames {
+
+	private final ILeaveService leaveService;
+
+	/**
+	 * 详情
+	 *
+	 * @param businessId 主键
+	 */
+	@GetMapping("detail")
+	public R<ProcessLeave> detail(Long businessId) {
+		ProcessLeave detail = leaveService.getById(businessId);
+		detail.getFlow().setAssigneeName(UserCache.getUser(detail.getCreateUser()).getName());
+		return R.data(detail);
+	}
+
+	/**
+	 * 新增或修改
+	 *
+	 * @param leave 请假信息
+	 */
+	@PostMapping("start-process")
+	public R startProcess(@RequestBody ProcessLeave leave) {
+		return R.status(leaveService.startProcess(leave));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/controller/NoticeController.java b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/controller/NoticeController.java
new file mode 100644
index 0000000..01d56fc
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/controller/NoticeController.java
@@ -0,0 +1,150 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.desk.controller;
+
+import cn.gistack.desk.entity.Notice;
+import cn.gistack.desk.feign.INoticeClient;
+import cn.gistack.desk.service.INoticeService;
+import cn.gistack.desk.vo.NoticeVO;
+import cn.gistack.desk.wrapper.NoticeWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.BladePage;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.TenantDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.Map;
+
+/**
+ * 控制器
+ *
+ * @author Chill
+ */
+@TenantDS
+@RestController
+@RequestMapping("notice")
+@AllArgsConstructor
+@Api(value = "用户博客", tags = "博客接口")
+public class NoticeController extends BladeController {
+
+	private final INoticeService noticeService;
+
+	private final INoticeClient noticeClient;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入notice")
+	public R<NoticeVO> detail(Notice notice) {
+		Notice detail = noticeService.getOne(Condition.getQueryWrapper(notice));
+		return R.data(NoticeWrapper.build().entityVO(detail));
+	}
+
+	/**
+	 * 分页
+	 */
+	@GetMapping("/list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "category", value = "公告类型", paramType = "query", dataType = "integer"),
+		@ApiImplicitParam(name = "title", value = "公告标题", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入notice")
+	public R<IPage<NoticeVO>> list(@ApiIgnore @RequestParam Map<String, Object> notice, Query query) {
+		NoticeWrapper.build().noticeQuery(notice);
+		IPage<Notice> pages = noticeService.page(Condition.getPage(query), Condition.getQueryWrapper(notice, Notice.class));
+		return R.data(NoticeWrapper.build().pageVO(pages));
+	}
+
+	/**
+	 * 多表联合查询自定义分页
+	 */
+	@GetMapping("/page")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "category", value = "公告类型", paramType = "query", dataType = "integer"),
+		@ApiImplicitParam(name = "title", value = "公告标题", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入notice")
+	public R<IPage<NoticeVO>> page(@ApiIgnore NoticeVO notice, Query query) {
+		IPage<NoticeVO> pages = noticeService.selectNoticePage(Condition.getPage(query), notice);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入notice")
+	public R save(@RequestBody Notice notice) {
+		return R.status(noticeService.save(notice));
+	}
+
+	/**
+	 * 修改
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入notice")
+	public R update(@RequestBody Notice notice) {
+		return R.status(noticeService.updateById(notice));
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入notice")
+	public R submit(@RequestBody Notice notice) {
+		return R.status(noticeService.saveOrUpdate(notice));
+	}
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "逻辑删除", notes = "传入notice")
+	public R remove(@ApiParam(value = "主键集合") @RequestParam String ids) {
+		boolean temp = noticeService.deleteLogic(Func.toLongList(ids));
+		return R.status(temp);
+	}
+
+	/**
+	 * 远程调用分页接口
+	 */
+	@GetMapping("/top")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "分页远程调用", notes = "传入current,size")
+	public R<BladePage<Notice>> top(@ApiParam(value = "当前页") @RequestParam Integer current, @ApiParam(value = "每页显示条数") @RequestParam Integer size) {
+		BladePage<Notice> page = noticeClient.top(current, size);
+		return R.data(page);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/entity/ProcessLeave.java b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/entity/ProcessLeave.java
new file mode 100644
index 0000000..0adaf71
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/entity/ProcessLeave.java
@@ -0,0 +1,67 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.desk.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import cn.gistack.flow.core.entity.FlowEntity;
+
+import java.util.Date;
+
+/**
+ * 请假流程实体类
+ *
+ * @author Chill
+ */
+@Data
+@TableName("blade_process_leave")
+@EqualsAndHashCode(callSuper = true)
+public class ProcessLeave extends FlowEntity {
+
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 流程定义id
+	 */
+	private String processDefinitionId;
+	/**
+	 * 流程实例id
+	 */
+	private String processInstanceId;
+	/**
+	 * 请假开始时间
+	 */
+	private Date startTime;
+	/**
+	 * 请假结束时间
+	 */
+	private Date endTime;
+	/**
+	 * 请假理由
+	 */
+	private String reason;
+	/**
+	 * 审批人
+	 */
+	private String taskUser;
+	/**
+	 * 流程申请时间
+	 */
+	private Date applyTime;
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/feign/NoticeClient.java b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/feign/NoticeClient.java
new file mode 100644
index 0000000..1bb7bd8
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/feign/NoticeClient.java
@@ -0,0 +1,54 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.desk.feign;
+
+import cn.gistack.desk.entity.Notice;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.support.BladePage;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.NonDS;
+import cn.gistack.desk.service.INoticeService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+/**
+ * Notice Feign
+ *
+ * @author Chill
+ */
+@NonDS
+@ApiIgnore()
+@RestController
+@AllArgsConstructor
+public class NoticeClient implements INoticeClient {
+
+	private final INoticeService service;
+
+	@Override
+	@GetMapping(TOP)
+	public BladePage<Notice> top(Integer current, Integer size) {
+		Query query = new Query();
+		query.setCurrent(current);
+		query.setSize(size);
+		IPage<Notice> page = service.page(Condition.getPage(query));
+		return BladePage.of(page);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/LeaveMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/LeaveMapper.java
new file mode 100644
index 0000000..630a303
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/LeaveMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.desk.mapper;
+
+import cn.gistack.desk.entity.ProcessLeave;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface LeaveMapper extends BaseMapper<ProcessLeave> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/LeaveMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/LeaveMapper.xml
new file mode 100644
index 0000000..fdaf54a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/LeaveMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.desk.mapper.LeaveMapper">
+
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/NoticeMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/NoticeMapper.java
new file mode 100644
index 0000000..4aa74ae
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/NoticeMapper.java
@@ -0,0 +1,50 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.desk.mapper;
+
+import cn.gistack.desk.entity.Notice;
+import cn.gistack.desk.vo.NoticeVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface NoticeMapper extends BaseMapper<Notice> {
+
+	/**
+	 * 前N条数据
+	 *
+	 * @param number 数量
+	 * @return List<Notice>
+	 */
+	List<Notice> topList(Integer number);
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page   分页
+	 * @param notice 实体
+	 * @return List<NoticeVO>
+	 */
+	List<NoticeVO> selectNoticePage(IPage page, NoticeVO notice);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/NoticeMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/NoticeMapper.xml
new file mode 100644
index 0000000..088d66f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/mapper/NoticeMapper.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.desk.mapper.NoticeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="noticeResultMap" type="cn.gistack.desk.entity.Notice">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="release_time" property="releaseTime"/>
+        <result column="title" property="title"/>
+        <result column="content" property="content"/>
+    </resultMap>
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="noticeVOResultMap" type="cn.gistack.desk.vo.NoticeVO">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="release_time" property="releaseTime"/>
+        <result column="title" property="title"/>
+        <result column="content" property="content"/>
+    </resultMap>
+
+    <select id="topList" resultMap="noticeResultMap">
+        select * from blade_notice limit #{number}
+    </select>
+
+    <select id="selectNoticePage" resultMap="noticeVOResultMap">
+        SELECT
+        n.*,
+        d.dict_value AS categoryName
+        FROM
+        blade_notice n
+        LEFT JOIN ( SELECT * FROM blade_dict WHERE CODE = 'notice' ) d ON n.category = d.dict_key
+        WHERE
+        n.is_deleted = 0 and n.tenant_id = #{notice.tenantId}
+        <if test="notice.title!=null">
+            and n.title like concat(concat('%', #{notice.title}), '%')
+        </if>
+        <if test="notice.category!=null">
+            and n.category = #{notice.category}
+        </if>
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/ILeaveService.java b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/ILeaveService.java
new file mode 100644
index 0000000..3932f1b
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/ILeaveService.java
@@ -0,0 +1,37 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.desk.service;
+
+import cn.gistack.desk.entity.ProcessLeave;
+import org.springblade.core.mp.base.BaseService;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface ILeaveService extends BaseService<ProcessLeave> {
+
+	/**
+	 * 开启流程
+	 *
+	 * @param leave 请假实体
+	 * @return boolean
+	 */
+	boolean startProcess(ProcessLeave leave);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/INoticeService.java b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/INoticeService.java
new file mode 100644
index 0000000..c287674
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/INoticeService.java
@@ -0,0 +1,39 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.desk.service;
+
+import cn.gistack.desk.entity.Notice;
+import cn.gistack.desk.vo.NoticeVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseService;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface INoticeService extends BaseService<Notice> {
+
+	/**
+	 * 自定义分页
+	 * @param page
+	 * @param notice
+	 * @return
+	 */
+	IPage<NoticeVO> selectNoticePage(IPage<NoticeVO> page, NoticeVO notice);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/impl/LeaveServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/impl/LeaveServiceImpl.java
new file mode 100644
index 0000000..9ed15e9
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/impl/LeaveServiceImpl.java
@@ -0,0 +1,81 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.desk.service.impl;
+
+import cn.gistack.desk.entity.ProcessLeave;
+import cn.gistack.desk.mapper.LeaveMapper;
+import cn.gistack.desk.service.ILeaveService;
+import cn.gistack.flow.core.constant.ProcessConstant;
+import cn.gistack.flow.core.entity.BladeFlow;
+import cn.gistack.flow.core.feign.IFlowClient;
+import cn.gistack.flow.core.utils.FlowUtil;
+import cn.gistack.flow.core.utils.TaskUtil;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Slf4j
+@Service
+@AllArgsConstructor
+public class LeaveServiceImpl extends BaseServiceImpl<LeaveMapper, ProcessLeave> implements ILeaveService {
+
+	private final IFlowClient flowClient;
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	// @GlobalTransactional
+	public boolean startProcess(ProcessLeave leave) {
+		String businessTable = FlowUtil.getBusinessTable(ProcessConstant.LEAVE_KEY);
+		if (Func.isEmpty(leave.getId())) {
+			// 保存leave
+			leave.setApplyTime(DateUtil.now());
+			save(leave);
+			// 启动流程
+			Kv variables = Kv.create()
+				.set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserName())
+				.set("taskUser", TaskUtil.getTaskUser(leave.getTaskUser()))
+				.set("days", DateUtil.between(leave.getStartTime(), leave.getEndTime()).toDays());
+			R<BladeFlow> result = flowClient.startProcessInstanceById(leave.getProcessDefinitionId(), FlowUtil.getBusinessKey(businessTable, String.valueOf(leave.getId())), variables);
+			if (result.isSuccess()) {
+				log.debug("流程已启动,流程ID:" + result.getData().getProcessInstanceId());
+				// 返回流程id写入leave
+				leave.setProcessInstanceId(result.getData().getProcessInstanceId());
+				updateById(leave);
+			} else {
+				throw new ServiceException("开启流程失败");
+			}
+		} else {
+
+			updateById(leave);
+		}
+		return true;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/impl/NoticeServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/impl/NoticeServiceImpl.java
new file mode 100644
index 0000000..3776de1
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/service/impl/NoticeServiceImpl.java
@@ -0,0 +1,43 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.desk.service.impl;
+
+import cn.gistack.desk.entity.Notice;
+import cn.gistack.desk.mapper.NoticeMapper;
+import cn.gistack.desk.service.INoticeService;
+import cn.gistack.desk.vo.NoticeVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springframework.stereotype.Service;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class NoticeServiceImpl extends BaseServiceImpl<NoticeMapper, Notice> implements INoticeService {
+
+	@Override
+	public IPage<NoticeVO> selectNoticePage(IPage<NoticeVO> page, NoticeVO notice) {
+		// 若不使用mybatis-plus自带的分页方法,则不会自动带入tenantId,所以我们需要自行注入
+		notice.setTenantId(AuthUtil.getTenantId());
+		return page.setRecords(baseMapper.selectNoticePage(page, notice));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/wrapper/NoticeWrapper.java b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/wrapper/NoticeWrapper.java
new file mode 100644
index 0000000..d36f152
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/java/cn/gistack/desk/wrapper/NoticeWrapper.java
@@ -0,0 +1,64 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.desk.wrapper;
+
+import cn.gistack.desk.entity.Notice;
+import cn.gistack.desk.vo.NoticeVO;
+import cn.gistack.system.cache.DictCache;
+import cn.gistack.system.enums.DictEnum;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
+
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * Notice包装类,返回视图层所需的字段
+ *
+ * @author Chill
+ */
+public class NoticeWrapper extends BaseEntityWrapper<Notice, NoticeVO> {
+
+	public static NoticeWrapper build() {
+		return new NoticeWrapper();
+	}
+
+	@Override
+	public NoticeVO entityVO(Notice notice) {
+		NoticeVO noticeVO = Objects.requireNonNull(BeanUtil.copy(notice, NoticeVO.class));
+		String dictValue = DictCache.getValue(DictEnum.NOTICE, noticeVO.getCategory());
+		noticeVO.setCategoryName(dictValue);
+		return noticeVO;
+	}
+
+	/**
+	 * 查询条件处理
+	 */
+	public void noticeQuery(Map<String, Object> notice) {
+		// 此场景仅在 pg数据库 map类型传参的情况下需要处理,entity传参已经包含数据类型,则无需关心
+		// 针对 pg数据库 int类型字段查询需要强转的处理示例
+		String searchKey = "category";
+		if (Func.isNotEmpty(notice.get(searchKey))) {
+			// 数据库字段为int类型,设置"="查询,具体查询参数请见 @org.springblade.core.mp.support.SqlKeyword
+			notice.put(searchKey.concat("_equal"), Func.toInt(notice.get(searchKey)));
+			// 默认"like"查询,pg数据库 场景会报错,所以将其删除
+			notice.remove(searchKey);
+		}
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/resources/application-dev.yml b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..2a4cb8c
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/resources/application-dev.yml
@@ -0,0 +1,11 @@
+#服务器端口
+server:
+  port: 8105
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.dev.url}
+    username: ${blade.datasource.dev.username}
+    password: ${blade.datasource.dev.password}
+
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/resources/application-prod.yml b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..08082e2
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/resources/application-prod.yml
@@ -0,0 +1,10 @@
+#服务器端口
+server:
+  port: 8105
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.prod.url}
+    username: ${blade.datasource.prod.username}
+    password: ${blade.datasource.prod.password}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/resources/application-test.yml
new file mode 100644
index 0000000..a40a289
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-desk/src/main/resources/application-test.yml
@@ -0,0 +1,10 @@
+#服务器端口
+server:
+  port: 8105
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.test.url}
+    username: ${blade.datasource.test.username}
+    password: ${blade.datasource.test.password}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/Dockerfile b/skjcmanager/skjcmanager-service/skjcmanager-system/Dockerfile
new file mode 100644
index 0000000..a0d72a8
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/Dockerfile
@@ -0,0 +1,15 @@
+FROM bladex/alpine-java:openjdk8-openj9_cn_slim
+
+MAINTAINER bladejava@qq.com
+
+RUN mkdir -p /blade/system
+
+WORKDIR /blade/system
+
+EXPOSE 8106
+
+ADD ./target/blade-system.jar ./app.jar
+
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
+
+CMD ["--spring.profiles.active=test"]
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/pom.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/pom.xml
new file mode 100644
index 0000000..c031c6e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/pom.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-service</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-system</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-boot</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-excel</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-swagger</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-system-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-user-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>dockerfile-maven-plugin</artifactId>
+                <configuration>
+                    <username>${docker.username}</username>
+                    <password>${docker.password}</password>
+                    <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+                    <tag>${project.version}</tag>
+                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+                    <buildArgs>
+                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+                    </buildArgs>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/SystemApplication.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/SystemApplication.java
new file mode 100644
index 0000000..e717bcc
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/SystemApplication.java
@@ -0,0 +1,38 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system;
+
+import cn.gistack.common.constant.AppsConstant;
+import org.springblade.core.cloud.client.BladeCloudApplication;
+import org.springblade.core.launch.BladeApplication;
+import org.springblade.core.launch.constant.AppConstant;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+/**
+ * 系统模块启动器
+ * @author Chill
+ */
+@BladeCloudApplication
+@EnableFeignClients(basePackages = "cn.gistack.system.user.feign")
+public class SystemApplication {
+
+	public static void main(String[] args) {
+		BladeApplication.run(AppsConstant.APPLICATION_SYSTEM_NAME, SystemApplication.class, args);
+	}
+
+}
+
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/ApiScopeController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/ApiScopeController.java
new file mode 100644
index 0000000..65a9fe3
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/ApiScopeController.java
@@ -0,0 +1,123 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.controller;
+
+import cn.gistack.system.wrapper.ApiScopeWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.entity.ApiScope;
+import cn.gistack.system.service.IApiScopeService;
+import cn.gistack.system.vo.ApiScopeVO;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
+/**
+ * 接口权限控制器
+ *
+ * @author BladeX
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("api-scope")
+@Api(value = "接口权限", tags = "接口权限")
+public class ApiScopeController extends BladeController {
+
+	private final IApiScopeService apiScopeService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入dataScope")
+	public R<ApiScope> detail(ApiScope dataScope) {
+		ApiScope detail = apiScopeService.getOne(Condition.getQueryWrapper(dataScope));
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入dataScope")
+	public R<IPage<ApiScopeVO>> list(ApiScope dataScope, Query query) {
+		IPage<ApiScope> pages = apiScopeService.page(Condition.getPage(query), Condition.getQueryWrapper(dataScope));
+		return R.data(ApiScopeWrapper.build().pageVO(pages));
+	}
+
+	/**
+	 * 新增
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "新增", notes = "传入dataScope")
+	public R save(@Valid @RequestBody ApiScope dataScope) {
+		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+		return R.status(apiScopeService.save(dataScope));
+	}
+
+	/**
+	 * 修改
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "修改", notes = "传入dataScope")
+	public R update(@Valid @RequestBody ApiScope dataScope) {
+		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+		return R.status(apiScopeService.updateById(dataScope));
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "新增或修改", notes = "传入dataScope")
+	public R submit(@Valid @RequestBody ApiScope dataScope) {
+		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+		return R.status(apiScopeService.saveOrUpdate(dataScope));
+	}
+
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+		return R.status(apiScopeService.deleteLogic(Func.toLongList(ids)));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/AuthClientController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/AuthClientController.java
new file mode 100644
index 0000000..ea319fa
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/AuthClientController.java
@@ -0,0 +1,120 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.entity.AuthClient;
+import cn.gistack.system.service.IAuthClientService;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.validation.Valid;
+
+/**
+ *  应用管理控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/client")
+@ApiIgnore
+@Api(value = "应用管理", tags = "接口")
+@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+public class AuthClientController extends BladeController {
+
+	private final IAuthClientService clientService;
+
+	/**
+	* 详情
+	*/
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入client")
+	public R<AuthClient> detail(AuthClient authClient) {
+		AuthClient detail = clientService.getOne(Condition.getQueryWrapper(authClient));
+		return R.data(detail);
+	}
+
+	/**
+	* 分页
+	*/
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入client")
+	public R<IPage<AuthClient>> list(AuthClient authClient, Query query) {
+		IPage<AuthClient> pages = clientService.page(Condition.getPage(query), Condition.getQueryWrapper(authClient));
+		return R.data(pages);
+	}
+
+	/**
+	* 新增
+	*/
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "新增", notes = "传入client")
+	public R save(@Valid @RequestBody AuthClient authClient) {
+		return R.status(clientService.save(authClient));
+	}
+
+	/**
+	* 修改
+	*/
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "修改", notes = "传入client")
+	public R update(@Valid @RequestBody AuthClient authClient) {
+		return R.status(clientService.updateById(authClient));
+	}
+
+	/**
+	* 新增或修改
+	*/
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "新增或修改", notes = "传入client")
+	public R submit(@Valid @RequestBody AuthClient authClient) {
+		return R.status(clientService.saveOrUpdate(authClient));
+	}
+
+
+	/**
+	* 删除
+	*/
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(clientService.deleteLogic(Func.toLongList(ids)));
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DataScopeController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DataScopeController.java
new file mode 100644
index 0000000..72f0cfb
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DataScopeController.java
@@ -0,0 +1,123 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.controller;
+
+import cn.gistack.system.vo.DataScopeVO;
+import cn.gistack.system.wrapper.DataScopeWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.entity.DataScope;
+import cn.gistack.system.service.IDataScopeService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
+/**
+ * 数据权限控制器
+ *
+ * @author BladeX
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("data-scope")
+@Api(value = "数据权限", tags = "数据权限")
+public class DataScopeController extends BladeController {
+
+	private final IDataScopeService dataScopeService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入dataScope")
+	public R<DataScope> detail(DataScope dataScope) {
+		DataScope detail = dataScopeService.getOne(Condition.getQueryWrapper(dataScope));
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入dataScope")
+	public R<IPage<DataScopeVO>> list(DataScope dataScope, Query query) {
+		IPage<DataScope> pages = dataScopeService.page(Condition.getPage(query), Condition.getQueryWrapper(dataScope));
+		return R.data(DataScopeWrapper.build().pageVO(pages));
+	}
+
+	/**
+	 * 新增
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "新增", notes = "传入dataScope")
+	public R save(@Valid @RequestBody DataScope dataScope) {
+		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+		return R.status(dataScopeService.save(dataScope));
+	}
+
+	/**
+	 * 修改
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "修改", notes = "传入dataScope")
+	public R update(@Valid @RequestBody DataScope dataScope) {
+		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+		return R.status(dataScopeService.updateById(dataScope));
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "新增或修改", notes = "传入dataScope")
+	public R submit(@Valid @RequestBody DataScope dataScope) {
+		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+		return R.status(dataScopeService.saveOrUpdate(dataScope));
+	}
+
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+		return R.status(dataScopeService.deleteLogic(Func.toLongList(ids)));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DeptController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DeptController.java
new file mode 100644
index 0000000..fd8aab6
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DeptController.java
@@ -0,0 +1,179 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.controller;
+
+import cn.gistack.system.vo.DeptVO;
+import cn.gistack.system.wrapper.DeptWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.secure.constant.AuthConstant;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.cache.DictCache;
+import cn.gistack.system.entity.Dept;
+import cn.gistack.system.enums.DictEnum;
+import cn.gistack.system.service.IDeptService;
+import cn.gistack.system.user.cache.UserCache;
+import cn.gistack.system.user.entity.User;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
+/**
+ * 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dept")
+@Api(value = "部门", tags = "部门")
+@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+public class DeptController extends BladeController {
+
+	private final IDeptService deptService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入dept")
+	public R<DeptVO> detail(Dept dept) {
+		Dept detail = deptService.getOne(Condition.getQueryWrapper(dept));
+		return R.data(DeptWrapper.build().entityVO(detail));
+	}
+
+	/**
+	 * 列表
+	 */
+	@GetMapping("/list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "deptName", value = "部门名称", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "fullName", value = "部门全称", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "列表", notes = "传入dept")
+	public R<List<DeptVO>> list(@ApiIgnore @RequestParam Map<String, Object> dept, BladeUser bladeUser) {
+		QueryWrapper<Dept> queryWrapper = Condition.getQueryWrapper(dept, Dept.class);
+		List<Dept> list = deptService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Dept::getTenantId, bladeUser.getTenantId()) : queryWrapper);
+		return R.data(DeptWrapper.build().listNodeVO(list));
+	}
+
+	/**
+	 * 懒加载列表
+	 */
+	@GetMapping("/lazy-list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "deptName", value = "部门名称", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "fullName", value = "部门全称", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "懒加载列表", notes = "传入dept")
+	public R<List<DeptVO>> lazyList(@ApiIgnore @RequestParam Map<String, Object> dept, Long parentId, BladeUser bladeUser) {
+		List<DeptVO> list = deptService.lazyList(bladeUser.getTenantId(), parentId, dept);
+		return R.data(DeptWrapper.build().listNodeLazyVO(list));
+	}
+
+	/**
+	 * 获取部门树形结构
+	 *
+	 * @return
+	 */
+	@GetMapping("/tree")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "树形结构", notes = "树形结构")
+	public R<List<DeptVO>> tree(String tenantId, BladeUser bladeUser) {
+		List<DeptVO> tree = deptService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
+		return R.data(tree);
+	}
+
+	/**
+	 * 懒加载获取部门树形结构
+	 */
+	@GetMapping("/lazy-tree")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "懒加载树形结构", notes = "树形结构")
+	public R<List<DeptVO>> lazyTree(String tenantId, Long parentId, BladeUser bladeUser) {
+		List<DeptVO> tree = deptService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId);
+		return R.data(tree);
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入dept")
+	public R submit(@Valid @RequestBody Dept dept) {
+		if (deptService.submit(dept)) {
+			CacheUtil.clear(SYS_CACHE);
+			// 返回懒加载树更新节点所需字段
+			Kv kv = Kv.create().set("id", String.valueOf(dept.getId())).set("tenantId", dept.getTenantId())
+				.set("deptCategoryName", DictCache.getValue(DictEnum.ORG_CATEGORY, dept.getDeptCategory()));
+			return R.data(kv);
+		}
+		return R.fail("操作失败");
+	}
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		CacheUtil.clear(SYS_CACHE);
+		return R.status(deptService.removeDept(ids));
+	}
+
+	/**
+	 * 下拉数据源
+	 */
+	@PreAuth(AuthConstant.PERMIT_ALL)
+	@GetMapping("/select")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "下拉数据源", notes = "传入id集合")
+	public R<List<Dept>> select(Long userId, String deptId) {
+		if (Func.isNotEmpty(userId)) {
+			User user = UserCache.getUser(userId);
+			deptId = user.getDeptId();
+		}
+		List<Dept> list = deptService.list(Wrappers.<Dept>lambdaQuery().in(Dept::getId, Func.toLongList(deptId)));
+		return R.data(list);
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DictBizController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DictBizController.java
new file mode 100644
index 0000000..e3c5afa
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DictBizController.java
@@ -0,0 +1,179 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.controller;
+
+import cn.gistack.system.wrapper.DictBizWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import cn.gistack.system.entity.DictBiz;
+import cn.gistack.system.service.IDictBizService;
+import cn.gistack.system.vo.DictBizVO;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+import static org.springblade.core.cache.constant.CacheConstant.DICT_CACHE;
+
+/**
+ * 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dict-biz")
+@Api(value = "业务字典", tags = "业务字典")
+public class DictBizController extends BladeController {
+
+	private final IDictBizService dictService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入dict")
+	public R<DictBizVO> detail(DictBiz dict) {
+		DictBiz detail = dictService.getOne(Condition.getQueryWrapper(dict));
+		return R.data(DictBizWrapper.build().entityVO(detail));
+	}
+
+	/**
+	 * 列表
+	 */
+	@GetMapping("/list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "code", value = "字典编号", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "dictValue", value = "字典名称", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "列表", notes = "传入dict")
+	public R<List<DictBizVO>> list(@ApiIgnore @RequestParam Map<String, Object> dict) {
+		List<DictBiz> list = dictService.list(Condition.getQueryWrapper(dict, DictBiz.class).lambda().orderByAsc(DictBiz::getSort));
+		return R.data(DictBizWrapper.build().listNodeVO(list));
+	}
+
+	/**
+	 * 顶级列表
+	 */
+	@GetMapping("/parent-list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "code", value = "字典编号", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "dictValue", value = "字典名称", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "列表", notes = "传入dict")
+	public R<IPage<DictBizVO>> parentList(@ApiIgnore @RequestParam Map<String, Object> dict, Query query) {
+		return R.data(dictService.parentList(dict, query));
+	}
+
+	/**
+	 * 子列表
+	 */
+	@GetMapping("/child-list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "code", value = "字典编号", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "dictValue", value = "字典名称", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "parentId", value = "字典名称", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "列表", notes = "传入dict")
+	public R<List<DictBizVO>> childList(@ApiIgnore @RequestParam Map<String, Object> dict, @RequestParam(required = false, defaultValue = "-1") Long parentId) {
+		return R.data(dictService.childList(dict, parentId));
+	}
+
+	/**
+	 * 获取字典树形结构
+	 */
+	@GetMapping("/tree")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "树形结构", notes = "树形结构")
+	public R<List<DictBizVO>> tree() {
+		List<DictBizVO> tree = dictService.tree();
+		return R.data(tree);
+	}
+
+	/**
+	 * 获取字典树形结构
+	 */
+	@GetMapping("/parent-tree")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "树形结构", notes = "树形结构")
+	public R<List<DictBizVO>> parentTree() {
+		List<DictBizVO> tree = dictService.parentTree();
+		return R.data(tree);
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入dict")
+	public R submit(@Valid @RequestBody DictBiz dict) {
+		CacheUtil.clear(DICT_CACHE);
+		return R.status(dictService.submit(dict));
+	}
+
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		CacheUtil.clear(DICT_CACHE);
+		return R.status(dictService.removeDict(ids));
+	}
+
+	/**
+	 * 获取字典
+	 */
+	@GetMapping("/dictionary")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "获取字典", notes = "获取字典")
+	public R<List<DictBiz>> dictionary(String code) {
+		List<DictBiz> tree = dictService.getList(code);
+		return R.data(tree);
+	}
+
+	/**
+	 * 获取字典树
+	 */
+	@GetMapping("/dictionary-tree")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "获取字典树", notes = "获取字典树")
+	public R<List<DictBizVO>> dictionaryTree(String code) {
+		List<DictBiz> tree = dictService.getList(code);
+		return R.data(DictBizWrapper.build().listNodeVO(tree));
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DictController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DictController.java
new file mode 100644
index 0000000..d90966c
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/DictController.java
@@ -0,0 +1,196 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import cn.gistack.common.constant.CommonConstant;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.StringPool;
+import cn.gistack.system.entity.Dict;
+import cn.gistack.system.service.IDictService;
+import cn.gistack.system.vo.DictVO;
+import cn.gistack.system.wrapper.DictWrapper;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+import static org.springblade.core.cache.constant.CacheConstant.DICT_CACHE;
+
+
+/**
+ * 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dict")
+@Api(value = "字典", tags = "字典")
+public class DictController extends BladeController {
+
+	private final IDictService dictService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入dict")
+	public R<DictVO> detail(Dict dict) {
+		Dict detail = dictService.getOne(Condition.getQueryWrapper(dict));
+		return R.data(DictWrapper.build().entityVO(detail));
+	}
+
+	/**
+	 * 列表
+	 */
+	@GetMapping("/list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "code", value = "字典编号", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "dictValue", value = "字典名称", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "列表", notes = "传入dict")
+	public R<List<DictVO>> list(@ApiIgnore @RequestParam Map<String, Object> dict) {
+		List<Dict> list = dictService.list(Condition.getQueryWrapper(dict, Dict.class).lambda().orderByAsc(Dict::getSort));
+		DictWrapper dictWrapper = new DictWrapper();
+		return R.data(dictWrapper.listNodeVO(list));
+	}
+
+	/**
+	 * 顶级列表
+	 */
+	@GetMapping("/parent-list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "code", value = "字典编号", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "dictValue", value = "字典名称", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "列表", notes = "传入dict")
+	public R<IPage<DictVO>> parentList(@ApiIgnore @RequestParam Map<String, Object> dict, Query query) {
+		return R.data(dictService.parentList(dict, query));
+	}
+
+	/**
+	 * 子列表
+	 */
+	@GetMapping("/child-list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "code", value = "字典编号", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "dictValue", value = "字典名称", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "parentId", value = "字典名称", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "列表", notes = "传入dict")
+	public R<List<DictVO>> childList(@ApiIgnore @RequestParam Map<String, Object> dict, @RequestParam(required = false, defaultValue = "-1") Long parentId) {
+		return R.data(dictService.childList(dict, parentId));
+	}
+
+	/**
+	 * 获取字典树形结构
+	 */
+	@GetMapping("/tree")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "树形结构", notes = "树形结构")
+	public R<List<DictVO>> tree() {
+		List<DictVO> tree = dictService.tree();
+		return R.data(tree);
+	}
+
+	/**
+	 * 获取字典树形结构
+	 */
+	@GetMapping("/parent-tree")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "树形结构", notes = "树形结构")
+	public R<List<DictVO>> parentTree() {
+		List<DictVO> tree = dictService.parentTree();
+		return R.data(tree);
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入dict")
+	public R submit(@Valid @RequestBody Dict dict) {
+		CacheUtil.clear(DICT_CACHE, Boolean.FALSE);
+		return R.status(dictService.submit(dict));
+	}
+
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		CacheUtil.clear(DICT_CACHE, Boolean.FALSE);
+		return R.status(dictService.removeDict(ids));
+	}
+
+	/**
+	 * 获取字典
+	 */
+	@GetMapping("/dictionary")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "获取字典", notes = "获取字典")
+	public R<List<Dict>> dictionary(String code) {
+		List<Dict> tree = dictService.getList(code);
+		return R.data(tree);
+	}
+
+	/**
+	 * 获取字典树
+	 */
+	@GetMapping("/dictionary-tree")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "获取字典树", notes = "获取字典树")
+	public R<List<DictVO>> dictionaryTree(String code) {
+		List<Dict> tree = dictService.getList(code);
+		return R.data(DictWrapper.build().listNodeVO(tree));
+	}
+
+	/**
+	 * 字典键值列表
+	 */
+	@GetMapping("/select")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "字典键值列表", notes = "字典键值列表")
+	public R<List<Dict>> select() {
+		List<Dict> list = dictService.list(Wrappers.<Dict>query().lambda().eq(Dict::getParentId, CommonConstant.TOP_PARENT_ID));
+		list.forEach(dict -> dict.setDictValue(dict.getCode() + StringPool.COLON + StringPool.SPACE + dict.getDictValue()));
+		return R.data(list);
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/MenuController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/MenuController.java
new file mode 100644
index 0000000..dfe346e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/MenuController.java
@@ -0,0 +1,286 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.controller;
+
+import cn.gistack.system.vo.GrantTreeVO;
+import cn.gistack.system.wrapper.MenuWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.node.TreeNode;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.entity.Menu;
+import cn.gistack.system.entity.TopMenu;
+import cn.gistack.system.service.IMenuService;
+import cn.gistack.system.service.ITopMenuService;
+import cn.gistack.system.vo.CheckedTreeVO;
+import cn.gistack.system.vo.MenuVO;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+import static org.springblade.core.cache.constant.CacheConstant.MENU_CACHE;
+
+
+/**
+ * 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/menu")
+@Api(value = "菜单", tags = "菜单")
+public class MenuController extends BladeController {
+
+	private final IMenuService menuService;
+	private final ITopMenuService topMenuService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入menu")
+	public R<MenuVO> detail(Menu menu) {
+		Menu detail = menuService.getOne(Condition.getQueryWrapper(menu));
+		return R.data(MenuWrapper.build().entityVO(detail));
+	}
+
+	/**
+	 * 列表
+	 */
+	@GetMapping("/list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "code", value = "菜单编号", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "name", value = "菜单名称", paramType = "query", dataType = "string")
+	})
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "列表", notes = "传入menu")
+	public R<List<MenuVO>> list(@ApiIgnore @RequestParam Map<String, Object> menu) {
+		List<Menu> list = menuService.list(Condition.getQueryWrapper(menu, Menu.class).lambda().orderByAsc(Menu::getSort));
+		return R.data(MenuWrapper.build().listNodeVO(list));
+	}
+
+	/**
+	 * 懒加载列表
+	 */
+	@GetMapping("/lazy-list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "code", value = "菜单编号", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "name", value = "菜单名称", paramType = "query", dataType = "string")
+	})
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "懒加载列表", notes = "传入menu")
+	public R<List<MenuVO>> lazyList(Long parentId, @ApiIgnore @RequestParam Map<String, Object> menu) {
+		List<MenuVO> list = menuService.lazyList(parentId, menu);
+		return R.data(MenuWrapper.build().listNodeLazyVO(list));
+	}
+
+	/**
+	 * 菜单列表
+	 */
+	@GetMapping("/menu-list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "code", value = "菜单编号", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "name", value = "菜单名称", paramType = "query", dataType = "string")
+	})
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "菜单列表", notes = "传入menu")
+	public R<List<MenuVO>> menuList(@ApiIgnore @RequestParam Map<String, Object> menu) {
+		List<Menu> list = menuService.list(Condition.getQueryWrapper(menu, Menu.class).lambda().eq(Menu::getCategory, 1).orderByAsc(Menu::getSort));
+		return R.data(MenuWrapper.build().listNodeVO(list));
+	}
+
+	/**
+	 * 懒加载菜单列表
+	 */
+	@GetMapping("/lazy-menu-list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "code", value = "菜单编号", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "name", value = "菜单名称", paramType = "query", dataType = "string")
+	})
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "懒加载菜单列表", notes = "传入menu")
+	public R<List<MenuVO>> lazyMenuList(Long parentId, @ApiIgnore @RequestParam Map<String, Object> menu) {
+		List<MenuVO> list = menuService.lazyMenuList(parentId, menu);
+		return R.data(MenuWrapper.build().listNodeLazyVO(list));
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入menu")
+	public R submit(@Valid @RequestBody Menu menu) {
+		if (menuService.submit(menu)) {
+			CacheUtil.clear(MENU_CACHE);
+			CacheUtil.clear(MENU_CACHE, Boolean.FALSE);
+			// 返回懒加载树更新节点所需字段
+			Kv kv = Kv.create().set("id", String.valueOf(menu.getId()));
+			return R.data(kv);
+		}
+		return R.fail("操作失败");
+	}
+
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		CacheUtil.clear(MENU_CACHE);
+		CacheUtil.clear(MENU_CACHE, Boolean.FALSE);
+		return R.status(menuService.removeMenu(ids));
+	}
+
+	/**
+	 * 前端菜单数据
+	 */
+	@GetMapping("/routes")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "前端菜单数据", notes = "前端菜单数据")
+	public R<List<MenuVO>> routes(BladeUser user, Long topMenuId) {
+		List<MenuVO> list = menuService.routes((user == null) ? null : user.getRoleId(), topMenuId);
+		return R.data(list);
+	}
+
+	/**
+	 * 前端按钮数据
+	 */
+	@GetMapping("/buttons")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "前端按钮数据", notes = "前端按钮数据")
+	public R<List<MenuVO>> buttons(BladeUser user) {
+		List<MenuVO> list = menuService.buttons(user.getRoleId());
+		return R.data(list);
+	}
+
+	/**
+	 * 获取菜单树形结构
+	 */
+	@GetMapping("/tree")
+	@ApiOperationSupport(order = 11)
+	@ApiOperation(value = "树形结构", notes = "树形结构")
+	public R<List<TreeNode>> tree() {
+		List<TreeNode> tree = menuService.tree();
+		return R.data(tree);
+	}
+
+	/**
+	 * 获取权限分配树形结构
+	 */
+	@GetMapping("/grant-tree")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "权限分配树形结构", notes = "权限分配树形结构")
+	public R<GrantTreeVO> grantTree(BladeUser user) {
+		GrantTreeVO vo = new GrantTreeVO();
+		vo.setMenu(menuService.grantTree(user));
+		vo.setDataScope(menuService.grantDataScopeTree(user));
+		vo.setApiScope(menuService.grantApiScopeTree(user));
+		return R.data(vo);
+	}
+
+	/**
+	 * 获取权限分配树形结构
+	 */
+	@GetMapping("/role-tree-keys")
+	@ApiOperationSupport(order = 13)
+	@ApiOperation(value = "角色所分配的树", notes = "角色所分配的树")
+	public R<CheckedTreeVO> roleTreeKeys(String roleIds) {
+		CheckedTreeVO vo = new CheckedTreeVO();
+		vo.setMenu(menuService.roleTreeKeys(roleIds));
+		vo.setDataScope(menuService.dataScopeTreeKeys(roleIds));
+		vo.setApiScope(menuService.apiScopeTreeKeys(roleIds));
+		return R.data(vo);
+	}
+
+	/**
+	 * 获取顶部菜单树形结构
+	 */
+	@GetMapping("/grant-top-tree")
+	@ApiOperationSupport(order = 14)
+	@ApiOperation(value = "顶部菜单树形结构", notes = "顶部菜单树形结构")
+	public R<GrantTreeVO> grantTopTree(BladeUser user) {
+		GrantTreeVO vo = new GrantTreeVO();
+		vo.setMenu(menuService.grantTopTree(user));
+		return R.data(vo);
+	}
+
+	/**
+	 * 获取顶部菜单树形结构
+	 */
+	@GetMapping("/top-tree-keys")
+	@ApiOperationSupport(order = 15)
+	@ApiOperation(value = "顶部菜单所分配的树", notes = "顶部菜单所分配的树")
+	public R<CheckedTreeVO> topTreeKeys(String topMenuIds) {
+		CheckedTreeVO vo = new CheckedTreeVO();
+		vo.setMenu(menuService.topTreeKeys(topMenuIds));
+		return R.data(vo);
+	}
+
+	/**
+	 * 顶部菜单数据
+	 */
+	@GetMapping("/top-menu")
+	@ApiOperationSupport(order = 16)
+	@ApiOperation(value = "顶部菜单数据", notes = "顶部菜单数据")
+	public R<List<TopMenu>> topMenu(BladeUser user) {
+		if (Func.isEmpty(user)) {
+			return null;
+		}
+		List<TopMenu> list = topMenuService.list(Wrappers.<TopMenu>query().lambda().orderByAsc(TopMenu::getSort));
+		return R.data(list);
+	}
+
+	/**
+	 * 获取配置的角色权限
+	 */
+	@GetMapping("auth-routes")
+	@ApiOperationSupport(order = 17)
+	@ApiOperation(value = "菜单的角色权限")
+	public R<List<Kv>> authRoutes(BladeUser user) {
+		if (Func.isEmpty(user)) {
+			return null;
+		}
+		return R.data(menuService.authRoutes(user));
+	}
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/ParamController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/ParamController.java
new file mode 100644
index 0000000..c455716
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/ParamController.java
@@ -0,0 +1,107 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.entity.Param;
+import cn.gistack.system.service.IParamService;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.validation.Valid;
+import java.util.Map;
+
+import static org.springblade.core.cache.constant.CacheConstant.PARAM_CACHE;
+
+/**
+ * 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/param")
+@Api(value = "参数管理", tags = "接口")
+public class ParamController extends BladeController {
+
+	private final IParamService paramService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入param")
+	public R<Param> detail(Param param) {
+		Param detail = paramService.getOne(Condition.getQueryWrapper(param));
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页
+	 */
+	@GetMapping("/list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "paramName", value = "参数名称", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "paramKey", value = "参数键名", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "paramValue", value = "参数键值", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入param")
+	public R<IPage<Param>> list(@ApiIgnore @RequestParam Map<String, Object> param, Query query) {
+		IPage<Param> pages = paramService.page(Condition.getPage(query), Condition.getQueryWrapper(param, Param.class));
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "新增或修改", notes = "传入param")
+	public R submit(@Valid @RequestBody Param param) {
+		CacheUtil.clear(PARAM_CACHE);
+		CacheUtil.clear(PARAM_CACHE, Boolean.FALSE);
+		return R.status(paramService.saveOrUpdate(param));
+	}
+
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		CacheUtil.clear(PARAM_CACHE);
+		CacheUtil.clear(PARAM_CACHE, Boolean.FALSE);
+		return R.status(paramService.deleteLogic(Func.toLongList(ids)));
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/PostController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/PostController.java
new file mode 100644
index 0000000..caaab25
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/PostController.java
@@ -0,0 +1,149 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.controller;
+
+import cn.gistack.system.wrapper.PostWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.entity.Post;
+import cn.gistack.system.service.IPostService;
+import cn.gistack.system.vo.PostVO;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
+/**
+ * 岗位表 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/post")
+@Api(value = "岗位", tags = "岗位")
+public class PostController extends BladeController {
+
+	private final IPostService postService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入post")
+	public R<PostVO> detail(Post post) {
+		Post detail = postService.getOne(Condition.getQueryWrapper(post));
+		return R.data(PostWrapper.build().entityVO(detail));
+	}
+
+	/**
+	 * 分页 岗位表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入post")
+	public R<IPage<PostVO>> list(Post post, Query query) {
+		IPage<Post> pages = postService.page(Condition.getPage(query), Condition.getQueryWrapper(post));
+		return R.data(PostWrapper.build().pageVO(pages));
+	}
+
+
+	/**
+	 * 自定义分页 岗位表
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "分页", notes = "传入post")
+	public R<IPage<PostVO>> page(PostVO post, Query query) {
+		IPage<PostVO> pages = postService.selectPostPage(Condition.getPage(query), post);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 岗位表
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入post")
+	public R save(@Valid @RequestBody Post post) {
+		CacheUtil.clear(SYS_CACHE);
+		return R.status(postService.save(post));
+	}
+
+	/**
+	 * 修改 岗位表
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入post")
+	public R update(@Valid @RequestBody Post post) {
+		CacheUtil.clear(SYS_CACHE);
+		return R.status(postService.updateById(post));
+	}
+
+	/**
+	 * 新增或修改 岗位表
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入post")
+	public R submit(@Valid @RequestBody Post post) {
+		CacheUtil.clear(SYS_CACHE);
+		return R.status(postService.saveOrUpdate(post));
+	}
+
+
+	/**
+	 * 删除 岗位表
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		CacheUtil.clear(SYS_CACHE);
+		return R.status(postService.deleteLogic(Func.toLongList(ids)));
+	}
+
+	/**
+	 * 下拉数据源
+	 */
+	@GetMapping("/select")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "下拉数据源", notes = "传入post")
+	public R<List<Post>> select(String tenantId, BladeUser bladeUser) {
+		List<Post> list = postService.list(Wrappers.<Post>query().lambda().eq(Post::getTenantId, Func.toStrWithEmpty(tenantId, bladeUser.getTenantId())));
+		return R.data(list);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/RegionController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/RegionController.java
new file mode 100644
index 0000000..1df1ca6
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/RegionController.java
@@ -0,0 +1,202 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.controller;
+
+import cn.gistack.system.vo.RegionVO;
+import cn.gistack.system.wrapper.RegionWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.DateUtil;
+import cn.gistack.system.entity.Region;
+import cn.gistack.system.excel.RegionExcel;
+import cn.gistack.system.excel.RegionImporter;
+import cn.gistack.system.service.IRegionService;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 行政区划表 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/region")
+@Api(value = "行政区划", tags = "行政区划")
+public class RegionController extends BladeController {
+
+	private final IRegionService regionService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入region")
+	public R<RegionVO> detail(Region region) {
+		Region detail = regionService.getOne(Condition.getQueryWrapper(region));
+		return R.data(RegionWrapper.build().entityVO(detail));
+	}
+
+	/**
+	 * 分页 行政区划表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入region")
+	public R<IPage<Region>> list(Region region, Query query) {
+		IPage<Region> pages = regionService.page(Condition.getPage(query), Condition.getQueryWrapper(region));
+		return R.data(pages);
+	}
+
+	/**
+	 * 懒加载列表
+	 */
+	@GetMapping("/lazy-list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "code", value = "区划编号", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "name", value = "区划名称", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "懒加载列表", notes = "传入menu")
+	public R<List<RegionVO>> lazyList(String parentCode, @ApiIgnore @RequestParam Map<String, Object> menu) {
+		List<RegionVO> list = regionService.lazyList(parentCode, menu);
+		return R.data(RegionWrapper.build().listNodeLazyVO(list));
+	}
+
+	/**
+	 * 懒加载列表
+	 */
+	@GetMapping("/lazy-tree")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "code", value = "区划编号", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "name", value = "区划名称", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "懒加载列表", notes = "传入menu")
+	public R<List<RegionVO>> lazyTree(String parentCode, @ApiIgnore @RequestParam Map<String, Object> menu) {
+		List<RegionVO> list = regionService.lazyTree(parentCode, menu);
+		return R.data(RegionWrapper.build().listNodeLazyVO(list));
+	}
+
+	/**
+	 * 新增 行政区划表
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "新增", notes = "传入region")
+	public R save(@Valid @RequestBody Region region) {
+		return R.status(regionService.save(region));
+	}
+
+	/**
+	 * 修改 行政区划表
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "修改", notes = "传入region")
+	public R update(@Valid @RequestBody Region region) {
+		return R.status(regionService.updateById(region));
+	}
+
+	/**
+	 * 新增或修改 行政区划表
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "新增或修改", notes = "传入region")
+	public R submit(@Valid @RequestBody Region region) {
+		return R.status(regionService.submit(region));
+	}
+
+
+	/**
+	 * 删除 行政区划表
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "删除", notes = "传入主键")
+	public R remove(@ApiParam(value = "主键", required = true) @RequestParam String id) {
+		return R.status(regionService.removeRegion(id));
+	}
+
+	/**
+	 * 行政区划下拉数据源
+	 */
+	@GetMapping("/select")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "下拉数据源", notes = "传入tenant")
+	public R<List<Region>> select(@RequestParam(required = false, defaultValue = "00") String code) {
+		List<Region> list = regionService.list(Wrappers.<Region>query().lambda().eq(Region::getParentCode, code));
+		return R.data(list);
+	}
+
+	/**
+	 * 导入行政区划数据
+	 */
+	@PostMapping("import-region")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "导入行政区划", notes = "传入excel")
+	public R importRegion(MultipartFile file, Integer isCovered) {
+		RegionImporter regionImporter = new RegionImporter(regionService, isCovered == 1);
+		ExcelUtil.save(file, regionImporter, RegionExcel.class);
+		return R.success("操作成功");
+	}
+
+	/**
+	 * 导出行政区划数据
+	 */
+	@GetMapping("export-region")
+	@ApiOperationSupport(order = 11)
+	@ApiOperation(value = "导出行政区划", notes = "传入user")
+	public void exportRegion(@ApiIgnore @RequestParam Map<String, Object> region, HttpServletResponse response) {
+		QueryWrapper<Region> queryWrapper = Condition.getQueryWrapper(region, Region.class);
+		List<RegionExcel> list = regionService.exportRegion(queryWrapper);
+		ExcelUtil.export(response, "行政区划数据" + DateUtil.time(), "行政区划数据表", list, RegionExcel.class);
+	}
+
+	/**
+	 * 导出模板
+	 */
+	@GetMapping("export-template")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导出模板")
+	public void exportUser(HttpServletResponse response) {
+		List<RegionExcel> list = new ArrayList<>();
+		ExcelUtil.export(response, "行政区划模板", "行政区划表", list, RegionExcel.class);
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/RoleController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/RoleController.java
new file mode 100644
index 0000000..938b1ed
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/RoleController.java
@@ -0,0 +1,171 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.controller;
+
+import cn.gistack.system.vo.GrantVO;
+import cn.gistack.system.vo.RoleVO;
+import cn.gistack.system.wrapper.RoleWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.secure.constant.AuthConstant;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.cache.SysCache;
+import cn.gistack.system.entity.Role;
+import cn.gistack.system.service.IRoleService;
+import cn.gistack.system.user.cache.UserCache;
+import cn.gistack.system.user.entity.User;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
+/**
+ * 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/role")
+@Api(value = "角色", tags = "角色")
+@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+public class RoleController extends BladeController {
+
+	private final IRoleService roleService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入role")
+	public R<RoleVO> detail(Role role) {
+		Role detail = roleService.getOne(Condition.getQueryWrapper(role));
+		return R.data(RoleWrapper.build().entityVO(detail));
+	}
+
+	/**
+	 * 列表
+	 */
+	@GetMapping("/list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "roleName", value = "参数名称", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "roleAlias", value = "角色别名", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "列表", notes = "传入role")
+	public R<List<RoleVO>> list(@ApiIgnore @RequestParam Map<String, Object> role, BladeUser bladeUser) {
+		QueryWrapper<Role> queryWrapper = Condition.getQueryWrapper(role, Role.class);
+		List<Role> list = roleService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Role::getTenantId, bladeUser.getTenantId()) : queryWrapper);
+		return R.data(RoleWrapper.build().listNodeVO(list));
+	}
+
+	/**
+	 * 获取角色树形结构
+	 */
+	@GetMapping("/tree")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "树形结构", notes = "树形结构")
+	public R<List<RoleVO>> tree(String tenantId, BladeUser bladeUser) {
+		List<RoleVO> tree = roleService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
+		return R.data(tree);
+	}
+
+	/**
+	 * 获取指定角色树形结构
+	 */
+	@GetMapping("/tree-by-id")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "树形结构", notes = "树形结构")
+	public R<List<RoleVO>> treeById(Long roleId, BladeUser bladeUser) {
+		Role role = SysCache.getRole(roleId);
+		List<RoleVO> tree = roleService.tree(Func.notNull(role) ? role.getTenantId() : bladeUser.getTenantId());
+		return R.data(tree);
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "新增或修改", notes = "传入role")
+	public R submit(@Valid @RequestBody Role role) {
+		CacheUtil.clear(SYS_CACHE);
+		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+		return R.status(roleService.submit(role));
+	}
+
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		CacheUtil.clear(SYS_CACHE);
+		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+		return R.status(roleService.removeRole(ids));
+	}
+
+	/**
+	 * 设置角色权限
+	 */
+	@PostMapping("/grant")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "权限设置", notes = "传入roleId集合以及menuId集合")
+	public R grant(@RequestBody GrantVO grantVO) {
+		CacheUtil.clear(SYS_CACHE);
+		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+		boolean temp = roleService.grant(grantVO.getRoleIds(), grantVO.getMenuIds(), grantVO.getDataScopeIds(), grantVO.getApiScopeIds());
+		return R.status(temp);
+	}
+
+	/**
+	 * 下拉数据源
+	 */
+	@PreAuth(AuthConstant.PERMIT_ALL)
+	@GetMapping("/select")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "下拉数据源", notes = "传入id集合")
+	public R<List<Role>> select(Long userId, String roleId) {
+		if (Func.isNotEmpty(userId)) {
+			User user = UserCache.getUser(userId);
+			roleId = user.getRoleId();
+		}
+		List<Role> list = roleService.list(Wrappers.<Role>lambdaQuery().in(Role::getId, Func.toLongList(roleId)));
+		return R.data(list);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/SearchController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/SearchController.java
new file mode 100644
index 0000000..2c31488
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/SearchController.java
@@ -0,0 +1,98 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.controller;
+
+import cn.gistack.system.wrapper.PostWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.entity.Post;
+import cn.gistack.system.service.IDeptService;
+import cn.gistack.system.service.IPostService;
+import cn.gistack.system.service.IRoleService;
+import cn.gistack.system.vo.DeptVO;
+import cn.gistack.system.vo.PostVO;
+import cn.gistack.system.vo.RoleVO;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 查询控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/search")
+@Api(value = "查询", tags = "查询")
+public class SearchController {
+
+	private final IRoleService roleService;
+
+	private final IDeptService deptService;
+
+	private final IPostService postService;
+
+	/**
+	 * 角色信息查询
+	 */
+	@GetMapping("/role")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "角色信息查询", notes = "传入roleName或者parentId")
+	public R<List<RoleVO>> roleSearch(String roleName, Long parentId) {
+		return R.data(roleService.search(roleName, parentId));
+	}
+
+	/**
+	 * 部门信息查询
+	 */
+	@GetMapping("/dept")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "部门信息查询", notes = "传入deptName或者parentId")
+	public R<List<DeptVO>> deptSearch(String deptName, Long parentId) {
+		return R.data(deptService.search(deptName, parentId));
+	}
+
+	/**
+	 * 岗位信息查询
+	 */
+	@GetMapping("/post")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "岗位信息查询", notes = "传入postName")
+	public R<IPage<PostVO>> postSearch(String postName, Query query) {
+		LambdaQueryWrapper<Post> queryWrapper = Wrappers.<Post>query().lambda();
+		if (Func.isNotBlank(postName)) {
+			queryWrapper.like(Post::getPostName, postName);
+		}
+		IPage<Post> pages = postService.page(Condition.getPage(query), queryWrapper);
+		return R.data(PostWrapper.build().pageVO(pages));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/TenantController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/TenantController.java
new file mode 100644
index 0000000..9953d8f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/TenantController.java
@@ -0,0 +1,235 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.entity.Tenant;
+import cn.gistack.system.entity.TenantPackage;
+import cn.gistack.system.service.ITenantPackageService;
+import cn.gistack.system.service.ITenantService;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.validation.Valid;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+import static org.springblade.core.tenant.constant.TenantBaseConstant.TENANT_DATASOURCE_CACHE;
+import static org.springblade.core.tenant.constant.TenantBaseConstant.TENANT_DATASOURCE_EXIST_KEY;
+import static cn.gistack.system.cache.SysCache.TENANT_PACKAGE_ID;
+import static cn.gistack.system.cache.SysCache.TENANT_TENANT_ID;
+
+/**
+ * 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@ApiIgnore
+@RestController
+@AllArgsConstructor
+@RequestMapping("/tenant")
+@Api(value = "租户管理", tags = "接口")
+public class TenantController extends BladeController {
+
+	private final ITenantService tenantService;
+
+	private final ITenantPackageService tenantPackageService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入tenant")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R<Tenant> detail(Tenant tenant) {
+		Tenant detail = tenantService.getOne(Condition.getQueryWrapper(tenant));
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页
+	 */
+	@GetMapping("/list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "tenantId", value = "参数名称", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "tenantName", value = "角色别名", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "contactNumber", value = "联系电话", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入tenant")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R<IPage<Tenant>> list(@ApiIgnore @RequestParam Map<String, Object> tenant, Query query, BladeUser bladeUser) {
+		QueryWrapper<Tenant> queryWrapper = Condition.getQueryWrapper(tenant, Tenant.class);
+		IPage<Tenant> pages = tenantService.page(Condition.getPage(query), (!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, bladeUser.getTenantId()) : queryWrapper);
+		return R.data(pages);
+	}
+
+	/**
+	 * 下拉数据源
+	 */
+	@GetMapping("/select")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "下拉数据源", notes = "传入tenant")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R<List<Tenant>> select(Tenant tenant, BladeUser bladeUser) {
+		QueryWrapper<Tenant> queryWrapper = Condition.getQueryWrapper(tenant);
+		List<Tenant> list = tenantService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, bladeUser.getTenantId()) : queryWrapper);
+		return R.data(list);
+	}
+
+	/**
+	 * 自定义分页
+	 */
+	@GetMapping("/page")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "分页", notes = "传入tenant")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R<IPage<Tenant>> page(Tenant tenant, Query query) {
+		IPage<Tenant> pages = tenantService.selectTenantPage(Condition.getPage(query), tenant);
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "新增或修改", notes = "传入tenant")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+	public R submit(@Valid @RequestBody Tenant tenant) {
+		return R.status(tenantService.submitTenant(tenant));
+	}
+
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(tenantService.removeTenant(Func.toLongList(ids)));
+	}
+
+	/**
+	 * 授权配置
+	 */
+	@PostMapping("/setting")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "授权配置", notes = "传入ids,accountNumber,expireTime")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+	public R setting(@ApiParam(value = "主键集合", required = true) @RequestParam String ids, @ApiParam(value = "账号额度") Integer accountNumber, @ApiParam(value = "过期时间") Date expireTime) {
+		return R.status(tenantService.setting(accountNumber, expireTime, ids));
+	}
+
+	/**
+	 * 数据源配置
+	 */
+	@PostMapping("datasource")
+	@ApiOperationSupport(order = 8)
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+	@ApiOperation(value = "数据源配置", notes = "传入datasource_id")
+	public R datasource(@ApiParam(value = "租户ID", required = true) @RequestParam String tenantId, @ApiParam(value = "数据源ID", required = true) @RequestParam Long datasourceId){
+		CacheUtil.evict(TENANT_DATASOURCE_CACHE, TENANT_DATASOURCE_EXIST_KEY, tenantId, Boolean.FALSE);
+		return R.status(tenantService.update(Wrappers.<Tenant>update().lambda().set(Tenant::getDatasourceId, datasourceId).eq(Tenant::getTenantId, tenantId)));
+	}
+
+	/**
+	 * 根据名称查询列表
+	 *
+	 * @param name 租户名称
+	 */
+	@GetMapping("/find-by-name")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "详情", notes = "传入tenant")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R<List<Tenant>> findByName(String name) {
+		List<Tenant> list = tenantService.list(Wrappers.<Tenant>query().lambda().like(Tenant::getTenantName, name));
+		return R.data(list);
+	}
+
+	/**
+	 * 根据域名查询信息
+	 *
+	 * @param domain 域名
+	 */
+	@GetMapping("/info")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "配置信息", notes = "传入domain")
+	public R<Kv> info(String domain) {
+		Tenant tenant = tenantService.getOne(Wrappers.<Tenant>query().lambda().eq(Tenant::getDomainUrl, domain));
+		Kv kv = Kv.create();
+		if (tenant != null) {
+			kv.set("tenantId", tenant.getTenantId())
+				.set("domain", tenant.getDomainUrl())
+				.set("backgroundUrl", tenant.getBackgroundUrl());
+		}
+		return R.data(kv);
+	}
+
+	/**
+	 * 根据租户ID查询产品包详情
+	 *
+	 * @param tenantId 租户ID
+	 */
+	@GetMapping("/package-detail")
+	@ApiOperationSupport(order = 11)
+	@ApiOperation(value = "产品包详情", notes = "传入tenantId")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+	public R<TenantPackage> packageDetail(Long tenantId) {
+		Tenant tenant = tenantService.getById(tenantId);
+		return R.data(tenantPackageService.getById(tenant.getPackageId()));
+	}
+
+	/**
+	 * 产品包配置
+	 */
+	@PostMapping("/package-setting")
+	@ApiOperationSupport(order = 12)
+	@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR)
+	@ApiOperation(value = "产品包配置", notes = "传入packageId")
+	public R packageSetting(@ApiParam(value = "租户ID", required = true) @RequestParam String tenantId, @ApiParam(value = "产品包ID") Long packageId) {
+		CacheUtil.evict(SYS_CACHE, TENANT_TENANT_ID, tenantId, Boolean.FALSE);
+		CacheUtil.evict(SYS_CACHE, TENANT_PACKAGE_ID, tenantId, Boolean.FALSE);
+		return R.status(tenantService.update(Wrappers.<Tenant>update().lambda().set(Tenant::getPackageId, packageId).eq(Tenant::getTenantId, tenantId)));
+	}
+
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/TenantPackageController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/TenantPackageController.java
new file mode 100644
index 0000000..e2fcd74
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/TenantPackageController.java
@@ -0,0 +1,133 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.entity.TenantPackage;
+import cn.gistack.system.service.ITenantPackageService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
+/**
+ * 租户产品表 控制器
+ *
+ * @author BladeX
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/tenant-package")
+@Api(value = "租户产品表", tags = "租户产品表接口")
+public class TenantPackageController extends BladeController {
+
+	private final ITenantPackageService tenantPackageService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入tenantPackage")
+	public R<TenantPackage> detail(TenantPackage tenantPackage) {
+		TenantPackage detail = tenantPackageService.getOne(Condition.getQueryWrapper(tenantPackage));
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页 租户产品表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入tenantPackage")
+	public R<IPage<TenantPackage>> list(TenantPackage tenantPackage, Query query) {
+		IPage<TenantPackage> pages = tenantPackageService.page(Condition.getPage(query), Condition.getQueryWrapper(tenantPackage));
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 租户产品表
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "新增", notes = "传入tenantPackage")
+	public R save(@Valid @RequestBody TenantPackage tenantPackage) {
+		return R.status(tenantPackageService.save(tenantPackage));
+	}
+
+	/**
+	 * 修改 租户产品表
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "修改", notes = "传入tenantPackage")
+	public R update(@Valid @RequestBody TenantPackage tenantPackage) {
+		return R.status(tenantPackageService.updateById(tenantPackage));
+	}
+
+	/**
+	 * 新增或修改 租户产品表
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "新增或修改", notes = "传入tenantPackage")
+	public R submit(@Valid @RequestBody TenantPackage tenantPackage) {
+		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+		return R.status(tenantPackageService.saveOrUpdate(tenantPackage));
+	}
+
+
+	/**
+	 * 删除 租户产品表
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		CacheUtil.clear(SYS_CACHE, Boolean.FALSE);
+		return R.status(tenantPackageService.deleteLogic(Func.toLongList(ids)));
+	}
+
+
+	/**
+	 * 下拉数据源
+	 */
+	@GetMapping("/select")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "下拉数据源", notes = "传入tenant")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R<List<TenantPackage>> select(TenantPackage tenantPackage) {
+		return R.data(tenantPackageService.list(Condition.getQueryWrapper(tenantPackage)));
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/TopMenuController.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/TopMenuController.java
new file mode 100644
index 0000000..8729709
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/controller/TopMenuController.java
@@ -0,0 +1,138 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.controller;
+
+import cn.gistack.system.vo.GrantVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.entity.TopMenu;
+import cn.gistack.system.service.ITopMenuService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+import static org.springblade.core.cache.constant.CacheConstant.MENU_CACHE;
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
+/**
+ * 顶部菜单表 控制器
+ *
+ * @author BladeX
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+@RequestMapping("/topmenu")
+@Api(value = "顶部菜单表", tags = "顶部菜单")
+@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+public class TopMenuController extends BladeController {
+
+	private final ITopMenuService topMenuService;
+
+	/**
+	 * 详情
+	 */
+	@GetMapping("/detail")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "详情", notes = "传入topMenu")
+	public R<TopMenu> detail(TopMenu topMenu) {
+		TopMenu detail = topMenuService.getOne(Condition.getQueryWrapper(topMenu));
+		return R.data(detail);
+	}
+
+	/**
+	 * 分页 顶部菜单表
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "分页", notes = "传入topMenu")
+	public R<IPage<TopMenu>> list(TopMenu topMenu, Query query) {
+		IPage<TopMenu> pages = topMenuService.page(Condition.getPage(query), Condition.getQueryWrapper(topMenu).lambda().orderByAsc(TopMenu::getSort));
+		return R.data(pages);
+	}
+
+	/**
+	 * 新增 顶部菜单表
+	 */
+	@PostMapping("/save")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增", notes = "传入topMenu")
+	public R save(@Valid @RequestBody TopMenu topMenu) {
+		return R.status(topMenuService.save(topMenu));
+	}
+
+	/**
+	 * 修改 顶部菜单表
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入topMenu")
+	public R update(@Valid @RequestBody TopMenu topMenu) {
+		return R.status(topMenuService.updateById(topMenu));
+	}
+
+	/**
+	 * 新增或修改 顶部菜单表
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "新增或修改", notes = "传入topMenu")
+	public R submit(@Valid @RequestBody TopMenu topMenu) {
+		return R.status(topMenuService.saveOrUpdate(topMenu));
+	}
+
+
+	/**
+	 * 删除 顶部菜单表
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "逻辑删除", notes = "传入ids")
+	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		return R.status(topMenuService.deleteLogic(Func.toLongList(ids)));
+	}
+
+	/**
+	 * 设置顶部菜单
+	 */
+	@PostMapping("/grant")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "顶部菜单配置", notes = "传入topMenuId集合以及menuId集合")
+	public R grant(@RequestBody GrantVO grantVO) {
+		CacheUtil.clear(SYS_CACHE);
+		CacheUtil.clear(MENU_CACHE);
+		CacheUtil.clear(MENU_CACHE, Boolean.FALSE);
+		boolean temp = topMenuService.grant(grantVO.getTopMenuIds(), grantVO.getMenuIds());
+		return R.status(temp);
+	}
+
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/excel/RegionExcel.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/excel/RegionExcel.java
new file mode 100644
index 0000000..75ec91c
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/excel/RegionExcel.java
@@ -0,0 +1,90 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * RegionExcel
+ *
+ * @author Chill
+ */
+@Data
+@ColumnWidth(16)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class RegionExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	@ExcelProperty("区划编号")
+	private String code;
+
+	@ExcelProperty("父区划编号")
+	private String parentCode;
+
+	@ExcelProperty("祖区划编号")
+	private String ancestors;
+
+	@ExcelProperty("区划名称")
+	private String name;
+
+	@ExcelProperty("省级区划编号")
+	private String provinceCode;
+
+	@ExcelProperty("省级名称")
+	private String provinceName;
+
+	@ExcelProperty("市级区划编号")
+	private String cityCode;
+
+	@ExcelProperty("市级名称")
+	private String cityName;
+
+	@ExcelProperty("区级区划编号")
+	private String districtCode;
+
+	@ExcelProperty("区级名称")
+	private String districtName;
+
+	@ExcelProperty("镇级区划编号")
+	private String townCode;
+
+	@ExcelProperty("镇级名称")
+	private String townName;
+
+	@ExcelProperty("村级区划编号")
+	private String villageCode;
+
+	@ExcelProperty("村级名称")
+	private String villageName;
+
+	@ExcelProperty("层级")
+	private Integer regionLevel;
+
+	@ExcelProperty("排序")
+	private Integer sort;
+
+	@ExcelProperty("备注")
+	private String remark;
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/excel/RegionImporter.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/excel/RegionImporter.java
new file mode 100644
index 0000000..dc6f154
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/excel/RegionImporter.java
@@ -0,0 +1,40 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.excel;
+
+import lombok.RequiredArgsConstructor;
+import org.springblade.core.excel.support.ExcelImporter;
+import cn.gistack.system.service.IRegionService;
+
+import java.util.List;
+
+/**
+ * 行政区划数据导入类
+ *
+ * @author Chill
+ */
+@RequiredArgsConstructor
+public class RegionImporter implements ExcelImporter<RegionExcel> {
+
+	private final IRegionService service;
+	private final Boolean isCovered;
+
+	@Override
+	public void save(List<RegionExcel> data) {
+		service.importRegion(data, isCovered);
+	}
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/ApiScopeClient.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/ApiScopeClient.java
new file mode 100644
index 0000000..41aa12a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/ApiScopeClient.java
@@ -0,0 +1,63 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.feign;
+
+import lombok.RequiredArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import static org.springblade.core.secure.constant.PermissionConstant.permissionAllStatement;
+import static org.springblade.core.secure.constant.PermissionConstant.permissionStatement;
+
+/**
+ * 接口权限Feign实现类
+ *
+ * @author Chill
+ */
+@NonDS
+@ApiIgnore
+@RestController
+@RequiredArgsConstructor
+public class ApiScopeClient implements IApiScopeClient {
+
+	private final JdbcTemplate jdbcTemplate;
+
+	@Override
+	@GetMapping(PERMISSION_PATH)
+	public List<String> permissionPath(String roleId) {
+		List<Long> roleIds = Func.toLongList(roleId);
+		return jdbcTemplate.queryForList(permissionAllStatement(roleIds.size()), roleIds.toArray(), String.class);
+	}
+
+	@Override
+	@GetMapping(PERMISSION_CODE)
+	public List<String> permissionCode(String permission, String roleId) {
+		List<Object> args = new ArrayList<>(Collections.singletonList(permission));
+		List<Long> roleIds = Func.toLongList(roleId);
+		args.addAll(roleIds);
+		return jdbcTemplate.queryForList(permissionStatement(roleIds.size()), args.toArray(), String.class);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/DataScopeClient.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/DataScopeClient.java
new file mode 100644
index 0000000..e9ee4ee
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/DataScopeClient.java
@@ -0,0 +1,109 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.feign;
+
+import lombok.RequiredArgsConstructor;
+import org.springblade.core.datascope.constant.DataScopeConstant;
+import org.springblade.core.datascope.model.DataScopeModel;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.utils.CollectionUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * 数据权限Feign实现类
+ *
+ * @author Chill
+ */
+@NonDS
+@ApiIgnore
+@RestController
+@RequiredArgsConstructor
+public class DataScopeClient implements IDataScopeClient {
+
+	private static final DataScopeModel SEARCHED_DATA_SCOPE_MODEL = new DataScopeModel(Boolean.TRUE);
+
+	private final JdbcTemplate jdbcTemplate;
+
+	/**
+	 * 获取数据权限
+	 *
+	 * @param mapperId 数据权限mapperId
+	 * @param roleId   用户角色集合
+	 * @return DataScopeModel
+	 */
+	@Override
+	@GetMapping(GET_DATA_SCOPE_BY_MAPPER)
+	public DataScopeModel getDataScopeByMapper(String mapperId, String roleId) {
+		List<Object> args = new ArrayList<>(Collections.singletonList(mapperId));
+		List<Long> roleIds = Func.toLongList(roleId);
+		args.addAll(roleIds);
+		// 增加searched字段防止未配置的参数重复读库导致缓存击穿
+		// 后续若有新增配置则会清空缓存重新加载
+		DataScopeModel dataScope;
+		List<DataScopeModel> list = jdbcTemplate.query(DataScopeConstant.dataByMapper(roleIds.size()), args.toArray(), new BeanPropertyRowMapper<>(DataScopeModel.class));
+		if (CollectionUtil.isNotEmpty(list)) {
+			dataScope = list.iterator().next();
+			dataScope.setSearched(Boolean.TRUE);
+		} else {
+			dataScope = SEARCHED_DATA_SCOPE_MODEL;
+		}
+		return dataScope;
+	}
+
+	/**
+	 * 获取数据权限
+	 *
+	 * @param code 数据权限资源编号
+	 * @return DataScopeModel
+	 */
+	@Override
+	@GetMapping(GET_DATA_SCOPE_BY_CODE)
+	public DataScopeModel getDataScopeByCode(String code) {
+		// 增加searched字段防止未配置的参数重复读库导致缓存击穿
+		// 后续若有新增配置则会清空缓存重新加载
+		DataScopeModel dataScope;
+		List<DataScopeModel> list = jdbcTemplate.query(DataScopeConstant.DATA_BY_CODE, new Object[]{code}, new BeanPropertyRowMapper<>(DataScopeModel.class));
+		if (CollectionUtil.isNotEmpty(list)) {
+			dataScope = list.iterator().next();
+			dataScope.setSearched(Boolean.TRUE);
+		} else {
+			dataScope = SEARCHED_DATA_SCOPE_MODEL;
+		}
+		return dataScope;
+	}
+
+	/**
+	 * 获取部门子级
+	 *
+	 * @param deptId 部门id
+	 * @return deptIds
+	 */
+	@Override
+	@GetMapping(GET_DEPT_ANCESTORS)
+	public List<Long> getDeptAncestors(Long deptId) {
+		return jdbcTemplate.queryForList(DataScopeConstant.DATA_BY_DEPT, new Object[]{deptId}, Long.class);
+	}
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/DictBizClient.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/DictBizClient.java
new file mode 100644
index 0000000..d0a7ecf
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/DictBizClient.java
@@ -0,0 +1,63 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.feign;
+
+
+import cn.gistack.system.entity.DictBiz;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import cn.gistack.system.service.IDictBizService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.List;
+
+
+/**
+ * 字典服务Feign实现类
+ *
+ * @author Chill
+ */
+@NonDS
+@ApiIgnore
+@RestController
+@AllArgsConstructor
+public class DictBizClient implements IDictBizClient {
+
+	private final IDictBizService service;
+
+	@Override
+	@GetMapping(GET_BY_ID)
+	public R<DictBiz> getById(Long id) {
+		return R.data(service.getById(id));
+	}
+
+	@Override
+	@GetMapping(GET_VALUE)
+	public R<String> getValue(String code, String dictKey) {
+		return R.data(service.getValue(code, dictKey));
+	}
+
+	@Override
+	@GetMapping(GET_LIST)
+	public R<List<DictBiz>> getList(String code) {
+		return R.data(service.getList(code));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/DictClient.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/DictClient.java
new file mode 100644
index 0000000..dc8c7cc
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/DictClient.java
@@ -0,0 +1,63 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.feign;
+
+
+import cn.gistack.system.entity.Dict;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import cn.gistack.system.service.IDictService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+
+import java.util.List;
+
+
+/**
+ * 字典服务Feign实现类
+ *
+ * @author Chill
+ */
+@NonDS
+@ApiIgnore
+@RestController
+@AllArgsConstructor
+public class DictClient implements IDictClient {
+
+	private final IDictService service;
+
+	@Override
+	@GetMapping(GET_BY_ID)
+	public R<Dict> getById(Long id) {
+		return R.data(service.getById(id));
+	}
+
+	@Override
+	@GetMapping(GET_VALUE)
+	public R<String> getValue(String code, String dictKey) {
+		return R.data(service.getValue(code, dictKey));
+	}
+
+	@Override
+	@GetMapping(GET_LIST)
+	public R<List<Dict>> getList(String code) {
+		return R.data(service.getList(code));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/SysClient.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/SysClient.java
new file mode 100644
index 0000000..2defaae
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/feign/SysClient.java
@@ -0,0 +1,194 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.feign;
+
+import cn.gistack.system.entity.*;
+import cn.gistack.system.service.*;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
+import java.util.List;
+
+/**
+ * 系统服务Feign实现类
+ *
+ * @author Chill
+ */
+@NonDS
+@ApiIgnore
+@RestController
+@AllArgsConstructor
+public class SysClient implements ISysClient {
+
+	private final IDeptService deptService;
+
+	private final IPostService postService;
+
+	private final IRoleService roleService;
+
+	private final IMenuService menuService;
+
+	private final ITenantService tenantService;
+
+	private final ITenantPackageService tenantPackageService;
+
+	private final IParamService paramService;
+
+	private final IRegionService regionService;
+
+	@Override
+	@GetMapping(MENU)
+	public R<Menu> getMenu(Long id) {
+		return R.data(menuService.getById(id));
+	}
+
+	@Override
+	@GetMapping(DEPT)
+	public R<Dept> getDept(Long id) {
+		return R.data(deptService.getById(id));
+	}
+
+	@Override
+	public R<String> getDeptIds(String tenantId, String deptNames) {
+		return R.data(deptService.getDeptIds(tenantId, deptNames));
+	}
+
+	@Override
+	public R<String> getDeptIdsByFuzzy(String tenantId, String deptNames) {
+		return R.data(deptService.getDeptIdsByFuzzy(tenantId, deptNames));
+	}
+
+	@Override
+	@GetMapping(DEPT_NAME)
+	public R<String> getDeptName(Long id) {
+		return R.data(deptService.getById(id).getDeptName());
+	}
+
+	@Override
+	@GetMapping(DEPT_NAMES)
+	public R<List<String>> getDeptNames(String deptIds) {
+		return R.data(deptService.getDeptNames(deptIds));
+	}
+
+	@Override
+	@GetMapping(DEPT_CHILD)
+	public R<List<Dept>> getDeptChild(Long deptId) {
+		return R.data(deptService.getDeptChild(deptId));
+	}
+
+	@Override
+	public R<Post> getPost(Long id) {
+		return R.data(postService.getById(id));
+	}
+
+	@Override
+	public R<String> getPostIds(String tenantId, String postNames) {
+		return R.data(postService.getPostIds(tenantId, postNames));
+	}
+
+	@Override
+	public R<String> getPostIdsByFuzzy(String tenantId, String postNames) {
+		return R.data(postService.getPostIdsByFuzzy(tenantId, postNames));
+	}
+
+	@Override
+	public R<String> getPostName(Long id) {
+		return R.data(postService.getById(id).getPostName());
+	}
+
+	@Override
+	public R<List<String>> getPostNames(String postIds) {
+		return R.data(postService.getPostNames(postIds));
+	}
+
+	@Override
+	@GetMapping(ROLE)
+	public R<Role> getRole(Long id) {
+		return R.data(roleService.getById(id));
+	}
+
+	@Override
+	public R<String> getRoleIds(String tenantId, String roleNames) {
+		return R.data(roleService.getRoleIds(tenantId, roleNames));
+	}
+
+	@Override
+	@GetMapping(ROLE_NAME)
+	public R<String> getRoleName(Long id) {
+		return R.data(roleService.getById(id).getRoleName());
+	}
+
+	@Override
+	@GetMapping(ROLE_ALIAS)
+	public R<String> getRoleAlias(Long id) {
+		return R.data(roleService.getById(id).getRoleAlias());
+	}
+
+	@Override
+	@GetMapping(ROLE_NAMES)
+	public R<List<String>> getRoleNames(String roleIds) {
+		return R.data(roleService.getRoleNames(roleIds));
+	}
+
+	@Override
+	@GetMapping(ROLE_ALIASES)
+	public R<List<String>> getRoleAliases(String roleIds) {
+		return R.data(roleService.getRoleAliases(roleIds));
+	}
+
+	@Override
+	@GetMapping(TENANT)
+	public R<Tenant> getTenant(Long id) {
+		return R.data(tenantService.getById(id));
+	}
+
+	@Override
+	@GetMapping(TENANT_ID)
+	public R<Tenant> getTenant(String tenantId) {
+		return R.data(tenantService.getByTenantId(tenantId));
+	}
+
+	@Override
+	@GetMapping(TENANT_PACKAGE)
+	public R<TenantPackage> getTenantPackage(String tenantId) {
+		Tenant tenant = tenantService.getByTenantId(tenantId);
+		return R.data(tenantPackageService.getById(tenant.getPackageId()));
+	}
+
+	@Override
+	@GetMapping(PARAM)
+	public R<Param> getParam(Long id) {
+		return R.data(paramService.getById(id));
+	}
+
+	@Override
+	@GetMapping(PARAM_VALUE)
+	public R<String> getParamValue(String paramKey) {
+		return R.data(paramService.getValue(paramKey));
+	}
+
+	@Override
+	@GetMapping(REGION)
+	public R<Region> getRegion(String code) {
+		return R.data(regionService.getById(code));
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ApiScopeMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ApiScopeMapper.java
new file mode 100644
index 0000000..6b4e1d1
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ApiScopeMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.entity.ApiScope;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *  Mapper 接口
+ *
+ * @author BladeX
+ */
+public interface ApiScopeMapper extends BaseMapper<ApiScope> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ApiScopeMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ApiScopeMapper.xml
new file mode 100644
index 0000000..71e0843
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ApiScopeMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.ApiScopeMapper">
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/AuthClientMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/AuthClientMapper.java
new file mode 100644
index 0000000..064d2be
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/AuthClientMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.entity.AuthClient;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface AuthClientMapper extends BaseMapper<AuthClient> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/AuthClientMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/AuthClientMapper.xml
new file mode 100644
index 0000000..2f534c8
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/AuthClientMapper.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.AuthClientMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="clientResultMap" type="cn.gistack.system.entity.AuthClient">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="client_id" property="clientId"/>
+        <result column="client_secret" property="clientSecret"/>
+        <result column="resources_ids" property="resourceIds"/>
+        <result column="scope" property="scope"/>
+        <result column="authorized_grant_types" property="authorizedGrantTypes"/>
+        <result column="web_server_redirect_uri" property="webServerRedirectUri"/>
+        <result column="authorities" property="authorities"/>
+        <result column="access_token_validity" property="accessTokenValidity"/>
+        <result column="refresh_token_validity" property="refreshTokenValidity"/>
+        <result column="additional_information" property="additionalInformation"/>
+        <result column="autoapprove" property="autoapprove"/>
+    </resultMap>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DataScopeMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DataScopeMapper.java
new file mode 100644
index 0000000..c2c385f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DataScopeMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.entity.DataScope;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ *  Mapper 接口
+ *
+ * @author BladeX
+ */
+public interface DataScopeMapper extends BaseMapper<DataScope> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DataScopeMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DataScopeMapper.xml
new file mode 100644
index 0000000..90ed55d
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DataScopeMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.DataScopeMapper">
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java
new file mode 100644
index 0000000..739575b
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.java
@@ -0,0 +1,68 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.entity.Dept;
+import cn.gistack.system.vo.DeptVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * DeptMapper 接口
+ *
+ * @author Chill
+ */
+public interface DeptMapper extends BaseMapper<Dept> {
+
+	/**
+	 * 懒加载部门列表
+	 *
+	 * @param tenantId
+	 * @param parentId
+	 * @param param
+	 * @return
+	 */
+	List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param);
+
+	/**
+	 * 获取树形节点
+	 *
+	 * @param tenantId
+	 * @return
+	 */
+	List<DeptVO> tree(String tenantId);
+
+	/**
+	 * 懒加载获取树形节点
+	 *
+	 * @param tenantId
+	 * @param parentId
+	 * @return
+	 */
+	List<DeptVO> lazyTree(String tenantId, Long parentId);
+
+	/**
+	 * 获取部门名
+	 *
+	 * @param ids
+	 * @return
+	 */
+	List<String> getDeptNames(Long[] ids);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml
new file mode 100644
index 0000000..654eb1d
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DeptMapper.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.DeptMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="deptResultMap" type="cn.gistack.system.entity.Dept">
+        <id column="id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="dept_name" property="deptName"/>
+        <result column="full_name" property="fullName"/>
+        <result column="ancestors" property="ancestors"/>
+        <result column="dept_category" property="deptCategory"/>
+        <result column="sort" property="sort"/>
+        <result column="remark" property="remark"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+    <resultMap id="deptVOResultMap" type="cn.gistack.system.vo.DeptVO">
+        <id column="id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="dept_name" property="deptName"/>
+        <result column="full_name" property="fullName"/>
+        <result column="ancestors" property="ancestors"/>
+        <result column="dept_category" property="deptCategory"/>
+        <result column="sort" property="sort"/>
+        <result column="remark" property="remark"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="has_children" property="hasChildren"/>
+    </resultMap>
+
+    <resultMap id="treeNodeResultMap" type="org.springblade.core.tool.node.TreeNode">
+        <id column="id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="title" property="title"/>
+        <result column="value" property="value"/>
+        <result column="key" property="key"/>
+        <result column="has_children" property="hasChildren"/>
+    </resultMap>
+
+    <select id="lazyList" resultMap="deptVOResultMap">
+        SELECT
+            dept.* ,
+            (
+                SELECT
+                    CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+                FROM
+                    blade_dept
+                WHERE
+                    parent_id = dept.id and is_deleted = 0
+            ) AS "has_children"
+        FROM
+            blade_dept dept
+        WHERE dept.is_deleted = 0
+        <if test="param1!=null and param1!=''">
+            and dept.tenant_id = #{param1}
+        </if>
+        <if test="param2!=null">
+            and dept.parent_id = #{param2}
+        </if>
+        <if test="param3.deptName!=null and param3.deptName!=''">
+            and dept.dept_name like concat(concat('%', #{param3.deptName}),'%')
+        </if>
+        <if test="param3.fullName!=null and param3.fullName!=''">
+            and dept.full_name like concat(concat('%', #{param3.fullName}),'%')
+        </if>
+        ORDER BY dept.sort
+    </select>
+
+    <select id="tree" resultMap="treeNodeResultMap">
+        select id, parent_id, dept_name as title, id as "value", id as "key" from blade_dept where is_deleted = 0
+        <if test="_parameter!=null and _parameter!=''">
+            and tenant_id = #{_parameter}
+        </if>
+        ORDER BY sort
+    </select>
+
+    <select id="lazyTree" resultMap="treeNodeResultMap" >
+        SELECT
+            dept.id,
+            dept.parent_id,
+            dept.dept_name AS title,
+            dept.id AS "value",
+            dept.id AS "key",
+            (
+                SELECT
+                    CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+                FROM
+                    blade_dept
+                WHERE
+                    parent_id = dept.id and is_deleted = 0
+            ) AS "has_children"
+        FROM
+            blade_dept dept
+        WHERE
+            dept.parent_id = #{param2} AND dept.is_deleted = 0
+        <if test="param1!=null and param1!=''">
+            and dept.tenant_id = #{param1}
+        </if>
+        ORDER BY dept.sort
+    </select>
+
+    <select id="getDeptNames" resultType="java.lang.String">
+        SELECT
+        dept_name
+        FROM
+        blade_dept
+        WHERE
+        id IN
+        <foreach collection="array" item="ids" index="index" open="(" close=")" separator=",">
+            #{ids}
+        </foreach>
+        and is_deleted = 0
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictBizMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictBizMapper.java
new file mode 100644
index 0000000..d522e63
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictBizMapper.java
@@ -0,0 +1,64 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+
+import cn.gistack.system.entity.DictBiz;
+import cn.gistack.system.vo.DictBizVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.List;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface DictBizMapper extends BaseMapper<DictBiz> {
+
+	/**
+	 * 获取字典表对应中文
+	 *
+	 * @param code    字典编号
+	 * @param dictKey 字典序号
+	 * @return
+	 */
+	String getValue(String code, String dictKey);
+
+	/**
+	 * 获取字典表
+	 *
+	 * @param code 字典编号
+	 * @return
+	 */
+	List<DictBiz> getList(String code);
+
+	/**
+	 * 获取树形节点
+	 *
+	 * @return
+	 */
+	List<DictBizVO> tree();
+
+	/**
+	 * 获取树形节点
+	 *
+	 * @return
+	 */
+	List<DictBizVO> parentTree();
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictBizMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictBizMapper.xml
new file mode 100644
index 0000000..e8066f1
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictBizMapper.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.DictBizMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="dictResultMap" type="cn.gistack.system.entity.DictBiz">
+        <id column="id" property="id"/>
+        <result column="tenant_id" property="tenantId"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="code" property="code"/>
+        <result column="dict_key" property="dictKey"/>
+        <result column="dict_value" property="dictValue"/>
+        <result column="sort" property="sort"/>
+        <result column="remark" property="remark"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+    <resultMap id="treeNodeResultMap" type="org.springblade.core.tool.node.TreeNode">
+        <id column="id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="title" property="title"/>
+        <result column="value" property="value"/>
+        <result column="key" property="key"/>
+    </resultMap>
+
+    <select id="getValue" resultType="java.lang.String">
+        select
+            dict_value
+        from blade_dict_biz where code = #{param1} and dict_key = #{param2} and is_deleted = 0
+    </select>
+
+    <!-- oracle 版本 -->
+    <!--<select id="getValue" resultType="java.lang.String">
+        select
+            dict_value
+        from blade_dict_biz where code = #{param1, jdbcType=VARCHAR} and dict_key = #{param2} and dict_key >= 0  rownum 1
+    </select>-->
+
+    <select id="getList" resultMap="dictResultMap">
+        select id, tenant_id, parent_id, code, dict_key, dict_value, sort, remark from blade_dict_biz where code = #{param1} and parent_id > 0 and is_sealed = 0 and is_deleted = 0
+    </select>
+
+    <select id="tree" resultMap="treeNodeResultMap">
+        select id, parent_id, dict_value as title, id as "value", id as "key" from blade_dict_biz where is_deleted = 0
+    </select>
+
+    <select id="parentTree" resultMap="treeNodeResultMap">
+        select id, parent_id, dict_value as title, id as "value", id as "key" from blade_dict_biz where is_deleted = 0 and parent_id = 0
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictMapper.java
new file mode 100644
index 0000000..711ff6a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictMapper.java
@@ -0,0 +1,73 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.entity.Dict;
+import cn.gistack.system.vo.DictVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface DictMapper extends BaseMapper<Dict> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param dict
+	 * @return
+	 */
+	List<DictVO> selectDictPage(IPage page, DictVO dict);
+
+	/**
+	 * 获取字典表对应中文
+	 *
+	 * @param code    字典编号
+	 * @param dictKey 字典序号
+	 * @return
+	 */
+	String getValue(String code, String dictKey);
+
+	/**
+	 * 获取字典表
+	 *
+	 * @param code 字典编号
+	 * @return
+	 */
+	List<Dict> getList(String code);
+
+	/**
+	 * 获取树形节点
+	 *
+	 * @return
+	 */
+	List<DictVO> tree();
+
+	/**
+	 * 获取树形节点
+	 *
+	 * @return
+	 */
+	List<DictVO> parentTree();
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictMapper.xml
new file mode 100644
index 0000000..66151dd
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/DictMapper.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.DictMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="dictResultMap" type="cn.gistack.system.entity.Dict">
+        <id column="id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="code" property="code"/>
+        <result column="dict_key" property="dictKey"/>
+        <result column="dict_value" property="dictValue"/>
+        <result column="sort" property="sort"/>
+        <result column="remark" property="remark"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+    <resultMap id="treeNodeResultMap" type="org.springblade.core.tool.node.TreeNode">
+        <id column="id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="title" property="title"/>
+        <result column="value" property="value"/>
+        <result column="key" property="key"/>
+    </resultMap>
+
+    <select id="selectDictPage" resultMap="dictResultMap">
+        select * from blade_dict where is_deleted = 0
+    </select>
+
+    <select id="getValue" resultType="java.lang.String">
+        select
+            dict_value
+        from blade_dict where code = #{param1} and dict_key = #{param2} and is_deleted = 0
+    </select>
+
+    <!-- oracle 版本 -->
+    <!--<select id="getValue" resultType="java.lang.String">
+        select
+            dict_value
+        from blade_dict where code = #{param1, jdbcType=VARCHAR} and dict_key = #{param2} and dict_key >= 0  rownum 1
+    </select>-->
+
+    <select id="getList" resultMap="dictResultMap">
+        select id, parent_id, code, dict_key, dict_value, sort, remark from blade_dict where code = #{param1} and parent_id > 0 and is_sealed = 0 and is_deleted = 0
+    </select>
+
+    <select id="tree" resultMap="treeNodeResultMap">
+        select id, parent_id, dict_value as title, id as "value", id as "key" from blade_dict where is_deleted = 0
+    </select>
+
+    <select id="parentTree" resultMap="treeNodeResultMap">
+        select id, parent_id, dict_value as title, id as "value", id as "key" from blade_dict where is_deleted = 0 and parent_id = 0
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.java
new file mode 100644
index 0000000..454700f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.java
@@ -0,0 +1,183 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.dto.MenuDTO;
+import cn.gistack.system.entity.Menu;
+import cn.gistack.system.vo.MenuVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.core.tool.node.TreeNode;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * MenuMapper 接口
+ *
+ * @author Chill
+ */
+public interface MenuMapper extends BaseMapper<Menu> {
+
+	/**
+	 * 懒加载列表
+	 *
+	 * @param parentId
+	 * @param param
+	 * @return
+	 */
+	List<MenuVO> lazyList(Long parentId, Map<String, Object> param);
+
+	/**
+	 * 懒加载菜单列表
+	 *
+	 * @param parentId
+	 * @param param
+	 * @return
+	 */
+	List<MenuVO> lazyMenuList(Long parentId, Map<String, Object> param);
+
+	/**
+	 * 树形结构
+	 *
+	 * @return
+	 */
+	List<TreeNode> tree();
+
+	/**
+	 * 授权树形结构
+	 *
+	 * @return
+	 */
+	List<TreeNode> grantTree();
+
+	/**
+	 * 授权树形结构
+	 *
+	 * @param roleId
+	 * @return
+	 */
+	List<TreeNode> grantTreeByRole(List<Long> roleId);
+
+	/**
+	 * 顶部菜单树形结构
+	 *
+	 * @return
+	 */
+	List<TreeNode> grantTopTree();
+
+	/**
+	 * 顶部菜单树形结构
+	 *
+	 * @param roleId
+	 * @return
+	 */
+	List<TreeNode> grantTopTreeByRole(List<Long> roleId);
+
+	/**
+	 * 数据权限授权树形结构
+	 *
+	 * @return
+	 */
+	List<TreeNode> grantDataScopeTree();
+
+	/**
+	 * 接口权限授权树形结构
+	 *
+	 * @return
+	 */
+	List<TreeNode> grantApiScopeTree();
+
+	/**
+	 * 数据权限授权树形结构
+	 *
+	 * @param roleId
+	 * @return
+	 */
+	List<TreeNode> grantDataScopeTreeByRole(List<Long> roleId);
+
+	/**
+	 * 接口权限授权树形结构
+	 *
+	 * @param roleId
+	 * @return
+	 */
+	List<TreeNode> grantApiScopeTreeByRole(List<Long> roleId);
+
+	/**
+	 * 所有菜单
+	 *
+	 * @return
+	 */
+	List<Menu> allMenu();
+
+	/**
+	 * 权限配置菜单
+	 *
+	 * @param roleId
+	 * @param topMenuId
+	 * @return
+	 */
+	List<Menu> roleMenu(List<Long> roleId, Long topMenuId);
+
+	/**
+	 * 权限配置菜单
+	 *
+	 * @param roleId
+	 * @return
+	 */
+	List<Menu> roleMenuByRoleId(List<Long> roleId);
+
+	/**
+	 * 权限配置菜单
+	 *
+	 * @param topMenuId
+	 * @return
+	 */
+	List<Menu> roleMenuByTopMenuId(Long topMenuId);
+
+	/**
+	 * 菜单树形结构
+	 *
+	 * @param roleId
+	 * @return
+	 */
+	List<Menu> routes(List<Long> roleId);
+
+	/**
+	 * 按钮树形结构
+	 *
+	 * @return
+	 */
+	List<Menu> allButtons();
+
+	/**
+	 * 按钮树形结构
+	 *
+	 * @param roleId
+	 * @return
+	 */
+	List<Menu> buttons(List<Long> roleId);
+
+	/**
+	 * 获取配置的角色权限
+	 *
+	 * @param roleIds
+	 * @return
+	 */
+	List<MenuDTO> authRoutes(List<Long> roleIds);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml
new file mode 100644
index 0000000..5ed33fe
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/MenuMapper.xml
@@ -0,0 +1,478 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.MenuMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="menuResultMap" type="cn.gistack.system.entity.Menu">
+        <id column="id" property="id"/>
+        <result column="code" property="code"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="name" property="name"/>
+        <result column="alias" property="alias"/>
+        <result column="path" property="path"/>
+        <result column="source" property="source"/>
+        <result column="sort" property="sort"/>
+        <result column="category" property="category"/>
+        <result column="action" property="action"/>
+        <result column="is_open" property="isOpen"/>
+        <result column="remark" property="remark"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+    <resultMap id="menuVOResultMap" type="cn.gistack.system.vo.MenuVO">
+        <id column="id" property="id"/>
+        <result column="code" property="code"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="name" property="name"/>
+        <result column="alias" property="alias"/>
+        <result column="path" property="path"/>
+        <result column="source" property="source"/>
+        <result column="sort" property="sort"/>
+        <result column="category" property="category"/>
+        <result column="action" property="action"/>
+        <result column="is_open" property="isOpen"/>
+        <result column="remark" property="remark"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="has_children" property="hasChildren"/>
+    </resultMap>
+
+    <resultMap id="treeNodeResultMap" type="org.springblade.core.tool.node.TreeNode">
+        <id column="id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="title" property="title"/>
+        <result column="value" property="value"/>
+        <result column="key" property="key"/>
+    </resultMap>
+
+    <select id="lazyList"  resultMap="menuVOResultMap">
+        SELECT
+            menu.*,
+            (
+                SELECT
+                    CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END
+            FROM
+                blade_menu
+            WHERE
+                parent_id = menu.id AND is_deleted = 0
+        ) AS "has_children"
+        FROM
+            blade_menu menu
+        WHERE menu.is_deleted = 0
+        <if test="param1!=null">
+            and menu.parent_id = #{param1}
+        </if>
+        <if test="param2.name!=null and param2.name!=''">
+            and menu.name like concat(concat('%', #{param2.name}),'%')
+        </if>
+        <if test="param2.code!=null and param2.code!=''">
+            and menu.code like concat(concat('%', #{param2.code}),'%')
+        </if>
+        <if test="param2.alias!=null and param2.alias!=''">
+            and menu.alias like concat(concat('%', #{param2.alias}),'%')
+        </if>
+        ORDER BY menu.sort
+    </select>
+
+    <select id="lazyMenuList" resultMap="menuVOResultMap">
+        SELECT
+            menu.*,
+            (
+                SELECT
+                    CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END
+        FROM
+                blade_menu
+        WHERE
+        parent_id = menu.id AND is_deleted = 0  AND category = 1
+        ) AS "has_children"
+        FROM
+            blade_menu menu
+        WHERE menu.is_deleted = 0 AND menu.category = 1
+        <if test="param1!=null">
+            and menu.parent_id = #{param1}
+        </if>
+        <if test="param2.name!=null and param2.name!=''">
+            and menu.name like concat(concat('%', #{param2.name}),'%')
+        </if>
+        <if test="param2.code!=null and param2.code!=''">
+            and menu.code like concat(concat('%', #{param2.code}),'%')
+        </if>
+        <if test="param2.alias!=null and param2.alias!=''">
+            and menu.alias like concat(concat('%', #{param2.alias}),'%')
+        </if>
+        ORDER BY menu.sort
+    </select>
+
+    <select id="tree" resultMap="treeNodeResultMap">
+        select id, parent_id, name as title, id as "value", id as "key" from blade_menu where is_deleted = 0 and category = 1
+    </select>
+
+    <select id="allMenu" resultMap="menuResultMap">
+        select * from blade_menu where is_deleted = 0 and category = 1
+    </select>
+
+    <select id="roleMenu" resultMap="menuResultMap">
+        select * from blade_menu where is_deleted = 0 and id IN
+        ( SELECT menu_id FROM blade_role_menu WHERE role_id IN
+        <foreach collection="param1" index="index" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+        )
+        <if test="param2!=null and param2>0">
+            AND id IN
+            (
+            SELECT menu_id FROM blade_top_menu_setting WHERE top_menu_id = #{param2}
+            )
+        </if>
+    </select>
+
+    <select id="roleMenuByRoleId" resultMap="menuResultMap">
+        select * from blade_menu where is_deleted = 0 and id IN
+            ( SELECT menu_id FROM blade_role_menu WHERE role_id IN
+                <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            )
+    </select>
+
+    <select id="roleMenuByTopMenuId" resultMap="menuResultMap">
+        select * from blade_menu where is_deleted = 0 and id IN
+              (
+                  SELECT menu_id FROM blade_top_menu_setting WHERE top_menu_id = #{param1}
+              )
+    </select>
+
+    <select id="routes" resultMap="menuResultMap">
+        SELECT
+            *
+        FROM
+            blade_menu
+        WHERE
+            is_deleted = 0 and category = 1
+            and id IN ( SELECT menu_id FROM blade_role_menu WHERE role_id IN
+                        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                            #{item}
+                        </foreach> )
+    </select>
+
+    <select id="allButtons" resultMap="menuResultMap">
+        SELECT
+            id,
+            parent_id,
+            CODE,
+            NAME,
+            alias,
+            path,
+            source,
+            action,
+            sort
+        FROM
+            blade_menu
+        WHERE
+            (
+                category = 2 OR id IN ( SELECT parent_id FROM blade_menu WHERE is_deleted = 0 AND category = 2 )
+            )
+          AND is_deleted = 0
+        ORDER BY sort
+    </select>
+
+    <select id="buttons" resultMap="menuResultMap">
+        SELECT * FROM (
+            SELECT
+                id,
+                parent_id,
+                code,
+                name,
+                alias,
+                path,
+                source,
+                action,
+                sort
+            FROM
+                blade_menu
+            WHERE
+                is_deleted = 0 and id IN (
+                  SELECT parent_id FROM blade_menu
+                  WHERE ( category = 2 AND id IN ( SELECT menu_id FROM blade_role_menu WHERE role_id IN
+                    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                  ) ) )
+
+            UNION ALL
+
+            SELECT
+                id,
+                parent_id,
+                code,
+                name,
+                alias,
+                path,
+                source,
+                action,
+                sort
+            FROM
+                blade_menu
+            WHERE
+                is_deleted = 0 and  category = 2 AND id IN ( SELECT menu_id FROM blade_role_menu WHERE role_id IN
+                <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>)
+        ) menu ORDER BY sort
+    </select>
+
+    <select id="grantTree" resultMap="treeNodeResultMap">
+        select id, parent_id, name as title, id as "value", id as "key" from blade_menu where is_deleted = 0 order by sort
+    </select>
+
+    <select id="grantTreeByRole" resultMap="treeNodeResultMap">
+        select id, parent_id, name as title, id as "value", id as "key" from blade_menu where is_deleted = 0
+        and id in ( select menu_id from blade_role_menu where role_id in
+        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach> )
+        or id in (
+            select parent_id from blade_menu where is_deleted = 0
+            and id in ( select menu_id from blade_role_menu where role_id in
+            <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach> )
+          )
+        order by sort
+    </select>
+
+    <select id="grantTopTree" resultMap="treeNodeResultMap">
+        select id, parent_id, name as title, id as "value", id as "key" from blade_menu where category = 1 and is_deleted = 0 order by sort
+    </select>
+
+    <select id="grantTopTreeByRole" resultMap="treeNodeResultMap">
+        select id, parent_id, name as title, id as "value", id as "key" from blade_menu where category = 1 and is_deleted = 0
+        and id in ( select menu_id from blade_role_menu where role_id in
+        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach> )
+        or id in (
+        select parent_id from blade_menu where is_deleted = 0
+        and id in ( select menu_id from blade_role_menu where role_id in
+        <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach> )
+        )
+        order by sort
+    </select>
+
+    <select id="grantDataScopeTree" resultMap="treeNodeResultMap">
+        SELECT
+            *
+        FROM
+            (
+                SELECT
+                    id,
+                    parent_id,
+                    NAME AS title,
+                    id AS "value",
+                    id AS "key"
+                FROM
+                    blade_menu
+                WHERE
+                    category = 1
+                  AND is_deleted = 0
+                  AND id IN ( SELECT menu_id FROM blade_scope_data WHERE is_deleted = 0 AND menu_id IS NOT NULL )
+            ) menu
+
+        UNION ALL
+
+        SELECT
+            id,
+            menu_id AS parent_id,
+            scope_name AS title,
+            id AS "value",
+            id AS "key"
+        FROM
+            blade_scope_data
+        WHERE
+            is_deleted = 0
+          AND menu_id IS NOT NULL
+    </select>
+
+    <select id="grantApiScopeTree" resultMap="treeNodeResultMap">
+        SELECT
+            *
+        FROM
+            (
+                SELECT
+                    id,
+                    parent_id,
+                    NAME AS title,
+                    id AS "value",
+                    id AS "key"
+                FROM
+                    blade_menu
+                WHERE
+                    category = 1
+                  AND is_deleted = 0
+                  AND id IN ( SELECT menu_id FROM blade_scope_api WHERE is_deleted = 0 AND menu_id IS NOT NULL )
+            ) menu
+
+        UNION ALL
+
+        SELECT
+            id,
+            menu_id AS parent_id,
+            scope_name AS title,
+            id AS "value",
+            id AS "key"
+        FROM
+            blade_scope_api
+        WHERE
+            is_deleted = 0
+          AND menu_id IS NOT NULL
+    </select>
+
+    <select id="grantDataScopeTreeByRole" resultMap="treeNodeResultMap">
+        SELECT
+        *
+        FROM
+        (
+            SELECT
+                id,
+                parent_id,
+                NAME AS title,
+                id AS "value",
+                id AS "key"
+            FROM
+                blade_menu
+            WHERE
+                category = 1
+            AND is_deleted = 0
+            AND id IN ( SELECT menu_id FROM blade_scope_data WHERE is_deleted = 0 AND menu_id IS NOT NULL )
+            AND (
+                id IN (
+                    select menu_id from blade_role_menu where role_id in
+                    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                )
+                OR id IN (
+                    select parent_id from blade_menu where is_deleted = 0
+                    and id in ( select menu_id from blade_role_menu where role_id in
+                    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach> )
+                )
+            )
+        ) menu
+
+        UNION ALL
+
+        SELECT
+            id,
+            menu_id AS parent_id,
+            scope_name AS title,
+            id AS "value",
+            id AS "key"
+        FROM
+            blade_scope_data
+        WHERE
+            is_deleted = 0
+        AND (
+            menu_id IN (
+                select menu_id from blade_role_menu where role_id in
+                <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            )
+            OR menu_id IN (
+                select parent_id from blade_menu where is_deleted = 0
+                and id in ( select menu_id from blade_role_menu where role_id in
+                <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach> )
+            )
+        )
+        AND menu_id IS NOT NULL
+    </select>
+
+    <select id="grantApiScopeTreeByRole" resultMap="treeNodeResultMap">
+        SELECT
+        *
+        FROM
+        (
+            SELECT
+                id,
+                parent_id,
+                NAME AS title,
+                id AS "value",
+                id AS "key"
+            FROM
+                blade_menu
+            WHERE
+                category = 1
+            AND is_deleted = 0
+            AND id IN ( SELECT menu_id FROM blade_scope_api WHERE is_deleted = 0 AND menu_id IS NOT NULL )
+            AND (
+                id IN (
+                    select menu_id from blade_role_menu where role_id in
+                    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                )
+                OR id IN (
+                    select parent_id from blade_menu where is_deleted = 0
+                    and id in (
+                        select menu_id from blade_role_menu where role_id in
+                    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach> )
+                )
+            )
+        ) menu
+
+        UNION ALL
+
+        SELECT
+            id,
+            menu_id AS parent_id,
+            scope_name AS title,
+            id AS "value",
+            id AS "key"
+        FROM
+            blade_scope_api
+        WHERE
+            is_deleted = 0
+        AND
+            (
+                menu_id IN (
+                    select menu_id from blade_role_menu where role_id in
+                    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                )
+            OR menu_id IN (
+                    select parent_id from blade_menu where is_deleted = 0
+                    and id in ( select menu_id from blade_role_menu where role_id in
+                    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach> )
+                )
+        )
+        AND menu_id IS NOT NULL
+    </select>
+
+    <select id="authRoutes" resultType="cn.gistack.system.dto.MenuDTO">
+        SELECT
+            GROUP_CONCAT(r.role_alias) as alias,
+            m.path
+        FROM
+            blade_role_menu rm
+            LEFT JOIN blade_menu m ON rm.menu_id = m.id
+            LEFT JOIN blade_role r ON rm.role_id = r.id
+        WHERE
+            rm.role_id IN
+            <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            AND m.path IS NOT NULL and m.is_deleted = 0
+        GROUP BY m.path
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ParamMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ParamMapper.java
new file mode 100644
index 0000000..1a946f5
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ParamMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.entity.Param;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface ParamMapper extends BaseMapper<Param> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ParamMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ParamMapper.xml
new file mode 100644
index 0000000..e9b6da8
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/ParamMapper.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.ParamMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="paramResultMap" type="cn.gistack.system.entity.Param">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="param_name" property="paramName"/>
+        <result column="param_key" property="paramKey"/>
+        <result column="param_value" property="paramValue"/>
+        <result column="remark" property="remark"/>
+    </resultMap>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/PostMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/PostMapper.java
new file mode 100644
index 0000000..e6b4395
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/PostMapper.java
@@ -0,0 +1,50 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.entity.Post;
+import cn.gistack.system.vo.PostVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
+
+/**
+ * 岗位表 Mapper 接口
+ *
+ * @author Chill
+ */
+public interface PostMapper extends BaseMapper<Post> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param post
+	 * @return
+	 */
+	List<PostVO> selectPostPage(IPage page, PostVO post);
+
+	/**
+	 * 获取岗位名
+	 *
+	 * @param ids
+	 * @return
+	 */
+	List<String> getPostNames(Long[] ids);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/PostMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/PostMapper.xml
new file mode 100644
index 0000000..bcb2668
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/PostMapper.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.PostMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="postResultMap" type="cn.gistack.system.entity.Post">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="category" property="category"/>
+        <result column="post_code" property="postCode"/>
+        <result column="post_name" property="postName"/>
+        <result column="sort" property="sort"/>
+        <result column="remark" property="remark"/>
+    </resultMap>
+
+
+    <select id="selectPostPage" resultMap="postResultMap">
+        select * from blade_post where is_deleted = 0
+    </select>
+
+    <select id="getPostNames" resultType="java.lang.String">
+        SELECT
+            post_name
+        FROM
+            blade_post
+        WHERE
+            id IN
+            <foreach collection="array" item="ids" index="index" open="(" close=")" separator=",">
+                #{ids}
+            </foreach>
+            and is_deleted = 0
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RegionMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RegionMapper.java
new file mode 100644
index 0000000..0f25e1a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RegionMapper.java
@@ -0,0 +1,62 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.entity.Region;
+import cn.gistack.system.excel.RegionExcel;
+import cn.gistack.system.vo.RegionVO;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 行政区划表 Mapper 接口
+ *
+ * @author Chill
+ */
+public interface RegionMapper extends BaseMapper<Region> {
+
+	/**
+	 * 懒加载列表
+	 *
+	 * @param parentCode
+	 * @param param
+	 * @return
+	 */
+	List<RegionVO> lazyList(String parentCode, Map<String, Object> param);
+
+	/**
+	 * 懒加载列表
+	 *
+	 * @param parentCode
+	 * @param param
+	 * @return
+	 */
+	List<RegionVO> lazyTree(String parentCode, Map<String, Object> param);
+
+	/**
+	 * 导出区划数据
+	 *
+	 * @param queryWrapper
+	 * @return
+	 */
+	List<RegionExcel> exportRegion(@Param("ew") Wrapper<Region> queryWrapper);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RegionMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RegionMapper.xml
new file mode 100644
index 0000000..a1a5a8a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RegionMapper.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.RegionMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="regionResultMap" type="cn.gistack.system.entity.Region">
+        <id column="code" property="code"/>
+        <result column="parent_code" property="parentCode"/>
+        <result column="ancestors" property="ancestors"/>
+        <result column="name" property="name"/>
+        <result column="province_code" property="provinceCode"/>
+        <result column="province_name" property="provinceName"/>
+        <result column="city_code" property="cityCode"/>
+        <result column="city_name" property="cityName"/>
+        <result column="district_code" property="districtCode"/>
+        <result column="district_name" property="districtName"/>
+        <result column="town_code" property="townCode"/>
+        <result column="town_name" property="townName"/>
+        <result column="village_code" property="villageCode"/>
+        <result column="village_name" property="villageName"/>
+        <result column="level" property="regionLevel"/>
+        <result column="sort" property="sort"/>
+        <result column="remark" property="remark"/>
+    </resultMap>
+
+    <resultMap id="regionVOResultMap" type="cn.gistack.system.vo.RegionVO">
+        <id column="code" property="code"/>
+        <result column="parent_code" property="parentCode"/>
+        <result column="ancestors" property="ancestors"/>
+        <result column="name" property="name"/>
+        <result column="province_code" property="provinceCode"/>
+        <result column="province_name" property="provinceName"/>
+        <result column="city_code" property="cityCode"/>
+        <result column="city_name" property="cityName"/>
+        <result column="district_code" property="districtCode"/>
+        <result column="district_name" property="districtName"/>
+        <result column="town_code" property="townCode"/>
+        <result column="town_name" property="townName"/>
+        <result column="village_code" property="villageCode"/>
+        <result column="village_name" property="villageName"/>
+        <result column="level" property="regionLevel"/>
+        <result column="sort" property="sort"/>
+        <result column="remark" property="remark"/>
+        <result column="id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="has_children" property="hasChildren"/>
+    </resultMap>
+
+    <resultMap id="treeNodeResultMap" type="org.springblade.core.tool.node.TreeNode">
+        <id column="id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="title" property="title"/>
+        <result column="value" property="value"/>
+        <result column="key" property="key"/>
+        <result column="has_children" property="hasChildren"/>
+    </resultMap>
+
+    <select id="lazyList" resultMap="regionVOResultMap">
+        SELECT
+            region.*,
+            ( SELECT CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END FROM blade_region WHERE parent_code = region.code ) AS "has_children"
+        FROM
+            blade_region region
+        <where>
+            <if test="param1!=null">
+                and region.parent_code = #{param1}
+            </if>
+            <if test="param2.code!=null and param2.code!=''">
+                and region.code like concat(concat('%', #{param2.code}),'%')
+            </if>
+            <if test="param2.name!=null and param2.name!=''">
+                and region.name like concat(concat('%', #{param2.name}),'%')
+            </if>
+        </where>
+    </select>
+
+    <select id="lazyTree" resultMap="treeNodeResultMap">
+        SELECT
+            region.code AS "id",
+            region.parent_code AS "parent_id",
+            region.name AS "title",
+            region.code AS "value",
+            region.code AS "key",
+            ( SELECT CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END FROM blade_region WHERE parent_code = region.code ) AS "has_children"
+        FROM
+            blade_region region
+        <where>
+            <if test="param1!=null">
+                and region.parent_code = #{param1}
+            </if>
+            <if test="param2.code!=null and param2.code!=''">
+                and region.code like concat(concat('%', #{param2.code}),'%')
+            </if>
+            <if test="param2.name!=null and param2.name!=''">
+                and region.name like concat(concat('%', #{param2.name}),'%')
+            </if>
+        </where>
+        ORDER BY region.code
+    </select>
+
+    <select id="exportRegion" resultType="cn.gistack.system.excel.RegionExcel">
+        SELECT * FROM blade_region ${ew.customSqlSegment}
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMapper.java
new file mode 100644
index 0000000..3ced816
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMapper.java
@@ -0,0 +1,67 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.entity.Role;
+import cn.gistack.system.vo.RoleVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface RoleMapper extends BaseMapper<Role> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param role
+	 * @return
+	 */
+	List<RoleVO> selectRolePage(IPage page, RoleVO role);
+
+	/**
+	 * 获取树形节点
+	 *
+	 * @param tenantId
+	 * @param excludeRole
+	 * @return
+	 */
+	List<RoleVO> tree(String tenantId, String excludeRole);
+
+	/**
+	 * 获取角色名
+	 *
+	 * @param ids
+	 * @return
+	 */
+	List<String> getRoleNames(Long[] ids);
+
+	/**
+	 * 获取角色名
+	 *
+	 * @param ids
+	 * @return
+	 */
+	List<String> getRoleAliases(Long[] ids);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMapper.xml
new file mode 100644
index 0000000..0ff576c
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMapper.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.RoleMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="roleResultMap" type="cn.gistack.system.entity.Role">
+        <id column="id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="role_name" property="roleName"/>
+        <result column="sort" property="sort"/>
+        <result column="role_alias" property="roleAlias"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+    <resultMap id="treeNodeResultMap" type="org.springblade.core.tool.node.TreeNode">
+        <id column="id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="title" property="title"/>
+        <result column="value" property="value"/>
+        <result column="key" property="key"/>
+    </resultMap>
+
+    <select id="selectRolePage" resultMap="roleResultMap">
+        select * from blade_role where is_deleted = 0
+    </select>
+
+    <select id="tree" resultMap="treeNodeResultMap">
+        select id, parent_id, role_name as title, id as "value", id as "key" from blade_role where is_deleted = 0
+        <if test="param1!=null">
+            and tenant_id = #{param1}
+        </if>
+        <if test="param2!=null">
+            and role_alias &lt;&gt; #{param2}
+        </if>
+    </select>
+
+    <select id="getRoleNames" resultType="java.lang.String">
+        SELECT
+        role_name
+        FROM
+        blade_role
+        WHERE
+        id IN
+        <foreach collection="array" item="ids" index="index" open="(" close=")" separator=",">
+            #{ids}
+        </foreach>
+        and is_deleted = 0
+    </select>
+
+    <select id="getRoleAliases" resultType="java.lang.String">
+        SELECT
+        role_alias
+        FROM
+        blade_role
+        WHERE
+        id IN
+        <foreach collection="array" item="ids" index="index" open="(" close=")" separator=",">
+            #{ids}
+        </foreach>
+        and is_deleted = 0
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMenuMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMenuMapper.java
new file mode 100644
index 0000000..ac7856b
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMenuMapper.java
@@ -0,0 +1,41 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.entity.RoleMenu;
+import cn.gistack.system.vo.RoleMenuVO;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface RoleMenuMapper extends BaseMapper<RoleMenu> {
+
+	/**
+	 * 自定义分页
+	 * @param page
+	 * @param roleMenu
+	 * @return
+	 */
+	List<RoleMenuVO> selectRoleMenuPage(IPage page, RoleMenuVO roleMenu);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMenuMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMenuMapper.xml
new file mode 100644
index 0000000..4aa8717
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleMenuMapper.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.RoleMenuMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="roleMenuResultMap" type="cn.gistack.system.entity.RoleMenu">
+        <id column="id" property="id"/>
+        <result column="menu_id" property="menuId"/>
+        <result column="role_id" property="roleId"/>
+    </resultMap>
+
+    <select id="selectRoleMenuPage" resultMap="roleMenuResultMap">
+        select * from blade_role_menu where is_deleted = 0
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleScopeMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleScopeMapper.java
new file mode 100644
index 0000000..19a1db8
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleScopeMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.entity.RoleScope;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface RoleScopeMapper extends BaseMapper<RoleScope> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleScopeMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleScopeMapper.xml
new file mode 100644
index 0000000..a59f997
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/RoleScopeMapper.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.RoleScopeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="roleMenuResultMap" type="cn.gistack.system.entity.RoleScope">
+        <id column="id" property="id"/>
+        <result column="scope_id" property="scopeId"/>
+        <result column="role_id" property="roleId"/>
+    </resultMap>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantMapper.java
new file mode 100644
index 0000000..1a07ee6
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantMapper.java
@@ -0,0 +1,41 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.entity.Tenant;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
+
+/**
+ *  Mapper 接口
+ *
+ * @author Chill
+ */
+public interface TenantMapper extends BaseMapper<Tenant> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param tenant
+	 * @return
+	 */
+	List<Tenant> selectTenantPage(IPage page, Tenant tenant);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantMapper.xml
new file mode 100644
index 0000000..ecb97bb
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantMapper.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.TenantMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="tenantResultMap" type="cn.gistack.system.entity.Tenant">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="tenant_id" property="tenantId"/>
+        <result column="tenant_name" property="tenantName"/>
+        <result column="domain_url" property="domainUrl"/>
+        <result column="background_url" property="backgroundUrl"/>
+        <result column="linkman" property="linkman"/>
+        <result column="contact_number" property="contactNumber"/>
+        <result column="address" property="address"/>
+        <result column="account_number" property="accountNumber"/>
+        <result column="expire_time" property="expireTime"/>
+        <result column="license_key" property="licenseKey"/>
+    </resultMap>
+
+
+    <select id="selectTenantPage" resultMap="tenantResultMap">
+        select * from blade_tenant where is_deleted = 0
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantPackageMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantPackageMapper.java
new file mode 100644
index 0000000..8cb6681
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantPackageMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.entity.TenantPackage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 租户产品表 Mapper 接口
+ *
+ * @author BladeX
+ */
+public interface TenantPackageMapper extends BaseMapper<TenantPackage> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantPackageMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantPackageMapper.xml
new file mode 100644
index 0000000..388ba87
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TenantPackageMapper.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.TenantPackageMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="tenantPackageResultMap" type="cn.gistack.system.entity.TenantPackage">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="package_name" property="packageName"/>
+        <result column="menu_id" property="menuId"/>
+        <result column="remark" property="remark"/>
+    </resultMap>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuMapper.java
new file mode 100644
index 0000000..a7dd36a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.entity.TopMenu;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 顶部菜单表 Mapper 接口
+ *
+ * @author BladeX
+ */
+public interface TopMenuMapper extends BaseMapper<TopMenu> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuMapper.xml
new file mode 100644
index 0000000..cadeb4c
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuMapper.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.TopMenuMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="topMenuResultMap" type="cn.gistack.system.entity.TopMenu">
+        <result column="id" property="id"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="code" property="code"/>
+        <result column="name" property="name"/>
+        <result column="source" property="source"/>
+        <result column="sort" property="sort"/>
+    </resultMap>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuSettingMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuSettingMapper.java
new file mode 100644
index 0000000..d1b44a7
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuSettingMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.mapper;
+
+import cn.gistack.system.entity.TopMenuSetting;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface TopMenuSettingMapper extends BaseMapper<TopMenuSetting> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuSettingMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuSettingMapper.xml
new file mode 100644
index 0000000..68e5aae
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/mapper/TopMenuSettingMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.mapper.TopMenuSettingMapper">
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IApiScopeService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IApiScopeService.java
new file mode 100644
index 0000000..2f1af78
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IApiScopeService.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.ApiScope;
+import org.springblade.core.mp.base.BaseService;
+
+/**
+ *  服务类
+ *
+ * @author BladeX
+ */
+public interface IApiScopeService extends BaseService<ApiScope> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IAuthClientService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IAuthClientService.java
new file mode 100644
index 0000000..1f87895
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IAuthClientService.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.AuthClient;
+import org.springblade.core.mp.base.BaseService;
+
+/**
+ *  服务类
+ *
+ * @author Chill
+ */
+public interface IAuthClientService extends BaseService<AuthClient> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDataScopeService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDataScopeService.java
new file mode 100644
index 0000000..c9d8a1f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDataScopeService.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.DataScope;
+import org.springblade.core.mp.base.BaseService;
+
+/**
+ *  服务类
+ *
+ * @author BladeX
+ */
+public interface IDataScopeService extends BaseService<DataScope> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDeptService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDeptService.java
new file mode 100644
index 0000000..c2c1312
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDeptService.java
@@ -0,0 +1,119 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.Dept;
+import cn.gistack.system.vo.DeptVO;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface IDeptService extends IService<Dept> {
+
+	/**
+	 * 懒加载部门列表
+	 *
+	 * @param tenantId
+	 * @param parentId
+	 * @param param
+	 * @return
+	 */
+	List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param);
+
+	/**
+	 * 树形结构
+	 *
+	 * @param tenantId
+	 * @return
+	 */
+	List<DeptVO> tree(String tenantId);
+
+	/**
+	 * 懒加载树形结构
+	 *
+	 * @param tenantId
+	 * @param parentId
+	 * @return
+	 */
+	List<DeptVO> lazyTree(String tenantId, Long parentId);
+
+	/**
+	 * 获取部门ID
+	 *
+	 * @param tenantId
+	 * @param deptNames
+	 * @return
+	 */
+	String getDeptIds(String tenantId, String deptNames);
+
+	/**
+	 * 获取部门ID
+	 *
+	 * @param tenantId
+	 * @param deptNames
+	 * @return
+	 */
+	String getDeptIdsByFuzzy(String tenantId, String deptNames);
+
+	/**
+	 * 获取部门名
+	 *
+	 * @param deptIds
+	 * @return
+	 */
+	List<String> getDeptNames(String deptIds);
+
+	/**
+	 * 获取子部门
+	 *
+	 * @param deptId
+	 * @return
+	 */
+	List<Dept> getDeptChild(Long deptId);
+
+	/**
+	 * 删除部门
+	 *
+	 * @param ids
+	 * @return
+	 */
+	boolean removeDept(String ids);
+
+	/**
+	 * 提交
+	 *
+	 * @param dept
+	 * @return
+	 */
+	boolean submit(Dept dept);
+
+	/**
+	 * 部门信息查询
+	 *
+	 * @param deptName
+	 * @param parentId
+	 * @return
+	 */
+	List<DeptVO> search(String deptName, Long parentId);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDictBizService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDictBizService.java
new file mode 100644
index 0000000..e791ebd
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDictBizService.java
@@ -0,0 +1,101 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+
+import cn.gistack.system.entity.DictBiz;
+import cn.gistack.system.vo.DictBizVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.core.mp.support.Query;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface IDictBizService extends IService<DictBiz> {
+
+	/**
+	 * 树形结构
+	 *
+	 * @return
+	 */
+	List<DictBizVO> tree();
+
+	/**
+	 * 树形结构
+	 *
+	 * @return
+	 */
+	List<DictBizVO> parentTree();
+
+	/**
+	 * 获取字典表对应中文
+	 *
+	 * @param code    字典编号
+	 * @param dictKey 字典序号
+	 * @return
+	 */
+	String getValue(String code, String dictKey);
+
+	/**
+	 * 获取字典表
+	 *
+	 * @param code 字典编号
+	 * @return
+	 */
+	List<DictBiz> getList(String code);
+
+	/**
+	 * 新增或修改
+	 *
+	 * @param dict
+	 * @return
+	 */
+	boolean submit(DictBiz dict);
+
+	/**
+	 * 删除字典
+	 *
+	 * @param ids
+	 * @return
+	 */
+	boolean removeDict(String ids);
+
+	/**
+	 * 顶级列表
+	 *
+	 * @param dict
+	 * @param query
+	 * @return
+	 */
+	IPage<DictBizVO> parentList(Map<String, Object> dict, Query query);
+
+	/**
+	 * 子列表
+	 *
+	 * @param dict
+	 * @param parentId
+	 * @return
+	 */
+	List<DictBizVO> childList(Map<String, Object> dict, Long parentId);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDictService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDictService.java
new file mode 100644
index 0000000..191fde5
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IDictService.java
@@ -0,0 +1,109 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.Dict;
+import cn.gistack.system.vo.DictVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.core.mp.support.Query;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface IDictService extends IService<Dict> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param dict
+	 * @return
+	 */
+	IPage<DictVO> selectDictPage(IPage<DictVO> page, DictVO dict);
+
+	/**
+	 * 树形结构
+	 *
+	 * @return
+	 */
+	List<DictVO> tree();
+
+	/**
+	 * 树形结构
+	 *
+	 * @return
+	 */
+	List<DictVO> parentTree();
+
+	/**
+	 * 获取字典表对应中文
+	 *
+	 * @param code    字典编号
+	 * @param dictKey 字典序号
+	 * @return
+	 */
+	String getValue(String code, String dictKey);
+
+	/**
+	 * 获取字典表
+	 *
+	 * @param code 字典编号
+	 * @return
+	 */
+	List<Dict> getList(String code);
+
+	/**
+	 * 新增或修改
+	 *
+	 * @param dict
+	 * @return
+	 */
+	boolean submit(Dict dict);
+
+	/**
+	 * 删除字典
+	 *
+	 * @param ids
+	 * @return
+	 */
+	boolean removeDict(String ids);
+
+	/**
+	 * 顶级列表
+	 *
+	 * @param dict
+	 * @param query
+	 * @return
+	 */
+	IPage<DictVO> parentList(Map<String, Object> dict, Query query);
+
+	/**
+	 * 子列表
+	 *
+	 * @param dict
+	 * @param parentId
+	 * @return
+	 */
+	List<DictVO> childList(Map<String, Object> dict, Long parentId);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IMenuService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IMenuService.java
new file mode 100644
index 0000000..5465b3a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IMenuService.java
@@ -0,0 +1,166 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.Menu;
+import cn.gistack.system.vo.MenuVO;
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.tool.node.TreeNode;
+import org.springblade.core.tool.support.Kv;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface IMenuService extends IService<Menu> {
+
+	/**
+	 * 懒加载列表
+	 *
+	 * @param parentId
+	 * @param param
+	 * @return
+	 */
+	List<MenuVO> lazyList(Long parentId, Map<String, Object> param);
+
+	/**
+	 * 懒加载菜单列表
+	 *
+	 * @param parentId
+	 * @param param
+	 * @return
+	 */
+	List<MenuVO> lazyMenuList(Long parentId, Map<String, Object> param);
+
+	/**
+	 * 菜单树形结构
+	 *
+	 * @param roleId
+	 * @param topMenuId
+	 * @return
+	 */
+	List<MenuVO> routes(String roleId, Long topMenuId);
+
+	/**
+	 * 按钮树形结构
+	 *
+	 * @param roleId
+	 * @return
+	 */
+	List<MenuVO> buttons(String roleId);
+
+	/**
+	 * 树形结构
+	 *
+	 * @return
+	 */
+	List<TreeNode> tree();
+
+	/**
+	 * 授权树形结构
+	 *
+	 * @param user
+	 * @return
+	 */
+	List<TreeNode> grantTree(BladeUser user);
+
+	/**
+	 * 顶部菜单树形结构
+	 *
+	 * @param user
+	 * @return
+	 */
+	List<TreeNode> grantTopTree(BladeUser user);
+
+	/**
+	 * 数据权限授权树形结构
+	 *
+	 * @param user
+	 * @return
+	 */
+	List<TreeNode> grantDataScopeTree(BladeUser user);
+
+	/**
+	 * 接口权限授权树形结构
+	 *
+	 * @param user
+	 * @return
+	 */
+	List<TreeNode> grantApiScopeTree(BladeUser user);
+
+	/**
+	 * 默认选中节点
+	 *
+	 * @param roleIds
+	 * @return
+	 */
+	List<String> roleTreeKeys(String roleIds);
+
+	/**
+	 * 默认选中节点
+	 *
+	 * @param topMenuIds
+	 * @return
+	 */
+	List<String> topTreeKeys(String topMenuIds);
+
+	/**
+	 * 默认选中节点
+	 *
+	 * @param roleIds
+	 * @return
+	 */
+	List<String> dataScopeTreeKeys(String roleIds);
+
+	/**
+	 * 默认选中节点
+	 *
+	 * @param roleIds
+	 * @return
+	 */
+	List<String> apiScopeTreeKeys(String roleIds);
+
+	/**
+	 * 获取配置的角色权限
+	 *
+	 * @param user
+	 * @return
+	 */
+	List<Kv> authRoutes(BladeUser user);
+
+	/**
+	 * 删除菜单
+	 *
+	 * @param ids
+	 * @return
+	 */
+	boolean removeMenu(String ids);
+
+	/**
+	 * 提交
+	 *
+	 * @param menu
+	 * @return
+	 */
+	boolean submit(Menu menu);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IParamService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IParamService.java
new file mode 100644
index 0000000..a579037
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IParamService.java
@@ -0,0 +1,37 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.Param;
+import org.springblade.core.mp.base.BaseService;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface IParamService extends BaseService<Param> {
+
+	/**
+	 * 获取参数值
+	 *
+	 * @param paramKey 参数key
+	 * @return String
+	 */
+	String getValue(String paramKey);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IPostService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IPostService.java
new file mode 100644
index 0000000..9cca6e2
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IPostService.java
@@ -0,0 +1,68 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.Post;
+import cn.gistack.system.vo.PostVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseService;
+
+import java.util.List;
+
+/**
+ * 岗位表 服务类
+ *
+ * @author Chill
+ */
+public interface IPostService extends BaseService<Post> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param post
+	 * @return
+	 */
+	IPage<PostVO> selectPostPage(IPage<PostVO> page, PostVO post);
+
+	/**
+	 * 获取岗位ID
+	 *
+	 * @param tenantId
+	 * @param postNames
+	 * @return
+	 */
+	String getPostIds(String tenantId, String postNames);
+
+	/**
+	 * 获取岗位ID
+	 *
+	 * @param tenantId
+	 * @param postNames
+	 * @return
+	 */
+	String getPostIdsByFuzzy(String tenantId, String postNames);
+
+	/**
+	 * 获取岗位名
+	 *
+	 * @param postIds
+	 * @return
+	 */
+	List<String> getPostNames(String postIds);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRegionService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRegionService.java
new file mode 100644
index 0000000..281d3df
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRegionService.java
@@ -0,0 +1,86 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.Region;
+import cn.gistack.system.excel.RegionExcel;
+import cn.gistack.system.vo.RegionVO;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 行政区划表 服务类
+ *
+ * @author Chill
+ */
+public interface IRegionService extends IService<Region> {
+
+	/**
+	 * 提交
+	 *
+	 * @param region
+	 * @return
+	 */
+	boolean submit(Region region);
+
+	/**
+	 * 删除
+	 *
+	 * @param id
+	 * @return
+	 */
+	boolean removeRegion(String id);
+
+	/**
+	 * 懒加载列表
+	 *
+	 * @param parentCode
+	 * @param param
+	 * @return
+	 */
+	List<RegionVO> lazyList(String parentCode, Map<String, Object> param);
+
+	/**
+	 * 懒加载列表
+	 *
+	 * @param parentCode
+	 * @param param
+	 * @return
+	 */
+	List<RegionVO> lazyTree(String parentCode, Map<String, Object> param);
+
+	/**
+	 * 导入区划数据
+	 *
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	void importRegion(List<RegionExcel> data, Boolean isCovered);
+
+	/**
+	 * 导出区划数据
+	 *
+	 * @param queryWrapper
+	 * @return
+	 */
+	List<RegionExcel> exportRegion(Wrapper<Region> queryWrapper);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRoleMenuService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRoleMenuService.java
new file mode 100644
index 0000000..33b9a83
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRoleMenuService.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.RoleMenu;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface IRoleMenuService extends IService<RoleMenu> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRoleScopeService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRoleScopeService.java
new file mode 100644
index 0000000..fd7c9be
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRoleScopeService.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.RoleScope;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface IRoleScopeService extends IService<RoleScope> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRoleService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRoleService.java
new file mode 100644
index 0000000..bef86ed
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/IRoleService.java
@@ -0,0 +1,112 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.Role;
+import cn.gistack.system.vo.RoleVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface IRoleService extends IService<Role> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param role
+	 * @return
+	 */
+	IPage<RoleVO> selectRolePage(IPage<RoleVO> page, RoleVO role);
+
+	/**
+	 * 树形结构
+	 *
+	 * @param tenantId
+	 * @return
+	 */
+	List<RoleVO> tree(String tenantId);
+
+	/**
+	 * 权限配置
+	 *
+	 * @param roleIds      角色id集合
+	 * @param menuIds      菜单id集合
+	 * @param dataScopeIds 数据权限id集合
+	 * @param apiScopeIds  接口权限id集合
+	 * @return 是否成功
+	 */
+	boolean grant(@NotEmpty List<Long> roleIds, List<Long> menuIds, List<Long> dataScopeIds, List<Long> apiScopeIds);
+
+	/**
+	 * 获取角色ID
+	 *
+	 * @param tenantId
+	 * @param roleNames
+	 * @return
+	 */
+	String getRoleIds(String tenantId, String roleNames);
+
+	/**
+	 * 获取角色名
+	 *
+	 * @param roleIds
+	 * @return
+	 */
+	List<String> getRoleNames(String roleIds);
+
+	/**
+	 * 获取角色名
+	 *
+	 * @param roleIds
+	 * @return
+	 */
+	List<String> getRoleAliases(String roleIds);
+
+	/**
+	 * 提交
+	 *
+	 * @param role
+	 * @return
+	 */
+	boolean submit(Role role);
+
+	/**
+	 * 角色信息查询
+	 *
+	 * @param roleName
+	 * @param parentId
+	 * @return
+	 */
+	List<RoleVO> search(String roleName, Long parentId);
+
+	/**
+	 * 删除角色
+	 *
+	 * @param ids
+	 * @return
+	 */
+	boolean removeRole(String ids);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITenantPackageService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITenantPackageService.java
new file mode 100644
index 0000000..f510ad4
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITenantPackageService.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.TenantPackage;
+import org.springblade.core.mp.base.BaseService;
+
+/**
+ * 租户产品表 服务类
+ *
+ * @author BladeX
+ */
+public interface ITenantPackageService extends BaseService<TenantPackage> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITenantService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITenantService.java
new file mode 100644
index 0000000..411bda3
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITenantService.java
@@ -0,0 +1,76 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.Tenant;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseService;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface ITenantService extends BaseService<Tenant> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param tenant
+	 * @return
+	 */
+	IPage<Tenant> selectTenantPage(IPage<Tenant> page, Tenant tenant);
+
+	/**
+	 * 根据租户编号获取实体
+	 *
+	 * @param tenantId
+	 * @return
+	 */
+	Tenant getByTenantId(String tenantId);
+
+	/**
+	 * 新增
+	 *
+	 * @param tenant
+	 * @return
+	 */
+	boolean submitTenant(Tenant tenant);
+
+	/**
+	 * 删除
+	 *
+	 * @param ids
+	 * @return
+	 */
+	boolean removeTenant(List<Long> ids);
+
+	/**
+	 * 配置租户授权
+	 *
+	 * @param accountNumber
+	 * @param expireTime
+	 * @param ids
+	 * @return
+	 */
+	boolean setting(Integer accountNumber, Date expireTime, String ids);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITopMenuService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITopMenuService.java
new file mode 100644
index 0000000..6b4e653
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITopMenuService.java
@@ -0,0 +1,41 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.TopMenu;
+import org.springblade.core.mp.base.BaseService;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 顶部菜单表 服务类
+ *
+ * @author BladeX
+ */
+public interface ITopMenuService extends BaseService<TopMenu> {
+
+	/**
+	 * 顶部菜单配置
+	 *
+	 * @param topMenuIds 顶部菜单id集合
+	 * @param menuIds    菜单id集合
+	 * @return 是否成功
+	 */
+	boolean grant(@NotEmpty List<Long> topMenuIds, @NotEmpty List<Long> menuIds);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITopMenuSettingService.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITopMenuSettingService.java
new file mode 100644
index 0000000..cc0dea5
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/ITopMenuSettingService.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service;
+
+import cn.gistack.system.entity.TopMenuSetting;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface ITopMenuSettingService extends IService<TopMenuSetting> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/ApiScopeServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/ApiScopeServiceImpl.java
new file mode 100644
index 0000000..94c2ca6
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/ApiScopeServiceImpl.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import cn.gistack.system.entity.ApiScope;
+import cn.gistack.system.mapper.ApiScopeMapper;
+import cn.gistack.system.service.IApiScopeService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 服务实现类
+ *
+ * @author BladeX
+ */
+@Service
+public class ApiScopeServiceImpl extends BaseServiceImpl<ApiScopeMapper, ApiScope> implements IApiScopeService {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/AuthClientServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/AuthClientServiceImpl.java
new file mode 100644
index 0000000..856492a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/AuthClientServiceImpl.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import cn.gistack.system.entity.AuthClient;
+import cn.gistack.system.mapper.AuthClientMapper;
+import cn.gistack.system.service.IAuthClientService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ *  服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class AuthClientServiceImpl extends BaseServiceImpl<AuthClientMapper, AuthClient> implements IAuthClientService {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DataScopeServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DataScopeServiceImpl.java
new file mode 100644
index 0000000..4f138be
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DataScopeServiceImpl.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import cn.gistack.system.entity.DataScope;
+import cn.gistack.system.mapper.DataScopeMapper;
+import cn.gistack.system.service.IDataScopeService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ *  服务实现类
+ *
+ * @author BladeX
+ */
+@Service
+public class DataScopeServiceImpl extends BaseServiceImpl<DataScopeMapper, DataScope> implements IDataScopeService {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java
new file mode 100644
index 0000000..e1b62e9
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DeptServiceImpl.java
@@ -0,0 +1,173 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import cn.gistack.system.cache.SysCache;
+import cn.gistack.system.entity.Dept;
+import cn.gistack.system.mapper.DeptMapper;
+import cn.gistack.system.service.IDeptService;
+import cn.gistack.system.vo.DeptVO;
+import cn.gistack.system.wrapper.DeptWrapper;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements IDeptService {
+
+	private static final String TENANT_ID = "tenantId";
+	private static final String PARENT_ID = "parentId";
+
+	@Override
+	public List<DeptVO> lazyList(String tenantId, Long parentId, Map<String, Object> param) {
+		// 设置租户ID
+		if (AuthUtil.isAdministrator()) {
+			tenantId = StringPool.EMPTY;
+		}
+		String paramTenantId = Func.toStr(param.get(TENANT_ID));
+		if (Func.isNotEmpty(paramTenantId) && AuthUtil.isAdministrator()) {
+			tenantId = paramTenantId;
+		}
+		// 判断点击搜索但是没有查询条件的情况
+		if (Func.isEmpty(param.get(PARENT_ID)) && param.size() == 1) {
+			parentId = 0L;
+		}
+		// 判断数据权限控制,非超管角色只可看到本级及以下数据
+		if (Func.toLong(parentId) == 0L && !AuthUtil.isAdministrator()) {
+			Long deptId = Func.firstLong(AuthUtil.getDeptId());
+			Dept dept = SysCache.getDept(deptId);
+			if (dept.getParentId() != 0) {
+				parentId = dept.getParentId();
+			}
+		}
+		// 判断点击搜索带有查询条件的情况
+		if (Func.isEmpty(param.get(PARENT_ID)) && param.size() > 1 && Func.toLong(parentId) == 0L) {
+			parentId = null;
+		}
+		return baseMapper.lazyList(tenantId, parentId, param);
+	}
+
+
+	@Override
+	public List<DeptVO> tree(String tenantId) {
+		return ForestNodeMerger.merge(baseMapper.tree(tenantId));
+	}
+
+	@Override
+	public List<DeptVO> lazyTree(String tenantId, Long parentId) {
+		if (AuthUtil.isAdministrator()) {
+			tenantId = StringPool.EMPTY;
+		}
+		return ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId));
+	}
+
+	@Override
+	public String getDeptIds(String tenantId, String deptNames) {
+		List<Dept> deptList = baseMapper.selectList(Wrappers.<Dept>query().lambda().eq(Dept::getTenantId, tenantId).in(Dept::getDeptName, Func.toStrList(deptNames)));
+		if (deptList != null && deptList.size() > 0) {
+			return deptList.stream().map(dept -> Func.toStr(dept.getId())).distinct().collect(Collectors.joining(","));
+		}
+		return null;
+	}
+
+	@Override
+	public String getDeptIdsByFuzzy(String tenantId, String deptNames) {
+		LambdaQueryWrapper<Dept> queryWrapper = Wrappers.<Dept>query().lambda().eq(Dept::getTenantId, tenantId);
+		queryWrapper.and(wrapper -> {
+			List<String> names = Func.toStrList(deptNames);
+			names.forEach(name -> wrapper.like(Dept::getDeptName, name).or());
+		});
+		List<Dept> deptList = baseMapper.selectList(queryWrapper);
+		if (deptList != null && deptList.size() > 0) {
+			return deptList.stream().map(dept -> Func.toStr(dept.getId())).distinct().collect(Collectors.joining(","));
+		}
+		return null;
+	}
+
+	@Override
+	public List<String> getDeptNames(String deptIds) {
+		return baseMapper.getDeptNames(Func.toLongArray(deptIds));
+	}
+
+	@Override
+	public List<Dept> getDeptChild(Long deptId) {
+		return baseMapper.selectList(Wrappers.<Dept>query().lambda().like(Dept::getAncestors, deptId));
+	}
+
+	@Override
+	public boolean removeDept(String ids) {
+		Long cnt = baseMapper.selectCount(Wrappers.<Dept>query().lambda().in(Dept::getParentId, Func.toLongList(ids)));
+		if (cnt > 0L) {
+			throw new ServiceException("请先删除子节点!");
+		}
+		return removeByIds(Func.toLongList(ids));
+	}
+
+	@Override
+	public boolean submit(Dept dept) {
+		if (Func.isEmpty(dept.getParentId())) {
+			dept.setTenantId(AuthUtil.getTenantId());
+			dept.setParentId(BladeConstant.TOP_PARENT_ID);
+			dept.setAncestors(String.valueOf(BladeConstant.TOP_PARENT_ID));
+		}
+		if (dept.getParentId() > 0) {
+			Dept parent = getById(dept.getParentId());
+			if (Func.toLong(dept.getParentId()) == Func.toLong(dept.getId())) {
+				throw new ServiceException("父节点不可选择自身!");
+			}
+			dept.setTenantId(parent.getTenantId());
+			String ancestors = parent.getAncestors() + StringPool.COMMA + dept.getParentId();
+			dept.setAncestors(ancestors);
+		}
+		dept.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+		return saveOrUpdate(dept);
+	}
+
+	@Override
+	public List<DeptVO> search(String deptName, Long parentId) {
+		String tenantId = AuthUtil.getTenantId();
+		LambdaQueryWrapper<Dept> queryWrapper = Wrappers.<Dept>query().lambda();
+		if (Func.isNotEmpty(tenantId)) {
+			queryWrapper.eq(Dept::getTenantId, tenantId);
+		}
+		if (Func.isNotEmpty(deptName)) {
+			queryWrapper.like(Dept::getDeptName, deptName);
+		}
+		if (Func.isNotEmpty(parentId) && parentId > 0L) {
+			queryWrapper.eq(Dept::getParentId, parentId);
+		}
+		List<Dept> deptList = baseMapper.selectList(queryWrapper);
+		return DeptWrapper.build().listNodeVO(deptList);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DictBizServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DictBizServiceImpl.java
new file mode 100644
index 0000000..316e4f4
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DictBizServiceImpl.java
@@ -0,0 +1,119 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import cn.gistack.common.constant.CommonConstant;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import cn.gistack.system.cache.DictBizCache;
+import cn.gistack.system.entity.DictBiz;
+import cn.gistack.system.mapper.DictBizMapper;
+import cn.gistack.system.service.IDictBizService;
+import cn.gistack.system.vo.DictBizVO;
+import cn.gistack.system.wrapper.DictBizWrapper;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import static org.springblade.core.cache.constant.CacheConstant.DICT_CACHE;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class DictBizServiceImpl extends ServiceImpl<DictBizMapper, DictBiz> implements IDictBizService {
+
+	@Override
+	public List<DictBizVO> tree() {
+		return ForestNodeMerger.merge(baseMapper.tree());
+	}
+
+	@Override
+	public List<DictBizVO> parentTree() {
+		return ForestNodeMerger.merge(baseMapper.parentTree());
+	}
+
+	@Override
+	public String getValue(String code, String dictKey) {
+		return Func.toStr(baseMapper.getValue(code, dictKey), StringPool.EMPTY);
+	}
+
+	@Override
+	public List<DictBiz> getList(String code) {
+		return baseMapper.getList(code);
+	}
+
+	@Override
+	public boolean submit(DictBiz dict) {
+		LambdaQueryWrapper<DictBiz> lqw = Wrappers.<DictBiz>query().lambda().eq(DictBiz::getCode, dict.getCode()).eq(DictBiz::getDictKey, dict.getDictKey());
+		Long cnt = baseMapper.selectCount((Func.isEmpty(dict.getId())) ? lqw : lqw.notIn(DictBiz::getId, dict.getId()));
+		if (cnt > 0L) {
+			throw new ServiceException("当前字典键值已存在!");
+		}
+		// 修改顶级字典后同步更新下属字典的编号
+		if (Func.isNotEmpty(dict.getId()) && dict.getParentId().longValue() == BladeConstant.TOP_PARENT_ID) {
+			DictBiz parent = DictBizCache.getById(dict.getId());
+			this.update(Wrappers.<DictBiz>update().lambda().set(DictBiz::getCode, dict.getCode()).eq(DictBiz::getCode, parent.getCode()).ne(DictBiz::getParentId, BladeConstant.TOP_PARENT_ID));
+		}
+		if (Func.isEmpty(dict.getParentId())) {
+			dict.setParentId(BladeConstant.TOP_PARENT_ID);
+		}
+		dict.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+		CacheUtil.clear(DICT_CACHE);
+		return saveOrUpdate(dict);
+	}
+
+	@Override
+	public boolean removeDict(String ids) {
+		Long cnt = baseMapper.selectCount(Wrappers.<DictBiz>query().lambda().in(DictBiz::getParentId, Func.toLongList(ids)));
+		if (cnt > 0L) {
+			throw new ServiceException("请先删除子节点!");
+		}
+		return removeByIds(Func.toLongList(ids));
+	}
+
+	@Override
+	public IPage<DictBizVO> parentList(Map<String, Object> dict, Query query) {
+		IPage<DictBiz> page = this.page(Condition.getPage(query), Condition.getQueryWrapper(dict, DictBiz.class).lambda().eq(DictBiz::getParentId, CommonConstant.TOP_PARENT_ID).orderByAsc(DictBiz::getSort));
+		return DictBizWrapper.build().pageVO(page);
+	}
+
+	@Override
+	public List<DictBizVO> childList(Map<String, Object> dict, Long parentId) {
+		if (parentId < 0) {
+			return new ArrayList<>();
+		}
+		dict.remove("parentId");
+		DictBiz parentDict = DictBizCache.getById(parentId);
+		List<DictBiz> list = this.list(Condition.getQueryWrapper(dict, DictBiz.class).lambda().ne(DictBiz::getId, parentId).eq(DictBiz::getCode, parentDict.getCode()).orderByAsc(DictBiz::getSort));
+		return DictBizWrapper.build().listNodeVO(list);
+	}
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DictServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DictServiceImpl.java
new file mode 100644
index 0000000..c4dd1df
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/DictServiceImpl.java
@@ -0,0 +1,125 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import cn.gistack.system.cache.DictCache;
+import cn.gistack.system.entity.Dict;
+import cn.gistack.system.mapper.DictMapper;
+import cn.gistack.system.service.IDictService;
+import cn.gistack.system.vo.DictVO;
+import cn.gistack.system.wrapper.DictWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import cn.gistack.common.constant.CommonConstant;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import static org.springblade.core.cache.constant.CacheConstant.DICT_CACHE;
+
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements IDictService {
+
+	@Override
+	public IPage<DictVO> selectDictPage(IPage<DictVO> page, DictVO dict) {
+		return page.setRecords(baseMapper.selectDictPage(page, dict));
+	}
+
+	@Override
+	public List<DictVO> tree() {
+		return ForestNodeMerger.merge(baseMapper.tree());
+	}
+
+	@Override
+	public List<DictVO> parentTree() {
+		return ForestNodeMerger.merge(baseMapper.parentTree());
+	}
+
+	@Override
+	public String getValue(String code, String dictKey) {
+		return Func.toStr(baseMapper.getValue(code, dictKey), StringPool.EMPTY);
+	}
+
+	@Override
+	public List<Dict> getList(String code) {
+		return baseMapper.getList(code);
+	}
+
+	@Override
+	public boolean submit(Dict dict) {
+		LambdaQueryWrapper<Dict> lqw = Wrappers.<Dict>query().lambda().eq(Dict::getCode, dict.getCode()).eq(Dict::getDictKey, dict.getDictKey());
+		Long cnt = baseMapper.selectCount((Func.isEmpty(dict.getId())) ? lqw : lqw.notIn(Dict::getId, dict.getId()));
+		if (cnt > 0L) {
+			throw new ServiceException("当前字典键值已存在!");
+		}
+		// 修改顶级字典后同步更新下属字典的编号
+		if (Func.isNotEmpty(dict.getId()) && dict.getParentId().longValue() == BladeConstant.TOP_PARENT_ID) {
+			Dict parent = DictCache.getById(dict.getId());
+			this.update(Wrappers.<Dict>update().lambda().set(Dict::getCode, dict.getCode()).eq(Dict::getCode, parent.getCode()).ne(Dict::getParentId, BladeConstant.TOP_PARENT_ID));
+		}
+		if (Func.isEmpty(dict.getParentId())) {
+			dict.setParentId(BladeConstant.TOP_PARENT_ID);
+		}
+		dict.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+		CacheUtil.clear(DICT_CACHE, Boolean.FALSE);
+		return saveOrUpdate(dict);
+	}
+
+	@Override
+	public boolean removeDict(String ids) {
+		Long cnt = baseMapper.selectCount(Wrappers.<Dict>query().lambda().in(Dict::getParentId, Func.toLongList(ids)));
+		if (cnt > 0L) {
+			throw new ServiceException("请先删除子节点!");
+		}
+		return removeByIds(Func.toLongList(ids));
+	}
+
+	@Override
+	public IPage<DictVO> parentList(Map<String, Object> dict, Query query) {
+		IPage<Dict> page = this.page(Condition.getPage(query), Condition.getQueryWrapper(dict, Dict.class).lambda().eq(Dict::getParentId, CommonConstant.TOP_PARENT_ID).orderByAsc(Dict::getSort));
+		return DictWrapper.build().pageVO(page);
+	}
+
+	@Override
+	public List<DictVO> childList(Map<String, Object> dict, Long parentId) {
+		if (parentId < 0) {
+			return new ArrayList<>();
+		}
+		dict.remove("parentId");
+		Dict parentDict = DictCache.getById(parentId);
+		List<Dict> list = this.list(Condition.getQueryWrapper(dict, Dict.class).lambda().ne(Dict::getId, parentId).eq(Dict::getCode, parentDict.getCode()).orderByAsc(Dict::getSort));
+		return DictWrapper.build().listNodeVO(list);
+	}
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java
new file mode 100644
index 0000000..be88f7a
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/MenuServiceImpl.java
@@ -0,0 +1,297 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import cn.gistack.system.entity.*;
+import cn.gistack.system.wrapper.MenuWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.node.TreeNode;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
+import cn.gistack.system.cache.SysCache;
+import cn.gistack.system.dto.MenuDTO;
+import cn.gistack.system.mapper.MenuMapper;
+import cn.gistack.system.service.IMenuService;
+import cn.gistack.system.service.IRoleMenuService;
+import cn.gistack.system.service.IRoleScopeService;
+import cn.gistack.system.service.ITopMenuSettingService;
+import cn.gistack.system.vo.MenuVO;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static cn.gistack.common.constant.CommonConstant.API_SCOPE_CATEGORY;
+import static cn.gistack.common.constant.CommonConstant.DATA_SCOPE_CATEGORY;
+import static org.springblade.core.cache.constant.CacheConstant.MENU_CACHE;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+@AllArgsConstructor
+public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IMenuService {
+
+	private final IRoleMenuService roleMenuService;
+	private final IRoleScopeService roleScopeService;
+	private final ITopMenuSettingService topMenuSettingService;
+	private final static String PARENT_ID = "parentId";
+	private final static Integer MENU_CATEGORY = 1;
+
+	@Override
+	public List<MenuVO> lazyList(Long parentId, Map<String, Object> param) {
+		if (Func.isEmpty(Func.toStr(param.get(PARENT_ID)))) {
+			parentId = null;
+		}
+		return baseMapper.lazyList(parentId, param);
+	}
+
+	@Override
+	public List<MenuVO> lazyMenuList(Long parentId, Map<String, Object> param) {
+		if (Func.isEmpty(Func.toStr(param.get(PARENT_ID)))) {
+			parentId = null;
+		}
+		return baseMapper.lazyMenuList(parentId, param);
+	}
+
+
+	@Override
+	public List<MenuVO> routes(String roleId, Long topMenuId) {
+		if (StringUtil.isBlank(roleId)) {
+			return null;
+		}
+		List<Menu> allMenus = baseMapper.allMenu();
+		List<Menu> roleMenus;
+		// 超级管理员并且不是顶部菜单请求则返回全部菜单
+		if (AuthUtil.isAdministrator() && Func.isEmpty(topMenuId)) {
+			roleMenus = allMenus;
+		}
+		// 非超级管理员并且不是顶部菜单请求则返回对应角色权限菜单
+		else if (!AuthUtil.isAdministrator() && Func.isEmpty(topMenuId)) {
+			roleMenus = tenantPackageMenu(baseMapper.roleMenuByRoleId(Func.toLongList(roleId)));
+		}
+		// 顶部菜单请求返回对应角色权限菜单
+		else {
+			// 角色配置对应菜单
+			List<Menu> roleIdMenus = baseMapper.roleMenuByRoleId(Func.toLongList(roleId));
+			// 反向递归角色菜单所有父级
+			List<Menu> routes = new LinkedList<>(roleIdMenus);
+			roleIdMenus.forEach(roleMenu -> recursion(allMenus, routes, roleMenu));
+			// 顶部配置对应菜单
+			List<Menu> topIdMenus = baseMapper.roleMenuByTopMenuId(topMenuId);
+			// 筛选匹配角色对应的权限菜单
+			roleMenus = topIdMenus.stream().filter(x ->
+				routes.stream().anyMatch(route -> route.getId().longValue() == x.getId().longValue())
+			).collect(Collectors.toList());
+		}
+		return buildRoutes(allMenus, roleMenus);
+	}
+
+	private List<MenuVO> buildRoutes(List<Menu> allMenus, List<Menu> roleMenus) {
+		List<Menu> routes = new LinkedList<>(roleMenus);
+		roleMenus.forEach(roleMenu -> recursion(allMenus, routes, roleMenu));
+		routes.sort(Comparator.comparing(Menu::getSort));
+		MenuWrapper menuWrapper = new MenuWrapper();
+		List<Menu> collect = routes.stream().filter(x -> Func.equals(x.getCategory(), 1)).collect(Collectors.toList());
+		return menuWrapper.listNodeVO(collect);
+	}
+
+	private void recursion(List<Menu> allMenus, List<Menu> routes, Menu roleMenu) {
+		Optional<Menu> menu = allMenus.stream().filter(x -> Func.equals(x.getId(), roleMenu.getParentId())).findFirst();
+		if (menu.isPresent() && !routes.contains(menu.get())) {
+			routes.add(menu.get());
+			recursion(allMenus, routes, menu.get());
+		}
+	}
+
+	@Override
+	public List<MenuVO> buttons(String roleId) {
+		List<Menu> buttons = (AuthUtil.isAdministrator()) ? baseMapper.allButtons() : baseMapper.buttons(Func.toLongList(roleId));
+		MenuWrapper menuWrapper = new MenuWrapper();
+		return menuWrapper.listNodeVO(buttons);
+	}
+
+	@Override
+	public List<TreeNode> tree() {
+		return ForestNodeMerger.merge(baseMapper.tree());
+	}
+
+	@Override
+	public List<TreeNode> grantTree(BladeUser user) {
+		List<TreeNode> menuTree = user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantTree() : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId()));
+		return ForestNodeMerger.merge(tenantPackageTree(menuTree, user.getTenantId()));
+	}
+
+	@Override
+	public List<TreeNode> grantTopTree(BladeUser user) {
+		List<TreeNode> menuTree = user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantTopTree() : baseMapper.grantTopTreeByRole(Func.toLongList(user.getRoleId()));
+		return ForestNodeMerger.merge(tenantPackageTree(menuTree, user.getTenantId()));
+	}
+
+	/**
+	 * 租户菜单权限自定义筛选
+	 */
+	private List<TreeNode> tenantPackageTree(List<TreeNode> menuTree, String tenantId) {
+		TenantPackage tenantPackage = SysCache.getTenantPackage(tenantId);
+		if (!AuthUtil.isAdministrator() && Func.isNotEmpty(tenantPackage) && tenantPackage.getId() > 0L) {
+			List<Long> menuIds = Func.toLongList(tenantPackage.getMenuId());
+			// 筛选出两者菜单交集集合
+			List<TreeNode> collect = menuTree.stream().filter(x -> menuIds.contains(x.getId())).collect(Collectors.toList());
+			// 创建递归基础集合
+			List<TreeNode> packageTree = new LinkedList<>(collect);
+			// 递归筛选出菜单集合所有父级
+			collect.forEach(treeNode -> recursionParent(menuTree, packageTree, treeNode));
+			// 递归筛选出菜单集合所有子级
+			collect.forEach(treeNode -> recursionChild(menuTree, packageTree, treeNode));
+			// 合并在一起返回最终集合
+			return packageTree;
+		}
+		return menuTree;
+	}
+
+	/**
+	 * 父节点递归
+	 */
+	public void recursionParent(List<TreeNode> menuTree, List<TreeNode> packageTree, TreeNode treeNode) {
+		Optional<TreeNode> node = menuTree.stream().filter(x -> Func.equals(x.getId(), treeNode.getParentId())).findFirst();
+		if (node.isPresent() && !packageTree.contains(node.get())) {
+			packageTree.add(node.get());
+			recursionParent(menuTree, packageTree, node.get());
+		}
+	}
+
+	/**
+	 * 子节点递归
+	 */
+	public void recursionChild(List<TreeNode> menuTree, List<TreeNode> packageTree, TreeNode treeNode) {
+		List<TreeNode> nodes = menuTree.stream().filter(x -> Func.equals(x.getParentId(), treeNode.getId())).collect(Collectors.toList());
+		nodes.forEach(node -> {
+			if (!packageTree.contains(node)) {
+				packageTree.add(node);
+				recursionChild(menuTree, packageTree, node);
+			}
+		});
+	}
+
+	/**
+	 * 租户菜单权限自定义筛选
+	 */
+	private List<Menu> tenantPackageMenu(List<Menu> menu) {
+		TenantPackage tenantPackage = SysCache.getTenantPackage(AuthUtil.getTenantId());
+		if (Func.isNotEmpty(tenantPackage) && tenantPackage.getId() > 0L) {
+			List<Long> menuIds = Func.toLongList(tenantPackage.getMenuId());
+			menu = menu.stream().filter(x -> menuIds.contains(x.getId())).collect(Collectors.toList());
+		}
+		return menu;
+	}
+
+	@Override
+	public List<TreeNode> grantDataScopeTree(BladeUser user) {
+		return ForestNodeMerger.merge(user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantDataScopeTree() : baseMapper.grantDataScopeTreeByRole(Func.toLongList(user.getRoleId())));
+	}
+
+	@Override
+	public List<TreeNode> grantApiScopeTree(BladeUser user) {
+		return ForestNodeMerger.merge(user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantApiScopeTree() : baseMapper.grantApiScopeTreeByRole(Func.toLongList(user.getRoleId())));
+	}
+
+	@Override
+	public List<String> roleTreeKeys(String roleIds) {
+		List<RoleMenu> roleMenus = roleMenuService.list(Wrappers.<RoleMenu>query().lambda().in(RoleMenu::getRoleId, Func.toLongList(roleIds)));
+		return roleMenus.stream().map(roleMenu -> Func.toStr(roleMenu.getMenuId())).collect(Collectors.toList());
+	}
+
+	@Override
+	public List<String> topTreeKeys(String topMenuIds) {
+		List<TopMenuSetting> settings = topMenuSettingService.list(Wrappers.<TopMenuSetting>query().lambda().in(TopMenuSetting::getTopMenuId, Func.toLongList(topMenuIds)));
+		return settings.stream().map(setting -> Func.toStr(setting.getMenuId())).collect(Collectors.toList());
+	}
+
+	@Override
+	public List<String> dataScopeTreeKeys(String roleIds) {
+		List<RoleScope> roleScopes = roleScopeService.list(Wrappers.<RoleScope>query().lambda().eq(RoleScope::getScopeCategory, DATA_SCOPE_CATEGORY).in(RoleScope::getRoleId, Func.toLongList(roleIds)));
+		return roleScopes.stream().map(roleScope -> Func.toStr(roleScope.getScopeId())).collect(Collectors.toList());
+	}
+
+	@Override
+	public List<String> apiScopeTreeKeys(String roleIds) {
+		List<RoleScope> roleScopes = roleScopeService.list(Wrappers.<RoleScope>query().lambda().eq(RoleScope::getScopeCategory, API_SCOPE_CATEGORY).in(RoleScope::getRoleId, Func.toLongList(roleIds)));
+		return roleScopes.stream().map(roleScope -> Func.toStr(roleScope.getScopeId())).collect(Collectors.toList());
+	}
+
+	@Override
+	@Cacheable(cacheNames = MENU_CACHE, key = "'auth:routes:' + #user.roleId")
+	public List<Kv> authRoutes(BladeUser user) {
+		List<MenuDTO> routes = baseMapper.authRoutes(Func.toLongList(user.getRoleId()));
+		List<Kv> list = new ArrayList<>();
+		routes.forEach(route -> list.add(Kv.create().set(route.getPath(), Kv.create().set("authority", Func.toStrArray(route.getAlias())))));
+		return list;
+	}
+
+	@Override
+	public boolean removeMenu(String ids) {
+		Long cnt = baseMapper.selectCount(Wrappers.<Menu>query().lambda().in(Menu::getParentId, Func.toLongList(ids)));
+		if (cnt > 0L) {
+			throw new ServiceException("请先删除子节点!");
+		}
+		return removeByIds(Func.toLongList(ids));
+	}
+
+	@Override
+	public boolean submit(Menu menu) {
+		LambdaQueryWrapper<Menu> menuQueryWrapper = Wrappers.lambdaQuery();
+		if (menu.getId() == null) {
+			menuQueryWrapper.eq(Menu::getCode, menu.getCode()).or(
+				wrapper -> wrapper.eq(Menu::getName, menu.getName()).eq(Menu::getCategory, MENU_CATEGORY)
+			);
+		} else {
+			menuQueryWrapper.ne(Menu::getId, menu.getId()).and(
+				wrapper -> wrapper.eq(Menu::getCode, menu.getCode()).or(
+					o -> o.eq(Menu::getName, menu.getName()).eq(Menu::getCategory, MENU_CATEGORY)
+				)
+			);
+		}
+		Long cnt = baseMapper.selectCount(menuQueryWrapper);
+		if (cnt > 0L) {
+			throw new ServiceException("菜单名或编号已存在!");
+		}
+		if (menu.getParentId() == null && menu.getId() == null) {
+			menu.setParentId(BladeConstant.TOP_PARENT_ID);
+		}
+		if (menu.getParentId() != null && menu.getId() == null) {
+			Menu parentMenu = baseMapper.selectById(menu.getParentId());
+			if (parentMenu != null && parentMenu.getCategory() != 1) {
+				throw new ServiceException("父节点只可选择菜单类型!");
+			}
+		}
+		menu.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+		return saveOrUpdate(menu);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/ParamServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/ParamServiceImpl.java
new file mode 100644
index 0000000..bd3519e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/ParamServiceImpl.java
@@ -0,0 +1,40 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import cn.gistack.system.entity.Param;
+import cn.gistack.system.mapper.ParamMapper;
+import cn.gistack.system.service.IParamService;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class ParamServiceImpl extends BaseServiceImpl<ParamMapper, Param> implements IParamService {
+
+	@Override
+	public String getValue(String paramKey) {
+		Param param = this.getOne(Wrappers.<Param>query().lambda().eq(Param::getParamKey, paramKey));
+		return param.getParamValue();
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/PostServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/PostServiceImpl.java
new file mode 100644
index 0000000..754e912
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/PostServiceImpl.java
@@ -0,0 +1,74 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.entity.Post;
+import cn.gistack.system.mapper.PostMapper;
+import cn.gistack.system.service.IPostService;
+import cn.gistack.system.vo.PostVO;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 岗位表 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class PostServiceImpl extends BaseServiceImpl<PostMapper, Post> implements IPostService {
+
+	@Override
+	public IPage<PostVO> selectPostPage(IPage<PostVO> page, PostVO post) {
+		return page.setRecords(baseMapper.selectPostPage(page, post));
+	}
+
+	@Override
+	public String getPostIds(String tenantId, String postNames) {
+		List<Post> postList = baseMapper.selectList(Wrappers.<Post>query().lambda().eq(Post::getTenantId, tenantId).in(Post::getPostName, Func.toStrList(postNames)));
+		if (postList != null && postList.size() > 0) {
+			return postList.stream().map(post -> Func.toStr(post.getId())).distinct().collect(Collectors.joining(","));
+		}
+		return null;
+	}
+
+	@Override
+	public String getPostIdsByFuzzy(String tenantId, String postNames) {
+		LambdaQueryWrapper<Post> queryWrapper = Wrappers.<Post>query().lambda().eq(Post::getTenantId, tenantId);
+		queryWrapper.and(wrapper -> {
+			List<String> names = Func.toStrList(postNames);
+			names.forEach(name -> wrapper.like(Post::getPostName, name).or());
+		});
+		List<Post> postList = baseMapper.selectList(queryWrapper);
+		if (postList != null && postList.size() > 0) {
+			return postList.stream().map(post -> Func.toStr(post.getId())).distinct().collect(Collectors.joining(","));
+		}
+		return null;
+	}
+
+	@Override
+	public List<String> getPostNames(String postIds) {
+		return baseMapper.getPostNames(Func.toLongArray(postIds));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RegionServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RegionServiceImpl.java
new file mode 100644
index 0000000..025eb3b
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RegionServiceImpl.java
@@ -0,0 +1,119 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import cn.gistack.system.cache.RegionCache;
+import cn.gistack.system.entity.Region;
+import cn.gistack.system.excel.RegionExcel;
+import cn.gistack.system.mapper.RegionMapper;
+import cn.gistack.system.service.IRegionService;
+import cn.gistack.system.vo.RegionVO;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * 行政区划表 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> implements IRegionService {
+
+	@Override
+	public boolean submit(Region region) {
+		Long cnt = baseMapper.selectCount(Wrappers.<Region>query().lambda().eq(Region::getCode, region.getCode()));
+		if (cnt > 0L) {
+			return this.updateById(region);
+		}
+		// 设置祖区划编号
+		Region parent = RegionCache.getByCode(region.getParentCode());
+		if (Func.isNotEmpty(parent) || Func.isNotEmpty(parent.getCode())) {
+			String ancestors = parent.getAncestors() + StringPool.COMMA + parent.getCode();
+			region.setAncestors(ancestors);
+		}
+		// 设置省、市、区、镇、村
+		Integer level = region.getRegionLevel();
+		String code = region.getCode();
+		String name = region.getName();
+		if (level == RegionCache.PROVINCE_LEVEL) {
+			region.setProvinceCode(code);
+			region.setProvinceName(name);
+		} else if (level == RegionCache.CITY_LEVEL) {
+			region.setCityCode(code);
+			region.setCityName(name);
+		} else if (level == RegionCache.DISTRICT_LEVEL) {
+			region.setDistrictCode(code);
+			region.setDistrictName(name);
+		} else if (level == RegionCache.TOWN_LEVEL) {
+			region.setTownCode(code);
+			region.setTownName(name);
+		} else if (level == RegionCache.VILLAGE_LEVEL) {
+			region.setVillageCode(code);
+			region.setVillageName(name);
+		}
+		return this.save(region);
+	}
+
+	@Override
+	public boolean removeRegion(String id) {
+		Long cnt = baseMapper.selectCount(Wrappers.<Region>query().lambda().eq(Region::getParentCode, id));
+		if (cnt > 0L) {
+			throw new ServiceException("请先删除子节点!");
+		}
+		return removeById(id);
+	}
+
+	@Override
+	public List<RegionVO> lazyList(String parentCode, Map<String, Object> param) {
+		return baseMapper.lazyList(parentCode, param);
+	}
+
+	@Override
+	public List<RegionVO> lazyTree(String parentCode, Map<String, Object> param) {
+		return baseMapper.lazyTree(parentCode, param);
+	}
+
+	@Override
+	public void importRegion(List<RegionExcel> data, Boolean isCovered) {
+		List<Region> list = new ArrayList<>();
+		data.forEach(regionExcel -> {
+			Region region = BeanUtil.copy(regionExcel, Region.class);
+			list.add(region);
+		});
+		if (isCovered) {
+			this.saveOrUpdateBatch(list);
+		} else {
+			this.saveBatch(list);
+		}
+	}
+
+	@Override
+	public List<RegionExcel> exportRegion(Wrapper<Region> queryWrapper) {
+		return baseMapper.exportRegion(queryWrapper);
+	}
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RoleMenuServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RoleMenuServiceImpl.java
new file mode 100644
index 0000000..a8a976c
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RoleMenuServiceImpl.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import cn.gistack.system.entity.RoleMenu;
+import cn.gistack.system.mapper.RoleMenuMapper;
+import cn.gistack.system.service.IRoleMenuService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class RoleMenuServiceImpl extends ServiceImpl<RoleMenuMapper, RoleMenu> implements IRoleMenuService {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RoleScopeServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RoleScopeServiceImpl.java
new file mode 100644
index 0000000..a79bdd9
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RoleScopeServiceImpl.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import cn.gistack.system.entity.RoleScope;
+import cn.gistack.system.mapper.RoleScopeMapper;
+import cn.gistack.system.service.IRoleScopeService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class RoleScopeServiceImpl extends ServiceImpl<RoleScopeMapper, RoleScope> implements IRoleScopeService {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RoleServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RoleServiceImpl.java
new file mode 100644
index 0000000..8e2dbf8
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/RoleServiceImpl.java
@@ -0,0 +1,230 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import cn.gistack.system.entity.Role;
+import cn.gistack.system.entity.RoleMenu;
+import cn.gistack.system.entity.RoleScope;
+import cn.gistack.system.mapper.RoleMapper;
+import cn.gistack.system.service.IRoleMenuService;
+import cn.gistack.system.service.IRoleScopeService;
+import cn.gistack.system.service.IRoleService;
+import cn.gistack.system.vo.RoleVO;
+import cn.gistack.system.wrapper.RoleWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.CollectionUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static cn.gistack.common.constant.CommonConstant.API_SCOPE_CATEGORY;
+import static cn.gistack.common.constant.CommonConstant.DATA_SCOPE_CATEGORY;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+@Validated
+@AllArgsConstructor
+public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IRoleService {
+
+	private final IRoleMenuService roleMenuService;
+	private final IRoleScopeService roleScopeService;
+
+	@Override
+	public IPage<RoleVO> selectRolePage(IPage<RoleVO> page, RoleVO role) {
+		return page.setRecords(baseMapper.selectRolePage(page, role));
+	}
+
+	@Override
+	public List<RoleVO> tree(String tenantId) {
+		String userRole = AuthUtil.getUserRole();
+		String excludeRole = null;
+		if (!CollectionUtil.contains(Func.toStrArray(userRole), RoleConstant.ADMIN) && !CollectionUtil.contains(Func.toStrArray(userRole), RoleConstant.ADMINISTRATOR)) {
+			excludeRole = RoleConstant.ADMINISTRATOR;
+		}
+		return ForestNodeMerger.merge(baseMapper.tree(tenantId, excludeRole));
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean grant(@NotEmpty List<Long> roleIds, List<Long> menuIds, List<Long> dataScopeIds, List<Long> apiScopeIds) {
+		return grantRoleMenu(roleIds, menuIds) && grantDataScope(roleIds, dataScopeIds) && grantApiScope(roleIds, apiScopeIds);
+	}
+
+	private boolean grantRoleMenu(List<Long> roleIds, List<Long> menuIds) {
+		// 防止越权配置超管角色
+		Long administratorCount = baseMapper.selectCount(Wrappers.<Role>query().lambda().eq(Role::getRoleAlias, RoleConstant.ADMINISTRATOR).in(Role::getId, roleIds));
+		if (!AuthUtil.isAdministrator() && administratorCount > 0L) {
+			throw new ServiceException("无权配置超管角色!");
+		}
+		// 防止越权配置管理员角色
+		Long adminCount = baseMapper.selectCount(Wrappers.<Role>query().lambda().eq(Role::getRoleAlias, RoleConstant.ADMIN).in(Role::getId, roleIds));
+		if (!AuthUtil.isAdmin() && adminCount > 0L) {
+			throw new ServiceException("无权配置管理员角色!");
+		}
+		// 删除角色配置的菜单集合
+		roleMenuService.remove(Wrappers.<RoleMenu>update().lambda().in(RoleMenu::getRoleId, roleIds));
+		// 组装配置
+		List<RoleMenu> roleMenus = new ArrayList<>();
+		roleIds.forEach(roleId -> menuIds.forEach(menuId -> {
+			RoleMenu roleMenu = new RoleMenu();
+			roleMenu.setRoleId(roleId);
+			roleMenu.setMenuId(menuId);
+			roleMenus.add(roleMenu);
+		}));
+		// 新增配置
+		roleMenuService.saveBatch(roleMenus);
+		// 递归设置下属角色菜单集合
+		recursionRoleMenu(roleIds, menuIds);
+		return true;
+	}
+
+	private void recursionRoleMenu(List<Long> roleIds, List<Long> menuIds) {
+		roleIds.forEach(roleId -> baseMapper.selectList(Wrappers.<Role>query().lambda().eq(Role::getParentId, roleId)).forEach(role -> {
+			List<RoleMenu> roleMenuList = roleMenuService.list(Wrappers.<RoleMenu>query().lambda().eq(RoleMenu::getRoleId, role.getId()));
+			// 子节点过滤出父节点删除的菜单集合
+			List<Long> collectRoleMenuIds = roleMenuList.stream().map(RoleMenu::getMenuId).filter(menuId -> !menuIds.contains(menuId)).collect(Collectors.toList());
+			if (collectRoleMenuIds.size() > 0) {
+				// 删除子节点权限外的菜单集合
+				roleMenuService.remove(Wrappers.<RoleMenu>update().lambda().eq(RoleMenu::getRoleId, role.getId()).in(RoleMenu::getMenuId, collectRoleMenuIds));
+				// 递归设置下属角色菜单集合
+				recursionRoleMenu(Collections.singletonList(role.getId()), menuIds);
+			}
+		}));
+	}
+
+	private boolean grantDataScope(List<Long> roleIds, List<Long> dataScopeIds) {
+		// 删除角色配置的数据权限集合
+		roleScopeService.remove(Wrappers.<RoleScope>update().lambda().eq(RoleScope::getScopeCategory, DATA_SCOPE_CATEGORY).in(RoleScope::getRoleId, roleIds));
+		// 组装配置
+		List<RoleScope> roleDataScopes = new ArrayList<>();
+		roleIds.forEach(roleId -> dataScopeIds.forEach(scopeId -> {
+			RoleScope roleScope = new RoleScope();
+			roleScope.setScopeCategory(DATA_SCOPE_CATEGORY);
+			roleScope.setRoleId(roleId);
+			roleScope.setScopeId(scopeId);
+			roleDataScopes.add(roleScope);
+		}));
+		// 新增配置
+		roleScopeService.saveBatch(roleDataScopes);
+		return true;
+	}
+
+	private boolean grantApiScope(List<Long> roleIds, List<Long> apiScopeIds) {
+		// 删除角色配置的接口权限集合
+		roleScopeService.remove(Wrappers.<RoleScope>update().lambda().eq(RoleScope::getScopeCategory, API_SCOPE_CATEGORY).in(RoleScope::getRoleId, roleIds));
+		// 组装配置
+		List<RoleScope> roleApiScopes = new ArrayList<>();
+		roleIds.forEach(roleId -> apiScopeIds.forEach(scopeId -> {
+			RoleScope roleScope = new RoleScope();
+			roleScope.setScopeCategory(API_SCOPE_CATEGORY);
+			roleScope.setScopeId(scopeId);
+			roleScope.setRoleId(roleId);
+			roleApiScopes.add(roleScope);
+		}));
+		// 新增配置
+		roleScopeService.saveBatch(roleApiScopes);
+		return true;
+	}
+
+	@Override
+	public String getRoleIds(String tenantId, String roleNames) {
+		List<Role> roleList = baseMapper.selectList(Wrappers.<Role>query().lambda().eq(Role::getTenantId, tenantId).in(Role::getRoleName, Func.toStrList(roleNames)));
+		if (roleList != null && roleList.size() > 0) {
+			return roleList.stream().map(role -> Func.toStr(role.getId())).distinct().collect(Collectors.joining(","));
+		}
+		return null;
+	}
+
+	@Override
+	public List<String> getRoleNames(String roleIds) {
+		return baseMapper.getRoleNames(Func.toLongArray(roleIds));
+	}
+
+	@Override
+	public List<String> getRoleAliases(String roleIds) {
+		return baseMapper.getRoleAliases(Func.toLongArray(roleIds));
+	}
+
+	@Override
+	public boolean submit(Role role) {
+		if (!AuthUtil.isAdministrator()) {
+			if (Func.toStr(role.getRoleAlias()).equals(RoleConstant.ADMINISTRATOR)) {
+				throw new ServiceException("无权限创建超管角色!");
+			}
+		}
+		if (Func.isEmpty(role.getParentId())) {
+			role.setTenantId(AuthUtil.getTenantId());
+			role.setParentId(BladeConstant.TOP_PARENT_ID);
+		}
+		if (role.getParentId() > 0) {
+			Role parent = getById(role.getParentId());
+			if (Func.toLong(role.getParentId()) == Func.toLong(role.getId())) {
+				throw new ServiceException("父节点不可选择自身!");
+			}
+			role.setTenantId(parent.getTenantId());
+		}
+		role.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+		return saveOrUpdate(role);
+	}
+
+	@Override
+	public List<RoleVO> search(String roleName, Long parentId) {
+		String tenantId = AuthUtil.getTenantId();
+		LambdaQueryWrapper<Role> queryWrapper = Wrappers.<Role>query().lambda();
+		if (Func.isNotEmpty(roleName)) {
+			queryWrapper.like(Role::getRoleName, roleName);
+		}
+		if (Func.isNotEmpty(parentId) && parentId > 0L) {
+			queryWrapper.eq(Role::getParentId, parentId);
+		}
+		if (Func.isNotEmpty(tenantId)) {
+			queryWrapper.eq(Role::getTenantId, tenantId);
+		}
+		List<Role> roleList = baseMapper.selectList(queryWrapper);
+		return RoleWrapper.build().listNodeVO(roleList);
+	}
+
+	@Override
+	public boolean removeRole(String ids) {
+		Long cnt = baseMapper.selectCount(Wrappers.<Role>query().lambda().in(Role::getParentId, Func.toLongList(ids)));
+		if (cnt > 0L) {
+			throw new ServiceException("请先删除子节点!");
+		}
+		return removeByIds(Func.toLongList(ids));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TenantPackageServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TenantPackageServiceImpl.java
new file mode 100644
index 0000000..026d260
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TenantPackageServiceImpl.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import cn.gistack.system.entity.TenantPackage;
+import cn.gistack.system.mapper.TenantPackageMapper;
+import cn.gistack.system.service.ITenantPackageService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 租户产品表 服务实现类
+ *
+ * @author BladeX
+ */
+@Service
+public class TenantPackageServiceImpl extends BaseServiceImpl<TenantPackageMapper, TenantPackage> implements ITenantPackageService {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TenantServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TenantServiceImpl.java
new file mode 100644
index 0000000..6e79121
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TenantServiceImpl.java
@@ -0,0 +1,253 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import cn.gistack.system.cache.ParamCache;
+import cn.gistack.system.entity.*;
+import cn.gistack.system.mapper.TenantMapper;
+import cn.gistack.system.service.*;
+import cn.gistack.system.user.entity.User;
+import cn.gistack.system.user.enums.UserEnum;
+import cn.gistack.system.user.feign.IUserClient;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.tenant.TenantId;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.jackson.JsonUtil;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.DesUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static cn.gistack.common.constant.TenantConstant.*;
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+@AllArgsConstructor
+public class TenantServiceImpl extends BaseServiceImpl<TenantMapper, Tenant> implements ITenantService {
+
+	private final TenantId tenantId;
+	private final IRoleService roleService;
+	private final IMenuService menuService;
+	private final IDeptService deptService;
+	private final IPostService postService;
+	private final IRoleMenuService roleMenuService;
+	private final IDictBizService dictBizService;
+	private final IUserClient userClient;
+
+	@Override
+	public IPage<Tenant> selectTenantPage(IPage<Tenant> page, Tenant tenant) {
+		return page.setRecords(baseMapper.selectTenantPage(page, tenant));
+	}
+
+	@Override
+	public Tenant getByTenantId(String tenantId) {
+		return getOne(Wrappers.<Tenant>query().lambda().eq(Tenant::getTenantId, tenantId));
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean submitTenant(Tenant tenant) {
+		if (Func.isEmpty(tenant.getId())) {
+			List<Tenant> tenants = baseMapper.selectList(Wrappers.<Tenant>query().lambda().eq(Tenant::getIsDeleted, BladeConstant.DB_NOT_DELETED));
+			List<String> codes = tenants.stream().map(Tenant::getTenantId).collect(Collectors.toList());
+			String tenantId = getTenantId(codes);
+			tenant.setTenantId(tenantId);
+			// 获取参数配置的账号额度
+			int accountNumber = Func.toInt(ParamCache.getValue(ACCOUNT_NUMBER_KEY), DEFAULT_ACCOUNT_NUMBER);
+			tenant.setAccountNumber(accountNumber);
+			// 新建租户对应的默认角色
+			Role role = new Role();
+			role.setTenantId(tenantId);
+			role.setParentId(BladeConstant.TOP_PARENT_ID);
+			role.setRoleName("管理员");
+			role.setRoleAlias("admin");
+			role.setSort(2);
+			role.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+			roleService.save(role);
+			// 新建租户对应的角色菜单权限
+			LinkedList<Menu> userMenus = new LinkedList<>();
+			// 获取参数配置的默认菜单集合,逗号隔开
+			List<String> menuCodes = Func.toStrList(ParamCache.getValue(ACCOUNT_MENU_CODE_KEY));
+			List<Menu> menus = getMenus((menuCodes.size() > 0 ? menuCodes : MENU_CODES), userMenus);
+			List<RoleMenu> roleMenus = new ArrayList<>();
+			menus.forEach(menu -> {
+				RoleMenu roleMenu = new RoleMenu();
+				roleMenu.setMenuId(menu.getId());
+				roleMenu.setRoleId(role.getId());
+				roleMenus.add(roleMenu);
+			});
+			roleMenuService.saveBatch(roleMenus);
+			// 新建租户对应的默认部门
+			Dept dept = new Dept();
+			dept.setTenantId(tenantId);
+			dept.setParentId(BladeConstant.TOP_PARENT_ID);
+			dept.setAncestors(String.valueOf(BladeConstant.TOP_PARENT_ID));
+			dept.setDeptName(tenant.getTenantName());
+			dept.setFullName(tenant.getTenantName());
+			dept.setDeptCategory(1);
+			dept.setSort(2);
+			dept.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+			deptService.save(dept);
+			// 新建租户对应的默认岗位
+			Post post = new Post();
+			post.setTenantId(tenantId);
+			post.setCategory(1);
+			post.setPostCode("ceo");
+			post.setPostName("首席执行官");
+			post.setSort(1);
+			postService.save(post);
+			// 新建租户对应的默认业务字典
+			LinkedList<DictBiz> dictBizs = new LinkedList<>();
+			List<DictBiz> dictBizList = getDictBizs(tenantId, dictBizs);
+			dictBizService.saveBatch(dictBizList);
+			// 新建租户对应的默认管理用户
+			User user = new User();
+			user.setTenantId(tenantId);
+			user.setName("admin");
+			user.setRealName("admin");
+			user.setAccount("admin");
+			// 获取参数配置的密码
+			String password = Func.toStr(ParamCache.getValue(PASSWORD_KEY), DEFAULT_PASSWORD);
+			user.setPassword(password);
+			user.setRoleId(String.valueOf(role.getId()));
+			user.setDeptId(String.valueOf(dept.getId()));
+			user.setPostId(String.valueOf(post.getId()));
+			user.setBirthday(new Date());
+			user.setSex(1);
+			user.setUserType(UserEnum.WEB.getCategory());
+			user.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+			boolean temp = super.saveOrUpdate(tenant);
+			R<Boolean> result = userClient.saveUser(user);
+			if (!result.isSuccess()) {
+				throw new ServiceException(result.getMsg());
+			}
+			return temp;
+		} else {
+			CacheUtil.clear(SYS_CACHE, tenant.getTenantId());
+			return super.saveOrUpdate(tenant);
+		}
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean removeTenant(List<Long> ids) {
+		List<String> tenantIds = this.list(Wrappers.<Tenant>query().lambda().in(Tenant::getId, ids))
+			.stream().map(tenant -> Func.toStr(tenant.getTenantId())).distinct().collect(Collectors.toList());
+		CacheUtil.clear(SYS_CACHE, tenantIds);
+		if (tenantIds.contains(BladeConstant.ADMIN_TENANT_ID)) {
+			throw new ServiceException("不可删除管理租户!");
+		}
+		boolean tenantTemp = this.deleteLogic(ids);
+		R<Boolean> result = userClient.removeUser(StringUtil.join(tenantIds));
+		if (!result.isSuccess()) {
+			throw new ServiceException(result.getMsg());
+		}
+		return tenantTemp;
+	}
+
+	@Override
+	public boolean setting(Integer accountNumber, Date expireTime, String ids) {
+		List<String> tenantIds = this.list(Wrappers.<Tenant>query().lambda().in(Tenant::getId, ids))
+			.stream().map(tenant -> Func.toStr(tenant.getTenantId())).distinct().collect(Collectors.toList());
+		CacheUtil.clear(SYS_CACHE, tenantIds);
+		Func.toLongList(ids).forEach(id -> {
+			Kv kv = Kv.create().set("accountNumber", accountNumber).set("expireTime", expireTime).set("id", id);
+			String licenseKey = DesUtil.encryptToHex(JsonUtil.toJson(kv), DES_KEY);
+			update(
+				Wrappers.<Tenant>update().lambda()
+					.set(Tenant::getAccountNumber, accountNumber)
+					.set(Tenant::getExpireTime, expireTime)
+					.set(Tenant::getLicenseKey, licenseKey)
+					.eq(Tenant::getId, id)
+			);
+		});
+		return true;
+	}
+
+	private String getTenantId(List<String> codes) {
+		String code = tenantId.generate();
+		if (codes.contains(code)) {
+			return getTenantId(codes);
+		}
+		return code;
+	}
+
+	private List<Menu> getMenus(List<String> codes, LinkedList<Menu> menus) {
+		codes.forEach(code -> {
+			Menu menu = menuService.getOne(Wrappers.<Menu>query().lambda().eq(Menu::getCode, code).eq(Menu::getIsDeleted, BladeConstant.DB_NOT_DELETED));
+			if (menu != null) {
+				menus.add(menu);
+				recursionMenu(menu.getId(), menus);
+			}
+		});
+		return menus;
+	}
+
+	private void recursionMenu(Long parentId, LinkedList<Menu> menus) {
+		List<Menu> menuList = menuService.list(Wrappers.<Menu>query().lambda().eq(Menu::getParentId, parentId).eq(Menu::getIsDeleted, BladeConstant.DB_NOT_DELETED));
+		menus.addAll(menuList);
+		menuList.forEach(menu -> recursionMenu(menu.getId(), menus));
+	}
+
+	private List<DictBiz> getDictBizs(String tenantId, LinkedList<DictBiz> dictBizs) {
+		List<DictBiz> dictBizList = dictBizService.list(Wrappers.<DictBiz>query().lambda().eq(DictBiz::getParentId, BladeConstant.TOP_PARENT_ID).eq(DictBiz::getIsDeleted, BladeConstant.DB_NOT_DELETED));
+		dictBizList.forEach(dictBiz -> {
+			Long oldParentId = dictBiz.getId();
+			Long newParentId = IdWorker.getId();
+			dictBiz.setId(newParentId);
+			dictBiz.setTenantId(tenantId);
+			dictBizs.add(dictBiz);
+			recursionDictBiz(tenantId, oldParentId, newParentId, dictBizs);
+		});
+		return dictBizs;
+	}
+
+	private void recursionDictBiz(String tenantId, Long oldParentId, Long newParentId, LinkedList<DictBiz> dictBizs) {
+		List<DictBiz> dictBizList = dictBizService.list(Wrappers.<DictBiz>query().lambda().eq(DictBiz::getParentId, oldParentId).eq(DictBiz::getIsDeleted, BladeConstant.DB_NOT_DELETED));
+		dictBizList.forEach(dictBiz -> {
+			Long oldSubParentId = dictBiz.getId();
+			Long newSubParentId = IdWorker.getId();
+			dictBiz.setId(newSubParentId);
+			dictBiz.setTenantId(tenantId);
+			dictBiz.setParentId(newParentId);
+			dictBizs.add(dictBiz);
+			recursionDictBiz(tenantId, oldSubParentId, newSubParentId, dictBizs);
+		});
+	}
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TopMenuServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TopMenuServiceImpl.java
new file mode 100644
index 0000000..8dc3208
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TopMenuServiceImpl.java
@@ -0,0 +1,63 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import cn.gistack.system.entity.TopMenu;
+import cn.gistack.system.entity.TopMenuSetting;
+import cn.gistack.system.mapper.TopMenuMapper;
+import cn.gistack.system.service.ITopMenuService;
+import cn.gistack.system.service.ITopMenuSettingService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 顶部菜单表 服务实现类
+ *
+ * @author BladeX
+ */
+@Service
+@AllArgsConstructor
+public class TopMenuServiceImpl extends BaseServiceImpl<TopMenuMapper, TopMenu> implements ITopMenuService {
+
+	private final ITopMenuSettingService topMenuSettingService;
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean grant(@NotEmpty List<Long> topMenuIds, @NotEmpty List<Long> menuIds) {
+		// 删除顶部菜单配置的菜单集合
+		topMenuSettingService.remove(Wrappers.<TopMenuSetting>update().lambda().in(TopMenuSetting::getTopMenuId, topMenuIds));
+		// 组装配置
+		List<TopMenuSetting> menuSettings = new ArrayList<>();
+		topMenuIds.forEach(topMenuId -> menuIds.forEach(menuId -> {
+			TopMenuSetting menuSetting = new TopMenuSetting();
+			menuSetting.setTopMenuId(topMenuId);
+			menuSetting.setMenuId(menuId);
+			menuSettings.add(menuSetting);
+		}));
+		// 新增配置
+		topMenuSettingService.saveBatch(menuSettings);
+		return true;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TopMenuSettingServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TopMenuSettingServiceImpl.java
new file mode 100644
index 0000000..dbe32ed
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/service/impl/TopMenuSettingServiceImpl.java
@@ -0,0 +1,33 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.service.impl;
+
+import cn.gistack.system.entity.TopMenuSetting;
+import cn.gistack.system.mapper.TopMenuSettingMapper;
+import cn.gistack.system.service.ITopMenuSettingService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class TopMenuSettingServiceImpl extends ServiceImpl<TopMenuSettingMapper, TopMenuSetting> implements ITopMenuSettingService {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/ApiScopeWrapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/ApiScopeWrapper.java
new file mode 100644
index 0000000..313be9e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/ApiScopeWrapper.java
@@ -0,0 +1,48 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import cn.gistack.system.cache.DictCache;
+import cn.gistack.system.entity.ApiScope;
+import cn.gistack.system.enums.DictEnum;
+import cn.gistack.system.vo.ApiScopeVO;
+
+import java.util.Objects;
+
+
+/**
+ * 包装类,返回视图层所需的字段
+ *
+ * @author Chill
+ */
+public class ApiScopeWrapper extends BaseEntityWrapper<ApiScope, ApiScopeVO> {
+
+	public static ApiScopeWrapper build() {
+		return new ApiScopeWrapper();
+	}
+
+	@Override
+	public ApiScopeVO entityVO(ApiScope dataScope) {
+		ApiScopeVO apiScopeVO = Objects.requireNonNull(BeanUtil.copy(dataScope, ApiScopeVO.class));
+		String scopeTypeName = DictCache.getValue(DictEnum.API_SCOPE_TYPE, dataScope.getScopeType());
+		apiScopeVO.setScopeTypeName(scopeTypeName);
+		return apiScopeVO;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DataScopeWrapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DataScopeWrapper.java
new file mode 100644
index 0000000..d3439a8
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DataScopeWrapper.java
@@ -0,0 +1,48 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import cn.gistack.system.cache.DictCache;
+import cn.gistack.system.entity.DataScope;
+import cn.gistack.system.enums.DictEnum;
+import cn.gistack.system.vo.DataScopeVO;
+
+import java.util.Objects;
+
+
+/**
+ * 包装类,返回视图层所需的字段
+ *
+ * @author Chill
+ */
+public class DataScopeWrapper extends BaseEntityWrapper<DataScope, DataScopeVO> {
+
+	public static DataScopeWrapper build() {
+		return new DataScopeWrapper();
+	}
+
+	@Override
+	public DataScopeVO entityVO(DataScope dataScope) {
+		DataScopeVO dataScopeVO = Objects.requireNonNull(BeanUtil.copy(dataScope, DataScopeVO.class));
+		String scopeTypeName = DictCache.getValue(DictEnum.DATA_SCOPE_TYPE, dataScope.getScopeType());
+		dataScopeVO.setScopeTypeName(scopeTypeName);
+		return dataScopeVO;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DeptWrapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DeptWrapper.java
new file mode 100644
index 0000000..ad1bb99
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DeptWrapper.java
@@ -0,0 +1,78 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.wrapper;
+
+import cn.gistack.system.vo.DeptVO;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.cache.DictCache;
+import cn.gistack.system.cache.SysCache;
+import cn.gistack.system.entity.Dept;
+import cn.gistack.system.enums.DictEnum;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * 包装类,返回视图层所需的字段
+ *
+ * @author Chill
+ */
+public class DeptWrapper extends BaseEntityWrapper<Dept, DeptVO> {
+
+	public static DeptWrapper build() {
+		return new DeptWrapper();
+	}
+
+	@Override
+	public DeptVO entityVO(Dept dept) {
+		DeptVO deptVO = Objects.requireNonNull(BeanUtil.copy(dept, DeptVO.class));
+		if (Func.equals(dept.getParentId(), BladeConstant.TOP_PARENT_ID)) {
+			deptVO.setParentName(BladeConstant.TOP_PARENT_NAME);
+		} else {
+			Dept parent = SysCache.getDept(dept.getParentId());
+			deptVO.setParentName(parent.getDeptName());
+		}
+		String category = DictCache.getValue(DictEnum.ORG_CATEGORY, dept.getDeptCategory());
+		deptVO.setDeptCategoryName(category);
+		return deptVO;
+	}
+
+
+	public List<DeptVO> listNodeVO(List<Dept> list) {
+		List<DeptVO> collect = list.stream().map(dept -> {
+			DeptVO deptVO = BeanUtil.copy(dept, DeptVO.class);
+			String category = DictCache.getValue(DictEnum.ORG_CATEGORY, dept.getDeptCategory());
+			Objects.requireNonNull(deptVO).setDeptCategoryName(category);
+			return deptVO;
+		}).collect(Collectors.toList());
+		return ForestNodeMerger.merge(collect);
+	}
+
+	public List<DeptVO> listNodeLazyVO(List<DeptVO> list) {
+		List<DeptVO> collect = list.stream().peek(dept -> {
+			String category = DictCache.getValue(DictEnum.ORG_CATEGORY, dept.getDeptCategory());
+			Objects.requireNonNull(dept).setDeptCategoryName(category);
+		}).collect(Collectors.toList());
+		return ForestNodeMerger.merge(collect);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DictBizWrapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DictBizWrapper.java
new file mode 100644
index 0000000..6a189bc
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DictBizWrapper.java
@@ -0,0 +1,61 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.cache.DictBizCache;
+import cn.gistack.system.entity.DictBiz;
+import cn.gistack.system.vo.DictBizVO;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+
+/**
+ * 包装类,返回视图层所需的字段
+ *
+ * @author Chill
+ */
+public class DictBizWrapper extends BaseEntityWrapper<DictBiz, DictBizVO> {
+
+	public static DictBizWrapper build() {
+		return new DictBizWrapper();
+	}
+
+	@Override
+	public DictBizVO entityVO(DictBiz dict) {
+		DictBizVO dictVO = Objects.requireNonNull(BeanUtil.copy(dict, DictBizVO.class));
+		if (Func.equals(dict.getParentId(), BladeConstant.TOP_PARENT_ID)) {
+			dictVO.setParentName(BladeConstant.TOP_PARENT_NAME);
+		} else {
+			DictBiz parent = DictBizCache.getById(dict.getParentId());
+			dictVO.setParentName(parent.getDictValue());
+		}
+		return dictVO;
+	}
+
+	public List<DictBizVO> listNodeVO(List<DictBiz> list) {
+		List<DictBizVO> collect = list.stream().map(dict -> BeanUtil.copy(dict, DictBizVO.class)).collect(Collectors.toList());
+		return ForestNodeMerger.merge(collect);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DictWrapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DictWrapper.java
new file mode 100644
index 0000000..5e4f551
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/DictWrapper.java
@@ -0,0 +1,60 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.cache.DictCache;
+import cn.gistack.system.entity.Dict;
+import cn.gistack.system.vo.DictVO;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * 包装类,返回视图层所需的字段
+ *
+ * @author Chill
+ */
+public class DictWrapper extends BaseEntityWrapper<Dict, DictVO> {
+
+	public static DictWrapper build() {
+		return new DictWrapper();
+	}
+
+	@Override
+	public DictVO entityVO(Dict dict) {
+		DictVO dictVO = Objects.requireNonNull(BeanUtil.copy(dict, DictVO.class));
+		if (Func.equals(dict.getParentId(), BladeConstant.TOP_PARENT_ID)) {
+			dictVO.setParentName(BladeConstant.TOP_PARENT_NAME);
+		} else {
+			Dict parent = DictCache.getById(dict.getParentId());
+			dictVO.setParentName(parent.getDictValue());
+		}
+		return dictVO;
+	}
+
+	public List<DictVO> listNodeVO(List<Dict> list) {
+		List<DictVO> collect = list.stream().map(dict -> BeanUtil.copy(dict, DictVO.class)).collect(Collectors.toList());
+		return ForestNodeMerger.merge(collect);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/MenuWrapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/MenuWrapper.java
new file mode 100644
index 0000000..b4600d0
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/MenuWrapper.java
@@ -0,0 +1,72 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.cache.DictCache;
+import cn.gistack.system.cache.SysCache;
+import cn.gistack.system.entity.Menu;
+import cn.gistack.system.enums.DictEnum;
+import cn.gistack.system.vo.MenuVO;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * 包装类,返回视图层所需的字段
+ *
+ * @author Chill
+ */
+public class MenuWrapper extends BaseEntityWrapper<Menu, MenuVO> {
+
+	public static MenuWrapper build() {
+		return new MenuWrapper();
+	}
+
+	@Override
+	public MenuVO entityVO(Menu menu) {
+		MenuVO menuVO = Objects.requireNonNull(BeanUtil.copy(menu, MenuVO.class));
+		if (Func.equals(menu.getParentId(), BladeConstant.TOP_PARENT_ID)) {
+			menuVO.setParentName(BladeConstant.TOP_PARENT_NAME);
+		} else {
+			Menu parent = SysCache.getMenu(menu.getParentId());
+			menuVO.setParentName(parent.getName());
+		}
+		String category = DictCache.getValue(DictEnum.MENU_CATEGORY, Func.toInt(menuVO.getCategory()));
+		String action = DictCache.getValue(DictEnum.BUTTON_FUNC, Func.toInt(menuVO.getAction()));
+		String open = DictCache.getValue(DictEnum.YES_NO, Func.toInt(menuVO.getIsOpen()));
+		menuVO.setCategoryName(category);
+		menuVO.setActionName(action);
+		menuVO.setIsOpenName(open);
+		return menuVO;
+	}
+
+	public List<MenuVO> listNodeVO(List<Menu> list) {
+		List<MenuVO> collect = list.stream().map(menu -> BeanUtil.copy(menu, MenuVO.class)).collect(Collectors.toList());
+		return ForestNodeMerger.merge(collect);
+	}
+
+	public List<MenuVO> listNodeLazyVO(List<MenuVO> list) {
+		return ForestNodeMerger.merge(list);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/PostWrapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/PostWrapper.java
new file mode 100644
index 0000000..59ce3d0
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/PostWrapper.java
@@ -0,0 +1,47 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import cn.gistack.system.cache.DictCache;
+import cn.gistack.system.entity.Post;
+import cn.gistack.system.enums.DictEnum;
+import cn.gistack.system.vo.PostVO;
+
+import java.util.Objects;
+
+/**
+ * 岗位表包装类,返回视图层所需的字段
+ *
+ * @author Chill
+ */
+public class PostWrapper extends BaseEntityWrapper<Post, PostVO> {
+
+	public static PostWrapper build() {
+		return new PostWrapper();
+	}
+
+	@Override
+	public PostVO entityVO(Post post) {
+		PostVO postVO = Objects.requireNonNull(BeanUtil.copy(post, PostVO.class));
+		String categoryName = DictCache.getValue(DictEnum.POST_CATEGORY, post.getCategory());
+		postVO.setCategoryName(categoryName);
+		return postVO;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/RegionWrapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/RegionWrapper.java
new file mode 100644
index 0000000..f191d28
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/RegionWrapper.java
@@ -0,0 +1,52 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.BeanUtil;
+import cn.gistack.system.cache.RegionCache;
+import cn.gistack.system.entity.Region;
+import cn.gistack.system.vo.RegionVO;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 包装类,返回视图层所需的字段
+ *
+ * @author Chill
+ */
+public class RegionWrapper extends BaseEntityWrapper<Region, RegionVO> {
+
+	public static RegionWrapper build() {
+		return new RegionWrapper();
+	}
+
+	@Override
+	public RegionVO entityVO(Region region) {
+		RegionVO regionVO = Objects.requireNonNull(BeanUtil.copy(region, RegionVO.class));
+		Region parentRegion = RegionCache.getByCode(region.getParentCode());
+		regionVO.setParentName(parentRegion.getName());
+		return regionVO;
+	}
+
+	public List<RegionVO> listNodeLazyVO(List<RegionVO> list) {
+		return ForestNodeMerger.merge(list);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/RoleWrapper.java b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/RoleWrapper.java
new file mode 100644
index 0000000..5a5af89
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/java/cn/gistack/system/wrapper/RoleWrapper.java
@@ -0,0 +1,61 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.wrapper;
+
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.cache.SysCache;
+import cn.gistack.system.entity.Role;
+import cn.gistack.system.vo.RoleVO;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * 包装类,返回视图层所需的字段
+ *
+ * @author Chill
+ */
+public class RoleWrapper extends BaseEntityWrapper<Role, RoleVO> {
+
+	public static RoleWrapper build() {
+		return new RoleWrapper();
+	}
+
+	@Override
+	public RoleVO entityVO(Role role) {
+		RoleVO roleVO = Objects.requireNonNull(BeanUtil.copy(role, RoleVO.class));
+		if (Func.equals(role.getParentId(), BladeConstant.TOP_PARENT_ID)) {
+			roleVO.setParentName(BladeConstant.TOP_PARENT_NAME);
+		} else {
+			Role parent = SysCache.getRole(role.getParentId());
+			roleVO.setParentName(parent.getRoleName());
+		}
+		return roleVO;
+	}
+
+
+	public List<RoleVO> listNodeVO(List<Role> list) {
+		List<RoleVO> collect = list.stream().map(this::entityVO).collect(Collectors.toList());
+		return ForestNodeMerger.merge(collect);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/resources/application-dev.yml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..216bd19
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/resources/application-dev.yml
@@ -0,0 +1,10 @@
+#服务器端口
+server:
+  port: 8106
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.dev.url}
+    username: ${blade.datasource.dev.username}
+    password: ${blade.datasource.dev.password}
\ No newline at end of file
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/resources/application-prod.yml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..25635bc
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/resources/application-prod.yml
@@ -0,0 +1,10 @@
+#服务器端口
+server:
+  port: 8106
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.prod.url}
+    username: ${blade.datasource.prod.username}
+    password: ${blade.datasource.prod.password}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/resources/application-test.yml
new file mode 100644
index 0000000..fb5cd8f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-system/src/main/resources/application-test.yml
@@ -0,0 +1,10 @@
+#服务器端口
+server:
+  port: 8106
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.test.url}
+    username: ${blade.datasource.test.username}
+    password: ${blade.datasource.test.password}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/Dockerfile b/skjcmanager/skjcmanager-service/skjcmanager-user/Dockerfile
new file mode 100644
index 0000000..9c40e6c
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/Dockerfile
@@ -0,0 +1,15 @@
+FROM bladex/alpine-java:openjdk8-openj9_cn_slim
+
+MAINTAINER bladejava@qq.com
+
+RUN mkdir -p /blade/user
+
+WORKDIR /blade/user
+
+EXPOSE 8102
+
+ADD ./target/blade-user.jar ./app.jar
+
+ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
+
+CMD ["--spring.profiles.active=test"]
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/pom.xml b/skjcmanager/skjcmanager-service/skjcmanager-user/pom.xml
new file mode 100644
index 0000000..26cfdb2
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/pom.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>skjcmanager-service</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>skjcmanager-user</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-boot</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-excel</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-swagger</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-user-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>skjcmanager-system-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>dockerfile-maven-plugin</artifactId>
+                <configuration>
+                    <username>${docker.username}</username>
+                    <password>${docker.password}</password>
+                    <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+                    <tag>${project.version}</tag>
+                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+                    <buildArgs>
+                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+                    </buildArgs>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/UserApplication.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/UserApplication.java
new file mode 100644
index 0000000..f5fe967
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/UserApplication.java
@@ -0,0 +1,38 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user;
+
+import cn.gistack.common.constant.AppsConstant;
+import org.springblade.core.cloud.client.BladeCloudApplication;
+import org.springblade.core.launch.BladeApplication;
+import org.springblade.core.launch.constant.AppConstant;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+/**
+ * 用户启动器
+ *
+ * @author Chill
+ */
+@BladeCloudApplication
+@EnableFeignClients(basePackages = "cn.gistack.system.user.feign")
+public class UserApplication {
+
+	public static void main(String[] args) {
+		BladeApplication.run(AppsConstant.APPLICATION_USER_NAME, UserApplication.class, args);
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/controller/UserController.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/controller/UserController.java
new file mode 100644
index 0000000..f1792d4
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/controller/UserController.java
@@ -0,0 +1,336 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.controller;
+
+
+import cn.gistack.system.user.entity.User;
+import cn.gistack.system.user.excel.UserExcel;
+import cn.gistack.system.user.excel.UserImporter;
+import cn.gistack.system.user.service.IUserService;
+import cn.gistack.system.user.vo.UserVO;
+import cn.gistack.system.user.wrapper.UserWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.AllArgsConstructor;
+import cn.gistack.common.cache.CacheNames;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.excel.util.ExcelUtil;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.redis.cache.BladeRedis;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.annotation.PreAuth;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.constant.RoleConstant;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE;
+
+/**
+ * 控制器
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@RequestMapping
+@AllArgsConstructor
+public class UserController {
+
+	private final IUserService userService;
+	private final BladeRedis bladeRedis;
+
+	/**
+	 * 查询单条
+	 */
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "查看详情", notes = "传入id")
+	@GetMapping("/detail")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R<UserVO> detail(User user) {
+		User detail = userService.getOne(Condition.getQueryWrapper(user));
+		return R.data(UserWrapper.build().entityVO(detail));
+	}
+
+	/**
+	 * 查询单条
+	 */
+	@ApiOperationSupport(order = 2)
+	@ApiOperation(value = "查看详情", notes = "传入id")
+	@GetMapping("/info")
+	public R<UserVO> info(BladeUser user) {
+		User detail = userService.getById(user.getUserId());
+		return R.data(UserWrapper.build().entityVO(detail));
+	}
+
+	/**
+	 * 用户列表
+	 */
+	@GetMapping("/list")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "account", value = "账号名", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "realName", value = "姓名", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "列表", notes = "传入account和realName")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R<IPage<UserVO>> list(@ApiIgnore @RequestParam Map<String, Object> user, Query query, BladeUser bladeUser) {
+		QueryWrapper<User> queryWrapper = Condition.getQueryWrapper(user, User.class);
+		IPage<User> pages = userService.page(Condition.getPage(query), (!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()) : queryWrapper);
+		return R.data(UserWrapper.build().pageVO(pages));
+	}
+
+	/**
+	 * 自定义用户列表
+	 */
+	@GetMapping("/page")
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "account", value = "账号名", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "realName", value = "姓名", paramType = "query", dataType = "string")
+	})
+	@ApiOperationSupport(order = 3)
+	@ApiOperation(value = "列表", notes = "传入account和realName")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R<IPage<UserVO>> page(@ApiIgnore User user, Query query, Long deptId, BladeUser bladeUser) {
+		IPage<User> pages = userService.selectUserPage(Condition.getPage(query), user, deptId, (bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? StringPool.EMPTY : bladeUser.getTenantId()));
+		return R.data(UserWrapper.build().pageVO(pages));
+	}
+
+	/**
+	 * 新增或修改
+	 */
+	@PostMapping("/submit")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "新增或修改", notes = "传入User")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R submit(@Valid @RequestBody User user) {
+		CacheUtil.clear(USER_CACHE);
+		return R.status(userService.submit(user));
+	}
+
+	/**
+	 * 修改
+	 */
+	@PostMapping("/update")
+	@ApiOperationSupport(order = 5)
+	@ApiOperation(value = "修改", notes = "传入User")
+	public R update(@Valid @RequestBody User user) {
+		CacheUtil.clear(USER_CACHE);
+		return R.status(userService.updateUser(user));
+	}
+
+	/**
+	 * 删除
+	 */
+	@PostMapping("/remove")
+	@ApiOperationSupport(order = 6)
+	@ApiOperation(value = "删除", notes = "传入id集合")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R remove(@RequestParam String ids) {
+		CacheUtil.clear(USER_CACHE);
+		return R.status(userService.removeUser(ids));
+	}
+
+	/**
+	 * 设置菜单权限
+	 */
+	@PostMapping("/grant")
+	@ApiOperationSupport(order = 7)
+	@ApiOperation(value = "权限设置", notes = "传入roleId集合以及menuId集合")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R grant(@ApiParam(value = "userId集合", required = true) @RequestParam String userIds,
+				   @ApiParam(value = "roleId集合", required = true) @RequestParam String roleIds) {
+		boolean temp = userService.grant(userIds, roleIds);
+		return R.status(temp);
+	}
+
+	/**
+	 * 密码重制
+	 */
+	@PostMapping("/reset-password")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "初始化密码", notes = "传入userId集合")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R resetPassword(@ApiParam(value = "userId集合", required = true) @RequestParam String userIds) {
+		boolean temp = userService.resetPassword(userIds);
+		return R.status(temp);
+	}
+
+	/**
+	 * 修改密码
+	 */
+	@PostMapping("/update-password")
+	@ApiOperationSupport(order = 9)
+	@ApiOperation(value = "修改密码", notes = "传入密码")
+	public R updatePassword(BladeUser user, @ApiParam(value = "旧密码", required = true) @RequestParam String oldPassword,
+							@ApiParam(value = "新密码", required = true) @RequestParam String newPassword,
+							@ApiParam(value = "新密码", required = true) @RequestParam String newPassword1) {
+		boolean temp = userService.updatePassword(user.getUserId(), oldPassword, newPassword, newPassword1);
+		return R.status(temp);
+	}
+
+	/**
+	 * 修改基本信息
+	 */
+	@PostMapping("/update-info")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "修改基本信息", notes = "传入User")
+	public R updateInfo(@Valid @RequestBody User user) {
+		CacheUtil.clear(USER_CACHE);
+		return R.status(userService.updateUserInfo(user));
+	}
+
+	/**
+	 * 用户列表
+	 */
+	@GetMapping("/user-list")
+	@ApiOperationSupport(order = 11)
+	@ApiOperation(value = "用户列表", notes = "传入user")
+	public R<List<User>> userList(User user, BladeUser bladeUser) {
+		QueryWrapper<User> queryWrapper = Condition.getQueryWrapper(user);
+		List<User> list = userService.list((!AuthUtil.isAdministrator()) ? queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()) : queryWrapper);
+		return R.data(list);
+	}
+
+	/**
+	 * 导入用户
+	 */
+	@PostMapping("import-user")
+	@ApiOperationSupport(order = 12)
+	@ApiOperation(value = "导入用户", notes = "传入excel")
+	public R importUser(MultipartFile file, Integer isCovered) {
+		UserImporter userImporter = new UserImporter(userService, isCovered == 1);
+		ExcelUtil.save(file, userImporter, UserExcel.class);
+		return R.success("操作成功");
+	}
+
+	/**
+	 * 导出用户
+	 */
+	@GetMapping("export-user")
+	@ApiOperationSupport(order = 13)
+	@ApiOperation(value = "导出用户", notes = "传入user")
+	public void exportUser(@ApiIgnore @RequestParam Map<String, Object> user, BladeUser bladeUser, HttpServletResponse response) {
+		QueryWrapper<User> queryWrapper = Condition.getQueryWrapper(user, User.class);
+		if (!AuthUtil.isAdministrator()) {
+			queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId());
+		}
+		queryWrapper.lambda().eq(User::getIsDeleted, BladeConstant.DB_NOT_DELETED);
+		List<UserExcel> list = userService.exportUser(queryWrapper);
+		ExcelUtil.export(response, "用户数据" + DateUtil.time(), "用户数据表", list, UserExcel.class);
+	}
+
+	/**
+	 * 导出模板
+	 */
+	@GetMapping("export-template")
+	@ApiOperationSupport(order = 14)
+	@ApiOperation(value = "导出模板")
+	public void exportUser(HttpServletResponse response) {
+		List<UserExcel> list = new ArrayList<>();
+		ExcelUtil.export(response, "用户数据模板", "用户数据表", list, UserExcel.class);
+	}
+
+
+	/**
+	 * 第三方注册用户
+	 */
+	@PostMapping("/register-guest")
+	@ApiOperationSupport(order = 15)
+	@ApiOperation(value = "第三方注册用户", notes = "传入user")
+	public R registerGuest(User user, Long oauthId) {
+		return R.status(userService.registerGuest(user, oauthId));
+	}
+
+
+	/**
+	 * 配置用户平台信息
+	 */
+	@PostMapping("/update-platform")
+	@ApiOperationSupport(order = 16)
+	@ApiOperation(value = "配置用户平台信息", notes = "传入user")
+	public R updatePlatform(Long userId, Integer userType, String userExt) {
+		return R.status(userService.updatePlatform(userId, userType, userExt));
+	}
+
+	/**
+	 * 查看平台详情
+	 */
+	@ApiOperationSupport(order = 17)
+	@ApiOperation(value = "查看平台详情", notes = "传入id")
+	@GetMapping("/platform-detail")
+	@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+	public R<UserVO> platformDetail(User user) {
+		return R.data(userService.platformDetail(user));
+	}
+
+
+	/**
+	 * 用户列表查询
+	 */
+	@ApiImplicitParams({
+		@ApiImplicitParam(name = "name", value = "人员姓名", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "deptName", value = "部门名称", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "postName", value = "职位名称", paramType = "query", dataType = "string"),
+		@ApiImplicitParam(name = "current", value = "当前页数", paramType = "query", dataType = "int"),
+		@ApiImplicitParam(name = "size", value = "每页数量", paramType = "query", dataType = "int")
+	})
+	@ApiOperationSupport(order = 18)
+	@ApiOperation(value = "用户列表查询", notes = "用户列表查询")
+	@GetMapping("/search/user")
+	public R<IPage<UserVO>> userSearch(@ApiIgnore UserVO user, @ApiIgnore Query query) {
+		return R.data(userService.selectUserSearch(user, query));
+	}
+
+
+	/**
+	 * 用户解锁
+	 */
+	@PostMapping("/unlock")
+	@ApiOperationSupport(order = 19)
+	@ApiOperation(value = "账号解锁", notes = "传入id")
+	public R unlock(String userIds) {
+		if (StringUtil.isBlank(userIds)) {
+			return R.fail("请至少选择一个用户");
+		}
+		List<User> userList = userService.list(Wrappers.<User>lambdaQuery().in(User::getId, Func.toLongList(userIds)));
+		userList.forEach(user -> bladeRedis.del(CacheNames.tenantKey(user.getTenantId(), CacheNames.USER_FAIL_KEY, user.getAccount())));
+		return R.success("操作成功");
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/excel/UserExcel.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/excel/UserExcel.java
new file mode 100644
index 0000000..6e14e29
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/excel/UserExcel.java
@@ -0,0 +1,97 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.excel;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * UserExcel
+ *
+ * @author Chill
+ */
+@Data
+@ColumnWidth(25)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class UserExcel implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	@ColumnWidth(15)
+	@ExcelProperty("租户编号")
+	private String tenantId;
+
+	@ExcelIgnore
+	@ExcelProperty("用户平台")
+	private String userType;
+
+	@ColumnWidth(20)
+	@ExcelProperty("用户平台名称")
+	private String userTypeName;
+
+	@ColumnWidth(15)
+	@ExcelProperty("账户")
+	private String account;
+
+	@ColumnWidth(10)
+	@ExcelProperty("昵称")
+	private String name;
+
+	@ColumnWidth(10)
+	@ExcelProperty("姓名")
+	private String realName;
+
+	@ExcelProperty("邮箱")
+	private String email;
+
+	@ColumnWidth(15)
+	@ExcelProperty("手机")
+	private String phone;
+
+	@ExcelIgnore
+	@ExcelProperty("角色ID")
+	private String roleId;
+
+	@ExcelIgnore
+	@ExcelProperty("部门ID")
+	private String deptId;
+
+	@ExcelIgnore
+	@ExcelProperty("岗位ID")
+	private String postId;
+
+	@ExcelProperty("角色名称")
+	private String roleName;
+
+	@ExcelProperty("部门名称")
+	private String deptName;
+
+	@ExcelProperty("岗位名称")
+	private String postName;
+
+	@ColumnWidth(20)
+	@ExcelProperty("生日")
+	private Date birthday;
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/excel/UserImporter.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/excel/UserImporter.java
new file mode 100644
index 0000000..98f6142
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/excel/UserImporter.java
@@ -0,0 +1,40 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.excel;
+
+import lombok.RequiredArgsConstructor;
+import org.springblade.core.excel.support.ExcelImporter;
+import cn.gistack.system.user.service.IUserService;
+
+import java.util.List;
+
+/**
+ * 用户数据导入类
+ *
+ * @author Chill
+ */
+@RequiredArgsConstructor
+public class UserImporter implements ExcelImporter<UserExcel> {
+
+	private final IUserService service;
+	private final Boolean isCovered;
+
+	@Override
+	public void save(List<UserExcel> data) {
+		service.importUser(data, isCovered);
+	}
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java
new file mode 100644
index 0000000..60c5c3e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserClient.java
@@ -0,0 +1,88 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.feign;
+
+import cn.gistack.system.user.entity.User;
+import cn.gistack.system.user.entity.UserInfo;
+import cn.gistack.system.user.entity.UserOauth;
+import cn.gistack.system.user.enums.UserEnum;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.user.service.IUserService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 用户服务Feign实现类
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+public class UserClient implements IUserClient {
+
+	private final IUserService service;
+
+	@Override
+	@GetMapping(USER_INFO_BY_ID)
+	public R<User> userInfoById(Long userId) {
+		return R.data(service.getById(userId));
+	}
+
+	@Override
+	@GetMapping(USER_INFO_BY_ACCOUNT)
+	public R<User> userByAccount(String tenantId, String account) {
+		return R.data(service.userByAccount(tenantId, account));
+	}
+
+	@Override
+	@GetMapping(USER_INFO)
+	public R<UserInfo> userInfo(String tenantId, String account) {
+		return R.data(service.userInfo(tenantId, account));
+	}
+
+	@Override
+	@GetMapping(USER_INFO_BY_TYPE)
+	public R<UserInfo> userInfo(String tenantId, String account, String userType) {
+		return R.data(service.userInfo(tenantId, account, UserEnum.of(userType)));
+	}
+
+	@Override
+	@PostMapping(USER_AUTH_INFO)
+	public R<UserInfo> userAuthInfo(@RequestBody UserOauth userOauth) {
+		return R.data(service.userInfo(userOauth));
+	}
+
+	@Override
+	@PostMapping(SAVE_USER)
+	public R<Boolean> saveUser(@RequestBody User user) {
+		return R.data(service.submit(user));
+	}
+
+	@Override
+	@PostMapping(REMOVE_USER)
+	public R<Boolean> removeUser(String tenantIds) {
+		return R.data(service.remove(Wrappers.<User>query().lambda().in(User::getTenantId, Func.toStrList(tenantIds))));
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserSearchClient.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserSearchClient.java
new file mode 100644
index 0000000..05f2cf4
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/feign/UserSearchClient.java
@@ -0,0 +1,65 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.feign;
+
+import cn.gistack.system.user.entity.User;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import cn.gistack.system.user.service.IUserSearchService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 用户查询服务Feign实现类
+ *
+ * @author Chill
+ */
+@NonDS
+@RestController
+@AllArgsConstructor
+public class UserSearchClient implements IUserSearchClient {
+
+	private final IUserSearchService service;
+
+	@Override
+	@GetMapping(LIST_BY_USER)
+	public R<List<User>> listByUser(String userId) {
+		return R.data(service.listByUser(Func.toLongList(userId)));
+	}
+
+	@Override
+	@GetMapping(LIST_BY_DEPT)
+	public R<List<User>> listByDept(String deptId) {
+		return R.data(service.listByDept(Func.toLongList(deptId)));
+	}
+
+	@Override
+	@GetMapping(LIST_BY_POST)
+	public R<List<User>> listByPost(String postId) {
+		return R.data(service.listByPost(Func.toLongList(postId)));
+	}
+
+	@Override
+	@GetMapping(LIST_BY_ROLE)
+	public R<List<User>> listByRole(String roleId) {
+		return R.data(service.listByRole(Func.toLongList(roleId)));
+	}
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserAppMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserAppMapper.java
new file mode 100644
index 0000000..c59837b
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserAppMapper.java
@@ -0,0 +1,30 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.mapper;
+
+import cn.gistack.system.user.entity.UserApp;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface UserAppMapper extends BaseMapper<UserApp> {
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserAppMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserAppMapper.xml
new file mode 100644
index 0000000..77ae8a9
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserAppMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.user.mapper.UserAppMapper">
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserDeptMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserDeptMapper.java
new file mode 100644
index 0000000..eccc859
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserDeptMapper.java
@@ -0,0 +1,30 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.mapper;
+
+import cn.gistack.system.user.entity.UserDept;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface UserDeptMapper extends BaseMapper<UserDept> {
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserDeptMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserDeptMapper.xml
new file mode 100644
index 0000000..dba3ca3
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserDeptMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.user.mapper.UserDeptMapper">
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserMapper.java
new file mode 100644
index 0000000..804f14f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserMapper.java
@@ -0,0 +1,63 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.mapper;
+
+import cn.gistack.system.user.entity.User;
+import cn.gistack.system.user.excel.UserExcel;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface UserMapper extends BaseMapper<User> {
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param user
+	 * @param deptIdList
+	 * @param tenantId
+	 * @return
+	 */
+	List<User> selectUserPage(IPage<User> page, @Param("user") User user, @Param("deptIdList") List<Long> deptIdList, @Param("tenantId") String tenantId);
+
+	/**
+	 * 获取用户
+	 *
+	 * @param tenantId
+	 * @param account
+	 * @return
+	 */
+	User getUser(String tenantId, String account);
+
+	/**
+	 * 获取导出用户数据
+	 *
+	 * @param queryWrapper
+	 * @return
+	 */
+	List<UserExcel> exportUser(@Param("ew") Wrapper<User> queryWrapper);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserMapper.xml
new file mode 100644
index 0000000..8c85979
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserMapper.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.user.mapper.UserMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="userResultMap" type="cn.gistack.system.user.entity.User">
+        <result column="id" property="id"/>
+        <result column="tenant_id" property="tenantId"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="code" property="code"/>
+        <result column="user_type" property="userType"/>
+        <result column="account" property="account"/>
+        <result column="password" property="password"/>
+        <result column="name" property="name"/>
+        <result column="real_name" property="realName"/>
+        <result column="email" property="email"/>
+        <result column="phone" property="phone"/>
+        <result column="birthday" property="birthday"/>
+        <result column="sex" property="sex"/>
+        <result column="role_id" property="roleId"/>
+        <result column="dept_id" property="deptId"/>
+        <result column="post_id" property="postId"/>
+    </resultMap>
+
+    <select id="selectUserPage" resultMap="userResultMap">
+        select * from blade_user where is_deleted = 0
+        <if test="tenantId!=null and tenantId != ''">
+            and tenant_id = #{tenantId}
+        </if>
+        <if test="user.tenantId!=null and user.tenantId != ''">
+            and tenant_id = #{user.tenantId}
+        </if>
+        <if test="user.account!=null and user.account != ''">
+            and account = #{user.account}
+        </if>
+        <if test="user.realName!=null and user.realName != ''">
+            and real_name = #{user.realName}
+        </if>
+        <if test="user.userType!=null and user.userType != ''">
+            and user_type = #{user.userType}
+        </if>
+        <if test="deptIdList!=null and deptIdList.size>0">
+            and id in (
+            SELECT
+            user_id
+            FROM
+            blade_user_dept
+            WHERE
+            dept_id IN
+            <foreach collection="deptIdList" index="index" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+            )
+        </if>
+        ORDER BY id
+    </select>
+
+    <select id="getUser" resultMap="userResultMap">
+        SELECT
+            *
+        FROM
+            blade_user
+        WHERE
+            tenant_id = #{param1} and account = #{param2} and is_deleted = 0
+    </select>
+
+    <select id="exportUser" resultType="cn.gistack.system.user.excel.UserExcel">
+        SELECT id, tenant_id, user_type, account, name, real_name, email, phone, birthday, role_id, dept_id, post_id FROM blade_user ${ew.customSqlSegment}
+    </select>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOauthMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOauthMapper.java
new file mode 100644
index 0000000..b1a0689
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOauthMapper.java
@@ -0,0 +1,29 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.mapper;
+
+import cn.gistack.system.user.entity.UserOauth;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface UserOauthMapper extends BaseMapper<UserOauth> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOauthMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOauthMapper.xml
new file mode 100644
index 0000000..5b91288
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOauthMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.user.mapper.UserOauthMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="userResultMap" type="cn.gistack.system.user.entity.UserOauth">
+        <result column="id" property="id"/>
+        <result column="tenant_id" property="tenantId"/>
+        <result column="user_id" property="userId"/>
+        <result column="username" property="username"/>
+        <result column="nickname" property="nickname"/>
+        <result column="avatar" property="avatar"/>
+        <result column="blog" property="blog"/>
+        <result column="company" property="company"/>
+        <result column="location" property="location"/>
+        <result column="email" property="email"/>
+        <result column="remark" property="remark"/>
+        <result column="gender" property="gender"/>
+        <result column="source" property="source"/>
+    </resultMap>
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOtherMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOtherMapper.java
new file mode 100644
index 0000000..6420da7
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOtherMapper.java
@@ -0,0 +1,30 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.mapper;
+
+import cn.gistack.system.user.entity.UserOther;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface UserOtherMapper extends BaseMapper<UserOther> {
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOtherMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOtherMapper.xml
new file mode 100644
index 0000000..e3762fb
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserOtherMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.user.mapper.UserOtherMapper">
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserWebMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserWebMapper.java
new file mode 100644
index 0000000..112983b
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserWebMapper.java
@@ -0,0 +1,30 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.mapper;
+
+import cn.gistack.system.user.entity.UserWeb;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * Mapper 接口
+ *
+ * @author Chill
+ */
+public interface UserWebMapper extends BaseMapper<UserWeb> {
+
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserWebMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserWebMapper.xml
new file mode 100644
index 0000000..b345386
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/mapper/UserWebMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.gistack.system.user.mapper.UserWebMapper">
+
+</mapper>
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserDeptService.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserDeptService.java
new file mode 100644
index 0000000..4ae7837
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserDeptService.java
@@ -0,0 +1,30 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.service;
+
+
+import cn.gistack.system.user.entity.UserDept;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface IUserDeptService extends IService<UserDept> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserOauthService.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserOauthService.java
new file mode 100644
index 0000000..a4283a0
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserOauthService.java
@@ -0,0 +1,30 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.service;
+
+
+import cn.gistack.system.user.entity.UserOauth;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface IUserOauthService extends IService<UserOauth> {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserSearchService.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserSearchService.java
new file mode 100644
index 0000000..ddaf52f
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserSearchService.java
@@ -0,0 +1,64 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.service;
+
+
+import cn.gistack.system.user.entity.User;
+import org.springblade.core.mp.base.BaseService;
+
+import java.util.List;
+
+/**
+ * 用户查询服务类
+ *
+ * @author Chill
+ */
+public interface IUserSearchService extends BaseService<User> {
+
+	/**
+	 * 根据用户ID查询用户列表
+	 *
+	 * @param userId 用户ID
+	 * @return 用户列表
+	 */
+	List<User> listByUser(List<Long> userId);
+
+    /**
+	 * 根据部门ID查询用户列表
+	 *
+	 * @param deptId 部门ID
+	 * @return 用户列表
+	 */
+	List<User> listByDept(List<Long> deptId);
+
+    /**
+	 * 根据岗位ID查询用户列表
+	 *
+	 * @param postId 岗位ID
+	 * @return 用户列表
+	 */
+	List<User> listByPost(List<Long> postId);
+
+    /**
+	 * 根据角色ID查询用户列表
+	 *
+	 * @param roleId 角色ID
+	 * @return 用户列表
+	 */
+	List<User> listByRole(List<Long> roleId);
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserService.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserService.java
new file mode 100644
index 0000000..872ed86
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/IUserService.java
@@ -0,0 +1,208 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.service;
+
+
+import cn.gistack.system.user.entity.User;
+import cn.gistack.system.user.entity.UserInfo;
+import cn.gistack.system.user.entity.UserOauth;
+import cn.gistack.system.user.enums.UserEnum;
+import cn.gistack.system.user.excel.UserExcel;
+import cn.gistack.system.user.vo.UserVO;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.core.mp.support.Query;
+
+import java.util.List;
+
+/**
+ * 服务类
+ *
+ * @author Chill
+ */
+public interface IUserService extends BaseService<User> {
+
+	/**
+	 * 新增用户
+	 *
+	 * @param user
+	 * @return
+	 */
+	boolean submit(User user);
+
+	/**
+	 * 修改用户
+	 *
+	 * @param user
+	 * @return
+	 */
+	boolean updateUser(User user);
+
+	/**
+	 * 修改用户基本信息
+	 *
+	 * @param user
+	 * @return
+	 */
+	boolean updateUserInfo(User user);
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param page
+	 * @param user
+	 * @param deptId
+	 * @param tenantId
+	 * @return
+	 */
+	IPage<User> selectUserPage(IPage<User> page, User user, Long deptId, String tenantId);
+
+	/**
+	 * 自定义分页
+	 *
+	 * @param user
+	 * @param query
+	 * @return
+	 */
+	IPage<UserVO> selectUserSearch(UserVO user, Query query);
+
+
+	/**
+	 * 用户信息
+	 *
+	 * @param userId
+	 * @return
+	 */
+	UserInfo userInfo(Long userId);
+
+	/**
+	 * 用户信息
+	 *
+	 * @param tenantId
+	 * @param account
+	 * @return
+	 */
+	UserInfo userInfo(String tenantId, String account);
+
+	/**
+	 * 用户信息
+	 *
+	 * @param tenantId
+	 * @param account
+	 * @param userEnum
+	 * @return
+	 */
+	UserInfo userInfo(String tenantId, String account, UserEnum userEnum);
+
+	/**
+	 * 用户信息
+	 *
+	 * @param userOauth
+	 * @return
+	 */
+	UserInfo userInfo(UserOauth userOauth);
+
+	/**
+	 * 根据账号获取用户
+	 *
+	 * @param tenantId
+	 * @param account
+	 * @return
+	 */
+	User userByAccount(String tenantId, String account);
+
+	/**
+	 * 给用户设置角色
+	 *
+	 * @param userIds
+	 * @param roleIds
+	 * @return
+	 */
+	boolean grant(String userIds, String roleIds);
+
+	/**
+	 * 初始化密码
+	 *
+	 * @param userIds
+	 * @return
+	 */
+	boolean resetPassword(String userIds);
+
+	/**
+	 * 修改密码
+	 *
+	 * @param userId
+	 * @param oldPassword
+	 * @param newPassword
+	 * @param newPassword1
+	 * @return
+	 */
+	boolean updatePassword(Long userId, String oldPassword, String newPassword, String newPassword1);
+
+	/**
+	 * 删除用户
+	 *
+	 * @param userIds
+	 * @return
+	 */
+	boolean removeUser(String userIds);
+
+	/**
+	 * 导入用户数据
+	 *
+	 * @param data
+	 * @param isCovered
+	 * @return
+	 */
+	void importUser(List<UserExcel> data, Boolean isCovered);
+
+	/**
+	 * 导出用户数据
+	 *
+	 * @param queryWrapper
+	 * @return
+	 */
+	List<UserExcel> exportUser(Wrapper<User> queryWrapper);
+
+	/**
+	 * 注册用户
+	 *
+	 * @param user
+	 * @param oauthId
+	 * @return
+	 */
+	boolean registerGuest(User user, Long oauthId);
+
+	/**
+	 * 配置用户平台
+	 *
+	 * @param userId
+	 * @param userType
+	 * @param userExt
+	 * @return
+	 */
+	boolean updatePlatform(Long userId, Integer userType, String userExt);
+
+	/**
+	 * 用户详细信息
+	 *
+	 * @param user
+	 * @return
+	 */
+	UserVO platformDetail(User user);
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserDeptServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserDeptServiceImpl.java
new file mode 100644
index 0000000..dab89e6
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserDeptServiceImpl.java
@@ -0,0 +1,34 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.service.impl;
+
+
+import cn.gistack.system.user.entity.UserDept;
+import cn.gistack.system.user.mapper.UserDeptMapper;
+import cn.gistack.system.user.service.IUserDeptService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+public class UserDeptServiceImpl extends ServiceImpl<UserDeptMapper, UserDept> implements IUserDeptService {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserOauthServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserOauthServiceImpl.java
new file mode 100644
index 0000000..b2273c0
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserOauthServiceImpl.java
@@ -0,0 +1,36 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.service.impl;
+
+
+import cn.gistack.system.user.entity.UserOauth;
+import cn.gistack.system.user.mapper.UserOauthMapper;
+import cn.gistack.system.user.service.IUserOauthService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+@AllArgsConstructor
+public class UserOauthServiceImpl extends ServiceImpl<UserOauthMapper, UserOauth> implements IUserOauthService {
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserSearchServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserSearchServiceImpl.java
new file mode 100644
index 0000000..149f851
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserSearchServiceImpl.java
@@ -0,0 +1,65 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.service.impl;
+
+
+import cn.gistack.system.user.entity.User;
+import cn.gistack.system.user.mapper.UserMapper;
+import cn.gistack.system.user.service.IUserSearchService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 用户查询服务实现类
+ *
+ * @author Chill
+ */
+@Service
+@AllArgsConstructor
+public class UserSearchServiceImpl extends BaseServiceImpl<UserMapper, User> implements IUserSearchService {
+
+	@Override
+	public List<User> listByUser(List<Long> userId) {
+		return this.list(Wrappers.<User>lambdaQuery().in(User::getId, userId));
+	}
+
+	@Override
+	public List<User> listByDept(List<Long> deptId) {
+		LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery();
+		deptId.forEach(id -> queryWrapper.like(User::getDeptId, id).or());
+		return this.list(queryWrapper);
+	}
+
+	@Override
+	public List<User> listByPost(List<Long> postId) {
+		LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery();
+		postId.forEach(id -> queryWrapper.like(User::getPostId, id).or());
+		return this.list(queryWrapper);
+	}
+
+	@Override
+	public List<User> listByRole(List<Long> roleId) {
+		LambdaQueryWrapper<User> queryWrapper = Wrappers.lambdaQuery();
+		roleId.forEach(id -> queryWrapper.like(User::getRoleId, id).or());
+		return this.list(queryWrapper);
+	}
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000..9df26ef
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/service/impl/UserServiceImpl.java
@@ -0,0 +1,433 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.service.impl;
+
+
+import cn.gistack.system.cache.DictCache;
+import cn.gistack.system.cache.ParamCache;
+import cn.gistack.system.cache.SysCache;
+import cn.gistack.system.entity.Tenant;
+import cn.gistack.system.enums.DictEnum;
+import cn.gistack.system.feign.ISysClient;
+import cn.gistack.system.user.cache.UserCache;
+import cn.gistack.system.user.entity.*;
+import cn.gistack.system.user.enums.UserEnum;
+import cn.gistack.system.user.excel.UserExcel;
+import cn.gistack.system.user.mapper.UserMapper;
+import cn.gistack.system.user.service.IUserDeptService;
+import cn.gistack.system.user.service.IUserOauthService;
+import cn.gistack.system.user.service.IUserService;
+import cn.gistack.system.user.vo.UserVO;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import cn.gistack.common.constant.CommonConstant;
+import cn.gistack.common.constant.TenantConstant;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tenant.BladeTenantProperties;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.jackson.JsonUtil;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.core.tool.utils.*;
+import cn.gistack.system.user.wrapper.UserWrapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Objects;
+
+import static cn.gistack.common.constant.CommonConstant.DEFAULT_PARAM_PASSWORD;
+
+/**
+ * 服务实现类
+ *
+ * @author Chill
+ */
+@Service
+@AllArgsConstructor
+public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implements IUserService {
+	private static final String GUEST_NAME = "guest";
+
+	private final IUserDeptService userDeptService;
+	private final IUserOauthService userOauthService;
+	private final ISysClient sysClient;
+	private final BladeTenantProperties tenantProperties;
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean submit(User user) {
+		if (StringUtil.isBlank(user.getTenantId())) {
+			user.setTenantId(BladeConstant.ADMIN_TENANT_ID);
+		}
+		String tenantId = user.getTenantId();
+		Tenant tenant = SysCache.getTenant(tenantId);
+		if (Func.isNotEmpty(tenant)) {
+			Integer accountNumber = tenant.getAccountNumber();
+			if (tenantProperties.getLicense()) {
+				String licenseKey = tenant.getLicenseKey();
+				String decrypt = DesUtil.decryptFormHex(licenseKey, TenantConstant.DES_KEY);
+				accountNumber = JsonUtil.parse(decrypt, Tenant.class).getAccountNumber();
+			}
+			Long tenantCount = baseMapper.selectCount(Wrappers.<User>query().lambda().eq(User::getTenantId, tenantId));
+			if (accountNumber != null && accountNumber > 0 && accountNumber <= tenantCount) {
+				throw new ServiceException("当前租户已到最大账号额度!");
+			}
+		}
+		if (Func.isNotEmpty(user.getPassword())) {
+			user.setPassword(DigestUtil.encrypt(user.getPassword()));
+		}
+		Long userCount = baseMapper.selectCount(Wrappers.<User>query().lambda().eq(User::getTenantId, tenantId).eq(User::getAccount, user.getAccount()));
+		if (userCount > 0L && Func.isEmpty(user.getId())) {
+			throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
+		}
+		return save(user) && submitUserDept(user);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean updateUser(User user) {
+		String tenantId = user.getTenantId();
+		Long userCount = baseMapper.selectCount(
+			Wrappers.<User>query().lambda()
+				.eq(User::getTenantId, tenantId)
+				.eq(User::getAccount, user.getAccount())
+				.notIn(User::getId, user.getId())
+		);
+		if (userCount > 0L) {
+			throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount()));
+		}
+		return updateUserInfo(user) && submitUserDept(user);
+	}
+
+	@Override
+	public boolean updateUserInfo(User user) {
+		user.setPassword(null);
+		return updateById(user);
+	}
+
+	private boolean submitUserDept(User user) {
+		List<Long> deptIdList = Func.toLongList(user.getDeptId());
+		List<UserDept> userDeptList = new ArrayList<>();
+		deptIdList.forEach(deptId -> {
+			UserDept userDept = new UserDept();
+			userDept.setUserId(user.getId());
+			userDept.setDeptId(deptId);
+			userDeptList.add(userDept);
+		});
+		userDeptService.remove(Wrappers.<UserDept>update().lambda().eq(UserDept::getUserId, user.getId()));
+		return userDeptService.saveBatch(userDeptList);
+	}
+
+	@Override
+	public IPage<User> selectUserPage(IPage<User> page, User user, Long deptId, String tenantId) {
+		List<Long> deptIdList = SysCache.getDeptChildIds(deptId);
+		return page.setRecords(baseMapper.selectUserPage(page, user, deptIdList, tenantId));
+	}
+
+	@Override
+	public IPage<UserVO> selectUserSearch(UserVO user, Query query) {
+		LambdaQueryWrapper<User> queryWrapper = Wrappers.<User>query().lambda();
+		String tenantId = AuthUtil.getTenantId();
+		if (StringUtil.isNotBlank(tenantId)) {
+			queryWrapper.eq(User::getTenantId, tenantId);
+		}
+		if (StringUtil.isNotBlank(user.getName())) {
+			queryWrapper.like(User::getName, user.getName());
+		}
+		if (StringUtil.isNotBlank(user.getDeptName())) {
+			String deptIds = SysCache.getDeptIdsByFuzzy(AuthUtil.getTenantId(), user.getDeptName());
+			if (StringUtil.isNotBlank(deptIds)) {
+				queryWrapper.and(wrapper -> {
+					List<String> ids = Func.toStrList(deptIds);
+					ids.forEach(id -> wrapper.like(User::getDeptId, id).or());
+				});
+			}
+		}
+		if (StringUtil.isNotBlank(user.getPostName())) {
+			String postIds = SysCache.getPostIdsByFuzzy(AuthUtil.getTenantId(), user.getPostName());
+			if (StringUtil.isNotBlank(postIds)) {
+				queryWrapper.and(wrapper -> {
+					List<String> ids = Func.toStrList(postIds);
+					ids.forEach(id -> wrapper.like(User::getPostId, id).or());
+				});
+			}
+		}
+		IPage<User> pages = this.page(Condition.getPage(query), queryWrapper);
+		return UserWrapper.build().pageVO(pages);
+	}
+
+	@Override
+	public User userByAccount(String tenantId, String account) {
+		return baseMapper.selectOne(Wrappers.<User>query().lambda().eq(User::getTenantId, tenantId).eq(User::getAccount, account).eq(User::getIsDeleted, BladeConstant.DB_NOT_DELETED));
+	}
+
+	@Override
+	public UserInfo userInfo(Long userId) {
+		User user = baseMapper.selectById(userId);
+		return buildUserInfo(user);
+	}
+
+	@Override
+	public UserInfo userInfo(String tenantId, String account) {
+		User user = baseMapper.getUser(tenantId, account);
+		return buildUserInfo(user);
+	}
+
+	@Override
+	public UserInfo userInfo(String tenantId, String account, UserEnum userEnum) {
+		User user = baseMapper.getUser(tenantId, account);
+		return buildUserInfo(user, userEnum);
+	}
+
+	private UserInfo buildUserInfo(User user) {
+		return buildUserInfo(user, UserEnum.WEB);
+	}
+
+	private UserInfo buildUserInfo(User user, UserEnum userEnum) {
+		if (ObjectUtil.isEmpty(user)) {
+			return null;
+		}
+		UserInfo userInfo = new UserInfo();
+		userInfo.setUser(user);
+		if (Func.isNotEmpty(user)) {
+			R<List<String>> result = sysClient.getRoleAliases(user.getRoleId());
+			if (result.isSuccess()) {
+				List<String> roleAlias = result.getData();
+				userInfo.setRoles(roleAlias);
+			}
+		}
+		// 根据每个用户平台,建立对应的detail表,通过查询将结果集写入到detail字段
+		Kv detail = Kv.create().set("type", userEnum.getName());
+		if (userEnum == UserEnum.WEB) {
+			UserWeb userWeb = new UserWeb();
+			UserWeb query = userWeb.selectOne(Wrappers.<UserWeb>lambdaQuery().eq(UserWeb::getUserId, user.getId()));
+			if (ObjectUtil.isNotEmpty(query)) {
+				detail.set("ext", query.getUserExt());
+			}
+		} else if (userEnum == UserEnum.APP) {
+			UserApp userApp = new UserApp();
+			UserApp query = userApp.selectOne(Wrappers.<UserApp>lambdaQuery().eq(UserApp::getUserId, user.getId()));
+			if (ObjectUtil.isNotEmpty(query)) {
+				detail.set("ext", query.getUserExt());
+			}
+		} else {
+			UserOther userOther = new UserOther();
+			UserOther query = userOther.selectOne(Wrappers.<UserOther>lambdaQuery().eq(UserOther::getUserId, user.getId()));
+			if (ObjectUtil.isNotEmpty(query)) {
+				detail.set("ext", query.getUserExt());
+			}
+		}
+		userInfo.setDetail(detail);
+		return userInfo;
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public UserInfo userInfo(UserOauth userOauth) {
+		UserOauth uo = userOauthService.getOne(Wrappers.<UserOauth>query().lambda().eq(UserOauth::getUuid, userOauth.getUuid()).eq(UserOauth::getSource, userOauth.getSource()));
+		UserInfo userInfo;
+		if (Func.isNotEmpty(uo) && Func.isNotEmpty(uo.getUserId())) {
+			userInfo = this.userInfo(uo.getUserId());
+			userInfo.setOauthId(Func.toStr(uo.getId()));
+		} else {
+			userInfo = new UserInfo();
+			if (Func.isEmpty(uo)) {
+				userOauthService.save(userOauth);
+				userInfo.setOauthId(Func.toStr(userOauth.getId()));
+			} else {
+				userInfo.setOauthId(Func.toStr(uo.getId()));
+			}
+			User user = new User();
+			user.setAccount(userOauth.getUsername());
+			user.setTenantId(userOauth.getTenantId());
+			userInfo.setUser(user);
+			userInfo.setRoles(Collections.singletonList(GUEST_NAME));
+		}
+		return userInfo;
+	}
+
+	@Override
+	public boolean grant(String userIds, String roleIds) {
+		User user = new User();
+		user.setRoleId(roleIds);
+		return this.update(user, Wrappers.<User>update().lambda().in(User::getId, Func.toLongList(userIds)));
+	}
+
+	@Override
+	public boolean resetPassword(String userIds) {
+		User user = new User();
+		user.setPassword(DigestUtil.encrypt(CommonConstant.DEFAULT_PASSWORD));
+		user.setUpdateTime(DateUtil.now());
+		return this.update(user, Wrappers.<User>update().lambda().in(User::getId, Func.toLongList(userIds)));
+	}
+
+	@Override
+	public boolean updatePassword(Long userId, String oldPassword, String newPassword, String newPassword1) {
+		User user = getById(userId);
+		if (!newPassword.equals(newPassword1)) {
+			throw new ServiceException("请输入正确的确认密码!");
+		}
+		if (!user.getPassword().equals(DigestUtil.hex(oldPassword))) {
+			throw new ServiceException("原密码不正确!");
+		}
+		return this.update(Wrappers.<User>update().lambda().set(User::getPassword, DigestUtil.hex(newPassword)).eq(User::getId, userId));
+	}
+
+	@Override
+	public boolean removeUser(String userIds) {
+		if (Func.contains(Func.toLongArray(userIds), AuthUtil.getUserId())) {
+			throw new ServiceException("不能删除本账号!");
+		}
+		return deleteLogic(Func.toLongList(userIds));
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void importUser(List<UserExcel> data, Boolean isCovered) {
+		data.forEach(userExcel -> {
+			User user = Objects.requireNonNull(BeanUtil.copy(userExcel, User.class));
+			// 设置用户平台
+			user.setUserType(Func.toInt(DictCache.getKey(DictEnum.USER_TYPE, userExcel.getUserTypeName()), 1));
+			// 设置部门ID
+			user.setDeptId(Func.toStrWithEmpty(SysCache.getDeptIds(userExcel.getTenantId(), userExcel.getDeptName()), StringPool.EMPTY));
+			// 设置岗位ID
+			user.setPostId(Func.toStrWithEmpty(SysCache.getPostIds(userExcel.getTenantId(), userExcel.getPostName()), StringPool.EMPTY));
+			// 设置角色ID
+			user.setRoleId(Func.toStrWithEmpty(SysCache.getRoleIds(userExcel.getTenantId(), userExcel.getRoleName()), StringPool.EMPTY));
+			// 设置租户ID
+			if (!AuthUtil.isAdministrator() || StringUtil.isBlank(user.getTenantId())) {
+				user.setTenantId(AuthUtil.getTenantId());
+			}
+			// 覆盖数据
+			if (isCovered) {
+				// 查询用户是否存在
+				User oldUser = UserCache.getUser(userExcel.getTenantId(), userExcel.getAccount());
+				if (oldUser != null && oldUser.getId() != null) {
+					user.setId(oldUser.getId());
+					this.updateUser(user);
+					return;
+				}
+			}
+			// 获取默认密码配置
+			String initPassword = ParamCache.getValue(DEFAULT_PARAM_PASSWORD);
+			user.setPassword(initPassword);
+			this.submit(user);
+		});
+	}
+
+	@Override
+	public List<UserExcel> exportUser(Wrapper<User> queryWrapper) {
+		List<UserExcel> userList = baseMapper.exportUser(queryWrapper);
+		userList.forEach(user -> {
+			user.setUserTypeName(DictCache.getValue(DictEnum.USER_TYPE, user.getUserType()));
+			user.setRoleName(StringUtil.join(SysCache.getRoleNames(user.getRoleId())));
+			user.setDeptName(StringUtil.join(SysCache.getDeptNames(user.getDeptId())));
+			user.setPostName(StringUtil.join(SysCache.getPostNames(user.getPostId())));
+		});
+		return userList;
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean registerGuest(User user, Long oauthId) {
+		Tenant tenant = SysCache.getTenant(user.getTenantId());
+		if (tenant == null || tenant.getId() == null) {
+			throw new ServiceException("租户信息错误!");
+		}
+		UserOauth userOauth = userOauthService.getById(oauthId);
+		if (userOauth == null || userOauth.getId() == null) {
+			throw new ServiceException("第三方登陆信息错误!");
+		}
+		user.setRealName(user.getName());
+		user.setAvatar(userOauth.getAvatar());
+		user.setRoleId(StringPool.MINUS_ONE);
+		user.setDeptId(StringPool.MINUS_ONE);
+		user.setPostId(StringPool.MINUS_ONE);
+		boolean userTemp = this.submit(user);
+		userOauth.setUserId(user.getId());
+		userOauth.setTenantId(user.getTenantId());
+		boolean oauthTemp = userOauthService.updateById(userOauth);
+		return (userTemp && oauthTemp);
+	}
+	@Override
+	public boolean updatePlatform(Long userId, Integer userType, String userExt) {
+		if (userType.equals(UserEnum.WEB.getCategory())) {
+			UserWeb userWeb = new UserWeb();
+			UserWeb query = userWeb.selectOne(Wrappers.<UserWeb>lambdaQuery().eq(UserWeb::getUserId, userId));
+			if (ObjectUtil.isNotEmpty(query)) {
+				userWeb.setId(query.getId());
+			}
+			userWeb.setUserId(userId);
+			userWeb.setUserExt(userExt);
+			return userWeb.insertOrUpdate();
+		} else if (userType.equals(UserEnum.APP.getCategory())) {
+			UserApp userApp = new UserApp();
+			UserApp query = userApp.selectOne(Wrappers.<UserApp>lambdaQuery().eq(UserApp::getUserId, userId));
+			if (ObjectUtil.isNotEmpty(query)) {
+				userApp.setId(query.getId());
+			}
+			userApp.setUserId(userId);
+			userApp.setUserExt(userExt);
+			return userApp.insertOrUpdate();
+		} else {
+			UserOther userOther = new UserOther();
+			UserOther query = userOther.selectOne(Wrappers.<UserOther>lambdaQuery().eq(UserOther::getUserId, userId));
+			if (ObjectUtil.isNotEmpty(query)) {
+				userOther.setId(query.getId());
+			}
+			userOther.setUserId(userId);
+			userOther.setUserExt(userExt);
+			return userOther.insertOrUpdate();
+		}
+	}
+
+	@Override
+	public UserVO platformDetail(User user) {
+		User detail = baseMapper.selectOne(Condition.getQueryWrapper(user));
+		UserVO userVO = UserWrapper.build().entityVO(detail);
+		if (userVO.getUserType().equals(UserEnum.WEB.getCategory())) {
+			UserWeb userWeb = new UserWeb();
+			UserWeb query = userWeb.selectOne(Wrappers.<UserWeb>lambdaQuery().eq(UserWeb::getUserId, user.getId()));
+			if (ObjectUtil.isNotEmpty(query)) {
+				userVO.setUserExt(query.getUserExt());
+			}
+		} else if (userVO.getUserType().equals(UserEnum.APP.getCategory())) {
+			UserApp userApp = new UserApp();
+			UserApp query = userApp.selectOne(Wrappers.<UserApp>lambdaQuery().eq(UserApp::getUserId, user.getId()));
+			if (ObjectUtil.isNotEmpty(query)) {
+				userVO.setUserExt(query.getUserExt());
+			}
+		} else {
+			UserOther userOther = new UserOther();
+			UserOther query = userOther.selectOne(Wrappers.<UserOther>lambdaQuery().eq(UserOther::getUserId, user.getId()));
+			if (ObjectUtil.isNotEmpty(query)) {
+				userVO.setUserExt(query.getUserExt());
+			}
+		}
+		return userVO;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/wrapper/UserWrapper.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/wrapper/UserWrapper.java
new file mode 100644
index 0000000..c9a8fa1
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/wrapper/UserWrapper.java
@@ -0,0 +1,59 @@
+/*
+ *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ *  Redistribution and use in source and binary forms, with or without
+ *  modification, are permitted provided that the following conditions are met:
+ *
+ *  Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *  Redistributions in binary form must reproduce the above copyright
+ *  notice, this list of conditions and the following disclaimer in the
+ *  documentation and/or other materials provided with the distribution.
+ *  Neither the name of the dreamlu.net developer nor the names of its
+ *  contributors may be used to endorse or promote products derived from
+ *  this software without specific prior written permission.
+ *  Author: Chill 庄骞 (smallchill@163.com)
+ */
+package cn.gistack.system.user.wrapper;
+
+import cn.gistack.system.cache.DictCache;
+import cn.gistack.system.cache.SysCache;
+import cn.gistack.system.entity.Tenant;
+import cn.gistack.system.enums.DictEnum;
+import cn.gistack.system.user.entity.User;
+import cn.gistack.system.user.vo.UserVO;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * 包装类,返回视图层所需的字段
+ *
+ * @author Chill
+ */
+public class UserWrapper extends BaseEntityWrapper<User, UserVO> {
+
+	public static UserWrapper build() {
+		return new UserWrapper();
+	}
+
+	@Override
+	public UserVO entityVO(User user) {
+		UserVO userVO = Objects.requireNonNull(BeanUtil.copy(user, UserVO.class));
+		Tenant tenant = SysCache.getTenant(user.getTenantId());
+		List<String> roleName = SysCache.getRoleNames(user.getRoleId());
+		List<String> deptName = SysCache.getDeptNames(user.getDeptId());
+		List<String> postName = SysCache.getPostNames(user.getPostId());
+		userVO.setTenantName(tenant.getTenantName());
+		userVO.setRoleName(Func.join(roleName));
+		userVO.setDeptName(Func.join(deptName));
+		userVO.setPostName(Func.join(postName));
+		userVO.setSexName(DictCache.getValue(DictEnum.SEX, user.getSex()));
+		userVO.setUserTypeName(DictCache.getValue(DictEnum.USER_TYPE, user.getUserType()));
+		return userVO;
+	}
+
+}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/resources/application-dev.yml b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..2d9323b
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/resources/application-dev.yml
@@ -0,0 +1,10 @@
+#服务器端口
+server:
+  port: 8102
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.dev.url}
+    username: ${blade.datasource.dev.username}
+    password: ${blade.datasource.dev.password}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/resources/application-prod.yml b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..525ee77
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/resources/application-prod.yml
@@ -0,0 +1,11 @@
+#服务器端口
+server:
+  port: 8102
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.prod.url}
+    username: ${blade.datasource.prod.username}
+    password: ${blade.datasource.prod.password}
+
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/resources/application-test.yml b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/resources/application-test.yml
new file mode 100644
index 0000000..57b842e
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/resources/application-test.yml
@@ -0,0 +1,10 @@
+#服务器端口
+server:
+  port: 8102
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.test.url}
+    username: ${blade.datasource.test.username}
+    password: ${blade.datasource.test.password}

--
Gitblit v1.9.3